From 4b6e032890b12976520b4e26454341813a715595 Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Fri, 17 May 2019 12:19:25 +0800 Subject: [PATCH] MDL-65578 forum: Hide action menu where no actions exist --- mod/forum/classes/local/renderers/discussion.php | 6 ++++++ mod/forum/classes/local/renderers/discussion_list.php | 7 +++++++ mod/forum/templates/discussion_list.mustache | 8 +++++--- mod/forum/templates/forum_discussion.mustache | 2 ++ 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/mod/forum/classes/local/renderers/discussion.php b/mod/forum/classes/local/renderers/discussion.php index 084122a7af7..7559b2bf5c4 100644 --- a/mod/forum/classes/local/renderers/discussion.php +++ b/mod/forum/classes/local/renderers/discussion.php @@ -183,9 +183,15 @@ class discussion { $exporteddiscussion = $this->get_exported_discussion($user); } + $hasanyactions = false; + $hasanyactions = $hasanyactions || $capabilitymanager->can_favourite_discussion($user); + $hasanyactions = $hasanyactions || $capabilitymanager->can_pin_discussions($user); + $hasanyactions = $hasanyactions || $capabilitymanager->can_manage_forum($user); + $exporteddiscussion = array_merge($exporteddiscussion, [ 'notifications' => $this->get_notifications($user), 'html' => [ + 'hasanyactions' => $hasanyactions, 'posts' => $this->postsrenderer->render($user, [$this->forum], [$this->discussion], $posts), 'modeselectorform' => $this->get_display_mode_selector_html($displaymode), 'subscribe' => null, diff --git a/mod/forum/classes/local/renderers/discussion_list.php b/mod/forum/classes/local/renderers/discussion_list.php index ef136a35c07..24879b1c2bb 100644 --- a/mod/forum/classes/local/renderers/discussion_list.php +++ b/mod/forum/classes/local/renderers/discussion_list.php @@ -160,8 +160,15 @@ class discussion_list { // Get all forum discussion summaries. $discussions = mod_forum_get_discussion_summaries($forum, $user, $groupid, $sortorder, $pageno, $pagesize); + $capabilitymanager = $this->capabilitymanager; + $hasanyactions = false; + $hasanyactions = $hasanyactions || $capabilitymanager->can_favourite_discussion($user); + $hasanyactions = $hasanyactions || $capabilitymanager->can_pin_discussions($user); + $hasanyactions = $hasanyactions || $capabilitymanager->can_manage_forum($user); + $forumview = [ 'forum' => (array) $forumexporter->export($this->renderer), + 'hasanyactions' => $hasanyactions, 'groupchangemenu' => groups_print_activity_menu( $cm, $this->urlfactory->get_forum_view_url_from_forum($forum), diff --git a/mod/forum/templates/discussion_list.mustache b/mod/forum/templates/discussion_list.mustache index 60e3704d270..07b399984b1 100644 --- a/mod/forum/templates/discussion_list.mustache +++ b/mod/forum/templates/discussion_list.mustache @@ -123,9 +123,7 @@ {{/state.sortorder.iscreateddesc}}   - {{#forum.capabilities.subscribe}} - - {{/forum.capabilities.subscribe}} + {{/discussion_list_header}} @@ -266,12 +264,16 @@
{{#pix}}i/lock, core, {{#str}}locked, forum{{/str}}{{/pix}}
+ {{#forum.capabilities.subscribe}}
{{> mod_forum/discussion_subscription_toggle}}
+ {{/forum.capabilities.subscribe}} + {{#hasanyactions}}
{{> mod_forum/forum_action_menu}}
+ {{/hasanyactions}} {{/discussion}} diff --git a/mod/forum/templates/forum_discussion.mustache b/mod/forum/templates/forum_discussion.mustache index f4d37ff1101..8d661ff1648 100644 --- a/mod/forum/templates/forum_discussion.mustache +++ b/mod/forum/templates/forum_discussion.mustache @@ -32,6 +32,7 @@
{{#html}} + {{#hasanyactions}}
@@ -41,6 +42,7 @@
{{{subscribe}}}
+ {{/hasanyactions}} {{{neighbourlinks}}}