diff --git a/dashboard-ui/css/card.css b/dashboard-ui/css/card.css
index 057e13595..cee9051ff 100644
--- a/dashboard-ui/css/card.css
+++ b/dashboard-ui/css/card.css
@@ -125,11 +125,11 @@
right: 0;
}
- .cardContent:hover {
+ /*.cardContent:hover {
-moz-box-shadow: 0 0 0 5px #38c;
-webkit-box-shadow: 0 0 0 5px #38c;
box-shadow: 0 0 0 5px #38c;
- }
+ }*/
.alternateHover:hover .cardContent {
-moz-box-shadow: none;
@@ -137,7 +137,7 @@
box-shadow: none;
}
-.alternateHover:hover .cardImage {
+.cardContent:hover .cardImage {
opacity: .5;
}
@@ -185,7 +185,6 @@
white-space: nowrap;
padding: 5px 4px 2px;
text-shadow: none;
- font-size: 13px;
font-weight: 400;
}
@@ -399,10 +398,6 @@
width: 16.666666666666666666666666666667%;
}
- .bannerCard {
- width: 25%;
- }
-
.portraitCard {
width: 10%;
}
@@ -430,10 +425,10 @@
.squareCard {
width: 9.0909090909090909090909090909091%;
}
-}
-
-@media all and (min-width: 1920px) {
+ .bannerCard {
+ width: 25%;
+ }
.portraitCard {
width: 9.0909090909090909090909090909091%;
@@ -700,3 +695,32 @@
width: 16.666666666666666666666666666667%;
}
}
+
+/*.touch .mobileItemsContainer {
+ white-space: nowrap;
+ overflow-y: hidden;
+ overflow-x: scroll;
+ -ms-overflow-style: none;
+ overflow: -moz-scrollbars-none;
+}
+
+.touch .mobileItemsContainer::-webkit-scrollbar {
+ height: 0 !important;
+ display: none;
+}
+
+.touch .mobileItemsContainer .card {
+ width: 80%;
+}
+
+.touch .mobileItemsContainer .homePageBackdropCard, .touch .mobileItemsContainer .homePageSmallBackdropCard {
+ max-width: 320px;
+}
+
+.touch .mobileItemsContainer .homePagePortraitCard {
+ max-width: 150px;
+}
+
+.touch .mobileItemsContainer .homePageSquareCard {
+ max-width: 200px;
+}*/
\ No newline at end of file
diff --git a/dashboard-ui/css/fonts/OpenSans-Bold.woff b/dashboard-ui/css/fonts/OpenSans-Bold.woff
deleted file mode 100644
index 27619e7ce..000000000
Binary files a/dashboard-ui/css/fonts/OpenSans-Bold.woff and /dev/null differ
diff --git a/dashboard-ui/css/fonts/OpenSans-ExtraBold.woff b/dashboard-ui/css/fonts/OpenSans-ExtraBold.woff
deleted file mode 100644
index 888b779c7..000000000
Binary files a/dashboard-ui/css/fonts/OpenSans-ExtraBold.woff and /dev/null differ
diff --git a/dashboard-ui/css/fonts/OpenSans-Light.woff b/dashboard-ui/css/fonts/OpenSans-Light.woff
deleted file mode 100644
index 99f335326..000000000
Binary files a/dashboard-ui/css/fonts/OpenSans-Light.woff and /dev/null differ
diff --git a/dashboard-ui/css/fonts/OpenSans.woff b/dashboard-ui/css/fonts/OpenSans.woff
deleted file mode 100644
index 55b25f867..000000000
Binary files a/dashboard-ui/css/fonts/OpenSans.woff and /dev/null differ
diff --git a/dashboard-ui/css/librarybrowser.css b/dashboard-ui/css/librarybrowser.css
index ca0efab9f..cfd915afa 100644
--- a/dashboard-ui/css/librarybrowser.css
+++ b/dashboard-ui/css/librarybrowser.css
@@ -323,7 +323,6 @@
background-color: #181818;
border-radius: 4px;
padding: 5px 7px;
- font-size: 13px;
margin: 0 5px 5px 0;
color: #fff !important;
text-decoration: none;
@@ -345,7 +344,6 @@ a.itemTag:hover {
.reviewerName {
color: #ccc;
- font-size: 13px;
margin-top: .5em;
}
diff --git a/dashboard-ui/css/librarymenu.css b/dashboard-ui/css/librarymenu.css
index 6bfc835d2..4b3235f4e 100644
--- a/dashboard-ui/css/librarymenu.css
+++ b/dashboard-ui/css/librarymenu.css
@@ -166,6 +166,18 @@
z-index: 1000;
background-image: linear-gradient(#1a1a1a,#1a1a1a);
border-bottom: 1px solid #111;
+ text-align: center;
+ font-size: 14px;
+ white-space: nowrap;
+ padding: 0 0 0;
+ overflow-x: scroll;
+ -ms-overflow-style: none;
+ overflow: -moz-scrollbars-none;
+}
+
+.libraryViewNav::-webkit-scrollbar {
+ height: 0 !important;
+ display: none;
}
.viewMenuLink {
@@ -290,15 +302,6 @@
background-color: #222;
}
-.libraryViewNavInner {
- text-align: center;
- font-size: 14px;
- white-space: nowrap;
- padding: 0 0 0;
- overflow-x: auto;
- height: 61px;
-}
-
.libraryViewNav .ui-btn-active {
border-bottom-color: #38c;
color: #fff !important;
diff --git a/dashboard-ui/css/livetv.css b/dashboard-ui/css/livetv.css
index 3b73648b9..c4682992f 100644
--- a/dashboard-ui/css/livetv.css
+++ b/dashboard-ui/css/livetv.css
@@ -246,7 +246,6 @@
.guideProgramName {
padding: .35em .5em;
- font-size: 14px;
}
.guideProgramTime {
diff --git a/dashboard-ui/css/search.css b/dashboard-ui/css/search.css
index 437f685d1..cffb4b7c9 100644
--- a/dashboard-ui/css/search.css
+++ b/dashboard-ui/css/search.css
@@ -42,13 +42,11 @@
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
- font-size: 13px;
color: #fff;
font-weight: normal !important;
}
.searchHintSecondaryText {
- font-size: 13px;
color: #fff;
margin-top: 3px;
white-space: nowrap;
diff --git a/dashboard-ui/css/site.css b/dashboard-ui/css/site.css
index 538beac4f..c85857955 100644
--- a/dashboard-ui/css/site.css
+++ b/dashboard-ui/css/site.css
@@ -1,32 +1,4 @@
@font-face {
- font-family: 'Open Sans';
- font-style: normal;
- font-weight: 300;
- src: local('Open Sans Light'), local('OpenSans-Light'), url(fonts/OpenSans-Light.woff) format('woff');
-}
-
-@font-face {
- font-family: 'Open Sans';
- font-style: normal;
- font-weight: 400;
- src: local('Open Sans'), local('OpenSans'), url(fonts/OpenSans.woff) format('woff');
-}
-
-@font-face {
- font-family: 'Open Sans';
- font-style: normal;
- font-weight: 700;
- src: local('Open Sans Bold'), local('OpenSans-Bold'), url(fonts/OpenSans-Bold.woff) format('woff');
-}
-
-@font-face {
- font-family: 'Open Sans';
- font-style: normal;
- font-weight: 800;
- src: local('Open Sans Extrabold'), local('OpenSans-Extrabold'), url(fonts/OpenSans-ExtraBold.woff) format('woff');
-}
-
-@font-face {
font-family: 'Roboto';
font-style: normal;
font-weight: 100;
@@ -92,7 +64,6 @@ body {
h1, h1 a {
font-weight: 300 !important;
- font-size: 30px;
}
.libraryPage h1, .libraryPage h1 a {
@@ -111,7 +82,6 @@ h1, h1 a {
h2 {
font-weight: 400;
- font-size: 1.68em;
}
/*a, a.ui-link {
diff --git a/dashboard-ui/css/tileitem.css b/dashboard-ui/css/tileitem.css
index d4893892d..57d8f6241 100644
--- a/dashboard-ui/css/tileitem.css
+++ b/dashboard-ui/css/tileitem.css
@@ -78,10 +78,6 @@
width: 60%;
}
-.smallPosterTileItem .tileName {
- font-weight: normal;
-}
-
.smallBackdropTileItem .tileImage {
height: 125px;
width: 45%;
@@ -91,10 +87,6 @@
width: 50%;
}
-.smallBackdropTileItem .tileName {
- font-weight: normal;
-}
-
.squareTileItem .tileImage {
height: 100px;
width: 35%;
@@ -104,18 +96,6 @@
width: 60%;
}
-.tileName {
- font-size: 14px;
- white-space: nowrap;
- text-overflow: ellipsis;
- overflow: hidden;
-}
-
- .tileName + .tileName {
- margin-top: .75em;
- font-weight: normal;
- }
-
@media all and (min-width: 540px) {
.tileItem {
@@ -424,7 +404,6 @@
white-space: nowrap;
padding: 5px 4px 4px;
text-shadow: none;
- font-size: 13px;
font-weight: 400;
}
diff --git a/dashboard-ui/edititemmetadata.html b/dashboard-ui/edititemmetadata.html
index 0237e70a5..4bb8d382e 100644
--- a/dashboard-ui/edititemmetadata.html
+++ b/dashboard-ui/edititemmetadata.html
@@ -34,8 +34,7 @@
-
-
+
-
-
-
+
+
diff --git a/dashboard-ui/livetvsuggested.html b/dashboard-ui/livetvsuggested.html
index 320764608..c334cce59 100644
--- a/dashboard-ui/livetvsuggested.html
+++ b/dashboard-ui/livetvsuggested.html
@@ -17,12 +17,12 @@
diff --git a/dashboard-ui/moviesrecommended.html b/dashboard-ui/moviesrecommended.html
index fe821ded5..639635970 100644
--- a/dashboard-ui/moviesrecommended.html
+++ b/dashboard-ui/moviesrecommended.html
@@ -21,7 +21,7 @@
-
diff --git a/dashboard-ui/musicrecommended.html b/dashboard-ui/musicrecommended.html
index 8e2cf3519..01a58d28c 100644
--- a/dashboard-ui/musicrecommended.html
+++ b/dashboard-ui/musicrecommended.html
@@ -18,20 +18,20 @@
-
+
-
diff --git a/dashboard-ui/scripts/dlnaprofiles.js b/dashboard-ui/scripts/dlnaprofiles.js
index 5f0edf193..ddcaeeee5 100644
--- a/dashboard-ui/scripts/dlnaprofiles.js
+++ b/dashboard-ui/scripts/dlnaprofiles.js
@@ -34,7 +34,7 @@
var profile = profiles[i];
html += '
';
- html += '';
+ html += '';
html += profile.Name;
html += '';
@@ -69,7 +69,7 @@
var profile = profiles[i];
html += '';
- html += '';
+ html += '';
html += profile.Name;
html += '';
html += '';
diff --git a/dashboard-ui/scripts/edititemmetadata.js b/dashboard-ui/scripts/edititemmetadata.js
index 9fd2a5ff9..47831acec 100644
--- a/dashboard-ui/scripts/edititemmetadata.js
+++ b/dashboard-ui/scripts/edititemmetadata.js
@@ -96,18 +96,9 @@
Dashboard.getCurrentUser().done(function (user) {
- if (item.Type == 'BoxSet' || item.Type == 'Playlist') {
- $('#fldDelete', page).show();
- }
- else if (user.Configuration.EnableContentDeletion &&
- item.Type != "TvChannel" &&
- item.Type != "Genre" &&
- item.Type != "Studio" &&
- item.Type != "MusicGenre" &&
- item.Type != "GameGenre" &&
- item.Type != "Person" &&
- item.Type != "MusicArtist" &&
- item.Type != "CollectionFolder") {
+ var moreCommands = LibraryBrowser.getMoreCommands(item, user);
+
+ if (moreCommands.indexOf('delete') != -1) {
$('#fldDelete', page).show();
} else {
$('#fldDelete', page).hide();
@@ -793,23 +784,12 @@
}).get();
}
- function performDelete(page) {
+ function onDeleted(id) {
+
+ var elem = $('#' + id)[0];
- $('#btnDelete', page).buttonEnabled(false);
- $('.btnRefresh', page).buttonEnabled(false);
- $('.btnSave', page).buttonEnabled(false);
-
- $('#refreshLoading', page).show();
-
- var parentId = currentItem.ParentId;
-
- ApiClient.deleteItem(currentItem.Id).done(function () {
-
- var elem = $('#' + parentId)[0];
-
- $('.libraryTree').jstree("select_node", elem, true)
- .jstree("delete_node", '#' + currentItem.Id);
- });
+ $('.libraryTree').jstree("select_node", elem, true)
+ .jstree("delete_node", '#' + id);
}
function editItemMetadataPage() {
@@ -1223,18 +1203,6 @@
var page = this;
- $('.btnRefreshBasic', this).on('click', function () {
-
- refreshWithOptions(page, {
-
- Recursive: true,
- ImageRefreshMode: 'FullRefresh',
- MetadataRefreshMode: 'FullRefresh',
- ReplaceAllImages: false,
- ReplaceAllMetadata: true
- });
- });
-
$('.btnRefreshAdvanced', this).on('click', function () {
performAdvancedRefresh(page);
@@ -1250,42 +1218,10 @@
$('.popupIdentifyForm', page).show();
$('.identificationSearchResults', page).hide();
$('.btnSearchAgain', page).hide();
-
});
- function getRandomInt(min, max) {
- return Math.floor(Math.random() * (max - min + 1) + min);
- }
-
$('#btnDelete', this).on('click', function () {
-
- if (currentItem.LocationType != "Remote" && currentItem.LocationType != "Virtual") {
- $('.deletePath', page).html((currentItem.Path || ''));
-
- var val1 = getRandomInt(6, 12);
- var val2 = getRandomInt(8, 16);
-
- $('#challengeValueText', page).html(val1 + ' * ' + val2 + ':');
-
- var val = val1 * val2;
-
- $('#fldChallengeValue', page).val(val);
-
- $('#popupConfirmDelete', page).popup('open');
-
- } else {
-
- var msg = "
" + Globalize.translate('ConfirmDeleteItem') + "
";
-
- Dashboard.confirm(msg, Globalize.translate('HeaderDeleteItem'), function (result) {
-
- if (result) {
-
- performDelete(page);
- }
-
- });
- }
+ LibraryBrowser.deleteItem(currentItem.Id);
});
$('.libraryTree', page).on('itemclicked', function (event, data) {
@@ -1315,6 +1251,21 @@
reload(page);
+ $(LibraryBrowser).on('itemdeleting.editor', function (e, itemId) {
+
+ if (currentItem && currentItem.Id == itemId) {
+ Dashboard.navigate('edititemmetadata.html');
+ }
+ });
+
+ }).on('pagehide', "#editItemMetadataPage", function () {
+
+ $(LibraryBrowser).off('itemdeleting.editor');
+
+ var page = this;
+
+ reload(page);
+
});
})(jQuery, document, window);
diff --git a/dashboard-ui/scripts/edititemsubtitles.js b/dashboard-ui/scripts/edititemsubtitles.js
index 7c201c1b7..39697d3a9 100644
--- a/dashboard-ui/scripts/edititemsubtitles.js
+++ b/dashboard-ui/scripts/edititemsubtitles.js
@@ -217,7 +217,7 @@
html += '
';
- html += '' + (result.Name) + '
';
+ html += '' + (result.Name) + '
';
html += '' + (result.Format) + '
';
if (result.Comment) {
diff --git a/dashboard-ui/scripts/itemdetailpage.js b/dashboard-ui/scripts/itemdetailpage.js
index 755a9bdca..cf2c1da4a 100644
--- a/dashboard-ui/scripts/itemdetailpage.js
+++ b/dashboard-ui/scripts/itemdetailpage.js
@@ -1587,8 +1587,17 @@
$(ApiClient).on('websocketmessage', onWebSocketMessage);
+ $(LibraryBrowser).on('itemdeleting.detailpage', function (e, itemId) {
+
+ if (currentItem && currentItem.Id == itemId) {
+ Dashboard.navigate('index.html');
+ }
+ });
+
}).on('pagehide', "#itemDetailPage", function () {
+ $(LibraryBrowser).off('itemdeleting.detailpage');
+
currentItem = null;
var page = this;
diff --git a/dashboard-ui/scripts/librarybrowser.js b/dashboard-ui/scripts/librarybrowser.js
index 7d4f70efa..811897d31 100644
--- a/dashboard-ui/scripts/librarybrowser.js
+++ b/dashboard-ui/scripts/librarybrowser.js
@@ -322,15 +322,66 @@
commands.push('playlist');
}
+ if (item.Type == 'BoxSet' || item.Type == 'Playlist') {
+ commands.push('delete');
+ }
+ else if (user.Configuration.EnableContentDeletion &&
+ item.Type != "TvChannel" &&
+ item.Type != "Genre" &&
+ item.Type != "Studio" &&
+ item.Type != "MusicGenre" &&
+ item.Type != "GameGenre" &&
+ item.Type != "Person" &&
+ item.Type != "MusicArtist" &&
+ item.Type != "CollectionFolder") {
+ commands.push('delete');
+ }
+
if (user.Configuration.IsAdministrator) {
if (item.Type != "Recording" && item.Type != "Program") {
commands.push('edit');
}
}
+ commands.push('refresh');
+
return commands;
},
+ refreshItem: function (itemId) {
+
+ ApiClient.refreshItem(itemId, {
+
+ Recursive: true,
+ ImageRefreshMode: 'FullRefresh',
+ MetadataRefreshMode: 'FullRefresh',
+ ReplaceAllImages: false,
+ ReplaceAllMetadata: true
+
+ });
+
+
+ Dashboard.alert(Globalize.translate('MessageRefreshQueued'));
+ },
+
+ deleteItem: function (itemId) {
+
+ // The timeout allows the flyout to close
+ setTimeout(function () {
+
+ var msg = "" + Globalize.translate('ConfirmDeleteItem') + "
";
+
+ Dashboard.confirm(msg, Globalize.translate('HeaderDeleteItem'), function (result) {
+
+ if (result) {
+ ApiClient.deleteItem(itemId);
+
+ $(LibraryBrowser).trigger('itemdeleting', [itemId]);
+ }
+ });
+ }, 250);
+ },
+
showMoreCommands: function (positionTo, itemId, commands) {
$('.playFlyout').popup("close").remove();
@@ -348,17 +399,39 @@
html += '' + Globalize.translate('ButtonEdit') + '';
}
+ if (commands.indexOf('refresh') != -1) {
+ html += '';
+ }
+
+ if (commands.indexOf('delete') != -1) {
+ html += '';
+ }
+
html += '';
html += '';
$($.mobile.activePage).append(html);
- $('.playFlyout').popup({ positionTo: positionTo || "window" }).trigger('create').popup("open").on("popupafterclose", function () {
+ var elem = $('.playFlyout').popup({ positionTo: positionTo || "window" }).trigger('create').popup("open").on("popupafterclose", function () {
$(this).off("popupafterclose").remove();
- }).parents(".ui-popup-container");
+ });
+
+ $('.btnMoreMenuRefresh', elem).on('click', function () {
+
+ ApiClient.refreshItem(itemId, {
+
+ Recursive: true,
+ ImageRefreshMode: 'FullRefresh',
+ MetadataRefreshMode: 'FullRefresh',
+ ReplaceAllImages: false,
+ ReplaceAllMetadata: true
+ }).done(function () {
+
+ });
+ });
},
getHref: function (item, context, topParentId) {
@@ -968,7 +1041,7 @@
imgUrl = ApiClient.getScaledImageUrl(item.Id, {
type: "Banner",
- maxWidth: 500,
+ maxWidth: 700,
tag: item.ImageTags.Banner
});
diff --git a/dashboard-ui/scripts/moviesrecommended.js b/dashboard-ui/scripts/moviesrecommended.js
index 3881b759c..a1dd5e02d 100644
--- a/dashboard-ui/scripts/moviesrecommended.js
+++ b/dashboard-ui/scripts/moviesrecommended.js
@@ -26,7 +26,7 @@
html += '';
- html += '
';
+ html += '
';
html += LibraryBrowser.getPosterViewHtml({
items: recommendation.Items,
lazy: true,
diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js
index 52742e334..ba1d50287 100644
--- a/dashboard-ui/scripts/site.js
+++ b/dashboard-ui/scripts/site.js
@@ -1270,6 +1270,16 @@ $(function () {
e.preventDefault();
return false;
});
+
+ function isTouchDevice() {
+ return (('ontouchstart' in window)
+ || (navigator.MaxTouchPoints > 0)
+ || (navigator.msMaxTouchPoints > 0));
+ }
+
+ if (isTouchDevice()) {
+ $(document.body).addClass('touch');
+ }
});
Dashboard.jQueryMobileInit();
diff --git a/dashboard-ui/scripts/useredit.js b/dashboard-ui/scripts/useredit.js
index e376d12f7..5bbb7169e 100644
--- a/dashboard-ui/scripts/useredit.js
+++ b/dashboard-ui/scripts/useredit.js
@@ -21,7 +21,7 @@
}
if (user.Id && loggedInUser.Configuration.IsAdministrator) {
- $('#fldConnectInfo', page).hide();
+ $('#fldConnectInfo', page).show();
} else {
$('#fldConnectInfo', page).hide();
}
diff --git a/dashboard-ui/tvrecommended.html b/dashboard-ui/tvrecommended.html
index 4183d1c8d..b62107605 100644
--- a/dashboard-ui/tvrecommended.html
+++ b/dashboard-ui/tvrecommended.html
@@ -31,14 +31,14 @@
-
+
${NoNextUpItemsMessage}