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 +6 -0
- package/lib/zRoute.js +64 -27
- package/package.json +1 -1
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 == "
|
|
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
|
-
}
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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) {
|