diff --git a/public/assets/js/build-plugins/time.js b/public/assets/js/build-plugins/time.js index b5736a36..a3ecdecc 100644 --- a/public/assets/js/build-plugins/time.js +++ b/public/assets/js/build-plugins/time.js @@ -9,7 +9,21 @@ var timePlugin = ActiveBuild.UiPlugin.extend({ }, render: function() { - var created = new Date(ActiveBuild.buildData.created); + var created = ''; + var started = ''; + var finished = ''; + + if (ActiveBuild.buildData.created) { + created = dateFormat(ActiveBuild.buildData.created); + } + + if (ActiveBuild.buildData.started) { + started = dateFormat(ActiveBuild.buildData.started); + } + + if (ActiveBuild.buildData.finished) { + finished = dateFormat(ActiveBuild.buildData.finished); + } return '' + '' + @@ -21,9 +35,9 @@ var timePlugin = ActiveBuild.UiPlugin.extend({ '' + '' + '' + - '' + - '' + - '' + + '' + + '' + + '' + '' + '' + '
' + created.format('mmm d yyyy, H:MM') + '' + ActiveBuild.buildData.started + '' + ActiveBuild.buildData.finished + '' + created + '' + started + '' + finished + '
'; @@ -32,20 +46,23 @@ var timePlugin = ActiveBuild.UiPlugin.extend({ onUpdate: function(e) { var build = e.queryData; - var created = new Date(build.created); - + var created = ''; var started = ''; - if (build.started) { - var started = new Date(build.started); - started = started.format('mmm d yyyy, H:MM'); + var finished = ''; + + if (build.created) { + created = dateFormat(build.created); } - var finished = ''; - if (build.finished) { - var finished = new Date(build.finished); - finished = finished.format('mmm d yyyy, H:MM'); + if (build.started) { + started = dateFormat(build.started); } - $('#created').text(created.format('mmm d yyyy, H:MM')); + + if (build.finished) { + finished = dateFormat(build.finished); + } + + $('#created').text(created); $('#started').text(started); $('#finished').text(finished); } diff --git a/public/assets/js/phpci.js b/public/assets/js/phpci.js index 5b82ac14..91dc19e0 100644 --- a/public/assets/js/phpci.js +++ b/public/assets/js/phpci.js @@ -407,114 +407,68 @@ function setupProjectForm() }); } -var dateFormat = function () { - var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g, - timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g, - timezoneClip = /[^-+\dA-Z]/g, - pad = function (val, len) { - val = String(val); - len = len || 2; - while (val.length < len) val = "0" + val; - return val; - }; - // Regexes and supporting functions are cached through closure - return function (date, mask, utc) { - var dF = dateFormat; - // You can't provide utc if you skip other args (use the "UTC:" mask prefix) - if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) { - mask = date; - date = undefined; - } +function dateFormat(date) +{ + if (typeof date == 'string') { + date = new Date(date); + } + + var rtn = ''; - // Passing date through Date applies Date.parse, if necessary - date = date ? new Date(date) : new Date; - if (isNaN(date)) throw SyntaxError("invalid date"); + switch (date.getMonth()) { + case 0: + rtn = 'Jan '; + break; - mask = String(dF.masks[mask] || mask || dF.masks["default"]); + case 1: + rtn = 'Feb '; + break; - // Allow setting the utc argument via the mask - if (mask.slice(0, 4) == "UTC:") { - mask = mask.slice(4); - utc = true; - } + case 2: + rtn = 'Mar '; + break; - var _ = utc ? "getUTC" : "get", - d = date[_ + "Date"](), - D = date[_ + "Day"](), - m = date[_ + "Month"](), - y = date[_ + "FullYear"](), - H = date[_ + "Hours"](), - M = date[_ + "Minutes"](), - s = date[_ + "Seconds"](), - L = date[_ + "Milliseconds"](), - o = utc ? 0 : date.getTimezoneOffset(), - flags = { - d: d, - dd: pad(d), - ddd: dF.i18n.dayNames[D], - dddd: dF.i18n.dayNames[D + 7], - m: m + 1, - mm: pad(m + 1), - mmm: dF.i18n.monthNames[m], - mmmm: dF.i18n.monthNames[m + 12], - yy: String(y).slice(2), - yyyy: y, - h: H % 12 || 12, - hh: pad(H % 12 || 12), - H: H, - HH: pad(H), - M: M, - MM: pad(M), - s: s, - ss: pad(s), - l: pad(L, 3), - L: pad(L > 99 ? Math.round(L / 10) : L), - t: H < 12 ? "a" : "p", - tt: H < 12 ? "am" : "pm", - T: H < 12 ? "A" : "P", - TT: H < 12 ? "AM" : "PM", - Z: utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""), - o: (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4), - S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10] - }; + case 3: + rtn = 'Apr '; + break; - return mask.replace(token, function ($0) { - return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); - }); - }; -}(); + case 4: + rtn = 'May '; + break; -// Some common format strings -dateFormat.masks = { - "default": "ddd mmm dd yyyy HH:MM:ss", - shortDate: "m/d/yy", - mediumDate: "mmm d, yyyy", - longDate: "mmmm d, yyyy", - fullDate: "dddd, mmmm d, yyyy", - shortTime: "h:MM TT", - mediumTime: "h:MM:ss TT", - longTime: "h:MM:ss TT Z", - isoDate: "yyyy-mm-dd", - isoTime: "HH:MM:ss", - isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", - isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" -}; + case 5: + rtn = 'Jun '; + break; -// Internationalization strings -dateFormat.i18n = { - dayNames: [ - "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", - "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" - ], - monthNames: [ - "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec", - "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" - ] -}; + case 6: + rtn = 'Jul '; + break; -// For convenience... -Date.prototype.format = function (mask, utc) { - return dateFormat(this, mask, utc); -}; \ No newline at end of file + case 7: + rtn = 'Aug '; + break; + + case 8: + rtn = 'Sep '; + break; + + case 9: + rtn = 'Oct '; + break; + + case 10: + rtn = 'Nov '; + break; + + case 11: + rtn = 'Dec '; + break; + } + + rtn += date.getDate() + ' ' + date.getFullYear(); + rtn += ' ' + date.getHours() + ':' + date.getMinutes(); + + return rtn; +} \ No newline at end of file