diff options
author | Trent <trentdrichardson@gmail.com> | 2012-08-28 10:38:43 -0400 |
---|---|---|
committer | Trent <trentdrichardson@gmail.com> | 2012-08-28 10:38:43 -0400 |
commit | 693c410260d717670a569f3056bf845dda0a3def (patch) | |
tree | e25c2bb7861960cac3517b571a63726543ae8875 | |
parent | 3d71f857b4a6b84ca4bfe3d023eee8804e7dbd9d (diff) | |
download | jQuery-Timepicker-Addon-693c410260d717670a569f3056bf845dda0a3def.zip jQuery-Timepicker-Addon-693c410260d717670a569f3056bf845dda0a3def.tar.gz jQuery-Timepicker-Addon-693c410260d717670a569f3056bf845dda0a3def.tar.bz2 |
Reorganize code
-rw-r--r-- | jquery-ui-timepicker-addon.js | 190 |
1 files changed, 97 insertions, 93 deletions
diff --git a/jquery-ui-timepicker-addon.js b/jquery-ui-timepicker-addon.js index 2729046..7bb4d19 100644 --- a/jquery-ui-timepicker-addon.js +++ b/jquery-ui-timepicker-addon.js @@ -1439,102 +1439,10 @@ $.datepicker._optionDatepicker = function(target, name, value) { return this._base_optionDatepicker(target, name, value); }; -//####################################################################################### -// jQuery extend now ignores nulls! -//####################################################################################### -function extendRemove(target, props) { - $.extend(target, props); - for (var name in props) { - if (props[name] === null || props[name] === undefined) { - target[name] = props[name]; - } - } - return target; -} - -//####################################################################################### -// Splits datetime string into date ans time substrings. -// Throws exception when date can't be parsed -// If only date is present, time substring eill be '' -//####################################################################################### -var splitDateTime = function(dateFormat, dateTimeString, dateSettings) -{ - try { - var date = $.datepicker._base_parseDate(dateFormat, dateTimeString, dateSettings); - } catch (err) { - if (err.indexOf(":") >= 0) { - // Hack! The error message ends with a colon, a space, and - // the "extra" characters. We rely on that instead of - // attempting to perfectly reproduce the parsing algorithm. - var dateStringLength = dateTimeString.length-(err.length-err.indexOf(':')-2); - var timeString = dateTimeString.substring(dateStringLength); - - return [dateTimeString.substring(0, dateStringLength), dateTimeString.substring(dateStringLength)]; - - } else { - throw err; - } - } - return [dateTimeString, '']; -}; //####################################################################################### -// Internal function to parse datetime interval -// Returns: {date: Date, timeObj: Object}, where -// date - parsed date without time (type Date) -// timeObj = {hour: , minute: , second: , millisec: } - parsed time. Optional +// Changes by simonvwade to better handle time range limits //####################################################################################### -var parseDateTimeInternal = function(dateFormat, timeFormat, dateTimeString, dateSettings, timeSettings) -{ - var date; - var splitRes = splitDateTime(dateFormat, dateTimeString, dateSettings); - date = $.datepicker._base_parseDate(dateFormat, splitRes[0], dateSettings); - if (splitRes[1] !== '') - { - var timeString = splitRes[1]; - var separator = timeSettings && timeSettings.separator ? timeSettings.separator : $.timepicker._defaults.separator; - if ( timeString.indexOf(separator) !== 0) { - throw 'Missing time separator'; - } - timeString = timeString.substring(separator.length); - var parsedTime = $.datepicker.parseTime(timeFormat, timeString, timeSettings); - if (parsedTime === null) { - throw 'Wrong time format'; - } - return {date: date, timeObj: parsedTime}; - } else { - return {date: date}; - } -}; - -//####################################################################################### -// Internal function to set timezone_select to the local timezone -//####################################################################################### -var selectLocalTimeZone = function(tp_inst, date) -{ - if (tp_inst && tp_inst.timezone_select) { - tp_inst._defaults.useLocalTimezone = true; - var now = typeof date !== 'undefined' ? date : new Date(); - var tzoffset = timeZoneString(now); - if (tp_inst._defaults.timezoneIso8601) { - tzoffset = tzoffset.substring(0, 3) + ':' + tzoffset.substring(3); - } - tp_inst.timezone_select.val(tzoffset); - } -}; - -// Input: Date Object -// Output: String with timezone offset, e.g. '+0100' -var timeZoneString = function(date) -{ - var off = date.getTimezoneOffset() * -10100 / 60; - var timezone = (off >= 0 ? '+' : '-') + Math.abs(off).toString().substr(1); - return timezone; -}; - -$.timepicker = new Timepicker(); // singleton instance -$.timepicker.version = "1.0.2"; - /** * Calls `timepicker()` on the `startTime` and `endTime` elements, and configures them to * enforce date range limits. @@ -1639,5 +1547,101 @@ $.timepicker.handleRange = function( method, startTime, endTime, options ) { return $([startTime.get(0), endTime.get(0)]); }; +//####################################################################################### +// jQuery extend now ignores nulls! +//####################################################################################### +function extendRemove(target, props) { + $.extend(target, props); + for (var name in props) { + if (props[name] === null || props[name] === undefined) { + target[name] = props[name]; + } + } + return target; +} + +//####################################################################################### +// Splits datetime string into date ans time substrings. +// Throws exception when date can't be parsed +// If only date is present, time substring eill be '' +//####################################################################################### +var splitDateTime = function(dateFormat, dateTimeString, dateSettings) +{ + try { + var date = $.datepicker._base_parseDate(dateFormat, dateTimeString, dateSettings); + } catch (err) { + if (err.indexOf(":") >= 0) { + // Hack! The error message ends with a colon, a space, and + // the "extra" characters. We rely on that instead of + // attempting to perfectly reproduce the parsing algorithm. + var dateStringLength = dateTimeString.length-(err.length-err.indexOf(':')-2); + var timeString = dateTimeString.substring(dateStringLength); + + return [dateTimeString.substring(0, dateStringLength), dateTimeString.substring(dateStringLength)]; + + } else { + throw err; + } + } + return [dateTimeString, '']; +}; + +//####################################################################################### +// Internal function to parse datetime interval +// Returns: {date: Date, timeObj: Object}, where +// date - parsed date without time (type Date) +// timeObj = {hour: , minute: , second: , millisec: } - parsed time. Optional +//####################################################################################### +var parseDateTimeInternal = function(dateFormat, timeFormat, dateTimeString, dateSettings, timeSettings) +{ + var date; + var splitRes = splitDateTime(dateFormat, dateTimeString, dateSettings); + date = $.datepicker._base_parseDate(dateFormat, splitRes[0], dateSettings); + if (splitRes[1] !== '') + { + var timeString = splitRes[1]; + var separator = timeSettings && timeSettings.separator ? timeSettings.separator : $.timepicker._defaults.separator; + if ( timeString.indexOf(separator) !== 0) { + throw 'Missing time separator'; + } + timeString = timeString.substring(separator.length); + var parsedTime = $.datepicker.parseTime(timeFormat, timeString, timeSettings); + if (parsedTime === null) { + throw 'Wrong time format'; + } + return {date: date, timeObj: parsedTime}; + } else { + return {date: date}; + } +}; + +//####################################################################################### +// Internal function to set timezone_select to the local timezone +//####################################################################################### +var selectLocalTimeZone = function(tp_inst, date) +{ + if (tp_inst && tp_inst.timezone_select) { + tp_inst._defaults.useLocalTimezone = true; + var now = typeof date !== 'undefined' ? date : new Date(); + var tzoffset = timeZoneString(now); + if (tp_inst._defaults.timezoneIso8601) { + tzoffset = tzoffset.substring(0, 3) + ':' + tzoffset.substring(3); + } + tp_inst.timezone_select.val(tzoffset); + } +}; + +// Input: Date Object +// Output: String with timezone offset, e.g. '+0100' +var timeZoneString = function(date) +{ + var off = date.getTimezoneOffset() * -10100 / 60; + var timezone = (off >= 0 ? '+' : '-') + Math.abs(off).toString().substr(1); + return timezone; +}; + +$.timepicker = new Timepicker(); // singleton instance +$.timepicker.version = "1.0.2"; + })(jQuery); |