require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/workflow/prolog.php"); $WORKFLOW_RIGHT = $APPLICATION->GetGroupRight("workflow"); if($WORKFLOW_RIGHT=="D") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/workflow/include.php"); IncludeModuleLangFile(__FILE__); $sTableID = "t_wf_history_list"; $oSort = new CAdminSorting($sTableID, "s_date_modify", "desc"); $lAdmin = new CAdminList($sTableID, $oSort); $arFilterFields = array( "find", "find_type", "find_id", "find_id_exact_match", "find_document_id", "find_document_id_exact_match", "find_modify_1", "find_modify_2", "find_modified_user", "find_modified_user_exact_match", "find_site_id", "find_filename", "find_filename_exact_match", "find_title", "find_title_exact_match", "find_body", "find_body_exact_match", "find_status", "find_status_exact_match", "find_status_id", "FILTER_logic", ); $lAdmin->InitFilter($arFilterFields); $filter = new CAdminFilter( $sTableID."_filter_id", array( "ID", GetMessage('FLOW_F_DOCUMENT'), GetMessage("FLOW_F_DATE_MODIFY"), GetMessage('FLOW_F_MODIFIED_BY'), GetMessage('FLOW_SITE_ID'), GetMessage('FLOW_F_FILENAME'), GetMessage('FLOW_F_TITLE'), GetMessage('FLOW_F_BODY'), GetMessage('FLOW_F_STATUS'), GetMessage('FLOW_F_LOGIC'), ) ); InitBVar($find_id_exact_match); InitBVar($find_document_id_exact_match); InitBVar($find_modified_user_exact_match); InitBVar($find_filename_exact_match); InitBVar($find_title_exact_matc); InitBVar($find_body_exact_match); InitBVar($find_status_exact_match); $arFilter = array( "ID" => $find_id, "DOCUMENT_ID" => $find_document_id, "DATE_MODIFY_1" => $find_modify_1, "DATE_MODIFY_2" => $find_modify_2, "MODIFIED_USER" => ($find_type == "modified_by" && $find <> '' ? $find : $find_modified_user), "SITE_ID" => $find_site_id, "FILENAME" => $find_filename, "TITLE" => ($find_type == "title" && $find <> '' ? $find : $find_title), "BODY" => ($find_type == "body" && $find <> '' ? $find : $find_body), "STATUS" => $find_status, "STATUS_ID" => $find_status_id, "ID_EXACT_MATCH" => $find_id_exact_match, "DOCUMENT_ID_EXACT_MATCH" => $find_document_id_exact_match, "MODIFIED_USER_EXACT_MATCH" => $find_modified_user_exact_match, "FILENAME_EXACT_MATCH" => $find_filename_exact_match, "TITLE_EXACT_MATCH" => $find_title_exact_match, "BODY_EXACT_MATCH" => $find_body_exact_match, "STATUS_EXACT_MATCH" => $find_status_exact_match, ); if ($arID = $lAdmin->GroupAction()) { if ($_REQUEST['action_target'] == 'selected') { $rsData = CWorkflow::GetList('', '', $arFilter); while ($arRes = $rsData->Fetch()) $arID[] = $arRes['ID']; } foreach ($arID as $ID) { $ID = intval($ID); if ($ID <= 0) continue; switch ($_REQUEST['action']) { case "delete": if ($WORKFLOW_RIGHT > "R" && CWorkflow::IsAdmin()) { CWorkflow::DeleteHistory($ID); } break; } } } $arHeaders = array( array( "id" => "ID", "content" => "ID", "default" => false, "sort" => "s_id", ), array( "id" => "DOCUMENT_ID", "content" => GetMessage("FLOW_DOCUMENT"), "default" => false, "sort" => "s_document_id", ), array( "id" => "TIMESTAMP_X", "content" => GetMessage("FLOW_DATE_MODIFY"), "default" => true, "sort" => "s_date_modify", ), array( "id" => "MODIFIED_BY", "content" => GetMessage("FLOW_MODIFIED_BY"), "default" => true, "sort" => "s_modified_by", ), array( "id" => "SITE_ID", "content" => GetMessage("FLOW_SITE_ID"), "default" => true, "sort" => "s_site_id", ), array( "id" => "FILENAME", "content" => GetMessage("FLOW_FILENAME"), "default" => true, "sort" => "s_filename", ), array( "id" => "TITLE", "content" => GetMessage("FLOW_TITLE"), "default" => true, "sort" => "s_title", ), array( "id" => "STATUS_ID", "content" => GetMessage("FLOW_STATUS"), "default" => true, "sort" => "s_status", ), ); $lAdmin->AddHeaders($arHeaders); global $by, $order; $rsData = CWorkflow::GetHistoryList($by, $order, $arFilter); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(50); $lAdmin->NavText($rsData->GetNavPrint(GetMessage("FLOW_PAGES"))); while ($arRes = $rsData->NavNext(true, "f_")) { $row = & $lAdmin->AddRow($f_ID, $arRes); if (CWorkflow::IsHaveEditRights($f_DOCUMENT_ID) && $f_DOCUMENT_ID > 0) $row->AddViewField("DOCUMENT_ID", ''.$f_DOCUMENT_ID.''); $row->AddViewField("MODIFIED_BY", '['.$f_MODIFIED_BY.'] '.$f_USER_NAME); $row->AddViewField("FILENAME", ''.TruncateText($f_FILENAME, 45).''); $row->AddViewField("STATUS_ID", '['.$f_STATUS_ID.'] '.$f_STATUS_TITLE); $arActions = array( array( "ICON" => "view", "DEFAULT" => "Y", "TEXT" => GetMessage("FLOW_VIEW"), "ACTION" => $lAdmin->ActionRedirect("workflow_history_view.php?lang=".LANG."&ID=".$f_ID), ), ); if ($WORKFLOW_RIGHT > "R" && CWorkflow::IsAdmin()) { $arActions[] = array( "SEPARATOR" => true, ); $arActions[] = array( "ICON" => "delete", "TEXT" => GetMessage("FLOW_DELETE"), "ACTION" => "if(confirm('".GetMessage('FLOW_DELETE_CONFIRM')."')) ".$lAdmin->ActionDoGroup($f_ID, "delete"), ); } $row->AddActions($arActions); } $lAdmin->AddFooter(array( array( "title" => GetMessage("MAIN_ADMIN_LIST_SELECTED"), "value" => $rsData->SelectedRowsCount(), ), array( "counter" => true, "title" => GetMessage("MAIN_ADMIN_LIST_CHECKED"), "value" => "0", ), )); if ($WORKFLOW_RIGHT > "R" && CWorkflow::IsAdmin()) { $lAdmin->AddGroupActionTable(array( "delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"), array( "action" => "Diff()", "value" => "compare", "type" => "button", "name" => GetMessage("FLOW_COMPARE"), ), )); } $aMenu = array( array( "ICON" => "btn_list", "TEXT" => GetMessage("FLOW_RECORDS_LIST"), "LINK" => "workflow_list.php?lang=".LANGUAGE_ID, "TITLE" => GetMessage("FLOW_RECORDS_LIST"), ), ); $lAdmin->AddAdminContextMenu($aMenu); $lAdmin->CheckListMode(); $APPLICATION->SetTitle(GetMessage("FLOW_PAGE_TITLE")); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); ?>