по ссылке в первом посте появилась информация не связанная напрямую с темой, но очень интересная по сути
о том как добавить загрузку js скриптов без правки шаблонов в агентский и пользовательский интерфейс
http://stephan14x.evidente.de/?p=60
я стал реализовывать механизм, с некоторыми правками, но столкнулся на непреодолимую проблему, в теме на otterhub "захардкожено" английское название состояния, если это устраивает, а так же устраивает способ поиска label методом перебора всех label в форме и анализа их innerhtml с "захардкоженым" английским названием, то можно реализовать не внося исправления в шаблоны, если кому то нужно - могу описать как сделать таким способом
но для себя решил что мне такой вариант не подходит, сделал с правкой шаблонов, работает на 4.0.6, но будет работать на любой версии
4.х.х
для 3.х.х потребуются изменения, касающиеся функций Translate в шаблоне
приведу пример для шаблона AgentTicketActionCommon.tt
было:
Код: Выделить всё
<script type="text/javascript">//<![CDATA[
$('#NewStateID').bind('change', function (Event) {
Core.AJAX.FormUpdate($('#Compose'), 'AJAXUpdate', 'NewStateID', ['TypeID', 'ServiceID', 'SLAID', 'NewOwnerID', 'OldOwnerID', 'NewResponsibleID', 'NewPriorityID'
[% Data.DynamicFieldNamesStrg %] ]);
});
//]]></script>
стало:
Код: Выделить всё
<script type="text/javascript">//<![CDATA[
$('#NewStateID').bind('change', function (Event) {
Core.AJAX.FormUpdate($('#Compose'), 'AJAXUpdate', 'NewStateID', ['TypeID', 'ServiceID', 'SLAID', 'NewOwnerID', 'OldOwnerID', 'NewResponsibleID', 'NewPriorityID'
[% Data.DynamicFieldNamesStrg %] ]);
togglePending(this.id);
});
togglePending('NewStateID');
function isStatePending(id) {
switch($('#' + id + ' :selected').text()) {
case '[% Translate("pending reminder") | html %]':
case '[% Translate("pending auto") | html %]':
case '[% Translate("pending auto close+") | html %]':
case '[% Translate("pending auto close-") | html %]':
return true;
break;
}
return false;
}
function togglePending(id) {
if (isStatePending(id)) {
$('#lblPending, #divPending').show();
} else {
$('#lblPending, #divPending').hide();
}
}
//]]></script>
было:
Код: Выделить всё
<label>[% Translate("Pending date") | html %]:</label>
<div class="Field">
стало:
Код: Выделить всё
<label id="lblPending">[% Translate("Pending date") | html %]:</label>
<div class="Field" id="divPending">
для других шаблонов аналогичным образом, но потребуется править
так как в некоторых шаблонах id select с выбором состояния NextStateId