jquery-timepicker-rails 0.0.2 → 0.1.0
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.
| @@ -1,8 +1,14 @@ | |
| 1 1 | 
             
            $(function() {
         | 
| 2 2 |  | 
| 3 | 
            +
            	var DATE_FORMAT = 'Y-m-d';
         | 
| 4 | 
            +
            	var DATEPICKER_FORMAT = 'yyyy-m-d';
         | 
| 5 | 
            +
             | 
| 3 6 | 
             
            	$('.datepair input.date').each(function(){
         | 
| 4 7 | 
             
            		var $this = $(this);
         | 
| 5 | 
            -
            		$this.datepicker({ | 
| 8 | 
            +
            		$this.datepicker({
         | 
| 9 | 
            +
            			'format': DATEPICKER_FORMAT,
         | 
| 10 | 
            +
            			'autoclose': true
         | 
| 11 | 
            +
            		});
         | 
| 6 12 |  | 
| 7 13 | 
             
            		if ($this.hasClass('start') || $this.hasClass('end')) {
         | 
| 8 14 | 
             
            			$this.on('changeDate change', doDatepair);
         | 
| @@ -61,7 +67,7 @@ $(function() { | |
| 61 67 | 
             
            		if (target.val() == '') {
         | 
| 62 68 | 
             
            			return;
         | 
| 63 69 | 
             
            		}
         | 
| 64 | 
            -
             | 
| 70 | 
            +
             | 
| 65 71 | 
             
            		var container = target.closest('.datepair');
         | 
| 66 72 |  | 
| 67 73 | 
             
            		if (target.hasClass('date')) {
         | 
| @@ -88,7 +94,7 @@ $(function() { | |
| 88 94 |  | 
| 89 95 | 
             
            		if (oldDelta && target.hasClass('start')) {
         | 
| 90 96 | 
             
            			var newEnd = new Date(startDate.getTime()+oldDelta);
         | 
| 91 | 
            -
            			end.val(newEnd.format( | 
| 97 | 
            +
            			end.val(newEnd.format(DATE_FORMAT));
         | 
| 92 98 | 
             
            			end.datepicker('update');
         | 
| 93 99 | 
             
            			return;
         | 
| 94 100 |  | 
| @@ -99,10 +105,10 @@ $(function() { | |
| 99 105 | 
             
            				newDelta = 0;
         | 
| 100 106 |  | 
| 101 107 | 
             
            				if (target.hasClass('start')) {
         | 
| 102 | 
            -
            					end.val( | 
| 108 | 
            +
            					end.val(start.val());
         | 
| 103 109 | 
             
            					end.datepicker('update');
         | 
| 104 110 | 
             
            				} else if (target.hasClass('end')) {
         | 
| 105 | 
            -
            					start.val( | 
| 111 | 
            +
            					start.val(end.val());
         | 
| 106 112 | 
             
            					start.datepicker('update');
         | 
| 107 113 | 
             
            				}
         | 
| 108 114 | 
             
            			}
         | 
| @@ -185,7 +191,7 @@ $(function() { | |
| 185 191 | 
             
            			if (dateDelta || dateDelta === 0) {
         | 
| 186 192 | 
             
            				var endDate =  new Date(endInput.val());
         | 
| 187 193 | 
             
            				var newEnd = new Date(endDate.getTime() + endDateAdvance);
         | 
| 188 | 
            -
            				endInput.val(newEnd.format( | 
| 194 | 
            +
            				endInput.val(newEnd.format(DATE_FORMAT));
         | 
| 189 195 | 
             
            				endInput.datepicker('update');
         | 
| 190 196 | 
             
            				container.data('dateDelta', dateDelta + endDateAdvance);
         | 
| 191 197 | 
             
            			}
         | 
| @@ -2,15 +2,22 @@ | |
| 2 2 | 
             
            jquery-timepicker
         | 
| 3 3 | 
             
            http://jonthornton.github.com/jquery-timepicker/
         | 
| 4 4 |  | 
| 5 | 
            -
            requires jQuery 1. | 
| 5 | 
            +
            requires jQuery 1.7+
         | 
| 6 6 | 
             
            ************************/
         | 
| 7 7 |  | 
| 8 8 |  | 
| 9 | 
            -
             | 
| 10 | 
            -
            {
         | 
| 11 | 
            -
             | 
| 9 | 
            +
            (function (factory) {
         | 
| 10 | 
            +
                if (typeof define === 'function' && define.amd) {
         | 
| 11 | 
            +
                    // AMD. Register as an anonymous module.
         | 
| 12 | 
            +
                    define(['jquery'], factory);
         | 
| 13 | 
            +
                } else {
         | 
| 14 | 
            +
                    // Browser globals
         | 
| 15 | 
            +
                    factory(jQuery);
         | 
| 16 | 
            +
                }
         | 
| 17 | 
            +
            }(function ($) {
         | 
| 12 18 | 
             
            	var _baseDate = _generateBaseDate();
         | 
| 13 19 | 
             
            	var _ONE_DAY = 86400;
         | 
| 20 | 
            +
            	var _closeEvent = 'ontouchstart' in document ? 'touchstart' : 'mousedown';
         | 
| 14 21 | 
             
            	var _defaults =	{
         | 
| 15 22 | 
             
            		className: null,
         | 
| 16 23 | 
             
            		minTime: null,
         | 
| @@ -21,7 +28,9 @@ requires jQuery 1.6+ | |
| 21 28 | 
             
            		timeFormat: 'g:ia',
         | 
| 22 29 | 
             
            		scrollDefaultNow: false,
         | 
| 23 30 | 
             
            		scrollDefaultTime: false,
         | 
| 24 | 
            -
            		selectOnBlur: false
         | 
| 31 | 
            +
            		selectOnBlur: false,
         | 
| 32 | 
            +
            		forceRoundTime: false,
         | 
| 33 | 
            +
            		appendTo: 'body'
         | 
| 25 34 | 
             
            	};
         | 
| 26 35 | 
             
            	var _lang = {
         | 
| 27 36 | 
             
            		decimal: '.',
         | 
| @@ -87,8 +96,10 @@ requires jQuery 1.6+ | |
| 87 96 |  | 
| 88 97 | 
             
            				if (!globalInit) {
         | 
| 89 98 | 
             
            					// close the dropdown when container loses focus
         | 
| 90 | 
            -
            					$('body').on( | 
| 91 | 
            -
            						 | 
| 99 | 
            +
            					$('body').on(_closeEvent, function(e) {
         | 
| 100 | 
            +
            						var target = $(e.target);
         | 
| 101 | 
            +
            						var input = target.closest('.ui-timepicker-input');
         | 
| 102 | 
            +
            						if (input.length === 0 && target.closest('.ui-timepicker-list').length === 0) {
         | 
| 92 103 | 
             
            							methods.hide();
         | 
| 93 104 | 
             
            						}
         | 
| 94 105 | 
             
            					});
         | 
| @@ -100,6 +111,12 @@ requires jQuery 1.6+ | |
| 100 111 | 
             
            		show: function(e)
         | 
| 101 112 | 
             
            		{
         | 
| 102 113 | 
             
            			var self = $(this);
         | 
| 114 | 
            +
             | 
| 115 | 
            +
            			if ('ontouchstart' in document) {
         | 
| 116 | 
            +
            				// block the keyboard on mobile devices
         | 
| 117 | 
            +
            				self.blur();
         | 
| 118 | 
            +
            			}
         | 
| 119 | 
            +
             | 
| 103 120 | 
             
            			var list = self.data('timepicker-list');
         | 
| 104 121 |  | 
| 105 122 | 
             
            			// check if input is readonly
         | 
| @@ -108,7 +125,7 @@ requires jQuery 1.6+ | |
| 108 125 | 
             
            			}
         | 
| 109 126 |  | 
| 110 127 | 
             
            			// check if list needs to be rendered
         | 
| 111 | 
            -
            			if (!list || list.length  | 
| 128 | 
            +
            			if (!list || list.length === 0) {
         | 
| 112 129 | 
             
            				_render(self);
         | 
| 113 130 | 
             
            				list = self.data('timepicker-list');
         | 
| 114 131 | 
             
            			}
         | 
| @@ -127,15 +144,12 @@ requires jQuery 1.6+ | |
| 127 144 | 
             
            			// make sure other pickers are hidden
         | 
| 128 145 | 
             
            			methods.hide();
         | 
| 129 146 |  | 
| 130 | 
            -
            			var topMargin = parseInt(self.css('marginTop').slice(0, -2));
         | 
| 131 | 
            -
            			if (!topMargin) topMargin = 0; // correct for IE returning "auto"
         | 
| 132 | 
            -
             | 
| 133 147 | 
             
            			if ((self.offset().top + self.outerHeight(true) + list.outerHeight()) > $(window).height() + $(window).scrollTop()) {
         | 
| 134 148 | 
             
            				// position the dropdown on top
         | 
| 135 | 
            -
            				list.css({ 'left':(self.offset().left), 'top': self.offset().top  | 
| 149 | 
            +
            				list.css({ 'left':(self.offset().left), 'top': self.offset().top - list.outerHeight() });
         | 
| 136 150 | 
             
            			} else {
         | 
| 137 151 | 
             
            				// put it under the input
         | 
| 138 | 
            -
            				list.css({ 'left':(self.offset().left), 'top': self.offset().top +  | 
| 152 | 
            +
            				list.css({ 'left':(self.offset().left), 'top': self.offset().top + self.outerHeight() });
         | 
| 139 153 | 
             
            			}
         | 
| 140 154 |  | 
| 141 155 | 
             
            			list.show();
         | 
| @@ -145,13 +159,13 @@ requires jQuery 1.6+ | |
| 145 159 | 
             
            			var selected = list.find('.ui-timepicker-selected');
         | 
| 146 160 |  | 
| 147 161 | 
             
            			if (!selected.length) {
         | 
| 148 | 
            -
             | 
| 149 | 
            -
             | 
| 150 | 
            -
             | 
| 151 | 
            -
             | 
| 152 | 
            -
             | 
| 153 | 
            -
             | 
| 154 | 
            -
             | 
| 162 | 
            +
                            if (self.val()) {
         | 
| 163 | 
            +
                                selected = _findRow(self, list, _time2int(self.val()));
         | 
| 164 | 
            +
                            } else if (settings.scrollDefaultNow) {
         | 
| 165 | 
            +
                                selected = _findRow(self, list, _time2int(new Date()));
         | 
| 166 | 
            +
                            } else if (settings.scrollDefaultTime !== false) {
         | 
| 167 | 
            +
                                selected = _findRow(self, list, _time2int(settings.scrollDefaultTime));
         | 
| 168 | 
            +
                            }
         | 
| 155 169 | 
             
            			}
         | 
| 156 170 |  | 
| 157 171 | 
             
            			if (selected && selected.length) {
         | 
| @@ -278,7 +292,7 @@ requires jQuery 1.6+ | |
| 278 292 |  | 
| 279 293 | 
             
            		list.css({'display':'none', 'position': 'absolute' });
         | 
| 280 294 |  | 
| 281 | 
            -
            		if (settings.minTime !== null && settings.showDuration) {
         | 
| 295 | 
            +
            		if ((settings.minTime !== null || settings.durationTime !== null) && settings.showDuration) {
         | 
| 282 296 | 
             
            			list.addClass('ui-timepicker-with-duration');
         | 
| 283 297 | 
             
            		}
         | 
| 284 298 |  | 
| @@ -294,14 +308,14 @@ requires jQuery 1.6+ | |
| 294 308 | 
             
            		for (var i=start; i <= end; i += settings.step*60) {
         | 
| 295 309 | 
             
            			var timeInt = i%_ONE_DAY;
         | 
| 296 310 | 
             
            			var row = $('<li />');
         | 
| 297 | 
            -
            			row.data('time', timeInt)
         | 
| 311 | 
            +
            			row.data('time', timeInt);
         | 
| 298 312 | 
             
            			row.text(_int2time(timeInt, settings.timeFormat));
         | 
| 299 313 |  | 
| 300 | 
            -
            			if (settings.minTime !== null && settings.showDuration) {
         | 
| 314 | 
            +
            			if ((settings.minTime !== null || settings.durationTime !== null) && settings.showDuration) {
         | 
| 301 315 | 
             
            				var duration = $('<span />');
         | 
| 302 316 | 
             
            				duration.addClass('ui-timepicker-duration');
         | 
| 303 317 | 
             
            				duration.text(' ('+_int2duration(i - durStart)+')');
         | 
| 304 | 
            -
            				row.append(duration)
         | 
| 318 | 
            +
            				row.append(duration);
         | 
| 305 319 | 
             
            			}
         | 
| 306 320 |  | 
| 307 321 | 
             
            			list.append(row);
         | 
| @@ -310,7 +324,13 @@ requires jQuery 1.6+ | |
| 310 324 | 
             
            		list.data('timepicker-input', self);
         | 
| 311 325 | 
             
            		self.data('timepicker-list', list);
         | 
| 312 326 |  | 
| 313 | 
            -
            		 | 
| 327 | 
            +
            		var appendTo = settings.appendTo;
         | 
| 328 | 
            +
            		if (typeof appendTo === 'string') {
         | 
| 329 | 
            +
            			appendTo = $(appendTo);
         | 
| 330 | 
            +
            		} else if (typeof appendTo === 'function') {
         | 
| 331 | 
            +
            			appendTo = appendTo(self);
         | 
| 332 | 
            +
            		}
         | 
| 333 | 
            +
            		appendTo.append(list);
         | 
| 314 334 | 
             
            		_setSelected(self, list);
         | 
| 315 335 |  | 
| 316 336 | 
             
            		list.on('click', 'li', function(e) {
         | 
| @@ -324,7 +344,7 @@ requires jQuery 1.6+ | |
| 324 344 | 
             
            			_selectValue(self);
         | 
| 325 345 | 
             
            			list.hide();
         | 
| 326 346 | 
             
            		});
         | 
| 327 | 
            -
            	} | 
| 347 | 
            +
            	}
         | 
| 328 348 |  | 
| 329 349 | 
             
            	function _generateBaseDate()
         | 
| 330 350 | 
             
            	{
         | 
| @@ -344,13 +364,16 @@ requires jQuery 1.6+ | |
| 344 364 |  | 
| 345 365 | 
             
            		var settings = self.data('timepicker-settings');
         | 
| 346 366 | 
             
            		var out = false;
         | 
| 367 | 
            +
            		var halfStep = settings.step*30;
         | 
| 347 368 |  | 
| 348 369 | 
             
            		// loop through the menu items
         | 
| 349 370 | 
             
            		list.find('li').each(function(i, obj) {
         | 
| 350 371 | 
             
            			var jObj = $(obj);
         | 
| 351 372 |  | 
| 373 | 
            +
            			var offset = jObj.data('time') - value;
         | 
| 374 | 
            +
             | 
| 352 375 | 
             
            			// check if the value is less than half a step from each row
         | 
| 353 | 
            -
            			if (Math.abs( | 
| 376 | 
            +
            			if (Math.abs(offset) < halfStep || offset == halfStep) {
         | 
| 354 377 | 
             
            				out = jObj;
         | 
| 355 378 | 
             
            				return false;
         | 
| 356 379 | 
             
            			}
         | 
| @@ -370,19 +393,33 @@ requires jQuery 1.6+ | |
| 370 393 |  | 
| 371 394 | 
             
            	function _formatValue()
         | 
| 372 395 | 
             
            	{
         | 
| 373 | 
            -
            		if (this.value  | 
| 396 | 
            +
            		if (this.value === '') {
         | 
| 374 397 | 
             
            			return;
         | 
| 375 398 | 
             
            		}
         | 
| 376 399 |  | 
| 377 400 | 
             
            		var self = $(this);
         | 
| 378 | 
            -
            		var  | 
| 401 | 
            +
            		var seconds = _time2int(this.value);
         | 
| 379 402 |  | 
| 380 | 
            -
            		if ( | 
| 403 | 
            +
            		if (seconds === null) {
         | 
| 381 404 | 
             
            			self.trigger('timeFormatError');
         | 
| 382 405 | 
             
            			return;
         | 
| 383 406 | 
             
            		}
         | 
| 384 407 |  | 
| 385 | 
            -
            		var  | 
| 408 | 
            +
            		var settings = self.data('timepicker-settings');
         | 
| 409 | 
            +
             | 
| 410 | 
            +
            		if (settings.forceRoundTime) {
         | 
| 411 | 
            +
            			var offset = seconds % (settings.step*60); // step is in minutes
         | 
| 412 | 
            +
             | 
| 413 | 
            +
            			if (offset >= settings.step*30) {
         | 
| 414 | 
            +
            				// if offset is larger than a half step, round up
         | 
| 415 | 
            +
            				seconds += (settings.step*60) - offset;
         | 
| 416 | 
            +
            			} else {
         | 
| 417 | 
            +
            				// round down
         | 
| 418 | 
            +
            				seconds -= offset;
         | 
| 419 | 
            +
            			}
         | 
| 420 | 
            +
            		}
         | 
| 421 | 
            +
             | 
| 422 | 
            +
            		var prettyTime = _int2time(seconds, settings.timeFormat);
         | 
| 386 423 | 
             
            		self.val(prettyTime);
         | 
| 387 424 | 
             
            	}
         | 
| 388 425 |  | 
| @@ -397,7 +434,7 @@ requires jQuery 1.6+ | |
| 397 434 | 
             
            			} else {
         | 
| 398 435 | 
             
            				return true;
         | 
| 399 436 | 
             
            			}
         | 
| 400 | 
            -
            		} | 
| 437 | 
            +
            		}
         | 
| 401 438 |  | 
| 402 439 | 
             
            		switch (e.keyCode) {
         | 
| 403 440 |  | 
| @@ -406,13 +443,11 @@ requires jQuery 1.6+ | |
| 406 443 | 
             
            				methods.hide.apply(this);
         | 
| 407 444 | 
             
            				e.preventDefault();
         | 
| 408 445 | 
             
            				return false;
         | 
| 409 | 
            -
            				break;
         | 
| 410 446 |  | 
| 411 447 | 
             
            			case 38: // up
         | 
| 412 448 | 
             
            				var selected = list.find('.ui-timepicker-selected');
         | 
| 413 449 |  | 
| 414 450 | 
             
            				if (!selected.length) {
         | 
| 415 | 
            -
            					var selected;
         | 
| 416 451 | 
             
            					list.children().each(function(i, obj) {
         | 
| 417 452 | 
             
            						if ($(obj).position().top > 0) {
         | 
| 418 453 | 
             
            							selected = $(obj);
         | 
| @@ -433,10 +468,9 @@ requires jQuery 1.6+ | |
| 433 468 | 
             
            				break;
         | 
| 434 469 |  | 
| 435 470 | 
             
            			case 40: // down
         | 
| 436 | 
            -
            				 | 
| 471 | 
            +
            				selected = list.find('.ui-timepicker-selected');
         | 
| 437 472 |  | 
| 438 | 
            -
            				if (selected.length  | 
| 439 | 
            -
            					var selected;
         | 
| 473 | 
            +
            				if (selected.length === 0) {
         | 
| 440 474 | 
             
            					list.children().each(function(i, obj) {
         | 
| 441 475 | 
             
            						if ($(obj).position().top > 0) {
         | 
| 442 476 | 
             
            							selected = $(obj);
         | 
| @@ -483,11 +517,11 @@ requires jQuery 1.6+ | |
| 483 517 | 
             
            				list.find('li').removeClass('ui-timepicker-selected');
         | 
| 484 518 | 
             
            				return;
         | 
| 485 519 | 
             
            		}
         | 
| 486 | 
            -
            	} | 
| 520 | 
            +
            	}
         | 
| 487 521 |  | 
| 488 522 | 
             
            	function _selectValue(self)
         | 
| 489 523 | 
             
            	{
         | 
| 490 | 
            -
            		var settings = self.data('timepicker-settings')
         | 
| 524 | 
            +
            		var settings = self.data('timepicker-settings');
         | 
| 491 525 | 
             
            		var list = self.data('timepicker-list');
         | 
| 492 526 | 
             
            		var timeValue = null;
         | 
| 493 527 |  | 
| @@ -495,12 +529,12 @@ requires jQuery 1.6+ | |
| 495 529 |  | 
| 496 530 | 
             
            		if (cursor.length) {
         | 
| 497 531 | 
             
            			// selected value found
         | 
| 498 | 
            -
            			 | 
| 532 | 
            +
            			timeValue = cursor.data('time');
         | 
| 499 533 |  | 
| 500 534 | 
             
            		} else if (self.val()) {
         | 
| 501 535 |  | 
| 502 536 | 
             
            			// no selected value; fall back on input value
         | 
| 503 | 
            -
            			 | 
| 537 | 
            +
            			timeValue = _time2int(self.val());
         | 
| 504 538 |  | 
| 505 539 | 
             
            			_setSelected(self, list);
         | 
| 506 540 | 
             
            		}
         | 
| @@ -511,14 +545,14 @@ requires jQuery 1.6+ | |
| 511 545 | 
             
            		}
         | 
| 512 546 |  | 
| 513 547 | 
             
            		self.trigger('change').trigger('changeTime');
         | 
| 514 | 
            -
            	} | 
| 548 | 
            +
            	}
         | 
| 515 549 |  | 
| 516 550 | 
             
            	function _int2duration(seconds)
         | 
| 517 551 | 
             
            	{
         | 
| 518 552 | 
             
            		var minutes = Math.round(seconds/60);
         | 
| 519 553 | 
             
            		var duration;
         | 
| 520 554 |  | 
| 521 | 
            -
            		if (minutes < 60) {
         | 
| 555 | 
            +
            		if (Math.abs(minutes) < 60) {
         | 
| 522 556 | 
             
            			duration = [minutes, _lang.mins];
         | 
| 523 557 | 
             
            		} else if (minutes == 60) {
         | 
| 524 558 | 
             
            			duration = ['1', _lang.hr];
         | 
| @@ -529,7 +563,7 @@ requires jQuery 1.6+ | |
| 529 563 | 
             
            		}
         | 
| 530 564 |  | 
| 531 565 | 
             
            		return duration.join(' ');
         | 
| 532 | 
            -
            	} | 
| 566 | 
            +
            	}
         | 
| 533 567 |  | 
| 534 568 | 
             
            	function _int2time(seconds, format)
         | 
| 535 569 | 
             
            	{
         | 
| @@ -539,10 +573,11 @@ requires jQuery 1.6+ | |
| 539 573 |  | 
| 540 574 | 
             
            		var time = new Date(_baseDate.valueOf() + (seconds*1000));
         | 
| 541 575 | 
             
            		var output = '';
         | 
| 576 | 
            +
            		var hour, code;
         | 
| 542 577 |  | 
| 543 578 | 
             
            		for (var i=0; i<format.length; i++) {
         | 
| 544 579 |  | 
| 545 | 
            -
            			 | 
| 580 | 
            +
            			code = format.charAt(i);
         | 
| 546 581 | 
             
            			switch (code) {
         | 
| 547 582 |  | 
| 548 583 | 
             
            				case 'a':
         | 
| @@ -554,8 +589,8 @@ requires jQuery 1.6+ | |
| 554 589 | 
             
            					break;
         | 
| 555 590 |  | 
| 556 591 | 
             
            				case 'g':
         | 
| 557 | 
            -
            					 | 
| 558 | 
            -
            					output += (hour  | 
| 592 | 
            +
            					hour = time.getHours() % 12;
         | 
| 593 | 
            +
            					output += (hour === 0) ? '12' : hour;
         | 
| 559 594 | 
             
            					break;
         | 
| 560 595 |  | 
| 561 596 | 
             
            				case 'G':
         | 
| @@ -563,17 +598,17 @@ requires jQuery 1.6+ | |
| 563 598 | 
             
            					break;
         | 
| 564 599 |  | 
| 565 600 | 
             
            				case 'h':
         | 
| 566 | 
            -
            					 | 
| 601 | 
            +
            					hour = time.getHours() % 12;
         | 
| 567 602 |  | 
| 568 | 
            -
            					if (hour  | 
| 603 | 
            +
            					if (hour !== 0 && hour < 10) {
         | 
| 569 604 | 
             
            						hour = '0'+hour;
         | 
| 570 605 | 
             
            					}
         | 
| 571 606 |  | 
| 572 | 
            -
            					output += (hour  | 
| 607 | 
            +
            					output += (hour === 0) ? '12' : hour;
         | 
| 573 608 | 
             
            					break;
         | 
| 574 609 |  | 
| 575 610 | 
             
            				case 'H':
         | 
| 576 | 
            -
            					 | 
| 611 | 
            +
            					hour = time.getHours();
         | 
| 577 612 | 
             
            					output += (hour > 9) ? hour : '0'+hour;
         | 
| 578 613 | 
             
            					break;
         | 
| 579 614 |  | 
| @@ -583,7 +618,7 @@ requires jQuery 1.6+ | |
| 583 618 | 
             
            					break;
         | 
| 584 619 |  | 
| 585 620 | 
             
            				case 's':
         | 
| 586 | 
            -
            					 | 
| 621 | 
            +
            					seconds = time.getSeconds();
         | 
| 587 622 | 
             
            					output += (seconds > 9) ? seconds : '0'+seconds;
         | 
| 588 623 | 
             
            					break;
         | 
| 589 624 |  | 
| @@ -593,11 +628,11 @@ requires jQuery 1.6+ | |
| 593 628 | 
             
            		}
         | 
| 594 629 |  | 
| 595 630 | 
             
            		return output;
         | 
| 596 | 
            -
            	} | 
| 631 | 
            +
            	}
         | 
| 597 632 |  | 
| 598 633 | 
             
            	function _time2int(timeString)
         | 
| 599 634 | 
             
            	{
         | 
| 600 | 
            -
            		if (timeString  | 
| 635 | 
            +
            		if (timeString === '') return null;
         | 
| 601 636 | 
             
            		if (timeString+0 == timeString) return timeString;
         | 
| 602 637 |  | 
| 603 638 | 
             
            		if (typeof(timeString) == 'object') {
         | 
| @@ -605,29 +640,30 @@ requires jQuery 1.6+ | |
| 605 640 | 
             
            		}
         | 
| 606 641 |  | 
| 607 642 | 
             
            		var d = new Date(0);
         | 
| 608 | 
            -
            		var time = timeString.toLowerCase().match(/(\d{1,2})(?::(\d{2}))?(?::(\d{2}))?\s*([pa]?)/);
         | 
| 643 | 
            +
            		var time = timeString.toLowerCase().match(/(\d{1,2})(?::(\d{1,2}))?(?::(\d{2}))?\s*([pa]?)/);
         | 
| 609 644 |  | 
| 610 645 | 
             
            		if (!time) {
         | 
| 611 646 | 
             
            			return null;
         | 
| 612 647 | 
             
            		}
         | 
| 613 648 |  | 
| 614 | 
            -
            		var hour = parseInt(time[1]*1);
         | 
| 649 | 
            +
            		var hour = parseInt(time[1]*1, 10);
         | 
| 650 | 
            +
                    var hours;
         | 
| 615 651 |  | 
| 616 652 | 
             
            		if (time[4]) {
         | 
| 617 653 | 
             
            			if (hour == 12) {
         | 
| 618 | 
            -
            				 | 
| 654 | 
            +
            				hours = (time[4] == 'p') ? 12 : 0;
         | 
| 619 655 | 
             
            			} else {
         | 
| 620 | 
            -
            				 | 
| 656 | 
            +
            				hours = (hour + (time[4] == 'p' ? 12 : 0));
         | 
| 621 657 | 
             
            			}
         | 
| 622 658 |  | 
| 623 659 | 
             
            		} else {
         | 
| 624 | 
            -
            			 | 
| 660 | 
            +
            			hours = hour;
         | 
| 625 661 | 
             
            		}
         | 
| 626 662 |  | 
| 627 663 | 
             
            		var minutes = ( time[2]*1 || 0 );
         | 
| 628 664 | 
             
            		var seconds = ( time[3]*1 || 0 );
         | 
| 629 665 | 
             
            		return hours*3600 + minutes*60 + seconds;
         | 
| 630 | 
            -
            	} | 
| 666 | 
            +
            	}
         | 
| 631 667 |  | 
| 632 668 | 
             
            	// Plugin entry
         | 
| 633 669 | 
             
            	$.fn.timepicker = function(method)
         | 
| @@ -636,4 +672,4 @@ requires jQuery 1.6+ | |
| 636 672 | 
             
            		else if(typeof method === "object" || !method) { return methods.init.apply(this, arguments); }
         | 
| 637 673 | 
             
            		else { $.error("Method "+ method + " does not exist on jQuery.timepicker"); }
         | 
| 638 674 | 
             
            	};
         | 
| 639 | 
            -
            }) | 
| 675 | 
            +
            }));
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: jquery-timepicker-rails
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0 | 
| 4 | 
            +
              version: 0.1.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 12 | 
            +
            date: 2013-01-14 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: railties
         | 
| 16 | 
            -
              requirement:  | 
| 16 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ! '>='
         | 
| @@ -21,7 +21,12 @@ dependencies: | |
| 21 21 | 
             
                    version: 3.1.0
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements:  | 
| 24 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 | 
            +
                none: false
         | 
| 26 | 
            +
                requirements:
         | 
| 27 | 
            +
                - - ! '>='
         | 
| 28 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            +
                    version: 3.1.0
         | 
| 25 30 | 
             
            description: A jQuery timepicker plugin inspired by Google Calendar
         | 
| 26 31 | 
             
            email:
         | 
| 27 32 | 
             
            - tkrotoff@gmail.com
         | 
| @@ -60,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 60 65 | 
             
                  version: '0'
         | 
| 61 66 | 
             
            requirements: []
         | 
| 62 67 | 
             
            rubyforge_project: 
         | 
| 63 | 
            -
            rubygems_version: 1.8. | 
| 68 | 
            +
            rubygems_version: 1.8.23
         | 
| 64 69 | 
             
            signing_key: 
         | 
| 65 70 | 
             
            specification_version: 3
         | 
| 66 71 | 
             
            summary: jquery-timepicker packaged for the Rails 3.1+ asset pipeline
         |