#73: Remap app.locals done

This commit is contained in:
Gabor Javorszky 2013-05-29 23:49:49 +01:00
parent 237af40f2e
commit e7c0d13f7c
5 changed files with 40 additions and 37 deletions

7
app.js
View File

@ -28,7 +28,9 @@
* Create new Ghost object
* @type {Ghost}
*/
ghost = new Ghost();
ghost = new Ghost(),
ghostGlobals = ghost.globals();
ghost.app().configure('development', function () {
@ -44,6 +46,9 @@
// bind locals - options which appear in every view - perhaps this should be admin only
ghost.app().use(function (req, res, next) {
res.locals.messages = req.flash();
res.locals.siteTitle = ghostGlobals.title;
res.locals.siteDescription = ghostGlobals.description;
res.locals.siteUrl = ghostGlobals.url;
next();
});
});

View File

@ -12,6 +12,15 @@
*/
var config = {};
/**
* Blog settings
*/
config.blogData = {
url: 'http://local.tryghost.org', //'http://john.onolan.org',
title: "Ghost Development",
description: "Interactive designer, public speaker, startup advisor and writer. Living in Austria, attempting world domination via keyboard."
};
// ## Admin settings
/**

View File

@ -6,10 +6,9 @@
<head>
<meta charset="utf-8">
<title>Ghost</title>
<meta name="description" content="">
<title>{{siteTitle}}</title>
<meta name="description" content="{{siteDescription}}">
<meta name="author" content="">
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1.0">

View File

@ -19,10 +19,10 @@
bookshelfDataProvider = new BookshelfDataProvider(),
ExampleFilter = require('../content/plugins/exampleFilters'),
Ghost,
instance,
statuses;
// ## Article Statuses
/**
* A list of atricle status types
@ -48,12 +48,18 @@
plugin,
polyglot;
if (!instance) {
instance = this;
plugin = new ExampleFilter(instance).init();
// Temporary loading of settings
jsonDataProvider.globals.findAll(function (error, data) {
/**
* Save the global bits here so that it can
* be reused in app.js
* @author javorszky (blame me)
*/
jsonDataProvider.save(config.blogData);
jsonDataProvider.findAll(function (error, data) {
globals = data;
});

View File

@ -9,43 +9,27 @@
var _ = require('underscore'),
when = require('when'),
DataProvider,
blogData,
instance,
d;
blogData = {
url: 'http://localhost:3333', //'http://john.onolan.org',
title: "John O'Nolan",
description: "Interactive designer, public speaker, startup advisor and writer. Living in Austria, attempting world domination via keyboard."
};
instance;
DataProvider = function () {
if (!instance) {
instance = this;
_.extend(instance, {
data: [],
findAll: function(callback) {
callback(null, instance.data);
},
save: function (globals) {
_.each(globals, function (global, key) {
instance.data[key] = global;
}, instance);
return when(globals);
}
});
}
return instance;
};
DataProvider.prototype.globals = {};
DataProvider.prototype.globals.data = [];
DataProvider.prototype.globals.findAll = function () {
return when(this.data);
};
DataProvider.prototype.globals.save = function (globals) {
_.each(globals, function (global, key) {
this.data[key] = global;
}, this);
return when(globals);
};
/* Lets bootstrap with dummy data */
d = new DataProvider();
d.globals.save(blogData, function (error) {
if (error) { throw error; }
});
module.exports = DataProvider;
}());