Страница 1 из 2

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

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

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

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

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

Добавлено: 11 июл 2013, 10:18
merkushov
otrs.SlickGrid.tar.gz
Файлы которые нужно добавить
(196.15 КБ) 856 скачиваний
diff.tar.gz
Изменения в существующих файлах
(3.42 КБ) 823 скачивания
в настройках 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

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

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

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

Добавлено: 01 авг 2013, 09:41
merkushov
Да, изменения из второго файла делать придётся вручную. По крайней мере, я не знаю как можно автоматизировать этот процесс.
Привёл все изменения одним файлом, чтобы долго и нудно не описывать в каком файле что нужно удалить, а что добавить.

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

Добавлено: 05 авг 2013, 13:55
Tyz
Спасибо, будем менять и пробовать:)

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

Добавлено: 07 авг 2013, 15:58
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 последняя). Его необходимо создать?
Спасибо

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

Добавлено: 07 авг 2013, 16:31
merkushov
Этот файл нужно создать копированием из файла Kernel/Language/xx_Custom.pm

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

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

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

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

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

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

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

Добавлено: 09 авг 2013, 10:59
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

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

Добавлено: 09 авг 2013, 11:32
merkushov
Можно оставить как есть. Смена прав там ни на что не влияет.
Похоже это ./bin/otrs.SetPermissions.pl права покорёжил.

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

Добавлено: 09 авг 2013, 14:34
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...


Что может быть?

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

Добавлено: 09 авг 2013, 15:06
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}};

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

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

Если подскажите, где что копать буду Очень признателен.

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

Добавлено: 05 сен 2013, 09:17
Siyet
Кое что раскопал:
Есть такая настройка DashboardBackend###0100-Ticket-SlickGrid.
Чтобы снять/изменить ограничение по отображаемым заявкам правим пункт Attributes. По-умолчанию "StateTypeIDs=2", чтобы сделать отображение только новых и открытых нужно вписать "StateType=new;StateType=open;". Чтобы отображались вообще все заявки вписываем "StateType=all;". Посмотрите ниже на другие настройки, поймете какие еще "вкусности" можно настроить.
Также есть поле Limit - т.е. выбрать количество отображаемых заявок по-умолчанию.
Есть поле Time - здесь Вы можете настроить тип отображения времени.
Ну и пункт Title - думаю всем понятно что это.
В этой же настройке можете убрать созданные по умолчанию ссылки на динамические поля.

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

Добавлено: 05 сен 2013, 09:34
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;
Настраиваемые фильтры и дефолтные поля я реализовал через настройку в конфиге, осталось выложить в общий доступ.

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

Добавлено: 05 сен 2013, 10:17
Siyet
Еще кое-что раскопал))
В файле otrs/Kernel/Output/HTML/DashboardTicketSlickGrid.pm есть функция _FieldConfig. В ней массив @CommonFieldsConfig. Здесь Вы можете настроить ширину столбцов или вообще убрать возможность выбора конкретных столбцов.

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

Добавлено: 05 сен 2013, 10:33
Siyet
Не уверен, что всё это будет работать для этого виджета. Вот список полей, доступных для настроек виджета
Ставил то, что выложено в данном топике - все работает.

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

Добавлено: 05 ноя 2013, 18:31
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

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

Добавлено: 13 ноя 2013, 14:51
merkushov
Смотрите чуть выше на предыдущей странице.

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

Добавлено: 20 ноя 2013, 13:25
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}};
то я вижу что абсолютно две одинаковые строки. Если нет, подскажите, пожалуйста, что нужно на что исправить. Заранее спасибо

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

Добавлено: 20 ноя 2013, 14:06
merkushov
Строчки отличаются. Посмотрите внимательнее.

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

Добавлено: 20 ноя 2013, 14:17
mukexa
Param[
Param{
Сам не с первого разу заметил )))

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

Добавлено: 20 ноя 2013, 15:43
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