aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorallen <allen@61ea717e-8e0c-4c3c-b38e-e9c67f54f1f1>2000-09-19 23:52:49 +0000
committerallen <allen@61ea717e-8e0c-4c3c-b38e-e9c67f54f1f1>2000-09-19 23:52:49 +0000
commit508e1bc1c45001e1384ec0a6edd23ba08387e126 (patch)
tree812ca4a166717f10b11f00c3c92db01c885daf6c
parent9ea2444dfdd284c3678c43825c30e9784ffd59ca (diff)
Changing headers etc.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusConnect/HTTPDExtra/trunk@7 61ea717e-8e0c-4c3c-b38e-e9c67f54f1f1
-rw-r--r--src/Groups.c195
-rw-r--r--src/IO.c50
2 files changed, 75 insertions, 170 deletions
diff --git a/src/Groups.c b/src/Groups.c
index 05ebbfc..ccb3a9b 100644
--- a/src/Groups.c
+++ b/src/Groups.c
@@ -9,12 +9,14 @@
@@*/
#include <stdio.h>
+#include <string.h>
#include "cctk.h"
#include "util_String.h"
#include "DevThorns/httpd/src/http_Request.h"
+#include "DevThorns/httpd/src/http_Content.h"
static char *rcsid = "$Header$";
@@ -30,7 +32,6 @@ static char memo[4098];
********************* Local Routine Prototypes *********************
********************************************************************/
-static int GroupsPage(cGH *cctkGH, httpRequest *request, void *data);
static int MessagesPage(cGH *cctkGH, httpRequest *request, void *data);
/********************************************************************
@@ -61,133 +62,20 @@ static int MessagesPage(cGH *cctkGH, httpRequest *request, void *data);
@@*/
int HTTPUTILS_RegisterPages(void)
{
- /* Register the group info page. */
- HTTP_RegisterPage("/Groups", GroupsPage, NULL);
-
/* Register the message board page. */
HTTP_RegisterPage("/Messages", MessagesPage, NULL);
+
+ HTTP_ContentLink("/Messages/index.html", "Message Board",
+ "Collaborative simulation notepad",
+ HTTP_QUICKLINK);
+
+ return 0;
}
/********************************************************************
********************* Local Routines *************************
********************************************************************/
-
-/******************************************************************************
- ***************************** Groups Page **************************************
- ******************************************************************************/
-
-static const char *cactus_header = " \
-</HEAD>\n \
-<BODY BGCOLOR=\"#FFFFFF\" \
- link=\"#1B831D\" vlink=\"#768000\" alink=\"#00FF00\">\n \
-<center> \
-</A> \
-<table width=70% border=0><tr><td> \
-\n";
-
-static const char *cactus_footer = \
-"</table>" \
-"\n \
-<HR size=1>\n \
-<ADDRESS><DIV ALIGN=left>\n \
-<SMALL>\n \
-<A HREF=\"http://www.cactuscode.org/\">Cactus Home Page</A><BR>\n\
-Cactus Web Interface by <A HREF=\"mailto:cactusmaint@cactuscode.org\">The Cactus Team</A><BR>\n\
-</SMALL></DIV></ADDRESS></BODY></HTML>\n";
-
- /*@@
- @routine GroupsPage
- @date Thu Sep 14 23:47:43 2000
- @author Gabrielle Allen
- @desc
- Displays the group description page.
- @enddesc
- @calls
- @calledby
-@@*/
-static int GroupsPage(cGH *cctkGH, httpRequest *request, void *data)
-{
- int retval;
- char message[4098];
-
- /* Status message */
- strcpy(message,"HTTP/1.0 200 OK\r\n");
-
- HTTP_Write(request, message, strlen(message));
-
- /* Content-Type */
- strcpy(message,"Content-Type: text/html\r\n\r\n");
-
- HTTP_Write(request, message, strlen(message));
-
-
- /* Start the page */
- strcpy(message,"<HTML><HEAD><TITLE>Cactus Simulation Group Information</TITLE>\n");
-
- HTTP_Write(request, message, strlen(message));
-
- /* HTTP_Write out the header part. */
-
- retval = HTTP_Write(request, cactus_header, strlen(cactus_header));
-
- {
- int i,j;
- int ngroups,nvars;
-
- ngroups = CCTK_NumGroups();
-
- strcpy(message, "<h1>Groups and Variables:</h1>"
- "<p>This list describes the grid variables and their groups "
- "active in this simulation. <font color=red>Red</font> indicates"
- " that storage is active for this group (at the time of the query).</p>"
- "<DL>");
-
-
- for(i=0; i < ngroups; i++)
- {
- strcat(message, "<DD>");
- if (CCTK_QueryGroupStorageI(cctkGH,i))
- {
- sprintf(message,"%s %d. <font color=red>%s</font>\n", message, i, CCTK_GroupName(i));
- }
- else
- {
- sprintf(message,"%s %d) %s\n", message, i, CCTK_GroupName(i));
- }
- nvars = CCTK_NumVarsInGroupI(i);
- strcat(message,"<DL>");
- for(j=CCTK_FirstVarIndexI(i); j < CCTK_FirstVarIndexI(i)+nvars; j++)
- {
- strcat(message, "<DD>");
- sprintf(message,"%s %d. %s\n", message, j, CCTK_VarName(j) );
-
- }
- strcat(message,"</DL>");
- }
- strcat(message, "</DL>");
-
- }
-
- HTTP_Write(request, message, strlen(message));
-
-
- /* Finish table started by blurb */
- strcpy(message, "</td></tr></table>");
-
- HTTP_Write(request, message, strlen(message));
-
- /* Write out the footer part. */
-
- retval = HTTP_Write(request, cactus_footer, strlen(cactus_footer));
-
- /* retval = HTTP_Write(request, base_page, strlen(base_page)); */
-
- return retval;
-}
-
-
-
/*@@
@routine MessagesPage
@date Sat Sep 16
@@ -202,20 +90,20 @@ static int MessagesPage(cGH *cctkGH, httpRequest *request, void *data)
{
int retval;
char message[4098];
- const httpArg *argument;
+ char currtime[100];
+ char currdate[100];
if (request->n_arguments > 0)
- {
- argument = HTTP_ArgumentWalk(request, 1);
- if (argument)
- {
- sprintf(memo,"%s\n\n<p><strong>%s</strong><br>",memo,argument->value);
- }
- argument = HTTP_ArgumentWalk(request, 0);
- if (argument)
- {
- sprintf(memo,"%s\n\n<i>%s</i></p>",memo,argument->value);
- }
+ {
+ Util_CurrentTime(100,currtime);
+ Util_CurrentDate(100,currdate);
+
+ sprintf(memo,"%s\n\n<p><strong>%s</strong> %s %s<br>",
+ memo,HTTP_ArgumentValue(request, "name"),
+ currtime,currdate);
+
+ sprintf(memo,"%s\n\n<i>%s</i></p>",memo,
+ HTTP_ArgumentValue(request, "memo"));
}
/* Status message */
@@ -234,39 +122,60 @@ static int MessagesPage(cGH *cctkGH, httpRequest *request, void *data)
HTTP_Write(request, message, strlen(message));
/* Write out the header part */
- HTTP_Write(request, cactus_header, strlen(cactus_header));
+ HTTP_ContentHeader(0,4098,message);
+ HTTP_Write(request, message, strlen(message));
- strcpy(message,"<H1>Simulation Message Board</H1>\n");
+ strcpy(message,"<center><H1>Message Board</H1></center>\n"
+ "<p>This page can be used to post messages during a simulation. "
+ "At the moment the messages will disappear when the simulation"
+ " finishes, but soon there will be an option to save them to a file"
+ "</p><center>"
+ "<table>");
HTTP_Write(request, message, strlen(message));
sprintf(message,
- "<FORM ACTION=\"/Messages/\">\n");
+ "<FORM ACTION=\"/Messages/\">\n");
HTTP_Write(request, message, strlen(message));
- sprintf(message,"<p>Name:<br>"
- "<INPUT TYPE=TEXT SIZE=40 MAXLENGTH=100 NAME=\"name\" VALUE=\"\"><br>\n");
+ sprintf(message,"<tr><td>Name:</td><td>"
+ "<INPUT TYPE=TEXT SIZE=40 MAXLENGTH=100 NAME=\"name\" VALUE=\"\">"
+ "</td></tr>\n");
HTTP_Write(request, message, strlen(message));
- sprintf(message,"Message:</br>"
- "<TEXTAREA NAME=\"memo\" ROWS=10 COLS=40></TEXTAREA></p>\n");
+ sprintf(message,"<tr><td valign=top>Message:</td><td>"
+ "<TEXTAREA NAME=\"memo\" ROWS=10 COLS=40></TEXTAREA>\n"
+ "</td></tr></table>");
HTTP_Write(request, message, strlen(message));
sprintf(message,
- "<p><INPUT TYPE=SUBMIT VALUE=\"Submit Message\"></FORM></p>\n");
+ "<INPUT TYPE=SUBMIT VALUE=\"Submit Message\"></FORM>\n");
HTTP_Write(request, message, strlen(message));
- sprintf(message,"<table width=100% cellpadding=5 border=1><tr><td>%s</td></tr></table>",memo);
+ sprintf(message,"%s","<table><tr><td><h2>Messages:</h2></td></tr><tr><td>");
+ HTTP_Write(request, message, strlen(message));
- HTTP_Write(request, message, strlen(message));
+ if (strlen(memo)>0)
+ {
+ sprintf(message,"<table width=\"100\%\" cellpadding=5 cellspacing=5><tr><td BGCOLOR=\"#E9F4D3\" >%s</td></tr></table>",memo);
+ HTTP_Write(request, message, strlen(message));
+ }
+ else
+ {
+ strcpy(message,"<table width=\"100\%\" cellpadding=5 cellspacing=5><tr><td BGCOLOR=\"#E9F4D3\">No messages yet ... use the form above to add one</td></tr></table>");
+ HTTP_Write(request, message, strlen(message));
+ }
+ sprintf(message, "</td></tr></table></center>");
+ HTTP_Write(request, message, strlen(message));
/* Write out the footer part. */
- retval = HTTP_Write(request, cactus_footer, strlen(cactus_footer));
+ HTTP_ContentFooter(0,4098,message);
+ retval = HTTP_Write(request, message, strlen(message));
return retval;
}
diff --git a/src/IO.c b/src/IO.c
index ba79c63..fc96902 100644
--- a/src/IO.c
+++ b/src/IO.c
@@ -166,24 +166,6 @@ static int IOFileListener(cGH *GH, const char *filename,
return 0;
}
-static const char *cactus_header =
-"</HEAD>\n"
-"<BODY BGCOLOR=\"#FFFFFF\""
-" link=\"#1B831D\" vlink=\"#768000\" alink=\"#00FF00\">\n"
-"<center>"
-"</A>"
-"<table width=70% border=0><tr><td>"
-"\n";
-
-static const char *cactus_footer =
-"</table>"
-"\n"
-"<HR size=1>\n"
-"<ADDRESS><DIV ALIGN=left>\n"
-"<SMALL>\n"
-"<A HREF=\"http://www.cactuscode.org/\">Cactus Home Page</A><BR>\n"
-"Cactus Web Interface by <A HREF=\"mailto:cactusmaint@cactuscode.org\">The Cactus Team</A><BR>\n"
-"</SMALL></DIV></ADDRESS></BODY></HTML>\n";
/*@@
@routine AdvertisedFilePage
@@ -217,20 +199,30 @@ static int AdvertisedFilePage(cGH *cctkGH, httpRequest *request, void *data)
/* Start the page */
strcpy(message, "<HTML><HEAD><TITLE>Cactus Downloadable Files</TITLE>\n");
- strcat(message, cactus_header);
- strcat(message, "<center><h1>Downloadable Files</h1></center>");
+ HTTP_Write(request, message, strlen(message));
+
+ /* HTTP_Write out the header part. */
+
+ HTTP_ContentHeader(0,4098,message);
HTTP_Write(request, message, strlen(message));
- strcpy(message, "<center>");
+ strcpy(message, "<center><h1>Downloadable Files</h1></center>");
+
HTTP_Write(request, message, strlen(message));
strcpy(message,
- "<center>[<A HREF=\"/\">This Simulation Homepage</A>]</center>\n"
- "</center><p>From this page you can download various output files \n"
- "from the simulation. \n"
- "<table cellspacing=5 border=0\n>"
+ "<p>From this page you can download various output files \n"
+ "from the simulation. Depending on the software available on your"
+ " local machine, you can change the browser properties to lauch"
+ " files directly to visualization clients.</p> \n "
+ "<p>Many IO methods have <i>steerable</i> parameters which "
+ "allow you to e.g. add fields and customise behaviour."
+ "Depending on your authorisation, you can access the"
+ " <a href=\"/Parameters/index.html\">parameter steering page</a></p>"
+ "<center>"
+ "<table cellspacing=5 cellpadding=5 border=0\n>"
"<tr><th>File Name</th><th>Variable</th><th>Description</th></tr>\n");
HTTP_Write(request, message, strlen(message));
@@ -239,7 +231,7 @@ static int AdvertisedFilePage(cGH *cctkGH, httpRequest *request, void *data)
{
sprintf(message,
"<tr><td valign=top><A HREF=\"/Output/%s\">%s</A></td>"
- "<td valign=top>%s</td><td valign=top>%s</td></tr>",
+ "<td valign=top>%s</td><td valign=top>%s</td></tr>\n",
list->linkname, list->filename,
list->data.varname, list->data.description);
HTTP_Write(request, message, strlen(message));
@@ -250,7 +242,11 @@ static int AdvertisedFilePage(cGH *cctkGH, httpRequest *request, void *data)
/* Write out the footer part. */
- retval = HTTP_Write(request, cactus_footer, strlen(cactus_footer));
+ /* HTTP_Write out the footer part. */
+
+ HTTP_ContentFooter(0,4098,message);
+
+ retval = HTTP_Write(request, message, strlen(message));
return retval;
}