details:   https://code.openbravo.com/erp/devel/pi/rev/c3c5bb6a8f84
changeset: 16826:c3c5bb6a8f84
user:      Augusto Mauch <augusto.mauch <at> openbravo.com>
date:      Wed Jun 13 14:38:07 2012 +0545
summary:   Related to issue 20684: Refactorization to remove duplicate code

The function convertUTCTimeToLocalTime and getTime fields of ob-view-grid and 
ob-view-form were very similar and shared much of its code. They code has been 
generalized and moved to OB.Utilities.Date

diffstat:

 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
           |  30 +------
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js
           |  33 +------
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-date.js
 |  47 ++++++++++
 3 files changed, 49 insertions(+), 61 deletions(-)

diffs (153 lines):

diff -r eec8991a4efd -r c3c5bb6a8f84 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
     Wed Jun 13 13:55:34 2012 +0545
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/ob-view-form.js
     Wed Jun 13 14:38:07 2012 +0545
@@ -191,8 +191,7 @@
     //   from the datasource, so it has to be converted from UTC to local time
     // see issue https://issues.openbravo.com/view.php?id=20684
     if (!isLocalTime) {
-      timeFields = this.getTimeFields();
-      this.convertUTCTimeToLocalTime(record, timeFields);
+      OB.Utilities.Date.convertUTCTimeToLocalTime([record], this.fields);
     }
 
     ret = this.Super('editRecord', arguments);
@@ -258,33 +257,6 @@
     }
   },
 
-  getTimeFields: function () {
-    var i, field, timeFields = [],
-        length = this.fields.length;
-    for (i = 0; i < length; i++) {
-      field = this.fields[i];
-      if (field.type === '_id_24') {
-        timeFields.push(field.name);
-      }
-    }
-    return timeFields;
-  },
-
-  convertUTCTimeToLocalTime: function (record, timeFields) {
-    var textField, fieldToDate, i, timeFieldsLength = timeFields.length,
-        UTCHourOffset = isc.Time.getUTCHoursDisplayOffset(new Date()),
-        UTCMinuteOffset = isc.Time.getUTCMinutesDisplayOffset(new Date());
-    for (i = 0; i < timeFieldsLength; i++) {
-      textField = record[timeFields[i]];
-      if (textField && textField.length > 0) {
-        fieldToDate = isc.Time.parseInput(textField);
-        fieldToDate.setTime(fieldToDate.getTime() + (UTCHourOffset * 60 * 60 * 
1000) + (UTCMinuteOffset * 60 * 1000));
-        // TODO: support time formats other than HH:mm:ss
-        record[timeFields[i]] = fieldToDate.getHours() + ':' + 
fieldToDate.getMinutes() + ':' + fieldToDate.getSeconds();
-      }
-    }
-  },
-
   editNewRecord: function (preventFocus) {
     this.clearValues();
     var ret = this.Super('editNewRecord', arguments);
diff -r eec8991a4efd -r c3c5bb6a8f84 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js
     Wed Jun 13 13:55:34 2012 +0545
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-view-grid.js
     Wed Jun 13 14:38:07 2012 +0545
@@ -203,8 +203,7 @@
       // when the data is received from the datasource, time fields are 
formatted in UTC time. They have to be converted to local time
       if (dsResponse && dsResponse.context && 
(dsResponse.context.operationType === 'fetch' || 
dsResponse.context.operationType === 'update' || 
dsResponse.context.operationType === 'add')) {
         if (this.grid) {
-          timeFields = this.grid.getTimeFields();
-          this.grid.convertUTCTimeToLocalTime(newData, timeFields);
+          OB.Utilities.Date.convertUTCTimeToLocalTime(newData, 
this.grid.completeFields);
         }
       }
       // only do this stuff for fetch operations, in other cases strange things
@@ -235,36 +234,6 @@
     }
   },
 
-  // returns the name of all time fields (type = '_id_24')
-  getTimeFields: function () {
-    var i, field, timeFields = [],
-        length = this.completeFields.length;
-    for (i = 0; i < length; i++) {
-      field = this.completeFields[i];
-      if (field.type === '_id_24') {
-        timeFields.push(field.name);
-      }
-    }
-    return timeFields;
-  },
-
-  convertUTCTimeToLocalTime: function (newData, timeFields) {
-    var textField, fieldToDate, i, j, timeFieldsLength = timeFields.length,
-        newDataLength = newData.length,
-        UTCHourOffset = isc.Time.getUTCHoursDisplayOffset(new Date()),
-        UTCMinuteOffset = isc.Time.getUTCMinutesDisplayOffset(new Date());
-    for (i = 0; i < timeFieldsLength; i++) {
-      for (j = 0; j < newDataLength; j++) {
-        textField = newData[j][timeFields[i]];
-        if (textField && textField.length > 0) {
-          fieldToDate = isc.Time.parseInput(textField);
-          fieldToDate.setTime(fieldToDate.getTime() + (UTCHourOffset * 60 * 60 
* 1000) + (UTCMinuteOffset * 60 * 1000));
-          newData[j][timeFields[i]] = fieldToDate.getHours() + ':' + 
fieldToDate.getMinutes() + ':' + fieldToDate.getSeconds();
-        }
-      }
-    }
-  },
-
   initWidget: function () {
     var i, vwState;
 
diff -r eec8991a4efd -r c3c5bb6a8f84 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-date.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-date.js
   Wed Jun 13 13:55:34 2012 +0545
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/utilities/ob-utilities-date.js
   Wed Jun 13 14:38:07 2012 +0545
@@ -222,4 +222,51 @@
   OBDate = OBDate.replace('%S', seconds);
 
   return OBDate;
+};
+
+//** {{{ OB.Utilities.Date.getTimeFields }}} **
+//
+// Returns an array with the names of the time fields.
+//
+// Parameters:
+// * {{{allFields}}}: complete list of fields
+// Return:
+// * an array with the names of the time fields contained in allFields.
+OB.Utilities.Date.getTimeFields = function (allFields) {
+  var i, field, timeFields = [],
+      length = allFields.length;
+  for (i = 0; i < length; i++) {
+    field = allFields[i];
+    if (field.type === '_id_24') {
+      timeFields.push(field.name);
+    }
+  }
+  return timeFields;
+};
+
+//** {{{ OB.Utilities.Date.convertUTCTimeToLocalTime }}} **
+//
+// Converts the value of time fields from UTC to local time
+//
+// Parameters:
+// * {{{newData}}}: records to be converted
+// * {{{allFields}}}: array with the fields of the records
+// Return:
+// * Nothing. newData is modified, its time fields are converted from UTC to 
local time
+OB.Utilities.Date.convertUTCTimeToLocalTime = function (newData, allFields) {
+  var textField, fieldToDate, i, j, newDataLength = newData.length,
+      UTCHourOffset = isc.Time.getUTCHoursDisplayOffset(new Date()),
+      UTCMinuteOffset = isc.Time.getUTCMinutesDisplayOffset(new Date()),
+      timeFields = OB.Utilities.Date.getTimeFields(allFields),
+      timeFieldsLength = timeFields.length;
+  for (i = 0; i < timeFieldsLength; i++) {
+    for (j = 0; j < newDataLength; j++) {
+      textField = newData[j][timeFields[i]];
+      if (textField && textField.length > 0) {
+        fieldToDate = isc.Time.parseInput(textField);
+        fieldToDate.setTime(fieldToDate.getTime() + (UTCHourOffset * 60 * 60 * 
1000) + (UTCMinuteOffset * 60 * 1000));
+        newData[j][timeFields[i]] = fieldToDate.getHours() + ':' + 
fieldToDate.getMinutes() + ':' + fieldToDate.getSeconds();
+      }
+    }
+  }
 };
\ No newline at end of file

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to