summaryrefslogtreecommitdiff
path: root/torrus/sup
diff options
context:
space:
mode:
authorivan <ivan>2010-12-27 00:04:44 +0000
committerivan <ivan>2010-12-27 00:04:44 +0000
commit74e058c8a010ef6feb539248a550d0bb169c1e94 (patch)
tree6e8d3efb218dd0f41970b62c7f29758d1ae9a937 /torrus/sup
parent35359a73152b3d7a9ad5e3d37faf81f6fedb76e8 (diff)
import torrus 1.0.9
Diffstat (limited to 'torrus/sup')
-rw-r--r--torrus/sup/Makefile.am45
-rw-r--r--torrus/sup/Makefile.in455
-rw-r--r--torrus/sup/dtd/snmp-discovery.dtd39
-rw-r--r--torrus/sup/dtd/torrus-config.dtd96
-rw-r--r--torrus/sup/mibs/RRDTOOL-SMI.txt39
-rw-r--r--torrus/sup/mibs/TORRUS-MIB.txt183
-rw-r--r--torrus/sup/styling/colornames.pl183
-rw-r--r--torrus/sup/styling/rainbow-schema.pl26
-rw-r--r--torrus/sup/styling/torrus-schema.pl171
-rw-r--r--torrus/sup/webplain/explain-rrdgraph.html85
-rw-r--r--torrus/sup/webplain/torrus-printer.css264
-rw-r--r--torrus/sup/webplain/torrus-report.css172
-rw-r--r--torrus/sup/webplain/torrus.css503
13 files changed, 2261 insertions, 0 deletions
diff --git a/torrus/sup/Makefile.am b/torrus/sup/Makefile.am
new file mode 100644
index 0000000..4579fd0
--- /dev/null
+++ b/torrus/sup/Makefile.am
@@ -0,0 +1,45 @@
+
+# Copyright (C) 2002 Stanislav Sinyagin
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+# $Id: Makefile.am,v 1.1 2010-12-27 00:04:04 ivan Exp $
+# Stanislav Sinyagin <ssinyagin@yahoo.com>
+#
+
+dtddir = $(supdir)/dtd
+dist_dtd_DATA = dtd/snmp-discovery.dtd dtd/torrus-config.dtd
+
+mibsdir = $(supdir)/mibs
+dist_mibs_DATA = mibs/RRDTOOL-SMI.txt \
+ mibs/TORRUS-MIB.txt
+
+styldir = $(supdir)/styling
+dist_styl_DATA = \
+ styling/colornames.pl \
+ styling/rainbow-schema.pl \
+ styling/torrus-schema.pl
+
+
+webplaindir = @webplaindir@
+dist_webplain_DATA = \
+ webplain/explain-rrdgraph.html \
+ webplain/torrus.css \
+ webplain/torrus-printer.css \
+ webplain/torrus-report.css
+
+
+install-data-local:
+ $(mkinstalldirs) $(DESTDIR)$(webscriptsdir)
diff --git a/torrus/sup/Makefile.in b/torrus/sup/Makefile.in
new file mode 100644
index 0000000..eaccd49
--- /dev/null
+++ b/torrus/sup/Makefile.in
@@ -0,0 +1,455 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Copyright (C) 2002 Stanislav Sinyagin
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+# $Id: Makefile.in,v 1.1 2010-12-27 00:04:04 ivan Exp $
+# Stanislav Sinyagin <ssinyagin@yahoo.com>
+#
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = sup
+DIST_COMMON = $(dist_dtd_DATA) $(dist_mibs_DATA) $(dist_styl_DATA) \
+ $(dist_webplain_DATA) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(dtddir)" "$(DESTDIR)$(mibsdir)" \
+ "$(DESTDIR)$(styldir)" "$(DESTDIR)$(webplaindir)"
+dist_dtdDATA_INSTALL = $(INSTALL_DATA)
+dist_mibsDATA_INSTALL = $(INSTALL_DATA)
+dist_stylDATA_INSTALL = $(INSTALL_DATA)
+dist_webplainDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(dist_dtd_DATA) $(dist_mibs_DATA) $(dist_styl_DATA) \
+ $(dist_webplain_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+FIND = @FIND@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KILL = @KILL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PERLINC = @PERLINC@
+POD2MAN = @POD2MAN@
+POD2MAN_PRESENT_FALSE = @POD2MAN_PRESENT_FALSE@
+POD2MAN_PRESENT_TRUE = @POD2MAN_PRESENT_TRUE@
+POD2TEXT = @POD2TEXT@
+POD2TEXT_PRESENT_FALSE = @POD2TEXT_PRESENT_FALSE@
+POD2TEXT_PRESENT_TRUE = @POD2TEXT_PRESENT_TRUE@
+RM = @RM@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+SLEEP = @SLEEP@
+STRIP = @STRIP@
+SU = @SU@
+VERSION = @VERSION@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__leading_dot = @am__leading_dot@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+cachedir = @cachedir@
+cfgdefdir = @cfgdefdir@
+datadir = @datadir@
+dbhome = @dbhome@
+defrrddir = @defrrddir@
+distxmldir = @distxmldir@
+enable_pkgonly = @enable_pkgonly@
+enable_varperm = @enable_varperm@
+exec_prefix = @exec_prefix@
+exmpdir = @exmpdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+logdir = @logdir@
+mandir = @mandir@
+mansec_misc = @mansec_misc@
+mansec_usercmd = @mansec_usercmd@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+perlithreads = @perlithreads@
+perllibdir = @perllibdir@
+perllibdirs = @perllibdirs@
+piddir = @piddir@
+pkgbindir = @pkgbindir@
+pkgdocdir = @pkgdocdir@
+pkghome = @pkghome@
+plugdevdisccfgdir = @plugdevdisccfgdir@
+pluginsdir = @pluginsdir@
+plugtorruscfgdir = @plugtorruscfgdir@
+plugwrapperdir = @plugwrapperdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+reportsdir = @reportsdir@
+sbindir = @sbindir@
+scriptsdir = @scriptsdir@
+seslockdir = @seslockdir@
+sesstordir = @sesstordir@
+sharedstatedir = @sharedstatedir@
+siteconfdir = @siteconfdir@
+sitedir = @sitedir@
+sitexmldir = @sitexmldir@
+supdir = @supdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+tmpldir = @tmpldir@
+tmpluserdir = @tmpluserdir@
+torrus_user = @torrus_user@
+var_group = @var_group@
+var_mode = @var_mode@
+var_user = @var_user@
+varprefix = @varprefix@
+webplaindir = @webplaindir@
+webscriptsdir = @webscriptsdir@
+wrapperdir = @wrapperdir@
+dtddir = $(supdir)/dtd
+dist_dtd_DATA = dtd/snmp-discovery.dtd dtd/torrus-config.dtd
+mibsdir = $(supdir)/mibs
+dist_mibs_DATA = mibs/RRDTOOL-SMI.txt \
+ mibs/TORRUS-MIB.txt
+
+styldir = $(supdir)/styling
+dist_styl_DATA = \
+ styling/colornames.pl \
+ styling/rainbow-schema.pl \
+ styling/torrus-schema.pl
+
+dist_webplain_DATA = \
+ webplain/explain-rrdgraph.html \
+ webplain/torrus.css \
+ webplain/torrus-printer.css \
+ webplain/torrus-report.css
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sup/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu sup/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+uninstall-info-am:
+install-dist_dtdDATA: $(dist_dtd_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(dtddir)" || $(mkdir_p) "$(DESTDIR)$(dtddir)"
+ @list='$(dist_dtd_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(dist_dtdDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(dtddir)/$$f'"; \
+ $(dist_dtdDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(dtddir)/$$f"; \
+ done
+
+uninstall-dist_dtdDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_dtd_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(dtddir)/$$f'"; \
+ rm -f "$(DESTDIR)$(dtddir)/$$f"; \
+ done
+install-dist_mibsDATA: $(dist_mibs_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(mibsdir)" || $(mkdir_p) "$(DESTDIR)$(mibsdir)"
+ @list='$(dist_mibs_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(dist_mibsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(mibsdir)/$$f'"; \
+ $(dist_mibsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(mibsdir)/$$f"; \
+ done
+
+uninstall-dist_mibsDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_mibs_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(mibsdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(mibsdir)/$$f"; \
+ done
+install-dist_stylDATA: $(dist_styl_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(styldir)" || $(mkdir_p) "$(DESTDIR)$(styldir)"
+ @list='$(dist_styl_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(dist_stylDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(styldir)/$$f'"; \
+ $(dist_stylDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(styldir)/$$f"; \
+ done
+
+uninstall-dist_stylDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_styl_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(styldir)/$$f'"; \
+ rm -f "$(DESTDIR)$(styldir)/$$f"; \
+ done
+install-dist_webplainDATA: $(dist_webplain_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(webplaindir)" || $(mkdir_p) "$(DESTDIR)$(webplaindir)"
+ @list='$(dist_webplain_DATA)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(dist_webplainDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(webplaindir)/$$f'"; \
+ $(dist_webplainDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(webplaindir)/$$f"; \
+ done
+
+uninstall-dist_webplainDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_webplain_DATA)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(webplaindir)/$$f'"; \
+ rm -f "$(DESTDIR)$(webplaindir)/$$f"; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+ $(mkdir_p) $(distdir)/dtd $(distdir)/mibs $(distdir)/styling $(distdir)/webplain
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+ list='$(DISTFILES)'; for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+ esac; \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+ dir="/$$dir"; \
+ $(mkdir_p) "$(distdir)$$dir"; \
+ else \
+ dir=''; \
+ fi; \
+ if test -d $$d/$$file; then \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+ fi; \
+ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+ else \
+ test -f $(distdir)/$$file \
+ || cp -p $$d/$$file $(distdir)/$$file \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(dtddir)" "$(DESTDIR)$(mibsdir)" "$(DESTDIR)$(styldir)" "$(DESTDIR)$(webplaindir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local install-dist_dtdDATA \
+ install-dist_mibsDATA install-dist_stylDATA \
+ install-dist_webplainDATA
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-dist_dtdDATA uninstall-dist_mibsDATA \
+ uninstall-dist_stylDATA uninstall-dist_webplainDATA \
+ uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic distclean \
+ distclean-generic distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am \
+ install-data-local install-dist_dtdDATA install-dist_mibsDATA \
+ install-dist_stylDATA install-dist_webplainDATA install-exec \
+ install-exec-am install-info install-info-am install-man \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-dist_dtdDATA uninstall-dist_mibsDATA \
+ uninstall-dist_stylDATA uninstall-dist_webplainDATA \
+ uninstall-info-am
+
+
+install-data-local:
+ $(mkinstalldirs) $(DESTDIR)$(webscriptsdir)
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/torrus/sup/dtd/snmp-discovery.dtd b/torrus/sup/dtd/snmp-discovery.dtd
new file mode 100644
index 0000000..e8953ab
--- /dev/null
+++ b/torrus/sup/dtd/snmp-discovery.dtd
@@ -0,0 +1,39 @@
+<!--
+ Copyright (C) 2002 Stanislav Sinyagin
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+ $Id: snmp-discovery.dtd,v 1.1 2010-12-27 00:04:04 ivan Exp $
+ Stanislav Sinyagin <ssinyagin@yahoo.com>
+
+ Torrus Discovery Instructions XML DTD
+
+-->
+
+<!ELEMENT creator-info ( #PCDATA ) >
+
+<!ELEMENT file-info ( format-version ) >
+
+<!ELEMENT format-version ( #PCDATA ) >
+
+<!ELEMENT host ( param+ ) >
+
+<!ELEMENT param ( #PCDATA ) >
+<!ATTLIST param name CDATA #REQUIRED >
+<!ATTLIST param value CDATA #IMPLIED >
+
+<!ELEMENT snmp-discovery ( file-info, creator-info*, param+, host+ ) >
+
+
diff --git a/torrus/sup/dtd/torrus-config.dtd b/torrus/sup/dtd/torrus-config.dtd
new file mode 100644
index 0000000..5227f81
--- /dev/null
+++ b/torrus/sup/dtd/torrus-config.dtd
@@ -0,0 +1,96 @@
+<!--
+ Copyright (C) 2002 Stanislav Sinyagin
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+ $Id: torrus-config.dtd,v 1.1 2010-12-27 00:04:04 ivan Exp $
+ Stanislav Sinyagin <ssinyagin@yahoo.com>
+
+ Torrus Configuration XML DTD
+
+-->
+
+<!ELEMENT action ( param+ ) >
+<!ATTLIST action name NMTOKEN #REQUIRED >
+
+<!ELEMENT alias ( #PCDATA ) >
+
+<!ELEMENT apply-template EMPTY >
+<!ATTLIST apply-template name NMTOKEN #REQUIRED >
+
+<!ELEMENT configuration ( creator-info | definitions | datasources |
+ include | monitors | param-properties |
+ token-sets | views )* >
+
+<!ELEMENT creator-info ( #PCDATA ) >
+
+<!ELEMENT datasources ( template | alias | apply-template |
+ leaf | param | subtree |
+ setvar | iftrue | iffalse )* >
+
+<!ELEMENT def EMPTY >
+<!ATTLIST def name ID #REQUIRED >
+<!ATTLIST def value CDATA #REQUIRED >
+
+<!ELEMENT definitions ( def )* >
+
+<!ELEMENT detailed ( alias | apply-template |
+ leaf | param | subtree |
+ setvar | iftrue | iffalse )* >
+<!ATTLIST detailed match NMTOKEN #REQUIRED >
+
+<!ELEMENT include EMPTY >
+<!ATTLIST include filename ID #REQUIRED >
+
+<!ELEMENT leaf ( alias | apply-template | param |
+ setvar | iftrue | iffalse )* >
+<!ATTLIST leaf name NMTOKEN #REQUIRED >
+
+<!ELEMENT monitor ( param+ ) >
+<!ATTLIST monitor name NMTOKEN #REQUIRED >
+
+<!ELEMENT monitors ( action | monitor )* >
+
+<!ELEMENT param ( #PCDATA ) >
+<!ATTLIST param name NMTOKEN #REQUIRED >
+<!ATTLIST param value CDATA #IMPLIED >
+
+<!ELEMENT param-properties ( prop )* >
+
+<!ELEMENT prop >
+<!ATTLIST prop param NMTOKEN #REQUIRED >
+<!ATTLIST prop prop NMTOKEN #REQUIRED >
+<!ATTLIST prop value CDATA #REQUIRED >
+
+<!ELEMENT subtree ( alias | apply-template |
+ leaf | param | subtree | setvar | iftrue | iffalse )* >
+<!ATTLIST subtree name NMTOKEN #REQUIRED >
+
+<!ELEMENT template ( alias | apply-template |
+ leaf | param | subtree | setvar | iftrue | iffalse )* >
+<!ATTLIST template name NMTOKEN #REQUIRED >
+
+<!ELEMENT token-set ( param* ) >
+<!ATTLIST token-set name NMTOKEN #REQUIRED >
+
+<!ELEMENT token-sets ( param | token-set )* >
+
+<!ELEMENT view ( param | view )* >
+<!ATTLIST view name ID #REQUIRED >
+
+<!ELEMENT views ( view* ) >
+
+
+
diff --git a/torrus/sup/mibs/RRDTOOL-SMI.txt b/torrus/sup/mibs/RRDTOOL-SMI.txt
new file mode 100644
index 0000000..dd306ed
--- /dev/null
+++ b/torrus/sup/mibs/RRDTOOL-SMI.txt
@@ -0,0 +1,39 @@
+RRDTOOL-SMI DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY,
+ OBJECT-IDENTITY,
+ enterprises
+ FROM SNMPv2-SMI;
+
+rrdtool MODULE-IDENTITY
+ LAST-UPDATED "200209150000Z"
+ ORGANIZATION "RRD Tool"
+ CONTACT-INFO
+ " Tobi Oetiker
+
+ Postal: ETZ J97, ETH
+ 8092 Zurich
+ Switzerland
+
+ Telephone: +41 1 632-5286
+ E-mail: oetiker@ee.ethz.ch
+
+ RRD Tool Information:
+ http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/
+ "
+ DESCRIPTION
+ "The Structure of RRDTool fellow projects"
+ ::= { enterprises 14697 } -- assigned by IANA
+
+torrus OBJECT-IDENTITY
+ STATUS current
+ DESCRIPTION
+ "Round Robin Database Framework.
+ http://torrus.sourceforge.net/
+ "
+ ::= { rrdtool 1 }
+
+-- more to come if necessary.
+
+END
diff --git a/torrus/sup/mibs/TORRUS-MIB.txt b/torrus/sup/mibs/TORRUS-MIB.txt
new file mode 100644
index 0000000..8ada99b
--- /dev/null
+++ b/torrus/sup/mibs/TORRUS-MIB.txt
@@ -0,0 +1,183 @@
+TORRUS-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+ MODULE-IDENTITY, OBJECT-IDENTITY, NOTIFICATION-TYPE,
+ Integer32
+ FROM SNMPv2-SMI
+ DateAndTime
+ FROM SNMPv2-TC
+ rrdtool
+ FROM RRDTOOL-SMI;
+
+torrus MODULE-IDENTITY
+ LAST-UPDATED "200506210000Z"
+ ORGANIZATION "Round Robin Database Framework project"
+ CONTACT-INFO
+ "Round Robin Database Framework project
+
+ Project description and documentation:
+ http://torrus.org
+
+ Administrative contact for MIB module:
+
+ Stanislav Sinyagin
+ Tel. +41 79 407 02 24
+ E-mail: ssinyagin@yahoo.com"
+ DESCRIPTION
+ "The MIB module for SNMP variables specific to Torrus project"
+ ::= { rrdtool 1 }
+
+EventType ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Defines the event type:
+ set -- The monitor condition is first time met
+ repeat -- The monitor condition is met again on the consequtive
+ monitorin cycle
+ clear -- The monitor condition is not met the first time after
+ event type set or repeat
+ forget -- The monitor condition was not met during the expiration
+ period since the last event type clear"
+ SYNTAX INTEGER {
+ set(1),
+ repeat(2),
+ clear(3),
+ forget(4)
+ }
+
+TreeName ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Torrus system operates with several datasource trees
+ identified by names"
+ SYNTAX OCTET STRING (SIZE (1..512))
+
+Token ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Token is a short ID for the leaf or subtree of the Torrus
+ datasources hierarchy"
+ SYNTAX OCTET STRING (SIZE (5..10))
+
+Path ::= TEXTUAL-CONVENTION
+ STATUS current
+ DESCRIPTION
+ "Path is the full name of the Torrus datasource, containing its
+ parent nodes separated by slashes"
+ SYNTAX OCTET STRING (SIZE (1..512))
+
+MonitorEventsEntry ::= SEQUENCE {
+ torrusEventIndex Integer32,
+ torrusToken Token,
+ torrusMonitorName OCTET STRING,
+ torrusEventType EventType,
+ torrusPath Path,
+ torrusTimestamp DateAndTime,
+ torrusSeverity Integer32,
+ torrusMonitorDesc OCTET STRING
+}
+
+torrusMonitorEventsTable OBJECT-TYPE
+ SYNTAX SEQUENCE OF MonitorEventsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Table of current monitor events"
+ ::= { torrus 1 }
+
+torrusMonitorEventsEntry OBJECT-TYPE
+ SYNTAX MonitorEventsEntry
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Each monitor event is characterized by the datasource token and
+ monitor name"
+ INDEX { torrusEventIndex }
+ ::= { torrusMonitorEventsTable 1 }
+
+torrusEventIndex OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The value of this object uniquely identifies this
+ event entry."
+ ::= { torrusMonitorEventsEntry 1 }
+
+torrusToken OBJECT-TYPE
+ SYNTAX Token
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Token is a short ID for the leaf or subtree of the Torrus
+ datasources hierarchy"
+ ::= { torrusMonitorEventsEntry 2 }
+
+torrusMonitorName OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Each monitor instance is identified by unique name"
+ ::= { torrusMonitorEventsEntry 3 }
+
+torrusEventType OBJECT-TYPE
+ SYNTAX EventType
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The type of the event: set(1), repeat(2), clear(3), forget(4)"
+ ::= { torrusMonitorEventsEntry 4 }
+
+torrusPath OBJECT-TYPE
+ SYNTAX Path
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "The full name of the Torrus datasource, containing its
+ parent nodes separated by slashes"
+ ::= { torrusMonitorEventsEntry 5 }
+
+torrusTimestamp OBJECT-TYPE
+ SYNTAX DateAndTime
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Timestamp of the event, in SNMPv2 format, e.g.
+ 1992-5-26,13:30:15.0,-4:0"
+ ::= { torrusMonitorEventsEntry 6 }
+
+torrusTreeName OBJECT-TYPE
+ SYNTAX TreeName
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Name of the datasource tree"
+ ::= { torrusMonitorEventsEntry 7 }
+
+torrusSeverity OBJECT-TYPE
+ SYNTAX Integer32 (1..65535)
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Optional severity level"
+ ::= { torrusMonitorEventsEntry 8 }
+
+torrusMonitorDesc OBJECT-TYPE
+ SYNTAX OCTET STRING
+ MAX-ACCESS not-accessible
+ STATUS current
+ DESCRIPTION
+ "Human readable monitor comment"
+ ::= { torrusMonitorEventsEntry 9 }
+
+torrusAlarm NOTIFICATION-TYPE
+ OBJECTS { torrusToken, torrusMonitorName, torrusEventType,
+ torrusPath, torrusTimestamp }
+ STATUS current
+ DESCRIPTION
+ "The SNMP trap that is generated when an Torrus monitor
+ condition is changed for the leaf being monitored"
+ ::= { torrus 2 }
+
+END
diff --git a/torrus/sup/styling/colornames.pl b/torrus/sup/styling/colornames.pl
new file mode 100644
index 0000000..848b4e2
--- /dev/null
+++ b/torrus/sup/styling/colornames.pl
@@ -0,0 +1,183 @@
+# Symbolic Color names
+
+# $Id: colornames.pl,v 1.1 2010-12-27 00:04:04 ivan Exp $
+# Stanislav Sinyagin <ssinyagin@yahoo.com>
+# Shawn Ferry <sferry at sevenspace dot com> <lalartu at obscure dot org>
+
+my %colorNames =
+ (
+ # Taken from the tt2 example file
+ 'black' => {'color' => '#000000'},
+ 'grey25' => {'color' => '#404040'},
+ 'grey50' => {'color' => '#808080'},
+ 'grey75' => {'color' => '#c0c0c0'},
+ 'white' => {'color' => '#ffffff'},
+ 'red' => {'color' => '#ff0000'},
+ 'red25' => {'color' => '#400000'},
+ 'red50' => {'color' => '#800000'},
+ 'red75' => {'color' => '#c00000'},
+ 'green' => {'color' => '#00ff00'},
+ 'green25' => {'color' => '#004000'},
+ 'green50' => {'color' => '#008000'},
+ 'green75' => {'color' => '#00c000'},
+ 'blue' => {'color' => '#0000ff'},
+ 'blue25' => {'color' => '#000040'},
+ 'blue50' => {'color' => '#000080'},
+ 'blue75' => {'color' => '#0000c0'},
+ 'blood' => {'color' => '#800000'},
+ 'scarlet' => {'color' => '#c04040'},
+ 'rose' => {'color' => '#f08080'},
+ 'orange' => {'color' => '#fe7202'},
+ 'leaf' => {'color' => '#006400'},
+ 'bud' => {'color' => '#66aa66'},
+ 'mint' => {'color' => '#aaffaa'},
+ 'marine' => {'color' => '#0066cc'},
+ 'sky' => {'color' => '#66ccff'},
+ 'mauve' => {'color' => '#6666cc'},
+ 'lilac' => {'color' => '#9797ff'},
+
+ # http://www.mandarindesign.com/color.html#namedcolors
+ # http://www.w3schools.com/html/html_colornames.asp
+ # http://www.oreilly.com/catalog/wdnut/excerpt/color_names.html
+ 'aliceblue' => {'color' => '#F0F8FF'},
+ 'antiquewhite' => {'color' => '#FAEBD7'},
+ 'aqua' => {'color' => '#00FFFF'},
+ 'aquamarine' => {'color' => '#7FFFD4'},
+ 'azure' => {'color' => '#F0FFFF'},
+ 'beige' => {'color' => '#F5F5DC'},
+ 'bisque' => {'color' => '#FFE4C4'},
+ 'blanchedalmond' => {'color' => '#FFEBCD'},
+ 'blueviolet' => {'color' => '#8A2BE2'},
+ 'brown' => {'color' => '#A52A2A'},
+ 'burlywood' => {'color' => '#DEB887'},
+ 'cadetblue' => {'color' => '#5F9EA0'},
+ 'chartreuse' => {'color' => '#7FFF00'},
+ 'chocolate' => {'color' => '#D2691E'},
+ 'coral' => {'color' => '#FF7F50'},
+ 'cornflowerblue' => {'color' => '#6495ED'},
+ 'cornsilk' => {'color' => '#FFF8DC'},
+ 'crimson' => {'color' => '#DC143C'},
+ 'cyan' => {'color' => '#00FFFF'},
+ 'darkblue' => {'color' => '#00008B'},
+ 'darkcyan' => {'color' => '#008B8B'},
+ 'darkgoldenrod' => {'color' => '#B8860B'},
+ 'darkgray' => {'color' => '#A9A9A9'},
+ 'darkgreen' => {'color' => '#006400'},
+ 'darkkhaki' => {'color' => '#BDB76B'},
+ 'darkmagenta' => {'color' => '#8B008B'},
+ 'darkolivegreen' => {'color' => '#556B2F'},
+ 'darkorange' => {'color' => '#FF8C00'},
+ 'darkorchid' => {'color' => '#9932CC'},
+ 'darkred' => {'color' => '#8B0000'},
+ 'darksalmon' => {'color' => '#E9967A'},
+ 'darkseagreen' => {'color' => '#8FBC8B'},
+ 'darkslateblue' => {'color' => '#483D8B'},
+ 'darkslategray' => {'color' => '#2F4F4F'},
+ 'darkturquoise' => {'color' => '#00CED1'},
+ 'darkviolet' => {'color' => '#9400D3'},
+ 'deeppink' => {'color' => '#FF1493'},
+ 'deepskyblue' => {'color' => '#00BFFF'},
+ 'dimgray' => {'color' => '#696969'},
+ 'dodgerblue' => {'color' => '#1E90FF'},
+ 'firebrick' => {'color' => '#B22222'},
+ 'floralwhite' => {'color' => '#FFFAF0'},
+ 'forestgreen' => {'color' => '#228B22'},
+ 'fuchsia' => {'color' => '#FF00FF'},
+ 'gainsboro' => {'color' => '#DCDCDC'},
+ 'ghostwhite' => {'color' => '#F8F8FF'},
+ 'gold' => {'color' => '#FFD700'},
+ 'goldenrod' => {'color' => '#DAA520'},
+ 'gray' => {'color' => '#808080'},
+ 'greenyellow' => {'color' => '#ADFF2F'},
+ 'honeydew' => {'color' => '#F0FFF0'},
+ 'hotpink' => {'color' => '#FF69B4'},
+ 'indianred' => {'color' => '#CD5C5C'},
+ 'indigo' => {'color' => '#4B0082'},
+ 'ivory' => {'color' => '#FFFFF0'},
+ 'khaki' => {'color' => '#F0E68C'},
+ 'lavender' => {'color' => '#E6E6FA'},
+ 'lavenderblush' => {'color' => '#FFF0F5'},
+ 'lawngreen' => {'color' => '#7CFC00'},
+ 'lemonchiffon' => {'color' => '#FFFACD'},
+ 'lightblue' => {'color' => '#ADD8E6'},
+ 'lightcoral' => {'color' => '#F08080'},
+ 'lightcyan' => {'color' => '#E0FFFF'},
+ 'lightgoldenrodyellow' => {'color' => '#FAFAD2'},
+ 'lightgreen' => {'color' => '#90EE90'},
+ 'lightgrey' => {'color' => '#D3D3D3'},
+ 'lightpink' => {'color' => '#FFB6C1'},
+ 'lightsalmon' => {'color' => '#FFA07A'},
+ 'lightseagreen' => {'color' => '#20B2AA'},
+ 'lightskyblue' => {'color' => '#87CEFA'},
+ 'lightslategray' => {'color' => '#778899'},
+ 'lightsteelblue' => {'color' => '#B0C4DE'},
+ 'lightyellow' => {'color' => '#FFFFE0'},
+ 'lime' => {'color' => '#00FF00'},
+ 'limegreen' => {'color' => '#32CD32'},
+ 'linen' => {'color' => '#FAF0E6'},
+ 'magenta' => {'color' => '#FF00FF'},
+ 'maroon' => {'color' => '#800000'},
+ 'mediumaquamarine' => {'color' => '#66CDAA'},
+ 'mediumblue' => {'color' => '#0000CD'},
+ 'mediumorchid' => {'color' => '#BA55D3'},
+ 'mediumpurple' => {'color' => '#9370DB'},
+ 'mediumseagreen' => {'color' => '#3CB371'},
+ 'mediumslateblue' => {'color' => '#7B68EE'},
+ 'mediumspringgreen' => {'color' => '#00FA9A'},
+ 'mediumturquoise' => {'color' => '#48D1CC'},
+ 'mediumvioletred' => {'color' => '#C71585'},
+ 'midnightblue' => {'color' => '#191970'},
+ 'mintcream' => {'color' => '#F5FFFA'},
+ 'mistyrose' => {'color' => '#FFE4E1'},
+ 'moccasin' => {'color' => '#FFE4B5'},
+ 'navajowhite' => {'color' => '#FFDEAD'},
+ 'navy' => {'color' => '#000080'},
+ 'oldlace' => {'color' => '#FDF5E6'},
+ 'olive' => {'color' => '#808000'},
+ 'olivedrab' => {'color' => '#6B8E23'},
+ 'orangered' => {'color' => '#FF4500'},
+ 'orchid' => {'color' => '#DA70D6'},
+ 'palegoldenrod' => {'color' => '#EEE8AA'},
+ 'palegreen' => {'color' => '#98FB98'},
+ 'paleturquoise' => {'color' => '#AFEEEE'},
+ 'palevioletred' => {'color' => '#DB7093'},
+ 'papayawhip' => {'color' => '#FFEFD5'},
+ 'peachpuff' => {'color' => '#FFDAB9'},
+ 'peru' => {'color' => '#CD853F'},
+ 'pink' => {'color' => '#FFC0CB'},
+ 'plum' => {'color' => '#DDA0DD'},
+ 'powderblue' => {'color' => '#B0E0E6'},
+ 'purple' => {'color' => '#800080'},
+ 'rosybrown' => {'color' => '#BC8F8F'},
+ 'royalblue' => {'color' => '#4169E1'},
+ 'saddlebrown' => {'color' => '#8B4513'},
+ 'salmon' => {'color' => '#FA8072'},
+ 'sandybrown' => {'color' => '#F4A460'},
+ 'seagreen' => {'color' => '#2E8B57'},
+ 'seashell' => {'color' => '#FFF5EE'},
+ 'sienna' => {'color' => '#A0522D'},
+ 'silver' => {'color' => '#C0C0C0'},
+ 'skyblue' => {'color' => '#87CEEB'},
+ 'slateblue' => {'color' => '#6A5ACD'},
+ 'slategray' => {'color' => '#708090'},
+ 'snow' => {'color' => '#FFFAFA'},
+ 'springgreen' => {'color' => '#00FF7F'},
+ 'steelblue' => {'color' => '#4682B4'},
+ 'tan' => {'color' => '#D2B48C'},
+ 'teal' => {'color' => '#008080'},
+ 'thistle' => {'color' => '#D8BFD8'},
+ 'tomato' => {'color' => '#FF6347'},
+ 'turquoise' => {'color' => '#40E0D0'},
+ 'violet' => {'color' => '#EE82EE'},
+ 'wheat' => {'color' => '#F5DEB3'},
+ 'whitesmoke' => {'color' => '#F5F5F5'},
+ 'yellow' => {'color' => '#FFFF00'},
+ 'yellowgreen' => {'color' => '#9ACD32'},
+ );
+
+while( my($style, $def) = each( %colorNames ) )
+{
+ $Torrus::Renderer::graphStyles{$style} = $def;
+}
+
+1;
diff --git a/torrus/sup/styling/rainbow-schema.pl b/torrus/sup/styling/rainbow-schema.pl
new file mode 100644
index 0000000..cdab693
--- /dev/null
+++ b/torrus/sup/styling/rainbow-schema.pl
@@ -0,0 +1,26 @@
+# Example of alternate style
+# rougly the traditional colors in a rainbow.
+# Shawn Ferry <sferry at sevenspace dot com> <lalartu at obscure dot org>
+#
+# This file should be referenced using the
+# $Torrus::Renderer::stylingProfileOverlay option:
+# $Torrus::Renderer::stylingProfileOverlay = "rainbow-schema";
+
+$Torrus::Renderer::graphStyles{'one'}{'color'} = '##darkred';
+$Torrus::Renderer::graphStyles{'two'}{'color'} = '##red';
+$Torrus::Renderer::graphStyles{'three'}{'color'} = '##yellow';
+$Torrus::Renderer::graphStyles{'four'}{'color'} = '##deeppink';
+$Torrus::Renderer::graphStyles{'five'}{'color'} = '##forestgreen';
+$Torrus::Renderer::graphStyles{'six'}{'color'} = '##orange';
+$Torrus::Renderer::graphStyles{'seven'}{'color'} = '##indigo';
+$Torrus::Renderer::graphStyles{'eight'}{'color'} = '##blueviolet';
+$Torrus::Renderer::graphStyles{'nine'}{'color'} = '##blue';
+$Torrus::Renderer::graphStyles{'ten'}{'color'} = '##deepskyblue';
+
+# slightly off white background with gold grid lines
+push( @Torrus::Renderer::graphExtraArgs,
+ '--color=CANVAS#DCDCDC', #light grey
+ '--color=BACK#808080', # darker grey
+ '--color=GRID#FFD700' ); # gold
+
+1;
diff --git a/torrus/sup/styling/torrus-schema.pl b/torrus/sup/styling/torrus-schema.pl
new file mode 100644
index 0000000..9ece864
--- /dev/null
+++ b/torrus/sup/styling/torrus-schema.pl
@@ -0,0 +1,171 @@
+# RRDtool graph Colors and Lines Profile.
+# You are encouraged to create your own copy and reference it
+# with $Torrus::Renderer::stylingProfile in your torrus-siteconfig.pl
+# or better define your amendments in Torrus::Renderer::stylingProfileOverlay
+
+# $Id: torrus-schema.pl,v 1.1 2010-12-27 00:04:04 ivan Exp $
+# Stanislav Sinyagin <ssinyagin@yahoo.com>
+# Shawn Ferry <sferry at sevenspace dot com> <lalartu at obscure dot org>
+
+%Torrus::Renderer::graphStyles =
+ (
+ 'SingleGraph' => {
+ 'color' => '##blue',
+ 'line' => 'LINE2'
+ },
+ 'HWBoundary' => {
+ 'color' => '##red',
+ 'line' => 'LINE1'
+ },
+ 'HWFailure' => {
+ 'color' => '##moccasin'
+ },
+ 'HruleMin' => {
+ 'color' => '##darkmagenta'
+ },
+ 'HruleNormal' => {
+ 'color' => '##seagreen'
+ },
+ 'HruleMax' => {
+ 'color' => '##darkmagenta'
+ },
+ 'BpsIn' => {
+ 'color' => '##green',
+ 'line' => 'AREA'
+ },
+ 'BpsOut' => {
+ 'color' => '##blue',
+ 'line' => 'LINE2'
+ },
+
+ 'BusinessDay' => {
+ 'color' => '##white',
+ 'line' => 'AREA'
+ },
+ 'Evening' => {
+ 'color' => '##mintcream',
+ 'line' => 'AREA'
+ },
+ 'Night' => {
+ 'color' => '##lavender',
+ 'line' => 'AREA'
+ },
+
+ # Common Definitions
+ # Using generic names allows the "generic" value to be
+ # changed without editing every instance
+ 'in' => {
+ 'color' => '##green',
+ 'line' => 'AREA'
+ },
+ 'out' => {
+ 'color' => '##blue',
+ 'line' => 'LINE2'
+ },
+
+ 'nearend' => {
+ 'color' => '##green',
+ 'line' => 'LINE2'
+ },
+ 'farend' => {
+ 'color' => '##blue',
+ 'line' => 'LINE2'
+ },
+
+ 'maxvalue' => {
+ 'color' => '##darkseagreen',
+ 'line' => 'AREA'
+ },
+ 'currvalue' => {
+ 'color' => '##blue',
+ 'line' => 'LINE2'
+ },
+
+ 'totalresource' => {
+ 'color' => '##palegreen',
+ 'line' => 'AREA'
+ },
+ 'resourceusage' => {
+ 'color' => '##blue',
+ 'line' => 'AREA'
+ },
+ 'resourcepartusage' => {
+ 'color' => '##crimson',
+ 'line' => 'AREA'
+ },
+
+ # convenient definitions one - ten, colors that
+ # "work" in a single graph
+ 'one' => {'color' => '##green'},
+ 'two' => {'color' => '##blue'},
+ 'three' => {'color' => '##red'},
+ 'four' => {'color' => '##gold'},
+ 'five' => {'color' => '##seagreen'},
+ 'six' => {'color' => '##cornflowerblue'},
+ 'seven' => {'color' => '##crimson'},
+ 'eight' => {'color' => '##darkorange'},
+ 'nine' => {'color' => '##darkmagenta'},
+ 'ten' => {'color' => '##orangered'},
+
+ # definitions for combinatorial graphing
+
+ #RED
+ 'red1' => {
+ 'color' => '##red',
+ 'line' => 'AREA',
+ },
+ 'red2' => {
+ 'color' => '##red25',
+ 'line' => 'STACK',
+ },
+ 'red3' => {
+ 'color' => '##red50',
+ 'line' => 'STACK',
+ },
+ 'red4' => {
+ 'color' => '##red75',
+ 'line' => 'STACK',
+ },
+
+ #GREEN
+ 'green1' => {
+ 'color' => '##green',
+ 'line' => 'AREA',
+ },
+ 'green2' => {
+ 'color' => '##green25',
+ 'line' => 'STACK',
+ },
+ 'green3' => {
+ 'color' => '##green50',
+ 'line' => 'STACK',
+ },
+ 'green4' => {
+ 'color' => '##green75',
+ 'line' => 'STACK',
+ },
+
+ #BLUE
+ 'blue1' => {
+ 'color' => '##blue',
+ 'line' => 'AREA',
+ },
+ 'blue2' => {
+ 'color' => '##blue25',
+ 'line' => 'STACK',
+ },
+ 'blue3' => {
+ 'color' => '##blue50',
+ 'line' => 'STACK',
+ },
+ 'blue4' => {
+ 'color' => '##blue75',
+ 'line' => 'STACK',
+ },
+ );
+
+# Place for extra RRDtool graph arguments
+# Example: ( '--color', 'BACK#D0D0FF', '--color', 'GRID#A0A0FF' );
+@Torrus::Renderer::graphExtraArgs = ();
+
+1;
diff --git a/torrus/sup/webplain/explain-rrdgraph.html b/torrus/sup/webplain/explain-rrdgraph.html
new file mode 100644
index 0000000..7dc8051
--- /dev/null
+++ b/torrus/sup/webplain/explain-rrdgraph.html
@@ -0,0 +1,85 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+<HTML>
+<!-- Torrus Copyright (c) 2003-2004 Stanislav Sinyagin -->
+<HEAD>
+<TITLE>RRD Graph Description</TITLE>
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
+<STYLE type="text/css" media="all">
+ @import url( torrus.css );
+</STYLE>
+</HEAD>
+<BODY>
+
+
+<DIV CLASS="HelpContent">
+
+<H1>RRD Graph Description</H1>
+
+<P>
+The graphs in Torrus are drawn by
+<a href="http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/">RRDtool</a>,
+a powerful instrument for data aggregation and graphing.
+</P>
+
+<P>
+The horizontal axis displays the time at which the data has been collected.
+The rightmost point corresponds to the most recent moment.
+</P>
+
+<P>
+The date and time of the graph can be easily changed by using the
+<em>Set date</em> checkbox at the bottom of the page. When the checkbox is
+checked, the date/time string in the text field is interpreted after clicking
+the submit button. It is then reflected in the <em>Report date</em>
+informational line at the page displaying the graphs. The date format is
+quite flexible. It understands such input as "<TT>July 13 5:00</TT>",
+or "<TT>01/13/2003 5:00</TT>", etc.
+</P>
+
+
+<P>
+The vertical axis scales automatically to fit the data values. The meaning of
+the values depends on the nature of the datasource, and is usually described
+in the graph legend, comments, and the help text.
+</P>
+
+
+<P>
+Usually the legend of the vertical axis specifies the meaning of the values:
+<ul>
+<li>Bps: bytes per second counter</li>
+<li>bps: bits per second counter</li>
+<li>pps: pakets per second counter</li>
+</ul>
+Other legends correspond mostly to gauges, such as temperature, load
+percentage, or disk space.
+</P>
+
+<P>
+The graphing engine automatically chooses the best units for scaling
+the values. The scaling magnitude is displayed alongside the numerical value,
+with the following meaning:
+<ul>
+<li>a: 10e-18 Atto</li>
+<li>f: 10e-15 Femto</li>
+<li>p: 10e-12 Pico</li>
+<li>n: 10e-9 Nano</li>
+<li>u: 10e-6 Micro</li>
+<li>m: 10e-3 Milli</li>
+<li>k: 10e+3 Kilo</li>
+<li>M: 10e+6 Mega</li>
+<li>G: 10e+9 Giga</li>
+<li>T: 10e+12 Tera</li>
+<li>P: 10e+15 Peta</li>
+<li>E: 10e+18 Exa</li>
+</ul>
+Memory usage is scaled with the base of 1024.
+</P>
+
+</DIV>
+<DIV CLASS="Footer">
+Powered by <A HREF="http://torrus.sourceforge.net">Torrus</A>
+</DIV>
+</BODY>
+</HTML> \ No newline at end of file
diff --git a/torrus/sup/webplain/torrus-printer.css b/torrus/sup/webplain/torrus-printer.css
new file mode 100644
index 0000000..966abff
--- /dev/null
+++ b/torrus/sup/webplain/torrus-printer.css
@@ -0,0 +1,264 @@
+/*
+ Torrus Renderer stylesheet.
+ Designed by Stanislav Sinyagin
+
+ $Id: torrus-printer.css,v 1.1 2010-12-27 00:04:04 ivan Exp $
+ */
+BODY {
+ background-color : white;
+ color : black;
+ font-family : verdana, arial, helvetica, sans-serif;
+ font-size : 10pt;
+ margin : 0;
+ padding-bottom : 0;
+ padding-left : 0;
+ padding-right : 0;
+ padding-top : 0;
+ voice-family : inherit, male;
+}
+
+H1, H2, H3 {
+ background-color : transparent;
+ color : black;
+}
+
+
+H1 {
+ font-size : 18pt;
+ font-weight : 900;
+ line-height : 20pt;
+}
+
+H2 {
+ font-size : 16pt;
+ font-weight : 700;
+ line-height : 18pt;
+}
+
+H3 {
+ font-size : 14pt;
+ line-height : 16pt;
+}
+
+P {
+ background-color : transparent;
+ color : black;
+ line-height : 18pt;
+ text-decoration : none;
+ padding-bottom : 0;
+ padding-left : 0;
+ padding-right : 0;
+ padding-top : 0;
+}
+
+A, A:link, A:visited {
+ background-color : transparent;
+ color : black;
+ text-decoration : none;
+}
+
+*.Header {
+ background-color : transparent;
+ border-bottom : 0.5pt solid black;
+ border-left : 0 solid black;
+ border-right : 0 solid black;
+ border-top : 0.5pt solid black;
+ color : black;
+ font-size : 9pt;
+ font-weight : 700;
+ margin : 5pt 0 10pt;
+ padding-bottom : 0;
+ padding-left : 10pt;
+ padding-right : 0;
+ padding-top : 10pt;
+}
+
+DIV.LoginInfo {
+ position : absolute;
+ right : 0;
+ top : 8px;
+ font-size : 9px;
+ text-align : right;
+}
+
+DIV.LoginInfo SPAN.UserName {
+ display : block;
+}
+
+DIV.LoginInfo SPAN.Logout {
+ display : none;
+}
+
+DIV.CurrentTime {
+ float: right;
+ font-size : 9px;
+ text-align: right;
+}
+
+*.Content, *.SingleColumnContent {
+ margin-bottom : 0;
+ margin-left : 5pt;
+ margin-right : 5pt;
+ margin-top : 0;
+ padding-bottom : 10pt;
+ padding-left : 10pt;
+ padding-right : 10pt;
+ padding-top : 10pt;
+}
+
+DIV.CurrentPath {
+ background-color : transparent;
+}
+
+*.PathURLs {
+ font-size : 9px;
+}
+
+DIV.CurrentTree {
+ background-color : transparent;
+}
+
+DIV.Legend {
+ background-color : transparent;
+ color : black;
+ font-size : 8pt;
+ margin-bottom : 10pt;
+ margin-top : 10pt;
+}
+
+DIV.LegendRow {
+ clear : both;
+ height : 9pt;
+ width : 100%;
+ margin-bottom : 3pt;
+}
+
+*.LegendRow *.LegendName {
+ font-weight : bold;
+ padding-right : 5pt;
+ text-align : left;
+}
+
+*.LegendRow *.LegendValue {
+ text-align : left;
+}
+
+P.Variables SPAN.VariableName {
+ font-weight : bold;
+}
+
+DIV.Monitors {
+ clear : both;
+ float : none;
+ font-size : 8pt;
+ margin-bottom : 10pt;
+ position : relative;
+ width : 90%;
+}
+
+SPAN.MonitorName {
+ padding-left: 20pt;
+ padding-right: 20pt;
+}
+
+
+DIV.Listing {
+ margin-bottom : 10pt;
+ margin-left : 20pt;
+ margin-right : 20pt;
+}
+
+*.ListRow, *.ListRowEven {
+ border-bottom : 0.5pt solid gray;
+ clear : both;
+ font-size : 8pt;
+ line-height : 12pt;
+ padding-top : 3pt;
+ width : 100%;
+}
+
+*.Listing *.NodeName {
+ display : block;
+ font-weight : bold;
+ padding-right : 5pt;
+ padding-left : 5pt;
+ text-align : left;
+}
+
+*.Listing *.NodeDescr {
+ display : block;
+ padding-left : 30pt;
+ padding-right : 5pt;
+ text-align : left;
+}
+
+DIV.Graph, DIV.ShortGraph {
+ border-bottom : 0.5pt solid gray;
+ margin-bottom : 10pt;
+ margin-left : 20pt;
+ margin-right : 20pt;
+ margin-top : 15pt;
+ page-break-inside : avoid;
+}
+
+
+DIV.ShortGraph *.NodeName {
+ font-weight : bold;
+ width : 100%;
+}
+
+DIV.ShortGraph *.NodeDescr {
+ margin-bottom : 5pt;
+ width : 100%;
+}
+
+*.GraphImage {
+ text-align: center;
+}
+
+*.GraphImage IMG {
+ border-width : 0;
+ border-color : transparent;
+ float : none;
+}
+
+
+/* In tokenset display, short graphs are placed in two
+ columns on the screen, but one column on printer */
+
+DIV.ShortLeft, DIV.ShortRight {
+ width : 100%;
+}
+
+
+
+*.BottomShortcuts {
+ display : none;
+}
+
+
+*.TopMenu, *.BottomMenu {
+ display : none;
+}
+
+
+*.Footer {
+ background-color : transparent;
+ border-bottom : 0 solid black;
+ border-left : 0 solid black;
+ border-right : 0 solid black;
+ border-top : 0.75pt solid black;
+ color : black;
+ font-size : 6pt;
+ margin : 0 0 10pt;
+ padding-bottom : 0;
+ padding-left : 0;
+ padding-right : 0;
+ padding-top : 0;
+ text-align : right;
+ width : 100%;
+}
+
+*.SiteInfo, *.TreeInfo {
+ padding-left : 5em;
+}
diff --git a/torrus/sup/webplain/torrus-report.css b/torrus/sup/webplain/torrus-report.css
new file mode 100644
index 0000000..e18dda8
--- /dev/null
+++ b/torrus/sup/webplain/torrus-report.css
@@ -0,0 +1,172 @@
+/*
+ Torrus Renderer stylesheet.
+ Designed by Stanislav Sinyagin
+
+ $Id: torrus-report.css,v 1.1 2010-12-27 00:04:04 ivan Exp $
+ */
+BODY {
+ background-color : white;
+ color : black;
+ font-family : verdana, arial, helvetica, sans-serif;
+ font-size : 10pt;
+ margin : 0;
+ padding-bottom : 0;
+ padding-left : 0;
+ padding-right : 0;
+ padding-top : 0;
+ voice-family : inherit, male;
+}
+
+H1, H2, H3 {
+ background-color : transparent;
+ color : black;
+}
+
+
+H1 {
+ font-size : 18pt;
+ font-weight : 900;
+ line-height : 20pt;
+}
+
+H2 {
+ font-size : 16pt;
+ font-weight : 700;
+ line-height : 18pt;
+}
+
+H3 {
+ font-size : 14pt;
+ line-height : 16pt;
+}
+
+A, A:link, A:visited {
+ background-color : transparent;
+ color : black;
+ text-decoration : none;
+}
+
+A:hover {
+ background-color : #eee;
+ color : inherit;
+}
+
+*.Header {
+ background-color : transparent;
+ border-bottom : 0.5pt solid black;
+ border-left : 0 solid black;
+ border-right : 0 solid black;
+ border-top : 0.5pt solid black;
+ color : black;
+ font-size : 9pt;
+ font-weight : 700;
+ margin : 5pt 0 10pt;
+ padding-bottom : 0;
+ padding-left : 10pt;
+ padding-right : 0;
+ padding-top : 10pt;
+}
+
+
+DIV.CurrentTime {
+ float: right;
+ font-size : 9px;
+ text-align: right;
+}
+
+*.Content, *.SingleColumnContent {
+ margin-bottom : 0;
+ margin-left : 5pt;
+ margin-right : 5pt;
+ margin-top : 0;
+ padding-bottom : 10pt;
+ padding-left : 10pt;
+ padding-right : 10pt;
+ padding-top : 10pt;
+}
+
+
+DIV.CurrentTree {
+ background-color : transparent;
+ margin-bottom : 4pt;
+}
+
+
+TABLE.ReportTable {
+ font-size : 9pt;
+ border-collapse : collapse;
+}
+
+CAPTION.ReportTable {
+ font-size : 14pt;
+ font-weight : 700;
+ caption-side: top;
+ padding-bottom : 7pt;
+ padding-top : 10pt;
+}
+
+TR.ReportHeadRow {
+ background-color : #999;
+}
+
+
+TR.ReportEvenRow {
+ background-color : #ccc;
+}
+
+TD {
+ border : solid 1px #aaa;
+ padding-bottom : 1pt;
+ padding-top : 3pt;
+ padding-left : 2pt;
+ padding-right : 2pt;
+ width : 10%;
+}
+
+TD.ReportHeadCell {
+ font-weight : 700;
+ text-align : center;
+}
+
+TD.ReportCell {
+ text-align : right;
+ padding-left : 7pt;
+}
+
+TD.ReportFirstCell {
+ text-align : left;
+ font-weight : 600;
+}
+
+
+DIV.ReportLegend {
+ margin-top: 60pt;
+ margin-left: 10pt;
+ font-size : 7pt;
+}
+
+SPAN.ReportLegendTerm {
+ font-weight : 700;
+ padding-right : 2pt;
+}
+
+*.Footer {
+ background-color : transparent;
+ border-bottom : 0 solid black;
+ border-left : 0 solid black;
+ border-right : 0 solid black;
+ border-top : 0.75pt solid black;
+ color : black;
+ font-size : 6pt;
+ margin : 0 0 10pt;
+ padding-bottom : 0;
+ padding-left : 0;
+ padding-right : 0;
+ padding-top : 0;
+ text-align : right;
+ width : 100%;
+}
+
+*.SiteInfo, *.TreeInfo {
+ padding-left : 5em;
+}
diff --git a/torrus/sup/webplain/torrus.css b/torrus/sup/webplain/torrus.css
new file mode 100644
index 0000000..a20e008
--- /dev/null
+++ b/torrus/sup/webplain/torrus.css
@@ -0,0 +1,503 @@
+/*
+ Torrus Renderer stylesheet.
+ Designed by BlueRobot.com
+ Modified by Ian Holsman <ian@holsman.net>
+ Optimised by Stanislav Sinyagin
+
+ $Id: torrus.css,v 1.1 2010-12-27 00:04:04 ivan Exp $
+ */
+BODY {
+ background-color : white;
+ color : #333;
+ font-family : verdana, arial, helvetica, sans-serif;
+ font-size : 11px;
+ margin : 0;
+ padding-bottom : 0;
+ padding-left : 0;
+ padding-right : 0;
+ padding-top : 0;
+ voice-family : inherit, male;
+}
+
+H1, H2, H3, P {
+ background-color : inherit;
+ margin : 0 0 15px;
+ padding-bottom : 0;
+ padding-left : 0;
+ padding-right : 0;
+ padding-top : 0;
+}
+
+H1, H2 {
+ color : #ccc;
+}
+
+H1 {
+ font-size : 28px;
+ font-weight : 900;
+ line-height : 28px;
+}
+
+H2 {
+ font-size : 20px;
+ font-weight : 700;
+ line-height : 20px;
+}
+
+H3 {
+ color : #333;
+ font-size : 18px;
+ line-height : 18px;
+}
+
+P {
+ clear : both; /* needed for Opera 6.12 */
+ color : #333;
+ float : none;
+ font-size : 11px;
+ line-height : 20px;
+}
+
+A {
+ background-color : inherit;
+ color : #09c;
+ font-weight : 600;
+ text-decoration : none;
+}
+
+A:link, A:visited {
+ background-color : inherit;
+ color : #09c;
+}
+
+A:hover {
+ background-color : #eee;
+ color : inherit;
+}
+
+DIV.CurrentPath A:hover {
+ background-color : #ccc;
+ color : inherit;
+}
+
+
+*.Header {
+ background-color : #eee;
+ border-bottom : 1px solid black;
+ border-left : 0 solid black;
+ border-right : 0 solid black;
+ border-top : 1px solid black;
+ color : inherit;
+ margin : 1em 0 1em;
+ padding-bottom : 0;
+ padding-left : 20px;
+ padding-right : 0;
+ padding-top : 17px;
+}
+
+
+*.Header A:hover {
+ background-color : #ccc;
+ color : inherit;
+}
+
+DIV.LoginInfo {
+ position : absolute;
+ right : 1em;
+ top : 1.5em;
+ font-size : 9px;
+ text-align : right;
+}
+
+DIV.LoginInfo SPAN.UserName {
+ display : block;
+}
+
+DIV.LoginInfo SPAN.Logout {
+ display : block;
+}
+
+SPAN.Logout A {
+ font-size : 9px;
+}
+
+DIV.CurrentTime {
+ float: right;
+ font-size : 9px;
+ padding-right: 1em;
+ text-align: right;
+}
+
+*.Content, *.SingleColumnContent {
+ display : block;
+ float : left;
+ margin-bottom : 20px;
+ margin-left : 0px;
+ margin-right : 0px;
+ margin-top : 0;
+ padding-bottom : 10px;
+ padding-left : 10px;
+ padding-right : 10px;
+ padding-top : 10px;
+}
+
+*.SingleColumnContent {
+ padding-right : 0px;
+ width : 100%;
+}
+
+*.Content {
+ padding-right : 0px;
+ width : 70%;
+}
+
+DIV.PathMenu {
+ background-color : #eee;
+ border-bottom : 1px dashed #999;
+ border-left : 1px dashed #999;
+ border-right : 1px dashed #999;
+ border-top : 1px dashed #999;
+ color : inherit;
+ float : left;
+ line-height : 17px;
+ margin-left : 5px;
+ padding-bottom : 10px;
+ padding-left : 10px;
+ padding-right : 10px;
+ padding-top : 10px;
+ position : relative;
+ min-width : 15%; /* does not work in IE6 */
+}
+
+SPAN.PathElement {
+ display : block;
+}
+
+SPAN.TreeName {
+ font-weight : bold;
+}
+
+*.PathMenu DIV.CurrentTree {
+ font-size : 10px;
+ overflow : hidden;
+ width : 150px; /* compensate unsupported min-width in IE6 */
+}
+
+*.PathMenuHeader {
+ font-size : 10px;
+}
+
+*.SingleColumnContent DIV.CurrentTree {
+ padding-bottom : 5px;
+}
+
+*.SingleColumnContent DIV.CurrentTree {
+ color : inherit;
+ font-size : 10px;
+}
+
+DIV.Legend {
+ background-color : #eee;
+ color : inherit;
+ clear : both;
+ float : none;
+ font-size : 10px;
+ margin-bottom : 10px;
+ position : relative;
+ width : 90%;
+}
+
+DIV.LegendRow {
+ clear : both;
+ float : none;
+ margin-bottom: 2px;
+}
+
+DIV.LegendRow SPAN.LegendName {
+ font-weight : bold;
+ text-align : left;
+ padding-right : 5px;
+}
+
+DIV.LegendRow SPAN.LegendValue {
+ text-align : left;
+}
+
+P.Variables SPAN.VariableName {
+ font-weight : bold;
+}
+
+DIV.Monitors {
+ clear : both;
+ float : none;
+ font-size : 10px;
+ margin-bottom : 10px;
+ position : relative;
+ width : 90%;
+}
+
+SPAN.MonitorName {
+ padding-left: 20px;
+ padding-right: 20px;
+}
+
+
+DIV.Listing {
+ clear : both;
+ float : none;
+ font-size : 11px;
+ margin-bottom : 10px;
+ width : 90%;
+}
+
+*.ListRow, *.ListRowEven {
+ clear : both;
+ margin-top : 3px;
+}
+
+*.ListRowEven {
+ background-color : #eee;
+}
+
+*.ListRowEven A:hover {
+ background-color : #ccc;
+ color : inherit;
+}
+
+DIV.Listing *.NodeName {
+ display : block;
+ font-weight : bold;
+ padding-left : 10px;
+ text-align : left;
+}
+
+DIV.Listing *.NodeDescr, DIV.Listing *.TokensetDescr {
+ display : block;
+ padding-left : 30px;
+}
+
+*.RecursiveListRow {
+ clear : both;
+ margin-top : 3px;
+ margin-left : 20px;
+ margin-right : 2px;
+ padding-bottom: 2px;
+ border: 1px solid #eee;
+}
+
+
+DIV.ShortGraph *.NodeDescr {
+ font-weight : 600;
+ padding-left : 10px;
+}
+
+DIV.Graph, DIV.ShortGraph {
+ clear : left;
+ float : left;
+ margin-bottom : 10px;
+ margin-top : 15px;
+ position : relative;
+ width : 100%;
+}
+
+
+DIV.ShortGraph *.NodeName, DIV.ShortGraph *.NodeDescr {
+ clear : both;
+ float : none;
+ font-size : 11px;
+ width : 100%;
+}
+
+DIV.ShortGraph IMG {
+ border-width : 0;
+ border-color : transparent;
+ clear : both;
+ float : left;
+}
+
+/* In tokenset display, short graphs are placed in two
+ columns: left and right */
+
+DIV.ShortLeft, DIV.ShortRight {
+ margin-bottom : 5px;
+ page-break-inside : avoid;
+ position : relative;
+ width : 50%;
+}
+
+DIV.ShortLeft {
+ clear : left;
+ float : left;
+}
+
+DIV.ShortRight {
+ clear : right;
+ float : right;
+}
+
+
+FORM.LoginForm {
+ color : #333;
+ font-size : 11px;
+ line-height : 20px;
+ width : 50%;
+}
+
+SPAN.LoginTitle {
+ float : left;
+ width : 20%;
+}
+
+SPAN.LoginInput INPUT {
+ width : 30%;
+}
+
+SPAN.LoginInput INPUT.Remember {
+ width : auto;
+}
+
+
+*.BottomShortcuts {
+ clear : both;
+ float : none;
+ font-size : 11px;
+ height : 15px;
+ margin : 25px 0 20px;
+ padding-bottom : 0;
+ padding-left : 0;
+ padding-right : 0;
+ padding-top : 0;
+ position : relative;
+}
+
+
+*.TopMenu {
+ font-size : 9px;
+ padding-left : 1em;
+}
+
+*.BottomMenu {
+ clear : both;
+ float : none;
+ font-size : 9px;
+ /* height : 15px; */
+ margin : 50px 0 0 0;
+ padding-bottom : 0;
+ padding-left : 1em;
+ padding-right : 0;
+ padding-top : 0;
+ width : 100%;
+}
+
+
+
+*.TopMenu A, *.TopMenu A:link, *.TopMenu A:visited,
+*.BottomMenu A, *.BottomMenu A:link, *.BottomMenu A:visited {
+ color: #A1C3CB;
+ font-size : 9px;
+}
+
+
+*.Footer {
+ background-color : #eee;
+ border-bottom : 1px solid black;
+ border-left : 0 solid black;
+ border-right : 0 solid black;
+ border-top : 1px solid black;
+ clear : both;
+ color : inherit;
+ float : none;
+ font-size : 10px;
+ height : 15px;
+ line-height : 12px;
+ margin : 0 0 10px;
+ padding-bottom : 0;
+ padding-left : 0;
+ padding-right : 1em;
+ padding-top : 0;
+ text-align : right;
+}
+
+*.Footer A {
+ font-size : 10px;
+}
+
+*.SiteInfo, *.TreeInfo {
+ padding-left : 5em;
+}
+
+*.HelpContent {
+ font-size: 12px;
+ line-height: 15px;
+ padding-bottom: 5px;
+ padding-left: 2em;
+ padding-right: 2em;
+ padding-top: 5px;
+}
+
+*.HelpContent P {
+ font-size: 12px;
+}
+
+*.HelpHeader {
+ color : #ccc;
+ font-size : 13px;
+ font-weight: 800;
+ margin : 10px 0 10px;
+}
+
+*.HelpFooter {
+ position: absolute;
+ bottom: 0;
+ margin : 0 0 10px;
+}
+
+*.HelpPathHeader {
+ font-weight: 700;
+ margin : 10px 0 10px;
+}
+
+*.HelpMessage {
+ padding-left: 2em;
+ padding-right: 2em;
+}
+
+*.SetDateDialog {
+ font-size : 9px;
+ padding-bottom : 0;
+ padding-left : 2em;
+ padding-right : 2em;
+ padding-top : 0;
+}
+
+*.SetDateDialog FORM {
+ display : inline;
+}
+
+*.SetDateDialog INPUT {
+ font-size : 9px;
+}
+
+
+*.SearchDialog {
+ font-size : 9px;
+ padding-bottom : 0;
+ padding-left : 2em;
+ padding-right : 2em;
+ padding-top : 0;
+}
+
+*.SearchDialog FORM {
+ display : inline;
+}
+
+*.SearchDialog INPUT {
+ font-size : 9px;
+}
+
+
+
+*.ErrorMessage {
+ color : red;
+ height : 15px;
+}