protected function processActionSaveAjax() { $this->request->addFilter(new PostDecodeFilter()); if ($this->request->getQuery('saveuserparams') == 'Y') { $serializeValue = serialize($this->request->getPost('USER_PARAMS')); if (strlen($serializeValue) > 64000) { $response = "\n\t\t\t\t\t<script>\n\t\t\t\t\t\talert('" . Loc::getMessage('BIZPROC_USER_PARAMS_SAVE_ERROR') . "');\n\t\t\t\t\t</script>\n\t\t\t\t"; $this->sendResponse($response); } CUserOptions::setOption('~bizprocdesigner', 'activity_settings', $serializeValue); $this->getApplication()->restartBuffer(); $this->end(); } $fields = array('DOCUMENT_TYPE' => $this->arResult['DOCUMENT_COMPLEX_TYPE'], 'AUTO_EXECUTE' => $this->request->getPost('workflowTemplateAutostart'), 'NAME' => $this->request->getPost('workflowTemplateName'), 'DESCRIPTION' => $this->request->getPost('workflowTemplateDescription'), 'TEMPLATE' => $this->request->getPost('arWorkflowTemplate'), 'PARAMETERS' => $this->request->getPost('arWorkflowParameters'), 'VARIABLES' => $this->request->getPost('arWorkflowVariables'), 'CONSTANTS' => $this->request->getPost('arWorkflowConstants'), 'USER_ID' => intval($this->getUser()->getID()), 'MODIFIER_USER' => new CBPWorkflowTemplateUser(CBPWorkflowTemplateUser::CurrentUser)); if (!is_array($fields["VARIABLES"])) { $fields['VARIABLES'] = array(); } if (!is_array($fields["CONSTANTS"])) { $fields['CONSTANTS'] = array(); } if ($this->arResult['TEMPLATE'] != $fields['TEMPLATE']) { $fields['SYSTEM_CODE'] = ''; } try { if ($this->arResult['ID'] > 0) { CBPWorkflowTemplateLoader::update($this->arResult['ID'], $fields); } else { $this->arResult['ID'] = CBPWorkflowTemplateLoader::add($fields); } } catch (Exception $e) { $response = "\n\t\t\t\t<script>\n\t\t\t\t\talert('" . Loc::getMessage('BIZPROC_WFEDIT_SAVE_ERROR') . "\\n " . preg_replace("#\\.\\W?#", ".\\n", AddSlashes(htmlspecialcharsbx($e->getMessage()))) . "');\n\t\t\t\t</script>\n\t\t\t"; $this->sendResponse($response); } $response = "\n\t\t\t<script>\n\t\t\t\twindow.location = '" . ($this->request->getQuery('apply') == 'Y' ? str_replace('#ID#', $this->arResult['ID'], $this->arResult['EDIT_PAGE_TEMPLATE']) : CUtil::JSEscape($this->arResult['LIST_PAGE_URL'])) . "';\n\t\t\t</script>\n\t\t"; $this->sendResponse($response); }