Новый виджет для Дайджеста на SlickGrid

Модератор: ykolesnikov

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Новый виджет для Дайджеста на SlickGrid

Сообщение merkushov »

Разработал новый виджет для дайджеста. Использует javascript библиотеку https://github.com/mleibman/SlickGrid/wiki Хочу поделиться бэттой с сообществом.
От тех кому удастся это поставить :) принимаются сообщения об ошибках и пожелания касающихся perl'а, по поводу javascript претензии не принимаются! По прежнему ищу человека, который смог бы довести javascript до ума.

Выглядит это вот так
slickgrid01.png
slickgrid01.png (72.66 КБ) 50158 просмотров
slickgrid02.png
slickgrid02.png (34.58 КБ) 50158 просмотров
Есть фильтрация, сортировка, разбивка на страницы.

Некоторые особенности и ограничения:
- Виджет загружает сразу все данные из базы по заданной выборке, поэтому нужен хороший быстрый браузер (ie не подходит!). За это мы получаем возможность быстрой фильтрации и сортировки, даже по тем полям, по которым это затруднительно, используя ядро OTRS.
- Работает только с локальной базой Клиентов.
- Нужна последняя версия библиотеку jQuery 1.10 или jQuery 2.х Версия jQuery 2.х уже не поддерживает ie 6, 7 и 8
Меркушов Виктор, perl программист
merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение merkushov »

otrs.SlickGrid.tar.gz
Файлы которые нужно добавить
(196.15 КБ) 1063 скачивания
diff.tar.gz
Изменения в существующих файлах
(3.42 КБ) 1065 скачиваний
в настройках Loader::Agent::CommonJS###000-Framework изменить версию jquery на jquery-1.10
thirdparty/jquery-1.6.4/jquery.js -> thirdparty/jquery-1.10/jquery.js
thirdparty/jquery-ui-1.8.21/jquery-ui.js -> thirdparty/jquery-ui-1.10/jquery-ui.js
и добавить thirdparty/jquery-2.0.2/jquery-migrate-1.2.1.js

в настройки Frontend::Module###AgentDashboard добавить новых js библиотек

'thirdparty/jquery-cookie/jquery.cookie.js',
'thirdparty/jquery-lib/jquery.event.drag-2.2.js',
'thirdparty/slick-grid/slick.core.js',
'thirdparty/slick-grid/slick.autotooltips.js',
'thirdparty/slick-grid/slick.editors.js',
'thirdparty/slick-grid/slick.dataview.js',
'thirdparty/slick-grid/slick.formatters.js',
'thirdparty/slick-grid/controls/slick.pager.js',
'thirdparty/slick-grid/slick.grid.js',
'Core.SlickGrid.js'

пересобрать конфиг
perl ./bin/otrs.RebuildConfig.pl
Меркушов Виктор, perl программист
Tyz
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 31 июл 2013, 17:21

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение Tyz »

Понравился внешний вид! захотелось попробовать.
Подскажите, а как установить второй файл, который вы прекрепили? (я так понимаю там изменения нада вносить... их делать все в ручную?)
спасибо.
merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение merkushov »

Да, изменения из второго файла делать придётся вручную. По крайней мере, я не знаю как можно автоматизировать этот процесс.
Привёл все изменения одним файлом, чтобы долго и нудно не описывать в каком файле что нужно удалить, а что добавить.
Меркушов Виктор, perl программист
Tyz
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 31 июл 2013, 17:21

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение Tyz »

Спасибо, будем менять и пробовать:)
Tyz
OTRS Новобранец
Сообщения: 6
Зарегистрирован: 31 июл 2013, 17:21

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение Tyz »

пару вопрос по синтаксису файла, например первые пару строк с файла:

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

diff --git a/Kernel/Language/ru_Custom.pm b/Kernel/Language/ru_Custom.pm
index cd163e9..ff5fd1e 100644
--- a/Kernel/Language/ru_Custom.pm
+++ b/Kernel/Language/ru_Custom.pm
@@ -7,7 +7,7 @@
 # did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
 # --
на данном примере можете объяснить построчно что нежно сделать?
Например файла /Kernel/Language/ru_Custom.pm не существует у меня(версия OTRS последняя). Его необходимо создать?
Спасибо
merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение merkushov »

Этот файл нужно создать копированием из файла Kernel/Language/xx_Custom.pm
Меркушов Виктор, perl программист
alexus
OTRS Гуру
Сообщения: 5220
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 96 раз
Поблагодарили: 84 раза

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение alexus »

Tyz писал(а):Например файла /Kernel/Language/ru_Custom.pm не существует у меня(версия OTRS последняя). Его необходимо создать?
RTFM - http://doc.otrs.org/developer/3.1/en/ht ... slate.html!
С уважением,
Алексей Юсов

Prod: Radiant Service Desk on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!
Alexander
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 08 авг 2013, 08:29

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение Alexander »

Интересное дополнение, нужно будет попробовать, спасибо! =)
А можете выложить готовые файлы, в которых уже внесены правки, в качестве примера?
merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение merkushov »

Могу выложить и файлы. Как мне кажется, это менее рационально, т.к. версии OTRS могут сильно отличатся друг от друга, но если только в качестве примера.
На следующей неделе постараюсь выложить обновление. Будет исправлено пару багов и добавлен функционал настройки основных фильтров через конфиг.
Меркушов Виктор, perl программист
Gorcom
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 19 ноя 2010, 09:37

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение Gorcom »

Есть вопрос касательно:

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

diff --git a/scripts/auto_build.sh b/scripts/auto_build.sh
old mode 100755
new mode 100644
Что делать с auto_build.sh?

Остальные ведь тоже по аналогии?

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

diff --git a/scripts/auto_build/xml2docbook.pl b/scripts/auto_build/xml2docbook.pl
old mode 100755
new mode 100644
diff --git a/scripts/otrs-scheduler-linux b/scripts/otrs-scheduler-linux
old mode 100755
new mode 100644
diff --git a/scripts/suse-rcotrs b/scripts/suse-rcotrs
old mode 100755
new mode 100644
merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение merkushov »

Можно оставить как есть. Смена прав там ни на что не влияет.
Похоже это ./bin/otrs.SetPermissions.pl права покорёжил.
Меркушов Виктор, perl программист
Gorcom
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 19 ноя 2010, 09:37

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение Gorcom »

При установке вылезла ошибка.
Когда подсовываю модифицированный Ticket.pm apache не запускается

В логах вот что:

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

[Fri Aug 09 15:27:21 2013] [error] Global symbol "@Param" requires explicit package name at /opt/otrs/Custom/Kernel/System/TicketSearchSimple.pm line 727.\nCompilation failed in require at /opt/otrs/Custom/Kernel/System/Ticket.pm line 18.\nBEGIN failed--compilation aborted at /opt/otrs/Custom/Kernel/System/Ticket.pm line 18.\nCompilation failed in require at /opt/otrs/scripts/apache2-perl-startup.pl line 89.\nBEGIN failed--compilation aborted at /opt/otrs/scripts/apache2-perl-startup.pl line 89.\nCompilation failed in require at (eval 2) line 1.\n
[Fri Aug 09 15:27:21 2013] [error] Can't load Perl file: /opt/otrs/scripts/apache2-perl-startup.pl for server 192.168.*.*:80, exiting...


Что может быть?
merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение merkushov »

Ошибка! У себя я её уже исправил :)

Исправьте

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

- return unless defined $Param{IDList} && ref $Param[IDList] eq 'ARRAY' && scalar @{$Param{IDList}};
+ return unless defined $Param{IDList} && ref $Param{IDList} eq 'ARRAY' && scalar @{$Param{IDList}};
Меркушов Виктор, perl программист
Siyet
OTRS Новобранец
Сообщения: 62
Зарегистрирован: 26 июн 2013, 16:56

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение Siyet »

Все отлично установилось. Есть вопрос: в каком месте данный виджет выхватывает поля тикетов?
Во-первых, хочу убрать SLA и Сервис.
Во-вторых, добавить поле кем создан.
В-третьих, вместо поля CustomerID прикрутить CustomerCompanyName (ID'шники у пользователей и компаний одинаковые).
В-четвертых, не пойму, что за динамические поля он мне отображает (как у Вас на скриншоте), так как в админке в списке динамических полей у меня только системные (их два).
Ну и последнее и самое требуемое, это добавить фильтр "Созданные мною".

Если подскажите, где что копать буду Очень признателен.
OTRS 3.2.8, Ubuntu 12.04, Apache, PostgreSQL
Siyet
OTRS Новобранец
Сообщения: 62
Зарегистрирован: 26 июн 2013, 16:56

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение Siyet »

Кое что раскопал:
Есть такая настройка DashboardBackend###0100-Ticket-SlickGrid.
Чтобы снять/изменить ограничение по отображаемым заявкам правим пункт Attributes. По-умолчанию "StateTypeIDs=2", чтобы сделать отображение только новых и открытых нужно вписать "StateType=new;StateType=open;". Чтобы отображались вообще все заявки вписываем "StateType=all;". Посмотрите ниже на другие настройки, поймете какие еще "вкусности" можно настроить.
Также есть поле Limit - т.е. выбрать количество отображаемых заявок по-умолчанию.
Есть поле Time - здесь Вы можете настроить тип отображения времени.
Ну и пункт Title - думаю всем понятно что это.
В этой же настройке можете убрать созданные по умолчанию ссылки на динамические поля.
OTRS 3.2.8, Ubuntu 12.04, Apache, PostgreSQL
merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение merkushov »

Siyet писал(а):Кое что раскопал:
Есть такая настройка DashboardBackend###0100-Ticket-SlickGrid.
Чтобы снять/изменить ограничение по отображаемым заявкам правим пункт Attributes. По-умолчанию "StateTypeIDs=2", чтобы сделать отображение только новых и открытых нужно вписать "StateType=new;StateType=open;". Чтобы отображались вообще все заявки вписываем "StateType=all;". Посмотрите ниже на другие настройки, поймете какие еще "вкусности" можно настроить.
Также есть поле Limit - т.е. выбрать количество отображаемых заявок по-умолчанию.
Есть поле Time - здесь Вы можете настроить тип отображения времени.
Не уверен, что всё это будет работать для этого виджета. Вот список полей, доступных для настроек виджета
TypeIDs StateIDs StateTypeIDs LockIDs OwnerIDs ResponsibleIDs CreatedUserIDs QueueIDs PriorityIDs ServiceIDs SLAIDs
остальные я выкинул, чтобы увеличить быстродействие. Список значений в этом виджете задаётся через запятую, т.е.
StateTypeIDs=1,2,3;
Настраиваемые фильтры и дефолтные поля я реализовал через настройку в конфиге, осталось выложить в общий доступ.
Меркушов Виктор, perl программист
Siyet
OTRS Новобранец
Сообщения: 62
Зарегистрирован: 26 июн 2013, 16:56

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение Siyet »

Еще кое-что раскопал))
В файле otrs/Kernel/Output/HTML/DashboardTicketSlickGrid.pm есть функция _FieldConfig. В ней массив @CommonFieldsConfig. Здесь Вы можете настроить ширину столбцов или вообще убрать возможность выбора конкретных столбцов.
OTRS 3.2.8, Ubuntu 12.04, Apache, PostgreSQL
Siyet
OTRS Новобранец
Сообщения: 62
Зарегистрирован: 26 июн 2013, 16:56

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение Siyet »

Не уверен, что всё это будет работать для этого виджета. Вот список полей, доступных для настроек виджета
Ставил то, что выложено в данном топике - все работает.
OTRS 3.2.8, Ubuntu 12.04, Apache, PostgreSQL
EugeneOl
OTRS Новобранец
Сообщения: 13
Зарегистрирован: 28 окт 2013, 17:28

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение EugeneOl »

при попытке установить, выдало вот такую ошибку кошда пытаюсь зайти на интерфейс

Error Message: Global symbol "@Param" requires explicit package name at /opt/otrs/bin/cgi-bin/.[..]

Подскажите что может быть?

Oops! An Error occurred.
Backend ERROR: OTRS-CGI-10 Perl: 5.14.2 OS: linux Time: Tue Nov 5 17:31:34 2013 Message: Global symbol "@Param" requires explicit package name at /opt/otrs/bin/cgi-bin/../../Kernel/System/TicketSearchSimple.pm line 727. Compilation failed in require at /opt/otrs/bin/cgi-bin/../../Kernel/System/Ticket.pm line 18. BEGIN failed--compilation aborted at /opt/otrs/bin/cgi-bin/../../Kernel/System/Ticket.pm line 18. RemoteAddress: 127.0.0.1 RequestURI: /otrs/index.pl?Action=Logout;ChallengeToken=9b65894b6026e7a50a1afce4c6aeb277; Traceback (6086): Module: Kernel::System::Web::InterfaceAgent::Run (OTRS 3.2.9) Line: 166 Module: /opt/otrs/bin/cgi-bin/index.pl (unknown version) Line: 41
merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение merkushov »

Смотрите чуть выше на предыдущей странице.
Меркушов Виктор, perl программист
EugeneOl
OTRS Новобранец
Сообщения: 13
Зарегистрирован: 28 окт 2013, 17:28

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение EugeneOl »

merkushov если вы про это
- return unless defined $Param{IDList} && ref $Param[IDList] eq 'ARRAY' && scalar @{$Param{IDList}};
+ return unless defined $Param{IDList} && ref $Param{IDList} eq 'ARRAY' && scalar @{$Param{IDList}};
то я вижу что абсолютно две одинаковые строки. Если нет, подскажите, пожалуйста, что нужно на что исправить. Заранее спасибо
merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение merkushov »

Строчки отличаются. Посмотрите внимательнее.
Меркушов Виктор, perl программист
mukexa
OTRS Новобранец
Сообщения: 148
Зарегистрирован: 30 апр 2013, 19:08
Откуда: Украина, Киев.
Поблагодарили: 1 раз

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение mukexa »

Param[
Param{
Сам не с первого разу заметил )))
OTRS 5s, Ubuntu 12.04
EugeneOl
OTRS Новобранец
Сообщения: 13
Зарегистрирован: 28 окт 2013, 17:28

Re: Новый виджет для Дайджеста на SlickGrid

Сообщение EugeneOl »

ааааа спасибо получилось.

Но вот после внесения изменений в Loader::Agent::CommonJS###000-Framework и Frontend::Module###AgentDashboard
После закрытия окна ниодна ссылка не работает
Подскажите пожалуйста еще как и это исправить.
браузер mozilla

An error occurred! Do you want to see the complete error message?
$.browser is undefined
TargetNS.InitIE7InputFocus@http://127.0.0.1/otrs-web/js/js-cache/C ... b6b.js:189
TargetNS.Init@http://127.0.0.1/otrs-web/js/js-cache/C ... b6b.js:504
@http://127.0.0.1/otrs/index.pl?Action=A ... ework:3353
TargetNS.Ready/<@http://127.0.0.1/otrs-web/js/js-cache/C ... b6b.js:479
x.Callbacks/c@http://127.0.0.1/otrs-web/js/js-cache/C ... fb6b.js:33
x.Callbacks/p.fireWith@http://127.0.0.1/otrs-web/js/js-cache/C ... fb6b.js:33
.ready@http://127.0.0.1/otrs-web/js/js-cache/C ... fb6b.js:33
q@http://127.0.0.1/otrs-web/js/js-cache/C ... fb6b.js:33
Ответить