| Table Excerpt |
|---|
|
| Plugin info |
|---|
| MaintenanceDepartment | Dev Core |
|---|
| LicType | Bezpłatna |
|---|
| ArtifactId | plugin-configuration-manager |
|---|
| TypWtyczki | Wtyczka |
|---|
| PluginId | com.suncode.plugin-plugin-configuration-manager |
|---|
| ShortDescription | Wtyczka umożliwia zarządzanie konfiguracjami (plikami konfiguracyjnymi) wtyczek zainstalowanych w systemie |
|---|
| |
|
Wstęp
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.
Integracja z wtyczką
Aby zintegrować dowolną wtyczkę z PCM, należy dodać znacznik plugin-configuration w deskryptorze wtyczki - plik suncode-plugin.xml.
...
| Code Block |
|---|
|
<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 --> |
...
- template-provider (opcjonalny) - nazwa klasy implementującej interfejs ConfigurationFileTemplateProvider. Pozwala to na załadowanie szablonu pliku konfiguracyjnego w widoku edycji konfiguracji wtyczek. Wtyczka przez interfejs podaje własny szablon.
- change-listener (opcjonalny) - nazwa klasy implementującej interfejs ConfigurationFileChangeListener. Umożliwia obsługę reagowania na zdarzenie, gdy plik konfiguracyjny zostanie zmieniony (np. w celu cache'owania konfiguracji).
- allow-file-management (opcjonalny) - wartośc true/false (domyślnie true). Flaga określająca, czy użytkownik może zarządzać plikami konfiguracyjnymi wtyczki (dodawanie, usuwanie, modyfikacjia identyfikatorów/typów plików).
- graphic-schema-provider (opcjonalny) - nazwa klasy implementującej ConfigurationFileGraphicSchemaProvider. Pozwala na załadowanie konfiguracji schematu graficznego dzięki czemu będzie dostępna konfiguracja wtyczki w trybie graficznym.
- init-configuration (opcjonalny) - nazwa klasy implementującej InitConfigurationProvider. Pozwala na załadowanie gotowych plików konfiguracyjnych podczas instalacji wtyczki.
- before-save-config-modifier (opcjonalny) - nazwa klasy implementującej BeforeSaveConfigModifierProvider. Pozwala wtyczce na modyfikację pliku konfiguracyjnego przed zapisałem w PCM.
Widok konfiguracji wtyczek
Po uruchomieniu wtyczki w zakładce Administracja -> Konfiguracja systemu pojawi się nowa zakładka Konfiguracja wtyczek.
...
- identyfikator pliku - identyfikator, po którym wtyczka może pobrać zawartość pliku konfiguracyjnego przez API
- typ pliku - typ/rozszerzenie pliku. Dostępne JSON, XML i pozostałe. Wszystkie typy oprócz "pozostałych" są walidowane przy zapisie
- zawartość pliku - tekstowa zawartość pliku
Image RemovedJeż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.
Image Added
Tryb graficzny konfiguracji wtyczek
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.
| Info |
|---|
|
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
...
| View file |
|---|
| name | Konfiguracja-watermark.txt |
|---|
| height | 250 |
|---|
|
Tłumaczenia
Tłumaczenia działają na elementach o type:
Jako wartość należy podać klucz tłumaczenia z pliku messages_browser wtyczki.
| Code Block |
|---|
|
schema: {
fields: [{
type: "field-array",
label: "tree.view.table1",
model: "table1",
}]
} |
Konfiguracja schematu graficznego dla tablic
Poniżej przykłady:
1) Tablica
| Code Block |
|---|
|
{
"table1":
[
"EUR",
"USD",
"AUD"
]
} |
| Code Block |
|---|
| title | Konfiguracja schematu graficznego |
|---|
|
schema: {
fields: [{
type: "field-array",
label: "Waluty w tablicy",
model: "table1",
}]
} |
2) Tablica tablic
| Code Block |
|---|
|
{
"table2": [
[
"EUR"
],
[
"USD"
],
[
"AUD"
]
]
} |
| Code Block |
|---|
| title | Konfiguracja schematu graficznego |
|---|
|
schema: {
fields: [{
type: "field-array",
label: "Waluty w tablicy",
model: "table2",
}]
} |
3) Tablica obiektów
| Code Block |
|---|
|
{
"table3": [
{
"id": 1,
"wydatek": "Rodzaj wydatku 1"
},
{
"id": 2,
"wydatek": "Rodzaj wydatku 2"
}
]
} |
| Code Block |
|---|
| title | Konfiguracja schematu graficznego |
|---|
|
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
| Code Block |
|---|
|
{
"table4": [
[
{
"id": 1,
"wydatek": "Rodzaj wydatku 1"
}
],
[
{
"id": 2,
"wydatek": "Rodzaj wydatku 2"
}
]
]
} |
| Code Block |
|---|
| title | Konfiguracja schematu graficznego |
|---|
|
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
| Code Block |
|---|
|
{
"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"
}
]
}
]
} |
| Code Block |
|---|
| title | Konfiguracja schematu graficznego |
|---|
|
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
| Code Block |
|---|
|
{
"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"
}
]
}
]
}
} |
| Code Block |
|---|
| title | Konfiguracja schematu graficznego |
|---|
|
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"
}
]
}
}
]
}
}]
} |
Wymagane minimalne wersje systemu
| 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 |