Advertisement
yambroskin

Untitled

Aug 26th, 2019
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. elma.dynamicForms.onChangeWithCallBack = function (sender, propertyName, scriptName, form, callback) {
  2.     elma.dynamicForms.dynamicFormChangeWithCallBack(sender, propertyName, scriptName, form, 'SDK.Action/DynamicForms/ProcessPropertyValueChanged/', false, false, undefined, callback);
  3. };
  4.  
  5. elma.dynamicForms.dynamicFormChangeWithCallBack = function (sender, propertyName, scriptName, form, controllerName, isConnectorScript, outputCancel, userFunc, callback) {
  6.     if ((!sender || !sender.target) && !form) {
  7.         return;
  8.     }
  9.     if (sender && sender.target)
  10.         $(sender.target).data("onChange", true);
  11.     elma.openPleaseWait(true, SR.T('Обработка изменений'));
  12.     var selector = 'div[type=dynamicForm]';
  13.     if (form)
  14.         form = $(form);
  15.     else
  16.         form = elma.dynamicForms.getForm(sender.target, selector);
  17.     var mainForm = $(form).closest('form');
  18.     add_formsvalid(mainForm);
  19.     var postData = elma.serializeFormToArray(form, selector);
  20.  
  21.     //это поле лежит на главное форме, добавляем его отдельно
  22.     var addJson = mainForm.find("input[name='__DynamicFormSettings.ViewTransformationAdditionalJson']").val();
  23.     if (addJson) {
  24.         postData.push({ name: "__DynamicFormSettings.ViewTransformationAdditionalJson", value: addJson });
  25.     }
  26.  
  27.     postData.push({ name: "__DynamicFormSettings.ChangedPropertyName", value: propertyName });
  28.     if (!!scriptName) {
  29.         postData.push({ name: "__DynamicFormSettings.ScriptName", value: scriptName });
  30.     }
  31.  
  32.     var htmlPrefix = form.find("input[name='__DynamicFormSettings.HtmlPrefix']").val();
  33.     elma.dynamicForms.bindParentFormData(postData, form, htmlPrefix + '.');
  34.  
  35.     var editMode = form.data('EditMode');
  36.     if (!!editMode) {
  37.         postData.push({ name: "__DynamicFormSettings.FormEditMode", value: editMode });
  38.     }
  39.     if (!!$.telerik.grid.lastTemporaryId) {
  40.         postData.push({ name: "__DynamicFormSettings.TablePartLastTemporaryId", value: $.telerik.grid.lastTemporaryId });
  41.     }
  42.  
  43.     elma.dynamicForms.afterUpdateActions = [];
  44.     var modelPrefix = '';
  45.     if (!!sender && !!sender.target) {
  46.         var parentDynamicForm = $(sender.target).closest(selector);
  47.         modelPrefix = $(parentDynamicForm).find("input[name='__DynamicFormSettings.HtmlPrefix']").val();
  48.     }
  49.  
  50.     $.ajax({
  51.         global: true,
  52.         cache: false,
  53.         type: 'POST',
  54.         callback:callback,
  55.         url: window.BaseUrl + controllerName,
  56.         data: postData,
  57.         dataType: 'html',
  58.         success: function (data) {
  59.             var needClosePleaseWait = true;
  60.             var hideBlocker = true;
  61.             try {
  62.                 if (data) {
  63.                     var jsonData;
  64.                     try {
  65.                         jsonData = eval('(' + data + ')');
  66.                     } catch (e) {
  67.                         console.log('ScriptExecuteException', data);
  68.                     }
  69.                     if (!jsonData) {
  70.                         return;
  71.                     }
  72.  
  73.                     var res = elma.dynamicForms.processResults(form, jsonData, modelPrefix);
  74.                     if (res) {
  75.                         needClosePleaseWait = false;
  76.                     }
  77.  
  78.                     elma.dynamicForms.renderNotifyMessages(mainForm, jsonData.NotifyMessages);
  79.  
  80.                     if (isConnectorScript) {
  81.                         hideBlocker = jsonData.Error;
  82.                         if (!hideBlocker) {
  83.                             if (userFunc) {
  84.                                 userFunc();
  85.                             } else {
  86.                                 checkAndSubmit(mainForm, outputCancel);
  87.                             }
  88.                             hideBlocker = !mainForm.valid();
  89.                         }
  90.                     }
  91.                 }
  92.             } finally {
  93.                 if (needClosePleaseWait) {
  94.                     elma.closePleaseWait(hideBlocker);
  95.                 }
  96.                 if (sender && sender.target) {
  97.                     $(sender.target).data("onChange", null);
  98.                     if ($(sender.target).data("onEnter")) {
  99.                         $(sender.target).data("onEnter", null);
  100.                         $(sender.target).closest('tr.t-grid-edit-row').find('.t-grid-update, .t-grid-insert').click();
  101.                     }
  102.                 }
  103.                 if (this.callback) {
  104.                     this.callback();
  105.                 }
  106.             }
  107.         },
  108.         error: function (data) {
  109.             elma.closePleaseWait(true);
  110.             if (sender && sender.target)
  111.                 $(sender.target).data("onChange", null);
  112.         }
  113.     });
  114. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement