zet-lib 1.3.25 → 1.3.26
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 -2
- package/lib/zGeneratorRouter.js +4 -6
- package/lib/zRoute.js +174 -119
- package/package.json +1 -1
package/lib/Util.js
CHANGED
|
@@ -1204,13 +1204,17 @@ Util.selectParser = (fields = [], MYMODEL = {}) => {
|
|
|
1204
1204
|
return select
|
|
1205
1205
|
}
|
|
1206
1206
|
|
|
1207
|
-
Util.fieldWithTable = (field, MYMODEL) => {
|
|
1207
|
+
Util.fieldWithTable = (field, MYMODEL, isWhere = false) => {
|
|
1208
1208
|
let name = ''
|
|
1209
1209
|
let joinList = MYMODEL.joins && MYMODEL.joins.list.length > 0 ? MYMODEL.joins.list : []
|
|
1210
1210
|
if (joinList.length > 0) {
|
|
1211
1211
|
if (joinList.includes(field)) {
|
|
1212
1212
|
let split = field.split('___')
|
|
1213
|
-
|
|
1213
|
+
if (isWhere) {
|
|
1214
|
+
name = `${split[0]}.${split[1]}`
|
|
1215
|
+
} else {
|
|
1216
|
+
name = `${split[0]}.${split[1]} as ${field}`
|
|
1217
|
+
}
|
|
1214
1218
|
} else {
|
|
1215
1219
|
name = `${MYMODEL.table}.${field}`
|
|
1216
1220
|
}
|
package/lib/zGeneratorRouter.js
CHANGED
|
@@ -670,8 +670,6 @@ const buildJoin = async (MYMODEL, result) => {
|
|
|
670
670
|
if (result.joins && Object.keys(joins).length > 0) {
|
|
671
671
|
let newDataObj = {}
|
|
672
672
|
for (let key in joins) {
|
|
673
|
-
//find relation
|
|
674
|
-
//sql.push(` LEFT JOIN ${key} ON ${key}.id = ${table}.${key}_id `)
|
|
675
673
|
let THEIR_MODEL = require(`${dirRoot}/models/${key}`)
|
|
676
674
|
//console.log(THEIR_MODEL)
|
|
677
675
|
let arr = joins[key] || []
|
|
@@ -680,7 +678,8 @@ const buildJoin = async (MYMODEL, result) => {
|
|
|
680
678
|
arr.map((item) => {
|
|
681
679
|
//console.log(item)
|
|
682
680
|
//console.log(typeof item)
|
|
683
|
-
const originKey = key.replace(`${key}___`, '')
|
|
681
|
+
const originKey = item.key.replace(`${key}___`, '')
|
|
682
|
+
console.log(originKey)
|
|
684
683
|
newDataObj[item.key] = item.value
|
|
685
684
|
MYMODEL.keys.push(item.key)
|
|
686
685
|
MYMODEL.keysExcel.push(item.key)
|
|
@@ -689,7 +688,7 @@ const buildJoin = async (MYMODEL, result) => {
|
|
|
689
688
|
MYMODEL.options[item.key] = THEIR_MODEL.options[originKey]
|
|
690
689
|
MYMODEL.grids.invisibles.push(item.key)
|
|
691
690
|
MYMODEL.datas[item.key] = THEIR_MODEL.datas[originKey]
|
|
692
|
-
|
|
691
|
+
MYMODEL.widgets[item.key] = THEIR_MODEL.widgets[originKey]
|
|
693
692
|
join_list.push(item.key)
|
|
694
693
|
})
|
|
695
694
|
}
|
|
@@ -744,7 +743,7 @@ const buildJoin = async (MYMODEL, result) => {
|
|
|
744
743
|
foreignTables.push(row.foreign_table_name)
|
|
745
744
|
foreign_table_name[row.foreign_table_name] = ` LEFT JOIN ${row.foreign_table_name} ON ${row.foreign_table_name}.id = ${table_steps_item}.${row.column_name} `
|
|
746
745
|
})
|
|
747
|
-
console.log(foreignTables)
|
|
746
|
+
//console.log(foreignTables)
|
|
748
747
|
table_joins.map((item) => {
|
|
749
748
|
if (!table_steps.includes(item)) {
|
|
750
749
|
if (foreignTables.includes(item)) {
|
|
@@ -1392,7 +1391,6 @@ const scanning = async (MYMODEL, result) => {
|
|
|
1392
1391
|
newModel += `${Util.newLine}`
|
|
1393
1392
|
newModel += `}`
|
|
1394
1393
|
fs.writeFileSync(`${dirRoot}/models/${MYMODEL.table}.js`, newModel)
|
|
1395
|
-
|
|
1396
1394
|
//return MYMODEL;
|
|
1397
1395
|
}
|
|
1398
1396
|
|
package/lib/zRoute.js
CHANGED
|
@@ -512,7 +512,7 @@ zRoute.selectData = (MYMODEL) => {
|
|
|
512
512
|
return data
|
|
513
513
|
}
|
|
514
514
|
|
|
515
|
-
zRoute.
|
|
515
|
+
zRoute.relationTable = async (req, res, table) => {
|
|
516
516
|
try {
|
|
517
517
|
const MYMODELS = myCache.get('MYMODELS')
|
|
518
518
|
const MYMODEL = MYMODELS[table]
|
|
@@ -523,7 +523,7 @@ zRoute.relations = async (req, res, table) => {
|
|
|
523
523
|
let hasAttributes = false
|
|
524
524
|
let zattributes = {}
|
|
525
525
|
let company_id = res.locals.companyId
|
|
526
|
-
//
|
|
526
|
+
//widgets
|
|
527
527
|
for (let key in MYMODEL.widgets) {
|
|
528
528
|
const keyRow = key + 'Row'
|
|
529
529
|
const keyFields = key + 'Fields'
|
|
@@ -717,7 +717,6 @@ zRoute.relations = async (req, res, table) => {
|
|
|
717
717
|
}
|
|
718
718
|
}
|
|
719
719
|
//console.log(relations);
|
|
720
|
-
|
|
721
720
|
let selectZvirtuals = ''
|
|
722
721
|
for (let key in relations['zvirtuals']) {
|
|
723
722
|
selectZvirtuals += `${relations['zvirtuals'][key]} , `
|
|
@@ -733,6 +732,51 @@ zRoute.relations = async (req, res, table) => {
|
|
|
733
732
|
}
|
|
734
733
|
}
|
|
735
734
|
|
|
735
|
+
zRoute.relations = async (req, res, table) => {
|
|
736
|
+
try {
|
|
737
|
+
const MYMODELS = myCache.get('MYMODELS')
|
|
738
|
+
const MYMODEL = MYMODELS[table]
|
|
739
|
+
let relation = await zRoute.relationTable(req, res, table)
|
|
740
|
+
let relations = {}
|
|
741
|
+
if (MYMODEL.joins && MYMODEL.joins.list) {
|
|
742
|
+
let joinOfTables = MYMODEL.joins.tables
|
|
743
|
+
for (let key of joinOfTables) {
|
|
744
|
+
relations[key] = await zRoute.relationTable(req, res, key)
|
|
745
|
+
}
|
|
746
|
+
let listData = MYMODEL.joins.list || []
|
|
747
|
+
listData.map((item) => {
|
|
748
|
+
let split = item.split('___')
|
|
749
|
+
let mytable = split[0]
|
|
750
|
+
let key = split[1]
|
|
751
|
+
const itemRow = item + 'Row'
|
|
752
|
+
const itemFields = item + 'Fields'
|
|
753
|
+
const itemObject = item + 'Object'
|
|
754
|
+
const keyRow = key + 'Row'
|
|
755
|
+
const keyFields = key + 'Fields'
|
|
756
|
+
const keyObject = key + 'Object'
|
|
757
|
+
|
|
758
|
+
let relName = relations[mytable]
|
|
759
|
+
if (relName[key]) {
|
|
760
|
+
relation[item] = relName[key]
|
|
761
|
+
}
|
|
762
|
+
if (relName[keyRow]) {
|
|
763
|
+
relation[itemRow] = relName[keyRow]
|
|
764
|
+
}
|
|
765
|
+
if (relName[keyFields]) {
|
|
766
|
+
relation[itemFields] = relName[keyFields]
|
|
767
|
+
}
|
|
768
|
+
if (relName[keyObject]) {
|
|
769
|
+
relation[itemObject] = relName[keyObject]
|
|
770
|
+
}
|
|
771
|
+
})
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
return relation
|
|
775
|
+
} catch (e) {
|
|
776
|
+
console.log(e)
|
|
777
|
+
}
|
|
778
|
+
}
|
|
779
|
+
|
|
736
780
|
/*
|
|
737
781
|
Function to create filter elements on data table grid
|
|
738
782
|
*/
|
|
@@ -1903,7 +1947,9 @@ zRoute.listDataTable = async (req, res, objData = {}) => {
|
|
|
1903
1947
|
const MYMODEL = objData.MYMODEL || {}
|
|
1904
1948
|
const table = MYMODEL.table
|
|
1905
1949
|
const fields = Object.prototype.hasOwnProperty.call(objData, 'fields') ? objData.fields : req.body.fields
|
|
1906
|
-
|
|
1950
|
+
let relations = await zRoute.relations(req, res, MYMODEL.table)
|
|
1951
|
+
//find relation with joins
|
|
1952
|
+
|
|
1907
1953
|
const select = Object.prototype.hasOwnProperty.call(objData, 'select') ? objData.select : Util.selectParser(fields, MYMODEL)
|
|
1908
1954
|
const columns = Object.prototype.hasOwnProperty.call(objData, 'columns') ? objData.columns : body.columns
|
|
1909
1955
|
const asDate = []
|
|
@@ -1955,7 +2001,7 @@ zRoute.listDataTable = async (req, res, objData = {}) => {
|
|
|
1955
2001
|
}
|
|
1956
2002
|
if (astype === 'jsonb') {
|
|
1957
2003
|
whereArray.push({
|
|
1958
|
-
field: Util.fieldWithTable(fields[item.data], MYMODEL),
|
|
2004
|
+
field: Util.fieldWithTable(fields[item.data], MYMODEL, true),
|
|
1959
2005
|
option: ' ',
|
|
1960
2006
|
value: ` @> '["${item.search.value}"]'`,
|
|
1961
2007
|
operator: 'AND',
|
|
@@ -1965,13 +2011,13 @@ zRoute.listDataTable = async (req, res, objData = {}) => {
|
|
|
1965
2011
|
whereArray.push({
|
|
1966
2012
|
field: '',
|
|
1967
2013
|
option: '',
|
|
1968
|
-
value: ` ${Util.fieldWithTable(fields[item.data], MYMODEL)}::text ILIKE '${item.search.value}' `,
|
|
2014
|
+
value: ` ${Util.fieldWithTable(fields[item.data], MYMODEL, true)}::text ILIKE '${item.search.value}' `,
|
|
1969
2015
|
operator: 'AND',
|
|
1970
2016
|
type: 'inline',
|
|
1971
2017
|
})
|
|
1972
2018
|
} else {
|
|
1973
2019
|
whereArray.push({
|
|
1974
|
-
field: Util.fieldWithTable(fields[item.data], MYMODEL),
|
|
2020
|
+
field: Util.fieldWithTable(fields[item.data], MYMODEL, true),
|
|
1975
2021
|
option: MYMODEL.options[fields[item.data]],
|
|
1976
2022
|
value: item.search.value,
|
|
1977
2023
|
operator: 'AND',
|
|
@@ -2086,6 +2132,7 @@ zRoute.listData = async (req, res, MYMODEL, zRole, actionButtonsFn) => {
|
|
|
2086
2132
|
operator: 'AND',
|
|
2087
2133
|
})
|
|
2088
2134
|
}
|
|
2135
|
+
|
|
2089
2136
|
columns.forEach(function (item) {
|
|
2090
2137
|
if (item.search.value) {
|
|
2091
2138
|
let astype = 'text'
|
|
@@ -2100,7 +2147,7 @@ zRoute.listData = async (req, res, MYMODEL, zRole, actionButtonsFn) => {
|
|
|
2100
2147
|
}
|
|
2101
2148
|
if (astype === 'jsonb') {
|
|
2102
2149
|
whereArray.push({
|
|
2103
|
-
field: Util.fieldWithTable(fields[item.data], MYMODEL),
|
|
2150
|
+
field: Util.fieldWithTable(fields[item.data], MYMODEL, true),
|
|
2104
2151
|
option: ' ',
|
|
2105
2152
|
value: ` @> '["${item.search.value}"]'`,
|
|
2106
2153
|
operator: 'AND',
|
|
@@ -2110,13 +2157,13 @@ zRoute.listData = async (req, res, MYMODEL, zRole, actionButtonsFn) => {
|
|
|
2110
2157
|
whereArray.push({
|
|
2111
2158
|
field: '',
|
|
2112
2159
|
option: '',
|
|
2113
|
-
value: ` ${Util.fieldWithTable(fields[item.data], MYMODEL)}::text ILIKE '${item.search.value}' `,
|
|
2160
|
+
value: ` ${Util.fieldWithTable(fields[item.data], MYMODEL, true)}::text ILIKE '${item.search.value}' `,
|
|
2114
2161
|
operator: 'AND',
|
|
2115
2162
|
type: 'inline',
|
|
2116
2163
|
})
|
|
2117
2164
|
} else {
|
|
2118
2165
|
whereArray.push({
|
|
2119
|
-
field: Util.fieldWithTable(fields[item.data], MYMODEL),
|
|
2166
|
+
field: Util.fieldWithTable(fields[item.data], MYMODEL, true),
|
|
2120
2167
|
option: MYMODEL.options[fields[item.data]],
|
|
2121
2168
|
value: item.search.value,
|
|
2122
2169
|
operator: 'AND',
|
|
@@ -3258,70 +3305,76 @@ zRoute.generateJS = (req, res, MYMODEL, relations, zForms = '', data = {}) => {
|
|
|
3258
3305
|
let lexicals = []
|
|
3259
3306
|
let mapKey = ''
|
|
3260
3307
|
let hasAttributes = []
|
|
3308
|
+
let joinsFields = []
|
|
3309
|
+
if (MYMODEL.joins) {
|
|
3310
|
+
joinsFields = MYMODEL.joins.list
|
|
3311
|
+
}
|
|
3261
3312
|
for (let key in widgets) {
|
|
3262
|
-
if (
|
|
3263
|
-
|
|
3264
|
-
|
|
3265
|
-
|
|
3266
|
-
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
|
|
3279
|
-
|
|
3280
|
-
|
|
3281
|
-
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
|
|
3289
|
-
|
|
3290
|
-
|
|
3291
|
-
|
|
3292
|
-
|
|
3293
|
-
|
|
3294
|
-
|
|
3295
|
-
|
|
3296
|
-
|
|
3297
|
-
|
|
3298
|
-
|
|
3299
|
-
|
|
3300
|
-
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3306
|
-
|
|
3307
|
-
|
|
3308
|
-
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
// has chains
|
|
3315
|
-
if (widgets[key].name == 'relation') {
|
|
3316
|
-
if (widgets[key].isChain) {
|
|
3317
|
-
if (widgets[key].chains.length) {
|
|
3318
|
-
chainsObj[key] = widgets[key].chains
|
|
3319
|
-
hasChain = true
|
|
3320
|
-
}
|
|
3313
|
+
if (!joinsFields.includes(key)) {
|
|
3314
|
+
if (widgets[key].name == 'datepicker') {
|
|
3315
|
+
hasDatePicker = true
|
|
3316
|
+
} else if (widgets[key].name == 'number') {
|
|
3317
|
+
hasNumber = true
|
|
3318
|
+
} else if (widgets[key].name == 'clockpicker') {
|
|
3319
|
+
hasClockPicker = true
|
|
3320
|
+
} else if (widgets[key].name == 'editor') {
|
|
3321
|
+
hasEditor = true
|
|
3322
|
+
} else if (widgets[key].name == 'ide_editor') {
|
|
3323
|
+
hasIde = true
|
|
3324
|
+
} else if (widgets[key].name == 'switch') {
|
|
3325
|
+
let switchObj = moduleLib.switch(req, res, `#${key}`, widgets[key].fields)
|
|
3326
|
+
scriptForm += switchObj.script
|
|
3327
|
+
headObj.switch = switchObj.head
|
|
3328
|
+
endObj.switch = switchObj.end
|
|
3329
|
+
} else if (widgets[key].name == 'typeahead') {
|
|
3330
|
+
let typeaheadObj = moduleLib.typeahead(req, res, MYMODEL.table, `#${key}Typeahead`)
|
|
3331
|
+
scriptForm += typeaheadObj.script
|
|
3332
|
+
headObj.typeahead = typeaheadObj.head
|
|
3333
|
+
endObj.typeahead = typeaheadObj.end
|
|
3334
|
+
} else if (widgets[key].name == 'location') {
|
|
3335
|
+
let locationObj = moduleLib.location(req, res, key)
|
|
3336
|
+
scriptForm += locationObj.script
|
|
3337
|
+
endObj.location = locationObj.end
|
|
3338
|
+
hasLocation = true
|
|
3339
|
+
mapKey = key
|
|
3340
|
+
} else if (widgets[key].name == 'dragdrop') {
|
|
3341
|
+
let dragdropObj = moduleLib.dragdrop(req, res, key)
|
|
3342
|
+
scriptForm += dragdropObj.script
|
|
3343
|
+
headObj.dragdrop = dragdropObj.head
|
|
3344
|
+
endObj.dragdrop = dragdropObj.end
|
|
3345
|
+
} else if (widgets[key].name == 'datetime') {
|
|
3346
|
+
hasDateTimePicker = true
|
|
3347
|
+
} else if (widgets[key].name == 'table') {
|
|
3348
|
+
hasTable = true
|
|
3349
|
+
hasDateTimePicker = true
|
|
3350
|
+
hasClockPicker = true
|
|
3351
|
+
hasDatePicker = true
|
|
3352
|
+
} else if (widgets[key].name == 'tags') {
|
|
3353
|
+
hasTags = true
|
|
3354
|
+
} else if (widgets[key].name == 'lexical') {
|
|
3355
|
+
let lexicalObj = moduleLib.lexical(req, res, `#${key}`)
|
|
3356
|
+
hasLexical = true
|
|
3357
|
+
headObj.lexical = lexicalObj.head
|
|
3358
|
+
endObj.lexical = lexicalObj.end
|
|
3359
|
+
lexicals.push(key)
|
|
3360
|
+
} else if (widgets[key].name == 'tinymce') {
|
|
3361
|
+
hasTinymce = true
|
|
3362
|
+
} else if (widgets[key].name == 'dropzone') {
|
|
3363
|
+
hasDropzone = true
|
|
3364
|
+
dropzones.push(key)
|
|
3321
3365
|
}
|
|
3322
|
-
//
|
|
3323
|
-
if (widgets[key].
|
|
3324
|
-
|
|
3366
|
+
// has chains
|
|
3367
|
+
if (widgets[key].name == 'relation') {
|
|
3368
|
+
if (widgets[key].isChain) {
|
|
3369
|
+
if (widgets[key].chains.length) {
|
|
3370
|
+
chainsObj[key] = widgets[key].chains
|
|
3371
|
+
hasChain = true
|
|
3372
|
+
}
|
|
3373
|
+
}
|
|
3374
|
+
//relation_all_attributes
|
|
3375
|
+
if (widgets[key].isAttributes) {
|
|
3376
|
+
hasAttributes.push(key)
|
|
3377
|
+
}
|
|
3325
3378
|
}
|
|
3326
3379
|
}
|
|
3327
3380
|
}
|
|
@@ -3559,10 +3612,11 @@ zRoute.generateJS = (req, res, MYMODEL, relations, zForms = '', data = {}) => {
|
|
|
3559
3612
|
});`
|
|
3560
3613
|
|
|
3561
3614
|
for (let keys in widgets) {
|
|
3562
|
-
|
|
3563
|
-
|
|
3564
|
-
|
|
3565
|
-
|
|
3615
|
+
if (!joinsFields.includes(keys)) {
|
|
3616
|
+
let widgetName = widgets[keys].name
|
|
3617
|
+
switch (widgetName) {
|
|
3618
|
+
case 'multi_line_editor':
|
|
3619
|
+
scriptForm += `$(".text-toggle").on("click", function(){
|
|
3566
3620
|
let editorId = $(this).data("id");
|
|
3567
3621
|
$("#"+editorId).attr("type","text");
|
|
3568
3622
|
$("#a_"+editorId).hide();
|
|
@@ -3578,10 +3632,10 @@ zRoute.generateJS = (req, res, MYMODEL, relations, zForms = '', data = {}) => {
|
|
|
3578
3632
|
}
|
|
3579
3633
|
}
|
|
3580
3634
|
});`
|
|
3581
|
-
|
|
3635
|
+
break
|
|
3582
3636
|
|
|
3583
|
-
|
|
3584
|
-
|
|
3637
|
+
case 'dropdown_multi':
|
|
3638
|
+
scriptForm += ` $("#dropdownadd${keys}").on("click", function () {
|
|
3585
3639
|
var val = $("#${keys}").val();
|
|
3586
3640
|
if(val == ""){
|
|
3587
3641
|
alert("Please select data");
|
|
@@ -3592,25 +3646,25 @@ zRoute.generateJS = (req, res, MYMODEL, relations, zForms = '', data = {}) => {
|
|
|
3592
3646
|
$("#dropdownbox${keys}").append(data);
|
|
3593
3647
|
$("#${keys}").val("");
|
|
3594
3648
|
});${Util.newLine}`
|
|
3595
|
-
|
|
3649
|
+
break
|
|
3596
3650
|
|
|
3597
|
-
|
|
3598
|
-
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
|
|
3604
|
-
|
|
3605
|
-
|
|
3606
|
-
|
|
3607
|
-
|
|
3608
|
-
|
|
3609
|
-
|
|
3610
|
-
|
|
3611
|
-
|
|
3612
|
-
|
|
3613
|
-
|
|
3651
|
+
case 'table':
|
|
3652
|
+
let MODEL_TABLE = MYMODELS[MYMODEL.widgets[keys].table] || require(`${dirRoot}/models/${MYMODEL.widgets[keys].table}`)
|
|
3653
|
+
//let MODEL_TABLE_RELATIONS = await zRoute.relations(req, res, MODEL_TABLE.table);
|
|
3654
|
+
//relations[key + "TABLE"]
|
|
3655
|
+
let RELATIONS_MODEL_TABLE = relations && relations.hasOwnProperty(keys + 'TABLE') ? relations[keys + 'TABLE'] : {}
|
|
3656
|
+
let zForm = zRoute.formField(req, res, MODEL_TABLE, RELATIONS_MODEL_TABLE)
|
|
3657
|
+
zRoute.moduleLib(req, res, MODEL_TABLE, RELATIONS_MODEL_TABLE, zForms)
|
|
3658
|
+
let trash = `trash_${keys}_${MYMODEL.widgets[keys].table}`
|
|
3659
|
+
let subname = MYMODEL.table + '_' + keys
|
|
3660
|
+
let relationsWithKeys = relations ? relations[keys] : {}
|
|
3661
|
+
let dropdownMultis = []
|
|
3662
|
+
|
|
3663
|
+
for (let qq in MODEL_TABLE.widgets) {
|
|
3664
|
+
//check if have dropdown_multi
|
|
3665
|
+
if (MODEL_TABLE.widgets[qq].name == 'dropdown_multi') {
|
|
3666
|
+
dropdownMultis.push(qq)
|
|
3667
|
+
scriptForm += `$("#body-${keys}").on("click", "#dropdownadd${qq}",function () {
|
|
3614
3668
|
let elm = $(this).siblings("#${qq}");
|
|
3615
3669
|
var val = elm.val();
|
|
3616
3670
|
if(val == ""){
|
|
@@ -3624,13 +3678,13 @@ zRoute.generateJS = (req, res, MYMODEL, relations, zForms = '', data = {}) => {
|
|
|
3624
3678
|
$(this).parent().parent().find("#dropdownbox${qq}").append(data);
|
|
3625
3679
|
$(this).siblings("#${qq}").val("");
|
|
3626
3680
|
});${Util.newLine}`
|
|
3681
|
+
}
|
|
3627
3682
|
}
|
|
3628
|
-
}
|
|
3629
3683
|
|
|
3630
|
-
|
|
3631
|
-
|
|
3632
|
-
|
|
3633
|
-
|
|
3684
|
+
scriptForm += `var append${keys} = (increment, callback) => { buildform(increment,'${MYMODEL.table}','${keys}','${JSON.stringify(relationsWithKeys)}', (data) => callback(data)) } `
|
|
3685
|
+
scriptForm += Util.newLine
|
|
3686
|
+
scriptForm += `var append${keys}Max = $('tbody#body-${keys}>tr').length;${Util.newLine}`
|
|
3687
|
+
scriptForm += `function ${keys}Handler(){
|
|
3634
3688
|
var index = $("#body-${keys}>tr").length || 0;
|
|
3635
3689
|
$("#body-${keys}>tr").each(function (index, tr) {
|
|
3636
3690
|
let dataname = $(tr).data("name") || "";
|
|
@@ -3670,12 +3724,12 @@ $("#body-${keys}>tr").each(function (index, tr) {
|
|
|
3670
3724
|
|
|
3671
3725
|
}); ${Util.newLine}};${Util.newLine}`
|
|
3672
3726
|
|
|
3673
|
-
|
|
3727
|
+
scriptForm += ` $('#add${keys}').on('click',function(){
|
|
3674
3728
|
append${keys}(append${keys}Max, (data) => $('#body-${keys}').append(data));
|
|
3675
3729
|
append${keys}Max++;
|
|
3676
3730
|
${keys}Handler();
|
|
3677
3731
|
}); ${Util.newLine}`
|
|
3678
|
-
|
|
3732
|
+
scriptForm += `function set${keys}value(index,myobj) {
|
|
3679
3733
|
for(var key in myobj){
|
|
3680
3734
|
if($(".${subname}_" + key).eq(index).attr("type") == "checkbox" && myobj[key] == 1){
|
|
3681
3735
|
$(".${subname}_" + key).eq(index).prop("checked", true);
|
|
@@ -3708,7 +3762,7 @@ $("#body-${keys}>tr").each(function (index, tr) {
|
|
|
3708
3762
|
}
|
|
3709
3763
|
`
|
|
3710
3764
|
|
|
3711
|
-
|
|
3765
|
+
scriptForm += `function build${keys}form(index, myobj) {
|
|
3712
3766
|
append${keys}(index, (data) => {
|
|
3713
3767
|
$("#body-${keys}").append(data);
|
|
3714
3768
|
${keys}Handler();
|
|
@@ -3720,24 +3774,24 @@ $("#body-${keys}>tr").each(function (index, tr) {
|
|
|
3720
3774
|
}
|
|
3721
3775
|
`
|
|
3722
3776
|
|
|
3723
|
-
|
|
3777
|
+
/* scriptForm += ` $(function () {
|
|
3724
3778
|
var ${keys} = $("#body-${keys}").data("value") ? $("#body-${keys}").data("value") : [];
|
|
3725
3779
|
${keys}.forEach(function (myobj, index) {
|
|
3726
3780
|
build${keys}form(index, myobj);
|
|
3727
3781
|
});
|
|
3728
3782
|
});${Util.newLine}`*/
|
|
3729
3783
|
|
|
3730
|
-
|
|
3784
|
+
break
|
|
3731
3785
|
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3786
|
+
case 'ide_editor':
|
|
3787
|
+
//var additionalScripts = `if (!!session.$worker) {session.$worker.send("setOptions", [{"esversion": 9,"esnext": false,}]);}`;
|
|
3788
|
+
let script_annotaions = ''
|
|
3789
|
+
let script_enabled = ''
|
|
3790
|
+
let script_looping = ''
|
|
3791
|
+
if (widgets[keys].language == 'javascript') {
|
|
3792
|
+
script_annotaions = `editor_${keys}.session.setOption("useWorker", true);`
|
|
3793
|
+
script_enabled = `editor_${keys}.session.setOption("useWorker", true);`
|
|
3794
|
+
script_looping = `
|
|
3741
3795
|
var errors = editor_${keys}.getSession().getAnnotations().filter(a=>a.type==='error');
|
|
3742
3796
|
arr = [];
|
|
3743
3797
|
errors.forEach(function(erItem) {
|
|
@@ -3749,8 +3803,8 @@ ${keys}.forEach(function (myobj, index) {
|
|
|
3749
3803
|
editor_${keys}.getSession().setAnnotations(arr);
|
|
3750
3804
|
editor_${keys}.session.setOption("useWorker", true);
|
|
3751
3805
|
`
|
|
3752
|
-
|
|
3753
|
-
|
|
3806
|
+
}
|
|
3807
|
+
scriptForm += `var editor_${keys} = ace.edit("editor_${keys}");
|
|
3754
3808
|
editor_${keys}.getSession().setMode("ace/mode/${widgets[keys].language}");
|
|
3755
3809
|
editor_${keys}.setValue(ace_value(ide_editor_${keys}));
|
|
3756
3810
|
$("#${keys}").text(ace_value(ide_editor_${keys}));
|
|
@@ -3761,7 +3815,8 @@ ${keys}.forEach(function (myobj, index) {
|
|
|
3761
3815
|
});
|
|
3762
3816
|
`
|
|
3763
3817
|
|
|
3764
|
-
|
|
3818
|
+
break
|
|
3819
|
+
}
|
|
3765
3820
|
}
|
|
3766
3821
|
}
|
|
3767
3822
|
|