forms_fields.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. /**
  2. * Copyright (c) UNA, Inc - https://una.io
  3. * MIT License - https://opensource.org/licenses/MIT
  4. *
  5. * @defgroup UnaStudio UNA Studio
  6. * @{
  7. */
  8. function BxDolStudioFormsFields(oOptions) {
  9. this.sActionsUrl = oOptions.sActionUrl;
  10. this.sPageUrl = oOptions.sPageUrl;
  11. this.sObjNameGrid = oOptions.sObjNameGrid;
  12. this.sObjName = oOptions.sObjName == undefined ? 'oBxDolStudioFormsFields' : oOptions.sObjName;
  13. this.sAnimationEffect = oOptions.sAnimationEffect == undefined ? 'fade' : oOptions.sAnimationEffect;
  14. this.iAnimationSpeed = oOptions.iAnimationSpeed == undefined ? 'slow' : oOptions.iAnimationSpeed;
  15. this.sParamsDivider = oOptions.sParamsDivider == undefined ? '#-#' : oOptions.sParamsDivider;
  16. this.sTextSearchInput = oOptions.sTextSearchInput == undefined ? '' : oOptions.sTextSearchInput;
  17. }
  18. BxDolStudioFormsFields.prototype.onChangeModule = function() {
  19. var $this = this;
  20. var oDate = new Date();
  21. var sModule = $('#bx-grid-module-' + this.sObjNameGrid).val();
  22. this.reloadGrid();
  23. bx_loading($('body'), true);
  24. $.post(
  25. this.sPageUrl,
  26. {
  27. form_action: 'get_displays',
  28. form_module: sModule,
  29. _t: oDate.getTime()
  30. },
  31. function(oData) {
  32. bx_loading($('body'), false);
  33. if(oData.code != 0) {
  34. bx_alert(oData.message);
  35. return;
  36. }
  37. $('#' + $(oData.content).attr('id')).replaceWith(oData.content);
  38. },
  39. 'json'
  40. );
  41. };
  42. BxDolStudioFormsFields.prototype.onChangeDisplay = function() {
  43. var sObject, sDisplay = $('#bx-grid-display-' + this.sObjNameGrid).val();
  44. if(sDisplay.indexOf(this.sParamsDivider) != -1) {
  45. var aDisplay = sDisplay.split(this.sParamsDivider);
  46. sObject = aDisplay[0];
  47. sDisplay = aDisplay[1];
  48. }
  49. this.reloadGrid($('#bx-grid-module-' + this.sObjNameGrid).val(), sObject, sDisplay);
  50. };
  51. BxDolStudioFormsFields.prototype.reloadGrid = function(sModule, sObject, sDisplay) {
  52. var bReload = false;
  53. if(!sModule) {
  54. sObject = '';
  55. sDisplay = '';
  56. }
  57. var oSearch = $('#bx-form-element-keyword');
  58. var oActions = $("[bx_grid_action_independent]");
  59. if(!sObject && !sDisplay) {
  60. oSearch.hide();
  61. oActions.addClass('bx-btn-disabled');
  62. }
  63. else {
  64. oSearch.show();
  65. oActions.removeClass('bx-btn-disabled');
  66. }
  67. if(glGrids[this.sObjNameGrid]._oQueryAppend['module'] != sModule) {
  68. glGrids[this.sObjNameGrid]._oQueryAppend['module'] = sModule;
  69. bReload = true;
  70. }
  71. if(glGrids[this.sObjNameGrid]._oQueryAppend['object'] != sObject) {
  72. glGrids[this.sObjNameGrid]._oQueryAppend['object'] = sObject;
  73. bReload = true;
  74. }
  75. if(glGrids[this.sObjNameGrid]._oQueryAppend['display'] != sDisplay) {
  76. glGrids[this.sObjNameGrid]._oQueryAppend['display'] = sDisplay;
  77. bReload = true;
  78. }
  79. if(bReload)
  80. glGrids[this.sObjNameGrid].reload(0);
  81. };
  82. BxDolStudioFormsFields.prototype.onSelectType = function(sType, oLink) {
  83. var oPopup = $(oLink).parents('.bx-popup-applied');
  84. bx_loading(oPopup, true);
  85. glGrids[this.sObjNameGrid].action('add', {}, 'type=' + sType, false, false);
  86. };
  87. BxDolStudioFormsFields.prototype.onChangeType = function(iDiId) {
  88. var sType = $('#bx-form-field-type').val();
  89. glGrids[this.sObjNameGrid].action('edit', {}, 'type=' + sType + '&di_id=' + iDiId, false, false);
  90. };
  91. BxDolStudioFormsFields.prototype.onSelectChecker = function(oSelect, bClear) {
  92. var sChecker = $(oSelect).val();
  93. var oInputs = $('#bx-form-element-checker_params_length_min, #bx-form-element-checker_params_length_max, #bx-form-element-checker_params_preg, #bx-form-element-checker_params_required').hide().find('input').attr('disabled', 'disabled');
  94. if(bClear || bClear == 'undefined')
  95. oInputs.val('');
  96. switch(sChecker) {
  97. case 'length':
  98. $('#bx-form-element-checker_params_length_min, #bx-form-element-checker_params_length_max').show().find('input').removeAttr('disabled');
  99. break;
  100. case 'date_range':
  101. $('#bx-form-element-checker_params_length_min, #bx-form-element-checker_params_length_max, #bx-form-element-checker_params_required').show().find('input').removeAttr('disabled');
  102. break;
  103. case 'preg':
  104. $('#bx-form-element-checker_params_preg').show().find('input').removeAttr('disabled');
  105. break;
  106. }
  107. };
  108. BxDolStudioFormsFields.prototype.onCheckRequired = function(oCheckbox) {
  109. var sId = 'bx-form-element-checker_func';
  110. if($(oCheckbox).prop('checked')) {
  111. $('#' + sId + ',#bx-form-element-checker_error').show().find('select,input').prop('disabled', false);
  112. var oSelect = $('#' + sId + ' select');
  113. if(oSelect.val() != '')
  114. this.onSelectChecker(oSelect, false);
  115. }
  116. else {
  117. $('#' + sId).hide().find('select').val('').prop('disabled', true);
  118. $('#bx-form-element-checker_params_length_min, #bx-form-element-checker_params_length_max, #bx-form-element-checker_params_preg, #bx-form-element-checker_error, #bx-form-element-checker_params_required').hide().find('input').val('').attr('disabled', 'disabled');
  119. }
  120. };
  121. BxDolStudioFormsFields.prototype.onChangeVisibleFor = function(oSelect) {
  122. $('#bx-form-element-visible_for_levels').bx_anim($(oSelect).val() == 'all' ? 'hide' : 'show', this.sAnimationEffect, this.iAnimationSpeed);
  123. };
  124. BxDolStudioFormsFields.prototype.onChangeValues = function(iUseForSets, oSelect) {
  125. var $this = this;
  126. var oDate = new Date();
  127. var oPopup = $(oSelect).parents('.bx-popup-applied:first');
  128. bx_loading(oPopup, true);
  129. $.post(
  130. this.sPageUrl,
  131. {
  132. form_action: 'values_list',
  133. form_list: $(oSelect).val(),
  134. form_use_for_sets: iUseForSets,
  135. _t: oDate.getTime()
  136. },
  137. function(oData) {
  138. bx_loading(oPopup, false);
  139. if(oData.content)
  140. oPopup.find('#adm-form-field-add-value').html(oData.content);
  141. },
  142. 'json'
  143. );
  144. };
  145. /** @} */