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

js/uikit.admin.js
/**
 * @file
 * Attaches behaviors to UIkit theme settings forms.
 */

(function ($) {
  'use strict';

  Drupal.behaviors.uikitFieldsetSummaries = {
    attach: function (context) {
      // Provide the summary for the base style form.
      $('fieldset.uikit-theme-settings-form', context).drupalSetSummary(function (context) {
        var vals = [];

        // Base style setting.
        vals.push($('.form-item-base-style select option:selected', context).text());

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

      // Provide the summary for the mobile settings form.
      $('fieldset.uikit-mobile-settings-form', context).drupalSetSummary(function (context) {
        var vals = [];

        // IE compatibility mode setting.
        if ($('.form-item-x-ua-compatible select option:selected').val() !== '0') {
          var ieMode = $('.form-item-x-ua-compatible select option:selected', context).text();
          vals.push(ieMode);
        }

        // Character set setting.
        var charset = $('.form-item-meta-charset select option:selected', context).text().split(':');
        vals.push(charset[0]);

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

      // Provide the summary for the page layouts form.
      $('fieldset.uikit-layout-settings-form', context).drupalSetSummary(function (context) {
        var vals = [];
        var standardLayout = $('input[name=standard_sidebar_positions]:checked', context)['0'].labels['0'].innerText.trim();
        var tabletLayout = $('input[name=tablet_sidebar_positions]:checked', context)['0'].labels['0'].innerText.trim();
        var mobileLayout = $('input[name=mobile_sidebar_positions]:checked', context)['0'].labels['0'].innerText.trim();

        // Standard layout setting.
        vals.push('<strong>Standard layout: </strong>' + standardLayout + '</br>');

        // Tablet layout setting.
        vals.push('<strong>Tablet layout: </strong>' + tabletLayout + '</br>');

        // Mobile layout setting.
        vals.push('<strong>Mobile layout: </strong>' + mobileLayout + '</br>');

        $.fn.toString = function () {
          return this[0].outerHTML;
        };

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

  Drupal.behaviors.uikitLayoutDemo = {
    attach: function (context) {
      // Provide a graphical demonstration of the standard layout.
      $('input[name=standard_sidebar_positions]', context).click(function () {
        var itemClass = 'uk-layout-' + $(this).attr('value');
        var target = $('#edit-standard-layout-demo');

        // Remove all possible layout classes.
        target.removeClass('uk-layout-holy-grail')
          .removeClass('uk-layout-sidebars-left')
          .removeClass('uk-layout-sidebars-right');

        // Add a class based on which radio is selected.
        target.addClass(itemClass);
      });

      $('input[name=tablet_sidebar_positions]', context).click(function () {
        // Provide a graphical demonstration of the tablet layout.
        var itemClass = 'uk-layout-' + $(this).attr('value');
        var target = $('#edit-tablet-layout-demo');

        // Remove all possible layout classes.
        target.removeClass('uk-layout-holy-grail')
          .removeClass('uk-layout-sidebars-left')
          .removeClass('uk-layout-sidebar-left-stacked')
          .removeClass('uk-layout-sidebars-right')
          .removeClass('uk-layout-sidebar-right-stacked');

        // Add a class based on which radio is selected.
        target.addClass(itemClass);
      });

      $('input[name=mobile_sidebar_positions]', context).click(function () {
        // Provide a graphical demonstration of the mobile layout.
        var itemClass = 'uk-layout-' + $(this).attr('value');
        var target = $('#edit-mobile-layout-demo');

        // Remove all possible layout classes.
        target.removeClass('uk-layout-sidebars-stacked')
          .removeClass('uk-layout-sidebars-vertical');

        // Add a class based on which radio is selected.
        target.addClass(itemClass);
      });
    }
  };

  Drupal.behaviors.uikitLocalTasksDemo = {
    attach: function (context) {
      // Provide a graphical demonstration of the primary local tasks style.
      var primaryValue = $('select[name=primary_tasks_style] option:selected').val();
      var secondaryValue = $('select[name=secondary_tasks_style] option:selected').val();
      var primaryMenu = $('#edit-primary-tasks').find('ul');
      var secondaryMenu = $('#edit-secondary-tasks').find('ul');

      // Add the initial class to the demo menus.
      $(once('edit-primary-tasks', '#edit-primary-tasks', context)).each(function() {
        if (primaryValue === 'uk-tab') {
          $(this).find('ul').addClass(primaryValue);
        }
        else {
          $(this).find('ul')
            .addClass('uk-subnav')
            .addClass(primaryValue);
        }
      });

      $(once('edit-secondary-tasks', '#edit-secondary-tasks', context)).each(function() {
        $(this).find('ul')
          .addClass('uk-subnav')
          .addClass(secondaryValue);
      });

      // Change the demo menu classes when the setting is changed.
      $('select[name=primary_tasks_style]').change(function () {
        primaryMenu
          .removeClass('uk-subnav')
          .removeClass('uk-subnav-divider')
          .removeClass('uk-subnav-pill')
          .removeClass('uk-tab');

        if ($(this).val() === 'uk-tab') {
          primaryMenu.addClass($(this).val());
        }
        else if ($(this).val() === '0') {
          primaryMenu.addClass('uk-subnav');
        }
        else {
          primaryMenu
            .addClass('uk-subnav')
            .addClass($(this).val());
        }
      });

      $('select[name=secondary_tasks_style]').change(function () {
        secondaryMenu.removeClass('uk-subnav-divider')
          .removeClass('uk-subnav-pill');

        if ($(this).val() !== '0') {
          secondaryMenu.addClass($(this).val());
        }
      });
    }
  };
})(jQuery);

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

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