123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /**
- * @file
- * Behaviors for Devel.
- */
- (function ($) {
- /**
- * Attaches double-click behavior to toggle full path of Krumo elements.
- *
- * @type {Drupal~behavior}
- */
- Drupal.behaviors.devel = {
- attach: function (context, settings) {
- // Path
- // Add hint to footnote
- $('.krumo-footnote .krumo-call', context).once().before('<img style="vertical-align: middle;" title="Click to expand. Double-click to show path." src="' + settings.basePath + 'misc/help.png"/>');
- var krumo_name = [];
- var krumo_type = [];
- function krumo_traverse(el) {
- krumo_name.push($(el).html());
- krumo_type.push($(el).siblings('em').html().match(/\w*/)[0]);
- if ($(el).closest('.krumo-nest').length > 0) {
- krumo_traverse($(el).closest('.krumo-nest').prev().find('.krumo-name'));
- }
- }
- $('.krumo-child > div:first-child', context).once('krumo_path',
- function() {
- $(this).dblclick(
- function(e) {
- if ($(this).find('> .krumo-php-path').length > 0) {
- // Remove path if shown.
- $(this).find('> .krumo-php-path').remove();
- }
- else {
- // Get elements.
- krumo_traverse($(this).find('> a.krumo-name'));
- // Create path.
- var krumo_path_string = '';
- for (var i = krumo_name.length - 1; i >= 0; --i) {
- // Start element.
- if ((krumo_name.length - 1) == i)
- krumo_path_string += '$' + krumo_name[i];
- if (typeof krumo_name[(i-1)] !== 'undefined') {
- if (krumo_type[i] == 'Array') {
- krumo_path_string += "[";
- if (!/^\d*$/.test(krumo_name[(i-1)]))
- krumo_path_string += "'";
- krumo_path_string += krumo_name[(i-1)];
- if (!/^\d*$/.test(krumo_name[(i-1)]))
- krumo_path_string += "'";
- krumo_path_string += "]";
- }
- if (krumo_type[i] == 'Object')
- krumo_path_string += '->' + krumo_name[(i-1)];
- }
- }
- $(this).append('<div class="krumo-php-path" style="font-family: Courier, monospace; font-weight: bold;">' + krumo_path_string + '</div>');
- // Reset arrays.
- krumo_name = [];
- krumo_type = [];
- }
- });
- });
- // Events
- $('.krumo-element').once('krumo-events', function() {
- $(this).click(function() {
- krumo.toggle(this);
- }).mouseover(function() {
- krumo.over(this);
- }).mouseout(function() {
- krumo.out(this);
- });
- });// End krumo-events .once
- }// End attach.
- };// End behaviors.devel.
- })(jQuery);// end outer function
|