diff --git a/dashboard-ui/addplugin.html b/dashboard-ui/addplugin.html index ed18d304f9..59f76b73dd 100644 --- a/dashboard-ui/addplugin.html +++ b/dashboard-ui/addplugin.html @@ -1,4 +1,4 @@ -
+
diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index 1a9b95be19..eb719c2993 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -14,12 +14,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.261", - "_release": "1.4.261", + "version": "1.4.263", + "_release": "1.4.263", "_resolution": { "type": "version", - "tag": "1.4.261", - "commit": "c985fe644bf1268d66f69ddcf3ba73faf5c6bd3e" + "tag": "1.4.263", + "commit": "a688a5c033af169003a172bc593f57a31577de33" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.1", diff --git a/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.css b/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.css index 1cfb03add7..e4d4f32a55 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.css +++ b/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.css @@ -5,7 +5,15 @@ border: none; max-height: 84%; border-radius: 1px !important; - box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.4); + color: #fff; +} + +.actionsheet-not-fullscreen { + background-color: #262626; +} + +.actionSheetMenuItem:hover { + background-color: #333; } .actionsheet-fullscreen { diff --git a/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.js b/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.js index a49f3e5db7..84719ba103 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.js +++ b/dashboard-ui/bower_components/emby-webcomponents/actionsheet/actionsheet.js @@ -119,6 +119,8 @@ if (isFullscreen) { dlg.classList.add('actionsheet-fullscreen'); + } else { + dlg.classList.add('actionsheet-not-fullscreen'); } var extraSpacing = !layoutManager.tv; diff --git a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js index f84b119c7e..8f6c73ff09 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js +++ b/dashboard-ui/bower_components/emby-webcomponents/browserdeviceprofile.js @@ -204,7 +204,7 @@ define(['browser'], function (browser) { function getMaxBitrate() { if (browser.edgeUwp) { - return 22000000; + return 24000000; } // 10mbps diff --git a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css index fcf6790010..64ca726879 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css +++ b/dashboard-ui/bower_components/emby-webcomponents/cardbuilder/card.css @@ -213,9 +213,6 @@ .visualCardBox-cardFooter { border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; - -moz-box-shadow: 0 2px 4px rgba(0,0,0,0.1); - -ms-box-shadow: 0 2px 4px rgba(0,0,0,0.1); - -webkit-box-shadow: 0 2px 4px rgba(0,0,0,0.1); box-shadow: 0 2px 4px rgba(0,0,0,0.1); } diff --git a/dashboard-ui/bower_components/emby-webcomponents/dialog/dialog.js b/dashboard-ui/bower_components/emby-webcomponents/dialog/dialog.js index 51f17853e8..6c43b0f355 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/dialog/dialog.js +++ b/dashboard-ui/bower_components/emby-webcomponents/dialog/dialog.js @@ -11,8 +11,6 @@ define(['dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 're if (enableTvLayout) { dialogOptions.size = 'fullscreen'; - } else { - //dialogOptions.size = 'mini'; } var dlg = dialogHelper.createDialog(dialogOptions); @@ -21,16 +19,18 @@ define(['dialogHelper', 'dom', 'layoutManager', 'scrollHelper', 'globalize', 're dlg.innerHTML = globalize.translateHtml(template, 'sharedcomponents'); + dlg.style['align-items'] = 'center'; + dlg.style['justify-content'] = 'center'; + var formDialogContent = dlg.querySelector('.formDialogContent'); + formDialogContent.style['flex-grow'] = 'initial'; + if (enableTvLayout) { - dlg.style['align-items'] = 'center'; - dlg.style['justify-content'] = 'center'; - var formDialogContent = dlg.querySelector('.formDialogContent'); - formDialogContent.style['flex-grow'] = 'initial'; formDialogContent.style['max-width'] = '50%'; formDialogContent.style['max-height'] = '60%'; scrollHelper.centerFocus.on(formDialogContent, false); } else { - dlg.style.maxWidth = (Math.min((options.buttons.length * 150) + 200, dom.getWindowSize().innerWidth - 50)) + 'px'; + formDialogContent.style.maxWidth = (Math.min((options.buttons.length * 150) + 200, dom.getWindowSize().innerWidth - 50)) + 'px'; + dlg.classList.add('dialog-fullscreen-lowres'); } //dlg.querySelector('.btnCancel').addEventListener('click', function (e) { diff --git a/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.css b/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.css index ea3773fa8b..b223babc57 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.css +++ b/dashboard-ui/bower_components/emby-webcomponents/dialoghelper/dialoghelper.css @@ -41,7 +41,8 @@ } @media all and (max-width: 1280px), all and (max-height: 720px) { - .dialog-fixedSize { + + .dialog-fixedSize, .dialog-fullscreen-lowres { position: fixed !important; top: 0 !important; bottom: 0 !important; @@ -94,5 +95,5 @@ } .dialogBackdropOpened { - opacity: .8; + opacity: .6; } 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 565d9cfc6a..96d9522955 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 @@ -38,6 +38,7 @@ .button-flat { background: transparent; box-shadow: none; + text-transform: uppercase; } .emby-button > i { diff --git a/dashboard-ui/bower_components/emby-webcomponents/imageeditor/imageeditor.js b/dashboard-ui/bower_components/emby-webcomponents/imageeditor/imageeditor.js index e3525f8074..fef5b179fe 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/imageeditor/imageeditor.js +++ b/dashboard-ui/bower_components/emby-webcomponents/imageeditor/imageeditor.js @@ -145,24 +145,24 @@ if (image.ImageType == "Backdrop" || image.ImageType == "Screenshot") { if (index > 0) { - html += ''; + html += ''; } else { - html += ''; + html += ''; } if (index < numImages - 1) { - html += ''; + html += ''; } else { - html += ''; + html += ''; } } else { if (imageProviders.length) { - html += ''; + html += ''; } } - html += ''; + html += ''; html += '
'; } @@ -208,6 +208,11 @@ hasChanges = true; reload(context, null, focusContext); + }, function() { + + require(['alert'], function (alert) { + alert(globalize.translate('sharedcomponents#DefaultErrorMessage')); + }); }); } @@ -233,25 +238,6 @@ elem.innerHTML = html; imageLoader.lazyChildren(elem); - - addListeners(elem, 'btnSearchImages', 'click', function () { - showImageDownloader(page, this.getAttribute('data-imagetype')); - }); - - addListeners(elem, 'btnDeleteImage', 'click', function () { - var type = this.getAttribute('data-imagetype'); - var index = this.getAttribute('data-index'); - index = index == "null" ? null : parseInt(index); - - deleteImage(page, currentItem.Id, type, index, apiClient, true); - }); - - addListeners(elem, 'btnMoveImage', 'click', function () { - var type = this.getAttribute('data-imagetype'); - var index = this.getAttribute('data-index'); - var newIndex = this.getAttribute('data-newindex'); - moveImage(page, apiClient, currentItem.Id, type, index, newIndex, dom.parentWithClass(this, 'itemsContainer')); - }); } function renderStandardImages(page, apiClient, item, imageInfos, imageProviders) { @@ -384,9 +370,9 @@ }); } - function initEditor(page, options) { + function initEditor(context, options) { - addListeners(page, 'btnOpenUploadMenu', 'click', function () { + addListeners(context, 'btnOpenUploadMenu', 'click', function () { var imageType = this.getAttribute('data-imagetype'); require(['components/imageuploader/imageuploader'], function (imageUploader) { @@ -400,7 +386,7 @@ if (hasChanged) { hasChanges = true; - reload(page); + reload(context); } }); }, function () { @@ -410,12 +396,32 @@ }); }); - addListeners(page, 'btnBrowseAllImages', 'click', function () { - showImageDownloader(page, this.getAttribute('data-imagetype') || 'Primary'); + addListeners(context, 'btnSearchImages', 'click', function () { + showImageDownloader(context, this.getAttribute('data-imagetype')); }); - addListeners(page, 'btnImageCard', 'click', function () { - showActionSheet(page, this); + addListeners(context, 'btnBrowseAllImages', 'click', function () { + showImageDownloader(context, this.getAttribute('data-imagetype') || 'Primary'); + }); + + addListeners(context, 'btnImageCard', 'click', function () { + showActionSheet(context, this); + }); + + addListeners(context, 'btnDeleteImage', 'click', function () { + var type = this.getAttribute('data-imagetype'); + var index = this.getAttribute('data-index'); + index = index == "null" ? null : parseInt(index); + var apiClient = connectionManager.getApiClient(currentItem.ServerId); + deleteImage(context, currentItem.Id, type, index, apiClient, true); + }); + + addListeners(context, 'btnMoveImage', 'click', function () { + var type = this.getAttribute('data-imagetype'); + var index = this.getAttribute('data-index'); + var newIndex = this.getAttribute('data-newindex'); + var apiClient = connectionManager.getApiClient(currentItem.ServerId); + moveImage(context, apiClient, currentItem.Id, type, index, newIndex, dom.parentWithClass(this, 'itemsContainer')); }); } diff --git a/dashboard-ui/bower_components/emby-webcomponents/itemhelper.js b/dashboard-ui/bower_components/emby-webcomponents/itemhelper.js index a896692f5a..43cde58260 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/itemhelper.js +++ b/dashboard-ui/bower_components/emby-webcomponents/itemhelper.js @@ -8,7 +8,7 @@ define(['apphost'], function (appHost) { options = options || {}; - var name = item.EpisodeTitle || item.Name || ''; + var name = (item.Type == 'Program' && item.IsSeries ? item.EpisodeTitle : item.Name) || ''; if (item.Type == "TvChannel") { @@ -37,7 +37,7 @@ define(['apphost'], function (appHost) { number += "-" + displayIndexNumber; } - name = number + " - " + name; + name = name ? (number + " - " + name) : number; } diff --git a/dashboard-ui/bower_components/emby-webcomponents/listview/listview.css b/dashboard-ui/bower_components/emby-webcomponents/listview/listview.css index ad3b2df178..2f08d54e69 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/listview/listview.css +++ b/dashboard-ui/bower_components/emby-webcomponents/listview/listview.css @@ -46,6 +46,7 @@ display: inline-block; vertical-align: middle; flex-shrink: 0; + contain: layout style; } .listViewDragHandle { @@ -128,7 +129,6 @@ background-color: #52B54B; padding: .5em; color: #fff; - 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); } .listItemProgressBar { @@ -191,6 +191,7 @@ .listItem, .listItemBody, .listItemMediaInfo { display: flex; + contain: layout style; } } diff --git a/dashboard-ui/bower_components/emby-webcomponents/listview/listview.js b/dashboard-ui/bower_components/emby-webcomponents/listview/listview.js index b5888e1266..129c5eb90f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/listview/listview.js +++ b/dashboard-ui/bower_components/emby-webcomponents/listview/listview.js @@ -257,7 +257,7 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan textlines.push(item.SeriesName || ' '); } - if (item.EpisodeTitle) { + if (item.IsSeries) { textlines.push(item.Name || ' '); } } @@ -267,7 +267,9 @@ define(['itemHelper', 'mediaInfo', 'indicators', 'connectionManager', 'layoutMan if (options.showIndexNumber && item.IndexNumber != null) { displayName = item.IndexNumber + ". " + displayName; } - textlines.push(displayName); + if (displayName) { + textlines.push(displayName); + } if (item.ArtistItems && item.Type != 'MusicAlbum') { textlines.push(item.ArtistItems.map(function (a) { diff --git a/dashboard-ui/bower_components/emby-webcomponents/metadataeditor/metadataeditor.template.html b/dashboard-ui/bower_components/emby-webcomponents/metadataeditor/metadataeditor.template.html index 7707937c8c..937990df90 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/metadataeditor/metadataeditor.template.html +++ b/dashboard-ui/bower_components/emby-webcomponents/metadataeditor/metadataeditor.template.html @@ -4,7 +4,7 @@ ${Edit}
- diff --git a/dashboard-ui/bower_components/emby-webcomponents/prompt/prompt.js b/dashboard-ui/bower_components/emby-webcomponents/prompt/prompt.js index cdcd83cc81..a0c1d28d6f 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/prompt/prompt.js +++ b/dashboard-ui/bower_components/emby-webcomponents/prompt/prompt.js @@ -20,8 +20,6 @@ define(['dialogHelper', 'layoutManager', 'scrollHelper', 'globalize', 'dom', 're if (layoutManager.tv) { dialogOptions.size = 'fullscreen'; - } else { - //dialogOptions.size = 'mini'; } var dlg = dialogHelper.createDialog(dialogOptions); @@ -34,6 +32,7 @@ define(['dialogHelper', 'layoutManager', 'scrollHelper', 'globalize', 'dom', 're scrollHelper.centerFocus.on(dlg.querySelector('.formDialogContent'), false); } else { dlg.querySelector('.dialogContentInner').classList.add('dialogContentInner-mini'); + dlg.classList.add('dialog-fullscreen-lowres'); } dlg.querySelector('.btnCancel').addEventListener('click', function (e) { @@ -66,6 +65,8 @@ define(['dialogHelper', 'layoutManager', 'scrollHelper', 'globalize', 'dom', 're return false; }); + dlg.querySelector('.submitText').innerHTML = options.submitText || globalize.translate('sharedcomponents#ButtonOk'); + dlg.style.minWidth = (Math.min(400, dom.getWindowSize().innerWidth - 50)) + 'px'; return dialogHelper.open(dlg).then(function () { diff --git a/dashboard-ui/bower_components/emby-webcomponents/prompt/prompt.template.html b/dashboard-ui/bower_components/emby-webcomponents/prompt/prompt.template.html index c52bcb3ebe..0438381c30 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/prompt/prompt.template.html +++ b/dashboard-ui/bower_components/emby-webcomponents/prompt/prompt.template.html @@ -16,7 +16,7 @@
diff --git a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingcreator.css b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingcreator.css index 966a20c801..234a4233b8 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingcreator.css +++ b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingcreator.css @@ -13,7 +13,7 @@ } .recordingDialog-itemName { - margin-top: .5em; + margin-top: .7em; } .recordingDialog-btnRecord { diff --git a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingeditor.js b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingeditor.js index 3603600ffc..309b39bb8b 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingeditor.js +++ b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingeditor.js @@ -126,7 +126,6 @@ if (layoutManager.tv) { dialogOptions.size = 'fullscreen'; } else { - dialogOptions.size = 'mini'; } var dlg = dialogHelper.createDialog(dialogOptions); @@ -136,6 +135,7 @@ if (!layoutManager.tv) { dlg.style['min-width'] = '20%'; + dlg.classList.add('dialog-fullscreen-lowres'); } var html = ''; diff --git a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingeditor.template.html b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingeditor.template.html index 849bdf587c..ce0d6316c8 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingeditor.template.html +++ b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingeditor.template.html @@ -15,7 +15,7 @@
-
+
${MinutesBefore}
@@ -25,7 +25,7 @@
-
+
${MinutesAfter}
diff --git a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.js b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.js index 9f3ab86bf6..10831fa537 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.js +++ b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.js @@ -59,9 +59,14 @@ }); } + function getDvrFeatureCode() { + + return appHost.dvrFeatureCode || 'dvr'; + } + function showSingleRecordingFields(context, programId, apiClient) { - getRegistration(apiClient, programId, 'dvr').then(function (regInfo) { + getRegistration(apiClient, programId, getDvrFeatureCode()).then(function (regInfo) { if (regInfo.IsRegistered) { context.querySelector('.supporterContainer').classList.add('hide'); @@ -77,7 +82,7 @@ function showRecordingFieldsContainer(context, programId, apiClient) { - getRegistration(apiClient, programId, 'dvr').then(function (regInfo) { + getRegistration(apiClient, programId, getDvrFeatureCode()).then(function (regInfo) { if (regInfo.IsRegistered) { context.querySelector('.recordingFields').classList.remove('hide'); @@ -209,16 +214,20 @@ if (isChecked) { if (!this.TimerId && !this.SeriesTimerId) { + loading.show(); recordingHelper.createRecording(apiClient, options.programId, false).then(function () { events.trigger(self, 'recordingchanged'); fetchData(self); + loading.hide(); }); } } else { if (this.TimerId) { + loading.show(); recordingHelper.cancelTimer(apiClient, this.TimerId, true).then(function () { events.trigger(self, 'recordingchanged'); fetchData(self); + loading.hide(); }); } } @@ -304,5 +313,14 @@ return this.changed; }; + recordingEditor.prototype.refresh = function () { + + fetchData(this); + }; + + recordingEditor.prototype.destroy = function () { + + }; + return recordingEditor; }); \ No newline at end of file diff --git a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.template.html b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.template.html index 9387ebc8af..0b5610bfd7 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.template.html +++ b/dashboard-ui/bower_components/emby-webcomponents/recordingcreator/recordingfields.template.html @@ -9,10 +9,6 @@ font-size: 92%; } - .manageRecordingButton { - font-size: 90%; - } - .recordingIcon { font-size: 1.3em !important; } @@ -58,7 +54,7 @@
-
+