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.
Files changed (49) hide show
  1. package/lib/Modal.js +85 -30
  2. package/lib/Model.js +118 -2
  3. package/lib/config_generator.js +24 -0
  4. package/lib/generatorApi.js +1328 -0
  5. package/lib/generatorApp.js +1342 -0
  6. package/lib/generatorModel.js +733 -0
  7. package/lib/index.js +39 -12
  8. package/lib/lang_en.js +115 -0
  9. package/lib/routes/api.js +52 -0
  10. package/lib/routes/index.js +9 -0
  11. package/lib/views/error.ejs +3 -0
  12. package/lib/views/zgenerator/bootstrap3/_form.ejs +24 -0
  13. package/lib/views/zgenerator/bootstrap3/create.ejs +9 -0
  14. package/lib/views/zgenerator/bootstrap3/createjs.ejs +3 -0
  15. package/lib/views/zgenerator/bootstrap3/import.ejs +52 -0
  16. package/lib/views/zgenerator/bootstrap3/importjs.ejs +3 -0
  17. package/lib/views/zgenerator/bootstrap3/index.ejs +29 -0
  18. package/lib/views/zgenerator/bootstrap3/indexcss.ejs +1 -0
  19. package/lib/views/zgenerator/bootstrap3/indexjs.ejs +307 -0
  20. package/lib/views/zgenerator/bootstrap3/update.ejs +8 -0
  21. package/lib/views/zgenerator/bootstrap3/updatejs.ejs +3 -0
  22. package/lib/views/zgenerator/bootstrap3/view.ejs +57 -0
  23. package/lib/views/zgenerator/head.ejs +12 -0
  24. package/lib/views/zgenerator/index.ejs +271 -0
  25. package/lib/views/zgenerator/indexcss.ejs +87 -0
  26. package/lib/views/zgenerator/indexjs.ejs +705 -0
  27. package/lib/views/zgenerator/layout.ejs +198 -0
  28. package/lib/views/zgenerator/manual_basic.ejs +2 -0
  29. package/lib/views/zgenerator/manual_dropdown.ejs +126 -0
  30. package/lib/views/zgenerator/manual_modules.ejs +192 -0
  31. package/lib/views/zgenerator/manual_virtual.ejs +143 -0
  32. package/lib/views/zgenerator/mini.ejs +341 -0
  33. package/lib/views/zgenerator/routerApp.ejs +359 -0
  34. package/lib/views/zgenerator/views/_form.ejs +25 -0
  35. package/lib/views/zgenerator/views/approval.ejs +42 -0
  36. package/lib/views/zgenerator/views/create.ejs +7 -0
  37. package/lib/views/zgenerator/views/createjs.ejs +16 -0
  38. package/lib/views/zgenerator/views/import.ejs +49 -0
  39. package/lib/views/zgenerator/views/importjs.ejs +4 -0
  40. package/lib/views/zgenerator/views/index.ejs +9 -0
  41. package/lib/views/zgenerator/views/indexcss.ejs +2 -0
  42. package/lib/views/zgenerator/views/indexjs.ejs +2 -0
  43. package/lib/views/zgenerator/views/preview.ejs +34 -0
  44. package/lib/views/zgenerator/views/update.ejs +7 -0
  45. package/lib/views/zgenerator/views/updatejs.ejs +16 -0
  46. package/lib/views/zgenerator/views/view.ejs +36 -0
  47. package/lib/zGeneratorRouter.js +46 -22
  48. package/lib/zRoute.js +14 -3
  49. package/package.json +17 -11
@@ -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
- res.json(datas.data);
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 datas = results.data;
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 datas = results.data;
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
- datas = results.data;
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
- datas = results.data;
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 = results.data;
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 = results.data;
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[item] = MYMODEL.widgets[item];
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
- let widgets = MYMODEL.widgets,
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": "1.5.30",
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.6.8",
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.9",
36
+ "ejs": "^3.1.10",
37
37
  "exceljs": "^4.4.0",
38
38
  "express-zip": "^3.0.0",
39
- "fs-extra": "^11.3.0",
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.9.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.11.2",
47
+ "pg": "^8.16.3",
48
48
  "pm2": "^5.3.1",
49
- "puppeteer": "^24.7.2",
50
- "qs": "^6.11.2",
51
- "randomstring": "^1.3.0",
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.0",
55
- "uglify-js": "^3.17.4",
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
  }