Projet

Général

Profil

Paste
Télécharger (5,01 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / themes / bootstrap / js / bootstrap.admin.js @ 87dbc3bf

1
(function ($, Drupal) {
2
  /*global jQuery:false */
3
  /*global Drupal:false */
4
  "use strict";
5

    
6
  /**
7
   * Provide vertical tab summaries for Bootstrap settings.
8
   */
9
  Drupal.behaviors.bootstrapSettingSummaries = {
10
    attach: function (context) {
11
      var $context = $(context);
12

    
13
      // Components.
14
      $context.find('#edit-components').drupalSetSummary(function () {
15
        var summary = [];
16
        // Breadcrumbs.
17
        var breadcrumb = parseInt($context.find('select[name="bootstrap_breadcrumb"]').val(), 10);
18
        if (breadcrumb) {
19
          summary.push(Drupal.t('Breadcrumbs'));
20
        }
21
        // Navbar.
22
        var navbar = 'Navbar: ' + $context.find('select[name="bootstrap_navbar_position"] :selected').text();
23
        if ($context.find('input[name="bootstrap_navbar_inverse"]').is(':checked')) {
24
          navbar += ' (' + Drupal.t('Inverse') + ')';
25
        }
26
        summary.push(navbar);
27
        return summary.join(', ');
28
      });
29

    
30
      // Javascript.
31
      $context.find('#edit-javascript').drupalSetSummary(function () {
32
        var summary = [];
33
        if ($context.find('input[name="bootstrap_anchors_fix"]').is(':checked')) {
34
          summary.push(Drupal.t('Anchors'));
35
        }
36
        if ($context.find('input[name="bootstrap_popover_enabled"]').is(':checked')) {
37
          summary.push(Drupal.t('Popovers'));
38
        }
39
        if ($context.find('input[name="bootstrap_tooltip_enabled"]').is(':checked')) {
40
          summary.push(Drupal.t('Tooltips'));
41
        }
42
        return summary.join(', ');
43
      });
44

    
45
      // Advanced.
46
      $context.find('#edit-advanced').drupalSetSummary(function () {
47
        var summary = [];
48
        // BootstrapCDN.
49
        var bootstrapCDN = $context.find('select[name="bootstrap_cdn"]').val();
50
        if (bootstrapCDN.length) {
51
          bootstrapCDN = 'BootstrapCDN v' + bootstrapCDN;
52
          // Bootswatch.
53
          if ($context.find('select[name="bootstrap_bootswatch"]').val().length) {
54
            bootstrapCDN += ' (' + $context.find('select[name="bootstrap_bootswatch"] :selected').text() + ')';
55
          }
56
          summary.push(bootstrapCDN);
57
        }
58
        // Rebuild registry.
59
        if ($context.find('input[name="bootstrap_rebuild_registry"]').is(':checked')) {
60
          summary.push(Drupal.t('Rebuild Registry'));
61
        }
62
        return summary.join(', ');
63
      });
64
    }
65
  };
66

    
67
  /**
68
   * Provide Bootstrap Bootswatch preview.
69
   */
70
  Drupal.behaviors.bootstrapBootswatchPreview = {
71
    attach: function (context) {
72
      var $context = $(context);
73
      var $preview = $context.find('#bootswatch-preview');
74
      $preview.once('bootswatch', function () {
75
        $.get("http://api.bootswatch.com/3/", function (data) {
76
          var themes = data.themes;
77
          for (var i = 0, len = themes.length; i < len; i++) {
78
            $('<a/>').attr({
79
              id: themes[i].name.toLowerCase(),
80
              class: 'bootswatch-preview element-invisible',
81
              href: themes[i].preview,
82
              target: '_blank'
83
            }).html(
84
              $('<img/>').attr({
85
                src: themes[i].thumbnail,
86
                alt: themes[i].name
87
              })
88
            )
89
            .appendTo($preview);
90
          }
91
          $preview.parent().find('select[name="bootstrap_bootswatch"]').bind('change', function () {
92
            $preview.find('.bootswatch-preview').addClass('element-invisible');
93
            if ($(this).val().length) {
94
              $preview.find('#' + $(this).val()).removeClass('element-invisible');
95
            }
96
          }).change();
97
        }, "json");
98
      });
99
    }
100
  };
101

    
102
  /**
103
   * Provide Bootstrap navbar preview.
104
   */
105
  Drupal.behaviors.bootstrapNavbarPreview = {
106
    attach: function (context) {
107
      var $context = $(context);
108
      var $preview = $context.find('#edit-navbar');
109
      $preview.once('navbar', function () {
110
        var $body = $context.find('body');
111
        var $navbar = $context.find('#navbar.navbar');
112
        $preview.find('select[name="bootstrap_navbar_position"]').bind('change', function () {
113
          var $position = $(this).find(':selected').val();
114
          $navbar.removeClass('navbar-fixed-bottom navbar-fixed-top navbar-static-top container');
115
          if ($position.length) {
116
            $navbar.addClass('navbar-'+ $position);
117
          }
118
          else {
119
            $navbar.addClass('container');
120
          }
121
          // Apply appropriate classes to body.
122
          $body.removeClass('navbar-is-fixed-top navbar-is-fixed-bottom navbar-is-static-top');
123
          switch ($position) {
124
            case 'fixed-top':
125
              $body.addClass('navbar-is-fixed-top');
126
              break;
127

    
128
            case 'fixed-bottom':
129
              $body.addClass('navbar-is-fixed-bottom');
130
              break;
131

    
132
            case 'static-top':
133
              $body.addClass('navbar-is-static-top');
134
              break;
135
          }
136
        });
137
        $preview.find('input[name="bootstrap_navbar_inverse"]').bind('change', function () {
138
          $navbar.toggleClass('navbar-inverse navbar-default');
139
        });
140
      });
141
    }
142
  };
143

    
144
})(jQuery, Drupal);