Skip to content

Commit

Permalink
added creative 404 (very rough)
Browse files Browse the repository at this point in the history
  • Loading branch information
danja committed Feb 25, 2012
1 parent f457551 commit 55cdea6
Show file tree
Hide file tree
Showing 5 changed files with 9,312 additions and 31 deletions.
27 changes: 26 additions & 1 deletion src/htmlTemplates.js
Expand Up @@ -17,7 +17,32 @@ var htmlTemplates = {
<p>By : %nick%, %date%</p> \
</body> \
</html> \
"
",

creativeTemplate : "<!DOCTYPE html> \
<html> \
<head><meta charset='utf-8'> \
<title>Create new page</title> \
<style type='text/css'> \
label {float:left; clear:left; width:12em; margin:0em 1em; text-align:right;} \
input, textarea {margin:0.5em 0em; margin-left:13em; display:block; } </style> \
</head> \
<body> \
<h1>Create new page</h1> \
<form action='/post' method='post'> \
<label for='uri'>Item URI</label> \
<input type='text' name='uri' id='uri' value='%uri%' /> \
<label for='title'>Title</label> \
<input type='text' name='title' id='title' /> \
<label for='nick'>By</label> \
<input type='text' name='nick' id='nick' /> \
<label for='content'>Content</label> \
<textarea name='content' id='content' rows='2' cols='20'></textarea> \
<input type='submit' value='Submit' /> \
</form> \
</body> \
</html> \
"
};

// make it visible to other scripts
Expand Down
31 changes: 19 additions & 12 deletions src/seki.js
Expand Up @@ -64,9 +64,9 @@ var postHeaders = {
*
*/
var files = {
// "/" : "www/index.html",
// "/index" : "www/index.html",
// "/form" : "www/form.html",
"/" : "www/index.html",
"/index" : "www/index.html",
"/form" : "www/form.html",
"404" : "www/404.html"
};

Expand All @@ -85,13 +85,13 @@ verbosity("addressing SPARQL on " + config.sparqlHost + ":" + config.sparqlPort)
* Callback to handle HTTP requests (typically from browser)
*/
function onRequest(sekiRequest, sekiResponse) {
// verbosity("SEKI REQUEST HEADERS "+JSON.stringify(sekiRequest.headers));
// verbosity("REQUEST URL = " + sekiRequest.url);
// verbosity("REQUEST METHOD = " + sekiRequest.method);
verbosity("SEKI REQUEST HEADERS "+JSON.stringify(sekiRequest.headers));
verbosity("REQUEST URL = " + sekiRequest.url);
verbosity("REQUEST METHOD = " + sekiRequest.method);


file.serve(sekiRequest, sekiResponse, function (err, res) {
if (err) { // An error has occurred, leave it to Seki
if (err) { // the file doesn't exist, leave it to Seki
} else { // The file was served successfully
verbosity("> " + sekiRequest.url + " - " + res.message);
}
Expand Down Expand Up @@ -174,7 +174,7 @@ function onRequest(sekiRequest, sekiResponse) {

// handle the response from the SPARQL server
clientRequest.on('response', function(queryResponse) {
serveHTML(sekiResponse, queryResponse);
serveHTML(resource, sekiResponse, queryResponse);
});

// finish up
Expand Down Expand Up @@ -248,7 +248,7 @@ function onRequest(sekiRequest, sekiResponse) {
/*
* Handles GET requests (typically from a browser)
*/
function serveHTML(sekiResponse, queryResponse) {
function serveHTML(resource, sekiResponse, queryResponse) {

// set up HTML builder
var viewTemplater = templater(htmlTemplates.viewTemplate);
Expand All @@ -266,15 +266,22 @@ function serveHTML(sekiResponse, queryResponse) {
stream.end();

var bindings = stream.bindings;
if (bindings.title) {
if (bindings.title) { //// this is ugly
verbosity("GOT: " + JSON.stringify(bindings));
// verbosity("TITLE: " + bindings.title);

var html = viewTemplater.fillTemplate(bindings);
} else {
verbosity("404");
serveFile(sekiResponse, 404, files["404"]);
return;
///////////////////////////////// refactor
var creativeTemplater = templater(htmlTemplates.creativeTemplate);
var creativeMap = {
"uri" : resource
};
var html = creativeTemplater.fillTemplate(creativeMap);
/////////////////////////////////////////////
// serveFile(sekiResponse, 404, files["404"]);
//return;
}
sekiResponse.write(html, 'binary');
sekiResponse.end();
Expand Down
3 changes: 1 addition & 2 deletions src/www/form.html
Expand Up @@ -5,8 +5,7 @@
<title>Seki Post Form</title>
<style type="text/css">
label {float:left; clear:left; width:12em; margin:0em 1em; text-align:right;}
input, textarea {margin:0.5em 0em; margin-left:13em; display:block; }

input, textarea {margin:0.5em 0em; margin-left:13em; display:block; }
</style>
</head>
<body>
Expand Down

0 comments on commit 55cdea6

Please sign in to comment.