= Dodatkowe moduły i zakładki = #tytul === Menu === 1. [#dodatkowe_zakladki Dodatkowe zakładki][[BR]] 1.1 [#ograniczenia_do_zakladek Ograniczanie widoczności zakładek] 2. [#dodatkowe_moduly Dodatkowe moduły][[BR]] 2.1 [#definiowanie_modulow Definiowanie dodatkowych modułów][[BR]] 2.2 [#ograniczanie_modulow Ograniczanie widoczności modułów][[BR]] 2.3 [#filtry Filtry][[BR]] 2.4 [#obrazek Ikona modułu][[BR]] == Dodatkowe zakładki == #dodatkowe_zakladki System eDokumenty umożliwia dodawanie customowych zakładek do kartoteki - sprawy - kontrahenta - urządzenia - dokumentu Zakładki te oparte są na raportach oraz pliku konfiguracyjnym xml znajdującym się w {{{ $APP_PATH\var\tpl\tabs $APP_PATH oznacza /home/edokumenty/public_html/apps/edokumenty lub C:\Program files\BetaSoft\eDokumenty\public_html\apps\edokumenty }}} Jeśli {{{katalog var\tpl\tabs}}} jest pusty należy skopiować szablony plików xml z {{{$APP_PATH\var\tpl_default\tabs}}}. Nazwy obsługiwanych plików xml - sprawy - process_tpl.xml - kontrahenta - contact_tpl.xml - urządzenia - device_tpl.xml - dokumentu - document_tpl.xml - ewidencji - evidence_tpl.xml Aby dodać dodatkową zakładkę do jednej z wyżej wymienionych kartotek należy utworzyć odpowiedni raport oraz wyedytować wybrany plik xml dla danej kartoteki. Definicja pliku xml {{{ #!xml }}} Od wersji 4.1-alfa51 istnieje możliwość zadeklarowania przyciski jako custom widget (http://support.edokumenty.eu/trac/wiki/DeployerGuide/Others/CustomWidgets). Tag button musi zawierać informację w postaci taga custom_widget o wartości id danego widgeta czyli kolumna cswgid. Tabela custom_widget powinna zawierać rekord zgodnie z definicją w dokumentacji a wartość w kolumnie c_path to {{{ c_path = custom/cswgid czyli custom/3 }}} gdzie 3 to identyfikator rekordu. Id zaznaczonych rekordów są przekazywane pod parametrem keyval. [[BR]] Zakładka dla dokumentu dodatkowo przyjmuje parametr '''dctpid''' (ID typu dokumentu) np. {{{ #!xml }}} lub {{{ #!xml }}} Gdzie: - rep_id - identyfikator raportu z systemu eDokumenty - iframe - url do strony, którą chcemy wyświetlić w eDokumentach w zakładce Dodatkowo do taga onclick oraz atrybutu iframe można dodawać parametry z postaci danych z aktualnie otwartej kartoteki. Dla przykładu niech posłuży kartoteka produktu oraz dodatkowa zakładka w postaci iframe wyświetlającego katalog zdjęć: {{{ #!xml }}} Token {symbol} zostanie zamieniony na symbol produktu z aktualnie otwartej kartoteki. Zakładka pojawi się tylko w dokumentach o dctpid = 1. Brak tego parametru spowoduje dodanie zakładki dla wszystkich typów. Można też podać więcej identyfikatorów typu po przecinku (np. dctpid="1,3,5,6,9"). [[BR]] Zakładka dla sprawy dodatkowo przyjmuje parametr '''dos_id''' (ID teczki z wykazu akt) np. {{{ #!xml }}} Zakładka pojawi się tylko w sprawach o dos_id = 1. Brak tego parametru spowoduje dodanie zakładki dla wszystkich spraw. Można też podać więcej identyfikatorów typu po przecinku (np. dos_id="1,3,5,6,9"). ''Przejdź do [#tytul Menu]'' === Ograniczanie widoczności zakładek === #ograniczenia_do_zakladek Widoczność Zakładki może również być ograniczona poprzez parametr grp_id (np. grp_id="2,5,10") który ograniczy widoczność zakładki wyłącznie do członków wymienionych po przecinku grup. ''Przejdź do [#tytul Menu]'' == Dodatkowe moduły == #dodatkowe_moduly System eDokumenty umożliwia tworzenie własnych modułów w oparciu o podobny mechanizm. === Definiowanie dodatkowych modułów === #definiowanie_modulow W systemie można również skonfigurować w oparciu o ten sam mechanizm własny moduł. Na wersji demonstracyjnej moduły dostępne przez użytkownika ''jmamon'' "Delegacje" oraz "Urlopy" dla użytkownika ''serwis'' są utworzone poprzez utworzenie następującego pliku w katalogu {{{$APP_PATH/var/tpl/CustomModules.xml}}} Edycja tego pliku nie jest konieczna z poziomu konsoli. Dostęp do tego pliku jest możliwy z poziomu edokumentów. W Panelu sterowania szukamy odnośnika Szablony Systemowe. Uruchomi się okienko z plikami ''Szablonów Systemowych'' [[BR]][[Image(szablony_systemowe.jpg)]][[BR]] (''Szablony systemowe'')[[BR]] W okienku tym wyszukujemy plik '"CustomModules.xml'', klikamy na niego, a następnie zapisujemy na dysku. Edytujemy zmiany, po czym usuwamy istniejący na serwerze plik i wgrywamy nową wersję. {{{ #!xml }}} == Przycisk tworzący sprawę == Przyciski mogą też do listy parametrów obsługiwać klucze z bean-ów, dla przykładu: {{{ App.createDialog('createProcessForm','SimpleProcessCreatingForm','./modules /AProcesses/forms/SimpleProcessCreatingForm.inc','Zakadanie','513', ({clsnam:'DOSS',strpid:351,devcid:'{devcid}',contid:'{contid}'}).toJSONString(), null, 'fast') }}} Dodatkowo od wersji 4.0 obsługiwany jest parametr {KEYVALS}, który odpowiada ze przekazanie do dialoga wszystkich zaznaczonych elemenetów z listy z nie tylko pierwszego jak to ma miejsce w przypadku parametru {KEYVAL}. Parametr strpid jest dostępny w '''Ustawienia -> Panel sterowania -> Sprawy -> Wyciąg z wykazu akt -> Kolumna Miejsce (strpid)''' W przypadku jeśli kolumna ta nie jest włączona należy kliknąć na ikonę "Widoczne kolumny" (na dole listy) i zaznaczyć ptaszka. Sprawa automatycznie otrzyma atrybuty id urządzenia oraz id kontrahenta urządzenia. Na razie zaimplementowano w urządzeniu. ''Przejdź do [#tytul Menu]'' === Ograniczanie widoczności modułów === #ograniczanie_modulow Prawa dostępu do modułów (inaczej widoczność modułów) są rozwiązane w bardziej skomplikowany sposób. Do tworzonego modułu dodatkowego należy dodać do tabeli '''right_def''' definicje prawa (UWAGA !!! jeżeli tego prawa nie ma w tej tabeli) ''bswfms.custom_module'', a potem szczegółowe prawo do zakładki np. do zakładki ''Delegacje'' może to być: ''bswfms.custom_module.delegations''. W w/w tabeli należy wypełnić następujące pola * prn_id - (dla ''bswfms.custom_module'' będzie to prawdopodobnie 1, a do ''bswfms.custom_module.delegations'' wartość pola def_id rekordu ''bswfms.custom_module'' - Musi być zapewniona struktura drzewiasta!) * define - nazwa prawa np. ''bswfms.custom_module.delegations'' * group_ - ustawić należy SYSTEM * commen - nazwa prawa wyświetlana w systemie. np.: ''Delegations: delegacje''. Przykładowe inserty przedstawiono poniżej: {{{ #!sql INSERT INTO right_def(prn_id,define,group_,commen) VALUES ((SELECT def_id FROM right_def WHERE define = 'bswfms' ),'bswfms.custom_modules','SYSTEM','Moduły dodatkowe'); INSERT INTO right_def(prn_id,define,group_,commen) VALUES ((SELECT def_id FROM right_def WHERE define = 'bswfms.custom_modules' ),'bswfms.custom_modules.delegations','SYSTEM','Delegacje'); }}} Następnym krokiem w procesie jest ustawienie praw dla modułów w pliku ''CustomModules.xml'' w definicji właściwości ''rights'' modułu {{{ #!xml ... ... }}} gdzie wstawiamy wartość pola ''define'' danego prawa. Po zdefiniowaniu praw w tabeli oraz w pliku ''CustomModules.xml'' należy przejść do menu ''Pracownicy'', a następnie wybrać ''Grupy''. Jeżeli danej grupy nie ma, to tworzymy ją. Po zapisaniu grupy pojawiają się nowe zakładki. Przechodzimy do zakładki ''Pracownicy'' gdzie wprowadzamy wybranych przez nas użytkowników, a następnie klikamy w zakładkę ''Prawa do systemu'', gdzie ze struktury drzewiastej praw wybieramy odpowiednie prawo i przypisujemy dostęp do prawa. ''Przejdź do [#tytul Menu]'' === Filtry === #filtry Na chwilę obecną jest dostępne są następujące filtry, które można zdefiniować bezpośrednio z poziomu xml: - MonthSelectorTreeFilter - wybór dat z drzewka (parametry {DATE_FROM} i {DATE_TO}) - ClearingUnitsFilter - wybór jednostki rozliczeniowej (parametr {ACORID}) {{{ #!xml }}} Dodatkowe filtry są realizowane za pomocą definiowanych filtrów dla raportów zgodnie z dokumentacją: [wiki:UserGuide/AdvancedConfiguration/DefiningReports/ReportParams Filtry dla raportów] ''Przejdź do [#tytul Menu]'' === Ikona modułu === #obrazek Ikony w formacie .gif bądź .png o maksymalnym rozmiarze 36px x 36px wrzucamy do katalogu {{{public_html/framework/img/PageToolBar}}}. ''Przejdź do [#tytul Menu]''