Update facets-views-ajax.js
Add JS update link items_per_page and display modes
This commit is contained in:
parent
70f0d0dfb6
commit
db1501d0ed
1 changed files with 85 additions and 0 deletions
|
|
@ -17,6 +17,21 @@
|
||||||
};
|
};
|
||||||
})(window.history);
|
})(window.history);
|
||||||
|
|
||||||
|
function parseQueryString( queryString ) {
|
||||||
|
var params = {}, queries, temp, i, l;
|
||||||
|
|
||||||
|
// Split into key/value pairs
|
||||||
|
queries = queryString.split("&");
|
||||||
|
|
||||||
|
// Convert the array of strings into an object
|
||||||
|
for ( i = 0, l = queries.length; i < l; i++ ) {
|
||||||
|
temp = queries[i].split('=');
|
||||||
|
params[temp[0]] = temp[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
return params;
|
||||||
|
};
|
||||||
|
|
||||||
function reload(url) {
|
function reload(url) {
|
||||||
// Update View.
|
// Update View.
|
||||||
if (drupalSettings && drupalSettings.views && drupalSettings.views.ajaxViews) {
|
if (drupalSettings && drupalSettings.views && drupalSettings.views.ajaxViews) {
|
||||||
|
|
@ -39,6 +54,76 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update items_per_page links in pager
|
||||||
|
if (url.indexOf("items_per_page=") == -1) {
|
||||||
|
// append items_per_page
|
||||||
|
$("a.pager__itemsperpage").each(function( index ) {
|
||||||
|
var newUrl = url + "&items_per_page=" + $(this).html();
|
||||||
|
$(this).attr("href", newUrl);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// replace existed items_per_page
|
||||||
|
var params = parseQueryString(url.split("?")[1]);
|
||||||
|
var newParams = [];
|
||||||
|
var existingDateQuery = false; // true if a date query already exists
|
||||||
|
|
||||||
|
var links = {};
|
||||||
|
// update publication date in url if previously queried
|
||||||
|
for (var key in params) {
|
||||||
|
if (!params[key]) { // no search parameters in url
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check for items_per_page query
|
||||||
|
if (!key.startsWith("items_per_page")) {
|
||||||
|
newParams.push(key + "=" + params[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var newParamsUrl = newParams.join('&');
|
||||||
|
$("a.pager__itemsperpage").each(function( index ) {
|
||||||
|
$(this).attr("href", url.split("?")[0] + '?' + newParamsUrl + "&items_per_page=" + $(this).html());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Update display mode links in pager
|
||||||
|
if (url.indexOf("display=") == -1) {
|
||||||
|
// append items_per_page
|
||||||
|
$("a.pager__display").each(function( index ) {
|
||||||
|
var newUrl = url + "&display=" + $(this).find(".display-mode").html().toLowerCase();
|
||||||
|
$(this).attr("href", newUrl);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// replace existed display
|
||||||
|
var params = parseQueryString(url.split("?")[1]);
|
||||||
|
var newParams = [];
|
||||||
|
var existingDateQuery = false; // true if a date query already exists
|
||||||
|
|
||||||
|
var links = {};
|
||||||
|
// update publication date in url if previously queried
|
||||||
|
for (var key in params) {
|
||||||
|
if (!params[key]) { // no search parameters in url
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// check for display query
|
||||||
|
if (!key.startsWith("display")) {
|
||||||
|
newParams.push(key + "=" + params[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var newParamsUrl = newParams.join('&');
|
||||||
|
$("a.pager__display").each(function( index ) {
|
||||||
|
|
||||||
|
var value = $(this).find(".display-mode").html().toLowerCase();
|
||||||
|
$(this).attr("href", url.split("?")[0] + '?' + newParamsUrl + "&display=" + value);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Replace filter, pager, summary, and facet blocks.
|
// Replace filter, pager, summary, and facet blocks.
|
||||||
var blocks = {};
|
var blocks = {};
|
||||||
$(
|
$(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue