Ghost/core/client/app/routes/settings/navigation.js
Kevin Ansfield c879105684 Replace jquery-ui.sortable with ember-sortable for nav items
refs #6458, closes #6457
- replaces jquery-ui.sortable with ember-sortable for drag-n-drop handling
- moves the "new/blank" nav item out of the nav items list
  - allows it to be excluded from the draggable list
  - cleans up handling of the `navigationItems` array as there's no longer a need to ignore/exclude this extra item
- clears validation errors when typing in the respective field
- adds acceptance test for adding/removing nav items
- improves acceptance test for saving nav items to cover more edge cases
2016-02-09 22:08:21 +00:00

47 lines
1.3 KiB
JavaScript

import Ember from 'ember';
import AuthenticatedRoute from 'ghost/routes/authenticated';
import CurrentUserSettings from 'ghost/mixins/current-user-settings';
import styleBody from 'ghost/mixins/style-body';
const {$} = Ember;
export default AuthenticatedRoute.extend(styleBody, CurrentUserSettings, {
titleToken: 'Settings - Navigation',
classNames: ['settings-view-navigation'],
beforeModel() {
this._super(...arguments);
return this.get('session.user')
.then(this.transitionAuthor());
},
model() {
return this.store.query('setting', {type: 'blog,theme'}).then((records) => {
return records.get('firstObject');
});
},
setupController() {
this._super(...arguments);
this.get('controller').send('reset');
},
actions: {
save() {
// 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');
},
willTransition() {
// reset the model so that our CPs re-calc and unsaved changes aren't
// persisted across transitions
this.set('controller.model', null);
return this._super(...arguments);
}
}
});