Drupal → Добавляем возможность указывать тип прогрессбара для ajax ссылок
Небольшой костыль, который позволит указывать тип прогрессбара ajax-ссылки в атрибуте data-progress-type
.
// ajax-progress-type.js (function ($, Drupal) { /** * Override AJAX "beforeSend" callback. */ var originalAjaxBeforeSend = Drupal.Ajax.prototype.beforeSend; Drupal.Ajax.prototype.beforeSend = function (xmlhttprequest, options) { var $element = $(this.element); // Set progress type from "data-progress-type" attribute // @TODO Remove after close issue https://www.drupal.org/project/drupal/issues/2818463 if ($element.data('progress-type')) { this.progress.type = $element.data('progress-type'); } // Call original callback originalAjaxBeforeSend.apply(this, arguments); }; })(jQuery, Drupal);
// MODULENAME.module /** * Implements hook_library_info_alter(). */ function MODULENAME_library_info_alter(array &$libraries, string $extension) { if ($extension == 'core') { $js_path = '/' . drupal_get_path('module', 'MODULENAME') . '/ajax-progress-type.js'; $libraries['drupal.ajax']['js'][$js_path] = []; } }
Использование:
<a href="/node/123" class="use-ajax" data-dialog-type="modal" data-progress-type="fullscreen">Open node</a>
Оставить комментарий