Leaked source code of windows server 2003
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.
 
 
 
 
 
 

530 lines
21 KiB

<!--
* Copyright 1998 Microsoft Corporation. All rights reserved.
* This file was automatically generated by Microsoft Windows NT5
* using the file %THISDIRPATH%\folder.htt (if customized) or
* %TEMPLATEDIR%\folder.htt (if not customized).
-->
<html>
<!--
<link rel=stylesheet href="%TEMPLATEDIR%\webview.css" title="Windows">
-->
<style>
body {margin: 0; font: menu; color: black}
#Panel {position: absolute; width: 200px; height: 100%; visibility: hidden; overflow: auto}
#Corner {padding-left: 12px; padding-top: 11px}
#FolderIcon {width: 32px; height: 32px}
#FolderName {margin-top: 8px; font: 13pt/13pt; font-weight: bold}
#LogoLine {width: 100%; margin-top: 4px; vertical-align: top}
#Details {padding-left: 12px; margin-top: 8px}
#Locked {vertical-align: baseline}
#Preview {}
.Movie {width: 120px; height: 136px}
.Sound {width: 120px; height: 46px}
#Thumbnail {width: 120px; height: 120px}
.Legend {margin-left: 12px; margin-right: -12px}
#PieChart {width: 120px; height: 60px; margin-top: 10px}
#FileList {position: absolute; left: 200px; width: 100% - 200px; height: 100%; tabIndex: 1}
#Brand {position: absolute; left: 200px; width: 100% - 200px; height: 100%; padding-left: 12px}
p {margin-top: 12px}
p.Half {margin-top: 6px}
button {font: 8pt Tahoma; margin-left: 12px; background: white; color: black}
#GlobalNav {position: absolute; left: 10px; top: 250px; width: 170px; height: 20px; padding-left: 0px; font: 8pt Tahoma}
</style>
<head>
<base href="%THISDIRPATH%\">
</head>
<!--
<script language="JavaScript" src="%TEMPLATEDIR%\WebView.js">
-->
<script language="JavaScript">
// THIS SCRIPT IS COMMON FOR ALL CUSTOM WEB VIEWS
var L_Prompt_Text = "All users have access to Documents on Our Server. Access to folders within Documents on Our Server can be restricted using folder security.";
var L_Empty_Text = "There are no documents to show in this folder.";
var L_Multiple_Text = " items selected.";
var L_Size_Text = "Size: ";
var L_FileSize_Text = "Total File Size: ";
var L_Delimiter_Text = ",";
var L_Bytes_Text = "&nbsp;bytes";
var L_Properties_Text = "P&roperties";
var L_Today_Text = "Today at";
var L_Yesterday_Text = "Yesterday at";
var L_Preview_Text = "Generating preview...";
var L_TotalSize_Text = "Capacity: ";
var L_UsedSpace_Text = "Used: ";
var L_FreeSpace_Text = "Free: ";
var L_Attributes_Text = "Attributes";
var L_Codes_Text = "RHSaCE"; // suppress the Archive flag
var L_ReadOnly_Text = "Read-only";
var L_Hidden_Text = "Hidden";
var L_System_Text = "System";
var L_Archive_Text = "Archive";
var L_Compressed_Text = "Compressed";
var L_Encrypted_Text = "Encrypted";
var L_NoAttributes_Text = "(normal)";
var gAttributeNames = new Array(L_ReadOnly_Text, L_Hidden_Text, L_System_Text, L_Archive_Text, L_Compressed_Text, L_Encrypted_Text);
var gIntroText = "";
var gTimer = 0;
var gWantMedia = false; // cool, but may hinder media file manipulation
var gDoBlends = false && (navigator.cpuClass != "Alpha" && screen.colorDepth > 8);
var gToday;
var gYesterday;
var gFolder;
var gFolderPath;
var gFoundAuthor;
var gFolderName;
function FormatDetail(label, data) {
var s;
if (label.length + data.length > 32)
s = "<p>" + label + ":<br>" + data;
else
s = "<p>" + label + ": " + data;
return s;
}
function ShowInfo() {
// updates the left info panel when you select icons
var item;
var name;
var data;
var text;
var title;
var size = 0;
var i;
if (gDoBlends) {
Panel.filters.blendTrans.Stop();
Panel.filters.blendTrans.Apply();
}
// kill any preview
Preview.innerHTML = "";
Preview.style.display = "none";
Thumbnail.style.height = 120;
Thumbnail.style.display = "none";
// disable Change Security Folder button
buttonChangeFolderSecurity.disabled = true;
data = FileList.SelectedItems().Count;
if (data == 0)
text = NoneSelected()+"<p>";
else if (data > 1)
text = ManySelected(data);
else {
item = FileList.SelectedItems().Item(0);
// name
name = FileList.Folder.GetDetailsOf(item, 0);
if (!name)
name = item.Name;
if (IsBrowsable(item)){
text = "<b>" + name + "</b>";
//text = "<b>" + name.link(item.Path) + "</b>";
//text = "";
}
else{
text = "<b>" + name + "</b>";
//text = "";
}
if (false && IsFileLocked(FileList.Folder.GetDetailsOf(item, 4)))
text += "&nbsp;&nbsp;<img id=Locked src='res://webview.dll/Locked.gif'>";
// type
data = FileList.Folder.GetDetailsOf(item, 2);
if (data) {
text += "<br>" + data;
// if folder enable Change Folder Security button
if (data == "File Folder") {
gFolderName = name;
buttonChangeFolderSecurity.disabled = false;
}
}
// date
text += HandleDate(item);
// size
text += HandleSize(item);
// extra details?
gFoundAuthor = false;
for (i = 4; i < 10; i++) {
title = FileList.Folder.GetDetailsOf(null, i);
if (!title)
break;
data = FileList.Folder.GetDetailsOf(item, i);
if (title == L_Attributes_Text) {
//text += "<p>" + title + ": " + FormatAttributes(data);
}
else if (data) {
if (title == "Author") {
gFoundAuthor = true;
//text += "<p>" + title + ": <a href='mailto:" + data + "'>" + data + "</a>";
} else
if (i == 9) {
text += "<p>" + data;
//text += FormatDetail(title, data);
}
}
}
//if (GetFileExtension(name) != "exe") {
// gFolderSelected = true;
// gFolderName = name;
//} else
// gFolderSelected = false;
// comment?
text += HandleComment(item);
// try to generate a new thumbnail or media preview
if (item.Size)
if (Thumbnail.displayFile(item.Path))
gTimer = window.setTimeout('Preview.innerHTML = "<br>" + L_Preview_Text; Preview.style.display = ""', 1000);
else if (gWantMedia) {
ext = GetFileExtension(name);
if (IsMovieFile(ext))
Preview.innerHTML = '<p><object class=Movie classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"><param name="FileName" value="' + item.Path + '"><param name=ShowDisplay value=0><param name=AutoPlay value=0></object>';
else if (IsSoundFile(ext))
Preview.innerHTML = '<p><object class=Sound classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"><param name="FileName" value="' + item.Path + '"><param name=ShowDisplay value=0><param name=AutoPlay value=0></object>';
if (Preview.innerHTML != "")
Preview.style.display = "";
}
}
// replace Info with the new text
Info.innerHTML = text;
if (gDoBlends)
Panel.filters.blendTrans.Play();
}
function FormatNumber(n) {
var s = "";
var i, j = 0;
for (i = n.length - 1; i >= 0; i--) {
s = n.charAt(i) + s;
if (i && ((++j % 3) == 0))
s = L_Delimiter_Text + s;
}
return s;
}
function HandleSize(item) {
var s = "";
var size = item.Size;
if (size && size < 1000)
s = "<p>" + L_Size_Text + size + L_Bytes_Text;
else {
var data = FileList.Folder.GetDetailsOf(item, 1);
if (data)
s = "<p>" + FileList.Folder.GetDetailsOf(null, 1) + ": " + data;
else if (size)
s = "<p>" + L_Size_Text + FormatNumber(size.toString()) + L_Bytes_Text;
}
return s;
}
function FormatDate(s) {
var d = new Date(s);
d = d.toLocaleString();
d = d.substring(0, d.indexOf(' '));
if (d == gToday || d == gYesterday) {
var sTime = s.substring(s.indexOf(' '), s.length);
if (d == gToday)
s = L_Today_Text + sTime;
else
s = L_Yesterday_Text + sTime;
}
return s;
}
function HandleDate(item) {
var s = "";
var data = FileList.Folder.GetDetailsOf(item, 3);
if (data)
s = "<p>" + FileList.Folder.GetDetailsOf(null, 3) + ": " + FormatDate(data);
return s;
}
function FormatAttributes(data) {
var s = "";
var code;
for (i = 0; i < L_Codes_Text.length; i++) {
code = L_Codes_Text.charAt(i);
if (data.indexOf(code) > -1) {
if (s)
s += ", ";
s += gAttributeNames[i];
}
}
if (!s)
s = L_NoAttributes_Text;
return s;
}
function FormatComment(data) {
var s = "";
if (data) {
var start;
var end;
var theLink;
var a = data.split("\n");
var L_Author_Text = "Author: ";
// look for a contact
for (var i in a) {
start = a[i].indexOf(L_Author_Text);
if (start < 0)
continue;
if (gFoundAuthor) // already in Details column
a[i] = "";
else {
start += L_Author_Text.length;
end = a[i].length;
theLink = data.substring(start, end);
a[i] = L_Author_Text + "<a href='mailto:" + theLink + "'>" + theLink + "</a>";
}
}
// parse lines for Office files without breaking links below
data = a.join("<br>\n");
// look for embedded links
start = data.indexOf("http://");
if (start < 0)
start = data.indexOf("file://");
if (start < 0)
s += data;
else {
end = data.indexOf(" ", start);
if (end < 0)
end = data.length;
if (start > 0)
s += data.substring(0, start - 1);
theLink = data.substring(start, end);
s += theLink.link(theLink);
if (end < data.length)
s += data.substring(end + 1, data.length);
}
}
return s;
}
function HandleComment(item) {
var s = "";
var data = FileList.Folder.GetDetailsOf(item, -1);
if (data && data != item.Name)
s = "<p>" + FormatComment(data);
return s;
}
function Properties() {
FileList.SelectedItems().Item(0).InvokeVerb(L_Properties_Text);
}
function GetFileExtension(name) {
var ext = name.substring(name.lastIndexOf(".") + 1, name.length);
return ext.toLowerCase();
}
function IsBrowsable(item) {
if (item.IsBrowsable || item.IsFolder)
return true;
var ext = GetFileExtension(item.Path);
var types = "gif,jpg,htm,txt,rtf"
return types.indexOf(ext) > -1;
}
function IsMovieFile(ext) {
var types = "avi,mov,qt,mpe,mpeg,mpg";
return types.indexOf(ext) > -1;
}
function IsSoundFile(ext) {
var types = "aif,aifc,aiff,au,mid,rmi,snd,wav";
return types.indexOf(ext) > -1;
}
function IsFileLocked(name) {
return (name.indexOf(L_Codes_Text.charAt(0)) > -1);
}
function NoneSelected() {
// var s = gIntroText + (FileList.Folder.Items().Count ? L_Prompt_Text : L_Empty_Text);
var s = gIntroText + L_Prompt_Text;
if (false || gFolderPath.length == 4) { // true allows all subfolders to show the pie chart
drive = gFolderPath.substring(0, 3);
if (Thumbnail.displayFile(drive)) {
if (gFolderPath.length == 4)
s += "<p><br>" + L_TotalSize_Text + Thumbnail.totalSpace + "<p>";
else
s += "<p><br>" + drive.link(drive) + "<p><p>" + L_TotalSize_Text + Thumbnail.totalSpace;
s += "<p><table class=Legend width=12 height=12 border=1 align=left bgcolor=threedface bordercolordark=black bordercolorlight=black><tr><td></td></tr></table>&nbsp;" + L_UsedSpace_Text + Thumbnail.usedSpace;
s += "<p><table class=Legend width=12 height=12 border=1 align=left bgcolor=threedhighlight width=12 height=12 border=1 align=left bordercolordark=black bordercolorlight=black><tr><td></td></tr></table>&nbsp;" + L_FreeSpace_Text + Thumbnail.freeSpace;
//Thumbnail.style.height = 60;
Thumbnail.style.display = "";
}
}
return s;
}
function ManySelected(items) {
var s = items + L_Multiple_Text + "<p>";
var size = 0;
if (items <= 100) {
for (var i = 0; i < items; i++)
size += FileList.SelectedItems().Item(i).Size;
if (size)
s += L_FileSize_Text + FormatNumber(size.toString()) + L_Bytes_Text + "<p>";
if (items <= 16)
for (i = 0; i < items; i++)
s += FileList.SelectedItems().Item(i).Name + "<br>";
}
return s;
}
// EVENTS
function Resize() {
if (document.body.clientWidth < Panel.style.pixelWidth * 2) {
Panel.style.visibility = "hidden";
FileList.style.pixelLeft = 0;
} else {
Panel.style.visibility = "visible";
FileList.style.pixelLeft = Panel.style.pixelWidth;
}
FileList.style.pixelWidth = document.body.clientWidth - FileList.style.pixelLeft;
}
function ThumbnailReady() {
window.clearTimeout(gTimer);
Preview.innerHTML = "";
Preview.style.display = "none";
if (Thumbnail.haveThumbnail())
Thumbnail.style.display = "";
}
// INITIALIZATION
function Initialize(introText) {
gIntroText = introText;
gFolder = FileList.Folder;
gFolderPath = Info.innerHTML;
Info.innerHTML = NoneSelected();
// fix styles
var L_SystemFont1_Text = "MS Sans Serif";
var L_SystemFont2_Text = "MS Shell Dlg";
var L_SystemFont_Text = "Tahoma, Verdana";
var tr = document.body.createTextRange();
if (navigator.cpuClass != "Alpha") {
tr.collapse();
var actualFont = tr.queryCommandValue("FontName");
if (actualFont == L_SystemFont1_Text || actualFont == L_SystemFont2_Text)
document.body.style.fontFamily = L_SystemFont_Text;
} else
document.body.style.fontFamily = L_SystemFont_Text;
// init relative dates
gToday = new Date();
gToday = gToday.toLocaleString();
gToday = gToday.substring(0, gToday.indexOf(' '));
gYesterday = new Date(Date.parse(gToday) - (1000 * 60 * 60 * 24));
gYesterday = gYesterday.toLocaleString();
gYesterday = gYesterday.substring(0, gYesterday.indexOf(' '));
// call our Resize() function whenever the window gets resized
window.onresize = Resize;
}
function newFolder()
{
var fso = new ActiveXObject("Scripting.FileSystemObject");
var a = fso.CreateFolder("g:\\NewFolder");//We need IE4 to use this but it is needed for Web View anyway.
}
function changeFolderSecurity() {
Properties();
// FileList.Folder.Application.ShellExecute("\\\\appliance1\\Documents\\Change security.exe", gFolderName);
}
function manageOurServer() {
window.location = "http://appliance1/chameleon"
}
</script>
<script language="JavaScript">
function Load() {
Initialize("");
Resize();
// FileList.focus();
}
</script>
<script language="JavaScript" for="Thumbnail" event="OnThumbnailReady">
ThumbnailReady();
</script>
<script language="JavaScript" for="FileList" event="SelectionChanged">
window.clearTimeout(gTimer);
gTimer = window.setTimeout("ShowInfo()", gDoBlends ? 500 : 0); // need actual double-click time
</script>
<body scroll=no onload=Load()>
<div id=Panel style="background: white URL(file://\\appliance1\documents\logo51.gif) no-repeat">
<div id=Corner>
<object id=FolderIcon classid="clsid:E5DF9D10-3B52-11D1-83E8-00A0C90DC849" width=32 height=32>
<param name="scale" value=100>
</object>
<br>
<div id=FolderName>
%THISDIRNAME%
</div>
on Our Server
<p><br>
</div>
<!--<img id=LogoLine src="%TEMPLATEDIR%\wvline.gif">-->
<div id=Details>
<span id=Info>
%THISDIRPATH%
</span>
<!-- HERE'S A GOOD PLACE TO ADD A FEW LINKS OF YOUR OWN -->
<p>
To create a new folder, click:
<button accessKey='N' onClick='newFolder()' style='width: 130'>New Folder</button>
<p>
To change the security of a folder, select the folder and click:
<button name="buttonChangeFolderSecurity" accessKey='C' onClick='changeFolderSecurity()' style='width: 130' Disabled>Change Folder Security</button>
<p>
To manage Our Server, click:
<button accessKey='S' onClick='manageOurServer()' style='width: 130'>Manage Our Server</button>
<p>
<p class=Half>
<div id=Preview style="display: none">
</div>
<br>
<object id=Thumbnail classid="clsid:1D2B4F40-1F10-11D1-9E88-00C04FDCAB92" style="display: none">
</object>
</div>
</div>
<object id=FileList tabindex=1 border=0 classid="clsid:1820FED0-473E-11D0-A96C-00C04FD705A2">
</object>
</body>
</html>