= 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 ||