first commit

This commit is contained in:
CHIEFSOFT\ameye
2024-09-30 18:11:26 -04:00
commit e592ca6823
27270 changed files with 5002257 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
/**
* Javascript to initialise the Recently accessed items block.
*
* @module block_recentlyaccesseditems/main
* @copyright 2018 Victor Deniz <victor@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define("block_recentlyaccesseditems/main",["jquery","block_recentlyaccesseditems/repository","core/templates","core/notification"],(function($,Repository,Templates,Notification){var SELECTORS_CARDDECK_CONTAINER='[data-region="recentlyaccesseditems-view"]',SELECTORS_CARDDECK='[data-region="recentlyaccesseditems-view-content"]',SELECTORS_SHOWMORE_LINK='[data-region="recentlyaccesseditems-view"] [data-action="more-items"]';return{init:function(root){var limit,itemsContainer=(root=$(root)).find(SELECTORS_CARDDECK_CONTAINER),itemsContent=root.find(SELECTORS_CARDDECK);(limit=9,Repository.getRecentItems(limit)).then((function(items){var pageContentPromise=function(root,items){if(items.length>0){let hasmoreitems=!1;return items.length>3&&(hasmoreitems=!0),Templates.render("block_recentlyaccesseditems/view-cards",{items:items,hasmoreitems:hasmoreitems})}var noitemsimgurl=root.attr("data-noitemsimgurl");return Templates.render("block_recentlyaccesseditems/no-items",{noitemsimgurl:noitemsimgurl})}(itemsContainer,items);pageContentPromise.then((function(html,js){return Templates.replaceNodeContents(itemsContent,html,js),items.length>3&&(()=>{const showmoreLink=document.querySelector(SELECTORS_SHOWMORE_LINK);showmoreLink.addEventListener("click",(()=>{showmoreLink.classList.add("d-none");const hiddenItems=document.querySelector('[data-region="items-list"]').children;for(const hiddenItem of hiddenItems)hiddenItem.style="display: block"}))})(),null})).catch(Notification.exception)})).catch(Notification.exception)}}}));
//# sourceMappingURL=main.min.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,10 @@
/**
* A javascript module to handle user ajax actions.
*
* @module block_recentlyaccesseditems/repository
* @copyright 2018 Victor Deniz <victor@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define("block_recentlyaccesseditems/repository",["core/ajax"],(function(Ajax){return{getRecentItems:function(limit){var args={};void 0!==limit&&(args.limit=limit);var request={methodname:"block_recentlyaccesseditems_get_recent_items",args:args};return Ajax.call([request])[0]}}}));
//# sourceMappingURL=repository.min.js.map
@@ -0,0 +1 @@
{"version":3,"file":"repository.min.js","sources":["../src/repository.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * A javascript module to handle user ajax actions.\n *\n * @module block_recentlyaccesseditems/repository\n * @copyright 2018 Victor Deniz <victor@moodle.com>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['core/ajax'], function(Ajax) {\n\n /**\n * Get the list of items that the user has most recently accessed.\n *\n * @method getRecentItems\n * @param {int} limit Only return this many results\n * @return {promise} Resolved with an array of items\n */\n var getRecentItems = function(limit) {\n var args = {};\n if (typeof limit !== 'undefined') {\n args.limit = limit;\n }\n var request = {\n methodname: 'block_recentlyaccesseditems_get_recent_items',\n args: args\n };\n return Ajax.call([request])[0];\n };\n return {\n getRecentItems: getRecentItems\n };\n});"],"names":["define","Ajax","getRecentItems","limit","args","request","methodname","call"],"mappings":";;;;;;;AAsBAA,gDAAO,CAAC,cAAc,SAASC,YAoBpB,CACHC,eAZiB,SAASC,WACtBC,KAAO,QACU,IAAVD,QACPC,KAAKD,MAAQA,WAEbE,QAAU,CACVC,WAAY,+CACZF,KAAMA,aAEHH,KAAKM,KAAK,CAACF,UAAU"}
@@ -0,0 +1,132 @@
// 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/>.
/**
* Javascript to initialise the Recently accessed items block.
*
* @module block_recentlyaccesseditems/main
* @copyright 2018 Victor Deniz <victor@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define(
[
'jquery',
'block_recentlyaccesseditems/repository',
'core/templates',
'core/notification'
],
function(
$,
Repository,
Templates,
Notification
) {
var NUM_ITEMS = 9;
// Maximum number of elements to display in the block initially.
var NUM_ITEMS_INIT = 3;
var SELECTORS = {
CARDDECK_CONTAINER: '[data-region="recentlyaccesseditems-view"]',
CARDDECK: '[data-region="recentlyaccesseditems-view-content"]',
SHOWMORE_LINK: '[data-region="recentlyaccesseditems-view"] [data-action="more-items"]',
};
/**
* Register event listeners.
*/
const registerEventListeners = () => {
const showmoreLink = document.querySelector(SELECTORS.SHOWMORE_LINK);
// Hide "Show more" link and show additional items.
showmoreLink.addEventListener('click', () => {
showmoreLink.classList.add('d-none');
const hiddenItems = document.querySelector('[data-region="items-list"]').children;
for (const hiddenItem of hiddenItems) {
hiddenItem.style = "display: block";
}
});
};
/**
* Get recent items from backend.
*
* @method getRecentItems
* @param {int} limit Only return this many results
* @return {array} Items user most recently has accessed
*/
var getRecentItems = function(limit) {
return Repository.getRecentItems(limit);
};
/**
* Render the block content.
*
* @method renderItems
* @param {object} root The root element for the items view.
* @param {array} items containing array of returned items.
* @return {promise} Resolved with HTML and JS strings
*/
var renderItems = function(root, items) {
if (items.length > 0) {
let hasmoreitems = false;
if (items.length > NUM_ITEMS_INIT) {
hasmoreitems = true;
}
return Templates.render('block_recentlyaccesseditems/view-cards', {
items: items,
hasmoreitems: hasmoreitems
});
} else {
var noitemsimgurl = root.attr('data-noitemsimgurl');
return Templates.render('block_recentlyaccesseditems/no-items', {
noitemsimgurl: noitemsimgurl
});
}
};
/**
* Get and show the recent items into the block.
*
* @param {object} root The root element for the items block.
*/
var init = function(root) {
root = $(root);
var itemsContainer = root.find(SELECTORS.CARDDECK_CONTAINER);
var itemsContent = root.find(SELECTORS.CARDDECK);
var itemsPromise = getRecentItems(NUM_ITEMS);
itemsPromise.then(function(items) {
var pageContentPromise = renderItems(itemsContainer, items);
pageContentPromise.then(function(html, js) {
Templates.replaceNodeContents(itemsContent, html, js);
if (items.length > 3) {
registerEventListeners();
}
return null;
}).catch(Notification.exception);
}).catch(Notification.exception);
};
return {
init: init
};
});
@@ -0,0 +1,46 @@
// 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/>.
/**
* A javascript module to handle user ajax actions.
*
* @module block_recentlyaccesseditems/repository
* @copyright 2018 Victor Deniz <victor@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
define(['core/ajax'], function(Ajax) {
/**
* Get the list of items that the user has most recently accessed.
*
* @method getRecentItems
* @param {int} limit Only return this many results
* @return {promise} Resolved with an array of items
*/
var getRecentItems = function(limit) {
var args = {};
if (typeof limit !== 'undefined') {
args.limit = limit;
}
var request = {
methodname: 'block_recentlyaccesseditems_get_recent_items',
args: args
};
return Ajax.call([request])[0];
};
return {
getRecentItems: getRecentItems
};
});