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 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.forEach((item, index) => {
65
- if (index > 0) andOr = ''
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) operator = ''
68
- const field = item.field.indexOf('.') > -1 ? item.field : ` "${item.field}" `
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
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zet-lib",
3
- "version": "1.0.88",
3
+ "version": "1.0.90",
4
4
  "description": "zet is a library that part of zet generator.",
5
5
  "engines": {
6
6
  "node": ">=18"