<%@ 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>