Merge branch 'MDL-63063-master-block' of https://github.com/vmdef/moodle
authorDamyon Wiese <damyon@moodle.com>
Thu, 1 Nov 2018 04:57:55 +0000 (12:57 +0800)
committerDamyon Wiese <damyon@moodle.com>
Thu, 1 Nov 2018 04:57:55 +0000 (12:57 +0800)
1  2 
blocks/recentlyaccesseditems/classes/external.php
lib/classes/plugin_manager.php
theme/boost/scss/moodle/blocks.scss
theme/boost/style/moodle.css
theme/bootstrapbase/less/moodle/blocks.less
theme/bootstrapbase/style/moodle.css
version.php

index 0000000,dfeae51..ddfea0d
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,106 +1,102 @@@
 -        if ($userid != $USER->id) {
 -            return array();
 -        }
 -
+ <?php
+ // This file is part of Moodle - http://moodle.org/
+ //
+ // Moodle is free software: you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation, either version 3 of the License, or
+ // (at your option) any later version.
+ //
+ // Moodle is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ // GNU General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+ /**
+  * External API.
+  *
+  * @package    block_recentlyaccesseditems
+  * @copyright  2018 Victor Deniz <victor@moodle.com>
+  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+  */
+ namespace block_recentlyaccesseditems;
+ defined('MOODLE_INTERNAL') || die();
+ require_once("$CFG->libdir/externallib.php");
+ use block_recentlyaccesseditems\external\recentlyaccesseditems_item_exporter;
+ use external_api;
+ use external_function_parameters;
+ use external_value;
+ use external_multiple_structure;
+ use context_user;
+ use context_module;
+ /**
+  * External API class.
+  *
+  * @package    block_recentlyaccesseditems
+  * @copyright  2018 Victor Deniz <victor@moodle.com>
+  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+  */
+ class external extends external_api {
+     /**
+      * Returns description of method parameters
+      * @return external_function_parameters
+      */
+     public static function get_recent_items_parameters() {
+         return new external_function_parameters(
+                 array(
+                         'limit' => new external_value(PARAM_INT, 'result set limit', VALUE_DEFAULT, 0)
+                 )
+         );
+     }
+     /**
+      * Get last accessed items by the logged user (activities or resources).
+      *
+      * @param  int $limit Max num of items to return
+      * @return array List of items
+      * @since Moodle 3.6
+      */
+     public static function get_recent_items(int $limit = 0) {
+         global $USER, $PAGE;
+         $userid = $USER->id;
 -}
+         $params = self::validate_parameters(self::get_recent_items_parameters(),
+             array(
+                 'limit' => $limit,
+             )
+         );
+         $limit = $params['limit'];
+         self::validate_context(context_user::instance($userid));
+         $items = helper::get_recent_items($limit);
+         $renderer = $PAGE->get_renderer('core');
+         $recentitems = array_map(function($item) use ($renderer) {
+             $context = context_module::instance($item->cmid);
+             $exporter = new recentlyaccesseditems_item_exporter($item, ['context' => $context]);
+             return $exporter->export($renderer);
+         }, $items);
+         return $recentitems;
+     }
+     /**
+      * Returns description of method result value
+      *
+      * @return external_description
+      * @since Moodle 3.6
+      */
+     public static function get_recent_items_returns() {
+         return new external_multiple_structure(recentlyaccesseditems_item_exporter::get_read_structure(),
+                 'The most recently accessed activities/resources by the logged user');
+     }
++}
@@@ -1718,10 -1718,10 +1718,10 @@@ class core_plugin_manager 
                  'feedback', 'globalsearch', 'glossary_random', 'html',
                  'login', 'lp', 'mentees', 'mnet_hosts', 'myoverview', 'myprofile',
                  'navigation', 'news_items', 'online_users', 'participants',
-                 'private_files', 'quiz_results', 'recent_activity',
+                 'private_files', 'quiz_results', 'recent_activity', 'recentlyaccesseditems',
                  'rss_client', 'search_forums', 'section_links',
                  'selfcompletion', 'settings', 'site_main_menu',
 -                'social_activities', 'tag_flickr', 'tag_youtube', 'tags', 'timeline'
 +                'social_activities', 'starredcourses', 'tag_flickr', 'tag_youtube', 'tags', 'timeline'
              ),
  
              'booktool' => array(
Simple merge
Simple merge
      }
  }
  
 +.block_starredcourses {
 +    .dashboard-card-deck {
 +        flex-flow: nowrap;
 +        overflow-y: scroll;
 +    }
 +}
 +
+ .block_recentlyaccesseditems {
+     [data-region="recentlyaccesseditems-view-content"] {
+         overflow-x: hidden;
+     }
+     .dashboard-card {
+         height: 75px;
+     }
+     .dashboard-card-deck {
+         @media (min-width: 576px) {
+             height: 75px;
+             overflow: hidden;
+         }
+     }
+     .empty-placeholder-image-lg {
+         height: 125px;
+     }
+     .course-info-container {
+         flex: 1 1 auto;
+         padding: 0.8rem;
+     }
+     .icon-size-4 .icon {
+         height: auto;
+         width: auto;
+         background-image: unset;
+         box-sizing: unset;
+     }
+     .icon-size-4 {
+         background-image: unset;
+         height: unset;
+         width: unset;
+     }
+     .ml-1 {
+         margin-left: 10px;
+     }
+     h6 {
+         font-size: .9375rem;
+         margin-bottom: 0;
+     }
+     a,
+     a:hover {
+         text-decoration: none;
+         color: unset;
+     }
+ }
  .dashboard-card-deck {
      box-sizing: border-box;
      *,
  
  .position-absolute {
      position: absolute;
--}
++}
@@@ -16606,10 -16597,48 +16606,52 @@@ body 
      max-height: 7rem;
    }
  }
 +.block_starredcourses .dashboard-card-deck {
 +  flex-flow: nowrap;
 +  overflow-y: scroll;
 +}
+ .block_recentlyaccesseditems [data-region="recentlyaccesseditems-view-content"] {
+   overflow-x: hidden;
+ }
+ .block_recentlyaccesseditems .dashboard-card {
+   height: 75px;
+ }
+ @media (min-width: 576px) {
+   .block_recentlyaccesseditems .dashboard-card-deck {
+     height: 75px;
+     overflow: hidden;
+   }
+ }
+ .block_recentlyaccesseditems .empty-placeholder-image-lg {
+   height: 125px;
+ }
+ .block_recentlyaccesseditems .course-info-container {
+   flex: 1 1 auto;
+   padding: 0.8rem;
+ }
+ .block_recentlyaccesseditems .icon-size-4 .icon {
+   height: auto;
+   width: auto;
+   background-image: unset;
+   box-sizing: unset;
+ }
+ .block_recentlyaccesseditems .icon-size-4 {
+   background-image: unset;
+   height: unset;
+   width: unset;
+ }
+ .block_recentlyaccesseditems .ml-1 {
+   margin-left: 10px;
+ }
+ .block_recentlyaccesseditems h6 {
+   font-size: .9375rem;
+   margin-bottom: 0;
+ }
+ .block_recentlyaccesseditems a,
+ .block_recentlyaccesseditems a:hover {
+   text-decoration: none;
+   color: unset;
+ }
  .dashboard-card-deck {
    box-sizing: border-box;
    display: flex;
diff --cc version.php
@@@ -29,7 -29,7 +29,7 @@@
  
  defined('MOODLE_INTERNAL') || die();
  
- $version  = 2018110100.00;              // YYYYMMDD      = weekly release date of this DEV branch.
 -$version  = 2018103100.00;              // YYYYMMDD      = weekly release date of this DEV branch.
++$version  = 2018110100.01;              // YYYYMMDD      = weekly release date of this DEV branch.
                                          //         RR    = release increments - 00 in DEV branches.
                                          //           .XX = incremental changes.