Создание шаблонов заявок. Часть 2 (обновлено)

Только для готовых решений! Пожалуйста, не используйте для вопросов и обсуждений!

Модератор: ykolesnikov

Ответить
firebolt
OTRS Новобранец
Сообщения: 177
Зарегистрирован: 13 сен 2012, 13:46

Создание шаблонов заявок. Часть 2 (обновлено)

Сообщение firebolt » 05 ноя 2012, 14:24

Создаем шаблоны заявок на странице создания новой заявки клиентом OTRS.
screen1.png
screen1.png (22.63 КБ) 19626 просмотров
Так как тема не вместилась в дозволенные 6000 символов, шаблоны для клиента пришлось вынести в отдельную тему. Начало читаем здесь. Там же Вы можете узнать о том, какие изменения нужно внести в код, для того, чтобы это работало в версии OTRS 4.0.

Для того, чтобы создать эти же шаблоны на странице создания заявки в клиентской части, делаем следующее:

Файл кастомного перевода уже существует, значения взяты из него.

В файл ./otrs/Kernel/Output/HTML/Standard/CustomerTicketMessage.dtl копируем в строку №19 секцию для создания кнопок из предыдущего файла AgentTicketPhone.dtl. И так же копируем действия для создаваемых кнопок, описаные к конце файла.
Для того, чтобы эти кнопки работали без ошибок, необходимо добавить еще одну строку в код действия:
<input type="hidden" name="Expand" value="1"/>

Код: Выделить всё

<form action="$Env{"CGIHandle"}" method="post" enctype="multipart/form-data" id="Template1">
 <input type="hidden" name="Action" value="$Env{"Action"}"/>
 <input type="hidden" name="Subaction" value="StoreNew"/>
 <input type="hidden" name="FormID" value="$QData{"FormID"}"/>
 <input type="hidden" name="ExpandCustomerName" value="1"/>
 <input type="hidden" name="Subject" value="$Text{"Sysblock"}"/>
 <input type="hidden" name="Body" value="$Text{"BodySysblock"}"/>
 <input type="hidden" name="TypeID" value="2"/>
 <input type="hidden" name="Expand" value="1"/>
</form>
Проверяем. Радуемся.

Если остаются вопросы, смотрим это видео. Если после просмотра вопросы остались, пишите в личку.
Последний раз редактировалось firebolt 05 дек 2014, 06:45, всего редактировалось 1 раз.
Версия OTRS (5.0.22)
Debian 9 Stretch
Версия СУБД (MySQL 5.7.22)

firebolt
OTRS Новобранец
Сообщения: 177
Зарегистрирован: 13 сен 2012, 13:46

Re: Создание шаблонов заявок. Часть 2

Сообщение firebolt » 09 авг 2013, 08:20

А почему второй частью никто не интересуется? Клентам тоже нравится нажать кнопку и "получить все".
Версия OTRS (5.0.22)
Debian 9 Stretch
Версия СУБД (MySQL 5.7.22)

mukexa
OTRS Новобранец
Сообщения: 148
Зарегистрирован: 30 апр 2013, 19:08
Откуда: Украина, Киев.

Re: Создание шаблонов заявок. Часть 2

Сообщение mukexa » 09 авг 2013, 10:47

Думаю тема станет "живее" если в конце первой части сделать ссылку на вторую )
OTRS 5s, Ubuntu 12.04

iosysa
OTRS Новобранец
Сообщения: 1
Зарегистрирован: 11 янв 2014, 11:24

Re: Создание шаблонов заявок. Часть 2

Сообщение iosysa » 11 янв 2014, 11:57

Спасибо за хорошую проработку вопроса. Очень помогло быстро настроить загрузку шаблонов.

В предыдущей части поднимался вопрос о том, как вставить перевод строки в строку шаблона. Наверняка Вы уже решили этот вопрос, но для тех, кто впервые сталкивается с таким нюансом просто проинформирую, что в атрибут value можно вставлять практически любой HTML код, перемешивая его со ссылками на поля OTRS. Для примера:

<form action="$Env{"CGIHandle"}" method="post" enctype="multipart/form-data" id="Template4">
<input type="hidden" name="Action" value="$Env{"Action"}"/>
...
<input type="hidden" name="DynamicField_RoomNumber" value="318">
<input type="hidden" name="Body" value="Параметры заявки <hr>ФИО заказчика: <br> Вид спецматериалов: <br> Количество: <br> К дате: <br> По теме: $Text{"SpetialRequest"}"/>
</form>

Mardoc
OTRS Новобранец
Сообщения: 106
Зарегистрирован: 09 окт 2014, 10:53

Re: Создание шаблонов заявок. Часть 2 (обновлено)

Сообщение Mardoc » 05 дек 2014, 16:13

У кого нибудь получилось вставить ссылку на значение динамического поля в Body?
OTRS 4.16 Centos 6.5 x86-64

Karapuz
OTRS Новобранец
Сообщения: 46
Зарегистрирован: 28 ноя 2012, 15:12

Re: Создание шаблонов заявок. Часть 2 (обновлено)

Сообщение Karapuz » 14 мар 2015, 23:49

Всем привет.

Почему то в версии OTRS 4 шаблоны не работают для CustomerTicketMessage.tt. Если размещать сведения о шаблонах в конце файла, то при нажатии новой заявки в интерфейса пользователя - система падает в ошибку ссылаясь на последние строки файла. Для агентов тот же код работает корректно. Кто как решил?
OTRS 4.0.8 (Appliance), ITSM, FAQ, Debian, Apache, PostgreSQL

MrDron
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 03 апр 2014, 07:53

Re: Создание шаблонов заявок. Часть 2 (обновлено)

Сообщение MrDron » 03 июн 2015, 14:19

Шаблоны заявок выпадающее меню для 4-й версии

Код вместо "кнопок":

Код: Выделить всё

<label>[% Translate("Templates") | html %]:</label>
                    <div class="Field">
                        <form>
                        <select id="setemplates" size="1">
                        <option value="nothing" selected="selected">-</option>
                        <option value="Template1">[% Translate("Sysblock") | html %]</option>
                        <option value="Template2">[% Translate("Periphery") | html %]</option>
                        <option value="Template3">[% Translate("Software") | html %]</option>
                        <option value="Template4">[% Translate("Account") | html %]</option>
                        <option value="Template5">[% Translate("OS") | html %]</option>
                        <option value="Template6">[% Translate("LAN") | html %]</option>
                        <option value="Template7">[% Translate("Assist") | html %]</option>
                        <option value="Template8">[% Translate("Portal") | html %]</option>
                        <option value="Template9">[% Translate("WEB") | html %]</option>
                        </select>
                        </form>
                    </div>
                    <div class="Clear"></div>

Действия (как и для кнопок):

Код: Выделить всё

# example template form for customizations
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" id="Template1">
 <input type="hidden" name="Action" value="[% Env("Action") %]"/>
 <input type="hidden" name="Subaction" value="StoreNew"/>
 <input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
 <input type="hidden" name="ExpandCustomerName" value="1"/>
 <input type="hidden" name="Subject" value="[% Translate("Sysblock") | html %]"/>
 <input type="hidden" name="Body" value="[% Translate("BodySysblock") | html %]"/>
 <input type="hidden" name="Dest" value="[% Translate("Группа поддержки") | html %]"/>
 <input type="hidden" name="TypeID" value="2"/>
</form>
..... пропущено с 2-го по 8-й

Код: Выделить всё

<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" id="Template9">
 <input type="hidden" name="Action" value="[% Env("Action") %]"/>
 <input type="hidden" name="Subaction" value="StoreNew"/>
 <input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
 <input type="hidden" name="ExpandCustomerName" value="1"/>
 <input type="hidden" name="Subject" value="[% Translate("WEB") | html %]"/>
 <input type="hidden" name="Body" value="[% Translate("BodyWEB") | html %]  [% Translate("BodyAdd") | html %]"/>
 <input type="hidden" name="Dest" value="[% Translate("1||Группа поддержки") | html %]"/>
 <input type="hidden" name="TypeID" value="2"/>
</form>
И добавить в конце:

Код: Выделить всё

<script type="text/javascript">
var selectmenu=document.getElementById("setemplates")
selectmenu.onchange=function(){ //run some code when "onchange" event fires
        var chosenoption=this.options[this.selectedIndex] //this refers to "selectmenu"
        if (chosenoption.value!="nothing"){
                document.getElementById(chosenoption.value).submit();
        }
}
</script>
Соответственно подправить ru_Custom.pm

use utf8; #-- добавить
$Self->{Charset} = ['utf-8', ]; # - добавить

Код: Выделить всё

# --
# Kernel/Language/xx_Custom.pm - provides xx custom language translation
# Copyright (C) 2001-2014 OTRS AG, http://otrs.com/
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --

package Kernel::Language::ru_Custom;

use strict;
use warnings;
use utf8;

sub Data {
    my $Self = shift;

    # $$START$$
    # possible charsets
    $Self->{Charset} = ['utf-8', ];

    # own translations
#    $Self->{Translation}->{'Lock'}   = 'Lala';
#    $Self->{Translation}->{'Unlock'} = 'Lulu';
 $Self->{Translation}->{'Templates'} = 'Шаблоны служебок';

 $Self->{Translation}->{'Группа поддержки'} = '1||Группа поддержки';
 $Self->{Translation}->{'Группа программирования'} = '2||Группа программирования';
 $Self->{Translation}->{'Группа администрирования'} = '4||Группа администрирования';

 $Self->{Translation}->{'BodyAdd'} = '<br> <br>Параметры заявки: <hr> ФИО: <br> Организация: <br> кабинет №';

 $Self->{Translation}->{'Sysblock'} = 'Ремонт системного блока';
 $Self->{Translation}->{'BodySysblock'} = 'Прошу Вас произвести ремонт системного блока компьютера...';

 $Self->{Translation}->{'Periphery'} = 'Периферийное оборудование';
 $Self->{Translation}->{'BodyPeriphery'} = 'Прошу Вас произвести ремонт/настройку (вместо этого текста указать...';

 $Self->{Translation}->{'Software'} = 'Установка/настройка ПО';
 $Self->{Translation}->{'BodySoftware'} = 'Прошу Вас  установить/настроить программное обеспечение на рабочем месте...';

 $Self->{Translation}->{'Account'} = 'Учетные записи';
 $Self->{Translation}->{'BodyAccount'} = 'Прошу Вас добавить/изменить учетную запись для пользователя (вместо этого текста указать...';

 $Self->{Translation}->{'OS'} = 'Операционная система';
 $Self->{Translation}->{'BodyOS'} = 'Прошу Вас произвести настройку/установку  операционной системы (вместо этого текста указать...';

 $Self->{Translation}->{'LAN'} = 'ЛВС/VPN/Internet';
 $Self->{Translation}->{'BodyLAN'} = 'Прошу Вас произвести настройку/установку  сетевого (LAN/Intenet/VPN) оборудования для (вместо этого текста указать...';

 $Self->{Translation}->{'Assist'} = 'Консультация/помощь';
 $Self->{Translation}->{'BodyAssist'} = 'Прошу Вас проконсультировать/обучить как сделать чтобы все было (вместо этого текста указать...';

 $Self->{Translation}->{'Portal'} = 'Портал';
 $Self->{Translation}->{'BodyPortal'} = 'Прошу Вас проконсультировать/обучить/добавить функцию как сделать чтобы все было (вместо этого текста указать...';

 $Self->{Translation}->{'WEB'} = 'Web-сайт';
 $Self->{Translation}->{'BodyWEB'} = 'Прошу Вас создать/изменить страницу/сайт чтобы все было (вместо этого текста указать...';


    # or a other syntax would be
    #    $Self->{Translation} = {
    #        %{$Self->{Translation}},
    #        # own translations
    #        Lock => 'Lala',
    #        UnLock => 'Lulu',
    #    };

    # $$STOP$$
}

1;
Последний раз редактировалось MrDron 03 июн 2015, 14:32, всего редактировалось 1 раз.

MrDron
OTRS Новобранец
Сообщения: 8
Зарегистрирован: 03 апр 2014, 07:53

Re: Создание шаблонов заявок. Часть 2 (обновлено)

Сообщение MrDron » 03 июн 2015, 14:28

аналогично правим CustomerTicketMessage.tt
Добавляем одним блоком "меню" и "действия" по кнопкам в самое начало, криво, но по другому не работает "отправка" (разбираюсь)

не забываем в "действия" вставлять

Код: Выделить всё

<input type="hidden" name="Expand" value="1" />
т.е.

Код: Выделить всё

<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" id="Template1">
 <input type="hidden" name="Action" value="[% Env("Action") %]"/>
 <input type="hidden" name="Subaction" value="StoreNew"/>
 <input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
 <input type="hidden" name="ExpandCustomerName" value="1"/>
 <input type="hidden" name="Subject" value="[% Translate("Sysblock") | html %]"/>
 <input type="hidden" name="Body" value="[% Translate("BodySysblock") | html %]"/>
 <input type="hidden" name="Dest" value="[% Translate("Группа поддержки") | html %]"/>
 <input type="hidden" name="TypeID" value="2"/>
 <input type="hidden" name="Expand" value="1" />
</form>
Результат:
Безымянный131.jpg
Безымянный131.jpg (128.23 КБ) 15344 просмотра

orient_19
OTRS Новобранец
Сообщения: 20
Зарегистрирован: 10 ноя 2015, 12:13
Откуда: г. Иркутск

Re: Создание шаблонов заявок. Часть 2 (обновлено)

Сообщение orient_19 » 17 ноя 2015, 10:09

Удалось решить проблему работы кнопки отправки.
Из кода меню нужно убрать form, сам код необходимо разместить в блоке "RenderBlockStart" после

Код: Выделить всё

[% RenderBlockStart("TicketType") %]
                <div>
Полностью это выглядит так:

Код: Выделить всё

[% RenderBlockStart("TicketType") %]
                <div>
# Шаблоны в выпадающем списке
                    <div class="Field" style="margin-bottom: 6px;">
                        <label class="Mandatory"><span class="Marker">*</span> [% Translate("Template") | html %]:</label>
                        <select id="setemplates" size="1" style="background: #fff; border: 1px solid #c0c0c0; height: 22px; margin: 0; width: 216px;">
                            <option value="nothing" selected="selected">выберите из списка</option>
                            <option value="Template1">[% Translate("Templ1") | html %]</option>
                            <option value="Template2">[% Translate("Templ2") | html %]</option>
                            <option value="Template3">[% Translate("Templ3") | html %]</option>
                            <option value="Template4">[% Translate("Templ4") | html %]</option>
                            <option value="Template5">[% Translate("Templ5") | html %]</option>
                            <option value="Template6">[% Translate("Templ6") | html %]</option>
                        </select>
                    </div>
                    <!--
                    <label for="TicketNumber">[% Config("Ticket::Hook") %]</label>
                    <input title="Ticket#" type="text" name="TicketNumber" size="30" value="[% Data.TicketNumber | html %]" />
                    -->
                    <label for="TypeID" class="Mandatory"><span class="Marker">*</span>[% Translate("Type") | html %]:</label>
                    [% Data.TypeStrg %]
                    <div id="TypeIDError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div id="TypeIDServerError" class="TooltipErrorMessage NoJavaScriptMessage[% Data.TypeIDInvalid | html %]" ><p>[% Translate("This field is required.") | html %]</p></div>
                    <div class="Clear"></div>
                </div>

[% WRAPPER JSOnDocumentComplete %]
<script type="text/javascript">//<![CDATA[
    $('#TypeID').bind('change', function (Event) {
        Core.AJAX.FormUpdate($('#NewCustomerTicket'), 'AJAXUpdate', 'TypeID', ['Dest', 'PriorityID', 'ServiceID', 'SLAID', [% Data.DynamicFieldNamesStrg %]]);
    });
//]]></script>
[% END %]
[% RenderBlockEnd("TicketType") %]
Немного поправлены стили, выглядит всё это, как на изображении:
ticket_msg.png
ticket_msg.png (34.22 КБ) 13744 просмотра
С уважением, Александр Шабалин
OTRS 5.0.5, CentOS 6.7, MySQL 5.1.73

dimon.debian
OTRS Новобранец
Сообщения: 3
Зарегистрирован: 01 фев 2018, 09:54

Re: Создание шаблонов заявок. Часть 2 (обновлено)

Сообщение dimon.debian » 05 фев 2018, 09:42

Как вы сделали меню по горизонтали

osada
OTRS Новобранец
Сообщения: 11
Зарегистрирован: 21 авг 2018, 13:04

Re: Создание шаблонов заявок. Часть 2 (обновлено)

Сообщение osada » 21 авг 2018, 15:37

Коллеги, а есть ли изменения по созданию шаблонов для 6-й версии?

alexus
OTRS Гуру
Сообщения: 4649
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 23 раза
Поблагодарили: 24 раза

Re: Создание шаблонов заявок. Часть 2 (обновлено)

Сообщение alexus » 21 авг 2018, 16:11

В 6ке изменилась работ с JS на странице - это как минимум, что может повлиять.
С уважением,
Алексей Юсов

Prod: OTRS ITSM 5.0.14 on CentOS 7 x64 Linux with MySQL 5.7

Radiant System OTRS Intergrator RU
Radiant System OTRS Intergrator EN
Хотите внедрить OTRS? Спросите меня как!
Следите за нашими новостями на Facebook

osada
OTRS Новобранец
Сообщения: 11
Зарегистрирован: 21 авг 2018, 13:04

Re: Создание шаблонов заявок. Часть 2 (обновлено)

Сообщение osada » 22 авг 2018, 18:28

alexus писал(а):
21 авг 2018, 16:11
В 6ке изменилась работ с JS на странице - это как минимум, что может повлиять.
Не совсем силен в этом, можно ли подробнее на что конкретно это может повлиять?

alexus
OTRS Гуру
Сообщения: 4649
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 23 раза
Поблагодарили: 24 раза

Re: Создание шаблонов заявок. Часть 2 (обновлено)

Сообщение alexus » 22 авг 2018, 23:09

Это раздел Howto. Все вопросы или проблемы - в Help или Общие. Для уточнения деталей или кто ищет Силу - http://doc.otrs.com/doc/manual/develope ... arted.html
С уважением,
Алексей Юсов

Prod: OTRS ITSM 5.0.14 on CentOS 7 x64 Linux with MySQL 5.7

Radiant System OTRS Intergrator RU
Radiant System OTRS Intergrator EN
Хотите внедрить OTRS? Спросите меня как!
Следите за нашими новостями на Facebook

Ответить