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

consider inbox tab

parent c85bf057
Branches
No related tags found
No related merge requests found
......@@ -8,8 +8,8 @@ export default class BaseRoute extends Route {
@service currentUser;
async beforeModel(transition) {
this.session.requireAuthentication(transition, 'login');
await this.currentUser.loadCurrentUser();
if (this.currentUser.user) {
......@@ -17,14 +17,16 @@ export default class BaseRoute extends Route {
}
}
setupController() {
async setupController() {
super.setupController(...arguments);
let app_controller = this.controllerFor('authenticated'),
home_folder,
inbox_folder;
let app_controller = this.controllerFor('authenticated');
this.currentUser.user.getHomeFolder().then((home_folder) => {
app_controller.set('home_folder', home_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);
}
}
......@@ -6,7 +6,15 @@
@node={{node}}
@extranode={{@extranode}}
@extradoc={{@extradoc}}
@hint={{@hint}} />
@hint={{@hint}}>
{{#if (is_equal node.title ".inbox")}}
<i class="bi-inbox-fill me-2"></i>Inbox
{{else if (is_equal node.title ".home")}}
<i class="fa fa-home me-2"></i>Home
{{else}}
{{node.title}}
{{/if}}
</DualLinkTo>
</li>
{{/each}}
</ol>
......
......@@ -3,5 +3,9 @@
@model={{this.model.id}}
@query={{this.query}}
...attributes >
{{this.title}}
{{#if (has-block)}}
{{yield}}
{{else}}
{{this.title}}
{{/if}}
</LinkTo>
......@@ -12,20 +12,22 @@
</LinkTo>
<hr>
<ul class="nav nav-pills flex-column mb-auto">
<li class="nav-item">
<li>
<LinkTo
@route="authenticated.nodes"
@model="{{@home_folder.id}}"
class="nav-link text-white {{this.active}}" aria-current="page">
class="nav-link text-white" aria-current="page">
<i class="fa fa-home me-2"></i>Home
</LinkTo>
</li>
<li>
<LinkTo @route="authenticated.inbox" class="nav-link text-white">
<LinkTo
@route="authenticated.nodes"
@model="{{@inbox_folder.id}}"
class="nav-link text-white" aria-current="page">
<i class="bi-inbox me-2"></i>Inbox
</LinkTo>
</li>
<li>
<LinkTo @route="authenticated.automates" class="nav-link text-white">
<i class="fas fa-robot me-2"></i>Automates
......@@ -71,13 +73,14 @@
@route="authenticated.nodes"
@model="{{@home_folder.id}}"
{{tooltip title="Home"}}
class="nav-link text-white {{this.active}}" aria-current="page">
class="nav-link text-white">
<i class="fa fa-home me-2"></i>
</LinkTo>
</li>
<li>
<LinkTo
@route="authenticated.inbox"
@route="authenticated.nodes"
@model="{{@inbox_folder.id}}"
{{tooltip title="Inbox"}}
class="nav-link text-white" >
<i class="bi-inbox me-2"></i>
......
import Component from '@glimmer/component';
import { inject as service } from '@ember/service';
export default class SidebarComponent extends Component {
@service router;
get active() {
/*
Returns 'active' if current route name is one of following:
* authenticated.nodes
* authenticated.document
'active' is used as css class name in component's template.
*/
let route_name, active_routes;
active_routes = [
'authenticated.nodes',
'authenticated.document',
]
route_name = this.router.currentRoute.name;
if (active_routes.includes(route_name)) {
return 'active';
}
return '';
}
}
......@@ -9,6 +9,5 @@ export default class AuthenticatedController extends Controller {
@action
onSidebarToggle() {
this.expanded = !this.expanded;
console.log(`this.expanded=${this.expanded}`);
}
}
\ No newline at end of file
......@@ -31,6 +31,15 @@ class UserModel extends Model {
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;
......@@ -9,7 +9,6 @@ export default class Router extends EmberRouter {
Router.map(function () {
this.route('authenticated', { path: '' }, function () {
this.route('documents');
this.route('inbox');
this.route('document', { path: '/document/:document_id' });
this.route('nodes', { path: '/nodes/:node_id' });
......
import BaseRoute from 'papermerge/base/routing';
import { service } from '@ember/service';
export default class ApplicationRoute extends BaseRoute {
@service currentUser;
async model() {
if (this.currentUser.isAuthenticated) {
return this.currentUser.user.getHomeFolder();
}
}
setupController(controller, model) {
controller.set('home_folder', model);
}
}
......@@ -4,7 +4,7 @@ import { inject as service } from '@ember/service';
import { getPanelInfo } from './utils';
export default class FolderRoute extends Route {
export default class NodesRoute extends Route {
@service store;
@service currentUser;
......@@ -53,6 +53,8 @@ export default class FolderRoute extends Route {
'pages': extra_pages_with_url,
}
context['home_folder'] = this.currentUser.user.home_folder;
context['inbox_folder'] = this.currentUser.user.inbox_folder;
return context;
}
......@@ -66,6 +68,7 @@ export default class FolderRoute extends Route {
}
context['home_folder'] = await this.currentUser.user.getHomeFolder();
context['inbox_folder'] = await this.currentUser.user.getInboxFolder();
return context;
}
......@@ -75,6 +78,7 @@ export default class FolderRoute extends Route {
let _auth_controller = this.controllerFor('authenticated');
_auth_controller.set('home_folder', model.home_folder);
_auth_controller.set('inbox_folder', model.inbox_folder);
}
}
<main>
<Nav::Sidebar
@home_folder={{this.home_folder}}
@expanded={{this.expanded}}
/>
@inbox_folder={{this.inbox_folder}}
@expanded={{this.expanded}} />
<div class="w-100 central-bar">
<Nav::Topbar
@onSidebarToggle={{this.onSidebarToggle}} />
......
<h1>Inbox</h1>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment