nextcloud / nextcloud/notifications
Notification settings UX review
Open
Nobody has claimed this yet.
1. to develop
bug
design
feature: backend 🛠️
feature: frontend 🖌️
overview
- Dominant language
- JavaScript
- Stars
- 153
- Forks
- 67
- Avg merge
- 15h 3m
- Merged PRs (30d)
- 96
Description
- Clear activity notifications via the creator app (forms visiting result, etc.)
- Throw away old notifications
- On render: Activity expired => remove notification https://github.com/nextcloud/activity/pull/1460
- In background job to reduce DB size #3388
- Remove "hidden" activity settings from DB https://github.com/nextcloud/activity/pull/1446
- Remove notifications of disabled users from OUR DB
- Improve default
- Grouping by app/object for activity_notification
- Dismiss all of a type
- Recovery option/modal/overview after vacation/DND/sick-leave
SELECT app, object_type, COUNT(*) AS num FROM oc_notifications WHERE object_type = 'activity_notification' GROUP BY app, object_type ORDER BY num DESC LIMIT 500;
+--------------------+-----------------------+------+
| app | object_type | num |
+--------------------+-----------------------+------+
| files_sharing | activity_notification | 1553 |
| files | activity_notification | 1515 |
| forms | activity_notification | 1314 |
| deck | activity_notification | 897 |
| announcementcenter | activity_notification | 185 |
| settings | activity_notification | 100 |
| dav | activity_notification | 75 |
| spreed | activity_notification | 74 |
| comments | activity_notification | 25 |
| systemtags | activity_notification | 2 |
+--------------------+-----------------------+------+
Deleting notifications of activities that got removed:
DELETE FROM oc_notifications WHERE notification_id IN (SELECT n.notification_id FROM oc_notifications n LEFT JOIN oc_activity a ON a.activity_id = n.object_id WHERE n.object_type = 'activity_notification' AND a.activity_id IS NULL);
SELECT app, object_type, COUNT(*) AS num FROM oc_notifications WHERE object_type = 'activity_notification' GROUP BY app, object_type ORDER BY num DESC LIMIT 500;
+--------------------+-----------------------+------+
| app | object_type | num |
+--------------------+-----------------------+------+
| files_sharing | activity_notification | 1170 |
| files | activity_notification | 557 |
| deck | activity_notification | 219 |
| forms | activity_notification | 212 |
| dav | activity_notification | 64 |
| settings | activity_notification | 38 |
| announcementcenter | activity_notification | 36 |
+--------------------+-----------------------+------+
7 rows in set (0.007 sec)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by separating the unchecked items in this issue and reviewing the creator app, background-job work, and activity_notification records in oc_notifications and oc_activity. The issue needs a defined scope and acceptance criteria for cleanup, defaults, grouping and dismissal, and recovery before implementation can begin.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- backend, database
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100