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
+
+
+ -
+
List conditions = 1
+
+
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))) {