Skip to content

Commit

Permalink
- V extension spinner se nově neodstraňuje spinner z DOM i v případ…
Browse files Browse the repository at this point in the history
…ě, že v JSONu AJAXové odpovědi přijde pole `forceReload`. V tu chvíli je chování extension `spinner` totožné s případem, kdy dojde `forceRedirect`.

- **Nové extension:** Přidáno extension `forceReload`, které zajistí znovunačtení stránky v případě, že v odpovědi přišlo `forceRedirect: true`. Pokud je v odpovědi i `_fid`, je přidáno do URL pro načtení.
  • Loading branch information
zipper committed Apr 12, 2019
1 parent 29673bc commit a3e3cdc
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 4 deletions.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ Vlastní extensions pro nette.ajax

## Changelog

### 1.4.3
- V extension `spinner` se nově neodstraňuje spinner z DOM i v případě, že v JSONu AJAXové odpovědi přijde pole `forceReload`. V tu chvíli je chování extension `spinner` totožné s případem, kdy dojde `forceRedirect`.
- **Nové extension:** Přidáno extension `forceReload`, které zajistí znovunačtení stránky v případě, že v odpovědi přišlo `forceRedirect: true`. Pokud je v odpovědi i `_fid`, je přidáno do URL pro načtení.

### 1.4.2
- Oprava titulku stránky v případě, že pdbox obsahuje redirect.

Expand Down
61 changes: 61 additions & 0 deletions extensions/forceReload.ajax.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
(function($, undefined) {

/**
* @author Radek Šerý
* Force reload
* Extension, které reloadne stránku, pokud v odpovědi je "forceReload". V případě, že v JSONu je i _fid, přidá jej
* do URL pro reload.
*/
$.nette.ext('forceReload', {
success: function(payload, status, xhr, settings) {
if (payload.forceReload) {
var href = window.location.href;

href = this.removeFid(href);

if (payload._fid) {
href = this.addFid(href, payload._fid)
}

window.location.href = href;
}
}
}, {
addFid: function(href, _fid) {
var s = '?';

if ((i = href.search(/\?/)) !== -1) {
s = '&';
}

href += s + '_fid=' + _fid;

return href;
},
removeFid: function(href) {
// je v URL _fid?
var fidStart = href.indexOf('_fid=');

if (fidStart > -1) {
// Odstranění _fid parametru
var fidEnd = href.indexOf('&', fidStart);

if (fidEnd === -1) {
href = href.substring(0, fidStart);
} else {
href = href.substring(0, fidStart) + href.substring(fidEnd + 1);
}

// Ořízneme koncové '?' nebo '&'
if (href[href.length - 1] === '?' || href[href.length - 1] === '&') {
href = href.slice(0, -1);
}

}

return href;
}
});


})(jQuery);
2 changes: 1 addition & 1 deletion extensions/spinner.ajax.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
}
},
complete: function (xhr, status, settings) {
if (! ('forceRedirect' in xhr) && 'spinnerQueue' in settings) {
if (! ('forceRedirect' in xhr) && ! ('forceReload' in xhr) && 'spinnerQueue' in settings) {
var l = settings.spinnerQueue.length;
for (var i = 0; i < l; i++) {
settings.spinnerQueue[i].remove();
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "pd.ajax",
"title": "pd.ajax",
"description": "Collection of nette ajax extensions, including `pd` for creating disabled-by-deafult extensions",
"version": "1.4.2",
"version": "1.4.3",
"author": "PeckaDesign, s.r.o <[email protected]>",
"contributors": [
"Radek Šerý <[email protected]>",
Expand Down
4 changes: 2 additions & 2 deletions pd.ajax.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
/**
* nette.ajax.js extension allowing to create disabled-by-deafult extensions
*
* @copyright Copyright (c) 2015-2016 Radek Šerý
* @copyright Copyright (c) 2015-2019 Radek Šerý
* @copyright Copyright (c) 2015 Jiří Pudil
* @license MIT
*
* @version 1.0.3
* @version 1.4.3
*/
(function ($, undefined) {
var extensions = {};
Expand Down

0 comments on commit a3e3cdc

Please sign in to comment.