Skip to main content

Možnost rychlé nabídky quick-offer

Nastavení roletky rychlé nabídky pro prvek ve formuláři a její specifikace (již zadané, zdrojové, časové omezení atd.).

U každé běžné textové kolonky je možné definovat tzv. rychlou nabídku. V podstatě jde o to, že po napsání prvních (většinou 2) písmen do kolonky se uživateli nabídne roletka se seznamem již zadaných hodnot odpovídající právě napsáným počátečním písmenům. Roletka vybírá z již existujících dokumentů z téže kolonky, kde právě uživatel provádí zadání. Jde o způsob jak usnadnit zadávání často se opakujících textů. Tato rychlá nabídka může být definována jak u kolonek s vlastním zdrojem, tak také u kolonek se zdrojem foreign, lexicon nebo initial. Je-li definována u prvku s cizím zdrojem, pak výběr položky ze seznamu roletky uživatelem vždy způsobí také výběr klíče, který již byl v nabídnutém dokumentu zadán a dojde tak k výběru zdrojového dokumentu a jsou naplněny všechny segmenty daného výběrového uzlu.

Roletka má možnost definovat několik vlastností tak, aby účelu a situaci na formuláři co možná nejvíce vyhovovala. Vlastnosti se zadávají v syntaxi známé např. z CSS definice - klíčová slova jsou od hodnot odděleny dvojtečkami a při definování více slov jsou definice vzájemně odděleny středníkem. Zde jsou jednotlivá klíčová slova se svými možnosti, jejichž nastavením je možné upravit potřebné chování:

test: expression/words
add-list: ../sibling, ...
fill-adds: no/yes
sort-by: value/order/favourite
pure-field: no/yes
division-restrict: no/yes
archive-restrict: no/yes
author-restrict: no/yes
bin-restrict: yes/no
age-restrict: no/#NUMB d[ay]/w[eek]/m[onth]/q[uarter]/y[ear]
top-restrict: no/#NUMB
source: used/selected/`foreign`/`own`/all

Podívejme se na jednotlivá klíčová slova nastavení podrobněji.

Nastavení test

Pokud výchozí nastavení změníme uvedením klíčového slova test s hodnotou words (test: words), pak bude v již provedených zadáních vyhledáván nejen celý výraz začínající zadanými znaky uživatele, ale budou do nabídky zařazeny i položky obsahující slova začínající danými písmeny. Zadá-li tak uživatel například písmena "no", pak budou do nabídky zařazeny nejen položky "Novák Josef" apod, ale také položky se zadáním "Josef Novák", což může, tam kde je to zapotřebí výrazně zefektivnit využití rychlé nabídky.

Nastavení add-list

Někdy může být žádoucí, aby byla nabízená položka seznamu roletky blíže identifikována jedním nebo několika dalšími údaji z již zavedeného dokumentu. K tomuto účelu slouží nastavení add-list. Sem je možné vepsat čárkami oddělený seznam relativních odkazů do dokumentu (odkazy nemohou být absolutní a musí vždy začínat tečkou - tedy ./ nebo ../). To nachází využítí zejména při spojení rychlé nabídky s výběrovým uzlem, kdy k přesnější identifikaci položky ještě potřebujeme jeden nebo několik dalších údajů. Je-li tedy například předmětem nabídky jméno, mohla by nás např. zajímat také obec trvalého bydliště. V nabídce tak můžeme u položky "Josef Novák" mít rovněž drobnějším písmem v závorce uvedeno "Horní Měcholupy". Toho můžeme docílit přidáním odkazu:

  • samozřejmě za předpokladu, že obec a příp. ulice jsou sourozenci prvku jména.

Nastavení fill-adds

Úzce souvisí s uvedením nastavení add-list. Má význam zejména u nevýběrových kolonek, kde pomocí hodnoty yes můžete nastavit spoluvyplňování uvedených sourozenců v momentu použití nabízené položky. Pokud tedy například vybíráme jméno osoby pro dopis a zároveň máme nastaveny kolonky adresy v add-list, pak použitím nabídnutého jména vybereme a vyplníme i adresu této osoby tak, jak byla použita v předchozím dopise a jak je zobrazena v seznamu rychlé nabídky.

Pokud je této možnosti využito ve výběrovém uzlu s mechanismem initial nebo lexicon, má výběr z rychlé nabídky přednost před naplněním výběrového uzlu. U mechanismu foreign je naopak bezpředmětná. Tedy v případě fill-adds: yes se provede výběr v uzlu, ale kokonky výběrového uvedené v add-list se vyplní hodnotou z použité rychlé nabídky.

Nastavení sort-by

Toto nastavení určuje způsob seřazení položek na seznamu rychlé nabídky. Výchozí hodnotou, jak je patrné, je slovo value. To zajistí, že seznam bude na roletce řazen běžným abecedním způsobem. Naprotitomu slovo order ponechává v nabídce původní řazení dle toho, jak jednotlivé volby byly do databáze ukládána. Poslední a velmi zajímavou možností je nastavení favourite, které v seznamu roletky zobrazí počet již použitých zadání dané položky a celý seznam roletky pak řadí dle tohoto údaje od nejvyššího k nejnižšímu, tedy od nejoblíbenějších položek k tě nejméně používaným.

Nastavení pure-field

Kombinace výběrového uzlu a roletky rychlé nabídky sebou přináší i nepřehlednou situaci v některých případech - zejm. při mechanismu foreign. Pokud chcete zajistit, aby v souvislosti s výběrem položky rychlé nabídky neproběhl výběr výběrového uzlu, do kterého kolonka spadá, nastavte vlastnstnost pure-field na hodnotu yes (příp. true). Ta zajistí, že hodnota vybraná roletkou provede prosté naplnění kolonky bez ohledu na případné návaznosti na výběrový uzel. V případě použití u kolonky ve výběrovém uzlu s mechanismem foreign toto nastavení způsobí zápis hodnoty do kolonky a tedy i změnu stávajícího či zavedení nového zdrojového dokumentu a nikoli výběr jiného, odpovídajícího, zdroje (pokud není zápis obecně zakázán přístupem uživatele ke kolonce pomocí přístupových úrovní).

Nastavení division/archive/author/bin-restrict

Tato nastavení umožňují omezit vybrané položky nastavením slova yes jen na určitý okruh s tímto významem:

  • division-restrict - jen dokumenty divize, ve které je daný uživatel zařazen

  • archive-restrict - jen nearchivní položky

  • author-restrict - jen položky vytvořené daným uživatlem

  • bin-restrict - jen položky které nejsou v koši (výchozí stav)

Nastavení age-restrict

Nastavení umožňuje omezit výběr nabízených hodnot jen na ty, jejichž vlastnický dokument byl vytvořeny jen například v období uplynulých šesti měsíců. Zápis by vypadal takto:

Jednotky uváděné za číslovkou jsou buď ve formě jednoho z klíčových slov day, week, month, quarter či year nebo formou jejich počátečních písmen. Číslice pak musí být celé, nikoli desetinné a nelze je vzájemě kombinovat jako např. 1y 6m (v takovém případě bude brán pouze první údaj a zbytek bude ignorován.

Nastavení top-restrict

Další omezující možnost, která slouží výhradně pro zjednodušení situace. Omezuje maximální počet vrácených položek. Tuto možnost omezení je výhodné kombinovat s řazením položek podle oblíbenosti. Můžete tak získat do roletky například deset nejpoužívanějších položek začínajích danými znaky.

Nastavení source

Možnost source je využitelná pouze v případě, že definovaná kolonka je výběrovým uzlem, nebo je členem výběrového uzlu. Výběrový uzel totiž nabízí vedle možnosti vybrat z již zavedených položek také položky dosud nepoužité - tj. možnosti zdrojového dokumentu. V takovém případě může jít o to, že nás již zavedené položky moc nezajímají, ale naopak chceme usnadnit výběr dalších.

Navíc u mechanismu initial a lexicon je ještě možnost volby čerpat nabídku kombinovaně pomocí klíče tak, aby bylo zamezeno disproporcím. Jde tu o to, že u mechanismu initial a lexicon máte jako uživatelé možnost (není-li omezena přístupovými právy) upravit vybrané resp. načtené hodnoty kolonek výběrového uzlu. Tuto možnost máte samozřejmě i u mechanismu foreign, ale úprava se promítne do zdrojového dokumentu a do všech instancí dokumentů, které tohoto zdroje využívají (úložiště foreign kolonek je prostě jen jedno - na rozdíl od mechanismu initial a lexicon). Navíc možnstí změny disponuje i sám zdrojový dokument a všechny nové výběry od okamžiku změny již budou disponovat novými hodnotami na rozdíl od těch výběrů starších.

V instancích dokumentů s takovými výběrovými uzly dochází tedy k vzájemným (a většinou i žádoucím) disproporcím a uživatel roletky pak nemusí vždy vědět, kterou variantu má nakonec použít. Proto u mechanismu initial a lexicon existuje možnost nastavit vlastnost source roletky na možnost used (je to i výchozí nastavení - není jej třeba speciálně vyžadovat). Pak se vždy pro výběr v roletce nabízí aktuální a správná forma textu k naplnění. Naopak nastavení na hodnotu own tuto disproporci nabízí pro případ, že by byla žádoucí. Popišme si tedy jednotlivé možnosti nastavení source:

  • used - výchozí nastavení, které zajišťuje nabídku již použitých položek; u kolonek výběrových uzlů initial a lexicon zároveň zajišťuje čerpání položek nabídky ze zdrojových dokumentů s využitím již použitých klíčů; pro nevýběrové kolonky má naprosto stejný efekt jako nastavení own;

  • selected - zajišťuje totéž co nastavení used a navíc ještě zajistí nabídku jen s těch použitých hodnot, kde je nastaven klíč výběru.

  • foreign - toto nastavení má opět význam pouze u výběrových uzlů a jde o jeho suplování či podporu - nabízené hodnoty nejsou nijak ovlivněny již vybranými hodnotami a jsou nabízeny položky přímo ze zdrojových dokumentů (tj. bez spojení na příp. dřívější výběry); toto nastavení ignoruje všechny případné restrikce (nastavení ...-restrict) a přebírá případná omezení ze source-filter výb. uzlu.

  • own - u kolonek výběrového uzlu s mechanismem initial a lexicon zajišťuje, že budou skutečně nabízeny vybrané a příp. i upravené položky z místní tabulky a nikoli aktuální stav výběru z tabulky zdrojového dokumentu (jako je tomu u nastavení used a selected).

  • all - u kolonek výběrového uzlu s mechanismem initial a lexicon zajišťuje, že budou nabízeny jak všechny položky místní (vybrané i nevybrané) tak i kompletní nabídka zdrojového dokumentu (s příp. omezením dle source-fitler).

Potenciální vlastnické uzly

Vlastnost quick-offer je možné uvést u následujících uzlů:

  • ElementDef - šablona prvku (kmenová definice) - jako parametr;

  • element - prvek (segment uvnitř definice);

Vlastnost quick-offer quick-offer

Nastavení roletky rychlé nabídky pro prvek ve formuláři a její specifikace (již zadané, zdrojové, časové omezení atd.).