nodebb-plugin-gemach-directory 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/library.js +17 -1
  2. package/package.json +1 -1
package/library.js CHANGED
@@ -41,6 +41,10 @@ const GEMACH_KEY = id => `gemachDirectory:item:${id}`;
41
41
  // מפה של uid -> '0'/'1' - האם המנהל הזה רוצה לקבל התראות על גמ"חים חדשים.
42
42
  // חסר מפתח = כברירת מחדל כן (כדי שמנהלים קיימים לא "יפספסו" בלי לשים לב).
43
43
  const NOTIFY_PREFS_OBJECT = 'gemachDirectory:notifyPrefs';
44
+ // הנתיב שאליו התראת "גמ"ח חדש ממתין" מפנה - הפוסט האמיתי של נושא "רשימת
45
+ // גמחים" בפורום הזה. אם הנושא אי-פעם יימחק וייווצר מחדש, צריך לעדכן כאן
46
+ // את מספר הפוסט (רואים אותו ב-URL כשפותחים את הנושא: /post/<המספר>).
47
+ const NOTIFY_TARGET_PATH = '/post/151093';
44
48
 
45
49
  const MAX_LENGTHS = {
46
50
  name: 120,
@@ -189,6 +193,18 @@ function registerSocketHandlers() {
189
193
 
190
194
  return { ok: true };
191
195
  };
196
+
197
+ // נקרא מהלקוח כשמנהל נכנס לנושא "רשימת גמחים" עצמו - מסמן כ"נקראו" רק
198
+ // את התראות ה"גמ"ח חדש ממתין" (לא נוגע בשום התראה אחרת של המנהל), כי
199
+ // הוא כבר רואה את כל הבקשות הממתינות ממש עכשיו בעמוד.
200
+ SocketPlugins.gemachDirectory.markPendingNotificationsRead = async function (socket) {
201
+ await requireAdmin(socket);
202
+ const ids = await db.getSortedSetRange(PENDING_SET, 0, -1);
203
+ if (!ids.length) return { ok: true };
204
+ const nids = ids.map(id => `gemach-directory:${id}`);
205
+ await notifications.markReadMultiple(nids, socket.uid);
206
+ return { ok: true };
207
+ };
192
208
  }
193
209
 
194
210
  async function getGemachsFromSet(setKey, newestFirst) {
@@ -233,7 +249,7 @@ async function notifyAdmins(gemach) {
233
249
  // nid כולל את מזהה הגמ"ח - כך שכל הצעה חדשה היא התראה "חדשה" נפרדת
234
250
  nid: `gemach-directory:${gemach.id}`,
235
251
  bodyShort: `גמ"ח חדש ממתין לאישור: ${gemach.name} (${gemach.city})`,
236
- path: '/',
252
+ path: NOTIFY_TARGET_PATH,
237
253
  from: gemach.submittedBy,
238
254
  });
239
255
  await notifications.push(notification, targetUids);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nodebb-plugin-gemach-directory",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Server-side storage + admin approval queue for a community gemach directory, filterable by city and category.",
5
5
  "main": "library.js",
6
6
  "keywords": [