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 Ember from 'ember';
|
||||||
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
|
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
|
||||||
|
|
||||||
|
const {
|
||||||
|
isPresent
|
||||||
|
} = Ember;
|
||||||
|
|
||||||
export default Ember.Route.extend(AuthenticatedRouteMixin, {
|
export default Ember.Route.extend(AuthenticatedRouteMixin, {
|
||||||
folderService: Ember.inject.service('folder'),
|
folderService: Ember.inject.service('folder'),
|
||||||
localStorage: Ember.inject.service(),
|
localStorage: Ember.inject.service(),
|
||||||
|
@ -11,22 +15,21 @@ export default Ember.Route.extend(AuthenticatedRouteMixin, {
|
||||||
},
|
},
|
||||||
|
|
||||||
afterModel: function (model) {
|
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");
|
let lastFolder = this.get('localStorage').getSessionItem("folder");
|
||||||
|
|
||||||
//If folder lastFolder is defined
|
//If folder lastFolder is defined
|
||||||
if (Ember.isPresent(lastFolder)) {
|
if (isPresent(lastFolder)) {
|
||||||
return this.get('folderService').getFolder(lastFolder).then((folder) => {
|
return this.get('folderService').getFolder(lastFolder).then((folder) => {
|
||||||
//if Response is null or undefined redirect to login else transitionTo dashboard
|
//if Response is null or undefined redirect to login else transitionTo dashboard
|
||||||
if (Ember.isNone(folder)) {
|
if (Ember.isNone(folder)) {
|
||||||
this.transitionTo('auth.login');
|
this.transitionTo('auth.login');
|
||||||
}
|
}
|
||||||
this.folder = folder;
|
|
||||||
|
Ember.set(this, 'folder', folder);
|
||||||
this.transitionTo('folders.folder', folder.get('id'), folder.get('slug'));
|
this.transitionTo('folders.folder', folder.get('id'), folder.get('slug'));
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
//if there was an error redirect to login
|
//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 has any folders redirect to dashboard
|
||||||
if (model.length > 0) {
|
if (model.length > 0) {
|
||||||
let folder = model[0];
|
let folder = model[0];
|
||||||
this.folder = folder;
|
Ember.set(this, 'folder', folder);
|
||||||
this.transitionTo('folders.folder', folder.get('id'), folder.get('slug'));
|
this.transitionTo('folders.folder', folder.get('id'), folder.get('slug'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// has no folders, create default folder
|
// has no folders, create default folder
|
||||||
return this.get('folderService').add({ name: "My Space" }).then((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'));
|
this.transitionTo('folders.folder', folder.get('id'), folder.get('slug'));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//If folder route has params
|
//If folder route has params
|
||||||
if (Ember.isPresent(this.paramsFor('folders.folder'))) {
|
if (isPresent(params)) {
|
||||||
|
|
||||||
let folderId = this.paramsFor('folders.folder').folder_id;
|
let folderId = this.paramsFor('folders.folder').folder_id;
|
||||||
|
|
||||||
return this.get('folderService').getFolder(folderId).then((folder) => {
|
return this.get('folderService').getFolder(folderId).then((folder) => {
|
||||||
this.folder = folder;
|
Ember.set(this, 'folder', folder);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,34 +14,34 @@ import models from '../utils/model';
|
||||||
import SimpleAuthSession from 'ember-simple-auth/services/session';
|
import SimpleAuthSession from 'ember-simple-auth/services/session';
|
||||||
|
|
||||||
const {
|
const {
|
||||||
inject: { service },
|
inject: { service },
|
||||||
computed: { oneWay, or, notEmpty },
|
computed: { oneWay, or, notEmpty },
|
||||||
computed
|
computed
|
||||||
} = Ember;
|
} = Ember;
|
||||||
|
|
||||||
export default SimpleAuthSession.extend({
|
export default SimpleAuthSession.extend({
|
||||||
ajax: service(),
|
ajax: service(),
|
||||||
appMeta: service(),
|
appMeta: service(),
|
||||||
|
|
||||||
isMac: false,
|
isMac: false,
|
||||||
isMobile: false,
|
isMobile: false,
|
||||||
authenticated: notEmpty('user.id'),
|
authenticated: notEmpty('user.id'),
|
||||||
isAdmin: oneWay('user.admin'),
|
isAdmin: oneWay('user.admin'),
|
||||||
isEditor: or('user.admin', 'user.editor'),
|
isEditor: or('user.admin', 'user.editor'),
|
||||||
|
|
||||||
init: function() {
|
init: function () {
|
||||||
this.set('isMac', is.mac());
|
this.set('isMac', is.mac());
|
||||||
this.set('isMobile', is.mobile());
|
this.set('isMobile', is.mobile());
|
||||||
},
|
},
|
||||||
|
|
||||||
user: computed('isAuthenticated', 'session.content.authenticated.user', function(){
|
user: computed('isAuthenticated', 'session.content.authenticated.user', function () {
|
||||||
if (this.get('isAuthenticated')) {
|
if (this.get('isAuthenticated')) {
|
||||||
let user = this.get('session.content.authenticated.user') || { id: '' };
|
let user = this.get('session.content.authenticated.user') || { id: '' };
|
||||||
return models.UserModel.create(user);
|
return models.UserModel.create(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
}),
|
}),
|
||||||
|
|
||||||
folderPermissions: null,
|
folderPermissions: null,
|
||||||
currentFolder: null
|
currentFolder: null
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue