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"/> <!-- key jest wymagany przez mechanizm modułów wtyczek. Nie ma związku z działaniem tej funkcjonalności --> |
Atrybuty:
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" } ] } } ] } }] } |