mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-08 17:13:56 +00:00
Implemented "sort by email" in config page
This commit is contained in:
parent
584f6c0469
commit
5ac45747ac
44
src/elogd.c
44
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;
|
char str[256], user[80], password[80], full_name[256], user_email[256], logbook[256], auth[32], **user_list;
|
||||||
int i, n, inactive;
|
int i, n, inactive;
|
||||||
BOOL email_notify[1000];
|
BOOL email_notify[1000], sort_email;
|
||||||
|
|
||||||
if (lbs)
|
if (lbs)
|
||||||
strcpy(logbook, lbs->name);
|
strcpy(logbook, lbs->name);
|
||||||
@ -13749,6 +13749,11 @@ void show_config_page(LOGBOOK * lbs)
|
|||||||
if (isparam("cfg_user"))
|
if (isparam("cfg_user"))
|
||||||
strcpy(user, getparam("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 ----*/
|
/*---- header ----*/
|
||||||
|
|
||||||
show_standard_header(lbs, TRUE, loc("ELOG user config"), ".", FALSE, NULL, NULL, 0);
|
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++)
|
for (i = 0; i < n; i++)
|
||||||
user_list[i] = (char *) xcalloc(NAME_LENGTH, 1);
|
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);
|
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 */
|
/* sort list */
|
||||||
qsort(user_list, n, sizeof(char *), ascii_compare);
|
qsort(user_list, n, sizeof(char *), ascii_compare);
|
||||||
|
|
||||||
for (i = 0; i < n; i++) {
|
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) {
|
if (strcmp(user_list[i], user) == 0) {
|
||||||
strencode2(str, user_list[i], sizeof(str));
|
strencode2(str, user_list[i], sizeof(str));
|
||||||
rsprintf("<option selected value=\"%s\">%s <%s>\n", str, str, user_email);
|
rsprintf("<option selected value=\"%s\">%s <%s>\n", str, str, user_email);
|
||||||
@ -13848,6 +13862,11 @@ void show_config_page(LOGBOOK * lbs)
|
|||||||
rsprintf("<noscript>\n");
|
rsprintf("<noscript>\n");
|
||||||
rsprintf("<input type=submit value=\"%s\">\n", loc("Update"));
|
rsprintf("<input type=submit value=\"%s\">\n", loc("Update"));
|
||||||
rsprintf("</noscript>\n");
|
rsprintf("</noscript>\n");
|
||||||
|
|
||||||
|
if (sort_email)
|
||||||
|
rsprintf("<input type=\"checkbox\" checked name=\"sort_email\" value=\"1\" onChange=\"document.form1.submit()\">Sort by email");
|
||||||
|
else
|
||||||
|
rsprintf("<input type=\"checkbox\" name=\"sort_email\" value=\"1\" onChange=\"document.form1.submit()\">Sort by email");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*---- entry form ----*/
|
/*---- entry form ----*/
|
||||||
@ -25692,7 +25711,7 @@ int get_user_line(LOGBOOK * lbs, char *user, char *password, char *full_name, ch
|
|||||||
password[0] = 0;
|
password[0] = 0;
|
||||||
if (full_name)
|
if (full_name)
|
||||||
full_name[0] = 0;
|
full_name[0] = 0;
|
||||||
if (email)
|
if (email && user[0])
|
||||||
email[0] = 0;
|
email[0] = 0;
|
||||||
if (email_notify)
|
if (email_notify)
|
||||||
email_notify[0] = 0;
|
email_notify[0] = 0;
|
||||||
@ -25710,15 +25729,24 @@ int get_user_line(LOGBOOK * lbs, char *user, char *password, char *full_name, ch
|
|||||||
|
|
||||||
getcfg(lbs->name, "Password file", str, sizeof(str));
|
getcfg(lbs->name, "Password file", str, sizeof(str));
|
||||||
|
|
||||||
if (!str[0] || !user[0])
|
if (!str[0])
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (lbs->pwd_xml_tree) {
|
if (lbs->pwd_xml_tree) {
|
||||||
sprintf(str, "/list/user[name=%s]", user);
|
if (user[0]) {
|
||||||
if ((user_node = mxml_find_node(lbs->pwd_xml_tree, str)) == NULL)
|
sprintf(str, "/list/user[name=%s]", user);
|
||||||
return 2;
|
if ((user_node = mxml_find_node(lbs->pwd_xml_tree, str)) == NULL)
|
||||||
|
return 2;
|
||||||
|
} else if (email[0]) {
|
||||||
|
sprintf(str, "/list/user[email=%s]", email);
|
||||||
|
if ((user_node = mxml_find_node(lbs->pwd_xml_tree, str)) == NULL)
|
||||||
|
return 2;
|
||||||
|
} else
|
||||||
|
return 0;
|
||||||
|
|
||||||
/* if user found, retrieve other info */
|
/* if user found, retrieve other info */
|
||||||
|
if ((node = mxml_find_node(user_node, "name")) != NULL && user && mxml_get_value(node))
|
||||||
|
strlcpy(user, mxml_get_value(node), 256);
|
||||||
if ((node = mxml_find_node(user_node, "password")) != NULL && password && mxml_get_value(node))
|
if ((node = mxml_find_node(user_node, "password")) != NULL && password && mxml_get_value(node))
|
||||||
strlcpy(password, mxml_get_value(node), 256);
|
strlcpy(password, mxml_get_value(node), 256);
|
||||||
if ((node = mxml_find_node(user_node, "full_name")) != NULL && full_name && mxml_get_value(node))
|
if ((node = mxml_find_node(user_node, "full_name")) != NULL && full_name && mxml_get_value(node))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user