';
- var numLines = 2;
+ let numLines = 2;
if (currentItemType === 'MusicAlbum') {
numLines++;
}
- var lines = [result.Name];
+ const lines = [result.Name];
if (result.AlbumArtist) {
lines.push(result.AlbumArtist.Name);
@@ -235,7 +254,7 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
lines.push(result.ProductionYear);
}
- for (var i = 0; i < numLines; i++) {
+ for (let i = 0; i < numLines; i++) {
if (i === 0) {
html += '
';
@@ -252,7 +271,7 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
}
function getSearchImageDisplayUrl(url, provider) {
- var apiClient = getApiClient();
+ const apiClient = getApiClient();
return apiClient.getUrl('Items/RemoteSearch/Image', { imageUrl: url, ProviderName: provider });
}
@@ -261,26 +280,26 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
loading.show();
- var options = {
+ const options = {
ReplaceAllImages: page.querySelector('#chkIdentifyReplaceImages').checked
};
- var apiClient = getApiClient();
+ const apiClient = getApiClient();
apiClient.ajax({
type: 'POST',
- url: apiClient.getUrl('Items/RemoteSearch/Apply/' + currentItem.Id, options),
+ url: apiClient.getUrl(`Items/RemoteSearch/Apply/${currentItem.Id}`, options),
data: JSON.stringify(currentSearchResult),
contentType: 'application/json'
- }).then(function () {
+ }).then(() => {
hasChanges = true;
loading.hide();
dialogHelper.close(page);
- }, function () {
+ }, () => {
loading.hide();
@@ -290,28 +309,28 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
function showIdentificationForm(page, item) {
- var apiClient = getApiClient();
+ const apiClient = getApiClient();
- apiClient.getJSON(apiClient.getUrl('Items/' + item.Id + '/ExternalIdInfos')).then(function (idList) {
+ apiClient.getJSON(apiClient.getUrl(`Items/${item.Id}/ExternalIdInfos`)).then(idList => {
- var html = '';
+ let html = '';
- for (var i = 0, length = idList.length; i < length; i++) {
+ for (let i = 0, length = idList.length; i < length; i++) {
- var idInfo = idList[i];
+ const idInfo = idList[i];
- var id = 'txtLookup' + idInfo.Key;
+ const id = `txtLookup${idInfo.Key}`;
html += '
';
- var fullName = idInfo.Name;
+ let fullName = idInfo.Name;
if (idInfo.Type) {
- fullName = idInfo.Name + ' ' + globalize.translate(idInfo.Type);
+ fullName = `${idInfo.Name} ${globalize.translate(idInfo.Type)}`;
}
- var idLabel = globalize.translate('LabelDynamicExternalId', fullName);
+ const idLabel = globalize.translate('LabelDynamicExternalId', fullName);
- html += '';
+ html += ``;
html += '
';
}
@@ -338,16 +357,17 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
loading.show();
- require(['text!./itemidentifier.template.html'], function (template) {
+ // TODO: remove require
+ require(['text!./components/itemidentifier/itemidentifier.template.html'], template => {
- var apiClient = getApiClient();
+ const apiClient = getApiClient();
- apiClient.getItem(apiClient.getCurrentUserId(), itemId).then(function (item) {
+ apiClient.getItem(apiClient.getCurrentUserId(), itemId).then(item => {
currentItem = item;
currentItemType = currentItem.Type;
- var dialogOptions = {
+ const dialogOptions = {
size: 'small',
removeOnClose: true,
scrollY: false
@@ -357,12 +377,12 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
dialogOptions.size = 'fullscreen';
}
- var dlg = dialogHelper.createDialog(dialogOptions);
+ const dlg = dialogHelper.createDialog(dialogOptions);
dlg.classList.add('formDialog');
dlg.classList.add('recordingDialog');
- var html = '';
+ let html = '';
html += globalize.translateDocument(template, 'core');
dlg.innerHTML = html;
@@ -384,21 +404,21 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
dialogHelper.open(dlg);
- dlg.querySelector('.popupIdentifyForm').addEventListener('submit', function (e) {
+ dlg.querySelector('.popupIdentifyForm').addEventListener('submit', e => {
e.preventDefault();
searchForIdentificationResults(dlg);
return false;
});
- dlg.querySelector('.identifyOptionsForm').addEventListener('submit', function (e) {
+ dlg.querySelector('.identifyOptionsForm').addEventListener('submit', e => {
e.preventDefault();
submitIdentficationResult(dlg);
return false;
});
- dlg.querySelector('.btnCancel').addEventListener('click', function (e) {
+ dlg.querySelector('.btnCancel').addEventListener('click', () => {
dialogHelper.close(dlg);
});
@@ -426,9 +446,10 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
currentItem = null;
currentItemType = itemType;
- require(['text!./itemidentifier.template.html'], function (template) {
+ // TODO: remove require
+ require(['text!./components/itemidentifier/itemidentifier.template.html'], template => {
- var dialogOptions = {
+ const dialogOptions = {
size: 'small',
removeOnClose: true,
scrollY: false
@@ -438,12 +459,12 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
dialogOptions.size = 'fullscreen';
}
- var dlg = dialogHelper.createDialog(dialogOptions);
+ const dlg = dialogHelper.createDialog(dialogOptions);
dlg.classList.add('formDialog');
dlg.classList.add('recordingDialog');
- var html = '';
+ let html = '';
html += globalize.translateDocument(template, 'core');
dlg.innerHTML = html;
@@ -454,22 +475,22 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
dialogHelper.open(dlg);
- dlg.querySelector('.btnCancel').addEventListener('click', function (e) {
+ dlg.querySelector('.btnCancel').addEventListener('click', () => {
dialogHelper.close(dlg);
});
- dlg.querySelector('.popupIdentifyForm').addEventListener('submit', function (e) {
+ dlg.querySelector('.popupIdentifyForm').addEventListener('submit', e => {
e.preventDefault();
searchForIdentificationResults(dlg);
return false;
});
- dlg.addEventListener('close', function () {
+ dlg.addEventListener('close', () => {
loading.hide();
- var foundItem = hasChanges ? currentSearchResult : null;
+ const foundItem = hasChanges ? currentSearchResult : null;
resolveFunc(foundItem);
});
@@ -498,29 +519,33 @@ define(['dialogHelper', 'loading', 'connectionManager', 'require', 'globalize',
dlg.querySelector('.formDialogHeaderTitle').innerHTML = globalize.translate('Search');
}
- return {
- show: function (itemId, serverId) {
+ export function show(itemId, serverId) {
- return new Promise(function (resolve, reject) {
+ return new Promise((resolve, reject) => {
- currentResolve = resolve;
- currentReject = reject;
- currentServerId = serverId;
- hasChanges = false;
+ currentResolve = resolve;
+ currentReject = reject;
+ currentServerId = serverId;
+ hasChanges = false;
- showEditor(itemId);
- });
- },
+ showEditor(itemId);
+ });
+ }
- showFindNew: function (itemName, itemYear, itemType, serverId) {
+ export function showFindNew(itemName, itemYear, itemType, serverId) {
- return new Promise(function (resolve, reject) {
+ return new Promise((resolve) => {
- currentServerId = serverId;
+ currentServerId = serverId;
+
+ hasChanges = false;
+ showEditorFindNew(itemName, itemYear, itemType, resolve);
+ });
+ }
+
+/* eslint-enable indent */
+export default {
+ show: show,
+ showFindNew: showFindNew
+};
- hasChanges = false;
- showEditorFindNew(itemName, itemYear, itemType, resolve);
- });
- }
- };
-});
From a28d71256145270478b30aa68c6759c99a8d9654 Mon Sep 17 00:00:00 2001
From: grafixeyehero
Date: Tue, 9 Jun 2020 22:46:51 +0300
Subject: [PATCH 0027/1520] Migration listview to ES6 modules
---
package.json | 1 +
src/components/listview/listview.js | 173 +++++++++++++++-------------
2 files changed, 97 insertions(+), 77 deletions(-)
diff --git a/package.json b/package.json
index 2d1ddae97c..1421629ed9 100644
--- a/package.json
+++ b/package.json
@@ -99,6 +99,7 @@
"src/components/images/imageLoader.js",
"src/components/indicators/indicators.js",
"src/components/lazyLoader/lazyLoaderIntersectionObserver.js",
+ "src/components/listview/listview.js",
"src/components/playback/brightnessosd.js",
"src/components/playback/mediasession.js",
"src/components/playback/nowplayinghelper.js",
diff --git a/src/components/listview/listview.js b/src/components/listview/listview.js
index 7bafc925b2..44f1fe3289 100644
--- a/src/components/listview/listview.js
+++ b/src/components/listview/listview.js
@@ -1,5 +1,20 @@
-define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutManager', 'globalize', 'datetime', 'apphost', 'css!./listview', 'emby-ratingbutton', 'emby-playstatebutton'], function (itemHelper, mediaInfo, indicators, connectionManager, layoutManager, globalize, datetime, appHost) {
- 'use strict';
+/* eslint-disable indent */
+
+/**
+ * Module for display list view.
+ * @module components/listview/listview
+ */
+
+import itemHelper from 'itemHelper';
+import mediaInfo from 'mediaInfo';
+import indicators from 'indicators';
+import connectionManager from 'connectionManager';
+import layoutManager from 'layoutManager';
+import globalize from 'globalize';
+import datetime from 'datetime';
+import 'css!./listview';
+import 'emby-ratingbutton';
+import 'emby-playstatebutton';
function getIndex(item, options) {
@@ -8,9 +23,9 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
return item.ParentIndexNumber == null ? '' : globalize.translate('ValueDiscNumber', item.ParentIndexNumber);
}
- var sortBy = (options.sortBy || '').toLowerCase();
- var code;
- var name;
+ const sortBy = (options.sortBy || '').toLowerCase();
+ let code;
+ let name;
if (sortBy.indexOf('sortname') === 0) {
@@ -69,10 +84,10 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
function getImageUrl(item, width) {
- var apiClient = connectionManager.getApiClient(item.ServerId);
+ const apiClient = connectionManager.getApiClient(item.ServerId);
let itemId;
- var options = {
+ const options = {
maxWidth: width * 2,
type: 'Primary'
};
@@ -102,8 +117,8 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
function getChannelImageUrl(item, width) {
- var apiClient = connectionManager.getApiClient(item.ServerId);
- var options = {
+ const apiClient = connectionManager.getApiClient(item.ServerId);
+ const options = {
maxWidth: width * 2,
type: 'Primary'
};
@@ -121,13 +136,13 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
function getTextLinesHtml(textlines, isLargeStyle) {
- var html = '';
+ let html = '';
- var largeTitleTagName = layoutManager.tv ? 'h2' : 'div';
+ const largeTitleTagName = layoutManager.tv ? 'h2' : 'div';
- for (var i = 0, length = textlines.length; i < length; i++) {
+ for (let i = 0, length = textlines.length; i < length; i++) {
- var text = textlines[i];
+ const text = textlines[i];
if (!text) {
continue;
@@ -135,7 +150,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
if (i === 0) {
if (isLargeStyle) {
- html += '<' + largeTitleTagName + ' class="listItemBodyText">';
+ html += `<${largeTitleTagName} class="listItemBodyText">`;
} else {
html += '';
}
@@ -144,7 +159,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
}
html += (textlines[i] || ' ');
if (i === 0 && isLargeStyle) {
- html += '' + largeTitleTagName + '>';
+ html += `${largeTitleTagName}>`;
} else {
html += '
';
}
@@ -155,13 +170,13 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
function getRightButtonsHtml(options) {
- var html = '';
+ let html = '';
- for (var i = 0, length = options.rightButtons.length; i < length; i++) {
+ for (let i = 0, length = options.rightButtons.length; i < length; i++) {
- var button = options.rightButtons[i];
+ const button = options.rightButtons[i];
- html += '';
+ html += ``;
}
return html;
@@ -171,34 +186,34 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
return item.Id;
}
- function getListViewHtml(options) {
+ export function getListViewHtml(options) {
- var items = options.items;
+ const items = options.items;
- var groupTitle = '';
- var action = options.action || 'link';
+ let groupTitle = '';
+ const action = options.action || 'link';
- var isLargeStyle = options.imageSize === 'large';
- var enableOverview = options.enableOverview;
+ const isLargeStyle = options.imageSize === 'large';
+ const enableOverview = options.enableOverview;
- var clickEntireItem = layoutManager.tv ? true : false;
- var outerTagName = clickEntireItem ? 'button' : 'div';
- var enableSideMediaInfo = options.enableSideMediaInfo != null ? options.enableSideMediaInfo : true;
+ const clickEntireItem = layoutManager.tv ? true : false;
+ const outerTagName = clickEntireItem ? 'button' : 'div';
+ const enableSideMediaInfo = options.enableSideMediaInfo != null ? options.enableSideMediaInfo : true;
- var outerHtml = '';
+ let outerHtml = '';
- var enableContentWrapper = options.enableOverview && !layoutManager.tv;
- var containerAlbumArtistIds = (options.containerAlbumArtists || []).map(getId);
+ const enableContentWrapper = options.enableOverview && !layoutManager.tv;
+ const containerAlbumArtistIds = (options.containerAlbumArtists || []).map(getId);
- for (var i = 0, length = items.length; i < length; i++) {
+ for (let i = 0, length = items.length; i < length; i++) {
- var item = items[i];
+ const item = items[i];
- var html = '';
+ let html = '';
if (options.showIndex) {
- var itemGroupTitle = getIndex(item, options);
+ const itemGroupTitle = getIndex(item, options);
if (itemGroupTitle !== groupTitle) {
@@ -220,7 +235,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
}
}
- var cssClass = 'listItem';
+ let cssClass = 'listItem';
if (options.border || (options.highlight !== false && !layoutManager.tv)) {
cssClass += ' listItem-border';
@@ -234,28 +249,28 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
cssClass += ' listItem-focusscale';
}
- var downloadWidth = 80;
+ let downloadWidth = 80;
if (isLargeStyle) {
cssClass += ' listItem-largeImage';
downloadWidth = 500;
}
- var playlistItemId = item.PlaylistItemId ? (' data-playlistitemid="' + item.PlaylistItemId + '"') : '';
+ const playlistItemId = item.PlaylistItemId ? (` data-playlistitemid="${item.PlaylistItemId}"`) : '';
- var positionTicksData = item.UserData && item.UserData.PlaybackPositionTicks ? (' data-positionticks="' + item.UserData.PlaybackPositionTicks + '"') : '';
- var collectionIdData = options.collectionId ? (' data-collectionid="' + options.collectionId + '"') : '';
- var playlistIdData = options.playlistId ? (' data-playlistid="' + options.playlistId + '"') : '';
- var mediaTypeData = item.MediaType ? (' data-mediatype="' + item.MediaType + '"') : '';
- var collectionTypeData = item.CollectionType ? (' data-collectiontype="' + item.CollectionType + '"') : '';
- var channelIdData = item.ChannelId ? (' data-channelid="' + item.ChannelId + '"') : '';
+ const positionTicksData = item.UserData && item.UserData.PlaybackPositionTicks ? (` data-positionticks="${item.UserData.PlaybackPositionTicks}"`) : '';
+ const collectionIdData = options.collectionId ? (` data-collectionid="${options.collectionId}"`) : '';
+ const playlistIdData = options.playlistId ? (` data-playlistid="${options.playlistId}"`) : '';
+ const mediaTypeData = item.MediaType ? (` data-mediatype="${item.MediaType}"`) : '';
+ const collectionTypeData = item.CollectionType ? (` data-collectiontype="${item.CollectionType}"`) : '';
+ const channelIdData = item.ChannelId ? (` data-channelid="${item.ChannelId}"`) : '';
if (enableContentWrapper) {
cssClass += ' listItem-withContentWrapper';
}
- html += '<' + outerTagName + ' class="' + cssClass + '"' + playlistItemId + ' data-action="' + action + '" data-isfolder="' + item.IsFolder + '" data-id="' + item.Id + '" data-serverid="' + item.ServerId + '" data-type="' + item.Type + '"' + mediaTypeData + collectionTypeData + channelIdData + positionTicksData + collectionIdData + playlistIdData + '>';
+ html += `<${outerTagName} class="${cssClass}"${playlistItemId} data-action="${action}" data-isfolder="${item.IsFolder}" data-id="${item.Id}" data-serverid="${item.ServerId}" data-type="${item.Type}"${mediaTypeData}${collectionTypeData}${channelIdData}${positionTicksData}${collectionIdData}${playlistIdData}>`;
if (enableContentWrapper) {
@@ -278,37 +293,37 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
imageClass += ' listItemImage-large-tv';
}
- var playOnImageClick = options.imagePlayButton && !layoutManager.tv;
+ const playOnImageClick = options.imagePlayButton && !layoutManager.tv;
if (!clickEntireItem) {
imageClass += ' itemAction';
}
- var imageAction = playOnImageClick ? 'resume' : action;
+ const imageAction = playOnImageClick ? 'resume' : action;
let blurhashAttrib = '';
if (blurhash && blurhash.length > 0) {
- blurhashAttrib = 'data-blurhash="' + blurhash + '"';
+ blurhashAttrib = `data-blurhash="${blurhash}"`;
}
if (imgUrl) {
- html += '';
+ html += `
`;
} else {
- html += '
';
+ html += `
`;
}
- var indicatorsHtml = '';
+ let indicatorsHtml = '';
indicatorsHtml += indicators.getPlayedIndicatorHtml(item);
if (indicatorsHtml) {
- html += '
' + indicatorsHtml + '
';
+ html += `
${indicatorsHtml}
`;
}
if (playOnImageClick) {
html += '
';
}
- var progressHtml = indicators.getProgressBarHtml(item, {
+ const progressHtml = indicators.getProgressBarHtml(item, {
containerClass: 'listItemProgressBar'
});
@@ -325,7 +340,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
html += '
';
}
- var textlines = [];
+ const textlines = [];
if (options.showProgramDateTime) {
textlines.push(datetime.toLocaleString(datetime.parseISO8601Date(item.StartDate), {
@@ -348,7 +363,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
}
}
- var parentTitle = null;
+ let parentTitle = null;
if (options.showParentTitle) {
if (item.Type === 'Episode') {
@@ -358,12 +373,12 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
}
}
- var displayName = itemHelper.getDisplayName(item, {
+ let displayName = itemHelper.getDisplayName(item, {
includeParentInfo: options.includeParentInfoInTitle
});
if (options.showIndexNumber && item.IndexNumber != null) {
- displayName = item.IndexNumber + '. ' + displayName;
+ displayName = `${item.IndexNumber}. ${displayName}`;
}
if (options.showParentTitle && options.parentTitleWithTitle) {
@@ -394,14 +409,14 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
}
} else {
- var showArtist = options.artist === true;
- var artistItems = item.ArtistItems;
+ let showArtist = options.artist === true;
+ const artistItems = item.ArtistItems;
if (!showArtist && options.artist !== false) {
if (!artistItems || !artistItems.length) {
showArtist = true;
- } else if (artistItems.length > 1 || containerAlbumArtistIds.indexOf(artistItems[0].Id) === -1) {
+ } else if (artistItems.length > 1 || !containerAlbumArtistIds.includes(artistItems[0].Id)) {
showArtist = true;
}
}
@@ -409,7 +424,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
if (showArtist) {
if (artistItems && item.Type !== 'MusicAlbum') {
- textlines.push(artistItems.map(function (a) {
+ textlines.push(artistItems.map(a => {
return a.Name;
}).join(', '));
}
@@ -432,7 +447,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
cssClass += ' listItemBody-noleftpadding';
}
- html += '
';
+ html += `
`;
const moreIcon = 'more_vert';
@@ -441,14 +456,16 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
if (options.mediaInfo !== false) {
if (!enableSideMediaInfo) {
- var mediaInfoClass = 'secondary listItemMediaInfo listItemBodyText';
+ const mediaInfoClass = 'secondary listItemMediaInfo listItemBodyText';
- html += '
';
}
}
@@ -462,7 +479,8 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
if (options.mediaInfo !== false) {
if (enableSideMediaInfo) {
- html += '
';
}
}
@@ -487,7 +506,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
}
if (options.moreButton !== false) {
- html += '
';
+ html += `
`;
}
if (options.infoButton) {
@@ -500,15 +519,15 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
if (options.enableUserDataButtons !== false) {
- var userData = item.UserData || {};
- var likes = userData.Likes == null ? '' : userData.Likes;
+ const userData = item.UserData || {};
+ const likes = userData.Likes == null ? '' : userData.Likes;
if (itemHelper.canMarkPlayed(item)) {
- html += '
';
+ html += `
`;
}
if (itemHelper.canRate(item)) {
- html += '
';
+ html += `
`;
}
}
}
@@ -524,7 +543,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
}
}
- html += '' + outerTagName + '>';
+ html += `${outerTagName}>`;
outerHtml += html;
}
@@ -532,7 +551,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan
return outerHtml;
}
- return {
- getListViewHtml: getListViewHtml
- };
-});
+/* eslint-enable indent */
+export default {
+ getListViewHtml: getListViewHtml
+};
From 9e123ad60b48294d47b46e88c2dda30018ddfb2f Mon Sep 17 00:00:00 2001
From: grafixeyehero
Date: Tue, 9 Jun 2020 22:57:27 +0300
Subject: [PATCH 0028/1520] Migration channelMapper to ES6 modules
---
package.json | 1 +
src/components/channelMapper/channelMapper.js | 74 +++++++++++--------
src/controllers/livetvstatus.js | 4 +-
3 files changed, 45 insertions(+), 34 deletions(-)
diff --git a/package.json b/package.json
index fd84432e81..dafbb3625e 100644
--- a/package.json
+++ b/package.json
@@ -96,6 +96,7 @@
"src/components/cardbuilder/cardBuilder.js",
"src/components/cardbuilder/chaptercardbuilder.js",
"src/components/cardbuilder/peoplecardbuilder.js",
+ "src/components/channelMapper/channelMapper.js",
"src/components/images/imageLoader.js",
"src/components/indicators/indicators.js",
"src/components/lazyLoader/lazyLoaderIntersectionObserver.js",
diff --git a/src/components/channelMapper/channelMapper.js b/src/components/channelMapper/channelMapper.js
index f2ad88e713..89d085c185 100644
--- a/src/components/channelMapper/channelMapper.js
+++ b/src/components/channelMapper/channelMapper.js
@@ -1,10 +1,21 @@
-define(['dom', 'dialogHelper', 'loading', 'connectionManager', 'globalize', 'actionsheet', 'emby-input', 'paper-icon-button-light', 'emby-button', 'listViewStyle', 'material-icons', 'formDialogStyle'], function (dom, dialogHelper, loading, connectionManager, globalize, actionsheet) {
- 'use strict';
+import dom from 'dom';
+import dialogHelper from 'dialogHelper';
+import loading from 'loading';
+import connectionManager from 'connectionManager';
+import globalize from 'globalize';
+import actionsheet from 'actionsheet';
+import 'emby-input';
+import 'paper-icon-button-light';
+import 'emby-button';
+import 'listViewStyle';
+import 'material-icons';
+import 'formDialogStyle';
- return function (options) {
+export default class channelMapper {
+ constructor(options) {
function mapChannel(button, channelId, providerChannelId) {
loading.show();
- var providerId = options.providerId;
+ const providerId = options.providerId;
connectionManager.getApiClient(options.serverId).ajax({
type: 'POST',
url: ApiClient.getUrl('LiveTv/ChannelMappings'),
@@ -14,8 +25,8 @@ define(['dom', 'dialogHelper', 'loading', 'connectionManager', 'globalize', 'act
providerChannelId: providerChannelId
},
dataType: 'json'
- }).then(function (mapping) {
- var listItem = dom.parentWithClass(button, 'listItem');
+ }).then(mapping => {
+ const listItem = dom.parentWithClass(button, 'listItem');
button.setAttribute('data-providerid', mapping.ProviderChannelId);
listItem.querySelector('.secondary').innerHTML = getMappingSecondaryName(mapping, currentMappingOptions.ProviderName);
loading.hide();
@@ -23,42 +34,42 @@ define(['dom', 'dialogHelper', 'loading', 'connectionManager', 'globalize', 'act
}
function onChannelsElementClick(e) {
- var btnMap = dom.parentWithClass(e.target, 'btnMap');
+ const btnMap = dom.parentWithClass(e.target, 'btnMap');
if (btnMap) {
- var channelId = btnMap.getAttribute('data-id');
- var providerChannelId = btnMap.getAttribute('data-providerid');
- var menuItems = currentMappingOptions.ProviderChannels.map(function (m) {
+ const channelId = btnMap.getAttribute('data-id');
+ const providerChannelId = btnMap.getAttribute('data-providerid');
+ const menuItems = currentMappingOptions.ProviderChannels.map(m => {
return {
name: m.Name,
id: m.Id,
selected: m.Id.toLowerCase() === providerChannelId.toLowerCase()
};
- }).sort(function (a, b) {
+ }).sort((a, b) => {
return a.name.localeCompare(b.name);
});
actionsheet.show({
positionTo: btnMap,
items: menuItems
- }).then(function (newChannelId) {
+ }).then(newChannelId => {
mapChannel(btnMap, channelId, newChannelId);
});
}
}
function getChannelMappingOptions(serverId, providerId) {
- var apiClient = connectionManager.getApiClient(serverId);
+ const apiClient = connectionManager.getApiClient(serverId);
return apiClient.getJSON(apiClient.getUrl('LiveTv/ChannelMappingOptions', {
providerId: providerId
}));
}
function getMappingSecondaryName(mapping, providerName) {
- return (mapping.ProviderChannelName || '') + ' - ' + providerName;
+ return `${mapping.ProviderChannelName || ''} - ${providerName}`;
}
function getTunerChannelHtml(channel, providerName) {
- var html = '';
+ let html = '';
html += '';
html += '
';
html += '
';
@@ -73,16 +84,16 @@ define(['dom', 'dialogHelper', 'loading', 'connectionManager', 'globalize', 'act
html += '
';
html += '
';
- html += '';
+ html += ``;
return html += '';
}
function getEditorHtml() {
- var html = '';
+ let html = '';
html += '
';
html += '
';
html += '
';
@@ -91,30 +102,29 @@ define(['dom', 'dialogHelper', 'loading', 'connectionManager', 'globalize', 'act
}
function initEditor(dlg, options) {
- getChannelMappingOptions(options.serverId, options.providerId).then(function (result) {
+ getChannelMappingOptions(options.serverId, options.providerId).then(result => {
currentMappingOptions = result;
- var channelsElement = dlg.querySelector('.channels');
- channelsElement.innerHTML = result.TunerChannels.map(function (channel) {
+ const channelsElement = dlg.querySelector('.channels');
+ channelsElement.innerHTML = result.TunerChannels.map(channel => {
return getTunerChannelHtml(channel, result.ProviderName);
}).join('');
channelsElement.addEventListener('click', onChannelsElementClick);
});
}
- var currentMappingOptions;
- var self = this;
+ let currentMappingOptions;
- self.show = function () {
- var dialogOptions = {
+ this.show = () => {
+ const dialogOptions = {
removeOnClose: true
};
dialogOptions.size = 'small';
- var dlg = dialogHelper.createDialog(dialogOptions);
+ const dlg = dialogHelper.createDialog(dialogOptions);
dlg.classList.add('formDialog');
dlg.classList.add('ui-body-a');
dlg.classList.add('background-theme-a');
- var html = '';
- var title = globalize.translate('MapChannels');
+ let html = '';
+ const title = globalize.translate('MapChannels');
html += '