diff options
-rw-r--r-- | src/Groups.c | 195 | ||||
-rw-r--r-- | src/IO.c | 50 |
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; } @@ -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; } |