123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- (function ($, Drupal, Backbone) {
- "use strict";
- /**
- * Define namespaces.
- */
- Drupal.webprofiler = {
- views: {},
- models: {},
- collectors: {},
- routers: {}
- };
- Drupal.behaviors.webprofiler = {
- attach: function (context) {
- var el,
- elz,
- key,
- sel,
- value,
- select,
- selector,
- unselected,
- filter = [],
- livefilter = function (e) {
- el = $(e).attr('id').replace('edit-', '');
- value = $(e).val();
- filter[el] = value.replace('/', '\/');
- selector = [];
- unselected = [];
- for (key in filter) {
- if (filter[key].length > 0 && filter[key] != ' ') {
- select = filter[key].split(' ').filter(Boolean);
- for (sel in select) {
- selector.push('[data-wp-' + key + ' *= ' + select[sel].toLowerCase() + ']');
- unselected.push('[data-wp-' + key + ']:not([data-wp-' + key + ' *= ' + select[sel].toLowerCase() + '])');
- }
- }
- else {
- selector.push('[data-wp-' + key + ']');
- }
- }
- for (elz in unselected) {
- $(unselected[elz]).addClass('is--hidden');
- }
- $(selector.join('')).removeClass('is--hidden');
- },
- modalFill = function(t,c){
- $('.modal__title').html(t);
- $('.modal__main-data').html(c);
- },
- clipboard = function (e, t) {
- var clip = e.parent().find(t).get(0),
- title = 'Original Code',
- content = '<textarea readonly >' +
- clip.textContent +
- '</textarea>';
- modalFill(title,content);
- $('.modal').show();
- };
- $(context).find('#collectors').once('webprofiler').each(function () {
- new Drupal.webprofiler.routers.CollectorsRouter({el: $('#collectors')});
- Backbone.history.start({
- pushState: false
- });
- });
- $(context).find('.js--modal-close').each(function () {
- $(this).on('click', function () {
- $('.js--modal').hide();
- });
- });
- $(context).find('.js--live-filter').each(function () {
- $(this).on('keyup', function () {
- livefilter($(this));
- });
- $(this).on('change', function () {
- livefilter($(this));
- });
- });
- $(context).find('.js--panel-toggle').once('js--panel-toggle').each(function () {
- $(this).on('click', function () {
- $(this).parent().parent().toggleClass('is--open');
- });
- });
- $(context).find('.js--clipboard-trigger').once('js--clipboard-trigger').each(function () {
- $(this).on('click', function () {
- clipboard($(this), '.js--clipboard-target')
- }
- );
- });
- }
- };
- }(jQuery, Drupal, Backbone));
|