From 09fef88c649ef696c607fdbadb090b75a0f73fe1 Mon Sep 17 00:00:00 2001
From: Mark Nelson <markn@moodle.com>
Date: Tue, 19 Aug 2014 21:38:55 -0700
Subject: [PATCH] MDL-46902 core_course: display meaningful message when no
 courses found

---
 course/classes/management_renderer.php | 13 +++++++++----
 course/management.php                  |  2 +-
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/course/classes/management_renderer.php b/course/classes/management_renderer.php
index eded3a77b1f..a36227d74e0 100644
--- a/course/classes/management_renderer.php
+++ b/course/classes/management_renderer.php
@@ -1050,9 +1050,11 @@ class core_course_management_renderer extends plugin_renderer_base {
      * @param course_in_list $course The currently selected course if there is one.
      * @param int $page The current page, starting at 0.
      * @param int $perpage The number of courses to display per page.
+     * @param string $search The string we are searching for.
      * @return string
      */
-    public function search_listing(array $courses, $totalcourses, course_in_list $course = null, $page = 0, $perpage = 20) {
+    public function search_listing(array $courses, $totalcourses, course_in_list $course = null, $page = 0, $perpage = 20,
+        $search = '') {
         $page = max($page, 0);
         $perpage = max($perpage, 2);
         $totalpages = ceil($totalcourses / $perpage);
@@ -1082,7 +1084,7 @@ class core_course_management_renderer extends plugin_renderer_base {
             $first = false;
         }
         $html .= html_writer::end_tag('ul');
-        $html .= $this->search_pagination($totalcourses, $page, $perpage, true);
+        $html .= $this->search_pagination($totalcourses, $page, $perpage, true, $search);
         $html .= html_writer::end_div();
         return $html;
     }
@@ -1094,13 +1096,16 @@ class core_course_management_renderer extends plugin_renderer_base {
      * @param int $page The current page.
      * @param int $perpage The number of courses being displayed.
      * @param bool $showtotals Whether or not to print total information.
+     * @param string $search The string we are searching for.
      * @return string
      */
-    protected function search_pagination($totalcourses, $page, $perpage, $showtotals = false) {
+    protected function search_pagination($totalcourses, $page, $perpage, $showtotals = false, $search = '') {
         $html = '';
         $totalpages = ceil($totalcourses / $perpage);
         if ($showtotals) {
-            if ($totalpages == 1) {
+            if ($totalpages == 0) {
+                $str = get_string('nocoursesfound', 'moodle', $search);
+            } else if ($totalpages == 1) {
                 $str = get_string('showingacourses', 'moodle', $totalcourses);
             } else {
                 $a = new stdClass;
diff --git a/course/management.php b/course/management.php
index 85a2494f3f4..db506fbd2db 100644
--- a/course/management.php
+++ b/course/management.php
@@ -499,7 +499,7 @@ if ($displaycourselisting) {
     } else {
         list($courses, $coursescount, $coursestotal) =
             \core_course\management\helper::search_courses($search, $blocklist, $modulelist, $page, $perpage);
-        echo $renderer->search_listing($courses, $coursestotal, $course, $page, $perpage);
+        echo $renderer->search_listing($courses, $coursestotal, $course, $page, $perpage, $search);
     }
     echo $renderer->grid_column_end();
     if ($displaycoursedetail) {