it-logica-application-backbone 0.1.34 → 0.1.35

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.34
1
+ 0.1.35
@@ -4,7 +4,7 @@
4
4
  //= require ./ladas_jstree.js
5
5
  //= require ./jquery.history.js
6
6
  //= require ./ladas_initialize_history.js
7
- //= require ./time_picker.js
7
+ //= require ./jquery-ui-timepicker-addon.js
8
8
 
9
9
 
10
10
  //= require ./jquery.iframe-transport.js
@@ -1,10 +1,10 @@
1
1
  /*
2
2
  * jQuery timepicker addon
3
3
  * By: Trent Richardson [http://trentrichardson.com]
4
- * Version 0.9.7
5
- * Last Modified: 10/02/2011
4
+ * Version 1.0.0
5
+ * Last Modified: 02/05/2012
6
6
  *
7
- * Copyright 2011 Trent Richardson
7
+ * Copyright 2012 Trent Richardson
8
8
  * Dual licensed under the MIT and GPL licenses.
9
9
  * http://trentrichardson.com/Impromptu/GPL-LICENSE.txt
10
10
  * http://trentrichardson.com/Impromptu/MIT-LICENSE.txt
@@ -12,15 +12,21 @@
12
12
  * HERES THE CSS:
13
13
  * .ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }
14
14
  * .ui-timepicker-div dl { text-align: left; }
15
- * .ui-timepicker-div dl dt { height: 25px; }
16
- * .ui-timepicker-div dl dd { margin: -25px 10px 10px 65px; }
15
+ * .ui-timepicker-div dl dt { height: 25px; margin-bottom: -25px; }
16
+ * .ui-timepicker-div dl dd { margin: 0 10px 10px 65px; }
17
17
  * .ui-timepicker-div td { font-size: 90%; }
18
18
  * .ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; }
19
19
  */
20
20
 
21
21
  (function($) {
22
22
 
23
- $.extend($.ui, { timepicker: { version: "0.9.7" } });
23
+ // Prevent "Uncaught RangeError: Maximum call stack size exceeded"
24
+ $.ui.timepicker = $.ui.timepicker || {};
25
+ if ($.ui.timepicker.version) {
26
+ return;
27
+ }
28
+
29
+ $.extend($.ui, { timepicker: { version: "1.0.0" } });
24
30
 
25
31
  /* Time picker manager.
26
32
  Use the singleton instance of this class, $.timepicker, to interact with the time picker.
@@ -54,10 +60,10 @@ function Timepicker() {
54
60
  showMillisec: false,
55
61
  showTimezone: false,
56
62
  showTime: true,
57
- stepHour: 0.05,
58
- stepMinute: 0.05,
59
- stepSecond: 0.05,
60
- stepMillisec: 0.5,
63
+ stepHour: 1,
64
+ stepMinute: 1,
65
+ stepSecond: 1,
66
+ stepMillisec: 1,
61
67
  hour: 0,
62
68
  minute: 0,
63
69
  second: 0,
@@ -83,10 +89,12 @@ function Timepicker() {
83
89
  altFieldTimeOnly: true,
84
90
  showTimepicker: true,
85
91
  timezoneIso8609: false,
86
- timezoneList: null
92
+ timezoneList: null,
93
+ addSliderAccess: false,
94
+ sliderAccessArgs: null
87
95
  };
88
96
  $.extend(this._defaults, this.regional['']);
89
- }
97
+ };
90
98
 
91
99
  $.extend(Timepicker.prototype, {
92
100
  $input: null,
@@ -145,7 +153,7 @@ $.extend(Timepicker.prototype, {
145
153
  tp_inst._defaults = $.extend({}, this._defaults, inlineSettings, o, {
146
154
  beforeShow: function(input, dp_inst) {
147
155
  if ($.isFunction(o.beforeShow))
148
- o.beforeShow(input, dp_inst, tp_inst);
156
+ return o.beforeShow(input, dp_inst, tp_inst);
149
157
  },
150
158
  onChangeMonthYear: function(year, month, dp_inst) {
151
159
  // Update the time as well : this prevents the time from disappearing from the $input field.
@@ -161,8 +169,8 @@ $.extend(Timepicker.prototype, {
161
169
  },
162
170
  timepicker: tp_inst // add timepicker as a property of datepicker: $.datepicker._get(dp_inst, 'timepicker');
163
171
  });
164
- tp_inst.amNames = $.map(tp_inst._defaults.amNames, function(val) { return val.toUpperCase() });
165
- tp_inst.pmNames = $.map(tp_inst._defaults.pmNames, function(val) { return val.toUpperCase() });
172
+ tp_inst.amNames = $.map(tp_inst._defaults.amNames, function(val) { return val.toUpperCase(); });
173
+ tp_inst.pmNames = $.map(tp_inst._defaults.pmNames, function(val) { return val.toUpperCase(); });
166
174
 
167
175
  if (tp_inst._defaults.timezoneList === null) {
168
176
  var timezoneList = [];
@@ -245,7 +253,7 @@ $.extend(Timepicker.prototype, {
245
253
  var dp_dateFormat = $.datepicker._get(this.inst, 'dateFormat');
246
254
  // escape special regex characters in the seperator
247
255
  var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g");
248
- regstr = '.{' + dp_dateFormat.length + ',}' + this._defaults.separator.replace(specials, "\\$&") + regstr;
256
+ regstr = '^.{' + dp_dateFormat.length + ',}?' + this._defaults.separator.replace(specials, "\\$&") + regstr;
249
257
  }
250
258
 
251
259
  treg = timeString.match(new RegExp(regstr, 'i'));
@@ -306,13 +314,13 @@ $.extend(Timepicker.prototype, {
306
314
  // pattern for standard and localized AM/PM markers
307
315
  //########################################################################
308
316
  _getPatternAmpm: function() {
309
- var markers = [];
317
+ var markers = [],
310
318
  o = this._defaults;
311
319
  if (o.amNames)
312
320
  $.merge(markers, o.amNames);
313
321
  if (o.pmNames)
314
322
  $.merge(markers, o.pmNames);
315
- markers = $.map(markers, function(val) { return val.replace(/[.*+?|()\[\]{}\\]/g, '\\$&') });
323
+ markers = $.map(markers, function(val) { return val.replace(/[.*+?|()\[\]{}\\]/g, '\\$&'); });
316
324
  return '(' + markers.join('|') + ')?';
317
325
  },
318
326
 
@@ -341,10 +349,10 @@ $.extend(Timepicker.prototype, {
341
349
  // Added by Peter Medeiros:
342
350
  // - Figure out what the hour/minute/second max should be based on the step values.
343
351
  // - Example: if stepMinute is 15, then minMax is 45.
344
- hourMax = (o.hourMax - ((o.hourMax - o.hourMin) % o.stepHour)).toFixed(0),
345
- minMax = (o.minuteMax - ((o.minuteMax - o.minuteMin) % o.stepMinute)).toFixed(0),
346
- secMax = (o.secondMax - ((o.secondMax - o.secondMin) % o.stepSecond)).toFixed(0),
347
- millisecMax = (o.millisecMax - ((o.millisecMax - o.millisecMin) % o.stepMillisec)).toFixed(0),
352
+ hourMax = parseInt((o.hourMax - ((o.hourMax - o.hourMin) % o.stepHour)) ,10),
353
+ minMax = parseInt((o.minuteMax - ((o.minuteMax - o.minuteMin) % o.stepMinute)) ,10),
354
+ secMax = parseInt((o.secondMax - ((o.secondMax - o.secondMin) % o.stepSecond)) ,10),
355
+ millisecMax = parseInt((o.millisecMax - ((o.millisecMax - o.millisecMin) % o.stepMillisec)) ,10),
348
356
  dp_id = this.inst.id.toString().replace(/([^A-Za-z0-9_])/g, '');
349
357
 
350
358
  // Prevent displaying twice
@@ -362,13 +370,13 @@ $.extend(Timepicker.prototype, {
362
370
  minuteGridSize = 0,
363
371
  secondGridSize = 0,
364
372
  millisecGridSize = 0,
365
- size;
373
+ size = null;
366
374
 
367
375
  // Hours
376
+ html += '<dd class="ui_tpicker_hour"><div id="ui_tpicker_hour_' + dp_id + '"' +
377
+ ((o.showHour) ? '' : noDisplay) + '></div>';
368
378
  if (o.showHour && o.hourGrid > 0) {
369
- html += '<dd class="ui_tpicker_hour">' +
370
- '<div id="ui_tpicker_hour_' + dp_id + '"' + ((o.showHour) ? '' : noDisplay) + '></div>' +
371
- '<div style="padding-left: 1px"><table class="ui-tpicker-grid-label"><tr>';
379
+ html += '<div style="padding-left: 1px"><table class="ui-tpicker-grid-label"><tr>';
372
380
 
373
381
  for (var h = o.hourMin; h <= hourMax; h += parseInt(o.hourGrid,10)) {
374
382
  hourGridSize++;
@@ -382,70 +390,63 @@ $.extend(Timepicker.prototype, {
382
390
  html += '<td>' + tmph + '</td>';
383
391
  }
384
392
 
385
- html += '</tr></table></div>' +
386
- '</dd>';
387
- } else html += '<dd class="ui_tpicker_hour" id="ui_tpicker_hour_' + dp_id + '"' +
388
- ((o.showHour) ? '' : noDisplay) + '></dd>';
393
+ html += '</tr></table></div>';
394
+ }
395
+ html += '</dd>';
389
396
 
397
+ // Minutes
390
398
  html += '<dt class="ui_tpicker_minute_label" id="ui_tpicker_minute_label_' + dp_id + '"' +
391
- ((o.showMinute) ? '' : noDisplay) + '>' + o.minuteText + '</dt>';
399
+ ((o.showMinute) ? '' : noDisplay) + '>' + o.minuteText + '</dt>'+
400
+ '<dd class="ui_tpicker_minute"><div id="ui_tpicker_minute_' + dp_id + '"' +
401
+ ((o.showMinute) ? '' : noDisplay) + '></div>';
392
402
 
393
- // Minutes
394
403
  if (o.showMinute && o.minuteGrid > 0) {
395
- html += '<dd class="ui_tpicker_minute ui_tpicker_minute_' + o.minuteGrid + '">' +
396
- '<div id="ui_tpicker_minute_' + dp_id + '"' +
397
- ((o.showMinute) ? '' : noDisplay) + '></div>' +
398
- '<div style="padding-left: 1px"><table class="ui-tpicker-grid-label"><tr>';
404
+ html += '<div style="padding-left: 1px"><table class="ui-tpicker-grid-label"><tr>';
399
405
 
400
406
  for (var m = o.minuteMin; m <= minMax; m += parseInt(o.minuteGrid,10)) {
401
407
  minuteGridSize++;
402
408
  html += '<td>' + ((m < 10) ? '0' : '') + m + '</td>';
403
409
  }
404
410
 
405
- html += '</tr></table></div>' +
406
- '</dd>';
407
- } else html += '<dd class="ui_tpicker_minute" id="ui_tpicker_minute_' + dp_id + '"' +
408
- ((o.showMinute) ? '' : noDisplay) + '></dd>';
411
+ html += '</tr></table></div>';
412
+ }
413
+ html += '</dd>';
409
414
 
410
415
  // Seconds
411
416
  html += '<dt class="ui_tpicker_second_label" id="ui_tpicker_second_label_' + dp_id + '"' +
412
- ((o.showSecond) ? '' : noDisplay) + '>' + o.secondText + '</dt>';
417
+ ((o.showSecond) ? '' : noDisplay) + '>' + o.secondText + '</dt>'+
418
+ '<dd class="ui_tpicker_second"><div id="ui_tpicker_second_' + dp_id + '"'+
419
+ ((o.showSecond) ? '' : noDisplay) + '></div>';
413
420
 
414
421
  if (o.showSecond && o.secondGrid > 0) {
415
- html += '<dd class="ui_tpicker_second ui_tpicker_second_' + o.secondGrid + '">' +
416
- '<div id="ui_tpicker_second_' + dp_id + '"' +
417
- ((o.showSecond) ? '' : noDisplay) + '></div>' +
418
- '<div style="padding-left: 1px"><table><tr>';
422
+ html += '<div style="padding-left: 1px"><table><tr>';
419
423
 
420
424
  for (var s = o.secondMin; s <= secMax; s += parseInt(o.secondGrid,10)) {
421
425
  secondGridSize++;
422
426
  html += '<td>' + ((s < 10) ? '0' : '') + s + '</td>';
423
427
  }
424
428
 
425
- html += '</tr></table></div>' +
426
- '</dd>';
427
- } else html += '<dd class="ui_tpicker_second" id="ui_tpicker_second_' + dp_id + '"' +
428
- ((o.showSecond) ? '' : noDisplay) + '></dd>';
429
+ html += '</tr></table></div>';
430
+ }
431
+ html += '</dd>';
429
432
 
430
433
  // Milliseconds
431
434
  html += '<dt class="ui_tpicker_millisec_label" id="ui_tpicker_millisec_label_' + dp_id + '"' +
432
- ((o.showMillisec) ? '' : noDisplay) + '>' + o.millisecText + '</dt>';
435
+ ((o.showMillisec) ? '' : noDisplay) + '>' + o.millisecText + '</dt>'+
436
+ '<dd class="ui_tpicker_millisec"><div id="ui_tpicker_millisec_' + dp_id + '"'+
437
+ ((o.showMillisec) ? '' : noDisplay) + '></div>';
433
438
 
434
439
  if (o.showMillisec && o.millisecGrid > 0) {
435
- html += '<dd class="ui_tpicker_millisec ui_tpicker_millisec_' + o.millisecGrid + '">' +
436
- '<div id="ui_tpicker_millisec_' + dp_id + '"' +
437
- ((o.showMillisec) ? '' : noDisplay) + '></div>' +
438
- '<div style="padding-left: 1px"><table><tr>';
440
+ html += '<div style="padding-left: 1px"><table><tr>';
439
441
 
440
442
  for (var l = o.millisecMin; l <= millisecMax; l += parseInt(o.millisecGrid,10)) {
441
443
  millisecGridSize++;
442
- html += '<td>' + ((l < 10) ? '0' : '') + s + '</td>';
444
+ html += '<td>' + ((l < 10) ? '0' : '') + l + '</td>';
443
445
  }
444
446
 
445
- html += '</tr></table></div>' +
446
- '</dd>';
447
- } else html += '<dd class="ui_tpicker_millisec" id="ui_tpicker_millisec_' + dp_id + '"' +
448
- ((o.showMillisec) ? '' : noDisplay) + '></dd>';
447
+ html += '</tr></table></div>';
448
+ }
449
+ html += '</dd>';
449
450
 
450
451
  // Timezone
451
452
  html += '<dt class="ui_tpicker_timezone_label" id="ui_tpicker_timezone_label_' + dp_id + '"' +
@@ -477,6 +478,7 @@ $.extend(Timepicker.prototype, {
477
478
  }
478
479
  });
479
480
 
481
+
480
482
  // Updated by Peter Medeiros:
481
483
  // - Pass in Event and UI instance into slide function
482
484
  this.minute_slider = $tp.find('#ui_tpicker_minute_'+ dp_id).slider({
@@ -486,7 +488,6 @@ $.extend(Timepicker.prototype, {
486
488
  max: minMax,
487
489
  step: o.stepMinute,
488
490
  slide: function(event, ui) {
489
- // update the global minute slider instance value with the current slider value
490
491
  tp_inst.minute_slider.slider( "option", "value", ui.value);
491
492
  tp_inst._onTimeChange();
492
493
  }
@@ -639,6 +640,32 @@ $.extend(Timepicker.prototype, {
639
640
  this.minute_slider.bind('slidestop',onSelectDelegate);
640
641
  this.second_slider.bind('slidestop',onSelectDelegate);
641
642
  this.millisec_slider.bind('slidestop',onSelectDelegate);
643
+
644
+ // slideAccess integration: http://trentrichardson.com/2011/11/11/jquery-ui-sliders-and-touch-accessibility/
645
+ if (this._defaults.addSliderAccess){
646
+ var sliderAccessArgs = this._defaults.sliderAccessArgs;
647
+ setTimeout(function(){ // fix for inline mode
648
+ if($tp.find('.ui-slider-access').length == 0){
649
+ $tp.find('.ui-slider:visible').sliderAccess(sliderAccessArgs);
650
+
651
+ // fix any grids since sliders are shorter
652
+ var sliderAccessWidth = $tp.find('.ui-slider-access:eq(0)').outerWidth(true);
653
+ if(sliderAccessWidth){
654
+ $tp.find('table:visible').each(function(){
655
+ var $g = $(this),
656
+ oldWidth = $g.outerWidth(),
657
+ oldMarginLeft = $g.css('marginLeft').toString().replace('%',''),
658
+ newWidth = oldWidth - sliderAccessWidth,
659
+ newMarginLeft = ((oldMarginLeft * newWidth)/oldWidth) + '%';
660
+
661
+ $g.css({ width: newWidth, marginLeft: newMarginLeft });
662
+ });
663
+ }
664
+ }
665
+ },0);
666
+ }
667
+ // end slideAccess integration
668
+
642
669
  }
643
670
  },
644
671
 
@@ -732,10 +759,10 @@ $.extend(Timepicker.prototype, {
732
759
  }
733
760
 
734
761
  if(adjustSliders !== undefined && adjustSliders === true){
735
- var hourMax = (this._defaults.hourMax - ((this._defaults.hourMax - this._defaults.hourMin) % this._defaults.stepHour)).toFixed(0),
736
- minMax = (this._defaults.minuteMax - ((this._defaults.minuteMax - this._defaults.minuteMin) % this._defaults.stepMinute)).toFixed(0),
737
- secMax = (this._defaults.secondMax - ((this._defaults.secondMax - this._defaults.secondMin) % this._defaults.stepSecond)).toFixed(0),
738
- millisecMax = (this._defaults.millisecMax - ((this._defaults.millisecMax - this._defaults.millisecMin) % this._defaults.stepMillisec)).toFixed(0);
762
+ var hourMax = parseInt((this._defaults.hourMax - ((this._defaults.hourMax - this._defaults.hourMin) % this._defaults.stepHour)) ,10),
763
+ minMax = parseInt((this._defaults.minuteMax - ((this._defaults.minuteMax - this._defaults.minuteMin) % this._defaults.stepMinute)) ,10),
764
+ secMax = parseInt((this._defaults.secondMax - ((this._defaults.secondMax - this._defaults.secondMin) % this._defaults.stepSecond)) ,10),
765
+ millisecMax = parseInt((this._defaults.millisecMax - ((this._defaults.millisecMax - this._defaults.millisecMin) % this._defaults.stepMillisec)) ,10);
739
766
 
740
767
  if(this.hour_slider)
741
768
  this.hour_slider.slider("option", { min: this._defaults.hourMin, max: hourMax }).slider('value', this.hour);
@@ -797,7 +824,8 @@ $.extend(Timepicker.prototype, {
797
824
  }
798
825
  if (o.ampm) this.ampm = ampm;
799
826
 
800
- this._formatTime();
827
+ //this._formatTime();
828
+ this.formattedTime = $.datepicker.formatTime(this._defaults.timeFormat, this, this._defaults);
801
829
  if (this.$timeObj) this.$timeObj.text(this.formattedTime + o.timeSuffix);
802
830
  this.timeDefined = true;
803
831
  if (hasChanged) this._updateDateTime();
@@ -816,40 +844,13 @@ $.extend(Timepicker.prototype, {
816
844
  },
817
845
 
818
846
  //########################################################################
819
- // format the time all pretty...
847
+ // left for any backwards compatibility
820
848
  //########################################################################
821
- _formatTime: function(time, format, ampm) {
822
- if (ampm == undefined) ampm = this._defaults.ampm;
849
+ _formatTime: function(time, format) {
823
850
  time = time || { hour: this.hour, minute: this.minute, second: this.second, millisec: this.millisec, ampm: this.ampm, timezone: this.timezone };
824
851
  var tmptime = (format || this._defaults.timeFormat).toString();
825
852
 
826
- var hour = parseInt(time.hour, 10);
827
- if (ampm) {
828
- if (!$.inArray(time.ampm.toUpperCase(), this.amNames) !== -1)
829
- hour = hour % 12;
830
- if (hour === 0)
831
- hour = 12;
832
- }
833
- tmptime = tmptime.replace(/(?:hh?|mm?|ss?|[tT]{1,2}|[lz])/g, function(match) {
834
- switch (match.toLowerCase()) {
835
- case 'hh': return ('0' + hour).slice(-2);
836
- case 'h': return hour;
837
- case 'mm': return ('0' + time.minute).slice(-2);
838
- case 'm': return time.minute;
839
- case 'ss': return ('0' + time.second).slice(-2);
840
- case 's': return time.second;
841
- case 'l': return ('00' + time.millisec).slice(-3);
842
- case 'z': return time.timezone;
843
- case 't': case 'tt':
844
- if (ampm) {
845
- var _ampm = time.ampm;
846
- if (match.length == 1)
847
- _ampm = _ampm.charAt(0);
848
- return match.charAt(0) == 'T' ? _ampm.toUpperCase() : _ampm.toLowerCase();
849
- }
850
- return '';
851
- }
852
- });
853
+ tmptime = $.datepicker.formatTime(tmptime, time, this._defaults);
853
854
 
854
855
  if (arguments.length) return tmptime;
855
856
  else this.formattedTime = tmptime;
@@ -859,8 +860,8 @@ $.extend(Timepicker.prototype, {
859
860
  // update our input with the new date time..
860
861
  //########################################################################
861
862
  _updateDateTime: function(dp_inst) {
862
- dp_inst = this.inst || dp_inst,
863
- dt = new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay),
863
+ dp_inst = this.inst || dp_inst;
864
+ var dt = $.datepicker._daylightSavingAdjust(new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay)),
864
865
  dateFmt = $.datepicker._get(dp_inst, 'dateFormat'),
865
866
  formatCfg = $.datepicker._getFormatConfig(dp_inst),
866
867
  timeAvailable = dt !== null && this.timeDefined;
@@ -914,7 +915,6 @@ $.fn.extend({
914
915
  //########################################################################
915
916
  datetimepicker: function(o) {
916
917
  o = o || {};
917
- var $input = this,
918
918
  tmp_args = arguments;
919
919
 
920
920
  if (typeof(o) == 'string'){
@@ -934,6 +934,54 @@ $.fn.extend({
934
934
  }
935
935
  });
936
936
 
937
+ //########################################################################
938
+ // format the time all pretty...
939
+ // format = string format of the time
940
+ // time = a {}, not a Date() for timezones
941
+ // options = essentially the regional[].. amNames, pmNames, ampm
942
+ //########################################################################
943
+ $.datepicker.formatTime = function(format, time, options) {
944
+ options = options || {};
945
+ options = $.extend($.timepicker._defaults, options);
946
+ time = $.extend({hour:0, minute:0, second:0, millisec:0, timezone:'+0000'}, time);
947
+
948
+ var tmptime = format;
949
+ var ampmName = options['amNames'][0];
950
+
951
+ var hour = parseInt(time.hour, 10);
952
+ if (options.ampm) {
953
+ if (hour > 11){
954
+ ampmName = options['pmNames'][0];
955
+ if(hour > 12)
956
+ hour = hour % 12;
957
+ }
958
+ if (hour === 0)
959
+ hour = 12;
960
+ }
961
+ tmptime = tmptime.replace(/(?:hh?|mm?|ss?|[tT]{1,2}|[lz])/g, function(match) {
962
+ switch (match.toLowerCase()) {
963
+ case 'hh': return ('0' + hour).slice(-2);
964
+ case 'h': return hour;
965
+ case 'mm': return ('0' + time.minute).slice(-2);
966
+ case 'm': return time.minute;
967
+ case 'ss': return ('0' + time.second).slice(-2);
968
+ case 's': return time.second;
969
+ case 'l': return ('00' + time.millisec).slice(-3);
970
+ case 'z': return time.timezone;
971
+ case 't': case 'tt':
972
+ if (options.ampm) {
973
+ if (match.length == 1)
974
+ ampmName = ampmName.charAt(0);
975
+ return match.charAt(0) == 'T' ? ampmName.toUpperCase() : ampmName.toLowerCase();
976
+ }
977
+ return '';
978
+ }
979
+ });
980
+
981
+ tmptime = $.trim(tmptime);
982
+ return tmptime;
983
+ };
984
+
937
985
  //########################################################################
938
986
  // the bad hack :/ override datepicker so it doesnt close on select
939
987
  // inspired: http://stackoverflow.com/questions/1252512/jquery-datepicker-prevent-closing-picker-when-clicking-a-date/1762378#1762378
@@ -1048,11 +1096,11 @@ $.datepicker._gotoToday = function(id) {
1048
1096
  this._base_gotoToday(id);
1049
1097
  var now = new Date();
1050
1098
  var tp_inst = this._get(inst, 'timepicker');
1051
- if (tp_inst._defaults.showTimezone && tp_inst.timezone_select) {
1099
+ if (tp_inst && tp_inst._defaults.showTimezone && tp_inst.timezone_select) {
1052
1100
  var tzoffset = now.getTimezoneOffset(); // If +0100, returns -60
1053
1101
  var tzsign = tzoffset > 0 ? '-' : '+';
1054
1102
  tzoffset = Math.abs(tzoffset);
1055
- var tzmin = tzoffset % 60
1103
+ var tzmin = tzoffset % 60;
1056
1104
  tzoffset = tzsign + ('0' + (tzoffset - tzmin) / 60).slice(-2) + ('0' + tzmin).slice(-2);
1057
1105
  if (tp_inst._defaults.timezoneIso8609)
1058
1106
  tzoffset = tzoffset.substring(0, 3) + ':' + tzoffset.substring(3);
@@ -1186,10 +1234,15 @@ $.datepicker.parseDate = function(format, value, settings) {
1186
1234
  try {
1187
1235
  date = this._base_parseDate(format, value, settings);
1188
1236
  } catch (err) {
1189
- // Hack! The error message ends with a colon, a space, and
1190
- // the "extra" characters. We rely on that instead of
1191
- // attempting to perfectly reproduce the parsing algorithm.
1192
- date = this._base_parseDate(format, value.substring(0,value.length-(err.length-err.indexOf(':')-2)), settings);
1237
+ if (err.indexOf(":") >= 0) {
1238
+ // Hack! The error message ends with a colon, a space, and
1239
+ // the "extra" characters. We rely on that instead of
1240
+ // attempting to perfectly reproduce the parsing algorithm.
1241
+ date = this._base_parseDate(format, value.substring(0,value.length-(err.length-err.indexOf(':')-2)), settings);
1242
+ } else {
1243
+ // The underlying error was not related to the time
1244
+ throw err;
1245
+ }
1193
1246
  }
1194
1247
  return date;
1195
1248
  };
@@ -1197,18 +1250,15 @@ $.datepicker.parseDate = function(format, value, settings) {
1197
1250
  //#######################################################################################
1198
1251
  // override formatDate to set date with time to the input
1199
1252
  //#######################################################################################
1200
- $.datepicker._base_formatDate=$.datepicker._formatDate;
1253
+ $.datepicker._base_formatDate = $.datepicker._formatDate;
1201
1254
  $.datepicker._formatDate = function(inst, day, month, year){
1202
1255
  var tp_inst = this._get(inst, 'timepicker');
1203
- if(tp_inst)
1204
- {
1205
- if(day)
1206
- var b = this._base_formatDate(inst, day, month, year);
1207
- tp_inst._updateDateTime();
1256
+ if(tp_inst) {
1257
+ tp_inst._updateDateTime(inst);
1208
1258
  return tp_inst.$input.val();
1209
1259
  }
1210
1260
  return this._base_formatDate(inst);
1211
- }
1261
+ };
1212
1262
 
1213
1263
  //#######################################################################################
1214
1264
  // override options setter to add time to maxDate(Time) and minDate(Time). MaxDate
@@ -1218,16 +1268,16 @@ $.datepicker._optionDatepicker = function(target, name, value) {
1218
1268
  var inst = this._getInst(target),
1219
1269
  tp_inst = this._get(inst, 'timepicker');
1220
1270
  if (tp_inst) {
1221
- var min,max,onselect;
1271
+ var min = null, max = null, onselect = null;
1222
1272
  if (typeof name == 'string') { // if min/max was set with the string
1223
- if (name==='minDate' || name==='minDateTime' )
1273
+ if (name === 'minDate' || name === 'minDateTime' )
1224
1274
  min = value;
1225
- else if (name==='maxDate' || name==='maxDateTime')
1275
+ else if (name === 'maxDate' || name === 'maxDateTime')
1226
1276
  max = value;
1227
- else if (name==='onSelect')
1228
- onselect=value;
1277
+ else if (name === 'onSelect')
1278
+ onselect = value;
1229
1279
  } else if (typeof name == 'object') { //if min/max was set with the JSON
1230
- if(name.minDate)
1280
+ if (name.minDate)
1231
1281
  min = name.minDate;
1232
1282
  else if (name.minDateTime)
1233
1283
  min = name.minDateTime;
@@ -1236,26 +1286,27 @@ $.datepicker._optionDatepicker = function(target, name, value) {
1236
1286
  else if (name.maxDateTime)
1237
1287
  max = name.maxDateTime;
1238
1288
  }
1239
- if(min){ //if min was set
1240
- if(min==0)
1241
- min=new Date();
1289
+ if(min) { //if min was set
1290
+ if (min == 0)
1291
+ min = new Date();
1242
1292
  else
1243
- min= new Date(min);
1293
+ min = new Date(min);
1244
1294
 
1245
1295
  tp_inst._defaults.minDate = min;
1246
1296
  tp_inst._defaults.minDateTime = min;
1247
- } else if (max){ //if max was set
1297
+ } else if (max) { //if max was set
1248
1298
  if(max==0)
1249
1299
  max=new Date();
1250
1300
  else
1251
1301
  max= new Date(max);
1252
1302
  tp_inst._defaults.maxDate = max;
1253
1303
  tp_inst._defaults.maxDateTime = max;
1254
- }
1255
- else if (onselect)
1256
- tp_inst._defaults.onSelect=onselect;
1304
+ } else if (onselect)
1305
+ tp_inst._defaults.onSelect = onselect;
1257
1306
  }
1258
- this._base_optionDatepicker(target, name, value);
1307
+ if (value === undefined)
1308
+ return this._base_optionDatepicker(target, name);
1309
+ return this._base_optionDatepicker(target, name, value);
1259
1310
  };
1260
1311
 
1261
1312
  //#######################################################################################
@@ -1267,9 +1318,9 @@ function extendRemove(target, props) {
1267
1318
  if (props[name] === null || props[name] === undefined)
1268
1319
  target[name] = props[name];
1269
1320
  return target;
1270
- }
1321
+ };
1271
1322
 
1272
1323
  $.timepicker = new Timepicker(); // singleton instance
1273
- $.timepicker.version = "0.9.7";
1324
+ $.timepicker.version = "1.0.0";
1274
1325
 
1275
- })(jQuery);
1326
+ })(jQuery);
@@ -24,6 +24,43 @@ function formatLinkForPaginationURL(form_id) {
24
24
  });
25
25
  }
26
26
 
27
+
28
+ function formatLinkForPagination(container_class) {
29
+ var matchedString;
30
+ var page_number;
31
+ //$("#" + paginate_wrapper).find("a").each(function() {
32
+ $("."+ container_class).find("a").each(function() {
33
+ var linkElement = $(this);
34
+ var paginationURL = linkElement.attr("href");
35
+ var matchedString = paginationURL.match(/(\?|\&)page=(\d+)/);
36
+ var page_number = 0;
37
+ if (matchedString) {
38
+ page_number = matchedString[2];
39
+ }
40
+
41
+ linkElement.attr({
42
+ // "url": paginationURL,
43
+ // "href": "#"
44
+ "data-remote": true
45
+ });
46
+
47
+ linkElement.bind('ajax:beforeSend', function(evt, xhr, settings) { ajax_beforeSend_std(evt, xhr, settings) });
48
+ linkElement.bind('ajax:success', function (evt, data, status, xhr) {
49
+ ajax_success_std(evt, data, status, xhr, ["list"]);
50
+ set_anchors_to_alu_items();
51
+ $('#spinner').hide();
52
+
53
+ }
54
+ );
55
+ linkElement.bind('ajax:error', function(evt, xhr, status, error) {
56
+ ajax_error_std(evt, xhr, status, error);
57
+ $('#spinner').hide();
58
+ });
59
+ // linkElement.bind('ajax:complete', function() { });
60
+ //linkElement.bind('ajax:complete', function(){ alert("zblk"); ajax_complete_set_anchors_to_alu_items(); });
61
+ })
62
+ }
63
+
27
64
  //function filter_sort(form_id, order_by_value) {
28
65
  // var default_direction = 'DESC';
29
66
  // var order_by_id = '#' + form_id + '_order_by';
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "it-logica-application-backbone"
8
- s.version = "0.1.34"
8
+ s.version = "0.1.35"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ladas"]
@@ -120,6 +120,7 @@ Gem::Specification.new do |s|
120
120
  "app/assets/images/backbone_images/temp-userphoto.jpg",
121
121
  "app/assets/images/backbone_images/vrchovina-logo.png",
122
122
  "app/assets/javascripts/backbone_js/index.js",
123
+ "app/assets/javascripts/backbone_js/jquery-ui-timepicker-addon.js",
123
124
  "app/assets/javascripts/backbone_js/jquery-ui-timepicker-cs.js",
124
125
  "app/assets/javascripts/backbone_js/jquery.cookie.js",
125
126
  "app/assets/javascripts/backbone_js/jquery.fileupload-ui.js",
@@ -151,7 +152,6 @@ Gem::Specification.new do |s|
151
152
  "app/assets/javascripts/backbone_js/themes/default/d.png",
152
153
  "app/assets/javascripts/backbone_js/themes/default/style.css",
153
154
  "app/assets/javascripts/backbone_js/themes/default/throbber.gif",
154
- "app/assets/javascripts/backbone_js/time_picker.js",
155
155
  "app/assets/javascripts/backbone_js/tinymce/changelog.txt",
156
156
  "app/assets/javascripts/backbone_js/tinymce/examples/css/content.css",
157
157
  "app/assets/javascripts/backbone_js/tinymce/examples/index.html",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: it-logica-application-backbone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.34
4
+ version: 0.1.35
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-07-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: shoulda
16
- requirement: &80627550 !ruby/object:Gem::Requirement
16
+ requirement: &73218150 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *80627550
24
+ version_requirements: *73218150
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rdoc
27
- requirement: &80626760 !ruby/object:Gem::Requirement
27
+ requirement: &73217380 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '3.12'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *80626760
35
+ version_requirements: *73217380
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &80625990 !ruby/object:Gem::Requirement
38
+ requirement: &73216340 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.1.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *80625990
46
+ version_requirements: *73216340
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &80640650 !ruby/object:Gem::Requirement
49
+ requirement: &73231190 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.8.4
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *80640650
57
+ version_requirements: *73231190
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &80640140 !ruby/object:Gem::Requirement
60
+ requirement: &73230890 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *80640140
68
+ version_requirements: *73230890
69
69
  description: longer description of your gem
70
70
  email: ladislav.smola@it-logica.cz
71
71
  executables: []
@@ -177,6 +177,7 @@ files:
177
177
  - app/assets/images/backbone_images/temp-userphoto.jpg
178
178
  - app/assets/images/backbone_images/vrchovina-logo.png
179
179
  - app/assets/javascripts/backbone_js/index.js
180
+ - app/assets/javascripts/backbone_js/jquery-ui-timepicker-addon.js
180
181
  - app/assets/javascripts/backbone_js/jquery-ui-timepicker-cs.js
181
182
  - app/assets/javascripts/backbone_js/jquery.cookie.js
182
183
  - app/assets/javascripts/backbone_js/jquery.fileupload-ui.js
@@ -208,7 +209,6 @@ files:
208
209
  - app/assets/javascripts/backbone_js/themes/default/d.png
209
210
  - app/assets/javascripts/backbone_js/themes/default/style.css
210
211
  - app/assets/javascripts/backbone_js/themes/default/throbber.gif
211
- - app/assets/javascripts/backbone_js/time_picker.js
212
212
  - app/assets/javascripts/backbone_js/tinymce/changelog.txt
213
213
  - app/assets/javascripts/backbone_js/tinymce/examples/css/content.css
214
214
  - app/assets/javascripts/backbone_js/tinymce/examples/index.html
@@ -547,7 +547,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
547
547
  version: '0'
548
548
  segments:
549
549
  - 0
550
- hash: -851767533
550
+ hash: 543518541
551
551
  required_rubygems_version: !ruby/object:Gem::Requirement
552
552
  none: false
553
553
  requirements: