807 lines
19 KiB
Plaintext
807 lines
19 KiB
Plaintext
|
<%@ LANGUAGE = VBScript %>
|
||
|
<% 'Option Explicit %>
|
||
|
<!-- #include file="directives.inc" -->
|
||
|
|
||
|
<%
|
||
|
|
||
|
' This script is the main container for the admin..
|
||
|
' It holds the client-cached tree list, stored in cachedList
|
||
|
' in addition to a variety of global functions & customization
|
||
|
' flags. This script gets loaded once for the admin and is
|
||
|
' persistant throughout.
|
||
|
|
||
|
'$
|
||
|
Const STR_SUPPORT_MULTI_SELECT = "hasDHTML"
|
||
|
|
||
|
%>
|
||
|
<!--#include file="iihd.str"-->
|
||
|
<!--#include file="iisetfnt.inc"-->
|
||
|
|
||
|
<!--#include file="iiaspstr.inc"-->
|
||
|
|
||
|
<html>
|
||
|
<head>
|
||
|
<title><%= L_ISM_TEXT %></title>
|
||
|
|
||
|
<script language="JavaScript">
|
||
|
|
||
|
// Create an instance of our Global Variables for reference by other frames...
|
||
|
Global=new globalVars();
|
||
|
|
||
|
// Create the nodeList array
|
||
|
nodeList=new Array();
|
||
|
nodeList[0]="";
|
||
|
|
||
|
<!--#include file="iijsfuncs.inc"-->
|
||
|
function unload_popwindow()
|
||
|
{
|
||
|
if(Global.popwindow != null)
|
||
|
Global.popwindow.close();
|
||
|
}
|
||
|
|
||
|
function helpBox()
|
||
|
{
|
||
|
if (Global.helpFileName==null)
|
||
|
{
|
||
|
alert("<%= L_NOHELP_ERRORMESSAGE %>");
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
helpfile = Global.helpDir + Global.helpFileName+".htm";
|
||
|
thefile="iihelp.asp?pg=" + helpfile;
|
||
|
<% if Session("hasDHTML") then %>
|
||
|
window.showHelp("http://" + helpfile);
|
||
|
<% else %>
|
||
|
|
||
|
window.open(thefile ,"Help","toolbar=no,scrollbars=yes,directories=no,menubar=yes,width=375,height=500");
|
||
|
<% end if %>
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function aboutBox() {
|
||
|
popbox=window.open("iiabout.asp","about","toolbar=no,scrollbars=yes,directories=no,menubar=no,width="+525+",height="+300);
|
||
|
if(popbox !=null){
|
||
|
if (popbox.opener==null){
|
||
|
popbox.opener=self;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
function globalVars(){
|
||
|
|
||
|
// Sets the global variables for the script.
|
||
|
// These may be changed to quickly customize the tree's apperance
|
||
|
|
||
|
// Fonts
|
||
|
this.face="Helv,Arial";
|
||
|
this.fSize=1;
|
||
|
|
||
|
// Spacing
|
||
|
this.vSpace=2;
|
||
|
this.hSpace=4;
|
||
|
this.tblWidth=500;
|
||
|
this.selTColor="#FFCC00";
|
||
|
this.selFColor="#000000";
|
||
|
this.selUColor="<%= Session("BGCOLOR") %>";
|
||
|
|
||
|
// Images
|
||
|
this.imagedir="images/";
|
||
|
this.appIcon = "app";
|
||
|
this.spaceImg=this.imagedir + "space.gif";
|
||
|
this.lineImg=this.imagedir + "line.gif";
|
||
|
this.plusImg=this.imagedir + "plus.gif";
|
||
|
this.minusImg=this.imagedir + "minus.gif";
|
||
|
this.emptyImg=this.imagedir + "blank.gif";
|
||
|
this.plusImgLast=this.imagedir + "plusl.gif";
|
||
|
this.minusImgLast=this.imagedir + "minusl.gif";
|
||
|
this.emptyImgLast=this.imagedir + "blankl.gif";
|
||
|
this.stateImg=new Array();
|
||
|
this.stateImg[0]=this.imagedir + "stop.gif";
|
||
|
this.stateImg[1]=this.imagedir + "go.gif";
|
||
|
this.stateImg[2]=this.imagedir + "pause.gif";
|
||
|
|
||
|
// Instant State
|
||
|
this.displaystate=new Array();
|
||
|
this.displaystate[0]="";
|
||
|
this.displaystate[2]="";
|
||
|
this.displaystate[4]="<%= L_STOPPEDDISP_TEXT %>";
|
||
|
this.displaystate[6]="<%= L_PAUSEDDISP_TEXT %>";
|
||
|
|
||
|
this.state=new Array();
|
||
|
this.state[4]="<%= L_STOPPED_TEXT %>";
|
||
|
this.state[2]="<%= L_STARTED_TEXT %>";
|
||
|
this.state[1]="<%= L_STARTING_TEXT %>";
|
||
|
this.state[3]="<%= L_STOPPING_TEXT %>";
|
||
|
|
||
|
// ID of selected item
|
||
|
this.selId=0;
|
||
|
this.selName="";
|
||
|
this.selSType="";
|
||
|
this.selVType="";
|
||
|
|
||
|
//$ Multi-select
|
||
|
this.selCount = 1;
|
||
|
<% if Session(STR_SUPPORT_MULTI_SELECT) then %>
|
||
|
this.bSupportMultiSelect = true;
|
||
|
this.selList = new Array();
|
||
|
this.selList[0] = 0;
|
||
|
<% else %>
|
||
|
this.bSupportMultiSelect = false;
|
||
|
<% end if %>
|
||
|
|
||
|
//Help
|
||
|
this.helpFileName="iipxmain.htm";
|
||
|
this.helpDir="<%= Request.ServerVariables("SERVER_NAME") %>/iishelp/iis/htm/core/"
|
||
|
|
||
|
|
||
|
// Other Flags
|
||
|
this.showState=false;
|
||
|
this.dontAsk=false;
|
||
|
this.updated=false;
|
||
|
this.homeurl=top.location.href;
|
||
|
this.siteProperties = false;
|
||
|
this.working = false;
|
||
|
|
||
|
//Global var to hold the window object, so we can refer to the current window from a parent frame.
|
||
|
this.popwindow = null;
|
||
|
}
|
||
|
|
||
|
function nodeListInterfaceDef()
|
||
|
{
|
||
|
this.selectItem = selectItem;
|
||
|
<% if Session(STR_SUPPORT_MULTI_SELECT) then %>
|
||
|
this.selectMulti = selectMulti;
|
||
|
<% end if %>
|
||
|
}
|
||
|
var nodeListInterface = new nodeListInterfaceDef();
|
||
|
|
||
|
<% if Session(STR_SUPPORT_MULTI_SELECT) then %>
|
||
|
function selectMulti( index )
|
||
|
{
|
||
|
if( nodeList[index].selected == true )
|
||
|
{
|
||
|
selectRemove( index );
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
selectAdd( index );
|
||
|
}
|
||
|
Global.selId = Global.selList[0];
|
||
|
}
|
||
|
|
||
|
function selectAdd( index )
|
||
|
{
|
||
|
nodeList[index].selected = true;
|
||
|
Global.selList[Global.selCount++] = index;
|
||
|
}
|
||
|
|
||
|
function selectRemove( index )
|
||
|
{
|
||
|
if( Global.selCount > 0 )
|
||
|
{
|
||
|
var i, j;
|
||
|
for( i = 0; i < Global.selCount; i++ )
|
||
|
{
|
||
|
if( Global.selList[i] == index )
|
||
|
{
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
if( i < Global.selCount )
|
||
|
{
|
||
|
nodeList[Global.selList[i]].selected = false;
|
||
|
for( j = i + 1; j < Global.selCount; j++ )
|
||
|
{
|
||
|
Global.selList[j-1] = Global.selList[j];
|
||
|
}
|
||
|
Global.selCount--;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function selectItem( item )
|
||
|
{
|
||
|
// Deselect all currently selected items
|
||
|
for( var i = 0; i < Global.selCount; i++ )
|
||
|
{
|
||
|
nodeList[Global.selList[i]].selected = false;
|
||
|
}
|
||
|
|
||
|
// Select the new item
|
||
|
nodeList[item].selected = true;
|
||
|
Global.selId = Global.selList[0] = item;
|
||
|
Global.selCount = 1;
|
||
|
}
|
||
|
<% else %>
|
||
|
function selectItem(item)
|
||
|
{
|
||
|
nodeList[Global.selId].selected=false;
|
||
|
Global.selId=item;
|
||
|
nodeList[item].selected=true;
|
||
|
}
|
||
|
<% end if %>
|
||
|
|
||
|
function openLocation(){
|
||
|
|
||
|
//opens the property sheet for the selected node,
|
||
|
//regardless of service type or node type. this
|
||
|
//script calls iiset.asp which sets the appropriate
|
||
|
//session variables for server side persistance throughout
|
||
|
//the property sheet
|
||
|
|
||
|
var path;
|
||
|
var sel=Global.selId;
|
||
|
Global.selName=nodeList[sel].title;
|
||
|
Global.selSType=nodeList[sel].stype;
|
||
|
Global.selVType=nodeList[sel].vtype;
|
||
|
|
||
|
top.body.iisstatus.location.href=("iistat.asp?thisState=Loading");
|
||
|
|
||
|
path="stype=" + Global.selSType;
|
||
|
path=path + "&vtype=" + Global.selVType;
|
||
|
path=path + "&title=" +escape(nodeList[sel].title);
|
||
|
|
||
|
if (nodeList[sel].vtype=="server"){
|
||
|
path=path + "&spath=" + escape(nodeList[sel].path);
|
||
|
path=path + "&dpath=" + escape(nodeList[sel].path) + "/Root";
|
||
|
}
|
||
|
else{
|
||
|
path=path + "&spath=";
|
||
|
path=path + "&dpath=" + escape(nodeList[sel].path);
|
||
|
}
|
||
|
|
||
|
page="iiset.asp?"+path;
|
||
|
|
||
|
//iiset.asp sets the serverside session variables...
|
||
|
|
||
|
top.connect.location.href=(page);
|
||
|
}
|
||
|
|
||
|
|
||
|
function sortOrder(a,b){
|
||
|
|
||
|
x=a.id - b.id
|
||
|
|
||
|
return x
|
||
|
}
|
||
|
|
||
|
function sortList(){
|
||
|
nodeList.sort(sortOrder);
|
||
|
}
|
||
|
|
||
|
function insertNode(title,caption,parent,vtype,stype, fIsApp){
|
||
|
|
||
|
//add a new node to the client-cached list
|
||
|
|
||
|
var nodepath;
|
||
|
var indexnum=nodeList.length;
|
||
|
var Nextid=parent+1;
|
||
|
|
||
|
// Clear the current selection before we start monkeying with
|
||
|
// the list.
|
||
|
selectItem( 0 );
|
||
|
|
||
|
if (nodeList[parent].vtype=="server"){
|
||
|
nodepath=nodeList[parent].path + "/Root/" + title;
|
||
|
}
|
||
|
else{
|
||
|
if (nodeList[parent].vtype=="comp"){
|
||
|
if (stype == "www"){
|
||
|
nodepath=nodeList[parent].path + "/W3SVC/" + title;
|
||
|
}
|
||
|
else{
|
||
|
nodepath=nodeList[parent].path + "/MSFTPSVC/" + title;
|
||
|
}
|
||
|
}
|
||
|
else{
|
||
|
nodepath=nodeList[parent].path + "/" + title;
|
||
|
}
|
||
|
}
|
||
|
title=title;
|
||
|
|
||
|
while ((nodeList.length > Nextid) && (nodeList[Nextid].parent >=parent)) {
|
||
|
if(nodeList[Nextid].parent==parent){
|
||
|
if(nodeList[Nextid].title > title){
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
Nextid=Nextid +1;
|
||
|
}
|
||
|
|
||
|
if (nodeList.length <=Nextid){
|
||
|
var newid=nodeList.length;
|
||
|
}
|
||
|
else{
|
||
|
var newid=nodeList[Nextid].id;
|
||
|
}
|
||
|
|
||
|
nodeList[indexnum]=nodeList[parent].addNode(new listObj(indexnum,caption,nodepath,vtype,4));
|
||
|
nodeList[indexnum].isCached=false;
|
||
|
nodeList[indexnum].id=newid;
|
||
|
if( fIsApp != 0 )
|
||
|
{
|
||
|
nodeList[indexnum].icon = Global.imagedir + "app";
|
||
|
nodeList[indexnum].isApp = true;
|
||
|
}
|
||
|
for (var i=newid; i < indexnum; i++) {
|
||
|
nodeList[i].id=nodeList[i].id + 1;
|
||
|
if (nodeList[i].parent >=nodeList[indexnum].id){
|
||
|
nodeList[i].parent=nodeList[i].parent +1;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
nodeList[parent].open=true;
|
||
|
|
||
|
nodeList[0].sortList();
|
||
|
nodeList[0].markTerms();
|
||
|
|
||
|
|
||
|
selectItem(newid);
|
||
|
|
||
|
top.body.list.location.href="iisrvls.asp";
|
||
|
}
|
||
|
|
||
|
function browseItem() {
|
||
|
popBox('Browse',640,480, nodeList[Global.selId].loc);
|
||
|
}
|
||
|
|
||
|
function deleteItem() {
|
||
|
// marks items in the client cached list as deleted...
|
||
|
nodeList[Global.selId].deleted=true;
|
||
|
if (Global.selId+1 !=listLength){
|
||
|
deleteChildren(Global.selId);
|
||
|
}
|
||
|
markTerms();
|
||
|
top.body.list.location="iisrvls.asp";
|
||
|
}
|
||
|
|
||
|
function deleteChildren(item){
|
||
|
var z=item+1;
|
||
|
while (nodeList[z].parent >=item) {
|
||
|
nodeList[z].deleted=true;
|
||
|
z=z+1;
|
||
|
if(z >=nodeList.length){
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
function deCache(){
|
||
|
|
||
|
//marks a node as uncached (forcing a recache when expanded)
|
||
|
//and marks all child nodes as deleted
|
||
|
|
||
|
sel=Global.selId;
|
||
|
nodeList[sel].isCached=false;
|
||
|
nodeList[sel].open=false;
|
||
|
if (sel+1 !=listLength){
|
||
|
deleteChildren(sel);
|
||
|
}
|
||
|
markTerms();
|
||
|
}
|
||
|
|
||
|
|
||
|
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
|
||
|
listLength=nodeList.length;
|
||
|
for (i=0; i < listLength; i++) {
|
||
|
nodeList[i].lastChild=isLast(i);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function isLast(item){
|
||
|
var i;
|
||
|
last=false;
|
||
|
if (item+1==listLength){
|
||
|
last=true;
|
||
|
}
|
||
|
else{
|
||
|
if (nodeList[item].parent==null){
|
||
|
last=true;
|
||
|
for (i=item+1; i < listLength; i++) {
|
||
|
if (nodeList[i].parent==null){
|
||
|
last=false;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
else{
|
||
|
last=true;
|
||
|
var y=item+1;
|
||
|
while(nodeList[y].parent >=nodeList[item].parent){
|
||
|
if(nodeList[y].parent==nodeList[item].parent){
|
||
|
if(!nodeList[y].deleted){
|
||
|
last=false;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
y=y+1;
|
||
|
|
||
|
if ((y)==listLength){
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return last;
|
||
|
}
|
||
|
|
||
|
function addNode(childNode){
|
||
|
|
||
|
//adds a new node to the tree, setting some default parameters
|
||
|
|
||
|
childNode.parent=this.id;
|
||
|
childNode.level=this.level +1;
|
||
|
|
||
|
dir="images/"
|
||
|
if (childNode.vtype=="vdir"){
|
||
|
childNode.loc=nodeList[this.id].loc + childNode.title+"/";
|
||
|
childNode.icon=dir+ "vdir";
|
||
|
}
|
||
|
else{
|
||
|
if (childNode.vtype=="dir"){
|
||
|
childNode.loc=nodeList[this.id].loc + childNode.title+"/";
|
||
|
childNode.icon=dir + "dir";
|
||
|
}
|
||
|
else{
|
||
|
if (childNode.stype=="www"){
|
||
|
childNode.loc="http://"+childNode.title+"/";
|
||
|
childNode.icon=dir +"www";
|
||
|
|
||
|
}
|
||
|
|
||
|
if (childNode.stype=="ftp"){
|
||
|
childNode.loc="ftp://"+childNode.title+"/";
|
||
|
childNode.icon=dir +"ftp";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return childNode;
|
||
|
}
|
||
|
|
||
|
function connect(){
|
||
|
serverurl=prompt("Please enter the URL of the server you wish to connect to:", "http://<%= Request.ServerVariables("SERVER_NAME") %>/iisadmin/")
|
||
|
if (serverurl !=""){
|
||
|
page="iicnct.asp";
|
||
|
top.body.iisstatus.location="iistat.asp?thisState=Loading";
|
||
|
top.connect.location=page;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function cache(item){
|
||
|
// perftest
|
||
|
// The two lines below call different tree caching scripts. To change between them
|
||
|
// simply uncomment one and comment out the other.
|
||
|
|
||
|
// page="iicache.asp?sname="+escape(nodeList[item].path)+"&Nextid="+nodeList.length+"¤tid="+item;
|
||
|
page="iicache2.asp?sname=" + escape(nodeList[item].path) + "&fspath=" + escape(nodeList[item].fspath);
|
||
|
|
||
|
<% if (browser<>"ns") then %>
|
||
|
top.body.iisstatus.location.href="iistat.asp?thisState=Loading";
|
||
|
<% end if %>
|
||
|
top.connect.location.href=page;
|
||
|
}
|
||
|
|
||
|
function loadPage(){
|
||
|
top.body.location.href='iibody.asp';
|
||
|
}
|
||
|
|
||
|
|
||
|
function inheritenceItem(property, path){
|
||
|
this.property = property;
|
||
|
this.path = path;
|
||
|
}
|
||
|
|
||
|
function iListsortOrder(a,b){
|
||
|
x=((a.property + a.path) - (b.property + b.path));
|
||
|
return x
|
||
|
}
|
||
|
|
||
|
|
||
|
function listObj(id, title, path,vtype,state){
|
||
|
|
||
|
// This is the object that represents each line item
|
||
|
// In the tree structure.
|
||
|
|
||
|
// ID is the id refered to by the parent property
|
||
|
// title is the text string that appears In the list
|
||
|
// parent is the ID of the parent list item
|
||
|
// level is the depth of the list item, 0 being the furthest left on the tree
|
||
|
// href is the location to open when selected
|
||
|
// open is a flag that determines whether children are displayed
|
||
|
// state is a flag to determine the state (4=stopped, 2=running)
|
||
|
// selected is an interenal flag
|
||
|
// openLocation is the function that opens the href file In a frame
|
||
|
//sortby will change to reflect the new sort order when a new item is added to the list.
|
||
|
|
||
|
this.id=id;
|
||
|
this.title=title;
|
||
|
this.path=path;
|
||
|
this.keytype="";
|
||
|
this.fspath="";
|
||
|
this.err="";
|
||
|
|
||
|
|
||
|
this.stype="";
|
||
|
|
||
|
if (path.indexOf("W3SVC") !=-1){
|
||
|
this.stype="www";
|
||
|
}
|
||
|
|
||
|
if (path.indexOf("FTPSVC") !=-1){
|
||
|
this.stype="ftp";
|
||
|
}
|
||
|
|
||
|
|
||
|
this.vtype=vtype;
|
||
|
|
||
|
|
||
|
this.open=false;
|
||
|
this.state=state;
|
||
|
this.displaystate = Global.displaystate[state];
|
||
|
this.isApp = false;
|
||
|
this.isCached=false;
|
||
|
this.isWorkingServer=false;
|
||
|
|
||
|
this.parent=null;
|
||
|
this.level=1;
|
||
|
this.loc="http://"+this.title;
|
||
|
dir="images/";
|
||
|
|
||
|
this.icon=dir +"comp";
|
||
|
|
||
|
this.href="blank.htm";
|
||
|
this.deleted=false;
|
||
|
this.selected=false;
|
||
|
this.lastChild=false;
|
||
|
|
||
|
//methods
|
||
|
this.openLocation=openLocation;
|
||
|
this.addNode=addNode;
|
||
|
this.insertNode=insertNode;
|
||
|
this.deleteItem=deleteItem;
|
||
|
this.deCache=deCache;
|
||
|
this.browseItem=browseItem;
|
||
|
this.markTerms=markTerms;
|
||
|
this.cache=cache;
|
||
|
this.connect=connect;
|
||
|
this.sortList=sortList;
|
||
|
this.restricted ="";
|
||
|
|
||
|
}
|
||
|
|
||
|
// Create a blank array for our set data path inheritence list
|
||
|
inheritenceList = new Array();
|
||
|
|
||
|
// Fill the nodeList array with objects.
|
||
|
// The array items will be displayed In the id # order,
|
||
|
// as Jscript has limited array sorting capabilities.
|
||
|
// Children should always follow their parent item.
|
||
|
<%
|
||
|
|
||
|
On Error Resume Next
|
||
|
Dim newid, computer, thisinstance, currentADsObj, FileSystem
|
||
|
Dim thisname
|
||
|
|
||
|
computer="localhost"
|
||
|
thisinstance=Request.ServerVariables("INSTANCE_ID")
|
||
|
|
||
|
if Session("isAdmin") then
|
||
|
|
||
|
%>
|
||
|
//the localhost
|
||
|
nodeList[0]=new listObj(0,"<%= Request.ServerVariables("SERVER_NAME") %>","IIS://<%= computer %>", "comp",1);
|
||
|
|
||
|
nodeList[0].isCached=true;
|
||
|
nodeList[0].open=true;
|
||
|
nodeList[0].selected=true;
|
||
|
|
||
|
<%
|
||
|
newid=1
|
||
|
|
||
|
%>//FTPSVC<%
|
||
|
Set currentADsObj=GetObject("IIS://" & computer & "/MSFTPSVC")
|
||
|
addInstances currentADsObj,0,"server"
|
||
|
|
||
|
%>//W3SVC<%
|
||
|
Set currentADsObj=GetObject("IIS://" & computer & "/W3SVC")
|
||
|
addInstances currentADsObj,0,"server"
|
||
|
|
||
|
else
|
||
|
Set FileSystem=CreateObject("Scripting.FileSystemObject")
|
||
|
Set currentADsObj=GetObject("IIS://" & computer & "/W3SVC/" & thisInstance)
|
||
|
thisname=currentADsObj.ServerComment
|
||
|
if thisname="" then
|
||
|
thisname="[Web Site #" & currentADsObj.Name & "]"
|
||
|
end if
|
||
|
%>
|
||
|
//the instance
|
||
|
nodeList[0]=new listObj(0,"<%= thisname %>","IIS://<%= computer %>/W3SVC/<%= thisinstance %>", "server",2);
|
||
|
nodeList[0].isWorkingServer=false;
|
||
|
nodeList[0].isCached=true;
|
||
|
nodeList[0].open=true;
|
||
|
nodeList[0].icon="images/www";
|
||
|
nodeList[0].loc="http://<%= Request.ServerVariables("SERVER_NAME") %>/";
|
||
|
|
||
|
<%
|
||
|
newid=1
|
||
|
|
||
|
addNodes currentADsObj,0,"vdir"
|
||
|
end if
|
||
|
|
||
|
Sub addInstances(Container, parentid, vtype)
|
||
|
On Error Resume Next
|
||
|
Dim thisname, Child, thisid, thisstate
|
||
|
For Each Child In Container
|
||
|
if Instr(Child.KeyType,"Server") <> 0 then
|
||
|
thisid=newid
|
||
|
thisname=Child.Name
|
||
|
thisstate=""
|
||
|
thisname=Child.ServerComment
|
||
|
if thisname="" then
|
||
|
if Instr(Child.KeyType,"Ftp") <> 0 then
|
||
|
thisname="[FTP Site #" & Child.Name & "]"
|
||
|
else
|
||
|
thisname="[Web Site #" & Child.Name & "]"
|
||
|
end if
|
||
|
end if
|
||
|
thisstate=Child.ServerState
|
||
|
|
||
|
if err=0 then
|
||
|
SetJscriptObj thisname, Child.ADsPath,parentid, vtype, thisstate, false, "",False
|
||
|
if Child.Name=Request.ServerVariables("INSTANCE_ID") then
|
||
|
if InStr(Child.ADsPath,"W3SVC") then
|
||
|
SetWorkingInstance thisid
|
||
|
end if
|
||
|
end if
|
||
|
if Child.ClusterEnabled then
|
||
|
%>
|
||
|
nodeList[<%= thisid %>].restricted="<%= L_CLUSTERSERVERUI_TEXT %>";
|
||
|
<%
|
||
|
end if
|
||
|
else
|
||
|
if err = &H800401E4 or err = 70 then
|
||
|
Response.Status = "401 access denied"
|
||
|
end if
|
||
|
end if
|
||
|
end if
|
||
|
'this child may have err'd but we need to enum the rest anyway, so we clear our error...
|
||
|
err.Clear
|
||
|
Next
|
||
|
End Sub
|
||
|
|
||
|
Sub addNodes(Container, parentid, vtype)
|
||
|
On Error Resume Next
|
||
|
Dim thisname, isApp, thisid, thisstate, thisroot, approot
|
||
|
|
||
|
For Each Child In Container
|
||
|
if Instr(Child.KeyType, "VirtualDir") <> 0 then
|
||
|
|
||
|
thisid=newid
|
||
|
thisname=Child.Name
|
||
|
thisstate=2
|
||
|
|
||
|
isApp = False
|
||
|
approot=LCase(Child.AppRoot)
|
||
|
if len(approot) <> 0 then
|
||
|
thisroot = LCase(Child.ADsPath)
|
||
|
approot = Mid(approot,Instr(approot,"w3svc/")+1)
|
||
|
thisroot = Mid(thisroot,Instr(thisroot,"w3svc/")+1) & "/"
|
||
|
if thisroot=approot then
|
||
|
isApp = True
|
||
|
end if
|
||
|
end if
|
||
|
|
||
|
|
||
|
if UCase(thisname) <> "ROOT" then
|
||
|
|
||
|
SetJscriptObj thisname, Child.ADsPath, parentid, vtype, thisstate, true, Child.Path, isApp
|
||
|
|
||
|
addNodes Child, thisid, "vdir"
|
||
|
'addDirs Child.Path, Child.ADsPath, thisid, "dir"
|
||
|
else
|
||
|
|
||
|
addNodes Child, parentid, "vdir"
|
||
|
'addDirs Child.Path, Child.ADsPath, parentid, "dir"
|
||
|
end if
|
||
|
end if
|
||
|
Next
|
||
|
End Sub
|
||
|
|
||
|
Sub addDirs(path, adspath, parentid, vtype)
|
||
|
On Error Resume Next
|
||
|
Dim thisid,thisname,thisstate,i,f, thispath
|
||
|
|
||
|
if Instr(UCase(adspath),"W3SVC") <> 0 then
|
||
|
if path <> "" then
|
||
|
if Left(path,2) <> "\\" then
|
||
|
If FileSystem.FolderExists(path) Then
|
||
|
Set f=FileSystem.GetFolder(path)
|
||
|
For Each i In f.SubFolders
|
||
|
thisid=newid
|
||
|
thisstate=2
|
||
|
thispath=adspath & "/" & i.Name
|
||
|
SetJscriptObj i.Name,thispath, parentid, vtype, thisstate, true,i, false
|
||
|
if err=0 then
|
||
|
addDirs i, thispath, thisid, "dir"
|
||
|
end if
|
||
|
Next
|
||
|
End If
|
||
|
end if
|
||
|
end if
|
||
|
end if
|
||
|
|
||
|
End Sub
|
||
|
|
||
|
|
||
|
Sub SetJscriptObj(caption, path, parentid, vtype,state, cached,fspath,isApp)
|
||
|
%>
|
||
|
nodeList[<%= newid %>]=nodeList[<%= parentid %>].addNode(new top.title.listObj(<%= newid %>,"<%= sJSLiteral(caption) %>","<%= sJSLiteral(path) %>","<%= vtype %>",<%= state %>));
|
||
|
<% if cached then %>
|
||
|
nodeList[<%= newid %>].isCached=true;
|
||
|
<% else %>
|
||
|
nodeList[<%= newid %>].isCached=false;
|
||
|
<% end if %>
|
||
|
<% if isApp then %>
|
||
|
nodeList[<%= newid %>].icon = Global.imagedir + "app";
|
||
|
nodeList[<%= newid %>].isApp = true;
|
||
|
<% end if %>
|
||
|
nodeList[<%= newid %>].fspath="<%= replace(fspath,"\","\\") %>";
|
||
|
|
||
|
<%
|
||
|
newid=newid +1
|
||
|
End Sub
|
||
|
|
||
|
Sub SetWorkingInstance(thisid)
|
||
|
%>
|
||
|
nodeList[<%= thisid %>].isWorkingServer=true;
|
||
|
<%
|
||
|
End Sub
|
||
|
%>
|
||
|
|
||
|
markTerms();
|
||
|
|
||
|
</script>
|
||
|
|
||
|
</head>
|
||
|
|
||
|
<body Background="images/cube.gif" text="#FFFFFF" topmargin="0" leftmargin="0" onload="loadPage();" onunload="unload_popwindow();">
|
||
|
|
||
|
<table width="100%" cellpadding="0" cellspacing="0" border="0" align="LEFT">
|
||
|
<tr>
|
||
|
<td>
|
||
|
<IMG SRC="images/Ismhd.gif" WIDTH=189 HEIGHT=19 BORDER=0 alt="<%= L_ISM_TEXT %>" HSPACE=0 VSPACE=0>
|
||
|
</td>
|
||
|
|
||
|
<td align="right" valign="middle">
|
||
|
<%= sFont("","","#FFFFFF",True) %>
|
||
|
|
||
|
<a href="http://<%= Request.ServerVariables("SERVER_NAME") %>/iishelp/iis/misc/default.asp" target="window">
|
||
|
<IMG SRC="images/Doc.gif" WIDTH=16 HEIGHT=16 BORDER=0 ALT="<%= L_DOCS_TEXT %>">
|
||
|
</A>
|
||
|
|
||
|
<a href="javascript:helpBox();">
|
||
|
<IMG SRC="images/help.gif" WIDTH=16 HEIGHT=16 BORDER=0 ALT="<%= L_HELP_TEXT %>">
|
||
|
</A>
|
||
|
</FONT>
|
||
|
</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
<form name="hiddenform">
|
||
|
<input type="hidden" name="slash" value="\">
|
||
|
</form>
|
||
|
|
||
|
</body>
|
||
|
</html>
|
||
|
|
||
|
|
||
|
|