diff --git a/dashboard-ui/components/tvguide/tvguide.js b/dashboard-ui/components/tvguide/tvguide.js index 8e7b7fea68..bcf6684d66 100644 --- a/dashboard-ui/components/tvguide/tvguide.js +++ b/dashboard-ui/components/tvguide/tvguide.js @@ -63,7 +63,9 @@ // Add one second to avoid getting programs that are just ending date = new Date(date.getTime() + 1000); - var nextDay = new Date(date.getTime() + msPerDay - 1); + // Subtract to avoid getting programs that are starting when the grid ends + var nextDay = new Date(date.getTime() + msPerDay - 2000); + Logger.log(nextDay); channelsPromise.done(function (channelsResult) { @@ -213,9 +215,7 @@ var endPercent = (renderEndMs - renderStartMs) / msPerDay; endPercent *= 100; - html += '
'; - - var cssClass = "programCellInner"; + var cssClass = "programCell"; var addAccent = true; if (program.IsKids) { @@ -232,7 +232,7 @@ addAccent = false; } - html += ''; + html += ''; html += '
'; html += program.Name; @@ -269,8 +269,6 @@ } html += ''; - - html += '
'; } html += '
'; @@ -291,9 +289,9 @@ programGrid.innerHTML = html.join(''); $(programGrid).scrollTop(0).scrollLeft(0); - + if (options.enableHoverMenu) { - $(programGrid).createGuideHoverMenu('.programCellInner'); + $(programGrid).createGuideHoverMenu('.programCell'); } } diff --git a/dashboard-ui/css/livetv.css b/dashboard-ui/css/livetv.css index 3703ad806c..601dafb7d4 100644 --- a/dashboard-ui/css/livetv.css +++ b/dashboard-ui/css/livetv.css @@ -98,7 +98,7 @@ .programAccent { position: absolute; bottom: 0; - left: 6px; + left: 0; right: 0; height: 2px; } @@ -267,13 +267,9 @@ position: absolute; top: 0; bottom: 6px; -} - -.programCellInner { border-left: 6px solid #161616; background-color: #212121; display: block; - height: 100%; color: #fff !important; text-decoration: none; font-weight: 400 !important; diff --git a/dashboard-ui/itemdetails.html b/dashboard-ui/itemdetails.html index 05a854b0c6..4921f38618 100644 --- a/dashboard-ui/itemdetails.html +++ b/dashboard-ui/itemdetails.html @@ -195,8 +195,8 @@

${HeaderMediaInfo}

-
- +
+ ${ButtonSplitVersionsApart}
diff --git a/dashboard-ui/scripts/librarylist.js b/dashboard-ui/scripts/librarylist.js index 2f66cc02ce..f442444322 100644 --- a/dashboard-ui/scripts/librarylist.js +++ b/dashboard-ui/scripts/librarylist.js @@ -1248,6 +1248,12 @@ ironIcon: 'playlist-add' }); + items.push({ + name: Globalize.translate('HeaderGroupVersions'), + id: 'groupvideos', + ironIcon: 'call-merge' + }); + items.push({ name: Globalize.translate('ButtonRefresh'), id: 'refresh', @@ -1282,6 +1288,9 @@ PlaylistManager.showPanel(items); hideSelections(); break; + case 'groupvideos': + combineVersions($($.mobile.activePage)[0], items); + break; case 'refresh': items.map(function (itemId) { @@ -1318,14 +1327,7 @@ }); } - function getSelectedItems() { - - return selectedItems; - } - - function combineVersions(page) { - - var selection = getSelectedItems(); + function combineVersions(page, selection) { if (selection.length < 2) { @@ -1337,15 +1339,7 @@ return; } - var names = $('.chkItemSelect:checked', page).parents('.card').get().reverse().map(function (e) { - - return $('.cardText', e).html(); - - }).join('
'); - - var msg = Globalize.translate('MessageTheFollowingItemsWillBeGrouped') + "

" + names; - - msg += "

" + Globalize.translate('MessageConfirmItemGrouping'); + var msg = Globalize.translate('MessageTheSelectedItemsWillBeGrouped'); Dashboard.confirm(msg, Globalize.translate('HeaderGroupVersions'), function (confirmResult) { @@ -1361,7 +1355,7 @@ }).done(function () { Dashboard.hideLoadingMsg(); - + hideSelections(); $('.itemsContainer', page).trigger('needsrefresh'); }); } diff --git a/dashboard-ui/strings/javascript/javascript.json b/dashboard-ui/strings/javascript/javascript.json index 35112e3f6a..109b82688a 100644 --- a/dashboard-ui/strings/javascript/javascript.json +++ b/dashboard-ui/strings/javascript/javascript.json @@ -215,8 +215,7 @@ "MessageChromecastConnectionError": "Your Chromecast receiver is unable to connect to your Emby Server. Please check their connections and try again.", "MessagePleaseSelectOneItem": "Please select at least one item.", "MessagePleaseSelectTwoItems": "Please select at least two items.", - "MessageTheFollowingItemsWillBeGrouped": "The following titles will be grouped into one item:", - "MessageConfirmItemGrouping": "Emby apps will automatically choose the optimal version to play based on device and network performance. Are you sure you wish to continue?", + "MessageTheSelectedItemsWillBeGrouped": "The selected videos will be grouped into one virtual item. Emby apps will automatically choose which version to play based on device and network performance. Are you sure you wish to continue?", "HeaderResume": "Resume", "HeaderMyViews": "My Views", "HeaderLibraryFolders": "Media Folders", diff --git a/dashboard-ui/thirdparty/emby-icons.html b/dashboard-ui/thirdparty/emby-icons.html index 4ace276125..009ce14c89 100644 --- a/dashboard-ui/thirdparty/emby-icons.html +++ b/dashboard-ui/thirdparty/emby-icons.html @@ -40,6 +40,7 @@ See [iron-iconset](#iron-iconset) and [iron-iconset-svg](#iron-iconset-svg) for + diff --git a/dashboard-ui/vulcanize-out.html b/dashboard-ui/vulcanize-out.html index 46c02bbc8c..a725ff4318 100644 --- a/dashboard-ui/vulcanize-out.html +++ b/dashboard-ui/vulcanize-out.html @@ -19494,6 +19494,7 @@ iron-selector:not(.narrow-layout) #main ::content [paper-drawer-toggle] { +