From ceb2389f879485d0dec9e9e52ce5c74ad9c61bad Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Thu, 6 Jul 2006 14:07:40 +0000 Subject: [PATCH] Implemented 'list conditions' SVN revision: 1696 --- doc/adminguide.html | 2 +- doc/config.html | 19 +++++++++++++++++++ src/elogd.c | 5 ++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/doc/adminguide.html b/doc/adminguide.html index 897c0359..3e0a4045 100755 --- a/doc/adminguide.html +++ b/doc/adminguide.html @@ -278,7 +278,7 @@ having to restart the server. Instead of restarting the server, under Unix one c like "killall -HUP elogd" to tell the server to re-read its configuration.

The many options of this unique but very important file are documented on the separate elogd.cfg syntax page.

+"config.html">elogd.cfg syntax page.

To better control appearance and layout of the logbooks, elogd.cfg may optionally specify the use of additional files containing HTML code, and/or custom "themes" diff --git a/doc/config.html b/doc/config.html index 22c2b4fd..414080b3 100755 --- a/doc/config.html +++ b/doc/config.html @@ -1661,6 +1661,25 @@ Options Location = Main Building{a}, New Building{b}, Old Building{c} specifies for example the condition "Linux AND Main Building". + +

+ Conditions in the list display +

Conditional attributes are usually only used for change items + in the entry form. It might however be desirable to have conditional + attibutes also working in the list display (the page where several + entries are shown on a single page). The value of one attribute can then + for example change which other attributes gets displayed via the + list display option. To enable the evaluation of conditional + attributes for the list display, on uses the option + + It should be noted that this option can cause a significant performance + degradation if many conditional attributes are defines, so it should only + be turned on when it is really needed. +

diff --git a/src/elogd.c b/src/elogd.c index 6ebba386..fe5dba60 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -2660,6 +2660,7 @@ void evaluate_conditions(LOGBOOK * lbs, char attrib[MAX_N_ATTR][NAME_LENGTH]) set_condition(condition); scan_attributes(lbs->name); + return; } } } @@ -14730,7 +14731,9 @@ void display_line(LOGBOOK * lbs, int message_id, int number, char *mode, nowrap = printable ? "" : "nowrap"; skip_comma = FALSE; - evaluate_conditions(lbs, attrib); + if (getcfg(lbs->name, "List conditions", str, sizeof(str)) && + atoi(str) == 1) + evaluate_conditions(lbs, attrib); if (strieq(mode, "Threaded") && getcfg(lbs->name, "Thread display", display, sizeof(display))) {