I'll give it a try:
-We use custom reports
-An IIS server to publish the pages (including the scripts and images)
-We use
overlib to generate extra information for every test. This extra information is mostly contained in the commentlines for every test, see below.
We use a different script for the main menu. Don't know where I found it, but somewhere from 'the internet'

I haven't changed the script name, so if you search for it, I'm sure you'll find it.
The IIS Server contains:
<SERVER>/images/
<SERVER>/images/good.gif
<SERVER>/images/bad.gif
<SERVER>/images/unknown.gif
<SERVER>/images/wait.gif
<SERVER>/images/schedule.gif
<SERVER>/images/nottested.gif
<SERVER>/images/disabled.gif
All images have a 11x11 pixels size.
<SERVER>/scripts/overlib_mini.js
<SERVER>/scripts/nwrmenu_var.js
<SERVER>/scripts/menu_com.js
The last two are used for the main menu......
Folder structure inside HostMonitor:
Root\Department\Customer\server1
Root\Department\Customer\server2
Root\Department\Customer\server3
Comment lines for every test:
-CommentLine1 - Type of test
-CommentLine2 - server name
-CommentLine3 - Item used for the test
-CommentLine4 - Extra information if available
-CommentLine5 - Ip address
-CommentLine6 - Customer name
In the code:
<SERVER> = full dns server name.
<dep1> = Name of first department.
This is the "header" tab in the custom report....
Code: Select all
<html><head>
<META http-equiv="Content-Style-Type" content="text/css">
<title>HostMonitor report</title>
<STYLE TYPE="text/css"><!-- a:hover { color: "#00FFFF"; } --> </STYLE>
<script language="JavaScript">
<!--
var d= new Date();
var time;
time = Math.random();
function move() {
window.location = 'http://<SERVER>/<dep1>/%Folder%.htm?' + time;
}
function CreateMenu() {
document.write(
'<font face="Arial"><br>' +
'<b>Microsoft Server Management</b> - ' +
'<a href="/<dep1>/%Folder%.htm?' + time + '" style="color: #7BFC16">Good: %GoodTests%</a> - ' +
'<a href="/<dep1>/%Folder%-bad.htm?' + time + '" style="color: #FF2126">Bad: %BadTests%</a> - ' +
'<a href="/<dep1>/%Folder%-unknown.htm?' + time + '" style="color: #E47607">Unknown: %UnknownTests%</a>' +
'<hr></font>'
)
}
function C(str_image, str1, str2, str3) {
document.write('<input type=image src="../images/' + str_image + '.gif" onmouseover="return overlib(\'Reply: ' + str1 + '\', CAPTION, \'' + str2 + '\', WIDTH, 300);" onmouseout="return nd();" onclick="window.open(\'./' + str3 + '.htm\' , \'_self\')">')
}
function WriteFooter() {
var ActiveTests=%GoodTests%+%UnknownTests%+%BadTests%+%WaitForMasterTests%;
var NotTested=%TotalTests%-%GoodTests%-%UnknownTests%-%BadTests%-%WaitForMasterTests%-%OutOfScheduleTests%-%DisabledTests%;
document.write(
'<hr><table width="100%"><tr>' +
'<td><img src="../images/good.gif"> = Good (%GoodTests%)</td>' +
'<td><img src="../images/bad.gif"> = Bad (%BadTests%)</td>' +
'<td><img src="../images/unknown.gif"> = Unknown (%UnknownTests%)</td>' +
'<td><img src="../images/wait.gif"> = Wait for Master (%WaitForMasterTests%)</td>' +
'<td><img src="../images/schedule.gif"> = Out of Schedule (%OutOfScheduleTests%)</td>' +
'<td><img src="../images/nottested.gif"> = Not Tested (' + NotTested + ')</td>' +
'<td><img src="../images/disabled.gif"> = Disabled (%DisabledTests%)</td>' +
'</table><hr><font face="Arial">' +
'<table width="100%" align="center">' +
'<td><a href="http://www.ks-soft.net/">Advanced Hostmonitor</a></td>' +
'<td><i>Generated on %Date% at %Time%</i></td>' +
'<td><font style="color:YELLOW">Total tests defined:</font><font style="color:White">%TotalTests%</font></td>' +
'<td><font style="color:YELLOW">Total tests active:</font><font style="color:LightGreen">' + ActiveTests + '</font></td>' +
'<td><input type=image src="../images/help.gif" alt="Click to open the help page..." onclick="window.open(\'../help/help.htm\', \'_blank\')"</td>'
)
}
//-->
</script>
</head>
<body onload="timer=setTimeout('move()',60000)" bgcolor="#000000" text="#E9E9E9" link="#00FFFF" vlink="#00FFFF" alink="#00FFFF">
<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
<script language="JavaScript" src="../scripts/overlib_mini.js"></script>
<script type='text/javascript' src='../scripts/nwrmenu_var.js'></script>
<script type='text/javascript' src='../scripts/menu_com.js'></script>
<script language="JavaScript">
<!--
CreateMenu();
The test items tab, contains a function call for every type of status possible for the tests. C is a function, declared at the header tab. This is a call to a document write, to create the image entry on the main page. Every test result has it's own picture, so it's own line of code.
Code: Select all
C('good','%Reply%','%CommentLine2%|%CommentLine1%|%CommentLine3%|%CommentLine4%','%CommentLine6%');
C('bad','%Reply%','%CommentLine2%|%CommentLine1%|%CommentLine3%|%CommentLine4%','%CommentLine6%');
C('unknown','%Reply%','%CommentLine2%|%CommentLine1%|%CommentLine3%|%CommentLine4%','%CommentLine6%');
C('wait','%Reply%','%CommentLine2%|%CommentLine1%|%CommentLine3%|%CommentLine4%','%CommentLine6%');
C('schedule','%Reply%','%CommentLine2%|%CommentLine1%|%CommentLine3%|%CommentLine4%','%CommentLine6%');
C('nottested','%Reply%','%CommentLine2%|%CommentLine1%|%CommentLine3%|%CommentLine4%','%CommentLine6%');
C('disabled','%Reply%','%CommentLine2%|%CommentLine1%|%CommentLine3%|%CommentLine4%','%CommentLine6%');
Now we only have to close the page, so the 'footer' tab will look like:
Code: Select all
WriteFooter();
-->
</script>
</body>
</html>
All other tabs of the custom reports are empty. If everything is set up the way we did, you will have a main page with each 11x11 pixels image representing a single test and the page will be reloaded every 60 seconds. Clicking one of the small images will link you to the next page. This is in our case a page with more details about the tests.