Skip to content
Snippets Groups Projects
Commit 1e54c8d1 authored by Eugen Ciur's avatar Eugen Ciur
Browse files

refactoring

parent b04fd88c
Branches
No related tags found
No related merge requests found
...@@ -38,7 +38,6 @@ export default class UserAdapter extends ApplicationAdapter { ...@@ -38,7 +38,6 @@ export default class UserAdapter extends ApplicationAdapter {
let record, me_id; let record, me_id;
me_id = window.localStorage.getItem('me'); me_id = window.localStorage.getItem('me');
if (me_id) { if (me_id) {
record = this.store.peekRecord('user', me_id); record = this.store.peekRecord('user', me_id);
...@@ -46,7 +45,6 @@ export default class UserAdapter extends ApplicationAdapter { ...@@ -46,7 +45,6 @@ export default class UserAdapter extends ApplicationAdapter {
return record; return record;
} }
} }
record = await this.store.queryRecord( record = await this.store.queryRecord(
'user', { me: true } 'user', { me: true }
); );
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="d-flex flex-column flex-shrink-0 p-3 text-white bg-dark sidebar-open" > <div class="d-flex flex-column flex-shrink-0 p-3 text-white bg-dark sidebar-open" >
<LinkTo <LinkTo
@route="authenticated.nodes" @route="authenticated.nodes"
@model="{{@home_folder.id}}" @model="{{@home_folder_id}}"
class="d-flex brand text-white text-decoration-none"> class="d-flex brand text-white text-decoration-none">
<img <img
src="/assets/images/logo_bbg.svg" src="/assets/images/logo_bbg.svg"
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<li> <li>
<LinkTo <LinkTo
@route="authenticated.nodes" @route="authenticated.nodes"
@model="{{@home_folder.id}}" @model="{{@home_folder_id}}"
class="nav-link text-white" aria-current="page"> class="nav-link text-white" aria-current="page">
<i class="fa fa-home me-2"></i>Home <i class="fa fa-home me-2"></i>Home
</LinkTo> </LinkTo>
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
<li> <li>
<LinkTo <LinkTo
@route="authenticated.nodes" @route="authenticated.nodes"
@model="{{@inbox_folder.id}}" @model="{{@inbox_folder_id}}"
class="nav-link text-white" aria-current="page"> class="nav-link text-white" aria-current="page">
<i class="bi-inbox me-2"></i>Inbox <i class="bi-inbox me-2"></i>Inbox
</LinkTo> </LinkTo>
...@@ -76,7 +76,7 @@ ...@@ -76,7 +76,7 @@
<div class="d-flex flex-column flex-shrink-1 text-white bg-dark" > <div class="d-flex flex-column flex-shrink-1 text-white bg-dark" >
<LinkTo <LinkTo
@route="authenticated.nodes" @route="authenticated.nodes"
@model="{{@home_folder.id}}" @model="{{@home_folder_id}}"
class="d-flex brand text-white text-decoration-none px-3 pb-0 pt-2"> class="d-flex brand text-white text-decoration-none px-3 pb-0 pt-2">
<img <img
src="/assets/images/logo_bbg.svg" src="/assets/images/logo_bbg.svg"
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
<li class="nav-item"> <li class="nav-item">
<LinkTo <LinkTo
@route="authenticated.nodes" @route="authenticated.nodes"
@model="{{@home_folder.id}}" @model="{{@home_folder_id}}"
{{tooltip title="Home"}} {{tooltip title="Home"}}
class="nav-link text-white"> class="nav-link text-white">
<i class="fa fa-home me-2"></i> <i class="fa fa-home me-2"></i>
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
<li> <li>
<LinkTo <LinkTo
@route="authenticated.nodes" @route="authenticated.nodes"
@model="{{@inbox_folder.id}}" @model="{{@inbox_folder_id}}"
{{tooltip title="Inbox"}} {{tooltip title="Inbox"}}
class="nav-link text-white" > class="nav-link text-white" >
<i class="bi-inbox me-2"></i> <i class="bi-inbox me-2"></i>
......
...@@ -34,5 +34,4 @@ export default class NodesController extends DualPanelBaseController { ...@@ -34,5 +34,4 @@ export default class NodesController extends DualPanelBaseController {
this.extra_type = 'folder'; this.extra_type = 'folder';
} }
} }
} }
...@@ -10,6 +10,7 @@ export default class LoginController extends Controller { ...@@ -10,6 +10,7 @@ export default class LoginController extends Controller {
@tracked in_progress = false; @tracked in_progress = false;
@service session; @service session;
@service router; @service router;
@service currentUser;
@action @action
async authenticate(username, password) { async authenticate(username, password) {
...@@ -35,7 +36,11 @@ export default class LoginController extends Controller { ...@@ -35,7 +36,11 @@ export default class LoginController extends Controller {
if (this.session.isAuthenticated) { if (this.session.isAuthenticated) {
// What to do with all this success? // What to do with all this success?
this.router.transitionTo('authenticated.index'); await this.currentUser.loadCurrentUser();
this.router.transitionTo(
'authenticated.nodes',
this.currentUser.user.home_folder.get('id')
);
} }
} }
......
...@@ -23,23 +23,6 @@ class UserModel extends Model { ...@@ -23,23 +23,6 @@ class UserModel extends Model {
return adapter.changePassword(this, new_password); return adapter.changePassword(this, new_password);
} }
async getHomeFolder() {
let home_id, adapter;
adapter = this.store.adapterFor('node');
home_id = this.home_folder.get('id');
return adapter.getFolder(home_id);
}
async getInboxFolder() {
let inbox_id, adapter;
adapter = this.store.adapterFor('node');
inbox_id = this.inbox_folder.get('id');
return adapter.getFolder(inbox_id);
}
} }
export default UserModel; export default UserModel;
...@@ -4,8 +4,19 @@ import BaseRoute from 'papermerge/routes/base'; ...@@ -4,8 +4,19 @@ import BaseRoute from 'papermerge/routes/base';
export default class AuthenticatedRoute extends BaseRoute { export default class AuthenticatedRoute extends BaseRoute {
async model() { async model() {
return this.store.findAll('tag').then((tags) => { let home_folder_id,
return tags.filter(tag => tag.pinned); inbox_folder_id,
}); pinned_tags,
tags;
tags = await this.store.findAll('tag');
pinned_tags = tags.filter(tag => tag.pinned);
if (this.currentUser.user) {
home_folder_id = this.currentUser.user.home_folder.get('id');
inbox_folder_id = this.currentUser.user.inbox_folder.get('id');
}
return {pinned_tags, home_folder_id, inbox_folder_id};
} }
} }
import Route from '@ember/routing/route';
import { service } from '@ember/service';
export default class IndexRoute extends Route {
@service store;
@service session;
@service router;
@service currentUser;
async beforeModel(transition) {
/* Redirects to user's home folder
*/
let that = this;
this.session.requireAuthentication(transition, 'login');
await this.currentUser.loadCurrentUser();
this.currentUser.user.getHomeFolder().then((home_folder) => {
that.router.replaceWith("authenticated.nodes", home_folder.id);
});
}
}
import Route from '@ember/routing/route'; import BaseRoute from 'papermerge/routes/base';
import { inject as service } from '@ember/service'; import { service } from '@ember/service';
import { getPanelInfo } from './utils'; import { getPanelInfo } from './utils';
export default class NodesRoute extends Route { export default class NodesRoute extends BaseRoute {
@service store; @service store;
@service currentUser; @service currentUser;
...@@ -52,8 +52,6 @@ export default class NodesRoute extends Route { ...@@ -52,8 +52,6 @@ export default class NodesRoute extends Route {
'last_document_version': extra_last_version, 'last_document_version': extra_last_version,
'pages': extra_pages_with_url, 'pages': extra_pages_with_url,
} }
context['home_folder'] = this.currentUser.user.home_folder;
context['inbox_folder'] = this.currentUser.user.inbox_folder;
return context; return context;
} }
...@@ -67,18 +65,6 @@ export default class NodesRoute extends Route { ...@@ -67,18 +65,6 @@ export default class NodesRoute extends Route {
this.dualpanel_mode = true; this.dualpanel_mode = true;
} }
context['home_folder'] = await this.currentUser.user.getHomeFolder();
context['inbox_folder'] = await this.currentUser.user.getInboxFolder();
return context; return context;
} }
setupController(controller, model) {
let _auth_controller = this.controllerFor('authenticated');
_auth_controller.set('home_folder', model.home_folder);
_auth_controller.set('inbox_folder', model.inbox_folder);
}
} }
...@@ -8,25 +8,7 @@ export default class BaseRoute extends Route { ...@@ -8,25 +8,7 @@ export default class BaseRoute extends Route {
@service currentUser; @service currentUser;
async beforeModel(transition) { async beforeModel(transition) {
this.session.requireAuthentication(transition, 'login');
await this.currentUser.loadCurrentUser(); await this.currentUser.loadCurrentUser();
this.session.requireAuthentication(transition, 'login');
if (this.currentUser.user) {
return this.currentUser.user.getHomeFolder();
}
}
async setupController() {
super.setupController(...arguments);
let app_controller = this.controllerFor('authenticated'),
home_folder,
inbox_folder;
home_folder = await this.currentUser.user.getHomeFolder();
inbox_folder = await this.currentUser.user.getInboxFolder();
app_controller.set('home_folder', home_folder);
app_controller.set('inbox_folder', inbox_folder);
} }
} }
...@@ -11,11 +11,17 @@ export default class CurrentUserService extends Service { ...@@ -11,11 +11,17 @@ export default class CurrentUserService extends Service {
async loadCurrentUser() { async loadCurrentUser() {
let adapter, user; let adapter, user;
if (this.isAuthenticated && this.user) {
return this.user;
}
if (this.session.isAuthenticated) { if (this.session.isAuthenticated) {
adapter = this.store.adapterFor('user'); adapter = this.store.adapterFor('user');
user = await adapter.getCurrentUser(); user = await adapter.getCurrentUser();
this.user = user; this.user = user;
} }
return this.user;
} }
get isAuthenticated() { get isAuthenticated() {
......
...@@ -10,7 +10,6 @@ export default class SessionService extends BaseSessionService { ...@@ -10,7 +10,6 @@ export default class SessionService extends BaseSessionService {
super.handleAuthentication("authenticated.index"); super.handleAuthentication("authenticated.index");
try { try {
await this.currentUser.loadCurrentUser(); await this.currentUser.loadCurrentUser();
await this.preferences.load();
} catch (err) { } catch (err) {
await this.invalidate(); await this.invalidate();
} }
......
<main> <main>
<Nav::Sidebar <Nav::Sidebar
@home_folder={{this.home_folder}} @home_folder_id={{@model.home_folder_id}}
@inbox_folder={{this.inbox_folder}} @inbox_folder_id={{@model.inbox_folder_id}}
@pinned_tags={{@model}} @pinned_tags={{@model.pinned_tags}}
@expanded={{this.expanded}} /> @expanded={{this.expanded}} />
<div class="w-100 central-bar"> <div class="w-100 central-bar">
<Nav::Topbar <Nav::Topbar
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment