Шаблоны заявок в выпадающем списке, OTRS 5.0.2

Обсуждение вопросов и решений

Модератор: ykolesnikov

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

Шаблоны заявок в выпадающем списке, OTRS 5.0.2

Сообщение orient_19 » 11 ноя 2015, 08:38

Здравствуйте!
Захотел сделать шаблоны в выпадающем меню по руководству viewtopic.php?f=4&t=1396, но тоже столкнулся с проблемой работы кнопки отправки.
Автор пишет "Добавляем одним блоком "меню" и "действия" по кнопкам в самое начало". Что означает "одним блоком"? Приведите, пожалуйста, пример кода блока.
Получилось решить проблему отправки тикета другим путем?
Установлена OTRS 5.0.2. Сейчас в CustomerTicketMessage.tt у меня следующее:

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

# Шаблоны в выпадающем списке
    <div class="Field">
        <label class="Mandatory"><span class="Marker">*</span> [% Translate("Template") | html %]:</label>
        <form>
            <select id="setemplates" size="1">
                <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>
        </form>
    </div>
#Замена картриджа
    <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("Templ1") | html %]"/>
        <input type="hidden" name="Body" value="[% Translate("BodyTempl1") | html %]"/>
        <input type="hidden" name="TypeID" value="2"/>
        <input type="hidden" name="Expand" value="1"/>
    </form>
...
...
...
#Другое
    <form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" id="Template6">
        <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("Templ6") | html %]"/>
        <input type="hidden" name="Body" value="[% Translate("BodyTempl6") | html %]"/>
        <input type="hidden" name="TypeID" value="1"/>
        <input type="hidden" name="Expand" value="1"/>
    </form>
    <div class="Clear"></div>
С уважением, Александр Шабалин
OTRS 5.0.5, CentOS 6.7, MySQL 5.1.73

MrDron
OTRS Новобранец
Сообщения: 11
Зарегистрирован: 03 апр 2014, 07:53
Поблагодарили: 1 раз

Re: Шаблоны заявок в выпадающем списке, OTRS 5.0.2

Сообщение MrDron » 13 ноя 2015, 08:32

Имелось ввиду, что код "меню" вместо кода "кнопок" нужно закинуть под 2- строчку строчку, сразу после

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

<div id="MainBox" class="TicketCompose ARIARoleMain">
    <div class="Content">
Т.е. вот так должно выглядеть начало файла (целиком не могу выложить, ограничение форума):

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

[root@otrs Standard]# cat CustomerTicketMessage.tt
# --
# CustomerTicketMessage.tt - provides HTML form for customer message
# Copyright (C) 2001-2015 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.
# --
#

<div id="MainBox" class="TicketCompose ARIARoleMain">
    <div class="Content">

#-------------------------------------------------------------------------
# - Menu
<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>
#----------------------------------------------------

        <form action="[% Env("CGIHandle") %]" method="post" name="compose" id="NewCustomerTicket" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
            <input type="hidden" name="Action" value="[% Env("Action") %]" />
            <input type="hidden" name="Subaction" value="StoreNew" />
            <input type="hidden" name="Expand" id="Expand" value="" />
            <input type="hidden" name="FormID" value="[% Data.FormID | html %]" />
            <fieldset>


В предыдущей версии этот кусок кода можно было лепить непосредственно перед кодом "действия".

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

Re: Шаблоны заявок в выпадающем списке, OTRS 5.0.2

Сообщение orient_19 » 13 ноя 2015, 19:32

MrDron, спасибо за ответ!
Насколько понимаю, проблема в том, что нельзя делать вложенные form..
С уважением, Александр Шабалин
OTRS 5.0.5, CentOS 6.7, MySQL 5.1.73

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

Re: Шаблоны заявок в выпадающем списке, OTRS 5.0.2

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

Удалось решить проблему.
Из кода меню нужно убрать 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 КБ) 8547 просмотров
С уважением, Александр Шабалин
OTRS 5.0.5, CentOS 6.7, MySQL 5.1.73

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

Re: Шаблоны заявок в выпадающем списке, OTRS 5.0.2

Сообщение osada » 26 авг 2018, 09:29

Пытаюсь реализовать на OTRS 6-й версии все что тут указано.
Получается, что сами кнопки есть, но при их нажатии никакой реакции на создание самой заявки.

Т.е., жму, например, на кнопку "Ремонт компьютера", но реакции ноль. Сама функция отправки заявки у меня не работает.

На что обратить внимание?

hinatus
OTRS Новобранец
Сообщения: 17
Зарегистрирован: 06 ноя 2018, 12:32
Благодарил (а): 4 раза

Re: Шаблоны заявок в выпадающем списке, OTRS 5.0.2

Сообщение hinatus » 29 янв 2019, 08:19

Работает прекрасно. Пытался ли кто-то реализовать применение шаблонов через jQuery или AJAX, чтобы страница не обновлялась при выборе шаблона? пробую следующим образом

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

<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" id="test">
<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="Тема"/>
<input type="hidden" name="Body" value="Тестовый текст"/> 
</form>

<script type="text/javascript">
    var frm = $('#test');

    frm.submit(function (e) {

        e.preventDefault();

        $.ajax({
            type: frm.attr('method'),
            url: frm.attr('action'),
            data: frm.serialize(),
            success: function (data) {
                console.log('Запрос выполнен.');
                console.log(data);
            },
            error: function (data) {
                console.log('Ошибка.');
                console.log(data);
            },
        });
    });
</script>
Debian GNU/Linux 9.5, OTRS 6.0.5

Ответить