mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge pull request #1750 from Camc314/migrate-to-ES6-60
Migration of recordingbutton and recordingcreator to ES6 modules
This commit is contained in:
commit
2e08dd7d0f
3 changed files with 242 additions and 223 deletions
|
@ -157,6 +157,8 @@
|
||||||
"src/components/playlisteditor/playlisteditor.js",
|
"src/components/playlisteditor/playlisteditor.js",
|
||||||
"src/components/playmenu.js",
|
"src/components/playmenu.js",
|
||||||
"src/components/prompt/prompt.js",
|
"src/components/prompt/prompt.js",
|
||||||
|
"src/components/recordingcreator/recordingbutton.js",
|
||||||
|
"src/components/recordingcreator/recordingcreator.js",
|
||||||
"src/components/recordingcreator/seriesrecordingeditor.js",
|
"src/components/recordingcreator/seriesrecordingeditor.js",
|
||||||
"src/components/recordingcreator/recordinghelper.js",
|
"src/components/recordingcreator/recordinghelper.js",
|
||||||
"src/components/refreshdialog/refreshdialog.js",
|
"src/components/refreshdialog/refreshdialog.js",
|
||||||
|
|
|
@ -1,37 +1,40 @@
|
||||||
define(['globalize', 'connectionManager', 'require', 'loading', 'apphost', 'dom', 'recordingHelper', 'events', 'paper-icon-button-light', 'emby-button', 'css!./recordingfields'], function (globalize, connectionManager, require, loading, appHost, dom, recordingHelper, events) {
|
import connectionManager from 'connectionManager';
|
||||||
'use strict';
|
import dom from 'dom';
|
||||||
|
import recordingHelper from 'recordingHelper';
|
||||||
|
import 'paper-icon-button-light';
|
||||||
|
import 'emby-button';
|
||||||
|
import 'css!./recordingfields';
|
||||||
|
|
||||||
recordingHelper = recordingHelper.default || recordingHelper;
|
function onRecordingButtonClick(e) {
|
||||||
|
const item = this.item;
|
||||||
|
|
||||||
function onRecordingButtonClick(e) {
|
if (item) {
|
||||||
var item = this.item;
|
const serverId = item.ServerId;
|
||||||
|
const programId = item.Id;
|
||||||
|
const timerId = item.TimerId;
|
||||||
|
const timerStatus = item.Status;
|
||||||
|
const seriesTimerId = item.SeriesTimerId;
|
||||||
|
|
||||||
if (item) {
|
const instance = this;
|
||||||
var serverId = item.ServerId;
|
|
||||||
var programId = item.Id;
|
|
||||||
var timerId = item.TimerId;
|
|
||||||
var timerStatus = item.Status;
|
|
||||||
var seriesTimerId = item.SeriesTimerId;
|
|
||||||
|
|
||||||
var instance = this;
|
recordingHelper.toggleRecording(serverId, programId, timerId, timerStatus, seriesTimerId).then(function () {
|
||||||
|
instance.refresh(serverId, programId);
|
||||||
recordingHelper.toggleRecording(serverId, programId, timerId, timerStatus, seriesTimerId).then(function () {
|
});
|
||||||
instance.refresh(serverId, programId);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function setButtonIcon(button, icon) {
|
function setButtonIcon(button, icon) {
|
||||||
var inner = button.querySelector('.material-icons');
|
const inner = button.querySelector('.material-icons');
|
||||||
inner.classList.remove('fiber_smart_record');
|
inner.classList.remove('fiber_smart_record');
|
||||||
inner.classList.remove('fiber_manual_record');
|
inner.classList.remove('fiber_manual_record');
|
||||||
inner.classList.add(icon);
|
inner.classList.add(icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
function RecordingButton(options) {
|
class RecordingButton {
|
||||||
|
constructor(options) {
|
||||||
this.options = options;
|
this.options = options;
|
||||||
|
|
||||||
var button = options.button;
|
const button = options.button;
|
||||||
|
|
||||||
setButtonIcon(button, 'fiber_manual_record');
|
setButtonIcon(button, 'fiber_manual_record');
|
||||||
|
|
||||||
|
@ -41,7 +44,7 @@ define(['globalize', 'connectionManager', 'require', 'loading', 'apphost', 'dom'
|
||||||
this.refresh(options.itemId, options.serverId);
|
this.refresh(options.itemId, options.serverId);
|
||||||
}
|
}
|
||||||
|
|
||||||
var clickFn = onRecordingButtonClick.bind(this);
|
const clickFn = onRecordingButtonClick.bind(this);
|
||||||
this.clickFn = clickFn;
|
this.clickFn = clickFn;
|
||||||
|
|
||||||
dom.addEventListener(button, 'click', clickFn, {
|
dom.addEventListener(button, 'click', clickFn, {
|
||||||
|
@ -49,39 +52,17 @@ define(['globalize', 'connectionManager', 'require', 'loading', 'apphost', 'dom'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getIndicatorIcon(item) {
|
refresh(serverId, itemId) {
|
||||||
var status;
|
const apiClient = connectionManager.getApiClient(serverId);
|
||||||
|
const self = this;
|
||||||
if (item.Type === 'SeriesTimer') {
|
|
||||||
return 'fiber_smart_record';
|
|
||||||
} else if (item.TimerId || item.SeriesTimerId) {
|
|
||||||
status = item.Status || 'Cancelled';
|
|
||||||
} else if (item.Type === 'Timer') {
|
|
||||||
status = item.Status;
|
|
||||||
} else {
|
|
||||||
return 'fiber_manual_record';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (item.SeriesTimerId) {
|
|
||||||
if (status !== 'Cancelled') {
|
|
||||||
return 'fiber_smart_record';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 'fiber_manual_record';
|
|
||||||
}
|
|
||||||
|
|
||||||
RecordingButton.prototype.refresh = function (serverId, itemId) {
|
|
||||||
var apiClient = connectionManager.getApiClient(serverId);
|
|
||||||
var self = this;
|
|
||||||
apiClient.getItem(apiClient.getCurrentUserId(), itemId).then(function (item) {
|
apiClient.getItem(apiClient.getCurrentUserId(), itemId).then(function (item) {
|
||||||
self.refreshItem(item);
|
self.refreshItem(item);
|
||||||
});
|
});
|
||||||
};
|
}
|
||||||
|
|
||||||
RecordingButton.prototype.refreshItem = function (item) {
|
refreshItem(item) {
|
||||||
var options = this.options;
|
const options = this.options;
|
||||||
var button = options.button;
|
const button = options.button;
|
||||||
this.item = item;
|
this.item = item;
|
||||||
setButtonIcon(button, getIndicatorIcon(item));
|
setButtonIcon(button, getIndicatorIcon(item));
|
||||||
|
|
||||||
|
@ -90,15 +71,15 @@ define(['globalize', 'connectionManager', 'require', 'loading', 'apphost', 'dom'
|
||||||
} else {
|
} else {
|
||||||
button.classList.remove('recordingIcon-active');
|
button.classList.remove('recordingIcon-active');
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
RecordingButton.prototype.destroy = function () {
|
destroy() {
|
||||||
var options = this.options;
|
const options = this.options;
|
||||||
|
|
||||||
if (options) {
|
if (options) {
|
||||||
var button = options.button;
|
const button = options.button;
|
||||||
|
|
||||||
var clickFn = this.clickFn;
|
const clickFn = this.clickFn;
|
||||||
|
|
||||||
if (clickFn) {
|
if (clickFn) {
|
||||||
dom.removeEventListener(button, 'click', clickFn, {
|
dom.removeEventListener(button, 'click', clickFn, {
|
||||||
|
@ -109,7 +90,29 @@ define(['globalize', 'connectionManager', 'require', 'loading', 'apphost', 'dom'
|
||||||
|
|
||||||
this.options = null;
|
this.options = null;
|
||||||
this.item = null;
|
this.item = null;
|
||||||
};
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return RecordingButton;
|
function getIndicatorIcon(item) {
|
||||||
});
|
let status;
|
||||||
|
|
||||||
|
if (item.Type === 'SeriesTimer') {
|
||||||
|
return 'fiber_smart_record';
|
||||||
|
} else if (item.TimerId || item.SeriesTimerId) {
|
||||||
|
status = item.Status || 'Cancelled';
|
||||||
|
} else if (item.Type === 'Timer') {
|
||||||
|
status = item.Status;
|
||||||
|
} else {
|
||||||
|
return 'fiber_manual_record';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (item.SeriesTimerId) {
|
||||||
|
if (status !== 'Cancelled') {
|
||||||
|
return 'fiber_smart_record';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 'fiber_manual_record';
|
||||||
|
}
|
||||||
|
|
||||||
|
export default RecordingButton;
|
||||||
|
|
|
@ -1,190 +1,204 @@
|
||||||
define(['dialogHelper', 'globalize', 'layoutManager', 'mediaInfo', 'apphost', 'connectionManager', 'require', 'loading', 'scrollHelper', 'datetime', 'imageLoader', 'recordingFields', 'events', 'emby-checkbox', 'emby-button', 'emby-collapse', 'emby-input', 'paper-icon-button-light', 'css!./../formdialog', 'css!./recordingcreator', 'material-icons'], function (dialogHelper, globalize, layoutManager, mediaInfo, appHost, connectionManager, require, loading, scrollHelper, datetime, imageLoader, recordingFields, events) {
|
import dialogHelper from 'dialogHelper';
|
||||||
'use strict';
|
import globalize from 'globalize';
|
||||||
|
import layoutManager from 'layoutManager';
|
||||||
|
import mediaInfo from 'mediaInfo';
|
||||||
|
import connectionManager from 'connectionManager';
|
||||||
|
import require from 'require';
|
||||||
|
import loading from 'loading';
|
||||||
|
import scrollHelper from 'scrollHelper';
|
||||||
|
import datetime from 'datetime';
|
||||||
|
import imageLoader from 'imageLoader';
|
||||||
|
import recordingFields from 'recordingFields';
|
||||||
|
import events from 'events';
|
||||||
|
import 'emby-checkbox';
|
||||||
|
import 'emby-button';
|
||||||
|
import 'emby-collapse';
|
||||||
|
import 'emby-input';
|
||||||
|
import 'paper-icon-button-light';
|
||||||
|
import 'css!./../formdialog';
|
||||||
|
import 'css!./recordingcreator';
|
||||||
|
import 'material-icons';
|
||||||
|
|
||||||
layoutManager = layoutManager.default || layoutManager;
|
let currentDialog;
|
||||||
scrollHelper = scrollHelper.default || scrollHelper;
|
let closeAction;
|
||||||
|
let currentRecordingFields;
|
||||||
|
|
||||||
var currentDialog;
|
function closeDialog() {
|
||||||
var closeAction;
|
dialogHelper.close(currentDialog);
|
||||||
var currentRecordingFields;
|
}
|
||||||
|
|
||||||
function closeDialog() {
|
function init(context) {
|
||||||
dialogHelper.close(currentDialog);
|
context.querySelector('.btnPlay').addEventListener('click', function () {
|
||||||
|
closeAction = 'play';
|
||||||
|
closeDialog();
|
||||||
|
});
|
||||||
|
|
||||||
|
context.querySelector('.btnCancel').addEventListener('click', function () {
|
||||||
|
closeAction = null;
|
||||||
|
closeDialog();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function getImageUrl(item, apiClient, imageHeight) {
|
||||||
|
const imageTags = item.ImageTags || {};
|
||||||
|
|
||||||
|
if (item.PrimaryImageTag) {
|
||||||
|
imageTags.Primary = item.PrimaryImageTag;
|
||||||
}
|
}
|
||||||
|
|
||||||
function init(context) {
|
if (imageTags.Primary) {
|
||||||
context.querySelector('.btnPlay').addEventListener('click', function () {
|
return apiClient.getScaledImageUrl(item.Id, {
|
||||||
closeAction = 'play';
|
type: 'Primary',
|
||||||
closeDialog();
|
maxHeight: imageHeight,
|
||||||
|
tag: item.ImageTags.Primary
|
||||||
});
|
});
|
||||||
|
} else if (imageTags.Thumb) {
|
||||||
context.querySelector('.btnCancel').addEventListener('click', function () {
|
return apiClient.getScaledImageUrl(item.Id, {
|
||||||
closeAction = null;
|
type: 'Thumb',
|
||||||
closeDialog();
|
maxHeight: imageHeight,
|
||||||
|
tag: item.ImageTags.Thumb
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function getImageUrl(item, apiClient, imageHeight) {
|
return null;
|
||||||
var imageTags = item.ImageTags || {};
|
}
|
||||||
|
|
||||||
if (item.PrimaryImageTag) {
|
function renderRecording(context, defaultTimer, program, apiClient, refreshRecordingStateOnly) {
|
||||||
imageTags.Primary = item.PrimaryImageTag;
|
if (!refreshRecordingStateOnly) {
|
||||||
|
const imgUrl = getImageUrl(program, apiClient, 200);
|
||||||
|
const imageContainer = context.querySelector('.recordingDialog-imageContainer');
|
||||||
|
|
||||||
|
if (imgUrl) {
|
||||||
|
imageContainer.innerHTML = '<img src="' + require.toUrl('.').split('?')[0] + '/empty.png" data-src="' + imgUrl + '" class="recordingDialog-img lazy" />';
|
||||||
|
imageContainer.classList.remove('hide');
|
||||||
|
|
||||||
|
imageLoader.lazyChildren(imageContainer);
|
||||||
|
} else {
|
||||||
|
imageContainer.innerHTML = '';
|
||||||
|
imageContainer.classList.add('hide');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (imageTags.Primary) {
|
context.querySelector('.recordingDialog-itemName').innerHTML = program.Name;
|
||||||
return apiClient.getScaledImageUrl(item.Id, {
|
context.querySelector('.formDialogHeaderTitle').innerHTML = program.Name;
|
||||||
type: 'Primary',
|
context.querySelector('.itemGenres').innerHTML = (program.Genres || []).join(' / ');
|
||||||
maxHeight: imageHeight,
|
context.querySelector('.itemOverview').innerHTML = program.Overview || '';
|
||||||
tag: item.ImageTags.Primary
|
|
||||||
});
|
const formDialogFooter = context.querySelector('.formDialogFooter');
|
||||||
} else if (imageTags.Thumb) {
|
const now = new Date();
|
||||||
return apiClient.getScaledImageUrl(item.Id, {
|
if (now >= datetime.parseISO8601Date(program.StartDate, true) && now < datetime.parseISO8601Date(program.EndDate, true)) {
|
||||||
type: 'Thumb',
|
formDialogFooter.classList.remove('hide');
|
||||||
maxHeight: imageHeight,
|
} else {
|
||||||
tag: item.ImageTags.Thumb
|
formDialogFooter.classList.add('hide');
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
context.querySelector('.itemMiscInfoPrimary').innerHTML = mediaInfo.getPrimaryMediaInfoHtml(program);
|
||||||
}
|
}
|
||||||
|
|
||||||
function renderRecording(context, defaultTimer, program, apiClient, refreshRecordingStateOnly) {
|
context.querySelector('.itemMiscInfoSecondary').innerHTML = mediaInfo.getSecondaryMediaInfoHtml(program, {
|
||||||
if (!refreshRecordingStateOnly) {
|
});
|
||||||
var imgUrl = getImageUrl(program, apiClient, 200);
|
|
||||||
var imageContainer = context.querySelector('.recordingDialog-imageContainer');
|
|
||||||
|
|
||||||
if (imgUrl) {
|
loading.hide();
|
||||||
imageContainer.innerHTML = '<img src="' + require.toUrl('.').split('?')[0] + '/empty.png" data-src="' + imgUrl + '" class="recordingDialog-img lazy" />';
|
}
|
||||||
imageContainer.classList.remove('hide');
|
|
||||||
|
|
||||||
imageLoader.lazyChildren(imageContainer);
|
function reload(context, programId, serverId, refreshRecordingStateOnly) {
|
||||||
} else {
|
loading.show();
|
||||||
imageContainer.innerHTML = '';
|
|
||||||
imageContainer.classList.add('hide');
|
|
||||||
}
|
|
||||||
|
|
||||||
context.querySelector('.recordingDialog-itemName').innerHTML = program.Name;
|
const apiClient = connectionManager.getApiClient(serverId);
|
||||||
context.querySelector('.formDialogHeaderTitle').innerHTML = program.Name;
|
|
||||||
context.querySelector('.itemGenres').innerHTML = (program.Genres || []).join(' / ');
|
|
||||||
context.querySelector('.itemOverview').innerHTML = program.Overview || '';
|
|
||||||
|
|
||||||
var formDialogFooter = context.querySelector('.formDialogFooter');
|
const promise1 = apiClient.getNewLiveTvTimerDefaults({ programId: programId });
|
||||||
var now = new Date();
|
const promise2 = apiClient.getLiveTvProgram(programId, apiClient.getCurrentUserId());
|
||||||
if (now >= datetime.parseISO8601Date(program.StartDate, true) && now < datetime.parseISO8601Date(program.EndDate, true)) {
|
|
||||||
formDialogFooter.classList.remove('hide');
|
|
||||||
} else {
|
|
||||||
formDialogFooter.classList.add('hide');
|
|
||||||
}
|
|
||||||
|
|
||||||
context.querySelector('.itemMiscInfoPrimary').innerHTML = mediaInfo.getPrimaryMediaInfoHtml(program);
|
Promise.all([promise1, promise2]).then(function (responses) {
|
||||||
}
|
const defaults = responses[0];
|
||||||
|
const program = responses[1];
|
||||||
|
|
||||||
context.querySelector('.itemMiscInfoSecondary').innerHTML = mediaInfo.getSecondaryMediaInfoHtml(program, {
|
renderRecording(context, defaults, program, apiClient, refreshRecordingStateOnly);
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
loading.hide();
|
function executeCloseAction(action, programId, serverId) {
|
||||||
}
|
if (action === 'play') {
|
||||||
|
import('playbackManager').then(({default: playbackManager}) => {
|
||||||
|
const apiClient = connectionManager.getApiClient(serverId);
|
||||||
|
|
||||||
function reload(context, programId, serverId, refreshRecordingStateOnly) {
|
apiClient.getLiveTvProgram(programId, apiClient.getCurrentUserId()).then(function (item) {
|
||||||
loading.show();
|
playbackManager.play({
|
||||||
|
ids: [item.ChannelId],
|
||||||
var apiClient = connectionManager.getApiClient(serverId);
|
|
||||||
|
|
||||||
var promise1 = apiClient.getNewLiveTvTimerDefaults({ programId: programId });
|
|
||||||
var promise2 = apiClient.getLiveTvProgram(programId, apiClient.getCurrentUserId());
|
|
||||||
|
|
||||||
Promise.all([promise1, promise2]).then(function (responses) {
|
|
||||||
var defaults = responses[0];
|
|
||||||
var program = responses[1];
|
|
||||||
|
|
||||||
renderRecording(context, defaults, program, apiClient, refreshRecordingStateOnly);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function executeCloseAction(action, programId, serverId) {
|
|
||||||
if (action === 'play') {
|
|
||||||
require(['playbackManager'], function (playbackManager) {
|
|
||||||
var apiClient = connectionManager.getApiClient(serverId);
|
|
||||||
|
|
||||||
apiClient.getLiveTvProgram(programId, apiClient.getCurrentUserId()).then(function (item) {
|
|
||||||
playbackManager.default.play({
|
|
||||||
ids: [item.ChannelId],
|
|
||||||
serverId: serverId
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function showEditor(itemId, serverId) {
|
|
||||||
return new Promise(function (resolve, reject) {
|
|
||||||
closeAction = null;
|
|
||||||
|
|
||||||
loading.show();
|
|
||||||
|
|
||||||
require(['text!./recordingcreator.template.html'], function (template) {
|
|
||||||
var dialogOptions = {
|
|
||||||
removeOnClose: true,
|
|
||||||
scrollY: false
|
|
||||||
};
|
|
||||||
|
|
||||||
if (layoutManager.tv) {
|
|
||||||
dialogOptions.size = 'fullscreen';
|
|
||||||
} else {
|
|
||||||
dialogOptions.size = 'small';
|
|
||||||
}
|
|
||||||
|
|
||||||
var dlg = dialogHelper.createDialog(dialogOptions);
|
|
||||||
|
|
||||||
dlg.classList.add('formDialog');
|
|
||||||
dlg.classList.add('recordingDialog');
|
|
||||||
|
|
||||||
var html = '';
|
|
||||||
|
|
||||||
html += globalize.translateHtml(template, 'core');
|
|
||||||
|
|
||||||
dlg.innerHTML = html;
|
|
||||||
|
|
||||||
currentDialog = dlg;
|
|
||||||
|
|
||||||
function onRecordingChanged() {
|
|
||||||
reload(dlg, itemId, serverId, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
dlg.addEventListener('close', function () {
|
|
||||||
events.off(currentRecordingFields, 'recordingchanged', onRecordingChanged);
|
|
||||||
executeCloseAction(closeAction, itemId, serverId);
|
|
||||||
|
|
||||||
if (currentRecordingFields && currentRecordingFields.hasChanged()) {
|
|
||||||
resolve();
|
|
||||||
} else {
|
|
||||||
reject();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
if (layoutManager.tv) {
|
|
||||||
scrollHelper.centerFocus.on(dlg.querySelector('.formDialogContent'), false);
|
|
||||||
}
|
|
||||||
|
|
||||||
init(dlg);
|
|
||||||
|
|
||||||
reload(dlg, itemId, serverId);
|
|
||||||
|
|
||||||
currentRecordingFields = new recordingFields({
|
|
||||||
parent: dlg.querySelector('.recordingFields'),
|
|
||||||
programId: itemId,
|
|
||||||
serverId: serverId
|
serverId: serverId
|
||||||
});
|
});
|
||||||
|
|
||||||
events.on(currentRecordingFields, 'recordingchanged', onRecordingChanged);
|
|
||||||
|
|
||||||
dialogHelper.open(dlg);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
function showEditor(itemId, serverId) {
|
||||||
show: showEditor
|
return new Promise(function (resolve, reject) {
|
||||||
};
|
closeAction = null;
|
||||||
});
|
|
||||||
|
loading.show();
|
||||||
|
|
||||||
|
import('text!./recordingcreator.template.html').then(({default: template}) => {
|
||||||
|
const dialogOptions = {
|
||||||
|
removeOnClose: true,
|
||||||
|
scrollY: false
|
||||||
|
};
|
||||||
|
|
||||||
|
if (layoutManager.tv) {
|
||||||
|
dialogOptions.size = 'fullscreen';
|
||||||
|
} else {
|
||||||
|
dialogOptions.size = 'small';
|
||||||
|
}
|
||||||
|
|
||||||
|
const dlg = dialogHelper.createDialog(dialogOptions);
|
||||||
|
|
||||||
|
dlg.classList.add('formDialog');
|
||||||
|
dlg.classList.add('recordingDialog');
|
||||||
|
|
||||||
|
let html = '';
|
||||||
|
|
||||||
|
html += globalize.translateHtml(template, 'core');
|
||||||
|
|
||||||
|
dlg.innerHTML = html;
|
||||||
|
|
||||||
|
currentDialog = dlg;
|
||||||
|
|
||||||
|
function onRecordingChanged() {
|
||||||
|
reload(dlg, itemId, serverId, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
dlg.addEventListener('close', function () {
|
||||||
|
events.off(currentRecordingFields, 'recordingchanged', onRecordingChanged);
|
||||||
|
executeCloseAction(closeAction, itemId, serverId);
|
||||||
|
|
||||||
|
if (currentRecordingFields && currentRecordingFields.hasChanged()) {
|
||||||
|
resolve();
|
||||||
|
} else {
|
||||||
|
reject();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (layoutManager.tv) {
|
||||||
|
scrollHelper.centerFocus.on(dlg.querySelector('.formDialogContent'), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
init(dlg);
|
||||||
|
|
||||||
|
reload(dlg, itemId, serverId);
|
||||||
|
|
||||||
|
currentRecordingFields = new recordingFields({
|
||||||
|
parent: dlg.querySelector('.recordingFields'),
|
||||||
|
programId: itemId,
|
||||||
|
serverId: serverId
|
||||||
|
});
|
||||||
|
|
||||||
|
events.on(currentRecordingFields, 'recordingchanged', onRecordingChanged);
|
||||||
|
|
||||||
|
dialogHelper.open(dlg);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {
|
||||||
|
show: showEditor
|
||||||
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue