zet-lib 1.5.30 → 2.0.1
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/Modal.js +85 -30
- package/lib/Model.js +118 -2
- package/lib/config_generator.js +24 -0
- package/lib/generatorApi.js +1328 -0
- package/lib/generatorApp.js +1342 -0
- package/lib/generatorModel.js +733 -0
- package/lib/index.js +39 -12
- package/lib/lang_en.js +115 -0
- package/lib/routes/api.js +52 -0
- package/lib/routes/index.js +9 -0
- package/lib/views/error.ejs +3 -0
- package/lib/views/zgenerator/bootstrap3/_form.ejs +24 -0
- package/lib/views/zgenerator/bootstrap3/create.ejs +9 -0
- package/lib/views/zgenerator/bootstrap3/createjs.ejs +3 -0
- package/lib/views/zgenerator/bootstrap3/import.ejs +52 -0
- package/lib/views/zgenerator/bootstrap3/importjs.ejs +3 -0
- package/lib/views/zgenerator/bootstrap3/index.ejs +29 -0
- package/lib/views/zgenerator/bootstrap3/indexcss.ejs +1 -0
- package/lib/views/zgenerator/bootstrap3/indexjs.ejs +307 -0
- package/lib/views/zgenerator/bootstrap3/update.ejs +8 -0
- package/lib/views/zgenerator/bootstrap3/updatejs.ejs +3 -0
- package/lib/views/zgenerator/bootstrap3/view.ejs +57 -0
- package/lib/views/zgenerator/head.ejs +12 -0
- package/lib/views/zgenerator/index.ejs +271 -0
- package/lib/views/zgenerator/indexcss.ejs +87 -0
- package/lib/views/zgenerator/indexjs.ejs +705 -0
- package/lib/views/zgenerator/layout.ejs +198 -0
- package/lib/views/zgenerator/manual_basic.ejs +2 -0
- package/lib/views/zgenerator/manual_dropdown.ejs +126 -0
- package/lib/views/zgenerator/manual_modules.ejs +192 -0
- package/lib/views/zgenerator/manual_virtual.ejs +143 -0
- package/lib/views/zgenerator/mini.ejs +341 -0
- package/lib/views/zgenerator/routerApp.ejs +359 -0
- package/lib/views/zgenerator/views/_form.ejs +25 -0
- package/lib/views/zgenerator/views/approval.ejs +42 -0
- package/lib/views/zgenerator/views/create.ejs +7 -0
- package/lib/views/zgenerator/views/createjs.ejs +16 -0
- package/lib/views/zgenerator/views/import.ejs +49 -0
- package/lib/views/zgenerator/views/importjs.ejs +4 -0
- package/lib/views/zgenerator/views/index.ejs +9 -0
- package/lib/views/zgenerator/views/indexcss.ejs +2 -0
- package/lib/views/zgenerator/views/indexjs.ejs +2 -0
- package/lib/views/zgenerator/views/preview.ejs +34 -0
- package/lib/views/zgenerator/views/update.ejs +7 -0
- package/lib/views/zgenerator/views/updatejs.ejs +16 -0
- package/lib/views/zgenerator/views/view.ejs +36 -0
- package/lib/zGeneratorRouter.js +46 -22
- package/lib/zRoute.js +14 -3
- package/package.json +17 -11
package/lib/zGeneratorRouter.js
CHANGED
|
@@ -15,6 +15,9 @@ const myCache = require("./cache");
|
|
|
15
15
|
const ejs = require("ejs");
|
|
16
16
|
var app = express();
|
|
17
17
|
const path = require("path");
|
|
18
|
+
const Api = require('./generatorApi');
|
|
19
|
+
const Model = require('./Model');
|
|
20
|
+
|
|
18
21
|
|
|
19
22
|
if (typeof global.dirRoot === 'undefined') {
|
|
20
23
|
global.dirRoot = Util.dirRoot;
|
|
@@ -41,7 +44,7 @@ const nots = [
|
|
|
41
44
|
];
|
|
42
45
|
//const nots = [];
|
|
43
46
|
//const generatorUrl = 'http://localhost:3005';
|
|
44
|
-
const generatorUrl = "https://generator.cmsqu.com";
|
|
47
|
+
//const generatorUrl = "https://generator.cmsqu.com";
|
|
45
48
|
|
|
46
49
|
const bodyView = Util.readFile(
|
|
47
50
|
require.resolve(__dirname + "/views/generator.ejs")
|
|
@@ -55,8 +58,14 @@ router.get("/", csrfProtection, async (req, res) => {
|
|
|
55
58
|
relations = {},
|
|
56
59
|
approvalDatas = { is_approval: false };
|
|
57
60
|
const MYMODELS = myCache.get("MYMODELS");
|
|
58
|
-
let datas = await axios.post(`${generatorUrl}/api/generator/index`);
|
|
59
|
-
jsonData = datas.data;
|
|
61
|
+
//let datas = await axios.post(`${generatorUrl}/api/generator/index`);
|
|
62
|
+
//jsonData = datas.data;
|
|
63
|
+
jsonData = {
|
|
64
|
+
datas: {table: '', tabs: [], labels: {}, details: {}, hardcode_grid: ""},
|
|
65
|
+
table: table,
|
|
66
|
+
route: table,
|
|
67
|
+
selects: Model.keys,
|
|
68
|
+
}
|
|
60
69
|
jsonData.rows = await zfieldsKeys();
|
|
61
70
|
if (table) {
|
|
62
71
|
jsonData.datas = jsonData.rows[table] || {};
|
|
@@ -160,11 +169,21 @@ router.post("/fields", async (req, res) => {
|
|
|
160
169
|
rowsFields: rowsFields,
|
|
161
170
|
table: table,
|
|
162
171
|
};
|
|
163
|
-
let datas = await axios.post(
|
|
172
|
+
/* let datas = await axios.post(
|
|
164
173
|
`${generatorUrl}/api/generator/modal`,
|
|
165
174
|
objData
|
|
166
|
-
);
|
|
167
|
-
|
|
175
|
+
); */
|
|
176
|
+
let others = result.others || {};
|
|
177
|
+
let othersArr = Object.keys(others) || [];
|
|
178
|
+
let json = {}
|
|
179
|
+
if(othersArr.length) {
|
|
180
|
+
console.log('masuk ke container')
|
|
181
|
+
json = await Api.modalWithContainer(objData);
|
|
182
|
+
} else {
|
|
183
|
+
json = await Api.modalClassic(objData);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
res.json(json);
|
|
168
187
|
} catch (e) {
|
|
169
188
|
console.log(e);
|
|
170
189
|
res.json(e.toString());
|
|
@@ -176,11 +195,12 @@ Create new Module/Table
|
|
|
176
195
|
*/
|
|
177
196
|
router.post("/", csrfProtection, async (req, res) => {
|
|
178
197
|
try {
|
|
179
|
-
let results = await axios.post(
|
|
198
|
+
/* let results = await axios.post(
|
|
180
199
|
`${generatorUrl}/api/generator/create`,
|
|
181
200
|
req.body
|
|
182
|
-
);
|
|
183
|
-
let
|
|
201
|
+
); */
|
|
202
|
+
let body = req.body;
|
|
203
|
+
let datas = Api.createTable(body);
|
|
184
204
|
if (datas.status == 0) {
|
|
185
205
|
res.json(datas);
|
|
186
206
|
} else {
|
|
@@ -207,11 +227,13 @@ router.post("/reset", async (req, res) => {
|
|
|
207
227
|
return res.json(Util.flashError("Table is locked"));
|
|
208
228
|
}
|
|
209
229
|
if (table) {
|
|
210
|
-
let results = await axios.post(
|
|
230
|
+
/* let results = await axios.post(
|
|
211
231
|
`${generatorUrl}/api/generator/reset`,
|
|
212
232
|
req.body
|
|
213
|
-
);
|
|
214
|
-
let
|
|
233
|
+
); */
|
|
234
|
+
let body = req.body;
|
|
235
|
+
let datas = Api.reset(body);
|
|
236
|
+
//let datas = results.data;
|
|
215
237
|
await connection.update({
|
|
216
238
|
table: "zfields",
|
|
217
239
|
data: datas,
|
|
@@ -395,8 +417,9 @@ const generate = async (req, res) => {
|
|
|
395
417
|
});
|
|
396
418
|
}
|
|
397
419
|
body.others = others;
|
|
398
|
-
results = await axios.post(`${generatorUrl}/api/generator/properties`, body);
|
|
399
|
-
|
|
420
|
+
//results = await axios.post(`${generatorUrl}/api/generator/properties`, body);
|
|
421
|
+
results = await Api.properties(body);
|
|
422
|
+
datas = results;
|
|
400
423
|
if (datas.create_table.hasOwnProperty("sql")) {
|
|
401
424
|
await connection.query(datas.create_table.sql);
|
|
402
425
|
return generate(body);
|
|
@@ -463,8 +486,9 @@ const generate = async (req, res) => {
|
|
|
463
486
|
connection.constraintList(table)
|
|
464
487
|
);
|
|
465
488
|
body.result = result;
|
|
466
|
-
results = await axios.post(`${generatorUrl}/api/generator/generate`, body);
|
|
467
|
-
|
|
489
|
+
//results = await axios.post(`${generatorUrl}/api/generator/generate`, body);
|
|
490
|
+
results = await Api.generate(body);
|
|
491
|
+
datas = results;
|
|
468
492
|
let files = datas.files;
|
|
469
493
|
for (let key in files) {
|
|
470
494
|
let filesKey = files[key];
|
|
@@ -1039,11 +1063,11 @@ router.post("/add_field", csrfProtection, async (req, res) => {
|
|
|
1039
1063
|
table: "zfields",
|
|
1040
1064
|
where: { table: table },
|
|
1041
1065
|
});
|
|
1042
|
-
const results = await axios.post(
|
|
1066
|
+
/* const results = await axios.post(
|
|
1043
1067
|
`${generatorUrl}/api/generator/create_field`,
|
|
1044
1068
|
body
|
|
1045
|
-
);
|
|
1046
|
-
const datas =
|
|
1069
|
+
); */
|
|
1070
|
+
const datas = Api.create_field(body);
|
|
1047
1071
|
if (datas.status == 1) {
|
|
1048
1072
|
await connection.update({
|
|
1049
1073
|
table: "zfields",
|
|
@@ -1091,11 +1115,11 @@ router.post("/setting_field", csrfProtection, async (req, res) => {
|
|
|
1091
1115
|
table: "zfields",
|
|
1092
1116
|
where: { table: table },
|
|
1093
1117
|
});
|
|
1094
|
-
const results = await axios.post(
|
|
1118
|
+
/* const results = await axios.post(
|
|
1095
1119
|
`${generatorUrl}/api/generator/modal_settings`,
|
|
1096
1120
|
body
|
|
1097
|
-
);
|
|
1098
|
-
const datas =
|
|
1121
|
+
); */
|
|
1122
|
+
const datas = Api.modal_settings(body);
|
|
1099
1123
|
res.json(datas.html);
|
|
1100
1124
|
});
|
|
1101
1125
|
|
package/lib/zRoute.js
CHANGED
|
@@ -547,6 +547,9 @@ zRoute.relationTable = async (req, res, table, visiblesColumns = []) => {
|
|
|
547
547
|
try {
|
|
548
548
|
const MYMODELS = myCache.get("MYMODELS");
|
|
549
549
|
const MYMODEL = MYMODELS[table];
|
|
550
|
+
if (!MYMODEL) {
|
|
551
|
+
return {};
|
|
552
|
+
}
|
|
550
553
|
let relations = {};
|
|
551
554
|
relations["zattributes"] = {};
|
|
552
555
|
relations["zvirtuals"] = {};
|
|
@@ -556,10 +559,12 @@ zRoute.relationTable = async (req, res, table, visiblesColumns = []) => {
|
|
|
556
559
|
let company_id = res.locals.companyId;
|
|
557
560
|
let widgets = {};
|
|
558
561
|
if (visiblesColumns.length == 0) {
|
|
559
|
-
widgets = MYMODEL.widgets;
|
|
562
|
+
widgets = MYMODEL.widgets || {};
|
|
560
563
|
} else {
|
|
561
564
|
visiblesColumns.map((item) => {
|
|
562
|
-
widgets
|
|
565
|
+
if (MYMODEL.widgets && MYMODEL.widgets[item]) {
|
|
566
|
+
widgets[item] = MYMODEL.widgets[item];
|
|
567
|
+
}
|
|
563
568
|
});
|
|
564
569
|
}
|
|
565
570
|
|
|
@@ -819,6 +824,9 @@ zRoute.relations = async (req, res, table, visiblesColumns = []) => {
|
|
|
819
824
|
try {
|
|
820
825
|
const MYMODELS = myCache.get("MYMODELS");
|
|
821
826
|
const MYMODEL = MYMODELS[table];
|
|
827
|
+
if (!MYMODEL) {
|
|
828
|
+
return {};
|
|
829
|
+
}
|
|
822
830
|
let relation = await zRoute.relationTable(req, res, table, visiblesColumns);
|
|
823
831
|
let relations = {};
|
|
824
832
|
if (MYMODEL.joins && MYMODEL.joins.list) {
|
|
@@ -4080,7 +4088,10 @@ zRoute.generateJS = (req, res, MYMODEL, relations, zForms = "", data = {}) => {
|
|
|
4080
4088
|
}
|
|
4081
4089
|
let obj = {};
|
|
4082
4090
|
const MYMODELS = myCache.get("MYMODELS");
|
|
4083
|
-
|
|
4091
|
+
if (!MYMODEL) {
|
|
4092
|
+
return { script: "", head: "", end: "" };
|
|
4093
|
+
}
|
|
4094
|
+
let widgets = MYMODEL.widgets || {},
|
|
4084
4095
|
widgetsArray = Object.keys(widgets) || [];
|
|
4085
4096
|
|
|
4086
4097
|
let hasTabs = MYMODEL.hasOwnProperty("hasTabs") ? MYMODEL.hasTabs : false;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zet-lib",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "zet is a library that part of zet generator.",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=18"
|
|
@@ -28,32 +28,38 @@
|
|
|
28
28
|
},
|
|
29
29
|
"sideEffects": false,
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"axios": "^1.
|
|
31
|
+
"axios": "^1.7.9",
|
|
32
32
|
"convert-excel-to-json": "^1.7.0",
|
|
33
33
|
"csurf": "^1.11.0",
|
|
34
34
|
"dotenv": "^16.5.0",
|
|
35
35
|
"dropbox": "^10.34.0",
|
|
36
|
-
"ejs": "^3.1.
|
|
36
|
+
"ejs": "^3.1.10",
|
|
37
37
|
"exceljs": "^4.4.0",
|
|
38
38
|
"express-zip": "^3.0.0",
|
|
39
|
-
"fs-extra": "^11.3.
|
|
39
|
+
"fs-extra": "^11.3.2",
|
|
40
40
|
"html-minifier-terser": "^7.2.0",
|
|
41
41
|
"isomorphic-fetch": "^3.0.0",
|
|
42
|
-
"js-sha256": "^0.
|
|
42
|
+
"js-sha256": "^0.11.1",
|
|
43
43
|
"jszip": "^3.10.1",
|
|
44
44
|
"moment": "^2.30.1",
|
|
45
45
|
"node-cache": "^5.1.2",
|
|
46
46
|
"nodemailer": "^6.9.4",
|
|
47
|
-
"pg": "^8.
|
|
47
|
+
"pg": "^8.16.3",
|
|
48
48
|
"pm2": "^5.3.1",
|
|
49
|
-
"puppeteer": "^24.
|
|
50
|
-
"qs": "^6.
|
|
51
|
-
"randomstring": "^1.3.
|
|
49
|
+
"puppeteer": "^24.33.0",
|
|
50
|
+
"qs": "^6.14.0",
|
|
51
|
+
"randomstring": "^1.3.1",
|
|
52
52
|
"read-excel-file": "^5.8.0",
|
|
53
53
|
"sharp": "^0.34.1",
|
|
54
|
-
"socket.io": "^4.8.
|
|
55
|
-
"uglify-js": "^3.
|
|
54
|
+
"socket.io": "^4.8.1",
|
|
55
|
+
"uglify-js": "^3.19.3",
|
|
56
56
|
"uuid": "^9.0.1",
|
|
57
57
|
"xlsx": "^0.18.5"
|
|
58
|
+
},
|
|
59
|
+
"overrides": {
|
|
60
|
+
"unzipper": "^0.12.3",
|
|
61
|
+
"rimraf": "^6.1.2",
|
|
62
|
+
"fstream": "^2.0.0",
|
|
63
|
+
"glob": "^11.0.0"
|
|
58
64
|
}
|
|
59
65
|
}
|