common.ui.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. window.toggleProductDropdown = function()
  2. {
  3. if($('[name=undetermined]').is(':checked'))
  4. {
  5. $("[name^=product]").zui('picker').render({disabled: true});
  6. $("[name^=product]").closest('.picker-box').hide();
  7. $("[name='undeterminedProduct']").removeClass('hidden');
  8. }
  9. else
  10. {
  11. $("[name^=product]").zui('picker').render({disabled: false});
  12. $("[name^=product]").closest('.picker-box').show();
  13. $("[name='undeterminedProduct']").addClass('hidden');
  14. }
  15. }
  16. window.deselectProduct = function(value)
  17. {
  18. const deselectedProduct = value[0];
  19. const statusList = ['launched', 'developing', 'closed'];
  20. if(distributedProducts[deselectedProduct])
  21. {
  22. if(statusList.includes(distributedProducts[deselectedProduct]))
  23. {
  24. zui.Modal.confirm(confirmChangProduct).then(result =>
  25. {
  26. if(!result)
  27. {
  28. const productValue = $("[name^=product]").val();
  29. productValue.push(deselectedProduct)
  30. $("[name^=product]").zui('picker').$.setValue(productValue);
  31. }
  32. });
  33. }
  34. }
  35. }
  36. window.updateProducts = function()
  37. {
  38. if($('#undetermined').is(':checked'))
  39. {
  40. $('#undetermined').prop('checked', false);
  41. toggleProductDropdown();
  42. }
  43. const poolID = $("[name='pool']").val();
  44. const link = $.createLink('demand', 'ajaxGetProducts', 'poolID=' + poolID);
  45. $.getJSON(link, function(data)
  46. {
  47. const selectedProduct = $("[name^='product']").val();
  48. const $productPicker = $("[name^='product']").zui('picker');
  49. $productPicker.render({items: data});
  50. $productPicker.$.setValue(selectedProduct);
  51. });
  52. if(!$("[name^=product]").val()) $("[name^=product]").closest('.picker-box').siblings(".input-group-addon").show();
  53. };
  54. window.clickSubmit = function(e)
  55. {
  56. const status = $(e.submitter).data('status');
  57. if(status === undefined) return;
  58. const method = config.currentMethod;
  59. let demandStatus = status;
  60. if(status == 'active')
  61. {
  62. const reviewers = $('[name^=reviewer]').val().filter(function(reviewer) {return reviewer && reviewer.length > 0;})
  63. demandStatus = !reviewers.length || $('#needNotReview').prop('checked') ? 'active' : 'reviewing';
  64. }
  65. if(status == 'draft' && (method == 'change' || (method == 'edit' && $('#status').val() == 'changing')))
  66. {
  67. demandStatus = 'changing';
  68. }
  69. $(e.submitter).closest('form').find('[name=status]').val(demandStatus);
  70. };