Vlastní extensions pro nette.ajax
- Extension cookieConsent při zavírání modálu vyvolává dvě události -
cookieConsentBeforeClose
acookieConsentAfterClose
.
- 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
inpNumber
respektuje při inicializacidisabled
na 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í
state
nebo instancepdBox
.
- Oprava chyby #23, kdy extension
forceReload
v případě kombinace hashe a parametrů rozbíjelo URL.
- Extension
uniqueForm
je 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
btnSpinner
se 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í extensionbtnSpinner
totožné s případem, kdy dojdeforceRedirect
.
- V extension
spinner
se 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í extensionspinner
totož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
inpCombined
ainpNumber
.
- 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.pd
dostupné 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íautoclass
u extension) tak, aby i připopstate
došlo k nastavení class uvnitř pdboxu, opravuje #15. - Nové extension: Přidáno extension
replaceState
pro 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
suggest
pro 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
inpCombined
pro styl inputů s labelem uvnitř. - Nové extension: Přidáno extension
inpNumber
pro inputy s tlačítky + a −.
data-pdbox-history="forwards"
.
- Extension
uniqueForm
nechá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
pdbox
nyní 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
btnSpinner
je 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
scrollTo
extension, kdy:- nebylo možno nastavit přes data atribut offset na 0
- došlo k JS chybě, pokud nebyl
settings.nette.el
- extension
scrollTo
je 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
before
asuccess
, 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
pdbox
upraveno pro kompatibilitu sjquery.pdbox
verze~1.2.0
- tato verze je nyní vyžadována - oprava JS chyby v extension
pdbox
v případě, kdy byl nějaký AJAXový požadavek vyslán dříve, než byl předán parametrbox
- extension
btnSpinner
je možno vypnout i na ne-AJAXových formulářích pomocí data atributudata-no-spinner
nebodata-no-btn-spinner
- oprava #12
uniqueForm
extension se nepoužije u neAJAXového formuláře v případě, že má nastaven atributtarget
na otevírání do nového okna (#9)- oprava #7
- oprava
uniqueForm
extension, které v případě abort requestu za určitých okolností mohlo neoddělatdisabled
z 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
btnSpinner
pro spinner nad tlačítky; jde opd
extension, tj. u ajaxových formulářů je nutno ji zapnout, nad neajaxovými formuláři funguje podobně, jakouniqueForm
extension - 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ípdboxSelector
apdboxAutoClass
- úprava odstranění
onAfterClose
callbacků, 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