Made preset $date for date attributes working

SVN revision: 813
This commit is contained in:
Stefan Ritt 2004-03-06 11:41:58 +00:00
parent 70d01d43a0
commit d670797ea4

View File

@ -6,6 +6,9 @@
Contents: Web server program for Electronic Logbook ELOG Contents: Web server program for Electronic Logbook ELOG
$Log$ $Log$
Revision 1.280 2004/03/06 11:41:58 midas
Made preset $date for date attributes working
Revision 1.279 2004/03/05 22:35:15 midas Revision 1.279 2004/03/05 22:35:15 midas
Added Prepend/Append on Edit/Reply Added Prepend/Append on Edit/Reply
@ -5759,7 +5762,7 @@ void strencode2(char *b, char *text)
/*------------------------------------------------------------------*/ /*------------------------------------------------------------------*/
int build_subst_list(LOGBOOK * lbs, char list[][NAME_LENGTH], char value[][NAME_LENGTH], int build_subst_list(LOGBOOK * lbs, char list[][NAME_LENGTH], char value[][NAME_LENGTH],
char attrib[][NAME_LENGTH]) char attrib[][NAME_LENGTH], BOOL format_date)
{ {
int i; int i;
char str[NAME_LENGTH], format[256]; char str[NAME_LENGTH], format[256];
@ -5803,11 +5806,14 @@ int build_subst_list(LOGBOOK * lbs, char list[][NAME_LENGTH], char value[][NAME_
/* add date */ /* add date */
strcpy(list[i], "date"); strcpy(list[i], "date");
time(&now); time(&now);
ts = localtime(&now); if (format_date) {
if (!getcfg(lbs->name, "Time format", format)) ts = localtime(&now);
strcpy(format, DEFAULT_TIME_FORMAT); if (!getcfg(lbs->name, "Time format", format))
strcpy(format, DEFAULT_TIME_FORMAT);
strftime(str, sizeof(str), format, ts); strftime(str, sizeof(str), format, ts);
} else
sprintf(str, "%d", now);
strcpy(value[i++], str); strcpy(value[i++], str);
@ -6277,12 +6283,6 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
el_lock_message(lbs, message_id, str); el_lock_message(lbs, message_id, str);
} }
} }
} else {
/* get preset attributes */
for (i = 0; i < lbs->n_attr; i++) {
sprintf(str, "p%s", attr_list[i]);
strcpy(attrib[i], getparam(str));
}
} }
} }
@ -6362,7 +6362,7 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
if (getcfg_cond(lbs->name, condition, str, preset)) { if (getcfg_cond(lbs->name, condition, str, preset)) {
/* check if already second reply */ /* check if already second reply */
if (orig_tag[0] == 0) { if (orig_tag[0] == 0) {
i = build_subst_list(lbs, slist, svalue, attrib); i = build_subst_list(lbs, slist, svalue, attrib, TRUE);
sprintf(str, "%d", message_id); sprintf(str, "%d", message_id);
add_subst_list(slist, svalue, "message id", str, &i); add_subst_list(slist, svalue, "message id", str, &i);
add_subst_time(lbs, slist, svalue, "entry time", date, &i); add_subst_time(lbs, slist, svalue, "entry time", date, &i);
@ -6378,7 +6378,7 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
for (index = 0; index < lbs->n_attr; index++) { for (index = 0; index < lbs->n_attr; index++) {
sprintf(str, "Subst on edit %s", attr_list[index]); sprintf(str, "Subst on edit %s", attr_list[index]);
if (getcfg_cond(lbs->name, condition, str, preset)) { if (getcfg_cond(lbs->name, condition, str, preset)) {
i = build_subst_list(lbs, slist, svalue, attrib); i = build_subst_list(lbs, slist, svalue, attrib, TRUE);
sprintf(str, "%d", message_id); sprintf(str, "%d", message_id);
add_subst_list(slist, svalue, "message id", str, &i); add_subst_list(slist, svalue, "message id", str, &i);
add_subst_time(lbs, slist, svalue, "entry time", date, &i); add_subst_time(lbs, slist, svalue, "entry time", date, &i);
@ -6598,7 +6598,9 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
if (!bedit || (breedit && i == 2)) { /* subst on reedit only if preset is under condition */ if (!bedit || (breedit && i == 2)) { /* subst on reedit only if preset is under condition */
i = build_subst_list(lbs, slist, svalue, attrib); /* do not format date for date attributes */
i = build_subst_list(lbs, slist, svalue, attrib,
(attr_flags[index] & AF_DATE) == 0);
strsubst(preset, slist, svalue, i); strsubst(preset, slist, svalue, i);
/* check for index substitution */ /* check for index substitution */
@ -6907,7 +6909,7 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
if (bupload || (!bupload && !breedit) if (bupload || (!bupload && !breedit)
|| (breedit && !getcfg_cond(lbs->name, condition, "Preset text", str))) { || (breedit && !getcfg_cond(lbs->name, condition, "Preset text", str))) {
j = build_subst_list(lbs, slist, svalue, attrib); j = build_subst_list(lbs, slist, svalue, attrib, TRUE);
sprintf(mid, "%d", message_id); sprintf(mid, "%d", message_id);
add_subst_list(slist, svalue, "message id", mid, &j); add_subst_list(slist, svalue, "message id", mid, &j);
add_subst_time(lbs, slist, svalue, "entry time", date, &j); add_subst_time(lbs, slist, svalue, "entry time", date, &j);
@ -6932,7 +6934,7 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
if (!getcfg_cond(lbs->name, condition, "Quote on reply", str) if (!getcfg_cond(lbs->name, condition, "Quote on reply", str)
|| atoi(str) > 0) { || atoi(str) > 0) {
if (getcfg_cond(lbs->name, condition, "Prepend on reply", str)) { if (getcfg_cond(lbs->name, condition, "Prepend on reply", str)) {
j = build_subst_list(lbs, slist, svalue, attrib); j = build_subst_list(lbs, slist, svalue, attrib, TRUE);
sprintf(mid, "%d", message_id); sprintf(mid, "%d", message_id);
add_subst_list(slist, svalue, "message id", mid, &j); add_subst_list(slist, svalue, "message id", mid, &j);
add_subst_time(lbs, slist, svalue, "entry time", date, &j); add_subst_time(lbs, slist, svalue, "entry time", date, &j);
@ -6979,7 +6981,7 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL
if (getcfg_cond(lbs->name, condition, "Append on reply", str)) { if (getcfg_cond(lbs->name, condition, "Append on reply", str)) {
j = build_subst_list(lbs, slist, svalue, attrib); j = build_subst_list(lbs, slist, svalue, attrib, TRUE);
sprintf(mid, "%d", message_id); sprintf(mid, "%d", message_id);
add_subst_list(slist, svalue, "message id", mid, &j); add_subst_list(slist, svalue, "message id", mid, &j);
add_subst_time(lbs, slist, svalue, "entry time", date, &j); add_subst_time(lbs, slist, svalue, "entry time", date, &j);
@ -10338,7 +10340,7 @@ void display_line(LOGBOOK * lbs, int message_id, int number, char *mode,
} }
j = build_subst_list(lbs, (char (*)[NAME_LENGTH])slist, j = build_subst_list(lbs, (char (*)[NAME_LENGTH])slist,
(char (*)[NAME_LENGTH])svalue, attrib); (char (*)[NAME_LENGTH])svalue, attrib, TRUE);
sprintf(str, "%d", message_id); sprintf(str, "%d", message_id);
add_subst_list((char (*)[NAME_LENGTH])slist, (char (*)[NAME_LENGTH])svalue, add_subst_list((char (*)[NAME_LENGTH])slist, (char (*)[NAME_LENGTH])svalue,
"message id", str, &j); "message id", str, &j);
@ -11880,7 +11882,7 @@ void show_elog_list(LOGBOOK * lbs, INT past_n, INT last_n, INT page_n)
/* if value starts with '$', substitute it */ /* if value starts with '$', substitute it */
if (str[0] == '$') { if (str[0] == '$') {
j = build_subst_list(lbs, slist, svalue, attrib); j = build_subst_list(lbs, slist, svalue, attrib, TRUE);
sprintf(mid, "%d", message_id); sprintf(mid, "%d", message_id);
add_subst_list(slist, svalue, "message id", mid, &j); add_subst_list(slist, svalue, "message id", mid, &j);
add_subst_time(lbs, slist, svalue, "entry time", date, &j); add_subst_time(lbs, slist, svalue, "entry time", date, &j);
@ -12075,7 +12077,7 @@ void show_elog_list(LOGBOOK * lbs, INT past_n, INT last_n, INT page_n)
/*---- header ----*/ /*---- header ----*/
if (getcfg(lbs->name, "Summary Page Title", str)) { if (getcfg(lbs->name, "Summary Page Title", str)) {
i = build_subst_list(lbs, slist, svalue, NULL); i = build_subst_list(lbs, slist, svalue, NULL, TRUE);
strsubst(str, slist, svalue, i); strsubst(str, slist, svalue, i);
} else } else
sprintf(str, "ELOG %s", lbs->name); sprintf(str, "ELOG %s", lbs->name);
@ -12665,7 +12667,7 @@ int compose_email(LOGBOOK * lbs, char *mail_to, int message_id,
flags = atoi(str); flags = atoi(str);
if (getcfg(lbs->name, "Use Email from", mail_from)) { if (getcfg(lbs->name, "Use Email from", mail_from)) {
j = build_subst_list(lbs, slist, svalue, attrib); j = build_subst_list(lbs, slist, svalue, attrib, TRUE);
sprintf(str, "%d", message_id); sprintf(str, "%d", message_id);
add_subst_list(slist, svalue, "message id", str, &j); add_subst_list(slist, svalue, "message id", str, &j);
strsubst(mail_from, slist, svalue, j); strsubst(mail_from, slist, svalue, j);
@ -12748,7 +12750,7 @@ int compose_email(LOGBOOK * lbs, char *mail_to, int message_id,
/* compose subject from attributes */ /* compose subject from attributes */
if (getcfg(lbs->name, "Use Email Subject", subject)) { if (getcfg(lbs->name, "Use Email Subject", subject)) {
j = build_subst_list(lbs, slist, svalue, attrib); j = build_subst_list(lbs, slist, svalue, attrib, TRUE);
sprintf(str, "%d", message_id); sprintf(str, "%d", message_id);
add_subst_list(slist, svalue, "message id", str, &j); add_subst_list(slist, svalue, "message id", str, &j);
strsubst(subject, slist, svalue, j); strsubst(subject, slist, svalue, j);
@ -12858,7 +12860,7 @@ int execute_shell(LOGBOOK * lbs, int message_id, char attrib[MAX_N_ATTR][NAME_LE
strlcpy(shell_cmd, sh_cmd, sizeof(shell_cmd)); strlcpy(shell_cmd, sh_cmd, sizeof(shell_cmd));
i = build_subst_list(lbs, slist, svalue, attrib); i = build_subst_list(lbs, slist, svalue, attrib, TRUE);
sprintf(str, "%d", message_id); sprintf(str, "%d", message_id);
add_subst_list(slist, svalue, "message id", str, &i); add_subst_list(slist, svalue, "message id", str, &i);
strsubst(shell_cmd, slist, svalue, i); strsubst(shell_cmd, slist, svalue, i);
@ -13149,7 +13151,7 @@ void submit_elog(LOGBOOK * lbs)
} }
/* compile substitution list */ /* compile substitution list */
n = build_subst_list(lbs, slist, svalue, attrib); n = build_subst_list(lbs, slist, svalue, attrib, TRUE);
if (atoi(getparam("edit_id"))) if (atoi(getparam("edit_id")))
add_subst_list(slist, svalue, "message id", getparam("edit_id"), &n); add_subst_list(slist, svalue, "message id", getparam("edit_id"), &n);
@ -13287,7 +13289,7 @@ void submit_elog(LOGBOOK * lbs)
printf("\n%s to %s\n\n", str, list); printf("\n%s to %s\n\n", str, list);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
j = build_subst_list(lbs, slist, svalue, attrib); j = build_subst_list(lbs, slist, svalue, attrib, TRUE);
sprintf(str, "%d", message_id); sprintf(str, "%d", message_id);
add_subst_list(slist, svalue, "message id", str, &j); add_subst_list(slist, svalue, "message id", str, &j);
add_subst_time(lbs, slist, svalue, "entry time", date, &j); add_subst_time(lbs, slist, svalue, "entry time", date, &j);
@ -13847,7 +13849,7 @@ void show_elog_message(LOGBOOK * lbs, char *dec_path, char *command)
str[0] = 0; str[0] = 0;
if (getcfg(lbs->name, "Page Title", str)) { if (getcfg(lbs->name, "Page Title", str)) {
i = build_subst_list(lbs, slist, svalue, attrib); i = build_subst_list(lbs, slist, svalue, attrib, TRUE);
sprintf(mid, "%d", message_id); sprintf(mid, "%d", message_id);
add_subst_list(slist, svalue, "message id", mid, &i); add_subst_list(slist, svalue, "message id", mid, &i);
add_subst_time(lbs, slist, svalue, "entry time", date, &i); add_subst_time(lbs, slist, svalue, "entry time", date, &i);
@ -14843,7 +14845,7 @@ void show_logbook_node(LBLIST plb, LBLIST pparent, int level, int btop)
if (i < lb_list[index].n_attr) if (i < lb_list[index].n_attr)
sprintf(str + strlen(str), " %s $author", loc("by")); sprintf(str + strlen(str), " %s $author", loc("by"));
} }
j = build_subst_list(&lb_list[index], slist, svalue, attrib); j = build_subst_list(&lb_list[index], slist, svalue, attrib, TRUE);
sprintf(mid, "%d", message_id); sprintf(mid, "%d", message_id);
add_subst_list(slist, svalue, "message id", mid, &j); add_subst_list(slist, svalue, "message id", mid, &j);
add_subst_time(&lb_list[index], slist, svalue, "entry time", date, &j); add_subst_time(&lb_list[index], slist, svalue, "entry time", date, &j);