zet-lib 1.0.66 → 1.0.68

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
@@ -350,7 +350,7 @@ Form.field = (obj) => {
350
350
  </span>
351
351
  </div>`
352
352
  return `<div class="input-group">
353
- <select ${tabindex} class="form-control" ${id} ${placeholder} ${htmlOptions} >${selects}</select>
353
+ <select ${tabindex} class="form-control ${obj.class} dropdown-multi" ${id} ${placeholder} ${htmlOptions} >${selects}</select>
354
354
  <span id="dropdownadd${obj.id}" class="input-group-text dropdownadd" data-id="${obj.id}" style="cursor: pointer;" title=" ${LANGUAGE['form_add_data']} ">+</span>
355
355
  </div>
356
356
  <div id="dropdownbox${obj.id}" class="boxy mb-3">${spanmulti}</div>`
package/lib/zRoute.js CHANGED
@@ -2543,7 +2543,7 @@ zRoute.moduleLib = (req, res, MYMODEL, relations, zForms = '', data = {}) => {
2543
2543
  Util.writeFile(`${path_script}/${time}.js`, uglifyJS.minify(jsObj.script))
2544
2544
  Util.writeFile(`${path_head}/head.txt`, jsObj.head)
2545
2545
  Util.writeFile(`${path_end}/end.txt`, jsObj.end)
2546
- end += `<script src="/runtime/script/${table}/${time}/.js"></script>`
2546
+ end += `<script src="/runtime/script/${table}/${time}.js"></script>`
2547
2547
  if (jsObj.head) {
2548
2548
  head += jsObj.head
2549
2549
  }
@@ -2555,8 +2555,25 @@ zRoute.moduleLib = (req, res, MYMODEL, relations, zForms = '', data = {}) => {
2555
2555
  if (head) {
2556
2556
  res.locals.moduleHead = head
2557
2557
  }
2558
+
2559
+ //add script for dropdown multi in table type
2560
+ //stupid way temporary
2561
+ let scriptTemp = '';
2562
+ for(let keys in MYMODEL.widgets) {
2563
+ if(MYMODEL.widgets[keys].name == "table") {
2564
+ let MODEL_TABLE = require(`${dirRoot}/models/${MYMODEL.widgets[keys].table}`);
2565
+ for(let key in MODEL_TABLE.widgets) {
2566
+ if(MODEL_TABLE.widgets[key].name == "dropdown_multi") {
2567
+ let relObject = relations[keys+'Row'][key+'Object'];
2568
+ scriptTemp += `<script>var ${key}Object = ${JSON.stringify(relObject)};</script>${Util.newLine}`;
2569
+ }
2570
+ }
2571
+ }
2572
+ }
2573
+
2574
+ //end
2558
2575
  if (end) {
2559
- res.locals.moduleEnd = end
2576
+ res.locals.moduleEnd = scriptTemp + end
2560
2577
  }
2561
2578
  }
2562
2579
 
@@ -2861,16 +2878,18 @@ zRoute.generateJS = (req, res, MYMODEL, relations, zForms = '', data = {}) => {
2861
2878
  for (let qq in MODEL_TABLE.widgets) {
2862
2879
  //check if have dropdown_multi
2863
2880
  if (MODEL_TABLE.widgets[qq].name == 'dropdown_multi') {
2864
- scriptForm += ` $("#body-${keys}").on("click", "#dropdownadd${qq}",function () {
2881
+ dropdownMultis.push(qq);
2882
+ scriptForm += `$("#body-${keys}").on("click", "#dropdownadd${qq}",function () {
2865
2883
  let elm = $(this).siblings("#${qq}");
2866
2884
  var val = elm.val();
2867
2885
  if(val == ""){
2868
2886
  alert("Please select data");
2869
2887
  return false;
2870
2888
  }
2889
+ var lengthOfItem = $(this).closest("tr").attr("data-id");
2871
2890
  let text = elm.find("option:selected").text();
2872
2891
  var count = $(this).parent().parent().find(".span${qq}").length;
2873
- var data = "<span class='span${qq}' > "+(count+1)+". <input type='hidden' name='${MODEL_TABLE.table}[${qq}][]' value='"+val+"' /> " + text +" <img class='tabler-icons icons-filter-danger pull-right' src='/assets/icons/trash-filled.svg' onclick='$(this).closest(\`span\`).remove();' title='Delete' /> <br></span>";
2892
+ var data = "<span class='span${qq}' > "+(count+1)+". <input type='hidden' name='${MYMODEL.table}[${keys}]["+lengthOfItem+"][${qq}]["+count+"]' value='"+val+"' /> " + text +" <img class='tabler-icons icons-filter-danger pull-right' src='/assets/icons/trash-filled.svg' onclick='$(this).closest(\`span\`).remove();' title='Delete' /> <br></span>";
2874
2893
  $(this).parent().parent().find("#dropdownbox${qq}").append(data);
2875
2894
  $(this).siblings("#${qq}").val("");
2876
2895
  });${Util.newLine}`
@@ -2904,7 +2923,7 @@ $("#body-${keys}>tr").each(function (index, tr) {
2904
2923
  $(input).attr("name",dataname+"["+index+"]["+$(input).data("name")+"]");
2905
2924
  }
2906
2925
  });
2907
-
2926
+
2908
2927
  var textareas = $(tr).find("textarea");
2909
2928
  textareas.each(function (i,input) {
2910
2929
  if($(input).data("name")){
@@ -2942,6 +2961,17 @@ $("#body-${keys}>tr").each(function (index, tr) {
2942
2961
  $(".${subname}_" + key).eq(index).closest("TD").find("img").attr("src",filename).addClass("boxy");
2943
2962
  $(".${subname}_" + key).eq(index).closest("TD").append('<a href="'+filenamex+'" target="_blank" style="font-size: 12px">'+myimg+'</a>');
2944
2963
  }
2964
+ } else if($(".${subname}_" + key).eq(index).hasClass("dropdown-multi")){
2965
+ var dropdownsData = '';
2966
+ var mydropdowns = myobj[key] || [];
2967
+ mydropdowns = mydropdowns.filter((item) => item.length > 0);
2968
+
2969
+ mydropdowns.map((item, i) => {
2970
+ var text = ${dropdownMultis[0]}Object[item];
2971
+ dropdownsData += "<span class='span"+key+"' > "+(i+1)+". <input type='hidden' name='${MYMODEL.table}[${keys}]["+index+"]["+key+"]["+i+"]' value='"+item+"' /> " + text +" <img class='tabler-icons icons-filter-danger pull-right' src='/assets/icons/trash-filled.svg' onclick='$(this).closest(\`span\`).remove();' title='Delete' /> <br></span>";
2972
+
2973
+ });
2974
+ $(".${subname}_" + key).eq(index).closest("TD").find("#dropdownboxparameter_income").html(dropdownsData);
2945
2975
  } else {
2946
2976
  $(".${subname}_" + key).eq(index).val(myobj[key] ? myobj[key] : '');
2947
2977
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zet-lib",
3
- "version": "1.0.66",
3
+ "version": "1.0.68",
4
4
  "description": "zet is a library that part of zet generator.",
5
5
  "engines": {
6
6
  "node": ">=18"