contour 2.1.0.beta10 → 2.1.0.beta11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6776e6885155bb634ed79e9972eca4bb04484be1
4
- data.tar.gz: 563b6159d39f13d55ccaf7e2b3dfb670843d8e85
3
+ metadata.gz: fe26c130959148bee334c419ae2c102cd5d7d05f
4
+ data.tar.gz: 56d679b7d0904a705768cba344f782b38e11f9f4
5
5
  SHA512:
6
- metadata.gz: 5cd3a183b064d1f26a2a38e31f2c0096c09cb5b33c9d7223744f107b951145839d0836a46619456ad4a72eb1d978d800af20c31b2e361b733d2cb46e29ad2ab8
7
- data.tar.gz: 0f46a81f6f5ae183b10686d624f073096c264effe52248fcb0b987520a791e25be737c5fd06a22315aad1788ddba600d5275cc79b7f1d00f27b15ef5bf3ef9e6
6
+ metadata.gz: 756666b84b4e52f3a75643c34acde4f864fe2d852c885962011620fea0f550bfd64dcb1a69318f9a78fa807098079f41d88c3fec6ff249c2435883172d48905e
7
+ data.tar.gz: 5bd902c64cdf2207f31adf31e9e5ee36ee6b7dbe2d360dde5963a65df157e898554a40e6cf8f1954ba231821784fa9dbca9cbdeea7a6175ebabb895f2f7cb15e
data/CHANGELOG.md CHANGED
@@ -1,12 +1,13 @@
1
1
  ## 2.1.0
2
2
 
3
- - Updated Bootstrap to 3.0.0-rc1
3
+ - Updated Bootstrap to 3.0.0-rc2
4
4
  - Added Twitter-Typeahead to replace BS Typeahead functionality
5
5
  - Removed contour-mini pagination theme as the only options in BS3 are pagination-large, pagination, and pagination-small
6
- - Added `btn-cancel` and `btn-cancel-inverse` to complement other BS3 button styles
7
6
  - Menu dropdowns can now have headers
8
7
  - `links: [ ..., { header: 'Dropdown header' }, ... ]`
9
8
  - Removed bootstrap-scroll-modal since it collided with BS3's implementation
9
+ - **Gem Changes**
10
+ - Updated to Devise 3.0.2
10
11
 
11
12
  ## 2.0.0 (July 25, 2013)
12
13
 
@@ -219,7 +219,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
219
219
  var $parent = this.$element.closest('[data-toggle="buttons"]')
220
220
 
221
221
  if ($parent.length) {
222
- var $input = this.$element.find('input').prop('checked', !this.$element.hasClass('active'))
222
+ var $input = this.$element.find('input')
223
+ .prop('checked', !this.$element.hasClass('active'))
224
+ .trigger('change')
223
225
  if ($input.prop('type') === 'radio') $parent.find('.active').removeClass('active')
224
226
  }
225
227
 
@@ -235,7 +237,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
235
237
  $.fn.button = function (option) {
236
238
  return this.each(function () {
237
239
  var $this = $(this)
238
- var data = $this.data('button')
240
+ var data = $this.data('bs.button')
239
241
  var options = typeof option == 'object' && option
240
242
 
241
243
  if (!data) $this.data('bs.button', (data = new Button(this, options)))
@@ -312,6 +314,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
312
314
  Carousel.DEFAULTS = {
313
315
  interval: 5000
314
316
  , pause: 'hover'
317
+ , wrap: true
315
318
  }
316
319
 
317
320
  Carousel.prototype.cycle = function (e) {
@@ -376,12 +379,15 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
376
379
  var fallback = type == 'next' ? 'first' : 'last'
377
380
  var that = this
378
381
 
382
+ if (!$next.length) {
383
+ if (!this.options.wrap) return
384
+ $next = this.$element.find('.item')[fallback]()
385
+ }
386
+
379
387
  this.sliding = true
380
388
 
381
389
  isCycling && this.pause()
382
390
 
383
- $next = $next.length ? $next : this.$element.find('.item')[fallback]()
384
-
385
391
  var e = $.Event('slide.bs.carousel', { relatedTarget: $next[0], direction: direction })
386
392
 
387
393
  if ($next.hasClass('active')) return
@@ -533,7 +539,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
533
539
  this.$element.trigger(startEvent)
534
540
  if (startEvent.isDefaultPrevented()) return
535
541
 
536
- var actives = this.$parent && this.$parent.find('> .accordion-group > .in')
542
+ var actives = this.$parent && this.$parent.find('> .panel > .in')
537
543
 
538
544
  if (actives && actives.length) {
539
545
  var hasData = actives.data('bs.collapse')
@@ -654,7 +660,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
654
660
  var $parent = parent && $(parent)
655
661
 
656
662
  if (!data || !data.transitioning) {
657
- if ($parent) $parent.find('[data-toggle=collapse][data-parent=' + parent + ']').not($this).addClass('collapsed')
663
+ if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed')
658
664
  $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
659
665
  }
660
666
 
@@ -849,7 +855,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
849
855
  this.$backdrop =
850
856
  this.isShown = null
851
857
 
852
- if (this.options.remote) this.$element.find('.modal-body').load(this.options.remote)
858
+ if (this.options.remote) this.$element.load(this.options.remote)
853
859
  }
854
860
 
855
861
  Modal.DEFAULTS = {
@@ -858,13 +864,13 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
858
864
  , show: true
859
865
  }
860
866
 
861
- Modal.prototype.toggle = function () {
862
- return this[!this.isShown ? 'show' : 'hide']()
867
+ Modal.prototype.toggle = function (_relatedTarget) {
868
+ return this[!this.isShown ? 'show' : 'hide'](_relatedTarget)
863
869
  }
864
870
 
865
- Modal.prototype.show = function () {
871
+ Modal.prototype.show = function (_relatedTarget) {
866
872
  var that = this
867
- var e = $.Event('show.bs.modal')
873
+ var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
868
874
 
869
875
  this.$element.trigger(e)
870
876
 
@@ -893,13 +899,15 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
893
899
 
894
900
  that.enforceFocus()
895
901
 
902
+ var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
903
+
896
904
  transition ?
897
905
  that.$element
898
906
  .one($.support.transition.end, function () {
899
- that.$element.focus().trigger('shown.bs.modal')
907
+ that.$element.focus().trigger(e)
900
908
  })
901
909
  .emulateTransitionEnd(300) :
902
- that.$element.focus().trigger('shown.bs.modal')
910
+ that.$element.focus().trigger(e)
903
911
  })
904
912
  }
905
913
 
@@ -921,6 +929,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
921
929
  this.$element
922
930
  .removeClass('in')
923
931
  .attr('aria-hidden', true)
932
+ .off('click.dismiss.modal')
924
933
 
925
934
  $.support.transition && this.$element.hasClass('fade') ?
926
935
  this.$element
@@ -973,7 +982,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
973
982
  this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
974
983
  .appendTo(document.body)
975
984
 
976
- this.$element.on('click', $.proxy(function (e) {
985
+ this.$element.on('click.dismiss.modal', $.proxy(function (e) {
977
986
  if (e.target !== e.currentTarget) return
978
987
  this.options.backdrop == 'static'
979
988
  ? this.$element[0].focus.call(this.$element[0])
@@ -1012,15 +1021,15 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1012
1021
 
1013
1022
  var old = $.fn.modal
1014
1023
 
1015
- $.fn.modal = function (option) {
1024
+ $.fn.modal = function (option, _relatedTarget) {
1016
1025
  return this.each(function () {
1017
1026
  var $this = $(this)
1018
1027
  var data = $this.data('bs.modal')
1019
1028
  var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
1020
1029
 
1021
1030
  if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
1022
- if (typeof option == 'string') data[option]()
1023
- else if (options.show) data.show()
1031
+ if (typeof option == 'string') data[option](_relatedTarget)
1032
+ else if (options.show) data.show(_relatedTarget)
1024
1033
  })
1025
1034
  }
1026
1035
 
@@ -1043,28 +1052,26 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1043
1052
  var $this = $(this)
1044
1053
  var href = $this.attr('href')
1045
1054
  var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
1046
- var option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
1055
+ var option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
1047
1056
 
1048
1057
  e.preventDefault()
1049
1058
 
1050
1059
  $target
1051
- .modal(option)
1060
+ .modal(option, this)
1052
1061
  .one('hide', function () {
1053
1062
  $this.is(':visible') && $this.focus()
1054
1063
  })
1055
1064
  })
1056
1065
 
1057
- $(function () {
1058
- var $body = $(document.body)
1059
- .on('shown.bs.modal', '.modal', function () { $body.addClass('modal-open') })
1060
- .on('hidden.bs.modal', '.modal', function () { $body.removeClass('modal-open') })
1061
- })
1066
+ $(document)
1067
+ .on('shown.bs.modal', '.modal', function () { $(document.body).addClass('modal-open') })
1068
+ .on('hidden.bs.modal', '.modal', function () { $(document.body).removeClass('modal-open') })
1062
1069
 
1063
1070
  }(window.jQuery);
1064
1071
 
1065
1072
  /* ========================================================================
1066
1073
  * Bootstrap: tooltip.js v3.0.0
1067
- * http://twbs.github.com/bootstrap/javascript.html#affix
1074
+ * http://twbs.github.com/bootstrap/javascript.html#tooltip
1068
1075
  * Inspired by the original jQuery.tipsy by Jason Frame
1069
1076
  * ========================================================================
1070
1077
  * Copyright 2012 Twitter, Inc.
@@ -1128,7 +1135,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1128
1135
  var eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
1129
1136
  var eventOut = trigger == 'hover' ? 'mouseleave' : 'blur'
1130
1137
 
1131
- this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1138
+ this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1132
1139
  this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
1133
1140
  }
1134
1141
  }
@@ -1155,16 +1162,20 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1155
1162
  return options
1156
1163
  }
1157
1164
 
1158
- Tooltip.prototype.enter = function (obj) {
1159
- var defaults = this.getDefaults()
1165
+ Tooltip.prototype.getDelegateOptions = function () {
1160
1166
  var options = {}
1167
+ var defaults = this.getDefaults()
1161
1168
 
1162
1169
  this._options && $.each(this._options, function (key, value) {
1163
1170
  if (defaults[key] != value) options[key] = value
1164
1171
  })
1165
1172
 
1173
+ return options
1174
+ }
1175
+
1176
+ Tooltip.prototype.enter = function (obj) {
1166
1177
  var self = obj instanceof this.constructor ?
1167
- obj : $(obj.currentTarget)[this.type](options).data('bs.' + this.type)
1178
+ obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
1168
1179
 
1169
1180
  clearTimeout(self.timeout)
1170
1181
 
@@ -1178,7 +1189,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1178
1189
 
1179
1190
  Tooltip.prototype.leave = function (obj) {
1180
1191
  var self = obj instanceof this.constructor ?
1181
- obj : $(obj.currentTarget)[this.type](this._options).data('bs.' + this.type)
1192
+ obj : $(obj.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type)
1182
1193
 
1183
1194
  clearTimeout(self.timeout)
1184
1195
 
@@ -1243,12 +1254,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1243
1254
  .addClass(placement)
1244
1255
  }
1245
1256
 
1246
- var tp = placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1247
- placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1248
- placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
1249
- /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
1257
+ var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
1250
1258
 
1251
- this.applyPlacement(tp, placement)
1259
+ this.applyPlacement(calculatedOffset, placement)
1252
1260
  this.$element.trigger('shown.bs.' + this.type)
1253
1261
  }
1254
1262
  }
@@ -1260,25 +1268,33 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1260
1268
  var height = $tip[0].offsetHeight
1261
1269
 
1262
1270
  // manually read margins because getBoundingClientRect includes difference
1263
- offset.top = offset.top + parseInt($tip.css('margin-top'), 10)
1264
- offset.left = offset.left + parseInt($tip.css('margin-left'), 10)
1271
+ var marginTop = parseInt($tip.css('margin-top'), 10)
1272
+ var marginLeft = parseInt($tip.css('margin-left'), 10)
1273
+
1274
+ // we must check for NaN for ie 8/9
1275
+ if (isNaN(marginTop)) marginTop = 0
1276
+ if (isNaN(marginLeft)) marginLeft = 0
1277
+
1278
+ offset.top = offset.top + marginTop
1279
+ offset.left = offset.left + marginLeft
1265
1280
 
1266
1281
  $tip
1267
1282
  .offset(offset)
1268
1283
  .addClass('in')
1269
1284
 
1285
+ // check to see if placing tip in new offset caused the tip to resize itself
1270
1286
  var actualWidth = $tip[0].offsetWidth
1271
1287
  var actualHeight = $tip[0].offsetHeight
1272
1288
 
1273
1289
  if (placement == 'top' && actualHeight != height) {
1274
1290
  replace = true
1275
- offset.top = offset.top + height - actualHeight
1291
+ offset.top = offset.top + height - actualHeight
1276
1292
  }
1277
1293
 
1278
- if (placement == 'bottom' || placement == 'top') {
1294
+ if (/bottom|top/.test(placement)) {
1279
1295
  var delta = 0
1280
1296
 
1281
- if (offset.left < 0){
1297
+ if (offset.left < 0) {
1282
1298
  delta = offset.left * -2
1283
1299
  offset.left = 0
1284
1300
 
@@ -1313,6 +1329,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1313
1329
  var $tip = this.tip()
1314
1330
  var e = $.Event('hide.bs.' + this.type)
1315
1331
 
1332
+ function complete() { $tip.detach() }
1333
+
1316
1334
  this.$element.trigger(e)
1317
1335
 
1318
1336
  if (e.isDefaultPrevented()) return
@@ -1321,9 +1339,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1321
1339
 
1322
1340
  $.support.transition && this.$tip.hasClass('fade') ?
1323
1341
  $tip
1324
- .one($.support.transition.end, $tip.detach)
1342
+ .one($.support.transition.end, complete)
1325
1343
  .emulateTransitionEnd(150) :
1326
- $tip.detach()
1344
+ complete()
1327
1345
 
1328
1346
  this.$element.trigger('hidden.bs.' + this.type)
1329
1347
 
@@ -1349,6 +1367,13 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1349
1367
  }, this.$element.offset())
1350
1368
  }
1351
1369
 
1370
+ Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
1371
+ return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1372
+ placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1373
+ placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
1374
+ /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
1375
+ }
1376
+
1352
1377
  Tooltip.prototype.getTitle = function () {
1353
1378
  var title
1354
1379
  var $e = this.$element
@@ -1364,8 +1389,8 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1364
1389
  return this.$tip = this.$tip || $(this.options.template)
1365
1390
  }
1366
1391
 
1367
- Tooltip.prototype.arrow =function(){
1368
- return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
1392
+ Tooltip.prototype.arrow = function () {
1393
+ return this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow')
1369
1394
  }
1370
1395
 
1371
1396
  Tooltip.prototype.validate = function () {
@@ -1389,7 +1414,7 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1389
1414
  }
1390
1415
 
1391
1416
  Tooltip.prototype.toggle = function (e) {
1392
- var self = e ? $(e.currentTarget)[this.type](this._options).data('bs.' + this.type) : this
1417
+ var self = e ? $(e.currentTarget)[this.type](this.getDelegateOptions()).data('bs.' + this.type) : this
1393
1418
  self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
1394
1419
  }
1395
1420
 
@@ -1487,7 +1512,9 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1487
1512
 
1488
1513
  $tip.removeClass('fade top bottom left right in')
1489
1514
 
1490
- $tip.find('.popover-title:empty').hide()
1515
+ // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
1516
+ // this manually by checking the contents.
1517
+ if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
1491
1518
  }
1492
1519
 
1493
1520
  Popover.prototype.hasContent = function () {
@@ -1504,15 +1531,15 @@ if (!jQuery) { throw new Error("Bootstrap requires jQuery") }
1504
1531
  o.content)
1505
1532
  }
1506
1533
 
1534
+ Popover.prototype.arrow = function () {
1535
+ return this.$arrow = this.$arrow || this.tip().find('.arrow')
1536
+ }
1537
+
1507
1538
  Popover.prototype.tip = function () {
1508
1539
  if (!this.$tip) this.$tip = $(this.options.template)
1509
1540
  return this.$tip
1510
1541
  }
1511
1542
 
1512
- Popover.prototype.destroy = function () {
1513
- this.hide().$element.off('.' + this.type).removeData(this.type)
1514
- }
1515
-
1516
1543
 
1517
1544
  // POPOVER PLUGIN DEFINITION
1518
1545
  // =========================
@@ -6,7 +6,7 @@
6
6
  //
7
7
  //= require external/jquery-ui-1.10.0.custom.min.js
8
8
  //
9
- //= require bootstrap/v3.0.0-rc1/bootstrap
9
+ //= require bootstrap/v3.0.0-rc2/bootstrap
10
10
  //
11
11
  //= require twitter-bootstrap/bootstrap
12
12
  //
@@ -1,7 +1,7 @@
1
1
  /* bootstrap-base-overrides.css */
2
2
  /* These overrides come after bootstrap.css */
3
3
 
4
- body { padding-top: 50px; padding-bottom: 90px; }
4
+ body { padding-top: 70px; padding-bottom: 90px; }
5
5
 
6
6
  /* Skinnier titles */
7
7
 
@@ -52,7 +52,11 @@ dt, dd {
52
52
 
53
53
  /* Make sure datepicker shows up ontop of bootstrap modals */
54
54
  .datepicker {
55
- z-index: 10000 !important;;
55
+ z-index: 10000 !important;
56
+ }
57
+
58
+ .datepicker-dropdown {
59
+ padding: 4px;
56
60
  }
57
61
 
58
62
  /* Make sure some text is always veiwable in the form control */
@@ -99,40 +103,6 @@ dt, dd {
99
103
  border-color: #c9302c;
100
104
  }
101
105
 
102
- .btn-cancel {
103
- color: #777;
104
- background-color: #ededed;;
105
- }
106
-
107
- .btn-cancel:hover,
108
- .btn-cancel:focus,
109
- .btn-cancel:active,
110
- .btn-cancel.active,
111
- .btn-cancel.disabled,
112
- .btn-cancel[disabled] {
113
- color: #fff;
114
- background-color: #777;
115
- border-color: #777;
116
- }
117
-
118
-
119
- .btn-cancel-inverse {
120
- border: 1px solid #ededed;
121
- color: #777;
122
- background-color: white;
123
- }
124
-
125
- .btn-cancel-inverse:hover,
126
- .btn-cancel-inverse:focus,
127
- .btn-cancel-inverse:active,
128
- .btn-cancel-inverse.active,
129
- .btn-cancel-inverse.disabled,
130
- .btn-cancel-inverse[disabled] {
131
- color: #fff;
132
- background-color: #777;
133
- border-color: #777;
134
- }
135
-
136
106
  .form-inline select,
137
107
  .form-inline input[type="text"],
138
108
  .form-inline input[type="password"] {
@@ -142,9 +112,3 @@ dt, dd {
142
112
  .radio, .checkbox {
143
113
  min-height: 35px;
144
114
  }
145
-
146
- /* Make default active gray instead of black next to black to give more contrast between selected options */
147
- .btn.btn-default:active, .btn.active.btn-default {
148
- background-color: #ededed;
149
- color: #333333;
150
- }