1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports._findField = exports._getField = exports.formatValue = exports._triggerChange = exports._dateToUTCString = exports.eq = undefined;
|
7 |
|
8 | var _util = require('tinper-sparrow/src/util');
|
9 |
|
10 | var eq = function eq(a, b) {
|
11 | if ((a === null || a === undefined || a === '') && (b === null || b === undefined || b === '')) return true;
|
12 |
|
13 |
|
14 | if (a + '' == b + '') return true;
|
15 | return false;
|
16 | }; |
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 | var _formatDate = function _formatDate(value) {
|
24 | if (!value) return value;
|
25 | var date = new Date();
|
26 | date.setTime(value);
|
27 |
|
28 | if (isNaN(date)) {
|
29 | return value;
|
30 | }
|
31 | var year = date.getFullYear();
|
32 | var month = date.getMonth() + 1;
|
33 | if (parseInt(month) < 10) month = "0" + month;
|
34 | var day = date.getDate();
|
35 | if (parseInt(day) < 10) day = "0" + day;
|
36 | var hours = date.getHours();
|
37 | if (parseInt(hours) < 10) hours = "0" + hours;
|
38 | var minutes = date.getMinutes();
|
39 | if (parseInt(minutes) < 10) minutes = "0" + minutes;
|
40 | var seconds = date.getSeconds();
|
41 | if (parseInt(seconds) < 10) seconds = "0" + seconds;
|
42 | var mill = date.getMilliseconds();
|
43 | var formatString = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
|
44 | return formatString;
|
45 | };
|
46 |
|
47 | var _dateToUTCString = function _dateToUTCString(date) {
|
48 | if (!date) return '';
|
49 | if (typeof date === 'number') return date;
|
50 | if (date.indexOf("-") > -1) date = date.replace(/\-/g, "/");
|
51 | var utcString = Date.parse(date);
|
52 | if (isNaN(utcString)) return "";
|
53 | return utcString;
|
54 | };
|
55 |
|
56 | var _triggerChange = function _triggerChange(rowObj, fieldName, oldValue, ctx) {
|
57 | _getField(rowObj, fieldName).changed = true;
|
58 | if (rowObj.status != Row.STATUS.NEW) rowObj.status = Row.STATUS.UPDATE;
|
59 | if (rowObj.valueChange[fieldName]) rowObj.valueChange[fieldName](-rowObj.valueChange[fieldName]());
|
60 | if (rowObj.parent.getCurrentRow() == rowObj && rowObj.parent.valueChange[fieldName]) {
|
61 | rowObj.parent.valueChange[fieldName](-rowObj.parent.valueChange[fieldName]());
|
62 | }
|
63 | if (rowObj.parent.ns) {
|
64 | var fName = rowObj.parent.ns + '.' + fieldName;
|
65 | if (rowObj.parent.root.valueChange[fName]) rowObj.parent.root.valueChange[fName](-rowObj.parent.root.valueChange[fName]());
|
66 | }
|
67 |
|
68 | var event = {
|
69 | eventType: 'dataTableEvent',
|
70 | dataTable: rowObj.parent.id,
|
71 | rowId: rowObj.rowId,
|
72 | field: fieldName,
|
73 | oldValue: oldValue,
|
74 | newValue: rowObj.getValue(fieldName),
|
75 | ctx: ctx || "",
|
76 | rowObj: rowObj
|
77 | };
|
78 | rowObj.parent.trigger(DataTable.ON_VALUE_CHANGE, event);
|
79 | rowObj.parent.trigger(fieldName + "." + DataTable.ON_VALUE_CHANGE, event);
|
80 | if (rowObj == rowObj.parent.getCurrentRow()) rowObj.parent.trigger(fieldName + "." + DataTable.ON_CURRENT_VALUE_CHANGE, event);
|
81 |
|
82 |
|
83 | if (rowObj.parent.ns) {
|
84 | event.fullField = fName;
|
85 | event.ns = rowObj.parent.ns;
|
86 | rowObj.parent.root.trigger(DataTable.ON_VALUE_CHANGE, event);
|
87 | rowObj.parent.root.trigger(fName + "." + DataTable.ON_VALUE_CHANGE, event);
|
88 | }
|
89 | };
|
90 |
|
91 |
|
92 |
|
93 |
|
94 |
|
95 |
|
96 |
|
97 | var formatValue = function formatValue(field, value) {
|
98 | var type = this.parent.getMeta(field, 'type');
|
99 | if (!type) return value;
|
100 | if (type == 'date' || type == 'datetime') {
|
101 | return _formatDate(value);
|
102 | }
|
103 | return value;
|
104 | };
|
105 |
|
106 | var _findField = function _findField(rowObj, fieldName) {
|
107 | var rat = rowObj.data[fieldName];
|
108 | if (!rat) {
|
109 | var fnames = fieldName.split('.');
|
110 | if (fnames.length > 1) {
|
111 | var tempField = rowObj.data;
|
112 | for (var i = 0; i < fnames.length; i++) {
|
113 | tempField = tempField[fnames[i]];
|
114 | if (tempField.value instanceof DataTable) {
|
115 | var row = tempField.value.getCurrentRow();
|
116 | if (row) {
|
117 | tempField = row.data;
|
118 | }
|
119 | }
|
120 | if (!tempField) {
|
121 | break;
|
122 | }
|
123 | }
|
124 | rat = tempField;
|
125 | }
|
126 | }
|
127 | return rat || null;
|
128 | };
|
129 |
|
130 | var _getField = function _getField(rowObj, fieldName) {
|
131 | var rat = _findField(rowObj, fieldName);
|
132 | if (!rat) {
|
133 | var msg = 'field:' + fieldName + ' not exist in dataTable:' + rowObj.parent.root.id + '!';
|
134 | throw new Error(msg);
|
135 | }
|
136 | return rat;
|
137 | };
|
138 |
|
139 | exports.eq = eq;
|
140 | exports._dateToUTCString = _dateToUTCString;
|
141 | exports._triggerChange = _triggerChange;
|
142 | exports.formatValue = formatValue;
|
143 | exports._getField = _getField;
|
144 | exports._findField = _findField; |
\ | No newline at end of file |