EdeeShop · Implementace

Editory Edee UI — konvence a řazení komponent

Upraveno

Tyto konvence platí i pro projektové modifikace existujících editorů — modifikace cílí na runtime ID widgetů popsaná níže. Viz Projektové úpravy administračního GUI.

Soubory

Soubory pojmenováváme podle konvence "nazevArtikluAdmin.XXX". Pokud se v rámci jedné feature edituje více artiků, tak vytváříme pro každou skupinu editorů vlastní xml i properties soubor. např. "parameterAdmin.xml", "parameterItemAdmin.xml" "parameterGroupAdmin.xml" atd.

Uzly

ID Uzlů pojmenováváme podle konvence "nazevArtikluTypEditoruPage". Rozlišujeme následující typy editorů:

  • výpis položek "Listing"
  • vytvářené nové položky "Create"
  • editace položky "Edit"

Tzn. například "parameterListingPage", "parameterCreatePage" nebo "parameterEditPage".

Widgety

Máme zavedené jmenné konvence pro následující komponenty:

  • entityStatusColumn - slopeček gridu se stavem s možností filtrace, vždy ID "status"
  • entityVisibilityColumn - slopeček gridu se viditelností s možností filtrace, vždy ID "visibility"
  • codeColumnWithFilter - slopeček gridu s kódem, vždy ID "code"
  • systemNameColumnWithFilter - slopeček gridu se názvem pro web, vždy ID "systemName"
  • nameColumnWithFilter - slopeček gridu se názvem, vždy ID "name"
  • codeInput - vstupní pole pro kód entity, vždy ID "code"
  • priceWidget - komponenta pro zadání ceny, vždy ID "priceWidget"

Konvence pro ID widgetů

  • grid - "nazevArtikluGrid" např. "parameterItemGrid"
  • h1 - "heading" (pokud jich je na stránce víc, tak prefixovat)
  • htmlForm - "htmlForm" (pokud jich je na stránce víc, tak prefixovat)
  • record - "coVraciRecord"
  • recordListing - "coVraciRecordListing"
  • editButton - "edit"
  • removeButton - "remove"
  • saveButton - "store", "storeClose", "storeCreateNew"
  • fieldSet s hlavním obsahem - "mainContentFS"
  • fieldSet s omezeními - "restrictionFS"
  • fieldSet s cenou - "priceFS"
  • input na kód - "code"
  • zobrazení kódu - "displayCode"
  • input na název - "name"
  • input na systémový název - "systemName"
  • input na popis - "description"
  • input na krátký popis - "shortDescription"
  • input na ulice - "street"
  • input na město - "city"
  • input na PSČ - "postCode"

Konvence pro tvorbu CRUD administrace

Stránkovaný výpis

Má tlačítka:

  • createButton - s otevřením do nového okna
  • editButton - s otevřením do nového okna
  • removeButton - umožňující odstranit více položek najednou, zobrazuje konfirmační dialog

Používá grid komponentu s filtrováním a tříděním.

Editor

Má vždy create / update variantu. Stejné komponenty je vždy vhodné sdílet ve slovníku (používejte lokální a ne globální slovník e-shopu).

Create editor

Obsahuje vždy všechny povinné položky update editoru. Měl by obsahovat všechny položky, které jsou nutné k tomu, aby vytvořený záznam mohl fungovat a měl všechny podstatné náležitosti. Detailní tweakování je ale dostupné až v update editoru.

Má tlačítka:

  • multiButton
    • store - uložení a pokračování do update formuláře
    • storeClose - uložení a zavření formuláře
    • storeCreateNew - uložení a vymazání create formuláře

Update editor

Obsahuje všechny editovatelné položky u záznamu.

Má tlačítka:

  • multiButton
    • store - uložení a pokračování do update formuláře
    • storeClose - uložení a zavření formuláře
  • removeClose - odstranění a zavření formuláře

Řazení komponent v editoru

Komponenty editoru jsou umístěny do placeholder containerů a v rámci nich řazeny podle atributu <priority>. Jde o obecnou konvenci Edee UI, kterou sdílejí editory všech entity (produkt, kategorie, značka, skupina…). Pozor: nejde o systémové řazení entit (spojový seznam datových entit) — to je nesouvisející mechanismus se stejným názvem.

Placeholder containery

Definice containerů (příklad z editoru produktu, productDictionaryAdmin.xml):

ContainerObsah (u produktu)
mainContentContainerObecné, Ceny, Sklad
relatedContentContainerMédia, Související, Zařazení, Prodej, Obsahové bloky
metadataContainerMetadata
extendedContentContainerParametry, Varianty
urlContainerPřiřazené adresy
extensionContainerprostor pro projektová rozšíření

Mechanismus priorit

Pořadí widgetů uvnitř containeru řídí <priority>N</priority> — vyšší číslo = výše. Např. v mainContentContainer: mainContentFS (150) → entityPriceWidget (100) → storeFS (50). Ostatní moduly přispívají do containerů přes <modify target="…/productEditPage"><appendWidget widget="<containerId>">…<priority>…, např. obsahové bloky se vkládají do relatedContentContainer s prioritou 190 (contentIncludeModificationAdmin.xml).

Pořadí sekcí v editorech

Pořadí sekcí a jejich polí tak, jak je definuje editor jednotlivých entit (režim Edit). Tučně jsou fieldsety (sekce), odrážky jejich pole.

Produkt — Edit:

  1. Obecné — stav, viditelnost, název, kód, katalogové číslo, záruční doba, krátký popis, popis
  2. Ceny — vše k cenám
  3. Sklad — dostupnost, EAN, množství
  4. Média — vše k médiím
  5. Související — štítky, související produkty
  6. Zařazení — Značka, Skupiny, Kategorie
  7. Prodej — omezení prodeje, jednotka, min., max., balení
  8. Metadata — vše k metadatům
  9. Parametry produktu — seznam parametrů
  10. Varianty — seznam variant
  11. Přiřazené adresy — seznam url
  12. Obsahové bloky — seznam rozšíření
  13. Alias produkty — seznam aliasů

Pozn.: V kódu jsou Obsahové bloky vloženy do relatedContentContainer s prioritou 190 (tj. fakticky mezi Média a Související), zatímco původní zadání (FG314) je řadí až na konec. Nesoulad umístění je vhodné ověřit se zadavatelem.

Kategorie — Edit: Obecné (stav, viditelnost, název, kód, krátký popis, popis) → Média (vše k médiím) → Související (štítky, související produkty) → Metadata (vše k metadatům) → Přiřazené adresy (seznam url) → Mapování ext. kategorií (seznam přemapování) → Rozšiřující obsah (seznam rozšíření).

Značka — Edit: Obecné (stav, viditelnost, publikovat vlastní stránku, název, kód, popis) → Média (vše k médiím) → Související (štítky) → Metadata (vše k metadatům) → Přiřazené adresy (seznam url).

Skupina — Edit: Obecné (stav, viditelnost, publikovat vlastní stránku, název, kód, popis) → Média (vše k médiím) → Související (štítky) → Metadata (vše k metadatům) → Přiřazené adresy (seznam url).

Formulář Create je u kategorie/značky/skupiny podmnožinou Edit (typicky Obecné + Související/štítky + Metadata; sklad, média a přiřazené adresy se doplňují až po založení).