From 1eaa800975c8ef629b75728c6fae3d71389ec58a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Valenta?= <git@imaniti.org>
Date: Tue, 6 Jun 2023 04:42:47 +0900
Subject: [PATCH] provide forum info

---
 assets/javascript/nastenka_sync.js            |  1 +
 .../restapi/controller/forums/Forums.php      | 24 +++++++++++++++++--
 nastenka_sync.php                             |  1 +
 styles/all/template/nastenka_sync.html        |  1 +
 4 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/assets/javascript/nastenka_sync.js b/assets/javascript/nastenka_sync.js
index b0ef2ea..89295f0 100644
--- a/assets/javascript/nastenka_sync.js
+++ b/assets/javascript/nastenka_sync.js
@@ -22,6 +22,7 @@ window.addEventListener(
                 }
 
                 nextUrl.searchParams.append("token", window.TOKEN);
+                nextUrl.searchParams.append("allowed-forum-ids", window.ALLOWED_FORUM_IDS);
 
                 window.location = nextUrl;
             }
diff --git a/ext/eparsons/restapi/controller/forums/Forums.php b/ext/eparsons/restapi/controller/forums/Forums.php
index 4ff83c5..1190e77 100755
--- a/ext/eparsons/restapi/controller/forums/Forums.php
+++ b/ext/eparsons/restapi/controller/forums/Forums.php
@@ -110,7 +110,8 @@ class Forums
             WHERE
                 forum_id = ' . $forum_id . '
                 AND ' . $phpbb_content_visibility->get_visibility_sql('topic', $forum_id) . '
-            ORDER BY topic_id DESC'
+            ORDER BY topic_id DESC
+            LIMIT 25'
         );
 
         $topics = array();
@@ -139,6 +140,25 @@ class Forums
             array_push($topics, $topic);
         }
 
-        return new JsonResponse($topics, 200);
+        $forum_query = $db->sql_query(
+            'SELECT forum_name, forum_desc
+            FROM ' . FORUMS_TABLE . '
+            WHERE forum_id= ' . $forum_id
+        );
+
+        $forum = array();
+
+        while ($row => $db->sql_fetchrow($forum_query)) {
+            $forum["name"] = $row["forum_name"];
+            $forum["desc"] = $row["forum_desc"];
+        }
+
+        return new JsonResponse(
+            array(
+                "forum" => $forum,
+                "topics" => $topics
+            ),
+            200
+        );
     }
 }
diff --git a/nastenka_sync.php b/nastenka_sync.php
index f9c95f1..e468bea 100755
--- a/nastenka_sync.php
+++ b/nastenka_sync.php
@@ -111,6 +111,7 @@ $template->set_filenames(array(
 ));
 $template->assign_vars(array(
     'TOKEN' => $token,
+    'ALLOWED_FORUM_IDS' => implode(",", $allowed_forum_ids)
 ));
 
 $request->disable_super_globals();
diff --git a/styles/all/template/nastenka_sync.html b/styles/all/template/nastenka_sync.html
index 1574f48..1085f1c 100644
--- a/styles/all/template/nastenka_sync.html
+++ b/styles/all/template/nastenka_sync.html
@@ -25,6 +25,7 @@
 
 <script>
     window.TOKEN = "{TOKEN}";
+    window.ALLOWED_FORUM_IDS = "{ALLOWED_FORUM_IDS}";
 </script>
 
 <script src="./assets/javascript/nastenka_sync.js?v=1"></script>
-- 
GitLab