diff --git a/src/elogd.c b/src/elogd.c
index 41939fc3..0104de9f 100755
--- a/src/elogd.c
+++ b/src/elogd.c
@@ -6,6 +6,9 @@
Contents: Web server program for Electronic Logbook ELOG
$Log$
+ Revision 1.110 2003/05/17 16:00:31 midas
+ Remove message lock on 'Back' button; on config user page, don't go back after 'Save'
+
Revision 1.109 2003/05/15 11:34:42 midas
Fixed stricmp under linux
@@ -3613,7 +3616,7 @@ char att_file[MAX_ATTACHMENTS][256];
/*------------------------------------------------------------------*/
-int el_lock_message(LOGBOOK *lbs, int message_id, int lock, char *user)
+int el_lock_message(LOGBOOK *lbs, int message_id, char *user)
/* lock message for editing */
{
int size;
@@ -3626,12 +3629,9 @@ char att_file[MAX_ATTACHMENTS][256];
el_retrieve(lbs, message_id, date, attr_list, attrib, lbs->n_attr,
text, &size, in_reply_to, reply_to, att_file, encoding, locked_by);
- if (lock)
- {
- /* lock message */
- el_submit(lbs, message_id, date, attr_list, attrib, lbs->n_attr, text,
- in_reply_to, reply_to, encoding, att_file, FALSE, user);
- }
+ /* submit message, unlocked if user==NULL */
+ el_submit(lbs, message_id, date, attr_list, attrib, lbs->n_attr, text,
+ in_reply_to, reply_to, encoding, att_file, FALSE, user);
return EL_SUCCESS;
}
@@ -5017,7 +5017,9 @@ int wrong_pwd;
if (!wrong_pwd)
{
- redirect(lbs, ".");
+ /* redirect back to configuration page */
+ sprintf(str, "?cmd=%s&cfg_user=%s", loc("Config"), getparam("config"));
+ redirect(lbs, str);
return;
}
}
@@ -5239,7 +5241,7 @@ time_t now;
strcat(str, " ");
strcat(str, rem_host);
- el_lock_message(lbs, message_id, TRUE, str);
+ el_lock_message(lbs, message_id, str);
}
}
else
@@ -6589,7 +6591,7 @@ int i;
rsprintf("\n", loc("Config")); // for select javascript
rsprintf("\n", loc("Save"));
- rsprintf("\n", loc("Cancel"));
+ rsprintf("\n", loc("Back"));
rsprintf("\n", user);
rsprintf("\n\n");
@@ -7837,7 +7839,9 @@ int i, n;
if (!getcfg(lbs->name, "Admin user", str) ||
(getcfg(lbs->name, "Admin user", str) && strstr(str, getparam("unm")) != 0))
{
- strcat(menu_str, "Admin, Change elogd.cfg, ");
+ strcat(menu_str, "Admin, ");
+ strcat(menu_str, loc("Change elogd.cfg"));
+ strcat(menu_str, ", ");
}
strcat(menu_str, "Config, Logout, ");
}
@@ -11643,7 +11647,13 @@ FILE *f;
if (equal_ustring(command, loc("Back")))
{
if (isparam("edit_id"))
+ {
+ /* unlock message */
+ el_lock_message(lbs, atoi(getparam("edit_id")), NULL);
+
+ /* redirect to message */
sprintf(str, "../%s/%s", logbook_enc, getparam("edit_id"));
+ }
else
sprintf(str, "../%s/", logbook_enc);
@@ -11972,6 +11982,13 @@ FILE *f;
else
sprintf(str, ".");
+ if (isparam("new_user_name"))
+ sprintf(str+strlen(str), "?cmd=%s&cfg_user=%s", loc("Config"), getparam("new_user_name"));
+ else if (isparam("cfg_user"))
+ sprintf(str+strlen(str), "?cmd=%s&cfg_user=%s", loc("Config"), getparam("cfg_user"));
+ else
+ sprintf(str+strlen(str), "?cmd=%s", loc("Config"));
+
redirect(lbs, str);
return;
}