From 5ac45747aca0d4d3c0eb06191594c7c2d27e64f9 Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Mon, 5 Sep 2016 09:58:47 +0200 Subject: [PATCH] Implemented "sort by email" in config page --- src/elogd.c | 44 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/src/elogd.c b/src/elogd.c index 99f5ab60..819242cf 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -13737,7 +13737,7 @@ void show_config_page(LOGBOOK * lbs) { char str[256], user[80], password[80], full_name[256], user_email[256], logbook[256], auth[32], **user_list; int i, n, inactive; - BOOL email_notify[1000]; + BOOL email_notify[1000], sort_email; if (lbs) strcpy(logbook, lbs->name); @@ -13749,6 +13749,11 @@ void show_config_page(LOGBOOK * lbs) if (isparam("cfg_user")) strcpy(user, getparam("cfg_user")); + /* get sort_email flag */ + sort_email = FALSE; + if (isparam("sort_email") && atoi(getparam("sort_email")) > 0) + sort_email = TRUE; + /*---- header ----*/ show_standard_header(lbs, TRUE, loc("ELOG user config"), ".", FALSE, NULL, NULL, 0); @@ -13820,14 +13825,23 @@ void show_config_page(LOGBOOK * lbs) for (i = 0; i < n; i++) user_list[i] = (char *) xcalloc(NAME_LENGTH, 1); - for (i = 0; i < n; i++) + for (i = 0; i < n; i++) { enum_user_line(lbs, i, user_list[i], NAME_LENGTH); + get_user_line(lbs, user_list[i], NULL, full_name, user_email, NULL, NULL, NULL); + if (sort_email) + strlcpy(user_list[i], user_email, NAME_LENGTH); + } /* sort list */ qsort(user_list, n, sizeof(char *), ascii_compare); for (i = 0; i < n; i++) { - get_user_line(lbs, user_list[i], NULL, full_name, user_email, NULL, NULL, NULL); + if (sort_email) { + strlcpy(user_email, user_list[i], NAME_LENGTH); + user_list[i][0] = 0; + get_user_line(lbs, user_list[i], NULL, full_name, user_email, NULL, NULL, NULL); + } else + get_user_line(lbs, user_list[i], NULL, full_name, user_email, NULL, NULL, NULL); if (strcmp(user_list[i], user) == 0) { strencode2(str, user_list[i], sizeof(str)); rsprintf("