add eclipse project
[nodejsws.git] / lib / wsrequest.js
index 20e71ba..17547e7 100644 (file)
@@ -137,8 +137,11 @@ function urlServicer(request, response, purl) {
                        }
                }
        } else {
-               // handle the purls
-               var newPurlPath = mainPath+"/"+path.basename(purl.pathname.replace(/\/$/, ""))+".js";
+               // handle the purls... we taje the pathname, drop the beginning "/", then drop every after the next "/"
+               // so we end up with a purl of "abcd" from a url:
+               // http://host/abcd/qewr/asdf/asdf/asdf/asdf/asdf/
+               // and will load mainPath/abcd.js
+               var newPurlPath = mainPath+"/"+path.basename(purl.pathname.replace(/^\//, "").replace(/\/.*$/, ""))+".js";
                console.log("attempting to require: ", newPurlPath);
                try {
                        var newPurlClass = require(newPurlPath);
@@ -153,10 +156,10 @@ function urlServicer(request, response, purl) {
 
        if(typeof purlClass.layout == "undefined") {
                console.log("set via undefined");
-               purlLayout = layouts.standard();
+               purlLayout = layouts.standard(request, response);
        } else {
                // find and resolve the layout
-               purlLayout = purlClass.layout();
+               purlLayout = purlClass.layout(request, response);
        }
        
        // now we should have a layout and a class
@@ -236,7 +239,12 @@ function resolveAndCall(request, response, caller, purlClass, callback) {
 }
 
 function serveStatic(staticname, response) {
-       var pathName = "./res/"+staticname;
+       var pathName = "";
+       if(typeof global.njspurls.mainResPath != "undefined") {
+               pathName = global.njspurls.mainResPath + "/" + staticname;
+       } else {
+               pathName = "./res/"+staticname;
+       }
        console.log("Pathname for check is ", pathName);
        fs.exists(pathName, function(exists) {
                if(!exists) {