Add ghostPaths util and initializer

No Issue

- Move the ghostPaths from base model to utils
- Add initializer that injects it into every route, model and controller
- Add a adminUrl and apiUrl helper method
This commit is contained in:
Jacob Gable 2014-05-14 20:56:43 -05:00 committed by Hannah Wolfe
parent d0e70501fb
commit edfbfd7336
4 changed files with 45 additions and 11 deletions

View File

@ -4,6 +4,7 @@ import injectCurrentUser from 'ghost/initializers/current-user';
import injectCsrf from 'ghost/initializers/csrf';
import {registerNotifications, injectNotifications} from 'ghost/initializers/notifications';
import registerTrailingLocationHistory from 'ghost/initializers/trailing-history';
import injectGhostPaths from 'ghost/initializers/ghost-paths';
import 'ghost/utils/link-view';
import 'ghost/utils/text-field';
@ -24,6 +25,7 @@ initFixtures();
App.initializer(injectCurrentUser);
App.initializer(injectCsrf);
App.initializer(injectGhostPaths);
App.initializer(registerNotifications);
App.initializer(injectNotifications);
App.initializer(registerTrailingLocationHistory);

View File

@ -0,0 +1,13 @@
import ghostPaths from 'ghost/utils/ghost-paths';
export default {
name: 'ghost-paths',
initialize: function (container) {
container.register('ghost:paths', ghostPaths(), {instantiate: false});
container.injection('route', 'ghostPaths', 'ghost:paths');
container.injection('model', 'ghostPaths', 'ghost:paths');
container.injection('controller', 'ghostPaths', 'ghost:paths');
}
};

View File

@ -1,14 +1,4 @@
function ghostPaths() {
var path = window.location.pathname,
subdir = path.substr(0, path.search('/ghost/'));
return {
subdir: subdir,
adminRoot: subdir + '/ghost',
apiRoot: subdir + '/ghost/api/v0.1'
};
}
import ghostPaths from 'ghost/utils/ghost-paths';
var BaseModel = Ember.Object.extend({

View File

@ -0,0 +1,29 @@
var makeRoute = function (root, args) {
var parts = Array.prototype.slice.call(args, 0).join('/'),
route = [root, parts].join('/');
if (route.slice(-1) !== '/') {
route += '/';
}
return route;
};
export default function ghostPaths() {
var path = window.location.pathname,
subdir = path.substr(0, path.search('/ghost/'));
return {
subdir: subdir,
adminRoot: subdir + '/ghost',
apiRoot: subdir + '/ghost/api/v0.1',
adminUrl: function () {
return makeRoute(this.adminRoot, arguments);
},
apiUrl: function () {
return makeRoute(this.apiRoot, arguments);
}
};
}