diff --git a/package.json b/package.json
index 824e521f5b..579e5e85d7 100644
--- a/package.json
+++ b/package.json
@@ -179,6 +179,12 @@
"src/controllers/dashboard/networking.js",
"src/controllers/dashboard/playback.js",
"src/controllers/dashboard/plugins/repositories.js",
+ "src/controllers/dashboard/users/useredit.js",
+ "src/controllers/dashboard/users/userlibraryaccess.js",
+ "src/controllers/dashboard/users/usernew.js",
+ "src/controllers/dashboard/users/userparentalcontrol.js",
+ "src/controllers/dashboard/users/userpasswordpage.js",
+ "src/controllers/dashboard/users/userprofilespage.js",
"src/controllers/wizard/finish.js",
"src/controllers/wizard/remoteaccess.js",
"src/controllers/wizard/settings.js",
diff --git a/src/controllers/dashboard/users/useredit.js b/src/controllers/dashboard/users/useredit.js
index af187412d0..ba14cbe1b2 100644
--- a/src/controllers/dashboard/users/useredit.js
+++ b/src/controllers/dashboard/users/useredit.js
@@ -1,25 +1,27 @@
-define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading, libraryMenu, globalize) {
- 'use strict';
+import $ from 'jQuery';
+import loading from 'loading';
+import libraryMenu from 'libraryMenu';
+import globalize from 'globalize';
+
+/* eslint-disable indent */
function loadDeleteFolders(page, user, mediaFolders) {
ApiClient.getJSON(ApiClient.getUrl('Channels', {
SupportsMediaDeletion: true
})).then(function (channelsResult) {
- var i;
- var length;
- var folder;
- var isChecked;
- var checkedAttribute;
- var html = '';
+ let folder;
+ let isChecked;
+ let checkedAttribute;
+ let html = '';
- for (i = 0, length = mediaFolders.length; i < length; i++) {
+ for (let i = 0, length = mediaFolders.length; i < length; i++) {
folder = mediaFolders[i];
isChecked = user.Policy.EnableContentDeletion || -1 != user.Policy.EnableContentDeletionFromFolders.indexOf(folder.Id);
checkedAttribute = isChecked ? ' checked="checked"' : '';
html += '';
}
- for (i = 0, length = channelsResult.Items.length; i < length; i++) {
+ for (let i = 0, length = channelsResult.Items.length; i < length; i++) {
folder = channelsResult.Items[i];
isChecked = user.Policy.EnableContentDeletion || -1 != user.Policy.EnableContentDeletionFromFolders.indexOf(folder.Id);
checkedAttribute = isChecked ? ' checked="checked"' : '';
@@ -38,9 +40,9 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading,
page.querySelector('.fldSelectLoginProvider').classList.add('hide');
}
- var currentProviderId = user.Policy.AuthenticationProviderId;
+ const currentProviderId = user.Policy.AuthenticationProviderId;
page.querySelector('.selectLoginProvider').innerHTML = providers.map(function (provider) {
- var selected = provider.Id === currentProviderId || providers.length < 2 ? ' selected' : '';
+ const selected = provider.Id === currentProviderId || providers.length < 2 ? ' selected' : '';
return '';
});
}
@@ -52,15 +54,14 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading,
page.querySelector('.fldSelectPasswordResetProvider').classList.add('hide');
}
- var currentProviderId = user.Policy.PasswordResetProviderId;
+ const currentProviderId = user.Policy.PasswordResetProviderId;
page.querySelector('.selectPasswordResetProvider').innerHTML = providers.map(function (provider) {
- var selected = provider.Id === currentProviderId || providers.length < 2 ? ' selected' : '';
+ const selected = provider.Id === currentProviderId || providers.length < 2 ? ' selected' : '';
return '';
});
}
function loadUser(page, user) {
- currentUser = user;
ApiClient.getJSON(ApiClient.getUrl('Auth/Providers')).then(function (providers) {
loadAuthProviders(page, user, providers);
});
@@ -112,7 +113,7 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading,
Dashboard.navigate('userprofiles.html');
loading.hide();
- require(['toast'], function (toast) {
+ import('toast').then(({default: toast}) => {
toast(globalize.translate('SettingsSaved'));
});
}
@@ -155,7 +156,7 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading,
}
function onSubmit() {
- var page = $(this).parents('.page')[0];
+ const page = $(this).parents('.page')[0];
loading.show();
getUser().then(function (result) {
saveUser(result, page);
@@ -164,7 +165,7 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading,
}
function getUser() {
- var userId = getParameterByName('userId');
+ const userId = getParameterByName('userId');
return ApiClient.getUser(userId);
}
@@ -175,11 +176,10 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading,
});
}
- var currentUser;
$(document).on('pageinit', '#editUserPage', function () {
$('.editUserProfileForm').off('submit', onSubmit).on('submit', onSubmit);
this.querySelector('.sharingHelp').innerHTML = globalize.translate('OptionAllowLinkSharingHelp', 30);
- var page = this;
+ const page = this;
$('#chkEnableDeleteAllFolders', this).on('change', function () {
if (this.checked) {
$('.deleteAccess', page).hide();
@@ -197,4 +197,5 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading,
}).on('pagebeforeshow', '#editUserPage', function () {
loadData(this);
});
-});
+
+/* eslint-enable indent */
diff --git a/src/controllers/dashboard/users/userlibraryaccess.js b/src/controllers/dashboard/users/userlibraryaccess.js
index 5ea24e3da3..df42733f0c 100644
--- a/src/controllers/dashboard/users/userlibraryaccess.js
+++ b/src/controllers/dashboard/users/userlibraryaccess.js
@@ -1,40 +1,44 @@
-define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading, libraryMenu, globalize) {
- 'use strict';
+import $ from 'jQuery';
+import loading from 'loading';
+import libraryMenu from 'libraryMenu';
+import globalize from 'globalize';
+
+/* eslint-disable indent */
function triggerChange(select) {
- var evt = document.createEvent('HTMLEvents');
+ const evt = document.createEvent('HTMLEvents');
evt.initEvent('change', false, true);
select.dispatchEvent(evt);
}
function loadMediaFolders(page, user, mediaFolders) {
- var html = '';
+ let html = '';
html += '
' + globalize.translate('HeaderLibraries') + '
';
html += '
';
- for (var i = 0, length = mediaFolders.length; i < length; i++) {
- var folder = mediaFolders[i];
- var isChecked = user.Policy.EnableAllFolders || -1 != user.Policy.EnabledFolders.indexOf(folder.Id);
- var checkedAttribute = isChecked ? ' checked="checked"' : '';
+ for (let i = 0, length = mediaFolders.length; i < length; i++) {
+ const folder = mediaFolders[i];
+ const isChecked = user.Policy.EnableAllFolders || -1 != user.Policy.EnabledFolders.indexOf(folder.Id);
+ const checkedAttribute = isChecked ? ' checked="checked"' : '';
html += '';
}
html += '
';
page.querySelector('.folderAccess').innerHTML = html;
- var chkEnableAllFolders = page.querySelector('#chkEnableAllFolders');
+ const chkEnableAllFolders = page.querySelector('#chkEnableAllFolders');
chkEnableAllFolders.checked = user.Policy.EnableAllFolders;
triggerChange(chkEnableAllFolders);
}
function loadChannels(page, user, channels) {
- var html = '';
+ let html = '';
html += '
' + globalize.translate('HeaderChannels') + '
';
html += '
';
- for (var i = 0, length = channels.length; i < length; i++) {
- var folder = channels[i];
- var isChecked = user.Policy.EnableAllChannels || -1 != user.Policy.EnabledChannels.indexOf(folder.Id);
- var checkedAttribute = isChecked ? ' checked="checked"' : '';
+ for (let i = 0, length = channels.length; i < length; i++) {
+ const folder = channels[i];
+ const isChecked = user.Policy.EnableAllChannels || -1 != user.Policy.EnabledChannels.indexOf(folder.Id);
+ const checkedAttribute = isChecked ? ' checked="checked"' : '';
html += '';
}
@@ -51,13 +55,13 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading,
}
function loadDevices(page, user, devices) {
- var html = '';
+ let html = '';
html += '
' + globalize.translate('HeaderDevices') + '
';
html += '
';
- for (var i = 0, length = devices.length; i < length; i++) {
- var device = devices[i];
- var checkedAttribute = user.Policy.EnableAllDevices || -1 != user.Policy.EnabledDevices.indexOf(device.Id) ? ' checked="checked"' : '';
+ for (let i = 0, length = devices.length; i < length; i++) {
+ const device = devices[i];
+ const checkedAttribute = user.Policy.EnableAllDevices || -1 != user.Policy.EnabledDevices.indexOf(device.Id) ? ' checked="checked"' : '';
html += '';
}
@@ -84,7 +88,7 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading,
function onSaveComplete(page) {
loading.hide();
- require(['toast'], function (toast) {
+ import('toast').then(({default: toast}) => {
toast(globalize.translate('SettingsSaved'));
});
}
@@ -116,9 +120,9 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading,
}
function onSubmit() {
- var page = $(this).parents('.page');
+ const page = $(this).parents('.page');
loading.show();
- var userId = getParameterByName('userId');
+ const userId = getParameterByName('userId');
ApiClient.getUser(userId).then(function (result) {
saveUser(result, page);
});
@@ -126,7 +130,7 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading,
}
$(document).on('pageinit', '#userLibraryAccessPage', function () {
- var page = this;
+ const page = this;
$('#chkEnableAllDevices', page).on('change', function () {
if (this.checked) {
$('.deviceAccessListContainer', page).hide();
@@ -150,29 +154,30 @@ define(['jQuery', 'loading', 'libraryMenu', 'globalize'], function ($, loading,
});
$('.userLibraryAccessForm').off('submit', onSubmit).on('submit', onSubmit);
}).on('pageshow', '#userLibraryAccessPage', function () {
- var page = this;
+ const page = this;
loading.show();
- var promise1;
- var userId = getParameterByName('userId');
+ let promise1;
+ const userId = getParameterByName('userId');
if (userId) {
promise1 = ApiClient.getUser(userId);
} else {
- var deferred = $.Deferred();
+ const deferred = $.Deferred();
deferred.resolveWith(null, [{
Configuration: {}
}]);
promise1 = deferred.promise();
}
- var promise2 = Dashboard.getCurrentUser();
- var promise4 = ApiClient.getJSON(ApiClient.getUrl('Library/MediaFolders', {
+ const promise2 = Dashboard.getCurrentUser();
+ const promise4 = ApiClient.getJSON(ApiClient.getUrl('Library/MediaFolders', {
IsHidden: false
}));
- var promise5 = ApiClient.getJSON(ApiClient.getUrl('Channels'));
- var promise6 = ApiClient.getJSON(ApiClient.getUrl('Devices'));
+ const promise5 = ApiClient.getJSON(ApiClient.getUrl('Channels'));
+ const promise6 = ApiClient.getJSON(ApiClient.getUrl('Devices'));
Promise.all([promise1, promise2, promise4, promise5, promise6]).then(function (responses) {
loadUser(page, responses[0], responses[1], responses[2].Items, responses[3].Items, responses[4].Items);
});
});
-});
+
+/* eslint-enable indent */
diff --git a/src/controllers/dashboard/users/usernew.js b/src/controllers/dashboard/users/usernew.js
index ef4cd74f86..f45cbf8ca8 100644
--- a/src/controllers/dashboard/users/usernew.js
+++ b/src/controllers/dashboard/users/usernew.js
@@ -1,13 +1,17 @@
-define(['jQuery', 'loading', 'globalize', 'emby-checkbox'], function ($, loading, globalize) {
- 'use strict';
+import $ from 'jQuery';
+import loading from 'loading';
+import globalize from 'globalize';
+import 'emby-checkbox';
+
+/* eslint-disable indent */
function loadMediaFolders(page, mediaFolders) {
- var html = '';
+ let html = '';
html += '
' + globalize.translate('HeaderLibraries') + '
';
html += '
';
- for (var i = 0; i < mediaFolders.length; i++) {
- var folder = mediaFolders[i];
+ for (let i = 0; i < mediaFolders.length; i++) {
+ const folder = mediaFolders[i];
html += '';
}
@@ -17,12 +21,12 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox'], function ($, loading
}
function loadChannels(page, channels) {
- var html = '';
+ let html = '';
html += '
' + globalize.translate('HeaderChannels') + '
';
html += '
';
- for (var i = 0; i < channels.length; i++) {
- var folder = channels[i];
+ for (let i = 0; i < channels.length; i++) {
+ const folder = channels[i];
html += '';
}
@@ -42,10 +46,10 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox'], function ($, loading
$('#txtUsername', page).val('');
$('#txtPassword', page).val('');
loading.show();
- var promiseFolders = ApiClient.getJSON(ApiClient.getUrl('Library/MediaFolders', {
+ const promiseFolders = ApiClient.getJSON(ApiClient.getUrl('Library/MediaFolders', {
IsHidden: false
}));
- var promiseChannels = ApiClient.getJSON(ApiClient.getUrl('Channels'));
+ const promiseChannels = ApiClient.getJSON(ApiClient.getUrl('Channels'));
Promise.all([promiseFolders, promiseChannels]).then(function (responses) {
loadMediaFolders(page, responses[0].Items);
loadChannels(page, responses[1].Items);
@@ -54,7 +58,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox'], function ($, loading
}
function saveUser(page) {
- var user = {};
+ const user = {};
user.Name = $('#txtUsername', page).val();
user.Password = $('#txtPassword', page).val();
ApiClient.createUser(user).then(function (user) {
@@ -84,7 +88,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox'], function ($, loading
Dashboard.navigate('useredit.html?userId=' + user.Id);
});
}, function (response) {
- require(['toast'], function (toast) {
+ import('toast').then(({default: toast}) => {
toast(globalize.translate('DefaultErrorMessage'));
});
@@ -93,7 +97,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox'], function ($, loading
}
function onSubmit() {
- var page = $(this).parents('.page')[0];
+ const page = $(this).parents('.page')[0];
loading.show();
saveUser(page);
return false;
@@ -104,7 +108,7 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox'], function ($, loading
}
$(document).on('pageinit', '#newUserPage', function () {
- var page = this;
+ const page = this;
$('#chkEnableAllChannels', page).on('change', function () {
if (this.checked) {
$('.channelAccessListContainer', page).hide();
@@ -123,4 +127,5 @@ define(['jQuery', 'loading', 'globalize', 'emby-checkbox'], function ($, loading
}).on('pageshow', '#newUserPage', function () {
loadData(this);
});
-});
+
+/* eslint-enable indent */
diff --git a/src/controllers/dashboard/users/userparentalcontrol.js b/src/controllers/dashboard/users/userparentalcontrol.js
index f5d4e70afd..3fba3fc2b2 100644
--- a/src/controllers/dashboard/users/userparentalcontrol.js
+++ b/src/controllers/dashboard/users/userparentalcontrol.js
@@ -1,17 +1,22 @@
-define(['jQuery', 'datetime', 'loading', 'libraryMenu', 'globalize', 'listViewStyle', 'paper-icon-button-light'], function ($, datetime, loading, libraryMenu, globalize) {
- 'use strict';
+import $ from 'jQuery';
+import datetime from 'datetime';
+import loading from 'loading';
+import libraryMenu from 'libraryMenu';
+import globalize from 'globalize';
+import 'listViewStyle';
+import 'paper-icon-button-light';
+
+/* eslint-disable indent */
function populateRatings(allParentalRatings, page) {
- var html = '';
+ let html = '';
html += "";
- var i;
- var length;
- var rating;
- var ratings = [];
+ let rating;
+ const ratings = [];
- for (i = 0, length = allParentalRatings.length; i < length; i++) {
+ for (let i = 0, length = allParentalRatings.length; i < length; i++) {
if (rating = allParentalRatings[i], ratings.length) {
- var lastRating = ratings[ratings.length - 1];
+ const lastRating = ratings[ratings.length - 1];
if (lastRating.Value === rating.Value) {
lastRating.Name += '/' + rating.Name;
@@ -25,7 +30,7 @@ define(['jQuery', 'datetime', 'loading', 'libraryMenu', 'globalize', 'listViewSt
});
}
- for (i = 0, length = ratings.length; i < length; i++) {
+ for (let i = 0, length = ratings.length; i < length; i++) {
rating = ratings[i];
html += "';
}
@@ -34,7 +39,7 @@ define(['jQuery', 'datetime', 'loading', 'libraryMenu', 'globalize', 'listViewSt
}
function loadUnratedItems(page, user) {
- var items = [{
+ const items = [{
name: globalize.translate('OptionBlockBooks'),
value: 'Book'
}, {
@@ -56,13 +61,13 @@ define(['jQuery', 'datetime', 'loading', 'libraryMenu', 'globalize', 'listViewSt
name: globalize.translate('OptionBlockTvShows'),
value: 'Series'
}];
- var html = '';
+ let html = '';
html += '