📄 explorer.js
字号:
} else if (state != 'wait') {
// an error occurred
alert('state:' + state + '\nmessage:' + msg);
lockId = false;
}
}
// closes a context menu
function closeContext() {
var cmouter = win.files.getElementById("contextmenuouter");
cmouter.style.visibility = "hidden";
cmouter.style.display = "none";
contextOpen = false;
lockId = false;
}
// submits a selected multi action
function submitMultiAction(dialog) {
var doc = win.files;
doc.forms["formmulti"].action = dialog;
win.files.forms["formmulti"].elements["resource"].value = "";
doc.forms["formmulti"].submit();
}
// submits a selected single action
function submitSingleAction(dialog, targetFrame) {
var doc = win.files;
doc.forms["formmulti"].action = dialog;
doc.forms["formmulti"].target = targetFrame;
win.files.forms["formmulti"].elements["resourcelist"].value = "";
doc.forms["formmulti"].submit();
}
// handle the mouse clicks
function handleOnClick(e) {
e = checkEvent(e);
cancelNextOpen = (selectedResources.length > 0);
if (contextOpen) {
// close eventually open context menu
closeContext();
if (active_mouse_id == last_id) {
// clicked on same icon again, leave handler
return false;
}
}
// unselect resources;
toggleSelectionStyle(false);
selectedStyles = new Array();
var btp = e.button;
var keyHold = e.shiftKey || e.ctrlKey || e.altKey;
if (keyHold) {
// stop event bubbling
e.cancelBubble = true;
if (e.stopPropagation) {
e.stopPropagation();
}
}
if ((active_mouse_id < 0) || (active_from_text && !keyHold && (selectedResources.length <= 1) && (btp != 2))) {
// no icon clicked, reset selected resources and leave handler
last_id = -1;
selectedResources = new Array();
return true;
}
if (e.shiftKey) {
// shift pressed, mark resources
if (last_id >= 0) {
// mark resources from last clicked to current one
var incrementor = 1;
if (last_id < active_mouse_id) {
incrementor = -1;
}
var count = active_mouse_id;
selectedResources = new Array();
selectedResources[selectedResources.length] = count;
while (count != last_id) {
count += incrementor;
selectedResources[selectedResources.length] = count;
}
} else {
// first click, mark single resource
selectedResources = new Array();
selectedResources[selectedResources.length] = active_mouse_id;
}
last_id = active_mouse_id;
} else if (e.ctrlKey || e.altKey) {
// control or alt key pressed, add or remove resource from marked resources
var found = false;
for (i=0; i<selectedResources.length; i++) {
if (selectedResources[i] == active_mouse_id) {
// resource was previously selected, remove it from selection
selectedResources[i] = -1;
found = true;
i = selectedResources.length;
}
}
if (found) {
// remove resource from selection array, rebuild array
var tempResources = new Array();
for (i=0; i<selectedResources.length; i++) {
if (selectedResources[i] > -1) {
tempResources[tempResources.length] = selectedResources[i];
}
}
selectedResources = tempResources;
} else {
// not found, add resource to selection
selectedResources[selectedResources.length] = active_mouse_id;
}
} else {
// common click, mark currently clicked resource if not clicked before
if (active_mouse_id != last_id) {
var clickedMarked = false;
for (i=0; i<selectedResources.length; i++) {
if (selectedResources[i] == active_mouse_id) {
clickedMarked = true;
}
}
if (!clickedMarked || selectedResources.length <= 1) {
// left mouse button clicked or only one resource selected, select the current resource
selectedResources = new Array();
selectedResources[selectedResources.length] = active_mouse_id;
}
}
toggleSelectionStyle(true);
cancelNextOpen = keyHold || (selectedResources.length > 0);
return handleContext(e);
}
toggleSelectionStyle(true);
cancelNextOpen = keyHold || (selectedResources.length > 0);
return false;
}
// check if the event object is available and gets it if necessary
function checkEvent(event) {
// fix for IE if window access is refused in some cases
try {
win.files.getElementById("contextmenu");
} catch (exc) {
updateWindowStore();
}
// check event
if (!event) {
event = win.fileswin.event;
}
return event;
}
// toggles the style of the selected resources
function toggleSelectionStyle(isSelected) {
var doc = win.files;
var styleName = "selected";
if (! isSelected) {
styleName = "unselected";
}
for (i=0; i<selectedResources.length; i++) {
var last_id_style = "";
var ah = doc.getElementById("a" + selectedResources[i]);
var td = doc.getElementById("td3_" + selectedResources[i]);
if (ah == null) {
ah = td;
}
var rowStyle;
if (ah != null) {
last_id_style = ah.className;
if (isSelected) {
selectedStyles[selectedResources[i]] = last_id_style;
}
if (isSelected) {
ah.className = styleName;
} else {
var cls = selectedStyles[selectedResources[i]];
if (cls.charAt(cls.length - 1) == 'i') {
cls = cls.substring(0, cls.length-1);
}
ah.className = cls;
}
rowStyle = styleName;
if (last_id_style == "fd") {
rowStyle += " fd";
td.className = rowStyle;
} else {
td.className = ah.className;
}
}
for (k=0; k<3; k++) {
// change style of columns 0 to 2
try {
var elem = doc.getElementById("td" + k + "_" + selectedResources[i]);
if (elem.className != "fd") {
elem.className = rowStyle;
}
} catch (e) {}
}
}
}
function linkOver(obj, id) {
var cls = obj.className;
if (cls.charAt(cls.length - 1) != 'i') {
cls = cls + 'i';
}
obj.className = cls;
if (!lockId) {
active_mouse_id = id;
active_from_text = true;
}
}
function linkOut(obj) {
var cls = obj.className;
if (cls.charAt(cls.length - 1) == 'i') {
cls = cls.substring(0, cls.length-1);
}
obj.className = cls;
if (!lockId) {
active_mouse_id = -1;
active_from_text = false;
}
}
function printList(wo) {
top.active_target = '';
if ((win.fileswin.location.href.indexOf('list-explorer.jsp') >= 0) || (win.fileswin.location.href.indexOf('mode=galleryview') >= 0)) {
top.active_target = '_parent';
}
var temp =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">"
+ "<html><head>"
+ "<meta HTTP-EQUIV=\"content-type\" CONTENT=\"text/html; charset="
+ top.frames.head.encoding
+ "\">\n"
+ "<script type=\"text/javascript\" language=\"JavaScript\">\n"
+ "document.oncontextmenu = new Function('return false;');\n"
+ "document.onmousedown = new Function('return false;');\n"
+ "document.onmouseup = top.handleOnClick;\n"
+ "</script>\n"
+ "<style type='text/css'> @import url(" + vi.skinPath + "commons/explorer.css); </style>\n"
+ "</head>\n";
var returnplace = wo.location.href;
if ((openfolderMethod != "openthisfolderflat") && (mode != "listview")) {
var pos = returnplace.indexOf("/commons/");
if (pos >= 0) {
returnplace = returnplace.substring(0, pos + 1) + returnplace.substring(pos + 9);
var pos2 = returnplace.indexOf("?");
if (pos2 < 0) {
pos2 = returnplace.length + 1;
}
var loc = returnplace.substring(0, pos2 - 1);
loc = loc.substring(0, loc.lastIndexOf("/")) + "/views/explorer/explorer_files.jsp";
returnplace = loc + returnplace.substring(pos2);
}
}
returnplace = returnplace.replace(/\?/g, "%3F");
returnplace = returnplace.replace(/\&/g, "%26");
returnplace = returnplace.replace(/\=/g, "%3D");
returnplace = returnplace.replace(/\//g, "%2F");
wo.open();
wo.writeln(temp);
wo.write("<body unselectable=\"on\">");
wo.writeln("<table cellpadding=\"1\" cellspacing=\"0\" border=\"0\"><tr>");
wo.writeln("<td nowrap unselectable=\"on\" class=\"t\" width=\"16\"> </td>");
wo.writeln("<td nowrap unselectable=\"on\" class=\"t\" width=\"16\"> </td>");
wo.writeln("<td nowrap unselectable=\"on\" class=\"t\" width=\"16\"> </td>");
if (vi.check_name && ((mode != "listview") && (mode != "galleryview"))) wo.writeln("<td nowrap unselectable=\"on\" class=\"t100\"> " + vr.descr[0] + " </td>");
if (vi.check_name && ((mode == "listview") || (mode == "galleryview"))) wo.writeln("<td nowrap unselectable=\"on\" class=\"t100\"> " + vr.descr[14] + " </td>");
if (vi.check_title) wo.writeln("<td nowrap unselectable=\"on\" class=\"t100\"> " + vr.descr[1] + " </td>");
if (vi.check_navtext) wo.writeln("<td nowrap unselectable=\"on\" class=\"t100\"> " + vr.descr[2] + " </td>");
if (vi.check_type) wo.writeln("<td nowrap unselectable=\"on\" class=\"t75\"> " + vr.descr[3] + " </td>");
if (vi.check_size) wo.writeln("<td nowrap unselectable=\"on\" class=\"t75\"> " + vr.descr[4] + " </td>");
if (vi.check_permissions) wo.writeln("<td nowrap unselectable=\"on\" class=\"t75\"> " + vr.descr[5] + " </td>");
if (vi.check_dateLastModified) wo.writeln("<td nowrap unselectable=\"on\" class=\"t125\"> " + vr.descr[6] + " </td>");
if (vi.check_userWhoLastModified) wo.writeln("<td nowrap unselectable=\"on\" class=\"t125\"> " + vr.descr[7] + " </td>");
if (vi.check_dateCreated) wo.writeln("<td nowrap unselectable=\"on\" class=\"t125\"> " + vr.descr[8] + " </td>");
if (vi.check_userWhoCreated) wo.writeln("<td nowrap unselectable=\"on\" class=\"t125\"> " + vr.descr[9] + " </td>");
if (vi.check_dateReleased) wo.writeln("<td nowrap unselectable=\"on\" class=\"t125\"> " + vr.descr[10] + " </td>");
if (vi.check_dateExpired) wo.writeln("<td nowrap unselectable=\"on\" class=\"t125\"> " + vr.descr[11] + " </td>");
if (vi.check_state) wo.writeln("<td nowrap unselectable=\"on\" class=\"t75\"> " + vr.descr[12] + " </td>");
if (vi.check_lockedBy) wo.writeln("<td nowrap unselectable=\"on\" class=\"t100\"> " + vr.descr[13] + " </td>");
wo.writeln("</tr>");
for (var i = 0; i < vi.liste.length; i++) {
var vi_icon;
var vi_text;
var noaccess = false;
if (typeof vi.resource[vi.liste[i].type] == 'undefined') {
// type does not exist, the user has no access to this resource type
noaccess = true;
vi_icon = vi.resource[plainresid].icon;
vi_text = vi.resource[plainresid].text;
} else {
vi_icon = vi.resource[vi.liste[i].type].icon;
vi_text = vi.resource[vi.liste[i].type].text;
}
var ssclass = "class=\"";
if (!vi.liste[i].isInsideCurrentProject || noaccess) {
ssclass += "fp";
} else {
if (vi.liste[i].state == 0)
ssclass += "nf";
if (vi.liste[i].state == 1)
ssclass += "fc";
if (vi.liste[i].state == 2)
ssclass += "fn";
if (vi.liste[i].state == 3)
ssclass += "fd";
}
ssclass += "\"";
if ((vi.liste[i].layoutstyle) == 1) ssclass += " style=\"font-style:italic;\"";
if ((vi.liste[i].layoutstyle) == 2) ssclass += " style=\"font-style:italic;\"";
var vi_bg = "";
if (vi.liste[i].linkType != 0) {
vi_bg = " style=\"background-image:url(" + vi_icon + "); background-position: 1px 1px; background-repeat: no-repeat; \"";
vi_icon = vi.skinPath + 'explorer/';
if (vi.liste[i].linkType == 2) {
vi_icon += 'link_labeled.gif';
} else {
vi_icon += 'link.gif';
}
}
wo.writeln("<tr>");
wo.write("<td unselectable=\"on\" id=\"td0_" + i + "\"" + vi_bg + ">");
if (showKon && !noaccess) {
wo.write("<a style=\"cursor:pointer;\"");
wo.write(" onmouseover=\"top.setId(" + i + ")\" onmouseout=\"top.setId(-1)\">");
}
wo.write("<img id=\"ic" + i + "\" src='" + vi_icon + "' border=0 width=16 height=16>");
if (showKon && !noaccess) {
wo.write("</a>");
}
wo.writeln("</td>");
wo.write("<td unselectable=\"on\" id=\"td1_" + i + "\">");
// the resource is in the current project, so display the lock and project state
if (vi.liste[i].lockedBy != "") {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -