From e78862a8aec5f6a754309d2260e6d4efe87b62a9 Mon Sep 17 00:00:00 2001
From: Dessalines <dessalines@users.noreply.github.com>
Date: Fri, 29 Jan 2021 10:10:37 -0500
Subject: [PATCH] Adding some active users aggregate fields. (#148)

* Adding some active users aggregate fields.

* Adding active users / month to communities page.
---
 lemmy-translations                    |  2 +-
 package.json                          |  2 +-
 src/shared/components/communities.tsx |  4 ++++
 src/shared/components/main.tsx        | 34 +++++++++++++++++++++++----
 src/shared/components/sidebar.tsx     | 31 +++++++++++++++++++++---
 yarn.lock                             |  8 +++----
 6 files changed, 67 insertions(+), 14 deletions(-)

diff --git a/lemmy-translations b/lemmy-translations
index c4cd53c..b914a96 160000
--- a/lemmy-translations
+++ b/lemmy-translations
@@ -1 +1 @@
-Subproject commit c4cd53cdc6ef588c1b19bc9c5ddfeb09ecae4516
+Subproject commit b914a9696bc4fadc46fdca655c94c3b4cedf3e8c
diff --git a/package.json b/package.json
index a52c025..216714f 100644
--- a/package.json
+++ b/package.json
@@ -67,7 +67,7 @@
     "eslint": "^7.18.0",
     "eslint-plugin-jane": "^9.0.6",
     "husky": "^4.3.8",
-    "lemmy-js-client": "0.9.1-rc.1",
+    "lemmy-js-client": "0.9.1-rc.3",
     "lint-staged": "^10.5.3",
     "mini-css-extract-plugin": "^1.3.4",
     "node-fetch": "^2.6.1",
diff --git a/src/shared/components/communities.tsx b/src/shared/components/communities.tsx
index 74da2b1..c852fe2 100644
--- a/src/shared/components/communities.tsx
+++ b/src/shared/components/communities.tsx
@@ -127,6 +127,9 @@ export class Communities extends Component<any, CommunitiesState> {
                     <th>{i18n.t('name')}</th>
                     <th>{i18n.t('category')}</th>
                     <th class="text-right">{i18n.t('subscribers')}</th>
+                    <th class="text-right">
+                      {i18n.t('users')} / {i18n.t('month')}
+                    </th>
                     <th class="text-right d-none d-lg-table-cell">
                       {i18n.t('posts')}
                     </th>
@@ -144,6 +147,7 @@ export class Communities extends Component<any, CommunitiesState> {
                       </td>
                       <td>{cv.category.name}</td>
                       <td class="text-right">{cv.counts.subscribers}</td>
+                      <td class="text-right">{cv.counts.users_active_month}</td>
                       <td class="text-right d-none d-lg-table-cell">
                         {cv.counts.posts}
                       </td>
diff --git a/src/shared/components/main.tsx b/src/shared/components/main.tsx
index 11ac87b..9e522f8 100644
--- a/src/shared/components/main.tsx
+++ b/src/shared/components/main.tsx
@@ -420,7 +420,7 @@ export class Main extends Component<any, MainState> {
   }
 
   badges() {
-    let site_view = this.state.siteRes.site_view;
+    let counts = this.state.siteRes.site_view.counts;
     return (
       <ul class="my-2 list-inline">
         <li className="list-inline-item badge badge-secondary">
@@ -428,22 +428,46 @@ export class Main extends Component<any, MainState> {
         </li>
         <li className="list-inline-item badge badge-secondary">
           {i18n.t('number_of_users', {
-            count: site_view.counts.users,
+            count: counts.users_active_day,
+          })}{' '}
+          / {i18n.t('day')}
+        </li>
+        <li className="list-inline-item badge badge-secondary">
+          {i18n.t('number_of_users', {
+            count: counts.users_active_week,
+          })}{' '}
+          / {i18n.t('week')}
+        </li>
+        <li className="list-inline-item badge badge-secondary">
+          {i18n.t('number_of_users', {
+            count: counts.users_active_month,
+          })}{' '}
+          / {i18n.t('month')}
+        </li>
+        <li className="list-inline-item badge badge-secondary">
+          {i18n.t('number_of_users', {
+            count: counts.users_active_half_year,
+          })}{' '}
+          / {i18n.t('number_of_months', { count: 6 })}
+        </li>
+        <li className="list-inline-item badge badge-secondary">
+          {i18n.t('number_of_subscribers', {
+            count: counts.users,
           })}
         </li>
         <li className="list-inline-item badge badge-secondary">
           {i18n.t('number_of_communities', {
-            count: site_view.counts.communities,
+            count: counts.communities,
           })}
         </li>
         <li className="list-inline-item badge badge-secondary">
           {i18n.t('number_of_posts', {
-            count: site_view.counts.posts,
+            count: counts.posts,
           })}
         </li>
         <li className="list-inline-item badge badge-secondary">
           {i18n.t('number_of_comments', {
-            count: site_view.counts.comments,
+            count: counts.comments,
           })}
         </li>
         <li className="list-inline-item">
diff --git a/src/shared/components/sidebar.tsx b/src/shared/components/sidebar.tsx
index 76e141f..324f3ea 100644
--- a/src/shared/components/sidebar.tsx
+++ b/src/shared/components/sidebar.tsx
@@ -143,24 +143,49 @@ export class Sidebar extends Component<SidebarProps, SidebarState> {
 
   badges() {
     let community_view = this.props.community_view;
+    let counts = community_view.counts;
     return (
       <ul class="my-1 list-inline">
         <li className="list-inline-item badge badge-secondary">
           {i18n.t('number_online', { count: this.props.online })}
         </li>
+        <li className="list-inline-item badge badge-secondary">
+          {i18n.t('number_of_users', {
+            count: counts.users_active_day,
+          })}{' '}
+          / {i18n.t('day')}
+        </li>
+        <li className="list-inline-item badge badge-secondary">
+          {i18n.t('number_of_users', {
+            count: counts.users_active_week,
+          })}{' '}
+          / {i18n.t('week')}
+        </li>
+        <li className="list-inline-item badge badge-secondary">
+          {i18n.t('number_of_users', {
+            count: counts.users_active_month,
+          })}{' '}
+          / {i18n.t('month')}
+        </li>
+        <li className="list-inline-item badge badge-secondary">
+          {i18n.t('number_of_users', {
+            count: counts.users_active_half_year,
+          })}{' '}
+          / {i18n.t('number_of_months', { count: 6 })}
+        </li>
         <li className="list-inline-item badge badge-secondary">
           {i18n.t('number_of_subscribers', {
-            count: community_view.counts.subscribers,
+            count: counts.subscribers,
           })}
         </li>
         <li className="list-inline-item badge badge-secondary">
           {i18n.t('number_of_posts', {
-            count: community_view.counts.posts,
+            count: counts.posts,
           })}
         </li>
         <li className="list-inline-item badge badge-secondary">
           {i18n.t('number_of_comments', {
-            count: community_view.counts.comments,
+            count: counts.comments,
           })}
         </li>
         <li className="list-inline-item">
diff --git a/yarn.lock b/yarn.lock
index fcc549b..298fead 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5629,10 +5629,10 @@ lcid@^1.0.0:
   dependencies:
     invert-kv "^1.0.0"
 
-lemmy-js-client@0.9.1-rc.1:
-  version "0.9.1-rc.1"
-  resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.9.1-rc.1.tgz#afe3cb0d4852f849dd087a4756a3771bc920a907"
-  integrity sha512-aVvo4IeJvIPUvypipk4GnyLB6nVQVLfB0arYrMkVV4L7zrZ/0pGtpkMDLaOAj/KpA6O0u9eLmaou5RberZQolA==
+lemmy-js-client@0.9.1-rc.3:
+  version "0.9.1-rc.3"
+  resolved "https://registry.yarnpkg.com/lemmy-js-client/-/lemmy-js-client-0.9.1-rc.3.tgz#d675f2b01e57ff8f6e528e0715a0dc85ba36b002"
+  integrity sha512-Zie3yXLCLdPQWE88+odDQ7FrMzzNKIdzn7M7rrMTatJEAMlxVDZTPrUOZZ/cVAlO7W7DlwXSENT/PCdA35ggZw==
 
 levn@^0.4.1:
   version "0.4.1"
-- 
2.44.1