AuthForm(GetMessage("ACCESS_DENIED")); IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/include.php"); IncludeModuleLangFile(__FILE__); InitSorting(); $err_mess = "File: ".__FILE__."
Line: "; /*************************************************************************** Функции ****************************************************************************/ /*************************************************************************** Обработка GET | POST ****************************************************************************/ if ( !isset($find_type) || mb_strlen($find_type) < 0 || !in_array($find_type, Array("C","K","S","M","F","SR", "D")) ) $find_type = "C"; $sTableID = "t_dict_list_".mb_strtolower($find_type); $oSort = new CAdminSorting($sTableID, "s_c_sort", "asc");// инициализация сортировки $lAdmin = new CAdminList($sTableID, $oSort);// инициализация списка $oFilter = new CAdminFilter( $sTableID."_filter_id", array( GetMessage("SUP_F_ID"), GetMessage("SUP_F_SITE"), //GetMessage("SUP_F_TYPE"), GetMessage("SUP_F_NAME"), GetMessage("SUP_F_DESCR"), GetMessage("SUP_F_SID"), GetMessage("SUP_F_RESPONSIBLE"), GetMessage("SUP_F_DEFAULT"), ) ); $arFilterFields = Array( "find", "find_type_ex", "find_id", "find_id_exact_match", "find_site", //"find_type", "find_name", "find_name_exact_match", "find_descr", "find_descr_exact_match", "find_sid", "find_sid_exact_match", "find_responsible", "find_responsible_exact_match", "find_responsible_id", "find_default" ); $lAdmin->InitFilter($arFilterFields);//инициализация фильтра InitBVar($find_id_exact_match); InitBVar($find_name_exact_match); InitBVar($find_sid_exact_match); InitBVar($find_responsible_exact_match); $arFilter = Array( "ID" => $find_id, "ID_EXACT_MATCH" => $find_id_exact_match, "SITE" => $find_site, "TYPE" => $find_type, "NAME" => ($find!="" && $find_type_ex == "name"? $find: $find_name), "NAME_EXACT_MATCH" => $find_name_exact_match, "DESCR" => ($find!="" && $find_type_ex == "descr"? $find: $find_descr), "DESCR_EXACT_MATCH" => $find_descr_exact_match, "SID" => $find_sid, "SID_EXACT_MATCH" => $find_sid_exact_match, "RESPONSIBLE_ID" => $find_responsible_id, "RESPONSIBLE" => $find_responsible, "RESPONSIBLE_EXACT_MATCH" => $find_responsible_exact_match, "DEFAULT" => $find_default ); if ($bAdmin=="Y" && $lAdmin->EditAction()) //если идет сохранение со списка { foreach($FIELDS as $ID => $arFields) { $ID = intval($ID); if(!$lAdmin->IsUpdated($ID)) continue; $arFields["C_SORT"] = intval($arFields["C_SORT"]); if (trim($arFields["NAME"]) <> '') { $arUpdate = array( 'C_SORT' => $arFields['C_SORT'], 'NAME' => $arFields['NAME'] ); if (!CTicketDictionary::Update($ID, $arUpdate)) { $lAdmin->AddUpdateError(str_replace("#ID#", $ID, GetMessage("SUP_ERROR_SAVE")), $ID); } } else { $lAdmin->AddUpdateError(str_replace("#ID#", $ID, GetMessage("SUP_FORGOT_NAME")), $ID); } } } if($bAdmin=="Y" && $arID = $lAdmin->GroupAction()) { if($_REQUEST['action_target']=='selected') { $isFiltered = null; $rsData = CTicketDictionary::GetList('', '', $arFilter); while($arRes = $rsData->Fetch()) $arID[] = $arRes['ID']; } foreach($arID as $ID) { if($ID == '') continue; $ID = intval($ID); switch($_REQUEST['action']) { case "delete": @set_time_limit(0); CTicketDictionary::Delete($ID); break; } } } // если была нажата кнопка "Сохранить изменения" if ($find_type=="C" || $find_type=="K" || $find_type=="SR" || $find_type=="NOT_REF" || $find_type == '') $show_responsible_column = "Y"; global $by, $order; $rsData = CTicketDictionary::GetList($by, $order, $arFilter); $rsData = new CAdminResult($rsData, $sTableID); $rsData->NavStart(); // установка строки навигации $lAdmin->NavText($rsData->GetNavPrint(GetMessage("SUP_PAGES"))); //$tdic = CTicketDictionary::GetList($by, $order, $arFilter, $is_filtered); $APPLICATION->SetTitle(GetMessage("SUP_TICKETS_DIC_TITLE")); $arHeaders = Array(); $arHeaders[] = Array("id"=>"ID", "content"=>"ID", "default"=>true, "sort" => "s_id"); $arHeaders[] = Array("id"=>"C_SORT", "content"=>GetMessage("SUP_SORT"), "default"=>true, "sort" => "s_c_sort"); $arHeaders[] = Array("id"=>"C_SITE", "content"=>GetMessage("SUP_SITE"), "default"=>true,); $arHeaders[] = Array("id"=>"NAME", "content"=>GetMessage("SUP_NAME"), "default"=>true,"sort" => "s_name"); if ($show_responsible_column=="Y") $arHeaders[] = Array("id"=>"RESPONSIBLE_USER_ID", "content"=>GetMessage("SUP_RESPONSIBLE"), "default"=>true,"sort" => "s_responsible"); $lAdmin->AddHeaders($arHeaders); // построение списка $arRows = array(); $arSiteArrayForAllDict = CTicketDictionary::GetSiteArrayForAllDictionaries(); $arRespUserIDs = array(); while($arRes = $rsData->Fetch()) { if(intval($arRes["RESPONSIBLE_USER_ID"])>0) { $arRespUserIDs[] = intval($arRes["RESPONSIBLE_USER_ID"]); } $row =& $lAdmin->AddRow($arRes["ID"], $arRes); $arRow = array("objRow" => $row, "arFields" => $arRes); $row->AddInputField("C_SORT", Array("size"=>"3")); $str_SITE = ""; if(array_key_exists($arRes["ID"], $arSiteArrayForAllDict)) { $arrSITE = $arSiteArrayForAllDict[$arRes["ID"]]; foreach($arrSITE as $sid) { $sidS = htmlspecialcharsbx($sid); $str_SITE .= ($str_SITE == "" ? "" : " / ") . '' . $sidS . ''; } } $row->AddViewField("C_SITE", $str_SITE); $row->AddInputField("NAME", Array("size"=>"35")); $arActions = Array(); $arActions[] = array( "ICON"=>"edit", "DEFAULT" => "Y", "TEXT"=>GetMessage("SUP_EDIT"), "ACTION"=>$lAdmin->ActionRedirect("ticket_dict_edit.php?find_type=" . $arRes["C_TYPE"] . "&ID=" . $arRes["ID"] . "&lang=" . LANG) ); if ($bAdmin=="Y") { $arActions[] = array("SEPARATOR" => true); $arActions[] = array( "ICON" => "delete", "TEXT" => GetMessage("SUP_DELETE"), "ACTION"=>"if(confirm('" . GetMessage('SUP_DELETE_TDIC_CONF') . "')) " . $lAdmin->ActionDoGroup($arRes["ID"], "delete", "find_type=" . $arRes["C_TYPE"]), ); } $row->AddActions($arActions); $arRows[] = $arRow; } $arRespUsersProp = array(); $arRespUserIDs = array_unique($arRespUserIDs); $strUsers = implode("|", $arRespUserIDs); $rs = CUser::GetList('id', 'asc', array( "ID" => $strUsers), array("FIELDS"=>array("NAME","LAST_NAME","LOGIN","ID"))); while($ar = $rs->Fetch()) { $arRespUsersProp[$ar["ID"]] = $ar; } // Еще один проход для ответственных пользователей foreach($arRows as $k => $v) { $str = " "; $rUserID = intval($v["arFields"]["RESPONSIBLE_USER_ID"]); if ($rUserID > 0 && array_key_exists($rUserID, $arRespUsersProp)): $arUserPr = $arRespUsersProp[$rUserID]; $str = '[' . $rUserID.'] (' . $arUserPr["LOGIN"] . ') ' . $arUserPr["NAME"] . " " . $arUserPr["LAST_NAME"]; endif; $v["objRow"]->AddViewField("RESPONSIBLE_USER_ID", $str); } // "подвал" списка $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 ($bAdmin=="Y") { $lAdmin->AddGroupActionTable(Array( "delete"=>GetMessage("MAIN_ADMIN_LIST_DELETE"), ) ); } $aContext = array( array( "ICON"=> "btn_new", "TEXT"=> GetMessage("SUP_ADD"), //"LINK"=>"ticket_dict_edit.php?lang=".LANG."&find_type=".htmlspecialcharsbx($find_type), "TITLE"=>GetMessage("SUP_ADD"), "MENU" => Array( Array( "TEXT" => GetMessage("SUP_ADD_CATEGORY"), "ACTION" => "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=C';" ), Array( "TEXT" => GetMessage("SUP_ADD_CRITICALITY"), "ACTION" => "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=K';" ), Array( "TEXT" => GetMessage("SUP_ADD_STATUS"), "ACTION" => "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=S';" ), Array( "TEXT" => GetMessage("SUP_ADD_MARK"), "ACTION" => "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=M';" ), Array( "TEXT" => GetMessage("SUP_ADD_FUA"), "ACTION" => "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=F';" ), Array( "TEXT" => GetMessage("SUP_ADD_SOURCE"), "ACTION" => "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=SR';" ), Array( "TEXT" => GetMessage("SUP_ADD_DIFFICULTY"), "ACTION" => "window.location='/bitrix/admin/ticket_dict_edit.php?lang=".LANG."&find_type=D';" ), ) ), ); $lAdmin->AddAdminContextMenu($aContext); $lAdmin->CheckListMode(); require_once ($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php"); ?>