доработка AgentTicketPriority

Модератор: ykolesnikov

Antony
OTRS Новобранец
Сообщения: 53
Зарегистрирован: 08 окт 2014, 11:53

Re: доработка AgentTicketPriority

Сообщение Antony » 11 мар 2015, 14:22

Что-то я как pm подопиливаю, так и апач не рестартуется :D
OTRS 4.0.6
Ubuntu 14
PostgreSQL
Apache

vxb
OTRS Новобранец
Сообщения: 53
Зарегистрирован: 23 фев 2015, 13:16

Re: доработка AgentTicketPriority

Сообщение vxb » 11 мар 2015, 14:42

apache не стартует ?

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

perl -c полный-путь-к-файлу
предполагая вопрос что такое -c

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

Usage: perl [switches] [--] [programfile] [arguments]
...
  -c                check syntax only (runs BEGIN and CHECK blocks)
...
debian 7 / postgresql / otrs 4.0.6

Antony
OTRS Новобранец
Сообщения: 53
Зарегистрирован: 08 окт 2014, 11:53

Re: доработка AgentTicketPriority

Сообщение Antony » 11 мар 2015, 15:35

А апач может не перезагрудаться даже если с файлом всё ок и правки я внёс правильные?

Я думал, если пишет start fail значит я там ерунду пишу в модуле...
OTRS 4.0.6
Ubuntu 14
PostgreSQL
Apache

vxb
OTRS Новобранец
Сообщения: 53
Зарегистрирован: 23 фев 2015, 13:16

Re: доработка AgentTicketPriority

Сообщение vxb » 11 мар 2015, 22:22

я честно говоря в принципе не понимаю причём тут apache,
он даже если будет кривой файл - будет запускаться прекрасно, у него другая задача... обслуживать подключения к нему, вызывать обработчики,
apache может не запускаться если есть ошибка в конфигурационном файле, в лог-файлах apache надо смотреть в чём проблема
debian 7 / postgresql / otrs 4.0.6

Antony
OTRS Новобранец
Сообщения: 53
Зарегистрирован: 08 окт 2014, 11:53

Re: доработка AgentTicketPriority

Сообщение Antony » 12 мар 2015, 10:21

ругается на измененный файл
[Tue Mar 10 14:00:49.204732 2015] [perl:error] [pid 41280:tid 140547857450880] syntax error at /opt/otrs/Kernel/Modules/AgentTicketActi
onCommon.pm line 1, near "rtf1\\"\nsyntax error at /opt/otrs/Kernel/Modules/AgentTicketActionCommon.pm line 1, near "}}"\nsyntax error
at /opt/otrs/Kernel/Modules/AgentTicketActionCommon.pm line 14, near "par\r\n\\"\n"use" not allowed in expression at /opt/otrs/Kernel/M
odules/AgentTicketActionCommon.pm line 15, at end of line\n"use" not allowed in expression at /opt/otrs/Kernel/Modules/AgentTicketActio
nCommon.pm line 16, at end of line\nsyntax error at /opt/otrs/Kernel/Modules/AgentTicketActionCommon.pm line 16, near "par\r\nuse warni
ngs"\nsyntax error at /opt/otrs/Kernel/Modules/AgentTicketActionCommon.pm line 17, near "par\r\n\\"\n"use" not allowed in expression at
/opt/otrs/Kernel/Modules/AgentTicketActionCommon.pm line 18, at end of line\n"use" not allowed in expression at /opt/otrs/Kernel/Modul
es/AgentTicketActionCommon.pm line 19, at end of line\nsyntax error at /opt/otrs/Kernel/Modules/AgentTicketActionCommon.pm line 19, nea
r "par\r\nuse Kernel::System::Web::UploadCache"\n/opt/otrs/Kernel/Modules/AgentTicketActionCommon.pm has too many errors.\nCompilation
failed in require at (eval 68) line 2, <DATA> line 751.\n\t...propagated at /usr/share/perl/5.18/base.pm line 83, <DATA> line 751.\nBEG
IN failed--compilation aborted at /opt/otrs/Kernel/Modules/AgentTicketNote.pm line 15, <DATA> line 751.\nCompilation failed in require
at /opt/otrs/scripts/apache2-perl-startup.pl line 134, <DATA> line 751.\nBEGIN failed--compilation aborted at /opt/otrs/scripts/apache2
-perl-startup.pl line 134, <DATA> line 751.\nCompilation failed in require at (eval 2) line 1, <DATA> line 751.\n
[Tue Mar 10 14:00:49.204777 2015] [perl:error] [pid 41280:tid 140547857450880] Can't load Perl file: /opt/otrs/scripts/apache2-perl-sta
rtup.pl for server co-lnx-02
OTRS 4.0.6
Ubuntu 14
PostgreSQL
Apache

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

Re: доработка AgentTicketPriority

Сообщение alexus » 12 мар 2015, 10:33

1. Не правьте родные файлы - /opt/otrs/Custom/README
2. Ошибки в синатксисе загружаемых модулей могут вызывать падение Apache при старте
С уважением,
Алексей Юсов

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

Antony
OTRS Новобранец
Сообщения: 53
Зарегистрирован: 08 окт 2014, 11:53

Re: доработка AgentTicketPriority

Сообщение Antony » 12 мар 2015, 16:34

1. Не правьте родные файлы - /opt/otrs/Custom/README
2. Ошибки в синатксисе загружаемых модулей могут вызывать падение Apache при старте
Точно, спасибо. Надо ж было в папку КАСТОМ их записывать.
OTRS 4.0.6
Ubuntu 14
PostgreSQL
Apache

Antony
OTRS Новобранец
Сообщения: 53
Зарегистрирован: 08 окт 2014, 11:53

Re: доработка AgentTicketPriority

Сообщение Antony » 12 мар 2015, 17:19

а вообще мою проблему с маршрутизацией заявки, думаю,должно решить прикручивание аддона
Service-based Queue Routing

Но проблема та же: денег никто не даст на otrs-business-solution
OTRS 4.0.6
Ubuntu 14
PostgreSQL
Apache

Antony
OTRS Новобранец
Сообщения: 53
Зарегистрирован: 08 окт 2014, 11:53

Re: доработка AgentTicketPriority

Сообщение Antony » 26 мар 2015, 17:10

проблему получилось решить. потом напишу как.
OTRS 4.0.6
Ubuntu 14
PostgreSQL
Apache

Antony
OTRS Новобранец
Сообщения: 53
Зарегистрирован: 08 окт 2014, 11:53

Re: доработка AgentTicketPriority

Сообщение Antony » 23 окт 2015, 13:43

Сорри, что так долго. Но лучше позже, чем...

Итак AgentTicketPriority все берет из AgentTicketActionCommon. Поэтому за основу берем последний

в tt файле делаем поле Очередь обязательным

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

[% RenderBlockStart("Queue") %]
                        [b]<label class="Mandatory" for="NewQueueID"><span class="Marker">*</span>[% Translate("Queue") | html %]:</label>[/b]
                        <div class="Field">
                            [% Data.QueuesStrg %]
                            <div id="NewQueueIDError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
                            <div id="NewQueueIDServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
                        </div>
                        <div class="Clear"></div>
в pm добавляем строка 449-459

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

# check queue
            if (
                ( $Self->{ConfigObject}->Get('Ticket::Queue') )
                &&
                ( $Self->{Config}->{TicketQueue} ) &&
                ( !$GetParam{NewQueueID} )
                )
            {
                $Error{'NewQueueIDInvalid'} = ' ServerError';
            }
1037-1042

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

my $Tos = $Self->_GetTos(
            %GetParam,
            CustomerUserID => $CustomerUser,
            QueueID        => $QueueID,
        );
1262-1279

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

 {
                    Name         => 'NewQueueID',
                    Data         => $Tos,
                    SelectedID   => $GetParam{NewQueueID},
                    PossibleNone => 0,
                    Translation  => 1,
                    Max          => 100,
                },
1654-1667 заменяем класс

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

    # set move queues
        $Param{QueuesStrg} = $Self->{LayoutObject}->AgentQueueListOption(
            Data           => { %MoveQueues, '' => '-' },
            Multiple       => 0,
            Size           => 0,
            #Class          => 'NewQueueID',
            Class          => 'Validate_Required' . ( $Param{Errors}->{NewQueueIDInvalid} || '' ),
            Name           => 'NewQueueID',
            SelectedID     => $Param{NewQueueID} || $Param{QueueID},
            TreeView       => $TreeView,
            CurrentQueueID => $Param{QueueID},
            OnChangeSubmit => 0,
        );
В конце добавим описание для GetTos

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

sub _GetTos {
    my ( $Self, %Param ) = @_;

    # check own selection
    my %NewTos;
    if ( $Self->{ConfigObject}->Get('Ticket::Frontend::NewQueueOwnSelection') ) {
        %NewTos = %{ $Self->{ConfigObject}->Get('Ticket::Frontend::NewQueueOwnSelection') };
    }
    else {

        # SelectionType Queue or SystemAddress?
        my %Tos;
        if ( $Self->{ConfigObject}->Get('Ticket::Frontend::NewQueueSelectionType') eq 'Queue' ) {
            %Tos = $Self->{TicketObject}->MoveList(
                %Param,
                Type    => 'create',
                Action  => $Self->{Action},
                QueueID => $Self->{QueueID},
                UserID  => $Self->{UserID},
            );
        }
        else {
            %Tos = $Self->{DBObject}->GetTableData(
                Table => 'system_address',
                What  => 'queue_id, id',
                Valid => 1,
                Clamp => 1,
            );
        }

        # get create permission queues
        my %UserGroups = $Self->{GroupObject}->GroupMemberList(
            UserID => $Self->{UserID},
            Type   => 'create',
            Result => 'HASH',
        );

        # build selection string
        QUEUEID:
        for my $QueueID ( sort keys %Tos ) {
            my %QueueData = $Self->{QueueObject}->QueueGet( ID => $QueueID );

            # permission check, can we create new tickets in queue
            next QUEUEID if !$UserGroups{ $QueueData{GroupID} };

            my $String = $Self->{ConfigObject}->Get('Ticket::Frontend::NewQueueSelectionString')
                || '<Realname> <<Email>> - Queue: <Queue>';
            $String =~ s/<Queue>/$QueueData{Name}/g;
            $String =~ s/<QueueComment>/$QueueData{Comment}/g;
            if ( $Self->{ConfigObject}->Get('Ticket::Frontend::NewQueueSelectionType') ne 'Queue' )
            {
                my %SystemAddressData = $Self->{SystemAddress}->SystemAddressGet(
                    ID => $Tos{$QueueID},
                );
                $String =~ s/<Realname>/$SystemAddressData{Realname}/g;
                $String =~ s/<Email>/$SystemAddressData{Name}/g;
            }
            $NewTos{$QueueID} = $String;
        }
    }

    # add empty selection
    $NewTos{''} = '-';
    return \%NewTos;
}
OTRS 4.0.6
Ubuntu 14
PostgreSQL
Apache

Ответить