Merge pull request #1650 from crazyserver/MOBILE-2779
MOBILE-2779 course: Display the icon of unsupported activitiesmain
commit
6276a888a3
|
@ -68,7 +68,8 @@ export class AddonBlockActivityModulesComponent extends CoreBlockBaseComponent i
|
||||||
|
|
||||||
this.entries = [];
|
this.entries = [];
|
||||||
|
|
||||||
const archetypes = {};
|
const archetypes = {},
|
||||||
|
modIcons = {};
|
||||||
let modFullNames = {};
|
let modFullNames = {};
|
||||||
|
|
||||||
sections.forEach((section) => {
|
sections.forEach((section) => {
|
||||||
|
@ -98,6 +99,7 @@ export class AddonBlockActivityModulesComponent extends CoreBlockBaseComponent i
|
||||||
} else {
|
} else {
|
||||||
modFullNames[mod.modname] = mod.modplural;
|
modFullNames[mod.modname] = mod.modplural;
|
||||||
}
|
}
|
||||||
|
modIcons[mod.modname] = mod.modicon;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -108,9 +110,9 @@ export class AddonBlockActivityModulesComponent extends CoreBlockBaseComponent i
|
||||||
let icon;
|
let icon;
|
||||||
|
|
||||||
if (modName === 'resources') {
|
if (modName === 'resources') {
|
||||||
icon = this.courseProvider.getModuleIconSrc('page');
|
icon = this.courseProvider.getModuleIconSrc('page', modIcons['page']);
|
||||||
} else {
|
} else {
|
||||||
icon = this.moduleDelegate.getModuleIconSrc(modName);
|
icon = this.moduleDelegate.getModuleIconSrc(modName, modIcons[modName]);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.entries.push({
|
this.entries.push({
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { CoreSitesProvider } from '@providers/sites';
|
import { CoreSitesProvider } from '@providers/sites';
|
||||||
import { CoreCourseProvider } from '@core/course/providers/course';
|
import { CoreCourseProvider } from '@core/course/providers/course';
|
||||||
|
import { CoreDomUtilsProvider } from '@providers/utils/dom';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Service that provides some features regarding recently accessed items.
|
* Service that provides some features regarding recently accessed items.
|
||||||
|
@ -23,7 +24,8 @@ import { CoreCourseProvider } from '@core/course/providers/course';
|
||||||
export class AddonBlockRecentlyAccessedItemsProvider {
|
export class AddonBlockRecentlyAccessedItemsProvider {
|
||||||
protected ROOT_CACHE_KEY = 'AddonBlockRecentlyAccessedItems:';
|
protected ROOT_CACHE_KEY = 'AddonBlockRecentlyAccessedItems:';
|
||||||
|
|
||||||
constructor(private sitesProvider: CoreSitesProvider, private courseProvider: CoreCourseProvider) { }
|
constructor(private sitesProvider: CoreSitesProvider, private courseProvider: CoreCourseProvider,
|
||||||
|
private domUtils: CoreDomUtilsProvider) { }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get cache key for get last accessed items value WS call.
|
* Get cache key for get last accessed items value WS call.
|
||||||
|
@ -49,7 +51,8 @@ export class AddonBlockRecentlyAccessedItemsProvider {
|
||||||
|
|
||||||
return site.read('block_recentlyaccesseditems_get_recent_items', undefined, preSets).then((items) => {
|
return site.read('block_recentlyaccesseditems_get_recent_items', undefined, preSets).then((items) => {
|
||||||
return items.map((item) => {
|
return items.map((item) => {
|
||||||
item.iconUrl = this.courseProvider.getModuleIconSrc(item.modname);
|
const modicon = item.icon && this.domUtils.getHTMLElementAttribute(item.icon, 'src');
|
||||||
|
item.iconUrl = this.courseProvider.getModuleIconSrc(item.modname, modicon);
|
||||||
|
|
||||||
return item;
|
return item;
|
||||||
});
|
});
|
||||||
|
|
|
@ -64,7 +64,7 @@ export class AddonModAssignModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('assign'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_assign-handler',
|
class: 'addon-mod_assign-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -61,7 +61,7 @@ export class AddonModBookModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('book'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_book-handler',
|
class: 'addon-mod_book-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -59,7 +59,7 @@ export class AddonModChatModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('chat'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_chat-handler',
|
class: 'addon-mod_chat-handler',
|
||||||
action(event: Event, navCtrl: NavController, module: any, courseId: number, options: NavOptions): void {
|
action(event: Event, navCtrl: NavController, module: any, courseId: number, options: NavOptions): void {
|
||||||
|
|
|
@ -60,7 +60,7 @@ export class AddonModChoiceModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('choice'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_choice-handler',
|
class: 'addon-mod_choice-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -63,7 +63,7 @@ export class AddonModDataModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('data'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_data-handler',
|
class: 'addon-mod_data-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -61,7 +61,7 @@ export class AddonModFeedbackModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('feedback'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_feedback-handler',
|
class: 'addon-mod_feedback-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -60,7 +60,7 @@ export class AddonModFolderModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('folder'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_folder-handler',
|
class: 'addon-mod_folder-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -68,7 +68,7 @@ export class AddonModForumModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
const data: CoreCourseModuleHandlerData = {
|
const data: CoreCourseModuleHandlerData = {
|
||||||
icon: this.courseProvider.getModuleIconSrc('forum'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_forum-handler',
|
class: 'addon-mod_forum-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -62,7 +62,7 @@ export class AddonModGlossaryModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('glossary'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_glossary-handler',
|
class: 'addon-mod_glossary-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -61,7 +61,7 @@ export class AddonModImscpModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('imscp'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_imscp-handler',
|
class: 'addon-mod_imscp-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -61,7 +61,7 @@ export class AddonModLessonModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('lesson'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_lesson-handler',
|
class: 'addon-mod_lesson-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -71,7 +71,7 @@ export class AddonModLtiModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
const data: CoreCourseModuleHandlerData = {
|
const data: CoreCourseModuleHandlerData = {
|
||||||
icon: this.courseProvider.getModuleIconSrc('lti'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_lti-handler',
|
class: 'addon-mod_lti-handler',
|
||||||
action(event: Event, navCtrl: NavController, module: any, courseId: number, options: NavOptions): void {
|
action(event: Event, navCtrl: NavController, module: any, courseId: number, options: NavOptions): void {
|
||||||
|
|
|
@ -61,7 +61,7 @@ export class AddonModPageModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('page'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_page-handler',
|
class: 'addon-mod_page-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -62,7 +62,7 @@ export class AddonModQuizModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('quiz'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_quiz-handler',
|
class: 'addon-mod_quiz-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -78,7 +78,7 @@ export class AddonModResourceModuleHandler implements CoreCourseModuleHandler {
|
||||||
};
|
};
|
||||||
|
|
||||||
const handlerData: CoreCourseModuleHandlerData = {
|
const handlerData: CoreCourseModuleHandlerData = {
|
||||||
icon: this.courseProvider.getModuleIconSrc(this.modName),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_resource-handler',
|
class: 'addon-mod_resource-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
@ -162,6 +162,7 @@ export class AddonModResourceModuleHandler implements CoreCourseModuleHandler {
|
||||||
|
|
||||||
if (files && files.length) {
|
if (files && files.length) {
|
||||||
const file = files[0];
|
const file = files[0];
|
||||||
|
|
||||||
resourceData.icon = this.mimetypeUtils.getFileIcon(file.filename);
|
resourceData.icon = this.mimetypeUtils.getFileIcon(file.filename);
|
||||||
|
|
||||||
if (options.showsize) {
|
if (options.showsize) {
|
||||||
|
@ -201,9 +202,8 @@ export class AddonModResourceModuleHandler implements CoreCourseModuleHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (resourceData.icon == '') {
|
if (resourceData.icon == '') {
|
||||||
resourceData.icon = this.courseProvider.getModuleIconSrc(this.modName);
|
resourceData.icon = this.courseProvider.getModuleIconSrc(this.modName, module.modicon);
|
||||||
}
|
}
|
||||||
|
|
||||||
resourceData.extra += extra.join(' ');
|
resourceData.extra += extra.join(' ');
|
||||||
|
|
||||||
return resourceData;
|
return resourceData;
|
||||||
|
|
|
@ -60,7 +60,7 @@ export class AddonModScormModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('scorm'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_scorm-handler',
|
class: 'addon-mod_scorm-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -60,7 +60,7 @@ export class AddonModSurveyModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('survey'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_survey-handler',
|
class: 'addon-mod_survey-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -68,7 +68,7 @@ export class AddonModUrlModuleHandler implements CoreCourseModuleHandler {
|
||||||
// tslint:disable: no-this-assignment
|
// tslint:disable: no-this-assignment
|
||||||
const handler = this;
|
const handler = this;
|
||||||
const handlerData = {
|
const handlerData = {
|
||||||
icon: this.courseProvider.getModuleIconSrc(this.modName),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_url-handler',
|
class: 'addon-mod_url-handler',
|
||||||
showDownloadButton: false,
|
showDownloadButton: false,
|
||||||
|
@ -122,7 +122,7 @@ export class AddonModUrlModuleHandler implements CoreCourseModuleHandler {
|
||||||
if (module.contents && module.contents[0]) {
|
if (module.contents && module.contents[0]) {
|
||||||
// Calculate the icon to use.
|
// Calculate the icon to use.
|
||||||
handlerData.icon = this.urlProvider.guessIcon(module.contents[0].fileurl) ||
|
handlerData.icon = this.urlProvider.guessIcon(module.contents[0].fileurl) ||
|
||||||
this.courseProvider.getModuleIconSrc(this.modName);
|
this.courseProvider.getModuleIconSrc(this.modName, module.modicon);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ export class AddonModWikiModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('wiki'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_wiki-handler',
|
class: 'addon-mod_wiki-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -60,7 +60,7 @@ export class AddonModWorkshopModuleHandler implements CoreCourseModuleHandler {
|
||||||
*/
|
*/
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
return {
|
return {
|
||||||
icon: this.courseProvider.getModuleIconSrc('workshop'),
|
icon: this.courseProvider.getModuleIconSrc(this.modName, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'addon-mod_workshop-handler',
|
class: 'addon-mod_workshop-handler',
|
||||||
showDownloadButton: true,
|
showDownloadButton: true,
|
||||||
|
|
|
@ -536,10 +536,18 @@ export class CoreCourseProvider {
|
||||||
* Returns the source to a module icon.
|
* Returns the source to a module icon.
|
||||||
*
|
*
|
||||||
* @param {string} moduleName The module name.
|
* @param {string} moduleName The module name.
|
||||||
|
* @param {string} [modicon] The mod icon string to use in case we are not using a core activity.
|
||||||
* @return {string} The IMG src.
|
* @return {string} The IMG src.
|
||||||
*/
|
*/
|
||||||
getModuleIconSrc(moduleName: string): string {
|
getModuleIconSrc(moduleName: string, modicon?: string): string {
|
||||||
|
// @TODO: Check modicon url theme to apply other theme icons.
|
||||||
|
|
||||||
|
// Use default icon on core themes.
|
||||||
if (this.CORE_MODULES.indexOf(moduleName) < 0) {
|
if (this.CORE_MODULES.indexOf(moduleName) < 0) {
|
||||||
|
if (modicon) {
|
||||||
|
return modicon;
|
||||||
|
}
|
||||||
|
|
||||||
moduleName = 'external-tool';
|
moduleName = 'external-tool';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ export class CoreCourseModuleDefaultHandler implements CoreCourseModuleHandler {
|
||||||
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
getData(module: any, courseId: number, sectionId: number): CoreCourseModuleHandlerData {
|
||||||
// Return the default data.
|
// Return the default data.
|
||||||
const defaultData: CoreCourseModuleHandlerData = {
|
const defaultData: CoreCourseModuleHandlerData = {
|
||||||
icon: this.courseProvider.getModuleIconSrc(module.modname),
|
icon: this.courseProvider.getModuleIconSrc(module.modname, module.modicon),
|
||||||
title: module.name,
|
title: module.name,
|
||||||
class: 'core-course-default-handler core-course-module-' + module.modname + '-handler',
|
class: 'core-course-default-handler core-course-module-' + module.modname + '-handler',
|
||||||
action: (event: Event, navCtrl: NavController, module: any, courseId: number, options?: NavOptions): void => {
|
action: (event: Event, navCtrl: NavController, module: any, courseId: number, options?: NavOptions): void => {
|
||||||
|
|
|
@ -313,10 +313,11 @@ export class CoreCourseModuleDelegate extends CoreDelegate {
|
||||||
* Get the icon src for a certain type of module.
|
* Get the icon src for a certain type of module.
|
||||||
*
|
*
|
||||||
* @param {any} modname The name of the module type.
|
* @param {any} modname The name of the module type.
|
||||||
|
* @param {string} [modicon] The mod icon string.
|
||||||
* @return {string} The icon src.
|
* @return {string} The icon src.
|
||||||
*/
|
*/
|
||||||
getModuleIconSrc(modname: string): string {
|
getModuleIconSrc(modname: string, modicon?: string): string {
|
||||||
return this.executeFunctionOnEnabled(modname, 'getIconSrc') || this.courseProvider.getModuleIconSrc(modname);
|
return this.executeFunctionOnEnabled(modname, 'getIconSrc') || this.courseProvider.getModuleIconSrc(modname, modicon);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -436,7 +436,8 @@ export class CoreGradesHelperProvider {
|
||||||
if (typeof module[1] != 'undefined') {
|
if (typeof module[1] != 'undefined') {
|
||||||
row['itemtype'] = 'mod';
|
row['itemtype'] = 'mod';
|
||||||
row['itemmodule'] = module[1];
|
row['itemmodule'] = module[1];
|
||||||
row['image'] = this.courseProvider.getModuleIconSrc(module[1]);
|
row['image'] = this.courseProvider.getModuleIconSrc(module[1],
|
||||||
|
this.domUtils.convertToElement(text).querySelector('img').getAttribute('src'));
|
||||||
}
|
}
|
||||||
} else if (text.indexOf('src=') > -1) {
|
} else if (text.indexOf('src=') > -1) {
|
||||||
const src = text.match(/src="([^"]*)"/);
|
const src = text.match(/src="([^"]*)"/);
|
||||||
|
|
|
@ -346,6 +346,17 @@ export class CoreDomUtilsProvider {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the attribute value of a string element. Only the first element will be selected.
|
||||||
|
*
|
||||||
|
* @param {string} html HTML element in string.
|
||||||
|
* @param {string} attribute Attribute to get.
|
||||||
|
* @return {string} Attribute value.
|
||||||
|
*/
|
||||||
|
getHTMLElementAttribute(html: string, attribute: string): string {
|
||||||
|
return this.convertToElement(html).children[0].getAttribute('src');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns height of an element.
|
* Returns height of an element.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue