zet-lib 1.5.9 → 1.5.11

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/Util.js CHANGED
@@ -1238,16 +1238,22 @@ Util.userAvatar = (img = "") => {
1238
1238
  Util.selectParser = (fields = [], MYMODEL = {}) => {
1239
1239
  let table = MYMODEL.table;
1240
1240
  let virtuals = [];
1241
+ let typeaheads = [];
1241
1242
  let select = "";
1242
1243
  for (var key in MYMODEL.widgets) {
1243
1244
  if (MYMODEL.widgets[key].name === "virtual") {
1244
1245
  virtuals.push(key);
1245
1246
  }
1247
+ if (MYMODEL.widgets[key].name === "typeahead") {
1248
+ typeaheads.push(key);
1249
+ }
1246
1250
  }
1247
1251
  let arr = [];
1248
1252
  fields.forEach((item) => {
1249
1253
  if (virtuals.includes(item)) {
1250
1254
  select += `${MYMODEL.widgets[item].fields},`;
1255
+ } else if (typeaheads.includes(item)) {
1256
+ select += `(select ${MYMODEL.widgets[item].fields[1]} from ${MYMODEL.widgets[item].table} WHERE ${MYMODEL.widgets[item].table}.id = ${MYMODEL.table}.${item} LIMIT 1 ) as ${item},`;
1251
1257
  } else if (item === "no") {
1252
1258
  arr.push(`${table}.id`);
1253
1259
  } else if (item === "actionColumn") {
package/lib/zRoute.js CHANGED
@@ -551,13 +551,13 @@ zRoute.relationTable = async (req, res, table, visiblesColumns = []) => {
551
551
  let hasAttributes = false;
552
552
  let zattributes = {};
553
553
  let company_id = res.locals.companyId;
554
- let widgets = {}
555
- if(visiblesColumns.length == 0){
556
- widgets = MYMODEL.widgets
554
+ let widgets = {};
555
+ if (visiblesColumns.length == 0) {
556
+ widgets = MYMODEL.widgets;
557
557
  } else {
558
558
  visiblesColumns.map((item) => {
559
- widgets[item] = MYMODEL.widgets[item]
560
- })
559
+ widgets[item] = MYMODEL.widgets[item];
560
+ });
561
561
  }
562
562
 
563
563
  //widgets
@@ -718,7 +718,9 @@ zRoute.relationTable = async (req, res, table, visiblesColumns = []) => {
718
718
  "id",
719
719
  "zname"
720
720
  );
721
- } else if (widgetName == "typeahead") {
721
+ } else if (widgetName == "switch") {
722
+
723
+ /* else if (widgetName == "typeahead") {
722
724
  const cacheKey = `${widget.table}_${MYMODEL.table}___${key}_${company_id}`;
723
725
  let results;
724
726
  if (myCache.has(cacheKey)) {
@@ -746,7 +748,7 @@ zRoute.relationTable = async (req, res, table, visiblesColumns = []) => {
746
748
  "zname"
747
749
  );
748
750
  relations[keyFields] = widget.fields;
749
- } else if (widgetName == "switch") {
751
+ } */
750
752
  relations[key] = Util.modulesSwitch(widget.fields);
751
753
  relations[keyFields] = widget.fields;
752
754
  } else if (widgetName == "virtual") {
@@ -1228,10 +1230,6 @@ zRoute.dataTableData = (
1228
1230
  myvalue = relations[keyFields][value] || "";
1229
1231
  break;
1230
1232
 
1231
- case "typeahead":
1232
- myvalue = relations[keyObject][value] || "";
1233
- break;
1234
-
1235
1233
  case "datetime":
1236
1234
  myvalue = Util.timeSql(value);
1237
1235
  break;
@@ -2396,7 +2394,12 @@ zRoute.listDataTable = async (req, res, objData = {}, visibleColumns = []) => {
2396
2394
  const fields = Object.prototype.hasOwnProperty.call(objData, "fields")
2397
2395
  ? objData.fields
2398
2396
  : req.body.fields;
2399
- let relations = await zRoute.relations(req, res, MYMODEL.table, visibleColumns);
2397
+ let relations = await zRoute.relations(
2398
+ req,
2399
+ res,
2400
+ MYMODEL.table,
2401
+ visibleColumns
2402
+ );
2400
2403
  //find relation with joins
2401
2404
  const select = Object.prototype.hasOwnProperty.call(objData, "select")
2402
2405
  ? objData.select
@@ -2961,7 +2964,7 @@ zRoute.formField = (req, res, MYMODEL, relations, data = {}) => {
2961
2964
  };
2962
2965
 
2963
2966
  zRoute.formsFieldSync = async (req, res, MYMODEL, data = {}) => {
2964
- const relations = await zRoute.relations(req, res, MYMODEL.table);
2967
+ let relations = await zRoute.relations(req, res, MYMODEL.table);
2965
2968
  let tableRelations = {};
2966
2969
  for (let key in MYMODEL.widgets) {
2967
2970
  if (MYMODEL.widgets[key].name == "table") {
@@ -2971,6 +2974,23 @@ zRoute.formsFieldSync = async (req, res, MYMODEL, data = {}) => {
2971
2974
  MYMODEL.widgets[key].table
2972
2975
  );
2973
2976
  //console.log("tabelrelations", JSON.stringify(tableRelations[key]))
2977
+ } else if (MYMODEL.widgets[key].name == "typeahead") {
2978
+ relations[key] = "";
2979
+ relations[key + "Data"] = [{ id: "", zname: "" }];
2980
+ if (data[key]) {
2981
+ let resultkey = await connection.results({
2982
+ table: MYMODEL.widgets[key].table,
2983
+ select: `id,${MYMODEL.widgets[key].fields[1]} as zname`,
2984
+ where: {
2985
+ id: data[key],
2986
+ },
2987
+ });
2988
+ relations[key] = resultkey.length > 0 ? resultkey[0].zname : "";
2989
+ relations[key + "Data"] = [
2990
+ Util.arrayUnShift(["id", "zname"]),
2991
+ ...resultkey,
2992
+ ];
2993
+ }
2974
2994
  }
2975
2995
  }
2976
2996
  let forms = zRoute.forms(req, res, MYMODEL, relations, data, tableRelations);
@@ -3198,10 +3218,12 @@ zRoute.forms = (
3198
3218
  fields[key].title,
3199
3219
  fields[key].required
3200
3220
  );
3201
- obj.data = relations[key];
3202
- obj.typeaheadvalue = !data[key]
3221
+ //obj.data = relations[key];
3222
+ /*obj.typeaheadvalue = !data[key]
3203
3223
  ? ""
3204
- : relations[key + "Object"][data[key]];
3224
+ : relations[key + "Object"][data[key]];*/
3225
+ obj.data = relations[key + "Data"];
3226
+ obj.typeaheadvalue = relations[key];
3205
3227
  break;
3206
3228
  case "dropdown_chain":
3207
3229
  obj.type = "select";
@@ -3354,8 +3376,7 @@ zRoute.viewFormPlainText = (req, res, MYMODEL, relations, data = {}) => {
3354
3376
 
3355
3377
  zRoute.viewFormsSync = async (req, res, MYMODEL, data = {}) => {
3356
3378
  const MYMODELS = myCache.get("MYMODELS");
3357
- const relations = await zRoute.relations(req, res, MYMODEL.table);
3358
- let forms = zRoute.viewForm(req, res, MYMODEL, relations, data);
3379
+ let relations = await zRoute.relations(req, res, MYMODEL.table);
3359
3380
  let hasEditors = false;
3360
3381
  let hasLocation = false;
3361
3382
  let hasDropbox = false;
@@ -3371,6 +3392,24 @@ zRoute.viewFormsSync = async (req, res, MYMODEL, data = {}) => {
3371
3392
  if (MYMODEL.widgets[key].name == "dropbox") {
3372
3393
  hasDropbox = true;
3373
3394
  }
3395
+ if (MYMODEL.widgets[key].name == "typeahead") {
3396
+ relations[key] = "";
3397
+ relations[key + "Data"] = [{ id: "", zname: "" }];
3398
+ if (data[key]) {
3399
+ let resultkey = await connection.results({
3400
+ table: MYMODEL.widgets[key].table,
3401
+ select: `id,${MYMODEL.widgets[key].fields[1]} as zname`,
3402
+ where: {
3403
+ id: data[key],
3404
+ },
3405
+ });
3406
+ relations[key] = resultkey.length > 0 ? resultkey[0].zname : "";
3407
+ relations[key + "Data"] = [
3408
+ Util.arrayUnShift(["id", "zname"]),
3409
+ ...resultkey,
3410
+ ];
3411
+ }
3412
+ }
3374
3413
  }
3375
3414
  if (hasEditors) {
3376
3415
  moduleLib.build(req, res, moduleLib.editor(req, res));
@@ -3417,6 +3456,9 @@ zRoute.viewFormsSync = async (req, res, MYMODEL, data = {}) => {
3417
3456
  moduleLib.addScript(req, res, script);
3418
3457
  }
3419
3458
 
3459
+ //build form
3460
+ let forms = zRoute.viewForm(req, res, MYMODEL, relations, data);
3461
+
3420
3462
  let tables = [];
3421
3463
  for (let key in forms.obj) {
3422
3464
  if (forms.obj[key].type == "table") {
@@ -3646,7 +3688,7 @@ zRoute.viewForm = (
3646
3688
  break;
3647
3689
  case "typeahead":
3648
3690
  obj[key].type = "text";
3649
- obj[key].value = relations[key + "Object"][data[key]] || "";
3691
+ obj[key].value = relations[key];
3650
3692
  break;
3651
3693
 
3652
3694
  case "dropzone":
@@ -4778,7 +4820,7 @@ zRoute.insertSQL = async (req, res, table, data) => {
4778
4820
  }
4779
4821
  }
4780
4822
  //dropbox
4781
- console.log(JSON.stringify(movDropboxArr));
4823
+ //console.log(JSON.stringify(movDropboxArr));
4782
4824
  if (movDropboxArr.length > 0) {
4783
4825
  setTimeout(() => {
4784
4826
  zRoute.moveDropbox(movDropboxArr).then(function (et) {
@@ -5610,12 +5652,7 @@ zRoute.modelsCache = async () => {
5610
5652
  delete models.zrole;
5611
5653
  delete models.zuser_company;
5612
5654
  let companies;
5613
- let mustCaches = [
5614
- "relation",
5615
- "typeahead",
5616
- "multi_line_editor",
5617
- "dropdown_multi",
5618
- ];
5655
+ let mustCaches = ["relation", "multi_line_editor", "dropdown_multi"];
5619
5656
  let nots = ["created_by", "updated_by"];
5620
5657
  for (let keys in models) {
5621
5658
  let widgets = models[keys].widgets;
@@ -5888,7 +5925,7 @@ zRoute.typeahead = async (req, res) => {
5888
5925
  let WIDGET = MYMODEL.widgets;
5889
5926
  let query = req.query.query;
5890
5927
  let name = `${MYMODEL.widgets[keys].table}_${MYMODEL.table}___${keys}_${res.locals.companyId}`;
5891
- let sql = `select id,${MYMODEL.widgets[keys].fields[1]} as zname from ${MYMODEL.widgets[keys].table} where ${MYMODEL.widgets[keys].fields[1]} ILIKE '%${query}%' limit 50`
5928
+ let sql = `select id,${MYMODEL.widgets[keys].fields[1]} as zname from ${MYMODEL.widgets[keys].table} where ${MYMODEL.widgets[keys].fields[1]} ILIKE '%${query}%' limit 50`;
5892
5929
  let results = await connection.query(sql);
5893
5930
  res.json(results);
5894
5931
  } catch (e) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zet-lib",
3
- "version": "1.5.9",
3
+ "version": "1.5.11",
4
4
  "description": "zet is a library that part of zet generator.",
5
5
  "engines": {
6
6
  "node": ">=18"