WikiPrint - from Polar Technologies

Dodatkowe moduły i zakładki

  1. Dodatkowe zakładki 1.1 Ograniczanie widoczności zakładek
  2. Dodatkowe moduły 2.1 Ograniczanie widoczności modułów 2.2 Filtry 2.3 Ikona modułu

Dodatkowe zakładki

System eDokumenty umożliwia dodawanie customowych zakładek do kartoteki

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

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 version="1.0" encoding="UTF-8"?>
<tabs>    
    <tab label="" rep_id="">
        <buttons>
            <button>
                <id>
                    new
                </id>
                <label>
                    Nowa
                </label>
                <dscrpt>
                    Nowa
                </dscrpt>
                <onclick>                
                    App.openDialogByCls({CLSNAM}, {KEYVAL}, ({afterSubmit:'{AFTER_SUBMIT}', mode:'new'}).toJSONString())
                </onclick>
                <icon>                
                    new.gif
                </icon>
            </button>            
        </buttons>
    </tab>    
</tabs>


Zakładka dla dokumentu dodatkowo przyjmuje parametr dctpid (ID typu dokumentu) np.

 <tab label="zakladka 1" rep_id="1" dctpid="1">

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").

Ograniczanie widoczności zakładek

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.

Dodatkowe moduły

System eDokumenty umożliwia tworzenie własnych modułów w oparciu o podobny mechanizm,.

Definiowanie dodatkowych modułów

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

<?xml version="1.0" encoding="UTF-8"?>
<modules>
    <module id="cModule_1" name="Delegacje" label="Dodatkowy moduł"
icon="processes.gif" right="bswfms.globalsearch">
        <toolbar>
        </toolbar>
        <filters>
        </filters>
	<tabs>
    <tab label="Moje delegacje" rep_id="87">
        <buttons>
            <button>
                <id>
                    new
                </id>
                <label>
                    Nowy
                </label>
                <dscrpt>
                    Nowy dokument
                </dscrpt>
                <onclick>                
                    App.openDialogByCls('DOCUMENT', null,
({afterSubmit:'{AFTER_SUBMIT}',dctpid:23,dctptp:'CustomDocument', mode:'new'}).toJSONString())
                </onclick>
                <icon>                
                    new.gif
                </icon>
            </button>
            <button>
                <id>
                    edit
                </id>
                <label>
                    Edycja
                </label>
                <dscrpt>
                    Edytuj dokument
                </dscrpt>
                <onclick>                
                    App.openDialogByCls('DOCUMENT', {KEYVAL},
({afterSubmit:'{AFTER_SUBMIT}',dctpid:23,dctptp:'CustomDocument', mode:'edit'}).toJSONString())
                </onclick>
                <icon>                
                    edit.gif
                </icon>                      
            </button>
            <button>
                <id>
                    delete
                </id>
                <label>
                    Usuń
                </label>
                <dscrpt>
                    Usuń
                </dscrpt>
                <onclick>                
                    App.openDialogByCls('DOCUMENT', {KEYVAL},
({afterSubmit:'{AFTER_SUBMIT}',dctpid:23,dctptp:'CustomDocument',mode:'del'}).toJSONString())
                </onclick>
                <icon>                
                    delete.gif
                </icon>                      
            </button>
        </buttons>
    </tab>
	</tabs>
    </module>

    <module id="Urlopy" name="Urlopy" label="Dodatkowy moduł"
icon="travel.png" right="bswfms.globalsearch">
        <toolbar>
        </toolbar>
        <filters>
        </filters>
	<tabs>
    <tab label="Moje wnioski" rep_id="95">
        <buttons>
            <button>
                <id>
                    new
                </id>
                <label>
                    Nowy
                </label>
                <dscrpt>
                    Nowy wniosek urlopowy
                </dscrpt>
                <onclick>                
                    App.openDialogByCls('DOCUMENT', null,
({afterSubmit:'{AFTER_SUBMIT}',dctpid:21,dctptp:'CustomDocument', mode:'new'}).toJSONString())
                </onclick>
                <icon>                
                    new.gif
                </icon>
            </button>
            <button>
                <id>
                    edit
                </id>
                <label>
                    Edycja
                </label>
                <dscrpt>
                    Edytuj wniosek
                </dscrpt>
                <onclick>                
                    App.openDialogByCls('DOCUMENT', {KEYVAL},
({afterSubmit:'{AFTER_SUBMIT}',dctpid:21,dctptp:'CustomDocument', mode:'edit'}).toJSONString())
                </onclick>
                <icon>                
                    edit.gif
                </icon>                      
            </button>
            <button>
                <id>
                    delete
                </id>
                <label>
                    Usuń
                </label>
                <dscrpt>
                    Usuń
                </dscrpt>
                <onclick>                
                    App.openDialogByCls('DOCUMENT', {KEYVAL},
({afterSubmit:'{AFTER_SUBMIT}',dctpid:21,dctptp:'CustomDocument',mode:'del'}).toJSONString())
                </onclick>
                <icon>                
                    delete.gif
                </icon>                      
            </button>
        </buttons>
    </tab>
	</tabs>
    </module>


</modules>

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')

Sprawa automatycznie otrzyma atrybuty id urządzenia oraz id kontrahenta urządzenia. Na razie zaimplementowano w urządzeniu.

Ograniczanie widoczności modułów

Widoczność modułów jest rozwiązana w bardziej skomplikowany sposób

Filtry

Na chwilę obecną jest dostepny tylko jeden filtr

<filters>
            <filter name="Daty" type="MonthSelectorTreeFilter" height="auto" opened="0"></filter>
        </filters>

Ikona modułu

Ikony w formacie .gif bądź .png o maksymalnym rozmiarze 36px x 36px wrzucamy do katalogu public_html/framework/img/PageToolBar.