windows-nt/Source/XPSP1/NT/inetsrv/iis/img/htmla/jsdirbrowser/jsbrwhd.asp
2020-09-26 16:20:57 +08:00

284 lines
4.8 KiB
Plaintext

<%@ LANGUAGE = VBScript %>
<% Option Explicit %>
<!-- #include file="../directives.inc" -->
<!--#include file="jsbrowser.str"-->
<%
Const FIXEDDISK = 2
%>
<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE="JavaScript">
var DRIVE= 0;
var FOLDER = 1;
var FILE = 2;
var REDRAW = true;
</SCRIPT>
</HEAD>
<BODY BGCOLOR="#CCCCCC" LINK="#000000" VLINK="#000000" ALINK="#000000" TOPMARGIN = 5 LEFTMARGIN = 5 onLoad="loadList();">
<FORM NAME="userform" onSubmit="return false;">
<TABLE>
<TR>
<TD WIDTH = 100%>
<FONT FACE="Helv" SIZE = 1>
<%= L_SELDIR_TEXT %>
</FONT>
</TD>
</TR>
</TABLE>
</FORM>
<SCRIPT LANGUAGE="JavaScript">
function loadList()
{
parent.list.location.href = "JSBrwLs.asp";
}
function redrawList()
{
parent.list.location.href = "JSBrwLs.asp";
}
function expandItem(item,paint)
{
var theList = cachedList;
var theitem = theList[item];
theitem.open = true;
listFunc.selIndex=item;
if (!theitem.cached)
{
var thepath = escape(theitem.fspath);
thepath = thepath + "&newid=" + theList.length + "&item=" + item;
parent.hlist.location.href = "jsbrwset.asp?fspath=" + thepath;
theitem.cached = true;
}
// Changed from if to else if --
// Let jsbrwset.asp refresh the list.
else if (paint)
{
listFunc.loadList();
}
}
function expandPath(thisPath)
{
for (var i=0;i < cachedList.length; i++)
{
if (cachedList[i].fspath == thisPath)
{
expandItem(i,!REDRAW);
return;
}
}
}
function sortOrder(a,b){
x=a.id - b.id
return x
}
function sortList(){
cachedList.sort(sortOrder);
}
function markTerms(){
//marks cached list items as being a terminater (ie, having no siblings)
//this forces an "end" gif in the tree view...
var i
var listLength=cachedList.length;
for (i=0; i < listLength; i++) {
cachedList[i].lastChild=isLast(i);
}
}
function isLast(item)
{
var i;
last=false;
var listLength=cachedList.length;
if (item+1==listLength)
{
last=true;
}
else
{
if (cachedList[item].parentid==null)
{
last=true;
for (i=item+1; i < listLength; i++)
{
if (cachedList[i].parentid==null)
{
last=false;
break;
}
}
}
else
{
last=true;
var y=item+1;
while(cachedList[y].parentid >=cachedList[item].parentid)
{
if(cachedList[y].parentid==cachedList[item].parentid)
{
if(!cachedList[y].deleted)
{
last=false;
break;
}
}
y=y+1;
if ((y)==listLength)
{
break;
}
}
}
}
return last;
}
function setPath()
{
if (top.opener.JSBrowser == null)
{
top.close();
}
else
{
top.opener.JSBrowser.currentPath = cachedList[listFunc.selIndex].fspath;
top.opener.JSBrowser.BrowserObjSetPath();
top.location.href = "JSBrwCl.asp";
}
}
function listFuncs()
{
this.loadList = loadList;
this.selIndex = 0;
this.setPath = setPath;
this.expandItem = expandItem;
this.expandPath = expandPath;
}
function listObj(id,fspath,fname,parentid)
{
this.id = id;
this.selected = false;
this.open = false;
this.cached = false;
this.fspath = fspath;
this.fname = fname;
this.lastChild = false;
if (parentid == null)
{
this.level = 1;
this.icon = "fdisk.gif";
this.openicon = "fdisk.gif";
}
else
{
this.level = cachedList[parentid].level+1;
if (parentid == 0)
{
this.icon = "fdisk.gif";
this.openicon = "fdisk.gif";
}
else
{
this.icon = "cdir.gif";
this.openicon = "odir.gif";
}
}
this.parentid = parentid;
this.markTerms = markTerms;
this.sortList = sortList;
}
cachedList = new Array();
listFunc = new listFuncs();
<%
Dim FileSystem, drives, drive, newid
Set FileSystem=CreateObject("Scripting.FileSystemObject")
Set drives = FileSystem.Drives
%>
cachedList[0]= new listObj(0,"","<%= L_MYCOMPUTER_TEXT %>",null);
cachedList[0].open = true;
cachedList[0].cached = true;
<%
newid = 1
For Each drive in drives
' This makes things too slow, but it does only show working drives.
' if drive.IsReady then
%>
cachedList[<%= newid %>]= new listObj(<%= newid %>,"<%= drive.DriveLetter & ":\\" %>","<%= drive.DriveLetter %>",0);
<%
newid = newid + 1
' end if
Next
%>
cachedList[0].markTerms();
var pathCntrl = top.opener.JSBrowser.pathCntrl;
var selpath = "";
if (selpath != "")
{
var lastLength = 0;
var curLength = 0;
var x = 0;
var parsing = true;
while(parsing)
{
lastLength = selpath.indexOf("\\",lastLength+1);
if (x > 100)
{
parsing = false;;
}
x++;
if (lastLength == -1)
{
parsing = false;
}
curpath = selpath.substr(0, lastLength+1);
//alert(curpath);
expandPath(curpath, !REDRAW);
}
expandPath(selpath, REDRAW);
}
</SCRIPT>
</BODY>
</HTML>