zet-lib 1.0.88 → 1.0.90
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/connection.js +15 -6
- package/lib/zRoute.js +46 -0
- package/package.json +1 -1
package/lib/connection.js
CHANGED
|
@@ -48,7 +48,7 @@ const orderByFn = (obj) => {
|
|
|
48
48
|
|
|
49
49
|
const whereFn = (obj) => {
|
|
50
50
|
const where = obj.where || {}
|
|
51
|
-
//[{field:"your_field",option:"=>",value:"12",operator:"AND",isJSON : false}]
|
|
51
|
+
//[{field:"your_field",option:"=>",value:"12",operator:"AND",isJSON : false, type:"text,json,date"}]
|
|
52
52
|
const whereArray = obj.whereArray || []
|
|
53
53
|
let increment = 1
|
|
54
54
|
let arr = [],
|
|
@@ -61,11 +61,21 @@ const whereFn = (obj) => {
|
|
|
61
61
|
wherequery = arr.length ? wherequery.join(' AND ') : ''
|
|
62
62
|
if (whereArray.length) {
|
|
63
63
|
let andOr = wherequery ? ' AND ' : ''
|
|
64
|
-
whereArray.
|
|
65
|
-
|
|
64
|
+
whereArray.map((item, index) => {
|
|
65
|
+
let type = !item.type ? 'text' : item.type
|
|
66
|
+
if (index > 0) {
|
|
67
|
+
andOr = ''
|
|
68
|
+
}
|
|
66
69
|
let operator = !item.operator ? ' AND ' : item.operator
|
|
67
|
-
if (index == whereArray.length - 1)
|
|
68
|
-
|
|
70
|
+
if (index == whereArray.length - 1) {
|
|
71
|
+
operator = ''
|
|
72
|
+
}
|
|
73
|
+
let fields = ''
|
|
74
|
+
if (type == 'date') {
|
|
75
|
+
field = item.field.indexOf('.') > -1 ? item.field + '::text ' : ` ${item.field}::text `
|
|
76
|
+
} else {
|
|
77
|
+
field = item.field.indexOf('.') > -1 ? item.field : ` "${item.field}" `
|
|
78
|
+
}
|
|
69
79
|
//is JSON is field is JSON
|
|
70
80
|
//JSON_CONTAINS(color, '"Red"' ,'$')
|
|
71
81
|
if (item.isJSON) {
|
|
@@ -79,7 +89,6 @@ const whereFn = (obj) => {
|
|
|
79
89
|
} else {
|
|
80
90
|
wherequery += `${andOr} ${field} ${item.option} $${increment} ${operator}`
|
|
81
91
|
}
|
|
82
|
-
|
|
83
92
|
let itemValue = item.value
|
|
84
93
|
if (item.option == '=') {
|
|
85
94
|
itemValue = Util.replaceAll(itemValue, '%', '')
|
package/lib/zRoute.js
CHANGED
|
@@ -1104,15 +1104,28 @@ zRoute.selectAllowedField = (req, res, MYMODEL, arr = []) => {
|
|
|
1104
1104
|
arr = fixedArr
|
|
1105
1105
|
}
|
|
1106
1106
|
|
|
1107
|
+
let customs = []
|
|
1108
|
+
for (var key in MYMODEL.widgets) {
|
|
1109
|
+
if (MYMODEL.widgets[key].name == 'custom') {
|
|
1110
|
+
customs.push(key)
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
1113
|
+
if (customs.length > 0) {
|
|
1114
|
+
arr = arr.filter((item) => !customs.includes(item))
|
|
1115
|
+
}
|
|
1107
1116
|
return arr
|
|
1108
1117
|
}
|
|
1109
1118
|
|
|
1110
1119
|
zRoute.excelQuery = async (req, res, MYMODEL, paramsObject = {}) => {
|
|
1111
1120
|
let virtuals = []
|
|
1121
|
+
let customs = []
|
|
1112
1122
|
for (var key in MYMODEL.widgets) {
|
|
1113
1123
|
if (MYMODEL.widgets[key].name === 'virtual') {
|
|
1114
1124
|
virtuals.push(key)
|
|
1115
1125
|
}
|
|
1126
|
+
if (MYMODEL.widgets[key].name === 'custom') {
|
|
1127
|
+
customs.push(key)
|
|
1128
|
+
}
|
|
1116
1129
|
}
|
|
1117
1130
|
//check directory for import not export
|
|
1118
1131
|
const dir = `${dirRoot}/public/excel/tmp`
|
|
@@ -1146,6 +1159,7 @@ zRoute.excelQuery = async (req, res, MYMODEL, paramsObject = {}) => {
|
|
|
1146
1159
|
if (zall) {
|
|
1147
1160
|
let difference = allfields.filter((x) => !fields.includes(x))
|
|
1148
1161
|
arr = [...fields, ...difference].filter((x) => !virtuals.includes(x))
|
|
1162
|
+
arr = arr.filter((item) => !customs.includes(item))
|
|
1149
1163
|
select = `"${arr.join('","')}"`
|
|
1150
1164
|
}
|
|
1151
1165
|
let whereArray = []
|
|
@@ -1182,6 +1196,9 @@ zRoute.excelQuery = async (req, res, MYMODEL, paramsObject = {}) => {
|
|
|
1182
1196
|
if (!zall) {
|
|
1183
1197
|
obj.limit = body.length
|
|
1184
1198
|
obj.offset = body.start
|
|
1199
|
+
} else {
|
|
1200
|
+
obj.limit = 50000
|
|
1201
|
+
obj.offset = 0
|
|
1185
1202
|
}
|
|
1186
1203
|
rows = await connection.results(obj)
|
|
1187
1204
|
} else {
|
|
@@ -1600,6 +1617,15 @@ zRoute.listDataTable = async (req, res, objData = {}) => {
|
|
|
1600
1617
|
const relations = await zRoute.relations(req, res, MYMODEL.table)
|
|
1601
1618
|
const select = Object.prototype.hasOwnProperty.call(objData, 'select') ? objData.select : Util.selectParser(fields, MYMODEL)
|
|
1602
1619
|
const columns = Object.prototype.hasOwnProperty.call(objData, 'columns') ? objData.columns : body.columns
|
|
1620
|
+
const asDate = []
|
|
1621
|
+
for (let key in MYMODEL.widgets) {
|
|
1622
|
+
if (MYMODEL.widgets[key].name == 'datetime') {
|
|
1623
|
+
asDate.push(key)
|
|
1624
|
+
}
|
|
1625
|
+
if (MYMODEL.widgets[key].name == 'datepicker') {
|
|
1626
|
+
asDate.push(key)
|
|
1627
|
+
}
|
|
1628
|
+
}
|
|
1603
1629
|
let whereArray = []
|
|
1604
1630
|
if (objData.hasOwnProperty('whereArray')) {
|
|
1605
1631
|
whereArray.push(objData['whereArray'])
|
|
@@ -1610,13 +1636,19 @@ zRoute.listDataTable = async (req, res, objData = {}) => {
|
|
|
1610
1636
|
value: res.locals.companyId,
|
|
1611
1637
|
operator: 'AND',
|
|
1612
1638
|
})
|
|
1639
|
+
|
|
1613
1640
|
columns.forEach(function (item) {
|
|
1614
1641
|
if (item.search.value) {
|
|
1642
|
+
let astype = 'text'
|
|
1643
|
+
if (asDate.includes(fields[item.data])) {
|
|
1644
|
+
astype = 'date'
|
|
1645
|
+
}
|
|
1615
1646
|
whereArray.push({
|
|
1616
1647
|
field: fields[item.data],
|
|
1617
1648
|
option: MYMODEL.options[fields[item.data]],
|
|
1618
1649
|
value: item.search.value,
|
|
1619
1650
|
operator: 'AND',
|
|
1651
|
+
type: astype,
|
|
1620
1652
|
})
|
|
1621
1653
|
}
|
|
1622
1654
|
})
|
|
@@ -1674,6 +1706,15 @@ zRoute.listData = async (req, res, MYMODEL, zRole, actionButtonsFn) => {
|
|
|
1674
1706
|
const body = req.body
|
|
1675
1707
|
const fields = body.fields
|
|
1676
1708
|
const select = Util.selectParser(fields, MYMODEL)
|
|
1709
|
+
const asDate = []
|
|
1710
|
+
for (let key in MYMODEL.widgets) {
|
|
1711
|
+
if (MYMODEL.widgets[key].name == 'datetime') {
|
|
1712
|
+
asDate.push(key)
|
|
1713
|
+
}
|
|
1714
|
+
if (MYMODEL.widgets[key].name == 'datepicker') {
|
|
1715
|
+
asDate.push(key)
|
|
1716
|
+
}
|
|
1717
|
+
}
|
|
1677
1718
|
let whereArray = []
|
|
1678
1719
|
const columns = body.columns
|
|
1679
1720
|
if (MYMODEL.keys.includes('company_id')) {
|
|
@@ -1686,11 +1727,16 @@ zRoute.listData = async (req, res, MYMODEL, zRole, actionButtonsFn) => {
|
|
|
1686
1727
|
}
|
|
1687
1728
|
columns.forEach(function (item) {
|
|
1688
1729
|
if (item.search.value) {
|
|
1730
|
+
let astype = 'text'
|
|
1731
|
+
if (asDate.includes(fields[item.data])) {
|
|
1732
|
+
astype = 'date'
|
|
1733
|
+
}
|
|
1689
1734
|
whereArray.push({
|
|
1690
1735
|
field: fields[item.data],
|
|
1691
1736
|
option: MYMODEL.options[fields[item.data]],
|
|
1692
1737
|
value: item.search.value,
|
|
1693
1738
|
operator: 'AND',
|
|
1739
|
+
type: astype,
|
|
1694
1740
|
})
|
|
1695
1741
|
}
|
|
1696
1742
|
})
|