📄 explorer.js
字号:
var theParent = tree.nodes[parentName];
tree.nodes[nodeName] = new node(id, name, nullUUID, theParent, false, isGrey);
if ((tree.oldNodes != null) && tree.oldNodes[nodeName] != null) {
tree.nodes[nodeName].open = tree.oldNodes[nodeName].open;
}
if(theParent != null) {
theParent.childs[theParent.childs.length] = tree.nodes[nodeName];
}
if (theParent == null) {
tree.root = tree.nodes[nodeName];
}
}
/**
* reset the tree
*/
function rT() {
tree.oldNodes = tree.nodes;
tree.nodes = new Array();
}
/**
* open a folder via id
*/
function openFolder(id){
var pfad="";
addHist(window.frames[1].frames[1].frames[0].document.forms[0].url.value);
window.frames[1].frames[1].frames[0].document.forms[0].url.value="";
if (id!=tree.root.id){
do{
var nodeName='_n'+id;
pfad="/"+tree.nodes[nodeName].name;
top.window.frames[1].frames[1].frames[0].document.forms[0].url.value = pfad +top.window.frames[1].frames[1].frames[0].document.forms[0].url.value ;
id = tree.nodes[nodeName].parent.id;
test = tree.nodes[nodeName].parent.id;
}while(id!=tree.root.id);
}
top.window.frames[1].frames[1].frames[0].document.forms.urlform.url.value +='/';
openurl();
}
/**
* open a folder via id
*/
function folderOpen(id){
while(id!=tree.root.id){
var nodeName='_n'+id;
if(tree.nodes[nodeName]){
if(tree.nodes[nodeName].childs.length>0)tree.nodes[nodeName].open=true;
id = tree.nodes[nodeName].parent.id;
}else return;
}
}
function openurl(){
top.window.frames[1].frames[1].frames[1].document.open();
top.window.frames[1].frames[1].frames[1].document.writeln("<html>");
top.window.frames[1].frames[1].frames[1].document.writeln("<HEAD><META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=" + top.frames.head.encoding + "\"></HEAD>");
top.window.frames[1].frames[1].frames[1].document.writeln("<body><center><br><br><br><br><font face=Helvetica size=2>"+vr.langloading+"</center></body></html>");
top.window.frames[1].frames[1].frames[1].document.close();
folder=top.window.frames[1].frames[1].frames[0].document.forms.urlform.url.value;
selectedpage="";
if(top.window.frames[1].frames[1].frames[0].document.forms.urlform.pageSelect){
selectedpage=top.window.frames[1].frames[1].frames[0].document.forms.urlform.pageSelect.value;
}
top.window.frames[1].frames[1].frames[1].document.location="explorer_files.html?folder="+folder+"&check="+vi.checksum+"&selPage="+selectedpage;
}
/**
* specifications of a node
*/
function node(id, name, type, parent, open, isGrey){
this.id=id;
this.name=name;
this.type=type;
this.parent=parent;
this.open=open;
this.childs=new Array();
this.isGrey=isGrey;
}
function dfsToggle(id, node) {
if (id == node.id) {
node.open = !node.open;
tree.dfsToggleFound = true;
return;
}
for (var loop1=0; loop1<node.childs.length; loop1++) {
dfsToggle(id, node.childs[loop1]);
if (tree.dfsToggleFound) return;
}
}
function toggleNode(doc, id, windowed) {
tree.dfsToggleFound = false;
dfsToggle(id, tree.root);
showTree(doc,windowed);
}
/**
* write <img> tag
*/
function showPic(doc, pic) {
doc.write("<img src='" + pic + "' height=16 width=16 border=0 vspace=0 hspace=0 align=left>");
}
/**
* write linked <img> tag, used for open-able folders/crosses in the tree frame
*/
function showPicLink(doc, pic, id,windowed) {
if(windowed==0) doc.write("<a href=javascript:top.toggleNode(document,'"+ id +"',"+windowed+")><img src='"+ pic +"' height=16 width=16 border=0 vspace=0 hspace=0 align=left></a>");
if(windowed>0) doc.write("<a href=javascript:window.opener.toggleNode(document,'"+ id +"',"+windowed+")><img src='"+ pic +"' height=16 width=16 border=0 vspace=0 hspace=0 align=left></a>");
}
function dfsTree(doc, node, depth, last, shape,windowed) {
var loop1;
if (node.parent==null) {
showPic(doc, tree.icon[9].src); // rootdir
} else {
for (loop1=0; loop1<depth-1; loop1++) {
if (shape[loop1+1] == 1) {
showPic(doc, tree.icon[10].src); //vert.line
} else {
showPic(doc, tree.icon[0].src); //nothing
}
}
if (last) {
if (node.childs.length > 0) {
if (node.open) {
//wenn actdir ein child vom knopf ist
showPicLink(doc, tree.icon[5].src, node.id,windowed); //corner to close
} else {
showPicLink(doc, tree.icon[7].src, node.id,windowed); //corner to open
}
} else {
showPic(doc, tree.icon[1].src); //corner
}
shape[depth] = 0;
} else {
if (node.childs.length > 0) {
if (node.open) {
showPicLink(doc, tree.icon[6].src, node.id,windowed); //cross to close
} else {
showPicLink(doc, tree.icon[8].src, node.id,windowed); //cross to open
}
} else {
showPic(doc, tree.icon[4].src); //cross
}
shape[depth] = 1;
}
if(node.id==vr.actDirId){
showPic(doc, tree.icon[3].src); //folderopen
} else {
showPic(doc, tree.icon[2].src); //foldernormal
}
}
if(node.isGrey)var foco="class=ig ";
else var foco="class=tf ";
if(windowed==0) doc.writeln("<a "+foco+"href='javascript:top.openFolder(""+ node.id +"");' target='explorer_files' ;> "+ node.name + " </a></td></tr><tr valign=bottom><td valign=bottom align=left nowrap>");
if(windowed==1) doc.writeln("<a "+foco+" href=javascript:window.opener.addProjectDir('"+node.id+"');> "+ node.name + " </a></td></tr><tr valign=bottom><td valign=bottom align=left nowrap>");
if(windowed==2) doc.writeln("<a "+foco+" href=javascript:window.opener.addDir('"+node.id+"');> "+ node.name + " </a></td></tr><tr valign=bottom><td valign=bottom align=left nowrap>");
if (node.open || node == tree.root) {
for (var loop1=0; loop1<node.childs.length; loop1++) {
dfsTree(doc, node.childs[loop1], depth+1, (loop1==(node.childs.length-1)), shape,windowed);
}
}
}
function addDir(nodid){
var pfad="";
if (nodid!=tree.root.id){
do{
var nodeName='_n'+nodid;
pfad=tree.nodes[nodeName].name+"/"+pfad;
nodid = tree.nodes[nodeName].parent.id;
test = tree.nodes[nodeName].parent.id;
} while(nodid!=tree.root.id);
}
pfad='/'+pfad;
if(window.frames[1].frames[1].frames[1]) {
window.frames[1].frames[1].frames[1].document.forms[0].folder.value=pfad;
} else {
window.frames[1].frames[1].document.forms[0].folder.value=pfad;
}
}
function addProjectDir(nodid){
var pfad="";
if (nodid!=tree.root.id){
do{
var nodeName='_n'+nodid;
pfad=tree.nodes[nodeName].name+"/"+pfad;
nodid = tree.nodes[nodeName].parent.id;
test = tree.nodes[nodeName].parent.id;
} while(nodid!=tree.root.id);
}
pfad='/'+pfad;
window.frames[1].frames[1].document.forms[0].tempFolder.value=pfad;
if (window.frames[1].frames[1].copySelection) {
window.frames[1].frames[1].copySelection();
}
}
function opensmallwin(url, name, w, h) //opens a new window with parameter URL, Windowname (free choosable), width and height
{
smallwindow = window.open(url, name, 'toolbar=no,location=no,directories=no,status=yes,menubar=0,scrollbars=yes,resizable=yes,top=150,left=660,width='+w+',height='+h);
if(smallwindow != null)
{
if (smallwindow.opener == null)
{
smallwindow.opener = self;
}
}
smallwindow.focus();
return smallwindow;
}
function showWinCopyTree(doc){
showTree(doc,2);
}
function showWinTree(doc){
showTree(doc,1);
}
var treewindowexists=false;
function openTreeCopyWin(){
treewin=opensmallwin('treewindowcopy.html', 'opencms', 170, 300);
treewindowexists=true;
}
function openTreeWin(){
treewin=opensmallwin('../../../action/treewindow.html', 'opencms', 170, 300);
treewindowexists=true;
}
function closeTreeWin(){
if( treewindowexists==true){
window.treewin.close();
treewindowexists=false;
}
}
/**
* displays the tree
*/
function showTree(doc,windowed) {
var showTreeHead="<html><head>" +
"<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=" + top.frames.head.encoding + "\">" +
"<title>opencms explorer tree</title>" +
"<style type='text/css'> a { text-decoration: none; color: #000000; font-family:arial; font-size:8pt;} a.ig { text-decoration: none; color: silver; font-family:arial; font-size:8pt;} a.tf { text-decoration: none; color: #000000; font-family:MS Sans Serif, Arial, helvetica, sans-serif; font-size:8px;} var a:hover { text-decoration: none; color: #FFFFFF; background:#000066 font-family:arial; font-size:8pt;} body { margin-left:3px; margin-right:0px; margin-top:4px; margin-bottom:0px; margin-height:0px; marginspace:0; margin-top:3px;} </style>" +
"</head><body><font face='arial' size=2><table border=0 cellpadding=0 cellspacing=0><tr><td valign=bottom align=left nowrap>";
var showTreeFoot="</font></TD></TR></table></body></html>";
doc.open();
doc.writeln(showTreeHead);
dfsTree(doc, tree.root, 0, false, new Array(),windowed);
doc.writeln(showTreeFoot);
doc.close();
}
function updateFrame(which, frameurl){
eval('window.top.'+which+'.location.href="'+frameurl+'"');
}
/**
* changes a imageobject on mouseover
*/
function chon(doc, imgID, div){
var imgEndOn = "_on.gif";
var imgEndOff = "_off.gif";
doc.images[imgID].src = vi.iconPath+ imgID + imgEndOn;
}
/**
* changes a imageobject on mouseout
*/
function choff(doc, imgID, div){
var imgEndOn = "_on.gif";
var imgEndOff = "_off.gif";
doc.images[imgID].src = vi.iconPath + imgID + imgEndOff;
}
/**
* moves from /home/tom/ to /home/
*/
function dirUp(){
var temp;
var marke=0;
var directory=window.frames[1].frames[1].frames[0].document.forms[0].url.value;
var zaehler=0;
addHist(window.frames[1].frames[1].frames[0].document.forms[0].url.value);
var newDir = directory.substring(0, directory.length -1);
window.frames[1].frames[1].frames[0].document.forms[0].url.value=newDir.substring(0, newDir.lastIndexOf("/")+1);
if(window.frames[1].frames[1].frames[0].document.forms[0].url.value.length<3)window.frames[1].frames[1].frames[0].document.forms[0].url.value="/";
openurl();
}
/**
* displays preloaded pictures in head-frame
*/
function displayHeadPics(doc){
bt_back = new Image(16,16);
bt_back.src = vi.iconPath+'bt_back_off.gif';
bt_folder = new Image(32,32);
bt_folder.src = vi.iconPath+'ic_file_folder.gif';
bt_new = new Image(32,32);
if(vi.newButtonActive==false || vr.actProject==vr.onlineProject) bt_new.src = vi.iconPath+'bt_new_in.gif';
else bt_new.src = vi.iconPath+'bt_new_off.gif';
bt_up = new Image(32,32);
if(window.frames[1].frames[1].frames[0].document.forms[0].url.value=="/") bt_up.src = vi.iconPath+'bt_up_in.gif';
else bt_up.src = vi.iconPath+'bt_up_off.gif';
bt_search = new Image(32,32);
bt_search.src = vi.iconPath+'bt_search_off.gif';
eval("doc.images[0].src=bt_back.src;");
eval("doc.images[1].src=bt_up.src;");
eval("doc.images[2].src=bt_search.src;");
eval("doc.images[3].src=bt_new.src;");
eval("doc.images[4].src=bt_folder.src;");
}
/**
* display "explorer_head" frame
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -