zet-lib 1.3.31 → 1.3.33
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 +7 -2
- package/lib/zAppRouter.js +30 -0
- package/lib/zRoute.js +31 -1
- package/package.json +2 -1
package/lib/Form.js
CHANGED
|
@@ -494,7 +494,12 @@ Form.field = (obj) => {
|
|
|
494
494
|
break
|
|
495
495
|
|
|
496
496
|
case 'dropzoneview':
|
|
497
|
-
|
|
497
|
+
let countFiles = obj.value && obj.value.length ? obj.value.length + ' Files' : ''
|
|
498
|
+
let bodydropzoneview =
|
|
499
|
+
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>`
|
|
500
|
+
displayForm = `<div class="card">
|
|
501
|
+
${bodydropzoneview}
|
|
502
|
+
<div class="card-body">`
|
|
498
503
|
if (obj.value && obj.value.length > 0) {
|
|
499
504
|
obj.value.map((item) => {
|
|
500
505
|
let extFile = Util.fileExtension(item)
|
|
@@ -506,7 +511,7 @@ Form.field = (obj) => {
|
|
|
506
511
|
}
|
|
507
512
|
})
|
|
508
513
|
}
|
|
509
|
-
displayForm += `</div>`
|
|
514
|
+
displayForm += `</div></div>`
|
|
510
515
|
|
|
511
516
|
break
|
|
512
517
|
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
|
@@ -1139,7 +1139,7 @@ zRoute.dataTableData = (key, value, MYMODEL, relations, myid = '') => {
|
|
|
1139
1139
|
break
|
|
1140
1140
|
|
|
1141
1141
|
case 'dropdown_checkbox':
|
|
1142
|
-
myvalue = value ? value.reduce((acc,item)=> `${acc} <u>${item}</u> `, '') : ''
|
|
1142
|
+
myvalue = value ? value.reduce((acc, item) => `${acc} <u>${item}</u> `, '') : ''
|
|
1143
1143
|
break
|
|
1144
1144
|
|
|
1145
1145
|
case 'array':
|
|
@@ -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
|
}
|
|
@@ -4102,6 +4103,8 @@ zRoute.deleteSQL = async (table, id, company_id) => {
|
|
|
4102
4103
|
if (results[0].lock == 1) {
|
|
4103
4104
|
throw Error('Data is locked')
|
|
4104
4105
|
} else {
|
|
4106
|
+
//delete all files
|
|
4107
|
+
zRoute.deleteFiles(table, results[0])
|
|
4105
4108
|
await connection.delete({ table: table, where: where })
|
|
4106
4109
|
zRoute.modelsCacheRenew(table, company_id)
|
|
4107
4110
|
}
|
|
@@ -4114,6 +4117,33 @@ zRoute.deleteSQL = async (table, id, company_id) => {
|
|
|
4114
4117
|
}
|
|
4115
4118
|
}
|
|
4116
4119
|
|
|
4120
|
+
zRoute.deleteFiles = (table, result) => {
|
|
4121
|
+
try {
|
|
4122
|
+
//check if has files then remove it
|
|
4123
|
+
const MYMODELS = myCache.get('MYMODELS')
|
|
4124
|
+
const MYMODEL = MYMODELS[table]
|
|
4125
|
+
const widgets = MYMODEL.widgets
|
|
4126
|
+
for (let key in widgets) {
|
|
4127
|
+
if (widgets[key].name == 'dropzone') {
|
|
4128
|
+
if (result[key]) {
|
|
4129
|
+
let dir = `${dirRoot}/public/uploads/${table}/${key}/`
|
|
4130
|
+
result[key].map((item) => {
|
|
4131
|
+
fs.remove(dir + item, () => {})
|
|
4132
|
+
})
|
|
4133
|
+
}
|
|
4134
|
+
}
|
|
4135
|
+
if (widgets[key].name == 'image' || widgets[key].name == 'file') {
|
|
4136
|
+
if (result[key]) {
|
|
4137
|
+
let dir = `${dirRoot}/public/uploads/${table}/`
|
|
4138
|
+
fs.remove(dir + result[key], () => {})
|
|
4139
|
+
}
|
|
4140
|
+
}
|
|
4141
|
+
}
|
|
4142
|
+
} catch (e) {
|
|
4143
|
+
console.log(e)
|
|
4144
|
+
}
|
|
4145
|
+
}
|
|
4146
|
+
|
|
4117
4147
|
//for import
|
|
4118
4148
|
zRoute.import = async (req, res, MYMODEL) => {
|
|
4119
4149
|
const cacheRole = myCache.get('ROLES')[res.locals.roleId].params
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zet-lib",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.33",
|
|
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",
|