Skip to end of metadata
Go to start of metadata

Wstęp

Konfiguracja wtyczki jest plikiem JSON o odpowiedniej strukturze, którą można stworzyć na podstawie poniższego opisu. Pisanie JSONa powinno zacząć się od stworzenia obiektu z polem menus będącym listą obiektów menu.

config.json
{
	"menus": [] // lista obiektów menu
}


Obiekt menu

Opcje konfiguracyjne:

  • id (string) - identyfikator menu (unikalny globalnie)
  • name (string) - nazwa menu wyświetlana w głównym menu systemu PlusWorkflow
  • permissions (object) - obiekt uprawnień dla danego menu
  • views (list) - lista obiektów widoków dla danego menu. Widoki zostaną wyświetlone jako podzakładki po wejściu w menu.

Obiekt uprawnień

  • users (list) - lista stringów zawierająca loginy użytkowników, którzy mają uprawnienia do danego menu
  • groups (list) - lista stringów zawierająca nazwy grup posiadających uprawnienia do danego menu

Uprawnienia działają na logicznym operatorze OR (wystarczy, że istnieje login użytkownika w users lub należy on do przynajmniej jednej z grup wymienionej w groups).

Obiekt widoku

  • id (string) - identyfikator widoku (unikalny globalnie)
  • name (string) - nazwa widoku wyświetlana jako nazwa podzakładki
  • default (boolean) - flaga określająca, czy widok ten jest domyślnym widokiem w obrębie wszystkich widoków dla danego menu. Jeżeli tak, zostanie on wyświetlony po wejściu w menu. Tylko jeden widok może być widokiem domyślnym.
  • source (object) - obiekt źródła do pobrania danych dla danego widoku
  • action (object) - obiekt akcji, która zostanie uruchomiona po kliknięciu w wiersz
  • inputs (list) - lista obiektów filtrów dla danego widoku. Jeżeli jest pusta, nie zostanie w ogóle wyświetlony formularz Filtruj wyniki wyszukiwania. Wartości filtrów tak, jak ich pola są wartościami tekstowymi, które są przekazywane źródłu przy każdym jego wywołaniu.
  • outputs (list) - lista obiektów kolumn dla danego widoku
  • comments (boolean) - flaga określająca, czy do tabeli danych ma być dodana kolumna Komentarze prezentująca listę komentarzy dla każdego wiersza.
  • links (lista) - lista obiektów linków tj. dodatkowych "przycisków" wyświetlanych w dodatkowej kolumnie Akcja. Jeżeli lista jest pusta, kolumna nie zostanie wyświetlona.
  • summary (object) - obiekt podsumowania dla danego widoku
  • pageSize (number) - liczba wyników na stronie. Domyślnie brane z ustawień użytkownika.
  • searchOnLoad (boolean) - flaga określająca, czy wyszukiwanie ma się wykonać po wejściu w widok. Domyślna wartość: true.
  • hideFiltersOnLoad (boolean) - flaga określająca, czy podczas wejścia w widok okienko z filtrami ma być ukryte. Domyślna wartość: false. 

Obiekt źródła

  • type (string) - typ źródła. Obecnie jedynym obsługiwanym typem jest komponent źródła danych (wartość DATASOURCE)
  • id (string) - identyfikator źródła (np. dla źródła typu DATASOURCE jest to identyfikator komponentu). Nie musi być unikalny w konfiguracji DataViewera, gdyż wiele widoków może używać tych samych źródeł.

Obiekt filtra

  • id (string) - identyfikator filtra (unikalny w obrębie widoku)
  • name (string) - nazwa filtra wyświetlana jako etykieta pola
  • alias (string) - identyfikator parametru wejściowego źródła, z którym ma być powiązany filtr. Przy wywołaniu źródła wartość filtra zostanie wstawiona jako wartość parametru wejściowego o tym podanym identyfikatorze.
  • type (string) - typ filtra. Dostępne typy: string, integer, double, boolean, date, list. Po wybraniu odpowiedniego typu, pole nie pozwoli na wprowadzenie błędnej wartości "z ręki" np. nie będzie można wpisać dowolnego ciągu znaków do pola typu integer.
  • source (object) - obiekt źródła do pobrania danych, jeżeli typem jest list (opis poniżej).
  • defaultValue (string) - domyślna wartość, która zostanie ustawione w filtrze po wejściu w widok i automatycznie wyszukana jeżeli parametr "searchOnLoad" na widoku ustawione jest na true
  • dynamicDefaultValue (object) - obiekt źródła do pobrania wartości domyślnej. Konfiguracja jak w filtrze source. Źródło musi zwracać jeden rekord z jedną kolumną.

Jeżeli nie określono typu filtra, będzie on taki, jak typ odpowiadającego parametru wejściowego w źródle danych dla widoku.

UWAGA. Nie wszystkie typy filtrów są obsługiwane przez wszystkie typy źródeł np. w Źródłach danych na podstawie zapytań do bazy nie jest obsługiwany typ date. Przeglądarka wyśle wartość ustawionego filtru w formacie unix time (należy ją samemu skonwertować w zapytaniu SQL).

Typ list jest typem specjalnym działającym podobnie do datachooserów na formularzu. Jest to filtrowana lista rozwijana, która pobiera dane na podstawie pola source. Źródło musi posiadać parametr wyjściowy o nazwie value (wartość ta zostanie wyświetlona w liście i wysłana do serwera przy wyszukiwaniu). Jeżeli wartość wysyłana do serwera ma być różna od wartości wyświetlanej na liście (np. pokazywany jest jakiś tekst, ale wysłany ma być identyfikator), można dodatkowo w źródle stworzyć parametr wyjściowy text. Aby filtrować wyniki na żywo, należy stworzyć w źródle parametr wejściowy query.


Obiekt kolumny

  • id (string) - identyfikator kolumny (unikalny w obrębie widoku)
  • name (string) - nazwa kolumny
  • hidden (boolean) - flaga określająca, czy kolumna ma być ukryta
  • alias (string) - analogicznie do aliasu w filtrze - identyfikator parametru wyjściowego źródła. Wartość wiersza danej kolumny zostanie ustawiona taka, jak wartość parametru wyjściowego źródła o podanym identyfikatorze.
  • primaryKey (boolean) - flaga określająca, czy kolumna ma być traktowana jako klucz główny wiersza. Przynajmniej jedna kolumna w widoku musi być kluczem głównym.
  • action (object) - obiekt akcji, która zostanie uruchomiona po kliknięciu w komórkę
  • format (object) - obiekt do formatowania wyników dla użytkownika
    • type - typ kolumny (dostępne typy - double, integer, timestamp)
    • thousandSeparator - znak rozdzielający części tysięczne liczby (dostępny dla typów: double, integer)
    • decimalPrecision - liczba miejsc po przecinku (dostępny dla typów: double, integer)
    • dateFormat - format daty (dostępny dla typu timestamp). Domyślnie "yyyy-MM-dd hh:mm:ss"

      Uwaga: Aby kolumna została sformatowana za pomocą typu timestamp, SQL musi rzutować zwracaną kolumnę na typ timestamp

      Przykład rzutowania w postgreSQL dla kolumny typu BIGINT przechowującej daty
      TO_TIMESTAMP(nazwa_kolumny/ 1000) AS nazwa_kolumny
 Nie można jednocześnie określić akcji na widoku oraz na kolumnach.

Obiekt linku

  • id (string) - identyfikator linku (unikalny w obrębie widoku)
  • name (string) - nazwa linku
  • action (object) - obiekt akcji, która zostanie uruchomiona po kliknięciu w link
  • showCondition (object) - obiekt warunku wyświetlania linku
    • columnId (string) - id kolumny, która jest użyta w warunku
    • operator (string) - operator, którego używamy w porównaniu (możliwe wartości: isempty, isnotempty, eq, noteq, gt, lt, ge, le)
    • value (string lub number) - wartość, którą używamy do porównania 
    • columnValue (string) - id kolumny użytej do porównania (nie można użyć value i columnValue jednocześnie)
    • group (object) - używane dla wielu warunków (przykłady poniżej)

      Przykład konfiguracji linku dla pojedynczego warunku wyświetlania
      {
         "id":"showCommentsWindowLink",
         "name":"Zarządzaj komentarzami",
         "action":{
            "type":"showComments"
         },
         "showCondition":{
            "columnId":"valuelong",
            "operator":"gt",
            "value":100,
            "columnValue":null,
            "group":null
         }
      }
      Przykład konfiguracji linku dla wielu warunków wyświetlania
      {
         "id":"goToActivityFormLink",
         "name":"Przejdź do formularza zadania",
         "action":{
            "type":"showActivityForm",
            "mapping":{
               "processId":"processId",
               "activityId":"activityId"
            }
         },
         "showCondition":{
            "columnId":null,
            "operator":"and", // możliwe wartości: or lub and
            "value":null,
            "columnValue":null,
            "group":[
               {
                  "columnId":"processId",
                  "operator":"isnotempty",
                  "value":null,
                  "columnValue":null,
                  "group":null
               },
               {
                  "columnId":"activityId",
                  "operator":"isnotempty",
                  "value":null,
                  "columnValue":null,
                  "group":null
               }
            ]
         }
      }

Obiekt podsumowania

  • source (object) - obiekt źródła, z którego będą pobierane dane dla ostatniego dodatkowego wiersza
  • loadOnce (boolean) - flaga określająca, czy podsumowanie ma być załadowane tylko raz przy wejściu w widok, czy za każdym razem przy zmianie sortowania, filtrów itd.
  • inputMappings (list) - lista obiektów mapowania identyfikatorów kolumn z identyfikatorami wejściowymi źródła
    • inputId (string) - identyfikator filtra
    • alias (string) - identyfikator parametru wejściowego źródła
  • outputMappings (list) - lista obiektów mapowania identyfikatorów kolumn z identyfikatorami wyjściowymi źródła
    • outputId (string) - identyfikator kolumny, w której mają zostać wyświetlone dane
    • alias (string) - identyfikator parametru wyjściowego źródła

Podsumowanie może służyć do wyświetlenia jednego wiersza, w którym np. zsumowane są dane dla danej kolumny na danej stronie. Podsumowanie wyświetla tyle wierszy ile zostało zwróconych przez źródło, dlatego możliwe jest wyświetlenie dowolnej liczby dodatkowych wierszy.

  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.