(function($) { /** * jQuery debugging helper. * * Invented for Dreditor. * * @usage * $.debug(var [, name]); * $variable.debug( [name] ); */ jQuery.extend({ debug: function () { // Setup debug storage in global window. We want to look into it. window.debug = window.debug || []; args = jQuery.makeArray(arguments); // Determine data source; this is an object for $variable.debug(). // Also determine the identifier to store data with. if (typeof this == 'object') { var name = (args.length ? args[0] : window.debug.length); var data = this; } else { var name = (args.length > 1 ? args.pop() : window.debug.length); var data = args[0]; } // Store data. window.debug[name] = data; // Dump data into Firebug console. if (typeof console != 'undefined') { console.log(name, data); } return this; } }); // @todo Is this the right way? jQuery.fn.debug = jQuery.debug; })(jQuery); ; /** * @file * CKEditor Accordion functionality. */ (function ($) { 'use strict'; Drupal.behaviors.ckeditorAccordion = { attach: function (context, settings) { // Create accordion functionality if the required elements exist is available. var $ckeditorAccordion = $('.ckeditor-accordion'); if ($ckeditorAccordion.length > 0) { // Create simple accordion mechanism for each tab. $ckeditorAccordion.each(function () { var $accordion = $(this); if ($accordion.hasClass('styled')) { return; } // The first one is the correct one. if (typeof Drupal.settings.ckeditor_accordion == 'undefined' || (typeof Drupal.settings.ckeditor_accordion != 'undefined' && Drupal.settings.ckeditor_accordion.collapseAll != 1)) { $accordion.children('dt:first').addClass('active'); $accordion.children('dd:first').addClass('active'); $accordion.children('dd:first').css('display', 'block'); } // Turn the accordion tabs to links so that the content is accessible & can be traversed using keyboard. $accordion.children('dt').each(function () { var $tab = $(this); var tabText = $tab.text().trim(); var toggleClass = $tab.hasClass('active') ? ' active' : ''; $tab.html('' + tabText + ''); }); // Wrap the accordion in a div element so that quick edit function shows the source correctly. $accordion.addClass('styled').removeClass('ckeditor-accordion').wrap('
'); // Fire an event so other modules know when the accordion has been created. $accordion.trigger('ckeditorAccordionAttached'); }); // Add click event to body once because quick edits & ajax calls might reset the HTML. $('body').once('ckeditorAccordionToggleEvent').on('click', '.ckeditor-accordion-toggler', function (e) { var $t = $(this).parent(); var $parent = $t.parent(); // Clicking on open element, close it. if ($t.hasClass('active')) { $t.removeClass('active'); $t.next().slideUp(); } else { // Remove active classes. $parent.children('dt.active').removeClass('active').children('a').removeClass('active'); $parent.children('dd.active').slideUp(function () { $(this).removeClass('active'); }); // Show the selected tab. $t.addClass('active'); $t.next().slideDown(300).addClass('active'); } // Don't add hash to url. e.preventDefault(); }); } } }; })(jQuery); ;