diff --git a/ghost/admin/app.js b/ghost/admin/app.js index a3cfa02189..3647b0f006 100755 --- a/ghost/admin/app.js +++ b/ghost/admin/app.js @@ -2,6 +2,7 @@ import Resolver from 'ember/resolver'; import initFixtures from 'ghost/fixtures/init'; import {currentUser, injectCurrentUser} from 'ghost/initializers/current-user'; import {registerNotifications, injectNotifications} from 'ghost/initializers/notifications'; +import registerTrailingLocationHistory from 'ghost/initializers/trailing-history'; import 'ghost/utils/link-view'; import 'ghost/utils/text-field'; @@ -24,5 +25,6 @@ App.initializer(currentUser); App.initializer(injectCurrentUser); App.initializer(registerNotifications); App.initializer(injectNotifications); +App.initializer(registerTrailingLocationHistory); export default App; diff --git a/ghost/admin/initializers/trailing-history.js b/ghost/admin/initializers/trailing-history.js new file mode 100644 index 0000000000..89c9840940 --- /dev/null +++ b/ghost/admin/initializers/trailing-history.js @@ -0,0 +1,23 @@ +/*global Ember */ + +var trailingHistory = Ember.HistoryLocation.extend({ + setURL: function (path) { + var state = this.getState(); + path = this.formatURL(path); + path = path.replace(/\/?$/, '/'); + + if (state && state.path !== path) { + this.pushState(path); + } + } +}); + +var registerTrailingLocationHistory = { + name: 'registerTrailingLocationHistory', + + initialize: function (container, application) { + application.register('location:trailing-history', trailingHistory); + } +}; + +export default registerTrailingLocationHistory; \ No newline at end of file diff --git a/ghost/admin/router.js b/ghost/admin/router.js index 46d7f293a0..492ed59760 100644 --- a/ghost/admin/router.js +++ b/ghost/admin/router.js @@ -4,7 +4,7 @@ var Router = Ember.Router.extend(); Router.reopen({ - location: 'history', // use HTML5 History API instead of hash-tag based URLs + location: 'trailing-history', // use HTML5 History API instead of hash-tag based URLs rootURL: '/ghost/ember/' // admin interface lives under sub-directory /ghost });