1
0
Fork 0
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:
zinyando 2016-07-07 17:05:40 +02:00
parent 8597dc3dca
commit 9e8577b86c
2 changed files with 36 additions and 33 deletions

View file

@ -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);
}); });
} }

View file

@ -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
}); });