agents_agents_alerts_select.html 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <div id="bx-agents-agents-alert-cont" style="overflow:visible;">
  2. <select id="bx-agents-agents-alert" name="alert" class="bx-def-font-inputs bx-form-input-select">
  3. <bx_repeat:alerts>
  4. <option value="__value__" <bx_if:sel>__sel__</bx_if:sel> data-desc="__desc__" data-count="__count__" data-count_per_req="__count_per_req__">__name__</option>
  5. </bx_repeat:alerts>
  6. </select>
  7. </div>
  8. <script>
  9. function formatItem(state) {
  10. if (!state.id)
  11. return state.text;
  12. const desc = $(state.element).data('desc');
  13. const count = $(state.element).data('count');
  14. const count_per_req = $(state.element).data('count_per_req');
  15. const stats = parseInt(count) !== 0 ? `${count}<br />${count_per_req}` : '__sys_stat_not_available__';
  16. return $(`
  17. <div class="bx-alert-wrap">
  18. <div>
  19. <div class="bx-alert-text">${state.text}</div>
  20. <div class="bx-alert-desc">${desc || ''}</div>
  21. </div>
  22. <div class="bx-alert-counter">
  23. ${stats}
  24. </div>
  25. </div>
  26. `);
  27. }
  28. $('#bx-agents-agents-alert').select2({
  29. templateResult: formatItem,
  30. templateSelection: d => d.text,
  31. });
  32. $('#bx-agents-agents-alert').on('change', function () {
  33. const value = $(this).val();
  34. const sUrl = sUrlRoot + "grid.php?o=__grid_object__&a=get_alert&csrf_token=" + window.glGrids.__grid_object__._sCsrfToken;
  35. $.post(sUrl, {alert: value}, function(oResult) {
  36. if (typeof(oResult.code) !== 'undefined' && oResult.code == 200) {
  37. $('#bx-agents-agents-alert-payload .payload-on i').html(oResult.desc);
  38. $('#bx-agents-agents-alert-payload .payload-on pre').html(JSON.stringify(oResult.payload, null, 4));
  39. $('#bx-agents-agents-alert-payload .payload-on').show();
  40. $('#bx-agents-agents-alert-payload .payload-off').hide();
  41. } else {
  42. $('#bx-agents-agents-alert-payload .payload-on').hide();
  43. $('#bx-agents-agents-alert-payload .payload-off').show();
  44. }
  45. }, 'json');
  46. });
  47. </script>