Add eslint radix rule for parseInt

This commit is contained in:
Bill Thornton 2023-03-09 00:01:05 -05:00
parent 9e784034d3
commit 329cf77c81
42 changed files with 90 additions and 91 deletions

View file

@ -68,6 +68,7 @@ module.exports = {
'padded-blocks': ['error', 'never'], 'padded-blocks': ['error', 'never'],
'prefer-const': ['error', { 'destructuring': 'all' }], 'prefer-const': ['error', { 'destructuring': 'all' }],
'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }], 'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }],
'radix': ['error'],
'@babel/semi': ['error'], '@babel/semi': ['error'],
'space-before-blocks': ['error'], 'space-before-blocks': ['error'],
'space-infix-ops': 'error', 'space-infix-ops': 'error',

View file

@ -19,7 +19,7 @@ import template from './accessSchedule.template.html';
const pct = hours % 1; const pct = hours % 1;
if (pct) { if (pct) {
minutes = parseInt(60 * pct); minutes = parseInt(60 * pct, 10);
} }
return datetime.getDisplayTime(new Date(2000, 1, 1, hours, minutes, 0, 0)); return datetime.getDisplayTime(new Date(2000, 1, 1, hours, minutes, 0, 0));

View file

@ -64,10 +64,10 @@ import { toBoolean } from '../utils/string.ts';
function reloadData(instance, elem, apiClient, startIndex, limit) { function reloadData(instance, elem, apiClient, startIndex, limit) {
if (startIndex == null) { if (startIndex == null) {
startIndex = parseInt(elem.getAttribute('data-activitystartindex') || '0'); startIndex = parseInt(elem.getAttribute('data-activitystartindex') || '0', 10);
} }
limit = limit || parseInt(elem.getAttribute('data-activitylimit') || '7'); limit = limit || parseInt(elem.getAttribute('data-activitylimit') || '7', 10);
const minDate = new Date(); const minDate = new Date();
const hasUserId = toBoolean(elem.getAttribute('data-useractivity'), true); const hasUserId = toBoolean(elem.getAttribute('data-useractivity'), true);

View file

@ -663,7 +663,7 @@ import { appRouter } from '../appRouter';
const character = String(str.slice(charIndex, charIndex + 1).charCodeAt()); const character = String(str.slice(charIndex, charIndex + 1).charCodeAt());
let sum = 0; let sum = 0;
for (let i = 0; i < character.length; i++) { for (let i = 0; i < character.length; i++) {
sum += parseInt(character.charAt(i)); sum += parseInt(character.charAt(i), 10);
} }
const index = String(sum).slice(-1); const index = String(sum).slice(-1);

View file

@ -13,7 +13,7 @@ import ServerConnections from './ServerConnections';
const playedIndicator = card.querySelector('.playedIndicator'); const playedIndicator = card.querySelector('.playedIndicator');
const playedIndicatorHtml = playedIndicator ? playedIndicator.innerHTML : null; const playedIndicatorHtml = playedIndicator ? playedIndicator.innerHTML : null;
const options = { const options = {
Limit: parseInt(playedIndicatorHtml || '10'), Limit: parseInt(playedIndicatorHtml || '10', 10),
Fields: 'PrimaryImageAspectRatio,DateCreated', Fields: 'PrimaryImageAspectRatio,DateCreated',
ParentId: itemId, ParentId: itemId,
GroupItems: false GroupItems: false

View file

@ -1149,12 +1149,12 @@ function Guide(options) {
guideContext.querySelector('.guideDateTabs').addEventListener('tabchange', function (e) { guideContext.querySelector('.guideDateTabs').addEventListener('tabchange', function (e) {
const allTabButtons = e.target.querySelectorAll('.guide-date-tab-button'); const allTabButtons = e.target.querySelectorAll('.guide-date-tab-button');
const tabButton = allTabButtons[parseInt(e.detail.selectedTabIndex)]; const tabButton = allTabButtons[parseInt(e.detail.selectedTabIndex, 10)];
if (tabButton) { if (tabButton) {
const previousButton = e.detail.previousIndex == null ? null : allTabButtons[parseInt(e.detail.previousIndex)]; const previousButton = e.detail.previousIndex == null ? null : allTabButtons[parseInt(e.detail.previousIndex, 10)];
const date = new Date(); const date = new Date();
date.setTime(parseInt(tabButton.getAttribute('data-date'))); date.setTime(parseInt(tabButton.getAttribute('data-date'), 10));
const scrollWidth = programGrid.scrollWidth; const scrollWidth = programGrid.scrollWidth;
let scrollToTimeMs; let scrollToTimeMs;
@ -1166,7 +1166,7 @@ function Guide(options) {
if (previousButton) { if (previousButton) {
const previousDate = new Date(); const previousDate = new Date();
previousDate.setTime(parseInt(previousButton.getAttribute('data-date'))); previousDate.setTime(parseInt(previousButton.getAttribute('data-date'), 10));
scrollToTimeMs += (previousDate.getHours() * 60 * 60 * 1000); scrollToTimeMs += (previousDate.getHours() * 60 * 60 * 1000);
scrollToTimeMs += (previousDate.getMinutes() * 60 * 1000); scrollToTimeMs += (previousDate.getMinutes() * 60 * 1000);

View file

@ -278,9 +278,9 @@ import template from './imageeditor.template.html';
const apiClient = ServerConnections.getApiClient(serverId); const apiClient = ServerConnections.getApiClient(serverId);
const type = imageCard.getAttribute('data-imagetype'); const type = imageCard.getAttribute('data-imagetype');
const index = parseInt(imageCard.getAttribute('data-index')); const index = parseInt(imageCard.getAttribute('data-index'), 10);
const providerCount = parseInt(imageCard.getAttribute('data-providers')); const providerCount = parseInt(imageCard.getAttribute('data-providers'), 10);
const numImages = parseInt(imageCard.getAttribute('data-numimages')); const numImages = parseInt(imageCard.getAttribute('data-numimages'), 10);
import('../actionSheet/actionSheet').then(({default: actionSheet}) => { import('../actionSheet/actionSheet').then(({default: actionSheet}) => {
const commands = []; const commands = [];
@ -385,7 +385,7 @@ import template from './imageeditor.template.html';
addListeners(context, 'btnDeleteImage', 'click', function () { addListeners(context, 'btnDeleteImage', 'click', function () {
const type = this.getAttribute('data-imagetype'); const type = this.getAttribute('data-imagetype');
let index = this.getAttribute('data-index'); let index = this.getAttribute('data-index');
index = index === 'null' ? null : parseInt(index); index = index === 'null' ? null : parseInt(index, 10);
const apiClient = ServerConnections.getApiClient(currentItem.ServerId); const apiClient = ServerConnections.getApiClient(currentItem.ServerId);
deleteImage(context, currentItem.Id, type, index, apiClient, true); deleteImage(context, currentItem.Id, type, index, apiClient, true);
}); });

View file

@ -138,7 +138,7 @@ const attributeDelimiterHtml = layoutManager.tv ? '' : '<span class="hide">: </s
attributes.push(createAttribute(globalize.translate('MediaInfoChannels'), `${stream.Channels} ch`)); attributes.push(createAttribute(globalize.translate('MediaInfoChannels'), `${stream.Channels} ch`));
} }
if (stream.BitRate) { if (stream.BitRate) {
attributes.push(createAttribute(globalize.translate('MediaInfoBitrate'), `${parseInt(stream.BitRate / 1000)} kbps`)); attributes.push(createAttribute(globalize.translate('MediaInfoBitrate'), `${parseInt(stream.BitRate / 1000, 10)} kbps`));
} }
if (stream.SampleRate) { if (stream.SampleRate) {
attributes.push(createAttribute(globalize.translate('MediaInfoSampleRate'), `${stream.SampleRate} Hz`)); attributes.push(createAttribute(globalize.translate('MediaInfoSampleRate'), `${stream.SampleRate} Hz`));

View file

@ -52,7 +52,7 @@ import datetime from '../../scripts/datetime';
if (value) { if (value) {
if (identifyField[i].type === 'number') { if (identifyField[i].type === 'number') {
value = parseInt(value); value = parseInt(value, 10);
} }
lookupInfo[identifyField[i].getAttribute('data-lookup')] = value; lookupInfo[identifyField[i].getAttribute('data-lookup')] = value;
@ -123,7 +123,7 @@ import datetime from '../../scripts/datetime';
elem.innerHTML = html; elem.innerHTML = html;
function onSearchImageClick() { function onSearchImageClick() {
const index = parseInt(this.getAttribute('data-index')); const index = parseInt(this.getAttribute('data-index'), 10);
const currentResult = results[index]; const currentResult = results[index];

View file

@ -531,7 +531,7 @@ import template from './libraryoptionseditor.template.html';
PreferredMetadataLanguage: parent.querySelector('#selectLanguage').value, PreferredMetadataLanguage: parent.querySelector('#selectLanguage').value,
MetadataCountryCode: parent.querySelector('#selectCountry').value, MetadataCountryCode: parent.querySelector('#selectCountry').value,
SeasonZeroDisplayName: parent.querySelector('#txtSeasonZeroName').value, SeasonZeroDisplayName: parent.querySelector('#txtSeasonZeroName').value,
AutomaticRefreshIntervalDays: parseInt(parent.querySelector('#selectAutoRefreshInterval').value), AutomaticRefreshIntervalDays: parseInt(parent.querySelector('#selectAutoRefreshInterval').value, 10),
EnableEmbeddedTitles: parent.querySelector('#chkEnableEmbeddedTitles').checked, EnableEmbeddedTitles: parent.querySelector('#chkEnableEmbeddedTitles').checked,
EnableEmbeddedExtrasTitles: parent.querySelector('#chkEnableEmbeddedExtrasTitles').checked, EnableEmbeddedExtrasTitles: parent.querySelector('#chkEnableEmbeddedExtrasTitles').checked,
EnableEmbeddedEpisodeInfos: parent.querySelector('#chkEnableEmbeddedEpisodeInfos').checked, EnableEmbeddedEpisodeInfos: parent.querySelector('#chkEnableEmbeddedEpisodeInfos').checked,

View file

@ -168,7 +168,7 @@ import template from './mediaLibraryCreator.template.html';
function onRemoveClick(e) { function onRemoveClick(e) {
const button = dom.parentWithClass(e.target, 'btnRemovePath'); const button = dom.parentWithClass(e.target, 'btnRemovePath');
const index = parseInt(button.getAttribute('data-index')); const index = parseInt(button.getAttribute('data-index'), 10);
const location = pathInfos[index].Path; const location = pathInfos[index].Path;
const locationLower = location.toLowerCase(); const locationLower = location.toLowerCase();
pathInfos = pathInfos.filter(p => { pathInfos = pathInfos.filter(p => {

View file

@ -93,7 +93,7 @@ import template from './mediaLibraryEditor.template.html';
const listItem = dom.parentWithClass(e.target, 'listItem'); const listItem = dom.parentWithClass(e.target, 'listItem');
if (listItem) { if (listItem) {
const index = parseInt(listItem.getAttribute('data-index')); const index = parseInt(listItem.getAttribute('data-index'), 10);
const pathInfos = (currentOptions.library.LibraryOptions || {}).PathInfos || []; const pathInfos = (currentOptions.library.LibraryOptions || {}).PathInfos || [];
const pathInfo = index == null ? {} : pathInfos[index] || {}; const pathInfo = index == null ? {} : pathInfos[index] || {};
const originalPath = pathInfo.Path || (index == null ? null : currentOptions.library.Locations[index]); const originalPath = pathInfo.Path || (index == null ? null : currentOptions.library.Locations[index]);

View file

@ -357,14 +357,14 @@ import template from './metadataEditor.template.html';
let index; let index;
const btnDeletePerson = dom.parentWithClass(e.target, 'btnDeletePerson'); const btnDeletePerson = dom.parentWithClass(e.target, 'btnDeletePerson');
if (btnDeletePerson) { if (btnDeletePerson) {
index = parseInt(btnDeletePerson.getAttribute('data-index')); index = parseInt(btnDeletePerson.getAttribute('data-index'), 10);
currentItem.People.splice(index, 1); currentItem.People.splice(index, 1);
populatePeople(context, currentItem.People); populatePeople(context, currentItem.People);
} }
const btnEditPerson = dom.parentWithClass(e.target, 'btnEditPerson'); const btnEditPerson = dom.parentWithClass(e.target, 'btnEditPerson');
if (btnEditPerson) { if (btnEditPerson) {
index = parseInt(btnEditPerson.getAttribute('data-index')); index = parseInt(btnEditPerson.getAttribute('data-index'), 10);
editPerson(context, currentItem.People[index], index); editPerson(context, currentItem.People[index], index);
} }
}); });

View file

@ -114,8 +114,8 @@ import shell from '../../scripts/shell';
const itemId = item.Id; const itemId = item.Id;
// Convert to ms // Convert to ms
const duration = parseInt(item.RunTimeTicks ? (item.RunTimeTicks / 10000) : 0); const duration = parseInt(item.RunTimeTicks ? (item.RunTimeTicks / 10000) : 0, 10);
const currentTime = parseInt(playState.PositionTicks ? (playState.PositionTicks / 10000) : 0); const currentTime = parseInt(playState.PositionTicks ? (playState.PositionTicks / 10000) : 0, 10);
const isPaused = playState.IsPaused || false; const isPaused = playState.IsPaused || false;
const canSeek = playState.CanSeek || false; const canSeek = playState.CanSeek || false;
@ -247,7 +247,7 @@ import shell from '../../scripts/shell';
navigator.mediaSession.setActionHandler('seekto', function (object) { navigator.mediaSession.setActionHandler('seekto', function (object) {
const item = playbackManager.getPlayerState(currentPlayer).NowPlayingItem; const item = playbackManager.getPlayerState(currentPlayer).NowPlayingItem;
// Convert to ms // Convert to ms
const duration = parseInt(item.RunTimeTicks ? (item.RunTimeTicks / 10000) : 0); const duration = parseInt(item.RunTimeTicks ? (item.RunTimeTicks / 10000) : 0, 10);
const wantedTime = object.seekTime * 1000; const wantedTime = object.seekTime * 1000;
playbackManager.seekPercent(wantedTime / duration * 100, currentPlayer); playbackManager.seekPercent(wantedTime / duration * 100, currentPlayer);
}); });

View file

@ -1690,7 +1690,7 @@ class PlaybackManager {
function changeStream(player, ticks, params) { function changeStream(player, ticks, params) {
if (canPlayerSeek(player) && params == null) { if (canPlayerSeek(player) && params == null) {
player.currentTime(parseInt(ticks / 10000)); player.currentTime(parseInt(ticks / 10000, 10));
return; return;
} }
@ -1714,7 +1714,7 @@ class PlaybackManager {
const apiClient = ServerConnections.getApiClient(currentItem.ServerId); const apiClient = ServerConnections.getApiClient(currentItem.ServerId);
if (ticks) { if (ticks) {
ticks = parseInt(ticks); ticks = parseInt(ticks, 10);
} }
const maxBitrate = params.MaxStreamingBitrate || self.getMaxStreamingBitrate(player); const maxBitrate = params.MaxStreamingBitrate || self.getMaxStreamingBitrate(player);
@ -3645,7 +3645,7 @@ class PlaybackManager {
percent /= 100; percent /= 100;
ticks *= percent; ticks *= percent;
this.seek(parseInt(ticks), player); this.seek(parseInt(ticks, 10), player);
} }
seekMs(ms, player = this._currentPlayer) { seekMs(ms, player = this._currentPlayer) {
@ -4032,13 +4032,13 @@ class PlaybackManager {
this.setBrightness(cmd.Arguments.Brightness, player); this.setBrightness(cmd.Arguments.Brightness, player);
break; break;
case 'SetAudioStreamIndex': case 'SetAudioStreamIndex':
this.setAudioStreamIndex(parseInt(cmd.Arguments.Index), player); this.setAudioStreamIndex(parseInt(cmd.Arguments.Index, 10), player);
break; break;
case 'SetSubtitleStreamIndex': case 'SetSubtitleStreamIndex':
this.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index), player); this.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index, 10), player);
break; break;
case 'SetMaxStreamingBitrate': case 'SetMaxStreamingBitrate':
this.setMaxStreamingBitrate(parseInt(cmd.Arguments.Bitrate), player); this.setMaxStreamingBitrate(parseInt(cmd.Arguments.Bitrate, 10), player);
break; break;
case 'ToggleFullscreen': case 'ToggleFullscreen':
this.toggleFullscreen(player); this.toggleFullscreen(player);

View file

@ -43,7 +43,7 @@ function showQualityMenu(player, btn) {
items: menuItems, items: menuItems,
positionTo: btn positionTo: btn
}).then(function (id) { }).then(function (id) {
const bitrate = parseInt(id); const bitrate = parseInt(id, 10);
if (bitrate !== selectedBitrate) { if (bitrate !== selectedBitrate) {
playbackManager.setMaxStreamingBitrate({ playbackManager.setMaxStreamingBitrate({
enableAutomaticBitrateDetection: bitrate ? false : true, enableAutomaticBitrateDetection: bitrate ? false : true,

View file

@ -20,8 +20,6 @@ import ServerConnections from '../ServerConnections';
import toast from '../toast/toast'; import toast from '../toast/toast';
import { appRouter } from '../appRouter'; import { appRouter } from '../appRouter';
/*eslint prefer-const: "error"*/
let showMuteButton = true; let showMuteButton = true;
let showVolumeSlider = true; let showVolumeSlider = true;
@ -46,7 +44,7 @@ function showAudioMenu(context, player, button) {
items: menuItems, items: menuItems,
positionTo: button, positionTo: button,
callback: function (id) { callback: function (id) {
playbackManager.setAudioStreamIndex(parseInt(id), player); playbackManager.setAudioStreamIndex(parseInt(id, 10), player);
} }
}); });
}); });
@ -78,7 +76,7 @@ function showSubtitleMenu(context, player, button) {
items: menuItems, items: menuItems,
positionTo: button, positionTo: button,
callback: function (id) { callback: function (id) {
playbackManager.setSubtitleStreamIndex(parseInt(id), player); playbackManager.setSubtitleStreamIndex(parseInt(id, 10), player);
} }
}); });
}); });

View file

@ -150,7 +150,7 @@ import toast from './toast/toast';
StartDate: card.getAttribute('data-startdate'), StartDate: card.getAttribute('data-startdate'),
EndDate: card.getAttribute('data-enddate'), EndDate: card.getAttribute('data-enddate'),
UserData: { UserData: {
PlaybackPositionTicks: parseInt(card.getAttribute('data-positionticks') || '0') PlaybackPositionTicks: parseInt(card.getAttribute('data-positionticks') || '0', 10)
} }
}; };
} }
@ -201,7 +201,7 @@ import toast from './toast/toast';
ServerId: serverId ServerId: serverId
}); });
} else if (action === 'play' || action === 'resume') { } else if (action === 'play' || action === 'resume') {
const startPositionTicks = parseInt(card.getAttribute('data-positionticks') || '0'); const startPositionTicks = parseInt(card.getAttribute('data-positionticks') || '0', 10);
if (playbackManager.canPlay(item)) { if (playbackManager.canPlay(item)) {
playbackManager.play({ playbackManager.play({

View file

@ -100,7 +100,7 @@ import { getParameterByName } from '../../../utils/url.ts';
}).join('') + '</div>'; }).join('') + '</div>';
const elem = $('.httpHeaderIdentificationList', page).html(html).trigger('create'); const elem = $('.httpHeaderIdentificationList', page).html(html).trigger('create');
$('.btnDeleteIdentificationHeader', elem).on('click', function () { $('.btnDeleteIdentificationHeader', elem).on('click', function () {
const itemIndex = parseInt(this.getAttribute('data-index')); const itemIndex = parseInt(this.getAttribute('data-index'), 10);
currentProfile.Identification.Headers.splice(itemIndex, 1); currentProfile.Identification.Headers.splice(itemIndex, 1);
renderIdentificationHeaders(page, currentProfile.Identification.Headers); renderIdentificationHeaders(page, currentProfile.Identification.Headers);
}); });
@ -154,7 +154,7 @@ import { getParameterByName } from '../../../utils/url.ts';
}).join('') + '</div>'; }).join('') + '</div>';
const elem = $('.xmlDocumentAttributeList', page).html(html).trigger('create'); const elem = $('.xmlDocumentAttributeList', page).html(html).trigger('create');
$('.btnDeleteXmlAttribute', elem).on('click', function () { $('.btnDeleteXmlAttribute', elem).on('click', function () {
const itemIndex = parseInt(this.getAttribute('data-index')); const itemIndex = parseInt(this.getAttribute('data-index'), 10);
currentProfile.XmlRootAttributes.splice(itemIndex, 1); currentProfile.XmlRootAttributes.splice(itemIndex, 1);
renderXmlDocumentAttributes(page, currentProfile.XmlRootAttributes); renderXmlDocumentAttributes(page, currentProfile.XmlRootAttributes);
}); });
@ -198,12 +198,12 @@ import { getParameterByName } from '../../../utils/url.ts';
}).join('') + '</div>'; }).join('') + '</div>';
const elem = $('.subtitleProfileList', page).html(html).trigger('create'); const elem = $('.subtitleProfileList', page).html(html).trigger('create');
$('.btnDeleteProfile', elem).on('click', function () { $('.btnDeleteProfile', elem).on('click', function () {
const itemIndex = parseInt(this.getAttribute('data-index')); const itemIndex = parseInt(this.getAttribute('data-index'), 10);
currentProfile.SubtitleProfiles.splice(itemIndex, 1); currentProfile.SubtitleProfiles.splice(itemIndex, 1);
renderSubtitleProfiles(page, currentProfile.SubtitleProfiles); renderSubtitleProfiles(page, currentProfile.SubtitleProfiles);
}); });
$('.lnkEditSubProfile', elem).on('click', function () { $('.lnkEditSubProfile', elem).on('click', function () {
const itemIndex = parseInt(this.getAttribute('data-index')); const itemIndex = parseInt(this.getAttribute('data-index'), 10);
editSubtitleProfile(page, currentProfile.SubtitleProfiles[itemIndex]); editSubtitleProfile(page, currentProfile.SubtitleProfiles[itemIndex]);
}); });
} }
@ -292,7 +292,7 @@ import { getParameterByName } from '../../../utils/url.ts';
deleteDirectPlayProfile(page, index); deleteDirectPlayProfile(page, index);
}); });
$('.lnkEditSubProfile', elem).on('click', function () { $('.lnkEditSubProfile', elem).on('click', function () {
const index = parseInt(this.getAttribute('data-profileindex')); const index = parseInt(this.getAttribute('data-profileindex'), 10);
editDirectPlayProfile(page, currentProfile.DirectPlayProfiles[index]); editDirectPlayProfile(page, currentProfile.DirectPlayProfiles[index]);
}); });
} }
@ -353,7 +353,7 @@ import { getParameterByName } from '../../../utils/url.ts';
deleteTranscodingProfile(page, index); deleteTranscodingProfile(page, index);
}); });
$('.lnkEditSubProfile', elem).on('click', function () { $('.lnkEditSubProfile', elem).on('click', function () {
const index = parseInt(this.getAttribute('data-profileindex')); const index = parseInt(this.getAttribute('data-profileindex'), 10);
editTranscodingProfile(page, currentProfile.TranscodingProfiles[index]); editTranscodingProfile(page, currentProfile.TranscodingProfiles[index]);
}); });
} }
@ -437,7 +437,7 @@ import { getParameterByName } from '../../../utils/url.ts';
deleteContainerProfile(page, index); deleteContainerProfile(page, index);
}); });
$('.lnkEditSubProfile', elem).on('click', function () { $('.lnkEditSubProfile', elem).on('click', function () {
const index = parseInt(this.getAttribute('data-profileindex')); const index = parseInt(this.getAttribute('data-profileindex'), 10);
editContainerProfile(page, currentProfile.ContainerProfiles[index]); editContainerProfile(page, currentProfile.ContainerProfiles[index]);
}); });
} }
@ -509,7 +509,7 @@ import { getParameterByName } from '../../../utils/url.ts';
deleteCodecProfile(page, index); deleteCodecProfile(page, index);
}); });
$('.lnkEditSubProfile', elem).on('click', function () { $('.lnkEditSubProfile', elem).on('click', function () {
const index = parseInt(this.getAttribute('data-profileindex')); const index = parseInt(this.getAttribute('data-profileindex'), 10);
editCodecProfile(page, currentProfile.CodecProfiles[index]); editCodecProfile(page, currentProfile.CodecProfiles[index]);
}); });
} }
@ -589,7 +589,7 @@ import { getParameterByName } from '../../../utils/url.ts';
deleteResponseProfile(page, index); deleteResponseProfile(page, index);
}); });
$('.lnkEditSubProfile', elem).on('click', function () { $('.lnkEditSubProfile', elem).on('click', function () {
const index = parseInt(this.getAttribute('data-profileindex')); const index = parseInt(this.getAttribute('data-profileindex'), 10);
editResponseProfile(page, currentProfile.ResponseProfiles[index]); editResponseProfile(page, currentProfile.ResponseProfiles[index]);
}); });
} }

View file

@ -98,8 +98,8 @@ import alert from '../../components/alert';
config.VppTonemappingBrightness = form.querySelector('#txtVppTonemappingBrightness').value; config.VppTonemappingBrightness = form.querySelector('#txtVppTonemappingBrightness').value;
config.VppTonemappingContrast = form.querySelector('#txtVppTonemappingContrast').value; config.VppTonemappingContrast = form.querySelector('#txtVppTonemappingContrast').value;
config.EncoderPreset = form.querySelector('#selectEncoderPreset').value; config.EncoderPreset = form.querySelector('#selectEncoderPreset').value;
config.H264Crf = parseInt(form.querySelector('#txtH264Crf').value || '0'); config.H264Crf = parseInt(form.querySelector('#txtH264Crf').value || '0', 10);
config.H265Crf = parseInt(form.querySelector('#txtH265Crf').value || '0'); config.H265Crf = parseInt(form.querySelector('#txtH265Crf').value || '0', 10);
config.DeinterlaceMethod = form.querySelector('#selectDeinterlaceMethod').value; config.DeinterlaceMethod = form.querySelector('#selectDeinterlaceMethod').value;
config.DeinterlaceDoubleRate = form.querySelector('#chkDoubleRateDeinterlacing').checked; config.DeinterlaceDoubleRate = form.querySelector('#chkDoubleRateDeinterlacing').checked;
config.EnableSubtitleExtraction = form.querySelector('#chkEnableSubtitleExtraction').checked; config.EnableSubtitleExtraction = form.querySelector('#chkEnableSubtitleExtraction').checked;

View file

@ -92,7 +92,7 @@ import cardBuilder from '../../components/cardbuilder/cardBuilder';
function showCardMenu(page, elem, virtualFolders) { function showCardMenu(page, elem, virtualFolders) {
const card = dom.parentWithClass(elem, 'card'); const card = dom.parentWithClass(elem, 'card');
const index = parseInt(card.getAttribute('data-index')); const index = parseInt(card.getAttribute('data-index'), 10);
const virtualFolder = virtualFolders[index]; const virtualFolder = virtualFolders[index];
const menuItems = []; const menuItems = [];
menuItems.push({ menuItems.push({
@ -192,7 +192,7 @@ import cardBuilder from '../../components/cardbuilder/cardBuilder';
}); });
$('.editLibrary', divVirtualFolders).on('click', function () { $('.editLibrary', divVirtualFolders).on('click', function () {
const card = $(this).parents('.card')[0]; const card = $(this).parents('.card')[0];
const index = parseInt(card.getAttribute('data-index')); const index = parseInt(card.getAttribute('data-index'), 10);
const virtualFolder = virtualFolders[index]; const virtualFolder = virtualFolders[index];
if (virtualFolder.ItemId) { if (virtualFolder.ItemId) {

View file

@ -235,7 +235,7 @@ import { getParameterByName } from '../../../utils/url.ts';
const btnDeleteTrigger = dom.parentWithClass(e.target, 'btnDeleteTrigger'); const btnDeleteTrigger = dom.parentWithClass(e.target, 'btnDeleteTrigger');
if (btnDeleteTrigger) { if (btnDeleteTrigger) {
ScheduledTaskPage.confirmDeleteTrigger(view, parseInt(btnDeleteTrigger.getAttribute('data-index'))); ScheduledTaskPage.confirmDeleteTrigger(view, parseInt(btnDeleteTrigger.getAttribute('data-index'), 10));
} }
}); });
view.addEventListener('viewshow', function () { view.addEventListener('viewshow', function () {

View file

@ -15,7 +15,7 @@ import Dashboard from '../../utils/dashboard';
loading.show(); loading.show();
const form = this; const form = this;
ApiClient.getServerConfiguration().then(function (config) { ApiClient.getServerConfiguration().then(function (config) {
config.RemoteClientBitrateLimit = parseInt(1e6 * parseFloat($('#txtRemoteClientBitrateLimit', form).val() || '0')); config.RemoteClientBitrateLimit = parseInt(1e6 * parseFloat($('#txtRemoteClientBitrateLimit', form).val() || '0'), 10);
ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult); ApiClient.updateServerConfiguration(config).then(Dashboard.processServerConfigurationUpdateResult);
}); });

View file

@ -222,17 +222,17 @@ export default function (view, params) {
} }
function onBeforeTabChange(evt) { function onBeforeTabChange(evt) {
preLoadTab(view, parseInt(evt.detail.selectedTabIndex)); preLoadTab(view, parseInt(evt.detail.selectedTabIndex, 10));
} }
function onTabChange(evt) { function onTabChange(evt) {
const previousTabController = tabControllers[parseInt(evt.detail.previousIndex)]; const previousTabController = tabControllers[parseInt(evt.detail.previousIndex, 10)];
if (previousTabController && previousTabController.onHide) { if (previousTabController && previousTabController.onHide) {
previousTabController.onHide(); previousTabController.onHide();
} }
loadTab(view, parseInt(evt.detail.selectedTabIndex)); loadTab(view, parseInt(evt.detail.selectedTabIndex, 10));
} }
function getTabContainers() { function getTabContainers() {
@ -339,7 +339,7 @@ export default function (view, params) {
let isViewRestored; let isViewRestored;
const self = this; const self = this;
let currentTabIndex = parseInt(params.tab || getDefaultTabIndex('livetv')); let currentTabIndex = parseInt(params.tab || getDefaultTabIndex('livetv'), 10);
let initialTabIndex = currentTabIndex; let initialTabIndex = currentTabIndex;
let lastFullRender = 0; let lastFullRender = 0;
[].forEach.call(view.querySelectorAll('.sectionTitleTextButton-programs'), function (link) { [].forEach.call(view.querySelectorAll('.sectionTitleTextButton-programs'), function (link) {

View file

@ -245,11 +245,11 @@ import Dashboard from '../../utils/dashboard';
} }
function onBeforeTabChange(e) { function onBeforeTabChange(e) {
preLoadTab(view, parseInt(e.detail.selectedTabIndex)); preLoadTab(view, parseInt(e.detail.selectedTabIndex, 10));
} }
function onTabChange(e) { function onTabChange(e) {
loadTab(view, parseInt(e.detail.selectedTabIndex)); loadTab(view, parseInt(e.detail.selectedTabIndex, 10));
} }
function getTabContainers() { function getTabContainers() {
@ -350,7 +350,7 @@ import Dashboard from '../../utils/dashboard';
} }
} }
let currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId)); let currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId), 10);
const suggestionsTabIndex = 1; const suggestionsTabIndex = 1;
this.initTab = function () { this.initTab = function () {

View file

@ -975,7 +975,7 @@ import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../../components
title: globalize.translate('Audio'), title: globalize.translate('Audio'),
positionTo: positionTo positionTo: positionTo
}).then(function (id) { }).then(function (id) {
const index = parseInt(id); const index = parseInt(id, 10);
if (index !== currentIndex) { if (index !== currentIndex) {
playbackManager.setAudioStreamIndex(index, player); playbackManager.setAudioStreamIndex(index, player);
@ -1022,7 +1022,7 @@ import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../../components
positionTo positionTo
}).then(function (id) { }).then(function (id) {
if (id) { if (id) {
const index = parseInt(id); const index = parseInt(id, 10);
if (index !== currentIndex) { if (index !== currentIndex) {
playbackManager.setSecondarySubtitleStreamIndex(index, player); playbackManager.setSecondarySubtitleStreamIndex(index, player);
} }
@ -1099,7 +1099,7 @@ import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../../components
console.error(e); console.error(e);
} }
} else { } else {
const index = parseInt(id); const index = parseInt(id, 10);
if (index !== currentIndex) { if (index !== currentIndex) {
playbackManager.setSubtitleStreamIndex(index, player); playbackManager.setSubtitleStreamIndex(index, player);
@ -1633,7 +1633,7 @@ import { setBackdropTransparency, TRANSPARENCY_LEVEL } from '../../../components
ms /= 100; ms /= 100;
ms *= value; ms *= value;
ms += programStartDateMs; ms += programStartDateMs;
return '<h1 class="sliderBubbleText">' + getDisplayTimeWithoutAmPm(new Date(parseInt(ms)), true) + '</h1>'; return '<h1 class="sliderBubbleText">' + getDisplayTimeWithoutAmPm(new Date(parseInt(ms, 10)), true) + '</h1>';
} }
return '--:--'; return '--:--';

View file

@ -224,11 +224,11 @@ import autoFocuser from '../../components/autoFocuser';
export default function (view, params) { export default function (view, params) {
function onBeforeTabChange(e) { function onBeforeTabChange(e) {
preLoadTab(view, parseInt(e.detail.selectedTabIndex)); preLoadTab(view, parseInt(e.detail.selectedTabIndex, 10));
} }
function onTabChange(e) { function onTabChange(e) {
const newIndex = parseInt(e.detail.selectedTabIndex); const newIndex = parseInt(e.detail.selectedTabIndex, 10);
loadTab(view, newIndex); loadTab(view, newIndex);
} }
@ -340,7 +340,7 @@ import autoFocuser from '../../components/autoFocuser';
} }
const self = this; const self = this;
let currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId)); let currentTabIndex = parseInt(params.tab || getDefaultTabIndex(params.topParentId), 10);
const suggestionsTabIndex = 1; const suggestionsTabIndex = 1;
self.initTab = function () { self.initTab = function () {

View file

@ -414,7 +414,7 @@ import Sortable from 'sortablejs';
clearRefreshInterval(itemsContainer); clearRefreshInterval(itemsContainer);
if (!intervalMs) { if (!intervalMs) {
intervalMs = parseInt(itemsContainer.getAttribute('data-refreshinterval') || '0'); intervalMs = parseInt(itemsContainer.getAttribute('data-refreshinterval') || '0', 10);
} }
if (intervalMs) { if (intervalMs) {

View file

@ -3,8 +3,8 @@
const ProgressBarPrototype = Object.create(HTMLDivElement.prototype); const ProgressBarPrototype = Object.create(HTMLDivElement.prototype);
function onAutoTimeProgress() { function onAutoTimeProgress() {
const start = parseInt(this.getAttribute('data-starttime')); const start = parseInt(this.getAttribute('data-starttime'), 10);
const end = parseInt(this.getAttribute('data-endtime')); const end = parseInt(this.getAttribute('data-endtime'), 10);
const now = new Date().getTime(); const now = new Date().getTime();
const total = end - start; const total = end - start;

View file

@ -91,7 +91,7 @@ const EmbyScrollButtonsPrototype = Object.create(HTMLDivElement.prototype);
return 0; return 0;
} }
value = parseInt(value); value = parseInt(value, 10);
if (isNaN(value)) { if (isNaN(value)) {
return 0; return 0;
} }

View file

@ -75,7 +75,7 @@ const Scroller: FC<ScrollerProps> = ({
return 0; return 0;
} }
if (isNaN(parseInt(value))) { if (isNaN(parseInt(value, 10))) {
return 0; return 0;
} }

View file

@ -75,11 +75,11 @@ import '../../styles/scrollstyles.scss';
current.classList.remove(activeButtonClass); current.classList.remove(activeButtonClass);
} }
const previousIndex = current ? parseInt(current.getAttribute('data-index')) : null; const previousIndex = current ? parseInt(current.getAttribute('data-index'), 10) : null;
setActiveTabButton(tabButton); setActiveTabButton(tabButton);
const index = parseInt(tabButton.getAttribute('data-index')); const index = parseInt(tabButton.getAttribute('data-index'), 10);
triggerBeforeTabChange(tabs, index, previousIndex); triggerBeforeTabChange(tabs, index, previousIndex);
@ -194,7 +194,7 @@ import '../../styles/scrollstyles.scss';
initScroller(this); initScroller(this);
const current = this.querySelector('.' + activeButtonClass); const current = this.querySelector('.' + activeButtonClass);
const currentIndex = current ? parseInt(current.getAttribute('data-index')) : parseInt(this.getAttribute('data-index') || '0'); const currentIndex = current ? parseInt(current.getAttribute('data-index'), 10) : parseInt(this.getAttribute('data-index') || '0', 10);
if (currentIndex !== -1) { if (currentIndex !== -1) {
this.selectedTabIndex = currentIndex; this.selectedTabIndex = currentIndex;

View file

@ -14,7 +14,7 @@ function calculateOffset(textarea) {
let offset = 0; let offset = 0;
for (let i = 0; i < props.length; i++) { for (let i = 0; i < props.length; i++) {
offset += parseInt(style[props[i]]); offset += parseInt(style[props[i]], 10);
} }
return offset; return offset;
} }

View file

@ -683,7 +683,7 @@ class ChromecastPlayer {
} }
seek(position) { seek(position) {
position = parseInt(position); position = parseInt(position, 10);
position = position / 10000000; position = position / 10000000;

View file

@ -261,7 +261,7 @@ export class PdfPlayer {
for (const page of pages) { for (const page of pages) {
if (!this.pages[page]) { if (!this.pages[page]) {
this.pages[page] = document.createElement('canvas'); this.pages[page] = document.createElement('canvas');
this.renderPage(this.pages[page], parseInt(page.slice(4))); this.renderPage(this.pages[page], parseInt(page.slice(4), 10));
} }
} }

View file

@ -254,7 +254,7 @@ class Manager {
if (typeof cmd.When === 'string') { if (typeof cmd.When === 'string') {
cmd.When = new Date(cmd.When); cmd.When = new Date(cmd.When);
cmd.EmittedAt = new Date(cmd.EmittedAt); cmd.EmittedAt = new Date(cmd.EmittedAt);
cmd.PositionTicks = cmd.PositionTicks ? parseInt(cmd.PositionTicks) : null; cmd.PositionTicks = cmd.PositionTicks ? parseInt(cmd.PositionTicks, 10) : null;
} }
if (!this.isSyncPlayEnabled()) { if (!this.isSyncPlayEnabled()) {

View file

@ -55,7 +55,7 @@ const getTabs = () => {
const Movies: FC = () => { const Movies: FC = () => {
const [ searchParams ] = useSearchParams(); const [ searchParams ] = useSearchParams();
const currentTabIndex = parseInt(searchParams.get('tab') || getDefaultTabIndex(searchParams.get('topParentId')).toString()); const currentTabIndex = parseInt(searchParams.get('tab') || getDefaultTabIndex(searchParams.get('topParentId')).toString(), 10);
const [ selectedIndex, setSelectedIndex ] = useState(currentTabIndex); const [ selectedIndex, setSelectedIndex ] = useState(currentTabIndex);
const element = useRef<HTMLDivElement>(null); const element = useRef<HTMLDivElement>(null);
@ -95,7 +95,7 @@ const Movies: FC = () => {
}; };
const onTabChange = useCallback((e: { detail: { selectedTabIndex: string; }; }) => { const onTabChange = useCallback((e: { detail: { selectedTabIndex: string; }; }) => {
const newIndex = parseInt(e.detail.selectedTabIndex); const newIndex = parseInt(e.detail.selectedTabIndex, 10);
setSelectedIndex(newIndex); setSelectedIndex(newIndex);
}, []); }, []);

View file

@ -228,8 +228,8 @@ const UserEdit: FunctionComponent = () => {
user.Policy.EnableContentDownloading = (page.querySelector('.chkEnableDownloading') as HTMLInputElement).checked; user.Policy.EnableContentDownloading = (page.querySelector('.chkEnableDownloading') as HTMLInputElement).checked;
user.Policy.EnableRemoteAccess = (page.querySelector('.chkRemoteAccess') as HTMLInputElement).checked; user.Policy.EnableRemoteAccess = (page.querySelector('.chkRemoteAccess') as HTMLInputElement).checked;
user.Policy.RemoteClientBitrateLimit = Math.floor(1e6 * parseFloat((page.querySelector('#txtRemoteClientBitrateLimit') as HTMLInputElement).value || '0')); user.Policy.RemoteClientBitrateLimit = Math.floor(1e6 * parseFloat((page.querySelector('#txtRemoteClientBitrateLimit') as HTMLInputElement).value || '0'));
user.Policy.LoginAttemptsBeforeLockout = parseInt((page.querySelector('#txtLoginAttemptsBeforeLockout') as HTMLInputElement).value || '0'); user.Policy.LoginAttemptsBeforeLockout = parseInt((page.querySelector('#txtLoginAttemptsBeforeLockout') as HTMLInputElement).value || '0', 10);
user.Policy.MaxActiveSessions = parseInt((page.querySelector('#txtMaxActiveSessions') as HTMLInputElement).value || '0'); user.Policy.MaxActiveSessions = parseInt((page.querySelector('#txtMaxActiveSessions') as HTMLInputElement).value || '0', 10);
user.Policy.AuthenticationProviderId = (page.querySelector('#selectLoginProvider') as HTMLSelectElement).value; user.Policy.AuthenticationProviderId = (page.querySelector('#selectLoginProvider') as HTMLSelectElement).value;
user.Policy.PasswordResetProviderId = (page.querySelector('#selectPasswordResetProvider') as HTMLSelectElement).value; user.Policy.PasswordResetProviderId = (page.querySelector('#selectPasswordResetProvider') as HTMLSelectElement).value;
user.Policy.EnableContentDeletion = (page.querySelector('.chkEnableDeleteAllFolders') as HTMLInputElement).checked; user.Policy.EnableContentDeletion = (page.querySelector('.chkEnableDeleteAllFolders') as HTMLInputElement).checked;

View file

@ -224,7 +224,7 @@ const uaMatch = function (ua) {
version = version || match[2] || '0'; version = version || match[2] || '0';
let versionMajor = parseInt(version.split('.')[0]); let versionMajor = parseInt(version.split('.')[0], 10);
if (isNaN(versionMajor)) { if (isNaN(versionMajor)) {
versionMajor = 0; versionMajor = 0;
@ -295,7 +295,7 @@ if (browser.web0s) {
delete browser.safari; delete browser.safari;
const v = (navigator.appVersion).match(/Tizen (\d+).(\d+)/); const v = (navigator.appVersion).match(/Tizen (\d+).(\d+)/);
browser.tizenVersion = parseInt(v[1]); browser.tizenVersion = parseInt(v[1], 10);
} else { } else {
browser.orsay = userAgent.toLowerCase().indexOf('smarthub') !== -1; browser.orsay = userAgent.toLowerCase().indexOf('smarthub') !== -1;
} }

View file

@ -98,11 +98,11 @@ function processGeneralCommand(cmd, apiClient) {
break; break;
case 'SetAudioStreamIndex': case 'SetAudioStreamIndex':
notifyApp(); notifyApp();
playbackManager.setAudioStreamIndex(parseInt(cmd.Arguments.Index)); playbackManager.setAudioStreamIndex(parseInt(cmd.Arguments.Index, 10));
break; break;
case 'SetSubtitleStreamIndex': case 'SetSubtitleStreamIndex':
notifyApp(); notifyApp();
playbackManager.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index)); playbackManager.setSubtitleStreamIndex(parseInt(cmd.Arguments.Index, 10));
break; break;
case 'ToggleFullscreen': case 'ToggleFullscreen':
inputManager.handleCommand('togglefullscreen'); inputManager.handleCommand('togglefullscreen');

View file

@ -70,7 +70,7 @@ class AppSettings {
// return a huge number so that it always direct plays // return a huge number so that it always direct plays
return 150000000; return 150000000;
} else { } else {
return parseInt(this.get(key) || '0') || 1500000; return parseInt(this.get(key) || '0', 10) || 1500000;
} }
} }
@ -80,7 +80,7 @@ class AppSettings {
} }
const defaultValue = 320000; const defaultValue = 320000;
return parseInt(this.get('maxStaticMusicBitrate') || defaultValue.toString()) || defaultValue; return parseInt(this.get('maxStaticMusicBitrate') || defaultValue.toString(), 10) || defaultValue;
} }
maxChromecastBitrate(val) { maxChromecastBitrate(val) {
@ -89,7 +89,7 @@ class AppSettings {
} }
val = this.get('chromecastBitrate1'); val = this.get('chromecastBitrate1');
return val ? parseInt(val) : null; return val ? parseInt(val, 10) : null;
} }
/** /**

View file

@ -348,7 +348,7 @@ export class UserSettings {
return this.set('skipBackLength', val.toString()); return this.set('skipBackLength', val.toString());
} }
return parseInt(this.get('skipBackLength') || '10000'); return parseInt(this.get('skipBackLength') || '10000', 10);
} }
/** /**
@ -361,7 +361,7 @@ export class UserSettings {
return this.set('skipForwardLength', val.toString()); return this.set('skipForwardLength', val.toString());
} }
return parseInt(this.get('skipForwardLength') || '30000'); return parseInt(this.get('skipForwardLength') || '30000', 10);
} }
/** /**