1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-25 08:09:43 +02:00

fix local storage of last used space id

This commit is contained in:
Elliott Stoneham 2016-07-15 18:16:22 +01:00
parent 8fcf67ef17
commit f4fc567292
2 changed files with 163 additions and 155 deletions

View file

@ -11,6 +11,7 @@
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';
import { isNotFoundError } from 'ember-ajax/errors';
const { const {
isPresent isPresent
@ -31,20 +32,23 @@ export default Ember.Route.extend(AuthenticatedRouteMixin, {
if (is.empty(params)) { if (is.empty(params)) {
let lastFolder = this.get('localStorage').getSessionItem("folder"); let lastFolder = this.get('localStorage').getSessionItem("folder");
let self = this;
//If folder lastFolder is defined //If folder lastFolder is defined
if (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'); self.get('localStorage').clearSessionItem("folder");
this.transitionTo('application');
} }
Ember.set(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
this.transitionTo('auth.login'); self.get('localStorage').clearSessionItem("folder");
this.transitionTo('application');
}); });
} }
@ -64,11 +68,16 @@ export default Ember.Route.extend(AuthenticatedRouteMixin, {
//If folder route has params //If folder route has params
if (isPresent(params)) { if (isPresent(params)) {
let self = this;
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) => {
Ember.set(this, 'folder', folder); Ember.set(this, 'folder', folder);
}).catch(function (error) {
if (isNotFoundError(error)) {
// handle 404 errors here
self.transitionTo('application');
}
}); });
} }

View file

@ -22,7 +22,6 @@ export default BaseService.extend({
ajax: Ember.inject.service(), ajax: Ember.inject.service(),
localStorage: Ember.inject.service(), localStorage: Ember.inject.service(),
// selected folder // selected folder
currentFolder: null, currentFolder: null,
canEditCurrentFolder: false, canEditCurrentFolder: false,
@ -33,7 +32,7 @@ export default BaseService.extend({
return this.get('ajax').post(`folders`, { return this.get('ajax').post(`folders`, {
contentType: 'json', contentType: 'json',
data: JSON.stringify(folder) data: JSON.stringify(folder)
}).then((folder)=>{ }).then((folder) => {
let folderModel = models.FolderModel.create(folder); let folderModel = models.FolderModel.create(folder);
return folderModel; return folderModel;
}); });
@ -44,7 +43,7 @@ export default BaseService.extend({
return this.get('ajax').request(`folders/${id}`, { return this.get('ajax').request(`folders/${id}`, {
method: 'GET' method: 'GET'
}).then((response)=>{ }).then((response) => {
let folder = models.FolderModel.create(response); let folder = models.FolderModel.create(response);
return folder; return folder;
}); });
@ -55,7 +54,7 @@ export default BaseService.extend({
let self = this; let self = this;
if (this.get('folders') != null) { if (this.get('folders') != null) {
return new Ember.RSVP.Promise(function(resolve) { return new Ember.RSVP.Promise(function (resolve) {
resolve(self.get('folders')); resolve(self.get('folders'));
}); });
} else { } else {
@ -74,7 +73,7 @@ export default BaseService.extend({
}); });
}, },
remove: function(folderId, moveToId) { remove: function (folderId, moveToId) {
let url = `folders/${folderId}/move/${moveToId}`; let url = `folders/${folderId}/move/${moveToId}`;
return this.get('ajax').request(url, { return this.get('ajax').request(url, {
@ -82,7 +81,7 @@ export default BaseService.extend({
}); });
}, },
onboard: function(folderId, payload) { onboard: function (folderId, payload) {
let url = `public/share/${folderId}`; let url = `public/share/${folderId}`;
return this.get('ajax').post(url, { return this.get('ajax').post(url, {
@ -92,12 +91,12 @@ export default BaseService.extend({
}, },
// getProtectedFolderInfo returns non-private folders and who has access to them. // getProtectedFolderInfo returns non-private folders and who has access to them.
getProtectedFolderInfo: function() { getProtectedFolderInfo: function () {
return this.get('ajax').request(`folders?filter=viewers`, { return this.get('ajax').request(`folders?filter=viewers`, {
method: "GET" method: "GET"
}).then((response)=>{ }).then((response) => {
let data = []; let data = [];
_.each(response, function(obj) { _.each(response, function (obj) {
data.pushObject(models.ProtectedFolderParticipant.create(obj)); data.pushObject(models.ProtectedFolderParticipant.create(obj));
}); });
@ -110,9 +109,9 @@ export default BaseService.extend({
return this.get('ajax').request(`folders`, { return this.get('ajax').request(`folders`, {
method: "GET" method: "GET"
}).then((response)=>{ }).then((response) => {
let data = []; let data = [];
_.each(response, function(obj) { _.each(response, function (obj) {
data.pushObject(models.FolderModel.create(obj)); data.pushObject(models.FolderModel.create(obj));
}); });
@ -125,9 +124,9 @@ export default BaseService.extend({
return this.get('ajax').request(`folders/${folderId}/permissions`, { return this.get('ajax').request(`folders/${folderId}/permissions`, {
method: "GET" method: "GET"
}).then((response)=>{ }).then((response) => {
let data = []; let data = [];
_.each(response, function(obj) { _.each(response, function (obj) {
data.pushObject(models.FolderPermissionModel.create(obj)); data.pushObject(models.FolderPermissionModel.create(obj));
}); });
@ -182,7 +181,7 @@ export default BaseService.extend({
let result = []; let result = [];
let folderId = folder.get('id'); let folderId = folder.get('id');
folderPermissions.forEach(function(item) { folderPermissions.forEach(function (item) {
if (item.folderId === folderId) { if (item.folderId === folderId) {
result.push(item); result.push(item);
} }
@ -190,7 +189,7 @@ export default BaseService.extend({
let canEdit = false; let canEdit = false;
result.forEach(function(permission) { result.forEach(function (permission) {
if (permission.userId === userId) { if (permission.userId === userId) {
canEdit = permission.canEdit; canEdit = permission.canEdit;
} }