adhoq 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE.txt +22 -0
- data/README.md +80 -0
- data/Rakefile +28 -0
- data/app/assets/javascripts/adhoq/application.js +19 -0
- data/app/assets/javascripts/adhoq/bootstrap-sprockets.js +12 -0
- data/app/assets/javascripts/adhoq/bootstrap.js +2107 -0
- data/app/assets/javascripts/adhoq/bootstrap/affix.js +142 -0
- data/app/assets/javascripts/adhoq/bootstrap/alert.js +92 -0
- data/app/assets/javascripts/adhoq/bootstrap/button.js +110 -0
- data/app/assets/javascripts/adhoq/bootstrap/carousel.js +223 -0
- data/app/assets/javascripts/adhoq/bootstrap/collapse.js +170 -0
- data/app/assets/javascripts/adhoq/bootstrap/dropdown.js +151 -0
- data/app/assets/javascripts/adhoq/bootstrap/modal.js +280 -0
- data/app/assets/javascripts/adhoq/bootstrap/popover.js +113 -0
- data/app/assets/javascripts/adhoq/bootstrap/scrollspy.js +170 -0
- data/app/assets/javascripts/adhoq/bootstrap/tab.js +128 -0
- data/app/assets/javascripts/adhoq/bootstrap/tooltip.js +457 -0
- data/app/assets/javascripts/adhoq/bootstrap/transition.js +59 -0
- data/app/assets/javascripts/adhoq/previewer.js.coffee +25 -0
- data/app/assets/stylesheets/adhoq/_bootstrap-compass.scss +7 -0
- data/app/assets/stylesheets/adhoq/_bootstrap-mincer.scss +17 -0
- data/app/assets/stylesheets/adhoq/_bootstrap-sprockets.scss +7 -0
- data/app/assets/stylesheets/adhoq/adhoq.css.sass +57 -0
- data/app/assets/stylesheets/adhoq/application.css +16 -0
- data/app/assets/stylesheets/adhoq/bootstrap.scss +50 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_alerts.scss +68 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_badges.scss +57 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_breadcrumbs.scss +26 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_button-groups.scss +240 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_buttons.scss +157 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_carousel.scss +243 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_close.scss +35 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_code.scss +68 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_component-animations.scss +35 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_dropdowns.scss +215 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_forms.scss +538 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_glyphicons.scss +237 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_grid.scss +84 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_input-groups.scss +166 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_jumbotron.scss +48 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_labels.scss +66 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_list-group.scss +131 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_media.scss +56 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_mixins.scss +39 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_modals.scss +150 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_navbar.scss +659 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_navs.scss +242 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_normalize.scss +425 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_pager.scss +55 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_pagination.scss +88 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_panels.scss +243 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_popovers.scss +133 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_print.scss +101 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_progress-bars.scss +105 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_responsive-embed.scss +34 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_responsive-utilities.scss +174 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_scaffolding.scss +150 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_tables.scss +233 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_theme.scss +258 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_thumbnails.scss +38 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_tooltip.scss +95 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_type.scss +304 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_utilities.scss +57 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_variables.scss +850 -0
- data/app/assets/stylesheets/adhoq/bootstrap/_wells.scss +29 -0
- data/app/assets/stylesheets/adhoq/bootstrap/bootstrap.scss +50 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_alerts.scss +14 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_background-variant.scss +11 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_border-radius.scss +18 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_buttons.scss +50 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_center-block.scss +7 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_clearfix.scss +22 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_forms.scss +84 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_gradients.scss +58 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_grid-framework.scss +81 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_grid.scss +122 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_hide-text.scss +21 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_image.scss +34 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_labels.scss +12 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_list-group.scss +31 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_nav-divider.scss +10 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_nav-vertical-align.scss +9 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_opacity.scss +8 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_pagination.scss +23 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_panels.scss +24 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_progress-bar.scss +10 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_reset-filter.scss +8 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_resize.scss +6 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_responsive-visibility.scss +21 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_size.scss +10 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_tab-focus.scss +9 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_table-row.scss +28 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_text-emphasis.scss +11 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_text-overflow.scss +8 -0
- data/app/assets/stylesheets/adhoq/bootstrap/mixins/_vendor-prefixes.scss +219 -0
- data/app/controllers/adhoq/application_controller.rb +5 -0
- data/app/controllers/adhoq/authorization_methods.rb +36 -0
- data/app/controllers/adhoq/executions_controller.rb +25 -0
- data/app/controllers/adhoq/previews_controller.rb +13 -0
- data/app/controllers/adhoq/queries_controller.rb +38 -0
- data/app/helpers/adhoq/application_helper.rb +11 -0
- data/app/models/adhoq/execution.rb +29 -0
- data/app/models/adhoq/query.rb +14 -0
- data/app/models/adhoq/report.rb +42 -0
- data/app/models/adhoq/time_based_orders.rb +9 -0
- data/app/views/adhoq/application/_global_nav.html.slim +11 -0
- data/app/views/adhoq/application/_sidebar_queries_index.html.slim +10 -0
- data/app/views/adhoq/previews/create.html.slim +12 -0
- data/app/views/adhoq/previews/statement_invalid.html.slim +5 -0
- data/app/views/adhoq/queries/_form.html.slim +38 -0
- data/app/views/adhoq/queries/_query.html.slim +43 -0
- data/app/views/adhoq/queries/edit.html.slim +2 -0
- data/app/views/adhoq/queries/index.html.slim +1 -0
- data/app/views/adhoq/queries/new.html.slim +2 -0
- data/app/views/adhoq/queries/show.html.slim +1 -0
- data/app/views/layouts/adhoq/application.html.slim +18 -0
- data/config/routes.rb +9 -0
- data/db/migrate/20141003095645_create_adhoq_queries.rb +11 -0
- data/db/migrate/20141006014750_create_adhoq_executions.rb +13 -0
- data/db/migrate/20141007052308_create_adhoq_reports.rb +12 -0
- data/lib/adhoq.rb +13 -0
- data/lib/adhoq/configuration.rb +21 -0
- data/lib/adhoq/engine.rb +15 -0
- data/lib/adhoq/error.rb +4 -0
- data/lib/adhoq/executor.rb +27 -0
- data/lib/adhoq/global_variable.rb +34 -0
- data/lib/adhoq/reporter.rb +5 -0
- data/lib/adhoq/reporter/xlsx.rb +32 -0
- data/lib/adhoq/result.rb +18 -0
- data/lib/adhoq/storage.rb +5 -0
- data/lib/adhoq/storage/local_file.rb +45 -0
- data/lib/adhoq/version.rb +3 -0
- data/lib/tasks/adhoq_tasks.rake +4 -0
- data/spec/adhoq/executor_spec.rb +11 -0
- data/spec/adhoq/storage_spec.rb +19 -0
- data/spec/factories/adhoq_queries.rb +29 -0
- data/spec/models/adhoq/execution_spec.rb +4 -0
- data/spec/models/adhoq/query_spec.rb +4 -0
- data/spec/models/adhoq/report_spec.rb +25 -0
- data/spec/spec_helper.rb +36 -0
- data/spec/support/have_values_in_xlsx_sheet_matcher.rb +20 -0
- metadata +375 -0
@@ -0,0 +1,233 @@
|
|
1
|
+
//
|
2
|
+
// Tables
|
3
|
+
// --------------------------------------------------
|
4
|
+
|
5
|
+
|
6
|
+
table {
|
7
|
+
background-color: $table-bg;
|
8
|
+
}
|
9
|
+
th {
|
10
|
+
text-align: left;
|
11
|
+
}
|
12
|
+
|
13
|
+
|
14
|
+
// Baseline styles
|
15
|
+
|
16
|
+
.table {
|
17
|
+
width: 100%;
|
18
|
+
max-width: 100%;
|
19
|
+
margin-bottom: $line-height-computed;
|
20
|
+
// Cells
|
21
|
+
> thead,
|
22
|
+
> tbody,
|
23
|
+
> tfoot {
|
24
|
+
> tr {
|
25
|
+
> th,
|
26
|
+
> td {
|
27
|
+
padding: $table-cell-padding;
|
28
|
+
line-height: $line-height-base;
|
29
|
+
vertical-align: top;
|
30
|
+
border-top: 1px solid $table-border-color;
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}
|
34
|
+
// Bottom align for column headings
|
35
|
+
> thead > tr > th {
|
36
|
+
vertical-align: bottom;
|
37
|
+
border-bottom: 2px solid $table-border-color;
|
38
|
+
}
|
39
|
+
// Remove top border from thead by default
|
40
|
+
> caption + thead,
|
41
|
+
> colgroup + thead,
|
42
|
+
> thead:first-child {
|
43
|
+
> tr:first-child {
|
44
|
+
> th,
|
45
|
+
> td {
|
46
|
+
border-top: 0;
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
// Account for multiple tbody instances
|
51
|
+
> tbody + tbody {
|
52
|
+
border-top: 2px solid $table-border-color;
|
53
|
+
}
|
54
|
+
|
55
|
+
// Nesting
|
56
|
+
.table {
|
57
|
+
background-color: $body-bg;
|
58
|
+
}
|
59
|
+
}
|
60
|
+
|
61
|
+
|
62
|
+
// Condensed table w/ half padding
|
63
|
+
|
64
|
+
.table-condensed {
|
65
|
+
> thead,
|
66
|
+
> tbody,
|
67
|
+
> tfoot {
|
68
|
+
> tr {
|
69
|
+
> th,
|
70
|
+
> td {
|
71
|
+
padding: $table-condensed-cell-padding;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
|
78
|
+
// Bordered version
|
79
|
+
//
|
80
|
+
// Add borders all around the table and between all the columns.
|
81
|
+
|
82
|
+
.table-bordered {
|
83
|
+
border: 1px solid $table-border-color;
|
84
|
+
> thead,
|
85
|
+
> tbody,
|
86
|
+
> tfoot {
|
87
|
+
> tr {
|
88
|
+
> th,
|
89
|
+
> td {
|
90
|
+
border: 1px solid $table-border-color;
|
91
|
+
}
|
92
|
+
}
|
93
|
+
}
|
94
|
+
> thead > tr {
|
95
|
+
> th,
|
96
|
+
> td {
|
97
|
+
border-bottom-width: 2px;
|
98
|
+
}
|
99
|
+
}
|
100
|
+
}
|
101
|
+
|
102
|
+
|
103
|
+
// Zebra-striping
|
104
|
+
//
|
105
|
+
// Default zebra-stripe styles (alternating gray and transparent backgrounds)
|
106
|
+
|
107
|
+
.table-striped {
|
108
|
+
> tbody > tr:nth-child(odd) {
|
109
|
+
> td,
|
110
|
+
> th {
|
111
|
+
background-color: $table-bg-accent;
|
112
|
+
}
|
113
|
+
}
|
114
|
+
}
|
115
|
+
|
116
|
+
|
117
|
+
// Hover effect
|
118
|
+
//
|
119
|
+
// Placed here since it has to come after the potential zebra striping
|
120
|
+
|
121
|
+
.table-hover {
|
122
|
+
> tbody > tr:hover {
|
123
|
+
> td,
|
124
|
+
> th {
|
125
|
+
background-color: $table-bg-hover;
|
126
|
+
}
|
127
|
+
}
|
128
|
+
}
|
129
|
+
|
130
|
+
|
131
|
+
// Table cell sizing
|
132
|
+
//
|
133
|
+
// Reset default table behavior
|
134
|
+
|
135
|
+
table col[class*="col-"] {
|
136
|
+
position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
|
137
|
+
float: none;
|
138
|
+
display: table-column;
|
139
|
+
}
|
140
|
+
table {
|
141
|
+
td,
|
142
|
+
th {
|
143
|
+
&[class*="col-"] {
|
144
|
+
position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)
|
145
|
+
float: none;
|
146
|
+
display: table-cell;
|
147
|
+
}
|
148
|
+
}
|
149
|
+
}
|
150
|
+
|
151
|
+
|
152
|
+
// Table backgrounds
|
153
|
+
//
|
154
|
+
// Exact selectors below required to override `.table-striped` and prevent
|
155
|
+
// inheritance to nested tables.
|
156
|
+
|
157
|
+
// Generate the contextual variants
|
158
|
+
@include table-row-variant('active', $table-bg-active);
|
159
|
+
@include table-row-variant('success', $state-success-bg);
|
160
|
+
@include table-row-variant('info', $state-info-bg);
|
161
|
+
@include table-row-variant('warning', $state-warning-bg);
|
162
|
+
@include table-row-variant('danger', $state-danger-bg);
|
163
|
+
|
164
|
+
|
165
|
+
// Responsive tables
|
166
|
+
//
|
167
|
+
// Wrap your tables in `.table-responsive` and we'll make them mobile friendly
|
168
|
+
// by enabling horizontal scrolling. Only applies <768px. Everything above that
|
169
|
+
// will display normally.
|
170
|
+
|
171
|
+
.table-responsive {
|
172
|
+
@media screen and (max-width: $screen-xs-max) {
|
173
|
+
width: 100%;
|
174
|
+
margin-bottom: ($line-height-computed * 0.75);
|
175
|
+
overflow-y: hidden;
|
176
|
+
overflow-x: auto;
|
177
|
+
-ms-overflow-style: -ms-autohiding-scrollbar;
|
178
|
+
border: 1px solid $table-border-color;
|
179
|
+
-webkit-overflow-scrolling: touch;
|
180
|
+
|
181
|
+
// Tighten up spacing
|
182
|
+
> .table {
|
183
|
+
margin-bottom: 0;
|
184
|
+
|
185
|
+
// Ensure the content doesn't wrap
|
186
|
+
> thead,
|
187
|
+
> tbody,
|
188
|
+
> tfoot {
|
189
|
+
> tr {
|
190
|
+
> th,
|
191
|
+
> td {
|
192
|
+
white-space: nowrap;
|
193
|
+
}
|
194
|
+
}
|
195
|
+
}
|
196
|
+
}
|
197
|
+
|
198
|
+
// Special overrides for the bordered tables
|
199
|
+
> .table-bordered {
|
200
|
+
border: 0;
|
201
|
+
|
202
|
+
// Nuke the appropriate borders so that the parent can handle them
|
203
|
+
> thead,
|
204
|
+
> tbody,
|
205
|
+
> tfoot {
|
206
|
+
> tr {
|
207
|
+
> th:first-child,
|
208
|
+
> td:first-child {
|
209
|
+
border-left: 0;
|
210
|
+
}
|
211
|
+
> th:last-child,
|
212
|
+
> td:last-child {
|
213
|
+
border-right: 0;
|
214
|
+
}
|
215
|
+
}
|
216
|
+
}
|
217
|
+
|
218
|
+
// Only nuke the last row's bottom-border in `tbody` and `tfoot` since
|
219
|
+
// chances are there will be only one `tr` in a `thead` and that would
|
220
|
+
// remove the border altogether.
|
221
|
+
> tbody,
|
222
|
+
> tfoot {
|
223
|
+
> tr:last-child {
|
224
|
+
> th,
|
225
|
+
> td {
|
226
|
+
border-bottom: 0;
|
227
|
+
}
|
228
|
+
}
|
229
|
+
}
|
230
|
+
|
231
|
+
}
|
232
|
+
}
|
233
|
+
}
|
@@ -0,0 +1,258 @@
|
|
1
|
+
|
2
|
+
//
|
3
|
+
// Load core variables and mixins
|
4
|
+
// --------------------------------------------------
|
5
|
+
|
6
|
+
@import "variables";
|
7
|
+
@import "mixins";
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
//
|
12
|
+
// Buttons
|
13
|
+
// --------------------------------------------------
|
14
|
+
|
15
|
+
// Common styles
|
16
|
+
.btn-default,
|
17
|
+
.btn-primary,
|
18
|
+
.btn-success,
|
19
|
+
.btn-info,
|
20
|
+
.btn-warning,
|
21
|
+
.btn-danger {
|
22
|
+
text-shadow: 0 -1px 0 rgba(0,0,0,.2);
|
23
|
+
$shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);
|
24
|
+
@include box-shadow($shadow);
|
25
|
+
|
26
|
+
// Reset the shadow
|
27
|
+
&:active,
|
28
|
+
&.active {
|
29
|
+
@include box-shadow(inset 0 3px 5px rgba(0,0,0,.125));
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
// Mixin for generating new styles
|
34
|
+
@mixin btn-styles($btn-color: #555) {
|
35
|
+
@include gradient-vertical($start-color: $btn-color, $end-color: darken($btn-color, 12%));
|
36
|
+
@include reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners
|
37
|
+
background-repeat: repeat-x;
|
38
|
+
border-color: darken($btn-color, 14%);
|
39
|
+
|
40
|
+
&:hover,
|
41
|
+
&:focus {
|
42
|
+
background-color: darken($btn-color, 12%);
|
43
|
+
background-position: 0 -15px;
|
44
|
+
}
|
45
|
+
|
46
|
+
&:active,
|
47
|
+
&.active {
|
48
|
+
background-color: darken($btn-color, 12%);
|
49
|
+
border-color: darken($btn-color, 14%);
|
50
|
+
}
|
51
|
+
|
52
|
+
&:disabled,
|
53
|
+
&[disabled] {
|
54
|
+
background-color: darken($btn-color, 12%);
|
55
|
+
background-image: none;
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
// Common styles
|
60
|
+
.btn {
|
61
|
+
// Remove the gradient for the pressed/active state
|
62
|
+
&:active,
|
63
|
+
&.active {
|
64
|
+
background-image: none;
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
// Apply the mixin to the buttons
|
69
|
+
.btn-default { @include btn-styles($btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }
|
70
|
+
.btn-primary { @include btn-styles($btn-primary-bg); }
|
71
|
+
.btn-success { @include btn-styles($btn-success-bg); }
|
72
|
+
.btn-info { @include btn-styles($btn-info-bg); }
|
73
|
+
.btn-warning { @include btn-styles($btn-warning-bg); }
|
74
|
+
.btn-danger { @include btn-styles($btn-danger-bg); }
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
//
|
79
|
+
// Images
|
80
|
+
// --------------------------------------------------
|
81
|
+
|
82
|
+
.thumbnail,
|
83
|
+
.img-thumbnail {
|
84
|
+
@include box-shadow(0 1px 2px rgba(0,0,0,.075));
|
85
|
+
}
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
//
|
90
|
+
// Dropdowns
|
91
|
+
// --------------------------------------------------
|
92
|
+
|
93
|
+
.dropdown-menu > li > a:hover,
|
94
|
+
.dropdown-menu > li > a:focus {
|
95
|
+
@include gradient-vertical($start-color: $dropdown-link-hover-bg, $end-color: darken($dropdown-link-hover-bg, 5%));
|
96
|
+
background-color: darken($dropdown-link-hover-bg, 5%);
|
97
|
+
}
|
98
|
+
.dropdown-menu > .active > a,
|
99
|
+
.dropdown-menu > .active > a:hover,
|
100
|
+
.dropdown-menu > .active > a:focus {
|
101
|
+
@include gradient-vertical($start-color: $dropdown-link-active-bg, $end-color: darken($dropdown-link-active-bg, 5%));
|
102
|
+
background-color: darken($dropdown-link-active-bg, 5%);
|
103
|
+
}
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
//
|
108
|
+
// Navbar
|
109
|
+
// --------------------------------------------------
|
110
|
+
|
111
|
+
// Default navbar
|
112
|
+
.navbar-default {
|
113
|
+
@include gradient-vertical($start-color: lighten($navbar-default-bg, 10%), $end-color: $navbar-default-bg);
|
114
|
+
@include reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
|
115
|
+
border-radius: $navbar-border-radius;
|
116
|
+
$shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);
|
117
|
+
@include box-shadow($shadow);
|
118
|
+
|
119
|
+
.navbar-nav > .active > a {
|
120
|
+
@include gradient-vertical($start-color: darken($navbar-default-bg, 5%), $end-color: darken($navbar-default-bg, 2%));
|
121
|
+
@include box-shadow(inset 0 3px 9px rgba(0,0,0,.075));
|
122
|
+
}
|
123
|
+
}
|
124
|
+
.navbar-brand,
|
125
|
+
.navbar-nav > li > a {
|
126
|
+
text-shadow: 0 1px 0 rgba(255,255,255,.25);
|
127
|
+
}
|
128
|
+
|
129
|
+
// Inverted navbar
|
130
|
+
.navbar-inverse {
|
131
|
+
@include gradient-vertical($start-color: lighten($navbar-inverse-bg, 10%), $end-color: $navbar-inverse-bg);
|
132
|
+
@include reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered
|
133
|
+
|
134
|
+
.navbar-nav > .active > a {
|
135
|
+
@include gradient-vertical($start-color: $navbar-inverse-bg, $end-color: lighten($navbar-inverse-bg, 2.5%));
|
136
|
+
@include box-shadow(inset 0 3px 9px rgba(0,0,0,.25));
|
137
|
+
}
|
138
|
+
|
139
|
+
.navbar-brand,
|
140
|
+
.navbar-nav > li > a {
|
141
|
+
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
142
|
+
}
|
143
|
+
}
|
144
|
+
|
145
|
+
// Undo rounded corners in static and fixed navbars
|
146
|
+
.navbar-static-top,
|
147
|
+
.navbar-fixed-top,
|
148
|
+
.navbar-fixed-bottom {
|
149
|
+
border-radius: 0;
|
150
|
+
}
|
151
|
+
|
152
|
+
|
153
|
+
|
154
|
+
//
|
155
|
+
// Alerts
|
156
|
+
// --------------------------------------------------
|
157
|
+
|
158
|
+
// Common styles
|
159
|
+
.alert {
|
160
|
+
text-shadow: 0 1px 0 rgba(255,255,255,.2);
|
161
|
+
$shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);
|
162
|
+
@include box-shadow($shadow);
|
163
|
+
}
|
164
|
+
|
165
|
+
// Mixin for generating new styles
|
166
|
+
@mixin alert-styles($color) {
|
167
|
+
@include gradient-vertical($start-color: $color, $end-color: darken($color, 7.5%));
|
168
|
+
border-color: darken($color, 15%);
|
169
|
+
}
|
170
|
+
|
171
|
+
// Apply the mixin to the alerts
|
172
|
+
.alert-success { @include alert-styles($alert-success-bg); }
|
173
|
+
.alert-info { @include alert-styles($alert-info-bg); }
|
174
|
+
.alert-warning { @include alert-styles($alert-warning-bg); }
|
175
|
+
.alert-danger { @include alert-styles($alert-danger-bg); }
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
//
|
180
|
+
// Progress bars
|
181
|
+
// --------------------------------------------------
|
182
|
+
|
183
|
+
// Give the progress background some depth
|
184
|
+
.progress {
|
185
|
+
@include gradient-vertical($start-color: darken($progress-bg, 4%), $end-color: $progress-bg)
|
186
|
+
}
|
187
|
+
|
188
|
+
// Mixin for generating new styles
|
189
|
+
@mixin progress-bar-styles($color) {
|
190
|
+
@include gradient-vertical($start-color: $color, $end-color: darken($color, 10%));
|
191
|
+
}
|
192
|
+
|
193
|
+
// Apply the mixin to the progress bars
|
194
|
+
.progress-bar { @include progress-bar-styles($progress-bar-bg); }
|
195
|
+
.progress-bar-success { @include progress-bar-styles($progress-bar-success-bg); }
|
196
|
+
.progress-bar-info { @include progress-bar-styles($progress-bar-info-bg); }
|
197
|
+
.progress-bar-warning { @include progress-bar-styles($progress-bar-warning-bg); }
|
198
|
+
.progress-bar-danger { @include progress-bar-styles($progress-bar-danger-bg); }
|
199
|
+
|
200
|
+
// Reset the striped class because our mixins don't do multiple gradients and
|
201
|
+
// the above custom styles override the new `.progress-bar-striped` in v3.2.0.
|
202
|
+
.progress-bar-striped {
|
203
|
+
@include gradient-striped();
|
204
|
+
}
|
205
|
+
|
206
|
+
|
207
|
+
//
|
208
|
+
// List groups
|
209
|
+
// --------------------------------------------------
|
210
|
+
|
211
|
+
.list-group {
|
212
|
+
border-radius: $border-radius-base;
|
213
|
+
@include box-shadow(0 1px 2px rgba(0,0,0,.075));
|
214
|
+
}
|
215
|
+
.list-group-item.active,
|
216
|
+
.list-group-item.active:hover,
|
217
|
+
.list-group-item.active:focus {
|
218
|
+
text-shadow: 0 -1px 0 darken($list-group-active-bg, 10%);
|
219
|
+
@include gradient-vertical($start-color: $list-group-active-bg, $end-color: darken($list-group-active-bg, 7.5%));
|
220
|
+
border-color: darken($list-group-active-border, 7.5%);
|
221
|
+
}
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
//
|
226
|
+
// Panels
|
227
|
+
// --------------------------------------------------
|
228
|
+
|
229
|
+
// Common styles
|
230
|
+
.panel {
|
231
|
+
@include box-shadow(0 1px 2px rgba(0,0,0,.05));
|
232
|
+
}
|
233
|
+
|
234
|
+
// Mixin for generating new styles
|
235
|
+
@mixin panel-heading-styles($color) {
|
236
|
+
@include gradient-vertical($start-color: $color, $end-color: darken($color, 5%));
|
237
|
+
}
|
238
|
+
|
239
|
+
// Apply the mixin to the panel headings only
|
240
|
+
.panel-default > .panel-heading { @include panel-heading-styles($panel-default-heading-bg); }
|
241
|
+
.panel-primary > .panel-heading { @include panel-heading-styles($panel-primary-heading-bg); }
|
242
|
+
.panel-success > .panel-heading { @include panel-heading-styles($panel-success-heading-bg); }
|
243
|
+
.panel-info > .panel-heading { @include panel-heading-styles($panel-info-heading-bg); }
|
244
|
+
.panel-warning > .panel-heading { @include panel-heading-styles($panel-warning-heading-bg); }
|
245
|
+
.panel-danger > .panel-heading { @include panel-heading-styles($panel-danger-heading-bg); }
|
246
|
+
|
247
|
+
|
248
|
+
|
249
|
+
//
|
250
|
+
// Wells
|
251
|
+
// --------------------------------------------------
|
252
|
+
|
253
|
+
.well {
|
254
|
+
@include gradient-vertical($start-color: darken($well-bg, 5%), $end-color: $well-bg);
|
255
|
+
border-color: darken($well-bg, 10%);
|
256
|
+
$shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);
|
257
|
+
@include box-shadow($shadow);
|
258
|
+
}
|