123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- let $d = $(document);
- export default class Pjax {
- constructor(Dcat) {
- this.boot(Dcat)
- }
- boot(Dcat) {
- let container = Dcat.config.pjax_container_selector,
- formContainer = 'form[pjax-container]',
- scriptContainer = 'script[data-exec-on-popstate]';
- $.pjax.defaults.timeout = 5000;
- $.pjax.defaults.maxCacheLength = 0;
- $('a:not(a[target="_blank"])').click(function (event) {
- $.pjax.click(event, container, { fragment: 'body' });
- });
- $d.on('pjax:timeout', function (event) {
- event.preventDefault();
- });
- $d.off('submit', formContainer).on('submit', formContainer, function (event) {
- $.pjax.submit(event, container)
- });
- $d.on("pjax:popstate", function () {
- $d.one("pjax:end", function (event) {
- $(event.target).find(scriptContainer).each(function () {
- $.globalEval(this.text || this.textContent || this.innerHTML || '');
- });
- });
- });
- $d.on('pjax:send', function (xhr) {
- if (xhr.relatedTarget && xhr.relatedTarget.tagName && xhr.relatedTarget.tagName.toLowerCase() === 'form') {
- $(formContainer + ' :submit').button('loading');
- }
- Dcat.NP.start();
- });
- $d.on('pjax:complete', function (xhr) {
- if (xhr.relatedTarget && xhr.relatedTarget.tagName && xhr.relatedTarget.tagName.toLowerCase() === 'form') {
- $(formContainer + ' :submit').button('reset')
- }
- });
- $d.on('pjax:loaded', () => {
- Dcat.NP.done();
- });
- }
- }
|