From ac915316700a601b20b7b023ce9dd86d3230966f Mon Sep 17 00:00:00 2001 From: Peter Date: Thu, 28 Mar 2019 12:09:10 +0800 Subject: [PATCH] MDL-65033 mod_forum: Accessibility updates --- mod/forum/amd/build/favourite_toggle.min.js | 2 +- mod/forum/amd/build/pin_toggle.min.js | 2 +- mod/forum/amd/src/favourite_toggle.js | 13 +++++++- mod/forum/amd/src/pin_toggle.js | 13 +++++++- .../classes/local/vaults/discussion_list.php | 2 +- mod/forum/lang/en/forum.php | 6 ++-- .../discussion_favourite_toggle.mustache | 3 +- .../templates/discussion_pin_toggle.mustache | 2 ++ .../discussion_subscription_toggle.mustache | 2 +- .../templates/forum_action_menu.mustache | 10 ++++-- .../tests/vaults_discussion_list_test.php | 32 +++++++++---------- 11 files changed, 60 insertions(+), 27 deletions(-) diff --git a/mod/forum/amd/build/favourite_toggle.min.js b/mod/forum/amd/build/favourite_toggle.min.js index f9729cb87061c..4d6584e87bb14 100644 --- a/mod/forum/amd/build/favourite_toggle.min.js +++ b/mod/forum/amd/build/favourite_toggle.min.js @@ -1 +1 @@ -define(["jquery","core/templates","core/notification","mod_forum/repository","mod_forum/selectors"],function(a,b,c,d,e){var f=function(f){f.on("click",e.favourite.toggle,function(e){var f=a(this),g=f.data("forumid"),h=f.data("discussionid"),i=f.data("targetstate");d.setFavouriteDiscussionState(g,h,i).then(function(a){return b.render("mod_forum/discussion_favourite_toggle",a)}).then(function(a,c){return b.replaceNode(f,a,c)})["catch"](c.exception),e.preventDefault()})};return{init:function(a){f(a)}}}); \ No newline at end of file +define(["jquery","core/templates","core/notification","mod_forum/repository","mod_forum/selectors","core/str"],function(a,b,c,d,e,f){var g=function(g){g.on("click",e.favourite.toggle,function(e){var g=a(this),h=g.data("forumid"),i=g.data("discussionid"),j=g.data("targetstate");d.setFavouriteDiscussionState(h,i,j).then(function(a){return b.render("mod_forum/discussion_favourite_toggle",a)}).then(function(a,c){return b.replaceNode(g,a,c)}).then(function(){return f.get_string("favouriteupdated","forum").done(function(a){return c.addNotification({message:a,type:"info"})})})["catch"](c.exception),e.preventDefault()})};return{init:function(a){g(a)}}}); \ No newline at end of file diff --git a/mod/forum/amd/build/pin_toggle.min.js b/mod/forum/amd/build/pin_toggle.min.js index d230fde9e9d35..f625c533c8441 100644 --- a/mod/forum/amd/build/pin_toggle.min.js +++ b/mod/forum/amd/build/pin_toggle.min.js @@ -1 +1 @@ -define(["jquery","core/ajax","core/str","core/templates","core/notification","mod_forum/repository","mod_forum/selectors"],function(a,b,c,d,e,f,g){var h=function(b){b.on("click",g.pin.toggle,function(b){var c=a(this),g=c.data("forumid"),h=c.data("discussionid"),i=c.data("targetstate");f.setPinDiscussionState(g,h,i).then(function(a){return d.render("mod_forum/discussion_pin_toggle",a)}).then(function(a,b){return d.replaceNode(c,a,b)}).fail(e.exception),b.preventDefault()})};return{init:function(a){h(a)}}}); \ No newline at end of file +define(["jquery","core/ajax","core/str","core/templates","core/notification","mod_forum/repository","mod_forum/selectors","core/str"],function(a,b,c,d,e,f,g,h){var i=function(b){b.on("click",g.pin.toggle,function(b){var c=a(this),g=c.data("forumid"),i=c.data("discussionid"),j=c.data("targetstate");f.setPinDiscussionState(g,i,j).then(function(a){return d.render("mod_forum/discussion_pin_toggle",a)}).then(function(a,b){return d.replaceNode(c,a,b)}).then(function(){return h.get_string("pinupdated","forum").done(function(a){return e.addNotification({message:a,type:"info"})})}).fail(e.exception),b.preventDefault()})};return{init:function(a){i(a)}}}); \ No newline at end of file diff --git a/mod/forum/amd/src/favourite_toggle.js b/mod/forum/amd/src/favourite_toggle.js index e613e07d37eac..346921bd26b1f 100644 --- a/mod/forum/amd/src/favourite_toggle.js +++ b/mod/forum/amd/src/favourite_toggle.js @@ -28,12 +28,14 @@ define([ 'core/notification', 'mod_forum/repository', 'mod_forum/selectors', + 'core/str', ], function( $, Templates, Notification, Repository, - Selectors + Selectors, + String ) { /** @@ -55,6 +57,15 @@ define([ .then(function(html, js) { return Templates.replaceNode(toggleElement, html, js); }) + .then(function() { + return String.get_string("favouriteupdated", "forum") + .done(function(s) { + return Notification.addNotification({ + message: s, + type: "info" + }); + }); + }) .catch(Notification.exception); e.preventDefault(); diff --git a/mod/forum/amd/src/pin_toggle.js b/mod/forum/amd/src/pin_toggle.js index 7fffde2e984f9..78841286a2fb4 100644 --- a/mod/forum/amd/src/pin_toggle.js +++ b/mod/forum/amd/src/pin_toggle.js @@ -33,6 +33,7 @@ define([ 'core/notification', 'mod_forum/repository', 'mod_forum/selectors', + 'core/str', ], function( $, Ajax, @@ -40,7 +41,8 @@ define([ Templates, Notification, Repository, - Selectors + Selectors, + String ) { /** @@ -61,6 +63,15 @@ define([ .then(function(html, js) { return Templates.replaceNode(toggleElement, html, js); }) + .then(function() { + return String.get_string("pinupdated", "forum") + .done(function(s) { + return Notification.addNotification({ + message: s, + type: "info" + }); + }); + }) .fail(Notification.exception); e.preventDefault(); diff --git a/mod/forum/classes/local/vaults/discussion_list.php b/mod/forum/classes/local/vaults/discussion_list.php index ee7342a3736a6..528d34bf4c7b9 100644 --- a/mod/forum/classes/local/vaults/discussion_list.php +++ b/mod/forum/classes/local/vaults/discussion_list.php @@ -125,7 +125,7 @@ protected function generate_get_records_sql(string $wheresql = null, ?string $so $tables .= ' JOIN {user} fa ON fa.id = ' . $alias . '.userid'; $tables .= ' JOIN {user} la ON la.id = ' . $alias . '.usermodified'; $tables .= ' JOIN ' . $posttable->get_from_sql() . ' ON fp.id = ' . $alias . '.firstpost'; - $tables .= $favsql ? $favsql : ''; + $tables .= isset($favsql) ? $favsql : ''; $selectsql = 'SELECT ' . $fields . ' FROM ' . $tables; $selectsql .= $wheresql ? ' WHERE ' . $wheresql : ''; diff --git a/mod/forum/lang/en/forum.php b/mod/forum/lang/en/forum.php index 81cbeff4541f9..8c73bfe8bd1a8 100644 --- a/mod/forum/lang/en/forum.php +++ b/mod/forum/lang/en/forum.php @@ -75,13 +75,13 @@ $string['cannotmovetonotexist'] = 'You can\'t move to that forum - it doesn\'t exist!'; $string['cannotmovetonotfound'] = 'Target forum not found in this course.'; $string['cannotmovetosingleforum'] = 'Cannot move discussion to a simple single discussion forum'; -$string['cannotpindiscussions'] = 'Sorry, you do not have the permission to pin discussions.'; +$string['cannotpindiscussions'] = 'Sorry, you do not have permission to pin discussions.'; $string['cannotpurgecachedrss'] = 'Could not purge the cached RSS feeds for the source and/or destination forum(s) - check your file permissionsforums'; $string['cannotremovesubscriber'] = 'Could not remove subscriber with id {$a} from this forum!'; $string['cannotreply'] = 'You cannot reply to this post'; $string['cannotsplit'] = 'Discussions from this forum cannot be split'; $string['cannotsubscribe'] = 'Sorry, but you must be a group member to subscribe.'; -$string['cannotfavourite'] = 'Sorry, but you do not have the permission to favourite.'; +$string['cannotfavourite'] = 'Sorry, but you do not have the permission to star discussions.'; $string['cannottrack'] = 'Could not stop tracking that forum'; $string['cannotunsubscribe'] = 'Could not unsubscribe you from that forum'; $string['cannotupdatepost'] = 'You can not update this post'; @@ -239,6 +239,7 @@ $string['exportattachmentname'] = 'Export attachment {$a} to portfolio'; $string['firstpost'] = 'First post'; $string['favourites'] = 'Starred'; +$string['favouriteupdated'] = 'Your star option has been updated.'; $string['forcedreadtracking'] = 'Allow forced read tracking'; $string['forcedreadtracking_desc'] = 'Allows forums to be set to forced read tracking. Will result in decreased performance for some users, particularly on courses with many forums and posts. When off, any forums previously set to Forced are treated as optional.'; $string['forcesubscribed_help'] = 'This forum has been configured so that you cannot unsubscribe from discussions.'; @@ -440,6 +441,7 @@ $string['permanentlinktoparentpost'] = 'Permanent link to the parent of this post'; $string['postisprivatereply'] = 'This post was made privately and is not visible to all users.'; $string['pindiscussion'] = 'Pin this discussion'; +$string['pinupdated'] = 'The pin option has been updated.'; $string['posttomygroups'] = 'Post a copy to all groups'; $string['posttomygroups_help'] = 'Posts a copy of this message to all groups you have access to. Participants in groups you do not have access to will not see this post'; $string['prevdiscussiona'] = 'Previous discussion: {$a}'; diff --git a/mod/forum/templates/discussion_favourite_toggle.mustache b/mod/forum/templates/discussion_favourite_toggle.mustache index 43d21dd8f8291..675d4c096005c 100644 --- a/mod/forum/templates/discussion_favourite_toggle.mustache +++ b/mod/forum/templates/discussion_favourite_toggle.mustache @@ -34,11 +34,12 @@ }} {{#capabilities.favourite}} - -