etracker-8.x-3.x-dev/js/etracker.admin.js

js/etracker.admin.js
/**
 * @file
 * eTracker admin behaviors.
 */

(function ($) {
  /**
   * Provide the summary information for the tracking settings vertical tabs.
   */
  Drupal.behaviors.trackingSettingsSummary = {
    attach() {
      // Make sure this behavior is processed only if drupalSetSummary is defined.
      if (typeof jQuery.fn.drupalSetSummary === 'undefined') {
        return;
      }

      $('#edit-pages').drupalSetSummary(function (context) {
        const selector = 'input[name="etracker_track_path_mode"]:checked';
        const $radio = context.querySelector(selector);
        if ($radio.value === 'all_pages') {
          if (
            !context.querySelector('textarea[name="etracker_track_paths"]')
              .value
          ) {
            return Drupal.t('Not restricted');
          }

          return Drupal.t('All pages with exceptions');
        }

        return Drupal.t('Restricted to certain pages');
      });

      $('#edit-roles').drupalSetSummary(function (context) {
        const vals = [];
        context
          .querySelectorAll('input[type="checkbox"]:checked')
          .forEach(function (node) {
            vals.push(node.labels[0].textContent.trim());
          });
        if (!vals.length) {
          return Drupal.t('Not restricted');
        }
        const selector = 'input[name="etracker_track_roles_mode"]:checked';
        if (context.querySelector(selector).value === 'all_roles') {
          return Drupal.t('Excepted: @roles', { '@roles': vals.join(', ') });
        }

        return vals.join(', ');
      });

      $('#edit-users').drupalSetSummary(function (context) {
        const selector = 'input[name="etracker_track_user"]:checked';
        const $radio = context.querySelector(selector);
        if ($radio.value === 'no_customization') {
          return Drupal.t('Not customizable');
        }
        if ($radio.value === 'tracking_on') {
          return Drupal.t('On by default with opt out');
        }

        return Drupal.t('Off by default with opt in');
      });

      $('#edit-breadcrumb').drupalSetSummary(function (context) {
        let $radio = '';
        const selector =
          'input#edit-etracker-mode-breadcrumb-as-area-breadcrumb-on:checked';
        if (context.querySelector(selector)) {
          $radio = Drupal.t('Show area hierarchy');
        }
        const selectorExcludeHome =
          'input#edit-etracker-mode-breadcrumb-as-area-breadcrumb-exclude-home:checked';
        if (context.querySelector(selectorExcludeHome)) {
          $radio = Drupal.t('Hide home page');
        }
        if (!$radio) {
          return Drupal.t('Not tracked');
        }
        return Drupal.t('@items enabled', { '@items': $radio });
      });

      $('#edit-linktracking').drupalSetSummary(function (context) {
        const vals = [];
        if (context.querySelector('input#edit-track-mailto:checked')) {
          vals.push(Drupal.t('Mailto links'));
        }
        if (context.querySelector('input#edit-track-external:checked')) {
          vals.push(Drupal.t('Outbound links'));
        }
        if (context.querySelector('input#edit-track-download:checked')) {
          vals.push(Drupal.t('Downloads'));
        }
        if (!vals.length) {
          return Drupal.t('Not tracked');
        }
        return Drupal.t('@items enabled', { '@items': vals.join(', ') });
      });

      $('#edit-messagetracking').drupalSetSummary(function (context) {
        const vals = [];
        context
          .querySelectorAll('input[type="checkbox"]:checked')
          .forEach(function (node) {
            vals.push(node.labels[0].textContent.trim());
          });
        if (!vals.length) {
          return Drupal.t('Not tracked');
        }
        return Drupal.t('@items enabled', { '@items': vals.join(', ') });
      });

      $('#edit-privacy').drupalSetSummary(function (context) {
        const vals = [];
        if (context.querySelector('input#edit-data-respect-dnt:checked')) {
          vals.push(Drupal.t('Universal web tracking opt-out enabled'));
        }
        if (context.querySelector('input#edit-data-block-cookies:checked')) {
          vals.push(Drupal.t('Cookies disabled'));
        }
        if (!vals.length) {
          return Drupal.t('No privacy');
        }
        return Drupal.t('@items', { '@items': vals.join(', ') });
      });
    },
  };
})(jQuery);

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

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