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