mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
Merge pull request #1039 from MrTimscampi/sonarqube-fixes-1
Sonarqube bug fixin' - Part 1: Phantom Bugs
This commit is contained in:
commit
a9c9957160
21 changed files with 231 additions and 264 deletions
|
@ -62,7 +62,7 @@ function serve() {
|
||||||
port: 8080
|
port: 8080
|
||||||
});
|
});
|
||||||
|
|
||||||
let events = ['add', 'change'];
|
const events = ['add', 'change'];
|
||||||
|
|
||||||
watch(options.javascript.query).on('all', function (event, path) {
|
watch(options.javascript.query).on('all', function (event, path) {
|
||||||
if (events.includes(event)) {
|
if (events.includes(event)) {
|
||||||
|
@ -105,7 +105,7 @@ function clean() {
|
||||||
return del(['dist/']);
|
return del(['dist/']);
|
||||||
}
|
}
|
||||||
|
|
||||||
let pipelineJavascript = lazypipe()
|
const pipelineJavascript = lazypipe()
|
||||||
.pipe(function () {
|
.pipe(function () {
|
||||||
return mode.development(sourcemaps.init({ loadMaps: true }));
|
return mode.development(sourcemaps.init({ loadMaps: true }));
|
||||||
})
|
})
|
||||||
|
@ -140,7 +140,7 @@ function apploader(standalone) {
|
||||||
.pipe(pipelineJavascript())
|
.pipe(pipelineJavascript())
|
||||||
.pipe(dest('dist/'))
|
.pipe(dest('dist/'))
|
||||||
.pipe(browserSync.stream());
|
.pipe(browserSync.stream());
|
||||||
};
|
}
|
||||||
|
|
||||||
task.displayName = 'apploader';
|
task.displayName = 'apploader';
|
||||||
|
|
||||||
|
|
|
@ -92,13 +92,14 @@
|
||||||
"src/components/filedownloader.js",
|
"src/components/filedownloader.js",
|
||||||
"src/components/filesystem.js",
|
"src/components/filesystem.js",
|
||||||
"src/components/input/keyboardnavigation.js",
|
"src/components/input/keyboardnavigation.js",
|
||||||
"src/components/scrollManager.js",
|
|
||||||
"src/components/sanatizefilename.js",
|
"src/components/sanatizefilename.js",
|
||||||
"src/scripts/settings/webSettings.js",
|
"src/components/scrollManager.js",
|
||||||
"src/scripts/settings/appSettings.js",
|
"src/scripts/settings/appSettings.js",
|
||||||
"src/scripts/settings/userSettings.js",
|
"src/scripts/settings/userSettings.js",
|
||||||
|
"src/scripts/settings/webSettings.js",
|
||||||
|
"src/scripts/dfnshelper.js",
|
||||||
"src/scripts/imagehelper.js",
|
"src/scripts/imagehelper.js",
|
||||||
"src/scripts/dfnshelper.js"
|
"src/scripts/inputManager.js"
|
||||||
],
|
],
|
||||||
"plugins": [
|
"plugins": [
|
||||||
"@babel/plugin-transform-modules-amd"
|
"@babel/plugin-transform-modules-amd"
|
||||||
|
|
|
@ -85,15 +85,15 @@ _define("webcomponents", function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
// libass-wasm
|
// libass-wasm
|
||||||
var libass_wasm = require("libass-wasm");
|
var libassWasm = require("libass-wasm");
|
||||||
_define("JavascriptSubtitlesOctopus", function() {
|
_define("JavascriptSubtitlesOctopus", function() {
|
||||||
return libass_wasm;
|
return libassWasm;
|
||||||
});
|
});
|
||||||
|
|
||||||
// material-icons
|
// material-icons
|
||||||
var material_icons = require("material-design-icons-iconfont/dist/material-design-icons.css");
|
var materialIcons = require("material-design-icons-iconfont/dist/material-design-icons.css");
|
||||||
_define("material-icons", function() {
|
_define("material-icons", function() {
|
||||||
return material_icons;
|
return materialIcons;
|
||||||
});
|
});
|
||||||
|
|
||||||
// noto font
|
// noto font
|
||||||
|
@ -120,14 +120,14 @@ _define("classlist-polyfill", function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Date-FNS
|
// Date-FNS
|
||||||
var date_fns = require("date-fns");
|
var dateFns = require("date-fns");
|
||||||
_define("date-fns", function () {
|
_define("date-fns", function () {
|
||||||
return date_fns;
|
return dateFns;
|
||||||
});
|
});
|
||||||
|
|
||||||
var date_fns_locale = require("date-fns/locale");
|
var dateFnsLocale = require("date-fns/locale");
|
||||||
_define("date-fns/locale", function () {
|
_define("date-fns/locale", function () {
|
||||||
return date_fns_locale;
|
return dateFnsLocale;
|
||||||
});
|
});
|
||||||
|
|
||||||
var fast_text_encoding = require("fast-text-encoding");
|
var fast_text_encoding = require("fast-text-encoding");
|
||||||
|
|
|
@ -579,7 +579,8 @@ define(['loading', 'globalize', 'events', 'viewManager', 'layoutManager', 'skinM
|
||||||
|
|
||||||
function showDirect(path) {
|
function showDirect(path) {
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve, reject) {
|
||||||
resolveOnNextShow = resolve, page.show(baseUrl()+path);
|
resolveOnNextShow = resolve;
|
||||||
|
page.show(baseUrl() + path);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,7 @@ define(['connectionManager', 'cardBuilder', 'appSettings', 'dom', 'apphost', 'la
|
||||||
} else if (section === 'librarytiles' || section === 'smalllibrarytiles' || section === 'smalllibrarytiles-automobile' || section === 'librarytiles-automobile') {
|
} else if (section === 'librarytiles' || section === 'smalllibrarytiles' || section === 'smalllibrarytiles-automobile' || section === 'librarytiles-automobile') {
|
||||||
loadLibraryTiles(elem, apiClient, user, userSettings, 'smallBackdrop', userViews, allSections);
|
loadLibraryTiles(elem, apiClient, user, userSettings, 'smallBackdrop', userViews, allSections);
|
||||||
} else if (section === 'librarybuttons') {
|
} else if (section === 'librarybuttons') {
|
||||||
loadlibraryButtons(elem, apiClient, user, userSettings, userViews, allSections);
|
loadlibraryButtons(elem, apiClient, user, userSettings, userViews);
|
||||||
} else if (section === 'resume') {
|
} else if (section === 'resume') {
|
||||||
loadResumeVideo(elem, apiClient, userId);
|
loadResumeVideo(elem, apiClient, userId);
|
||||||
} else if (section === 'resumeaudio') {
|
} else if (section === 'resumeaudio') {
|
||||||
|
|
|
@ -101,7 +101,7 @@ define(['events', 'browser', 'require', 'apphost', 'appSettings', 'htmlMediaHelp
|
||||||
self._timeUpdated = false;
|
self._timeUpdated = false;
|
||||||
self._currentTime = null;
|
self._currentTime = null;
|
||||||
|
|
||||||
var elem = createMediaElement(options);
|
var elem = createMediaElement();
|
||||||
return setCurrentSrc(elem, options);
|
return setCurrentSrc(elem, options);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -241,7 +241,7 @@ define(['require', 'datetime', 'itemHelper', 'events', 'browser', 'imageLoader',
|
||||||
elem.addEventListener('click', function (e) {
|
elem.addEventListener('click', function (e) {
|
||||||
|
|
||||||
if (!dom.parentWithTag(e.target, ['BUTTON', 'INPUT', 'A'])) {
|
if (!dom.parentWithTag(e.target, ['BUTTON', 'INPUT', 'A'])) {
|
||||||
showRemoteControl(0);
|
showRemoteControl();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -3140,7 +3140,7 @@ define(['events', 'datetime', 'appSettings', 'itemHelper', 'pluginManager', 'pla
|
||||||
AllowVideoStreamCopy: false,
|
AllowVideoStreamCopy: false,
|
||||||
AllowAudioStreamCopy: currentlyPreventsAudioStreamCopy || currentlyPreventsVideoStreamCopy ? false : null
|
AllowAudioStreamCopy: currentlyPreventsAudioStreamCopy || currentlyPreventsVideoStreamCopy ? false : null
|
||||||
|
|
||||||
}, true);
|
});
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -307,8 +307,7 @@ define(['dialogHelper', 'inputManager', 'connectionManager', 'layoutManager', 'f
|
||||||
*/
|
*/
|
||||||
function getSwiperSlideHtmlFromItem(item) {
|
function getSwiperSlideHtmlFromItem(item) {
|
||||||
return getSwiperSlideHtmlFromSlide({
|
return getSwiperSlideHtmlFromSlide({
|
||||||
imageUrl: getImgUrl(item),
|
originalImage: getImgUrl(item),
|
||||||
originalImage: getImgUrl(item, true),
|
|
||||||
//title: item.Name,
|
//title: item.Name,
|
||||||
//description: item.Overview
|
//description: item.Overview
|
||||||
Id: item.Id,
|
Id: item.Id,
|
||||||
|
|
|
@ -95,7 +95,7 @@ define(["loading", "appRouter", "layoutManager", "appSettings", "apphost", "focu
|
||||||
}
|
}
|
||||||
|
|
||||||
function showServerConnectionFailure() {
|
function showServerConnectionFailure() {
|
||||||
alertText(globalize.translate("MessageUnableToConnectToServer"), globalize.translate("HeaderConnectionFailure"));
|
alertText(globalize.translate("MessageUnableToConnectToServer"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return function (view, params) {
|
return function (view, params) {
|
||||||
|
|
|
@ -184,12 +184,12 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getCurrentViewStyle = function () {
|
self.getCurrentViewStyle = function () {
|
||||||
return getPageData(tabContent).view;
|
return getPageData().view;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setCurrentViewStyle = function (viewStyle) {
|
self.setCurrentViewStyle = function (viewStyle) {
|
||||||
getPageData(tabContent).view = viewStyle;
|
getPageData().view = viewStyle;
|
||||||
libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle);
|
libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle);
|
||||||
fullyReload();
|
fullyReload();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -107,12 +107,12 @@ define(["libraryBrowser", "cardBuilder", "apphost", "imageLoader", "loading"], f
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getCurrentViewStyle = function () {
|
self.getCurrentViewStyle = function () {
|
||||||
return getPageData(tabContent).view;
|
return getPageData().view;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setCurrentViewStyle = function (viewStyle) {
|
self.setCurrentViewStyle = function (viewStyle) {
|
||||||
getPageData(tabContent).view = viewStyle;
|
getPageData().view = viewStyle;
|
||||||
libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle);
|
libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle);
|
||||||
fullyReload();
|
fullyReload();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@ define(["libraryBrowser", "cardBuilder", "apphost", "imageLoader", "loading"], f
|
||||||
var data = {};
|
var data = {};
|
||||||
|
|
||||||
self.getCurrentViewStyle = function () {
|
self.getCurrentViewStyle = function () {
|
||||||
return getPageData(tabContent).view;
|
return getPageData().view;
|
||||||
};
|
};
|
||||||
|
|
||||||
var promise;
|
var promise;
|
||||||
|
|
|
@ -177,12 +177,12 @@ define(["layoutManager", "loading", "libraryBrowser", "cardBuilder", "lazyLoader
|
||||||
};
|
};
|
||||||
|
|
||||||
self.getCurrentViewStyle = function () {
|
self.getCurrentViewStyle = function () {
|
||||||
return getPageData(tabContent).view;
|
return getPageData().view;
|
||||||
};
|
};
|
||||||
|
|
||||||
self.setCurrentViewStyle = function (viewStyle) {
|
self.setCurrentViewStyle = function (viewStyle) {
|
||||||
getPageData(tabContent).view = viewStyle;
|
getPageData().view = viewStyle;
|
||||||
libraryBrowser.saveViewSetting(getSavedQueryKey(tabContent), viewStyle);
|
libraryBrowser.saveViewSetting(getSavedQueryKey(), viewStyle);
|
||||||
fullyReload();
|
fullyReload();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -3,16 +3,20 @@ Dashboard.confirm = function(message, title, callback) {
|
||||||
require(["confirm"], function(confirm) {
|
require(["confirm"], function(confirm) {
|
||||||
confirm(message, title).then(function() {
|
confirm(message, title).then(function() {
|
||||||
callback(!0);
|
callback(!0);
|
||||||
}, function() {
|
}).catch(function() {
|
||||||
callback(!1);
|
callback(!1);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}, Dashboard.showLoadingMsg = function() {
|
};
|
||||||
|
|
||||||
|
Dashboard.showLoadingMsg = function() {
|
||||||
"use strict";
|
"use strict";
|
||||||
require(["loading"], function(loading) {
|
require(["loading"], function(loading) {
|
||||||
loading.show();
|
loading.show();
|
||||||
});
|
});
|
||||||
}, Dashboard.hideLoadingMsg = function() {
|
};
|
||||||
|
|
||||||
|
Dashboard.hideLoadingMsg = function() {
|
||||||
"use strict";
|
"use strict";
|
||||||
require(["loading"], function(loading) {
|
require(["loading"], function(loading) {
|
||||||
loading.hide();
|
loading.hide();
|
||||||
|
|
|
@ -4,7 +4,9 @@ define(["jQuery"], function($) {
|
||||||
return !0 === value || !1 === value ? $(this).each(function() {
|
return !0 === value || !1 === value ? $(this).each(function() {
|
||||||
this.checked = value;
|
this.checked = value;
|
||||||
}) : this.length && this[0].checked;
|
}) : this.length && this[0].checked;
|
||||||
}, $.fn.checkboxradio = function() {
|
};
|
||||||
|
|
||||||
|
$.fn.checkboxradio = function() {
|
||||||
return this;
|
return this;
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
var script = document.createElement("script");
|
var script = document.createElement("script");
|
||||||
if (self.dashboardVersion) {
|
if (self.dashboardVersion) {
|
||||||
src += "?v=" + self.dashboardVersion;
|
src += `?v=${self.dashboardVersion}`;
|
||||||
}
|
}
|
||||||
script.src = src;
|
script.src = src;
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,18 @@
|
||||||
define(["backdrop", "userSettings", "libraryMenu"], function (backdrop, userSettings, libraryMenu) {
|
define(["backdrop", "userSettings", "libraryMenu"], function (backdrop, userSettings, libraryMenu) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
var cache = {};
|
||||||
|
|
||||||
function enabled() {
|
function enabled() {
|
||||||
return userSettings.enableBackdrops();
|
return userSettings.enableBackdrops();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getBackdropItemIds(apiClient, userId, types, parentId) {
|
function getBackdropItemIds(apiClient, userId, types, parentId) {
|
||||||
var key = "backdrops2_" + userId + (types || "") + (parentId || "");
|
var key = `backdrops2_${userId + (types || "") + (parentId || "")}`;
|
||||||
var data = cache[key];
|
var data = cache[key];
|
||||||
|
|
||||||
if (data) {
|
if (data) {
|
||||||
console.debug("Found backdrop id list in cache. Key: " + key);
|
console.debug(`Found backdrop id list in cache. Key: ${key}`);
|
||||||
data = JSON.parse(data);
|
data = JSON.parse(data);
|
||||||
return Promise.resolve(data);
|
return Promise.resolve(data);
|
||||||
}
|
}
|
||||||
|
@ -54,7 +56,6 @@ define(["backdrop", "userSettings", "libraryMenu"], function (backdrop, userSett
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var cache = {};
|
|
||||||
pageClassOn("pageshow", "page", function () {
|
pageClassOn("pageshow", "page", function () {
|
||||||
var page = this;
|
var page = this;
|
||||||
|
|
||||||
|
|
|
@ -1,99 +1,57 @@
|
||||||
import { ar, be, bg, ca, cs, da, de, el, enGB, enUS, es, faIR, fi, fr, frCA, he, hi, hr, hu, id, it, kk, ko, lt, ms, nb, nl, pl, ptBR, pt, ro, ru, sk, sl, sv, tr, uk, vi, zhCN, zhTW } from 'date-fns/locale';
|
import { ar, be, bg, ca, cs, da, de, el, enGB, enUS, es, faIR, fi, fr, frCA, he, hi, hr, hu, id, it, ja, kk, ko, lt, ms, nb,
|
||||||
|
nl, pl, ptBR, pt, ro, ru, sk, sl, sv, tr, uk, vi, zhCN, zhTW } from 'date-fns/locale';
|
||||||
import globalize from 'globalize';
|
import globalize from 'globalize';
|
||||||
|
|
||||||
|
const dateLocales = (locale) => ({
|
||||||
|
'ar': ar,
|
||||||
|
'be-by': be,
|
||||||
|
'bg-bg': bg,
|
||||||
|
'ca': ca,
|
||||||
|
'cs': cs,
|
||||||
|
'da': da,
|
||||||
|
'de': de,
|
||||||
|
'el': el,
|
||||||
|
'en-gb': enGB,
|
||||||
|
'en-us': enUS,
|
||||||
|
'es': es,
|
||||||
|
'es-ar': es,
|
||||||
|
'es-mx': es,
|
||||||
|
'fa': faIR,
|
||||||
|
'fi': fi,
|
||||||
|
'fr': fr,
|
||||||
|
'fr-ca': frCA,
|
||||||
|
'gsw': de,
|
||||||
|
'he': he,
|
||||||
|
'hi-in': hi,
|
||||||
|
'hr': hr,
|
||||||
|
'hu': hu,
|
||||||
|
'id': id,
|
||||||
|
'it': it,
|
||||||
|
'ja': ja,
|
||||||
|
'kk': kk,
|
||||||
|
'ko': ko,
|
||||||
|
'lt-lt': lt,
|
||||||
|
'ms': ms,
|
||||||
|
'nb': nb,
|
||||||
|
'nl': nl,
|
||||||
|
'pl': pl,
|
||||||
|
'pt-br': ptBR,
|
||||||
|
'pt-pt': pt,
|
||||||
|
'ro': ro,
|
||||||
|
'ru': ru,
|
||||||
|
'sk': sk,
|
||||||
|
'sl-si': sl,
|
||||||
|
'sv': sv,
|
||||||
|
'tr': tr,
|
||||||
|
'uk': uk,
|
||||||
|
'vi': vi,
|
||||||
|
'zh-cn': zhCN,
|
||||||
|
'zh-hk': zhCN,
|
||||||
|
'zh-tw': zhTW
|
||||||
|
})[locale];
|
||||||
|
|
||||||
export function getLocale() {
|
export function getLocale() {
|
||||||
switch (globalize.getCurrentLocale()) {
|
return dateLocales(globalize.getCurrentLocale()) || enUS;
|
||||||
case 'ar':
|
|
||||||
return ar;
|
|
||||||
case 'be-by':
|
|
||||||
return be;
|
|
||||||
case 'bg-bg':
|
|
||||||
return bg;
|
|
||||||
case 'ca':
|
|
||||||
return ca;
|
|
||||||
case 'cs':
|
|
||||||
return cs;
|
|
||||||
case 'da':
|
|
||||||
return da;
|
|
||||||
case 'de':
|
|
||||||
return de;
|
|
||||||
case 'el':
|
|
||||||
return el;
|
|
||||||
case 'en-gb':
|
|
||||||
return enGB;
|
|
||||||
case 'en-us':
|
|
||||||
return enUS;
|
|
||||||
case 'es':
|
|
||||||
return es;
|
|
||||||
case 'es-ar':
|
|
||||||
return es;
|
|
||||||
case 'es-mx':
|
|
||||||
return es;
|
|
||||||
case 'fa':
|
|
||||||
return faIR;
|
|
||||||
case 'fi':
|
|
||||||
return fi;
|
|
||||||
case 'fr':
|
|
||||||
return fr;
|
|
||||||
case 'fr-ca':
|
|
||||||
return frCA;
|
|
||||||
case 'gsw':
|
|
||||||
return de;
|
|
||||||
case 'he':
|
|
||||||
return he;
|
|
||||||
case 'hi-in':
|
|
||||||
return hi;
|
|
||||||
case 'hr':
|
|
||||||
return hr;
|
|
||||||
case 'hu':
|
|
||||||
return hu;
|
|
||||||
case 'id':
|
|
||||||
return id;
|
|
||||||
case 'it':
|
|
||||||
return it;
|
|
||||||
case 'kk':
|
|
||||||
return kk;
|
|
||||||
case 'ko':
|
|
||||||
return ko;
|
|
||||||
case 'lt-lt':
|
|
||||||
return lt;
|
|
||||||
case 'ms':
|
|
||||||
return ms;
|
|
||||||
case 'nb':
|
|
||||||
return nb;
|
|
||||||
case 'nl':
|
|
||||||
return nl;
|
|
||||||
case 'pl':
|
|
||||||
return pl;
|
|
||||||
case 'pt-br':
|
|
||||||
return ptBR;
|
|
||||||
case 'pt-pt':
|
|
||||||
return pt;
|
|
||||||
case 'ro':
|
|
||||||
return ro;
|
|
||||||
case 'ru':
|
|
||||||
return ru;
|
|
||||||
case 'sk':
|
|
||||||
return sk;
|
|
||||||
case 'sl-si':
|
|
||||||
return sl;
|
|
||||||
case 'sv':
|
|
||||||
return sv;
|
|
||||||
case 'tr':
|
|
||||||
return tr;
|
|
||||||
case 'uk':
|
|
||||||
return uk;
|
|
||||||
case 'vi':
|
|
||||||
return vi;
|
|
||||||
case 'zh-cn':
|
|
||||||
return zhCN;
|
|
||||||
case 'zh-hk':
|
|
||||||
return zhCN;
|
|
||||||
case 'zh-tw':
|
|
||||||
return zhTW;
|
|
||||||
default:
|
|
||||||
return enUS;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const localeWithSuffix = { addSuffix: true, locale: getLocale() };
|
export const localeWithSuffix = { addSuffix: true, locale: getLocale() };
|
||||||
|
|
|
@ -1,44 +1,49 @@
|
||||||
define(['playbackManager', 'focusManager', 'appRouter', 'dom', 'apphost'], function (playbackManager, focusManager, appRouter, dom, appHost) {
|
import playbackManager from 'playbackManager';
|
||||||
'use strict';
|
import focusManager from 'focusManager';
|
||||||
|
import appRouter from 'appRouter';
|
||||||
|
import dom from 'dom';
|
||||||
|
import appHost from 'apphost';
|
||||||
|
|
||||||
var lastInputTime = new Date().getTime();
|
/* eslint-disable indent */
|
||||||
|
|
||||||
function notify() {
|
let lastInputTime = new Date().getTime();
|
||||||
|
|
||||||
|
export function notify() {
|
||||||
lastInputTime = new Date().getTime();
|
lastInputTime = new Date().getTime();
|
||||||
handleCommand('unknown');
|
handleCommand('unknown');
|
||||||
}
|
}
|
||||||
|
|
||||||
function notifyMouseMove() {
|
export function notifyMouseMove() {
|
||||||
lastInputTime = new Date().getTime();
|
lastInputTime = new Date().getTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
function idleTime() {
|
export function idleTime() {
|
||||||
return new Date().getTime() - lastInputTime;
|
return new Date().getTime() - lastInputTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
function select(sourceElement) {
|
export function select(sourceElement) {
|
||||||
sourceElement.click();
|
sourceElement.click();
|
||||||
}
|
}
|
||||||
|
|
||||||
var eventListenerCount = 0;
|
let eventListenerCount = 0;
|
||||||
function on(scope, fn) {
|
export function on(scope, fn) {
|
||||||
eventListenerCount++;
|
eventListenerCount++;
|
||||||
dom.addEventListener(scope, 'command', fn, {});
|
dom.addEventListener(scope, 'command', fn, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
function off(scope, fn) {
|
export function off(scope, fn) {
|
||||||
if (eventListenerCount) {
|
if (eventListenerCount) {
|
||||||
eventListenerCount--;
|
eventListenerCount--;
|
||||||
}
|
}
|
||||||
dom.removeEventListener(scope, 'command', fn, {});
|
dom.removeEventListener(scope, 'command', fn, {});
|
||||||
}
|
}
|
||||||
|
|
||||||
var commandTimes = {};
|
let commandTimes = {};
|
||||||
|
|
||||||
function checkCommandTime(command) {
|
function checkCommandTime(command) {
|
||||||
|
|
||||||
var last = commandTimes[command] || 0;
|
const last = commandTimes[command] || 0;
|
||||||
var now = new Date().getTime();
|
const now = new Date().getTime();
|
||||||
|
|
||||||
if ((now - last) < 1000) {
|
if ((now - last) < 1000) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -48,11 +53,11 @@ define(['playbackManager', 'focusManager', 'appRouter', 'dom', 'apphost'], funct
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleCommand(name, options) {
|
export function handleCommand(commandName, options) {
|
||||||
|
|
||||||
lastInputTime = new Date().getTime();
|
lastInputTime = new Date().getTime();
|
||||||
|
|
||||||
var sourceElement = (options ? options.sourceElement : null);
|
let sourceElement = (options ? options.sourceElement : null);
|
||||||
|
|
||||||
if (sourceElement) {
|
if (sourceElement) {
|
||||||
sourceElement = focusManager.focusableParent(sourceElement);
|
sourceElement = focusManager.focusableParent(sourceElement);
|
||||||
|
@ -61,7 +66,7 @@ define(['playbackManager', 'focusManager', 'appRouter', 'dom', 'apphost'], funct
|
||||||
if (!sourceElement) {
|
if (!sourceElement) {
|
||||||
sourceElement = document.activeElement || window;
|
sourceElement = document.activeElement || window;
|
||||||
|
|
||||||
var dlg = document.querySelector('.dialogContainer .dialog.opened');
|
const dlg = document.querySelector('.dialogContainer .dialog.opened');
|
||||||
|
|
||||||
if (dlg && (!sourceElement || !dlg.contains(sourceElement))) {
|
if (dlg && (!sourceElement || !dlg.contains(sourceElement))) {
|
||||||
sourceElement = dlg;
|
sourceElement = dlg;
|
||||||
|
@ -69,169 +74,164 @@ define(['playbackManager', 'focusManager', 'appRouter', 'dom', 'apphost'], funct
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventListenerCount) {
|
if (eventListenerCount) {
|
||||||
var customEvent = new CustomEvent("command", {
|
const customEvent = new CustomEvent("command", {
|
||||||
detail: {
|
detail: {
|
||||||
command: name
|
command: commandName
|
||||||
},
|
},
|
||||||
bubbles: true,
|
bubbles: true,
|
||||||
cancelable: true
|
cancelable: true
|
||||||
});
|
});
|
||||||
|
|
||||||
var eventResult = sourceElement.dispatchEvent(customEvent);
|
const eventResult = sourceElement.dispatchEvent(customEvent);
|
||||||
if (!eventResult) {
|
if (!eventResult) {
|
||||||
// event cancelled
|
// event cancelled
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (name) {
|
const keyActions = (command) => ({
|
||||||
case 'up':
|
'up': () => {
|
||||||
focusManager.moveUp(sourceElement);
|
focusManager.moveUp(sourceElement);
|
||||||
break;
|
},
|
||||||
case 'down':
|
'down': () => {
|
||||||
focusManager.moveDown(sourceElement);
|
focusManager.moveDown(sourceElement);
|
||||||
break;
|
},
|
||||||
case 'left':
|
'left': () => {
|
||||||
focusManager.moveLeft(sourceElement);
|
focusManager.moveLeft(sourceElement);
|
||||||
break;
|
},
|
||||||
case 'right':
|
'right': () => {
|
||||||
focusManager.moveRight(sourceElement);
|
focusManager.moveRight(sourceElement);
|
||||||
break;
|
},
|
||||||
case 'home':
|
'home': () => {
|
||||||
appRouter.goHome();
|
appRouter.goHome();
|
||||||
break;
|
},
|
||||||
case 'settings':
|
'settings': () => {
|
||||||
appRouter.showSettings();
|
appRouter.showSettings();
|
||||||
break;
|
},
|
||||||
case 'back':
|
'back': () => {
|
||||||
if (appRouter.canGoBack()) {
|
if (appRouter.canGoBack()) {
|
||||||
appRouter.back();
|
appRouter.back();
|
||||||
} else if (appHost.supports('exit')) {
|
} else if (appHost.supports('exit')) {
|
||||||
appHost.exit();
|
appHost.exit();
|
||||||
}
|
}
|
||||||
break;
|
},
|
||||||
case 'forward':
|
'select': () => {
|
||||||
break;
|
|
||||||
case 'select':
|
|
||||||
select(sourceElement);
|
select(sourceElement);
|
||||||
break;
|
},
|
||||||
case 'pageup':
|
'nextchapter': () => {
|
||||||
break;
|
|
||||||
case 'pagedown':
|
|
||||||
break;
|
|
||||||
case 'end':
|
|
||||||
break;
|
|
||||||
case 'menu':
|
|
||||||
break;
|
|
||||||
case 'info':
|
|
||||||
break;
|
|
||||||
case 'nextchapter':
|
|
||||||
playbackManager.nextChapter();
|
playbackManager.nextChapter();
|
||||||
break;
|
},
|
||||||
case 'next':
|
'next': () => {
|
||||||
case 'nexttrack':
|
|
||||||
playbackManager.nextTrack();
|
playbackManager.nextTrack();
|
||||||
break;
|
},
|
||||||
case 'previous':
|
'nexttrack': () => {
|
||||||
case 'previoustrack':
|
playbackManager.nextTrack();
|
||||||
|
},
|
||||||
|
'previous': () => {
|
||||||
playbackManager.previousTrack();
|
playbackManager.previousTrack();
|
||||||
break;
|
},
|
||||||
case 'previouschapter':
|
'previoustrack': () => {
|
||||||
|
playbackManager.previousTrack();
|
||||||
|
},
|
||||||
|
'previouschapter': () => {
|
||||||
playbackManager.previousChapter();
|
playbackManager.previousChapter();
|
||||||
break;
|
},
|
||||||
case 'guide':
|
'guide': () => {
|
||||||
appRouter.showGuide();
|
appRouter.showGuide();
|
||||||
break;
|
},
|
||||||
case 'recordedtv':
|
'recordedtv': () => {
|
||||||
appRouter.showRecordedTV();
|
appRouter.showRecordedTV();
|
||||||
break;
|
},
|
||||||
case 'record':
|
'livetv': () => {
|
||||||
break;
|
|
||||||
case 'livetv':
|
|
||||||
appRouter.showLiveTV();
|
appRouter.showLiveTV();
|
||||||
break;
|
},
|
||||||
case 'mute':
|
'mute': () => {
|
||||||
playbackManager.setMute(true);
|
playbackManager.setMute(true);
|
||||||
break;
|
},
|
||||||
case 'unmute':
|
'unmute': () => {
|
||||||
playbackManager.setMute(false);
|
playbackManager.setMute(false);
|
||||||
break;
|
},
|
||||||
case 'togglemute':
|
'togglemute': () => {
|
||||||
playbackManager.toggleMute();
|
playbackManager.toggleMute();
|
||||||
break;
|
},
|
||||||
case 'channelup':
|
'channelup': () => {
|
||||||
playbackManager.channelUp();
|
playbackManager.channelUp();
|
||||||
break;
|
},
|
||||||
case 'channeldown':
|
'channeldown': () => {
|
||||||
playbackManager.channelDown();
|
playbackManager.channelDown();
|
||||||
break;
|
},
|
||||||
case 'volumedown':
|
'volumedown': () => {
|
||||||
playbackManager.volumeDown();
|
playbackManager.volumeDown();
|
||||||
break;
|
},
|
||||||
case 'volumeup':
|
'volumeup': () => {
|
||||||
playbackManager.volumeUp();
|
playbackManager.volumeUp();
|
||||||
break;
|
},
|
||||||
case 'play':
|
'play': () => {
|
||||||
playbackManager.unpause();
|
playbackManager.unpause();
|
||||||
break;
|
},
|
||||||
case 'pause':
|
'pause': () => {
|
||||||
playbackManager.pause();
|
playbackManager.pause();
|
||||||
break;
|
},
|
||||||
case 'playpause':
|
'playpause': () => {
|
||||||
playbackManager.playPause();
|
playbackManager.playPause();
|
||||||
break;
|
},
|
||||||
case 'stop':
|
'stop': () => {
|
||||||
if (checkCommandTime('stop')) {
|
if (checkCommandTime('stop')) {
|
||||||
playbackManager.stop();
|
playbackManager.stop();
|
||||||
}
|
}
|
||||||
break;
|
},
|
||||||
case 'changezoom':
|
'changezoom': () => {
|
||||||
playbackManager.toggleAspectRatio();
|
playbackManager.toggleAspectRatio();
|
||||||
break;
|
},
|
||||||
case 'changeaudiotrack':
|
'changeaudiotrack': () => {
|
||||||
playbackManager.changeAudioStream();
|
playbackManager.changeAudioStream();
|
||||||
break;
|
},
|
||||||
case 'changesubtitletrack':
|
'changesubtitletrack': () => {
|
||||||
playbackManager.changeSubtitleStream();
|
playbackManager.changeSubtitleStream();
|
||||||
break;
|
},
|
||||||
case 'search':
|
'search': () => {
|
||||||
appRouter.showSearch();
|
appRouter.showSearch();
|
||||||
break;
|
},
|
||||||
case 'favorites':
|
'favorites': () => {
|
||||||
appRouter.showFavorites();
|
appRouter.showFavorites();
|
||||||
break;
|
},
|
||||||
case 'fastforward':
|
'fastforward': () => {
|
||||||
playbackManager.fastForward();
|
playbackManager.fastForward();
|
||||||
break;
|
},
|
||||||
case 'rewind':
|
'rewind': () => {
|
||||||
playbackManager.rewind();
|
playbackManager.rewind();
|
||||||
break;
|
},
|
||||||
case 'togglefullscreen':
|
'togglefullscreen': () => {
|
||||||
playbackManager.toggleFullscreen();
|
playbackManager.toggleFullscreen();
|
||||||
break;
|
},
|
||||||
case 'disabledisplaymirror':
|
'disabledisplaymirror': () => {
|
||||||
playbackManager.enableDisplayMirroring(false);
|
playbackManager.enableDisplayMirroring(false);
|
||||||
break;
|
},
|
||||||
case 'enabledisplaymirror':
|
'enabledisplaymirror': () => {
|
||||||
playbackManager.enableDisplayMirroring(true);
|
playbackManager.enableDisplayMirroring(true);
|
||||||
break;
|
},
|
||||||
case 'toggledisplaymirror':
|
'toggledisplaymirror': () => {
|
||||||
playbackManager.toggleDisplayMirroring();
|
playbackManager.toggleDisplayMirroring();
|
||||||
break;
|
},
|
||||||
case 'nowplaying':
|
'nowplaying': () => {
|
||||||
appRouter.showNowPlaying();
|
appRouter.showNowPlaying();
|
||||||
break;
|
},
|
||||||
case 'repeatnone':
|
'repeatnone': () => {
|
||||||
playbackManager.setRepeatMode('RepeatNone');
|
playbackManager.setRepeatMode('RepeatNone');
|
||||||
break;
|
},
|
||||||
case 'repeatall':
|
'repeatall': () => {
|
||||||
playbackManager.setRepeatMode('RepeatAll');
|
playbackManager.setRepeatMode('RepeatAll');
|
||||||
break;
|
},
|
||||||
case 'repeatone':
|
'repeatone': () => {
|
||||||
playbackManager.setRepeatMode('RepeatOne');
|
playbackManager.setRepeatMode('RepeatOne');
|
||||||
break;
|
}
|
||||||
default:
|
})[command];
|
||||||
break;
|
|
||||||
|
const action = keyActions(commandName);
|
||||||
|
if (action !== undefined) {
|
||||||
|
action.call();
|
||||||
|
} else {
|
||||||
|
console.debug(`inputManager: tried to process command with no action assigned: ${commandName}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -239,7 +239,9 @@ define(['playbackManager', 'focusManager', 'appRouter', 'dom', 'apphost'], funct
|
||||||
passive: true
|
passive: true
|
||||||
});
|
});
|
||||||
|
|
||||||
return {
|
/* eslint-enable indent */
|
||||||
|
|
||||||
|
export default {
|
||||||
trigger: handleCommand,
|
trigger: handleCommand,
|
||||||
handle: handleCommand,
|
handle: handleCommand,
|
||||||
notify: notify,
|
notify: notify,
|
||||||
|
@ -247,5 +249,4 @@ define(['playbackManager', 'focusManager', 'appRouter', 'dom', 'apphost'], funct
|
||||||
idleTime: idleTime,
|
idleTime: idleTime,
|
||||||
on: on,
|
on: on,
|
||||||
off: off
|
off: off
|
||||||
};
|
};
|
||||||
});
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ define(["listView"], function (listView) {
|
||||||
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
EnableImageTypes: "Primary,Backdrop,Banner,Thumb",
|
||||||
UserId: ApiClient.getCurrentUserId()
|
UserId: ApiClient.getCurrentUserId()
|
||||||
};
|
};
|
||||||
return ApiClient.getJSON(ApiClient.getUrl("Playlists/" + itemId + "/Items", query));
|
return ApiClient.getJSON(ApiClient.getUrl(`Playlists/${itemId}/Items`, query));
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue