/usr/share/knowledgeroot/system/javascript/knowledgeroot-menu.js is in knowledgeroot 0.9.9.5-6.
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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | /**
* Javascript to show menu on tree elements or on content elements
* Knowledgeroot
* Frank Habermann
* 28.10.2007
*/
var KnowledgerootMenu = {
mouseX: 0,
mouseY: 0,
id: '',
init: function() {
Event.observe(document, "mousemove", this.getPosition, false);
},
show: function(id, menuname, pageid, contentid) {
// set id
this.id = id;
// get and build menu
this.getMenu(id,menuname, pageid, contentid);
//Event.stopObserving(document, "mousemove", KnowledgerootMenu.getPosition);
},
showMenu: function(id) {
$(id).style.left = KnowledgerootMenu.mouseX-1 + 'px';
$(id).style.top = KnowledgerootMenu.mouseY-1 + 'px';
$(id).style.zIndex = 999;
$(id).style.display = "block";
//alert($(id).offsetWidth + "#" + $(id).offsetHeight);
},
hide: function(id) {
$(id).style.display = "none";
},
getPosition: function(mevent) {
KnowledgerootMenu.mouseX = Event.pointerX(mevent);
KnowledgerootMenu.mouseY = Event.pointerY(mevent);
id = KnowledgerootMenu.id;
// now check if menu is shown and hide if mouse is not over
if(id != "" && $(id).style.display == "block") {
if(KnowledgerootMenu.mouseX < ($(id).offsetLeft-2) || KnowledgerootMenu.mouseX > ($(id).offsetLeft+$(id).offsetWidth+2) || KnowledgerootMenu.mouseY < ($(id).offsetTop-2) || KnowledgerootMenu.mouseY > ($(id).offsetTop+$(id).offsetHeight+2)) {
KnowledgerootMenu.hide(id);
}
}
},
getMenu: function(id,menuname,pageid, contentid) {
script = "ajax-xml.php";
if(typeof(contentid) != 'number') {
contentid = "";
}
var ajaxopen = new Ajax.Request(
script,
{
method:'post',
postBody: 'ajaxmenu='+menuname+'&id='+pageid+'&contentid='+contentid,
onComplete:KnowledgerootMenu.buildMenu,
onFailure:KnowledgerootMenu.showError
}
);
},
buildMenu: function(r) {
try {
var root = r.responseXML.getElementsByTagName("root");
if(navigator.appName == "Opera" || navigator.appName == "opera") {
var data = unescape(root[0].getElementsByTagName("html")[0].textContent);
} else if (document.all) {
var data = unescape(r.responseXML.getElementsByTagName("html")[0].firstChild.nodeValue);
} else {
var data = unescape(root[0].getElementsByTagName("html")[0].textContent);
}
$(KnowledgerootMenu.id).innerHTML = data;
KnowledgerootMenu.showMenu(KnowledgerootMenu.id);
} catch (e) {
ShowMessage(e.message + "#" + e.name + "#" + e.number + "#" + e.file, "error");
setTimeout("HideMessage()", 7000);
}
},
showError: function(r) {
}
}
// init menu
KnowledgerootMenu.init();
|