diff --git a/dashboard-ui/css/card.css b/dashboard-ui/css/card.css index f1982d6a3e..5d32a32bb0 100644 --- a/dashboard-ui/css/card.css +++ b/dashboard-ui/css/card.css @@ -81,7 +81,14 @@ } .largeCardMargin .visualCardBox { - margin: 18px; + margin: 12px; +} + +@media all and (min-width: 600px) { + + .largeCardMargin .visualCardBox { + margin: 18px; + } } .ui-page-theme-b .visualCardBox { diff --git a/dashboard-ui/css/librarymenu.css b/dashboard-ui/css/librarymenu.css index 620bef0963..b3d1167eff 100644 --- a/dashboard-ui/css/librarymenu.css +++ b/dashboard-ui/css/librarymenu.css @@ -55,10 +55,6 @@ vertical-align: middle; } -.headerSearchButton img { - height: 18px; -} - .headerButtonLeft { padding: 0 15px; } diff --git a/dashboard-ui/css/mediaplayer-video.css b/dashboard-ui/css/mediaplayer-video.css index afe5a99e28..9de8867207 100644 --- a/dashboard-ui/css/mediaplayer-video.css +++ b/dashboard-ui/css/mediaplayer-video.css @@ -252,7 +252,7 @@ #videoPlayer .nowPlayingImage img { height: auto !important; max-width: 400px; - max-height: 280px; + max-height: 300px; } } diff --git a/dashboard-ui/css/search.css b/dashboard-ui/css/search.css index 055a7fa873..2c2299f201 100644 --- a/dashboard-ui/css/search.css +++ b/dashboard-ui/css/search.css @@ -146,36 +146,37 @@ color: #ddd; border-radius: 3px; padding: 4px 7px 3px 50px; - font-size: 14px; + font-size: 16px; font-family: Roboto; outline: none; vertical-align: middle; - width: 180px; + width: 85%; } .searchInputIcon { position: absolute; left: 20px; - top: 6px; - font-size: 14px !important; + top: 15px; + font-size: 16px !important; color: #ddd !important; } .viewMenuSearch { - position: relative; - display: none; - margin-left: 2em; + position: fixed; + top: 0; + left: 0; + right: 0; + background: #000000; + z-index: 1000; } -@media all and (min-width: 1200px) { +.viewMenuSearch:not(.hide) { + display: inline-block; +} - .viewMenuSearch { - display: inline-block; - } - - .headerSearchButton { - display: none; - } +.viewMenuSearchForm { + max-width: initial; + padding: 10px; } .searchResultsOverlay { diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js index b58187b362..00a54af932 100644 --- a/dashboard-ui/scripts/librarybrowser.js +++ b/dashboard-ui/scripts/librarybrowser.js @@ -964,7 +964,7 @@ var div = $('
').appendTo(document.body); var width = screenWidth / $('.cardImage', div).innerWidth(); div.remove(); - return width; + return Math.floor(width); } var info = {}; diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index f41efca273..1f6a42403f 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -20,15 +20,6 @@ html += '
EMBY
'; - if (user.localUser) { - - html += '
'; - html += ''; - html += ''; - html += ''; - html += '
'; - } - html += '
'; var btnCastVisible = user.localUser ? '' : 'visibility:hidden;'; @@ -43,6 +34,12 @@ if (user.localUser) { html += ''; + + html += '
'; + html += ''; + html += ''; + html += ''; + html += '
'; } if (user.name) { diff --git a/dashboard-ui/scripts/mediaplayer-video.js b/dashboard-ui/scripts/mediaplayer-video.js index dda658701c..4aecbca845 100644 --- a/dashboard-ui/scripts/mediaplayer-video.js +++ b/dashboard-ui/scripts/mediaplayer-video.js @@ -90,9 +90,8 @@ function onPopupOpen(elem) { elem.popup("open").parents(".ui-popup-container").css("margin-top", 30); - // TODO: With iOS 8 this might not be required anymore if ($.browser.safari) { - //$('.itemVideo').css('visibility', 'hidden'); + $('.itemVideo').css('visibility', 'hidden'); } } @@ -291,7 +290,7 @@ var url = ""; var imageWidth = 400; - var imageHeight = 280; + var imageHeight = 300; if (state.NowPlayingItem.PrimaryImageTag) { @@ -355,7 +354,7 @@ $('.selectedNowPlayingTabButton').removeClass('selectedNowPlayingTabButton'); $(this).addClass('selectedNowPlayingTabButton'); $('.nowPlayingTab').hide(); - $('.' + this.getAttribute('data-tab')).show('slide').trigger('scroll'); + $('.' + this.getAttribute('data-tab')).show().trigger('scroll'); } }); diff --git a/dashboard-ui/scripts/search.js b/dashboard-ui/scripts/search.js index 9bd3cb6a5a..fe12f68f38 100644 --- a/dashboard-ui/scripts/search.js +++ b/dashboard-ui/scripts/search.js @@ -11,61 +11,6 @@ } } - function updateSearchHints(page, searchTerm) { - - if (!searchTerm) { - - $('#searchHints', page).empty(); - clearSearchHintTimeout(); - return; - } - - clearSearchHintTimeout(); - - searchHintTimeout = setTimeout(function () { - - requestSearchHints(page, searchTerm); - - }, 100); - } - - function requestSearchHints(page, searchTerm) { - - var currentTimeout = searchHintTimeout; - - ApiClient.getSearchHints({ userId: Dashboard.getCurrentUserId(), searchTerm: searchTerm, limit: 10 }).done(function (result) { - - if (currentTimeout != searchHintTimeout) { - return; - } - - renderSearchHintResult(page, result.SearchHints); - }); - } - - function preg_quote(str, delimiter) { - // http://kevin.vanzonneveld.net - // + original by: booeyOH - // + improved by: Ates Goral (http://magnetiq.com) - // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) - // + bugfixed by: Onno Marsman - // + improved by: Brett Zamir (http://brett-zamir.me) - // * example 1: preg_quote("$40"); - // * returns 1: '\$40' - // * example 2: preg_quote("*RRRING* Hello?"); - // * returns 2: '\*RRRING\* Hello\?' - // * example 3: preg_quote("\\.+*?[^]$(){}=!<>|:"); - // * returns 3: '\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:' - return (str + '').replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\' + (delimiter || '') + '-]', 'g'), '\\$&'); - } - - function getHintDisplayName(data, term) { - - var regexp = new RegExp("(" + preg_quote(term) + ")", 'gi'); - - return data.replace(regexp, "$1"); - } - function getAdditionalTextLines(hint) { if (hint.Type == "Audio") { @@ -109,229 +54,14 @@ return [hint.Type]; } - function getSearchHintHtml(hint) { - - var html = ''; - - html += ''; - - var imgUrl; - - if (hint.PrimaryImageTag) { - - hint.ImageTags = { Primary: hint.PrimaryImageTag }; - - imgUrl = ApiClient.getImageUrl(hint.ItemId, { - type: "Primary", - maxWidth: 150, - maxHeight: 150, - tag: hint.PrimaryImageTag - }); - - } - else if (hint.MediaType == "Game") { - - imgUrl = "css/images/items/searchhintsv2/game.png"; - - } - else if (hint.Type == "Episode" || hint.Type == "Season" || hint.Type == "Series") { - - imgUrl = "css/images/items/searchhintsv2/tv.png"; - - } - else if (hint.Type == "Audio" || hint.Type == "MusicAlbum" || hint.Type == "MusicArtist") { - - imgUrl = "css/images/items/searchhintsv2/music.png"; - - } - else if (hint.Type == "Person") { - - imgUrl = "css/images/items/searchhintsv2/person.png"; - - } - else { - - imgUrl = "css/images/items/searchhintsv2/film.png"; - } - - html += ''; - - html += '
'; - - html += '
' + getHintDisplayName(hint.Name, hint.MatchedTerm) + '
'; - - if (hint.Type == "Audio") { - - html += '
' + [hint.AlbumArtist, hint.Album].join(" - ") + '
'; - - } - else if (hint.Type == "MusicAlbum") { - - html += '
' + hint.AlbumArtist + '
'; - - } - else if (hint.Type == "MusicArtist") { - - html += '
' + Globalize.translate('LabelArtist') + '
'; - - } - else if (hint.Type == "Movie") { - - html += '
' + Globalize.translate('LabelMovie') + '
'; - - } - else if (hint.Type == "MusicVideo") { - - html += '
' + Globalize.translate('LabelMusicVideo') + '
'; - - } - else if (hint.Type == "Episode") { - - html += '
' + Globalize.translate('LabelEpisode') + '
'; - - } - else if (hint.Type == "Series") { - - html += '
' + Globalize.translate('LabelSeries') + '
'; - - } - else { - html += '
' + (hint.Type) + '
'; - } - - var text; - - if (hint.EpisodeCount) { - - text = hint.EpisodeCount == 1 ? "1 Episode" : hint.EpisodeCount + " Episodes"; - - html += '
' + text + '
'; - } - - else if (hint.SongCount) { - - text = hint.SongCount == 1 ? "1 Song" : hint.SongCount + " Songs"; - - html += '
' + text + '
'; - } - - else if (hint.ProductionYear && hint.MediaType != "Audio" && hint.Type != "Episode") { - html += '
' + hint.ProductionYear + '
'; - } - - else if (hint.RunTimeTicks) { - html += '
' + Dashboard.getDisplayTime(hint.RunTimeTicks) + '
'; - } - - html += '
'; - - - html += '
'; - - return html; - } - - function renderSearchHintResult(page, hints) { - - var html = ''; - - for (var i = 0, length = hints.length; i < length; i++) { - html += getSearchHintHtml(hints[i]); - } - - $('#searchHints', page).html(html); - } - - function getSearchPanel(page) { - - var panel = $('#searchPanel', page); - - if (!panel.length) { - - var html = ''; - - html += '
'; - - html += '

'; - html += Globalize.translate('HeaderSearch'); - html += '

'; - - html += ''; - - html += '
'; - - html += '
'; - - $(page).append(html); - - panel = $('#searchPanel', page).panel({}).trigger('create'); - - $('#txtSearch', panel).on("keyup", function (e) { - - // Down - if (e.keyCode == 40) { - - var first = $('.searchHint', panel)[0]; - - if (first) { - first.focus(); - } - - return false; - } - - }).on("keyup", function (e) { - - if (e.keyCode != 40) { - var value = this.value; - - updateSearchHints(panel, value); - } - - }); - - $('#searchHints', page).on("keydown", '.searchHint', function (e) { - - // Down - if (e.keyCode == 40) { - - var next = $(this).next()[0]; - - if (next) { - next.focus(); - } - return false; - } - - // Up - if (e.keyCode == 38) { - - var prev = $(this).prev()[0]; - - if (prev) { - prev.focus(); - } else { - $('#txtSearch', page)[0].focus(); - } - return false; - } - }); - } - - return panel; - } - function search() { var self = this; self.showSearchPanel = function (page) { - var panel = getSearchPanel(page); - - $(panel).panel('toggle'); - - $('#txtSearch').focus(); + $('.viewMenuSearch').removeClass('hide').animate({ "left": "0px" }, "fast"); + $('.headerSearchInput').focus(); }; } window.Search = new search(); @@ -417,13 +147,11 @@ function onHeaderSearchChange(val) { if (val) { - $('.btnCloseSearch').show(); updateSearchOverlay(getSearchOverlay(true).fadeIn('fast'), val); $(document.body).addClass('bodyWithPopupOpen'); } else { - $('.btnCloseSearch').hide(); updateSearchOverlay(getSearchOverlay(false).fadeOut('fast'), val); $(document.body).removeClass('bodyWithPopupOpen'); } @@ -469,6 +197,7 @@ function closeSearchOverlay() { $('.headerSearchInput').val(''); onHeaderSearchChange(''); + $('.viewMenuSearch').addClass('hide'); } $(document).on('pagehide', ".libraryPage", function () {