MDL-66481 forum: Show notification on toggled subscription
authorJun Pataleta <jun@moodle.com>
Thu, 12 Sep 2019 15:44:24 +0000 (23:44 +0800)
committerJun Pataleta <jun@moodle.com>
Thu, 26 Sep 2019 02:47:05 +0000 (10:47 +0800)
For usability, after selecting the subscription toggle action menu item,
a notification message will be shown to the user.

mod/forum/amd/build/discussion.min.js
mod/forum/amd/build/discussion.min.js.map
mod/forum/amd/src/discussion.js
mod/forum/lang/en/forum.php

index 4da859b..332ee1f 100644 (file)
Binary files a/mod/forum/amd/build/discussion.min.js and b/mod/forum/amd/build/discussion.min.js differ
index f61b74b..cd34e06 100644 (file)
Binary files a/mod/forum/amd/build/discussion.min.js.map and b/mod/forum/amd/build/discussion.min.js.map differ
index 81afd8f..bad0b36 100644 (file)
@@ -25,12 +25,20 @@ define(
 [
     'jquery',
     'core/custom_interaction_events',
-    'mod_forum/selectors'
+    'mod_forum/selectors',
+    'core/pubsub',
+    'mod_forum/forum_events',
+    'core/str',
+    'core/notification',
 ],
 function(
     $,
     CustomEvents,
-    Selectors
+    Selectors,
+    PubSub,
+    ForumEvents,
+    String,
+    Notification
 ) {
 
     /**
@@ -261,6 +269,19 @@ function(
             e.stopPropagation();
             data.originalEvent.preventDefault();
         });
+
+        PubSub.subscribe(ForumEvents.SUBSCRIPTION_TOGGLED, function(data) {
+            var subscribed = data.subscriptionState;
+            var updateMessage = subscribed ? 'discussionsubscribed' : 'discussionunsubscribed';
+            String.get_string(updateMessage, "forum")
+                .then(function(s) {
+                    return Notification.addNotification({
+                        message: s,
+                        type: "info"
+                    });
+                })
+                .catch(Notification.exception);
+        });
     };
 
     return {
index bc2db8d..c47ce3f 100644 (file)
@@ -185,6 +185,7 @@ $string['discussionpin'] = 'Pin';
 $string['discussionpinned'] = 'Pinned';
 $string['discussionpinned_help'] = 'Pinned discussions will appear at the top of a forum.';
 $string['discussionsplit'] = 'Discussion has been split';
+$string['discussionsubscribed'] = 'You are now subscribed to this discussion.';
 $string['discussionsubscribestop'] = 'I don\'t want to be notified of new posts in this discussion';
 $string['discussionsubscribestart'] = 'Send me notifications of new posts in this discussion';
 $string['discussionsubscription'] = 'Discussion subscription';
@@ -194,6 +195,7 @@ $string['discussionsstartedby'] = 'Discussions started by {$a}';
 $string['discussionsstartedbyrecent'] = 'Discussions recently started by {$a}';
 $string['discussionsstartedbyuserincourse'] = 'Discussions started by {$a->fullname} in {$a->coursename}';
 $string['discussionunpin'] = 'Unpin';
+$string['discussionunsubscribed'] = 'You are now unsubscribed from this discussion.';
 $string['discussthistopic'] = 'Discuss this topic';
 $string['displayend'] = 'Display end';
 $string['displayend_help'] = 'This setting specifies whether a forum post should be hidden after a certain date. Note that administrators can always view forum posts.';