From 9ac2e865a405902bef81143c59deb73894879f16 Mon Sep 17 00:00:00 2001 From: Ryan Wyllie Date: Thu, 23 Feb 2017 04:42:07 +0000 Subject: [PATCH] MDL-57447 block_myoverview: add context for courses view Part of MDL-55611 epic. --- blocks/myoverview/amd/src/paging_bar.js | 2 +- blocks/myoverview/block_myoverview.php | 3 +- .../classes/output/courses_view.php | 144 ++++++++++++++++++ blocks/myoverview/classes/output/main.php | 53 +++++++ blocks/myoverview/classes/output/renderer.php | 6 +- .../templates/courses-view.mustache | 20 ++- blocks/myoverview/templates/main.mustache | 4 +- .../templates/paging-bar-item.mustache | 2 +- .../myoverview/templates/paging-bar.mustache | 2 + 9 files changed, 223 insertions(+), 13 deletions(-) create mode 100644 blocks/myoverview/classes/output/courses_view.php create mode 100644 blocks/myoverview/classes/output/main.php diff --git a/blocks/myoverview/amd/src/paging_bar.js b/blocks/myoverview/amd/src/paging_bar.js index cdb9ad27da0..5f6e6ef6d67 100644 --- a/blocks/myoverview/amd/src/paging_bar.js +++ b/blocks/myoverview/amd/src/paging_bar.js @@ -43,7 +43,7 @@ define(['jquery', 'core/custom_interaction_events'], root.one(CustomEvents.events.activate, SELECTORS.PAGE_LINK, function(e, data) { var page = $(e.target).closest(SELECTORS.PAGE_LINK); var activePage = root.find(SELECTORS.ACTIVE_PAGE_LINK); - var isSamePage = page.is(activatePage); + var isSamePage = page.is(activePage); if (!isSamePage) { root.find(SELECTORS.PAGE_LINK).removeClass('active'); diff --git a/blocks/myoverview/block_myoverview.php b/blocks/myoverview/block_myoverview.php index 170aae1333a..f22ce15decb 100644 --- a/blocks/myoverview/block_myoverview.php +++ b/blocks/myoverview/block_myoverview.php @@ -50,8 +50,7 @@ class block_myoverview extends block_base { return $this->content; } - $renderable = new \block_myoverview\output\course_summary(); - + $renderable = new \block_myoverview\output\main(); $renderer = $this->page->get_renderer('block_myoverview'); $this->content = new stdClass(); diff --git a/blocks/myoverview/classes/output/courses_view.php b/blocks/myoverview/classes/output/courses_view.php new file mode 100644 index 00000000000..74e95b174b7 --- /dev/null +++ b/blocks/myoverview/classes/output/courses_view.php @@ -0,0 +1,144 @@ +. + +/** + * Class containing data for courses view in the myoverview block. + * + * @package block_myoverview + * @copyright 2017 Ryan Wyllie + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +namespace block_myoverview\output; +defined('MOODLE_INTERNAL') || die(); + +use renderable; +use renderer_base; +use templatable; +/** + * Class containing data for courses view in the myoverview block. + * + * @copyright 2017 Simey Lameze + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class courses_view implements renderable, templatable { + + /** + * Export this data so it can be used as the context for a mustache template. + * + * @param \renderer_base $output + * @return stdClass + */ + public function export_for_template(renderer_base $output) { + return [ + 'past' => [ + 'pagingbar' => [ + 'first' => [ + 'number' => 1, + 'page' => '«', + 'url' => '#', + ], + 'last' => [ + 'number' => 3, + 'page' => '»', + 'url' => '#', + ], + 'pages' => [ + [ + 'number' => 1, + 'page' => 1, + 'url' => '#', + 'active' => true, + ], + [ + 'number' => 2, + 'page' => 2, + 'url' => '#', + ], + [ + 'number' => 3, + 'page' => 3, + 'url' => '#', + ], + ] + ], + ], + 'inprogress' => [ + 'pagingbar' => [ + 'first' => [ + 'number' => 1, + 'page' => '«', + 'url' => '#', + ], + 'last' => [ + 'number' => 3, + 'page' => '»', + 'url' => '#', + ], + 'pages' => [ + [ + 'number' => 1, + 'page' => 1, + 'url' => '#', + 'active' => true, + ], + [ + 'number' => 2, + 'page' => 2, + 'url' => '#', + ], + [ + 'number' => 3, + 'page' => 3, + 'url' => '#', + ], + ] + ], + ], + 'future' => [ + 'pagingbar' => [ + 'first' => [ + 'number' => 1, + 'page' => '«', + 'url' => '#', + ], + 'last' => [ + 'number' => 3, + 'page' => '»', + 'url' => '#', + ], + 'pages' => [ + [ + 'number' => 1, + 'page' => 1, + 'url' => '#', + 'active' => true, + ], + [ + 'number' => 2, + 'page' => 2, + 'url' => '#', + ], + [ + 'number' => 3, + 'page' => 3, + 'url' => '#', + ], + ] + ], + ], + ]; + } +} diff --git a/blocks/myoverview/classes/output/main.php b/blocks/myoverview/classes/output/main.php new file mode 100644 index 00000000000..4bd940505a2 --- /dev/null +++ b/blocks/myoverview/classes/output/main.php @@ -0,0 +1,53 @@ +. + +/** + * Class containing data for my overview block. + * + * @package block_myoverview + * @copyright 2017 Ryan Wyllie + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +namespace block_myoverview\output; +defined('MOODLE_INTERNAL') || die(); + +use renderable; +use renderer_base; +use templatable; +/** + * Class containing data for my overview block. + * + * @copyright 2017 Simey Lameze + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +class main implements renderable, templatable { + + /** + * Export this data so it can be used as the context for a mustache template. + * + * @param \renderer_base $output + * @return stdClass + */ + public function export_for_template(renderer_base $output) { + $coursesummary = new course_summary(); + $coursesview = new courses_view(); + + return [ + 'courses' => $coursesummary->export_for_template($output), + 'coursesview' => $coursesview->export_for_template($output), + ]; + } +} diff --git a/blocks/myoverview/classes/output/renderer.php b/blocks/myoverview/classes/output/renderer.php index 9efcfcd190d..606dd3bf16d 100644 --- a/blocks/myoverview/classes/output/renderer.php +++ b/blocks/myoverview/classes/output/renderer.php @@ -39,10 +39,10 @@ class renderer extends plugin_renderer_base { /** * Return the main content for the block overview. * - * @param course_summary $coursesummary Course summary. + * @param main $main The main renderable * @return string HTML string */ - public function render_course_summary(course_summary $coursesummary) { - return $this->render_from_template('block_myoverview/main', ['courses' => $coursesummary->export_for_template($this)]); + public function render_main(main $main) { + return $this->render_from_template('block_myoverview/main', $main->export_for_template($this)); } } diff --git a/blocks/myoverview/templates/courses-view.mustache b/blocks/myoverview/templates/courses-view.mustache index 440947a3750..14044e10709 100644 --- a/blocks/myoverview/templates/courses-view.mustache +++ b/blocks/myoverview/templates/courses-view.mustache @@ -38,15 +38,25 @@
- {{< block_myoverview/courses-view-by-status }} - {{$status}}1{{/status}} - {{/ block_myoverview/courses-view-by-status }} + {{#inprogress}} + {{< block_myoverview/courses-view-by-status }} + {{$status}}1{{/status}} + {{/ block_myoverview/courses-view-by-status }} + {{/inprogress}}
- {{> block_myoverview/courses-view-future }} + {{#future}} + {{< block_myoverview/courses-view-by-status }} + {{$status}}2{{/status}} + {{/ block_myoverview/courses-view-by-status }} + {{/future}}
- {{> block_myoverview/courses-view-past }} + {{#past}} + {{< block_myoverview/courses-view-by-status }} + {{$status}}0{{/status}} + {{/ block_myoverview/courses-view-by-status }} + {{/past}}
diff --git a/blocks/myoverview/templates/main.mustache b/blocks/myoverview/templates/main.mustache index 37321736ab4..f9da7333538 100644 --- a/blocks/myoverview/templates/main.mustache +++ b/blocks/myoverview/templates/main.mustache @@ -44,7 +44,9 @@ {{> block_myoverview/timeline-view }}
- {{> block_myoverview/courses-view }} + {{#coursesview}} + {{> block_myoverview/courses-view }} + {{/coursesview}}
diff --git a/blocks/myoverview/templates/paging-bar-item.mustache b/blocks/myoverview/templates/paging-bar-item.mustache index 45badf56038..9b6cdc54741 100644 --- a/blocks/myoverview/templates/paging-bar-item.mustache +++ b/blocks/myoverview/templates/paging-bar-item.mustache @@ -29,7 +29,7 @@ data-page-number="{{number}}" data-region="page-link"> {{$item-content}} - {{page}} + {{{page}}} {{#active}} {{#str}}currentinparentheses, theme_boost{{/str}} {{/active}} diff --git a/blocks/myoverview/templates/paging-bar.mustache b/blocks/myoverview/templates/paging-bar.mustache index 4d4d8ede320..69d1d4d219d 100644 --- a/blocks/myoverview/templates/paging-bar.mustache +++ b/blocks/myoverview/templates/paging-bar.mustache @@ -23,6 +23,7 @@ { } }} +{{#pagingbar}}