diff --git a/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.js b/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.js index 84719ba103..988f771092 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.js +++ b/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.js @@ -25,7 +25,9 @@ results[i] = { top: box.top, - left: box.left + left: box.left, + width: box.width, + height: box.height }; } @@ -45,10 +47,10 @@ var pos = getOffsets([options.positionTo])[0]; if (options.positionY != 'top') { - pos.top += options.positionTo.offsetHeight / 2; + pos.top += (pos.height || 0) / 2; } - pos.left += options.positionTo.offsetWidth / 2; + pos.left += (pos.width || 0) / 2; var height = dlg.offsetHeight || 300; var width = dlg.offsetWidth || 160; diff --git a/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js b/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js index f2b5ef3042..bbcdb866c8 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js +++ b/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.js @@ -281,7 +281,7 @@ })); } }; - if (!dlg.animationConfig || !dlg.animate) { + if (!dlg.animationConfig) { onAnimationFinish(); return; } @@ -312,7 +312,7 @@ } }; - if (!dlg.animationConfig || !dlg.animate) { + if (!dlg.animationConfig) { onAnimationFinish(); return; } diff --git a/dashboard-ui/bower_components/emby-webcomponents/emby-button/emby-button.css b/dashboard-ui/bower_components/emby-webcomponents/emby-button/emby-button.css index 96d9522955..4237df422f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/emby-button/emby-button.css +++ b/dashboard-ui/bower_components/emby-webcomponents/emby-button/emby-button.css @@ -28,7 +28,6 @@ font-weight: 500; /* Disable webkit tap highlighting */ -webkit-tap-highlight-color: rgba(0,0,0,0); - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); } .emby-button::-moz-focus-inner { diff --git a/dashboard-ui/components/accessschedule/accessschedule.js b/dashboard-ui/components/accessschedule/accessschedule.js new file mode 100644 index 0000000000..d6545acea3 --- /dev/null +++ b/dashboard-ui/components/accessschedule/accessschedule.js @@ -0,0 +1,113 @@ +define(['dialogHelper', 'datetime', 'emby-select', 'paper-icon-button-light', 'formDialogStyle'], function (dialogHelper, datetime) { + + function getDisplayTime(hours) { + + var minutes = 0; + + var pct = hours % 1; + + if (pct) { + minutes = parseInt(pct * 60); + } + + return datetime.getDisplayTime(new Date(2000, 1, 1, hours, minutes, 0, 0)); + } + + function populateHours(context) { + + var html = ''; + + for (var i = 0; i < 24; i++) { + + html += ''; + } + + html += ''; + + context.querySelector('#selectStart').innerHTML = html; + context.querySelector('#selectEnd').innerHTML = html; + } + + function loadSchedule(context, schedule) { + + context.querySelector('#selectDay').value = schedule.DayOfWeek || 'Sunday'; + context.querySelector('#selectStart').value = schedule.StartHour || 0; + context.querySelector('#selectEnd').value = schedule.EndHour || 0; + } + + function submitSchedule(context, options) { + + var updatedSchedule = { + DayOfWeek: context.querySelector('#selectDay').value, + StartHour: context.querySelector('#selectStart').value, + EndHour: context.querySelector('#selectEnd').value + }; + + if (parseFloat(updatedSchedule.StartHour) >= parseFloat(updatedSchedule.EndHour)) { + + alert(Globalize.translate('ErrorMessageStartHourGreaterThanEnd')); + + return; + } + + context.submitted = true; + options.schedule = Object.assign(options.schedule, updatedSchedule); + dialogHelper.close(context); + } + + return { + show: function (options) { + return new Promise(function (resolve, reject) { + + var xhr = new XMLHttpRequest(); + xhr.open('GET', 'components/accessschedule/accessschedule.template.html', true); + + xhr.onload = function (e) { + + var template = this.response; + var dlg = dialogHelper.createDialog({ + removeOnClose: true, + size: 'small' + }); + + dlg.classList.add('formDialog'); + + var html = ''; + + html += Globalize.translateDocument(template); + + dlg.innerHTML = html; + + populateHours(dlg); + loadSchedule(dlg, options.schedule); + + dialogHelper.open(dlg); + + dlg.addEventListener('close', function () { + + if (dlg.submitted) { + resolve(options.schedule); + } else { + reject(); + } + }); + + dlg.querySelector('.btnCancel').addEventListener('click', function (e) { + + dialogHelper.close(dlg); + }); + + dlg.querySelector('form').addEventListener('submit', function (e) { + + submitSchedule(dlg, options); + + e.preventDefault(); + return false; + }); + } + + xhr.send(); + }); + } + }; +}); \ No newline at end of file diff --git a/dashboard-ui/components/accessschedule/accessschedule.template.html b/dashboard-ui/components/accessschedule/accessschedule.template.html new file mode 100644 index 0000000000..a388acbf1f --- /dev/null +++ b/dashboard-ui/components/accessschedule/accessschedule.template.html @@ -0,0 +1,39 @@ +
+ +

+ ${HeaderAccessSchedule} +

+
+
+
+
+ +
+ +
+
+ +
+
+ +
+ +
+ +
+
+
+
\ No newline at end of file diff --git a/dashboard-ui/components/viewcontainer-lite.js b/dashboard-ui/components/viewcontainer-lite.js index a9b60ce15a..2f902a47ef 100644 --- a/dashboard-ui/components/viewcontainer-lite.js +++ b/dashboard-ui/components/viewcontainer-lite.js @@ -45,10 +45,8 @@ define(['browser'], function (browser) { if (isPluginpage) { dependencies.push('jqmpopup'); - dependencies.push('jqmcollapsible'); dependencies.push('legacy/dashboard'); dependencies.push('legacy/selectmenu'); - dependencies.push('jqmcontrolgroup'); dependencies.push('jqmlistview'); dependencies.push('fnchecked'); } diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css index 62cf7ec2d9..5b408d3185 100644 --- a/dashboard-ui/css/librarybrowser.css +++ b/dashboard-ui/css/librarybrowser.css @@ -512,25 +512,13 @@ span.itemCommunityRating:not(:empty) + .userDataIcons { text-overflow: ellipsis; overflow: hidden; position: relative; + margin: 1.5em 0 1em; + display: flex; + align-items: center; } -.ui-body-a .detailSectionHeader { - border: 1px solid #ddd; - border-width: 0 0 1px 0; -} - -.ui-body-b .detailSectionHeader { - border: 1px solid #444; - border-width: 0 0 1px 0; -} - -.detailSectionHeader, .detailSectionHeader h3 { - font-size: 20px; - font-weight: 400; -} - - .detailSectionHeader button { - font-size: 13px; + .detailSectionHeader > h1 { + margin: 0; } .detailSectionHeaderButton { @@ -702,10 +690,6 @@ span.itemCommunityRating:not(:empty) + .userDataIcons { align-items: center; } -.mediaInfoItem { - white-space: nowrap; -} - @media all and (max-width: 600px) { .portraitDetailImageContainer + .primaryDetailsContainer { diff --git a/dashboard-ui/css/site.css b/dashboard-ui/css/site.css index 5fbb047590..08b397cc38 100644 --- a/dashboard-ui/css/site.css +++ b/dashboard-ui/css/site.css @@ -35,10 +35,18 @@ html { margin: 0; padding: 0; height: 100%; - font-family: 'San Francisco', 'Helvetica Neue', Roboto, 'Open Sans', 'Segoe UI', sans-serif; + font-family: -apple-system, 'San Francisco', 'Helvetica Neue', Roboto, 'Open Sans', 'Segoe UI', sans-serif; font-size: 14px; } +h1 { + font-family: -apple-system-headline, 'San Francisco', 'Helvetica Neue', Roboto, 'Open Sans', 'Segoe UI', sans-serif; +} + +h2 { + font-family: -apple-system-subheadline, 'San Francisco', 'Helvetica Neue', Roboto, 'Open Sans', 'Segoe UI', sans-serif; +} + body { overflow-y: scroll !important; /* This is needed to prevent a horizontal scrollbar while neon-animated-pages are animating. */ diff --git a/dashboard-ui/devices/ios/ios.css b/dashboard-ui/devices/ios/ios.css index e85e6c2a78..045f5173a4 100644 --- a/dashboard-ui/devices/ios/ios.css +++ b/dashboard-ui/devices/ios/ios.css @@ -28,6 +28,16 @@ body:not(.dashboardDocument) .mainDrawerButton { height: 50px; } +/*.viewMenuBar, .ui-body-b .libraryViewNav { + background: rgba(34,35,38,.90); + -webkit-backdrop-filter: blur(5px); + backdrop-filter: blur(5px); +} + + .viewMenuBar.semiTransparent { + background-color: rgba(15, 15, 15, .3); + }*/ + .emby-tab-button { font-weight: 400; text-transform: none !important; @@ -55,6 +65,10 @@ h1, h1 a { font-weight: 400; } +.cardImageContainer { + border-radius: 8px; +} + .noSecondaryNavPage .itemBackdrop { margin-top: 0; } @@ -67,10 +81,6 @@ h1, h1 a { font-size: 200% !important; } -.alphabetPicker { - right: 5px !important; -} - .txtSearch { padding-bottom: .5em !important; text-indent: 0 !important; @@ -84,3 +94,9 @@ h1, h1 a { .categorySyncButton, .btnSync { display: none !important; } + +.dialog.background-theme-b { + background: rgba(28,28,28,.88); + -webkit-backdrop-filter: blur(5px); + backdrop-filter: blur(5px); +} diff --git a/dashboard-ui/gamestudios.html b/dashboard-ui/gamestudios.html index 166231c164..74ce50045c 100644 --- a/dashboard-ui/gamestudios.html +++ b/dashboard-ui/gamestudios.html @@ -1,4 +1,4 @@ -
+
${TabSuggestions} ${TabGames} diff --git a/dashboard-ui/mypreferencesdisplay.html b/dashboard-ui/mypreferencesdisplay.html index 5e147319dc..bfbcc42402 100644 --- a/dashboard-ui/mypreferencesdisplay.html +++ b/dashboard-ui/mypreferencesdisplay.html @@ -1,4 +1,4 @@ -
+
diff --git a/dashboard-ui/mypreferenceshome.html b/dashboard-ui/mypreferenceshome.html index b869701a2d..5b9bd1371b 100644 --- a/dashboard-ui/mypreferenceshome.html +++ b/dashboard-ui/mypreferenceshome.html @@ -1,4 +1,4 @@ -
+
@@ -9,9 +9,8 @@
-
- - @@ -23,10 +22,8 @@
-
-
- - @@ -39,10 +36,8 @@
-
-
- - @@ -55,10 +50,8 @@
-
-
- - diff --git a/dashboard-ui/mypreferenceslanguages.html b/dashboard-ui/mypreferenceslanguages.html index 92cdacbce4..8db30628ff 100644 --- a/dashboard-ui/mypreferenceslanguages.html +++ b/dashboard-ui/mypreferenceslanguages.html @@ -1,4 +1,4 @@ -
+
@@ -10,11 +10,9 @@ ${HeaderAudioSettings}
-
- - +
+
-