zet-lib 1.3.33 → 1.3.35

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/Form.js CHANGED
@@ -232,42 +232,52 @@ Form.field = (obj) => {
232
232
  break
233
233
 
234
234
  case 'select':
235
+ var please_select = obj.please_select
236
+ if (please_select != undefined) {
237
+ if (please_select != '') {
238
+ selects += `<option value="">${please_select}</option>`
239
+ }
240
+ }
235
241
  if (obj.hasOwnProperty('array')) {
236
242
  var items = obj.array || []
237
- var please_select = obj.please_select
238
- if (please_select != undefined) {
239
- if (please_select != '') {
240
- selects += `<option value="">${please_select}</option>`
241
- }
242
- }
243
243
  if (items.length) {
244
244
  items.forEach(function (item) {
245
- const selected = item.value == value ? ' selected ' : ''
246
- selects += `<option value="${item.value}" ${selected}>${item.label}</option>`
245
+ if (item.label) {
246
+ const selected = item.value == value ? ' selected ' : ''
247
+ selects += `<option value="${item.value}" ${selected}>${item.label}</option>`
248
+ }
247
249
  })
248
250
  } else {
249
251
  if (Array.isArray(data)) {
250
252
  data.map((item) => {
251
- var selected = item.id == value ? ' selected ' : ''
252
- selects += `<option value="${item.id}" ${selected}>${item.zname}</option>`
253
+ if (item.zname) {
254
+ var selected = item.id == value ? ' selected ' : ''
255
+ selects += `<option value="${item.id}" ${selected}>${item.zname}</option>`
256
+ }
253
257
  })
254
258
  } else {
255
259
  for (var keys in data) {
256
- var selected = keys == value ? ' selected ' : ''
257
- selects += `<option value="${keys}" ${selected}>${data[keys]}</option>`
260
+ if (data[keys]) {
261
+ var selected = keys == value ? ' selected ' : ''
262
+ selects += `<option value="${keys}" ${selected}>${data[keys]}</option>`
263
+ }
258
264
  }
259
265
  }
260
266
  }
261
267
  } else {
262
268
  if (Array.isArray(data)) {
263
269
  data.map((item) => {
264
- const selected = item.id == value ? ' selected ' : ''
265
- selects += `<option value="${item.id}" ${selected}>${item.zname}</option>`
270
+ if (item.zname) {
271
+ const selected = item.id == value ? ' selected ' : ''
272
+ selects += `<option value="${item.id}" ${selected}>${item.zname}</option>`
273
+ }
266
274
  })
267
275
  } else {
268
276
  for (let keys in data) {
269
- let selected = keys == value ? ' selected ' : ''
270
- selects += `<option value="${keys}" ${selected}>${data[keys]}</option>`
277
+ if (data[keys]) {
278
+ let selected = keys == value ? ' selected ' : ''
279
+ selects += `<option value="${keys}" ${selected}>${data[keys]}</option>`
280
+ }
271
281
  }
272
282
  }
273
283
  }
package/lib/moduleLib.js CHANGED
@@ -63,6 +63,30 @@ m.datepicker = function (req, res, elem) {
63
63
  }
64
64
  }
65
65
 
66
+ //module for selectize
67
+ //https://selectize.dev
68
+ //https://github.com/selectize/selectize.js
69
+ m.selectize = function (req, res, elem) {
70
+ let script = ''
71
+ let head = ``
72
+ let end = ``
73
+ elem = elem || '.selectize'
74
+ head += '<link href="/modules/selectizejs/css/selectize.bootstrap5.css" rel="stylesheet">'
75
+ end += '<script src="/modules/selectizejs/js/selectize.min.js"></script>'
76
+
77
+ script += `$(() => {
78
+ $('${elem}').selectize({
79
+ sortField: 'text'
80
+ });
81
+ });`
82
+
83
+ return {
84
+ head: head,
85
+ end: end,
86
+ script: script,
87
+ }
88
+ }
89
+
66
90
  //module for dropzone
67
91
  m.dropzone = function (req, res, elem) {
68
92
  let script = ''
package/lib/zRoute.js CHANGED
@@ -3370,6 +3370,7 @@ zRoute.generateJS = (req, res, MYMODEL, relations, zForms = '', data = {}) => {
3370
3370
  let mapKey = ''
3371
3371
  let hasAttributes = []
3372
3372
  let joinsFields = []
3373
+ let selectize = []
3373
3374
  if (MYMODEL.joins) {
3374
3375
  joinsFields = MYMODEL.joins.list
3375
3376
  }
@@ -3439,6 +3440,10 @@ zRoute.generateJS = (req, res, MYMODEL, relations, zForms = '', data = {}) => {
3439
3440
  if (widgets[key].isAttributes) {
3440
3441
  hasAttributes.push(key)
3441
3442
  }
3443
+ //add search on select
3444
+ if (widgets[key].isSearch) {
3445
+ selectize.push(key)
3446
+ }
3442
3447
  }
3443
3448
  }
3444
3449
  }
@@ -3478,9 +3483,14 @@ zRoute.generateJS = (req, res, MYMODEL, relations, zForms = '', data = {}) => {
3478
3483
  headObj.datetimepicker = datetimepickerObj.head
3479
3484
  endObj.datetimepicker = datetimepickerObj.end
3480
3485
  }
3481
- /*if (hasTable) {
3482
- scriptForm += moduleLib.script(req, res, MYMODEL.table);
3483
- }*/
3486
+ if (selectize.length > 0) {
3487
+ selectize.map((item) => {
3488
+ let selectizeObj = moduleLib.selectize(req, res, `#${item}`)
3489
+ scriptForm += selectizeObj.script
3490
+ headObj.selectize = selectizeObj.head
3491
+ endObj.selectize = selectizeObj.end
3492
+ })
3493
+ }
3484
3494
  if (hasIde) {
3485
3495
  let ideCDNObj = moduleLib.ideCDN(req, res)
3486
3496
  //scriptForm += ideCDNObj.script;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zet-lib",
3
- "version": "1.3.33",
3
+ "version": "1.3.35",
4
4
  "description": "zet is a library that part of zet generator.",
5
5
  "engines": {
6
6
  "node": ">=18"