However, the mechanism I quickly built can still be pretty useful in some cases...
Jacques Jacques Le Roux wrote: > Yikes, this was pretty stupid. I completly forgot about what I thought 2 > weeks ago: it's from the server I need the date-time, so > I need a json service. > Then, today, I completly forgot about it, and thought again: OK, it will > consume less ressources w/out a service, if I only use > javascript. A senior moment I guess :/ > > I will rewrite that later, to have the real server hour... > > Jacques > >> Author: jleroux >> Date: Sat Dec 29 22:08:19 2012 >> New Revision: 1426848 >> >> URL: http://svn.apache.org/viewvc?rev=1426848&view=rev >> Log: >> I wanted to have the server hour on the webtools job list, not a bid deal, >> hé? >> As ever, turns it's always more complicated than thought. >> For instance jQuery, even with $.datepicker.formatDate, is not able to >> format a date + time correctly :/ >> So I added a new js script: date.format-1.2.3.js. It's only 4kb, I tried to >> compress it online, did not work, gave up. >> >> This is pretty basic, enough for the needs and can be easily extended when >> more is needed >> >> Added: >> ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl >> (with props) >> ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 (with >> props) >> Modified: >> ofbiz/trunk/LICENSE >> ofbiz/trunk/NOTICE >> ofbiz/trunk/framework/common/config/CommonUiLabels.xml >> ofbiz/trunk/framework/common/widget/CommonScreens.xml >> ofbiz/trunk/framework/webtools/widget/ServiceForms.xml >> ofbiz/trunk/framework/webtools/widget/ServiceScreens.xml >> >> Modified: ofbiz/trunk/LICENSE >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/LICENSE?rev=1426848&r1=1426847&r2=1426848&view=diff >> ============================================================================== >> --- ofbiz/trunk/LICENSE (original) >> +++ ofbiz/trunk/LICENSE Sat Dec 29 22:08:19 2012 >> @@ -1234,7 +1234,8 @@ ofbiz/trunk/framework/base/lib/slf4j-log >> ofbiz/trunk/framework/images/webapp/images/jquery/* >> ofbiz/trunk/specialpurpose/webpos/webapp/webpos/images/js/jquery.hotkeys-0.7.9.min.js >> ofbiz/trunk/specialpurpose/webpos/webapp/webpos/images/js/WebPosHotkeys.js >> -ofbiz/trunk/applications/content/template/docbook/webhelp/* >> +ofbiz/trunk/applications/content/template/docbook/webhelp/* >> +ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3.js >> ========================================================================= >> The MIT License >> >> >> Modified: ofbiz/trunk/NOTICE >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/NOTICE?rev=1426848&r1=1426847&r2=1426848&view=diff >> ============================================================================== >> --- ofbiz/trunk/NOTICE (original) >> +++ ofbiz/trunk/NOTICE Sat Dec 29 22:08:19 2012 >> @@ -371,13 +371,19 @@ Under the following conditions: >> >> * Attribution. You must attribute the work in the manner specified >> by the author or licensor (but not in any way that suggests that >> - they endorse you or your use of the work). >> + they endorse you or your use of the work). >> * For any reuse or distribution, you must make clear to >> others the license terms of this work. The best way to do >> - this is with a link to this web page. >> + this is with a link to this web page. >> * Any of the above conditions can be waived if you get >> * For any reuse or distribution, you must make clear to >> permission from the copyright holder. >> * Nothing in this license impairs or restricts the >> * For any reuse or distribution, you must make clear to >> author's moral rights. >> +========================================================================= >> + >> +This product includes software developed by Steven Levithan >> +(http://blog.stevenlevithan.com/archives/date-time-format). MIT license >> +========================================================================= >> + >> \ No newline at end of file >> >> Modified: ofbiz/trunk/framework/common/config/CommonUiLabels.xml >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/config/CommonUiLabels.xml?rev=1426848&r1=1426847&r2=1426848&view=diff >> ============================================================================== >> --- >> ofbiz/trunk/framework/common/config/CommonUiLabels.xml (original) +++ >> ofbiz/trunk/framework/common/config/CommonUiLabels.xml Sat >> Dec 29 22:08:19 2012 @@ -9152,6 +9152,10 @@ >> <value xml:lang="zh-CN">åºåç¼å·</value> >> <value xml:lang="zh-TW">åºèæ¸</value> >> </property> >> + <property key="CommonServerHour"> >> + <value xml:lang="en">Server Hour</value> >> + <value xml:lang="fr">Heure du serveur </value> >> + </property> >> <property key="CommonServiceReturnError"> >> <value xml:lang="en">Return Error Service : Returning Error</value> >> <value xml:lang="es">El servicio ha devuelto un error: Devolviendo >> error</value> >> >> Added: >> ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl?rev=1426848&view=auto >> ============================================================================== >> --- ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl >> (added) >> +++ ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl >> Sat Dec 29 22:08:19 2012 >> @@ -0,0 +1,26 @@ >> +<#-- >> +Licensed to the Apache Software Foundation (ASF) under one >> +or more contributor license agreements. See the NOTICE file >> +distributed with this work for additional information >> +regarding copyright ownership. The ASF licenses this file >> +to you under the Apache License, Version 2.0 (the >> +"License"); you may not use this file except in compliance >> +with the License. You may obtain a copy of the License at >> + >> +http://www.apache.org/licenses/LICENSE-2.0 >> + >> +Unless required by applicable law or agreed to in writing, >> +software distributed under the License is distributed on an >> +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> +KIND, either express or implied. See the License for the >> +specific language governing permissions and limitations >> +under the License. >> +--> >> +<script type="text/javascript"> >> +jQuery(document).ready(function() { >> + window.setInterval(function(){clock()}, 1000); >> + function clock() { >> + jQuery("#${clockField}").text("${uiLabelMap.CommonServerHour}: " + new >> Date().format("yyyy-mm-dd HH:MM:ss")); >> + } >> +}) >> +</script> >> \ No newline at end of file >> >> Propchange: >> ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl >> ------------------------------------------------------------------------------ >> svn:eol-style = native >> >> Propchange: >> ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl >> ------------------------------------------------------------------------------ >> svn:keywords = Date Rev Author URL Id >> >> Propchange: >> ofbiz/trunk/framework/common/webcommon/includes/WindowSetIntervalJs.ftl >> ------------------------------------------------------------------------------ >> svn:mime-type = text/plain >> >> Modified: ofbiz/trunk/framework/common/widget/CommonScreens.xml >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/widget/CommonScreens.xml?rev=1426848&r1=1426847&r2=1426848&view=diff >> ============================================================================== >> --- >> ofbiz/trunk/framework/common/widget/CommonScreens.xml (original) +++ >> ofbiz/trunk/framework/common/widget/CommonScreens.xml Sat >> Dec 29 22:08:19 2012 @@ -154,6 +154,7 @@ under the License. >> <!-- jQuery CSSs --> >> <set field="layoutSettings.styleSheets[+0]" >> >> value="/images/jquery/plugins/asmselect/jquery.asmselect-1.0.4a-beta.css" >> global="true" /> <set >> field="layoutSettings.javaScripts[]" value="/images/selectall.js" >> global="true" /> + <set >> field="layoutSettings.javaScripts[]" >> value="/images/date.format-1.2.3" global="true" /> <set >> field="layoutSettings.javaScripts[]" >> value="/images/fieldlookup.js" global="true" /> <set >> field="layoutSettings.javaScripts[]" >> value="/images/GooglemapMarkers.js" global="true" /> <set >> field="layoutSettings.javaScripts[]" >> value="/images/getDependentDropdownValues.js" global="true" /> >> >> Added: ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3?rev=1426848&view=auto >> ============================================================================== >> --- ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 (added) >> +++ ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 Sat Dec 29 >> 22:08:19 2012 >> @@ -0,0 +1,126 @@ >> +/* >> + * Date Format 1.2.3 >> + * (c) 2007-2009 Steven Levithan <stevenlevithan.com> >> + * MIT license >> + * >> + * Includes enhancements by Scott Trenda <scott.trenda.net> >> + * and Kris Kowal <cixar.com/~kris.kowal/> >> + * >> + * Accepts a date, a mask, or a date and a mask. >> + * Returns a formatted version of the given date. >> + * The date defaults to the current date/time. >> + * The mask defaults to dateFormat.masks.default. >> + */ >> + >> +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; >> + } >> + >> + // Passing date through Date applies Date.parse, if necessary >> + date = date ? new Date(date) : new Date; >> + if (isNaN(date)) throw SyntaxError("invalid date"); >> + >> + mask = String(dF.masks[mask] || mask || dF.masks["default"]); >> + >> + // Allow setting the utc argument via the mask >> + if (mask.slice(0, 4) == "UTC:") { >> + mask = mask.slice(4); >> + utc = true; >> + } >> + >> + 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] >> + }; >> + >> + return mask.replace(token, function ($0) { >> + return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1); >> + }); >> + }; >> +}(); >> + >> +// 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'" >> +}; >> + >> +// 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" >> + ] >> +}; >> + >> +// For convenience... >> +Date.prototype.format = function (mask, utc) { >> + return dateFormat(this, mask, utc); >> +}; >> + >> >> Propchange: ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 >> ------------------------------------------------------------------------------ >> svn:eol-style = native >> >> Propchange: ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 >> ------------------------------------------------------------------------------ >> svn:keywords = Date Rev Author URL Id >> >> Propchange: ofbiz/trunk/framework/images/webapp/images/date.format-1.2.3 >> ------------------------------------------------------------------------------ >> svn:mime-type = text/plain >> >> Modified: ofbiz/trunk/framework/webtools/widget/ServiceForms.xml >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/ServiceForms.xml?rev=1426848&r1=1426847&r2=1426848&view=diff >> ============================================================================== >> --- >> ofbiz/trunk/framework/webtools/widget/ServiceForms.xml (original) +++ >> ofbiz/trunk/framework/webtools/widget/ServiceForms.xml Sat >> Dec 29 22:08:19 2012 @@ -55,11 +55,12 @@ under the License. >> </form> >> >> <form name="FindJobs" type="single" target="FindJob" >> default-entity-name="JobSandbox"> >> - <field name="noConditionFind"><hidden value="Y"/><!-- if this isn't >> there then with all fields empty no query will be >> done --></field> >> - <field name="jobName" >> title="${uiLabelMap.WebtoolsJob}"><text-find/></field> >> - <field name="jobId" >> title="${uiLabelMap.CommonId}"><text-find/></field> >> + <field name="noConditionFind" position="1"><hidden value="Y"/><!-- >> if this isn't there then with all fields empty no >> query will be done --></field> + <field name="jobName" >> title="${uiLabelMap.WebtoolsJob}" position="1"><text-find/></field> >> + <field name="clock" position="2" >> title="${uiLabelMap.CommonServerHour}:"><display/></field> >> + <field name="jobId" title="${uiLabelMap.CommonId}" >> position="1"><text-find/></field> >> <field name="serviceName" >> title="${uiLabelMap.WebtoolsServiceName}"><text-find/></field> >> - <field name="statusId" title="${uiLabelMap.CommonStatus}"> >> + <field name="statusId" title="${uiLabelMap.CommonStatus}" >> position="1"> >> <drop-down allow-empty="true"> >> <entity-options description="${description}" >> key-field-name="statusId" entity-name="StatusItem"> >> <entity-constraint name="statusTypeId" operator="equals" >> value="SERVICE_STATUS"/> >> @@ -67,7 +68,9 @@ under the License. >> </entity-options> >> </drop-down> >> </field> >> - <field name="submitButton" title="${uiLabelMap.CommonFind}"><submit >> button-type="button"/></field> >> + <field name="submitButton" title="${uiLabelMap.CommonFind}" >> position="1"> >> + <submit button-type="button"/> >> + </field> >> </form> >> >> <form name="ListJobs" type="list" list-name="listIt" >> paginate-target="FindJob" default-entity-name="JobSandbox" >> separate-columns="true" >> >> Modified: ofbiz/trunk/framework/webtools/widget/ServiceScreens.xml >> URL: >> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/ServiceScreens.xml?rev=1426848&r1=1426847&r2=1426848&view=diff >> ============================================================================== >> --- >> ofbiz/trunk/framework/webtools/widget/ServiceScreens.xml (original) +++ >> ofbiz/trunk/framework/webtools/widget/ServiceScreens.xml >> Sat Dec 29 22:08:19 2012 @@ -49,12 +49,15 @@ under the License. >> <set field="tabButtonItem" value="findJob"/> >> <set field="jobCtx" from-field="parameters"/> >> <set field="dummy" value="${groovy: if >> ('SERVICE_PENDING'.equals(jobCtx.statusId)) jobCtx.jobId = ''}"/> <!-- >> To more easily see current pending jobs and possibly cancel some others --> >> + <!-- field for >> WindowSetIntervalJs.ftl --> + <set field="clockField" >> value="FindJobs_clock_title"/> >> </actions> >> <widgets> >> <decorator-screen name="CommonServiceDecorator" >> location="${parameters.mainDecoratorLocation}"> >> <decorator-section name="body"> >> <section> >> <widgets> >> + <platform-specific><html><html-template >> >> >> >> location="component://common/webcommon/includes/WindowSetIntervalJs.ftl"/></html></platform-specific> >> <decorator-screen >> name="FindScreenDecorator" >> location="component://common/widget/CommonScreens.xml"> <decorator-section >> name="search-options"> >> <include-form name="FindJobs" >> location="component://webtools/widget/ServiceForms.xml"/>