MOBILE-3198 filter: Support start time in mediaplugin filter
parent
4c03c0174a
commit
9a3e3b23e6
|
@ -17,6 +17,7 @@ import { Injectable } from '@angular/core';
|
||||||
import { CoreFilterDefaultHandler } from '@core/filter/providers/default-filter';
|
import { CoreFilterDefaultHandler } from '@core/filter/providers/default-filter';
|
||||||
import { CoreFilterFilter, CoreFilterFormatTextOptions } from '@core/filter/providers/filter';
|
import { CoreFilterFilter, CoreFilterFormatTextOptions } from '@core/filter/providers/filter';
|
||||||
import { CoreTextUtilsProvider } from '@providers/utils/text';
|
import { CoreTextUtilsProvider } from '@providers/utils/text';
|
||||||
|
import { CoreUrlUtilsProvider } from '@providers/utils/url';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handler to support the Multimedia filter.
|
* Handler to support the Multimedia filter.
|
||||||
|
@ -26,7 +27,8 @@ export class AddonFilterMediaPluginHandler extends CoreFilterDefaultHandler {
|
||||||
name = 'AddonFilterMediaPluginHandler';
|
name = 'AddonFilterMediaPluginHandler';
|
||||||
filterName = 'mediaplugin';
|
filterName = 'mediaplugin';
|
||||||
|
|
||||||
constructor(private textUtils: CoreTextUtilsProvider) {
|
constructor(private textUtils: CoreTextUtilsProvider,
|
||||||
|
private urlUtils: CoreUrlUtilsProvider) {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,9 +76,18 @@ export class AddonFilterMediaPluginHandler extends CoreFilterDefaultHandler {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const iframe = document.createElement('iframe');
|
const iframe = document.createElement('iframe'),
|
||||||
|
params: any = {};
|
||||||
|
|
||||||
|
if (youtubeData.listId !== null) {
|
||||||
|
params.list = youtubeData.listId;
|
||||||
|
}
|
||||||
|
if (youtubeData.start !== null) {
|
||||||
|
params.start = youtubeData.start;
|
||||||
|
}
|
||||||
|
|
||||||
iframe.id = video.id;
|
iframe.id = video.id;
|
||||||
iframe.src = 'https://www.youtube.com/embed/' + youtubeData.videoId; // Don't apply other params to align with Moodle web.
|
iframe.src = this.urlUtils.addParamsToUrl('https://www.youtube.com/embed/' + youtubeData.videoId, params);
|
||||||
iframe.setAttribute('frameborder', '0');
|
iframe.setAttribute('frameborder', '0');
|
||||||
iframe.setAttribute('allowfullscreen', '1');
|
iframe.setAttribute('allowfullscreen', '1');
|
||||||
iframe.width = '100%';
|
iframe.width = '100%';
|
||||||
|
|
|
@ -44,6 +44,29 @@ export class CoreUrlUtilsProvider {
|
||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add params to a URL.
|
||||||
|
*
|
||||||
|
* @param url URL to add the params to.
|
||||||
|
* @param params Object with the params to add.
|
||||||
|
* @return URL with params.
|
||||||
|
*/
|
||||||
|
addParamsToUrl(url: string, params: {[key: string]: any}): string {
|
||||||
|
let separator = url.indexOf('?') != -1 ? '&' : '?';
|
||||||
|
|
||||||
|
for (const key in params) {
|
||||||
|
const value = params[key];
|
||||||
|
|
||||||
|
// Ignore objects.
|
||||||
|
if (typeof value != 'object') {
|
||||||
|
url += separator + key + '=' + value;
|
||||||
|
separator = '&';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given a URL and a text, return an HTML link.
|
* Given a URL and a text, return an HTML link.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue