From 9e8577b86c9a3b94fbd964d239efb91b3f9f89b2 Mon Sep 17 00:00:00 2001 From: zinyando Date: Thu, 7 Jul 2016 17:05:40 +0200 Subject: [PATCH] Fixes to folders route --- app/app/pods/folders/route.js | 25 +++++++++++--------- app/app/services/session.js | 44 +++++++++++++++++------------------ 2 files changed, 36 insertions(+), 33 deletions(-) diff --git a/app/app/pods/folders/route.js b/app/app/pods/folders/route.js index 03dbfb60..8d26ad33 100644 --- a/app/app/pods/folders/route.js +++ b/app/app/pods/folders/route.js @@ -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); }); } diff --git a/app/app/services/session.js b/app/app/services/session.js index 5c6e2d04..7960cf02 100644 --- a/app/app/services/session.js +++ b/app/app/services/session.js @@ -14,34 +14,34 @@ import models from '../utils/model'; import SimpleAuthSession from 'ember-simple-auth/services/session'; const { - inject: { service }, - computed: { oneWay, or, notEmpty }, - computed + inject: { service }, + computed: { oneWay, or, notEmpty }, + computed } = Ember; export default SimpleAuthSession.extend({ - ajax: service(), - appMeta: service(), + ajax: service(), + appMeta: service(), - isMac: false, - isMobile: false, - authenticated: notEmpty('user.id'), - isAdmin: oneWay('user.admin'), - isEditor: or('user.admin', 'user.editor'), + isMac: false, + isMobile: false, + authenticated: notEmpty('user.id'), + isAdmin: oneWay('user.admin'), + isEditor: or('user.admin', 'user.editor'), - init: function() { - this.set('isMac', is.mac()); - this.set('isMobile', is.mobile()); - }, + init: function () { + this.set('isMac', is.mac()); + this.set('isMobile', is.mobile()); + }, - user: computed('isAuthenticated', 'session.content.authenticated.user', function(){ - if (this.get('isAuthenticated')) { - let user = this.get('session.content.authenticated.user') || { id: '' }; - return models.UserModel.create(user); - } + user: computed('isAuthenticated', 'session.content.authenticated.user', function () { + if (this.get('isAuthenticated')) { + let user = this.get('session.content.authenticated.user') || { id: '' }; + return models.UserModel.create(user); + } - }), + }), - folderPermissions: null, - currentFolder: null + folderPermissions: null, + currentFolder: null });