ajax_dashboard-8.x-2.x-dev/js/dashboard.js

js/dashboard.js
/**
 * @file
 * AJAX Dashboard JS
 */

(function ($, Drupal) {

  'use strict';

  // source: https://stackoverflow.com/questions/5999118/how-can-i-add-or-update-a-query-string-parameter
  function updateQueryStringParameter(uri, key, value) {
    var re = new RegExp('([?&])' + key + '=.*?(&|$)', 'i');
    var separator = uri.indexOf('?') !== -1 ? '&' : '?';
    if (uri.match(re)) {
      return uri.replace(re, '$1' + key + '=' + value + '$2');
    }
    else {
      return uri + separator + key + '=' + value;
    }
  }

  Drupal.behaviors.ajaxDashboard = {
    attach: function (context, settings) {
      $('.ajax-dashboard-button', context).click(function () {
        var content_url = $(this).data('content-url');
        var ajax_content_url = Drupal.url.toAbsolute(content_url);
        var current_url = window.location.pathname;
        var button_id = $(this).data('button-id');

        var dashboard_display_id = 'ajax-dashboard-display--' + $(this).data('dashboard-id');
        var dashboard_placeholder = $('#ajax-dashboard--' + $(this).data('dashboard-id')).data('placeholder');
        $('#' + dashboard_display_id).text(dashboard_placeholder);

        var qstring = updateQueryStringParameter(window.location.search, 'dashboard', button_id);
        var u = window.location.pathname + qstring;
        history.pushState({}, '', u);
        // Now, set a cookie to remember the form someone looked at previously.
        document.cookie = 'ajax_dashboard__' + settings.ajax_dashboard.dashboard_id + '=' + button_id + ';path=/';
        document.cookie = 'ajax_dashboard_lastpath' + '=' + current_url + ';path=/';

        Drupal.ajax({url: ajax_content_url}).execute();
      });
    }
  };
})(jQuery, Drupal);

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc