Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<%@ 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>
|