From f1180178cefb8caad713c8b1a2e1eaf3edf691ef Mon Sep 17 00:00:00 2001 From: Andrea da Fonseca Date: Wed, 9 Sep 2015 00:41:07 +0200 Subject: [PATCH 1/9] change views file pattern to a more flexible one --- config/assets/default.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/assets/default.js b/config/assets/default.js index 85917d595d..5ddb74d901 100644 --- a/config/assets/default.js +++ b/config/assets/default.js @@ -34,7 +34,7 @@ module.exports = { 'modules/*/client/*.js', 'modules/*/client/**/*.js' ], - views: ['modules/*/client/views/**/*.html'], + views: ['modules/*/client/**/*client.view.html'], templates: ['build/templates.js'] }, server: { From 6e0a4743712e49eda4bb74cb23b6ea10cb9233e7 Mon Sep 17 00:00:00 2001 From: Andrea da Fonseca Date: Wed, 9 Sep 2015 00:42:13 +0200 Subject: [PATCH 2/9] setting globbed html files --- config/config.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/config.js b/config/config.js index c129edfa3c..ae77a82d71 100644 --- a/config/config.js +++ b/config/config.js @@ -132,6 +132,9 @@ var initGlobalConfigFiles = function (config, assets) { // Setting Globbed css files config.files.client.css = getGlobbedPaths(assets.client.lib.css, 'public/').concat(getGlobbedPaths(assets.client.css, ['public/'])); + // Setting Globbed html files + config.files.client.html = getGlobbedPaths(assets.client.views, 'public/'); + // Setting Globbed test files config.files.client.tests = getGlobbedPaths(assets.client.tests); }; From 52b02d31564557f47d377e0893d71d31617181fb Mon Sep 17 00:00:00 2001 From: Andrea da Fonseca Date: Wed, 9 Sep 2015 00:43:44 +0200 Subject: [PATCH 3/9] adding globbed html files to express app.locals --- config/lib/express.js | 1 + 1 file changed, 1 insertion(+) diff --git a/config/lib/express.js b/config/lib/express.js index 59f3cc4c46..99294e106f 100644 --- a/config/lib/express.js +++ b/config/lib/express.js @@ -34,6 +34,7 @@ module.exports.initLocalVariables = function (app) { app.locals.facebookAppId = config.facebook.clientID; app.locals.jsFiles = config.files.client.js; app.locals.cssFiles = config.files.client.css; + app.locals.htmlFiles = config.files.client.html; app.locals.livereload = config.livereload; app.locals.logo = config.logo; app.locals.favicon = config.favicon; From fc553366ac21361bd8fd121103b2c40b9368dc68 Mon Sep 17 00:00:00 2001 From: Andrea da Fonseca Date: Wed, 9 Sep 2015 00:46:22 +0200 Subject: [PATCH 4/9] preparing views to be embedded --- .../controllers/core.server.controller.js | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/modules/core/server/controllers/core.server.controller.js b/modules/core/server/controllers/core.server.controller.js index 0f216b8063..08926c3d6d 100644 --- a/modules/core/server/controllers/core.server.controller.js +++ b/modules/core/server/controllers/core.server.controller.js @@ -1,11 +1,34 @@ 'use strict'; +var fs = require('fs'), + path = require('path'), + async = require('async'); + +function readViewFromDisk (viewPath, callback) { + var splittedPath = viewPath.split('/'); + var viewName = splittedPath[splittedPath.length-1].split('.')[0]; + fs.readFile(path.resolve(viewPath), 'utf8', function (err, file) { + if(err) { + callback(err); + } else { + callback(null, { + name: viewName, + file: file + }); + } + }); +} /** * Render the main application page */ exports.renderIndex = function (req, res) { - res.render('modules/core/server/views/index', { - user: req.user || null + async.concat(res.app.locals.htmlFiles, readViewFromDisk, function (err, embeddableViews) { + if(err) + return res.status(500).send(err); + res.locals.htmlFiles = embeddableViews; + res.render('modules/core/server/views/index', { + user: req.user || null + }); }); }; From edf05fb1024cf1fedb9ab243f78af319da9a183a Mon Sep 17 00:00:00 2001 From: Andrea da Fonseca Date: Wed, 9 Sep 2015 00:49:55 +0200 Subject: [PATCH 5/9] embedding views in layout.server.view --- modules/core/server/views/layout.server.view.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/core/server/views/layout.server.view.html b/modules/core/server/views/layout.server.view.html index c10f4e62d8..e6d56ee6c8 100644 --- a/modules/core/server/views/layout.server.view.html +++ b/modules/core/server/views/layout.server.view.html @@ -43,6 +43,11 @@ + + {% for html in htmlFiles %} + + {% endfor %} + + {% for htmlFile in htmlFiles %} + {% endfor %}