Updated Branches:
  refs/heads/master a07319240 -> f61da05a0

routing all the requests through the router. serving css files/etc through file 
streamer


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/f61da05a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/f61da05a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/f61da05a

Branch: refs/heads/master
Commit: f61da05a0a13eb434fc853ac2c8c4ed7212b22b8
Parents: a073192
Author: Pradeep Fernando <[email protected]>
Authored: Mon Jan 20 17:07:12 2014 +0530
Committer: Pradeep Fernando <[email protected]>
Committed: Mon Jan 20 17:07:12 2014 +0530

----------------------------------------------------------------------
 .../console/controllers/router.jag              | 50 ++++++++------------
 .../console/jaggery.conf                        |  6 ++-
 .../console/modules/file.js                     | 13 +++++
 .../console/modules/mime.js                     | 22 +++++++++
 4 files changed, 60 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f61da05a/components/org.apache.stratos.manager.console/console/controllers/router.jag
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/controllers/router.jag 
b/components/org.apache.stratos.manager.console/console/controllers/router.jag
index 31d5aef..25f2e52 100644
--- 
a/components/org.apache.stratos.manager.console/console/controllers/router.jag
+++ 
b/components/org.apache.stratos.manager.console/console/controllers/router.jag
@@ -4,15 +4,13 @@
     var config=require('/config/console.json');
     var log = new Log("controller.router");
     var DEFAULT_ROUTER_NAME='/asset.jag';
-    var EXT_ROUTER_NAME='/pages/asset.jag';
-    var EXT_PATH=config.paths.ASSET_EXT_PATH;
     var DEFAULT_PATH=config.paths.ASSET_DEFAULT_PATH;
-    var URL=config.urls.MGT;
     var acl = require('/util/acl.jag');
 
     var MSG_404='Asset not found';     //Eror 404 message
 
     var 
securityModule=require('/modules/security/security.manager.js').securityManagementModule();
+    var file = require('/modules/file.js');
 
     var sm=securityModule.cached();
 
@@ -21,9 +19,6 @@
     var tenantDomain = session.get("TENANT_DOMAIN");
     var roleArray = session.get("ROLE_ARRAY");
 
-    log.info(tenantDomain);
-    log.info(roleArray);
-
     // comment out the above and uncomment below code bits for testing. It 
removes authentication/authorization
     // of the app.
 
@@ -31,7 +26,6 @@
     //var tenantDomain = "carbon.super";
     //var roleArray = "["admin","Internal/Everyone"]";
 
-
     //Stop servicing the request if the check failed
     if(!passed){
         return;
@@ -44,51 +38,47 @@
      @return: true if the pattern matches,else false
      */
     function isMatchingPattern(patterns,uriMatcher){
-
         for each(var pattern in patterns){
-
             if(uriMatcher.match(pattern)){
-
                 return true;
             }
         }
-
         return false;
     }
 
 
     var matcher=new URIMatcher(request.getRequestURI());
 
+    // we stream css and other theme related resources found under themes 
directory.
+    if (matcher.match('/{context}/themes/{+file}')) {
+        elements = matcher.elements();
+        file.send('/themes/' + elements.file);
+        return;
+    }
 
-    var patterns=[ '/{context}'+URL+'/{type}/{+suffix}',
-        '/{context}'+URL+'/{type}'];
-
-
-
+    var patterns=['/{context}','/{context}/','/{context}/{+suffix}'];
     if(isMatchingPattern(patterns,matcher)){
 
         var params=matcher.elements();
 
-        var theme=params.theme;
-        var type=params.type;
-        log.info("type : "+ params.type);
-        log.info("context :"+ params.cotext);
-        var extLocation ='/'+type;
-        var path = extLocation; //Assume there is an extension
-        log.info(path);
-
-
-        //Check if an extension asset router exists
-        var fileTester=new File(path);
+        var context=params.context;
+        var suffix=params.suffix;
+        var includePath ='/';
+        if(!suffix){
+          includePath += 'index.jag'; // index page rendering for /console
+        }else{
+          includePath += suffix;
+        }
+        //check if the file path exists
+        var fileTester=new File(includePath);
 
         if(fileTester.isExists()){
             request.getMappedPath = function() {
-                return path;
+                return includePath;
             };
             var permissionObject = 
acl.authorizationUtil.getPermissionObj(tenantDomain,roleArray);
-            log.info(permissionObject);
             request.permissions = permissionObject;
-            include(path);
+            include(includePath);
             return;
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f61da05a/components/org.apache.stratos.manager.console/console/jaggery.conf
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager.console/console/jaggery.conf 
b/components/org.apache.stratos.manager.console/console/jaggery.conf
index 0c7ce62..80b8f8f 100644
--- a/components/org.apache.stratos.manager.console/console/jaggery.conf
+++ b/components/org.apache.stratos.manager.console/console/jaggery.conf
@@ -3,7 +3,11 @@
     "logLevel": "info",
     "urlMappings":[
                 {
-                    "url":"/mgt/*",
+                    "url":"/acs",
+                    "path":"/controllers/acs.jag"
+                },
+                {
+                    "url":"/*",
                     "path":"/controllers/router.jag"
                 },
                 {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f61da05a/components/org.apache.stratos.manager.console/console/modules/file.js
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/modules/file.js 
b/components/org.apache.stratos.manager.console/console/modules/file.js
new file mode 100644
index 0000000..9913f7c
--- /dev/null
+++ b/components/org.apache.stratos.manager.console/console/modules/file.js
@@ -0,0 +1,13 @@
+var send = function(path) {
+    var mime,
+        file = new File(path);
+    if(!file.isExists()) {
+        response.sendError(404, 'Request resource not found');
+        return;
+    }
+    mime = require('/modules/mime.js');
+    response.addHeader('Content-Type', mime.getType(path));
+    file.open('r');
+    print(file.getStream());
+    file.close();
+};
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/f61da05a/components/org.apache.stratos.manager.console/console/modules/mime.js
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager.console/console/modules/mime.js 
b/components/org.apache.stratos.manager.console/console/modules/mime.js
new file mode 100644
index 0000000..98bc518
--- /dev/null
+++ b/components/org.apache.stratos.manager.console/console/modules/mime.js
@@ -0,0 +1,22 @@
+var getType = function (path) {
+    var index = path.lastIndexOf('.');
+    var ext = index < path.length ? path.substring(index + 1) : '';
+    switch (ext) {
+        case 'js':
+            return 'application/javascript';
+        case 'css':
+            return 'text/css';
+        case 'html':
+            return 'text/html';
+        case 'png':
+            return 'image/png';
+        case 'gif':
+            return 'image/gif';
+        case 'jpeg':
+            return 'image/jpeg';
+        case 'jpg':
+            return 'image/jpg';
+        default :
+            return 'text/plain';
+    }
+};
\ No newline at end of file

Reply via email to