From 2dddc4b173ed27e59a482f029414f479ee9712e8 Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Tue, 18 Nov 2008 07:40:40 +0000 Subject: [PATCH] Attributes stay now in find page with conditional attributes SVN revision: 2140 --- src/elogd.c | 108 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 91 insertions(+), 17 deletions(-) diff --git a/src/elogd.c b/src/elogd.c index 49ae0d12..8be9dd59 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -4588,7 +4588,10 @@ int el_submit(LOGBOOK * lbs, int message_id, BOOL bedit, char *date, char attr_n lseek(fh, lbs->el_index[index].offset, SEEK_SET); i = my_read(fh, message, TEXT_SIZE + 100); - message[i] = 0; + if (i >= 0) + message[i] = 0; + else + message[0] = 0; /* check for valid message */ if (strncmp(message, "$@MID@$:", 8) != 0) { @@ -8930,7 +8933,12 @@ void attrib_from_param(int n_attr, char attrib[MAX_N_ATTR][NAME_LENGTH]) strcpy(attrib[i], ""); } else { - strlcpy(attrib[i], isparam(ua) ? getparam(ua) : "", NAME_LENGTH); + if (isparam(attr_list[i])) + strlcpy(attrib[i], getparam(attr_list[i]), NAME_LENGTH); + else if (isparam(ua)) + strlcpy(attrib[i], getparam(ua), NAME_LENGTH); + else + attrib[i][0] = 0; } } } @@ -11331,7 +11339,7 @@ void show_edit_form(LOGBOOK * lbs, int message_id, BOOL breply, BOOL bedit, BOOL void show_find_form(LOGBOOK * lbs) { - int i, j; + int i, j, year, month, day, flag; char str[NAME_LENGTH], mode[NAME_LENGTH], comment[NAME_LENGTH], option[NAME_LENGTH], login_name[256], full_name[256], user_email[256], enc_attr[NAME_LENGTH], whole_attr[NAME_LENGTH], attrib[MAX_N_ATTR][NAME_LENGTH]; @@ -11485,7 +11493,17 @@ void show_find_form(LOGBOOK * lbs) rsprintf("\n"); rsprintf("
%s:", loc("Start")); - show_date_selector(0, 0, 0, "a"); + year = month = day = 0; + sprintf(str, "ya"); + if (isparam(str)) + year = atoi(getparam(str)); + sprintf(str, "ma"); + if (isparam(str)) + month = atoi(getparam(str)); + sprintf(str, "da"); + if (isparam(str)) + day = atoi(getparam(str)); + show_date_selector(day, month, year, "a"); rsprintf("  /  %s: ", loc("Show last")); @@ -11503,7 +11521,17 @@ void show_find_form(LOGBOOK * lbs) rsprintf("
%s:", loc("End")); - show_date_selector(0, 0, 0, "b"); + year = month = day = 0; + sprintf(str, "yb"); + if (isparam(str)) + year = atoi(getparam(str)); + sprintf(str, "mb"); + if (isparam(str)) + month = atoi(getparam(str)); + sprintf(str, "db"); + if (isparam(str)) + day = atoi(getparam(str)); + show_date_selector(day, month, year, "b"); rsprintf("
\n"); @@ -11516,8 +11544,20 @@ void show_find_form(LOGBOOK * lbs) rsprintf("\n"); rsprintf("\n"); rsprintf("", loc("Text")); - rsprintf - ("
%s:", loc("Start")); + + year = month = day = 0; + sprintf(str, "y%da", i); + if (isparam(str)) + year = atoi(getparam(str)); + sprintf(str, "m%da", i); + if (isparam(str)) + month = atoi(getparam(str)); + sprintf(str, "d%da", i); + if (isparam(str)) + day = atoi(getparam(str)); + sprintf(str, "%da", i); - show_date_selector(0, 0, 0, str); + show_date_selector(day, month, year, str); if (attr_flags[i] & AF_DATETIME) { rsprintf("  "); show_time_selector(-1, -1, -1, str); @@ -11525,8 +11565,20 @@ void show_find_form(LOGBOOK * lbs) rsprintf("
%s:", loc("End")); + + year = month = day = 0; + sprintf(str, "y%db", i); + if (isparam(str)) + year = atoi(getparam(str)); + sprintf(str, "m%db", i); + if (isparam(str)) + month = atoi(getparam(str)); + sprintf(str, "d%db", i); + if (isparam(str)) + day = atoi(getparam(str)); + sprintf(str, "%db", i); - show_date_selector(0, 0, 0, str); + show_date_selector(day, month, year, str); if (attr_flags[i] & AF_DATETIME) { rsprintf("  "); show_time_selector(-1, -1, -1, str); @@ -11565,28 +11617,42 @@ void show_find_form(LOGBOOK * lbs) } } else { - - rsprintf("\n", attr_list[i]); + rsprintf("\n", + attr_list[i], attrib[i]); } } else { if (strieq(attr_options[i][0], "boolean")) { + if (isparam(attr_list[i]) && *getparam(attr_list[i])) + flag = atoi(getparam(attr_list[i])); + else + flag = -1; + sprintf(str, "%s_0", attr_list[i]); rsprintf("\n"); - rsprintf("\n", str, attr_list[i]); + if (flag == 0) + rsprintf("\n", str, attr_list[i]); + else + rsprintf("\n", str, attr_list[i]); rsprintf("\n", str); rsprintf("\n"); sprintf(str, "%s_1", attr_list[i]); rsprintf("\n"); - rsprintf("\n", str, attr_list[i]); + if (flag == 1) + rsprintf("\n", str, attr_list[i]); + else + rsprintf("\n", str, attr_list[i]); rsprintf("\n", str); rsprintf("\n"); sprintf(str, "%s_2", attr_list[i]); rsprintf("\n"); - rsprintf("\n", str, attr_list[i]); + if (flag == -1) + rsprintf("\n", str, attr_list[i]); + else + rsprintf("\n", str, attr_list[i]); rsprintf("\n", str, loc("unspecified")); rsprintf("\n"); } @@ -11615,8 +11681,12 @@ void show_find_form(LOGBOOK * lbs) for (j = 0; j < MAX_N_LIST && attr_options[i][j][0]; j++) { sprintf(str, "%s_%d", attr_list[i], j); - rsprintf("\n", str, str, - attr_options[i][j]); + if (isparam(str)) + rsprintf("\n", + str, str, attr_options[i][j]); + else + rsprintf("\n", + str, str, attr_options[i][j]); rsprintf("\n", str, attr_options[i][j]); } @@ -11649,8 +11719,12 @@ void show_find_form(LOGBOOK * lbs) } rsprintf("
%s:\n"); + rsprintf("\n"); + if (isparam("subtext")) + strlcpy(str, getparam("subtext"), sizeof(str)); + else + str[0] = 0; + rsprintf("\n", str); rsprintf("
\n"); rsprintf("\n"); @@ -26418,7 +26492,7 @@ char remote_host[N_MAX_CONNECTION][256]; int process_http_request(const char *request, int i_conn) { int i, n, authorized, header_length, content_length; - char str[1000], str2[1000], url[256], pwd[256], cl_pwd[256], format[256], cookie[256], boundary[256], + char str[1000], str2[1000], url[2000], pwd[256], cl_pwd[256], format[256], cookie[256], boundary[256], list[1000], theme[256], host_list[MAX_N_LIST][NAME_LENGTH], logbook[256], logbook_enc[256], global_cmd[256]; char *p;