%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/bizproc/admin/ |
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"); ?>