[Date Prev] [Date Next] | [Thread Prev] [Thread Next] | [Date Index] [Thread Index] |
Re: [nocol-users] genweb.pl & background color
|
Hi, thanks for all tips about changing the background color. The best solution (without to much work :-)) so far is John Stumles patch for genweb.pl, it doesn't change the background color but it's shows very clear when there is a problem. Regards Stefan Johansson John Stumbles wrote: > > On Wed, 8 Mar 2000, Stefan Johansson wrote: > > > Hi, > > > > I would like to change the background color in the > > warning|error|critical.html files > > in case of a monitored deviced goes down ... > > this will only make any sense in the warning and error displays: > in critical _everything_ will be red (or whatever colour you choose). This > colour-state mapping feature would be more useful, IMO, for the info page, > but that is not currently generated as a table and will be slightly more > work to implement (and I'm supposed to be doing 101 other things right now > :-) > > > Have anyone done this ? > > If you have, I would be very interested :-) > > (On Friday I posted a rather unsatisfactory solution, in that > the text colours were practically unreadable against the red background of > critical devices.) Here is a replacement for sub print_row which sets > both background and text colours according to device state. BTW my copy of > genweb may be rather old: I'm running 4.2.2beta1 > > #------------------------------------------------------------ > ## Write out one row of data. > # Alternates the row colors. Also, if the event is new (less than 5 minutes > # old), it sets the button background to yellow. > # If $lvl is 'Info', then does not write out in table format so that the > # size of the data file is small. > # > sub print_row > { > my ($i, $lvl) = @_; > my $ifnewbg = ''; # new background if new event > > my $cnt = $cnt{$lvl}; # the row count > my $RED = '#FF0000'; > my $ORANGE = '#FF9900'; > my $YELLOW = '#FFFF00'; > my $BLACK = '#000000'; > my $WHITE = '#FFFFFF'; > my $GREY = '#AAAAAA'; > my (@rowcolor) = ( > $RED, # 1 critcal > $ORANGE, # 2 error > $YELLOW, # 3 warning > ); # row colours for different severities > my (@textcolour) = ( > "$WHITE", # 1 critcal > "$BLACK", # 2 error > "$BLACK", # 3 warning > ); # row colours for different severities > > my $thispage = "${baseurl}${lvl}.html"; > my $action = $levels[$ilevels{$lvl}]; > my $ADMINMODE = ($lvl eq "User") ? 0 : 1; # No href links for userPage > > # the data is already clean since the new nocollib.pl uses 'A' to unpack > # which strips out all the nulls. > # &clean_data($i); # delete unwanted characters (not needed anymore) > > my $update = ($updates{"$sitename{$i}:$siteaddr{$i}:$varname{$i}"} or '') ; > #if ($update eq "") {$update = $updates{"$sitename{$i}:$siteaddr{i}"}; } > #if ($update eq "") {$update = $updates{"$sitename{$i}"}; } > > # hide if Critical display > return if $update =~ /^\(H\)/ && $action eq 'Critical'; > > my $siteHREF = qq(<A HREF="$processor?displaylevel=$action); > $siteHREF .= "&sitename=$sitename{$i}&siteaddr=$siteaddr{$i}"; > $siteHREF .= "&variable=$varname{$i}&sender=$sender{$i}"; > $siteHREF .= qq(&command=Updates&return=$thispage">); > > if ($compactInfo && ($lvl eq "Info")) > { > # need to put the href in front of the sitename, but we dont want > # the sitename to be prepended with underlined blanks. i.e. convert > # '<a href="xx"> site</a>' INTO ' <a href="xx">site</a>' > my $site = sprintf "%14.14s", $sitename{$i}; # printing size > $site =~ s|(\S+)|$siteHREF$1| ; > $site .= "</a>"; > printf "%3d %1.1s %s %-15.15s %12.12s= %-8lu %02d/%02d %02d:%02d %s\n", > $cnt, $levels[$severity{$i}], $site, > $siteaddr{$i}, $varname{$i}, $varvalue{$i}, > $mon{$i},$day{$i},$hour{$i},$z1[$min{$i}], $update; > return; > } > > ## see if this is a recent event (less than 5 minutes old) > if ($mon == $mon{$i} && $mday == $day{$i} && > (($hour * 60) + $min) - (($hour{$i} * 60) + $min{$i}) < $neweventAge) > { > ++$newevents{$lvl}; # total displayed in Messages > $ifnewbg = "bgcolor=yellow"; # background of the little button > } > > # construct a <font face=... size=... color=...> tag, with colour to contrast with row colour for this severity level > my $font_tag = sprintf qq (<font face="arial,helvetica" size="%s" color="%s">), $tfontsize, $textcolour[$severity{$i}-1] ; > > my $tdstart = qq(<td nowrap align="left">$font_tag ) , > > my $tdend = qq(</font> </td> > <td bgcolor="$GREY" width=1><img src="${emptyimg}" alt=" "></td>\n); > > ## begin the row of data > # ser-no severity sitename address variable+value > > print qq(<TR bgcolor="$rowcolor[$severity{$i}-1]">\n); > > print "<td $ifnewbg><font>"; > if ($ADMINMODE) { print "$siteHREF"; } > print qq(<img src="$level_imgs[$severity{$i}]" alt="" border="0">); > if ($ADMINMODE) { print "</a>"; } > print $tdend; > > my $siteName = $sitename{$i}; > if ($ADMINMODE) > { > $siteHREF =~ s/command\=Updates/command\=SiteHelp/; # change the command > # $siteName = "sprintf qq(%s<font color="%s">%s</font></a>), $siteHREF, $tfontcolour ,$sitename{$i} ; > $siteName = $siteHREF . $font_tag . $sitename{$i} . '</font></a>' ; > } > > print <<EoRow ; > $tdstart $cnt $tdend > $tdstart $levels[$severity{$i}] $tdend > $tdstart $siteName $tdend > $tdstart $siteaddr{$i} $tdend > <td nowrap align=right>$font_tag > $varname{$i}= $varvalue{$i} > $tdend > <td nowrap align=right $ifnewbg>$font_tag > $mon{$i}/$day{$i} $hour{$i}:$z1[$min{$i}] $tdend > EoRow > > if ($ADMINMODE || $userViewUpdates) {print "$tdstart $update $tdend"; } > print "</tr>"; # end of row > } # printline() > > regards, > > -- > John Stumbles j.d.stumbles@reading.ac.uk > I.T. Services Centre, University of Reading http://www.rdg.ac.uk/~visstmbl > +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > Press any key to continue or any other key to quit. -- Stefan Johansson Net Insight AB stefan.johansson@netinsight.net Box 42093, SE-126 14 STOCKHOLM, SWEDEN Phone: +46-8-685 04 81 Visiting address: Västberga Allé 9 Fax: +46-8-685 04 20 http://www.netinsight.net |