From dddcfa814c8874dd5eb90127928855678d8c0223 Mon Sep 17 00:00:00 2001 From: Peter Goodhall Date: Sun, 27 Nov 2011 15:14:20 +0000 Subject: [PATCH] Fixed Time when adding a QSO --- application/views/qso/index.php | 28 ++-- js/jquery.jclock.js | 222 ++++++++++++++++++++++++++++++++ 2 files changed, 230 insertions(+), 20 deletions(-) create mode 100644 js/jquery.jclock.js diff --git a/application/views/qso/index.php b/application/views/qso/index.php index 0cc740f5..163b619a 100644 --- a/application/views/qso/index.php +++ b/application/views/qso/index.php @@ -4,6 +4,8 @@ + + - -
diff --git a/js/jquery.jclock.js b/js/jquery.jclock.js new file mode 100644 index 00000000..7c2cc861 --- /dev/null +++ b/js/jquery.jclock.js @@ -0,0 +1,222 @@ +/* +* jQuery jclock - Clock plugin - v 2.3.2 +* http://plugins.jquery.com/project/jclock +* +* Copyright (c) 2007-2011 Doug Sparling +* Licensed under the MIT License: +* http://www.opensource.org/licenses/mit-license.php +*/ +(function($) { + + $.fn.jclock = function(options) { + var version = '2.3.2'; + + // options + var opts = $.extend({}, $.fn.jclock.defaults, options); + + return this.each(function() { + $this = $(this); + $this.timerID = null; + $this.running = false; + + // Record keeping for seeded clock + $this.increment = 0; + $this.lastCalled = new Date().getTime(); + + var o = $.meta ? $.extend({}, opts, $this.data()) : opts; + + $this.format = o.format; + $this.utc = o.utc; + // deprecate utc_offset (v 2.2.0) + $this.utcOffset = (o.utc_offset != null) ? o.utc_offset : o.utcOffset; + $this.seedTime = o.seedTime; + $this.timeout = o.timeout; + + $this.css({ + fontFamily: o.fontFamily, + fontSize: o.fontSize, + backgroundColor: o.background, + color: o.foreground + }); + + // %a + $this.daysAbbrvNames = new Array(7); + $this.daysAbbrvNames[0] = "Sun"; + $this.daysAbbrvNames[1] = "Mon"; + $this.daysAbbrvNames[2] = "Tue"; + $this.daysAbbrvNames[3] = "Wed"; + $this.daysAbbrvNames[4] = "Thu"; + $this.daysAbbrvNames[5] = "Fri"; + $this.daysAbbrvNames[6] = "Sat"; + + // %A + $this.daysFullNames = new Array(7); + $this.daysFullNames[0] = "Sunday"; + $this.daysFullNames[1] = "Monday"; + $this.daysFullNames[2] = "Tuesday"; + $this.daysFullNames[3] = "Wednesday"; + $this.daysFullNames[4] = "Thursday"; + $this.daysFullNames[5] = "Friday"; + $this.daysFullNames[6] = "Saturday"; + + // %b + $this.monthsAbbrvNames = new Array(12); + $this.monthsAbbrvNames[0] = "Jan"; + $this.monthsAbbrvNames[1] = "Feb"; + $this.monthsAbbrvNames[2] = "Mar"; + $this.monthsAbbrvNames[3] = "Apr"; + $this.monthsAbbrvNames[4] = "May"; + $this.monthsAbbrvNames[5] = "Jun"; + $this.monthsAbbrvNames[6] = "Jul"; + $this.monthsAbbrvNames[7] = "Aug"; + $this.monthsAbbrvNames[8] = "Sep"; + $this.monthsAbbrvNames[9] = "Oct"; + $this.monthsAbbrvNames[10] = "Nov"; + $this.monthsAbbrvNames[11] = "Dec"; + + // %B + $this.monthsFullNames = new Array(12); + $this.monthsFullNames[0] = "January"; + $this.monthsFullNames[1] = "February"; + $this.monthsFullNames[2] = "March"; + $this.monthsFullNames[3] = "April"; + $this.monthsFullNames[4] = "May"; + $this.monthsFullNames[5] = "June"; + $this.monthsFullNames[6] = "July"; + $this.monthsFullNames[7] = "August"; + $this.monthsFullNames[8] = "September"; + $this.monthsFullNames[9] = "October"; + $this.monthsFullNames[10] = "November"; + $this.monthsFullNames[11] = "December"; + + $.fn.jclock.startClock($this); + + }); + }; + + $.fn.jclock.startClock = function(el) { + $.fn.jclock.stopClock(el); + $.fn.jclock.displayTime(el); + } + + $.fn.jclock.stopClock = function(el) { + if(el.running) { + clearTimeout(el.timerID); + } + el.running = false; + } + + $.fn.jclock.displayTime = function(el) { + var time = $.fn.jclock.currentTime(el); + var formatted_time = $.fn.jclock.formatTime(time, el); + el.attr('currentTime', time.getTime()) + el.val(formatted_time); + el.timerID = setTimeout(function(){$.fn.jclock.displayTime(el)},el.timeout); + } + + $.fn.jclock.currentTime = function(el) { + if(typeof(el.seedTime) == 'undefined') { + // Seed time not being used, use current time + var now = new Date(); + } else { + // Otherwise, use seed time with increment + el.increment += new Date().getTime() - el.lastCalled; + var now = new Date(el.seedTime + el.increment); + el.lastCalled = new Date().getTime(); + } + + if(el.utc == true) { + var localTime = now.getTime(); + var localOffset = now.getTimezoneOffset() * 60000; + var utc = localTime + localOffset; + var utcTime = utc + (3600000 * el.utcOffset); + var now = new Date(utcTime); + } + + return now + } + + $.fn.jclock.formatTime = function(time, el) { + + var timeNow = ""; + var i = 0; + var index = 0; + while ((index = el.format.indexOf("%", i)) != -1) { + timeNow += el.format.substring(i, index); + index++; + + // modifier flag + //switch (el.format.charAt(index++)) { + //} + + var property = $.fn.jclock.getProperty(time, el, el.format.charAt(index)); + index++; + + //switch (switchCase) { + //} + + timeNow += property; + i = index + } + + timeNow += el.format.substring(i); + return timeNow; + }; + + $.fn.jclock.getProperty = function(dateObject, el, property) { + + switch (property) { + case "a": // abbrv day names + return (el.daysAbbrvNames[dateObject.getDay()]); + case "A": // full day names + return (el.daysFullNames[dateObject.getDay()]); + case "b": // abbrv month names + return (el.monthsAbbrvNames[dateObject.getMonth()]); + case "B": // full month names + return (el.monthsFullNames[dateObject.getMonth()]); + case "d": // day 01-31 + return ((dateObject.getDate() < 10) ? "0" : "") + dateObject.getDate(); + case "H": // hour as a decimal number using a 24-hour clock (range 00 to 23) + return ((dateObject.getHours() < 10) ? "0" : "") + dateObject.getHours(); + case "I": // hour as a decimal number using a 12-hour clock (range 01 to 12) + var hours = (dateObject.getHours() % 12 || 12); + return ((hours < 10) ? "0" : "") + hours; + case "l": // hour as a decimal number using a 12-hour clock (range 1 to 12) + var hours = (dateObject.getHours() % 12 || 12); + //return ((hours < 10) ? "0" : "") + hours; + return hours; + case "m": // month number + return (((dateObject.getMonth() + 1) < 10) ? "0" : "") + (dateObject.getMonth() + 1); + case "M": // minute as a decimal number + return ((dateObject.getMinutes() < 10) ? "0" : "") + dateObject.getMinutes(); + case "p": // either `am' or `pm' according to the given time value, + // or the corresponding strings for the current locale + return (dateObject.getHours() < 12 ? "am" : "pm"); + case "P": // either `AM' or `PM' according to the given time value, + return (dateObject.getHours() < 12 ? "AM" : "PM"); + case "S": // second as a decimal number + return ((dateObject.getSeconds() < 10) ? "0" : "") + dateObject.getSeconds(); + case "y": // two-digit year + return dateObject.getFullYear().toString().substring(2); + case "Y": // full year + return (dateObject.getFullYear()); + case "%": + return "%"; + } + + } + + // plugin defaults (24-hour) + $.fn.jclock.defaults = { + format: '%H:%M:%S', + utcOffset: 0, + utc: false, + fontFamily: '', + fontSize: '', + foreground: '', + background: '', + seedTime: undefined, + timeout: 1000 // 1000 = one second, 60000 = one minute + }; + +})(jQuery);