rails_admin 0.6.5 → 0.6.6

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.

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
  }