= Popis formulářů pro volání akcí na serveru =
== Popis životního cyklu ==
1. Uživatel se přihlásí do distributora
2. Po přihlášení se stáhne definice akcí a formulářů ({{{DocumentTasks.xml}}})
3. Uživatel si vyžádá dokument
4. Distributor přidá atribut Document.task.json s odkazy na použité akce
5. Uživatel vyvolá akci nad dokumentem z kontextového menu
6. Zobrazí se formulář
7. Uživatel vyplní požadované hodnoty a potvrdí
8. Dokument zmizí z UI a je vyvolána funkce na serveru
9. po úspěšném provedení funkce se dokument buď zobrazí s aktualizovanými hodnotami, nebo je z Tahiti odstraněn
10. při neúspěšném vyvolání funkce je zobrazena chybová hláška a dokument je obnoven v původním stavu
== Princip fungování akcí v Tahiti ==
V Tahiti je možné k dokumentu nadefinovat akce. Akce jsou zobrazovány v kontextovém menu. Pokud je akce vyvolána z kontextového menu, tak k ní může být zobrazen formulář. Použití akcí spojených s dokumentem se aktivuje nastavením speciálního atributu v dokumentu. Je možné přenášet celou definici akcí a formulářů nebo pouze odkaz na akce z již staženého popisu akcí do Tahiti.
=== Přenos celé definice formuláře a akcí ===
Formulář je popsán v xml a je přenášen jako hodnota atributu. Document.task.xml. Definiční formát je rozšířením workflow definovaných v [[http://frnk.lightcomp.cz/docs/tahiti55/admin/html/| Admin guide Workflow/Native format]] s drobnou změnou syntaxe.
{{{
}}}
|| Název atributu || význam ||
|| form || název formuláře zobrazeného při vyvolání akce, pokud není zadáno, tak se žádný formulář nezobrazuje, u jednotlivých akcí je umístěna konfigurace pro konkrétní formulář ||
=== Přenos odkazu na již stažený formulář ===
Přenáší se pouze odkaz na definici formuláře a použité akce. Odkaz je zakódován jako objekt ve formátu JSON. Odkaz je přenášen jako hodnota atributu dokumentu s názvem Document.task.json. Definice formuláře je přenášena na klienta jako soubor {{{DocumentTasks.xml}}}, který je součástí {{{Tahiti5config.zip}}}. Odkaz má následující atributy
|| Název atributu || Význam ||
|| def|| Název definičního souboru s definicí akcí a formulářů ||
|| actions|| pole s názvy použitých akcí, akce se stejným názvem musí existovat v definičním souboru, pokud seznam akcí obsahuje pouze hodnotu "*", jsou použity všechny akce ||
Povolení všech akcí
{{{
Document.task.json={"def":"GolemTasks","actions":["*"]}
}}}
Povolení pouze vybraných akcí
{{{
Document.task.json={"def":"GolemTasks","actions":["ChangeAttributes","ChangeType","CopyDocument"]}
}}}
= Formuláře =
== Tahiti.internalForm.changeAttributes ==
Formulář pro změnu atributů dokumentu
{{{
}}}
|| Název atributu || Význam ||
|| changeType || změna dokumentového typu v rámci jedné oblasti, možné hodnoty Y,N ||
|| changeArea || změna dokumentového typu včetně oblasti, možné hodnoty Y,N ||
|| changeAttributes || seznam atributů, které je možné měnit, pokud je zadána * je možné měnit všechny atributy ||
|| protectAttributes ||seznam atributů, které není možné měnit, pro použití v kombinaci s changeAttributes="*" ||
|| postAction || akce provedenaá po úspěšném zavolání metody na serveru, možné akce jsou close - zavře dokument, update - změní hodnoty dokumentu na zadané a nechá ho v Tahiti, pokud není zadáno ponechá dokument v Tahiti nezměněn ||
|| confirm || zpráva zobrazená před provedením akce, pokud není zadána potvrzení není vyžadováno a akce se rovnou provede ||
|| method || název metody volané na serveru ||
== Tahiti.internalForm.confirm ==
Formulář pro zobrazení potvrzovací zprávy před provedením akce
{{{
}}}
|| Název atributu || Význam ||
|| confirm || zpráva zobrazená před provedením akce, pokud není zadáno, zpráva se nezobrazí a akce je rovnou provedena ||
|| postAction || akce provedenaá po úspěšném zavolání metody na serveru, možné hodnoty close - zavře dokument, pokud není zadáno ponechá dokument v Tahiti nezměněn ||
|| method || název metody volané na serveru ||