mapjira2zentao.ui.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. $(function()
  2. {
  3. $('.picker-box').last().on('inited', function(){updateItems();});
  4. });
  5. window.next = function()
  6. {
  7. $('button[type=submit]').trigger('click');
  8. }
  9. window.changeField = function(e)
  10. {
  11. updateItems();
  12. }
  13. window.updateItems = function()
  14. {
  15. let chosenFields = [];
  16. $("[name^='zentaoField']").each(function()
  17. {
  18. const field = $(this).val();
  19. if(field == 'add_field') return;
  20. if(field && chosenFields.indexOf(field) == -1) chosenFields.push(field);
  21. });
  22. let allItems = zui.Picker.query("[name^='zentaoField']")?.options?.items;
  23. if(typeof allItems == 'undefined') return;
  24. let fieldItems = [];
  25. for(i = 0; i < allItems.length; i++)
  26. {
  27. allItems[i].disabled = false;
  28. if(chosenFields.includes(allItems[i].value)) allItems[i].disabled = true;
  29. fieldItems[allItems[i].value] = Object.assign({},allItems[i]);
  30. fieldItems[allItems[i].value].i = i;
  31. }
  32. $("[name^='zentaoField']").each(function()
  33. {
  34. const $field = $(this).zui('picker');
  35. const field = $(this).val();
  36. let currentFieldItems = JSON.parse(JSON.stringify(allItems));
  37. if(field) currentFieldItems[fieldItems[field].i].disabled = false;
  38. $field.render({items: currentFieldItems});
  39. });
  40. }