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

Модератор: ykolesnikov

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

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

Сообщение merkushov » 11 июл 2013, 10:06

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

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

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

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

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

Сообщение merkushov » 11 июл 2013, 10:18

otrs.SlickGrid.tar.gz
Файлы которые нужно добавить
(196.15 КБ) 336 скачиваний
diff.tar.gz
Изменения в существующих файлах
(3.42 КБ) 306 скачиваний
в настройках 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 » 31 июл 2013, 17:28

Понравился внешний вид! захотелось попробовать.
Подскажите, а как установить второй файл, который вы прекрепили? (я так понимаю там изменения нада вносить... их делать все в ручную?)
спасибо.

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

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

Сообщение merkushov » 01 авг 2013, 09:41

Да, изменения из второго файла делать придётся вручную. По крайней мере, я не знаю как можно автоматизировать этот процесс.
Привёл все изменения одним файлом, чтобы долго и нудно не описывать в каком файле что нужно удалить, а что добавить.
Меркушов Виктор, perl программист

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

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

Сообщение Tyz » 05 авг 2013, 13:55

Спасибо, будем менять и пробовать:)

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

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

Сообщение Tyz » 07 авг 2013, 15:58

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

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

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
Откуда: Воронеж
Поблагодарили: 1 раз

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

Сообщение merkushov » 07 авг 2013, 16:31

Этот файл нужно создать копированием из файла Kernel/Language/xx_Custom.pm
Меркушов Виктор, perl программист

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

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

Сообщение alexus » 07 авг 2013, 22:24

Tyz писал(а):Например файла /Kernel/Language/ru_Custom.pm не существует у меня(версия OTRS последняя). Его необходимо создать?
RTFM - http://doc.otrs.org/developer/3.1/en/ht ... slate.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

Alexander
OTRS Новобранец
Сообщения: 5
Зарегистрирован: 08 авг 2013, 08:29

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

Сообщение Alexander » 09 авг 2013, 07:41

Интересное дополнение, нужно будет попробовать, спасибо! =)
А можете выложить готовые файлы, в которых уже внесены правки, в качестве примера?

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

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

Сообщение merkushov » 09 авг 2013, 09:29

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

Gorcom
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 19 ноя 2010, 09:37

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

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

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

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

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
Откуда: Воронеж
Поблагодарили: 1 раз

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

Сообщение merkushov » 09 авг 2013, 11:32

Можно оставить как есть. Смена прав там ни на что не влияет.
Похоже это ./bin/otrs.SetPermissions.pl права покорёжил.
Меркушов Виктор, perl программист

Gorcom
OTRS Новобранец
Сообщения: 14
Зарегистрирован: 19 ноя 2010, 09:37

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

Сообщение Gorcom » 09 авг 2013, 14:34

При установке вылезла ошибка.
Когда подсовываю модифицированный 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
Откуда: Воронеж
Поблагодарили: 1 раз

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

Сообщение merkushov » 09 авг 2013, 15:06

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

Исправьте

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

- 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 » 04 сен 2013, 18:38

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

Если подскажите, где что копать буду Очень признателен.
OTRS 3.2.8, Ubuntu 12.04, Apache, PostgreSQL

Siyet
OTRS Новобранец
Сообщения: 62
Зарегистрирован: 26 июн 2013, 16:56

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

Сообщение Siyet » 05 сен 2013, 09:17

Кое что раскопал:
Есть такая настройка 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
Откуда: Воронеж
Поблагодарили: 1 раз

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

Сообщение merkushov » 05 сен 2013, 09:34

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 » 05 сен 2013, 10:17

Еще кое-что раскопал))
В файле 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 » 05 сен 2013, 10:33

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

EugeneOl
OTRS Новобранец
Сообщения: 13
Зарегистрирован: 28 окт 2013, 17:28

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

Сообщение EugeneOl » 05 ноя 2013, 18:31

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

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
Откуда: Воронеж
Поблагодарили: 1 раз

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

Сообщение merkushov » 13 ноя 2013, 14:51

Смотрите чуть выше на предыдущей странице.
Меркушов Виктор, perl программист

EugeneOl
OTRS Новобранец
Сообщения: 13
Зарегистрирован: 28 окт 2013, 17:28

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

Сообщение EugeneOl » 20 ноя 2013, 13:25

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
Откуда: Воронеж
Поблагодарили: 1 раз

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

Сообщение merkushov » 20 ноя 2013, 14:06

Строчки отличаются. Посмотрите внимательнее.
Меркушов Виктор, perl программист

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

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

Сообщение mukexa » 20 ноя 2013, 14:17

Param[
Param{
Сам не с первого разу заметил )))
OTRS 5s, Ubuntu 12.04

EugeneOl
OTRS Новобранец
Сообщения: 13
Зарегистрирован: 28 окт 2013, 17:28

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

Сообщение EugeneOl » 20 ноя 2013, 15:43

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

Но вот после внесения изменений в 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

Ответить