diff --git a/blocks/starredcourses/amd/build/main.min.js b/blocks/starredcourses/amd/build/main.min.js index 3de7137912ee7..cbad491a979c2 100644 --- a/blocks/starredcourses/amd/build/main.min.js +++ b/blocks/starredcourses/amd/build/main.min.js @@ -1 +1 @@ -define(["jquery","core/notification","block_starredcourses/repository","core/paged_content_factory","core/pubsub","core/templates","core_course/events"],function(a,b,c,d,e,f,g){var h={STARRED_COURSES_REGION_VIEW:'[data-region="starred-courses-view"]',STARRED_COURSES_REGION:'[data-region="starred-courses-view-content"]'},i=5,j=function(b,c){if(c.length>0)return f.render("block_starredcourses/view-cards",{courses:c});var d=a(h.STARRED_COURSES_REGION_VIEW).attr("data-nocoursesimg");return f.render("block_starredcourses/no-courses",{nocoursesimg:d})},k=function(a,e){var g=a.find(h.STARRED_COURSES_REGION);d.createWithLimit(i,function(b,d){var f=[];return b.forEach(function(b){var g={limit:i,offset:b.offset,userid:e},h=c.getStarredCourses(g).then(function(c){return c.length>0?j(a,c):(d.allItemsLoaded(b.pageNumber),j(a,c))});f.push(h)}),f}).then(function(a,b){return f.replaceNodeContents(g,a,b)})["catch"](b.exception)},l=function(a,b){e.subscribe(g.favourited,function(){k(a,b)}),e.subscribe(g.unfavorited,function(){k(a,b)})},m=function(b){b=a(b);var c=b.data("userid");l(b,c),k(b,c)};return{init:m}}); \ No newline at end of file +define(["jquery","core/notification","block_starredcourses/repository","core/pubsub","core/templates","core_course/events"],function(a,b,c,d,e,f){var g={STARRED_COURSES_REGION_VIEW:'[data-region="starred-courses-view"]',STARRED_COURSES_REGION:'[data-region="starred-courses-view-content"]'},h=5,i=function(a,b){if(b.length>0)return e.render("block_starredcourses/view-cards",{courses:b});var c=a.find(g.STARRED_COURSES_REGION_VIEW).attr("data-nocoursesimg");return e.render("block_starredcourses/no-courses",{nocoursesimg:c})},j=function(a){var d=a.find(g.STARRED_COURSES_REGION),f={limit:h,offset:0};return c.getStarredCourses(f).then(function(b){return i(a,b)}).then(function(a,b){return e.replaceNodeContents(d,a,b)})["catch"](b.exception)},k=function(a){d.subscribe(f.favourited,function(){j(a)}),d.subscribe(f.unfavorited,function(){j(a)})},l=function(b){b=a(b),k(b),j(b)};return{init:l}}); \ No newline at end of file diff --git a/blocks/starredcourses/amd/src/main.js b/blocks/starredcourses/amd/src/main.js index a581a3d6c0143..93428faa80264 100644 --- a/blocks/starredcourses/amd/src/main.js +++ b/blocks/starredcourses/amd/src/main.js @@ -25,7 +25,6 @@ define( 'jquery', 'core/notification', 'block_starredcourses/repository', - 'core/paged_content_factory', 'core/pubsub', 'core/templates', 'core_course/events' @@ -34,7 +33,6 @@ function( $, Notification, Repository, - PagedContentFactory, PubSub, Templates, CourseEvents @@ -61,7 +59,7 @@ function( courses: courses }); } else { - var nocoursesimg = $(SELECTORS.STARRED_COURSES_REGION_VIEW).attr('data-nocoursesimg'); + var nocoursesimg =root.find(SELECTORS.STARRED_COURSES_REGION_VIEW).attr('data-nocoursesimg'); return Templates.render('block_starredcourses/no-courses', { nocoursesimg: nocoursesimg }); @@ -72,37 +70,18 @@ function( * Fetch user's starred courses and reload the content of the block. * * @param {object} root The root element for the starred view. - * @param {Number} userid The user id. */ - var reloadContent = function(root, userid) { + var reloadContent = function(root) { var content = root.find(SELECTORS.STARRED_COURSES_REGION); - PagedContentFactory.createWithLimit( - NUM_COURSES_TOTAL, - function(pagesData, actions) { - var promises = []; + var args = { + limit: NUM_COURSES_TOTAL, + offset: 0, + }; - pagesData.forEach(function(pageData) { - var args = { - limit: NUM_COURSES_TOTAL, - offset: pageData.offset, - userid: userid - }; - - // Load the page data. - var pagePromise = Repository.getStarredCourses(args).then(function(courses) { - if (courses.length > 0) { - return renderCourses(root, courses); - } else { - actions.allItemsLoaded(pageData.pageNumber); - return renderCourses(root, courses); - } - }); - - promises.push(pagePromise); - }); - - return promises; + return Repository.getStarredCourses(args) + .then(function(courses) { + return renderCourses(root, courses); }).then(function(html, js) { return Templates.replaceNodeContents(content, html, js); }).catch(Notification.exception); @@ -112,15 +91,14 @@ function( * Register event listeners for the block. * * @param {object} root The calendar root element - * @param {Number} userid The user id. */ - var registerEventListeners = function(root, userid) { + var registerEventListeners = function(root) { PubSub.subscribe(CourseEvents.favourited, function() { - reloadContent(root, userid); + reloadContent(root); }); PubSub.subscribe(CourseEvents.unfavorited, function() { - reloadContent(root, userid); + reloadContent(root); }); }; @@ -131,10 +109,9 @@ function( */ var init = function(root) { root = $(root); - var userid = root.data('userid'); - registerEventListeners(root, userid); - reloadContent(root, userid); + registerEventListeners(root); + reloadContent(root); }; return { diff --git a/blocks/starredcourses/amd/src/repository.js b/blocks/starredcourses/amd/src/repository.js index 778516cc81f53..7de121ec3356e 100644 --- a/blocks/starredcourses/amd/src/repository.js +++ b/blocks/starredcourses/amd/src/repository.js @@ -27,6 +27,7 @@ define(['jquery', 'core/ajax', 'core/notification'], function($, Ajax, Notificat * * Valid args are: * int limit number of records to retrieve + * int offset the offset of records to retrieve * * @method getStarredCourses * @param {object} args The request arguments diff --git a/blocks/starredcourses/classes/external.php b/blocks/starredcourses/classes/external.php index baae1d1f8dbdd..55a0813e66314 100644 --- a/blocks/starredcourses/classes/external.php +++ b/blocks/starredcourses/classes/external.php @@ -53,19 +53,17 @@ public static function get_starred_courses_parameters() { } /** - * Get users starred courses appending additional course information like images. + * Get users starred courses. * - * @param int $limit Limit + * @param int $limit Limit * @param int $offset Offset - * @param int|null $userid The user's userid to fetch the favourite courses. + * * @return array list of courses and warnings */ - public static function get_starred_courses($limit, $offset, $userid = null) { + public static function get_starred_courses($limit, $offset) { global $USER, $PAGE; - if (!$userid) { - $userid = $USER->id; - } + $userid = $USER->id; $params = self::validate_parameters(self::get_starred_courses_parameters(), [ 'limit' => $limit, @@ -95,18 +93,7 @@ public static function get_starred_courses($limit, $offset, $userid = null) { if (!isset($results[$courseid])) { $exporter = new course_summary_exporter(get_course($courseid), ['context' => \context_course::instance($courseid)]); - $courseinlist = new \core_course_list_element(get_course($courseid)); - foreach ($courseinlist->get_course_overviewfiles() as $file) { - if ($file->is_valid_image()) { - $url = new moodle_url("/pluginfile.php".'/'.$file->get_contextid(). '/'. $file->get_component(). '/'. - $file->get_filearea(). $file->get_filepath(). $file->get_filename()); - $courseimage = $url->__toString(); - } - } $results[$courseid] = $exporter->export($output); - if (!empty($courseimage)) { - $results[$courseid]['courseimage'] = $courseimage; - } } }