manageline.ui.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. /**
  2. * Add new line for link product.
  3. *
  4. * @param obj $obj
  5. * @access public
  6. * @return void
  7. */
  8. function addNewLine(e)
  9. {
  10. const $formRow = $(e.target).closest('.form-row');
  11. const newLine = $formRow.clone();
  12. newLine.find('.addLine').on('click', addNewLine);
  13. newLine.find('.removeLine').on('click', removeLine);
  14. newLine.find('[name^=modules]').val('').attr('name', 'modules[' + index + ']').attr('id', 'modules_' + index);
  15. newLine.find('[name^=programs]').closest('.picker-box').attr('id', 'programs_' + index).picker($.extend({}, $formRow.find('.picker-box[id^=programs]').zui('picker').options, {name:"programs[" + index + "]"}));
  16. $(e.target).closest('.form-row').after(newLine);
  17. index ++;
  18. }
  19. /**
  20. * Remove line for link product.
  21. *
  22. * @param obj e
  23. * @access public
  24. * @return void
  25. */
  26. function removeLine(e)
  27. {
  28. if($('.line-row-add').length == 1) return;
  29. const obj = e.target;
  30. $(obj).closest('.form-row').remove();
  31. }
  32. /**
  33. * Check if there are products under the product line.
  34. *
  35. * @access public
  36. * @return void
  37. */
  38. window.isProductLineEmpty = function()
  39. {
  40. const obj = this;
  41. let lineInputID = $(obj).siblings("div[data-name^=modules]").find('input').attr('id');
  42. let lineID = lineInputID.replace('modules_id', '');
  43. $.get($.createLink('product', 'ajaxGetProductByLine', 'lineID=' + lineID), function(data)
  44. {
  45. if(data && !hasPrompted)
  46. {
  47. zui.Modal.confirm(changeProgramTip).then((res) =>
  48. {
  49. if(!res)
  50. {
  51. let preProgram = sessionStorage.getItem($(obj).find("input[name^=programs]").attr('id'));
  52. let programPicker = $(obj).find("input[name^=programs]").zui('picker');
  53. programPicker.$.setValue(preProgram);
  54. hasPrompted = true;
  55. }
  56. else
  57. {
  58. hasPrompted = false;
  59. let programInputID = $(obj).find("input[name^=programs]").attr('id');
  60. let programInputVal = $(obj).find("input[name^=programs]").val();
  61. sessionStorage.setItem(programInputID, programInputVal);
  62. }
  63. });
  64. }
  65. else
  66. {
  67. hasPrompted = false;
  68. let programInputID = $(obj).find("input[name^=programs]").attr('id');
  69. let programInputVal = $(obj).find("input[name^=programs]").val();
  70. sessionStorage.setItem(programInputID, programInputVal);
  71. }
  72. })
  73. }
  74. window.updateOrder = function(event, orders)
  75. {
  76. let sortedIdList = {};
  77. for(let i in orders) sortedIdList['orders[' + orders[i] + ']'] = i;
  78. $.post($.createLink('tree', 'updateOrder', 'rootID=0&viewType=line'), sortedIdList);
  79. }
  80. $(function()
  81. {
  82. hasPrompted = false;
  83. setTimeout(function()
  84. {
  85. $("input[name^=programs]").each(function()
  86. {
  87. let selectId = $(this).attr('id');
  88. let selectedValue = $(this).val();
  89. sessionStorage.setItem(selectId, selectedValue);
  90. })
  91. }, 50);
  92. })