zet-lib 1.3.38 → 1.3.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Util.js +20 -3
- package/lib/zRoute.js +110 -105
- package/package.json +1 -1
package/lib/Util.js
CHANGED
|
@@ -1335,23 +1335,40 @@ Util.terbilang = (nilai) => {
|
|
|
1335
1335
|
return penyimpanan
|
|
1336
1336
|
}
|
|
1337
1337
|
|
|
1338
|
-
Util.
|
|
1338
|
+
Util.array_id_to_zname = (arr) => {
|
|
1339
|
+
let r = {}
|
|
1340
|
+
arr.map((item) => {
|
|
1341
|
+
r[item.id] = item.zname;
|
|
1342
|
+
})
|
|
1343
|
+
return r;
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
Util.tableShowInGrid = (arr, qey, MYMODEL, myCache, companyId) => {
|
|
1339
1347
|
try {
|
|
1340
1348
|
if (typeof arr != 'object') {
|
|
1341
1349
|
arr = []
|
|
1342
1350
|
}
|
|
1343
1351
|
arr = arr || []
|
|
1344
1352
|
let html = ''
|
|
1353
|
+
let MYMODELS = myCache.get('MYMODELS');
|
|
1354
|
+
let mywidget = MYMODELS[MYMODEL.widgets[qey].table].widgets
|
|
1345
1355
|
if (arr.length > 0) {
|
|
1346
1356
|
html += `<table class="table table-sm table-striped table-bordered table-hover">`
|
|
1347
1357
|
let json = arr[0]
|
|
1348
1358
|
arr.map((item) => {
|
|
1349
1359
|
html += `<tr>`
|
|
1350
1360
|
for (let key in item) {
|
|
1361
|
+
var keyFields = key + 'Fields'
|
|
1362
|
+
var keyObject = key + 'Object'
|
|
1351
1363
|
let value = item[key]
|
|
1352
|
-
if
|
|
1353
|
-
value = Util.
|
|
1364
|
+
if(mywidget[key].name == "relation"){
|
|
1365
|
+
value = value ? Util.array_id_to_zname(myCache.get(`${mywidget[key].table}_${MYMODEL.widgets[qey].table}___${key}_${companyId}`))[value] : ''
|
|
1366
|
+
} else {
|
|
1367
|
+
if (Util.isNumeric(value)) {
|
|
1368
|
+
value = Util.formatNumber(value, '.')
|
|
1369
|
+
}
|
|
1354
1370
|
}
|
|
1371
|
+
|
|
1355
1372
|
html += `<td>${value}</td>`
|
|
1356
1373
|
}
|
|
1357
1374
|
html += `</tr>`
|
package/lib/zRoute.js
CHANGED
|
@@ -1026,137 +1026,141 @@ zRoute.approval_history_data = (arr = []) => {
|
|
|
1026
1026
|
return myvalue
|
|
1027
1027
|
}
|
|
1028
1028
|
|
|
1029
|
-
zRoute.dataTableData = (key, value, MYMODEL, relations, myid = '') => {
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1029
|
+
zRoute.dataTableData = (key, value, MYMODEL, relations, myid = '', companyId = 1) => {
|
|
1030
|
+
try {
|
|
1031
|
+
relations = relations || {}
|
|
1032
|
+
var keyFields = key + 'Fields'
|
|
1033
|
+
var keyObject = key + 'Object'
|
|
1034
|
+
let myvalue = value
|
|
1035
|
+
var widgetName = MYMODEL.widgets[key] ? MYMODEL.widgets[key].name : ''
|
|
1036
|
+
if (key == 'lock') {
|
|
1037
|
+
myvalue = value == 1 ? 'Lock' : 'Unlock'
|
|
1038
|
+
} else if (key == 'approval_history') {
|
|
1039
|
+
myvalue = zRoute.approval_history_data(myvalue)
|
|
1040
|
+
} else {
|
|
1041
|
+
if (widgetName) {
|
|
1042
|
+
switch (widgetName) {
|
|
1043
|
+
case 'switch':
|
|
1044
|
+
myvalue = relations[keyFields][value] || ''
|
|
1045
|
+
break
|
|
1045
1046
|
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1047
|
+
case 'color':
|
|
1048
|
+
myvalue = `<input type="color" value="${value}">`
|
|
1049
|
+
break
|
|
1049
1050
|
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1051
|
+
case 'relation':
|
|
1052
|
+
myvalue = relations[keyObject][value] || ''
|
|
1053
|
+
break
|
|
1053
1054
|
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1055
|
+
case 'dropdown_multi':
|
|
1056
|
+
let arr = value ? value : []
|
|
1057
|
+
if (arr.length) {
|
|
1058
|
+
let myarr = []
|
|
1059
|
+
arr.forEach(function (item) {
|
|
1060
|
+
myarr.push(relations[keyObject][item])
|
|
1061
|
+
})
|
|
1062
|
+
myvalue = myarr.length ? myarr.join(', ') : ''
|
|
1063
|
+
}
|
|
1064
|
+
break
|
|
1064
1065
|
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1066
|
+
case 'dragdrop':
|
|
1067
|
+
let arr2 = value ? value : []
|
|
1068
|
+
if (arr2.length) {
|
|
1069
|
+
let myarr2 = []
|
|
1070
|
+
arr2.forEach(function (item) {
|
|
1071
|
+
myarr2.push(relations[keyObject][item])
|
|
1072
|
+
})
|
|
1073
|
+
myvalue = myarr2.length ? myarr2.join(', ') : ''
|
|
1074
|
+
}
|
|
1075
|
+
break
|
|
1075
1076
|
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1077
|
+
case 'dropdown_chain':
|
|
1078
|
+
myvalue = relations[key][value] || ''
|
|
1079
|
+
break
|
|
1079
1080
|
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1081
|
+
case 'select':
|
|
1082
|
+
myvalue = relations[keyFields][value] || ''
|
|
1083
|
+
break
|
|
1083
1084
|
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1085
|
+
case 'radio':
|
|
1086
|
+
myvalue = relations[keyFields][value] || ''
|
|
1087
|
+
break
|
|
1087
1088
|
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1089
|
+
case 'typeahead':
|
|
1090
|
+
myvalue = relations[keyObject][value] || ''
|
|
1091
|
+
break
|
|
1091
1092
|
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1093
|
+
case 'datetime':
|
|
1094
|
+
myvalue = Util.timeSql(value)
|
|
1095
|
+
break
|
|
1095
1096
|
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1097
|
+
case 'datepicker':
|
|
1098
|
+
myvalue = Util.dateFormat(value, MYMODEL.widgets[key].format)
|
|
1099
|
+
break
|
|
1099
1100
|
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1101
|
+
case 'number':
|
|
1102
|
+
myvalue = Util.formatNumber(value)
|
|
1103
|
+
break
|
|
1103
1104
|
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1105
|
+
case 'integer':
|
|
1106
|
+
myvalue = value + ''
|
|
1107
|
+
break
|
|
1107
1108
|
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1109
|
+
case 'image':
|
|
1110
|
+
myvalue = Util.fileView('/uploads/' + MYMODEL.routeName + '/', value, { width: 60 })
|
|
1111
|
+
break
|
|
1111
1112
|
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1113
|
+
case 'file':
|
|
1114
|
+
myvalue = Util.fileView('/uploads/' + MYMODEL.routeName + '/', value)
|
|
1115
|
+
break
|
|
1115
1116
|
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1117
|
+
case 'dropzone':
|
|
1118
|
+
if (myvalue && myvalue.length > 0) {
|
|
1119
|
+
if (typeof myvalue === 'string') {
|
|
1120
|
+
value = [myvalue]
|
|
1121
|
+
}
|
|
1122
|
+
myvalue = value.map((item) => `<a class="text-success" target="_blank" href="/uploads/${MYMODEL.routeName}/${key}/${item}"> ${item.substring(13)}</a> `)
|
|
1120
1123
|
}
|
|
1121
|
-
|
|
1122
|
-
}
|
|
1123
|
-
break
|
|
1124
|
+
break
|
|
1124
1125
|
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1126
|
+
case 'password':
|
|
1127
|
+
myvalue = 'xxxxxx'
|
|
1128
|
+
break
|
|
1128
1129
|
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1130
|
+
case 'json':
|
|
1131
|
+
myvalue = value ? JSON.stringify(value).replaceAll('","', '", "') : ''
|
|
1132
|
+
break
|
|
1132
1133
|
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1134
|
+
case 'location':
|
|
1135
|
+
myvalue = value ? value.address1 : ''
|
|
1136
|
+
break
|
|
1136
1137
|
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1138
|
+
case 'json_array':
|
|
1139
|
+
myvalue = value ? JSON.stringify(value).replaceAll('","', '", "') : ''
|
|
1140
|
+
break
|
|
1140
1141
|
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1142
|
+
case 'dropdown_checkbox':
|
|
1143
|
+
myvalue = value ? value.reduce((acc, item) => `${acc} <u>${item}</u> `, '') : ''
|
|
1144
|
+
break
|
|
1144
1145
|
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1146
|
+
case 'array':
|
|
1147
|
+
myvalue = value ? JSON.stringify(value).replaceAll('","', '", "') : ''
|
|
1148
|
+
break
|
|
1148
1149
|
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1150
|
+
case 'table':
|
|
1151
|
+
myvalue = Util.tableShowInGrid(value, key, MYMODEL, myCache, companyId)
|
|
1152
|
+
break
|
|
1152
1153
|
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1154
|
+
default:
|
|
1155
|
+
value = value || ''
|
|
1156
|
+
myvalue = value.length > 50 ? value.substring(0, 50) : value
|
|
1157
|
+
}
|
|
1156
1158
|
}
|
|
1157
1159
|
}
|
|
1160
|
+
return myvalue
|
|
1161
|
+
} catch (e) {
|
|
1162
|
+
console.log(e)
|
|
1158
1163
|
}
|
|
1159
|
-
return myvalue
|
|
1160
1164
|
}
|
|
1161
1165
|
|
|
1162
1166
|
zRoute.users = async (req) => {
|
|
@@ -2172,6 +2176,7 @@ zRoute.listDataTable = async (req, res, objData = {}) => {
|
|
|
2172
2176
|
zRoute.listData = async (req, res, MYMODEL, zRole, actionButtonsFn) => {
|
|
2173
2177
|
const room = res.locals.token || 'aa'
|
|
2174
2178
|
const table = MYMODEL.table
|
|
2179
|
+
const companyId = res.locals.companyId;
|
|
2175
2180
|
try {
|
|
2176
2181
|
actionButtonsFn = actionButtonsFn || function () {}
|
|
2177
2182
|
const relations = await zRoute.relations(req, res, MYMODEL.table)
|
|
@@ -2281,7 +2286,7 @@ zRoute.listData = async (req, res, MYMODEL, zRole, actionButtonsFn) => {
|
|
|
2281
2286
|
let buttons = !actionButtonsFn(levels, row, MYMODEL.table) ? zRoute.actionButtons(levels, row, MYMODEL.table) : actionButtonsFn(levels, row, MYMODEL.table)
|
|
2282
2287
|
arr.push(buttons)
|
|
2283
2288
|
} else {
|
|
2284
|
-
arr.push(zRoute.dataTableData(item, row[item], MYMODEL, relations, row.id))
|
|
2289
|
+
arr.push(zRoute.dataTableData(item, row[item], MYMODEL, relations, row.id, companyId))
|
|
2285
2290
|
}
|
|
2286
2291
|
})
|
|
2287
2292
|
datas.push(arr)
|