zet-lib 1.3.32 → 1.3.34

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/Form.js CHANGED
@@ -232,42 +232,52 @@ Form.field = (obj) => {
232
232
  break
233
233
 
234
234
  case 'select':
235
+ var please_select = obj.please_select
236
+ if (please_select != undefined) {
237
+ if (please_select != '') {
238
+ selects += `<option value="">${please_select}</option>`
239
+ }
240
+ }
235
241
  if (obj.hasOwnProperty('array')) {
236
242
  var items = obj.array || []
237
- var please_select = obj.please_select
238
- if (please_select != undefined) {
239
- if (please_select != '') {
240
- selects += `<option value="">${please_select}</option>`
241
- }
242
- }
243
243
  if (items.length) {
244
244
  items.forEach(function (item) {
245
- const selected = item.value == value ? ' selected ' : ''
246
- selects += `<option value="${item.value}" ${selected}>${item.label}</option>`
245
+ if (item.label) {
246
+ const selected = item.value == value ? ' selected ' : ''
247
+ selects += `<option value="${item.value}" ${selected}>${item.label}</option>`
248
+ }
247
249
  })
248
250
  } else {
249
251
  if (Array.isArray(data)) {
250
252
  data.map((item) => {
251
- var selected = item.id == value ? ' selected ' : ''
252
- selects += `<option value="${item.id}" ${selected}>${item.zname}</option>`
253
+ if (item.zname) {
254
+ var selected = item.id == value ? ' selected ' : ''
255
+ selects += `<option value="${item.id}" ${selected}>${item.zname}</option>`
256
+ }
253
257
  })
254
258
  } else {
255
259
  for (var keys in data) {
256
- var selected = keys == value ? ' selected ' : ''
257
- selects += `<option value="${keys}" ${selected}>${data[keys]}</option>`
260
+ if (data[keys]) {
261
+ var selected = keys == value ? ' selected ' : ''
262
+ selects += `<option value="${keys}" ${selected}>${data[keys]}</option>`
263
+ }
258
264
  }
259
265
  }
260
266
  }
261
267
  } else {
262
268
  if (Array.isArray(data)) {
263
269
  data.map((item) => {
264
- const selected = item.id == value ? ' selected ' : ''
265
- selects += `<option value="${item.id}" ${selected}>${item.zname}</option>`
270
+ if (item.zname) {
271
+ const selected = item.id == value ? ' selected ' : ''
272
+ selects += `<option value="${item.id}" ${selected}>${item.zname}</option>`
273
+ }
266
274
  })
267
275
  } else {
268
276
  for (let keys in data) {
269
- let selected = keys == value ? ' selected ' : ''
270
- selects += `<option value="${keys}" ${selected}>${data[keys]}</option>`
277
+ if (data[keys]) {
278
+ let selected = keys == value ? ' selected ' : ''
279
+ selects += `<option value="${keys}" ${selected}>${data[keys]}</option>`
280
+ }
271
281
  }
272
282
  }
273
283
  }
@@ -494,7 +504,12 @@ Form.field = (obj) => {
494
504
  break
495
505
 
496
506
  case 'dropzoneview':
497
- displayForm = `<div class="boxy-tiny">`
507
+ let countFiles = obj.value && obj.value.length ? obj.value.length + ' Files' : ''
508
+ let bodydropzoneview =
509
+ countFiles == '' ? '' : `<div class="card-header">${countFiles} <div class="float-end"><span class="icon-small icons-light" title="Download"><img onclick="location.href= '/zdownloads-dropzone/${obj.routeName}/${obj.key}/${obj.dataId}'" class="icons-bg-black gridview icon-image" src="/assets/icons/download.svg"></span></div> </div>`
510
+ displayForm = `<div class="card">
511
+ ${bodydropzoneview}
512
+ <div class="card-body">`
498
513
  if (obj.value && obj.value.length > 0) {
499
514
  obj.value.map((item) => {
500
515
  let extFile = Util.fileExtension(item)
@@ -506,7 +521,7 @@ Form.field = (obj) => {
506
521
  }
507
522
  })
508
523
  }
509
- displayForm += `</div>`
524
+ displayForm += `</div></div>`
510
525
 
511
526
  break
512
527
  default:
package/lib/zAppRouter.js CHANGED
@@ -20,6 +20,7 @@ const zCache = require('./zCache')
20
20
  const pm2 = require('pm2')
21
21
  const zFunction = require('./zFunction')
22
22
  const qs = require('qs')
23
+ const zip = require('express-zip')
23
24
 
24
25
  /*
25
26
  ajax Post
@@ -1569,4 +1570,33 @@ router.post('/zhistory-data', async (req, res) => {
1569
1570
  }
1570
1571
  })
1571
1572
 
1573
+ router.get('/zdownloads-dropzone/:table/:field/:id', async (req, res) => {
1574
+ try {
1575
+ let table = req.params.table
1576
+ let field = req.params.field
1577
+ let id = req.params.id
1578
+ const room = res.locals.token
1579
+ let result = await connection.result({
1580
+ table: table,
1581
+ where: {
1582
+ id: id,
1583
+ },
1584
+ })
1585
+ let dir = `${dirRoot}/public/uploads/${table}/${field}/`
1586
+ let arr = []
1587
+ let files = result[field]
1588
+ for (const file of files) {
1589
+ if (Util.fileExist(dir + file)) {
1590
+ let filename = file.substring(13)
1591
+ arr.push({ path: dir + file, name: filename })
1592
+ io.to(room).emit('info', `Zip file ${filename}`)
1593
+ }
1594
+ }
1595
+ io.to(room).emit('info', `Zip file completed...`)
1596
+ res.zip(arr, `${field}_${table}_${id}.zip`)
1597
+ } catch (e) {
1598
+ console.log(e)
1599
+ res.json(e + '')
1600
+ }
1601
+ })
1572
1602
  module.exports = router
package/lib/zRoute.js CHANGED
@@ -3035,6 +3035,7 @@ zRoute.viewForm = (req, res, MYMODEL, relations, data = {}, MODEL_TABLE = {}, ke
3035
3035
  obj[key].value = data[key] || []
3036
3036
  obj[key].table = MYMODEL.table
3037
3037
  obj[key].key = key
3038
+ obj[key].dataId = data.id || ''
3038
3039
  break
3039
3040
  }
3040
3041
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zet-lib",
3
- "version": "1.3.32",
3
+ "version": "1.3.34",
4
4
  "description": "zet is a library that part of zet generator.",
5
5
  "engines": {
6
6
  "node": ">=18"
@@ -34,6 +34,7 @@
34
34
  "dotenv": "^16.3.1",
35
35
  "ejs": "^3.1.9",
36
36
  "exceljs": "^4.4.0",
37
+ "express-zip": "^3.0.0",
37
38
  "fs-extra": "^11.1.1",
38
39
  "html-minifier-terser": "^7.2.0",
39
40
  "js-sha256": "^0.9.0",