%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/bizprocdesigner/admin/ |
Current File : //home/bitrix/www/bitrix/modules/bizprocdesigner/admin/bizproc_workflow_admin.php |
<? require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/bizproc/include.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/bizproc/prolog.php"); IncludeModuleLangFile(__FILE__); $fatalErrorMessage = ""; $moduleId = ""; if (defined("MODULE_ID")) $moduleId = MODULE_ID; $entity = ""; if (defined("ENTITY")) $entity = ENTITY; $editPage = ""; if (defined("EDIT_PAGE")) $editPage = EDIT_PAGE; $documentType = trim($_REQUEST["document_type"]); $backUrl = "/".ltrim(trim($_REQUEST["back_url_list"]), "\\/"); if (strlen($entity) <= 0) $fatalErrorMessage .= GetMessage("BPATT_NO_ENTITY").". "; if (strlen($documentType) <= 0) $fatalErrorMessage .= GetMessage("BPATT_NO_DOC_TYPE").". "; if (strlen($editPage) <= 0) $fatalErrorMessage .= GetMessage("BPATT_NO_EDIT_PAGE").". "; if (strlen($fatalErrorMessage) <= 0) { $documentType = array($moduleId, $entity, $documentType); $bCanUserWrite = CBPDocument::CanUserOperateDocumentType( CBPCanUserOperateOperation::CreateWorkflow, $GLOBALS["USER"]->GetID(), $documentType, array("UserGroups" => $GLOBALS["USER"]->GetUserGroupArray()) ); if (!$bCanUserWrite) $fatalErrorMessage .= GetMessage("BPATT_NO_PERMS").". "; } if (strlen($fatalErrorMessage) > 0) { $APPLICATION->SetTitle(GetMessage("BPATT_ERROR")); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); echo ShowError($fatalErrorMessage); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); die(); } $sTableID = "tbl_bizproc_workflow_templates"; $oSort = new CAdminSorting($sTableID, "ID", "DESC"); $lAdmin = new CAdminList($sTableID, $oSort); $arFilterFields = array( "filter_name", "filter_autoexecute", ); $lAdmin->InitFilter($arFilterFields); $arFilter = array("DOCUMENT_TYPE" => $documentType); if (strlen($filter_name) > 0) $arFilter["~NAME"] = "%".$filter_name."%"; if (intval($filter_autoexecute) > 0) $arFilter["AUTO_EXECUTE"] = intval($filter_autoexecute); if($lAdmin->EditAction()) { foreach($FIELDS as $ID=>$arFields) { $ID = IntVal($ID); if(!$lAdmin->IsUpdated($ID)) continue; try { CBPWorkflowTemplateLoader::Update($ID, $arFields); } catch (Exception $e) { $lAdmin->AddUpdateError(GetMessage("BPWFADM_ERR", array("#ID#"=>$ID, "#ERROR_TEXT#"=>$e->getMessage())), $ID); } } } if ($arID = $lAdmin->GroupAction()) { if ($_REQUEST['action_target'] == 'selected') { $arID = Array(); $dbResultList = CBPWorkflowTemplateLoader::GetList( array(), $arFilter, false, false, array("ID") ); while ($arResult = $dbResultList->Fetch()) $arID[] = $arResult['ID']; } foreach ($arID as $ID) { if (strlen($ID) <= 0) continue; switch ($_REQUEST['action']) { case "delete": $arErrorsTmp = array(); CBPDocument::DeleteWorkflowTemplate($ID, $documentType, $arErrorsTmp); if (count($arErrorsTmp) > 0) { foreach ($arErrorsTmp as $e) $lAdmin->AddGroupError($e["message"], $ID); } break; } } if (empty($lAdmin->arGroupErrors) && !empty($_REQUEST["back_url"])) { LocalRedirect($_REQUEST["back_url"]); } } $dbResultList = CBPWorkflowTemplateLoader::GetList( array($by => $order), $arFilter, false, false, array("ID", "NAME", "DESCRIPTION", "MODIFIED", "USER_ID", "AUTO_EXECUTE", "USER_NAME", "USER_LAST_NAME", "USER_LOGIN", "ACTIVE") ); $dbResultList = new CAdminResult($dbResultList, $sTableID); $dbResultList->NavStart(); $lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("BPATT_NAV"))); $lAdmin->AddHeaders(array( array("id"=>"ID", "content"=>"ID", "sort"=>"ID", "default"=>true), array("id"=>"NAME", "content"=>GetMessage("BPATT_NAME"), "sort"=>"NAME", "default"=>true), array("id"=>"MODIFIED", "content"=>GetMessage("BPATT_MODIFIED"), "sort"=>"MODIFIED", "default"=>true), array("id"=>"USER", "content"=>GetMessage("BPATT_USER"), "sort"=>"USER_ID", "default"=>true), array("id"=>"ACTIVE", "content"=>GetMessage("BPWFADM_ACT"), "sort"=>"ACTIVE", "default"=>true), array("id"=>"AUTO_EXECUTE", "content"=>GetMessage("BPATT_AUTO_EXECUTE"), "default"=>true), )); $arVisibleColumns = $lAdmin->GetVisibleHeaderColumns(); while ($arResultItem = $dbResultList->NavNext(true, "f_")) { $row =& $lAdmin->AddRow($f_ID, $arResultItem); $row->AddField( "ID", '<a href="'.$editPage.'?ID='.$f_ID.'&document_type='.urlencode($documentType[2]).'&lang='.LANGUAGE_ID.'&back_url_list='.urlencode($backUrl).'" title="'.GetMessage("BPATT_DO_EDIT").'">'.$f_ID.'</a>' ); $row->AddInputField("NAME", Array("SIZE"=>"35")); $row->AddField("MODIFIED", $f_MODIFIED); $row->AddCheckField("ACTIVE"); $row->AddField("USER", '[<a href="/bitrix/admin/user_edit.php?ID='.$f_USER_ID.'&document_type='.urlencode($documentType[2]).'&lang='.LANGUAGE_ID.'" title="'.GetMessage("BPATT_USER_PROFILE").'">'.$f_USER_ID.'</a>] ('.$f_USER_LOGIN.') '.$f_USER_NAME." ".$f_USER_LAST_NAME); $autoExecuteText = ""; if ($f_AUTO_EXECUTE == CBPDocumentEventType::None) $autoExecuteText .= GetMessage("BPATT_AE_NONE"); if (($f_AUTO_EXECUTE & CBPDocumentEventType::Create) != 0) { if (strlen($autoExecuteText) > 0) $autoExecuteText .= ", "; $autoExecuteText .= GetMessage("BPATT_AE_CREATE"); } if (($f_AUTO_EXECUTE & CBPDocumentEventType::Edit) != 0) { if (strlen($autoExecuteText) > 0) $autoExecuteText .= ", "; $autoExecuteText .= GetMessage("BPATT_AE_EDIT"); } if (($f_AUTO_EXECUTE & CBPDocumentEventType::Delete) != 0) { if (strlen($autoExecuteText) > 0) $autoExecuteText .= ", "; $autoExecuteText .= GetMessage("BPATT_AE_DELETE"); } $row->AddField("AUTO_EXECUTE", $autoExecuteText); $arActions = Array(); $arActions[] = array( "ICON" => "edit", "TEXT" => GetMessage("BPATT_DO_EDIT1"), "ACTION" => $lAdmin->ActionRedirect($editPage.'?ID='.$f_ID.'&document_type='.urlencode($documentType[2]).'&lang='.LANGUAGE_ID.'&back_url_list='.urlencode($backUrl)), "DEFAULT" => true ); $arActions[] = array("SEPARATOR" => true); $arActions[] = array( "ICON" => "delete", "TEXT" => GetMessage("BPATT_DO_DELETE1"), "ACTION" => "if(confirm('".GetMessage("BPATT_DO_DELETE1_CONFIRM")."')) ".$lAdmin->ActionDoGroup($f_ID, "delete", "document_type=".urlencode($documentType[2])."&lang=".LANGUAGE_ID."&back_url_list=".urlencode($backUrl)) ); $row->AddActions($arActions); } $lAdmin->AddFooter( array( array( "title" => GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value" => $dbResultList->SelectedRowsCount() ), array( "counter" => true, "title" => GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value" => "0" ), ) ); $lAdmin->AddGroupActionTable( array( "delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"), ) ); $aContext = array(); if (strlen($backUrl) > 0) { $aContext[] = array( "TEXT" => GetMessage("BPATT_BACK"), "ICON" => "", "LINK" => $backUrl, "TITLE" => GetMessage("BPATT_BACK_TITLE") ); } $arSubMenu = Array(); $arSubMenu[] = array( "TEXT" => GetMessage("BPATT_SUBMENU1_TEXT"), "TITLE" => GetMessage("BPATT_SUBMENU1_TEXT_TITLE"), "ACTION" => "window.location='/bitrix/admin/".MODULE_ID."_bizproc_workflow_edit.php?lang=".LANGUAGE_ID."&init=statemachine&entity=".urlencode(ENTITY)."&document_type=".urlencode($documentType[2]).'&back_url_list='.urlencode($backUrl)."';" ); $arSubMenu[] = array( "TEXT" => GetMessage("BPATT_SUBMENU2_TEXT"), "TITLE" => GetMessage("BPATT_SUBMENU2_TEXT_TITLE"), "ACTION" => "window.location='/bitrix/admin/".MODULE_ID."_bizproc_workflow_edit.php?lang=".LANGUAGE_ID."&entity=".urlencode(ENTITY)."&document_type=".urlencode($documentType[2]).'&back_url_list='.urlencode($backUrl)."';" ); $aContext[] = array( "TEXT"=>GetMessage("BPATT_DO_CREATE_TEMPLATE"), "TITLE"=>GetMessage("BPATT_DO_CREATE_TEMPLATE1"), "ICON"=>"btn_new", "MENU"=>$arSubMenu ); $lAdmin->AddAdminContextMenu($aContext); $lAdmin->CheckListMode(); /****************************************************************************/ /*********** MAIN PAGE ****************************************************/ /****************************************************************************/ $APPLICATION->SetTitle(GetMessage("BPATT_TITLE")); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); ?> <form name="find_form" method="GET" action="<?echo $APPLICATION->GetCurPage()?>?"> <input type="hidden" name="document_type" value="<?= htmlspecialcharsbx($documentType[2]) ?>"> <input type="hidden" name="back_url_list" value="<?= htmlspecialcharsbx($backUrl) ?>"> <? $oFilter = new CAdminFilter( $sTableID."_filter", array( //GetMessage("BPATT_F_NAME"), GetMessage("BPATT_F_AUTOEXECUTE"), ) ); $oFilter->Begin(); ?> <tr> <td><?= GetMessage("BPATT_F_NAME") ?>:</td> <td><input type="text" name="filter_name" value="<?echo htmlspecialcharsex($filter_name)?>" size="47"></td> </tr> <tr> <td><?= GetMessage("BPATT_F_AUTOEXECUTE") ?>:</td> <td><select name="filter_autoexecute"> <option value="">(<?= GetMessage("BPATT_ANY") ?>)</option> <option value="<?= CBPDocumentEventType::Create ?>"<?= ($filter_autoexecute == CBPDocumentEventType::Create ? " selected" : "") ?>><?= GetMessage("BPATT_F_CREATE") ?></option> <option value="<?= CBPDocumentEventType::Edit ?>"<?= ($filter_autoexecute == CBPDocumentEventType::Edit ? " selected" : "") ?>><?= GetMessage("BPATT_F_EDIT") ?></option> </select> </td> </tr> <? $oFilter->Buttons( array( "table_id" => $sTableID, "url" => $APPLICATION->GetCurPage(), "form" => "find_form" ) ); $oFilter->End(); ?> </form> <? $lAdmin->DisplayList(); ?> <? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); ?>