Your IP : 18.219.229.80


Current Path : /home/bitrix/ext_www/ballu.in.ua/bitrix/modules/bizprocdesigner/admin/
Upload File :
Current File : /home/bitrix/ext_www/ballu.in.ua/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");
?>