From 16e24c43e56fab33a527ace49a1565d2b026e9ba Mon Sep 17 00:00:00 2001
From: Eugen Ciur <eugen@papermerge.com>
Date: Fri, 25 Feb 2022 21:28:35 +0100
Subject: [PATCH] add inbox countwq

---
 app/adapters/node.js              |  2 +-
 app/components/commander/index.js |  2 +-
 app/components/nav/sidebar.hbs    |  2 +-
 app/controllers/authenticated.js  |  2 ++
 app/routes/authenticated.js       | 14 ++++++++++++--
 app/services/requests.js          |  8 ++++++++
 app/templates/authenticated.hbs   |  1 +
 7 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/app/adapters/node.js b/app/adapters/node.js
index 12a8b0b..1cd2760 100644
--- a/app/adapters/node.js
+++ b/app/adapters/node.js
@@ -1,5 +1,5 @@
 import ApplicationAdapter from './application';
-import { inject as service } from '@ember/service';
+import { service } from '@ember/service';
 
 
 export default class NodeAdapter extends ApplicationAdapter {
diff --git a/app/components/commander/index.js b/app/components/commander/index.js
index 2ddcf09..679f3a1 100644
--- a/app/components/commander/index.js
+++ b/app/components/commander/index.js
@@ -88,7 +88,7 @@ export default class CommanderComponent extends Component {
 
   _substract_nodes(node_ids) {
     let that = this, doc;
-    console.log(`substract_nodes ${node_ids}`);
+
     node_ids.forEach(node_id => {
       // maybe document ?
       doc = that.store.peekRecord('document', node_id);
diff --git a/app/components/nav/sidebar.hbs b/app/components/nav/sidebar.hbs
index 1c2e813..11798af 100644
--- a/app/components/nav/sidebar.hbs
+++ b/app/components/nav/sidebar.hbs
@@ -42,7 +42,7 @@
             @route="authenticated.nodes"
             @model="{{@inbox_folder_id}}"
             class="nav-link text-white" aria-current="page">
-            <i class="bi-inbox me-2"></i>Inbox
+            <i class="bi-inbox me-2"></i>Inbox ({{@inbox_count}})
           </LinkTo>
         </li>
         <li>
diff --git a/app/controllers/authenticated.js b/app/controllers/authenticated.js
index 15f5236..4c174d1 100644
--- a/app/controllers/authenticated.js
+++ b/app/controllers/authenticated.js
@@ -4,6 +4,8 @@ import { tracked } from '@glimmer/tracking';
 
 
 export default class AuthenticatedController extends Controller {
+
+  // sidebar expanded ?
   @tracked expanded = true;
 
   @action
diff --git a/app/routes/authenticated.js b/app/routes/authenticated.js
index a1957fa..7b6b35a 100644
--- a/app/routes/authenticated.js
+++ b/app/routes/authenticated.js
@@ -1,22 +1,32 @@
 import BaseRoute from 'papermerge/routes/base';
+import { service } from '@ember/service';
 
 
 export default class AuthenticatedRoute extends BaseRoute {
 
+  @service requests;
+
   async model() {
     let home_folder_id,
       inbox_folder_id,
       pinned_tags,
-      tags;
+      tags,
+      inbox_count;
 
     tags = await this.store.findAll('tag');
     pinned_tags = tags.filter(tag => tag.pinned);
+    inbox_count = await this.requests.getInboxCount();
 
     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};
+    return {
+      pinned_tags,
+      home_folder_id,
+      inbox_folder_id,
+      inbox_count
+    };
   }
 }
diff --git a/app/services/requests.js b/app/services/requests.js
index afab04b..bba8b64 100644
--- a/app/services/requests.js
+++ b/app/services/requests.js
@@ -142,6 +142,14 @@ export default class Requests extends Service {
     });
   }
 
+  async getInboxCount() {
+    return this._get('/nodes/inboxcount/').then(
+      response => response.json()
+    ).then( data => {
+      return data.data.count;
+    });
+  }
+
   async _get(url, params_str) {
     let url_with_base,
       headers_copy = {};
diff --git a/app/templates/authenticated.hbs b/app/templates/authenticated.hbs
index 8e4d0ef..e34397c 100644
--- a/app/templates/authenticated.hbs
+++ b/app/templates/authenticated.hbs
@@ -2,6 +2,7 @@
   <Nav::Sidebar
     @home_folder_id={{@model.home_folder_id}}
     @inbox_folder_id={{@model.inbox_folder_id}}
+    @inbox_count={{@model.inbox_count}}
     @pinned_tags={{@model.pinned_tags}}
     @expanded={{this.expanded}} />
   <div class="w-100 central-bar">
-- 
GitLab