rails_admin 0.6.5 → 0.6.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of rails_admin might be problematic. Click here for more details.

Files changed (133) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +99 -74
  3. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +48 -55
  4. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +70 -65
  5. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +163 -147
  6. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +117 -114
  7. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +89 -107
  8. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +208 -175
  9. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +77 -78
  10. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +137 -129
  11. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +85 -101
  12. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +364 -268
  13. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +51 -52
  14. data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +1782 -335
  15. data/app/assets/javascripts/rails_admin/ra.filter-box.js +1 -1
  16. data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +3 -3
  17. data/app/assets/javascripts/rails_admin/ra.filtering-select.js +1 -1
  18. data/app/assets/javascripts/rails_admin/ra.remote-form.js +6 -2
  19. data/app/assets/stylesheets/rails_admin/base/theming.scss +34 -14
  20. data/app/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +47 -58
  21. data/app/assets/stylesheets/rails_admin/bootstrap/_badges.scss +57 -0
  22. data/app/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +12 -10
  23. data/app/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +163 -152
  24. data/app/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +98 -169
  25. data/app/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +151 -66
  26. data/app/assets/stylesheets/rails_admin/bootstrap/_close.scss +11 -8
  27. data/app/assets/stylesheets/rails_admin/bootstrap/_code.scss +36 -29
  28. data/app/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +16 -3
  29. data/app/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +115 -148
  30. data/app/assets/stylesheets/rails_admin/bootstrap/_forms.scss +396 -547
  31. data/app/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +237 -0
  32. data/app/assets/stylesheets/rails_admin/bootstrap/_grid.scss +74 -11
  33. data/app/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +166 -0
  34. data/app/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +48 -0
  35. data/app/assets/stylesheets/rails_admin/bootstrap/_labels.scss +66 -0
  36. data/app/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +131 -0
  37. data/app/assets/stylesheets/rails_admin/bootstrap/_media.scss +8 -7
  38. data/app/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +36 -693
  39. data/app/assets/stylesheets/rails_admin/bootstrap/_modals.scss +108 -53
  40. data/app/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +545 -383
  41. data/app/assets/stylesheets/rails_admin/bootstrap/_navs.scss +191 -358
  42. data/app/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +425 -0
  43. data/app/assets/stylesheets/rails_admin/bootstrap/_pager.scss +45 -33
  44. data/app/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +70 -105
  45. data/app/assets/stylesheets/rails_admin/bootstrap/_panels.scss +243 -0
  46. data/app/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +61 -61
  47. data/app/assets/stylesheets/rails_admin/bootstrap/_print.scss +101 -0
  48. data/app/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +56 -73
  49. data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +34 -0
  50. data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +150 -50
  51. data/app/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +120 -23
  52. data/app/assets/stylesheets/rails_admin/bootstrap/_tables.scss +168 -170
  53. data/app/assets/stylesheets/rails_admin/bootstrap/_theme.scss +258 -0
  54. data/app/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +27 -42
  55. data/app/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +49 -24
  56. data/app/assets/stylesheets/rails_admin/bootstrap/_type.scss +200 -143
  57. data/app/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +33 -21
  58. data/app/assets/stylesheets/rails_admin/bootstrap/_variables.scss +764 -215
  59. data/app/assets/stylesheets/rails_admin/bootstrap/_wells.scss +7 -7
  60. data/app/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +47 -60
  61. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +14 -0
  62. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +11 -0
  63. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +18 -0
  64. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +50 -0
  65. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +7 -0
  66. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +22 -0
  67. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +84 -0
  68. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +58 -0
  69. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +81 -0
  70. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +122 -0
  71. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +21 -0
  72. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +34 -0
  73. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +12 -0
  74. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +31 -0
  75. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +10 -0
  76. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  77. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +8 -0
  78. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +23 -0
  79. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +24 -0
  80. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +10 -0
  81. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +8 -0
  82. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +6 -0
  83. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +21 -0
  84. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +10 -0
  85. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +9 -0
  86. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +28 -0
  87. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +11 -0
  88. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_text-overflow.scss +8 -0
  89. data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +219 -0
  90. data/app/assets/stylesheets/rails_admin/ra.calendar-additions.scss +17 -0
  91. data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +9 -5
  92. data/app/helpers/rails_admin/application_helper.rb +20 -19
  93. data/app/helpers/rails_admin/form_builder.rb +14 -11
  94. data/app/views/kaminari/twitter-bootstrap/_paginator.html.haml +8 -9
  95. data/app/views/layouts/rails_admin/_navigation.html.haml +5 -5
  96. data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +1 -1
  97. data/app/views/layouts/rails_admin/application.html.haml +9 -8
  98. data/app/views/layouts/rails_admin/pjax.html.haml +4 -3
  99. data/app/views/rails_admin/main/_form_datetime.html.haml +2 -1
  100. data/app/views/rails_admin/main/_form_field.html.haml +1 -1
  101. data/app/views/rails_admin/main/_form_text.html.haml +1 -1
  102. data/app/views/rails_admin/main/_submit_buttons.html.haml +1 -0
  103. data/app/views/rails_admin/main/dashboard.html.haml +1 -1
  104. data/app/views/rails_admin/main/export.html.haml +19 -16
  105. data/app/views/rails_admin/main/index.html.haml +11 -7
  106. data/app/views/rails_admin/main/show.html.haml +1 -1
  107. data/lib/rails_admin/adapters/active_record.rb +2 -2
  108. data/lib/rails_admin/adapters/mongoid/property.rb +1 -1
  109. data/lib/rails_admin/config/actions/bulk_delete.rb +0 -1
  110. data/lib/rails_admin/config/actions/edit.rb +0 -2
  111. data/lib/rails_admin/config/actions/export.rb +0 -2
  112. data/lib/rails_admin/config/actions/index.rb +0 -3
  113. data/lib/rails_admin/config/actions/new.rb +0 -2
  114. data/lib/rails_admin/config/configurable.rb +1 -1
  115. data/lib/rails_admin/config/fields/base.rb +9 -0
  116. data/lib/rails_admin/config/fields/factories/enum.rb +2 -3
  117. data/lib/rails_admin/config/fields/types/polymorphic_association.rb +4 -0
  118. data/lib/rails_admin/config/model.rb +2 -1
  119. data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +2 -2
  120. data/lib/rails_admin/support/csv_converter.rb +22 -42
  121. data/lib/rails_admin/version.rb +1 -1
  122. metadata +59 -18
  123. data/app/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +0 -34
  124. data/app/assets/stylesheets/rails_admin/bootstrap/_hero-unit.scss +0 -25
  125. data/app/assets/stylesheets/rails_admin/bootstrap/_labels-badges.scss +0 -83
  126. data/app/assets/stylesheets/rails_admin/bootstrap/_layouts.scss +0 -16
  127. data/app/assets/stylesheets/rails_admin/bootstrap/_reset.scss +0 -216
  128. data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-1200px-min.scss +0 -28
  129. data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-767px-max.scss +0 -193
  130. data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-768px-979px.scss +0 -19
  131. data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-navbar.scss +0 -189
  132. data/app/assets/stylesheets/rails_admin/bootstrap/_sprites.scss +0 -197
  133. data/app/assets/stylesheets/rails_admin/bootstrap/responsive.scss +0 -48
@@ -76,7 +76,7 @@
76
76
  case 'decimal':
77
77
  case 'float':
78
78
  var control = '<select class="switch-additionnal-fieldsets input-small" name="' + operator_name + '">' +
79
- '<option ' + (field_operator == "default" ? 'selected="selected"' : '') + ' data-additional-fieldset="default" value="default">' + RailsAdmin.I18n.t("Number ...") + '</option>' +
79
+ '<option ' + (field_operator == "default" ? 'selected="selected"' : '') + ' data-additional-fieldset="default" value="default">' + RailsAdmin.I18n.t("number") + '</option>' +
80
80
  '<option ' + (field_operator == "between" ? 'selected="selected"' : '') + ' data-additional-fieldset="between" value="between">' + RailsAdmin.I18n.t("between_and_") + '</option>' +
81
81
  '<option disabled="disabled">---------</option>' +
82
82
  '<option ' + (field_operator == "_not_null" ? 'selected="selected"' : '') + ' value="_not_null">' + RailsAdmin.I18n.t("is_present") +'</option>' +
@@ -48,7 +48,7 @@
48
48
 
49
49
  this.header = $('<div class="ra-multiselect-header ui-helper-clearfix">');
50
50
 
51
- this.filter = $('<input type="search" placeholder="' + this.options.regional.search + '" class="ra-multiselect-search"/>');
51
+ this.filter = $('<input type="search" placeholder="' + this.options.regional.search + '" class="form-control ra-multiselect-search"/>');
52
52
 
53
53
  this.header.append(this.filter);
54
54
 
@@ -68,7 +68,7 @@
68
68
 
69
69
  this.collection = $('<select multiple="multiple"></select>');
70
70
 
71
- this.collection.addClass("ra-multiselect-collection");
71
+ this.collection.addClass("form-control ra-multiselect-collection");
72
72
 
73
73
  this.addAll = $('<a href="#" class="ra-multiselect-item-add-all"><span class="ui-icon ui-icon-circle-triangle-e"></span>' + this.options.regional.chooseAll + '</a>');
74
74
 
@@ -89,7 +89,7 @@
89
89
  this.columns.center.append(this.up).append(this.down);
90
90
  }
91
91
 
92
- this.selection = $('<select class="ra-multiselect-selection" multiple="multiple"></select>');
92
+ this.selection = $('<select class="form-control ra-multiselect-selection" multiple="multiple"></select>');
93
93
 
94
94
 
95
95
 
@@ -42,7 +42,7 @@
42
42
  var filtering_select = $('<div class="input-append filtering-select" style="float:left"></div>')
43
43
  var input = this.input = $('<input type="text">')
44
44
  .val(value)
45
- .addClass("ra-filtering-select-input")
45
+ .addClass("form-control ra-filtering-select-input")
46
46
  .attr('style', select.attr('style'))
47
47
  .show()
48
48
  .autocomplete({
@@ -110,7 +110,7 @@
110
110
  multiselect.find('option[value= ' + json.id + ']').text(json.label);
111
111
  } else { // add
112
112
  select.prepend(option);
113
- multiselect.find('select.ra-multiselect-selection').prepend(option);
113
+ multiselect.find('select.ra-multiselect-selection').append(option);
114
114
  }
115
115
  }
116
116
  widget._trigger("success");
@@ -123,6 +123,8 @@
123
123
  var widget = this;
124
124
  if (!widget.dialog) {
125
125
  widget.dialog = $('<div id="modal" class="modal fade">\
126
+ <div class="modal-dialog">\
127
+ <div class="modal-content">\
126
128
  <div class="modal-header">\
127
129
  <a href="#" class="close" data-dismiss="modal">&times;</a>\
128
130
  <h3 class="modal-header-title">...</h3>\
@@ -134,13 +136,15 @@
134
136
  <a href="#" class="btn cancel-action">...</a>\
135
137
  <a href="#" class="btn btn-primary save-action">...</a>\
136
138
  </div>\
139
+ </div>\
140
+ </div>\
137
141
  </div>')
138
142
  .modal({
139
143
  keyboard: true,
140
144
  backdrop: true,
141
145
  show: true
142
146
  })
143
- .on('hidden', function(){
147
+ .on('hidden.bs.modal', function(){
144
148
  widget.dialog.remove(); // We don't want to reuse closed modals
145
149
  widget.dialog = null;
146
150
  });
@@ -10,19 +10,29 @@ body.rails_admin {
10
10
  }
11
11
 
12
12
  /* room for upper navbar */
13
- padding-top: 60px;
13
+ padding-top: 43px;
14
+
15
+ .reset-left {
16
+ padding-left: 0px;
17
+ }
14
18
 
15
19
  /* Application name */
16
20
  .navbar .brand {
17
21
  small {
18
- color:$red;
22
+ color:#9d261d;
19
23
  font-weight:bold;
20
24
  line-height: 1;
21
25
  }
22
26
  }
23
27
 
24
28
  .sidebar-nav {
25
- padding: 9px 0;
29
+ padding: 9px 9px 9px 9px;
30
+ position: fixed;
31
+ width: 14%;
32
+ overflow-y: scroll;
33
+ top: 50px;
34
+ bottom: 0;
35
+ background: #eaf0f1;
26
36
  }
27
37
 
28
38
  /* fat labels in forms */
@@ -58,7 +68,7 @@ body.rails_admin {
58
68
  line-height: 16px;
59
69
  }
60
70
  .help-block {
61
- margin-top: 0px;
71
+ // margin-top: 0px;
62
72
  }
63
73
  .input-prepend, .input-append {
64
74
  margin-bottom: 0px;
@@ -71,7 +81,7 @@ body.rails_admin {
71
81
  padding-top:15px;
72
82
  }
73
83
  .control-label {
74
- width:145px;
84
+ // width:145px;
75
85
  }
76
86
  legend {
77
87
  margin-bottom:0px;
@@ -101,7 +111,7 @@ body.rails_admin {
101
111
  display:block;
102
112
  }
103
113
 
104
- border-left:5px solid $blue;
114
+ border-left:5px solid #049cdb;
105
115
  padding-left:5px;
106
116
  fieldset {
107
117
  margin-left:-10px;
@@ -118,7 +128,7 @@ body.rails_admin {
118
128
 
119
129
  /* double nesting, guys. Easy. */
120
130
  .tab-content .tab-content .tab-pane {
121
- border-color:lighten($blue, 20%);
131
+ border-color:lighten(#049cdb, 20%);
122
132
  margin-left:10px;
123
133
  fieldset {
124
134
  margin-left:-20px;
@@ -134,7 +144,7 @@ body.rails_admin {
134
144
 
135
145
  /* triple nesting!*/
136
146
  .tab-content .tab-content .tab-content .tab-pane {
137
- border-color:lighten($blue, 30%);
147
+ border-color:lighten(#049cdb, 30%);
138
148
  margin-left:20px;
139
149
  fieldset {
140
150
  margin-left:-30px;
@@ -150,7 +160,7 @@ body.rails_admin {
150
160
 
151
161
  /* totally awesome! nesting on 4 levels! */
152
162
  .tab-content .tab-content .tab-content .tab-content .tab-pane {
153
- border-color:lighten($blue, 40%);
163
+ border-color:lighten(#049cdb, 40%);
154
164
  margin-left:30px;
155
165
  fieldset {
156
166
  margin-left:-40px;
@@ -165,10 +175,10 @@ body.rails_admin {
165
175
  }
166
176
  }
167
177
 
168
- .modal {
169
- width: 750px;
170
- margin-left: -375px;
171
- }
178
+ // .modal {
179
+ // width: 750px;
180
+ // margin-left: -375px;
181
+ // }
172
182
 
173
183
  /* nested nav */
174
184
  .nav.nav-list {
@@ -185,11 +195,21 @@ body.rails_admin {
185
195
 
186
196
  /* tab links should match icon color */
187
197
  .nav.nav-tabs li.icon a {
188
- color: $black;
198
+ color: #000;
189
199
  }
190
200
 
191
201
  /* Table cells behaviour */
192
202
  .table {
203
+ // Cells
204
+ > thead,
205
+ > tbody,
206
+ > tfoot {
207
+ > tr {
208
+ > th {
209
+ border-bottom: 0px;
210
+ }
211
+ }
212
+ }
193
213
  .thumbnail {
194
214
  float:left;
195
215
  & + * {
@@ -7,73 +7,62 @@
7
7
  // -------------------------
8
8
 
9
9
  .alert {
10
- padding: 8px 35px 8px 14px;
11
- margin-bottom: $baseLineHeight;
12
- text-shadow: 0 1px 0 rgba(255,255,255,.5);
13
- background-color: $warningBackground;
14
- border: 1px solid $warningBorder;
15
- @include border-radius($baseBorderRadius);
16
- }
17
- .alert,
18
- .alert h4 {
19
- // Specified for the h4 to prevent conflicts of changing $headingsColor
20
- color: $warningText;
21
- }
22
- .alert h4 {
23
- margin: 0;
24
- }
10
+ padding: $alert-padding;
11
+ margin-bottom: $line-height-computed;
12
+ border: 1px solid transparent;
13
+ border-radius: $alert-border-radius;
25
14
 
26
- // Adjust close link position
27
- .alert .close {
28
- position: relative;
29
- top: -2px;
30
- right: -21px;
31
- line-height: $baseLineHeight;
15
+ // Headings for larger alerts
16
+ h4 {
17
+ margin-top: 0;
18
+ // Specified for the h4 to prevent conflicts of changing $headings-color
19
+ color: inherit;
20
+ }
21
+ // Provide class for links that match alerts
22
+ .alert-link {
23
+ font-weight: $alert-link-font-weight;
24
+ }
25
+
26
+ // Improve alignment and spacing of inner content
27
+ > p,
28
+ > ul {
29
+ margin-bottom: 0;
30
+ }
31
+ > p + p {
32
+ margin-top: 5px;
33
+ }
32
34
  }
33
35
 
36
+ // Dismissible alerts
37
+ //
38
+ // Expand the right padding and account for the close button's positioning.
39
+
40
+ .alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.
41
+ .alert-dismissible {
42
+ padding-right: ($alert-padding + 20);
43
+
44
+ // Adjust close link position
45
+ .close {
46
+ position: relative;
47
+ top: -2px;
48
+ right: -21px;
49
+ color: inherit;
50
+ }
51
+ }
34
52
 
35
53
  // Alternate styles
36
- // -------------------------
54
+ //
55
+ // Generate contextual modifier classes for colorizing the alert.
37
56
 
38
57
  .alert-success {
39
- background-color: $successBackground;
40
- border-color: $successBorder;
41
- color: $successText;
42
- }
43
- .alert-success h4 {
44
- color: $successText;
45
- }
46
- .alert-danger,
47
- .alert-error {
48
- background-color: $errorBackground;
49
- border-color: $errorBorder;
50
- color: $errorText;
51
- }
52
- .alert-danger h4,
53
- .alert-error h4 {
54
- color: $errorText;
58
+ @include alert-variant($alert-success-bg, $alert-success-border, $alert-success-text);
55
59
  }
56
60
  .alert-info {
57
- background-color: $infoBackground;
58
- border-color: $infoBorder;
59
- color: $infoText;
60
- }
61
- .alert-info h4 {
62
- color: $infoText;
63
- }
64
-
65
-
66
- // Block alerts
67
- // -------------------------
68
-
69
- .alert-block {
70
- padding-top: 14px;
71
- padding-bottom: 14px;
61
+ @include alert-variant($alert-info-bg, $alert-info-border, $alert-info-text);
72
62
  }
73
- .alert-block > p,
74
- .alert-block > ul {
75
- margin-bottom: 0;
63
+ .alert-warning {
64
+ @include alert-variant($alert-warning-bg, $alert-warning-border, $alert-warning-text);
76
65
  }
77
- .alert-block p + p {
78
- margin-top: 5px;
66
+ .alert-danger {
67
+ @include alert-variant($alert-danger-bg, $alert-danger-border, $alert-danger-text);
79
68
  }
@@ -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
+ }
@@ -4,21 +4,23 @@
4
4
 
5
5
 
6
6
  .breadcrumb {
7
- padding: 8px 15px;
8
- margin: 0 0 $baseLineHeight;
7
+ padding: $breadcrumb-padding-vertical $breadcrumb-padding-horizontal;
8
+ margin-bottom: $line-height-computed;
9
9
  list-style: none;
10
- background-color: #f5f5f5;
11
- @include border-radius($baseBorderRadius);
10
+ background-color: $breadcrumb-bg;
11
+ border-radius: $border-radius-base;
12
+
12
13
  > li {
13
14
  display: inline-block;
14
- @include ie7-inline-block();
15
- text-shadow: 0 1px 0 $white;
16
- > .divider {
15
+
16
+ + li:before {
17
+ content: "#{$breadcrumb-separator}\00a0"; // Unicode space added since inline-block means non-collapsing white-space
17
18
  padding: 0 5px;
18
- color: #ccc;
19
+ color: $breadcrumb-color;
19
20
  }
20
21
  }
21
- .active {
22
- color: $grayLight;
22
+
23
+ > .active {
24
+ color: $breadcrumb-active-color;
23
25
  }
24
26
  }
@@ -2,90 +2,87 @@
2
2
  // Button groups
3
3
  // --------------------------------------------------
4
4
 
5
-
6
5
  // Make the div behave like a button
7
- .btn-group {
6
+ .btn-group,
7
+ .btn-group-vertical {
8
8
  position: relative;
9
9
  display: inline-block;
10
- @include ie7-inline-block();
11
- font-size: 0; // remove as part 1 of font-size inline-block hack
12
10
  vertical-align: middle; // match .btn alignment given font-size hack above
13
- white-space: nowrap; // prevent buttons from wrapping when in tight spaces (e.g., the table on the tests page)
14
- @include ie7-restore-left-whitespace();
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
+ }
15
26
  }
16
27
 
17
- // Space out series of button groups
18
- .btn-group + .btn-group {
19
- margin-left: 5px;
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
+ }
20
36
  }
21
37
 
22
38
  // Optional: Group multiple button groups together for a toolbar
23
39
  .btn-toolbar {
24
- font-size: 0; // Hack to remove whitespace that results from using inline-block
25
- margin-top: $baseLineHeight / 2;
26
- margin-bottom: $baseLineHeight / 2;
27
- > .btn + .btn,
28
- > .btn-group + .btn,
29
- > .btn + .btn-group {
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 {
30
50
  margin-left: 5px;
31
51
  }
32
52
  }
33
53
 
34
- // Float them, remove border radius, then re-add to first and last elements
35
- .btn-group > .btn {
36
- position: relative;
37
- @include border-radius(0);
38
- }
39
- .btn-group > .btn + .btn {
40
- margin-left: -1px;
41
- }
42
- .btn-group > .btn,
43
- .btn-group > .dropdown-menu,
44
- .btn-group > .popover {
45
- font-size: $baseFontSize; // redeclare as part 2 of font-size inline-block hack
46
- }
47
-
48
- // Reset fonts for other sizes
49
- .btn-group > .btn-mini {
50
- font-size: $fontSizeMini;
51
- }
52
- .btn-group > .btn-small {
53
- font-size: $fontSizeSmall;
54
- }
55
- .btn-group > .btn-large {
56
- font-size: $fontSizeLarge;
54
+ .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
55
+ border-radius: 0;
57
56
  }
58
57
 
59
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
60
59
  .btn-group > .btn:first-child {
61
60
  margin-left: 0;
62
- @include border-top-left-radius($baseBorderRadius);
63
- @include border-bottom-left-radius($baseBorderRadius);
61
+ &:not(:last-child):not(.dropdown-toggle) {
62
+ @include border-right-radius(0);
63
+ }
64
64
  }
65
65
  // Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it
66
- .btn-group > .btn:last-child,
67
- .btn-group > .dropdown-toggle {
68
- @include border-top-right-radius($baseBorderRadius);
69
- @include border-bottom-right-radius($baseBorderRadius);
66
+ .btn-group > .btn:last-child:not(:first-child),
67
+ .btn-group > .dropdown-toggle:not(:first-child) {
68
+ @include border-left-radius(0);
70
69
  }
71
- // Reset corners for large buttons
72
- .btn-group > .btn.large:first-child {
73
- margin-left: 0;
74
- @include border-top-left-radius($borderRadiusLarge);
75
- @include border-bottom-left-radius($borderRadiusLarge);
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;
76
74
  }
77
- .btn-group > .btn.large:last-child,
78
- .btn-group > .large.dropdown-toggle {
79
- @include border-top-right-radius($borderRadiusLarge);
80
- @include border-bottom-right-radius($borderRadiusLarge);
75
+ .btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
76
+ border-radius: 0;
81
77
  }
82
-
83
- // On hover/focus/active, bring the proper btn to front
84
- .btn-group > .btn:hover,
85
- .btn-group > .btn:focus,
86
- .btn-group > .btn:active,
87
- .btn-group > .btn.active {
88
- z-index: 2;
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);
89
86
  }
90
87
 
91
88
  // On active and open, don't show outline
@@ -95,6 +92,14 @@
95
92
  }
96
93
 
97
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
+
98
103
 
99
104
  // Split button dropdowns
100
105
  // ----------------------
@@ -103,127 +108,133 @@
103
108
  .btn-group > .btn + .dropdown-toggle {
104
109
  padding-left: 8px;
105
110
  padding-right: 8px;
106
- @include box-shadow(inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05));
107
- *padding-top: 5px;
108
- *padding-bottom: 5px;
109
- }
110
- .btn-group > .btn-mini + .dropdown-toggle {
111
- padding-left: 5px;
112
- padding-right: 5px;
113
- *padding-top: 2px;
114
- *padding-bottom: 2px;
115
111
  }
116
- .btn-group > .btn-small + .dropdown-toggle {
117
- *padding-top: 5px;
118
- *padding-bottom: 4px;
119
- }
120
- .btn-group > .btn-large + .dropdown-toggle {
112
+ .btn-group > .btn-lg + .dropdown-toggle {
121
113
  padding-left: 12px;
122
114
  padding-right: 12px;
123
- *padding-top: 7px;
124
- *padding-bottom: 7px;
125
115
  }
126
116
 
127
- .btn-group.open {
128
-
129
- // The clickable button for toggling the menu
130
- // Remove the gradient and set the same inset shadow as the :active state
131
- .dropdown-toggle {
132
- background-image: none;
133
- @include box-shadow(inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05));
134
- }
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));
135
121
 
136
- // Keep the hover's background when dropdown is open
137
- .btn.dropdown-toggle {
138
- background-color: $btnBackgroundHighlight;
139
- }
140
- .btn-primary.dropdown-toggle {
141
- background-color: $btnPrimaryBackgroundHighlight;
142
- }
143
- .btn-warning.dropdown-toggle {
144
- background-color: $btnWarningBackgroundHighlight;
145
- }
146
- .btn-danger.dropdown-toggle {
147
- background-color: $btnDangerBackgroundHighlight;
148
- }
149
- .btn-success.dropdown-toggle {
150
- background-color: $btnSuccessBackgroundHighlight;
151
- }
152
- .btn-info.dropdown-toggle {
153
- background-color: $btnInfoBackgroundHighlight;
154
- }
155
- .btn-inverse.dropdown-toggle {
156
- background-color: $btnInverseBackgroundHighlight;
122
+ // Show no shadow for `.btn-link` since it has no other button styles.
123
+ &.btn-link {
124
+ @include box-shadow(none);
157
125
  }
158
126
  }
159
127
 
160
128
 
161
129
  // Reposition the caret
162
130
  .btn .caret {
163
- margin-top: 8px;
164
131
  margin-left: 0;
165
132
  }
166
133
  // Carets in other button sizes
167
- .btn-large .caret {
168
- margin-top: 6px;
169
- }
170
- .btn-large .caret {
171
- border-left-width: 5px;
172
- border-right-width: 5px;
173
- border-top-width: 5px;
174
- }
175
- .btn-mini .caret,
176
- .btn-small .caret {
177
- margin-top: 8px;
134
+ .btn-lg .caret {
135
+ border-width: $caret-width-large $caret-width-large 0;
136
+ border-bottom-width: 0;
178
137
  }
179
138
  // Upside down carets for .dropup
180
- .dropup .btn-large .caret {
181
- border-bottom-width: 5px;
139
+ .dropup .btn-lg .caret {
140
+ border-width: 0 $caret-width-large $caret-width-large;
182
141
  }
183
142
 
184
143
 
185
-
186
- // Account for other colors
187
- .btn-primary,
188
- .btn-warning,
189
- .btn-danger,
190
- .btn-info,
191
- .btn-success,
192
- .btn-inverse {
193
- .caret {
194
- border-top-color: $white;
195
- border-bottom-color: $white;
196
- }
197
- }
198
-
199
-
200
-
201
144
  // Vertical button groups
202
145
  // ----------------------
203
146
 
204
147
  .btn-group-vertical {
205
- display: inline-block; // makes buttons only take up the width they need
206
- @include ie7-inline-block();
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
+ }
207
172
  }
173
+
208
174
  .btn-group-vertical > .btn {
209
- display: block;
210
- float: none;
211
- max-width: 100%;
212
- @include border-radius(0);
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
+ }
213
186
  }
214
- .btn-group-vertical > .btn + .btn {
215
- margin-left: 0;
216
- margin-top: -1px;
187
+ .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
188
+ border-radius: 0;
217
189
  }
218
- .btn-group-vertical > .btn:first-child {
219
- @include border-radius($baseBorderRadius $baseBorderRadius 0 0);
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
+ }
220
195
  }
221
- .btn-group-vertical > .btn:last-child {
222
- @include border-radius(0 0 $baseBorderRadius $baseBorderRadius);
196
+ .btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
197
+ @include border-top-radius(0);
223
198
  }
224
- .btn-group-vertical > .btn-large:first-child {
225
- @include border-radius($borderRadiusLarge $borderRadiusLarge 0 0);
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
+ }
226
223
  }
227
- .btn-group-vertical > .btn-large:last-child {
228
- @include border-radius(0 0 $borderRadiusLarge $borderRadiusLarge);
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);
229
240
  }