mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-08 17:13:56 +00:00
Implemented 'Use Email URL'
SVN revision: 1966
This commit is contained in:
parent
8169797cee
commit
540a7091b4
@ -2085,6 +2085,9 @@ Options Location = Main Building{a}, New Building{b}, Old Building{c}
|
|||||||
<li>
|
<li>
|
||||||
<b><code>Email attributes = <list></code></b>
|
<b><code>Email attributes = <list></code></b>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<b><code>Use Email URL = <URL></code></b>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>
|
<p>
|
||||||
To send email automatically when new entries are created in a logbook, a
|
To send email automatically when new entries are created in a logbook, a
|
||||||
@ -2157,6 +2160,14 @@ Options Location = Main Building{a}, New Building{b}, Old Building{c}
|
|||||||
<list></code></b>, where a subset of the attributes can be
|
<list></code></b>, where a subset of the attributes can be
|
||||||
specified as well as their order. <a name="flags" id="flags"></a>
|
specified as well as their order. <a name="flags" id="flags"></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The option <b><code>Use Email URL = <URL></b></code> can be used to
|
||||||
|
set the URL of the ELOG logbook used in email notifications. This can be
|
||||||
|
useful if no <b><code>URL = ...</code></b> statement is used form some
|
||||||
|
reason.
|
||||||
|
</p>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<div class="section">
|
<div class="section">
|
||||||
Flags
|
Flags
|
||||||
|
|||||||
42
src/elogd.c
42
src/elogd.c
@ -423,7 +423,7 @@ void highlight_searchtext(regex_t * re_buf, char *src, char *dst, BOOL hidden);
|
|||||||
int parse_config_file(char *config_file);
|
int parse_config_file(char *config_file);
|
||||||
PMXML_NODE load_password_file(LOGBOOK * lbs, char *error, int error_size);
|
PMXML_NODE load_password_file(LOGBOOK * lbs, char *error, int error_size);
|
||||||
int load_password_files();
|
int load_password_files();
|
||||||
void compose_base_url(LOGBOOK * lbs, char *base_url, int size);
|
void compose_base_url(LOGBOOK * lbs, char *base_url, int size, BOOL email_notify);
|
||||||
void show_elog_entry(LOGBOOK * lbs, char *dec_path, char *command);
|
void show_elog_entry(LOGBOOK * lbs, char *dec_path, char *command);
|
||||||
char *loc(char *orig);
|
char *loc(char *orig);
|
||||||
void strencode(char *text);
|
void strencode(char *text);
|
||||||
@ -5639,20 +5639,20 @@ void rsputs2(LOGBOOK * lbs, int absolute_link, const char *str)
|
|||||||
if (m < (int) strlen(tmp)) {
|
if (m < (int) strlen(tmp)) {
|
||||||
/* if link contains reference to other logbook, put logbook explicitly */
|
/* if link contains reference to other logbook, put logbook explicitly */
|
||||||
if (absolute_link)
|
if (absolute_link)
|
||||||
compose_base_url(NULL, base_url, sizeof(base_url));
|
compose_base_url(NULL, base_url, sizeof(base_url), FALSE);
|
||||||
else
|
else
|
||||||
strcpy(base_url, "../");
|
strcpy(base_url, "../");
|
||||||
sprintf(return_buffer + j, "<a href=\"%s%s\">elog:%s</a>", base_url, link, link_text);
|
sprintf(return_buffer + j, "<a href=\"%s%s\">elog:%s</a>", base_url, link, link_text);
|
||||||
} else if (link[0] == '/') {
|
} else if (link[0] == '/') {
|
||||||
if (absolute_link)
|
if (absolute_link)
|
||||||
compose_base_url(NULL, base_url, sizeof(base_url));
|
compose_base_url(NULL, base_url, sizeof(base_url), FALSE);
|
||||||
else
|
else
|
||||||
base_url[0] = 0;
|
base_url[0] = 0;
|
||||||
sprintf(return_buffer + j, "<a href=\"%s%s/%d%s\">elog:%s</a>", base_url, lbs->name_enc,
|
sprintf(return_buffer + j, "<a href=\"%s%s/%d%s\">elog:%s</a>", base_url, lbs->name_enc,
|
||||||
_current_message_id, link, link_text);
|
_current_message_id, link, link_text);
|
||||||
} else {
|
} else {
|
||||||
if (absolute_link)
|
if (absolute_link)
|
||||||
compose_base_url(lbs, base_url, sizeof(base_url));
|
compose_base_url(lbs, base_url, sizeof(base_url), FALSE);
|
||||||
else
|
else
|
||||||
base_url[0] = 0;
|
base_url[0] = 0;
|
||||||
sprintf(return_buffer + j, "<a href=\"%s%s\">elog:%s</a>", base_url, link, link_text);
|
sprintf(return_buffer + j, "<a href=\"%s%s\">elog:%s</a>", base_url, link, link_text);
|
||||||
@ -5965,20 +5965,20 @@ void rsputs_elcode(LOGBOOK * lbs, BOOL email_notify, const char *str)
|
|||||||
if (m < (int) strlen(tmp) && tmp[m] != '#') {
|
if (m < (int) strlen(tmp) && tmp[m] != '#') {
|
||||||
/* if link contains reference to other logbook, put logbook explicitly */
|
/* if link contains reference to other logbook, put logbook explicitly */
|
||||||
if (email_notify)
|
if (email_notify)
|
||||||
compose_base_url(NULL, base_url, sizeof(base_url));
|
compose_base_url(NULL, base_url, sizeof(base_url), TRUE);
|
||||||
else
|
else
|
||||||
strcpy(base_url, "../");
|
strcpy(base_url, "../");
|
||||||
sprintf(return_buffer + j, "<a href=\"%s%s\">elog:%s</a>", base_url, link, link_text);
|
sprintf(return_buffer + j, "<a href=\"%s%s\">elog:%s</a>", base_url, link, link_text);
|
||||||
} else if (link[0] == '/') {
|
} else if (link[0] == '/') {
|
||||||
if (email_notify)
|
if (email_notify)
|
||||||
compose_base_url(NULL, base_url, sizeof(base_url));
|
compose_base_url(NULL, base_url, sizeof(base_url), TRUE);
|
||||||
else
|
else
|
||||||
base_url[0] = 0;
|
base_url[0] = 0;
|
||||||
sprintf(return_buffer + j, "<a href=\"%s%s/%d%s\">elog:%s</a>", base_url, lbs->name_enc,
|
sprintf(return_buffer + j, "<a href=\"%s%s/%d%s\">elog:%s</a>", base_url, lbs->name_enc,
|
||||||
_current_message_id, link, link_text);
|
_current_message_id, link, link_text);
|
||||||
} else {
|
} else {
|
||||||
if (email_notify)
|
if (email_notify)
|
||||||
compose_base_url(lbs, base_url, sizeof(base_url));
|
compose_base_url(lbs, base_url, sizeof(base_url), TRUE);
|
||||||
else
|
else
|
||||||
base_url[0] = 0;
|
base_url[0] = 0;
|
||||||
sprintf(return_buffer + j, "<a href=\"%s%s\">elog:%s</a>", base_url, link, link_text);
|
sprintf(return_buffer + j, "<a href=\"%s%s\">elog:%s</a>", base_url, link, link_text);
|
||||||
@ -6132,7 +6132,7 @@ void rsputs_elcode(LOGBOOK * lbs, BOOL email_notify, const char *str)
|
|||||||
sprintf(hattrib, "cid:att%d@%s", m, p);
|
sprintf(hattrib, "cid:att%d@%s", m, p);
|
||||||
} else {
|
} else {
|
||||||
if (email_notify)
|
if (email_notify)
|
||||||
compose_base_url(lbs, hattrib, sizeof(hattrib));
|
compose_base_url(lbs, hattrib, sizeof(hattrib), TRUE);
|
||||||
else
|
else
|
||||||
hattrib[0] = 0;
|
hattrib[0] = 0;
|
||||||
if (attrib[5] == '/') {
|
if (attrib[5] == '/') {
|
||||||
@ -6197,7 +6197,7 @@ void rsputs_elcode(LOGBOOK * lbs, BOOL email_notify, const char *str)
|
|||||||
if (strstr(link, "%s")) {
|
if (strstr(link, "%s")) {
|
||||||
strcpy(tmp, link);
|
strcpy(tmp, link);
|
||||||
if (email_notify)
|
if (email_notify)
|
||||||
compose_base_url(lbs, base_url, sizeof(base_url));
|
compose_base_url(lbs, base_url, sizeof(base_url), TRUE);
|
||||||
else
|
else
|
||||||
base_url[0] = 0;
|
base_url[0] = 0;
|
||||||
sprintf(link, tmp, base_url);
|
sprintf(link, tmp, base_url);
|
||||||
@ -6219,7 +6219,7 @@ void rsputs_elcode(LOGBOOK * lbs, BOOL email_notify, const char *str)
|
|||||||
if (strstr(link, "%s")) {
|
if (strstr(link, "%s")) {
|
||||||
strcpy(tmp, link);
|
strcpy(tmp, link);
|
||||||
if (email_notify)
|
if (email_notify)
|
||||||
compose_base_url(lbs, base_url, sizeof(base_url));
|
compose_base_url(lbs, base_url, sizeof(base_url), TRUE);
|
||||||
else
|
else
|
||||||
base_url[0] = 0;
|
base_url[0] = 0;
|
||||||
sprintf(link, tmp, base_url);
|
sprintf(link, tmp, base_url);
|
||||||
@ -6240,7 +6240,7 @@ void rsputs_elcode(LOGBOOK * lbs, BOOL email_notify, const char *str)
|
|||||||
if (strstr(link, "%s")) {
|
if (strstr(link, "%s")) {
|
||||||
strcpy(tmp, link);
|
strcpy(tmp, link);
|
||||||
if (email_notify)
|
if (email_notify)
|
||||||
compose_base_url(lbs, base_url, sizeof(base_url));
|
compose_base_url(lbs, base_url, sizeof(base_url), TRUE);
|
||||||
else
|
else
|
||||||
base_url[0] = 0;
|
base_url[0] = 0;
|
||||||
sprintf(link, tmp, base_url);
|
sprintf(link, tmp, base_url);
|
||||||
@ -6551,9 +6551,13 @@ void extract_host(char *str)
|
|||||||
|
|
||||||
/*------------------------------------------------------------------*/
|
/*------------------------------------------------------------------*/
|
||||||
|
|
||||||
void compose_base_url(LOGBOOK * lbs, char *base_url, int size)
|
void compose_base_url(LOGBOOK * lbs, char *base_url, int size, BOOL email_notify)
|
||||||
/* return URL for elogd with optional logbook subdirectory */
|
/* return URL for elogd with optional logbook subdirectory */
|
||||||
{
|
{
|
||||||
|
if (email_notify)
|
||||||
|
if (getcfg(lbs->name, "Use Email URL", base_url, size))
|
||||||
|
return;
|
||||||
|
|
||||||
if (!getcfg("global", "URL", base_url, size)) {
|
if (!getcfg("global", "URL", base_url, size)) {
|
||||||
|
|
||||||
if (referer[0]) {
|
if (referer[0]) {
|
||||||
@ -7128,7 +7132,7 @@ void show_html_header(LOGBOOK * lbs, BOOL expires, char *title, BOOL close_head,
|
|||||||
|
|
||||||
/* Cascading Style Sheet */
|
/* Cascading Style Sheet */
|
||||||
if (absolute_link)
|
if (absolute_link)
|
||||||
compose_base_url(lbs, css, sizeof(css));
|
compose_base_url(lbs, css, sizeof(css), FALSE);
|
||||||
else
|
else
|
||||||
css[0] = 0;
|
css[0] = 0;
|
||||||
|
|
||||||
@ -16156,7 +16160,7 @@ void display_line(LOGBOOK * lbs, int message_id, int number, char *mode,
|
|||||||
_current_message_id = message_id;
|
_current_message_id = message_id;
|
||||||
ref[0] = 0;
|
ref[0] = 0;
|
||||||
if (absolute_link)
|
if (absolute_link)
|
||||||
compose_base_url(lbs, ref, sizeof(ref));
|
compose_base_url(lbs, ref, sizeof(ref), FALSE);
|
||||||
sprintf(ref + strlen(ref), "../%s/%d", lbs->name_enc, message_id);
|
sprintf(ref + strlen(ref), "../%s/%d", lbs->name_enc, message_id);
|
||||||
|
|
||||||
if (strieq(mode, "Summary")) {
|
if (strieq(mode, "Summary")) {
|
||||||
@ -20458,7 +20462,7 @@ int compose_email(LOGBOOK * lbs, char *rcpt_to, char *mail_to, int message_id,
|
|||||||
n_attachments++;
|
n_attachments++;
|
||||||
}
|
}
|
||||||
|
|
||||||
compose_base_url(lbs, str, sizeof(str));
|
compose_base_url(lbs, str, sizeof(str), TRUE);
|
||||||
sprintf(url, "%s%d", str, message_id);
|
sprintf(url, "%s%d", str, message_id);
|
||||||
|
|
||||||
mail_text_size = MAX_CONTENT_LENGTH + 1000;
|
mail_text_size = MAX_CONTENT_LENGTH + 1000;
|
||||||
@ -22242,7 +22246,7 @@ void show_elog_entry(LOGBOOK * lbs, char *dec_path, char *command)
|
|||||||
sprintf(display, "%d", message_id);
|
sprintf(display, "%d", message_id);
|
||||||
|
|
||||||
if (email) {
|
if (email) {
|
||||||
compose_base_url(lbs, str, sizeof(str));
|
compose_base_url(lbs, str, sizeof(str), TRUE);
|
||||||
sprintf(str + strlen(str), "%d", message_id);
|
sprintf(str + strlen(str), "%d", message_id);
|
||||||
rsprintf("%s: <b>%s</b> ", loc("Logbook"), lbs->name);
|
rsprintf("%s: <b>%s</b> ", loc("Logbook"), lbs->name);
|
||||||
rsprintf("%s: <a href=\"%s\"><b>%d</b></a>", loc("Message ID"), str, message_id);
|
rsprintf("%s: <a href=\"%s\"><b>%d</b></a>", loc("Message ID"), str, message_id);
|
||||||
@ -22267,7 +22271,7 @@ void show_elog_entry(LOGBOOK * lbs, char *dec_path, char *command)
|
|||||||
|
|
||||||
if (orig_tag[0]) {
|
if (orig_tag[0]) {
|
||||||
if (email)
|
if (email)
|
||||||
compose_base_url(lbs, ref, sizeof(ref));
|
compose_base_url(lbs, ref, sizeof(ref), TRUE);
|
||||||
else
|
else
|
||||||
ref[0] = 0;
|
ref[0] = 0;
|
||||||
sprintf(ref + strlen(ref), "%s", orig_tag);
|
sprintf(ref + strlen(ref), "%s", orig_tag);
|
||||||
@ -22280,7 +22284,7 @@ void show_elog_entry(LOGBOOK * lbs, char *dec_path, char *command)
|
|||||||
p = strtok(reply_tag, ",");
|
p = strtok(reply_tag, ",");
|
||||||
do {
|
do {
|
||||||
if (email)
|
if (email)
|
||||||
compose_base_url(lbs, ref, sizeof(ref));
|
compose_base_url(lbs, ref, sizeof(ref), TRUE);
|
||||||
else
|
else
|
||||||
ref[0] = 0;
|
ref[0] = 0;
|
||||||
sprintf(ref + strlen(ref), "%s", p);
|
sprintf(ref + strlen(ref), "%s", p);
|
||||||
@ -24158,7 +24162,7 @@ void show_uploader_finished(LOGBOOK * lbs)
|
|||||||
url_encode(file_enc, sizeof(file_enc)); /* for file names with special characters like "+" */
|
url_encode(file_enc, sizeof(file_enc)); /* for file names with special characters like "+" */
|
||||||
sprintf(ref, "%s/%s", str, file_enc);
|
sprintf(ref, "%s/%s", str, file_enc);
|
||||||
|
|
||||||
compose_base_url(lbs, base_url, sizeof(base_url));
|
compose_base_url(lbs, base_url, sizeof(base_url), TRUE);
|
||||||
|
|
||||||
rsprintf("<script type=\"text/javascript\">\n\n");
|
rsprintf("<script type=\"text/javascript\">\n\n");
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user