mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-08 17:13:56 +00:00
Adde 'Raw' mode for export
SVN revision: 1319
This commit is contained in:
parent
59c1b1c4fa
commit
a6bbf1cc3c
71
src/elogd.c
71
src/elogd.c
@ -6,6 +6,9 @@
|
|||||||
Contents: Web server program for Electronic Logbook ELOG
|
Contents: Web server program for Electronic Logbook ELOG
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.626 2005/04/15 19:33:29 ritt
|
||||||
|
Adde 'Raw' mode for export
|
||||||
|
|
||||||
Revision 1.625 2005/04/14 13:41:50 ritt
|
Revision 1.625 2005/04/14 13:41:50 ritt
|
||||||
Use charset from config file in sending email
|
Use charset from config file in sending email
|
||||||
|
|
||||||
@ -1861,7 +1864,7 @@ size_t strlcat(char *dst, const char *src, size_t size)
|
|||||||
/*-------------------------------------------------------------------*/
|
/*-------------------------------------------------------------------*/
|
||||||
|
|
||||||
void strsubst(char *string, char name[][NAME_LENGTH], char value[][NAME_LENGTH], int n)
|
void strsubst(char *string, char name[][NAME_LENGTH], char value[][NAME_LENGTH], int n)
|
||||||
/* subsitute "$name" with value corresponding to name */
|
/* subsitute "$name" with value corresponding to name */
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
char tmp[1000], str[NAME_LENGTH], uattr[NAME_LENGTH], *ps, *pt, *p;
|
char tmp[1000], str[NAME_LENGTH], uattr[NAME_LENGTH], *ps, *pt, *p;
|
||||||
@ -2531,6 +2534,9 @@ INT sendmail(LOGBOOK * lbs, char *smtp_host, char *from, char *to,
|
|||||||
eprintf("\n\nEmail from %s to %s, SMTP host %s:\n", from, to, smtp_host);
|
eprintf("\n\nEmail from %s to %s, SMTP host %s:\n", from, to, smtp_host);
|
||||||
write_logfile(lbs, "Email from %s to %s, SMTP host %s:\n", from, to, smtp_host);
|
write_logfile(lbs, "Email from %s to %s, SMTP host %s:\n", from, to, smtp_host);
|
||||||
|
|
||||||
|
if (!getcfg("global", "charset", charset, sizeof(charset)))
|
||||||
|
strcpy(charset, DEFAULT_HTTP_CHARSET);
|
||||||
|
|
||||||
/* count attachments */
|
/* count attachments */
|
||||||
n_att = 0;
|
n_att = 0;
|
||||||
if (att_file)
|
if (att_file)
|
||||||
@ -2630,6 +2636,13 @@ INT sendmail(LOGBOOK * lbs, char *smtp_host, char *from, char *to,
|
|||||||
efputs(str);
|
efputs(str);
|
||||||
write_logfile(lbs, str);
|
write_logfile(lbs, str);
|
||||||
|
|
||||||
|
/* works for Outlook but not for Thunderbird...
|
||||||
|
strcpy(subject_enc, "=?");
|
||||||
|
strlcat(subject_enc, charset, sizeof(subject_enc));
|
||||||
|
strlcat(subject_enc, "?Q?", sizeof(subject_enc));
|
||||||
|
strlcat(subject_enc, subject, sizeof(subject_enc));
|
||||||
|
strlcat(subject_enc, "?=", sizeof(subject_enc));
|
||||||
|
*/
|
||||||
snprintf(str, strsize - 1, "From: %s\r\nSubject: %s\r\n", from, subject);
|
snprintf(str, strsize - 1, "From: %s\r\nSubject: %s\r\n", from, subject);
|
||||||
send(s, str, strlen(str), 0);
|
send(s, str, strlen(str), 0);
|
||||||
if (verbose)
|
if (verbose)
|
||||||
@ -2679,8 +2692,6 @@ INT sendmail(LOGBOOK * lbs, char *smtp_host, char *from, char *to,
|
|||||||
getcfg("global", "Language", str, sizeof(str));
|
getcfg("global", "Language", str, sizeof(str));
|
||||||
if (str[0])
|
if (str[0])
|
||||||
setlocale(LC_ALL, str);
|
setlocale(LC_ALL, str);
|
||||||
if (!getcfg("global", "charset", charset, sizeof(charset)))
|
|
||||||
strcpy(charset, DEFAULT_HTTP_CHARSET);
|
|
||||||
|
|
||||||
if (n_att > 0) {
|
if (n_att > 0) {
|
||||||
snprintf(str, strsize - 1, "MIME-Version: 1.0\r\n");
|
snprintf(str, strsize - 1, "MIME-Version: 1.0\r\n");
|
||||||
@ -2710,7 +2721,7 @@ INT sendmail(LOGBOOK * lbs, char *smtp_host, char *from, char *to,
|
|||||||
efputs(str);
|
efputs(str);
|
||||||
write_logfile(lbs, str);
|
write_logfile(lbs, str);
|
||||||
|
|
||||||
snprintf(str, strsize - 1, "--%s\r\nContent-Type: text/plain; charset=%s\r\n\r\n",
|
snprintf(str, strsize - 1, "--%s\r\nContent-Type: text/plain; charset=\"%s\"\r\n\r\n",
|
||||||
boundary, charset);
|
boundary, charset);
|
||||||
|
|
||||||
send(s, str, strlen(str), 0);
|
send(s, str, strlen(str), 0);
|
||||||
@ -2718,7 +2729,7 @@ INT sendmail(LOGBOOK * lbs, char *smtp_host, char *from, char *to,
|
|||||||
efputs(str);
|
efputs(str);
|
||||||
write_logfile(lbs, str);
|
write_logfile(lbs, str);
|
||||||
} else {
|
} else {
|
||||||
snprintf(str, strsize - 1, "Content-Type: TEXT/PLAIN; charset=%s\r\n\r\n", charset);
|
snprintf(str, strsize - 1, "Content-Type: text/plain; charset=\"%s\"\r\n\r\n", charset);
|
||||||
send(s, str, strlen(str), 0);
|
send(s, str, strlen(str), 0);
|
||||||
if (verbose)
|
if (verbose)
|
||||||
efputs(str);
|
efputs(str);
|
||||||
@ -9320,6 +9331,12 @@ void show_find_form(LOGBOOK * lbs)
|
|||||||
rsprintf("<input type=radio id=\"XML\" name=\"mode\" value=\"XML\">");
|
rsprintf("<input type=radio id=\"XML\" name=\"mode\" value=\"XML\">");
|
||||||
rsprintf("<label for=\"XML\">XML </label>\n");
|
rsprintf("<label for=\"XML\">XML </label>\n");
|
||||||
|
|
||||||
|
if (strieq(mode, "Raw"))
|
||||||
|
rsprintf("<input type=radio id=\"Raw\" name=\"mode\" value=\"Raw\" checked>");
|
||||||
|
else
|
||||||
|
rsprintf("<input type=radio id=\"Raw\" name=\"mode\" value=\"Raw\">");
|
||||||
|
rsprintf("<label for=\"Raw\">Raw </label>\n");
|
||||||
|
|
||||||
rsprintf("</td></tr>\n");
|
rsprintf("</td></tr>\n");
|
||||||
|
|
||||||
rsprintf("<tr><td class=\"form2\"><b>%s:</b><br>", loc("Options"));
|
rsprintf("<tr><td class=\"form2\"><b>%s:</b><br>", loc("Options"));
|
||||||
@ -15313,7 +15330,7 @@ void show_elog_list(LOGBOOK * lbs, INT past_n, INT last_n, INT page_n, char *inf
|
|||||||
menu_str[1000], menu_item[MAX_N_LIST][NAME_LENGTH], param[NAME_LENGTH], format[80],
|
menu_str[1000], menu_item[MAX_N_LIST][NAME_LENGTH], param[NAME_LENGTH], format[80],
|
||||||
sort_attr[MAX_N_ATTR + 4][NAME_LENGTH];
|
sort_attr[MAX_N_ATTR + 4][NAME_LENGTH];
|
||||||
char *p, *pt, *pt1, *pt2, *slist, *svalue, *gattr, line[1024], iattr[256];
|
char *p, *pt, *pt1, *pt2, *slist, *svalue, *gattr, line[1024], iattr[256];
|
||||||
BOOL show_attachments, threaded, csv, xml, mode_commands, expand, filtering, disp_filter,
|
BOOL show_attachments, threaded, csv, xml, raw, mode_commands, expand, filtering, disp_filter,
|
||||||
show_text, searched, found, disp_attr_link[MAX_N_ATTR + 4];
|
show_text, searched, found, disp_attr_link[MAX_N_ATTR + 4];
|
||||||
time_t ltime, ltime_start, ltime_end, now, ltime1, ltime2;
|
time_t ltime, ltime_start, ltime_end, now, ltime1, ltime2;
|
||||||
struct tm tms, *ptms;
|
struct tm tms, *ptms;
|
||||||
@ -15470,8 +15487,9 @@ void show_elog_list(LOGBOOK * lbs, INT past_n, INT last_n, INT page_n, char *inf
|
|||||||
threaded = strieq(mode, "threaded");
|
threaded = strieq(mode, "threaded");
|
||||||
csv = strieq(mode, "CSV1") || strieq(mode, "CSV2");
|
csv = strieq(mode, "CSV1") || strieq(mode, "CSV2");
|
||||||
xml = strieq(mode, "XML");
|
xml = strieq(mode, "XML");
|
||||||
|
raw = strieq(mode, "Raw");
|
||||||
|
|
||||||
if (csv || xml) {
|
if (csv || xml || raw) {
|
||||||
page_n = -1; /* display all pages */
|
page_n = -1; /* display all pages */
|
||||||
show_attachments = FALSE; /* hide attachments */
|
show_attachments = FALSE; /* hide attachments */
|
||||||
}
|
}
|
||||||
@ -16048,6 +16066,11 @@ void show_elog_list(LOGBOOK * lbs, INT past_n, INT last_n, INT page_n, char *inf
|
|||||||
rsprintf("<!-- ELOGD Version %s export.xml -->\n", VERSION);
|
rsprintf("<!-- ELOGD Version %s export.xml -->\n", VERSION);
|
||||||
rsprintf("<ELOG_LIST>\n");
|
rsprintf("<ELOG_LIST>\n");
|
||||||
|
|
||||||
|
} else if (raw) {
|
||||||
|
|
||||||
|
/* no menus and tables */
|
||||||
|
show_plain_header(0, "export.txt");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
show_standard_header(lbs, TRUE, str, NULL, TRUE);
|
show_standard_header(lbs, TRUE, str, NULL, TRUE);
|
||||||
@ -16588,6 +16611,38 @@ void show_elog_list(LOGBOOK * lbs, INT past_n, INT last_n, INT page_n, char *inf
|
|||||||
|
|
||||||
rsputs("\t</ENTRY>\n");
|
rsputs("\t</ENTRY>\n");
|
||||||
|
|
||||||
|
} else if (raw) {
|
||||||
|
|
||||||
|
rsprintf("$@MID@$: %d\r\n", message_id);
|
||||||
|
rsprintf("Date: %s\r\n", date);
|
||||||
|
|
||||||
|
if (reply_to[0])
|
||||||
|
rsprintf("Reply to: %s\r\n", reply_to);
|
||||||
|
|
||||||
|
if (in_reply_to[0])
|
||||||
|
rsprintf("In reply to: %s\r\n", in_reply_to);
|
||||||
|
|
||||||
|
for (i = 0; i < lbs->n_attr; i++)
|
||||||
|
rsprintf("%s: %s\r\n", attr_list[i], attrib[i]);
|
||||||
|
|
||||||
|
rsprintf("Attachment: ");
|
||||||
|
|
||||||
|
if (attachment[0][0]) {
|
||||||
|
rsprintf(attachment[0]);
|
||||||
|
for (i = 1; i < MAX_ATTACHMENTS; i++)
|
||||||
|
if (attachment[i][0])
|
||||||
|
rsprintf(",%s", attachment[i]);
|
||||||
|
}
|
||||||
|
rsprintf("\r\n");
|
||||||
|
|
||||||
|
rsprintf("Encoding: %s\r\n", encoding);
|
||||||
|
if (locked_by && locked_by[0])
|
||||||
|
rsprintf("Locked by: %s\r\n", locked_by);
|
||||||
|
|
||||||
|
rsprintf("========================================\r\n");
|
||||||
|
rsputs(text);
|
||||||
|
rsputs("\r\n");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/*---- add highlighting for searched subtext ----*/
|
/*---- add highlighting for searched subtext ----*/
|
||||||
@ -16641,7 +16696,7 @@ void show_elog_list(LOGBOOK * lbs, INT past_n, INT last_n, INT page_n, char *inf
|
|||||||
} /* if (!csv && !xml) */
|
} /* if (!csv && !xml) */
|
||||||
} /* for() */
|
} /* for() */
|
||||||
|
|
||||||
if (!csv && !xml) {
|
if (!csv && !xml && !raw) {
|
||||||
rsprintf("</table>\n");
|
rsprintf("</table>\n");
|
||||||
|
|
||||||
if (n_display)
|
if (n_display)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user