/usr/lib/ruby/vendor_ruby/merb-core/dispatch/default_exception/views/_javascript.html.erb is in ruby-merb-core 1.1.3+dfsg-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | <% if Merb.env != "test" %>
<script type="text/javascript">
//<![CDATA[
(function() {
els = document.getElementsByTagName('td');
var forEach = function(arr, fn) {
for(var i=0; i<arr.length; i++) {
var res = fn(arr[i]);
if(res === false) break;
}
}
var toggleClasses = function(node, first, second) {
var classes = node.className.split(" ");
var newClasses = [];
forEach(classes, function(k) {
if(k == first) newClasses.push(second);
else if(k == second) newClasses.push(first);
else newClasses.push(k);
});
node.className = newClasses.join(" ");
}
forEach(els, function(el) {
// swap the open & closed classes
if(hasClass(el, "expand") || hasClass(el, "collapse")) {
el.onclick = function(e){
tbody = this.parentNode.parentNode;
toggleClasses(tbody, "open", "close");
}
}
})
forEach(document.getElementsByTagName("h3"), function(el) {
el.onclick = function(e) {
var tag = this.nextSibling;
while(tag.nodeType != 1) tag = tag.nextSibling;
tag.style.display = tag.style.display == "none" ? "" : "none";
}
})
function hasClass(node, matchClass) {
var classes = node.className.split(" ");
for(var i=0,className;className=classes[i];i++)
if(className == matchClass) return true;
return false;
}
var els = document.getElementsByTagName("p");
forEach(els, function(tag) {
if(tag.className != "options") return true;
var checkboxes = tag.getElementsByTagName("input");
forEach(checkboxes, function(box) {
if(window.navigator.userAgent.match(/Firefox/)) {
box.style.top = "3px";
}
});
tag.getElementsByTagName("input")[0].onclick = function(e) {
forEach(checkboxes, function(box) {
if(box == e.target) return true;
box.checked = e.target.checked;
toggleTraces(box, box);
})
};
var toggleTraces = function(box, target) {
var tbodies = tag.parentNode.getElementsByTagName("tbody");
forEach(tbodies, function(tbody) {
if(hasClass(tbody, target.parentNode.className)) {
if(target.checked) tbody.style.display = "";
else tbody.style.display = "none";
}
})
}
forEach(checkboxes, function(box) {
if(box == checkboxes[0]) return true;
box.onchange = function(e) { toggleTraces(box, e.target) }
})
})
})();
//]]>
</script>
<% end %>
|