From 81fe0b47f3e8ff1a76deebbc1b24f2d5a6c39988 Mon Sep 17 00:00:00 2001 From: dkanada Date: Tue, 26 Nov 2019 03:10:05 +0900 Subject: [PATCH 1/6] fix charset issue on firefox --- src/index.html | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/index.html b/src/index.html index d95784a3dc..ad42c2618a 100644 --- a/src/index.html +++ b/src/index.html @@ -2,6 +2,7 @@ + @@ -20,43 +21,43 @@ - + - + - + - + - + - + - + - + - + - + @@ -98,7 +99,9 @@
-
+
+
+
From c97089b52c658dc6c64c82dcaf5e0bceb604b259 Mon Sep 17 00:00:00 2001 From: dkanada Date: Tue, 26 Nov 2019 03:15:23 +0900 Subject: [PATCH 2/6] minor code refactor --- .../backdrop/{style.css => backdrop.css} | 0 src/components/backdrop/backdrop.js | 2 +- src/components/backdrop/package.json | 3 - src/components/emby-input/package.json | 3 - src/components/emby-radio/package.json | 3 - src/components/emby-tabs/package.json | 3 - .../homescreensettings.template.html | 19 +--- .../usersettings/usersettingsbuilder.js | 100 ++++-------------- 8 files changed, 25 insertions(+), 108 deletions(-) rename src/components/backdrop/{style.css => backdrop.css} (100%) delete mode 100644 src/components/backdrop/package.json delete mode 100644 src/components/emby-input/package.json delete mode 100644 src/components/emby-radio/package.json delete mode 100644 src/components/emby-tabs/package.json diff --git a/src/components/backdrop/style.css b/src/components/backdrop/backdrop.css similarity index 100% rename from src/components/backdrop/style.css rename to src/components/backdrop/backdrop.css diff --git a/src/components/backdrop/backdrop.js b/src/components/backdrop/backdrop.js index 61f458dd87..ae07ac3abc 100644 --- a/src/components/backdrop/backdrop.js +++ b/src/components/backdrop/backdrop.js @@ -1,4 +1,4 @@ -define(['browser', 'connectionManager', 'playbackManager', 'dom', 'css!./style'], function (browser, connectionManager, playbackManager, dom) { +define(['browser', 'connectionManager', 'playbackManager', 'dom', 'css!./backdrop'], function (browser, connectionManager, playbackManager, dom) { 'use strict'; function enableAnimation(elem) { diff --git a/src/components/backdrop/package.json b/src/components/backdrop/package.json deleted file mode 100644 index 5f04e53a9e..0000000000 --- a/src/components/backdrop/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "backdrop.js" -} \ No newline at end of file diff --git a/src/components/emby-input/package.json b/src/components/emby-input/package.json deleted file mode 100644 index 07be9f7b45..0000000000 --- a/src/components/emby-input/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "emby-input.js" -} \ No newline at end of file diff --git a/src/components/emby-radio/package.json b/src/components/emby-radio/package.json deleted file mode 100644 index 2c1b97bd32..0000000000 --- a/src/components/emby-radio/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "emby-radio.js" -} \ No newline at end of file diff --git a/src/components/emby-tabs/package.json b/src/components/emby-tabs/package.json deleted file mode 100644 index 0813d041c7..0000000000 --- a/src/components/emby-tabs/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "emby-tabs.js" -} \ No newline at end of file diff --git a/src/components/homescreensettings/homescreensettings.template.html b/src/components/homescreensettings/homescreensettings.template.html index 56be1bc5a8..1ed2ec1b9c 100644 --- a/src/components/homescreensettings/homescreensettings.template.html +++ b/src/components/homescreensettings/homescreensettings.template.html @@ -104,32 +104,21 @@
- -

- ${HeaderLibraryOrder} -

-
- -
- +

${HeaderLibraryOrder}

+
-
- -
+
-
-

- ${HeaderLibraryFolders} -

+

${HeaderLibraryFolders}

${LabelSelectFolderGroups}

diff --git a/src/components/usersettings/usersettingsbuilder.js b/src/components/usersettings/usersettingsbuilder.js index 47ad2751ca..2eeda0364c 100644 --- a/src/components/usersettings/usersettingsbuilder.js +++ b/src/components/usersettings/usersettingsbuilder.js @@ -1,17 +1,16 @@ -define(['appSettings', 'events'], function (appsettings, events) { +define(['appSettings', 'events'], function (appSettings, events) { 'use strict'; function onSaveTimeout() { - - var self = this; - self.saveTimeout = null; - self.currentApiClient.updateDisplayPreferences('usersettings', self.displayPrefs, self.currentUserId, 'emby'); + this.saveTimeout = null; + this.currentApiClient.updateDisplayPreferences('usersettings', self.displayPrefs, self.currentUserId, 'emby'); } function saveServerPreferences(instance) { if (instance.saveTimeout) { clearTimeout(instance.saveTimeout); } + instance.saveTimeout = setTimeout(onSaveTimeout.bind(instance), 50); } @@ -19,7 +18,6 @@ define(['appSettings', 'events'], function (appsettings, events) { } UserSettings.prototype.setUserInfo = function (userId, apiClient) { - if (this.saveTimeout) { clearTimeout(this.saveTimeout); } @@ -49,14 +47,13 @@ define(['appSettings', 'events'], function (appsettings, events) { }; UserSettings.prototype.set = function (name, value, enableOnServer) { - var userId = this.currentUserId; if (!userId) { throw new Error('userId cannot be null'); } var currentValue = this.get(name, enableOnServer); - var result = appsettings.set(name, value, userId); + var result = appSettings.set(name, value, userId); if (enableOnServer !== false && this.displayPrefs) { this.displayPrefs.CustomPrefs[name] = value == null ? value : value.toString(); @@ -73,10 +70,7 @@ define(['appSettings', 'events'], function (appsettings, events) { UserSettings.prototype.get = function (name, enableOnServer) { var userId = this.currentUserId; if (!userId) { - // TODO: I'd like to continue to throw this exception but it causes issues with offline use - // Revisit in the future and restore it - return null; - //throw new Error('userId cannot be null'); + throw new Error('userId cannot be null'); } if (enableOnServer !== false) { @@ -85,95 +79,66 @@ define(['appSettings', 'events'], function (appsettings, events) { } } - return appsettings.get(name, userId); + return appSettings.get(name, userId); }; UserSettings.prototype.serverConfig = function (config) { - var apiClient = this.currentApiClient; - if (config) { - return apiClient.updateUserConfiguration(this.currentUserId, config); - - } else { - - return apiClient.getUser(this.currentUserId).then(function (user) { - - return user.Configuration; - }); } + + return apiClient.getUser(this.currentUserId).then(function (user) { + return user.Configuration; + }); }; UserSettings.prototype.enableCinemaMode = function (val) { - if (val != null) { return this.set('enableCinemaMode', val.toString(), false); } val = this.get('enableCinemaMode', false); - - if (val) { - return val !== 'false'; - } - - return true; + return val !== 'false'; }; UserSettings.prototype.enableNextVideoInfoOverlay = function (val) { - if (val != null) { return this.set('enableNextVideoInfoOverlay', val.toString()); } - val = this.get('enableNextVideoInfoOverlay'); - + val = this.get('enableNextVideoInfoOverlay', false); return val !== 'false'; }; UserSettings.prototype.enableThemeSongs = function (val) { - if (val != null) { return this.set('enableThemeSongs', val.toString(), false); } val = this.get('enableThemeSongs', false); - return val !== 'false'; }; UserSettings.prototype.enableThemeVideos = function (val) { - if (val != null) { return this.set('enableThemeVideos', val.toString(), false); } val = this.get('enableThemeVideos', false); - - if (val) { - return val !== 'false'; - } - - return UserSettings.defaults.enableThemeVideos; + return val !== 'false'; }; UserSettings.prototype.enableBackdrops = function (val) { - if (val != null) { return this.set('enableBackdrops', val.toString(), false); } val = this.get('enableBackdrops', false); - - if (val) { - return val !== 'false'; - } - - return UserSettings.defaults.enableBackdrops; + return val !== 'false'; }; UserSettings.prototype.language = function (val) { - if (val != null) { return this.set('language', val.toString(), false); } @@ -182,7 +147,6 @@ define(['appSettings', 'events'], function (appsettings, events) { }; UserSettings.prototype.dateTimeLocale = function (val) { - if (val != null) { return this.set('datetimelocale', val.toString(), false); } @@ -191,7 +155,6 @@ define(['appSettings', 'events'], function (appsettings, events) { }; UserSettings.prototype.skipBackLength = function (val) { - if (val != null) { return this.set('skipBackLength', val.toString()); } @@ -200,7 +163,6 @@ define(['appSettings', 'events'], function (appsettings, events) { }; UserSettings.prototype.skipForwardLength = function (val) { - if (val != null) { return this.set('skipForwardLength', val.toString()); } @@ -209,7 +171,6 @@ define(['appSettings', 'events'], function (appsettings, events) { }; UserSettings.prototype.dashboardTheme = function (val) { - if (val != null) { return this.set('dashboardTheme', val); } @@ -218,55 +179,41 @@ define(['appSettings', 'events'], function (appsettings, events) { }; UserSettings.prototype.skin = function (val) { - if (val != null) { return this.set('skin', val, false); } - return this.get('skin', false) || UserSettings.defaults.skin; + return this.get('skin', false); }; UserSettings.prototype.theme = function (val) { - if (val != null) { return this.set('appTheme', val, false); } - return this.get('appTheme', false) || UserSettings.defaults.theme; + return this.get('appTheme', false); }; UserSettings.prototype.screensaver = function (val) { - if (val != null) { return this.set('screensaver', val, false); } - return this.get('screensaver', false) || UserSettings.defaults.screensaver; + return this.get('screensaver', false); }; UserSettings.prototype.soundEffects = function (val) { - if (val != null) { return this.set('soundeffects', val, false); } - return this.get('soundeffects', false) || UserSettings.defaults.soundEffects; - }; - - // apps should set these values - UserSettings.defaults = { - theme: null, - enableThemeVideos: true + return this.get('soundeffects', false); }; UserSettings.prototype.loadQuerySettings = function (key, query) { - var values = this.get(key); - if (values) { - values = JSON.parse(values); - return Object.assign(query, values); } @@ -274,12 +221,11 @@ define(['appSettings', 'events'], function (appsettings, events) { }; UserSettings.prototype.saveQuerySettings = function (key, query) { - var values = {}; - if (query.SortBy) { values.SortBy = query.SortBy; } + if (query.SortOrder) { values.SortOrder = query.SortOrder; } @@ -288,26 +234,20 @@ define(['appSettings', 'events'], function (appsettings, events) { }; UserSettings.prototype.getSubtitleAppearanceSettings = function (key) { - key = key || 'localplayersubtitleappearance3'; - return JSON.parse(this.get(key, false) || '{}'); }; UserSettings.prototype.setSubtitleAppearanceSettings = function (value, key) { - key = key || 'localplayersubtitleappearance3'; - return this.set(key, JSON.stringify(value), false); }; UserSettings.prototype.setFilter = function (key, value) { - return this.set(key, value, true); }; UserSettings.prototype.getFilter = function (key) { - return this.get(key, true); }; From e1009d3d67f44f63900ea4349a47ff91663db048 Mon Sep 17 00:00:00 2001 From: dkanada Date: Sat, 30 Nov 2019 10:51:24 +0900 Subject: [PATCH 3/6] add code suggestions --- src/components/usersettings/usersettingsbuilder.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/usersettings/usersettingsbuilder.js b/src/components/usersettings/usersettingsbuilder.js index 2eeda0364c..caa59c3bdf 100644 --- a/src/components/usersettings/usersettingsbuilder.js +++ b/src/components/usersettings/usersettingsbuilder.js @@ -2,8 +2,9 @@ define(['appSettings', 'events'], function (appSettings, events) { 'use strict'; function onSaveTimeout() { - this.saveTimeout = null; - this.currentApiClient.updateDisplayPreferences('usersettings', self.displayPrefs, self.currentUserId, 'emby'); + var self = this; + self.saveTimeout = null; + self.currentApiClient.updateDisplayPreferences('usersettings', self.displayPrefs, self.currentUserId, 'emby'); } function saveServerPreferences(instance) { From 7abe22780b3669545e2a6892eeb5fe2bb21d81a0 Mon Sep 17 00:00:00 2001 From: dkanada Date: Sat, 30 Nov 2019 20:46:32 +0900 Subject: [PATCH 4/6] move some css files to global folder --- src/components/actionsheet/package.json | 3 --- src/components/dialog/package.json | 3 --- src/components/dialogHelper/package.json | 3 --- src/components/headroom/package.json | 3 --- src/components/navdrawer/package.json | 3 --- src/components/notifications/notifications.js | 8 ++------ src/components/toast/package.json | 3 --- src/components/viewManager/package.json | 3 --- src/{components => css}/clearbutton.css | 0 src/{components => css}/flexstyles.css | 0 src/css/fonts.sized.css | 1 - src/scripts/site.js | 4 ++-- 12 files changed, 4 insertions(+), 30 deletions(-) delete mode 100644 src/components/actionsheet/package.json delete mode 100644 src/components/dialog/package.json delete mode 100644 src/components/dialogHelper/package.json delete mode 100644 src/components/headroom/package.json delete mode 100644 src/components/navdrawer/package.json delete mode 100644 src/components/toast/package.json delete mode 100644 src/components/viewManager/package.json rename src/{components => css}/clearbutton.css (100%) rename src/{components => css}/flexstyles.css (100%) diff --git a/src/components/actionsheet/package.json b/src/components/actionsheet/package.json deleted file mode 100644 index 622f1e075d..0000000000 --- a/src/components/actionsheet/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "actionsheet.js" -} \ No newline at end of file diff --git a/src/components/dialog/package.json b/src/components/dialog/package.json deleted file mode 100644 index d13dd844ba..0000000000 --- a/src/components/dialog/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "dialog.js" -} \ No newline at end of file diff --git a/src/components/dialogHelper/package.json b/src/components/dialogHelper/package.json deleted file mode 100644 index 71863d045f..0000000000 --- a/src/components/dialogHelper/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "dialogHelper.js" -} \ No newline at end of file diff --git a/src/components/headroom/package.json b/src/components/headroom/package.json deleted file mode 100644 index 9c6c42c82a..0000000000 --- a/src/components/headroom/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "headroom.js" -} \ No newline at end of file diff --git a/src/components/navdrawer/package.json b/src/components/navdrawer/package.json deleted file mode 100644 index d02800957b..0000000000 --- a/src/components/navdrawer/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "navdrawer.js" -} \ No newline at end of file diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js index 304eec7e08..c30819f423 100644 --- a/src/components/notifications/notifications.js +++ b/src/components/notifications/notifications.js @@ -2,7 +2,6 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir 'use strict'; function onOneDocumentClick() { - document.removeEventListener('click', onOneDocumentClick); document.removeEventListener('keydown', onOneDocumentClick); @@ -10,15 +9,14 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir Notification.requestPermission(); } } + document.addEventListener('click', onOneDocumentClick); document.addEventListener('keydown', onOneDocumentClick); var serviceWorkerRegistration; function closeAfter(notification, timeoutMs) { - setTimeout(function () { - if (notification.close) { notification.close(); } @@ -29,9 +27,7 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir } function resetRegistration() { - var serviceWorker = navigator.serviceWorker; - if (serviceWorker) { serviceWorker.ready.then(function (registration) { serviceWorkerRegistration = registration; @@ -273,4 +269,4 @@ define(['serverNotifications', 'playbackManager', 'events', 'globalize', 'requir showNotification(notification, 0, apiClient); }); -}); \ No newline at end of file +}); diff --git a/src/components/toast/package.json b/src/components/toast/package.json deleted file mode 100644 index 2e64841a7f..0000000000 --- a/src/components/toast/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "toast.js" -} \ No newline at end of file diff --git a/src/components/viewManager/package.json b/src/components/viewManager/package.json deleted file mode 100644 index 819371af71..0000000000 --- a/src/components/viewManager/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "main": "viewManager.js" -} \ No newline at end of file diff --git a/src/components/clearbutton.css b/src/css/clearbutton.css similarity index 100% rename from src/components/clearbutton.css rename to src/css/clearbutton.css diff --git a/src/components/flexstyles.css b/src/css/flexstyles.css similarity index 100% rename from src/components/flexstyles.css rename to src/css/flexstyles.css diff --git a/src/css/fonts.sized.css b/src/css/fonts.sized.css index 073b74167c..9cdd666109 100644 --- a/src/css/fonts.sized.css +++ b/src/css/fonts.sized.css @@ -25,7 +25,6 @@ h3 { /* This is supposed to be 1080p, but had to reduce the min height to account for possible browser chrome */ @media all and (min-height: 1000px) { - html { font-size: 27px; } diff --git a/src/scripts/site.js b/src/scripts/site.js index e05712c076..d902cdf6de 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -720,9 +720,9 @@ var AppInfo = {}; define("programStyles", ["css!" + componentsPath + "/guide/programs"], returnFirstDependency); define("listViewStyle", ["css!" + componentsPath + "/listview/listview"], returnFirstDependency); define("formDialogStyle", ["css!" + componentsPath + "/formdialog"], returnFirstDependency); - define("clearButtonStyle", ["css!" + componentsPath + "/clearbutton"], returnFirstDependency); + define("clearButtonStyle", ["css!css/clearbutton"], returnFirstDependency); define("cardStyle", ["css!" + componentsPath + "/cardbuilder/card"], returnFirstDependency); - define("flexStyles", ["css!" + componentsPath + "/flexstyles"], returnFirstDependency); + define("flexStyles", ["css!css/flexstyles"], returnFirstDependency); // define legacy features // TODO delete the rest of these From 375934ed1378fb177c4dd63495e0a82dd869c455 Mon Sep 17 00:00:00 2001 From: dkanada Date: Tue, 3 Dec 2019 23:06:33 +0900 Subject: [PATCH 5/6] remove exceptions from user preference builder --- src/components/usersettings/usersettingsbuilder.js | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/components/usersettings/usersettingsbuilder.js b/src/components/usersettings/usersettingsbuilder.js index caa59c3bdf..f852dacc43 100644 --- a/src/components/usersettings/usersettingsbuilder.js +++ b/src/components/usersettings/usersettingsbuilder.js @@ -49,10 +49,6 @@ define(['appSettings', 'events'], function (appSettings, events) { UserSettings.prototype.set = function (name, value, enableOnServer) { var userId = this.currentUserId; - if (!userId) { - throw new Error('userId cannot be null'); - } - var currentValue = this.get(name, enableOnServer); var result = appSettings.set(name, value, userId); @@ -70,14 +66,8 @@ define(['appSettings', 'events'], function (appSettings, events) { UserSettings.prototype.get = function (name, enableOnServer) { var userId = this.currentUserId; - if (!userId) { - throw new Error('userId cannot be null'); - } - - if (enableOnServer !== false) { - if (this.displayPrefs) { - return this.displayPrefs.CustomPrefs[name]; - } + if (enableOnServer !== false && this.displayPrefs) { + return this.displayPrefs.CustomPrefs[name]; } return appSettings.get(name, userId); From 900f92d7e09317c473103c570a4dc42756e169e4 Mon Sep 17 00:00:00 2001 From: dkanada Date: Tue, 3 Dec 2019 23:17:01 +0900 Subject: [PATCH 6/6] minor readme changes --- README.md | 5 ++--- src/standalone.js | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 71d6ebdf71..f9796e6173 100644 --- a/README.md +++ b/README.md @@ -44,7 +44,7 @@ Jellyfin Web is the frontend used for most of the clients available for end user ### Dependencies -- Yarn +- Yarn ### Getting Started @@ -58,8 +58,7 @@ Jellyfin Web is the frontend used for most of the clients available for end user yarn install ``` -3. Run webpack dev server +3. Run the web client with webpack for local development. ```sh yarn serve ``` - diff --git a/src/standalone.js b/src/standalone.js index 5692e8dddb..04d40d6b11 100644 --- a/src/standalone.js +++ b/src/standalone.js @@ -1,4 +1,4 @@ (function() { "use strict"; - window.appMode='standalone'; + window.appMode = 'standalone'; })();