%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/bitrix/modules/bizproc/admin/
Upload File :
Create Path :
Current File : /home/bitrix/www/bitrix/modules/bizproc/admin/task_list.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 = "";
$actionErrorMessage = '';

$sTableID = "tbl_bizproc_task_list";

$oSort = new CAdminSorting($sTableID, "ID", "DESC");
$lAdmin = new CAdminList($sTableID, $oSort);

$allowAdminAccess = $USER->IsAdmin();

$arFilterFields = array(
	"filter_modified_1",
	"filter_modified_2",
	"filter_name",
	'filter_descr',
	'filter_status',
	'filter_workflow_template_id'
);
if ($allowAdminAccess)
	$arFilterFields[] = "filter_user_id";

$lAdmin->InitFilter($arFilterFields);

$arFilter = array('USER_STATUS' => CBPTaskUserStatus::Waiting);
if (!$allowAdminAccess)
	$arFilter["USER_ID"] = $USER->GetID();
elseif (strlen($filter_user_id) > 0)
	$arFilter["USER_ID"] = $filter_user_id;
if (strlen($filter_modified_1) > 0)
	$arFilter[">=MODIFIED"] = $filter_modified_1;
if (strlen($filter_modified_2) > 0)
	$arFilter["<=MODIFIED"] = $filter_modified_2;
if (strlen($filter_name) > 0)
	$arFilter["~NAME"] = "%".$filter_name."%";
if (strlen($filter_descr) > 0)
	$arFilter["~DESCRIPTION"] = "%".$filter_descr."%";
if (!empty($filter_status))
{
	if ($filter_status == 2)
		unset($arFilter['USER_STATUS']);
	else
		$arFilter['USER_STATUS'] = array(CBPTaskUserStatus::Ok, CBPTaskUserStatus::Yes, CBPTaskUserStatus::No, CBPTaskUserStatus::Cancel);
}
if (!empty($filter_workflow_template_id))
{
	$arFilter['WORKFLOW_TEMPLATE_ID'] = (int)$filter_workflow_template_id;
}

if ($allowAdminAccess && !empty($_REQUEST['action']) && check_bitrix_sessid())
{
	$ids = (isset($_REQUEST['ID']) && is_array($_REQUEST['ID'])) ? $_REQUEST['ID'] : array();
	if ($ids)
	{
		$errors = array();
		$action = $_REQUEST['action'];
		$status = 0;
		if (strpos($action, 'set_status_') === 0)
		{
			$status = substr($action, strlen('set_status_'));
			$action = 'set_status';
		}

		foreach ($ids as $id)
		{
			list($taskId, $userId) = explode('_', $id);

			if ($action == 'set_status' && $status > 0)
				CBPDocument::setTasksUserStatus($userId, $status, $taskId, $errors);
			elseif ($action == 'delegate' && !empty($_REQUEST['delegate_to']))
				CBPDocument::delegateTasks($userId, $_REQUEST['delegate_to'], $taskId, $errors);
		}

		if ($errors)
			foreach ($errors as $error)
			{
				$actionErrorMessage .= $error.PHP_EOL;
			}

		unset($ids, $errors, $action, $status, $taskId, $userId);
	}
}

if ($actionErrorMessage)
{
	$lAdmin->BeginPrologContent();
	CAdminMessage::ShowMessage($actionErrorMessage);
	$lAdmin->EndPrologContent();
}


$arAddHeaders = array(
	array("id" => "ID", "content" => "ID", "sort" => "ID", "default" => true),
	array("id" => "DOCUMENT_NAME", "content" => GetMessage("BPATL_DOCUMENT_NAME"), "default" => false, "sort" => "DOCUMENT_NAME"),
	array("id" => "NAME", "content" => GetMessage("BPATL_NAME"), "sort" => "NAME", "default" => true),
	array("id" => "DESCRIPTION", "content" => GetMessage("BPATL_DESCR"), "default" => true, "sort" => "DESCRIPTION"),
	array("id" => "DESCRIPTION_FULL", "content" => GetMessage("BPATL_DESCR_FULL"), "default" => false, "sort" => "DESCRIPTION"),
	array("id" => "MODIFIED", "content" => GetMessage("BPATL_MODIFIED"), "sort" => "MODIFIED", "default" => true),
	array("id" => "OVERDUE_DATE", "content" => GetMessage("BPATL_OVERDUE_DATE"), "default" => false, "sort" => "OVERDUE_DATE"),
	array("id" => "WORKFLOW_STARTED", "content" => GetMessage("BPATL_STARTED"), "default" => false, "sort" => "WORKFLOW_STARTED"),
	array("id" => "WORKFLOW_STARTED_BY", "content" => GetMessage("BPATL_STARTED_BY"), "default" => false, "sort" => "WORKFLOW_STARTED_BY"),
	array("id" => "WORKFLOW_NAME", "content" => GetMessage("BPATL_WORKFLOW_NAME"), "default" => true, "sort" => "WORKFLOW_TEMPLATE_NAME"),
	array("id" => "WORKFLOW_STATE", "content" => GetMessage("BPATL_WORKFLOW_STATE"), "default" => true, "sort" => "WORKFLOW_STATE"),
);
if ($allowAdminAccess)
	$arAddHeaders[] = array("id" => "USER", "content" => GetMessage("BPATL_USER"), "default" => true, "sort" => "USER_ID");

$lAdmin->AddHeaders($arAddHeaders);

$arVisibleColumns = $lAdmin->GetVisibleHeaderColumns();

$arSelectFields = array("ID", "WORKFLOW_ID", "ACTIVITY", "ACTIVITY_NAME", "MODIFIED", "OVERDUE_DATE", "NAME", "DESCRIPTION", "PARAMETERS", 'DOCUMENT_NAME', 'WORKFLOW_STARTED', 'WORKFLOW_STARTED_BY', 'OVERDUE_DATE', 'WORKFLOW_TEMPLATE_NAME', 'WORKFLOW_STATE');
if (in_array("USER", $arVisibleColumns) && $allowAdminAccess)
	$arSelectFields[] = "USER_ID";

$dbResultList = CBPTaskService::GetList(
	array($by => $order),
	$arFilter,
	false,
	false,
	$arSelectFields
);

$dbResultList = new CAdminResult($dbResultList, $sTableID);
$dbResultList->NavStart();

$lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("BPATL_NAV")));

while ($arResultItem = $dbResultList->NavNext(true, "f_"))
{
	$row =& $lAdmin->AddRow($f_ID.'_'.$f_USER_ID, $arResultItem);

	$s = $allowAdminAccess ? "&uid=".intval($arResultItem["USER_ID"]) : "";
	$row->AddField(
		"ID",
		'<a href="bizproc_task.php?id='.$f_ID.$s.'&back_url='.urlencode($APPLICATION->GetCurPageParam("lang=".LANGUAGE_ID, array("lang"))).'" title="'.GetMessage("BPATL_VIEW").'">'.$f_ID.'</a>'
	);
	$row->AddField("NAME", $f_NAME);

	$description = $f_DESCRIPTION;
	if (strlen($description) > 100)
		$description = substr($description, 0, 97)."...";

	$row->AddField("DESCRIPTION", $description);
	$row->AddField("DESCRIPTION_FULL", $f_DESCRIPTION);
	$row->AddField("MODIFIED", $f_MODIFIED);
	$row->AddField("WORKFLOW_NAME", $f_WORKFLOW_TEMPLATE_NAME);
	$row->AddField("WORKFLOW_STATE", $f_WORKFLOW_STATE);
	$row->AddField("WORKFLOW_STARTED", FormatDateFromDB($f_WORKFLOW_STARTED));

	if (intval($f_STARTED_BY) > 0)
	{
		$dbUserTmp = CUser::GetByID($f_STARTED_BY);
		$arUserTmp = $dbUserTmp->fetch();
		$row->AddField("WORKFLOW_STARTED_BY",
			CUser::FormatName(COption::GetOptionString("bizproc", "name_template", CSite::GetNameFormat(false), SITE_ID), $arUserTmp, true)
			." [".$f_STARTED_BY."]"
		);
	}

	if (in_array("USER", $arVisibleColumns))
	{
		$dbUserTmp = CUser::GetByID($arResultItem["USER_ID"]);
		if ($arUserTmp = $dbUserTmp->GetNext())
		{
			$str = CUser::FormatName(COption::GetOptionString("bizproc", "name_template", CSite::GetNameFormat(false), SITE_ID), $arUserTmp, true);
			$str .= " [".$arResultItem["USER_ID"]."]";
		}
		else
			$str = str_replace("#USER_ID#", $arResultItem["USER_ID"], GetMessage("BPATL_USER_NOT_FOUND"));
		$row->AddField("USER", $str);
	}

	$arActions = Array();
	$arActions[] = array(
		"ICON" => "edit",
		"TEXT" => GetMessage("BPATL_VIEW"),
		"ACTION" => $lAdmin->ActionRedirect('bizproc_task.php?id='.$f_ID.$s.'&back_url='.urlencode($APPLICATION->GetCurPageParam("lang=".LANGUAGE_ID, array("lang"))).''),
		"DEFAULT" => true
	);

	$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"
		),
	)
);

if ($allowAdminAccess && isset($arFilter['USER_STATUS']) && $arFilter['USER_STATUS'] == 0)
{
	$lAdmin->AddGroupActionTable(
		array(
			'set_status_'.CBPTaskUserStatus::Yes => GetMessage("BPATL_GROUP_ACTION_YES"),
			'set_status_'.CBPTaskUserStatus::No => GetMessage("BPATL_GROUP_ACTION_NO"),
			'set_status_'.CBPTaskUserStatus::Ok => GetMessage("BPATL_GROUP_ACTION_OK"),
			'delegate' => GetMessage('BPATL_GROUP_ACTION_DELEGATE'),
			'delegate_dialog' => array(
				'type' => 'html',
				'value' => '<div id="action_delegate_to" style="display:none">
					<input type="text" name="delegate_to" size="3" name=""/>
					<input type="button" OnClick="window.open(\'/bitrix/admin/user_search.php?lang='
					.LANGUAGE_ID.'&FN=form_'.$sTableID.'&FC=delegate_to\',
					\'\', \'scrollbars=yes,resizable=yes,width=760,height=500,top=\'+Math.floor((screen.height - 560)/2-14)
					+\',left=\'+Math.floor((screen.width - 760)/2-5));" value=" ... "></div>'
			)
		),
		array(
			'select_onchange' => 'BX("action_delegate_to").style.display = (this.value == "delegate"? "block":"none");',
			'disable_action_target' => true,
		)
	);
}

if ($bizprocModulePermissions >= "W")
{
	$aContext = array(
//		array(
//			"TEXT" => GetMessage("SONET_ADD_NEW"),
//			"ICON" => "btn_new",
//			"LINK" => "socnet_subject_edit.php?lang=".LANG,
//			"TITLE" => GetMessage("SONET_ADD_NEW_ALT")
//		),
	);
	$lAdmin->AddAdminContextMenu($aContext);
}

$lAdmin->AddAdminContextMenu(array(), false);
$lAdmin->CheckListMode();


/****************************************************************************/
/***********  MAIN PAGE  ****************************************************/
/****************************************************************************/
$APPLICATION->SetTitle(GetMessage("BPATL_TITLE"));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
?>
<form name="find_form" method="GET" action="<?echo $APPLICATION->GetCurPage()?>?">

<?
$ar = array(
	GetMessage("BPATL_F_MODIFIED"),
	GetMessage("BPATL_F_NAME"),
	GetMessage("BPATL_DESCR"),
	GetMessage("BPATL_FILTER_STATUS"),
	GetMessage("BPATL_WORKFLOW_NAME"),
);
if ($allowAdminAccess)
	$ar[] = GetMessage("BPATL_USER_ID");

$oFilter = new CAdminFilter(
	$sTableID."_filter",
	$ar
);

$oFilter->SetDefaultRows(Array("filter_modified_1", 'filter_name'));
$oFilter->AddPreset(array(
	"ID" => "filter_running",
	"NAME" => GetMessage("BPATL_FILTER_STATUS_RUNNING"),
	"FIELDS" => array("filter_status" => 0),
));
$oFilter->AddPreset(array(
	"ID" => "filter_complete",
	"NAME" => GetMessage("BPATL_FILTER_STATUS_COMPLETE"),
	"FIELDS" => array("filter_status" => 1),
));
$oFilter->AddPreset(array(
	"ID" => "filter_all",
	"NAME" => GetMessage("BPATL_FILTER_STATUS_ALL"),
	"FIELDS" => array("filter_status" => 2),
));

$oFilter->Begin();
?>
	<tr>
		<td><?= GetMessage("BPATL_F_MODIFIED") ?>:</td>
		<td><?echo CalendarPeriod("filter_modified_1", htmlspecialcharsbx($filter_modified_1), "filter_modified_2", htmlspecialcharsbx($filter_modified_2), "find_form", "Y")?></td>
	</tr>
	<tr>
		<td><?= GetMessage("BPATL_F_NAME") ?>:</td>
		<td><input type="text" name="filter_name" value="<?echo htmlspecialcharsex($filter_name)?>" size="30">
		</td>
	</tr>
	<tr>
		<td><?= GetMessage("BPATL_DESCR") ?>:</td>
		<td><input type="text" name="filter_descr" value="<?echo htmlspecialcharsex($filter_descr)?>" size="30">
		</td>
	</tr>
	<tr>
		<td><?=GetMessage("BPATL_FILTER_STATUS")?>:</td>
		<td>
			<select name="filter_status" >
				<option value="0"<?if($filter_status=="0")echo" selected"?>><?echo GetMessage("BPATL_FILTER_STATUS_RUNNING")?></option>
				<option value="1"<?if($filter_status=="1")echo" selected"?>><?echo GetMessage("BPATL_FILTER_STATUS_COMPLETE")?></option>
				<option value="2"<?if($filter_status=="2")echo" selected"?>><?echo GetMessage("BPATL_FILTER_STATUS_ALL")?></option>
			</select>
		</td>
	</tr>
	<tr>
		<td><?=GetMessage("BPATL_WORKFLOW_NAME")?>:</td>
		<td>
			<select name="filter_workflow_template_id">
				<option value=""><?echo GetMessage("BPATL_FILTER_STATUS_ALL")?></option>
				<?
				$dbResTmp = CBPTaskService::GetList(
					array("WORKFLOW_TEMPLATE_NAME" => "ASC"),
					array(),
					array("WORKFLOW_TEMPLATE_TEMPLATE_ID", "WORKFLOW_TEMPLATE_NAME"),
					false,
					array("WORKFLOW_TEMPLATE_TEMPLATE_ID", "WORKFLOW_TEMPLATE_NAME")
				);
				while ($arResTmp = $dbResTmp->GetNext()):?>
					<option value="<?=$arResTmp["WORKFLOW_TEMPLATE_TEMPLATE_ID"]?>"><?=$arResTmp["WORKFLOW_TEMPLATE_NAME"]?></option>
				<?endwhile;?>
			</select>
		</td>
	</tr>

<?
if ($allowAdminAccess)
{
	?><tr>
		<td><?= GetMessage("BPATL_USER_ID") ?>:</td>
		<td><?echo FindUserID(
				"filter_user_id",
				$filter_user_id,
				"",
				"find_form",
				"5",
				"",
				" ... ",
				"",
				""
			);?>
		</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");
?>

Zerion Mini Shell 1.0