updated devel
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
/**
|
||||
* @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
|
||||
Reference in New Issue
Block a user