mirror of
https://github.com/documize/community.git
synced 2025-08-08 15:05:28 +02:00
Fixes to folders route
This commit is contained in:
parent
8597dc3dca
commit
9e8577b86c
2 changed files with 36 additions and 33 deletions
|
@ -1,6 +1,10 @@
|
|||
import Ember from 'ember';
|
||||
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
|
||||
|
||||
const {
|
||||
isPresent
|
||||
} = Ember;
|
||||
|
||||
export default Ember.Route.extend(AuthenticatedRouteMixin, {
|
||||
folderService: Ember.inject.service('folder'),
|
||||
localStorage: Ember.inject.service(),
|
||||
|
@ -11,22 +15,21 @@ export default Ember.Route.extend(AuthenticatedRouteMixin, {
|
|||
},
|
||||
|
||||
afterModel: function (model) {
|
||||
// TODO: replace with ES6 features (remove self this)
|
||||
// TODO: replace is.* with Ember utilities
|
||||
// TODO: flatten if/else
|
||||
// TODO: make sure chain is maintained by returning promies
|
||||
|
||||
if (is.empty(this.paramsFor('folders.folder'))) {
|
||||
let params = this.paramsFor('folders.folder');
|
||||
|
||||
if (is.empty(params)) {
|
||||
let lastFolder = this.get('localStorage').getSessionItem("folder");
|
||||
|
||||
//If folder lastFolder is defined
|
||||
if (Ember.isPresent(lastFolder)) {
|
||||
if (isPresent(lastFolder)) {
|
||||
return this.get('folderService').getFolder(lastFolder).then((folder) => {
|
||||
//if Response is null or undefined redirect to login else transitionTo dashboard
|
||||
if (Ember.isNone(folder)) {
|
||||
this.transitionTo('auth.login');
|
||||
}
|
||||
this.folder = folder;
|
||||
|
||||
Ember.set(this, 'folder', folder);
|
||||
this.transitionTo('folders.folder', folder.get('id'), folder.get('slug'));
|
||||
}).catch(() => {
|
||||
//if there was an error redirect to login
|
||||
|
@ -37,24 +40,24 @@ export default Ember.Route.extend(AuthenticatedRouteMixin, {
|
|||
// If model has any folders redirect to dashboard
|
||||
if (model.length > 0) {
|
||||
let folder = model[0];
|
||||
this.folder = folder;
|
||||
Ember.set(this, 'folder', folder);
|
||||
this.transitionTo('folders.folder', folder.get('id'), folder.get('slug'));
|
||||
}
|
||||
|
||||
// has no folders, create default folder
|
||||
return this.get('folderService').add({ name: "My Space" }).then((folder) => {
|
||||
this.folder = folder;
|
||||
Ember.set(this, 'folder', folder);
|
||||
this.transitionTo('folders.folder', folder.get('id'), folder.get('slug'));
|
||||
});
|
||||
}
|
||||
|
||||
//If folder route has params
|
||||
if (Ember.isPresent(this.paramsFor('folders.folder'))) {
|
||||
if (isPresent(params)) {
|
||||
|
||||
let folderId = this.paramsFor('folders.folder').folder_id;
|
||||
|
||||
return this.get('folderService').getFolder(folderId).then((folder) => {
|
||||
this.folder = folder;
|
||||
Ember.set(this, 'folder', folder);
|
||||
});
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue