agents_agents_form_object_select.html 1.9 KB

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