diff --git a/doc/config.html b/doc/config.html index 69ce813e..d61bbfe4 100755 --- a/doc/config.html +++ b/doc/config.html @@ -1018,6 +1018,19 @@ a logbook does not contain an author attribute, another stri be chosen.

+

  • ID display = <string> +
    +This option determines the display of the entry ID. In some applications, the entry ID +can be used as a tag, containing more than just the ID number. For example +

    + +

    + +would display the entry ID as "TAG-1","TAG-2", ... and so on. +

    +


    diff --git a/src/elogd.c b/src/elogd.c index 5bb88af6..8b7e1316 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -6,6 +6,9 @@ Contents: Web server program for Electronic Logbook ELOG $Log$ + Revision 1.288 2004/03/09 09:56:04 midas + Implemented 'ID display' + Revision 1.287 2004/03/08 21:24:43 midas Tried to reduce required stack size in threaded display @@ -10429,8 +10432,23 @@ void display_line(LOGBOOK * lbs, int message_id, int number, char *mode, rsprintf("\"%s\" ", str); } - rsprintf("  %d  \n", ref, - message_id); + if (getcfg(lbs->name, "ID display", display)) { + j = build_subst_list(lbs, (char (*)[NAME_LENGTH])slist, + (char (*)[NAME_LENGTH])svalue, attrib, TRUE); + sprintf(str, "%d", message_id); + add_subst_list((char (*)[NAME_LENGTH])slist, (char (*)[NAME_LENGTH])svalue, + "message id", str, &j); + add_subst_time(lbs, (char (*)[NAME_LENGTH])slist, (char (*)[NAME_LENGTH])svalue, + "entry time", date, &j); + + strsubst(display, (char (*)[NAME_LENGTH])slist, + (char (*)[NAME_LENGTH])svalue, j); + + } else + sprintf(display, "%d", message_id); + + rsprintf("  %s  \n", ref, + display); } } @@ -13741,7 +13759,7 @@ void show_elog_message(LOGBOOK * lbs, char *dec_path, char *command) int message_id, orig_message_id, format_flags[MAX_N_ATTR]; char str[1000], ref[256], file_name[256], attrib[MAX_N_ATTR][NAME_LENGTH]; char date[80], text[TEXT_SIZE], menu_str[1000], cmd[256], cmd_enc[256], - orig_tag[80], reply_tag[MAX_REPLY_TO * 10], + orig_tag[80], reply_tag[MAX_REPLY_TO * 10], display[256], attachment[MAX_ATTACHMENTS][MAX_PATH_LENGTH], encoding[80], locked_by[256], att[256], lattr[256], mid[80]; char menu_item[MAX_N_LIST][NAME_LENGTH], format[80], admin_user[80], @@ -14141,7 +14159,22 @@ void show_elog_message(LOGBOOK * lbs, char *dec_path, char *command) /* browsing flag to distinguish "/../=" from browsing */ rsprintf("\n"); - rsprintf("%s: %d\n", loc("Message ID"), message_id); + if (getcfg(lbs->name, "ID display", display)) { + j = build_subst_list(lbs, (char (*)[NAME_LENGTH])slist, + (char (*)[NAME_LENGTH])svalue, attrib, TRUE); + sprintf(str, "%d", message_id); + add_subst_list((char (*)[NAME_LENGTH])slist, (char (*)[NAME_LENGTH])svalue, + "message id", str, &j); + add_subst_time(lbs, (char (*)[NAME_LENGTH])slist, (char (*)[NAME_LENGTH])svalue, + "entry time", date, &j); + + strsubst(display, (char (*)[NAME_LENGTH])slist, + (char (*)[NAME_LENGTH])svalue, j); + + } else + sprintf(display, "%d", message_id); + + rsprintf("%s: %s\n", loc("Message ID"), display); /*---- display date ----*/