Version 2.5.6-1

SVN revision: 1185
This commit is contained in:
2005-01-25 21:06:56 +00:00
parent 2d91668c65
commit 264e396f18
13 changed files with 80 additions and 57 deletions
+2 -2
View File
@@ -11,8 +11,8 @@ On PC4534:
- Do a "make indent"
- Do a "make loc"
- Translate new strings in eloglang.german
- c:\elog> cvs commit -m "Version x.x.x"
- build xxx
- c:\elog> cvs commit -m "Version x.x.x-1"
- build xxx-1
On PC5082:
+29
View File
@@ -1,3 +1,32 @@
Version 2.5.6, released Januar 25th, 2005
=========================================
- Implemented 'Mirror exclude'
- Switched from GIF to PNG
- Remove any CR/LF from attributes submitted from browser
- Implemented OR'ing of MOptions values in find page
- Display thread in single entry page if present
- Implemented 'show attributes'
- Made extendable attributes work with MOptions
- Added message_id and date to CSV export
- Made extendable attributes work with conditional attributes
- Logbook hierarchy can now be deeper than two levels
- Cancel button on 'create new logbook' now also works without password files
- Fixed non-functioning Cancel button in 'create new logbook'
- Changed date format to RFC-822 in RSS feed
- Fixed endless loop with handcrafted POST header
- Changed locale to 'C' for email header date
- Use hostname from -n parameter for redirection if given
- Fixed attribute substitutions in 'use email from'
- Fixed problem with invalid RFC2822 date in email header for different locale
- Implemented 'sort attribute'
- Look for parameters first under conditions, then unconditional if not found
- Fixed bug in XML export
- Implemented USERLIST as attribute type
- Increased NAME_LENGTH to 1500, requires a stack size of 4MB
- Changed charset for RSS feeds
- Fixed wrong link if last entry in logbook has been moved
Version 2.5.5, released November 3rd, 2004
==========================================
+1 -1
View File
@@ -25,7 +25,7 @@
&nbsp;[<a class="nav" href="#links">Links</a>]&nbsp; *&nbsp;</div>
<P class="Sub">Home of the <i>Electronic Logbook</i> package by <a href="mailto:Stefan.Ritt@psi.ch">
Stefan Ritt</a></P>
<div class="version">Current version is : 2.5.5</div>
<div class="version">Current version is : 2.5.6</div>
<hr>
<a name="whatis">
<div class="section">&nbsp; What is ELOG ? &nbsp;</div>
-1
View File
@@ -339,7 +339,6 @@ Hide all =
Show all =
This logbook requires authentication =
Attachment file <b>"%s"</b> empty or not found =
Please increase <b>"Max content length"</b> in config file =
Text fields may contain regular expressions =
Case sensitive =
List =
-2
View File
@@ -340,8 +340,6 @@ Previous Year =
Next Year = Ñëåäâàùà ãîäèíà
Error: Command "<b>%s</b>" not allowed = Ãðåøêà: Êîìàíäàòà "<b>%s</b>" íå å ïîçâîëåíà
Attachment file <b>"%s"</b> empty or not found = Ïðèêà÷åíèÿò ôàéë <b>"%s"</b> å ïðàçåí èëè íå å íàìåðåí
Please increase <b>"Max content length"</b> in config file = Ìîëÿ, óâåëè÷åòå <b>"Max content length"</b> âúâ ôàéëà ñ íàñòðîéêè
#
#---- please translate following items and then remove this comment ----#
#
-1
View File
@@ -339,7 +339,6 @@ Hide all =
Show all =
This logbook requires authentication =
Attachment file <b>"%s"</b> empty or not found =
Please increase <b>"Max content length"</b> in config file =
Text fields may contain regular expressions =
Case sensitive =
List =
-1
View File
@@ -337,7 +337,6 @@ Hide all = Alles Verbergen
Show all = Alles laten zien
This logbook requires authentication = Dit logboek vereist authenticatie
Attachment file <b>"%s"</b> empty or not found = Bijlage bestand <b>"%s"</b> leeg of niet gevonden
Please increase <b>"Max content length"</b> in config file = Verhoog astublieft de <b>"Max content length" (maximale lengte van inhoud)</b> in het configuratie bestand
Text fields may contain regular expressions = Tekstvelden kunnen reguliere uitdrukkingen bevatten
Case sensitive = Hoofdlettergevoelig
From = Van
-1
View File
@@ -334,7 +334,6 @@ Hide all = Cacher tout
Show all = Montrer tout
This logbook requires authentication = Ce registre nécessite une authentification
Attachment file <b>"%s"</b> empty or not found = Fichier joint <b>"%s"</b> vide ou non trouvé
Please increase <b>"Max content length"</b> in config file = Veuiller augmenter <b>"Max content length"</b> dans le fichier de configuration
Text fields may contain regular expressions = Les champs "texte" peuvent contenir des expressions régulières
Case sensitive = Tient compte de la casse
List = Liste
-1
View File
@@ -334,7 +334,6 @@ Hide all = Alle verstecken
Show all = Alle anzeigen
This logbook requires authentication = Dieses Logbuch erfordert Authentifizierung
Attachment file <b>"%s"</b> empty or not found = Datei <b>"%s"</b> ist leer oder nicht vorhanden
Please increase <b>"Max content length"</b> in config file = Bitte <b>"Max content length"</b> in Konfigurationsdatei erhöhen
Text fields may contain regular expressions = Texteingabefelder können Reguläre Ausdrücke enthalten
Case sensitive = Großschrteibung beachten
List = Liste
-1
View File
@@ -338,7 +338,6 @@ Hide all =
Show all =
This logbook requires authentication =
Attachment file <b>"%s"</b> empty or not found =
Please increase <b>"Max content length"</b> in config file =
Text fields may contain regular expressions =
Case sensitive =
List =
-1
View File
@@ -337,7 +337,6 @@ Hide all =
Show all =
This logbook requires authentication =
Attachment file <b>"%s"</b> empty or not found =
Please increase <b>"Max content length"</b> in config file =
Text fields may contain regular expressions =
Case sensitive =
List =
-2
View File
@@ -331,8 +331,6 @@ Hide all = Esconder todo
Show all = Mostrar todo
This logbook requires authentication = Este libro de anotaciones requiere autenticación
Attachment file <b>"%s"</b> empty or not found = Archivo adjunto <b>"%s"</b> está vacio o no se encontró
Please increase <b>"Max content length"</b> in config file = Por favor aumente <b>"Max content length"</b> en el archivo de configuración
#
#---- please translate following items and then remove this comment ----#
#
+48 -43
View File
@@ -6,6 +6,9 @@
Contents: Web server program for Electronic Logbook ELOG
$Log$
Revision 1.546 2005/01/25 21:06:56 ritt
Version 2.5.6-1
Revision 1.545 2005/01/25 20:49:18 ritt
Implemented 'Mirror exclude'
@@ -746,7 +749,7 @@
\********************************************************************/
/* Version of ELOG */
#define VERSION "2.5.5-4"
#define VERSION "2.5.6-1"
char cvs_revision[] = "$Id$";
/* ELOG identification */
@@ -874,7 +877,7 @@ typedef int INT;
#define DEFAULT_TIME_FORMAT "%c"
#define DEFAULT_DATE_FORMAT "%x"
#define DEFAULT_HTTP_CHARSET "ISO-8859-1"
#define SUCCESS 1
@@ -3454,7 +3457,7 @@ void check_config()
void retrieve_email_from(LOGBOOK * lbs, char *ret, char attrib[MAX_N_ATTR][NAME_LENGTH])
{
char str[256];
char slist[MAX_N_ATTR+10][NAME_LENGTH], svalue[MAX_N_ATTR+10][NAME_LENGTH];
char slist[MAX_N_ATTR + 10][NAME_LENGTH], svalue[MAX_N_ATTR + 10][NAME_LENGTH];
int i;
if (!getcfg(lbs->name, "Use Email from", str, sizeof(str))) {
@@ -4207,7 +4210,7 @@ INT el_retrieve(LOGBOOK * lbs,
close(fh);
if (strncmp(message, "$@MID@$:", 8) != 0) {
free(message);
free(message);
/* file might have been edited, rebuild index */
el_build_index(lbs, TRUE);
return el_retrieve(lbs, message_id, date, attr_list, attrib, n_attr,
@@ -6376,9 +6379,9 @@ LBLIST get_logbook_hierarchy(void)
for (j = 0; j < root->n_members; j++) {
if (i != j && root->member[j] != NULL &&
(pgrp = get_subgroup(root->member[j], root->member[i]->name)) != NULL) {
(pgrp = get_subgroup(root->member[j], root->member[i]->name)) != NULL) {
/* node is allocated twice, so free one...*/
/* node is allocated twice, so free one... */
xfree(*pgrp);
/* ... and reference the other */
@@ -6808,7 +6811,7 @@ void set_login_cookies(LOGBOOK * lbs, char *user, char *enc_pwd)
if (getcfg(lbs->name, "Login expiration", str, sizeof(str)) || atof(str) > 0)
strcpy(exp, str);
else if (isparam("remember")) {
strcpy(exp, "744"); /* one month by default = 31*24 */
strcpy(exp, "744"); /* one month by default = 31*24 */
} else
exp[0] = 0;
@@ -7966,7 +7969,7 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
rsprintf("<tr><td nowrap width=\"10%%\" class=\"attribname\">%s:</td>", loc("Entry time"));
rsprintf("<td class=\"attribvalue\">%s\n", str);
rsprintf("<input type=hidden name=entry_date value=\"%s\"></td></tr>\n", date);
if (condition[0])
rsprintf("<input type=hidden name=condition value=\"%s\"></td></tr>\n", condition);
@@ -7986,17 +7989,17 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
/* generate list of attributes to show */
if (getcfg(lbs->name, "Show attributes", str, sizeof(str))) {
n_disp_attr = strbreak(str, list, MAX_N_ATTR, ",");
for (i=0 ; i<n_disp_attr ; i++) {
for (j=0 ; j<n_attr ; j++)
for (i = 0; i < n_disp_attr; i++) {
for (j = 0; j < n_attr; j++)
if (strieq(attr_list[j], list[i]))
break;
if (!strieq(attr_list[j], list[i]))
if (!strieq(attr_list[j], list[i]))
/* attribute not found */
j = 0;
j = 0;
attr_index[i] = j;
}
} else {
for (i=0 ; i<n_attr ; i++)
for (i = 0; i < n_attr; i++)
attr_index[i] = i;
n_disp_attr = n_attr;
}
@@ -8178,7 +8181,7 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
rsprintf("</td>\n");
} else if (attr_flags[index] & AF_USERLIST) {
rsprintf("<td%s class=\"attribvalue\">\n", title);
/* display drop-down box with list of users */
@@ -8188,7 +8191,7 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
/* display emtpy option */
rsprintf("<option value=\"\">- %s -\n", loc("please select"));
for (i = 0; ; i++) {
for (i = 0;; i++) {
if (!enum_user_line(lbs, i, login_name))
break;
get_user_line(lbs->name, login_name, NULL, str, NULL, NULL);
@@ -8239,12 +8242,12 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
if (attr_flags[index] & AF_MULTI)
rsprintf
("<input type=\"text\" size=20 maxlength=%d name=\"%s_0\" value=\"%s\" onChange=\"mod();\">\n",
input_maxlen, ua, attrib[index]);
("<input type=\"text\" size=20 maxlength=%d name=\"%s_0\" value=\"%s\" onChange=\"mod();\">\n",
input_maxlen, ua, attrib[index]);
else
rsprintf
("<input type=\"text\" size=20 maxlength=%d name=\"%s\" value=\"%s\" onChange=\"mod();\">\n",
input_maxlen, ua, attrib[index]);
("<input type=\"text\" size=20 maxlength=%d name=\"%s\" value=\"%s\" onChange=\"mod();\">\n",
input_maxlen, ua, attrib[index]);
rsprintf("</td>\n");
@@ -13291,7 +13294,7 @@ void display_line(LOGBOOK * lbs, int message_id, int number, char *mode,
if (highlight != message_id)
rsprintf("<a href=\"%s\">", ref);
if (attr_icon[0])
if (attr_icon[0])
rsprintf("<img border=0 src=\"icons/%s\"></a>&nbsp;", attr_icon);
else {
/* if top level only, display reply icon if message has a reply */
@@ -13706,8 +13709,7 @@ void display_line(LOGBOOK * lbs, int message_id, int number, char *mode,
void display_reply(LOGBOOK * lbs, int message_id, int printable,
int expand, int n_line, int n_attr_disp,
char disp_attr[MAX_N_ATTR + 4][NAME_LENGTH],
BOOL show_text, int level, int highlight)
char disp_attr[MAX_N_ATTR + 4][NAME_LENGTH], BOOL show_text, int level, int highlight)
{
char *date, *text, *in_reply_to, *reply_to, *encoding, *locked_by, *attachment, *attrib, *p;
int status, size;
@@ -13744,13 +13746,13 @@ void display_reply(LOGBOOK * lbs, int message_id, int printable,
display_line(lbs, message_id, 0, "threaded", expand, level, printable,
n_line, FALSE, date, in_reply_to, reply_to, n_attr_disp,
disp_attr, (void *) attrib, lbs->n_attr, text, show_text,
disp_attr, (void *) attrib, lbs->n_attr, text, show_text,
NULL, encoding, 0, NULL, locked_by, highlight);
if (reply_to[0]) {
p = reply_to;
do {
display_reply(lbs, atoi(p), printable, expand, n_line, n_attr_disp,
display_reply(lbs, atoi(p), printable, expand, n_line, n_attr_disp,
disp_attr, show_text, level + 1, highlight);
while (*p && isdigit(*p))
@@ -14687,8 +14689,8 @@ void show_elog_list(LOGBOOK * lbs, INT past_n, INT last_n, INT page_n, char *inf
menu_str[1000], menu_item[MAX_N_LIST][NAME_LENGTH], param[NAME_LENGTH], format[80],
sort_attr[MAX_N_ATTR + 4][NAME_LENGTH];
char *p, *pt, *pt1, *pt2, *slist, *svalue, *gattr, line[1024], iattr[256];
BOOL show_attachments, threaded, csv, xml, mode_commands, expand, filtering, disp_filter,
show_text, searched, found;
BOOL show_attachments, threaded, csv, xml, mode_commands, expand, filtering, disp_filter,
show_text, searched, found;
time_t ltime, ltime_start, ltime_end, now, ltime1, ltime2;
struct tm tms, *ptms;
MSG_LIST *msg_list;
@@ -15036,8 +15038,8 @@ void show_elog_list(LOGBOOK * lbs, INT past_n, INT last_n, INT page_n, char *inf
}
}
}
/* check if sort by attribute */
if (strieq(getparam("sort"), attr_list[i])
|| strieq(getparam("rsort"), attr_list[i]))
@@ -15114,7 +15116,7 @@ void show_elog_list(LOGBOOK * lbs, INT past_n, INT last_n, INT page_n, char *inf
/* apply filter for AF_MULTI attributes */
for (i = 0; i < lbs->n_attr; i++) {
if (attr_flags[i] & AF_MULTI) {
/* OR of any of the values */
searched = found = FALSE;
for (j = 0; j < MAX_N_LIST && attr_options[i][j][0]; j++) {
@@ -15145,7 +15147,7 @@ void show_elog_list(LOGBOOK * lbs, INT past_n, INT last_n, INT page_n, char *inf
searched = found = FALSE;
for (i = 0; i < lbs->n_attr; i++) {
if (*getparam(attr_list[i])) {
/* check non-multi attributes */
@@ -15223,8 +15225,9 @@ void show_elog_list(LOGBOOK * lbs, INT past_n, INT last_n, INT page_n, char *inf
continue;
}
}
} /* if (filtering) */
}
/* if (filtering) */
/* in threaded mode, find message head */
if (threaded && in_reply_to_id) {
do {
@@ -16067,9 +16070,9 @@ void show_elog_list(LOGBOOK * lbs, INT past_n, INT last_n, INT page_n, char *inf
void show_elog_thread(LOGBOOK * lbs, int message_id)
{
int i, size, status, in_reply_to_id, head_id, n_display, n_attr_disp;
char date[80], attrib[MAX_N_ATTR][NAME_LENGTH], *text, in_reply_to[80],
reply_to[MAX_REPLY_TO * 10], attachment[MAX_ATTACHMENTS][MAX_PATH_LENGTH],
encoding[80], locked_by[256], disp_attr[MAX_N_ATTR + 4][NAME_LENGTH];
char date[80], attrib[MAX_N_ATTR][NAME_LENGTH], *text, in_reply_to[80],
reply_to[MAX_REPLY_TO * 10], attachment[MAX_ATTACHMENTS][MAX_PATH_LENGTH],
encoding[80], locked_by[256], disp_attr[MAX_N_ATTR + 4][NAME_LENGTH];
char *p;
text = xmalloc(TEXT_SIZE);
@@ -16077,11 +16080,11 @@ void show_elog_thread(LOGBOOK * lbs, int message_id)
/* retrieve message */
size = TEXT_SIZE;
status =
el_retrieve(lbs, message_id, date, attr_list, attrib,
lbs->n_attr, text, &size, in_reply_to, reply_to, attachment, encoding, locked_by);
el_retrieve(lbs, message_id, date, attr_list, attrib,
lbs->n_attr, text, &size, in_reply_to, reply_to, attachment, encoding, locked_by);
in_reply_to_id = atoi(in_reply_to);
/* find message head */
head_id = message_id;
if (in_reply_to_id) {
@@ -16109,8 +16112,8 @@ void show_elog_thread(LOGBOOK * lbs, int message_id)
size = TEXT_SIZE;
status =
el_retrieve(lbs, head_id, date, attr_list, attrib,
lbs->n_attr, text, &size, in_reply_to, reply_to, attachment, encoding, locked_by);
el_retrieve(lbs, head_id, date, attr_list, attrib,
lbs->n_attr, text, &size, in_reply_to, reply_to, attachment, encoding, locked_by);
rsprintf("<tr><td><table width=100%% border=0 cellpadding=0 cellspacing=0>\n");
@@ -16606,12 +16609,12 @@ void submit_elog(LOGBOOK * lbs)
/* check for extended attributs */
if (isparam("condition")) {
set_condition(getparam("condition"));
/* rescan attributes */
n_attr = scan_attributes(lbs->name);
} else
n_attr = lbs->n_attr;
for (i = 0; i < n_attr; i++) {
strcpy(ua, attr_list[i]);
btou(ua);
@@ -20120,7 +20123,7 @@ void decode_post(LOGBOOK * lbs, char *string, char *boundary, int length)
while (*string == '-' || *string == '\n' || *string == '\r')
string++;
} else
return; /* invalid request */
return; /* invalid request */
} while ((int) (string - pinit) < length);
interprete(lbs->name, "");
@@ -20636,7 +20639,9 @@ void server_loop(void)
("Error: Content length (%d) larger than maximum content length (%d)"),
content_length, _max_content_length);
strcat(str, "<br>");
strcat(str, loc("Please increase <b>\"Max content length\"</b> in [global] part of config file and restart elogd"));
strcat(str,
loc
("Please increase <b>\"Max content length\"</b> in [global] part of config file and restart elogd"));
keep_alive = FALSE;
show_error(str);
goto redir;