%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/support/admin/ |
Current File : /home/bitrix/www/bitrix/modules/support/admin/ticket_edit.php |
<? require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/prolog.php"); define("HELP_FILE","ticket_list.php"); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/include.php"); if( isset( $_REQUEST["tabControl_active_tab"] ) ) { unset( $_REQUEST["tabControl_active_tab"] ); } ClearVars(); $arFILES = array(); $arFiles = array(); $PROPERTY_ID = "SUPPORT"; $bDemo = (CTicket::IsDemo()) ? "Y" : "N"; $bAdmin = (CTicket::IsAdmin()) ? "Y" : "N"; $bSupportClient = (CTicket::IsSupportClient()) ? "Y" : "N"; $bSupportTeam = (CTicket::IsSupportTeam()) ? "Y" : "N"; $message = null; $messageA = array(); if($bAdmin!="Y" && $bSupportTeam!="Y" && $bDemo!="Y" && $bSupportClient!="Y") $APPLICATION->AuthForm(GetMessage("ACCESS_DENIED")); IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/include.php"); IncludeModuleLangFile($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/admin/ticket_edit.php"); $err_mess = "File: ".__FILE__."<br>Line: "; define("HELP_FILE","ticket_list.php"); global $USER_FIELD_MANAGER; /*************************************************************************** Functions ***************************************************************************/ function CheckFields() { global $ID, $TITLE, $MESSAGE, $arFILES, $bSupportTeam, $bAdmin; $max_size = 0; $arMsg = Array(); if (strlen(trim($TITLE))<=0 && intval($ID)<=0) //$str .= GetMessage("SUP_FORGOT_TITLE")."<br>"; $arMsg[] = array("id"=>"TITLE", "text"=> GetMessage("SUP_FORGOT_TITLE")); if (strlen(trim($MESSAGE))<=0 && intval($ID)<=0) //$str .= GetMessage("SUP_FORGOT_MESSAGE")."<br>"; $arMsg[] = array("id"=>"MESSAGE", "text"=> GetMessage("SUP_FORGOT_MESSAGE")); if ($bSupportTeam!="Y" && $bAdmin!="Y") { $max_size = COption::GetOptionString("support", "SUPPORT_MAX_FILESIZE"); $max_size = intval($max_size)*1024; } if ($max_size>0 && is_array($arFILES) && count($arFILES)>0) { $i = -1; while (list($key, $arFILE) = each($arFILES)) { $i++; if (intval($arFILE["size"])>$max_size) $arMsg[] = array("id"=>"FILE_".$i, "text"=> str_replace("#FILE_NAME#", $arFILE["name"], GetMessage("SUP_MAX_FILE_SIZE_EXCEEDING"))); } } if(!empty($arMsg)) { $e = new CAdminException($arMsg); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } return true; } function Support_GetUserInfo($USER_ID, &$login, &$name, $safe_for_html=true) { static $arrUsers; $login = ""; $name = ""; if (intval($USER_ID)>0) { if (is_array($arrUsers) && in_array($USER_ID, array_keys($arrUsers))) { $login = $arrUsers[$USER_ID]["LOGIN"]; $name = $arrUsers[$USER_ID]["NAME"]; } else { $rsUser = CUser::GetByID($USER_ID); $arUser = $rsUser->Fetch(); $login = $arUser["LOGIN"]; $name = $arUser["NAME"]." ".$arUser["LAST_NAME"]; $arrUsers[$USER_ID] = array("LOGIN" => $login, "NAME" => $name); } if ($safe_for_html) { $login = htmlspecialcharsbx($login); $name = htmlspecialcharsbx($name); } } } function Support_GetDictionaryInfo($DID, &$name, &$desc, &$sid, $safe_for_html=true) { static $arrDic; $name = ""; $desc = ""; $sid = ""; if (intval($DID)>0) { if (is_array($arrDic) && in_array($DID, array_keys($arrDic))) { $name = $arrDic[$DID]["NAME"]; $desc = $arrDic[$DID]["DESC"]; $sid = $arrDic[$DID]["SID"]; } else { $rsD = CTicketDictionary::GetByID($DID); $arD = $rsD->Fetch(); $name = $arD["NAME"]; $desc = $arD["DESCR"]; $sid = $arD["SID"]; $arrDic[$DID] = array("NAME" => $name, "DESC" => $desc, "SID" => $sid); } if ($safe_for_html) { $name = htmlspecialcharsbx($name); $desc = htmlspecialcharsbx($desc); $sid = htmlspecialcharsbx($sid); } } } function _Support_GetDictionaryInfoEx($arDictionary = Array()) { //$arID = array_values($arDictionary); $arID = Array(); foreach ($arDictionary as $dic => $value) { if (intval($value) > 0) $arID[] = $value; else $GLOBALS["str_".$dic."_NAME"] = $GLOBALS["str_".$dic."_DESC"] = $GLOBALS["str_".$dic."_SID"] = ""; } if (!empty($arID)) { $arTypes = Array( "C" => "CATEGORY", "K" => "CRITICALITY", "S" => "STATUS", "M" => "MARK", "F" => "FUA", "SR" => "SOURCE", "D" => "DIFFICULTY" ); $v1 = $v2 = $v3 = null; $rs = CTicketDictionary::GetList($v1, $v2, array("ID"=> $arID), $v3); while ($ar = $rs->Fetch()) { $dic = $ar["C_TYPE"]; $GLOBALS["str_".$arTypes[$dic]."_NAME"] = $ar["NAME"]; $GLOBALS["str_".$arTypes[$dic]."_DESC"] = $ar["DESCR"]; $GLOBALS["str_".$arTypes[$dic]."_SID"] = $ar["SID"]; } } } function __GetDropDown($TYPE, &$TICKET_DICTIONARY) { $arReturn = Array(); if (array_key_exists($TYPE, $TICKET_DICTIONARY)) { foreach ($TICKET_DICTIONARY[$TYPE] as $key => $value) { $arReturn["REFERENCE"][] = $value["REFERENCE"]; $arReturn["REFERENCE_ID"][] = $key; } } return $arReturn; } function Support_GetSLAInfo($ID, &$name, &$description, $safe_for_html=true) { static $arrSLA; $name = ""; $description = ""; if (intval($ID)>0) { if (is_array($arrSLA) && in_array($ID, array_keys($arrSLA))) { $name = $arrSLA[$ID]["NAME"]; $description = $arrSLA[$ID]["DESCRIPTION"]; } else { $rs = CTicketSLA::GetByID($ID); $ar = $rs->Fetch(); $name = $ar["NAME"]; $description = $ar["DESCRIPTION"]; $arrSLA[$ar["ID"]] = array("NAME" => $ar["NAME"], "DESCRIPTION" => $ar["DESCRIPTION"]); } if ($safe_for_html) { $name = htmlspecialcharsbx($name); $description = htmlspecialcharsbx($description); } } } /*************************************************************************** Work with GET | POST ***************************************************************************/ $ID = intval($ID); if ($ID<=0) $bOwner = "Y"; else $bOwner = CTicket::IsOwner($ID) ? "Y" : "N"; if ($bDemo=="Y" && $bOwner=="Y") { $bSupportClient = "Y"; $bDemo = "N"; } $TICKET_LIST_URL = strlen($TICKET_LIST_URL)>0? CUtil::AddSlashes(htmlspecialcharsbx((substr($TICKET_LIST_URL, 0, 4) == 'http'?'':'/').$TICKET_LIST_URL)) : "ticket_list.php"; $TICKET_EDIT_URL = strlen($TICKET_EDIT_URL)>0? CUtil::AddSlashes(htmlspecialcharsbx((substr($TICKET_EDIT_URL, 0, 4) == 'http'?'':'/').$TICKET_EDIT_URL)) : "ticket_edit.php"; $TICKET_MESSAGE_EDIT_URL = strlen($TICKET_MESSAGE_EDIT_URL)>0? CUtil::AddSlashes(htmlspecialcharsbx((substr($TICKET_MESSAGE_EDIT_URL, 0, 4) == 'http'?'':'/').$TICKET_MESSAGE_EDIT_URL)) : "ticket_message_edit.php"; if (intval($mdel_id)>0 && check_bitrix_sessid()) { CTicket::DeleteMessage($mdel_id, "Y"); LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); } if (strlen($action)>0 && check_bitrix_sessid()) { switch ($action) { case "close": CTicket::SetTicket(array("CLOSE" => "Y"), $ID); LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); break; case "open": CTicket::SetTicket(array("CLOSE" => "N"), $ID); LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); break; case "unmark_spam": CTicket::UnMarkAsSpam($ID); LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); break; case "maybe_spam": CTicket::MarkAsSpam($ID, "N"); LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); break; case "mark_spam": CTicket::MarkAsSpam($ID); LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); break; } } // if button "Save" pressed if ((strlen($save)>0 || strlen($apply)>0) && $REQUEST_METHOD=="POST" && check_bitrix_sessid()) { $arFILES = array(); if (is_array($HTTP_POST_FILES) && count($HTTP_POST_FILES)>0) { while (list($key, $arFILE) = each($HTTP_POST_FILES)) { if (strlen($arFILE["name"])>0) { $arFILE["MODULE_ID"] = "support"; $arFILES[] = $arFILE; } } } if (CheckFields()) { if ($OPEN=="Y") $CLOSE="N"; if ($CLOSE=="Y") $OPEN="N"; if ($bAdmin!="Y" && $bSupportTeam!="Y") { $HIDDEN = "N"; $NOT_CHANGE_STATUS = "N"; } $arFields = array( "SITE_ID" => $SITE_ID, "CLOSE" => $CLOSE, "AUTO_CLOSE_DAYS" => $AUTO_CLOSE_DAYS, "TITLE" => $TITLE, "SLA_ID" => $SLA_ID, "CATEGORY_ID" => $CATEGORY_ID, "CRITICALITY_ID" => $CRITICALITY_ID, "STATUS_ID" => $STATUS_ID, "DIFFICULTY_ID" => $DIFFICULTY_ID, "MARK_ID" => $MARK_ID, "TASK_TIME" => $TASK_TIME, "HOLD_ON" => $HOLD_ON, "SOURCE_ID" => $SOURCE_ID, "OWNER_SID" => $OWNER_SID, "OWNER_USER_ID" => $OWNER_USER_ID, "MESSAGE_SOURCE_ID" => $MESSAGE_SOURCE_ID, "MESSAGE_AUTHOR_SID" => $MESSAGE_AUTHOR_SID, "MESSAGE_AUTHOR_USER_ID" => $MESSAGE_AUTHOR_USER_ID, "RESPONSIBLE_USER_ID" => $RESPONSIBLE_USER_ID, "MESSAGE" => $MESSAGE, "HIDDEN" => $HIDDEN, "NOT_CHANGE_STATUS" => $NOT_CHANGE_STATUS, "FILES" => $arFILES, "SUPPORT_COMMENTS" => $SUPPORT_COMMENTS, "COUPON" => $COUPON, ); if ($ID > 0) { $arFields['CHANGE_TITLE'] = $TITLE; } $NOTIFY = ($HIDDEN=="Y") ? "N" : "Y"; $bSetTicket = false; if (CTicket::IsAdmin()) $bSetTicket = true; else { $rsTicket = CTicket::GetByID($ID, SITE_ID, $check_rights = "Y", $get_user_name = "N", $get_extra_names = "N"); if ($arTicket = $rsTicket->GetNext()) $bSetTicket = true; } if ($bDemo!="Y" && $bAdmin!="Y" && ($bSupportTeam=="Y" && intval($ID) > 0 && !$bSetTicket)) { // send to ticket list if ($OWNER_USER_ID!=$USER->GetID()) LocalRedirect($TICKET_LIST_URL."?lang=".LANGUAGE_ID); } $USER_FIELD_MANAGER->EditFormAddFields($PROPERTY_ID, $arFields); $ID = CTicket::SetTicket($arFields, $ID, "Y", $NOTIFY); if (intval($ID)>0) { CTicket::UpdateOnline($ID); if (isset($_SESSION['TICKET_ID']) && isset($_SESSION['MESSAGE_ID'])) { $intLastTicketID = $_SESSION['TICKET_ID']; $arParam = Array( 'SPLIT_TICKET_ID' => $ID, 'SPLIT_TICKET_TITLE' => $TITLE, 'SPLIT_MESSAGE_USER_ID' => $USER->GetID(), 'SPLIT_ATTACH_FILE' => isset($_POST['ATTACH_FILE']) ? $_POST['ATTACH_FILE'] : Array(), 'SOURCE_TICKET_ID' => $intLastTicketID, 'SOURCE_TICKET_TITLE' => $_SESSION['TICKET_TITLE'], 'SOURCE_MESSAGE_ID' => $MESSAGE_SOURCE_ID, 'SOURCE_MESSAGE_NUM' => $_SESSION['MESSAGE_NUM'], 'SOURCE_MESSAGE_DATE' => $_SESSION['MESSAGE_DATE'] ); CTicket::SplitTicket($arParam); unset($_SESSION['TICKET_ID']); unset($_SESSION['TICKET_TITLE']); unset($_SESSION['MESSAGE_ID']); unset($_SESSION['MESSAGE_NUM']); unset($_SESSION['MESSAGE_DATE']); if (strlen($save)>0) // save -> new ticket LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); elseif (strlen($apply)>0) // apply -> original ticket LocalRedirect($TICKET_EDIT_URL."?ID=".$intLastTicketID."&lang=".LANGUAGE_ID); } else { if (strlen($save)>0) LocalRedirect($TICKET_LIST_URL."?lang=".LANGUAGE_ID); elseif (strlen($apply)>0) { // change responsible if ($bDemo!="Y" && $bAdmin!="Y" && ($bSupportTeam=="Y" && $RESPONSIBLE_USER_ID!=$arTicket['RESPONSIBLE_USER_ID'])) { // send to ticket list LocalRedirect($TICKET_LIST_URL."?lang=".LANGUAGE_ID); } else { // else refresh page LocalRedirect($TICKET_EDIT_URL."?ID=".$ID."&lang=".LANGUAGE_ID); } } } } else { $e = new CAdminException(array()); $GLOBALS["APPLICATION"]->ThrowException($e); $ID = intval($_REQUEST['ID']); } } } $arrSiteRef = array(); $arrSiteID = array(); $rs = CSite::GetList(($v1="sort"), ($v2="asc")); while ($ar = $rs->Fetch()) { $arrSiteRef[] = "[".$ar["ID"]."] ".$ar["NAME"]; $arrSiteID[] = $ar["ID"]; } $get_user_name = "N"; $get_extra_names = "N"; $ALL_TICKET_FILES = Array(); $arStrUsers = array(); $site_id = (defined("ADMIN_SECTION") && ADMIN_SECTION==true) ? "" : SITE_ID; $ticket = CTicket::GetByID($ID, $site_id, "Y", $get_user_name, $get_extra_names); if (!($ticket && $ticket->ExtractFields())) { $ID=0; $str_lang = $TICKET_SITE = (defined("ADMIN_SECTION") && ADMIN_SECTION==true) ? reset($arrSiteID) : SITE_ID; $str_RESPONSIBLE_USER_ID = intval(COption::GetOptionString('support', 'DEFAULT_RESPONSIBLE_ID', '0')); } else { $str_lang = $TICKET_SITE = $str_SITE_ID; if (strlen($str_DATE_CLOSE)>0) $str_CLOSE = "Y"; CTicket::UpdateOnline($ID); $rsFiles = CTicket::GetFileList($v1="s_id", $v2="asc", array("TICKET_ID" => $ID)); { while ($arFile = $rsFiles->Fetch()) { $name = strlen($arFile["ORIGINAL_NAME"])>0 ? $arFile["ORIGINAL_NAME"] : $arFile["FILE_NAME"]; if (strlen($arFile["EXTENSION_SUFFIX"])>0) { $suffix_length = strlen($arFile["EXTENSION_SUFFIX"]); $name = substr($name, 0, strlen($name)-$suffix_length); } $ALL_TICKET_FILES[$arFile["MESSAGE_ID"]][] = array("HASH" => $arFile["HASH"], "NAME" => $name, "FILE_SIZE" => $arFile["FILE_SIZE"]); } } if ($get_user_name=="N") { //Support_GetUserInfo($str_RESPONSIBLE_USER_ID, $str_RESPONSIBLE_LOGIN, $str_RESPONSIBLE_NAME); //Support_GetUserInfo($str_OWNER_USER_ID, $str_OWNER_LOGIN, $str_OWNER_NAME); //Support_GetUserInfo($str_CREATED_USER_ID, $str_CREATED_LOGIN, $str_CREATED_NAME); //Support_GetUserInfo($str_MODIFIED_USER_ID, $str_MODIFIED_BY_LOGIN, $str_MODIFIED_BY_NAME); } $arUserIDs = array($str_RESPONSIBLE_USER_ID, $str_OWNER_USER_ID, $str_CREATED_USER_ID, $str_MODIFIED_USER_ID); $arGuestIDs = array($str_OWNER_GUEST_ID, $str_CREATED_GUEST_ID, $str_MODIFIED_GUEST_ID); $arStrUsers =CTicket::GetUsersPropertiesArray($arUserIDs, $arGuestIDs); if ($get_extra_names=="N") { /*Support_GetDictionaryInfo($str_CATEGORY_ID, $str_CATEGORY_NAME, $str_CATEGORY_DESC, $str_CATEGORY_SID); Support_GetDictionaryInfo($str_CRITICALITY_ID, $str_CRITICALITY_NAME, $str_CRITICALITY_DESC, $str_CRITICALITY_SID); Support_GetDictionaryInfo($str_STATUS_ID, $str_STATUS_NAME, $str_STATUS_DESC, $str_STATUS_SID); Support_GetDictionaryInfo($str_MARK_ID, $str_MARK_NAME, $str_MARK_DESC, $str_MARK_SID); Support_GetDictionaryInfo($str_SOURCE_ID, $str_SOURCE_NAME, $str_SOURCE_DESC, $str_SOURCE_SID);*/ $arDictionary = Array( "CATEGORY" => $GLOBALS["str_CATEGORY_ID"], "CRITICALITY" => $GLOBALS["str_CRITICALITY_ID"], "STATUS" => $GLOBALS["str_STATUS_ID"], "MARK" => $GLOBALS["str_MARK_ID"], "SOURCE" => $GLOBALS["str_SOURCE_ID"] ); _Support_GetDictionaryInfoEx($arDictionary); Support_GetSLAInfo($str_SLA_ID, $str_SLA_NAME, $str_SLA_DESCRIPTION); } } $str_HIDDEN = COption::GetOptionString("support","DEFAULT_VALUE_HIDDEN"); $str_NOTIFY = COption::GetOptionString("support","DEFAULT_VALUE_NOTIFY"); $srt_NOT_CHANGE_STATUS = ""; if($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("SUP_ERROR"), $e); $DB->InitTableVarsForEdit("b_ticket", "", "str_"); } if ($ID>0) $sDocTitle = GetMessage("SUP_EDIT_RECORD", array("#ID#" => $ID, "#TITLE#" => htmlspecialcharsback($str_TITLE))); else $sDocTitle = GetMessage("SUP_NEW_RECORD"); if (($bSupportTeam=="Y" || $bAdmin=="Y" || $bDemo=="Y") && strlen($str_IS_SPAM)>0) { if ($str_IS_SPAM=="Y") $sDocTitle .= " [".GetMessage("SUP_SPAM")."!]"; else $sDocTitle .= " [".GetMessage("SUP_SPAM")."?]"; } $APPLICATION->SetTitle($sDocTitle); if ($ADD_PUBLIC_CHAIN=="Y" || !isset($ADD_PUBLIC_CHAIN)) { $APPLICATION->AddChainItem(GetMessage("SUP_RECORDS_LIST"), $TICKET_LIST_URL); } $VIEW_TICKET_DEFAULT_MODE = COption::GetOptionString("support", "VIEW_TICKET_DEFAULT_MODE"); $DEFAULT_AUTO_CLOSE_DAYS = COption::GetOptionString("support", "DEFAULT_AUTO_CLOSE_DAYS"); $ONLINE_AUTO_REFRESH = COption::GetOptionString("support", "ONLINE_AUTO_REFRESH"); $str_AUTO_CLOSE_DAYS = strlen($str_AUTO_CLOSE_DAYS)>0 ? $str_AUTO_CLOSE_DAYS : $DEFAULT_AUTO_CLOSE_DAYS; $bResponsible = $bSupportTeam; $can_select_message_owner = "N"; $can_select_owner = "N"; $can_select_site = "N"; $can_select_sla = "N"; $can_select_category = "N"; $can_select_status = "N"; $can_select_difficulty = "N"; $can_select_responsible = "N"; $can_select_criticality = "N"; $can_select_mark = "N"; $can_select_mode = "N"; $default_mode = "edit"; if (strlen($VIEW_TICKET_DEFAULT_MODE)>0) $default_mode = $VIEW_TICKET_DEFAULT_MODE; if ($ID>0) { if ($bSupportTeam=="Y" || $bAdmin=="Y" || $bDemo=="Y") { $can_select_message_owner = "Y"; $can_select_owner = "Y"; $can_select_sla = "Y"; $can_select_site = "Y"; $can_select_category = "Y"; $can_select_status = "Y"; $can_select_difficulty = "Y"; $can_select_responsible = "Y"; $can_select_criticality = "Y"; if (strlen($str_DATE_CLOSE)<=0 && strlen($VIEW_TICKET_DEFAULT_MODE)>0) $can_select_mode = "Y"; } if ($bOwner=="Y") { $can_select_criticality = "Y"; $can_select_mark = "Y"; } } if ($ID<=0) { if (defined("ADMIN_SECTION") && ADMIN_SECTION==true) $can_select_site = "Y"; if ($bSupportTeam=="Y" || $bAdmin=="Y" || $bDemo=="Y") { $can_select_owner = "Y"; $can_select_sla = "Y"; $can_select_category = "Y"; $can_select_status = "Y"; $can_select_difficulty = "Y"; $can_select_responsible = "Y"; $can_select_criticality = "Y"; } if ($bOwner=="Y") { $can_select_category = "Y"; $can_select_criticality = "Y"; } } if ($can_select_sla=="Y") { $TICKET_SLA = (intval($str_SLA_ID)>0) ? $str_SLA_ID : 1; $arrSlaRef = array(); $arrSlaID = array(); $rs = CTicketSLA::GetDropDown(); while ($ar = $rs->Fetch()) { $arrSlaRef[] = $ar["REFERENCE"]; $arrSlaID[] = $ar["ID"]; } } else $TICKET_SLA = (intval($str_SLA_ID)>0) ? $str_SLA_ID : CTicketSLA::GetForUser($TICKET_SITE); $arrSUPPORT_TEAM = array(); $TICKET_DICTIONARY = CTicketDictionary::GetDropDownArray($TICKET_SITE, $TICKET_SLA); $TICKET_DICTIONARY_ALL = CTicketDictionary::GetDropDownArray(); require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");?> <? $aMenu = array( array( "TEXT" => GetMessage("MAIN_ADMIN_MENU_LIST"), "TITLE" => GetMessage("SUP_RECORDS_LIST"), "LINK" => "/bitrix/admin/ticket_list.php?lang=".LANGUAGE_ID, "ICON" => "btn_list", ), ); if(intval($ID)>0) { $aMenu[] = array("SEPARATOR"=>"Y"); $aMenu[] = array( "TEXT" => GetMessage("MAIN_ADMIN_MENU_CREATE"), "TITLE" => GetMessage("SUP_CREATE_NEW_TICKET"), "ICON" => "btn_new", "LINK" => "/bitrix/admin/ticket_edit.php?lang=".LANGUAGE_ID, ); if (strlen($str_DATE_CLOSE)<=0) { $aMenu[] = array( //"ICON" => "btn_close", "TEXT" => GetMessage("MAIN_ADMIN_MENU_CLOSE"), "TITLE" => GetMessage("SUP_CLOSE_TICKET"), "LINK" => "/bitrix/admin/ticket_edit.php?ID=".$ID."&action=close&lang=".LANGUAGE_ID."&".bitrix_sessid_get() ); } else { $aMenu[] = array( //"ICON" => "btn_open", "TEXT" => GetMessage("MAIN_ADMIN_MENU_OPEN"), "TITLE" => GetMessage("SUP_OPEN_TICKET"), "LINK" => "/bitrix/admin/ticket_edit.php?ID=".$ID."&action=open&lang=".LANGUAGE_ID."&".bitrix_sessid_get() ); } if ($bSupportTeam=="Y" || $bAdmin=="Y") { //$aMenu[] = array("NEWBAR"=>"Y"); $arSpamMenu = Array(); if (strlen($str_IS_SPAM)>0) { $arSpamMenu[] = array( "TEXT" => GetMessage("SUP_UNMARK_TICKET"), "ACTION" => "window.location='/bitrix/admin/ticket_edit.php?ID=".$ID."&action=unmark_spam&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';" ); } if ($str_IS_SPAM!="N") { $arSpamMenu[] = array( "TEXT" => GetMessage("SUP_MARK_AS_POSSIBLE_SPAM"), "ACTION" => "window.location='/bitrix/admin/ticket_edit.php?ID=".$ID."&action=maybe_spam&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';" ); } if ($str_IS_SPAM!="Y" && $bAdmin=="Y") { $arSpamMenu[] = array( "TEXT" => GetMessage("SUP_MARK_AS_SPAM"), "ACTION" => "window.location='/bitrix/admin/ticket_edit.php?ID=".$ID."&action=mark_spam&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';" ); } if ($bAdmin=="Y" || $bDemo=="Y") { $arSpamMenu[] = array( "TEXT" => GetMessage("SUP_MARK_AS_SPAM_DELETE"), "ACTION" => "javascript:if(confirm('".GetMessage("SUP_MARK_AS_SPAM_DELETE_CONFIRM")."')) window.location='/bitrix/admin/ticket_list.php?ID=".$ID."&action=mark_spam_delete&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';", ); $aMenu[] = array( "TEXT" => GetMessage("MAIN_ADMIN_MENU_DELETE"), "TITLE" => GetMessage("SUP_DELETE_TICKET"), "ICON" => "btn_delete", "LINK" => "javascript:if(confirm('".GetMessage("SUP_DELETE_TICKET_CONFIRM")."')) window.location='/bitrix/admin/ticket_list.php?ID=".$ID."&action=delete&redirectafter=Y&lang=".LANGUAGE_ID."&".bitrix_sessid_get()."';", ); } if (!empty($arSpamMenu)) { $aMenu[] = array( "TEXT" => GetMessage("SUP_MENU_SPAM"), "TITLE" => GetMessage("SUP_MENU_SPAM_TITLE"), "MENU" => $arSpamMenu, ); } } } //echo ShowSubMenu($aMenu); $context = new CAdminContextMenu($aMenu); $context->Show(); if ($message) { echo $message->Show(); $messageA = $message->GetMessages(); } /*************************************************************************** HTML form ****************************************************************************/ $hkInst=CHotKeys::getInstance(); $arHK = array("B", "I", "U", "QUOTE", "CODE", "TRANSLIT"); foreach($arHK as $n => $s) { $arExecs = $hkInst->GetCodeByClassName("TICKET_EDIT_$s"); echo $hkInst->PrintJSExecs($arExecs); } ?> <script language="JavaScript"> <!-- function htmlspecialcharsback(str) { str = str.replace(/"/g, "\""); str = str.replace(/</g, "<"); str = str.replace(/>/g, ">"); str = str.replace(/&/g, "&"); return str; } function in_array(needle, haystack) { for(k=0; k<haystack.length; k++) if (needle==haystack[k][0]) return true; return false; } //--> </script> <? /*************************************************************************** SPLIT MESSAGE ****************************************************************************/ if (isset($_GET['TICKET_ID']) && isset($_GET['MESSAGE_ID'])) { $_SESSION["TICKET_ID"] = IntVal($_GET['TICKET_ID']); $_SESSION["MESSAGE_ID"] = IntVal($_GET['MESSAGE_ID']); $ticket = CTicket::GetByID($_SESSION['TICKET_ID'], $site_id, "Y", $get_user_name, $get_extra_names); if ($ticket && $ticket->ExtractFields()) { $obUserTiket = $USER->GetByID($str_OWNER_USER_ID); $arUserTiket = $obUserTiket->Fetch(); $str_OWNER_LOGIN = htmlspecialcharsbx($arUserTiket['LOGIN']); $str_OWNER_NAME = htmlspecialcharsbx($arUserTiket['NAME']).' '.htmlspecialcharsbx($arUserTiket['LAST_NAME']); $str_lang = $TICKET_SITE = $str_SITE_ID; $TICKET_SLA = $str_SLA_ID = CTicketSLA::GetForUser($str_SITE_ID, $str_OWNER_USER_ID); $str_DIFFICULTY_ID = ''; $str_CRITICALITY_ID = ''; $obTicketMessage = CTicket::GetMessageByID($_SESSION['MESSAGE_ID']); $arTicketMessage = $obTicketMessage->Fetch(); $MESSAGE = $arTicketMessage['MESSAGE']; $_SESSION['MESSAGE_NUM'] = IntVal($arTicketMessage['C_NUMBER']); $_SESSION['MESSAGE_DATE'] = $arTicketMessage['DATE_CREATE']; $_SESSION["TICKET_TITLE"] = $str_TITLE; $str_TITLE = ''; $str_DATE_CLOSE = null; $arFiles = array(); if ($rsFiles = CTicket::GetFileList($v1="s_id", $v2="asc", array("MESSAGE_ID" => $_SESSION['MESSAGE_ID']))) { while ($arFile = $rsFiles->Fetch()) { $name = $arFile["ORIGINAL_NAME"]; if (strlen($arFile["EXTENSION_SUFFIX"])>0) { $suffix_length = strlen($arFile["EXTENSION_SUFFIX"]); $name = substr($name, 0, strlen($name)-$suffix_length); } $arFile["NAME"] = $name; $arFiles[] = $arFile; } } } } ?> <form name="form1" method="POST" action="<?=$APPLICATION->GetCurPage()?>?ID=<?=$ID?>&lang=<?=LANGUAGE_ID?>" enctype="multipart/form-data"> <?=bitrix_sessid_post()?> <!-- <input type="hidden" name="set_default" value="Y"> --> <input type="hidden" name="ID" value=<?=$ID?>> <input type="hidden" name="lang" value="<?=LANGUAGE_ID?>"> <? $aTabs = array(); $aTabs[] = array("DIV" => "edit1", "TAB" => GetMessage("SUP_RECORD"), "ICON"=>"ticket_edit", "TITLE"=>($ID>0 && strlen(trim($str_TITLE))>0 ? $str_TITLE : $APPLICATION->GetTitle()) ); //$aTabs[] = $USER_FIELD_MANAGER->EditFormTab($PROPERTY_ID); $tabControl = new CAdminTabControl("tabControl", $aTabs); $tabControl->Begin(); $tabControl->BeginNextTab(); ?> <?if ($can_select_site=="Y"):?> <tr valign="middle"> <td align="right" width="20%" nowrap><?=GetMessage("SUP_SITE")?></td> <td width="80%" nowrap><?echo SelectBoxFromArray("SITE_ID", array("reference" => $arrSiteRef, "reference_id" => $arrSiteID), htmlspecialcharsbx($TICKET_SITE), "", "onChange=\"OnSiteChange(this[this.selectedIndex].value)\" id=\"SITE_ID\"");?></td> </tr> <script language="JavaScript"> <!-- var arSLA = Array(); var arStatus = Array(); var arCriticality = Array(); var arCategory = Array(); var arMark = Array(); var arSource = Array(); var arDifficulty = Array(); <? if (is_array($arrSiteID)) { $arrSiteID = array_unique($arrSiteID); if ($can_select_sla=="Y") { $arSLA = array(); $strSite = implode("|", $arrSiteID); $arSort = array("FIRST_SITE_ID" => "ASC", "PRIORITY" => "ASC"); $is_filtered = null; $rs = CTicketSLA::GetList($arSort, array("SITE" => $strSite), $is_filtered); while($ar=$rs->Fetch()) { $arSLA[$ar["ID"]] = $ar; } $arSiteSLA = CTicketSLA::GetSiteArrayForAllSLA(CTicketSLA::SITE_SLA); } $allDictionary = CTicketDictionary::GetDropDownArray($sid); foreach($arrSiteID as $sid) { ?> arSLA["<? echo $sid; ?>"]=Array(<? if(isset($arSiteSLA[$sid])) { $c0 = ""; foreach($arSiteSLA[$sid] as $key=>$cSlaID) { echo $c0 . "Array('". addslashes(htmlspecialcharsbx($arSLA[$cSlaID]["REFERENCE_ID"])) . "', '" . addslashes(htmlspecialcharsbx($arSLA[$cSlaID]["REFERENCE"])) . "')"; $c0 = ", "; } } ?>); <? /*?> arSLA["<?=$sid?>"]=Array(<? $rs = CTicketSLA::GetDropDown($sid); $i=0; while($ar=$rs->Fetch()) { $i++; if ($i>1) echo ", "; echo "Array('".addslashes(htmlspecialcharsbx($ar["REFERENCE_ID"]))."', '".addslashes(htmlspecialcharsbx($ar["REFERENCE"]))."')"; } ?>); <?*/ if ($can_select_status=="Y") { ?> arStatus["<?=$sid?>"]=Array(<? echo "Array('NOT_REF', ' ')"; if (isset($allDictionary['S'])) { foreach ($allDictionary['S'] as $ar) { echo ", Array('".addslashes(htmlspecialcharsbx($ar["REFERENCE_ID"]))."', '".addslashes(htmlspecialcharsbx($ar["REFERENCE"]))."')"; } } ?>); <? } if ($can_select_difficulty=="Y") { ?> arDifficulty["<?=$sid?>"]=Array(<? echo "Array('NOT_REF', ' ')"; if (isset($allDictionary['D'])) { foreach ($allDictionary['D'] as $ar) { echo ", Array('".addslashes(htmlspecialcharsbx($ar["REFERENCE_ID"]))."', '".addslashes(htmlspecialcharsbx($ar["REFERENCE"]))."')"; } } ?>); <? } if ($can_select_category=="Y") { ?> arCategory["<?=$sid?>"]=Array(<? echo "Array('NOT_REF', ' ')"; if (isset($allDictionary['C'])) { foreach ($allDictionary['C'] as $ar) { echo ", Array('".addslashes(htmlspecialcharsbx($ar["REFERENCE_ID"]))."', '".addslashes(htmlspecialcharsbx($ar["REFERENCE"]))."')"; } } ?>); <? } if ($can_select_mark=="Y") { ?> arMark["<?=$sid?>"]=Array(<? echo "Array('NOT_REF', ' ')"; if (isset($allDictionary['M'])) { foreach ($allDictionary['M'] as $ar) { echo ", Array('".addslashes(htmlspecialcharsbx($ar["REFERENCE_ID"]))."', '".addslashes(htmlspecialcharsbx($ar["REFERENCE"]))."')"; } } ?>); <? } if ($can_select_criticality=="Y") { ?> arCriticality["<?=$sid?>"]=Array(<? echo "Array('NOT_REF', ' ')"; if (isset($allDictionary['K'])) { foreach ($allDictionary['K'] as $ar) { echo ", Array('".addslashes(htmlspecialcharsbx($ar["REFERENCE_ID"]))."', '".addslashes(htmlspecialcharsbx($ar["REFERENCE"]))."')"; } } ?>); <? } if ($can_select_message_owner=="Y" || $can_select_owner=="Y") { ?> arSource["<?=$sid?>"]=Array(<? echo "Array('NOT_REF', '< web >')"; if (isset($allDictionary['SR'])) { foreach ($allDictionary['SR'] as $ar) { echo ", Array('".addslashes(htmlspecialcharsbx($ar["REFERENCE_ID"]))."', '".addslashes(htmlspecialcharsbx($ar["REFERENCE"]))."')"; } } ?>); <? } } } ?> function OnSiteChange(site_id) { var select_index; var arrList = Array(); var arrValues = Array(); var arrInit = Array(); <?if ($can_select_sla=="Y") : ?> arrList[arrList.length] = document.form1.SLA_ID; arrValues[arrValues.length] = arSLA; arrInit[arrInit.length] = parseInt('<?=$str_SLA_ID?>'); <?endif;?> <?if ($can_select_status=="Y") : ?> arrList[arrList.length] = document.form1.STATUS_ID; arrValues[arrValues.length] = arStatus; arrInit[arrInit.length] = parseInt('<?=$str_STATUS_ID?>'); <?endif;?> <?if ($can_select_difficulty=="Y") : ?> arrList[arrList.length] = document.form1.DIFFICULTY_ID; arrValues[arrValues.length] = arDifficulty; arrInit[arrInit.length] = parseInt('<?=$str_DIFFICULTY_ID?>'); <?endif;?> <?if ($can_select_category=="Y") :?> arrList[arrList.length] = document.form1.CATEGORY_ID; arrValues[arrValues.length] = arCategory; arrInit[arrInit.length] = parseInt('<?=$str_CATEGORY_ID?>'); <?endif;?> <?if ($can_select_mark=="Y") :?> arrList[arrList.length] = document.form1.MARK_ID; arrValues[arrValues.length] = arMark; arrInit[arrInit.length] = parseInt('<?=$str_MARK_ID?>'); <?endif;?> <?if ($can_select_criticality=="Y") :?> arrList[arrList.length] = document.form1.CRITICALITY_ID; arrValues[arrValues.length] = arCriticality; arrInit[arrInit.length] = parseInt('<?=$str_CRITICALITY_ID?>'); <?endif;?> <?if ($can_select_owner=="Y") :?> arrList[arrList.length] = document.form1.SOURCE_ID; arrValues[arrValues.length] = arSource; arrInit[arrInit.length] = parseInt('<?=$str_SOURCE_ID?>'); <?endif;?> <?if ($can_select_message_owner=="Y") :?> arrList[arrList.length] = document.form1.MESSAGE_SOURCE_ID; arrValues[arrValues.length] = arSource; arrInit[arrInit.length] = parseInt('<?=$str_MESSAGE_SOURCE_ID?>'); <?endif;?> for(i=0; i<arrList.length; i++) { arList = arrList[i]; arValues = arrValues[i][site_id]; select_index = 0; while(arList.length>0) arList.options[0]=null; for(j=0; j<arValues.length; j++) { newoption = new Option(htmlspecialcharsback(arValues[j][1]), arValues[j][0], false, false); arList.options[j] = newoption; if (newoption.value==arrInit[i]) select_index = j; } if (parseInt(select_index)>0) arList.selectedIndex = parseInt(select_index); } <?if ($can_select_sla=="Y"):?> var obSLASelect, sla_id; obSLASelect = document.form1.SLA_ID; if(obSLASelect.selectedIndex >= 0) { sla_id = obSLASelect[obSLASelect.selectedIndex].value; OnSLAChange(sla_id); } <?endif;?> } //--> </script> <?endif;?> <? $arAuthorFilter = $tmp = array(); if (intval($str_OWNER_USER_ID)>0) { //$tmp[] = htmlspecialcharsback($str_OWNER_LOGIN); $tmp[] = $arStrUsers["arUsers"][intval($str_OWNER_USER_ID)]["LOGIN"]; } if (strlen($str_OWNER_SID)>0) { $tmp[] = htmlspecialcharsback($str_OWNER_SID); } else { $arAuthorFilter[] = "find_owner_exact_match=Y"; } $arAuthorFilter[] = "find_owner=".urlencode(implode(" | ",$tmp)); if ($can_select_owner=="Y"): ?> <SCRIPT LANGUAGE="JavaScript"> <!-- function SelectSource() { var objSourceSelect, strSourceValue; objSourceSelect = document.form1.SOURCE_ID; strSourceValue = objSourceSelect[objSourceSelect.selectedIndex].value; document.getElementById("OWNER_SID").style.display = "none"; document.getElementById("OWNER_SID").disabled = true; if (strSourceValue!="") { document.getElementById("OWNER_SID").disabled = false; document.getElementById("OWNER_SID").style.display = "inline"; } } //--> </SCRIPT> <tr> <td align="right" width="20%" nowrap><?=GetMessage("SUP_AUTHOR")?></td> <td width="80%" nowrap><? //echo SelectBox("SOURCE_ID", CTicketDictionary::GetDropDown("SR", $TICKET_SITE), "< web >", $str_SOURCE_ID, "OnChange=SelectSource() class='typeselect'"); echo SelectBoxFromArray("SOURCE_ID", __GetDropDown("SR", $TICKET_DICTIONARY), $str_SOURCE_ID, "< web >", "OnChange=SelectSource() class='inputselect'"); ?> <input type="text" size="20" name="OWNER_SID" id="OWNER_SID" value="<?=$str_OWNER_SID?>"> <? /*if (intval($str_OWNER_USER_ID)>0) { $owner_name = "[<a title=\"".GetMessage("SUP_USER_PROFILE")."\" href=\"/bitrix/admin/user_edit.php?lang=".LANGUAGE_ID."&ID=".$str_OWNER_USER_ID."\">".$str_OWNER_USER_ID."</a>] (".$str_OWNER_LOGIN.") ".$str_OWNER_NAME; } */ if(intval($str_OWNER_USER_ID)>0) { $owner_name = $arStrUsers["arUsers"][intval($str_OWNER_USER_ID)]["HTML_NAME"]; } echo FindUserID("OWNER_USER_ID", $str_OWNER_USER_ID, $owner_name); if ($ID>0): ?><br>[ <a href="/bitrix/admin/ticket_list.php?set_filter=Y&lang=<?=LANGUAGE_ID?>&<?=implode("&",$arAuthorFilter)?>"><?=GetMessage("SUP_AUTHOR_TICKETS")?></a> ]<? endif; ?> </td> </tr> <SCRIPT LANGUAGE="JavaScript"> <!-- SelectSource(); //--> </SCRIPT> <?elseif ($ID>0) :?> <tr> <td valign="top" align="right" width="20%" nowrap><?=GetMessage("SUP_AUTHOR")?></td> <td width="80%" nowrap><? echo (strlen($str_SOURCE_NAME)>0) ? "[".$str_SOURCE_NAME."] " : "[web] "; if (strlen($str_OWNER_SID)>0) { echo TxtToHtml($str_OWNER_SID)." "; if (intval($str_OWNER_USER_ID)>0) echo "/ "; } $uid = $str_OWNER_USER_ID; if ($uid>0 && !in_array($uid, array_keys($arrSUPPORT_TEAM))) { $arrSUPPORT_TEAM[$uid] = (CTicket::IsSupportTeam($uid) || CTicket::IsAdmin($uid)) ? "(<span class=\"supportrequired\">".GetMessage("SUP_TECHSUPPORT")."</span>)" : ""; } if ($bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y") { if (intval($str_OWNER_USER_ID)>0) { /*?>[<a title="<?echo GetMessage("SUP_USER_PROFILE")?>" href="/bitrix/admin/user_edit.php?lang=<?echo LANG?>&ID=<?=$str_OWNER_USER_ID?>"><?echo $str_OWNER_USER_ID?></a>] (<?=$str_OWNER_LOGIN?>) <?=$str_OWNER_NAME?> */ echo $arStrUsers["arUsers"][intval($str_OWNER_USER_ID)]["HTML_NAME"] . " " . $arrSUPPORT_TEAM[$str_OWNER_USER_ID]; } if (intval($str_OWNER_GUEST_ID)>0 && CModule::IncludeModule("statistic")) { /*echo " [<a title='".GetMessage("SUP_GUEST_ID")."' href='/bitrix/admin/guest_list.php?lang=".LANG."&find_id=".$str_OWNER_GUEST_ID."&find_id_exact_match=Y&set_filter=Y'>".$str_OWNER_GUEST_ID."</a>]";*/ echo $arStrUsers["arGuests"][intval($str_OWNER_GUEST_ID)]["HTML_NAME"]; } } else { if (intval($str_OWNER_USER_ID)>0) { /*echo "[".$str_OWNER_USER_ID."] (".$str_OWNER_LOGIN.") ".$str_OWNER_NAME." ".$arrSUPPORT_TEAM[$str_OWNER_USER_ID]."";*/ echo $arStrUsers["arUsers"][intval($str_OWNER_USER_ID)]["HTML_NAME_S"]; } } ?></td> </tr> <?endif;?> <? if ($ID>0): ?> <tr valign="middle"> <td align="right" width="20%"><?=GetMessage("SUP_CREATE")?></td> <td align="left" width="80%"><?=$str_DATE_CREATE?> <? if (strlen($str_CREATED_MODULE_NAME)<=0 || $str_CREATED_MODULE_NAME=="support") { $uid = intval($str_CREATED_USER_ID); if ($uid>0 && !in_array($uid, array_keys($arrSUPPORT_TEAM))) { $arrSUPPORT_TEAM[$uid] = (CTicket::IsSupportTeam($uid) || CTicket::IsAdmin($uid)) ? "(<span class=\"supportrequired\">".GetMessage("SUP_TECHSUPPORT")."</span>)" : ""; } if ($bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y") { /*?>[<a title="<?=GetMessage("SUP_USER_PROFILE")?>" href="/bitrix/admin/user_edit.php?lang=<?=LANGUAGE_ID?>&ID=<?=$str_CREATED_USER_ID?>"><?echo $str_CREATED_USER_ID?></a>] (<?=$str_CREATED_LOGIN?>) <?=$str_CREATED_NAME?> <?=$arrSUPPORT_TEAM[$str_CREATED_USER_ID]?><?*/ if ($uid <= 0 && intval($str_CREATED_GUEST_ID) > 0 && CModule::IncludeModule("statistic")) { /*echo " [<a title='".GetMessage("SUP_GUEST_ID")."' href='/bitrix/admin/guest_list.php?lang=".LANG."&find_id=". $str_CREATED_GUEST_ID."&find_id_exact_match=Y&set_filter=Y' class='tablebodylink'>".$str_CREATED_GUEST_ID."</a>]";*/ echo $arStrUsers["arGuests"][intval($str_CREATED_GUEST_ID)]["HTML_NAME"]; } elseif($uid > 0) { echo $arStrUsers["arUsers"][$uid]["HTML_NAME"] . " " . $arrSUPPORT_TEAM[$uid]; } } else { echo $arStrUsers["arUsers"][$uid]["HTML_NAME_S"]; /*echo "[".$str_CREATED_USER_ID."] (".$str_CREATED_LOGIN.") ".$str_CREATED_NAME." ".$arrSUPPORT_TEAM[$str_CREATED_USER_ID]."";*/ } }else{ echo $str_CREATED_MODULE_NAME; } ?></td> </tr> <? if ($str_DATE_CREATE!=$str_TIMESTAMP_X) { ?> <tr valign="middle"> <td align="right" width="20%"><?=GetMessage("SUP_TIMESTAMP")?></td> <td align="left" width="80%"><?=$str_TIMESTAMP_X?> <? if (strlen($str_MODIFIED_MODULE_NAME)<=0 || $str_MODIFIED_MODULE_NAME=="support") { $uid = intval($str_MODIFIED_USER_ID); if ($uid>0 && !in_array($uid, array_keys($arrSUPPORT_TEAM))) { $arrSUPPORT_TEAM[$uid] = (CTicket::IsSupportTeam($uid) || CTicket::IsAdmin($uid)) ? "(<span class=\"supportrequired\">".GetMessage("SUP_TECHSUPPORT")."</span>)" : ""; } if ($bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y") { /*?>[<a title="<?=GetMessage("SUP_USER_PROFILE")?>" href="/bitrix/admin/user_edit.php?lang=<?=LANGUAGE_ID?>&ID=<?echo $str_MODIFIED_USER_ID?>"><?=$str_MODIFIED_USER_ID?></a>] (<?=$str_MODIFIED_BY_LOGIN?>) <?=$str_MODIFIED_BY_NAME?> <?=$arrSUPPORT_TEAM[$str_MODIFIED_USER_ID]?><?*/ if($uid <= 0 && intval($str_MODIFIED_GUEST_ID)>0 && CModule::IncludeModule("statistic")) { echo $arStrUsers["arGuests"][intval($str_MODIFIED_GUEST_ID)]["HTML_NAME"]; /*echo " [<a title='".GetMessage("SUP_GUEST_ID")."' href='/bitrix/admin/guest_list.php?lang=".LANG."&find_id=".$str_MODIFIED_GUEST_ID."&find_id_exact_match=Y&set_filter=Y' >".$str_MODIFIED_GUEST_ID."</a>]";*/ } elseif($uid > 0) { echo $arStrUsers["arUsers"][$uid]["HTML_NAME"] . " " . $arrSUPPORT_TEAM[$uid]; } } else { echo $arStrUsers["arUsers"][$uid]["HTML_NAME_S"]; /*echo "[".$str_MODIFIED_USER_ID."] (".$str_MODIFIED_BY_LOGIN.") ".$str_MODIFIED_BY_NAME." ".$arrSUPPORT_TEAM[$str_MODIFIED_USER_ID]."";*/ } }else{ echo $str_MODIFIED_MODULE_NAME; } ?></td> </tr> <? } if (strlen($str_DATE_CLOSE)>0) { ?> <tr valign="middle"> <td align="right"><?=GetMessage("SUP_CLOSE")?></td> <td><?=$str_DATE_CLOSE?></td> </tr> <? } elseif(strlen($str_AUTO_CLOSE_DAYS_LEFT)>0 && !empty($str_AUTO_CLOSE_DATE)) { ?> <tr valign="middle"> <td align="right"><?=GetMessage("SUP_DATE_AUTO_CLOSE")?></td> <td><?=$str_AUTO_CLOSE_DATE?> (<?=str_replace("#DAYS#", "<span class=\"supportrequired\">$str_AUTO_CLOSE_DAYS_LEFT</span>", GetMessage("SUP_LEFT"))?>)</td> </tr> <? } ?> <?if ($bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y"){?> <?if (intval($str_PROBLEM_TIME)>0){?> <tr valign="middle"> <td align="right"><?=GetMessage("SUP_PROBLEM_TIME")?>:</td> <td> <? $str = ""; $days = intval($str_PROBLEM_TIME/1440); if ($days>0) { $str .= $days." ".GetMessage("SUP_DAYS")." "; $str_PROBLEM_TIME = $str_PROBLEM_TIME - $days*1440; } $hours = intval($str_PROBLEM_TIME/60); if ($hours>0) { $str .= $hours." ".GetMessage("SUP_HOURS")." "; $str_PROBLEM_TIME = $str_PROBLEM_TIME - $hours*60; } $str .= ($str_PROBLEM_TIME%60)." ".GetMessage("SUP_MINUTES"); echo $str; ?> </td> </tr> <?}?> <tr valign="middle"> <td align="right"><?=GetMessage("SUP_LAST_MESSAGE_DATE")?>:</td> <td><?=$str_LAST_MESSAGE_DATE?></td> </tr> <?}?> <? endif;?> <?if ($ID>0 && IsModuleInstalled("sale")): $saleModulePermissions = $APPLICATION->GetGroupRight("sale"); if ($saleModulePermissions > "D"):?> <tr> <td valign="top" align="right" width="20%" nowrap><?=GetMessage("SUP_SALE_ORDER")?></td> <td width="80%" nowrap>[ <a href="/bitrix/admin/sale_order.php?lang=<?=LANGUAGE_ID?>&set_filter=Y&filter_user_id=<?=$str_CREATED_USER_ID?>" target="_blank"><?=GetMessage("SUP_SALE_ORDER_LIST")?></a> ]</td> </tr> <? endif; endif;?> <?if($can_select_sla=="N" && strlen($str_SLA_NAME)>0){?> <tr valign="middle"> <td align="right"><?=GetMessage("SUP_SLA")?>:</td> <td><font title="<?=$str_SLA_DESCRIPTION?>"><?=$str_SLA_NAME?></td> </tr> <?}?> <?if ($can_select_category=="N" && strlen($str_CATEGORY_NAME)>0){?> <tr valign="middle"> <td align="right"><?=GetMessage("SUP_CATEGORY")?></td> <td><font title="<?=$str_CATEGORY_DESC?>"><?=$str_CATEGORY_NAME?></td> </tr> <?}?> <?if($can_select_criticality=="N" && strlen($str_CRITICALITY_NAME)>0){?> <tr valign="middle"> <td align="right"><?=GetMessage("SUP_CRITICALITY")?></td> <td><?=$str_CRITICALITY_NAME?></td> </tr> <?}?> <?if ($can_select_difficulty=="N" && strlen($str_DIFFICULTY_NAME)>0){?> <tr valign="middle"> <td align="right" nowrap><?=GetMessage("SUP_DIFFICULTY_COLNAME")?></td> <td nowrap><font title="<?=$str_DIFFICULTY_DESC?>"><?=$str_DIFFICULTY_NAME?></td> </tr> <?}?> <?if ($can_select_status=="N" && strlen($str_STATUS_NAME)>0){?> <tr valign="middle"> <td align="right" nowrap><?=GetMessage("SUP_STATUS")?></td> <td nowrap><font title="<?=$str_STATUS_DESC?>"><?=$str_STATUS_NAME?></td> </tr> <?}?> <? if ($can_select_responsible=="N" && intval($str_RESPONSIBLE_USER_ID)>0) { $uid = $str_RESPONSIBLE_USER_ID; if ($uid>0 && !in_array($uid, array_keys($arrSUPPORT_TEAM))) { $arrSUPPORT_TEAM[$uid] = (CTicket::IsSupportTeam($uid) || CTicket::IsAdmin($uid)) ? "(<span class='supportrequired'>".GetMessage("SUP_TECHSUPPORT").")</span>" : ""; } ?> <tr valign="middle"> <td align="right" nowrap><?=GetMessage("SUP_RESPONSIBLE")?></td> <? /*<td nowrap><?echo "[".$str_RESPONSIBLE_USER_ID."] (".$str_RESPONSIBLE_LOGIN.") ".$str_RESPONSIBLE_NAME." ".$arrSUPPORT_TEAM[$str_RESPONSIBLE_USER_ID]?></td>*/ ?> <td nowrap><? echo $arStrUsers["arUsers"][intval($str_RESPONSIBLE_USER_ID)]["HTML_NAME"] . " " . $arrSUPPORT_TEAM[$str_RESPONSIBLE_USER_ID]; ?></td> </tr> <?}?> <?if($can_select_mark=="N" && strlen($str_MARK_NAME)>0){?> <tr valign="middle"> <td align="right" nowrap><?=GetMessage("SUP_MARK")?></td> <td nowrap><font title="<?=htmlspecialcharsbx($str_MARK_DESC)?>"><?=htmlspecialcharsbx($str_MARK_NAME)?></td> </tr> <?}?> <?if ($ID>0 && intval($str_OVERDUE_MESSAGES)>0 && ($bSupportTeam=="Y" || $bAdmin=="Y" || $bDemo=="Y")){?> <tr valign="middle"> <td align="right"><?=GetMessage("SUP_OVERDUE_MESSAGES")?></td> <td><?=$str_OVERDUE_MESSAGES?></td> </tr> <?}?> <?if ($ID<=0){?> <tr class="adm-detail-required-field"> <td align="right"><?=GetMessage("SUP_TITLE")?></td> <td><input type="text" name="TITLE" value="<?=$str_TITLE?>" size="80" maxlength="255"></td> </tr> <?}?> <?if ($ID > 0 && strlen($str_COUPON) > 0){?> <tr valign="middle"> <td align="right"><?=GetMessage("SUP_COUPON")?></td> <td><?=$str_COUPON?></td> </tr> <?}?> <? if ($ID>0) : if ($bDemo=="Y") $CHECK_RIGHTS = "N"; else $CHECK_RIGHTS = "Y"; $mess = CTicket::GetMessageList($a, $b, array("TICKET_ID" => $ID, "TICKET_ID_EXACT_MATCH" => "Y"), $c, $CHECK_RIGHTS, $get_user_name); $mess->NavStart(COption::GetOptionString("support", "MESSAGES_PER_PAGE", 50)); //$mess->NavStart(5); $messages = $mess->SelectedRowsCount(); if (intval($messages)>0) : ?> <?if ($ID>0){?> <tr class="heading"><td colspan="2"><?=GetMessage("SUP_DISCUSSION")?></td></tr> <?}?> <tr valign="top"> <td colspan="2"> <table border="0" cellspacing="0" cellpadding="0" width="100%"> <tr> <td></td> <td><?echo $mess->NavPrint(GetMessage("SUP_PAGES"))?></td> </tr> <? //while ($mess->NavNext(true, "f_", false)) $arRespUserIDs = array(); $arGuestIDs = array(); $arM0 = array(); while($arCM = $mess->Fetch()) { $arRespUserIDs[] = intval($arCM["OWNER_USER_ID"]); $arRespUserIDs[] = intval($arCM["CREATED_USER_ID"]); $arGuestIDs[] = intval($arCM["OWNER_GUEST_ID"]); $arGuestIDs[] = intval($arCM["CREATED_GUEST_ID"]); $arM0[] = $arCM; } $arStrUsersM = CTicket::GetUsersPropertiesArray($arRespUserIDs, $arGuestIDs); foreach($arM0 as $key => $arM) { $backcolor = "background-color:#F1F1F1;"; $table_class = "class=\"defaultborder\""; $headerbackcolor = "background-color:#FFF;"; $bottomline = "background:#ACAAA7;"; if($arM["IS_OVERDUE"] == "Y") { $backcolor = "background-color:#FFECEC;"; $table_class = "class=\"overdueborder\""; $headerbackcolor = "background-color:#FFECEC;"; $bottomline = ""; } elseif($arM["IS_HIDDEN"] == "Y") { $backcolor = "background-color:#F1F8F5;"; $table_class = "class=\"hiddenborder\""; $headerbackcolor = "background-color:#F1F8F5"; $bottomline = ""; } elseif($arM["IS_LOG"] == "Y") { $backcolor = "background-color:#FDF9E1;"; $table_class = "class=\"logborder\""; $headerbackcolor = "background-color:#FDF9E1;"; $bottomline = ""; } ?> <tr> <td align="center" colspan="2" width="100%" style="padding:6px 3px;"> <table border="0" cellspacing="0" cellpadding="0" <? echo $table_class; ?> width="100%" > <tr> <td style="<? echo $backcolor; ?>" width="100%"> <table border="0" width="100%" cellspacing="0" cellpadding="0" class="wd-ticket-message"> <tr> <td style="padding:4px;text-align:left;<? echo $backcolor; ?>"><b># <? echo intval($arM["C_NUMBER"]); ?></b> <? echo $arM["DATE_CREATE"]; ?></td> <td align="right" style="padding:4px;<?=$backcolor?>"><? $bSep = true; //if($str_OWNER_USER_ID == $arM["OWNER_USER_ID"]) if($arM["IS_LOG"] != "Y") { ?> <a title="<? echo GetMessage("SUP_SPLIT_ALT"); ?>" href="<? echo $TICKET_EDIT_URL; ?>?lang=<? echo LANGUAGE_ID; ?>&TICKET_ID=<?=$ID?>&MESSAGE_ID=<? echo $arM["ID"]; ?>" onclick="return (confirm('<? echo AddSlashes(GetMessage("SUP_SPLIT_CONFIRM")); ?>') ? true : false)"><? echo GetMessage("SUP_SPLIT"); ?></a> <? if($bSep) echo " | "; } $bSep = false; if (strlen($str_DATE_CLOSE)<=0): echo '<a href="#postform" OnMouseDown="javascript:SupQuoteMessage(\'quotetd' . $arM["ID"] . '\')" title="' . GetMessage("SUP_QUOTE_LINK_DESCR") . '">' . GetMessage("SUP_QUOTE_LINK") . '</a>'; $bSep = true; endif; if ($bAdmin=="Y" || $bDemo=="Y") : if (intval($arM["SOURCE_ID"])>0 && IsModuleInstalled("mail") && intval($arM["EXTERNAL_ID"])>0) { Support_GetDictionaryInfo($arM["SOURCE_ID"], $arM["SOURCE_NAME"], $arM["SOURCE_DESC"], $arM["SOURCE_SID"]); if (strtolower($arM["SOURCE_SID"])=="email") { if($bSep) { echo " | "; } echo '<a title="' . GetMessage("SUP_VIEW_SOURCE_ALT") . '" href="/bitrix/admin/mail_message_view.php?lang=' . LANGUAGE_ID . '&ID=' . $arM["EXTERNAL_ID"] . '">' . GetMessage("SUP_VIEW_SOURCE") . '</a>'; $bSep = true; } } if($bSep) { echo " | "; } echo '<a title="' . GetMessage("SUP_EDIT_ALT") . '" href="' . $TICKET_MESSAGE_EDIT_URL . '?lang=' . LANGUAGE_ID . '&TICKET_ID=' . $ID . '&ID=' . $arM["ID"] . '">' . GetMessage("SUP_EDIT") . '</a>'; if ($messages>1) { echo ' | ' . '<a title="' . GetMessage("SUP_DELETE_ALT") . '" ' . 'href="javascript:if(confirm(\'' . GetMessage("SUP_CONF") . '\')) ' . 'window.location=\'' . urlencode(urlencode($TICKET_EDIT_URL)) . '?lang=' . LANGUAGE_ID . '&ID=' . $ID . '&mdel_id=' . $arM["ID"] . '&' . bitrix_sessid_get() . '\'">' . GetMessage("SUP_DELETE") . '</a>'; } endif; ?></td> </tr> <tr> <td style="padding:4px;text-align:left;<? echo $backcolor; ?>"><? if($arM["IS_LOG"] != "Y") { echo (strlen($arM["SOURCE_NAME"]) > 0) ? "[".htmlspecialcharsbx($arM["SOURCE_NAME"])."] " : ""; $oUID = isset($arM["OWNER_USER_ID"]) ? intval($arM["OWNER_USER_ID"]) : 0; $oGID = isset($arM["OWNER_GUEST_ID"]) ? intval($arM["OWNER_GUEST_ID"]) : 0; if(strlen($arM["OWNER_SID"]) > 0) { echo TxtToHtml($arM["OWNER_SID"]) . " "; if($oUID > 0) { echo "/ "; } } if($oUID > 0) { //Support_GetUserInfo($arM["OWNER_USER_ID"], $arM["OWNER_LOGIN"], $arM["OWNER_USER_NAME"]); if(!in_array($oUID, array_keys($arrSUPPORT_TEAM))) { if($arM["MESSAGE_BY_SUPPORT_TEAM"] == "Y") { $arrSUPPORT_TEAM[$oUID] = "(<span class=\"supportrequired\">".GetMessage("SUP_TECHSUPPORT")."</span>)"; } elseif($arM["MESSAGE_BY_SUPPORT_TEAM"] == "N") { $arrSUPPORT_TEAM[$oUID] = ""; } else { $arrSUPPORT_TEAM[$oUID] = (CTicket::IsSupportTeam($uid) || CTicket::IsAdmin($uid)) ? "(<span class=\"supportrequired\">".GetMessage("SUP_TECHSUPPORT")."</span>)" : ""; } } } if($bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y") { /*if($oUID > 0) { ?>[<a title="<?=GetMessage("SUP_USER_PROFILE")?>" href="/bitrix/admin/user_edit.php?lang=<?echo LANG?>&ID=<?echo $arM["OWNER_USER_ID"]; ?>"><?echo $arM["OWNER_USER_ID"]; ?></a>] (<? echo $arM["OWNER_LOGIN"]; ?>) <? echo $arM["OWNER_USER_NAME"]; ?> <?=$arrSUPPORT_TEAM[$arM["OWNER_USER_ID"]]?> <? }*/ if($oUID <= 0 && $oGID > 0 && CModule::IncludeModule("statistic")) { echo $arStrUsersM["arGuests"][$oGID]["HTML_NAME"]; ?> <? echo ($oUID > 0 ? $arrSUPPORT_TEAM[$oUID] : ""); ?> <? //echo " [<a title='".GetMessage("SUP_GUEST_ID")."' href='/bitrix/admin/guest_list.php?lang=" . LANG . "&find_id=" . $arM["OWNER_GUEST_ID"] . "&find_id_exact_match=Y&set_filter=Y'>" . $arM["OWNER_GUEST_ID"] . "</a>]"; } elseif($oUID > 0) { echo $arStrUsersM["arUsers"][$oUID]["HTML_NAME"]; ?> <? echo $arrSUPPORT_TEAM[$oUID]; ?> <? } } else { if($oUID > 0) { echo $arStrUsersM["arUsers"][$oUID]["HTML_NAME_S"]; //echo "[" . $arM["OWNER_USER_ID"] . "] (" . $arM["OWNER_LOGIN"] . ") " . $arM["OWNER_USER_NAME"] . " " . $arrSUPPORT_TEAM[$arM["OWNER_USER_ID"]] . ""; } } } else { $cUID = isset($arM["CREATED_USER_ID"]) ? intval($arM["CREATED_USER_ID"]) : 0; $cGID = isset($arM["CREATED_GUEST_ID"]) ? intval($arM["CREATED_GUEST_ID"]) : 0; if($cUID > 0) { //Support_GetUserInfo($arM["CREATED_USER_ID"], $arM["CREATED_LOGIN"], $arM["CREATED_USER_NAME"]); if (!in_array($cUID, array_keys($arrSUPPORT_TEAM))) { if($arM["MESSAGE_BY_SUPPORT_TEAM"] == "Y") { $arrSUPPORT_TEAM[$cUID] = "(<span class=\"supportrequired\">".GetMessage("SUP_TECHSUPPORT")."</span>)"; } elseif ($arM["MESSAGE_BY_SUPPORT_TEAM"] == "N") { $arrSUPPORT_TEAM[$cUID] = ""; } else { $arrSUPPORT_TEAM[$cUID] = (CTicket::IsSupportTeam($cUID) || CTicket::IsAdmin($cUID)) ? "(<span class=\"supportrequired\">" . GetMessage("SUP_TECHSUPPORT") . ")</span>" : ""; } } } if (strlen($arM["CREATED_MODULE_NAME"])<=0 || $arM["CREATED_MODULE_NAME"] == "support") { /*?>[<a title="<?=GetMessage("SUP_USER_PROFILE")?>" href="/bitrix/admin/user_edit.php?lang=<?=LANGUAGE_ID?>&ID=<? echo $arM["CREATED_USER_ID"]; ?>"><? echo $arM["CREATED_USER_ID"]; ?></a>] (<? echo $arM["CREATED_LOGIN"]; ?>) <? echo $arM["CREATED_USER_NAME"]; ?> <? echo $arrSUPPORT_TEAM[$arM["CREATED_USER_ID"]]; ?><?*/ if ($cUID <= 0 && $cGID > 0 && CModule::IncludeModule("statistic")) { echo $arStrUsersM["arGuests"][$cGID]["HTML_NAME"]; echo ($cUID > 0 ? " " . $arrSUPPORT_TEAM[$cUID] : ""); /*echo " [<a title='".GetMessage("SUP_GUEST_ID")."' href='/bitrix/admin/guest_list.php?lang=".LANG."&find_id=". $arM["CREATED_GUEST_ID"]."&find_id_exact_match=Y&set_filter=Y'>".$arM["CREATED_GUEST_ID"]."</a>]";*/ } elseif($cUID > 0) { echo $arStrUsersM["arUsers"][$cUID]["HTML_NAME"]; echo " " . $arrSUPPORT_TEAM[$cUID]; } } else { echo $arM["CREATED_MODULE_NAME"]; } } ?></td> <td align="right" style="padding:4px;<?=$backcolor?>"> <? if (($bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y") && strlen($arM["IS_SPAM"])>0): ?> [<?=GetMessage("SUP_SPAM")?><?echo ($arM["IS_SPAM"]=="Y") ? "!" : "?"?>]<? elseif ($arM["IS_LOG"]=="Y") : ?> <span style="color:#939300">[<?=GetMessage("SUP_LOG")?>]</span><? else: if (intval($arM["TASK_TIME"])>0): $str = ""; $days = intval($arM["TASK_TIME"]/1440); if ($days>0) { $str .= $days." ".GetMessage("SUP_DAYS")." "; $arM["TASK_TIME"] = $arM["TASK_TIME"] - $days*1440; } $hours = intval($arM["TASK_TIME"]/60); if ($hours>0) { $str .= $hours." ".GetMessage("SUP_HOURS")." "; $arM["TASK_TIME"] = $arM["TASK_TIME"] - $hours*60; } $str .= ($arM["TASK_TIME"]%60)." ".GetMessage("SUP_MINUTES"); echo $str; endif; if ($arM["IS_HIDDEN"] == "Y"):?> <span style="color:#2F9567">[<?=GetMessage("SUP_HIDDEN")?>]</span><?endif?> <?endif;?></td> </tr> <? if($arM["IS_LOG"] != "Y") { /*$arFiles = array(); if ($rsFiles = CTicket::GetFileList($v1="s_id", $v2="asc", array("MESSAGE_ID" => $f_ID))) : while ($arFile = $rsFiles->Fetch()) : $name = strlen($arFile["ORIGINAL_NAME"])>0 ? $arFile["ORIGINAL_NAME"] : $arFile["FILE_NAME"]; if (strlen($arFile["EXTENSION_SUFFIX"])>0) : $suffix_length = strlen($arFile["EXTENSION_SUFFIX"]); $name = substr($name, 0, strlen($name)-$suffix_length); endif; $arFiles[] = array("HASH" => $arFile["HASH"], "NAME" => $name, "FILE_SIZE" => $arFile["FILE_SIZE"]); endwhile; endif;*/ if (array_key_exists($arM["ID"], $ALL_TICKET_FILES) && is_array($ALL_TICKET_FILES[$arM["ID"]])) { ?> <tr><td colspan="2" height="1" style="padding:4px;<?=$headerbackcolor?>"></td></tr> <tr> <td colspan="2" style="padding:8px;<?=$headerbackcolor?>"> <table cellspacing=0 cellpadding=0 style="width:0%;"> <tr> <td <?=$headerbackcolor?> valign="top" style="width:0%;" nowrap> <img src="/bitrix/images/support/paperclip.gif" width="16" height="16" border="0" alt=""> </td> <td <?=$headerbackcolor?> style="width:0%;text-align:left;" nowrap><? $aImg = array("gif", "png", "jpg", "jpeg", "bmp"); foreach ($ALL_TICKET_FILES[$arM["ID"]] as $arFile) { if(in_array(strtolower(GetFileExtension($arFile["NAME"])), $aImg)): ?><a title="<?=GetMessage("SUP_VIEW_ALT")?>" target="_blank" href="/bitrix/tools/ticket_show_file.php?hash=<?echo $arFile["HASH"]?>&lang=<?=LANGUAGE_ID?>"><?echo htmlspecialcharsbx($arFile["NAME"])?></a> <?else:?> <?echo htmlspecialcharsbx($arFile["NAME"])?> <?endif?> (<? /*$a = array("b", "kb", "mb", "gb"); $pos = 0; $size = $arFile["FILE_SIZE"]; while($size >= 1024) { $size /= 1024; $pos++; } echo round($size,2)." ".$a[$pos];*/ echo CFile::FormatSize($arFile["FILE_SIZE"]); ?>)<br><? } ?></td> <td <?=$headerbackcolor?> style="width:0%;" nowrap><? foreach ($ALL_TICKET_FILES[$arM["ID"]] as $arFile) { $alt = str_replace( "#FILE_NAME#", htmlspecialcharsbx($arFile["NAME"]), GetMessage( "SUP_DOWNLOAD_ALT" ) ); ?> [<a title="<?=$alt?>" href="/bitrix/tools/ticket_show_file.php?hash=<?echo $arFile["HASH"]?>&lang=<?=LANGUAGE_ID?>&action=download"><?echo GetMessage("SUP_DOWNLOAD")?></a>]<br><? } ?></td> </tr> </table> </td> </tr> <? } } ?> <tr> <td colspan="2" height="1" style="<?=$headerbackcolor?>"></td></tr> <tr> <td colspan="2" id="quotetd<? echo $arM["ID"]; ?>" style="padding:8px;text-align:left;<? echo $headerbackcolor; ?>"><? if($arM["IS_LOG"] == "Y") { echo "" . $arM["MESSAGE"] . ""; } else { $quote_table_class = "quotetable"; $code_table_class = "codetable"; if($arM["IS_HIDDEN"] == "Y") { $quote_head_class = "tdhiddenquotehead"; $quote_body_class = "tdhiddenquote"; $code_head_class = "tdhiddencodehead"; $code_body_class = "tdhiddencodebody"; $code_textarea_class = "codehiddentextarea"; } else { $quote_head_class = "tdquotehead"; $quote_body_class = "tdquote"; $code_head_class = "tdcodehead"; $code_body_class = "tdcodebody"; $code_textarea_class = "codetextarea"; } echo TxtToHTML( $arM["MESSAGE"], true, 70, "Y", "N", "Y", "Y", $quote_table_class, $quote_head_class, $quote_body_class, $code_table_class, $code_head_class, $code_body_class, $code_textarea_class ); } ?></td> </tr> </table> </td> </tr> </table> </td> </tr> <? } ?> <tr> <td></td> <td><?echo $mess->NavPrint(GetMessage("SUP_PAGES"))?></td> </tr> </table> </td> </tr> <?endif;?> <?endif;?> <?if (strlen($str_DATE_CLOSE)<=0):?> <?if ($ID>0):?> <tr class="heading"><td id="edit_27" colspan="2"><?=GetMessage("SUP_ANSWER")?><a name="postform"></a></td></tr> <?endif;?> <?endif;?> <?if ($can_select_mode=="Y"):?> <script type="text/javascript"> <!-- var timeCounterID = null; function TaskTime(){document.getElementById("TASK_TIME").value++;timeCounterID = setTimeout('TaskTime()',60000);} function OnModeClick(mode, btn1, btn2) { var disabled = (mode=='view') ? true : false; var back_color = disabled ? "F8F8F8" : "FFFFFF"; var obTD; if (disabled) { if (timeCounterID) clearTimeout(timeCounterID); } else { if (document.getElementById("TASK_TIME").value >= 1) document.getElementById("TASK_TIME").value--; TaskTime(); } for (i=0; i<=39; i++) { obTD = document.getElementById("edit_"+i); if (obTD) obTD.disabled = disabled; } document.getElementById("TITLE").disabled = disabled; document.getElementById("HIDDEN").disabled = disabled; document.getElementById("NOT_CHANGE_STATUS").disabled = disabled; document.getElementById("MESSAGE_AUTHOR_SID").disabled = disabled; document.getElementById("MESSAGE_AUTHOR_SID").style.backgroundColor = back_color; document.getElementById("MESSAGE_SOURCE_ID").disabled = disabled; document.getElementById("MESSAGE_SOURCE_ID").style.backgroundColor = back_color; document.getElementById("MESSAGE_AUTHOR_USER_ID").disabled = disabled; document.getElementById("MESSAGE_AUTHOR_USER_ID").style.backgroundColor = back_color; //document.getElementById("FindUser").disabled = disabled; //document.getElementById("FindUser").style.backgroundColor = back_color; document.getElementById("FUA_ID").disabled = disabled; document.getElementById("FUA_ID").style.backgroundColor = back_color; document.getElementById("B").disabled = disabled; document.getElementById("I").disabled = disabled; document.getElementById("U").disabled = disabled; document.getElementById("QUOTE").disabled = disabled; document.getElementById("CODE").disabled = disabled; document.getElementById("TRANSLIT").disabled = disabled; document.getElementById("MESSAGE").disabled = disabled; document.getElementById("MESSAGE").style.backgroundColor = back_color; <? if ( $ID>0 && ( $bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y" )) { ?> document.getElementById("SUPPORT_COMMENTS").disabled = disabled; document.getElementById("SUPPORT_COMMENTS").style.backgroundColor = back_color; <? } ?> document.getElementById("TASK_TIME").disabled = disabled; document.getElementById("TASK_TIME").style.backgroundColor = back_color; document.getElementById("CLOSE").disabled = disabled; document.getElementById("CLOSE").style.backgroundColor = back_color; document.getElementById("HOLD_ON").disabled = disabled; document.getElementById("HOLD_ON").style.backgroundColor = back_color; document.getElementById("AUTO_CLOSE_DAYS").disabled = disabled; document.getElementById("AUTO_CLOSE_DAYS").style.backgroundColor = back_color; objFilesCounter = document.getElementById("files_counter"); files_counter = parseInt(objFilesCounter.value); for (i=0; i<files_counter; i++) { document.getElementById("FILE_"+i).disabled = disabled; document.getElementById("FILE_"+i).style.backgroundColor = back_color; } document.getElementById("AddFile").disabled = disabled; document.getElementById("AddFile").style.backgroundColor = back_color; <?if ($can_select_category=="Y"):?> document.getElementById("CATEGORY_ID").disabled = disabled; document.getElementById("CATEGORY_ID").style.backgroundColor = back_color; <?endif;?> <?if ($can_select_status=="Y"):?> document.getElementById("STATUS_ID").disabled = disabled; document.getElementById("STATUS_ID").style.backgroundColor = back_color; <?endif;?> <?if ($can_select_difficulty=="Y"):?> document.getElementById("DIFFICULTY_ID").disabled = disabled; document.getElementById("DIFFICULTY_ID").style.backgroundColor = back_color; <?endif;?> <?if ($can_select_responsible=="Y"):?> document.getElementById("RESPONSIBLE_USER_ID").disabled = disabled; document.getElementById("RESPONSIBLE_USER_ID").style.backgroundColor = back_color; <?endif;?> <?if ($can_select_criticality=="Y"):?> document.getElementById("CRITICALITY_ID").disabled = disabled; document.getElementById("CRITICALITY_ID").style.backgroundColor = back_color; <?endif;?> <?if ($can_select_mark=="Y"):?> document.getElementById("MARK_ID").disabled = disabled; document.getElementById("MARK_ID").style.backgroundColor = back_color; <?endif;?> <?if ($can_select_sla=="Y"):?> document.getElementById("SLA_ID").disabled = disabled; document.getElementById("SLA_ID").style.backgroundColor = back_color; <?endif;?> //document.getElementById("save").disabled = disabled; //document.getElementById("apply").disabled = disabled; //document.getElementById("reset").disabled = disabled; document.forms['form1'].elements['save'].disabled = disabled; document.forms['form1'].elements['apply'].disabled = disabled; //document.forms['form1'].elements['cancel'].disabled = disabled; document.getElementById(btn2).style.backgroundColor = document.getElementById(btn1).style.backgroundColor; document.getElementById(btn1).style.backgroundColor = "FFF8A8"; document.getElementById(btn1).disabled = true; document.getElementById(btn2).disabled = false; if (disabled) { document.getElementById("icon_1").style.display = "none"; document.getElementById("icon_2").style.display = "none"; } else { document.getElementById("icon_1").style.display = "inline"; document.getElementById("icon_2").style.display = "inline"; } document.getElementById("online_frame").src = "/bitrix/admin/ticket_online.php?TICKET_ID=<?=$ID?>&OWNER_USER_ID=<?=intval($str_OWNER_USER_ID)?>&lang=<?=LANGUAGE_ID?>&mode="+mode+"&ONLINE_AUTO_REFRESH=<?=$ONLINE_AUTO_REFRESH?>"; EnDisUserFields( mode ); } //--> </script> <tr valign="top"> <td align="right" valign="middle"><?=GetMessage("SUP_MODE")?></td> <td><input OnClick="javascript:OnModeClick('edit', 'mode_edit', 'mode_view')" type="button" name="mode_edit" value="<?=GetMessage("SUP_ANSWER_MODE")?>" id="mode_edit"> <input OnClick="javascript:OnModeClick('view', 'mode_view', 'mode_edit')" type="button" id="mode_view" name="mode_view" value="<?=GetMessage("SUP_VIEW_MODE")?>"></td> </tr> <?endif;?> <?if ($can_select_message_owner=="Y"):?> <script type="text/javascript"> <!-- function HiddenClick() { var objPrivate, color, color2, objFilesCounter, files_counter; objPrivate = document.getElementById("HIDDEN"); if (objPrivate.checked) { color_backgroud = "#F1F8F5"; color_checkbox = "#3CB97D"; } else { color_backgroud = ""; color_checkbox = ""; } <?if (strlen($str_DATE_CLOSE)<=0):?> document.getElementById("MESSAGE_AUTHOR_SID").style.backgroundColor = color_backgroud; document.getElementById("MESSAGE_SOURCE_ID").style.backgroundColor = color_backgroud; document.getElementById("MESSAGE_AUTHOR_USER_ID").style.backgroundColor = color_backgroud; document.getElementById("FUA_ID").style.backgroundColor = color_backgroud; document.getElementById("MESSAGE").style.backgroundColor = color_backgroud; document.getElementById("TASK_TIME").style.backgroundColor = color_backgroud; document.getElementById("HOLD_ON").style.backgroundColor = color_backgroud; document.getElementById("AUTO_CLOSE_DAYS").style.backgroundColor = color_backgroud; objFilesCounter = document.getElementById("files_counter"); files_counter = parseInt(objFilesCounter.value); for (i=0; i<files_counter; i++) { document.getElementById("FILE_"+i).style.backgroundColor = color_backgroud; } <?endif;?> <?if ($can_select_category=="Y"):?> document.getElementById("CATEGORY_ID").style.backgroundColor = color_backgroud; <?endif;?> <?if ($can_select_status=="Y"):?> document.getElementById("STATUS_ID").style.backgroundColor = color_backgroud; <?endif;?> <?if ($can_select_difficulty=="Y"):?> document.getElementById("DIFFICULTY_ID").style.backgroundColor = color_backgroud; <?endif;?> <?if ($can_select_responsible=="Y"):?> document.getElementById("RESPONSIBLE_USER_ID").style.backgroundColor = color_backgroud; <?endif;?> <?if ($can_select_criticality=="Y"):?> document.getElementById("CRITICALITY_ID").style.backgroundColor = color_backgroud; <?endif;?> <?if ($can_select_mark=="Y"):?> document.getElementById("MARK_ID").style.backgroundColor = color_backgroud; <?endif;?> <?if ($can_select_sla=="Y"):?> document.getElementById("SLA_ID").style.backgroundColor = color_backgroud; <?endif;?> objPrivate.style.backgroundColor = color_checkbox; } //--> </SCRIPT> <tr valign="top"> <td align="right" id="edit_38"><?=GetMessage('SUP_TITLE')?></td> <td valign="center" id="edit_39"><?echo InputType("input", "TITLE", $str_TITLE, '', false, "", "id=\"TITLE\"")?></td> </tr> <tr valign="top"> <td align="right" id="edit_1"><? echo (strlen($str_DATE_CLOSE)<=0) ? GetMessage("SUP_HIDDEN_MESSAGE") : GetMessage("SUP_DO_NOT_NOTIFY_AUTHOR")?></td> <td valign="center" id="edit_2"><?echo InputType("checkbox", "HIDDEN", "Y", $str_HIDDEN, false, "", "OnClick=\"HiddenClick()\" id=\"HIDDEN\"")?><br><?=GetMessage("SUP_HIDDEN_MESSAGE_ALT")?></td> </tr> <?if(strlen($str_DATE_CLOSE)<=0): ?> <tr valign="top"> <td align="right" id="edit_28"><?=GetMessage("CHANGE_STATUS")?>:</td> <td valign="center" id="edit_29"><?echo InputType("checkbox", "NOT_CHANGE_STATUS", "Y", $str_NOT_CHANGE_STATUS, false, "", "id=\"NOT_CHANGE_STATUS\"")?></td> </tr> <?endif?> <?if (strlen($str_DATE_CLOSE)<=0):?> <script type="text/javascript"> <!-- function SelectMessageSource() { var objSourceSelect, strSourceValue; objSourceSelect = document.form1.MESSAGE_SOURCE_ID; strSourceValue = objSourceSelect[objSourceSelect.selectedIndex].value; document.getElementById("MESSAGE_AUTHOR_SID").style.display = "none"; document.getElementById("MESSAGE_AUTHOR_SID").disabled = true; if (strSourceValue!="") { document.getElementById("MESSAGE_AUTHOR_SID").disabled = false; document.getElementById("MESSAGE_AUTHOR_SID").style.display = "inline"; } } //--> </SCRIPT> <tr valign="middle"> <td id="edit_3" align="right" width="20%" nowrap><?=GetMessage("SUP_SOURCE")." / ".GetMessage("SUP_FROM")?></td> <td id="edit_4" width="80%" nowrap><? //echo SelectBox("MESSAGE_SOURCE_ID", CTicketDictionary::GetDropDown("SR", $TICKET_SITE), "< web >", $str_MESSAGE_SOURCE_ID, "OnChange=SelectMessageSource() id=\"MESSAGE_SOURCE_ID\""); echo SelectBoxFromArray("MESSAGE_SOURCE_ID", __GetDropDown("SR", $TICKET_DICTIONARY), $str_MESSAGE_SOURCE_ID, "< web >", "OnChange=SelectMessageSource() id=\"MESSAGE_SOURCE_ID\""); ?> <input type="text" size="12" name="MESSAGE_AUTHOR_SID" id="MESSAGE_AUTHOR_SID" value="<?=$str_MESSAGE_AUTHOR_SID?>"> <input type="text" name="MESSAGE_AUTHOR_USER_ID" id="MESSAGE_AUTHOR_USER_ID" value="" size="3" > <input type="button" name="FindUser" id="FindUser" OnClick="window.open('/bitrix/admin/user_search.php?lang=<?=LANGUAGE_ID?>&FN=form1&FC=MESSAGE_AUTHOR_USER_ID', '', 'scrollbars=yes,resizable=yes,width=760,height=560,top='+Math.floor((screen.height - 560)/2-14)+',left='+Math.floor((screen.width - 760)/2-5));" value="..."--> </td> </tr> <script type="text/javascript"> <!-- SelectMessageSource(); //--> </SCRIPT> <?endif;?> <?endif;?> <?if (strlen($str_DATE_CLOSE)<=0):?> <?if (($bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y") && $ID>0) :?> <script type="text/javascript"> var answers= new Array(); function OnChangeFUA_ID() { var value; value = answers[document.form1.FUA_ID[document.form1.FUA_ID.selectedIndex].value]; if (value && value.length>0) document.form1.MESSAGE.value += value; } <? $z = CTicket::GetFUA($TICKET_SITE); while ($zr=$z->Fetch()) : $src = $zr["DESCR"]; $src=preg_replace('#<SCRIPT#i', '<S"+"CRIPT', preg_replace('#</SCRIPT#i', '</S"+"CRIPT', addcslashes( str_replace('"', '\"', str_replace("\\", "\\\\", $src ) ), "\0..\37") ) ); ?> answers[<?=$zr["REFERENCE_ID"]?>]="<?=$src?>"; <?endwhile;?> </script> <tr valign="middle"> <td id="edit_5" align="right"><?=GetMessage("SUP_FUA")?></td> <td id="edit_6"><? echo SelectBox("FUA_ID", CTicket::GetFUA($TICKET_SITE), GetMessage("SUP_NO"), "", "OnChange=\"OnChangeFUA_ID()\" id=\"FUA_ID\""); ?></td> </tr> <?endif;?> <SCRIPT type="text/javascript"> <!-- function SupQuoteMessage(id) { var selection; if (document.getSelection) { selection = document.getSelection().toString(); selection = selection.replace(/\r\n\r\n/gi, "_newstringhere_"); selection = selection.replace(/\r\n/gi, " "); selection = selection.replace(/ /gi, ""); selection = selection.replace(/_newstringhere_/gi, "\r\n\r\n"); } else { selection = document.selection.createRange().text; } if (selection!="") { document.form1.MESSAGE.value += "<QUOTE>"+selection+"</QUOTE>\n"; } else { var el = document.getElementById(id); var textData = (el.innerText) ? el.innerText : el.textContent; if(el) { var str = textData str = str.replace(/\r\n\r\n/gi, "_newstringhere_"); str = str.replace(/\r\n/gi, " "); str = str.replace(/<br[^>]*>/gi, ""); str = str.replace(/<\/p[^>]*>/gi, "\r\n"); str = str.replace(/<li[^>]*>/gi, "\r\n"); str = str.replace(/<[^>]*>/gi, " "); str = str.replace(/ /gi, ""); str = str.replace(/_newstringhere_/gi, "\r\n"); document.form1.MESSAGE.value += "<QUOTE>"+str+"</QUOTE>\n"; } } } <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/admin/ticket_message_js.php");?> //--> </SCRIPT> <tr valign="top" class="adm-detail-required-field"> <?if ($ID<=0) :?> <td align="right"><?=GetMessage("SUP_MESSAGE")?></td> <?else:?> <td align="right"> <table cellspacing=0 cellpadding=0 width="100%" border=0> <tr> <td style="padding-top:13px; padding-right: 10px" nowrap><?=GetMessage("SUP_ONLINE_TITLE")?></td> <td style="padding-top:13px;" width="100%" align="left"><a target="online_frame" href="/bitrix/admin/ticket_online.php?TICKET_ID=<?=$ID?>&OWNER_USER_ID=<?=intval($str_OWNER_USER_ID)?>&lang=<?=LANGUAGE_ID?>&ONLINE_AUTO_REFRESH=<?=$ONLINE_AUTO_REFRESH?>"><img src="/bitrix/images/support/refresh.gif" width="14" height="14" border="0" alt="<?=GetMessage("SUP_REFRESH_ALT")?>"></a></td> </tr> <tr> <td colspan="2" width="100%" nowrap><iframe name="online_frame" id="online_frame" frameborder="0" style="width:100%; border:0; height:300px;" src="/bitrix/admin/ticket_online.php?TICKET_ID=<?=$ID?>&OWNER_USER_ID=<?=intval($str_OWNER_USER_ID)?>&lang=<?=LANGUAGE_ID?>&mode=<?=$default_mode?>&ONLINE_AUTO_REFRESH=<?=$ONLINE_AUTO_REFRESH?>"></iframe></td> </tr> </table></td> <?endif;?> <td style="padding: 0px"><table cellspacing=0 cellpadding=0 border=0 width="100%"> <tr> <td valign="bottom" id="edit_7" style="padding-bottom:3px;"> <input type="button" value="<?=GetMessage("SUP_B")?>" onClick="insert_tag('B', document.form1.MESSAGE)" style="font-weight:bold" name="B" id="B" title="<? echo GetMessage("SUP_B_ALT"); echo $hkInst->GetTitle("TICKET_EDIT_B_T"); ?>"> <input type="button" value="<?=GetMessage("SUP_I")?>" onClick="insert_tag('I', document.form1.MESSAGE)" style="font-style:italic" name="I" id="I" title="<? echo GetMessage("SUP_I_ALT"); echo $hkInst->GetTitle("TICKET_EDIT_I_T"); ?>"> <input type="button" value="<?=GetMessage("SUP_U")?>" onClick="insert_tag('U', document.form1.MESSAGE)" style="text-decoration:underline" name="U" id="U" title="<? echo GetMessage("SUP_U_ALT"); echo $hkInst->GetTitle("TICKET_EDIT_U_T"); ?>"> <input type="button" value="<?=GetMessage("SUP_QUOTE").$hkInst->GetTitle("TICKET_EDIT_QUOTE_T")?>" onClick="insert_tag('QUOTE', document.form1.MESSAGE)" style="vertical-align: middle; width: 130px" name="QUOTE" id="QUOTE" title="<? echo GetMessage("SUP_QUOTE_ALT"); echo $hkInst->GetTitle("TICKET_EDIT_QUOTE_T"); ?>"> <input type="button" value="<?=GetMessage("SUP_CODE").$hkInst->GetTitle("TICKET_EDIT_CODE_T")?>" onClick="insert_tag('CODE', document.form1.MESSAGE)" style="vertical-align: middle; width: 100px" name="CODE" id="CODE" title="<? echo GetMessage("SUP_CODE_ALT"); echo $hkInst->GetTitle("TICKET_EDIT_CODE_T"); ?>"> <input type="button" value="<?=GetMessage("SUP_TRANSLIT").$hkInst->GetTitle("TICKET_EDIT_TRANSLIT_T")?>" onClick="translit(document.form1.MESSAGE)" style="vertical-align: middle; width: 135px" name="TRANSLIT" id="TRANSLIT" title="<? echo GetMessage("SUP_TRANSLIT_ALT"); echo $hkInst->GetTitle("TICKET_EDIT_TRANSLIT_T");?>"></td> </tr> <tr> <td><textarea name="MESSAGE" id="MESSAGE" style="width:100%;height:300px;" wrap="virtual"><?=htmlspecialcharsbx($MESSAGE)?></textarea></td> </tr> </table></td> </tr> <script type="text/javascript"> <!-- function AddFileInput() { var counter = document.form1.files_counter.value; counter++; inputNom = counter-1; var tb = document.getElementById("files_table"); var oRow = tb.insertRow(0); var oCell = oRow.insertCell(0); oCell.style.paddingBottom="5px"; oCell.innerHTML = ' <input name="FILE_'+inputNom+'" id="FILE_'+inputNom+'" size="30" type="file">'; document.form1.files_counter.value = counter; /*document.getElementById("FILE_"+counter).style.backgroundColor = document.getElementById("FILE_"+(counter-1)).style.backgroundColor;*/ BX.adminPanel.modifyFormElements(oCell); } //--> </script> <tr valign="top"> <td align="right" id="edit_8"><? $max_size = 0; if ($bSupportTeam!="Y" && $bAdmin!="Y" && $bDemo!="Y") { $max_size = COption::GetOptionString("support", "SUPPORT_MAX_FILESIZE"); } if (intval($max_size)>0) { echo GetMessage("SUP_ATTACH")."<br>(max - ". intval($max_size)." ".GetMessage("SUP_KB")."):"; $ms = intval($max_size)*1024; echo "<input type='hidden' name='MAX_FILE_SIZE' value='".$ms."'>"; } else { echo GetMessage("SUP_ATTACH").":"; } ?></td> <td style="padding:0px" nowrap id="edit_9"> <table cellspacing=0 cellpadding=0 border=0 id="files_table"> <? if (isset($arFiles)) { foreach($arFiles as $arFile) { ?> <tr> <td><? ?><a title="<?=GetMessage("SUP_VIEW_ALT")?>" target="_blank" href="/bitrix/tools/ticket_show_file.php?hash=<?echo $arFile["HASH"]?>&lang=<?=LANG?>"><?echo htmlspecialcharsbx($arFile["NAME"])?></a> (<? /*$a = array("b", "kb", "mb", "gb"); $pos = 0; $size = $arFile["FILE_SIZE"]; while($size >= 1024) {$size /= 1024; $pos++;} echo round($size,2)." ".$a[$pos];*/ echo CFile::FormatSize($arFile["FILE_SIZE"]); ?>) [ <a href="/bitrix/tools/ticket_show_file.php?hash=<?echo $arFile["HASH"]?>&lang=<?=LANG?>&action=download"><?echo GetMessage("SUP_DOWNLOAD")?></a> ] <input type="checkbox" name="ATTACH_FILE[]" value="<?=$arFile["ID"]?>" checked> </td> </tr> <? } } ?> <tr> <td valign="top" style="padding-bottom:5px;"> <input name="FILE_0" id="FILE_0" size="30" type="file"></td> </tr> <input type="hidden" name="files_counter" id="files_counter" value="1"> </table> <input type="button" id="AddFile" value="<?=GetMessage("SUP_MORE")?>" OnClick="AddFileInput()"></td> </tr> <?endif;?> <?if ($can_select_status=="Y") :?> <tr valign="middle"> <td id="edit_10" align="right" nowrap><?=GetMessage("SUP_STATUS")?></td> <td id="edit_11" nowrap><? //echo SelectBox("STATUS_ID", CTicketDictionary::GetDropDown("S", $TICKET_SITE), " ", $str_STATUS_ID," id=\"STATUS_ID\""); echo SelectBoxFromArray("STATUS_ID", __GetDropDown("S", $TICKET_DICTIONARY), $str_STATUS_ID, " ", " id=\"STATUS_ID\""); ?></td> </tr> <?endif;?> <?if ($can_select_difficulty=="Y") :?> <tr valign="middle"> <td id="edit_30" align="right" nowrap><?=GetMessage("SUP_DIFFICULTY")?></td> <td id="edit_31" nowrap><? //echo SelectBox("DIFFICULTY_ID", CTicketDictionary::GetDropDown("D", $TICKET_SITE), " ", $str_DIFFICULTY_ID," id=\"DIFFICULTY_ID\""); echo SelectBoxFromArray("DIFFICULTY_ID", __GetDropDown("D", $TICKET_DICTIONARY), $str_DIFFICULTY_ID, " ", " id=\"DIFFICULTY_ID\""); ?></td> </tr> <?endif;?> <?if ($can_select_responsible=="Y") :?> <script type="text/javascript"> <!-- var arCategory_RESP = Array(); <? if ($can_select_category=="Y") : $rs = CTicketDictionary::GetDropDown("C"); while($ar = $rs->Fetch()): if (intval($ar["RESPONSIBLE_USER_ID"])>0): ?>arCategory_RESP[<?=$ar["ID"]?>] = <?=$ar["RESPONSIBLE_USER_ID"]?>; <? endif; endwhile; endif; ?> //--> </script> <?if ($can_select_sla=="Y" && $can_select_site=="Y") :?> <script type="text/javascript"> <!-- var arSla_RESP = Array(); <? $rs = CTicketSLA::GetDropDown(); while($ar = $rs->Fetch()): if (intval($ar["RESPONSIBLE_USER_ID"])>0): ?>arSla_RESP[<?=$ar["ID"]?>] = <?=$ar["RESPONSIBLE_USER_ID"]?>; <? endif; endwhile; endif; ?> //--> </script> <?if ($can_select_responsible=="Y" || ($can_select_sla=="Y" && $can_select_site=="Y")) :?> <script type="text/javascript"> <!-- function SetResponsible(select_name) { var obResponsible = document.getElementById("RESPONSIBLE_USER_ID"); if (!obResponsible.disabled) { var obSelect = document.getElementById(select_name); var iValue, iResponsible, mess, i; if (obSelect) { iValue = obSelect[obSelect.selectedIndex].value; switch (select_name) { case "SLA_ID": if (arSla_RESP[iValue]) iResponsible = arSla_RESP[iValue]; mess = '<?=GetMessage("SUP_SLA_RESPONSIBLE_UNDEFINED")?>'; break; case "CATEGORY_ID": if (arCategory_RESP[iValue]) iResponsible = arCategory_RESP[iValue]; mess = '<?=GetMessage("SUP_CATEGORY_RESPONSIBLE_UNDEFINED")?>'; break; } if (parseInt(iResponsible)>0) { for(i=0; i<obResponsible.options.length; i++) if (obResponsible.options[i].value==iResponsible) obResponsible.selectedIndex = i; } else alert(mess); } } } //--> </script> <?endif;?> <tr valign="middle"> <td id="edit_12" align="right" nowrap><?=GetMessage("SUP_RESPONSIBLE")?></td> <td id="edit_13" nowrap> <select id="RESPONSIBLE_USER_ID" name="RESPONSIBLE_USER_ID">"; <option value="NOT_REF"> </option> <? $dbTeam = CTicket::GetSupportTeamList(); while ($arTeam = $dbTeam->Fetch()) { $reference_id = $arTeam["REFERENCE_ID"]; $reference = $arTeam["REFERENCE"]; if($arTeam["ACTIVE"] == "Y" || $reference_id == $str_RESPONSIBLE_USER_ID) { echo "<option "; if($reference_id == $str_RESPONSIBLE_USER_ID) echo " selected "; echo "value=\"".htmlspecialcharsbx($reference_id). "\">". htmlspecialcharsbx($reference)."</option>"; } } ?> </select> </td> </tr> <?endif;?> <?if ($can_select_criticality=="Y") :?> <tr valign="middle"> <td id="edit_14" align="right"><?=GetMessage("SUP_CRITICALITY")?></td> <td id="edit_15"><? //if ($ID<=0 && strlen($strError)<=0) $str_CRITICALITY_ID = CTicketDictionary::GetDefault("K", $TICKET_SITE); //echo SelectBox("CRITICALITY_ID", CTicketDictionary::GetDropDown("K", $TICKET_SITE, $TICKET_SLA), " ", $str_CRITICALITY_ID, " id=\"CRITICALITY_ID\""); echo SelectBoxFromArray("CRITICALITY_ID", __GetDropDown("K", $TICKET_DICTIONARY), $str_CRITICALITY_ID, " ", " id=\"CRITICALITY_ID\""); ?></td> </tr> <?endif;?> <?if ($can_select_mark=="Y") :?> <tr valign="middle"> <td id="edit_16" align="right" nowrap><?=GetMessage("SUP_MARK")?></td> <td id="edit_17" nowrap><? //echo SelectBox("MARK_ID", CTicketDictionary::GetDropDown("M", $TICKET_SITE, $TICKET_SLA), " ", $str_MARK_ID, " id=\"MARK_ID\""); echo SelectBoxFromArray("MARK_ID", __GetDropDown("M", $TICKET_DICTIONARY), $str_MARK_ID, " ", " id=\"MARK_ID\""); ?></td> </tr> <?endif;?> <?if ($can_select_category=="Y") :?> <tr valign="middle"> <td id="edit_18" align="right"><?=GetMessage("SUP_CATEGORY")?></td> <td id="edit_19"><? //if ($ID<=0 && strlen($strError)<=0) $str_CATEGORY_ID = CTicketDictionary::GetDefault("C", $TICKET_SITE); //echo SelectBox("CATEGORY_ID", CTicketDictionary::GetDropDown("C", $TICKET_SITE, $TICKET_SLA), " ", $str_CATEGORY_ID, " id =\"CATEGORY_ID\""); echo SelectBoxFromArray("CATEGORY_ID", __GetDropDown("C", $TICKET_DICTIONARY), $str_CATEGORY_ID, " ", " id =\"CATEGORY_ID\""); ?><?if ($can_select_responsible=="Y"):?> <a title="<?=GetMessage("SUP_RESPONSIBLE_SELECT_BY_CATEGORY_ALT")?>" id="icon_1" href="javascript:SetResponsible('CATEGORY_ID')"><img src="/bitrix/images/support/resp.gif" width="16" height="16" border="0" alt="<?=GetMessage("SUP_RESPONSIBLE_SELECT_BY_CATEGORY_ALT")?>"></a><?endif;?></td> </tr> <?endif;?> <?if ($can_select_sla=="Y" && $can_select_site=="Y"):?> <tr valign="middle"> <td id="edit_20" align="right" width="20%" nowrap><?=GetMessage("SUP_SLA")?>:</td> <td id="edit_21" width="80%" nowrap><? $rsSLA = CTicketSLA::GetDropDown($TICKET_SITE); echo SelectBox("SLA_ID", $rsSLA, "", $TICKET_SLA, "onChange=\"OnSLAChange(this[this.selectedIndex].value)\" id=\"SLA_ID\""); ?><?if ($can_select_responsible=="Y"):?> <a id="icon_2" title="<?=GetMessage("SUP_RESPONSIBLE_SELECT_BY_SLA_ALT")?>" href="javascript:SetResponsible('SLA_ID')"><img src="/bitrix/images/support/resp.gif" width="16" height="16" border="0" alt="<?=GetMessage("SUP_RESPONSIBLE_SELECT_BY_SLA_ALT")?>"></a><?endif;?></td> </tr> <script type="text/javascript"> <!-- var arCriticality_SLA = Array(); var arCategory_SLA = Array(); var arMark_SLA = Array(); <? if (is_array($arrSlaID)): foreach($arrSlaID as $sid): $slaDictionary = CTicketDictionary::GetDropDownArray(false, $sid); if ($can_select_category=="Y") : ?> arCategory_SLA[<?=$sid?>]=Array(<? echo "Array('NOT_REF', ' ')"; if (isset($slaDictionary['C'])) { foreach ($slaDictionary['C'] as $ar) { echo ", Array('".addslashes(htmlspecialcharsbx($ar["REFERENCE_ID"]))."', '".addslashes(htmlspecialcharsbx($ar["REFERENCE"]))."')"; } } ?>); <? endif; if ($can_select_mark=="Y") : ?> arMark_SLA[<?=$sid?>]=Array(<? echo "Array('NOT_REF', ' ')"; if (isset($slaDictionary['M'])) { foreach ($slaDictionary['M'] as $ar) { echo ", Array('".addslashes(htmlspecialcharsbx($ar["REFERENCE_ID"]))."', '".addslashes(htmlspecialcharsbx($ar["REFERENCE"]))."')"; } } ?>); <? endif; if ($can_select_criticality=="Y") : ?> arCriticality_SLA[<?=$sid?>]=Array(<? echo "Array('NOT_REF', ' ')"; if (isset($slaDictionary['K'])) { foreach ($slaDictionary['K'] as $ar) { echo ", Array('".addslashes(htmlspecialcharsbx($ar["REFERENCE_ID"]))."', '".addslashes(htmlspecialcharsbx($ar["REFERENCE"]))."')"; } } ?>); <? endif; endforeach; endif; ?> function OnSLAChange(sla_id) { var obSiteSelect, site_id, select_index, k; var arrList = Array(); var arrValues = Array(); var arrInit = Array(); var arrCheck = Array(); obSiteSelect = document.form1.SITE_ID; site_id = obSiteSelect[obSiteSelect.selectedIndex].value; <?if ($can_select_category=="Y") :?> arrList[arrList.length] = document.form1.CATEGORY_ID; arrValues[arrValues.length] = arCategory_SLA; arrCheck[arrCheck.length] = arCategory[site_id]; arrInit[arrInit.length] = parseInt('<?=$str_CATEGORY_ID?>'); <?endif;?> <?if ($can_select_mark=="Y") :?> arrList[arrList.length] = document.form1.MARK_ID; arrValues[arrValues.length] = arMark_SLA; arrCheck[arrCheck.length] = arMark[site_id]; arrInit[arrInit.length] = parseInt('<?=$str_MARK_ID?>'); <?endif;?> <?if ($can_select_criticality=="Y") :?> arrList[arrList.length] = document.form1.CRITICALITY_ID; arrValues[arrValues.length] = arCriticality_SLA; arrCheck[arrCheck.length] = arCriticality[site_id]; arrInit[arrInit.length] = parseInt('<?=$str_CRITICALITY_ID?>'); <?endif;?> for(i=0; i<arrList.length; i++) { arList = arrList[i]; arValues = arrValues[i][sla_id]; select_index = 0; while(arList.length>0) arList.options[0]=null; k = 0; for(j=0; j<arValues.length; j++) { if(in_array(arValues[j][0], arrCheck[i])) { newoption = new Option(htmlspecialcharsback(arValues[j][1]), arValues[j][0], false, false); arList.options[k] = newoption; k++; if (newoption.value==arrInit[i]) select_index = j; } } if (parseInt(select_index)>0) arList.selectedIndex = parseInt(select_index); } } //--> </script> <?endif;?> <?if ($ID>0):?> <?if ($bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y"):?> <tr> <td id="edit_32"><?=GetMessage("SUP_TASK_TIME")?></td> <td id="edit_33"><input type="text" name="TASK_TIME" id="TASK_TIME" size="7" maxlength="10" value=""></td> </tr> <tr valign="middle"> <td id="edit_34" align="right" nowrap><?echo GetMessage("SUP_HOLD_ON")?>:</td> <td id="edit_35" nowrap><?echo InputType("checkbox","HOLD_ON","Y",$str_HOLD_ON, false, "", "id=\"HOLD_ON\"")?></td> </tr> <?endif;?> <?if (($bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y") && strlen($str_DATE_CLOSE)<=0) :?> <tr valign="middle"> <td id="edit_22" align="right" nowrap><?=GetMessage("SUP_AUTO_CLOSE_TICKET")?></td> <td id="edit_23" nowrap><? $ref_id = array("-1", "0"); $ref = array(GetMessage("SUP_NOT_CHANGE"), GetMessage("SUP_SET_NULL")); for ($i=1;$i<=90;$i++) { $ref[] = $i." ".GetMessage("SUP_DAY"); $ref_id[] = $i; } $arr = Array("reference" => $ref, "reference_id" => $ref_id); echo SelectBoxFromArray("AUTO_CLOSE_DAYS", $arr, $str_AUTO_CLOSE_DAYS, "", " id=\"AUTO_CLOSE_DAYS\""); ?></td> </tr> <?endif;?> <?if (strlen($str_DATE_CLOSE)<=0):?> <script type="text/javascript"> <!-- function CloseClick() { var objClose, color; objClose = document.getElementById("CLOSE"); if (objClose.checked) color = "#FF0000"; else color = ""; objClose.style.backgroundColor = color; } //--> </SCRIPT> <tr valign="middle"> <td id="edit_24" align="right" nowrap><?echo GetMessage("SUP_CLOSE_TICKET")?>:</td> <td id="edit_25" nowrap><?echo InputType("checkbox","CLOSE","Y",$str_CLOSE, false, "", "OnClick=\"CloseClick()\" id=\"CLOSE\"")?></td> </tr> <script type="text/javascript"> <!-- CloseClick(); //--> </SCRIPT> <?else:?> <script type="text/javascript"> <!-- function OpenClick() { var objOpen, color; objOpen = document.getElementById("OPEN"); if (objOpen.checked) color = "#0000FF"; else color = ""; objOpen.style.backgroundColor = color; } //--> </SCRIPT> <tr valign="middle"> <td align="right" nowrap><?echo GetMessage("SUP_OPEN_TICKET")?>:</td> <td nowrap><?echo InputType("checkbox","OPEN","Y","",false,"","OnClick=\"OpenClick()\" id=\"OPEN\"")?></td> </tr> <script type="text/javascript"> <!-- OpenClick(); //--> </SCRIPT> <?endif;?> <?endif;?> <? if ($ID <= 0/* && !($bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y")*/) { ?> <tr> <td class="heading" id="edit_36"><?=GetMessage('SUP_COUPON')?></td> <td valign="top" id="edit_37"><input type="text" name="COUPON" value="" size="80" maxlength="255"></td> </tr> <? } ?> <? //$tabControl->BeginNextTab(); if( $bAdmin == "Y" || $bSupportTeam == "Y" || $bDemo == "Y" ) { $USER_FIELD_MANAGER->EditFormShowTab($PROPERTY_ID, ( count( $messageA ) > 0 ? true : false ), $ID); if ( $ID > 0 ) { ?> <script type="text/javascript"> function EnDisUserFields( mode ) { <? $arrUF = $USER_FIELD_MANAGER->GetUserFields( "SUPPORT", 0, LANGUAGE_ID ); echo "UFArr = Array('" . implode("','", array_keys( $arrUF ) ) . "');"; ?> HtmArr = Array(); i = 0; tab = document.getElementById( "edit1_edit_table" ); var disabled = (mode=='view') ? true : false; var back_color = disabled ? "F8F8F8" : "FFFFFF"; for( var k in UFArr ) { var tabs = BX.findChildren( tab, { "tag" : "input", attr: { "name" : UFArr[k] } }, true ); if( tabs == null ) continue; for (var i = 0; i < tabs.length; i++) { tabs[i].disabled = disabled; tabs[i].style.backgroundColor = back_color; } } } EnDisUserFields( 'view' ); </script> <? } } ?> <? if ( $ID>0 && ( $bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y" )) { ?> <tr class="heading"><td id="edit_26" colspan="2"><?=GetMessage("SUP_SUPPORT_COMMENTS")?></td></tr> <tr valign="top"> <td> </td> <td nowrap><textarea name="SUPPORT_COMMENTS" id="SUPPORT_COMMENTS" style="width:100%;height:100px;" wrap="virtual"><?=$str_SUPPORT_COMMENTS?></textarea></td> </tr> <? } ?> <? $tabControl->Buttons(array("back_url"=>$TICKET_LIST_URL."?lang=".LANGUAGE_ID)); $tabControl->End(); ?> <?if (($bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y") && $ID>0):?> <?if ($can_select_mode && $default_mode=="view"):?> <?echo BeginNote();?> <?=GetMessage("SUP_MODE_LEGEND")?> <?echo EndNote();?> <?endif;?> <script language="javascript"> HiddenClick(); <?if ($can_select_mode=="Y"):?> <?if ($default_mode=="view"):?> OnModeClick('view', 'mode_view', 'mode_edit'); <?else:?> OnModeClick('edit', 'mode_edit', 'mode_view'); <?endif;?> <?endif;?> </script> <?endif;?> </form> <?/*$tabControl->ShowWarnings("form1", $message);*/?> <?echo BeginNote();?> <table border="0" cellspacing="6" cellpadding="0"> <tr> <td valign="center" colspan="2" nowrap><?=GetMessage("SUP_TICKET_STATUS")?>:</td> </tr> <tr> <td valign="center" nowrap><div class="lamp-red"></div></td> <td valign="center" nowrap><?echo ($bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y") ? GetMessage("SUP_RED_ALT") : GetMessage("SUP_RED_ALT_2")?></td> </tr> <?if ($bAdmin=="Y" || $bDemo=="Y") :?> <tr> <td valign="center" nowrap><div class="lamp-yellow"></div></td> <td valign="center" nowrap><?echo GetMessage("SUP_YELLOW_ALT")?></td> </tr> <?endif;?> <tr> <td valign="center" nowrap><div class="lamp-green"></div></td> <td valign="center" nowrap><?echo GetMessage("SUP_GREEN_ALT")?></td> </tr> <?if ($bAdmin=="Y" || $bDemo=="Y" || $bSupportTeam=="Y") :?> <tr> <td valign="center" nowrap><div class="lamp-green-s"></div></td> <td valign="center" nowrap><?echo GetMessage("SUP_GREEN_S_ALT")?></td> </tr> <?endif;?> <tr> <td valign="center" nowrap><div class="lamp-grey"></div></td> <td valign="center" nowrap><?echo GetMessage("SUP_GREY_ALT")?></td> </tr> </table> <?echo EndNote();?> <?require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin.php"); ?>