spiderfw 0.6.30 → 0.6.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +15 -7
  2. data/CHANGELOG +11 -0
  3. data/VERSION +1 -1
  4. data/apps/app_server/config/options.rb +1 -1
  5. data/apps/core/auth/controllers/login_controller.rb +3 -0
  6. data/apps/core/components/assets.rb +61 -3
  7. data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.eot +0 -0
  8. data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.svg +229 -0
  9. data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.ttf +0 -0
  10. data/apps/core/components/public/bootstrap_3/img/glyphicons-halflings-regular.woff +0 -0
  11. data/apps/core/components/public/bootstrap_3/js/affix.js +140 -0
  12. data/apps/core/components/public/bootstrap_3/js/alert.js +92 -0
  13. data/apps/core/components/public/bootstrap_3/js/button.js +110 -0
  14. data/apps/core/components/public/bootstrap_3/js/carousel.js +210 -0
  15. data/apps/core/components/public/bootstrap_3/js/collapse.js +180 -0
  16. data/apps/core/components/public/bootstrap_3/js/dropdown.js +151 -0
  17. data/apps/core/components/public/bootstrap_3/js/modal.js +277 -0
  18. data/apps/core/components/public/bootstrap_3/js/popover.js +113 -0
  19. data/apps/core/components/public/bootstrap_3/js/scrollspy.js +158 -0
  20. data/apps/core/components/public/bootstrap_3/js/tab.js +128 -0
  21. data/apps/core/components/public/bootstrap_3/js/tooltip.js +456 -0
  22. data/apps/core/components/public/bootstrap_3/js/transition.js +48 -0
  23. data/apps/core/components/public/bootstrap_3/scss/_alerts.scss +67 -0
  24. data/apps/core/components/public/bootstrap_3/scss/_badges.scss +57 -0
  25. data/apps/core/components/public/bootstrap_3/scss/_breadcrumbs.scss +26 -0
  26. data/apps/core/components/public/bootstrap_3/scss/_button-groups.scss +240 -0
  27. data/apps/core/components/public/bootstrap_3/scss/_buttons.scss +159 -0
  28. data/apps/core/components/public/bootstrap_3/scss/_carousel.scss +243 -0
  29. data/apps/core/components/public/bootstrap_3/scss/_close.scss +35 -0
  30. data/apps/core/components/public/bootstrap_3/scss/_code.scss +62 -0
  31. data/apps/core/components/public/bootstrap_3/scss/_component-animations.scss +35 -0
  32. data/apps/core/components/public/bootstrap_3/scss/_dropdowns.scss +214 -0
  33. data/apps/core/components/public/bootstrap_3/scss/_forms.scss +489 -0
  34. data/apps/core/components/public/bootstrap_3/scss/_glyphicons.scss +237 -0
  35. data/apps/core/components/public/bootstrap_3/scss/_grid.scss +84 -0
  36. data/apps/core/components/public/bootstrap_3/scss/_input-groups.scss +166 -0
  37. data/apps/core/components/public/bootstrap_3/scss/_jumbotron.scss +48 -0
  38. data/apps/core/components/public/bootstrap_3/scss/_labels.scss +66 -0
  39. data/apps/core/components/public/bootstrap_3/scss/_list-group.scss +129 -0
  40. data/apps/core/components/public/bootstrap_3/scss/_media.scss +56 -0
  41. data/apps/core/components/public/bootstrap_3/scss/_mixins.scss +39 -0
  42. data/apps/core/components/public/bootstrap_3/scss/_modals.scss +147 -0
  43. data/apps/core/components/public/bootstrap_3/scss/_navbar.scss +658 -0
  44. data/apps/core/components/public/bootstrap_3/scss/_navs.scss +242 -0
  45. data/apps/core/components/public/bootstrap_3/scss/_normalize.scss +425 -0
  46. data/apps/core/components/public/bootstrap_3/scss/_pager.scss +55 -0
  47. data/apps/core/components/public/bootstrap_3/scss/_pagination.scss +88 -0
  48. data/apps/core/components/public/bootstrap_3/scss/_panels.scss +240 -0
  49. data/apps/core/components/public/bootstrap_3/scss/_popovers.scss +133 -0
  50. data/apps/core/components/public/bootstrap_3/scss/_print.scss +101 -0
  51. data/apps/core/components/public/bootstrap_3/scss/_progress-bars.scss +89 -0
  52. data/apps/core/components/public/bootstrap_3/scss/_responsive-embed.scss +34 -0
  53. data/apps/core/components/public/bootstrap_3/scss/_responsive-utilities.scss +174 -0
  54. data/apps/core/components/public/bootstrap_3/scss/_scaffolding.scss +150 -0
  55. data/apps/core/components/public/bootstrap_3/scss/_tables.scss +233 -0
  56. data/apps/core/components/public/bootstrap_3/scss/_theme.scss +247 -0
  57. data/apps/core/components/public/bootstrap_3/scss/_thumbnails.scss +38 -0
  58. data/apps/core/components/public/bootstrap_3/scss/_tooltip.scss +95 -0
  59. data/apps/core/components/public/bootstrap_3/scss/_type.scss +298 -0
  60. data/apps/core/components/public/bootstrap_3/scss/_utilities.scss +56 -0
  61. data/apps/core/components/public/bootstrap_3/scss/_variables.scss +853 -0
  62. data/apps/core/components/public/bootstrap_3/scss/_wells.scss +29 -0
  63. data/apps/core/components/public/bootstrap_3/scss/bootstrap.scss +50 -0
  64. data/apps/core/components/public/bootstrap_3/scss/mixins/_alerts.scss +14 -0
  65. data/apps/core/components/public/bootstrap_3/scss/mixins/_background-variant.scss +11 -0
  66. data/apps/core/components/public/bootstrap_3/scss/mixins/_border-radius.scss +18 -0
  67. data/apps/core/components/public/bootstrap_3/scss/mixins/_buttons.scss +50 -0
  68. data/apps/core/components/public/bootstrap_3/scss/mixins/_center-block.scss +7 -0
  69. data/apps/core/components/public/bootstrap_3/scss/mixins/_clearfix.scss +22 -0
  70. data/apps/core/components/public/bootstrap_3/scss/mixins/_forms.scss +84 -0
  71. data/apps/core/components/public/bootstrap_3/scss/mixins/_gradients.scss +58 -0
  72. data/apps/core/components/public/bootstrap_3/scss/mixins/_grid-framework.scss +87 -0
  73. data/apps/core/components/public/bootstrap_3/scss/mixins/_grid.scss +122 -0
  74. data/apps/core/components/public/bootstrap_3/scss/mixins/_hide-text.scss +21 -0
  75. data/apps/core/components/public/bootstrap_3/scss/mixins/_image.scss +33 -0
  76. data/apps/core/components/public/bootstrap_3/scss/mixins/_labels.scss +12 -0
  77. data/apps/core/components/public/bootstrap_3/scss/mixins/_list-group.scss +31 -0
  78. data/apps/core/components/public/bootstrap_3/scss/mixins/_nav-divider.scss +10 -0
  79. data/apps/core/components/public/bootstrap_3/scss/mixins/_nav-vertical-align.scss +9 -0
  80. data/apps/core/components/public/bootstrap_3/scss/mixins/_opacity.scss +8 -0
  81. data/apps/core/components/public/bootstrap_3/scss/mixins/_pagination.scss +23 -0
  82. data/apps/core/components/public/bootstrap_3/scss/mixins/_panels.scss +20 -0
  83. data/apps/core/components/public/bootstrap_3/scss/mixins/_progress-bar.scss +8 -0
  84. data/apps/core/components/public/bootstrap_3/scss/mixins/_reset-filter.scss +8 -0
  85. data/apps/core/components/public/bootstrap_3/scss/mixins/_resize.scss +6 -0
  86. data/apps/core/components/public/bootstrap_3/scss/mixins/_responsive-visibility.scss +21 -0
  87. data/apps/core/components/public/bootstrap_3/scss/mixins/_size.scss +10 -0
  88. data/apps/core/components/public/bootstrap_3/scss/mixins/_tab-focus.scss +9 -0
  89. data/apps/core/components/public/bootstrap_3/scss/mixins/_table-row.scss +28 -0
  90. data/apps/core/components/public/bootstrap_3/scss/mixins/_text-emphasis.scss +11 -0
  91. data/apps/core/components/public/bootstrap_3/scss/mixins/_text-overflow.scss +8 -0
  92. data/apps/core/components/public/bootstrap_3/scss/mixins/_vendor-prefixes.scss +224 -0
  93. data/apps/core/components/public/js/jquery/plugins/bsmselect/js/jquery.bsmselect.js +1 -1
  94. data/apps/core/components/widgets/month_calendar/month_calendar.shtml +3 -3
  95. data/apps/core/components/widgets/table/table.rb +6 -2
  96. data/apps/core/components/widgets/table/table.shtml +4 -4
  97. data/apps/core/forms/widgets/form/form.rb +1 -1
  98. data/apps/core/forms/widgets/inputs/select/select.rb +13 -2
  99. data/apps/messenger/lib/backends/mobyt.rb +6 -2
  100. data/apps/messenger/lib/backends/skebby.rb +1 -1
  101. data/apps/webdav/controllers/webdav_controller.rb +16 -7
  102. data/lib/spiderfw/controller/http_controller.rb +4 -1
  103. data/lib/spiderfw/env.rb +0 -1
  104. data/lib/spiderfw/http/adapters/rack.rb +3 -1
  105. data/lib/spiderfw/model/base_model.rb +7 -3
  106. data/lib/spiderfw/model/storage/connection_pool.rb +6 -2
  107. data/lib/spiderfw/model/storage/db/db_storage.rb +25 -9
  108. data/lib/spiderfw/site.rb +1 -1
  109. metadata +308 -149
@@ -0,0 +1,57 @@
1
+ //
2
+ // Badges
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Base class
7
+ .badge {
8
+ display: inline-block;
9
+ min-width: 10px;
10
+ padding: 3px 7px;
11
+ font-size: $font-size-small;
12
+ font-weight: $badge-font-weight;
13
+ color: $badge-color;
14
+ line-height: $badge-line-height;
15
+ vertical-align: baseline;
16
+ white-space: nowrap;
17
+ text-align: center;
18
+ background-color: $badge-bg;
19
+ border-radius: $badge-border-radius;
20
+
21
+ // Empty badges collapse automatically (not available in IE8)
22
+ &:empty {
23
+ display: none;
24
+ }
25
+
26
+ // Quick fix for badges in buttons
27
+ .btn & {
28
+ position: relative;
29
+ top: -1px;
30
+ }
31
+ .btn-xs & {
32
+ top: 0;
33
+ padding: 1px 5px;
34
+ }
35
+
36
+ // [converter] extracted a& to a.badge
37
+
38
+ // Account for badges in navs
39
+ a.list-group-item.active > &,
40
+ .nav-pills > .active > a > & {
41
+ color: $badge-active-color;
42
+ background-color: $badge-active-bg;
43
+ }
44
+ .nav-pills > li > a > & {
45
+ margin-left: 3px;
46
+ }
47
+ }
48
+
49
+ // Hover state, but only for links
50
+ a.badge {
51
+ &:hover,
52
+ &:focus {
53
+ color: $badge-link-hover-color;
54
+ text-decoration: none;
55
+ cursor: pointer;
56
+ }
57
+ }
@@ -0,0 +1,26 @@
1
+ //
2
+ // Breadcrumbs
3
+ // --------------------------------------------------
4
+
5
+
6
+ .breadcrumb {
7
+ padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal;
8
+ margin-bottom: $line-height-computed;
9
+ list-style: none;
10
+ background-color: $breadcrumb-bg;
11
+ border-radius: $border-radius-base;
12
+
13
+ > li {
14
+ display: inline-block;
15
+
16
+ + li:before {
17
+ content: "#{$breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
18
+ padding: 0 5px;
19
+ color: $breadcrumb-color;
20
+ }
21
+ }
22
+
23
+ > .active {
24
+ color: $breadcrumb-active-color;
25
+ }
26
+ }
@@ -0,0 +1,240 @@
1
+ //
2
+ // Button groups
3
+ // --------------------------------------------------
4
+
5
+ // Make the div behave like a button
6
+ .btn-group,
7
+ .btn-group-vertical {
8
+ position: relative;
9
+ display: inline-block;
10
+ vertical-align: middle; // match .btn alignment given font-size hack above
11
+ > .btn {
12
+ position: relative;
13
+ float: left;
14
+ // Bring the "active" button to the front
15
+ &:hover,
16
+ &:focus,
17
+ &:active,
18
+ &.active {
19
+ z-index: 2;
20
+ }
21
+ &:focus {
22
+ // Remove focus outline when dropdown JS adds it after closing the menu
23
+ outline: 0;
24
+ }
25
+ }
26
+ }
27
+
28
+ // Prevent double borders when buttons are next to each other
29
+ .btn-group {
30
+ .btn + .btn,
31
+ .btn + .btn-group,
32
+ .btn-group + .btn,
33
+ .btn-group + .btn-group {
34
+ margin-left: -1px;
35
+ }
36
+ }
37
+
38
+ // Optional: Group multiple button groups together for a toolbar
39
+ .btn-toolbar {
40
+ margin-left: -5px; // Offset the first child's margin
41
+ @include clearfix();
42
+
43
+ .btn-group,
44
+ .input-group {
45
+ float: left;
46
+ }
47
+ > .btn,
48
+ > .btn-group,
49
+ > .input-group {
50
+ margin-left: 5px;
51
+ }
52
+ }
53
+
54
+ .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
55
+ border-radius: 0;
56
+ }
57
+
58
+ // Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match
59
+ .btn-group > .btn:first-child {
60
+ margin-left: 0;
61
+ &:not(:last-child):not(.dropdown-toggle) {
62
+ @include border-right-radius(0);
63
+ }
64
+ }
65
+ // Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
66
+ .btn-group > .btn:last-child:not(:first-child),
67
+ .btn-group > .dropdown-toggle:not(:first-child) {
68
+ @include border-left-radius(0);
69
+ }
70
+
71
+ // Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)
72
+ .btn-group > .btn-group {
73
+ float: left;
74
+ }
75
+ .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
76
+ border-radius: 0;
77
+ }
78
+ .btn-group > .btn-group:first-child {
79
+ > .btn:last-child,
80
+ > .dropdown-toggle {
81
+ @include border-right-radius(0);
82
+ }
83
+ }
84
+ .btn-group > .btn-group:last-child > .btn:first-child {
85
+ @include border-left-radius(0);
86
+ }
87
+
88
+ // On active and open, don't show outline
89
+ .btn-group .dropdown-toggle:active,
90
+ .btn-group.open .dropdown-toggle {
91
+ outline: 0;
92
+ }
93
+
94
+
95
+ // Sizing
96
+ //
97
+ // Remix the default button sizing classes into new ones for easier manipulation.
98
+
99
+ .btn-group-xs > .btn { @extend .btn-xs; }
100
+ .btn-group-sm > .btn { @extend .btn-sm; }
101
+ .btn-group-lg > .btn { @extend .btn-lg; }
102
+
103
+
104
+ // Split button dropdowns
105
+ // ----------------------
106
+
107
+ // Give the line between buttons some depth
108
+ .btn-group > .btn + .dropdown-toggle {
109
+ padding-left: 8px;
110
+ padding-right: 8px;
111
+ }
112
+ .btn-group > .btn-lg + .dropdown-toggle {
113
+ padding-left: 12px;
114
+ padding-right: 12px;
115
+ }
116
+
117
+ // The clickable button for toggling the menu
118
+ // Remove the gradient and set the same inset shadow as the :active state
119
+ .btn-group.open .dropdown-toggle {
120
+ @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
121
+
122
+ // Show no shadow for `.btn-link` since it has no other button styles.
123
+ &.btn-link {
124
+ @include box-shadow(none);
125
+ }
126
+ }
127
+
128
+
129
+ // Reposition the caret
130
+ .btn .caret {
131
+ margin-left: 0;
132
+ }
133
+ // Carets in other button sizes
134
+ .btn-lg .caret {
135
+ border-width: $caret-width-large $caret-width-large 0;
136
+ border-bottom-width: 0;
137
+ }
138
+ // Upside down carets for .dropup
139
+ .dropup .btn-lg .caret {
140
+ border-width: 0 $caret-width-large $caret-width-large;
141
+ }
142
+
143
+
144
+ // Vertical button groups
145
+ // ----------------------
146
+
147
+ .btn-group-vertical {
148
+ > .btn,
149
+ > .btn-group,
150
+ > .btn-group > .btn {
151
+ display: block;
152
+ float: none;
153
+ width: 100%;
154
+ max-width: 100%;
155
+ }
156
+
157
+ // Clear floats so dropdown menus can be properly placed
158
+ > .btn-group {
159
+ @include clearfix();
160
+ > .btn {
161
+ float: none;
162
+ }
163
+ }
164
+
165
+ > .btn + .btn,
166
+ > .btn + .btn-group,
167
+ > .btn-group + .btn,
168
+ > .btn-group + .btn-group {
169
+ margin-top: -1px;
170
+ margin-left: 0;
171
+ }
172
+ }
173
+
174
+ .btn-group-vertical > .btn {
175
+ &:not(:first-child):not(:last-child) {
176
+ border-radius: 0;
177
+ }
178
+ &:first-child:not(:last-child) {
179
+ border-top-right-radius: $border-radius-base;
180
+ @include border-bottom-radius(0);
181
+ }
182
+ &:last-child:not(:first-child) {
183
+ border-bottom-left-radius: $border-radius-base;
184
+ @include border-top-radius(0);
185
+ }
186
+ }
187
+ .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
188
+ border-radius: 0;
189
+ }
190
+ .btn-group-vertical > .btn-group:first-child:not(:last-child) {
191
+ > .btn:last-child,
192
+ > .dropdown-toggle {
193
+ @include border-bottom-radius(0);
194
+ }
195
+ }
196
+ .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
197
+ @include border-top-radius(0);
198
+ }
199
+
200
+
201
+
202
+ // Justified button groups
203
+ // ----------------------
204
+
205
+ .btn-group-justified {
206
+ display: table;
207
+ width: 100%;
208
+ table-layout: fixed;
209
+ border-collapse: separate;
210
+ > .btn,
211
+ > .btn-group {
212
+ float: none;
213
+ display: table-cell;
214
+ width: 1%;
215
+ }
216
+ > .btn-group .btn {
217
+ width: 100%;
218
+ }
219
+
220
+ > .btn-group .dropdown-menu {
221
+ left: auto;
222
+ }
223
+ }
224
+
225
+
226
+ // Checkbox and radio options
227
+ //
228
+ // In order to support the browser's form validation feedback, powered by the
229
+ // `required` attribute, we have to "hide" the inputs via `opacity`. We cannot
230
+ // use `display: none;` or `visibility: hidden;` as that also hides the popover.
231
+ // This way, we ensure a DOM element is visible to position the popover from.
232
+ //
233
+ // See https://github.com/twbs/bootstrap/pull/12794 for more.
234
+
235
+ [data-toggle="buttons"] > .btn > input[type="radio"],
236
+ [data-toggle="buttons"] > .btn > input[type="checkbox"] {
237
+ position: absolute;
238
+ z-index: -1;
239
+ @include opacity(0);
240
+ }
@@ -0,0 +1,159 @@
1
+ //
2
+ // Buttons
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Base styles
7
+ // --------------------------------------------------
8
+
9
+ .btn {
10
+ display: inline-block;
11
+ margin-bottom: 0; // For input.btn
12
+ font-weight: $btn-font-weight;
13
+ text-align: center;
14
+ vertical-align: middle;
15
+ cursor: pointer;
16
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
17
+ border: 1px solid transparent;
18
+ white-space: nowrap;
19
+ @include button-size($padding-base-vertical, $padding-base-horizontal, $font-size-base, $line-height-base, $border-radius-base);
20
+ @include user-select(none);
21
+
22
+ &,
23
+ &:active,
24
+ &.active {
25
+ &:focus {
26
+ @include tab-focus();
27
+ }
28
+ }
29
+
30
+ &:hover,
31
+ &:focus {
32
+ color: $btn-default-color;
33
+ text-decoration: none;
34
+ }
35
+
36
+ &:active,
37
+ &.active {
38
+ outline: 0;
39
+ background-image: none;
40
+ @include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
41
+ }
42
+
43
+ &.disabled,
44
+ &[disabled],
45
+ fieldset[disabled] & {
46
+ cursor: not-allowed;
47
+ pointer-events: none; // Future-proof disabling of clicks
48
+ @include opacity(.65);
49
+ @include box-shadow(none);
50
+ }
51
+ }
52
+
53
+
54
+ // Alternate buttons
55
+ // --------------------------------------------------
56
+
57
+ .btn-default {
58
+ @include button-variant($btn-default-color, $btn-default-bg, $btn-default-border);
59
+ }
60
+ .btn-primary {
61
+ @include button-variant($btn-primary-color, $btn-primary-bg, $btn-primary-border);
62
+ }
63
+ // Success appears as green
64
+ .btn-success {
65
+ @include button-variant($btn-success-color, $btn-success-bg, $btn-success-border);
66
+ }
67
+ // Info appears as blue-green
68
+ .btn-info {
69
+ @include button-variant($btn-info-color, $btn-info-bg, $btn-info-border);
70
+ }
71
+ // Warning appears as orange
72
+ .btn-warning {
73
+ @include button-variant($btn-warning-color, $btn-warning-bg, $btn-warning-border);
74
+ }
75
+ // Danger and error appear as red
76
+ .btn-danger {
77
+ @include button-variant($btn-danger-color, $btn-danger-bg, $btn-danger-border);
78
+ }
79
+
80
+
81
+ // Link buttons
82
+ // -------------------------
83
+
84
+ // Make a button look and behave like a link
85
+ .btn-link {
86
+ color: $link-color;
87
+ font-weight: normal;
88
+ cursor: pointer;
89
+ border-radius: 0;
90
+
91
+ &,
92
+ &:active,
93
+ &[disabled],
94
+ fieldset[disabled] & {
95
+ background-color: transparent;
96
+ @include box-shadow(none);
97
+ }
98
+ &,
99
+ &:hover,
100
+ &:focus,
101
+ &:active {
102
+ border-color: transparent;
103
+ }
104
+ &:hover,
105
+ &:focus {
106
+ color: $link-hover-color;
107
+ text-decoration: underline;
108
+ background-color: transparent;
109
+ }
110
+ &[disabled],
111
+ fieldset[disabled] & {
112
+ &:hover,
113
+ &:focus {
114
+ color: $btn-link-disabled-color;
115
+ text-decoration: none;
116
+ }
117
+ }
118
+ }
119
+
120
+
121
+ // Button Sizes
122
+ // --------------------------------------------------
123
+
124
+ .btn-lg {
125
+ // line-height: ensure even-numbered height of button next to large input
126
+ @include button-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $line-height-large, $border-radius-large);
127
+ }
128
+ .btn-sm {
129
+ // line-height: ensure proper height of button next to small input
130
+ @include button-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $line-height-small, $border-radius-small);
131
+ }
132
+ .btn-xs {
133
+ @include button-size($padding-xs-vertical, $padding-xs-horizontal, $font-size-small, $line-height-small, $border-radius-small);
134
+ }
135
+
136
+
137
+ // Block button
138
+ // --------------------------------------------------
139
+
140
+ .btn-block {
141
+ display: block;
142
+ width: 100%;
143
+ padding-left: 0;
144
+ padding-right: 0;
145
+ }
146
+
147
+ // Vertically space out multiple block buttons
148
+ .btn-block + .btn-block {
149
+ margin-top: 5px;
150
+ }
151
+
152
+ // Specificity overrides
153
+ input[type="submit"],
154
+ input[type="reset"],
155
+ input[type="button"] {
156
+ &.btn-block {
157
+ width: 100%;
158
+ }
159
+ }
@@ -0,0 +1,243 @@
1
+ //
2
+ // Carousel
3
+ // --------------------------------------------------
4
+
5
+
6
+ // Wrapper for the slide container and indicators
7
+ .carousel {
8
+ position: relative;
9
+ }
10
+
11
+ .carousel-inner {
12
+ position: relative;
13
+ overflow: hidden;
14
+ width: 100%;
15
+
16
+ > .item {
17
+ display: none;
18
+ position: relative;
19
+ @include transition(.6s ease-in-out left);
20
+
21
+ // Account for jankitude on images
22
+ > img,
23
+ > a > img {
24
+ @include img-responsive();
25
+ line-height: 1;
26
+ }
27
+ }
28
+
29
+ > .active,
30
+ > .next,
31
+ > .prev {
32
+ display: block;
33
+ }
34
+
35
+ > .active {
36
+ left: 0;
37
+ }
38
+
39
+ > .next,
40
+ > .prev {
41
+ position: absolute;
42
+ top: 0;
43
+ width: 100%;
44
+ }
45
+
46
+ > .next {
47
+ left: 100%;
48
+ }
49
+ > .prev {
50
+ left: -100%;
51
+ }
52
+ > .next.left,
53
+ > .prev.right {
54
+ left: 0;
55
+ }
56
+
57
+ > .active.left {
58
+ left: -100%;
59
+ }
60
+ > .active.right {
61
+ left: 100%;
62
+ }
63
+
64
+ }
65
+
66
+ // Left/right controls for nav
67
+ // ---------------------------
68
+
69
+ .carousel-control {
70
+ position: absolute;
71
+ top: 0;
72
+ left: 0;
73
+ bottom: 0;
74
+ width: $carousel-control-width;
75
+ @include opacity($carousel-control-opacity);
76
+ font-size: $carousel-control-font-size;
77
+ color: $carousel-control-color;
78
+ text-align: center;
79
+ text-shadow: $carousel-text-shadow;
80
+ // We can't have this transition here because WebKit cancels the carousel
81
+ // animation if you trip this while in the middle of another animation.
82
+
83
+ // Set gradients for backgrounds
84
+ &.left {
85
+ @include gradient-horizontal($start-color: rgba(0,0,0,.5), $end-color: rgba(0,0,0,.0001));
86
+ }
87
+ &.right {
88
+ left: auto;
89
+ right: 0;
90
+ @include gradient-horizontal($start-color: rgba(0,0,0,.0001), $end-color: rgba(0,0,0,.5));
91
+ }
92
+
93
+ // Hover/focus state
94
+ &:hover,
95
+ &:focus {
96
+ outline: 0;
97
+ color: $carousel-control-color;
98
+ text-decoration: none;
99
+ @include opacity(.9);
100
+ }
101
+
102
+ // Toggles
103
+ .icon-prev,
104
+ .icon-next,
105
+ .glyphicon-chevron-left,
106
+ .glyphicon-chevron-right {
107
+ position: absolute;
108
+ top: 50%;
109
+ z-index: 5;
110
+ display: inline-block;
111
+ }
112
+ .icon-prev,
113
+ .glyphicon-chevron-left {
114
+ left: 50%;
115
+ margin-left: -10px;
116
+ }
117
+ .icon-next,
118
+ .glyphicon-chevron-right {
119
+ right: 50%;
120
+ margin-right: -10px;
121
+ }
122
+ .icon-prev,
123
+ .icon-next {
124
+ width: 20px;
125
+ height: 20px;
126
+ margin-top: -10px;
127
+ font-family: serif;
128
+ }
129
+
130
+
131
+ .icon-prev {
132
+ &:before {
133
+ content: '\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)
134
+ }
135
+ }
136
+ .icon-next {
137
+ &:before {
138
+ content: '\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)
139
+ }
140
+ }
141
+ }
142
+
143
+ // Optional indicator pips
144
+ //
145
+ // Add an unordered list with the following class and add a list item for each
146
+ // slide your carousel holds.
147
+
148
+ .carousel-indicators {
149
+ position: absolute;
150
+ bottom: 10px;
151
+ left: 50%;
152
+ z-index: 15;
153
+ width: 60%;
154
+ margin-left: -30%;
155
+ padding-left: 0;
156
+ list-style: none;
157
+ text-align: center;
158
+
159
+ li {
160
+ display: inline-block;
161
+ width: 10px;
162
+ height: 10px;
163
+ margin: 1px;
164
+ text-indent: -999px;
165
+ border: 1px solid $carousel-indicator-border-color;
166
+ border-radius: 10px;
167
+ cursor: pointer;
168
+
169
+ // IE8-9 hack for event handling
170
+ //
171
+ // Internet Explorer 8-9 does not support clicks on elements without a set
172
+ // `background-color`. We cannot use `filter` since that's not viewed as a
173
+ // background color by the browser. Thus, a hack is needed.
174
+ //
175
+ // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we
176
+ // set alpha transparency for the best results possible.
177
+ background-color: #000 \9; // IE8
178
+ background-color: rgba(0,0,0,0); // IE9
179
+ }
180
+ .active {
181
+ margin: 0;
182
+ width: 12px;
183
+ height: 12px;
184
+ background-color: $carousel-indicator-active-bg;
185
+ }
186
+ }
187
+
188
+ // Optional captions
189
+ // -----------------------------
190
+ // Hidden by default for smaller viewports
191
+ .carousel-caption {
192
+ position: absolute;
193
+ left: 15%;
194
+ right: 15%;
195
+ bottom: 20px;
196
+ z-index: 10;
197
+ padding-top: 20px;
198
+ padding-bottom: 20px;
199
+ color: $carousel-caption-color;
200
+ text-align: center;
201
+ text-shadow: $carousel-text-shadow;
202
+ & .btn {
203
+ text-shadow: none; // No shadow for button elements in carousel-caption
204
+ }
205
+ }
206
+
207
+
208
+ // Scale up controls for tablets and up
209
+ @media screen and (min-width: $screen-sm-min) {
210
+
211
+ // Scale up the controls a smidge
212
+ .carousel-control {
213
+ .glyphicon-chevron-left,
214
+ .glyphicon-chevron-right,
215
+ .icon-prev,
216
+ .icon-next {
217
+ width: 30px;
218
+ height: 30px;
219
+ margin-top: -15px;
220
+ font-size: 30px;
221
+ }
222
+ .glyphicon-chevron-left,
223
+ .icon-prev {
224
+ margin-left: -15px;
225
+ }
226
+ .glyphicon-chevron-right,
227
+ .icon-next {
228
+ margin-right: -15px;
229
+ }
230
+ }
231
+
232
+ // Show and left align the captions
233
+ .carousel-caption {
234
+ left: 20%;
235
+ right: 20%;
236
+ padding-bottom: 30px;
237
+ }
238
+
239
+ // Move up the indicators
240
+ .carousel-indicators {
241
+ bottom: 20px;
242
+ }
243
+ }