0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-01-13 22:41:32 -05:00
ghost/core/client/routes/settings/navigation.js
Paul Adam Davis 68eb6b67b0 Drag & Drop Navigation Reordering
Closes #4540

- Implements drag & drop to reorder navigation items
- Adds a `sort` property to navigation items
- Adds a tiny library to enable touch events for drag & drop. It hooks onto jQuery UI.
- Sort nav items before being saved
- Adds `settings-view-navigation` to route for body class
2015-02-12 17:02:46 +00:00

36 lines
1.1 KiB
JavaScript

import AuthenticatedRoute from 'ghost/routes/authenticated';
import CurrentUserSettings from 'ghost/mixins/current-user-settings';
import styleBody from 'ghost/mixins/style-body';
var NavigationRoute = AuthenticatedRoute.extend(styleBody, CurrentUserSettings, {
titleToken: 'Navigation',
classNames: ['settings-view-navigation'],
beforeModel: function () {
if (!this.get('config.navigationUI')) {
return this.transitionTo('settings.general');
}
return this.currentUser().then(this.transitionAuthor());
},
model: function () {
return this.store.find('setting', {type: 'blog,theme'}).then(function (records) {
return records.get('firstObject');
});
},
actions: {
save: function () {
// since shortcuts are run on the route, we have to signal to the components
// on the page that we're about to save.
$('.page-actions .btn-blue').focus();
this.get('controller').send('save');
}
}
});
export default NavigationRoute;