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

163 lines
3.6 KiB
Plaintext

<%@ LANGUAGE = VBScript %>
<% 'Option Explicit %>
<!-- #include file="../directives.inc" -->
<!--#include file="jsbrowser.str"-->
<%
'Call this page with a query string of ?sname=machinename
'example: http://larad01/iis/iicnct.asp?sname=larad01
'On Error Resume Next
Dim path, sname, scripttimeout, FileSystem, quote, errd, currentADsObj, lastobj
Dim newid, topid, firstid, currentid, numNewItems
'This script can take a _long_ time to execute,
'as we may be dealing with thousands of items
'to add to our JScript object.
'save our current script timeout value & set to a much longer value...
scripttimeout = Server.ScriptTimeOut
Server.ScriptTimeOut = 2000
Set FileSystem=CreateObject("Scripting.FileSystemObject")
path=Request.QueryString("fspath")
quote=chr(34)
errd=False
lastobj = ""
%>
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
var theList=parent.head.cachedList;
var listFuncs = new parent.head.listFuncs();
<%
if errd=0 then
newid=Request("newid")
firstid=newid
if firstid="" then
firstid=0
end if
currentid=Request("item")
if currentid="" then
currentid=firstid
newid=newid + 1
end if
numNewItems=0
Response.write "//" & path
Response.write "//" & currentid
addDirs path, currentid
Server.ScriptTimeOut = scripttimeout
end if
Sub addDirs(path, parentid)
Dim thisid, thisname, thisstate, thisadspath, i, f
if path <> "" then
if FileSystem.FolderExists(path) then
Set f=FileSystem.GetFolder(path)
For Each i In f.SubFolders
thisid=newid
SetJscriptObj i, i.Name,parentid
numNewItems=numNewItems + 1
Next
end if
end if
End Sub
Sub SetJscriptObj(path, caption, parentid)
%>
theList[<%= newid %>]=new parent.head.listObj(<%= newid %>,"<%= Replace(path,"\","\\") %>","<%= caption %>",<%= parentid %>);
<%
newid=newid + 1
End Sub
' we need to insert the whole group into the correct place In the array.
' since we Set the first entry (machine) to the exisitng place In the array,
' the Next level In the hierarchy (vservers) will be pointing to the correct
' parent ids. However, the following level (vdirs, and below) will be pointing
' to the parent ids as they existed at the bottom of the array, before the
' move, and will need to be adjusted.
%>
<% if errd=0 then %>
var item=<%= firstid %>;
currentid=<%= currentid %>;
if (currentid !=item){
x=currentid + 1;
//correct the id on the "new" objects
for (var i=item; i < theList.length; i++) {
theList[i].id=x;
if (theList[i].parentid !=currentid){
theList[i].parentid=theList[i].parentid - (item - (currentid + 1));
}
x++;
}
//move the following records "down" the array
for (var i=currentid + 1; i < item;i++){
theList[i].id=theList[i].id + <%= numNewItems %>;
if (theList[i].parentid >currentid){
theList[i].parentid=theList[i].parentid + <%= numNewItems %>;
}
}
}
//and re-sort.
theList[0].sortList();
theList[0].markTerms();
if (theList.length==1){
listFuncs.selIndex=0;
theList[0].selected=true;
}
else{
theList[listFuncs.selIndex].selected=false;
listFuncs.selIndex=<%= currentid %>;
theList[<%= currentid %>].selected=true;
}
// Force a refresh
listFuncs.loadList();
<% else %>
alert("<%= L_CNCTERR_TEXT %> (<%= err %>)");
<% end if %>
</SCRIPT>
<% if err <> 0 then %>
<% Response.write "err: " & err.description %><BR>
<% Response.write "currentcontainer: " & currentADsObj.ADsPath %><BR>
<% Response.write " " & currentADsObj.KeyType %><BR>
<% Response.write "Err Container:" & lastobj %><BR>
<% end if %>
</HEAD>
<BODY>
</BODY>
</HTML>