%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/bizproc.workflow.edit/templates/.default/ |
Current File : /home/bitrix/www/bitrix/components/bitrix/bizproc.workflow.edit/templates/.default/template.php |
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <? use Bitrix\Main\Page\Asset; Asset::getInstance()->addCss("/bitrix/themes/.default/pubstyles.css"); Asset::getInstance()->addCss("/bitrix/themes/.default/jspopup.css"); Asset::getInstance()->addCss("/bitrix/themes/.default/calendar.css"); Asset::getInstance()->addJs('/bitrix/js/main/utils.js'); Asset::getInstance()->addJs('/bitrix/js/main/popup_menu.js'); Asset::getInstance()->addJs('/bitrix/js/main/admin_tools.js'); \Bitrix\Main\Loader::includeModule('rest'); CUtil::InitJSCore(['window', 'ajax', 'bp_selector', 'clipboard', 'marketplace']); Asset::getInstance()->addJs('/bitrix/js/main/public_tools.js'); Asset::getInstance()->addJs('/bitrix/js/bizproc/bizproc.js'); require_once($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/interface/admin_lib.php"); ////////////////////////////////////////////////////////////////////////////// $ID = $arResult["ID"]; $aMenu = Array(); $aMenu[] = array( "TEXT" => GetMessage("BIZPROC_WFEDIT_MENU_PARAMS"), "TITLE" => GetMessage("BIZPROC_WFEDIT_MENU_PARAMS_TITLE"), "LINK" => "javascript:BCPShowParams();", "ICON" => "btn_settings", ); $aMenu[] = array("SEPARATOR" => "Y"); $aMenu[] = array( "TEXT" => ((strlen($arParams["BIZPROC_EDIT_MENU_LIST_MESSAGE"]) > 0) ? htmlspecialcharsbx($arParams["BIZPROC_EDIT_MENU_LIST_MESSAGE"]) : GetMessage("BIZPROC_WFEDIT_MENU_LIST")), "TITLE" => ((strlen($arParams["BIZPROC_EDIT_MENU_LIST_TITLE_MESSAGE"]) > 0) ? htmlspecialcharsbx($arParams["BIZPROC_EDIT_MENU_LIST_TITLE_MESSAGE"]) : GetMessage("BIZPROC_WFEDIT_MENU_LIST_TITLE")), "LINK" => $arResult['LIST_PAGE_URL'], "ICON" => "btn_list", ); if (!array_key_exists("SKIP_BP_TYPE_SELECT", $arParams) || $arParams["SKIP_BP_TYPE_SELECT"] != "Y") { $arSubMenu = Array(); $arSubMenu[] = array( "TEXT" => GetMessage("BIZPROC_WFEDIT_MENU_ADD_STATE"), "TITLE" => GetMessage("BIZPROC_WFEDIT_MENU_ADD_STATE_TITLE"), "ONCLICK" => "if(confirm('".GetMessage("BIZPROC_WFEDIT_MENU_ADD_WARN")."'))window.location='".str_replace("#ID#", "0", $arResult["EDIT_PAGE_TEMPLATE"]).(strpos($arResult["EDIT_PAGE_TEMPLATE"], "?") ? "&" : "?")."init=statemachine';" ); $arSubMenu[] = array( "TEXT" => GetMessage("BIZPROC_WFEDIT_MENU_ADD_SEQ"), "TITLE" => GetMessage("BIZPROC_WFEDIT_MENU_ADD_SEQ_TITLE"), "ONCLICK" => "if(confirm('".GetMessage("BIZPROC_WFEDIT_MENU_ADD_WARN")."'))window.location='".str_replace("#ID#", "0", $arResult["EDIT_PAGE_TEMPLATE"]).(strpos($arResult["EDIT_PAGE_TEMPLATE"], "?") ? "&" : "?")."';" ); $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"=>"", ); ?> <script> var BCPEmptyWorkflow = <?=$ID>0 ? 'false' : 'true'?>; function BCPProcessExport() { if (BCPEmptyWorkflow) { alert('<?= GetMessageJS("BIZPROC_EMPTY_EXPORT") ?>'); return false; } <?$v = str_replace("&", "&", str_replace("#ID#", $ID, $arResult["EDIT_PAGE_TEMPLATE"]));?> window.open('<?=CUtil::JSEscape($v)?><?if(strpos($v, "?")):?>&<?else:?>?<?endif?>export_template=Y&<?=bitrix_sessid_get()?>'); } 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) { window.BPTemplateIsModified = false; _name.value = workflowTemplateName; _descr.value = workflowTemplateDescription; _auto.value = encodeURIComponent(workflowTemplateAutostart); _form.submit(); } this.parentWindow.Close(); } }); new BX.CDialog({ title: '<?= GetMessageJS("BIZPROC_IMPORT_TITLE") ?>', content: '<fo'+'rm action="<?= CUtil::JSEscape(POST_FORM_ACTION_URI) ?>" method="POST" id="import_template_form" enctype="multipart/form-data"><table cellspacing="0" cellpadding="0" border="0" width="100%"><tr valign="top"><td width="15%" align="right"><?= GetMessageJS("BIZPROC_IMPORT_FILE") ?>:</td><td 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; } <?$v = str_replace("&", "&", POST_FORM_ACTION_URI);?> function BCPSaveUserParams() { var data = JSToPHP(arUserParams, 'USER_PARAMS'); jsExtLoader.onajaxfinish = BCPSaveTemplateComplete; jsExtLoader.startPost('<?= CUtil::JSEscape($v) ?><?if(strpos($v, "?")):?>&<?else:?>?<?endif?><?=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($v)?><?if(strpos($v, "?")):?>&<?else:?>?<?endif?><?=bitrix_sessid_get()?>&saveajax=Y'+ (save ? '': '&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': 500, 'width': 800, 'resizable' : false })).Show(); } </script> <div style="background-color: #FFFFFF;"> <? if($arParams['SHOW_TOOLBAR']=='Y'): ?> <? $APPLICATION->IncludeComponent( "bitrix:main.interface.toolbar", "", array( "BUTTONS"=>$aMenu, ), $component, array("HIDE_ICONS" => "Y") ); ?> <?endif; global $JSMESS; $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($arResult['ACTIVITIES'] as $actId => $actProps) { $actPath = substr($actProps["PATH_TO_ACTIVITY"], strlen($_SERVER["DOCUMENT_ROOT"])); if(file_exists($actProps["PATH_TO_ACTIVITY"]."/".$actId.".js")) { Asset::getInstance()->addJs($actPath.'/'.$actId.'.js'); GetJSLangMess($actProps["PATH_TO_ACTIVITY"], $actId); } if(file_exists($actProps["PATH_TO_ACTIVITY"]."/".$actId.".css")) Asset::getInstance()->addCss($actPath.'/'.$actId.'.css'); if(file_exists($actProps["PATH_TO_ACTIVITY"]."/icon.gif")) $arResult['ACTIVITIES'][$actId]['ICON'] = $actPath.'/icon.gif'; unset($arResult['ACTIVITIES'][$actId]['PATH_TO_ACTIVITY']); } ?> <script> var arAllActivities = <?=CUtil::PhpToJSObject($arResult['ACTIVITIES'])?>; var arAllActGroups = <?=CUtil::PhpToJSObject($arResult['ACTIVITY_GROUPS'])?>; var arWorkflowParameters = <?=CUtil::PhpToJSObject($arResult['PARAMETERS'])?>; var arWorkflowVariables = <?=CUtil::PhpToJSObject($arResult['VARIABLES'])?>; var arWorkflowConstants = <?=CUtil::PhpToJSObject($arResult['CONSTANTS'])?>; var arWorkflowTemplate = <?=CUtil::PhpToJSObject($arResult['TEMPLATE'][0])?>; var arDocumentFields = <?=CUtil::PhpToJSObject($arResult['DOCUMENT_FIELDS'])?>; var workflowTemplateName = <?=CUtil::PhpToJSObject($arResult['TEMPLATE_NAME'])?>; var workflowTemplateDescription = <?=CUtil::PhpToJSObject($arResult['TEMPLATE_DESC'])?>; var workflowTemplateAutostart = <?=CUtil::PhpToJSObject($arResult['TEMPLATE_AUTOSTART'])?>; var document_type = <?=CUtil::PhpToJSObject($arResult['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; var CURRENT_SITE_ID = <?=CUtil::PhpToJSObject(SITE_ID)?>; var arUserParams = <?=CUtil::PhpToJSObject($arResult['USER_PARAMS'])?>; 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 (!$arResult['TEMPLATE_CHECK_STATUS']): echo ShowError(GetMessage('BIZPROC_WFEDIT_CHECK_ERROR')); endif; ?> <form> <div id="wf1" style="width: 100%; border-bottom: 2px #efefef dotted; " ></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='<?=htmlspecialcharsbx(CUtil::JSEscape(isset($arResult['BACK_URL']) ? $arResult['BACK_URL'] : $arResult['LIST_PAGE_URL']))?>';" value="<?echo GetMessage("BIZPROC_WFEDIT_CANCEL_BUTTON")?>"> </div> </form> </div>