MDL-65578 forum: Hide action menu where no actions exist
authorAndrew Nicols <andrew@nicols.co.uk>
Fri, 17 May 2019 04:19:25 +0000 (12:19 +0800)
committerPeter <peter@moodle.com>
Fri, 31 May 2019 04:43:22 +0000 (12:43 +0800)
mod/forum/classes/local/renderers/discussion.php
mod/forum/classes/local/renderers/discussion_list.php
mod/forum/templates/discussion_list.mustache
mod/forum/templates/forum_discussion.mustache

index 084122a..7559b2b 100644 (file)
@@ -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,
index ef136a3..24879b1 100644 (file)
@@ -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),
index 60e3704..07b3999 100644 (file)
                             {{/state.sortorder.iscreateddesc}}
                         </th>
                         <th scope="col">&nbsp;</th>
-                        {{#forum.capabilities.subscribe}}
-                            <th scope="col" class="discussionsubscription"></th>
-                        {{/forum.capabilities.subscribe}}
+                        <th scope="col" class="discussionsubscription"></th>
                     </tr>
                 </thead>
                 {{/discussion_list_header}}
                                         <div class="pt-1 mt-2  {{^discussion.locked}}hidden{{/discussion.locked}}" data-region="locked-icon">
                                             <span class="btn" >{{#pix}}i/lock, core, {{#str}}locked, forum{{/str}}{{/pix}}</span>
                                         </div>
+                                        {{#forum.capabilities.subscribe}}
                                         <div>
                                             {{> mod_forum/discussion_subscription_toggle}}
                                         </div>
+                                        {{/forum.capabilities.subscribe}}
+                                        {{#hasanyactions}}
                                         <div class="mt-3" data-container='discussion-tools'>
                                             {{> mod_forum/forum_action_menu}}
                                         </div>
+                                        {{/hasanyactions}}
                                     </div>
                                 {{/discussion}}
                             </td>
index f4d37ff..8d661ff 100644 (file)
@@ -32,6 +32,7 @@
 
 <div id="discussion-container-{{uniqid}}" data-content="forum-discussion">
 {{#html}}
+    {{#hasanyactions}}
     <div class="d-flex flex-wrap flex-row-reverse m-b-1 text-right" data-container="discussion-tools">
 
         <div class="pl-1">
@@ -41,6 +42,7 @@
         </div>
         <div class="pl-1">{{{subscribe}}}</div>
     </div>
+    {{/hasanyactions}}
     {{{neighbourlinks}}}
 
     <div class="d-flex flex-wrap mb-1">