Спрятать установку времени напоминания, если не используется
Модератор: ykolesnikov
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Спрятать установку времени напоминания, если не используется
Кто-то задавал вопрос, как убрать с формы ввода заявки (телефонной или почтовой) в интерфейсе агента реквизит ввода даты напоминания/ожидания, если не используется состояние - "pending/ожидать/напомнить"
Нашел на англоязычном форуме такую тему - Hide Pending from ticket form when it's not pending -http://forums.otterhub.org/viewtopic.ph ... 104421ab23
Сам не проверял и как следует из теста темы там еще есть над чем работать, но, если кому надо - доводите до ума.
Если получится - поделитесь.
Нашел на англоязычном форуме такую тему - Hide Pending from ticket form when it's not pending -http://forums.otterhub.org/viewtopic.ph ... 104421ab23
Сам не проверял и как следует из теста темы там еще есть над чем работать, но, если кому надо - доводите до ума.
Если получится - поделитесь.
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
Re: Спрятать установку времени напоминания, если не использу
Все очень просто, достаточно просто дописать параметр hidden, в теге абзаца, где описана "даты ожидания"...она просто становиться скрытой на форме, но при этом присутствует в логике и ничего не нарушается
OTRS 4.16 Centos 6.5 x86-64
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Re: Спрятать установку времени напоминания, если не использу
Речь идет о том, что Дата скрывается, только если не выставлено состояние ожидания, если оно выставлено, то реквизит отображается для заполнения.Mardoc писал(а):Все очень просто, достаточно просто дописать параметр hidden, в теге абзаца, где описана "даты ожидания"...она просто становиться скрытой на форме, но при этом присутствует в логике и ничего не нарушается
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
Re: Спрятать установку времени напоминания, если не использу
по ссылке в первом посте появилась информация не связанная напрямую с темой, но очень интересная по сути
о том как добавить загрузку js скриптов без правки шаблонов в агентский и пользовательский интерфейс
http://stephan14x.evidente.de/?p=60
я стал реализовывать механизм, с некоторыми правками, но столкнулся на непреодолимую проблему, в теме на otterhub "захардкожено" английское название состояния, если это устраивает, а так же устраивает способ поиска label методом перебора всех label в форме и анализа их innerhtml с "захардкоженым" английским названием, то можно реализовать не внося исправления в шаблоны, если кому то нужно - могу описать как сделать таким способом
но для себя решил что мне такой вариант не подходит, сделал с правкой шаблонов, работает на 4.0.6, но будет работать на любой версии 4.х.х
для 3.х.х потребуются изменения, касающиеся функций Translate в шаблоне
приведу пример для шаблона AgentTicketActionCommon.tt
было:
стало:
было:
стало:
для других шаблонов аналогичным образом, но потребуется править
так как в некоторых шаблонах id select с выбором состояния NextStateId
о том как добавить загрузку 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">
для других шаблонов аналогичным образом, но потребуется править
Код: Выделить всё
togglePending('NewStateID');
debian 7 / postgresql / otrs 4.0.6
Re: Спрятать установку времени напоминания, если не использу
если в коде выше заменить
на
то javascript будет более универсальным и не требующей дополнительной правки под различные шаблоны
Код: Выделить всё
togglePending('NewStateID');
Код: Выделить всё
togglePending($('#NextStateID, #NewStateID, #StateID').first().attr('id'));
debian 7 / postgresql / otrs 4.0.6
Re: Спрятать установку времени напоминания, если не использу
otrs 4.0.6
пошаговое руководство к действию для
AgentTicketActionCommon.tt
AgentTicketCompose.tt
AgentTicketEmail.tt
AgentTicketPhoneCommon.tt
AgentTicketPhone.tt
1. загрузить вложенный файл pending_hide.tar.gz на сервер в /tmp
2. выполнить следующий код, фрагмент приведён с учётом того что otrs установлен в /opt, то есть /opt/otrs является корневой для системы, если у кого то не так, сделать правки относительно легко
выполнять надо от пользователя otrs, либо потом править права доступа
создаём структуру папок для размещения изменённых шаблонов
копируем шаблоны в которых планируются изменения
распаковываем архив с патчами
применяем патчи
удаляем патчи
очищаем кэш
PS: мануал как внести изменения без patch нужен ?
пошаговое руководство к действию для
AgentTicketActionCommon.tt
AgentTicketCompose.tt
AgentTicketEmail.tt
AgentTicketPhoneCommon.tt
AgentTicketPhone.tt
1. загрузить вложенный файл pending_hide.tar.gz на сервер в /tmp
2. выполнить следующий код, фрагмент приведён с учётом того что otrs установлен в /opt, то есть /opt/otrs является корневой для системы, если у кого то не так, сделать правки относительно легко
выполнять надо от пользователя otrs, либо потом править права доступа
создаём структуру папок для размещения изменённых шаблонов
Код: Выделить всё
mkdir -p /opt/otrs/Custom/Kernel/Output/HTML/Standard
копируем шаблоны в которых планируются изменения
Код: Выделить всё
cp /opt/otrs/Kernel/Output/HTML/Standard/AgentTicketActionCommon.tt /opt/otrs/Custom/Kernel/Output/HTML/Standard
cp /opt/otrs/Kernel/Output/HTML/Standard/AgentTicketCompose.tt /opt/otrs/Custom/Kernel/Output/HTML/Standard
cp /opt/otrs/Kernel/Output/HTML/Standard/AgentTicketEmail.tt /opt/otrs/Custom/Kernel/Output/HTML/Standard
cp /opt/otrs/Kernel/Output/HTML/Standard/AgentTicketPhoneCommon.tt /opt/otrs/Custom/Kernel/Output/HTML/Standard
cp /opt/otrs/Kernel/Output/HTML/Standard/AgentTicketPhone.tt /opt/otrs/Custom/Kernel/Output/HTML/Standard
Код: Выделить всё
tar xzf /tmp/pending_hide.tar.gz -С /opt/otrs/Custom/Kernel/Output/HTML/Standard/
Код: Выделить всё
cd /opt/otrs/Custom/Kernel/Output/HTML/Standard/
patch -i AgentTicketActionCommon.tt.patch
patch -i AgentTicketCompose.tt.patch
patch -i AgentTicketEmail.tt.patch
patch -i AgentTicketPhoneCommon.tt.patch
patch -i AgentTicketPhone.tt.patch
Код: Выделить всё
rm -f /opt/otrs/Custom/Kernel/Output/HTML/Standard/*.patch
Код: Выделить всё
/opt/otrs/bin/otrs.DeleteCache.pl
- Вложения
-
- pending_hide.tar.gz
- (1.53 КБ) 733 скачивания
debian 7 / postgresql / otrs 4.0.6
-
- OTRS Гуру
- Сообщения: 3119
- Зарегистрирован: 24 дек 2010, 09:27
- Откуда: Череповец
- Благодарил (а): 4 раза
- Поблагодарили: 5 раз
- Контактная информация:
Re: Спрятать установку времени напоминания, если не использу
Здорово!
Да уж не сочтите за труд. ДляPS: мануал как внести изменения без patch нужен ?
С уважением Юрий Колесников
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
OTRS 5.0.22, ITSM 5.0.22
OpenSuse 13.2, MariaDB 10.0.22
OTRS 5.0.22, ITSM 5.0.22 тестовая
Re: Спрятать установку времени напоминания, если не использу
на примере Kernel/Output/HTML/Standard/AgentTicketActionCommon.tt
строки с 236 по 240 (в оригинальном файле) выглядят
надо заменить на
строки с 244 по 245 (в оригинальном файле, в файле после правок приведённых выше с 268 по 269) выглядят
надо заменить на
строки с 236 по 240 (в оригинальном файле) выглядят
Код: Выделить всё
<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($('#NextStateID, #NewStateID, #StateID').first().attr('id'));
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">
debian 7 / postgresql / otrs 4.0.6