';
- var color = '#00a4dc';
- var icon = 'notifications';
+ let color = '#00a4dc';
+ let icon = 'notifications';
if ('Error' == entry.Severity || 'Fatal' == entry.Severity || 'Warn' == entry.Severity) {
color = '#cc0000';
@@ -56,8 +66,8 @@ define(['events', 'globalize', 'dom', 'date-fns', 'dfnshelper', 'userSettings',
}
limit = limit || parseInt(elem.getAttribute('data-activitylimit') || '7');
- var minDate = new Date();
- var hasUserId = 'false' !== elem.getAttribute('data-useractivity');
+ const minDate = new Date();
+ const hasUserId = 'false' !== elem.getAttribute('data-useractivity');
if (hasUserId) {
minDate.setTime(minDate.getTime() - 24 * 60 * 60 * 1000); // one day back
@@ -74,7 +84,7 @@ define(['events', 'globalize', 'dom', 'date-fns', 'dfnshelper', 'userSettings',
elem.setAttribute('data-activitystartindex', startIndex);
elem.setAttribute('data-activitylimit', limit);
if (!startIndex) {
- var activityContainer = dom.parentWithClass(elem, 'activityContainer');
+ const activityContainer = dom.parentWithClass(elem, 'activityContainer');
if (activityContainer) {
if (result.Items.length) {
@@ -91,7 +101,7 @@ define(['events', 'globalize', 'dom', 'date-fns', 'dfnshelper', 'userSettings',
}
function onActivityLogUpdate(e, apiClient, data) {
- var options = this.options;
+ const options = this.options;
if (options && options.serverId === apiClient.serverId()) {
reloadData(this, options.element, apiClient);
@@ -99,14 +109,14 @@ define(['events', 'globalize', 'dom', 'date-fns', 'dfnshelper', 'userSettings',
}
function onListClick(e) {
- var btnEntryInfo = dom.parentWithClass(e.target, 'btnEntryInfo');
+ const btnEntryInfo = dom.parentWithClass(e.target, 'btnEntryInfo');
if (btnEntryInfo) {
- var id = btnEntryInfo.getAttribute('data-id');
- var items = this.items;
+ const id = btnEntryInfo.getAttribute('data-id');
+ const items = this.items;
if (items) {
- var item = items.filter(function (i) {
+ const item = items.filter(function (i) {
return i.Id.toString() === id;
})[0];
@@ -118,35 +128,35 @@ define(['events', 'globalize', 'dom', 'date-fns', 'dfnshelper', 'userSettings',
}
function showItemOverview(item) {
- require(['alert'], function (alert) {
+ import('alert').then(({default: alert}) => {
alert({
text: item.Overview
});
});
}
- function ActivityLog(options) {
+class ActivityLog {
+ constructor(options) {
this.options = options;
- var element = options.element;
+ const element = options.element;
element.classList.add('activityLogListWidget');
element.addEventListener('click', onListClick.bind(this));
- var apiClient = connectionManager.getApiClient(options.serverId);
+ const apiClient = connectionManager.getApiClient(options.serverId);
reloadData(this, element, apiClient);
- var onUpdate = onActivityLogUpdate.bind(this);
+ const onUpdate = onActivityLogUpdate.bind(this);
this.updateFn = onUpdate;
events.on(serverNotifications, 'ActivityLogEntry', onUpdate);
apiClient.sendMessage('ActivityLogEntryStart', '0,1500');
}
-
- ActivityLog.prototype.destroy = function () {
- var options = this.options;
+ destroy() {
+ const options = this.options;
if (options) {
options.element.classList.remove('activityLogListWidget');
connectionManager.getApiClient(options.serverId).sendMessage('ActivityLogEntryStop', '0,1500');
}
- var onUpdate = this.updateFn;
+ const onUpdate = this.updateFn;
if (onUpdate) {
events.off(serverNotifications, 'ActivityLogEntry', onUpdate);
@@ -154,7 +164,9 @@ define(['events', 'globalize', 'dom', 'date-fns', 'dfnshelper', 'userSettings',
this.items = null;
this.options = null;
- };
+ }
+}
- return ActivityLog;
-});
+export default ActivityLog;
+
+/* eslint-enable indent */
diff --git a/src/components/alert.js b/src/components/alert.js
index 97b580f8f6..5d396e3a62 100644
--- a/src/components/alert.js
+++ b/src/components/alert.js
@@ -1,14 +1,17 @@
-define(['browser', 'dialog', 'globalize'], function (browser, dialog, globalize) {
- 'use strict';
+import browser from 'browser';
+import dialog from 'dialog';
+import globalize from 'globalize';
+
+/* eslint-disable indent */
function replaceAll(originalString, strReplace, strWith) {
- var reg = new RegExp(strReplace, 'ig');
+ const reg = new RegExp(strReplace, 'ig');
return originalString.replace(reg, strWith);
}
- return function (text, title) {
+ export default function (text, title) {
- var options;
+ let options;
if (typeof text === 'string') {
options = {
title: title,
@@ -21,7 +24,7 @@ define(['browser', 'dialog', 'globalize'], function (browser, dialog, globalize)
if (browser.tv && window.alert) {
alert(replaceAll(options.text || '', '
', '\n'));
} else {
- var items = [];
+ const items = [];
items.push({
name: globalize.translate('ButtonGotIt'),
@@ -41,5 +44,6 @@ define(['browser', 'dialog', 'globalize'], function (browser, dialog, globalize)
}
return Promise.resolve();
- };
-});
+ }
+
+/* eslint-enable indent */
diff --git a/src/components/appRouter.js b/src/components/appRouter.js
index 1791aef7e2..03fcb76564 100644
--- a/src/components/appRouter.js
+++ b/src/components/appRouter.js
@@ -53,7 +53,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro
break;
case 'ServerUpdateNeeded':
require(['alert'], function (alert) {
- alert({
+ alert.default({
text: globalize.translate('ServerUpdateNeeded', 'https://github.com/jellyfin/jellyfin'),
html: globalize.translate('ServerUpdateNeeded', '
')
}).then(function () {
diff --git a/src/components/multiSelect/multiSelect.js b/src/components/multiSelect/multiSelect.js
index 7d3c241c6e..742b8e86da 100644
--- a/src/components/multiSelect/multiSelect.js
+++ b/src/components/multiSelect/multiSelect.js
@@ -346,6 +346,7 @@ import 'css!./multiSelect';
import('alert').then(({default: alert}) => {
alert({
+
text: globalize.translate('PleaseSelectTwoItems')
});
});
diff --git a/src/components/nowPlayingBar/nowPlayingBar.js b/src/components/nowPlayingBar/nowPlayingBar.js
index bc9c3c1a88..ec413cb7ae 100644
--- a/src/components/nowPlayingBar/nowPlayingBar.js
+++ b/src/components/nowPlayingBar/nowPlayingBar.js
@@ -1,31 +1,46 @@
-define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader', 'layoutManager', 'playbackManager', 'nowPlayingHelper', 'apphost', 'dom', 'connectionManager', 'itemContextMenu', 'paper-icon-button-light', 'emby-ratingbutton'], function (require, datetime, itemHelper, events, browser, imageLoader, layoutManager, playbackManager, nowPlayingHelper, appHost, dom, connectionManager, itemContextMenu) {
- 'use strict';
+import require from 'require';
+import datetime from 'datetime';
+import itemHelper from 'itemHelper';
+import events from 'events';
+import browser from 'browser';
+import imageLoader from 'imageLoader';
+import layoutManager from 'layoutManager';
+import playbackManager from 'playbackManager';
+import nowPlayingHelper from 'nowPlayingHelper';
+import appHost from 'apphost';
+import dom from 'dom';
+import connectionManager from 'connectionManager';
+import itemContextMenu from 'itemContextMenu';
+import 'paper-icon-button-light';
+import 'emby-ratingbutton';
- var currentPlayer;
- var currentPlayerSupportedCommands = [];
+/* eslint-disable indent */
- var currentTimeElement;
- var nowPlayingImageElement;
- var nowPlayingTextElement;
- var nowPlayingUserData;
- var muteButton;
- var volumeSlider;
- var volumeSliderContainer;
- var playPauseButtons;
- var positionSlider;
- var toggleRepeatButton;
- var toggleRepeatButtonIcon;
+ let currentPlayer;
+ let currentPlayerSupportedCommands = [];
- var lastUpdateTime = 0;
- var lastPlayerState = {};
- var isEnabled;
- var currentRuntimeTicks = 0;
+ let currentTimeElement;
+ let nowPlayingImageElement;
+ let nowPlayingTextElement;
+ let nowPlayingUserData;
+ let muteButton;
+ let volumeSlider;
+ let volumeSliderContainer;
+ let playPauseButtons;
+ let positionSlider;
+ let toggleRepeatButton;
+ let toggleRepeatButtonIcon;
- var isVisibilityAllowed = true;
+ let lastUpdateTime = 0;
+ let lastPlayerState = {};
+ let isEnabled;
+ let currentRuntimeTicks = 0;
+
+ let isVisibilityAllowed = true;
function getNowPlayingBarHtml() {
- var html = '';
+ let html = '';
html += '
';
@@ -198,7 +213,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
if (currentPlayer) {
- var newPercent = parseFloat(this.value);
+ const newPercent = parseFloat(this.value);
playbackManager.seekPercent(newPercent, currentPlayer);
}
@@ -207,13 +222,13 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
positionSlider.getBubbleText = function (value) {
- var state = lastPlayerState;
+ const state = lastPlayerState;
if (!state || !state.NowPlayingItem || !currentRuntimeTicks) {
return '--:--';
}
- var ticks = currentRuntimeTicks;
+ let ticks = currentRuntimeTicks;
ticks /= 100;
ticks *= value;
@@ -230,12 +245,12 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
function showRemoteControl() {
- require(['appRouter'], function (appRouter) {
+ import('appRouter').then(({default: appRouter}) => {
appRouter.showNowPlaying();
});
}
- var nowPlayingBarElement;
+ let nowPlayingBarElement;
function getNowPlayingBar() {
if (nowPlayingBarElement) {
@@ -243,10 +258,15 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
}
return new Promise(function (resolve, reject) {
-
- require(['appFooter-shared', 'itemShortcuts', 'css!./nowPlayingBar.css', 'emby-slider'], function (appfooter, itemShortcuts) {
-
- var parentContainer = appfooter.element;
+ Promise.all([
+ import('appFooter-shared'),
+ import('itemShortcuts'),
+ import('css!./nowPlayingBar.css'),
+ import('emby-slider')
+ ])
+ .then(([appfooter, itemShortcuts]) => {
+ console.log(appfooter);
+ const parentContainer = appfooter.element;
nowPlayingBarElement = parentContainer.querySelector('.nowPlayingBar');
if (nowPlayingBarElement) {
@@ -294,13 +314,13 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
lastPlayerState = state;
- var playerInfo = playbackManager.getPlayerInfo();
+ const playerInfo = playbackManager.getPlayerInfo();
- var playState = state.PlayState || {};
+ const playState = state.PlayState || {};
updatePlayPauseState(playState.IsPaused);
- var supportedCommands = playerInfo.supportedCommands;
+ const supportedCommands = playerInfo.supportedCommands;
currentPlayerSupportedCommands = supportedCommands;
if (supportedCommands.indexOf('SetRepeatMode') === -1) {
@@ -317,11 +337,11 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
positionSlider.disabled = !playState.CanSeek;
// determines if both forward and backward buffer progress will be visible
- var isProgressClear = state.MediaSource && state.MediaSource.RunTimeTicks == null;
+ const isProgressClear = state.MediaSource && state.MediaSource.RunTimeTicks == null;
positionSlider.setIsClear(isProgressClear);
}
- var nowPlayingItem = state.NowPlayingItem || {};
+ const nowPlayingItem = state.NowPlayingItem || {};
updateTimeDisplay(playState.PositionTicks, nowPlayingItem.RunTimeTicks, playbackManager.getBufferedRanges(player));
updateNowPlayingInfo(state);
@@ -348,7 +368,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
if (positionSlider && !positionSlider.dragging) {
if (runtimeTicks) {
- var pct = positionTicks / runtimeTicks;
+ let pct = positionTicks / runtimeTicks;
pct *= 100;
positionSlider.value = pct;
@@ -365,7 +385,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
if (currentTimeElement) {
- var timeText = positionTicks == null ? '--:--' : datetime.getDisplayRunningTime(positionTicks);
+ let timeText = positionTicks == null ? '--:--' : datetime.getDisplayRunningTime(positionTicks);
if (runtimeTicks) {
timeText += ' / ' + datetime.getDisplayRunningTime(runtimeTicks);
@@ -377,10 +397,10 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
function updatePlayerVolumeState(isMuted, volumeLevel) {
- var supportedCommands = currentPlayerSupportedCommands;
+ const supportedCommands = currentPlayerSupportedCommands;
- var showMuteButton = true;
- var showVolumeSlider = true;
+ let showMuteButton = true;
+ let showVolumeSlider = true;
if (supportedCommands.indexOf('ToggleMute') === -1) {
showMuteButton = false;
@@ -495,37 +515,37 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
return null;
}
- var currentImgUrl;
+ let currentImgUrl;
function updateNowPlayingInfo(state) {
- var nowPlayingItem = state.NowPlayingItem;
+ const nowPlayingItem = state.NowPlayingItem;
- var textLines = nowPlayingItem ? nowPlayingHelper.getNowPlayingNames(nowPlayingItem) : [];
+ const textLines = nowPlayingItem ? nowPlayingHelper.getNowPlayingNames(nowPlayingItem) : [];
if (textLines.length > 1) {
textLines[1].secondary = true;
}
nowPlayingTextElement.innerHTML = textLines.map(function (nowPlayingName) {
- var cssClass = nowPlayingName.secondary ? ' class="nowPlayingBarSecondaryText"' : '';
+ const cssClass = nowPlayingName.secondary ? ' class="nowPlayingBarSecondaryText"' : '';
if (nowPlayingName.item) {
- var nowPlayingText = getTextActionButton(nowPlayingName.item, nowPlayingName.text);
+ const nowPlayingText = getTextActionButton(nowPlayingName.item, nowPlayingName.text);
return `
${nowPlayingText}
`;
}
-
+ let nowPlayingText = '';
return `
${nowPlayingText}
`;
}).join('');
- var imgHeight = 70;
+ const imgHeight = 70;
- var url = nowPlayingItem ? (seriesImageUrl(nowPlayingItem, {
+ const url = nowPlayingItem ? (seriesImageUrl(nowPlayingItem, {
height: imgHeight
}) || imageUrl(nowPlayingItem, {
height: imgHeight
})) : null;
- var isRefreshing = false;
+ let isRefreshing = false;
if (url !== currentImgUrl) {
currentImgUrl = url;
@@ -541,12 +561,12 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
if (nowPlayingItem.Id) {
if (isRefreshing) {
- var apiClient = connectionManager.getApiClient(nowPlayingItem.ServerId);
+ const apiClient = connectionManager.getApiClient(nowPlayingItem.ServerId);
apiClient.getItem(apiClient.getCurrentUserId(), nowPlayingItem.Id).then(function (item) {
- var userData = item.UserData || {};
- var likes = userData.Likes == null ? '' : userData.Likes;
- var contextButton = document.querySelector('.btnToggleContextMenu');
- var options = {
+ const userData = item.UserData || {};
+ const likes = userData.Likes == null ? '' : userData.Likes;
+ const contextButton = document.querySelector('.btnToggleContextMenu');
+ const options = {
play: false,
queue: false,
positionTo: contextButton
@@ -570,7 +590,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
function onPlaybackStart(e, state) {
console.debug('nowplaying event: ' + e.type);
- var player = this;
+ const player = this;
onStateChanged.call(player, e, state);
}
@@ -581,7 +601,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
return;
}
- var player = this;
+ const player = this;
updateRepeatModeDisplay(playbackManager.getRepeatMode(player));
}
@@ -604,7 +624,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
// in the event of a stop->play command
// Don't call getNowPlayingBar here because we don't want to end up creating it just to hide it
- var elem = document.getElementsByClassName('nowPlayingBar')[0];
+ const elem = document.getElementsByClassName('nowPlayingBar')[0];
if (elem) {
slideDown(elem);
@@ -614,7 +634,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
function onPlaybackStopped(e, state) {
console.debug('nowplaying event: ' + e.type);
- var player = this;
+ const player = this;
if (player.isLocalPlayer) {
if (state.NextMediaType !== 'Audio') {
@@ -633,14 +653,14 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
return;
}
- var player = this;
+ const player = this;
updatePlayPauseState(player.paused());
}
function onStateChanged(event, state) {
console.debug('nowplaying event: ' + event.type);
- var player = this;
+ const player = this;
if (!state.NowPlayingItem || layoutManager.tv) {
hideNowPlayingBar();
@@ -671,21 +691,21 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
}
// Try to avoid hammering the document with changes
- var now = new Date().getTime();
+ const now = new Date().getTime();
if ((now - lastUpdateTime) < 700) {
return;
}
lastUpdateTime = now;
- var player = this;
+ const player = this;
currentRuntimeTicks = playbackManager.duration(player);
updateTimeDisplay(playbackManager.currentTime(player), currentRuntimeTicks, playbackManager.getBufferedRanges(player));
}
function releaseCurrentPlayer() {
- var player = currentPlayer;
+ const player = currentPlayer;
if (player) {
events.off(player, 'playbackstart', onPlaybackStart);
@@ -708,14 +728,14 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
return;
}
- var player = this;
+ const player = this;
updatePlayerVolumeState(player.isMuted(), player.getVolume());
}
function refreshFromPlayer(player) {
- var state = playbackManager.getPlayerState(player);
+ const state = playbackManager.getPlayerState(player);
onStateChanged.call(player, { type: 'init' }, state);
}
@@ -771,4 +791,5 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
}
}
});
-});
+
+/* eslint-enable indent */
diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js
index 73f07a05f2..b74ca5fb3d 100644
--- a/src/components/playback/playbackmanager.js
+++ b/src/components/playback/playbackmanager.js
@@ -709,7 +709,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
function showPlaybackInfoErrorMessage(instance, errorCode, playNextTrack) {
require(['alert'], function (alert) {
- alert({
+ alert.default({
text: globalize.translate('PlaybackError' + errorCode),
title: globalize.translate('HeaderPlaybackError')
}).then(function () {
diff --git a/src/components/search/searchfields.js b/src/components/search/searchfields.js
index 7e77814772..6ff8c50c30 100644
--- a/src/components/search/searchfields.js
+++ b/src/components/search/searchfields.js
@@ -1,10 +1,20 @@
-define(['layoutManager', 'globalize', 'require', 'events', 'browser', 'alphaPicker', 'emby-input', 'flexStyles', 'material-icons', 'css!./searchfields'], function (layoutManager, globalize, require, events, browser, AlphaPicker) {
- 'use strict';
+import layoutManager from 'layoutManager';
+import globalize from 'globalize';
+import require from 'require';
+import events from 'events';
+import browser from 'browser';
+import AlphaPicker from 'alphaPicker';
+import 'emby-input';
+import 'flexStyles';
+import 'material-icons';
+import 'css!./searchfields';
+
+/* eslint-disable indent */
function onSearchTimeout() {
- var instance = this;
- var value = instance.nextSearchValue;
+ const instance = this;
+ let value = instance.nextSearchValue;
value = (value || '').trim();
events.trigger(instance, 'search', [value]);
@@ -22,14 +32,14 @@ define(['layoutManager', 'globalize', 'require', 'events', 'browser', 'alphaPick
function onAlphaValueClicked(e) {
- var value = e.detail.value;
- var searchFieldsInstance = this;
+ const value = e.detail.value;
+ const searchFieldsInstance = this;
- var txtSearch = searchFieldsInstance.options.element.querySelector('.searchfields-txtSearch');
+ const txtSearch = searchFieldsInstance.options.element.querySelector('.searchfields-txtSearch');
if (value === 'backspace') {
- var val = txtSearch.value;
+ const val = txtSearch.value;
txtSearch.value = val.length ? val.substring(0, val.length - 1) : '';
} else {
@@ -53,8 +63,8 @@ define(['layoutManager', 'globalize', 'require', 'events', 'browser', 'alphaPick
function onSearchInput(e) {
- var value = e.target.value;
- var searchFieldsInstance = this;
+ const value = e.target.value;
+ const searchFieldsInstance = this;
triggerSearch(searchFieldsInstance, value);
}
@@ -62,7 +72,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'browser', 'alphaPick
require(['text!./searchfields.template.html'], function (template) {
- var html = globalize.translateDocument(template, 'core');
+ let html = globalize.translateDocument(template, 'core');
if (browser.tizen || browser.orsay) {
html = html.replace('
';
+ let itemHtml = '
';
return itemHtml;
}).join('');
- var searchSuggestions = context.querySelector('.searchSuggestions');
+ const searchSuggestions = context.querySelector('.searchSuggestions');
searchSuggestions.querySelector('.searchSuggestionsList').innerHTML = html;
if (result.Items.length) {
@@ -49,9 +59,9 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
});
}
- var allowSearch = true;
+ let allowSearch = true;
- var queryIncludeItemTypes = query.IncludeItemTypes;
+ const queryIncludeItemTypes = query.IncludeItemTypes;
if (instance.options.collectionType === 'tvshows') {
if (query.IncludeArtists) {
@@ -127,7 +137,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
query.EnableTotalRecordCount = false;
query.ImageTypeLimit = 1;
- var methodName = 'getItems';
+ let methodName = 'getItems';
if (!query.IncludeMedia) {
if (query.IncludePeople) {
@@ -566,9 +576,9 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
section = context.querySelector(section);
- var items = result.Items || result.SearchHints;
+ const items = result.Items || result.SearchHints;
- var itemsContainer = section.querySelector('.itemsContainer');
+ const itemsContainer = section.querySelector('.itemsContainer');
cardBuilder.buildCards(items, Object.assign({
@@ -588,7 +598,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
}
function replaceAll(originalString, strReplace, strWith) {
- var reg = new RegExp(strReplace, 'ig');
+ const reg = new RegExp(strReplace, 'ig');
return originalString.replace(reg, strWith);
}
@@ -601,7 +611,7 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
template = replaceAll(template, 'itemsContainer scrollSlider', 'itemsContainer scrollSlider vertical-wrap');
}
- var html = globalize.translateDocument(template, 'core');
+ const html = globalize.translateDocument(template, 'core');
elem.innerHTML = html;
@@ -610,28 +620,29 @@ define(['layoutManager', 'globalize', 'require', 'events', 'connectionManager',
});
}
- function SearchResults(options) {
+class SearchResults {
+ constructor(options) {
this.options = options;
embed(options.element, this, options);
}
+ search(value) {
- SearchResults.prototype.search = function (value) {
-
- var apiClient = connectionManager.getApiClient(this.options.serverId);
+ const apiClient = connectionManager.getApiClient(this.options.serverId);
search(this, apiClient, this.options.element, value);
- };
+ }
+ destroy() {
- SearchResults.prototype.destroy = function () {
-
- var options = this.options;
+ const options = this.options;
if (options) {
options.element.classList.remove('searchFields');
}
this.options = null;
- };
+ }
+}
- return SearchResults;
-});
+export default SearchResults;
+
+/* eslint-enable indent */
diff --git a/src/controllers/auth/addserver.js b/src/controllers/auth/addserver.js
index 622d19082e..1129283246 100644
--- a/src/controllers/auth/addserver.js
+++ b/src/controllers/auth/addserver.js
@@ -1,14 +1,20 @@
-define(['appSettings', 'loading', 'browser', 'globalize', 'emby-button'], function(appSettings, loading, browser, globalize) {
- 'use strict';
+import appSettings from 'appSettings';
+import loading from 'loading';
+import browser from 'browser';
+import globalize from 'globalize';
+import 'emby-button';
+
+/* eslint-disable indent */
function handleConnectionResult(page, result) {
loading.hide();
switch (result.State) {
- case 'SignedIn':
- var apiClient = result.ApiClient;
+ case 'SignedIn': {
+ const apiClient = result.ApiClient;
Dashboard.onServerChanged(apiClient.getCurrentUserId(), apiClient.accessToken(), apiClient);
Dashboard.navigate('home.html');
break;
+ }
case 'ServerSignIn':
Dashboard.navigate('login.html?serverid=' + result.Servers[0].Id, false, 'none');
break;
@@ -30,7 +36,7 @@ define(['appSettings', 'loading', 'browser', 'globalize', 'emby-button'], functi
function submitServer(page) {
loading.show();
- var host = page.querySelector('#txtServerHost').value;
+ const host = page.querySelector('#txtServerHost').value;
ConnectionManager.connectToAddress(host, {
enableAutoLogin: appSettings.enableAutoLogin()
}).then(function(result) {
@@ -42,11 +48,11 @@ define(['appSettings', 'loading', 'browser', 'globalize', 'emby-button'], functi
});
}
- return function(view, params) {
+ export default function(view, params) {
view.querySelector('.addServerForm').addEventListener('submit', onServerSubmit);
view.querySelector('.btnCancel').addEventListener('click', goBack);
- require(['autoFocuser'], function (autoFocuser) {
+ import('autoFocuser').then(({default: autoFocuser}) => {
autoFocuser.autoFocus(view);
});
@@ -57,9 +63,10 @@ define(['appSettings', 'loading', 'browser', 'globalize', 'emby-button'], functi
}
function goBack() {
- require(['appRouter'], function(appRouter) {
+ import('appRouter').then(({default: appRouter}) => {
appRouter.back();
});
}
- };
-});
+ }
+
+/* eslint-enable indent */
diff --git a/src/controllers/auth/forgotpassword.js b/src/controllers/auth/forgotpassword.js
index 3756bf814d..ace5a3ec15 100644
--- a/src/controllers/auth/forgotpassword.js
+++ b/src/controllers/auth/forgotpassword.js
@@ -1,5 +1,6 @@
-define(['globalize'], function (globalize) {
- 'use strict';
+import globalize from 'globalize';
+
+/* eslint-disable indent */
function processForgotPasswordResult(result) {
if ('ContactAdmin' == result.Action) {
@@ -17,7 +18,7 @@ define(['globalize'], function (globalize) {
}
if ('PinCode' == result.Action) {
- var msg = globalize.translate('MessageForgotPasswordFileCreated');
+ let msg = globalize.translate('MessageForgotPasswordFileCreated');
msg += '
';
msg += '
';
msg += 'Enter PIN here to finish Password Reset
';
@@ -34,7 +35,7 @@ define(['globalize'], function (globalize) {
}
}
- return function (view, params) {
+ export default function (view, params) {
function onSubmit(e) {
ApiClient.ajax({
type: 'POST',
@@ -49,5 +50,6 @@ define(['globalize'], function (globalize) {
}
view.querySelector('form').addEventListener('submit', onSubmit);
- };
-});
+ }
+
+/* eslint-enable indent */
diff --git a/src/controllers/auth/forgotpasswordpin.js b/src/controllers/auth/forgotpasswordpin.js
index 2a51890d2f..a88e131eea 100644
--- a/src/controllers/auth/forgotpasswordpin.js
+++ b/src/controllers/auth/forgotpasswordpin.js
@@ -1,9 +1,10 @@
-define(['globalize'], function (globalize) {
- 'use strict';
+import globalize from 'globalize';
+
+/* eslint-disable indent */
function processForgotPasswordResult(result) {
if (result.Success) {
- var msg = globalize.translate('MessagePasswordResetForUsers');
+ let msg = globalize.translate('MessagePasswordResetForUsers');
msg += '
';
msg += '
';
msg += result.UsersReset.join('
');
@@ -22,7 +23,7 @@ define(['globalize'], function (globalize) {
});
}
- return function (view, params) {
+ export default function (view, params) {
function onSubmit(e) {
ApiClient.ajax({
type: 'POST',
@@ -37,5 +38,6 @@ define(['globalize'], function (globalize) {
}
view.querySelector('form').addEventListener('submit', onSubmit);
- };
-});
+ }
+
+/* eslint-enable indent */
diff --git a/src/controllers/auth/login.js b/src/controllers/auth/login.js
index c0c37e27d6..fb16413ae7 100644
--- a/src/controllers/auth/login.js
+++ b/src/controllers/auth/login.js
@@ -1,14 +1,24 @@
-define(['apphost', 'appSettings', 'dom', 'connectionManager', 'loading', 'layoutManager', 'browser', 'globalize', 'cardStyle', 'emby-checkbox'], function (appHost, appSettings, dom, connectionManager, loading, layoutManager, browser, globalize) {
- 'use strict';
+import appHost from 'apphost';
+import appSettings from 'appSettings';
+import dom from 'dom';
+import connectionManager from 'connectionManager';
+import loading from 'loading';
+import layoutManager from 'layoutManager';
+import browser from 'browser';
+import globalize from 'globalize';
+import 'cardStyle';
+import 'emby-checkbox';
- var enableFocusTransform = !browser.slow && !browser.edge;
+/* eslint-disable indent */
+
+ const enableFocusTransform = !browser.slow && !browser.edge;
function authenticateUserByName(page, apiClient, username, password) {
loading.show();
apiClient.authenticateUserByName(username, password).then(function (result) {
- var user = result.User;
- var serverId = getParameterByName('serverid');
- var newUrl;
+ const user = result.User;
+ const serverId = getParameterByName('serverid');
+ let newUrl;
if (user.Policy.IsAdministrator && !serverId) {
newUrl = 'dashboard.html';
@@ -26,7 +36,7 @@ define(['apphost', 'appSettings', 'dom', 'connectionManager', 'loading', 'layout
const UnauthorizedOrForbidden = [401, 403];
if (UnauthorizedOrForbidden.includes(response.status)) {
- require(['toast'], function (toast) {
+ import('toast').then(({default: toast}) => {
const messageKey = response.status === 401 ? 'MessageInvalidUser' : 'MessageUnauthorizedUser';
toast(globalize.translate(messageKey));
});
@@ -58,23 +68,23 @@ define(['apphost', 'appSettings', 'dom', 'connectionManager', 'loading', 'layout
}
}
- var metroColors = ['#6FBD45', '#4BB3DD', '#4164A5', '#E12026', '#800080', '#E1B222', '#008040', '#0094FF', '#FF00C7', '#FF870F', '#7F0037'];
+ const metroColors = ['#6FBD45', '#4BB3DD', '#4164A5', '#E12026', '#800080', '#E1B222', '#008040', '#0094FF', '#FF00C7', '#FF870F', '#7F0037'];
function getRandomMetroColor() {
- var index = Math.floor(Math.random() * (metroColors.length - 1));
+ const index = Math.floor(Math.random() * (metroColors.length - 1));
return metroColors[index];
}
function getMetroColor(str) {
if (str) {
- var character = String(str.substr(0, 1).charCodeAt());
- var sum = 0;
+ const character = String(str.substr(0, 1).charCodeAt());
+ let sum = 0;
- for (var i = 0; i < character.length; i++) {
+ for (let i = 0; i < character.length; i++) {
sum += parseInt(character.charAt(i));
}
- var index = String(sum).substr(-1);
+ const index = String(sum).substr(-1);
return metroColors[index];
}
@@ -82,13 +92,13 @@ define(['apphost', 'appSettings', 'dom', 'connectionManager', 'loading', 'layout
}
function loadUserList(context, apiClient, users) {
- var html = '';
+ let html = '';
- for (var i = 0; i < users.length; i++) {
- var user = users[i];
+ for (let i = 0; i < users.length; i++) {
+ const user = users[i];
// TODO move card creation code to Card component
- var cssClass = 'card squareCard scalableCard squareCard-scalable';
+ let cssClass = 'card squareCard scalableCard squareCard-scalable';
if (layoutManager.tv) {
cssClass += ' show-focus';
@@ -98,13 +108,13 @@ define(['apphost', 'appSettings', 'dom', 'connectionManager', 'loading', 'layout
}
}
- var cardBoxCssClass = 'cardBox cardBox-bottompadded';
+ const cardBoxCssClass = 'cardBox cardBox-bottompadded';
html += '