Skip to end of metadata
Go to start of metadata

Nazwa wtyczki Data utworzenia Data ostatniej aktualizacji Link do instalki Krótki opis Dział utrzymujący Dokumentacja dla klienta Typ licencji Typ wtyczki Id wtyczki
Plugin Configuration Manager 2020-05-11 2025-01-23 Link Wtyczka umożliwia zarządzanie konfiguracjami (plikami konfiguracyjnymi) wtyczek zainstalowanych w systemie Dev Core Bezpłatna Wtyczka com.suncode.plugin-plugin-configuration-manager

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.

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:

  • 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.

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:

  • 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

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.

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. 

UWaga

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:

PCMGraphicSchema.js

Konfiguracja schematu graficznego przystosowana jest pod ten plik konfiguracyjny wtyczki Watermark w formacie JSON:

Konfiguracja-watermark.txt

Tłumaczenia

Tłumaczenia działają na elementach o type:

  • label
  • legend
  • name
  • hint
  • help

Jako wartość należy podać klucz tłumaczenia z pliku messages_browser wtyczki.

Przykład
 schema: {
      fields: [{
        type: "field-array",
        label: "tree.view.table1",
        model: "table1",
      }]
	 }

 

Konfiguracja schematu graficznego dla tablic


Poniżej przykłady:

1) Tablica 

JSON
{
	"table1": 
	[
		"EUR",
		"USD",
		"AUD"
	]
}
Konfiguracja schematu graficznego
 schema: {
      fields: [{
        type: "field-array",
        label: "Waluty w tablicy",
        model: "table1",
      }]
	 }

2) Tablica tablic

JSON
 {
	"table2": [
		[
			"EUR"
		],
		[
			"USD"
		],
		[
			"AUD"
		]
	]
}
Konfiguracja schematu graficznego
 schema: {
      fields: [{
        type: "field-array",
        label: "Waluty w tablicy",
        model: "table2",
      }]
	 }

3) Tablica obiektów

JSON
 {
	"table3": [
		{
			"id": 1,
			"wydatek": "Rodzaj wydatku 1"
		},
		{
			"id": 2,
			"wydatek": "Rodzaj wydatku 2"
		}
	]
}
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

JSON
 {
	"table4": [
		[
			{
				"id": 1,
				"wydatek": "Rodzaj wydatku 1"
			}
		],
		[
			{
				"id": 2,
				"wydatek": "Rodzaj wydatku 2"
			}
		]
	]
}
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

JSON
 {
	"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"
				}
			]
		}
	]
}
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

JSON
 {
	"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"
					}
				]
			}
		]
	}
}
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.1System 4.2
Wersja wtyczkiWersja systemuWersja wtyczkiWersja systemu
4.0.44.1.114.2.04.2.1
  • 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.