A modifier dans core/modules/views/js/ajax_view.js
(Ajouter après)
// Add the ajax to pagers.
this.$view
// Don't attach to nested views. Doing so would attach multiple behaviors
// to a given element.
.filter($.proxy(this.filterNestedViews, this))
.once('ajax-pager').each($.proxy(this.attachPagerAjax, this));
---------------------------
Ligne à ajouter
this.$view
// Don't attach to nested views. Doing so would attach multiple behaviors
// to a given element.
.once('ajax-refresh-parent').each($.proxy(this.attachRefreshParent, this));
--------------------------
A mettre en fin de fichier dans dans core/modules/views/js/ajax_view.js
/**
* Attach the ajax behavior to each link.
*/
Drupal.views.ajaxView.prototype.attachRefreshParent = function () {
this.$view.find('.views-table a.test-refresh')
.each($.proxy(this.attachRefreshParentAjax, this));
};
/**
* Attach the ajax behavior to a singe link.
*
* @param {string} [id]
* The ID of the link.
* @param {HTMLElement} link
* The link element.
*/
Drupal.views.ajaxView.prototype.attachRefreshParentAjax = function (id, link) {
var $link = $(link);
var viewData = {};
var href = $link.attr('href');
$.extend(
viewData,
this.settings,
Drupal.Views.parseQueryString(href),
// Extract argument data from the URL.
Drupal.Views.parseViewArgs(href, this.settings.view_base_path)
);
viewData._element_offset = id;
viewData._artus_mode = "refresh";
var self_settings = $.extend({}, this.element_settings, {
submit: viewData,
base: false,
element: link
});
this.pagerAjax = Drupal.ajax(self_settings);
};
A mettre dans core/modules/views/src/Controller/ViewAjaxController.php ligne 183
// @TODO:
// * Récupérer l'offset original de la vue. (Le code actuel ne récupère
// pas la valeur).
// * Utiliser un meilleur nom que _artus_mode.
// * Isoler le contenu du rendu de l'entité (on ne veut pas les en-tête
// du tableau ni le pager, etc.
if ($request->request->get('_artus_mode') == "refresh") {
$original_offset = $view->getOffset();
$page = $request->request->get('page');
$offset = $request->request->get('_element_offset');
$view->setItemsPerPage(1);
$view->setCurrentPage($page);
$view->setOffset($original_offset + $offset);
}
View source
- A modifier dans core/modules/views/js/ajax_view.js
-
- (Ajouter après)
- // Add the ajax to pagers.
- this.$view
- // Don't attach to nested views. Doing so would attach multiple behaviors
- // to a given element.
- .filter($.proxy(this.filterNestedViews, this))
- .once('ajax-pager').each($.proxy(this.attachPagerAjax, this));
-
-
- ---------------------------
- Ligne à ajouter
-
- this.$view
- // Don't attach to nested views. Doing so would attach multiple behaviors
- // to a given element.
- .once('ajax-refresh-parent').each($.proxy(this.attachRefreshParent, this));
-
- --------------------------
-
- A mettre en fin de fichier dans dans core/modules/views/js/ajax_view.js
-
- /**
- * Attach the ajax behavior to each link.
- */
- Drupal.views.ajaxView.prototype.attachRefreshParent = function () {
- this.$view.find('.views-table a.test-refresh')
- .each($.proxy(this.attachRefreshParentAjax, this));
- };
-
- /**
- * Attach the ajax behavior to a singe link.
- *
- * @param {string} [id]
- * The ID of the link.
- * @param {HTMLElement} link
- * The link element.
- */
- Drupal.views.ajaxView.prototype.attachRefreshParentAjax = function (id, link) {
- var $link = $(link);
- var viewData = {};
- var href = $link.attr('href');
- $.extend(
- viewData,
- this.settings,
- Drupal.Views.parseQueryString(href),
- // Extract argument data from the URL.
- Drupal.Views.parseViewArgs(href, this.settings.view_base_path)
- );
- viewData._element_offset = id;
- viewData._artus_mode = "refresh";
- var self_settings = $.extend({}, this.element_settings, {
- submit: viewData,
- base: false,
- element: link
- });
-
- this.pagerAjax = Drupal.ajax(self_settings);
- };
-
-
-
-
-
-
- A mettre dans core/modules/views/src/Controller/ViewAjaxController.php ligne 183
-
- // @TODO:
- // * Récupérer l'offset original de la vue. (Le code actuel ne récupère
- // pas la valeur).
- // * Utiliser un meilleur nom que _artus_mode.
- // * Isoler le contenu du rendu de l'entité (on ne veut pas les en-tête
- // du tableau ni le pager, etc.
- if ($request->request->get('_artus_mode') == "refresh") {
- $original_offset = $view->getOffset();
-
- $page = $request->request->get('page');
- $offset = $request->request->get('_element_offset');
- $view->setItemsPerPage(1);
- $view->setCurrentPage($page);
- $view->setOffset($original_offset + $offset);
- }