zentaobiz.ui.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. window.testMetric = function()
  2. {
  3. let formData = $('.params-form').serialize();
  4. const postData = {};
  5. const params = new URLSearchParams(formData);
  6. for(const[key, value] of params.entries())
  7. {
  8. const decodedKey = decodeURIComponent(key);
  9. const decodedValue = decodeURIComponent(value);
  10. if(!(decodedKey in postData)) postData[decodedKey] = [];
  11. postData[decodedKey].push(decodedValue);
  12. }
  13. let url = $.createLink('metric', 'view', 'id=' + metricID);
  14. $.post(url, postData, function(response){
  15. response = JSON.parse(response);
  16. if(response.result == 'success')
  17. {
  18. $('.response-box').removeClass('text-danger').html(response.queryResult);
  19. }
  20. else
  21. {
  22. $('.response-box').addClass('text-danger').html(response.errors);
  23. }
  24. })
  25. }
  26. function toggleVarType(event)
  27. {
  28. let varTypeControl = $(event.target);
  29. let varName = varTypeControl.closest('.form-body').children().first().text().slice(1);
  30. let varType = varTypeControl.val();
  31. let optionsControl = varTypeControl.closest('.form-body-group').find('#options');
  32. if(varType == 'select')
  33. {
  34. optionsControl.removeAttr('disabled');
  35. toggleOptionsControl('defaultValue', varName, 'select', optionsControl.val());
  36. toggleOptionsControl('queryValue', varName, 'select', optionsControl.val());
  37. }
  38. else if(varType == 'date')
  39. {
  40. optionsControl.attr('disabled', true);
  41. toggleOptionsControl('defaultValue', varName, 'date', optionsControl.val());
  42. toggleOptionsControl('queryValue', varName, 'date', optionsControl.val());
  43. }
  44. else if(varType == 'input')
  45. {
  46. optionsControl.attr('disabled', true);
  47. toggleOptionsControl('defaultValue', varName, 'input',optionsControl.val());
  48. toggleOptionsControl('queryValue', varName, 'input', optionsControl.val());
  49. }
  50. }
  51. function toggleOptionsControl(controlName, paramName, controlType, optionsType)
  52. {
  53. let name = controlName + '-' + paramName;
  54. let selectBox = $('.' + name + '-select');
  55. let dateBox = $('.' + name + '-date');
  56. let inputBox = $('.' + name + '-input');
  57. let selectControl = selectBox.find('input.pick-value');
  58. let dateControl = dateBox.find('input.pick-value');
  59. let inputControl = inputBox.find('input.form-control');
  60. if(controlType == 'select')
  61. {
  62. dateBox.addClass('hidden');
  63. inputBox.addClass('hidden');
  64. selectBox.removeClass('hidden');
  65. dateControl.attr('disabled', true);
  66. inputControl.attr('disabled', true);
  67. selectControl.removeAttr('disabled');
  68. loadOptionsList(optionsType, selectBox);
  69. }
  70. else if(controlType == 'date')
  71. {
  72. selectBox.addClass('hidden');
  73. inputBox.addClass('hidden');
  74. dateBox.removeClass('hidden');
  75. selectControl.attr('disabled', true);
  76. inputControl.attr('disabled', true);
  77. dateControl.removeAttr('disabled');
  78. }
  79. else if(controlType == 'input')
  80. {
  81. selectBox.addClass('hidden');
  82. dateBox.addClass('hidden');
  83. inputBox.removeClass('hidden');
  84. selectControl.attr('disabled', true);
  85. dateControl.attr('disabled', true);
  86. inputControl.removeAttr('disabled');
  87. }
  88. }
  89. function toggleOptionsList(event)
  90. {
  91. let varName = $(event.target).closest('.form-body').children().first().text().slice(1);
  92. let optionsType = $(event.target).val();
  93. let selectControl = $('.' + name + '-select');
  94. loadOptionsList(optionsType, $('.' + 'defaultValue-' + varName + '-select'));
  95. loadOptionsList(optionsType, $('.' + 'queryValue-' + varName + '-select'));
  96. }
  97. function loadOptionsList(optionsType, selectControl)
  98. {
  99. $.get($.createLink('metric', 'ajaxGetControlOptions', 'optionType=' + optionsType), function(options)
  100. {
  101. const defaultValuePicker = selectControl.find('.pick-value').zui('picker');
  102. options = JSON.parse(options);
  103. defaultValuePicker.render({items: options});
  104. });
  105. }
  106. window.confirmRecalculate = function(calcRange= 'all', code = '')
  107. {
  108. zui.Modal.confirm({message: confirmRecalculate, icon: 'icon-exclamation-sign', iconClass: 'warning-pale rounded-full icon-2x'}).then((res)=>
  109. {
  110. if(res) zui.Modal.open({url: $.createLink('metric', 'recalculateSetting', 'calcRange=' + calcRange + '&code=' + code)});
  111. });
  112. }