Vlastní extensions pro nette.ajax
- Dependency update, povolení vyšší verze
jquery.pdbox (v2.0.0)
- Extension cookieConsent při zavírání modálu vyvolává dvě události -
cookieConsentBeforeCloseacookieConsentAfterClose.
- Dependency update, povolení vyšší verze
nette.ajax.js(^2.4.0).
- Nové extension: Přidáno extension
cookieConsent, které po odeslání formuláře na základě data atributů spustí na webu scripty z daných kategorií. V odeslaném formuláři se hledají checkboxy s data atributemdata-cookie-consent-category, jehož obsahem je název kategorie. Tento název se pak využívá na script tagu v jiném data atributu. Spuštění funguje jak pro inline JS, tak pro externí JS. Například:<input n:name="marketing" data-cookie-consent-category="marketing"> ... <script type="text/plain" data-cookie-consent="marketing"> (function () { /* ... */ })(); </script> <script type="text/plain" data-cookie-consent="marketing" src="/js/marketing.js"></script>
- Oprava procházení zpět historií přes pdbox. Pokud otevřeme pdbox s historií v pdboxu (např. předkošík) a z něj klikneme na další stránku (např. do košíku), otevře se při použití zpět prohlížeče nejprve správně předkošík, ale při dalším zpět se pouze změní url a stránka se nezmění. Tento release to opravuje.
- Extension
inpNumberrespektuje při inicializacidisabledna inputu. Programová změna za běhu není reflektována, je nutné zavolat ručně metodu$('#foo').data('inpNumber').setDisabledBtns()pro daný.inp-number.
- Ošetření popstate handleru v případě, že není
statenebo instancepdBox.
- Oprava chyby #23, kdy extension
forceReloadv případě kombinace hashe a parametrů rozbíjelo URL.
- Extension
uniqueFormje možno vypnout i na neeajaxových formulářích a to stejným způsobem, jako jinde, tj. pomocídata-ajax-off="uniqueForm"buď na formuláři, nebo na tlačítku. Řeší issue #21.
- Přidána chybějící závislost na
nette-forms. - Zjednodušení zápisu závislosti na
peckadesign/pdbox.
- úprava dependency nette.ajax.js v package.json
- V extension
btnSpinnerse nově neodstraňuje spinner z DOM i v případě, že v JSONu AJAXové odpovědi přijde poleforceReload. V tu chvíli je chování extensionbtnSpinnertotožné s případem, kdy dojdeforceRedirect.
- V extension
spinnerse nově neodstraňuje spinner z DOM i v případě, že v JSONu AJAXové odpovědi přijde poleforceReload. V tu chvíli je chování extensionspinnertotožné s případem, kdy dojdeforceRedirect. - Nové extension: Přidáno extension
forceReload, které zajistí znovunačtení stránky v případě, že v odpovědi přišloforceRedirect: true. Pokud je v odpovědi i_fid, je přidáno do URL pro načtení.
- Oprava titulku stránky v případě, že pdbox obsahuje redirect.
- Oprava umístění souborů pro extension
inpCombinedainpNumber.
- U pdboxu je možné nastavit způsob fungování historie po zavření. Výchozí je, že po zavření přejde prohlížeč zpět do stavu před otevřením a v historii prohlížeče je pdbox možno otevřít tlačítkem vpřed. Pomocí
data-pdbox-history="forwards"je možné nastavit, že při zavření se vytvoří nový stav do historie, tj. tlačítko zpět v prohlížeči otevře znovu tento pdbox. - V jednotlivých extension je v
settings.pddostupné pole pro request zapnutých pd extension. - Do extension se neukládá každý
xhr, ale pouze ty, které opravdu souvisí spdboxem. Stejně tak k rušení dojde pouze v případě, že oba requesty (probíhající i nový) souvisí spdboxem. Opravuje #7. - Přesunutí automatického přidávání class
js-pdbox(obecně dle nastaveníautoclassu extension) tak, aby i připopstatedošlo k nastavení class uvnitř pdboxu, opravuje #15. - Nové extension: Přidáno extension
replaceStatepro zachování změny url bez vytváření nových stavů. Toto extension je možné použít obecně vždy, když chceme mít aktuální url, ale v historii nechceme vytvářet nový stav. Například přepínání barev produktů nebo formuláře v pdboxu. - Nové extension: Přidáno extension
suggestpro obsluhu našeptávače. Pro funkční použití je potřeba na formulář přidat classjs-suggest, dále je nutné označit input (js-suggest__input), našeptávací tlačítko (js-suggest__btn) a snippet s výsledky našeptávání (js-suggest__suggest). - Nové extension: Přidáno extension
inpCombinedpro styl inputů s labelem uvnitř. - Nové extension: Přidáno extension
inpNumberpro inputy s tlačítky + a −.
data-pdbox-history="forwards".
- Extension
uniqueFormnechává tlačítka disabled, pokud v odpovědi přišelforceRedirect. V takovém případě není žádoucí odebratdisabled, nicméně běží dál 60s limit.
- Extension
pdboxnyní zachovává vypnutí historie pro automaticky zAJAXované odkazy a formuláře uvnitř otevřeného pdboxu. Tj. pokud je historie vypnutá při otevření pdboxu, zůstane i v rámci tohoto pdboxu vypnutá. - Extension
btnSpinnerje možné použít nejen pro<button>, ale pro libovolný element spouštějící AJAXový požadavek (vzhledem k tomu, jak extension funguje, nejde použít např. pro<input>, protože do něj nelze vložit html kód).
- oprava chyby
scrollToextension, kdy:- nebylo možno nastavit přes data atribut offset na 0
- došlo k JS chybě, pokud nebyl
settings.nette.el
- extension
scrollToje přepsané pro lepší použití uvnitř otevřeného pdboxu a je více modifikovatelné:- přidán nastavení pro scroll offset (výchozí hodnota je 0):
- globálně:
$.nette.ext('scrollTo').offset = 30; - ad-hoc:
<a href="#" class="ajax" data-scroll-to="#target" data-scroll-to-offset="30">...</a>
- globálně:
- přidána možnost nastavit, kdy dochází ke scrollu (podpora
beforeasuccess, výchozí jebefore)- globálně:
$.nette.ext('scrollTo').defaultEvent = 'success'; - ad-hoc
<a href="#" class="ajax" data-scroll-to="#target" data-scroll-to-event="success"></a>
- globálně:
- přidán nastavení pro scroll offset (výchozí hodnota je 0):
- update závislostí
- extension
pdboxupraveno pro kompatibilitu sjquery.pdboxverze~1.2.0- tato verze je nyní vyžadována - oprava JS chyby v extension
pdboxv případě, kdy byl nějaký AJAXový požadavek vyslán dříve, než byl předán parametrbox - extension
btnSpinnerje možno vypnout i na ne-AJAXových formulářích pomocí data atributudata-no-spinnernebodata-no-btn-spinner
- oprava #12
uniqueFormextension se nepoužije u neAJAXového formuláře v případě, že má nastaven atributtargetna otevírání do nového okna (#9)- oprava #7
- oprava
uniqueFormextension, které v případě abort requestu za určitých okolností mohlo neoddělatdisabledz tlačítek
- oprava #8
- funkce pro získávání placeholderu pro spinner je nyní veřejná, tj. je možné ji použít i v jiném extension
- přidána extension
btnSpinnerpro spinner nad tlačítky; jde opdextension, tj. u ajaxových formulářů je nutno ji zapnout, nad neajaxovými formuláři funguje podobně, jakouniqueFormextension - nová extension
ajaxRequest, která u všech ajaxových requestů přidává do url parametrajax; díky tomu je url pro ajaxovou verzi (obsahující v odpovědi jen snippety) a neeajaxovou (kompletní stránka) unikátní a funguje tak správně cacheování v MS Edge
- příprava pro použití s http://github.com/peckadesign/jquery.pdbox verze
~1.1, při použití příslušné extension je vyžadována tato verze pdboxu - změněn výchozí očekávaný selektor, na kterém je navěšen pdbox, nově
js-pdbox; pro zachování zpětné kompatibility je možno jej změnit pomocí nastavenípdboxSelectorapdboxAutoClass - úprava odstranění
onAfterClosecallbacků, aby se odstranil pouze tímto extension napojený a ne všechny - při popstate je do open metody pdboxu předáván virtuální DOM element, který je kopií původního elementu a ze kterého je pak přečteno nastavení pro TB