diff --git a/dashboard-ui/autoorganizetv.html b/dashboard-ui/autoorganizetv.html index 46b0cbed60..71bd69db7e 100644 --- a/dashboard-ui/autoorganizetv.html +++ b/dashboard-ui/autoorganizetv.html @@ -77,64 +77,64 @@ - Series name + ${LabelSeriesName} %sn - Series Name + ${LabelSeriesName} - Series name + ${LabelSeriesName} %s.n - Series.Name + ${ValueSeriesNamePeriod} - Series name + ${LabelSeriesName} %s_n - Series_Name + ${ValueSeriesNameUnderscore} - Season number + ${LabelSeasonNumber} %s 1 - Season number + ${LabelSeasonNumber} %0s 01 - Episode number + ${LabelEpisodeNumber} %e 4 - Episode number + ${LabelEpisodeNumber} %0e 04 - Ending episode number + ${LabelEndingEpisodeNumber} %ed 5 - Ending episode number + ${LabelEndingEpisodeNumber} %0ed 05 - Episode name + ${LabelEpisodeName} %en - Episode Name + ${LabelEpisodeName} - Episode name + ${LabelEpisodeName} %e.n - Episode.Name + ${ValueEpisodeNamePeriod} - Episode name + ${LabelEpisodeName} %e_n - Episode_Name + ${ValueEpisodeNameUnderscore} diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css index 6615e04ead..9caa29de0b 100644 --- a/dashboard-ui/css/librarybrowser.css +++ b/dashboard-ui/css/librarybrowser.css @@ -458,7 +458,7 @@ a.itemTag:hover { } .libraryPanelHeader { - margin: 5px 0 25px 0; + margin: 5px 0 15px 0; } .libraryPanelHeader a { @@ -515,7 +515,7 @@ a.itemTag:hover { .detailImageProgressContainer progress { width: 100%; margin: 0 auto; - height: 7px; + height: 6px; } .viewControls, .listTopPaging { diff --git a/dashboard-ui/css/librarymenu.css b/dashboard-ui/css/librarymenu.css index 15e81c3d67..2cb8bd4885 100644 --- a/dashboard-ui/css/librarymenu.css +++ b/dashboard-ui/css/librarymenu.css @@ -22,7 +22,7 @@ display: none; } -.desktopLibraryMenuDivider { +.libraryMenuDivider { height: 1px; background: #333; margin: .5em 0; @@ -74,80 +74,62 @@ .viewMenuTextLink { display: block; - padding: .6em .5em .6em 37px!important; + padding: .6em .5em .6em 41px!important; font-size: 15px; font-weight: 300!important; font-family: Roboto; + background-repeat: no-repeat; + background-size: 18px 18px; } .musicViewMenu { background-image: url(images/items/folders/music.png); - background-repeat: no-repeat; - background-size: 18px 18px; - background-position: 10px 8px; + background-position: 14px 8px; } .tvshowsViewMenu { background-image: url(images/items/folders/tv.png); - background-repeat: no-repeat; - background-size: 18px 18px; - background-position: 10px 8px; + background-position: 14px 8px; } .moviesViewMenu { background-image: url(images/items/folders/movies.png); - background-repeat: no-repeat; - background-size: 18px 18px; - background-position: 10px center; + background-position: 14px center; } .gamesViewMenu { background-image: url(images/items/folders/games.png); - background-repeat: no-repeat; - background-size: 18px 18px; - background-position: 10px 8px; + background-position: 14px 8px; } .channelsViewMenu { background-image: url(images/items/folders/channels.png); - background-repeat: no-repeat; - background-size: 18px 18px; - background-position: 10px center; + background-position: 14px center; } .booksViewMenu { background-image: url(images/items/folders/books.png); - background-repeat: no-repeat; - background-size: 18px 18px; - background-position: 10px center; + background-position: 14px center; } .musicvideosViewMenu { background-image: url(images/items/folders/musicvideos.png); - background-repeat: no-repeat; - background-size: 18px 18px; - background-position: 10px 8px; + background-position: 14px 8px; } .photosViewMenu { background-image: url(images/items/folders/photos.png); - background-repeat: no-repeat; - background-size: 18px 18px; - background-position: 10px 8px; + background-position: 14px 8px; } .homeVideosViewMenu { background-image: url(images/items/folders/homevideos.png); - background-repeat: no-repeat; - background-size: 18px 18px; - background-position: 10px center; + background-position: 14px center; } .generalViewMenu, .boxsetsViewMenu { background-image: url(images/items/folders/folder.png); - background-repeat: no-repeat; - background-size: 18px 18px; - background-position: 10px center; + background-position: 14px center; } .viewMenuSecondary { @@ -163,6 +145,10 @@ background-color: rgba(51,136,204,.8)!important; } +.ui-panel.ui-body-b { + background-color: #181818; +} + .libraryViewNav { height: 48px; overflow: hidden; diff --git a/dashboard-ui/css/posteritem.css b/dashboard-ui/css/posteritem.css index db99c1f929..8364aa463a 100644 --- a/dashboard-ui/css/posteritem.css +++ b/dashboard-ui/css/posteritem.css @@ -177,7 +177,7 @@ } .miniPosterItemProgress .itemProgressBar { - height: 8px; + height: 6px; opacity: 1; } diff --git a/dashboard-ui/css/site.css b/dashboard-ui/css/site.css index 4205d66bdd..575ffe4022 100644 --- a/dashboard-ui/css/site.css +++ b/dashboard-ui/css/site.css @@ -75,6 +75,12 @@ h1, h1 a { font-family: Roboto; } +.ui-loader h1 { + font-family: 'Open Sans'; + font-weight: bold!important; + font-size: 18px; +} + .ui-loader h1 { font-weight: bold; } diff --git a/dashboard-ui/itemdetails.html b/dashboard-ui/itemdetails.html index 6ad3ebf21f..6304402975 100644 --- a/dashboard-ui/itemdetails.html +++ b/dashboard-ui/itemdetails.html @@ -82,7 +82,7 @@
-
+
diff --git a/dashboard-ui/library.html b/dashboard-ui/library.html index 09761315f7..35f07a1f4a 100644 --- a/dashboard-ui/library.html +++ b/dashboard-ui/library.html @@ -26,7 +26,7 @@
-
Last Result:
+
${LabelLastResult}
diff --git a/dashboard-ui/livetvstatus.html b/dashboard-ui/livetvstatus.html index 2fdea939bf..a70ec3f96b 100644 --- a/dashboard-ui/livetvstatus.html +++ b/dashboard-ui/livetvstatus.html @@ -19,16 +19,16 @@ +
+

${HeaderTypeText}

+
+ +
+
+
+ + +
+

+ +

+
+ +
+
@@ -121,7 +138,8 @@ + $('.typeTextForm').off('submit', NowPlayingPage.onSendStringSubmit).on('submit', NowPlayingPage.onSendStringSubmit); + diff --git a/dashboard-ui/plugincatalog.html b/dashboard-ui/plugincatalog.html index ab06fb7c83..0904160def 100644 --- a/dashboard-ui/plugincatalog.html +++ b/dashboard-ui/plugincatalog.html @@ -11,21 +11,18 @@ ${TabMyPlugins} ${TabCatalog} -

- Types: Free, - Supporter-Only, and Premium. -

+
- Display plugins for: + ${LabelDisplayPluginsFor} - + - + - + - +

@@ -34,41 +31,13 @@


-
No available plugins
+
${MessageNoAvailablePlugins}
- -
- Close -

- Free plug-ins can be installed and used by anyone for free. They will appear in the catalog without any banners.

-

- -
- Close -

Supporter-Only plug-ins are free for anyone who is an MB3 Supporter (with a valid MB3 key who has donated the minimum amount to the overall project).

-

- Anyone can install them and enjoy a free trial period of 14 days in most instances. The trial period may commence as soon as you install the plug-in.

-

These plug-ins will appear in the catalog with a "Supporter" banner.

-
- -
- Close -

- Premium plug-ins are developed by third-parties and require that you be an MB3 Supporter and also register the plug-in with its creator. - The cost of registering these plug-ins is set for each one by its creator and all revenues go to that person. -

-

Anyone can install them and enjoy a free trial period of 14 days in most instances. The trial period may commence as soon as you install the plug-in.

-

- You should install premium plug-ins without registering them first to take advantage of this trial period. Then, if you find the functionality useful, - you can register it via its detail page here in the catalog. -

-

These plug-ins will appear in the catalog with a "Premium" banner.

-
diff --git a/dashboard-ui/scripts/episodes.js b/dashboard-ui/scripts/episodes.js index e673cc5d41..f293e4c338 100644 --- a/dashboard-ui/scripts/episodes.js +++ b/dashboard-ui/scripts/episodes.js @@ -33,12 +33,14 @@ updateFilterControls(); + var screenWidth = $(window).width(); + html += LibraryBrowser.getPosterViewHtml({ items: result.Items, shape: "backdrop", showTitle: true, showParentTitle: true, - overlayText: true, + overlayText: screenWidth >= 600, selectionPanel: true, lazy: true }); diff --git a/dashboard-ui/scripts/indexpage.js b/dashboard-ui/scripts/indexpage.js index 8eb902f213..e3fc936530 100644 --- a/dashboard-ui/scripts/indexpage.js +++ b/dashboard-ui/scripts/indexpage.js @@ -136,7 +136,7 @@ items: result.Items, preferBackdrop: true, shape: 'backdrop', - overlayText: true, + overlayText: screenWidth >= 600, showTitle: true, showParentTitle: true diff --git a/dashboard-ui/scripts/itembynamedetailpage.js b/dashboard-ui/scripts/itembynamedetailpage.js index f51044bf7c..3a2e4df509 100644 --- a/dashboard-ui/scripts/itembynamedetailpage.js +++ b/dashboard-ui/scripts/itembynamedetailpage.js @@ -415,6 +415,8 @@ $('.viewSettings', page).hide(); } + var screenWidth = $(window).width(); + if (query.IncludeItemTypes == "Audio") { html += LibraryBrowser.getSongTableHtml(result.Items, { @@ -442,7 +444,7 @@ shape: "backdrop", showTitle: true, showParentTitle: true, - overlayText: true + overlayText: screenWidth >= 600 }); } diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js index 94a8a96569..df334d5e79 100644 --- a/dashboard-ui/scripts/itemdetailpage.js +++ b/dashboard-ui/scripts/itemdetailpage.js @@ -1069,12 +1069,7 @@ continue; } - var type; - if (item.MediaType == "Audio" && stream.Type == "Video") { - type = "Embedded Image"; - } else { - type = stream.Type; - } + var type = stream.Type.replace('EmbeddedImage', 'Embedded Image'); html += '
'; diff --git a/dashboard-ui/scripts/librarymenu.js b/dashboard-ui/scripts/librarymenu.js index 1e3b2e1ee6..96ef314ef5 100644 --- a/dashboard-ui/scripts/librarymenu.js +++ b/dashboard-ui/scripts/librarymenu.js @@ -75,9 +75,9 @@ return LibraryBrowser.getHref(item); } - - function insertViews(page, user, counts, items, liveTvInfo) { - + + function getViewsHtml(userId, counts, items, liveTvInfo) { + var html = ''; html += items.map(function (i) { @@ -89,10 +89,10 @@ }).join(''); var showChannels = counts.ChannelCount; - var showLiveTv = liveTvInfo.EnabledUsers.indexOf(user.Id) != -1; + var showLiveTv = liveTvInfo.EnabledUsers.indexOf(userId) != -1; if (showChannels || showLiveTv) { - html += '
'; + html += '
'; } if (showChannels) { @@ -103,7 +103,7 @@ html += 'Live TV'; } - $('.desktopLibraryMenu', page).html(html); + return html; } function showLibraryMenu() { @@ -136,23 +136,10 @@ html += '

MEDIABROWSER

'; - html += '
    '; + html += '
    '; + html += getViewsHtml(Dashboard.getCurrentUserId(), counts, items, liveTvInfo); + html += '
    '; - html += items.map(function (i) { - - return '
  • ' + i.Name + '
  • '; - - }).join(''); - - if (counts.ChannelCount) { - html += '
  • Channels
  • '; - } - - if (liveTvInfo.EnabledUsers.indexOf(Dashboard.getCurrentUserId()) != -1) { - html += '
  • Live TV
  • '; - } - - html += '
'; html += '
'; $(page).append(html); @@ -160,6 +147,8 @@ panel = $('#libraryPanel', page).panel({}).trigger('create'); } + updateLibraryNavLinks(page); + return panel; } @@ -201,7 +190,7 @@ sessionStorage.setItem('topParentId', id); - $('.lnkMediaFolder', page).each(function () { + $('.lnkMediaFolder').each(function () { var itemId = this.getAttribute('data-itemid'); @@ -266,7 +255,8 @@ var items = response2[0].Items; var liveTvInfo = response3[0]; - insertViews(page, user, counts, items, liveTvInfo); + var html = getViewsHtml(user.Id, counts, items, liveTvInfo); + $('.desktopLibraryMenu', page).html(html); updateLibraryNavLinks(page); diff --git a/dashboard-ui/scripts/livetvrecordinglist.js b/dashboard-ui/scripts/livetvrecordinglist.js index a4209f5b49..ab995607a5 100644 --- a/dashboard-ui/scripts/livetvrecordinglist.js +++ b/dashboard-ui/scripts/livetvrecordinglist.js @@ -22,13 +22,15 @@ updateFilterControls(); + var screenWidth = $(window).width(); + html += LibraryBrowser.getPosterViewHtml({ items: result.Items, shape: "backdrop", showTitle: true, showParentTitle: true, - overlayText: true, + overlayText: screenWidth >= 600, coverImage: true }); diff --git a/dashboard-ui/scripts/livetvrecordings.js b/dashboard-ui/scripts/livetvrecordings.js index 329a8420d7..cd038d45c5 100644 --- a/dashboard-ui/scripts/livetvrecordings.js +++ b/dashboard-ui/scripts/livetvrecordings.js @@ -43,6 +43,8 @@ function renderRecordings(elem, recordings) { + var screenWidth = $(window).width(); + if (recordings.length) { elem.show(); } else { @@ -55,7 +57,7 @@ shape: "backdrop", showTitle: true, showParentTitle: true, - overlayText: true, + overlayText: screenWidth >= 600, coverImage: true })).createPosterItemMenus(); diff --git a/dashboard-ui/scripts/livetvseriestimer.js b/dashboard-ui/scripts/livetvseriestimer.js index 28bdfc1aa6..39f5734398 100644 --- a/dashboard-ui/scripts/livetvseriestimer.js +++ b/dashboard-ui/scripts/livetvseriestimer.js @@ -116,20 +116,22 @@ return false; } - + function renderRecordings(page, result) { - + + var screenWidth = $(window).width(); + $('.recordingsTab', page).html(LibraryBrowser.getPosterViewHtml({ items: result.Items, shape: "smallBackdrop", showTitle: true, - overlayText: true, + overlayText: screenWidth >= 600, coverImage: true })).createPosterItemMenus(); } - + function renderSchedule(page, result) { var timers = result.Items; @@ -176,7 +178,7 @@ html += ''; html += '

'; - + if (program.IsLive) { html += 'LIVE  '; } diff --git a/dashboard-ui/scripts/livetvsuggested.js b/dashboard-ui/scripts/livetvsuggested.js index 9b230bee2c..058864064e 100644 --- a/dashboard-ui/scripts/livetvsuggested.js +++ b/dashboard-ui/scripts/livetvsuggested.js @@ -3,6 +3,7 @@ function reload(page) { Dashboard.showLoadingMsg(); + var screenWidth = $(window).width(); apiClient.getLiveTvRecommendedPrograms({ @@ -11,14 +12,14 @@ limit: 12 }).done(function (result) { - + var html = LibraryBrowser.getPosterViewHtml({ items: result.Items, shape: "square", showTitle: true, showParentTitle: true, - overlayText: true, + overlayText: screenWidth >= 600, coverImage: true }); @@ -41,7 +42,7 @@ shape: "square", showTitle: true, showParentTitle: true, - overlayText: true, + overlayText: screenWidth >= 600, coverImage: true }); diff --git a/dashboard-ui/scripts/moviesrecommended.js b/dashboard-ui/scripts/moviesrecommended.js index 2bdf0cb206..24b40dcf3b 100644 --- a/dashboard-ui/scripts/moviesrecommended.js +++ b/dashboard-ui/scripts/moviesrecommended.js @@ -68,7 +68,7 @@ items: result.Items, preferBackdrop: true, shape: 'backdrop', - overlayText: true, + overlayText: screenWidth >= 600, showTitle: true })).createPosterItemMenus(); diff --git a/dashboard-ui/scripts/nowplayingpage.js b/dashboard-ui/scripts/nowplayingpage.js index 48fb791f86..1b9c9d1f08 100644 --- a/dashboard-ui/scripts/nowplayingpage.js +++ b/dashboard-ui/scripts/nowplayingpage.js @@ -275,6 +275,7 @@ $('.btnChapters', page).buttonEnabled(item && item.Chapters && item.Chapters.length); $('.sendMessageElement', page).buttonEnabled(supportedCommands.indexOf('DisplayMessage') != -1); + $('.typeTextElement', page).buttonEnabled(supportedCommands.indexOf('SendString') != -1); $('.btnStop', page).buttonEnabled(item != null); $('.btnNextTrack', page).buttonEnabled(item != null); @@ -490,6 +491,25 @@ $('input', form).val(''); Dashboard.alert('Message sent.'); + return false; + }, + + onSendStringSubmit: function() { + + var form = this; + + MediaController.sendCommand({ + Name: 'SendString', + Arguments: { + + String: $('#txtTypeText', form).val() + } + + }, currentPlayer); + + $('input', form).val(''); + Dashboard.alert('Text sent.'); + return false; } diff --git a/dashboard-ui/scripts/plugincatalogpage.js b/dashboard-ui/scripts/plugincatalogpage.js index e964ca0f1c..42740b3647 100644 --- a/dashboard-ui/scripts/plugincatalogpage.js +++ b/dashboard-ui/scripts/plugincatalogpage.js @@ -17,7 +17,8 @@ tileColor: "#050810", thumbImage: "https://github.com/MediaBrowser/MediaBrowser.Resources/raw/master/images/mbkinect/thumb.png", externalUrl: "http://mediabrowser.tv/community/index.php?/topic/850-media-browser-kinect-sensor-plug-in-support/", - isPremium: false + isPremium: false, + isExternal: true }); return apps; @@ -108,15 +109,17 @@ html += ""; - html += "

"; - html += plugin.price > 0 ? "$" + plugin.price.toFixed(2) : "Free"; - html += Dashboard.getStoreRatingHtml(plugin.avgRating, plugin.id, plugin.name); + if (!plugin.isExternal) { + html += "
"; + html += plugin.price > 0 ? "$" + plugin.price.toFixed(2) : "Free"; + html += Dashboard.getStoreRatingHtml(plugin.avgRating, plugin.id, plugin.name); - html += ""; - html += " " + plugin.totalRatings + " Reviews"; - html += ""; + html += ""; + html += " " + plugin.totalRatings + " Reviews"; + html += ""; - html += "
"; + html += "
"; + } var installedPlugin = plugin.isApp ? null : installedPlugins.filter(function (ip) { return ip.Name == plugin.name; diff --git a/dashboard-ui/scripts/tvgenres.js b/dashboard-ui/scripts/tvgenres.js index b150577372..2b638d6c88 100644 --- a/dashboard-ui/scripts/tvgenres.js +++ b/dashboard-ui/scripts/tvgenres.js @@ -35,7 +35,6 @@ items: result.Items, shape: "backdrop", showTitle: false, - overlayText: false, context: 'tv', preferThumb: true, showItemCounts: true, diff --git a/dashboard-ui/scripts/tvlatest.js b/dashboard-ui/scripts/tvlatest.js index 64565c67f2..702437a862 100644 --- a/dashboard-ui/scripts/tvlatest.js +++ b/dashboard-ui/scripts/tvlatest.js @@ -28,7 +28,7 @@ shape: "backdrop", showTitle: true, showParentTitle: true, - overlayText: true + overlayText: screenWidth >= 600 })).createPosterItemMenus(); diff --git a/dashboard-ui/scripts/tvrecommended.js b/dashboard-ui/scripts/tvrecommended.js index caf0f10d0e..a153ccfd10 100644 --- a/dashboard-ui/scripts/tvrecommended.js +++ b/dashboard-ui/scripts/tvrecommended.js @@ -32,7 +32,7 @@ shape: "backdrop", showTitle: true, showParentTitle: true, - overlayText: true + overlayText: screenWidth >= 600 })).createPosterItemMenus(); @@ -41,6 +41,8 @@ function loadNextUp(page) { + var screenWidth = $(window).width(); + var parentId = LibraryMenu.getTopParentId(); var options = { @@ -65,7 +67,7 @@ shape: "backdrop", showTitle: true, showParentTitle: true, - overlayText: true + overlayText: screenWidth >= 600 })).createPosterItemMenus(); diff --git a/dashboard-ui/scripts/tvstudios.js b/dashboard-ui/scripts/tvstudios.js index 048f7147e5..9f1012633b 100644 --- a/dashboard-ui/scripts/tvstudios.js +++ b/dashboard-ui/scripts/tvstudios.js @@ -35,7 +35,6 @@ items: result.Items, shape: "backdrop", showTitle: false, - overlayText: false, context: 'tv', preferThumb: true, showItemCounts: true,