Files
liceo-ariosto/media/plg_system_debug/widgets/languageStrings/widget.js
2025-06-17 11:53:18 +02:00

88 lines
3.9 KiB
JavaScript

(function ($) {
var csscls = PhpDebugBar.utils.makecsscls('phpdebugbar-widgets-')
var languageStringsWidget = PhpDebugBar.Widgets.languageStringsWidget = PhpDebugBar.Widget.extend({
tagName: 'table',
className: csscls('languageStrings'),
render: function () {
this.bindAttr('data', function (data) {
this.$el.empty()
for (var orphan in data.orphans) {
var tr = $('<tr />')
$('<th valign="top" style="width:10%" />').text(orphan).appendTo(tr)
var td = $('<th />').appendTo(tr)
var ul = $('<ul />').appendTo(td)
var tableStack
for (var oc in data.orphans[orphan]) {
var occurence = data.orphans[orphan][oc]
var relPath = occurence['caller'].replace(data.jroot, '')
var li = $('<li />')
if (data.xdebugLink) {
var parts = occurence['caller'].split(':')
var link = $('<a />')
.text(relPath)
.attr(
'href',
data.xdebugLink
.replace('%f', parts[0])
.replace('%l', parts[1])
)
li.append(link)
} else {
li.text(relPath)
}
if (occurence['trace'] && !$.isEmptyObject(occurence['trace'])) {
$('<span title="Call Stack" />')
.text('Stack')
.addClass(csscls('eye'))
.css('cursor', 'pointer')
.on('click', function (e) {
var btn = $(e.target)
var table = btn.next()
if (table.is(':visible')) {
table.hide()
btn.addClass(csscls('eye'))
btn.removeClass(csscls('eye-dash'))
} else {
table.show()
btn.addClass(csscls('eye-dash'))
btn.removeClass(csscls('eye'))
}
})
.appendTo(li)
tableStack = $('<table><thead><tr><th colspan="3">Call Stack</th></tr></thead></table>')
.addClass(csscls('callstack'))
.appendTo(li)
for (var i in occurence['trace']) {
var entry = occurence['trace'][i]
var location = entry[3] ? entry[3].replace(data.jroot, '') + ':' + entry[4] : ''
var caller = entry[2].replace(data.jroot, '')
var cssClass = entry[1] ? 'caller' : ''
if (location && data.xdebugLink) {
location = '<a href="' + data.xdebugLink.replace('%f', entry[3]).replace('%l', entry[4]) + '">' + location + '</a>'
}
tableStack.append('<tr class="' + cssClass + '"><th>' + entry[0] + '</th><td>' + caller + '</td><td>' + location + '</td></tr>')
}
}
li.appendTo(ul)
}
this.$el.append(tr)
}
})
}
})
})(PhpDebugBar.$)