%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/bizprocdesigner/admin/ |
Current File : //home/bitrix/www/bitrix/modules/bizprocdesigner/admin/bizproc_workflow_edit.php |
<?php /* ############################################## # Bitrix: SiteManager # # Copyright (c) 2009 Bitrix # # http://www.bitrixsoft.com # # mailto:sources@bitrixsoft.com # ############################################## */ require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/bizproc/prolog.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/bizproc/include.php"); CUtil::InitJSCore(array("window", "ajax", 'access')); IncludeModuleLangFile(__FILE__); $APPLICATION->SetTitle(GetMessage("BIZPROC_WFEDIT_TITLE_EDIT")); $document_type = preg_replace("/[^0-9A-Za-z_-]/", "", $_REQUEST['document_type']); $strFatalError = false; $canWrite = false; $arTemplate = false; $ID = IntVal($_REQUEST['ID']); if($ID > 0) { $dbTemplatesList = CBPWorkflowTemplateLoader::GetList(Array(), Array("ID"=>$ID)); if($arTemplate = $dbTemplatesList->Fetch()) { $canWrite = CBPDocument::CanUserOperateDocumentType( CBPCanUserOperateOperation::CreateWorkflow, $GLOBALS["USER"]->GetID(), $arTemplate["DOCUMENT_TYPE"] ); $document_type = $arTemplate["DOCUMENT_TYPE"][2]; $workflowTemplateName = $arTemplate["NAME"]; $workflowTemplateDescription = $arTemplate["DESCRIPTION"]; $workflowTemplateAutostart = $arTemplate["AUTO_EXECUTE"]; $arWorkflowTemplate = $arTemplate["TEMPLATE"]; $arWorkflowParameters = $arTemplate["PARAMETERS"]; $arWorkflowVariables = $arTemplate["VARIABLES"]; $arWorkflowConstants = $arTemplate["CONSTANTS"]; } else $ID = 0; } if($ID <= 0) { if(strlen($document_type)<=0) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")." ".GetMessage("BIZPROC_WFEDIT_ERROR_TYPE")); $canWrite = CBPDocument::CanUserOperateDocumentType( CBPCanUserOperateOperation::CreateWorkflow, $GLOBALS["USER"]->GetID(), array(MODULE_ID, ENTITY, $document_type) ); $workflowTemplateName = GetMessage("BIZPROC_WFEDIT_DEFAULT_TITLE"); $workflowTemplateDescription = ''; $workflowTemplateAutostart = 1; if($_GET['init']=='statemachine') { $arWorkflowTemplate = array( array( "Type" => "StateMachineWorkflowActivity", "Name" => "Template", "Properties" => array(), "Children" => array() ) ); } else { $arWorkflowTemplate = array( array( "Type" => "SequentialWorkflowActivity", "Name" => "Template", "Properties" => array(), "Children" => array() ) ); } $arWorkflowParameters = array(); $arWorkflowVariables = array(); $arWorkflowConstants = array(); } $templateCheckStatus = CBPWorkflowTemplateLoader::checkTemplateActivities($arWorkflowTemplate); if(!$canWrite) $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); ////////////////////////////////////////// // AJAX ////////////////////////////////////////// $back_url = "/bitrix/admin/".MODULE_ID."_bizproc_workflow_admin.php?lang=".LANGUAGE_ID."&entity=".urlencode(ENTITY)."&document_type=".$document_type."&back_url_list=/".urlencode("/".ltrim(trim($_REQUEST["back_url_list"]), "\\/")); if(strlen($_REQUEST["back_url"])>0) $back_url = "/".ltrim(trim($_REQUEST["back_url"]), "/\\"); if($_SERVER['REQUEST_METHOD']=='POST' && $_REQUEST['saveajax']=='Y' && check_bitrix_sessid()) { CBPHelper::decodeTemplatePostData($_POST); if($_REQUEST['saveuserparams']=='Y') { $d = serialize($_POST['USER_PARAMS']); $maxLength = 16777215;//pow(2, 24) - 1; //mysql mediumtext column length if (\Bitrix\Main\Text\BinaryString::getLength($d) > $maxLength) { ?><!--SUCCESS--><script> alert('<?=GetMessageJS("BIZPROC_USER_PARAMS_SAVE_ERROR")?>'); </script><? die(); } CUserOptions::SetOption("~bizprocdesigner", "activity_settings", $d); die('<!--SUCCESS-->'); } $arFields = Array( "DOCUMENT_TYPE" => array(MODULE_ID, ENTITY, $document_type), // "ACTIVE" => $_POST["ACTIVE"], "AUTO_EXECUTE" => $_POST["workflowTemplateAutostart"], "NAME" => $_POST["workflowTemplateName"], "DESCRIPTION" => $_POST["workflowTemplateDescription"], "TEMPLATE" => $_POST["arWorkflowTemplate"], "PARAMETERS" => $_POST["arWorkflowParameters"], "VARIABLES" => $_POST["arWorkflowVariables"], "CONSTANTS" => $_POST["arWorkflowConstants"], "USER_ID" => intval($USER->GetID()), "MODIFIER_USER" => new CBPWorkflowTemplateUser(CBPWorkflowTemplateUser::CurrentUser), ); /** * @param CBPWorkflowTemplateValidationException $e */ function wfeexception_handler($e) { $errorMessages = array(); $errors = []; if (method_exists($e, 'getErrors')) { $errors = $e->getErrors(); foreach($errors as $error) { $errorMessages[] = CUtil::JSEscape($error['message']); } } else { $errorMessages[] = CUtil::JSEscape($e->getMessage()); } ?><!--SUCCESS--><script> alert('<?=GetMessageJS("BIZPROC_WFEDIT_SAVE_ERROR")?>\n<?=implode('\n', $errorMessages)?>'); (function(){ var i, setFocus = true, activity, error, errors = []; errors = <?=\Bitrix\Main\Web\Json::encode($errors);?>; for (i = 0; i < errors.length; ++i) { error = errors[i]; if (error.activityName) { activity = window.rootActivity.findChildById(error.activityName); /** @var BizProcActivity activity */ if (activity) { activity.SetError(true, setFocus); setFocus = false; } } } })(); </script><? die(); } //set_exception_handler('wfeexception_handler'); try { if($ID>0) { CBPWorkflowTemplateLoader::Update($ID, $arFields); } else $ID = CBPWorkflowTemplateLoader::Add($arFields); } catch (Exception $e) { wfeexception_handler($e); } //restore_exception_handler(); ?><!--SUCCESS--><script type="text/javascript"> BPTemplateIsModified = false; window.location = '<?=($_REQUEST["apply"]=="Y"?Cutil::JSEscape("/bitrix/admin/".MODULE_ID."_bizproc_workflow_edit.php?lang=".LANGUAGE_ID."&entity=".AddSlashes(ENTITY)."&ID=".$ID."&back_url_list=".urlencode($_REQUEST["back_url_list"])) : Cutil::JSEscape($back_url))?>'; </script><? die(); } if($_SERVER['REQUEST_METHOD']=='GET' && $_REQUEST['export_template']=='Y' && check_bitrix_sessid()) { $APPLICATION->RestartBuffer(); if ($ID > 0) { $datum = CBPWorkflowTemplateLoader::ExportTemplate($ID); header("HTTP/1.1 200 OK"); header("Content-Type: application/force-download; name=\"bp-".$ID.".bpt\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".(function_exists('mb_strlen')?mb_strlen($datum, 'ISO-8859-1'):strlen($datum))); header("Content-Disposition: attachment; filename=\"bp-".$ID.".bpt\""); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Expires: 0"); header("Pragma: public"); echo $datum; } die(); } if($_SERVER['REQUEST_METHOD']=='POST' && $_REQUEST['import_template']=='Y' && check_bitrix_sessid()) { $APPLICATION->RestartBuffer(); //CUtil::DecodeUriComponent($_POST); $r = 0; $errTmp = ""; if (is_uploaded_file($_FILES['import_template_file']['tmp_name'])) { $f = fopen($_FILES['import_template_file']['tmp_name'], "rb"); $datum = fread($f, filesize($_FILES['import_template_file']['tmp_name'])); fclose($f); try { $r = CBPWorkflowTemplateLoader::ImportTemplate( $ID, array(MODULE_ID, ENTITY, $document_type), $_POST["import_template_autostart"], $_POST["import_template_name"], $_POST["import_template_description"], $datum ); } catch (Exception $e) { $errTmp = $e->getMessage(); } } ?> <script> <?if (intval($r) <= 0):?> alert('<?= GetMessageJS("BIZPROC_WFEDIT_IMPORT_ERROR").(strlen($errTmp) > 0 ? ": ".CUtil::JSEscape($errTmp) : "" ) ?>'); <?else:?> <?$ID = $r;?> <?endif;?> window.location = '<?=CUtil::JSEscape('/bitrix/admin/'.MODULE_ID.'_bizproc_workflow_edit.php?'.($ID>0?"ID=".$ID."&":"") .'entity='.AddSlashes(urlencode(ENTITY)).'&document_type='.AddSlashes(urlencode($document_type)).'&lang='.LANGUAGE_ID)?>'; </script> <? die(); } $arAllActGroups = Array( "document" => GetMessage("BIZPROC_WFEDIT_CATEGORY_DOC"), 'task' => GetMessage('BIZPROC_WFEDIT_CATEGORY_TASKS'), "logic" => GetMessage("BIZPROC_WFEDIT_CATEGORY_CONSTR"), "interaction" => GetMessage("BIZPROC_WFEDIT_CATEGORY_INTER"), "rest" => GetMessage("BIZPROC_WFEDIT_CATEGORY_REST"), ); $runtime = CBPRuntime::GetRuntime(); $arAllActivities = $runtime->SearchActivitiesByType("activity", array(MODULE_ID, ENTITY, $document_type)); foreach ($arAllActivities as $activity) { if (!empty($activity['CATEGORY']['OWN_ID']) && !empty($activity['CATEGORY']['OWN_NAME'])) $arAllActGroups[$activity['CATEGORY']['OWN_ID']] = $activity['CATEGORY']['OWN_NAME']; } $arAllActGroups['other'] = GetMessage("BIZPROC_WFEDIT_CATEGORY_OTHER"); $aMenu = Array(); $aMenu[] = array( "TEXT"=>GetMessage("BIZPROC_WFEDIT_MENU_LIST"), "TITLE"=>GetMessage("BIZPROC_WFEDIT_MENU_LIST_TITLE"), "LINK"=>"/bitrix/admin/".MODULE_ID."_bizproc_workflow_admin.php?lang=".LANGUAGE_ID."&entity=".AddSlashes(ENTITY)."&document_type=".AddSlashes($document_type)."", "ICON"=>"btn_list", ); $aMenu[] = array( "TEXT"=>GetMessage("BIZPROC_WFEDIT_MENU_PARAMS"), "TITLE"=>GetMessage("BIZPROC_WFEDIT_MENU_PARAMS_TITLE"), "LINK"=>"javascript:BCPShowParams();", "ICON"=>"btn_settings", ); $aMenu[] = array("SEPARATOR"=>true); $arSubMenu = Array(); $arSubMenu[] = array( "TEXT" => GetMessage("BIZPROC_WFEDIT_MENU_ADD_STATE"), "ACTION" => "if(confirm('".GetMessage("BIZPROC_WFEDIT_MENU_ADD_WARN")."'))window.location='".CUtil::JSEscape("/bitrix/admin/".MODULE_ID."_bizproc_workflow_edit.php?lang=".LANGUAGE_ID."&init=statemachine&entity=".AddSlashes(ENTITY)."&document_type=".AddSlashes($document_type))."';", "TITLE" => GetMessage("BIZPROC_WFEDIT_MENU_ADD_STATE_TITLE"), ); $arSubMenu[] = array( "TEXT" => GetMessage("BIZPROC_WFEDIT_MENU_ADD_SEQ"), "ACTION" => "if(confirm('".GetMessage("BIZPROC_WFEDIT_MENU_ADD_WARN")."'))window.location='".CUtil::JSEscape("/bitrix/admin/".MODULE_ID."_bizproc_workflow_edit.php?lang=".LANGUAGE_ID."&entity=".AddSlashes(ENTITY)."&document_type=".AddSlashes($document_type))."';", "TITLE" => GetMessage("BIZPROC_WFEDIT_MENU_ADD_SEQ_TITLE"), ); $aMenu[] = array( "TEXT"=>GetMessage("BIZPROC_WFEDIT_MENU_ADD"), "TITLE"=>GetMessage("BIZPROC_WFEDIT_MENU_ADD_TITLE"), "ICON"=>"btn_new", "MENU"=>$arSubMenu ); $aMenu[] = array("SEPARATOR"=>true); $aMenu[] = array( "TEXT"=>GetMessage("BIZPROC_WFEDIT_MENU_EXPORT"), "TITLE"=>GetMessage("BIZPROC_WFEDIT_MENU_EXPORT_TITLE"), "LINK"=>"javascript:BCPProcessExport();", "ICON"=>"", ); $aMenu[] = array( "TEXT"=>GetMessage("BIZPROC_WFEDIT_MENU_IMPORT"), "TITLE"=>GetMessage("BIZPROC_WFEDIT_MENU_IMPORT_TITLE"), "LINK"=>"javascript:BCPProcessImport();", "ICON"=>"", ); $context = new CAdminContextMenu($aMenu); if($ID>0) $APPLICATION->SetTitle(GetMessage("BIZPROC_WFEDIT_TITLE_EDIT")); else $APPLICATION->SetTitle(GetMessage("BIZPROC_WFEDIT_TITLE_ADD")); $APPLICATION->SetAdditionalCSS("/bitrix/themes/.default/pubstyles.css"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); ?> <script> var BCPEmptyWorkflow = <?=$ID>0 ? 'false' : 'true'?>; function BCPProcessExport() { if (BCPEmptyWorkflow) { alert('<?= GetMessageJS("BIZPROC_EMPTY_EXPORT") ?>'); return false; } window.open('<?=CUtil::JSEscape('/bitrix/admin/'.MODULE_ID.'_bizproc_workflow_edit.php?'.($ID>0?"ID=".$ID."&":"") .'entity='.AddSlashes(urlencode(ENTITY)).'&document_type='.AddSlashes(urlencode($document_type)) .'&lang='.LANGUAGE_ID.'&'.bitrix_sessid_get().'&export_template=Y')?>'); } function BCPProcessImport() { if (!confirm("<?= GetMessageJS("BIZPROC_WFEDIT_MENU_IMPORT_PROMT") ?>")) return; var btnOK = new BX.CWindowButton({ 'title': '<?= GetMessageJS("BIZPROC_IMPORT_BUTTON") ?>', 'action': function() { BX.showWait(); var _form = document.getElementById('import_template_form'); var _name = document.getElementById('id_import_template_name'); var _descr = document.getElementById('id_import_template_description'); var _auto = document.getElementById('id_import_template_autostart'); if (_form) { _name.value = workflowTemplateName; _descr.value = workflowTemplateDescription; _auto.value = encodeURIComponent(workflowTemplateAutostart); _form.submit(); } this.parentWindow.Close(); } }); new BX.CDialog({ title: '<?= GetMessageJS("BIZPROC_IMPORT_TITLE") ?>', content: '<?=CUtil::JSEscape('<form action="/bitrix/admin/'.MODULE_ID.'_bizproc_workflow_edit.php?'.($ID>0?"ID=".$ID."&":"") .'entity='.AddSlashes(urlencode(ENTITY)).'&document_type='.AddSlashes(urlencode($document_type)).'&lang='.LANGUAGE_ID.'" method="POST" id="import_template_form" enctype="multipart/form-data"><table cellspacing="0" cellpadding="0" border="0" width="100%"><tr valign="top"><td width="50%" align="right"><?= GetMessageJS("BIZPROC_IMPORT_FILE") ?>:</td><td width="50%" align="left"><input type="file" size="35" name="import_template_file" value=""></td></tr></table><input type="hidden" name="import_template" value="Y"><input type="hidden" id="id_import_template_name" name="import_template_name" value=""><input type="hidden" name="import_template_description" id="id_import_template_description" value=""><input type="hidden" id="id_import_template_autostart" name="import_template_autostart" value="">'.bitrix_sessid_post().'</form>')?>', buttons: [btnOK, BX.CDialog.btnCancel], width: 500, height: 150 }).Show(); } function BCPSaveTemplateComplete(data) { if (data != '<!--SUCCESS-->') { alert('<?=GetMessageJS('BIZPROC_WFEDIT_SAVE_ERROR')?>'); return; } BCPEmptyWorkflow = false; } function BCPSaveUserParams() { var data = JSToPHP(arUserParams, 'USER_PARAMS'); jsExtLoader.onajaxfinish = BCPSaveTemplateComplete; jsExtLoader.startPost('<?=CUtil::JSEscape('/bitrix/admin/'.MODULE_ID.'_bizproc_workflow_edit.php?'.($ID>0?"ID=".$ID."&":"") .'entity='.AddSlashes(urlencode(ENTITY)).'&document_type='.AddSlashes(urlencode($document_type)) .'&lang='.LANGUAGE_ID.'&'.bitrix_sessid_get().'&saveajax=Y&saveuserparams=Y')?>', data); } function BCPSaveTemplate(save) { arWorkflowTemplate = Array(rootActivity.Serialize()); var data = 'workflowTemplateName=' + encodeURIComponent(workflowTemplateName) + '&' + 'workflowTemplateDescription=' + encodeURIComponent(workflowTemplateDescription) + '&' + 'workflowTemplateAutostart=' + encodeURIComponent(workflowTemplateAutostart) + '&' + JSToPHP(arWorkflowParameters, 'arWorkflowParameters') + '&' + JSToPHP(arWorkflowVariables, 'arWorkflowVariables') + '&' + JSToPHP(arWorkflowConstants, 'arWorkflowConstants') + '&' + JSToPHP(arWorkflowTemplate, 'arWorkflowTemplate'); jsExtLoader.onajaxfinish = BCPSaveTemplateComplete; jsExtLoader.startPost('<?=CUtil::JSEscape('/bitrix/admin/'.MODULE_ID.'_bizproc_workflow_edit.php?'.($ID>0?"ID=".$ID."&":"") .'entity='.AddSlashes(urlencode(ENTITY)).'&document_type='.AddSlashes(urlencode($document_type)) .'&lang='.LANGUAGE_ID.'&'.bitrix_sessid_get().'&saveajax=Y')?>'+ (save ? '&back_url=<?=CUtil::JSEscape(AddSlashes(urlencode($back_url)))?>': '&apply=Y') , data); } function BCPShowParams() { (new BX.CAdminDialog({ 'content_url': "/bitrix/admin/<?=MODULE_ID?>_bizproc_wf_settings.php?mode=public&bxpublic=Y&lang=<?=LANGUAGE_ID?>&entity=<?=ENTITY?>", 'content_post': 'workflowTemplateName=' + encodeURIComponent(workflowTemplateName) + '&' + 'workflowTemplateDescription=' + encodeURIComponent(workflowTemplateDescription) + '&' + 'workflowTemplateAutostart=' + encodeURIComponent(workflowTemplateAutostart) + '&' + 'document_type=' + encodeURIComponent(document_type) + '&' + '<?= bitrix_sessid_get() ?>' + '&' + JSToPHP(arWorkflowParameters, 'arWorkflowParameters') + '&' + JSToPHP(arWorkflowVariables, 'arWorkflowVariables') + '&' + JSToPHP(arWorkflowConstants, 'arWorkflowConstants') + '&' + JSToPHP(Array(rootActivity.Serialize()), 'arWorkflowTemplate'), 'height': 400, 'width': 900 })).Show(); } </script> <? $context->Show(); ?> <style> div#bx_admin_form table.edit-tab td div.edit-tab-inner {height: 310px;} a.activitydel, a.activitymin, a.activityset {width:11px; height: 11px; float: right; cursor: pointer; margin: 4px;} .activity a.activitydel {background: url(/bitrix/images/bizproc/act_button_del.gif) 50% center no-repeat;} .activity a.activityset {background: url(/bitrix/images/bizproc/act_button_sett.gif) 50% center no-repeat;} .activity a.activitymin {background: url(/bitrix/images/bizproc/act_button_min.gif) 50% center no-repeat;} a.activitydel:hover {border: 1px #999999 solid; margin: 3px;} a.activityset:hover {border: 1px #999999 solid; margin: 3px;} a.activitymin:hover {border: 1px #999999 solid; margin: 3px;} .parallelcontainer {position: relative; top: -12px;} td.statdel, td.statset {width:20px; height: 10px; cursor: pointer; margin-top: 7px; margin-right: 7px;} td.statdel {background: url(/bitrix/images/bizproc/stat_del.gif) 50% center no-repeat;} td.statset {background: url(/bitrix/images/bizproc/stat_sett.gif) 50% center no-repeat;} .activity {} .activity .activityhead {background: url(/bitrix/images/bizproc/act_h.gif) left top repeat-x; height: 17px; overflow-y: hidden; background-color: #fec260;} .activity .activityheadr {background: url(/bitrix/images/bizproc/act_hr.gif) right top no-repeat;} .activity .activityheadl {background: url(/bitrix/images/bizproc/act_hl.gif) left top no-repeat; height:17px; padding-left: 3px;} .activityerr {} .activityerr .activityhead {background: url(/bitrix/images/bizproc/err_act_h.gif) left top repeat-x; height: 17px; overflow-y: hidden; background-color: #ffb3b3;} .activityerr .activityheadr {background: url(/bitrix/images/bizproc/err_act_hr.gif) right top no-repeat;} .activityerr .activityheadl {background: url(/bitrix/images/bizproc/err_act_hl.gif) left top no-repeat; height:17px; padding-left: 3px;} .activityerr a.activitydel {background: url(/bitrix/images/bizproc/err_act_button_del.gif) 50% center no-repeat;} .activityerr a.activityset {background: url(/bitrix/images/bizproc/err_act_button_sett.gif) 50% center no-repeat;} div.bx-core-dialog-content input {padding: 6px !important;} div.bx-core-dialog-content input[type=button] {padding-left: 11px !important; padding-right: 11px !important;} .adm-workarea .adm-btn { box-sizing: content-box !important; -moz-box-sizing: content-box !important; -webkit-box-sizing: content-box !important; } </style> <script src="/bitrix/js/main/public_tools.js"></script> <script src="/bitrix/js/bizproc/bizproc.js"></script> <? $JSMESS = Array(); function GetJSLangMess($f, $actId) { $MESS = Array(); if(file_exists($f."/lang/en/".$actId.".js.php")) include($f."/lang/en/".$actId.".js.php"); if(file_exists($f."/lang/".LANGUAGE_ID."/".$actId.".js.php")) include($f."/lang/".LANGUAGE_ID."/".$actId.".js.php"); global $JSMESS; foreach($MESS as $k=>$v) $JSMESS[$k] = $v; } foreach($arAllActivities as $actId => $actProps) { $actPath = substr($actProps["PATH_TO_ACTIVITY"], strlen($_SERVER["DOCUMENT_ROOT"])); if(file_exists($actProps["PATH_TO_ACTIVITY"]."/".$actId.".js")) { echo '<script src="'.$actPath.'/'.$actId.'.js"></script>'; GetJSLangMess($actProps["PATH_TO_ACTIVITY"], $actId); } if(file_exists($actProps["PATH_TO_ACTIVITY"]."/".$actId.".css")) echo '<link rel="stylesheet" type="text/css" href="'.$actPath.'/'.$actId.'.css">'; if(file_exists($actProps["PATH_TO_ACTIVITY"]."/icon.gif")) $arAllActivities[$actId]['ICON'] = $actPath.'/icon.gif'; unset($arAllActivities[$actId]['PATH_TO_ACTIVITY']); } ?> <script> var arAllActivities = <?=CUtil::PhpToJSObject($arAllActivities)?>; var arAllActGroups = <?=CUtil::PhpToJSObject($arAllActGroups)?>; var arWorkflowParameters = <?=CUtil::PhpToJSObject($arWorkflowParameters)?>; var arWorkflowVariables = <?=CUtil::PhpToJSObject($arWorkflowVariables)?>; var arWorkflowConstants = <?=CUtil::PhpToJSObject($arWorkflowConstants)?>; var arWorkflowTemplate = <?=CUtil::PhpToJSObject($arWorkflowTemplate[0])?>; var workflowTemplateName = <?=CUtil::PhpToJSObject($workflowTemplateName)?>; var workflowTemplateDescription = <?=CUtil::PhpToJSObject($workflowTemplateDescription)?>; var workflowTemplateAutostart = <?=CUtil::PhpToJSObject($workflowTemplateAutostart)?>; var document_type = <?=CUtil::PhpToJSObject($document_type)?>; var MODULE_ID = <?=CUtil::PhpToJSObject(MODULE_ID)?>; var ENTITY = <?=CUtil::PhpToJSObject(ENTITY)?>; var BPMESS = <?=CUtil::PhpToJSObject($JSMESS)?>; var BPDesignerUseJson = true; var BPTemplateIsModified = false; <? $defUserParamsStr = serialize(array("groups" => array())); $userParamsStr = CUserOptions::GetOption("~bizprocdesigner", "activity_settings", $defUserParamsStr); if (empty($userParamsStr) || !CheckSerializedData($userParamsStr)) $userParamsStr = $defUserParamsStr; $userParamsData = unserialize($userParamsStr); ?> var arUserParams = <?=CUtil::PhpToJSObject($userParamsData)?>; var CURRENT_SITE_ID = <?=CUtil::PhpToJSObject(SITE_ID)?>; var arAllId = {}; var rootActivity; function BizProcRender(oActivity, divParent, t) { rootActivity = CreateActivity(oActivity); rootActivity.Draw(divParent); } function ReDraw() { var p; if(rootActivity.Type == 'SequentialWorkflowActivity') { if(rootActivity.swfWorkspaceDiv) p = rootActivity.swfWorkspaceDiv.scrollTop; while(rootActivity.childActivities.length>0) rootActivity.RemoveChild(rootActivity.childActivities[0]); rootActivity.Init(arWorkflowTemplate); rootActivity.DrawActivities(); rootActivity.swfWorkspaceDiv.scrollTop = p; } else { if(rootActivity._redrawObject) { if(rootActivity._redrawObject.swfWorkspaceDiv) p = rootActivity._redrawObject.swfWorkspaceDiv.scrollTop; while(rootActivity._redrawObject.childActivities.length>0) rootActivity._redrawObject.RemoveChild(rootActivity._redrawObject.childActivities[0]); var act = FindActivityById(arWorkflowTemplate, rootActivity._redrawObject.Name); rootActivity._redrawObject.Init(act); rootActivity._redrawObject.DrawActivities(); rootActivity._redrawObject.swfWorkspaceDiv.scrollTop = p; } else { var d = rootActivity.Table.parentNode; var modificationFlag = BPTemplateIsModified; while(rootActivity.childActivities.length>0) rootActivity.RemoveChild(rootActivity.childActivities[0]); rootActivity.Init(arWorkflowTemplate); rootActivity.RemoveResources(); rootActivity.Draw(d); BPTemplateIsModified = modificationFlag; } } } function start() { var t = document.getElementById('wf1'); if (!t) { setTimeout(function () {start();}, 1000); return; } BizProcRender(arWorkflowTemplate, document.getElementById('wf1')); <?if($ID<=0):?> BCPShowParams(); <?endif;?> } setTimeout("start()", 0); window.onbeforeunload = function() { return BPTemplateIsModified ? '<?=GetMessageJS('BIZPROC_WFEDIT_BEFOREUNLOAD')?>' : null; } </script> <? if (!$templateCheckStatus): echo ShowError(GetMessage('BIZPROC_WFEDIT_CHECK_ERROR')); endif?> <form> <div id="wf1" style="border-bottom: 2px #efefef dotted; background-color: white; border: solid 1px #DCE7ED; padding: 16px;" ></div> <div id="bizprocsavebuttons"> <br> <input type="button" onclick="BCPSaveTemplate(true);" value="<?echo GetMessage("BIZPROC_WFEDIT_SAVE_BUTTON")?>"> <input type="button" onclick="BCPSaveTemplate();" value="<?echo GetMessage("BIZPROC_WFEDIT_APPLY_BUTTON")?>"> <input type="button" onclick="window.location='<?=Cutil::addslashes(htmlspecialcharsbx($back_url))?>';" value="<?echo GetMessage("BIZPROC_WFEDIT_CANCEL_BUTTON")?>"> </div> </form> <? require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); ?>