Wtyczka umożliwia zarządzanie konfiguracjami (plikami konfiguracyjnymi) wtyczek zainstalowanych w systemie. Zamiast tworzenia dedykowanej zakładki do wgrywania/zmiany plików konfiguracyjnych dla każdej wtyczki z osobna, można zintegrować ją z PCM, która umożliwi użytkownikowi zmianę plików konfiguracyjnych dla wszystkich wtyczek w jednym miejscu.
Aby zintegrować dowolną wtyczkę z PCM, należy dodać znacznik plugin-configuration w deskryptorze wtyczki - plik suncode-plugin.xml.
Przykładowy wpis w deskryptorze wtyczki:
<plugin-configuration key="plugin-configuration" template-provider="com.suncode.plugin.somepluginid.TemplateProviderImpl" change-listener="com.suncode.plugin.somepluginid.ChangeListenerImpl" allow-file-management="false" graphic-schema-provider="com.suncode.plugin.somepluginid.ConfigurationFileGraphicSchemaProviderImpl" init-configuration="com.suncode.plugin.somepluginid.InitConfigurationProviderImpl" before-save-config-modifier="com.suncode.sso.authenticator.configuration.BeforeSaveConfigModifierProviderImpl" /> <!-- key jest wymagany przez mechanizm modułów wtyczek. Nie ma związku z działaniem tej funkcjonalności --> |
Atrybuty:
Po uruchomieniu wtyczki w zakładce Administracja -> Konfiguracja systemu pojawi się nowa zakładka Konfiguracja wtyczek.
Po lewej stronie wyświetlana jest lista obsługiwanych wtyczek. Po zaznaczeniu wtyczki pojawia się widok konfiguracji zależny od tego, czy jest typu manual czy predefined.
Każdy plik składa się z:
Jeżeli wtyczka zwraca schemat graficzny konfiguracji to widok konfiguracji wyświetlony zostanie w trybie graficznym (od wersji 4.0.0). W każdej chwili można przełączyć się na tryb tekstowy. Zmiany wprowadzone w trybie graficznym automatycznie pojawią się w trybie tekstowym i odwrotnie.
We wtyczce aby odczytać plik, należy użyć interfejsu ConfigurationFileService.
Po dodaniu wpisu graphic-schema-provider w deskryptorze wtyczki (dla której chcemy wyświetlić graficzną konfigurację) i prawidłowym napisaniu schematu do konfiguracji wtyczki pojawi się konfiguracja w trybie graficznym.
Wtyczka w pomie powinna mieć zależność do plugin-configuration-manager w wersji minimum 4.0.0 |
Plik ze schematem powinien być w formacie js i musi posiadać skrypt przypisujący do window.vfgFileSchema konfigurację schematu graficznego
Dokumentacja do pisania schematu graficznego: https://vue-generators.gitbook.io
Przykładowy plik konfiguracyjny schematu graficznego do wtyczki Warermark:
Konfiguracja schematu graficznego przystosowana jest pod ten plik konfiguracyjny wtyczki Watermark w formacie JSON:
Tłumaczenia
Tłumaczenia działają na elementach o type:
Jako wartość należy podać klucz tłumaczenia z pliku messages_browser wtyczki.
schema: { fields: [{ type: "field-array", label: "tree.view.table1", model: "table1", }] } |
Konfiguracja schematu graficznego dla tablic
Poniżej przykłady:
1) Tablica
{ "table1": [ "EUR", "USD", "AUD" ] } |
schema: { fields: [{ type: "field-array", label: "Waluty w tablicy", model: "table1", }] } |
2) Tablica tablic
{ "table2": [ [ "EUR" ], [ "USD" ], [ "AUD" ] ] } |
schema: { fields: [{ type: "field-array", label: "Waluty w tablicy", model: "table2", }] } |
3) Tablica obiektów
{ "table3": [ { "id": 1, "wydatek": "Rodzaj wydatku 1" }, { "id": 2, "wydatek": "Rodzaj wydatku 2" } ] } |
schema: { fields: [{ type: "field-array", label: "Tablica obiektów", model: "table3", schema: { fields: [{ type: "input", inputType: "text", label: "ID", model: "id" }, { type: "input", inputType: "text", label: "Rodzaj wydatku", model: "wydatek" } ] } }] } |
4) Tablica tablic z obiektami
{ "table4": [ [ { "id": 1, "wydatek": "Rodzaj wydatku 1" } ], [ { "id": 2, "wydatek": "Rodzaj wydatku 2" } ] ] } |
schema: { fields: [{ type: "field-array", label: "Tablica tablic z obiektami", model: "table4", maxHeight: "200", schema: { fields: [{ type: "input", inputType: "text", label: "ID", model: "id" }, { type: "input", inputType: "text", label: "Rodzaj wydatku", model: "wydatek" } ] } }] } |
5) Tablica obiektów posiadających dane i tablicę obiektów
{ "table5": [ { "id": 1, "table5_1": [ { "id": 1, "wydatek": "Rodzaj wydatku 1" }, { "id": 2, "wydatek": "Rodzaj wydatku 2" } ] }, { "id": 2, "table5_1": [ { "id": 1, "wydatek": "Rodzaj wydatku 1" }, { "id": 2, "wydatek": "Rodzaj wydatku 2" } ] } ] } |
schema: { fields: [{ type: "field-array", label: "Tablica obiektów posiadających dane i tablicę obiektów ", model: "table5", maxHeight: "200", schema: { fields: [{ type: "input", inputType: "text", label: "ID", model: "id" }, { type: "field-array", label: "table5_1", model: "table5_1", maxHeight: "200", schema: { fields: [{ type: "input", inputType: "text", label: "ID", model: "id" }, { type: "input", inputType: "text", label: "Rodzaj wydatku", model: "wydatek" } ] } } ] } }] } |
6) Poperty posiadający tablicę obiektów posiadających dane i tablicę obiektów
{ "table6": { "table6_1": [ { "id": 1, "table6_2": [ { "id": 1, "wydatek": "Rodzaj wydatku 1" }, { "id": 2, "wydatek": "Rodzaj wydatku 2" } ] }, { "id": 2, "table6_2": [ { "id": 1, "wydatek": "Rodzaj wydatku 1" }, { "id": 2, "wydatek": "Rodzaj wydatku 2" } ] } ] } } |
schema: { fields: [{ type: "field-array", label: "Popertis posiadający tablicę obiektów posiadających dane i tablicę obiektów ", model: "table6.table6_1", schema: { fields: [ { type: "input", inputType: "text", label: "ID", model: "id" }, { type: "field-array", label: "table6_2", model: "table6_2", schema: { fields: [{ type: "input", inputType: "text", label: "ID", model: "id" }, { type: "input", inputType: "text", label: "Rodzaj wydatku", model: "wydatek" } ] } } ] } }] } |
System 4.1 | System 4.2 | ||
Wersja wtyczki | Wersja systemu | Wersja wtyczki | Wersja systemu |
---|---|---|---|
4.0.4 | 4.1.11 | 4.2.0 | 4.2.1 |