diff --git a/app/index.js b/app/index.js index 4d3d41c8..26720281 100644 --- a/app/index.js +++ b/app/index.js @@ -42,6 +42,10 @@ var MeanGenerator = yeoman.generators.Base.extend({ }, { name: 'appAuthor', message: 'What is your company/author name?' + }, { + name: 'html5Mode', + message: 'Enable HTML5 mode?', + default: false }, { type: 'confirm', name: 'addArticleExample', @@ -54,6 +58,7 @@ var MeanGenerator = yeoman.generators.Base.extend({ this.appDescription = props.appDescription; this.appKeywords = props.appKeywords; this.appAuthor = props.appAuthor; + this.html5Mode = props.html5Mode; this.addArticleExample = props.addArticleExample; this.slugifiedAppName = this._.slugify(this.appName); diff --git a/app/templates/app/routes/articles.server.routes.js b/app/templates/app/routes/articles.server.routes.js index 9dfcb038..1ed1e8ec 100644 --- a/app/templates/app/routes/articles.server.routes.js +++ b/app/templates/app/routes/articles.server.routes.js @@ -1,22 +1,22 @@ 'use strict'; -/** - * Module dependencies. - */ -var users = require('../../app/controllers/users'), - articles = require('../../app/controllers/articles'); - module.exports = function(app) { + /** + * Module dependencies. + */ + var users = require('../../app/controllers/users'), + articles = require('../../app/controllers/articles'); + // Article Routes - app.route('/articles') + app.route('/api/articles') .get(articles.list) .post(users.requiresLogin, articles.create); - app.route('/articles/:articleId') + app.route('/api/articles/:articleId') .get(articles.read) .put(users.requiresLogin, articles.hasAuthorization, articles.update) .delete(users.requiresLogin, articles.hasAuthorization, articles.delete); // Finish by binding the article middleware app.param('articleId', articles.articleByID); -}; \ No newline at end of file +}; diff --git a/app/templates/app/routes/core.server.routes.js b/app/templates/app/routes/core.server.routes.js index 4cd9616a..60340a4a 100644 --- a/app/templates/app/routes/core.server.routes.js +++ b/app/templates/app/routes/core.server.routes.js @@ -1,7 +1,11 @@ 'use strict'; module.exports = function(app) { - // Root routing + /** + * Module dependencies. + */ var core = require('../../app/controllers/core'); + + // Core Routes app.route('/').get(core.index); -}; \ No newline at end of file +}; diff --git a/app/templates/app/routes/users.server.routes.js b/app/templates/app/routes/users.server.routes.js index 929a88a2..f85b3d19 100644 --- a/app/templates/app/routes/users.server.routes.js +++ b/app/templates/app/routes/users.server.routes.js @@ -10,12 +10,12 @@ module.exports = function(app) { var users = require('../../app/controllers/users'); // Setting up the users profile api - app.route('/users/me').get(users.me); - app.route('/users').put(users.update); - app.route('/users/accounts').delete(users.removeOAuthProvider); + app.route('/api/users/me').get(users.me); + app.route('/api/users').put(users.update); + app.route('/api/users/accounts').delete(users.removeOAuthProvider); // Setting up the users password api - app.route('/users/password').post(users.changePassword); + app.route('/api/users/password').post(users.changePassword); app.route('/auth/forgot').post(users.forgot); app.route('/auth/reset/:token').get(users.validateResetToken); app.route('/auth/reset/:token').post(users.reset); diff --git a/app/templates/config/config.js b/app/templates/config/config.js index 3baa02e5..f1216e97 100644 --- a/app/templates/config/config.js +++ b/app/templates/config/config.js @@ -57,7 +57,7 @@ module.exports.getGlobbedFiles = function(globPatterns, removeRoot) { * Get the modules JavaScript files */ module.exports.getJavaScriptAssets = function(includeTests) { - var output = this.getGlobbedFiles(this.assets.lib.js.concat(this.assets.js), 'public/'); + var output = this.getGlobbedFiles(this.assets.lib.js.concat(this.assets.js), 'public'); // To include tests if (includeTests) { @@ -71,6 +71,6 @@ module.exports.getJavaScriptAssets = function(includeTests) { * Get the modules CSS files */ module.exports.getCSSAssets = function() { - var output = this.getGlobbedFiles(this.assets.lib.css.concat(this.assets.css), 'public/'); + var output = this.getGlobbedFiles(this.assets.lib.css.concat(this.assets.css), 'public'); return output; -}; \ No newline at end of file +}; diff --git a/app/templates/config/express.js b/app/templates/config/express.js index bea1c88d..74505d44 100755 --- a/app/templates/config/express.js +++ b/app/templates/config/express.js @@ -118,6 +118,14 @@ module.exports = function(db) { require(path.resolve(routePath))(app); }); + /** + * Module dependencies. + */ + var core = require('../app/controllers/core'); + + // Catch-all route + app.route('*').get(core.index); + // Assume 'not found' in the error msgs is a 404. this is somewhat silly, but valid, you can do whatever you like, set properties, use instanceof etc. app.use(function(err, req, res, next) { // If the error object doesn't exists @@ -141,4 +149,4 @@ module.exports = function(db) { }); return app; -}; \ No newline at end of file +}; diff --git a/app/templates/public/_config.js b/app/templates/public/_config.js index 2b46e570..dea4d01e 100644 --- a/app/templates/public/_config.js +++ b/app/templates/public/_config.js @@ -15,9 +15,12 @@ var ApplicationConfiguration = (function() { angular.module(applicationModuleName).requires.push(moduleName); }; + var html5Mode = <%= html5Mode %>; + return { applicationModuleName: applicationModuleName, applicationModuleVendorDependencies: applicationModuleVendorDependencies, - registerModule: registerModule + registerModule: registerModule, + html5Mode: html5Mode }; -})(); \ No newline at end of file +})(); diff --git a/app/templates/public/application.js b/app/templates/public/application.js index 19bb411e..a641584c 100644 --- a/app/templates/public/application.js +++ b/app/templates/public/application.js @@ -6,7 +6,7 @@ angular.module(ApplicationConfiguration.applicationModuleName, ApplicationConfig // Setting HTML5 Location Mode angular.module(ApplicationConfiguration.applicationModuleName).config(['$locationProvider', function($locationProvider) { - $locationProvider.hashPrefix('!'); + $locationProvider.html5Mode(ApplicationConfiguration.html5Mode).hashPrefix('!'); } ]); @@ -17,4 +17,4 @@ angular.element(document).ready(function() { //Then init the app angular.bootstrap(document, [ApplicationConfiguration.applicationModuleName]); -}); \ No newline at end of file +}); diff --git a/app/templates/public/modules/articles/config/articles.client.routes.js b/app/templates/public/modules/articles/config/articles.client.routes.js index 1531a9a5..646ae915 100755 --- a/app/templates/public/modules/articles/config/articles.client.routes.js +++ b/app/templates/public/modules/articles/config/articles.client.routes.js @@ -7,19 +7,19 @@ angular.module('articles').config(['$stateProvider', $stateProvider. state('listArticles', { url: '/articles', - templateUrl: 'modules/articles/views/list-articles.client.view.html' + templateUrl: '/modules/articles/views/list-articles.client.view.html' }). state('createArticle', { url: '/articles/create', - templateUrl: 'modules/articles/views/create-article.client.view.html' + templateUrl: '/modules/articles/views/create-article.client.view.html' }). state('viewArticle', { url: '/articles/:articleId', - templateUrl: 'modules/articles/views/view-article.client.view.html' + templateUrl: '/modules/articles/views/view-article.client.view.html' }). state('editArticle', { url: '/articles/:articleId/edit', - templateUrl: 'modules/articles/views/edit-article.client.view.html' + templateUrl: '/modules/articles/views/edit-article.client.view.html' }); } -]); \ No newline at end of file +]); diff --git a/app/templates/public/modules/articles/services/articles.client.service.js b/app/templates/public/modules/articles/services/articles.client.service.js index deeb7da5..55265337 100644 --- a/app/templates/public/modules/articles/services/articles.client.service.js +++ b/app/templates/public/modules/articles/services/articles.client.service.js @@ -3,7 +3,7 @@ //Articles service used for communicating with the articles REST endpoints angular.module('articles').factory('Articles', ['$resource', function($resource) { - return $resource('articles/:articleId', { + return $resource('/api/articles/:articleId', { articleId: '@_id' }, { update: { @@ -11,4 +11,4 @@ angular.module('articles').factory('Articles', ['$resource', } }); } -]); \ No newline at end of file +]); diff --git a/app/templates/public/modules/articles/views/list-articles.client.view.html b/app/templates/public/modules/articles/views/list-articles.client.view.html index 861ae5b6..bac28655 100644 --- a/app/templates/public/modules/articles/views/list-articles.client.view.html +++ b/app/templates/public/modules/articles/views/list-articles.client.view.html @@ -3,7 +3,7 @@