Co je nového
Přehled dodaných funkcí. Každá změna chování musí přidat řádek sem (viz Konvence dokumentace).
Verze 1.38.0
- Skupiny podmínek v pravidlech (TASK-73): tlačítkem + Skupina v bloku KDYŽ lze sestavit logiku typu (A a zároveň B) nebo (C nebo D). Každá skupina má vlastní volbu „platí všechny / alespoň jedna“, spojení mezi skupinami se přepíná zvlášť a věta „Čte se jako“ zobrazuje závorky. Stará pravidla fungují beze změny jako jedna skupina; s jedinou zbývající skupinou se pravidlo vrátí do jednoduchého tvaru. Viz Skupiny podmínek.
- Upozornění a potvrzení změny v pravidlech (TASK-12): nové akce průběžných pravidel Zobrazit upozornění (lišta nad formulářem s tlačítkem Rozumím) a Potvrdit změnu (modální dialog; Zrušit změnu vrátí pole na předchozí hodnotu). Spouští se jen ve chvíli, kdy se podmínky po změně začnou plnit, nikdy při načtení formuláře; návrat hodnoty dialog znovu nevyvolá. Texty lze přeložit v záložce Překlady.
Verze 1.37.0
- Formát sloupců v pohledech seznamu (TASK-68, Pro): v záložce Akce seznamu lze sloupcům seznamu nastavit štítky, ukazatel, zvýraznění termínu nebo osobu (stejný editor jako u Souvisejících položek). Formát se zapíše jako nativní formátování sloupce SharePointu (
CustomFormatter) a funguje v každém zobrazení i v mobilní aplikaci. Cizí formátování se před přepsáním potvrzuje a zálohuje (Obnovit původní), změny mimo FormCraft se poznají podle hashe, Obnovit výchozí formátování odebere. Viz Formát sloupců v pohledech seznamu. - Grafický editor hodnot akce Upravit položku (TASK-66): hodnoty
updateValuesse zadávají v řádcích pole + hodnota podle typu pole s výběrem tokenů@today,@me,@meIda zástupců{Title}; JSON zůstává jako přepínač. Tokeny nerozlišují velikost písmen a{Pole}se doplní z každé vybrané položky. Viz Tlačítka a akce seznamu.
Verze 1.36.0
- Související dokumenty: mazání souborů (
allowDelete): nová volba Povolit mazání souborů přidá u každého souboru tlačítko Smazat. Po potvrzení se soubor přesune do koše webu (ne trvale) a seznam se obnoví; bez oprávnění se zobrazí chyba SharePointu. Výchozí je vypnuto. - AI asistent: hlásí vlastnosti odpovědi, které schéma zahodilo (vymyšlené klíče); pokles skriptů a tlačítek vyžaduje potvrzení stejně jako pokles polí a pravidel; uložený výběr souvisejících seznamů se doplní o seznamy použité ve formuláři; související seznamy se nenačítají dvakrát a mají ukazatel načítání; kontrola velké odpovědi se odkládá, aby psaní nelagovalo.
- Zobrazení: pole Umístění ukazuje v režimu Zobrazení odkaz Zobrazit na mapě.
- Lokalizace chyb: interní chybové hlášky služeb (uložení a načtení položky, přílohy, oprávnění 403/404/412, vytvoření sloupce, neinicializované služby) se zobrazují v jazyce formuláře (cs, en, de, sk).
- Technické: rozšířený výběr vlastností sloupců (Choices, LookupList…) se u
getListColumnspoužívá jen pro AI asistenta; odstraněny nepoužité texty rozhraní (inspOf12,cbPlacement*,cbShownIn*).
Verze 1.35.0
- Nové rozvržení záložky AI asistent: kontext (režim, seznam, související seznamy) je sbalená lišta nahoře; odkaz Upravit kontext ji rozbalí na volbu režimu a Uložit jako výchozí uloží režim i výběr seznamů do konfigurace. Pod ní jsou vedle sebe dva sloupce: 1 Zadání pro AI (recepty, zadání, karta Předat AI se staženým souborem jako hlavní cestou) a 2 Odpověď AI a kontrola s počítadlem iterací. Na užších obrazovkách jsou pod sebou.
- Výběr souvisejících seznamů: vybrané seznamy a knihovny jsou čipy s počtem sloupců a tlačítkem pro odebrání. Tlačítko Přidat seznam / knihovnu otevře výběr s hledáním, skupinami Seznamy a Knihovny dokumentů a štítkem Použito ve formuláři (cíl vyhledávacího pole, zdroj widgetu Související položky nebo dokumenty). Když formulář používá seznam, který není vybraný, lišta zobrazí varování.
- Kontrola odpovědi v kartách: odpověď lze vložit ze schránky nebo přetáhnout soubor .json/.md/.txt; po vložení se zobrazí souhrn (počet znaků, spojené bloky kódu) a karty Brání aplikaci (chyby schématu s cestou, tlačítko Kopírovat chyby pro AI pro další iteraci, potvrzení rizik), Chybí v SharePointu (stav vytvoření každého sloupce) a Souhrn změn (dlaždice před → po s rozdílem). Lepivá lišta dole ukazuje, co ještě brání aplikaci.
- Oprava náhledu dokumentu: po přejetí myší z názvu dokumentu do náhledu už karta neposkočí ani se nezmenší (BUG-27).
Verze 1.34.0
- Náhled dokumentu u okraje okna: náhled souvisejícího dokumentu při najetí myší se umístí na stranu řádku (pod, nad, vpravo, vlevo), kde je nejvíc místa, a zmenší se na dostupný prostor. V dialogu seznamu už není oříznutý vpravo a tlačítko Připnout zůstává vidět.
- Konfigurace libovolného pole z plátna: ozubené kolo u každého pole (ne jen u widgetů Související položky, Související dokumenty, Opakující se tabulka a Historie verzí) otevře dialog se stejným nastavením jako boční panel a živým náhledem pole. Změny se použijí až tlačítkem Uložit jako jeden krok Zpět; dialogy mají v záhlaví tlačítko Zavřít (X), které se chová jako Zrušit.
- Uložení nezavírá builder: po uložení konfigurace zůstane builder otevřený, zobrazí se hláška Konfigurace byla uložena a formulář za ním se překreslí novou konfigurací. Při chybě se zobrazí chybová hláška a builder se nezavře.
- Rychlejší načtení formuláře, menší stahování: formulář už nestahuje texty všech jazyků ani texty návrháře. Vstupní balíček formuláře je o zhruba 370 kB menší; texty angličtiny, němčiny a slovenštiny se stáhnou jen při potřebě (souběžně s daty formuláře) a texty návrháře až při jeho otevření. Formulář, přepínač jazyka i builder se zobrazí rovnou ve správném jazyce. Dialogy příkazů na liště stahují místo celého slovníku jen texty svého jazyka.
Verze 1.33.0
- Rychlejší otevření formuláře: položka se načítá souběžně s konfigurací (při opakovaném otevření formuláře ze stejného seznamu), soubor konfigurace se stahuje jen jednou a existence zálohy se zjišťuje jen správcům. Vstupní balíček formuláře je menší (widgety Ukazatel procesu a KPI a tvorba sloupců se načítají až při použití). Zobrazuje se vždy aktuální konfigurace ze serveru.
- Náhled dokumentu v dialogu: náhled souvisejícího dokumentu při najetí myší se vejde do okna (i v dialogu nebo malém okně) a v hlavičce má odkaz Otevřít v nové záložce.
Verze 1.32.1
- Řídicí sloupec steppera jen pro čtení: je-li stejné pole ve formuláři vícekrát (např. na dvou záložkách) a zámek „jen pro čtení“ má jen jedna kopie, zůstávalo pole i stepper editovatelné. Zámek z konfigurace teď platí, má-li ho kterákoli kopie pole.
- Skrytí vestavěného příkazu Upravit: nová volba
hideDefaultEditv nastavení otevírání formuláře v dialogu skryje příkaz Upravit (klíčedit, ne Rychlé úpravy) přes formátování veřejných zobrazení. Viz Formulář v dialogu z výpisu seznamu.
Verze 1.32.0
- Dialog formuláře z akce seznamu (BUG-25): dialog akce Otevřít formulář má jediné zavírací tlačítko (X v titulku, formulář uvnitř má vlastní Zavřít/Uložit), v titulku ukazuje název vybrané položky (jinak název akce) a obsah už není vlevo oříznutý. Viz Tlačítka a akce seznamu.
- Otevírání formuláře v dialogu z výpisu seznamu (TASK-79): nové volby
listViewDialogv záložce Akce seznamu – příkaz Nový na liště, příkazy Otevřít v dialogu / Upravit v dialogu pro jednu vybranou položku a skrytí vestavěného Nový přes formátování zobrazení (jen u seznamu vyřazeného z offline synchronizace). Obchvat chyby Microsoftu sp-dev-docs#10996. Viz Otevírání formuláře v dialogu. - Náhled dokumentu se nezavírá předčasně: rychlý náhled souvisejícího dokumentu zůstane po odjetí myši otevřený asi 1 s (dříve 0,2 s), takže do něj jde pohodlně přejet. Viz Související dokumenty.
- Klikací stepper jen s editovatelným řídicím sloupcem: kroky interaktivního ukazatele procesu jsou klikací jen tehdy, když je řídicí sloupec v rozložení aktuálního režimu, není v nastavení pole jen pro čtení a není jen pro čtení v SharePointu (skrytí nevadí). Návrhář na nesplněnou podmínku upozorní. Viz Ukazatel procesu.
Verze 1.31.0
- Interaktivní procesní stepper (TASK-26): volby
stepperConfig.interactive,confirmStepChangeaconfirmMessage. V režimu Úprava a Nový klik na krok zapíše hodnotu do řídicího sloupce (volitelně po potvrzení); neukládá se automaticky. Viz Ukazatel procesu. - Barevné štítky hodnot volby v režimu zobrazení (TASK-76): pole typu Volba má volitelnou mapu
choiceColors(hodnota → barva). V čtecím zobrazení má každá hodnota štítek ve své barvě, nenamapované zůstávají šedomodré. Nastavuje se v inspektoru pole. Viz Volba. - Jednotná hláška po uložení (TASK-17): potvrzovací hláška (
afterSaveConfig.message) se u zavření, přesměrování i uložení v dialogu souvisejících položek zobrazí ve formuláři zeleným pruhem místo okna prohlížeče (alert). Navigace proběhne po prodlevě 1,5 s nebo po kliknutí na Pokračovat; bez hlášky ihned. Viz Chování po uložení. - Změna velikosti náhledu dokumentu (TASK-67): rychlý náhled souvisejícího dokumentu lze zvětšit tažením rohu myší nebo šipkami (20 px, se Shiftem 80 px), dvojklik vrátí výchozí velikost, volba se pamatuje v prohlížeči. Tlačítko Připnout / zvětšit otevře dokument v dialogu. Viz Související dokumenty.
Verze 1.30.1
- Rychlejší zobrazení tlačítka na liště seznamu (TASK-69): vstupní balíček rozšíření lišty se zmenšil z asi 1 066 kB na asi 27 kB (minifikovaně). Těžké části (kontrola oprávnění, dialogy, návrhář, akce seznamu) se načítají líně až po zobrazení tlačítka, takže tlačítko Otevřít editor FormCraft 365 naskočí bez znatelného zpoždění. Chování se nemění.
Verze 1.30.0
- Více podmínek zobrazení vlastního tlačítka (TASK-75): tlačítko může mít seznam podmínek (
conditions) spojených jako platí všechny nebo platí alespoň jedna (conditionMatch), např. Stav = „Ke schválení“ a zároveň uživatel ve skupině „Schvalovatelé“. Původní jednaconditiondál funguje; při úpravě v návrháři se převede naconditions. Viz Tlačítka.
Verze 1.29.0
- Zpevnění seznamu při aktivaci (TASK-70): dialog Vlastní formulář nabízí (výchozí zapnuto) vypnutí offline dostupnosti seznamu a rychlých úprav (zobrazení mřížky). Offline dostupnost blokuje spuštění tlačítek a akcí seznamu u uživatelů se synchronizací Microsoft Lists; rychlé úpravy obcházejí pravidla formuláře. Selhání nastavení je jen varování, aktivace proběhne. Při deaktivaci lze obě nastavení vrátit.
- Varování v návrháři: záložka Akce seznamu upozorní, že je seznam dostupný offline, a tlačítkem Vyřadit seznam ze synchronizace to opraví. Nová volitelná metoda
FormDataProvider.getListHardening / setListHardening. - Dokumentace: Řešení potíží (Synchronizace Microsoft Lists) a Instalace popisují obě volby i upozornění, že pravidla FormCraftu platí jen ve formuláři.
- Název tlačítka na liště (TASK-72): tlačítko na liště seznamu se nyní jmenuje „Otevřít editor FormCraft 365“ (en „Open FormCraft 365 editor“).
Verze 1.28.3
- Související položky a dokumenty (BUG-24): po uložení položky otevřené z widgetu Související položky nebo Související dokumenty se v okně načetl celý SharePoint. Nyní se okno po uložení zavře a tabulka se obnoví, takže jsou vidět upravené hodnoty.
Verze 1.28.2
- Diagnostika fc.debug v produkčním buildu: výpis
[FormCraft]používáconsole.warn, protože produkční minifikace odstraňujeconsole.info. V konzoli zapněte Preserve log. Viz Řešení potíží. - Dokumentace: do Řešení potíží přibyla příčina „Synchronizace Microsoft Lists“ (SPFx se vůbec nespustí, jak ji poznat a zmírnit) a kontrola zakázaného záznamu Tenant Wide Extensions. Postup aktualizace Tenant Wide Extensions je opraven: SharePoint chybějící záznamy podle názvu přidá, existující nemění ani nemaže, zastaralé (
FormActivatorCommandSet-ContextMenu-*) je nutné smazat. Upraveno zdůvodnění BUG-23 (dělení na dvě komponenty zůstává, tvrzení o dvou instancích jedné komponenty nebylo prokázáno).
Verze 1.28.1
- Rozlišení lišt v návrháři: „Lišta“ v záložce Lišta a tlačítka se nově jmenuje „Lišta formuláře“. Lišta seznamu (Command Bar) a kontextové menu položky jsou v záložce Akce seznamu pojmenované přesněji. Karta „Kde a kdy se zobrazí“ má nápovědu s odkazem „Přejít na Akce seznamu“.
- Tlačítko „Otevřít návrhář“ náhodně mizelo z lišty seznamu (BUG-23): lišta a kontextové menu používaly jednu komponentu Command Setu rozlišenou jen vlastností registrace. Předpokládaná příčina (viz 1.28.2): lišta se po vymazání dat webu nebo obnovení stránky občas chovala jako kontextové menu. Akce kontextového menu teď obsluhuje samostatná komponenta FormListActionsContextMenu s vlastním Component Id, lišta je vždy lištou.
- Diagnostika: po
localStorage.setItem("fc.debug","1")a obnovení stránky vypisují obě komponenty do konzole řádky[FormCraft](vlastnosti, oprávnění, viditelnost příkazů a slotů). Viz Řešení potíží. - Povinná úprava po aktualizaci: v seznamu Tenant Wide Extensions v App Catalogu smažte 3 staré záznamy kontextového menu
FormActivatorCommandSet-ContextMenu-*; nové záznamyFormListActionsContextMenu-*(Component Ida9998067-8e06-423f-b8a0-3177988f3a42) SharePoint přidá sám. Bez toho se akce kontextového menu nezobrazí. Postup v prohlížeči i v PowerShellu je v Instalaci.
Verze 1.28.0
- Redesign záložky Lišta a tlačítka (TASK-71): záložka je nově rozdělená na seznam tlačítek vlevo a detail vpravo. V seznamu jsou systémová tlačítka (štítek režimů, přepínač zobrazení) a vlastní tlačítka s přetahováním za úchyt, šipkami a štítkem podmínky. Detail nabízí popisek, ikonu, vzhled jako čtyři dlaždice, umístění a režimy jako čipy, souhrn podmínky a kroky po kliknutí (potvrzovací dialog, akce, validace a uložení) v pořadí provádění. Přibyly akce Duplikovat a Smazat (s potvrzením, je-li tlačítko vložené ve formuláři). Náhled lišty a patičky se otevírá v bočním panelu a kliknutí na vlastní tlačítko ho vybere v seznamu. Formát uložené konfigurace se nemění. Viz Tlačítka.
Verze 1.27.0
- Vlastní záložka Akce seznamu (TASK-65): editor vlastních akcí seznamu (
listActions) se přesunul z konce záložky Lišta a tlačítka do samostatné záložky návrháře Akce seznamu. - Texty tlačítek potvrzení: potvrzovací dialog akce seznamu má volitelný text potvrzovacího tlačítka (
confirmation.confirmLabel) a tlačítka Zrušit (confirmation.cancelLabel); prázdné = výchozí text. Texty jdou přeložit v záložce Překlady. - Značka v hlavičce návrháře: záhlaví dialogu návrháře nově zobrazuje název produktu FormCraft 365 před názvem okna.
Verze 1.26.2
- Návrhář otevřený z lišty seznamu (BUG-22): po uložení konfigurace v návrháři otevřeném z lišty seznamu se stránka po zavření znovu načte, aby se vlastní akce seznamu projevily na liště i v kontextovém menu a tlačítko „Otevřít návrhář“ nezmizelo.
Verze 1.26.1
- Konfigurační okno widgetu: náhled se už nevykresluje a nepřenačítá při každé úpravě, což způsobovalo problikávání a překážel. Zobrazí se tlačítkem Zobrazit náhled, po dalších úpravách se aktualizuje tlačítkem Obnovit náhled (do té doby okno upozorní, že náhled neodpovídá posledním změnám) a lze ho zase skrýt.
- Dokumentace: opraven postup aktualizace Tenant Wide Extensions. SharePoint záznamy při aktualizaci balíčku nepřidává ani nemění, proto Instalace popisuje ruční kontrolu v prohlížeči (doplnění chybějících a smazání zastaralých záznamů). V Řešení problémů přibyl postup pro případ, kdy na liště chybí tlačítko „Vlastní formulář“.
Verze 1.26.0
- Spuštění návrháře přímo z ribbonu seznamu (TASK-15): pokud je na seznamu aktivovaný FormCraft 365 a uživatel má oprávnění správce, tlačítko v horní liště seznamu zobrazí volbu Otevřít návrhář a otevře vizuální editor formuláře přímo nad seznamem bez nutnosti otevírat položku; dialog aktivace zůstává dostupný z návrháře.
- Vlastní akce v pásu karet seznamu a kontextovém menu (TASK-58): v záložce Lišta a tlačítka lze nadefinovat až 10 vlastních tlačítek pro horní lištu seznamu (Command Bar) a kontextové menu položky (
listActions) s podmínkou výběru (none,single,multiple), volitelnou datovou podmínkou viditelnosti (pouze edice Pro), potvrzovacím dialogem a akcemi (updateItem,openForms podporou?fcTab=,prints podporou?fcPrint=1,openUrl,triggerFlow,runScriptřízeným politikou skriptů). - Bezpečnost a payload
triggerFlow+triggerFlowFields: webhook URL je omezena na HTTPS a povolené hostitele Power Automate / Azure Logic Apps (*.logic.azure.com,*.powerplatform.com,*.api.powerplatform.com). Do flow se posílá pouzeIDpoložky a volitelně pole uvedená vtriggerFlowFields(změna oproti původnímu plnému řádku – stávající flow je nutné upravit tak, aby si položku znovu načetla ze SharePointu podleIDa ověřila stav i oprávnění). - Překlady akcí seznamu: názvy tlačítek a texty potvrzovacích dialogů (
title,confirmTitle,confirmMessage) lze přeložit v kartě Překlady i přímo v záložce Lišta a tlačítka při přepnutém jazyce návrháře (i18nConfig.translations[jazyk].listActions). - Upgrade rozšíření: protože je
FormActivatorCommandSetnově registrován odděleně pro horní lištu a kontextové menu, při aktualizaci ze starší verze je nutné odstranit starý záznam v Tenant Wide Extensions a znovu registrovat rozšíření. Postup krok za krokem včetně PnP skriptu je v Instalaci.
Verze 1.25.0
- Související položky a dokumenty: sloučený editor sloupců: sloupce jsou ve dvou blocích. Dostupné sloupce (kompaktní mřížka s vyhledáváním) slouží jen k zaškrtnutí. Zobrazené sloupce mají v jednom řádku pořadí (přetažení nebo šipky), vlastní název, odebrání a u Souvisejících položek i formát buněk s rozbalitelným nastavením. Uložená konfigurace (
viewFields,columnLabels,columnFormatting) se nemění.
Verze 1.24.1
- Konfigurační okno widgetu: nastavení sloupců (formát, barvy štítků) se už nepřekrývá s náhledem. Celý obsah okna se posouvá jedním posuvníkem.
Verze 1.24.0
- Související položky a dokumenty: pořadí sloupců: v konfiguraci widgetu lze změnit pořadí zobrazených sloupců tabulky přetažením řádku myší nebo šipkami nahoru a dolů v seznamu Pořadí sloupců. Pořadí se ukládá do
viewFields, starší konfigurace se nemění.
Verze 1.23.1
- Konfigurační okno widgetu: náhled už nepřetéká mimo okno, obsah okna se posouvá uvnitř. Na záložce Sloupce je pole pro vlastní název hned vedle názvu sloupce. Po zaškrtnutí sloupce se tak výška seznamu nemění a okno neposkakuje.
Verze 1.23.0
- Související položky: pokročilý filtr (TASK-62, popis): ve velkém konfiguračním okně je nová záložka Filtr s vizuálním tvůrcem podmínek (AND/OR, vnořené skupiny, tokeny Dnes s posunem ve dnech a Přihlášený uživatel, hodnota pole formuláře) a volitelným expertním OData výrazem. Filtr se spojí s vazbou na položku (
relatedItemsConfig.filter,customODataFilter), widget se při změně pole formuláře přenačte a živý náhled i zkompilovaný výraz se v okně aktualizují při úpravách. Starší konfigurace se nemění.
Verze 1.22.0
- Související položky: vizuální formát sloupců (TASK-55, popis): ve velkém konfiguračním okně lze sloupec zobrazit jako štítek, ukazatel průběhu, upozornění na termín nebo osobu s iniciálami a odkazem na e-mail (
relatedItemsConfig.columnFormatting). Barvy jsou pojmenované, bez vlastních HEX. Starší konfigurace se nemění.
Verze 1.21.0
- Builder: velké konfigurační okno má i widget Historie verzí, se záložkami Zobrazení a Sledované sloupce a živým náhledem. Otevře se z inspektoru nebo ikonou Konfigurovat na plátně.
Verze 1.20.1
- Interní: překlady rozděleny do souborů podle jazyka (
i18n/keys.ts,cs.ts,en.ts,de.ts,sk.ts), bez funkční změny.
Verze 1.20.0
- Související dokumenty: chyba dotazu v režimu složek (BUG-07): při selhání dotazu na složku (oprávnění, omezení počtu požadavků, práh zobrazení seznamu, síť) widget dříve tiše ukázal prázdný seznam. Nově zobrazí lokalizovanou chybu; prázdný seznam se vrací jen při HTTP 404.
- Velké konfigurační okno widgetů (TASK-56, popis): Související položky, Související dokumenty a Opakující se tabulka lze konfigurovat v prostorném okně se záložkami (Zdroj dat a vazba, Sloupce, Řazení a chování), s konceptem (Uložit = jeden krok Zpět, Zrušit a Esc zahodí) a živým náhledem skutečného widgetu. Otevírá se tlačítkem v inspektoru nebo ikonou Konfigurovat na kartě widgetu. Bez změny schématu konfigurace.
Verze 1.19.1
- Oprava náhledu patičky: náhled v záložce „Lišta a tlačítka“ ukazoval v patičce tlačítko Tisk (a v Úpravách Uložit/Zrušit), které ve formuláři v SharePointu nejsou – jsou jen v liště. Náhled nyní zobrazuje jen vlastní tlačítka patičky.
Verze 1.19.0
- Umístění tlačítka: Lišta / Patička / Ve formuláři (TASK-57): nová volitelná vlastnost
customButtons[].placements(víc míst najednou), v editoru tři zaškrtávátka místo výběru. Zaškrtnutí „Ve formuláři“ nabídne sekci a vloží widget, odškrtnutí po potvrzení widget odebere (jeden krok Zpět); u volby je vidět, v kterých sekcích tlačítko je; bez umístění se zobrazí upozornění. Patička zobrazí tlačítko nezávisle na tom, zda je i widgetem. Karta Lišta a tlačítka ukazuje náhled lišty i patičky. Starýplacementzůstává a uložené formuláře se chovají stejně.
Verze 1.18.0
- Karta Lišta a tlačítka (TASK-52): nahrazuje kartu Tlačítka. Nahoře živý náhled skutečné příkazové lišty s přepínačem režimu (Zobrazení / Úprava / Nová položka), kliknutí na tlačítko v náhledu ho vybere v editoru; pod ním systémová tlačítka (zobrazení a popisek, včetně Nastavení formuláře) přesunutá z okna Nastavení a vlastní tlačítka s řazením přetažením.
- Ikona vlastního tlačítka: nová volitelná vlastnost
customButtons[].icon(předvolby jako u záložek); zobrazí se v liště i na tlačítku v sekci, bez ikony zůstává blesk. Nová volitelná vlastnostcommandBarConfig.settingsLabel. - Vícejazyčnost: texty upravené v kartě v nevýchozím jazyce návrháře se zapisují do
i18nConfig.translations[jazyk](buttons,commandBar);settingsLabelje přeložitelný v kartě Překlady.
Verze 1.17.1
- Lišta formuláře ve stylu SharePointu (TASK-06-R): Zpět je nově drobečková navigace „Seznam › Položka“ nad lištou, tlačítka lišty mají jednotnou výšku, písmo a ikonu, vyplněné je jen hlavní tlačítko (Upravit / Uložit) a vlastní tlačítka v záhlaví mají stejnou velikost jako ostatní. Záložní lišta při chybě vykreslení má stejný vzhled. Viz příkazová lišta.
Verze 1.17.0
- Příkazová lišta formuláře (TASK-06): horní Fluent v9 lišta sdružuje Zpět, Upravit, Uložit, Zrušit, Tisk a Nastavení formuláře. Vlastní tlačítka mají umístění
placement(section/header/both). Lišta se nastavuje v návrháři (commandBarConfig), popisky tlačítek jdou přeložit v kartě Překlady. Při vypnuté liště nebo pádu formuláře zůstanou správci dostupné Nastavení formuláře a Zpět; vlastnísaveLabelneskryje stav ukládání;showPrintButtonopět platí i ve formuláři na SharePointu; náhled návrháře nemá tlačítko Tisk. - Tisk a PDF (TASK-25): vytisknou se všechny viditelné záložky pod sebou se sbalenými sekcemi rozbalenými. Záložky skryté pravidly se netisknou, upozornění na nenačtená pole se tiskne. Tiskové barvy jsou systémové (bez pevných hex hodnot).
- Licence (TASK-37): pole
upd(konec práva na aktualizace), revokace klíčů přeskidv balíčku, informativní metadatameta.licensedToameta.tenantId, produkční build bez sourcemap. Vypršeléupdukáže návrháři zákazníka a výzvu k obnovení a koncovým uživatelům nezobrazí vodoznak Community Free. Návrhář zobrazuje zákazníka, tenanta a platnost. Viz Licencování. - Konflikt souběžné úpravy konfigurace (TASK-38): každé uložení dostane revizi, souběžná změna jiným správcem vyvolá dialog s volbami uložit do historie (doporučeno), načíst novou verzi, přepsat. Druhé uložení v jedné relaci už nehlásí falešný konflikt, „Uložit do historie“ nemění živou konfiguraci a obnova ze zálohy chrání cizí změny. Viz návrhář.
- Politika skriptů na úrovni tenanta (TASK-43), fail closed: klíč Storage Entity
FormCraft365_ScriptsPolicy(allow/deny,denymá přednost před starým klíčem). Chybějící nebo neznámá hodnota znamená skripty vypnuté, takže upgrade nezapne skripty tenantům, kteří politiku nenastavili. Přidenyjdou skripty v návrháři smazat. Viz Politika skriptů. - Opravy z code review vlny 1: bezpečnostní výchozí stav skriptů, falešné konflikty revizí, tisk skrytých záložek, dostupnost Nastavení formuláře, texty konfliktního dialogu a licence ve 4 jazycích (datum podle jazyka), úklid licenčního kódu a nepoužitého textu, testy bez varování act() a bez výpisů do konzole, nové inline styly nahrazeny třídami.
Verze 1.16.0
- Oprava: volba pole pro součet opakující se tabulky (BUG-15): skupina Propisovat součet do pole je v inspektoru tabulky vždy vidět. Bez vhodného pole ve formuláři nebo bez číselného sloupce je zakázaná a vysvětlí důvod. Výběr zdrojového sloupce se zobrazí vždy, když je nastaven cíl, a už se nepoužívá chybný náhradní klíč
cena. Cílem může být nově i pole typu Jeden řádek textu; součet se do něj zapíše jako strojově čitelný text (bez oddělovačů tisíců, desetinná tečka). Konfigurace zůstávají kompatibilní. - Oprava: klávesa Delete v návrháři na tenantu (BUG-16): návrhář běží v SharePointu uvnitř dialogu a zkratka Delete (TASK-30) ignorovala každý dialog, takže nedělala nic. Ignoruje se nově jen dialog, který návrhář neobsahuje (například okno otevřené nad ním); ostatní ochrany (textová pole, nabídky, rozevírací seznamy, otevřený dialog dopadu) zůstávají.
- Kontrola datových typů polí proti sloupcům seznamu (TASK-34): pole bez
fieldType(například měna v ručně psaném JSON) tiše vypadlo z funkcí vázaných na číselná pole. Nově se chybějící typ doplní ze sloupce při použití JSON, při importu, u návrhu od AI i v paměti při načtení formuláře (syncConfigWithSchema), a návrhář oznámí počet doplnění (ftcFilled). Neslučitelné typy (checkFieldTypesvbuilder/fieldTypeCheck.ts, povolené alternativy například Note jako opakující se tabulka, uživatel jako people, číslo jako hodnocení) se hlásí jako upozornění v editoru JSON a v liště návrháře; textyftc*ve 4 jazycích. - Historie verzí: formát data a času (BUG-17): datum a čas verzí a komentářů se formátuje podle jazyka formuláře, dříve se zobrazoval surový ISO řetězec.
- Editor JSON hlásí chybějící datový typ už při psaní: pole bez
fieldTypeje vypsané s typem, který se při použití doplní podle sloupce.
Verze 1.15.0
- Přejmenování produktu na FormCraft 365 (TASK-23): uživatelsky viditelný název produktu je nově FormCraft 365 (v App Catalogu FormCraft 365 for Microsoft SharePoint). Změna se týká názvu a popisů řešení, titulků instancí komponent, textů v terminálu návrháře a aktivačního dialogu (cs, en, de, sk), patičky formuláře, CSOM
ApplicationNamea dokumentace. Interní názvy (balíčekspfx-form-customizer, ID komponent, cestySiteAssets/FormCustomizer, prefix licenčního klíčeSPFXFC-) zůstávají beze změny, takže stávající nasazení a uložené konfigurace fungují dál. - Oprava přidání sloupce do typu obsahu (BUG-00): REST
FieldLinks.Addhledá sloupec mezi sloupci webu, a sloupec jen v seznamu proto nenašel („Column does not exist“). Odkaz na pole se nyní vytváří přes CSOM (_vti_bin/client.svc/ProcessQuery) po jednom typu obsahu; chyba v odpovědi (ErrorInfo) se hlásí u daného typu se zprávou serveru, sloupec v seznamu zůstává. - Správná verze v návrháři: popisek verze ukazoval 0.0.1, protože manifest komponent bere verzi z
package.jsonbalíčku. Verze vpackage.jsonje nyní 1.15.0 a test hlídá, aby se shodovala spackage-solution.jsonadocs/assets/manifest.js. - Lokalizace zbylých chyb: „Chyba při vykreslení formuláře“ (ErrorBoundary), „Kritická chyba formuláře“, chyba inicializace formuláře, chybějící ID položky, výchozí název formuláře, popisek tlačítka zavření zprávy skriptu, texty v editoru procesních tlačítek a výchozí texty v editoru překladů se zobrazují v jazyce uživatele (cs, en, de, sk).
- Formát data a času: sloupce typu Datum a čas ve widgetech Související položky a Související dokumenty i ve čtecím zobrazení se formátují podle jazyka formuláře: jen datum u sloupců Jen datum, datum a čas (hh:mm) u sloupců Datum a čas. Hodnota „jen datum“ uložená o půlnoci UTC se nezobrazí o den dřív.
- Oprava: Edit neztratí aktivní záložku (BUG-13): přepnutí z čtecího zobrazení do úprav (a zpět) renderer remountuje a vždy otevíral první záložku. Hostitel si nyní pamatuje aktivní záložku (nový volitelný prop rendereru
onActiveTabChangea existujícíinitialTabId); pokud záložka v novém režimu neexistuje nebo je skrytá, otevře se první viditelná. - Oprava: KPI progress bar ignoroval cílovou hodnotu (BUG-14): nastavené
targetFieldmělo přednost předtargetValue, i když ukazovalo na samotné zdrojové pole (hodnota 1000, cíl 250000 se vykreslilo jako 1000 / 1000). TakovétargetFieldse nyní ignoruje a platí pevný cíl. - Cíl KPI z jiného sloupce (TASK-33): v inspektoru KPI přibyl přepínač Pevné číslo / Z jiného sloupce a výběr číselného sloupce (nová volitelná vlastnost
kpiConfig.targetSource, výchozífixed; starší konfigurace stargetFieldfungují beze změny). Cíl se čte živě z formuláře; prázdný nebo nulový cíl spadne na pevné číslo.
Verze 1.14.0
- Oprava přidání sloupce do typu obsahu (BUG-00): odkaz na pole (
FieldLink) se posílá jako dokumentovaný verbose OData požadavek (hlavičkyContent-TypeaAcceptapplication/json;odata=verbose, tělo s__metadatatypuSP.FieldLink,FieldInternalName,Hidden,Required). Dřívější varianty JSON light SharePoint odmítal. Selhání se hlásí po typech obsahu se zprávou serveru, sloupec v seznamu zůstává. - Příkaz „Vlastní formulář“ na liště seznamu (BUG-09): název příkazu je lokalizovaný (výchozí angličtina „Custom form“, dále čeština, němčina, slovenština podle jazyka SharePointu). Ve stavu aktivačního dialogu je text „Stav na seznamu“ přeložený (
faListStatus) a záložní název seznamu už není napevno česky. - Nepojmenovaná sekce (BUG-10): sekce bez názvu ve formuláři ukazuje přeložené „Sekce“ (
sectionUntitled); stejně se přeložily záložní názvy nepojmenované záložky v inspektoru (tabUntitled) a tlačítka-widgetu (customButtonDefaultLabel). - Verze v návrháři (TASK-31): v horní liště návrháře je vedle přepínače jazyka malý popisek s verzí běžícího balíčku (například v1.14.0.0), tooltip
builderVersionTooltip. Hodnotu dodává hostitel přes nový volitelný propappVersion.
Verze 1.13.0
- Klávesa Delete v návrháři (TASK-30): na kartě Rozvržení smaže klávesa Delete označené pole, widget nebo sekci stejnou cestou jako tlačítko Smazat (včetně dialogu s dopadem na pravidla a skripty). Nefunguje při psaní do textového pole, v otevřeném dialogu ani v nabídce. Po smazání se výběr zruší a Zpět (Ctrl+Z) smazání vrátí jedním krokem. Tlačítka Smazat mají ve tooltipu nápovědu ke zkratce Delete (
layoutDeleteKeyHint, 4 jazyky). - Oprava výchozí šířky přidaného pole a widgetu (BUG-08): neplnošířkové widgety (KPI dlaždice, procesní tlačítko) přidané z palety nebo z editoru tlačítek dostanou výchozí šířku sekce (12 / počet sloupců), plnošířkové widgety (banner, obrázek, související položky a další) zůstávají na 100 %. Pole z palety (tažením i tlačítkem +) již výchozí šířku sekce mají a pokrývá je test.
Verze 1.12.1
- Oprava: vytvořený sloupec se znovu nepřipojil k vybranému typu obsahu (HTTP 400 „Value cannot be null. Parameter name: parameters“). Odkaz na pole se nyní posílá jako
{ parameters: { FieldInternalName } }, jak SharePoint u metodyFieldLinks.Addvyžaduje.
Verze 1.12.0
- Volba jako v SharePointu (TASK-29), dialog Vytvořit sloupec: místo dvou typů „Výběr“ a „Vícenásobný výběr“ je jediný typ Volba s nastavením Zobrazit jako (Rozevírací seznam, Přepínače, Zaškrtávací políčka (více hodnot)) a zaškrtávacím polem Povolit vlastní hodnotu. Zaškrtávací políčka založí sloupec
MultiChoice. SharePoint: RESTEditFormat(0 / 1) aFillInChoice, SchemaXmlFormat="Dropdown"nebo"RadioButtons"aFillInChoice. Nové volitelnéchoiceFormatafillInvCreateFieldDefinition; textycfChoiceFormat*acfFillInve 4 jazycích. - Název typu „Volba“: český (a slovenský „Voľba“) název typu sloupce Choice se v dialogu Vytvořit sloupec, v paletě a v typu sloupce opakující se tabulky sjednotil na „Volba“ (dříve „Výběr“), jako ve SharePointu.
- Převzetí zobrazení a vlastní hodnoty volby ze SharePointu (TASK-29): při přidání sloupce Choice / MultiChoice do formuláře se do
fieldPropszapíšechoiceFormat(dropdown/radiopodleEditFormat,checkboxespro MultiChoice) afillIn(podleFillInChoice). Při načtení formuláře sefillInsynchronizuje ze SharePointu;choiceFormatnastavený v návrháři zůstane, pokud je pro sloupec platný (přepínače u sloupce s více hodnotami se nahradí zaškrtávacími políčky). Starší konfigurace bez těchto klíčů se nemění. - Volba jako přepínače, zaškrtávací políčka a vlastní hodnota (TASK-29): pole Volba se ve formuláři vykreslí podle
fieldProps.choiceFormatjako rozevírací seznam, přepínače (jedna hodnota) nebo zaškrtávací políčka (více hodnot, hodnota zůstává pole textů). Je-li ve sloupci SharePointu povolena vlastní hodnota (fieldProps.fillIn), přibude poslední položka Vlastní hodnota: s textovým polem; napsaný text se uloží jako obyčejný text. Uložená hodnota mimo volby se zobrazí jako vlastní hodnota (nebo další zaškrtnutá položka). Povinnost funguje ve všech zobrazeních, režim Zobrazení a zamčená pole se nemění. Inspektor pole má volbu Zobrazit jako a informaci o vlastní hodnotě (jen pro čtení). Nová komponentaChoiceField, textyfieldChoiceCustom*ainspChoiceFormat*/inspChoiceFillIn*ve 4 jazycích.
Verze 1.11.1
- Oprava: Návrhář (BUG-02): název barevného presetu se na kartě sekce (štítek i tooltip podbarvení) a v inspektoru záložky zobrazoval vždy česky. Nově se bere z překladů podle jazyka návrháře (
colorPresetLabel), stejně jako v ostatních částech návrháře; uložené hodnoty (klíč presetu) se nemění. - Oprava: Zobrazení: hodnota „Ne“ u pole Ano/Ne vypadala jako prázdná hodnota (šedá pomlčka). Nově má neutrální ikonu
DismissCircle16Regulara text „Ne“; pomlčku dostane jen opravdu chybějící hodnota (null / nedefinováno). - Oprava: v dialogu Vytvořit sloupec nešlo u osoby jednoduše zvolit více hodnot (samostatný typ „Více osob“ v nabídce mezi ostatními typy). U typu Osoba je nyní zaškrtávací pole Povolit výběr více osob, které sloupec založí jako vícehodnotový (REST
AllowMultipleValues, SchemaXmlType="UserMulti"aMult="TRUE"); samostatný typ z nabídky zmizel. TextcfAllowMultipleve 4 jazycích. - Oprava: sloupec typu Měna vytvořený z builderu neměl žádný formát měny. Dialog Vytvořit sloupec nabízí Formát měny (výchozí lokalita webu, jinak CZK 1029, EUR 1031/1051, USD 1033, GBP 2057, PLN 1045) a posílá
CurrencyLocaleId(REST) neboLCID(SchemaXml). Nové volitelnécurrencyLocaleIdvCreateFieldDefinitionawebLocaleIdveFormDataProvider; texty ve 4 jazycích (cfCurrencyFormat,cfCurrencyWeb). - Oprava: po aktivaci nebo deaktivaci vlastního formuláře se změna neprojevila, dokud uživatel stránku sám neobnovil (SharePoint drží vazby v paměti SPA). Dialog Aktivace po úspěšné změně ukáže upozornění s tlačítkem Načíst stránku nyní a při zavření dialogu po změně stránku načte automaticky (nový klíč
faReloadNote/faReloadNowve 4 jazycích). Dialog otevřený z návrháře stránku automaticky nenačítá, aby nezahodil rozpracovanou konfiguraci. - Oprava: Související dokumenty v režimu složky: sloupce typu Osoba a Vyhledávání (např. „Schválil“) se zobrazí. Dokumenty se v režimu složky čtou přes položky knihovny s filtrem
FileDirRefa sloupce se načítají přes$expand(X/Id,X/Title), protože vnořený$expandpřesListItemAllFieldsna/filesSharePoint odmítl (HTTP 400). - Oprava: vytvoření sloupce na seznamu se spravovanými typy obsahu ho nepřipojilo k vybraným typům obsahu (SharePoint odmítl tělo požadavku s
__metadata, HTTP 400). Odkaz na pole se nyní posílá ve formátu, který SharePoint Online přijímá (FieldInternalName, záložněIdaName).
Verze 1.11.0
- Zamčená pole jsou čitelná: pole zamčené pravidlem
setReadOnly(a nenačtená pole) se v Úpravách a Novém už nezobrazují jako zašedlé zakázané vstupy. Text, číslo a víceřádkový text jsou vstupy jen pro čtení s plně kontrastním textem, výběr, datum, Ano/Ne, osoba, vyhledávání, taxonomie, hodnocení, umístění a vypočítané pole ukážou hodnotu v zamčeném rámečku (aria-readonly, popisek propojený přesaria-labelledby). Hodnota zůstává ve formuláři a nemění se. Viz Zamčená pole a setReadOnly. - Zobrazení: čitelná pole místo zašedlých vstupů: v režimu Zobrazení se standardní pole vykreslují jako popisek a plně kontrastní hodnota (výběry jako štítky, Ano/Ne s ikonou, osoby s e-mailem, odkazy, formátovaná čísla a data podle jazyka formuláře, pomlčka u prázdné hodnoty). Povinná pole v Zobrazení nemají hvězdičku ani odznak Povinné. Respektuje popisek vlevo i zhuštěné rozestupy. Viz Zobrazení položky.
- Vytvoření sloupce z builderu: nad paletou polí je tlačítko Vytvořit sloupec (jen pro uživatele s oprávněním Správa seznamů). Dialog navrhne interní název ze zobrazovaného názvu (lze přepsat, validuje znaky, délku, vyhrazené názvy a kolizi), nabídne typ sloupce a jeho volby a typy obsahu seznamu. Nové pole se vloží do aktivní sekce jedním krokem Zpět; při selhání přidání do typu obsahu dialog vypíše dotčené typy a nabídne Opakovat. Texty ve 4 jazycích (klíče
cf*). - Vytváření sloupců: rozhraní provideru:
FormDataProviderzískalcanCreateFields(oprávnění Správa seznamů),currentContentTypeId,getListContentTypes,createFieldaaddFieldToContentTypes. SPFx implementace založí sloupec s interním názvem jako Title, přejmenuje ho na zobrazovaný název, načte skutečnýInternalNamea přidá sloupec jen do vybraných typů obsahu; selhání typu obsahu se hlásí zvlášť a sloupec zůstane. Dialog v builderu popisuje další položka. - AI asistent: vytvoření chybějících sloupců: pravidla pro AI už nezakazují nové sloupce. AI je smí navrhnout (
internalNamemalými písmeny bez diakritiky, nejvýše 32 znaků, s lidskýmcustomLabela vhodnýmfieldType), jen když pro požadavek žádný sloupec neexistuje. V kontrole odpovědi se u každého neznámého pole nabídne Vytvořit sloupec (stejný dialog, předvyplněný z návrhu) a při více polích Vytvořit chybějící sloupce (dialog postupně pro každé pole, lze přeskočit). Nic se nevytvoří bez potvrzení; tlačítka vidí jen uživatel s oprávněním Správa seznamů. Vrátí-li SharePoint jiný interní název, odkazy v odpovědi AI (pole, pravidla, výrazy[x]/{x}, tlačítka,dependsOnField,sourceField,syncSumToField, rozložení režimů) se přejmenují funkcírenameFieldInConfig. Texty ve 4 jazycích (aiCreateColumn,aiCreateMissingColumns). - Návrhář: šířky polí se přizpůsobí mřížce sekce: při změně počtu sloupců sekce (1, 2, 3, 4, 6) dostanou novou výchozí šířku (
12 / sloupce) jen pole, která měla dosavadní výchozí šířku nebo žádnýcolSpan. Pole na plnou šířku a vlastní šířky (např. 8) zůstanou. Změna je jeden krok Zpět a týká se jen aktivního rozložení (sdílené / režim). Volba 6 sloupců přibyla do inspektoru sekce. - Oprava: Zobrazení a zamčená pole (závěrečná revize TASK-05): zamčené pole už neblokuje uložení kvůli neviditelné chybě formátu (maximální délka a vzor se u zamčených polí nevalidují); čísla se v Zobrazení i v zamčeném rámečku nezaokrouhlují; prázdná hodnota se čtečce obrazovky ohlásí jako Nevyplněno; zamčený rámeček je dosažitelný klávesnicí (Tab) a v kompaktním režimu má výšku jako ostatní vstupy; hodnota v Zobrazení je propojená s popiskem; výběr z objektu se zobrazí, vyhledávání bez názvu nezobrazuje číselné ID a formátovaný text (HTML) z víceřádkového sloupce se zobrazí jako čistý text.
- Oprava: Vytvoření sloupců (závěrečná revize TASK-08): dialog Vytvořit sloupec je zakázaný, dokud se nenačtou typy obsahu, a při chybě čtení nic nevytvoří; u spravovaného seznamu se výběr typů obsahu posílá vždy a provider bez něj sloupec nezaloží. Number a Currency s desetinnými místy v seznamu bez spravovaných typů obsahu dostanou výchozí typ obsahu. Po úspěšném založení sloupce už vytvoření nikdy nehlásí chybu (selhání opětovného načtení je jen varování) a po chybě se zkoušený interní název zablokuje proti duplicitě. V AI záložce se přejmenování sloupců nezahazuje při úpravě textu odpovědi, pole se sladí se skutečným typem sloupce a sloupec se předá do poolu polí (paleta, import a export). Přejmenování už nemění
filterByField, přejmenovávátrackedFieldsa tokeny jen se spárovanými závorkami. Návrh interního názvu zachovává podtržítko, Note s formátovaným textem je v obou cestách stejně rozšířený, varování a chyba Opakovat se v dialogu zobrazí a cílový sloupec vyhledávání se filtruje podle typu. Nové texty ve 4 jazycích (cfCtLoading,cfCtLoadFailed,cfWarnIntro,cfRetryFailed,cfCreateFailedCheck). - Oprava: Inspektor Souvisejících položek a dokumentů: auditní sloupce (Author, Editor, Created, Modified, ID, Attachments) jsou ve výběru zobrazených sloupců na konci pod oddělovačem „Systémové sloupce“ (nový překlad ve všech 4 jazycích).
- Oprava: Související dokumenty: vlastní sloupce knihovny typu Osoba a Vyhledávání (i vícehodnotové) se načítají přes
$expand(režim metadat i složky) a zobrazí se jako text; dřív dotaz končil chybou HTTP 400. Výběr sloupců v inspektoru nabízí i tyto typy a datum. - Oprava: pole bez
customLabelzobrazuje název sloupce ze SharePointu (např. „Kód projektu“) místo interního názvu; pořadícustomLabel(s překladem), název sloupce, interní název platí i pro zaškrtávací pole, kaskádový lookup, historii verzí a chybové zprávy. Náhled návrháře a vývojový sandbox titulky také dostávají. - Oprava: klíče ikon záložek a sekcí se čtou bez ohledu na velikost písmen (
Info,Money,Folder) a přibyly aliasycheckmark,check,todo,finance,cash,budget,attach,attachment,files,kpi,analytics. - Oprava: Související dokumenty:
FileLeafRefse bere jakonameaFileSizeDisplay/File_x0020_Sizejakosize(odkaz s náhledem a formátovaná velikost). - Oprava: Související položky: sloupce typu Osoba a Vyhledávání se načítají přes
$expanda zobrazí se jako text; dřív dotaz končil chybou HTTP 400. - Oprava: Inspektor Souvisejících položek: výběr zobrazených sloupců nabízí i sloupce typu Osoba (i vícehodnotové), vícehodnotové vyhledávání a datum (bez technických a skrytých sloupců, s typem sloupce v popisku). Vazební sloupec zůstává omezený na výchozí sadu a Související dokumenty se nemění.
- AI asistent: pravidla obsahují seznam platných klíčů ikon (generovaný z kódu), doporučení
["name","size"]prorelatedDocumentsConfig.viewFieldsa pokyn nastavovatcustomLabeljen pro jiný název, než má sloupec. - Build a testy: testy běží bez měření pokrytí (
config/jest.config.json) a na polovině jader; nový skriptnpm run test:quickbez čistého buildu. Celénpm run verifytrvá asi 1,5 minuty místo 5–6 minut. - Build a testy: stabilní asynchronní testy: příčinou občasných pádů pod zátěží byly pomalé dotazy
getByRole/findByRoles názvem v jsdom (jediný dotaz přesáhl limit); testy dialogu Vytvořit sloupec hledají tlačítka podle textu. Globální limity jsou vsrc/services/testSetup.ts. - AI asistent: karty složitých widgetů (opakovaná tabulka, související položky a dokumenty, KPI, stepper, historie verzí, lookup s kaskádou, osoby, taxonomie, obrázek, přílohy, tlačítko, textový blok) mají minimální platný příklad konfigurace, takže je AI generuje přesněji.
- Inspektor: popis sekce: sekci lze v inspektoru přidat volitelný popis, který renderer zobrazí pod nadpisem. Text je překládatelný (úprava v jiném jazyce návrháře jde do překladů).
- Inspektor: typ příjemců u pole uživatele: volba „Jen uživatelé“ nebo „Uživatelé i skupiny“ (
peopleConfig.principalType) bez nutnosti editace JSON. - Inspektor: Související položky: pole „Maximální počet záznamů“ (
rowLimit, 1 až 100). - Inspektor: pořadí voleb: u pole typu výběr lze měnit pořadí voleb (hodnoty zůstávají ze SharePointu a synchronizují se automaticky).
- Inspektor: výchozí hodnota: editor
defaultValuepodle typu pole (text, číslo, ano/ne, datum s@Today, výběr, uživatel s@Me). Oprava:@Todayu pole data s časem se nyní správně zobrazí (YYYY-MM-DDT00:00). - Inspektor: opakující se tabulka: úprava sloupců (popisek, typ, povinnost, šířka, souhrn, volby, výchozí hodnota buňky), přesun sloupců,
minRows,maxRows, text tlačítka Přidat řádek a výběr sloupce pro propisovaný součet. Popisky sloupců a tlačítka se v jiném jazyce návrháře ukládají do překladů.
Verze 1.10.1
- Oprava: rozvržení karty AI asistent: karta nyní využívá celou šířku návrháře. Na širokých obrazovkách je vlevo kontext (režim a související seznamy v kompaktním seznamu) a vpravo pole promptu s odpovědí AI pod ním; na úzkých se zobrazí jeden sloupec. Pole promptu a odpovědi je výrazně vyšší, vyplňuje celý rámeček a lze je svisle zvětšit.
Verze 1.10.0
- Oprava: widgety z palety: položky na kartě Widgety v paletě jdou nově přetáhnout do sekce na plátně (dosud fungovalo jen tlačítko „+“). Platí na záložkách s sloupci i bez nich a pro režimová rozložení; widget se vloží na místo upuštění a vybere se.
- Návrhář: rychlý přepínač šířky sekce: v hlavičce sekce na záložce bez sloupců přibyl přepínač 50 % | 100 % (akce
updateSection, jeden krok Zpět). - Návrhář: Přesunout na záložku: nabídka „…“ u pole i u sekce na plátně nově umí přesunout pole nebo celou sekci na jinou záložku (jeden krok Zpět, platí i pro režimová rozložení). Nová reducerová akce
moveSectionToTab. - Návrhář: šířky v procentech: šířka pole, sekce a sloupce se v návrháři zobrazuje v procentech (např. 50 %, 67 %, 100 %) místo zlomků N/12. Uložená hodnota
colSpanse nemění. - AI asistent: opravy po finální revizi: chráněná nastavení se z odpovědi zahazují před validací a oznámí se; parser zvládne víc code fence i pokračování useknuté uprostřed tokenu a trojitý backtick v řetězci; selhání načtení sloupců aktuálního seznamu je vidět (Zkusit znovu, kopírování zakázáno); tabulka počtů s popisky a zvýrazněným poklesem a varování při velkém úbytku; přemapování odkazů na přejmenovaná id tlačítek; opravené nepravdivé informace v balíku znalostí (tokeny v tlačítkách,
[ID]v redirectUrl, šířka sloupce tabulky); lokalizované zprávy o osiřelých odkazech a chybách parsování; chybová hranice kolem karty AI; velikost promptu s trvalým doporučením stažení souboru. - Nová funkce: AI asistent: nová karta v návrháři (líně načítaná, licence Pro) sestaví prompt pro externí AI, umí ho kopírovat nebo stáhnout jako
form-ai-prompt.md, zkontroluje vloženou odpověď a aplikuje ji jedním krokem Zpět. Viz AI asistent. - AI: parsování odpovědi:
ai/responseParser.ts(parseAiResponse) vytáhne JSON z odpovědi modelu (code fence, více fence za sebou, text okolo, BOM) a rozliší důvod selhání:empty,truncated(zkrácený JSON i uvnitř řetězce),placeholder(//,/*,...mimo řetězce) asyntax. - AI: příprava návrhu:
ai/applyAiConfig.ts(prepareAiConfig): oprava id (chybějící doplní, v úpravách vrátí původní id jen při jednoznačné shodě názvu), validace schématem, převzetí chráněných polí z originálu (zabezpečení, zámek úložiště, jazyky, nastavení AI), počty před a po (včetně režimových rozložení), varování při velkém úbytku, osiřelé odkazy, neznámá pole a změněné skripty. Nic se tiše nemaže. - AI: sestavení promptu:
ai/promptBuilder.ts(buildAiPrompt: balík znalostí, seznamy a sloupce, v režimu úprav aktuální konfigurace bez chráněných polí, v režimu nového formuláře bez konfigurace;deriveRelatedSourcespředvybere cíle lookupů a widgetů Related Items/Documents i z režimových rozložení;PROMPT_RECIPES,buildAttachmentShortInstruction). Hodnoty položek se do promptu nikdy nedostanou. - AI: pravidla a balík znalostí:
ai/promptRules.ts(ručně psaná pravidla pro model: formát odpovědi, zachování id, tahákcolSpan, systémová pole, pravidla vs. skripty) aai/knowledgePack.ts(buildKnowledgePack(), hlídaný rozpočetKNOWLEDGE_PACK_BUDGET_CHARS). StarýAI_FORM_GENERATOR_GUIDE.mdnahrazen odkazem. - AI asistent (znalosti): modul
ai/schemaWalker.ts(průchod Zod schématem), kostraai/schemaDocs.tsaai/featureCards.ts, ověření příkladůai/exampleValidation.ts;check-docshlásí funkce bez karty (viz AI knowledge pack). - AI: popisy schématu a karty všech funkcí:
ai/schemaDocs.tspopisuje každou cestu schématu konfigurace (včetně vnořených vlastností a režimových rozložení);ai/featureCards.tsobsahuje kartu pro každé pole, widget, akci, operátor, spouštěč, akci tlačítka, funkci výrazů, členctxa nastavení formuláře. Test pokrytí běží na plné hloubce schématu acheck-docsvyžaduje kartu u každé funkce. - AI asistent (příprava):
FormDataProvider.getListColumnsvrací navíc povinnost, volby, cílový seznam lookupu, vícenásobnost, skrytost a režim jen pro čtení; nový modulai/columnFilter.tsz nich skládá metadata sloupců pro AI (bez hodnot položek).getListColumnsmá volitelný parametrincludeAllpro plný výčet polí. - Licence: nový příznak
allowAiAssistant(Community ne, Pro ano) a volitelná vlastnost konfiguraceaiAssistantse seznamem souvisejících zdrojů. Zatím bez uživatelského rozhraní; starší konfigurace se načtou beze změny. - Oprava: hláška regex validace textového pole (E-mail, PSČ, URL, vlastní výraz) u nepovinného pole zmizela hned po napsání; nyní zůstane, dokud je hodnota neplatná. Mazání zastaralých chyb po změně pravidel se týká jen chyby povinnosti, ne chyby formátu.
- Oprava: sekce v návrháři jdou přetahovat myší i v záložce bez sloupcového režimu (dříve měla úchyt jen sekce ve sloupcích, jinak fungovaly jen šipky). Logika dopadu přetažení je v čisté funkci
resolveSectionDrop. - Oprava: příkazová lišta seznamu dvakrát nepřeblikává kvůli příkazu „Vlastní formulář“: viditelnost se určí synchronně z oprávnění stránky a z výsledku uloženého v
sessionStorage,raiseOnChangese volá jen při skutečné změně a odhad používá stejné kritérium (ManageWeb) jako asynchronní ověření. - Dokumentace: ruční sada šesti zadání pro ověření kvality AI asistenta (postup pro ChatGPT, Claude a Microsoft 365 Copilot, očekávané vlastnosti výsledku a tabulka k vyplnění), viz Ověření kvality AI asistenta.
- Oprava: zámek úložiště konfigurace čte
FileRefi příznakHasUniqueRoleAssignmentsz každé položky zvlášť; verze 1.9.0 na SharePointu hlásila „Configuration storage is not locked“ (chybějícíFileRef).
Verze 1.9.0
- Dokumentace: aktualizace
DEPLOYMENT.md,spfx-form-customizer/README.mda skriptuManage-FormCustomizer.ps1(Node 22, Heft místo gulpu, aktivace na typech obsahu, odkazy nadocs/admin). - Rozpad velkých komponent: renderer, shell návrháře, inspektor polí, editor pravidel a rozložení rozděleny na menší moduly; lokalizace celého návrháře (CR-23, CR-26, CR-28).
- Motiv a výkon: barvy návrháře z motivu SharePointu, menší balíček, líné načítání widgetů, ověření
postMessage(CR-15, CR-24, CR-27). - Data: atomické uložení taxonomie, vyhledávání ve velkých lookupech, ochrana Related Documents (CR-17, CR-18, CR-19).
- Build a testy: sjednocené verze závislostí jádra a produkce, komponentové testy, šablony CI (CR-21, CR-22).
- Bezpečnost: výrazy bez
eval, skripty jako opt-in tenantu (CR-03, CR-04A); zamčené úložiště konfigurace pro vlastníky a skupinu návrhářů (CR-02). - Ladění a výkon běhu: ladicí režim pravidel a skriptů, pravidla a widgety sledují jen závislá pole (CR-10, CR-18).
- Tmavý motiv: podpora tmavého motivu SharePointu, tokeny místo pevných barev, sdílený grid návrháře a běhu (CR-14, CR-16).
- Konfigurace: verzování schématu, ochrana proti ztrátě konfigurace, historie, PBKDF2 hash hesla (CR-13, CR-05).
- Návrhář: ochrana pravidel při mazání s dialogem dopadu, slučování kroků Undo, dirty stav (CR-11, CR-12, CR-25).
- Souběžnost: optimistická souběžnost přes ETag a dialog konfliktu (CR-01).
- Licence: offline licenční klíč pro tenant nebo site collection.
- Oprava: hodnoty z pravidel
onLoad(setValue,setExpression) se v režimu Úpravy uloží, stejně jako hodnoty ze skriptuonFormLoad. - Oprava: vícevýběrové sloupce SharePointu (
MultiChoice) jdou upravovat jako výběr více hodnot (polechoicesallowMultiple); dříve se zobrazovaly jako text jen pro čtení. Uloží se pole textů, starší konfigurace se opraví při načtení. - Oprava: chyba skriptu
onBeforeSave(výjimka nebo vlastníctx.notify(…, "error")) se uživateli zobrazí a nepřepíše ji obecná hláška; obecná hláška je přeložená do všech jazyků. - Oprava: vlastní tlačítko zobrazené v režimu Display je aktivní (widget tlačítka už nebyl zakázán vynuceným „jen pro čtení“). V Display se provede jen
callFunction, zápisové akce asubmitFormse přeskočí s varováním v konzoli. - Oprava:
@Todayv hodnotě podmínky pravidla znamená dnešní datum; pole se porovnává jako datum bez času (equals,notEquals,greaterThan,lessThan). - Oprava: volba mazání dokumentů (
allowDelete) u widgetu Související dokumenty byla skrytá a odebrána z ukázkové konfigurace, protože mazání zatím není implementované; vlastnost zůstává ve schématu kvůli starším konfiguracím. - Licence: limity Community se uplatní v návrháři: zamčený kaskádový lookup v paletě i v inspektoru (štítek Pro; existující kaskáda jde dál upravit i zrušit), editor skriptů jen pro čtení bez licence Pro a varování ke kaskádám a skriptům. Za běhu se nic neblokuje; správci formuláře vidí banner, co konfigurace nad licenci překračuje.
- Oprava: příkaz „Vlastní formulář“ na liště seznamu je registrován i pro šablony 120 a 1100, stejně jako je nabízí aktivační dialog (dříve jen 100).
- Oprava: widget Textový blok zobrazí
heading(nadpis bloku) nad obsahem; do inspektoru přibylo pole Nadpis bloku a úpravy v inspektoru už heading nemažou. - Oprava:
confirmTitlevlastního tlačítka se zobrazuje jako titulek potvrzovacího dialogu (místo systémového okna prohlížeče); bez něj se použije přeložený výchozí titulek. Pole Titulek potvrzení přibylo do editoru tlačítek. - Oprava: dokumentace widgetu Obrázek odpovídá skutečnosti: adresy
data:jsou povolené (kód se nezměnil). - Oprava: operátor
??ve výrazech bere jako „bez hodnoty“ i prázdný řetězec (nevyplněné pole), takže se uplatní pravá strana;0afalsezůstávají platnými hodnotami. - Oprava: validační hlášky maximální délky, povinné přílohy, opakované tabulky (počet řádků, povinné buňky), chyby vykreslení pole a texty widgetu Přílohy se překládají do jazyka formuláře (cs, en, de, sk).
- Oprava: komentář nebo verze bez známého autora zobrazí přeložené „Uživatel“ místo natvrdo českého textu ze služby.
- Oprava: volby polí Výběr a Více voleb (
choice) se při načtení formuláře synchronizují se sloupcem SharePointu: nové volby se doplní na konec, odebrané zmizí z nabídky, pořadí zachovaných zůstává. Hodnota odebrané volby v položce se dál zobrazí a při uložení neztratí. - Oprava: validace opakované tabulky se provádí i u nepovinné tabulky (dříve se u ní
minRows,maxRowsani povinné sloupce nekontrolovaly) a nikdy neprochází obecnou větví pole. Prázdná nepovinná tabulka je vždy v pořádku; jakmile má řádek, platímaxRows, povinné sloupce aminRowsve smyslu „žádný řádek, nebo aspoňminRows“. Povinná tabulka se chová beze změny. - Oprava: přesměrování po uložení (
afterSaveConfig.redirectUrl) kóduje hodnoty polí v query a fragmentu (encodeURIComponent) a výslednou adresu ověří: povolené jsou jenhttp,httpsa relativní cesty. Nebezpečná adresa (napříkladjavascript:) se nepoužije, do konzole se zapíše varování a platí výchozí chování po uložení. - Oprava: aktivace formuláře na typech obsahu už nepřepíše cizí customizer. Nastaví se jen zapínané formuláře, deaktivace smaže jen vazbu na náš komponent. Když selže změna u některého typu obsahu, už změněné typy se vrátí do původního stavu, nebo chyba vyjmenuje typy, které zůstaly změněné.
- Oprava: úklid vnořených unikátních oprávnění při zámku úložiště XML-escapuje cestu v CAML dotazu a výslovně žádá pole
FileRef; poleFileRefaHasUniqueRoleAssignmentsčte u každé položky zvlášť (RESTGetItemsje nevrací ani přesViewFields; první verze opravy proto na SharePointu hlásila „Configuration storage is not locked“). Chybí-li pole v odpovědi, zámek skončí chybou (lockFailed), místo aby vnořené položky tiše zůstaly zapisovatelné. - Oprava: selhání obnovení ETagu po úpravě příloh (nebo po fallbacku taxonomie) už nepřekryje původní chybu uložení. ETag se označí jako zastaralý a před dalším uložením se načte znovu, takže opakovaný pokus nehlásí falešný konflikt (HTTP 412).
- Oprava: výrazy už nepřevádějí text s úvodní nulou, exponentem nebo hex zápisem na číslo (PSČ
01234, telefon0601…,1e5); na číslo se převádí jen běžný desetinný zápis a aritmetické operátory si text přečtou samy.CONCAT([PSC], " Praha")proto vrátí01234 Praha. - Oprava: změny z pravidel
onSave(setValue,setExpression) se vrátí na původní hodnoty, když uložení zablokujeonBeforeSavenebo selže odeslání; formulář pak není falešně změněný.onBeforeSavenové hodnoty dál vidí přesctx.getValue. - Oprava: vyhledávání v kaskádovém lookupu přijme číselnou hodnotu nadřazeného pole předanou jako text (
"12") a filtruje podleId(regulární výraz testoval písmeno „d“ místo číslice). - Oprava: operátor
??bere text ze samých mezer jako „bez hodnoty“, stejně jakoISBLANKaCOALESCE;0afalsezůstávají platnými hodnotami. - Oprava: Historie verzí zobrazuje logické hodnoty přeložené do jazyka formuláře (Yes/No, Ja/Nein, Áno/Nie) místo natvrdo českého Ano/Ne a místo interních názvů ukazuje popisek pole z formuláře, jinak název sloupce ze seznamu. Služba vrací neutrální značky, překlad dělá widget.
- Oprava: uložení konfigurace vlastníkem už u zamčeného úložiště znovu nenastavuje oprávnění, pokud se nezměnily jeho vstupy (skupina návrhářů, čtení pro organizaci a hosty, vlastník). Otisk vstupů je v souboru
<listId>.perm.jsonv kořeni úložiště; při změně, chybě čtení nebo chybějícím otisku se sladí jako dřív. Selhání sladění po zápisu konfigurace je varování, ne chyba uložení. - Dokumentace: Historie verzí výslovně popisuje přidávání komentářů v režimu Zobrazení jako záměrné chování shodné s nativním SharePointem.
- Dokumentace: anglický průvodce pro AI agenty (
docs/DEVELOPER_GUIDE.md,llms.txt) a pravidlo vCLAUDE.md, že se aktualizuje spolu s vývojářskou dokumentací.
Dříve dodané funkce
- Procesní stepper, sloupce v sekcích, editor vlastních tlačítek, modální nastavení polí.
- Widgety Související položky a Související dokumenty (sloupce, řazení, filtrování, navigace na DisplayForm).
- Vlastní skripty, akce
setExpression, vlastní tlačítka, opakující se tabulka. - Sbalitelné sekce,
defaultCollapseda akcesetCollapsed. - Virtuální widgety (banner, paměťový wrapper), pravidla pro záložky, sekce, režim formuláře a
@Mes dědičností. - Horní lišta s přepínačem zobrazení a úpravy, nastavení šířky a výběr data jedním kliknutím.
Jak psát záznamy
Každá změna v kódu přidá záznam do sekce aktuální verze (nahoře). Záznam má tvar kategorie – stručný popis – odkaz na dotčenou stránku dokumentace, například:
<li><strong>Pravidla</strong> – nová akce setColor (<a href="user/rules.html#action-setColor">Pravidla</a>).</li>
Kategorie: Formulář, Builder, Pravidla, Widgety, Zabezpečení, Správa, Vývoj. Při vydání nové verze balíčku se nad seznam přidá nadpis verze a aktualizuje se verze v docs/assets/manifest.js.