agents_agents_form_object_select.html 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <div id="bx-agents-agents-form-object-cont" style="overflow:visible;">
  2. <select id="bx-agents-agents-form-object" name="form_object" class="bx-def-font-inputs bx-form-input-select">
  3. <bx_repeat:form_objects>
  4. <option value="__value__" <bx_if:sel>__sel__</bx_if:sel>>__title__</option>
  5. </bx_repeat:form_objects>
  6. </select>
  7. </div>
  8. <script>
  9. $('#bx-agents-agents-form-object').select2({
  10. templateResult: (state) => {
  11. return $(`
  12. <div class="bx-form-object-wrap">
  13. <div>
  14. <div class="bx-form-object-text">${state.text || state.id}</div>
  15. </div>
  16. </div>
  17. `);
  18. },
  19. templateSelection: d => d.text,
  20. tags: true, // allow custom inputs
  21. createTag: function (params) {
  22. const term = $.trim(params.term);
  23. if (!term) return null;
  24. return {
  25. id: term,
  26. text: term,
  27. title: term,
  28. value: term,
  29. };
  30. },
  31. placeholder: "Select or type a value"
  32. });
  33. $('#bx-agents-agents-form-object').on('change', function () {
  34. const value = $(this).val();
  35. const sUrl = sUrlRoot + "grid.php?o=__grid_object__&a=get_form_inputs&csrf_token=" + window.glGrids.__grid_object__._sCsrfToken;
  36. $.post(sUrl, {form_object: value}, function(oResult) {
  37. if (typeof(oResult.code) !== 'undefined' && oResult.code == 200) {
  38. const newData = oResult.form_inputs;
  39. const select = $('#bx-agents-agents-form-input');
  40. select.empty();
  41. Object.values(newData).forEach(input => {
  42. select.append('<option value="' + input.name + '">' + input.name + (input.caption.length > 0 ? ' - ' + input.caption : '') + '</option>');
  43. });
  44. select.val(null).trigger('change');
  45. }
  46. }, 'json');
  47. });
  48. </script>