xdan-datetimepicker-rails 2.5.3 → 2.5.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3de81d390690507f0e72a10dbb116998465474cd
4
- data.tar.gz: 557937cb2316d9300bf91a8679614e044e281677
3
+ metadata.gz: 12f2c45dc2a91fb2808492cdd992e245cbc4b029
4
+ data.tar.gz: ae06d8609db5ca2d3c2d93ab4752af49d7f32ccf
5
5
  SHA512:
6
- metadata.gz: 75a783c8bd2e98645988503ac9a3bf88b02c14d646c1c47ee6c1ac7d6658147dc44d2b3a6c2a4f24b2b33727968ba6cc438dffeabd2409bd043b5c6c47b58690
7
- data.tar.gz: c4c801fc2d73bbc5c0e3714a0c1bf13863ee50f4b51944e98794bb1874a7bd7946f6559530b6e0aa1842639b09720b996eb2a3a9e263b6ffb23e177e7b180aa7
6
+ metadata.gz: f4152a014c574ff37944d617428b28778cef52e45373c3253c5cce42f24b4ea4cfffb622b3dc34ddebde706926b4b62f1ca7b56f939b4ac90c9214695fd7f369
7
+ data.tar.gz: 616470d0b3862380516f88b6ac9a5ddcc504a0495812d0549b98c332f234a289bf2552a0c883665f0fe26aea8506848255cb2ec71e014ca2226e9254917d344c
@@ -575,7 +575,7 @@ var DateFormatter;
575
575
  }
576
576
  };
577
577
  })();/**
578
- * @preserve jQuery DateTimePicker plugin v2.5.1
578
+ * @preserve jQuery DateTimePicker plugin v2.5.4
579
579
  * @homepage http://xdsoft.net/jqplugins/datetimepicker/
580
580
  * @author Chupurnov Valeriy (<chupurnov@gmail.com>)
581
581
  */
@@ -1501,7 +1501,8 @@ var DateFormatter;
1501
1501
  setPos,
1502
1502
  timer = 0,
1503
1503
  _xdsoft_datetime,
1504
- forEachAncestorOf;
1504
+ forEachAncestorOf,
1505
+ throttle;
1505
1506
 
1506
1507
  if (options.id) {
1507
1508
  datetimepicker.attr('id', options.id);
@@ -1755,21 +1756,23 @@ var DateFormatter;
1755
1756
  if (options.allowBlank && (!$.trim($(this).val()).length || (typeof options.mask == "string" && $.trim($(this).val()) === options.mask.replace(/[0-9]/g, '_')))) {
1756
1757
  $(this).val(null);
1757
1758
  datetimepicker.data('xdsoft_datetime').empty();
1758
- } else if (!dateHelper.parseDate($(this).val(), options.format)) {
1759
- var splittedHours = +([$(this).val()[0], $(this).val()[1]].join('')),
1760
- splittedMinutes = +([$(this).val()[2], $(this).val()[3]].join(''));
1761
-
1762
- // parse the numbers as 0312 => 03:12
1763
- if (!options.datepicker && options.timepicker && splittedHours >= 0 && splittedHours < 24 && splittedMinutes >= 0 && splittedMinutes < 60) {
1764
- $(this).val([splittedHours, splittedMinutes].map(function (item) {
1765
- return item > 9 ? item : '0' + item;
1766
- }).join(':'));
1759
+ } else {
1760
+ var d = dateHelper.parseDate($(this).val(), options.format);
1761
+ if (d) { // parseDate() may skip some invalid parts like date or time, so make it clear for user: show parsed date/time
1762
+ $(this).val(dateHelper.formatDate(d, options.format));
1767
1763
  } else {
1768
- $(this).val(dateHelper.formatDate(_xdsoft_datetime.now(), options.format));
1764
+ var splittedHours = +([$(this).val()[0], $(this).val()[1]].join('')),
1765
+ splittedMinutes = +([$(this).val()[2], $(this).val()[3]].join(''));
1766
+
1767
+ // parse the numbers as 0312 => 03:12
1768
+ if (!options.datepicker && options.timepicker && splittedHours >= 0 && splittedHours < 24 && splittedMinutes >= 0 && splittedMinutes < 60) {
1769
+ $(this).val([splittedHours, splittedMinutes].map(function (item) {
1770
+ return item > 9 ? item : '0' + item;
1771
+ }).join(':'));
1772
+ } else {
1773
+ $(this).val(dateHelper.formatDate(_xdsoft_datetime.now(), options.format));
1774
+ }
1769
1775
  }
1770
-
1771
- datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
1772
- } else {
1773
1776
  datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
1774
1777
  }
1775
1778
 
@@ -1852,8 +1855,20 @@ var DateFormatter;
1852
1855
  return !isNaN(d.getTime());
1853
1856
  };
1854
1857
 
1855
- _this.setCurrentTime = function (dTime) {
1856
- _this.currentTime = (typeof dTime === 'string') ? _this.strToDateTime(dTime) : _this.isValidDate(dTime) ? dTime : _this.now();
1858
+ _this.setCurrentTime = function (dTime, requireValidDate) {
1859
+ if (typeof dTime === 'string') {
1860
+ _this.currentTime = _this.strToDateTime(dTime);
1861
+ }
1862
+ else if (_this.isValidDate(dTime)) {
1863
+ _this.currentTime = dTime;
1864
+ }
1865
+ else if (!dTime && !requireValidDate && options.allowBlank) {
1866
+ _this.currentTime = null;
1867
+ }
1868
+ else {
1869
+ _this.currentTime = _this.now();
1870
+ }
1871
+
1857
1872
  datetimepicker.trigger('xchange.xdsoft');
1858
1873
  };
1859
1874
 
@@ -2006,7 +2021,7 @@ var DateFormatter;
2006
2021
  .find('.xdsoft_today_button')
2007
2022
  .on('touchend mousedown.xdsoft', function () {
2008
2023
  datetimepicker.data('changed', true);
2009
- _xdsoft_datetime.setCurrentTime(0);
2024
+ _xdsoft_datetime.setCurrentTime(0, true);
2010
2025
  datetimepicker.trigger('afterOpen.xdsoft');
2011
2026
  }).on('dblclick.xdsoft', function () {
2012
2027
  var currentDate = _xdsoft_datetime.getCurrentTime(), minDate, maxDate;
@@ -2103,6 +2118,10 @@ var DateFormatter;
2103
2118
  xchangeTimer = setTimeout(function () {
2104
2119
 
2105
2120
  if (_xdsoft_datetime.currentTime === undefined || _xdsoft_datetime.currentTime === null) {
2121
+ //In case blanks are allowed, delay construction until we have a valid date
2122
+ if (options.allowBlank)
2123
+ return;
2124
+
2106
2125
  _xdsoft_datetime.currentTime = _xdsoft_datetime.now();
2107
2126
  }
2108
2127
 
@@ -2828,7 +2847,7 @@ var DateFormatter;
2828
2847
  }
2829
2848
 
2830
2849
  triggerAfterOpen = true;
2831
- _xdsoft_datetime.setCurrentTime(getCurrentValue());
2850
+ _xdsoft_datetime.setCurrentTime(getCurrentValue(), true);
2832
2851
  if(options.mask) {
2833
2852
  setMask(options);
2834
2853
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @preserve jQuery DateTimePicker plugin v2.5.3
2
+ * @preserve jQuery DateTimePicker plugin v2.5.4
3
3
  * @homepage http://xdsoft.net/jqplugins/datetimepicker/
4
4
  * @author Chupurnov Valeriy (<chupurnov@gmail.com>)
5
5
  */
@@ -925,7 +925,8 @@
925
925
  setPos,
926
926
  timer = 0,
927
927
  _xdsoft_datetime,
928
- forEachAncestorOf;
928
+ forEachAncestorOf,
929
+ throttle;
929
930
 
930
931
  if (options.id) {
931
932
  datetimepicker.attr('id', options.id);
@@ -1179,21 +1180,23 @@
1179
1180
  if (options.allowBlank && (!$.trim($(this).val()).length || (typeof options.mask == "string" && $.trim($(this).val()) === options.mask.replace(/[0-9]/g, '_')))) {
1180
1181
  $(this).val(null);
1181
1182
  datetimepicker.data('xdsoft_datetime').empty();
1182
- } else if (!dateHelper.parseDate($(this).val(), options.format)) {
1183
- var splittedHours = +([$(this).val()[0], $(this).val()[1]].join('')),
1184
- splittedMinutes = +([$(this).val()[2], $(this).val()[3]].join(''));
1185
-
1186
- // parse the numbers as 0312 => 03:12
1187
- if (!options.datepicker && options.timepicker && splittedHours >= 0 && splittedHours < 24 && splittedMinutes >= 0 && splittedMinutes < 60) {
1188
- $(this).val([splittedHours, splittedMinutes].map(function (item) {
1189
- return item > 9 ? item : '0' + item;
1190
- }).join(':'));
1183
+ } else {
1184
+ var d = dateHelper.parseDate($(this).val(), options.format);
1185
+ if (d) { // parseDate() may skip some invalid parts like date or time, so make it clear for user: show parsed date/time
1186
+ $(this).val(dateHelper.formatDate(d, options.format));
1191
1187
  } else {
1192
- $(this).val(dateHelper.formatDate(_xdsoft_datetime.now(), options.format));
1188
+ var splittedHours = +([$(this).val()[0], $(this).val()[1]].join('')),
1189
+ splittedMinutes = +([$(this).val()[2], $(this).val()[3]].join(''));
1190
+
1191
+ // parse the numbers as 0312 => 03:12
1192
+ if (!options.datepicker && options.timepicker && splittedHours >= 0 && splittedHours < 24 && splittedMinutes >= 0 && splittedMinutes < 60) {
1193
+ $(this).val([splittedHours, splittedMinutes].map(function (item) {
1194
+ return item > 9 ? item : '0' + item;
1195
+ }).join(':'));
1196
+ } else {
1197
+ $(this).val(dateHelper.formatDate(_xdsoft_datetime.now(), options.format));
1198
+ }
1193
1199
  }
1194
-
1195
- datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
1196
- } else {
1197
1200
  datetimepicker.data('xdsoft_datetime').setCurrentTime($(this).val());
1198
1201
  }
1199
1202
 
@@ -1276,8 +1279,20 @@
1276
1279
  return !isNaN(d.getTime());
1277
1280
  };
1278
1281
 
1279
- _this.setCurrentTime = function (dTime) {
1280
- _this.currentTime = (typeof dTime === 'string') ? _this.strToDateTime(dTime) : _this.isValidDate(dTime) ? dTime : _this.now();
1282
+ _this.setCurrentTime = function (dTime, requireValidDate) {
1283
+ if (typeof dTime === 'string') {
1284
+ _this.currentTime = _this.strToDateTime(dTime);
1285
+ }
1286
+ else if (_this.isValidDate(dTime)) {
1287
+ _this.currentTime = dTime;
1288
+ }
1289
+ else if (!dTime && !requireValidDate && options.allowBlank) {
1290
+ _this.currentTime = null;
1291
+ }
1292
+ else {
1293
+ _this.currentTime = _this.now();
1294
+ }
1295
+
1281
1296
  datetimepicker.trigger('xchange.xdsoft');
1282
1297
  };
1283
1298
 
@@ -1430,7 +1445,7 @@
1430
1445
  .find('.xdsoft_today_button')
1431
1446
  .on('touchend mousedown.xdsoft', function () {
1432
1447
  datetimepicker.data('changed', true);
1433
- _xdsoft_datetime.setCurrentTime(0);
1448
+ _xdsoft_datetime.setCurrentTime(0, true);
1434
1449
  datetimepicker.trigger('afterOpen.xdsoft');
1435
1450
  }).on('dblclick.xdsoft', function () {
1436
1451
  var currentDate = _xdsoft_datetime.getCurrentTime(), minDate, maxDate;
@@ -1527,6 +1542,10 @@
1527
1542
  xchangeTimer = setTimeout(function () {
1528
1543
 
1529
1544
  if (_xdsoft_datetime.currentTime === undefined || _xdsoft_datetime.currentTime === null) {
1545
+ //In case blanks are allowed, delay construction until we have a valid date
1546
+ if (options.allowBlank)
1547
+ return;
1548
+
1530
1549
  _xdsoft_datetime.currentTime = _xdsoft_datetime.now();
1531
1550
  }
1532
1551
 
@@ -2252,7 +2271,7 @@
2252
2271
  }
2253
2272
 
2254
2273
  triggerAfterOpen = true;
2255
- _xdsoft_datetime.setCurrentTime(getCurrentValue());
2274
+ _xdsoft_datetime.setCurrentTime(getCurrentValue(), true);
2256
2275
  if(options.mask) {
2257
2276
  setMask(options);
2258
2277
  }
@@ -1,3 +1,3 @@
1
1
  module XdanDatetimepickerRails
2
- VERSION = '2.5.3'
2
+ VERSION = '2.5.4'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xdan-datetimepicker-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.3
4
+ version: 2.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua Kovach