acquia_lift-8.x-4.3/modules/acquia_lift_inspector/assets/acquia_lift_inspector.js

modules/acquia_lift_inspector/assets/acquia_lift_inspector.js
/**
 * @file
 * Contains the Lift Inspector Interface and behaviors.
 */

(function ($, Drupal) {

  'use strict';

  /**
   * Toolbar methods of Backbone objects.
   *
   * @namespace
   */
  Drupal.acquiaLiftInspector = {

    /**
     * Show the Acquia Lift Inspector Modal
     */
    showModal: function () {
      var $modal_element, modal_template;

      $('#lift-inspector').remove();

      //Get the Profile Manager URL from the config settings
      var accountURL = drupalSettings.acquia_lift_inspector.profile_manager_url;

      if (typeof window.AcquiaLift === 'undefined') {
        modal_template = `<h1 id="lift-inspector">${Drupal.t('Lift is not currently loaded.')}</h1>`;
      } else {
        let account_id = window.AcquiaLift.account_id;
        let site_id = window.AcquiaLift.site_id;
        let lastDecisionRequest = window.AcquiaLift.lastDecisionRequest;
        let decisions = window.AcquiaLift.decisions;
        let currentSegments = window.AcquiaLift.currentSegments;

        modal_template = `
          <div id="lift-inspector">
            <div class="lift-inspector-wrapper lift-inspector-wrapper-fullwidth">
              <h2>Account details</h2>
              <div id="account-details" class="container">
                <div class="item-wrapper">
                  <label> ${Drupal.t('Customer')} </label>
                  <pre id="account-id" class="lift-value">
                    <a href="${accountURL}#person:accountId=${account_id}" target="_blank" rel="noopener noreferrer">${account_id}</a>
                  </pre>
                </div>
                <div class="item-wrapper">
                  <label>${Drupal.t('Customer Site')}</label>
                  <pre id="site-id" class="lift-value">${site_id}</pre>
                </div>
                <div class="item-wrapper">
                  <label>${Drupal.t('Tracking ID')}</label>
                  <pre id="identity" class="lift-value">
                  ${typeof lastDecisionRequest !== "undefined" && Object.keys(lastDecisionRequest).length !== 0 ?
                  `<a href="${accountURL}#person:accountId=${account_id};tracking=${last_decision_request_identity}" target="_blank" rel="noopener noreferrer">${lastDecisionRequest.identity}</a>` :
                      Drupal.t('No tracking id available.')}
                  </pre>
                </div>
              </div>
            </div>
            <div class="lift-inspector-wrapper">
              <h2>${Drupal.t('Current user segment(s)')}</h2>
              <div id="user-segments" class="container ">
                ${typeof currentSegments !== "undefined" && Object.keys(currentSegments).length !== 0 ?
                    `${Object.keys(currentSegments).map(key => (
                      `<div class="segment-item-wrapper item-wrapper">
                      <div class="item-title">
                      <h3 >
                      <a href="${accountURL}#segment:accountId=${account_id};${encodeURIComponent(currentSegments[key].name)},false" target="_blank" rel="noopener noreferrer">${currentSegments[key].name}</a>
                       </h3>
                     </div>
                     <div class="item-details">
                       <div class="inline-wrap">
                         <label class="inline-pre">${Drupal.t('ID')}</label>
                         <pre>${currentSegments[key].id}</pre>
                       </div>
                       <div>
                         <label>${Drupal.t('Description')}</label>
                         <p class="lift-value">${currentSegments[key].description}</p>
                       </div>
                     </div>
                   </div>`
                    )).join('')}`:
                    `<p>${Drupal.t('No segment(s) available.')}</p>`}
              </div>
            </div>
            <div class="lift-inspector-wrapper">
              <h2>${Drupal.t('Decision(s) on this page')}</h2>
              <div id="decisions" class="container">
                ${typeof decisions !== "undefined" && Object.keys(decisions).length !== 0 ?
                `${Object.keys(decisions).map(key => (
                  `<div class="decision-item-wrapper item-wrapper">
                      <div class="item-title">
                        <h3>${Drupal.t('Slot Name')} : ${decisions[key].slot_name}</h3>
                      </div>
                      <div class="item-details">
                        <div>
                          <label>${Drupal.t('Slot View Mode')}</label>
                          <p class="lift-value">${decisions[key].view_mode_id}</p>
                        </div>
                        <div>
                          <label>${Drupal.t('Rule Name')}</label>
                          <p class="lift-value">${decisions[key].rule_name}</p>
                        </div>
                        <div>
                          <label>${Drupal.t('Content Displayed')}</label>
                          <p class="lift-value">${decisions[key].content_name}</p>
                        </div>
                     </div>
                    </div>`
                 )).join('')}`:
                  `<p>${Drupal.t('No decision(s) made.')}</p>`}
              </div>
            </div>
            <div class="lift-inspector-wrapper">
              <h2>${Drupal.t('Recent captures')}</h2>
              <div id="captures" class="container">
                ${typeof lastDecisionRequest !== "undefined" && Object.keys(lastDecisionRequest.captures).length !== 0 ?
                    `${Object.keys(lastDecisionRequest.captures).map(key => (
                      `<div class="lastdecision-item-wrapper item-wrapper">
                      <div class="item-title">
                        <h3>${lastDecisionRequest.captures[key].event_name}</h3>
                      </div>
                      <div class="item-details">
                        <div>
                          <label>${Drupal.t('Source')}</label>
                          <p class="lift-value">${lastDecisionRequest.captures[key].event_source}</p>
                        </div>
                        <div class="inline-wrap">
                          <label class="inline-pre">${Drupal.t('URL')}</label>
                          <pre class="lift-value">${lastDecisionRequest.captures[key].url}</pre>
                        </div>
                      </div>
                    </div>`
                    )).join('')}`:
                    `<p>${Drupal.t('No recent captures.')}</p>`}
              </div>
            </div>
          </div>
        `;
      }

      $modal_element = $(modal_template);
      var dialogActiveClassName = 'dialog-active';
      var dialogContainerSelector = 'body';
      Drupal.dialog($modal_element, {
        title: Drupal.t('Lift Inspector'),
        show: { effect: 'fadeIn', duration: 200 },
        hide: { effect: 'fadeOut', duration: 200 },
        dialogClass: 'lift-inspector-dialog',
        minWidth: 900,
        create: function(event, ui) {$(dialogContainerSelector).addClass(dialogActiveClassName);},
        beforeClose: function(event, ui) {$(dialogContainerSelector).removeClass(dialogActiveClassName);}
      }).showModal();
    }
  };

  Drupal.behaviors.acquia_lift_inspector = {
    attach: function (context, settings) {
      $(document).keypress(function (e) {
        if (e.ctrlKey && e.which == '105' || e.which == '9') {
          Drupal.acquiaLiftInspector.showModal();
        }
      });
    }
  }

})(jQuery, Drupal);

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

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