mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
added new studio image provider
This commit is contained in:
parent
f9ec680145
commit
dfec6b307b
16 changed files with 95 additions and 128 deletions
|
@ -63,9 +63,12 @@
|
|||
|
||||
<div data-role="collapsible" data-collapsed="false" style="margin-top: 2em;">
|
||||
<h3>Rating and Reviews</h3>
|
||||
<div>
|
||||
<br />
|
||||
<div id="ratingLine"></div>
|
||||
<div id="latestReviews"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div data-role="collapsible" data-collapsed="false" style="margin-top: 2em;">
|
||||
<h3>Developer Info</h3>
|
||||
|
|
|
@ -108,7 +108,6 @@
|
|||
margin-top: .5em;
|
||||
margin-bottom: 0;
|
||||
padding-left: 7px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.libraryViewNav {
|
||||
|
|
|
@ -288,11 +288,11 @@ input[type="range"]::-ms-fill-upper {
|
|||
}
|
||||
|
||||
.positionSliderContainer {
|
||||
width: 400px;
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.itemVideo {
|
||||
left: -560px;
|
||||
left: -420px;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -301,12 +301,8 @@ input[type="range"]::-ms-fill-upper {
|
|||
width: 500px;
|
||||
}
|
||||
|
||||
.positionSliderContainer {
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
.itemVideo {
|
||||
left: -660px;
|
||||
left: -420px;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -315,11 +311,7 @@ input[type="range"]::-ms-fill-upper {
|
|||
width: 550px;
|
||||
}
|
||||
|
||||
.positionSliderContainer {
|
||||
width: 550px;
|
||||
}
|
||||
|
||||
.itemVideo {
|
||||
left: -710px;
|
||||
left: -400px;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
text-decoration: none;
|
||||
text-align: left;
|
||||
overflow: hidden;
|
||||
border: 2px solid #1b1b1b;
|
||||
-webkit-transition: all 500ms ease;
|
||||
-moz-transition: all 500ms ease;
|
||||
-o-transition: all 500ms ease;
|
||||
|
@ -17,13 +16,12 @@
|
|||
}
|
||||
|
||||
.posterItem:hover {
|
||||
-moz-box-shadow: 0 0 20px 3px #2572EB;
|
||||
-webkit-box-shadow: 0 0 20px 3px #2572EB;
|
||||
box-shadow: 0 0 20px 3px #2572EB;
|
||||
-moz-box-shadow: 0 0 20px 3px #52B54B;
|
||||
-webkit-box-shadow: 0 0 20px 3px #52B54B;
|
||||
box-shadow: 0 0 20px 3px #52B54B;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.smallBackdropPosterItem, .smallPosterItem {
|
||||
margin: 3px;
|
||||
}
|
||||
|
@ -33,6 +31,8 @@
|
|||
background-repeat: no-repeat;
|
||||
background-position: center bottom;
|
||||
background-color: #000;
|
||||
border: 2px solid #1b1b1b;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.transparentPosterItem .posterItemImage {
|
||||
|
@ -43,8 +43,8 @@
|
|||
background-color: #999;
|
||||
}
|
||||
|
||||
.borderlessPosterItem {
|
||||
border: 0;
|
||||
.borderlessPosterItem .posterItemImage {
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
.posterItemStoreText {
|
||||
|
@ -63,7 +63,6 @@
|
|||
text-wrap: none;
|
||||
white-space: nowrap;
|
||||
padding: 5px 4px 4px;
|
||||
background-color: #222;
|
||||
text-shadow: none;
|
||||
font-size: 14px;
|
||||
font-weight: 300;
|
||||
|
@ -89,7 +88,7 @@
|
|||
|
||||
.posterItemTextOverlay .posterItemText {
|
||||
background-color: transparent;
|
||||
padding-top: 1px !important;
|
||||
padding: 1px 5px 4px !important;
|
||||
}
|
||||
|
||||
.posterItemTextOverlay .posterItemText:first-child {
|
||||
|
@ -114,33 +113,20 @@
|
|||
}
|
||||
|
||||
.squarePosterItem {
|
||||
width: 150px;
|
||||
width: 154px;
|
||||
}
|
||||
|
||||
.squarePosterItem .posterItemImage {
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
.storeItem {
|
||||
display: inline-block;
|
||||
margin: 0 15px 15px 0;
|
||||
}
|
||||
|
||||
.storeItem, .storePosterItem {
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
.storePosterItem .posterItemImage {
|
||||
height: 90px;
|
||||
}
|
||||
|
||||
.storeReviewCount {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
.backdropPosterItem {
|
||||
width: 288px;
|
||||
width: 292px;
|
||||
}
|
||||
|
||||
.backdropPosterItem .posterItemImage {
|
||||
|
@ -148,16 +134,16 @@
|
|||
}
|
||||
|
||||
.smallBackdropPosterItem {
|
||||
width: 168px;
|
||||
width: 172px;
|
||||
}
|
||||
|
||||
.smallBackdropPosterItem .posterItemImage {
|
||||
height: 94.5px;
|
||||
}
|
||||
|
||||
.portraitPosterItem {
|
||||
width: 102px;
|
||||
}
|
||||
.portraitPosterItem {
|
||||
width: 106px;
|
||||
}
|
||||
|
||||
.portraitPosterItem .posterItemImage {
|
||||
height: 153px;
|
||||
|
@ -179,7 +165,7 @@
|
|||
@media all and (min-width: 540px) {
|
||||
|
||||
.backdropPosterItem {
|
||||
width: 256px;
|
||||
width: 260px;
|
||||
}
|
||||
|
||||
.backdropPosterItem .posterItemImage {
|
||||
|
@ -190,7 +176,7 @@
|
|||
@media all and (min-width: 540px) {
|
||||
|
||||
.smallBackdropPosterItem {
|
||||
width: 184px;
|
||||
width: 188px;
|
||||
}
|
||||
|
||||
.smallBackdropPosterItem .posterItemImage {
|
||||
|
@ -201,23 +187,15 @@
|
|||
@media all and (min-width: 650px) {
|
||||
|
||||
.backdropPosterItem {
|
||||
width: 272px;
|
||||
width: 276px;
|
||||
}
|
||||
|
||||
.backdropPosterItem .posterItemImage {
|
||||
height: 153px;
|
||||
}
|
||||
|
||||
.storeItem, .storePosterItem {
|
||||
width: 192px;
|
||||
}
|
||||
|
||||
.storePosterItem .posterItemImage {
|
||||
height: 110px;
|
||||
}
|
||||
|
||||
.smallBackdropPosterItem {
|
||||
width: 192px;
|
||||
width: 196px;
|
||||
}
|
||||
|
||||
.smallBackdropPosterItem .posterItemImage {
|
||||
|
@ -228,7 +206,7 @@
|
|||
@media all and (min-width: 750px) {
|
||||
|
||||
.portraitPosterItem {
|
||||
width: 108px;
|
||||
width: 112px;
|
||||
}
|
||||
|
||||
.portraitPosterItem .posterItemImage {
|
||||
|
@ -239,7 +217,7 @@
|
|||
@media all and (min-width: 1200px) {
|
||||
|
||||
.backdropPosterItem {
|
||||
width: 272px;
|
||||
width: 276px;
|
||||
}
|
||||
|
||||
.backdropPosterItem .posterItemImage {
|
||||
|
@ -247,7 +225,7 @@
|
|||
}
|
||||
|
||||
.portraitPosterItem {
|
||||
width: 134px;
|
||||
width: 138px;
|
||||
}
|
||||
|
||||
.portraitPosterItem .posterItemImage {
|
||||
|
@ -255,25 +233,13 @@
|
|||
}
|
||||
|
||||
.smallBackdropPosterItem {
|
||||
width: 224px;
|
||||
width: 228px;
|
||||
}
|
||||
|
||||
.smallBackdropPosterItem .posterItemImage {
|
||||
height: 126px;
|
||||
}
|
||||
|
||||
.storeItem, .storePosterItem {
|
||||
width: 270px;
|
||||
}
|
||||
|
||||
.storePosterItem .posterItemImage {
|
||||
height: 154px;
|
||||
}
|
||||
|
||||
.posterItemStoreText {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.storeReviewCount {
|
||||
display: inline;
|
||||
}
|
||||
|
@ -282,7 +248,7 @@
|
|||
@media all and (min-width: 1440px) {
|
||||
|
||||
.squarePosterItem {
|
||||
width: 170px;
|
||||
width: 174px;
|
||||
}
|
||||
|
||||
.squarePosterItem .posterItemImage {
|
||||
|
@ -290,7 +256,7 @@
|
|||
}
|
||||
|
||||
.portraitPosterItem {
|
||||
width: 134px;
|
||||
width: 138px;
|
||||
}
|
||||
|
||||
.portraitPosterItem .posterItemImage {
|
||||
|
@ -303,7 +269,7 @@
|
|||
}
|
||||
|
||||
.backdropPosterItem {
|
||||
width: 288px;
|
||||
width: 292px;
|
||||
}
|
||||
|
||||
.backdropPosterItem .posterItemImage {
|
||||
|
@ -314,7 +280,7 @@
|
|||
@media all and (min-width: 1920px) {
|
||||
|
||||
.squarePosterItem {
|
||||
width: 200px;
|
||||
width: 204px;
|
||||
}
|
||||
|
||||
.squarePosterItem .posterItemImage {
|
||||
|
@ -322,7 +288,7 @@
|
|||
}
|
||||
|
||||
.portraitPosterItem {
|
||||
width: 160px;
|
||||
width: 164px;
|
||||
}
|
||||
|
||||
.portraitPosterItem .posterItemImage {
|
||||
|
|
|
@ -52,6 +52,7 @@ body {
|
|||
h1 {
|
||||
font-weight: 300;
|
||||
font-size: 2.22em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.ui-loader h1 {
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div style="padding: 10px 15px;">
|
||||
<div style="padding: 10px 0;">
|
||||
<div data-role="fieldcontain" id="fldPath">
|
||||
<label for="txtPath">Path:</label>
|
||||
<input type="text" id="txtPath" name="txtPath" data-mini="true" readonly="readonly" />
|
||||
|
@ -388,9 +388,6 @@
|
|||
</div>
|
||||
<div class="fieldDescription editorfieldDescription">Leave empty to inherit settings from a parent item, or the global default value.</div>
|
||||
<br />
|
||||
<p>
|
||||
Slide a field to 'off' to lock it and prevent it's data from being changed.
|
||||
</p>
|
||||
|
||||
<div id="providerSettingsContainer" style="display: none">
|
||||
</div>
|
||||
|
|
|
@ -13,18 +13,21 @@
|
|||
<a href="livetvseriestimers.html">Series</a>
|
||||
</div>
|
||||
<div data-role="content">
|
||||
<div style="max-width: 720px; margin: 0 auto;">
|
||||
|
||||
<table class="ehsContent">
|
||||
<tr>
|
||||
<td>
|
||||
<div id="latestRecordings" style="display: none;">
|
||||
<h1 class="listHeader">Latest Recordings</h1>
|
||||
<div id="latestRecordingItems"></div>
|
||||
</div>
|
||||
<br />
|
||||
<div id="recordingGroups" style="display: none;">
|
||||
<h1 class="listHeader">Recording Groups</h1>
|
||||
<h1 class="listHeader">All Recordings</h1>
|
||||
<div id="recordingGroupItems"></div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -22,13 +22,14 @@
|
|||
|
||||
<div id="recentlyAddedAlbums">
|
||||
</div>
|
||||
|
||||
<br />
|
||||
<h1 class="listHeader">Latest Songs</h1>
|
||||
|
||||
<div id="recentlyAddedSongs">
|
||||
</div>
|
||||
|
||||
<div id="recentlyPlayed" style="display: none;">
|
||||
<br />
|
||||
<h1 class="listHeader">Recently Played</h1>
|
||||
|
||||
<div id="recentlyPlayedSongs">
|
||||
|
@ -36,6 +37,7 @@
|
|||
</div>
|
||||
|
||||
<div id="topPlayed" style="display: none;">
|
||||
<br />
|
||||
<h1 class="listHeader">Frequently Played</h1>
|
||||
|
||||
<div id="topPlayedSongs">
|
||||
|
|
|
@ -72,6 +72,7 @@
|
|||
//positive
|
||||
var html = '<div data-role="collapsible" data-collapsed="true" style="margin-top: 2em;" >';
|
||||
html += '<h3>Latest Outstanding Reviews</h3>';
|
||||
|
||||
var positive = response1[0];
|
||||
var hasReviews = false;
|
||||
if (positive && positive.length > 0) {
|
||||
|
|
|
@ -1077,7 +1077,8 @@
|
|||
|
||||
var html = '';
|
||||
|
||||
html += "<h3>Fields</h3>";
|
||||
html += "<h1>Fields</h1>";
|
||||
html += "<p>Slide a field to 'off' to lock it and prevent it's data from being changed.</p>";
|
||||
html += generateSliders(metadatafields, 'Fields');
|
||||
container.html(html).trigger('create');
|
||||
for (var fieldIndex = 0; fieldIndex < lockedFields.length; fieldIndex++) {
|
||||
|
|
|
@ -874,7 +874,16 @@
|
|||
style += "background-color:" + background + ";";
|
||||
}
|
||||
|
||||
html += '<div class="posterItemImage" style="' + style + '"></div>';
|
||||
html += '<div class="posterItemImage" style="' + style + '">';
|
||||
|
||||
if (item.LocationType == "Offline" || item.LocationType == "Virtual") {
|
||||
if (options.showLocationTypeIndicator !== false) {
|
||||
html += LibraryBrowser.getOfflineIndicatorHtml(item);
|
||||
}
|
||||
} else if (options.showUnplayedIndicator !== false) {
|
||||
html += LibraryBrowser.getUnplayedIndicatorHtml(item);
|
||||
}
|
||||
html += '</div>';
|
||||
|
||||
var name = LibraryBrowser.getPosterViewDisplayName(item);
|
||||
|
||||
|
@ -933,14 +942,6 @@
|
|||
html += "</div>";
|
||||
}
|
||||
|
||||
if (item.LocationType == "Offline" || item.LocationType == "Virtual") {
|
||||
if (options.showLocationTypeIndicator !== false) {
|
||||
html += LibraryBrowser.getOfflineIndicatorHtml(item);
|
||||
}
|
||||
} else if (options.showUnplayedIndicator !== false) {
|
||||
html += LibraryBrowser.getUnplayedIndicatorHtml(item);
|
||||
}
|
||||
|
||||
html += "</a>";
|
||||
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
var html = '';
|
||||
|
||||
html += '<div data-role="collapsible" class="recordingGroupCollapsible" data-recordinggroupid="' + group.Id + '" style="margin-top:1em">';
|
||||
html += '<div data-role="collapsible" class="recordingGroupCollapsible" data-recordinggroupid="' + group.Id + '" style="margin-top:1em" data-mini="true" data-content-theme="false">';
|
||||
|
||||
html += '<h3>' + group.Name + '</h3>';
|
||||
|
||||
|
@ -84,7 +84,7 @@
|
|||
|
||||
var html = '';
|
||||
|
||||
html += '<ul data-role="listview" data-split-icon="delete" data-inset="false">';
|
||||
html += '<ul data-role="listview" data-split-icon="delete" data-inset="true">';
|
||||
|
||||
for (var i = 0, length = recordings.length; i < length; i++) {
|
||||
|
||||
|
@ -176,7 +176,7 @@
|
|||
apiClient.getLiveTvRecordings({
|
||||
|
||||
userId: Dashboard.getCurrentUserId(),
|
||||
limit: 6
|
||||
limit: 8
|
||||
|
||||
}).done(function (result) {
|
||||
|
||||
|
|
|
@ -31,7 +31,8 @@
|
|||
|
||||
html += LibraryBrowser.getPosterDetailViewHtml({
|
||||
items: result.Items,
|
||||
context: "movies"
|
||||
context: "movies",
|
||||
shape: "backdrop"
|
||||
});
|
||||
|
||||
html += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount);
|
||||
|
|
|
@ -70,19 +70,19 @@
|
|||
var category = plugin.category || "General";
|
||||
|
||||
if (category != currentCategory) {
|
||||
html += '<h2 style="margin: .5em 0 0;">' + category + '</h2>';
|
||||
html += '<h2 class="listHeader">' + category + '</h2>';
|
||||
currentCategory = category;
|
||||
}
|
||||
|
||||
var href = plugin.externalUrl ? plugin.externalUrl : "addplugin.html?name=" + encodeURIComponent(plugin.name) + "&guid=" + plugin.guid;
|
||||
var target = plugin.externalUrl ? ' target="_blank"' : '';
|
||||
|
||||
html += "<div class='storeItem'><a class='posterItem storePosterItem transparentPosterItem borderlessPosterItem' style='background: #D4D4D4!important' href='" + href + "' " + target + ">";
|
||||
html += "<a class='storeItem backdropPosterItem posterItem transparentPosterItem borderlessPosterItem' href='" + href + "' " + target + ">";
|
||||
|
||||
if (plugin.thumbImage) {
|
||||
html += '<div class="posterItemImage" style="background-image:url(\'' + plugin.thumbImage + '\');background-size:cover;"></div>';
|
||||
html += '<div class="posterItemImage" style="background-image:url(\'' + plugin.thumbImage + '\');background-size:cover;">';
|
||||
} else {
|
||||
html += '<div class="posterItemImage defaultPosterItemImage" style="background-image:url(\'css/images/items/list/collection.png\');"></div>';
|
||||
html += '<div class="posterItemImage defaultPosterItemImage" style="background-image:url(\'css/images/items/list/collection.png\');">';
|
||||
}
|
||||
|
||||
if (plugin.isPremium) {
|
||||
|
@ -92,24 +92,23 @@
|
|||
html += "<div class='premiumBanner'><img src='css/images/supporter/supporterflag.png' /></div>";
|
||||
}
|
||||
}
|
||||
html += "</div>";
|
||||
|
||||
html += "</a>";
|
||||
|
||||
html += "<div class='posterItemStoreText' style='font-weight: bold'>";
|
||||
html += "<div class='posterItemText' style='color:#000;font-weight:400;font-size:16px;'>";
|
||||
|
||||
var installedPlugin = plugin.isApp ? null : installedPlugins.filter(function (ip) {
|
||||
return ip.Name == plugin.name;
|
||||
})[0];
|
||||
|
||||
if (installedPlugin) {
|
||||
html += plugin.name + " (Installed)";
|
||||
html += plugin.name;
|
||||
} else {
|
||||
html += plugin.name;
|
||||
}
|
||||
|
||||
html += "</div>";
|
||||
|
||||
html += "<div class='posterItemStoreText' >";
|
||||
html += "<div class='posterItemText' style='color:#000;font-weight:400;'>";
|
||||
html += plugin.price > 0 ? "$" + plugin.price.toFixed(2) : "Free";
|
||||
html += Dashboard.getStoreRatingHtml(plugin.avgRating, plugin.id, plugin.name);
|
||||
|
||||
|
@ -118,7 +117,7 @@
|
|||
html += "</span>";
|
||||
|
||||
html += "</div>";
|
||||
html += "</div>";
|
||||
html += "</a>";
|
||||
|
||||
pluginhtml += html;
|
||||
|
||||
|
|
|
@ -1229,13 +1229,13 @@ var Dashboard = {
|
|||
|
||||
getStoreRatingHtml: function (rating, id, name, noLinks) {
|
||||
|
||||
var html = "<div style='margin-left: 5px; margin-right: 5px; display: inline-block'>";
|
||||
var html = "<div style='margin-left: 5px; margin-right: 5px; display: inline-block; vertical-align:middle;'>";
|
||||
if (!rating) rating = 0;
|
||||
|
||||
for (var i = 1; i <= 5; i++) {
|
||||
var title = noLinks ? rating + " stars" : "Rate " + i + (i > 1 ? " stars" : " star");
|
||||
|
||||
html += noLinks ? "" : "<a href='#' data-id=" + id + " data-name='" + name + "' data-rating=" + i + " onclick='Dashboard.ratePackage(this);' >";
|
||||
html += noLinks ? "" : "<span data-id=" + id + " data-name='" + name + "' data-rating=" + i + " onclick='Dashboard.ratePackage(this);return false;' >";
|
||||
if (rating <= i - 1) {
|
||||
html += "<div class='storeStarRating emptyStarRating' title='" + title + "'></div>";
|
||||
} else if (rating < i) {
|
||||
|
@ -1243,7 +1243,7 @@ var Dashboard = {
|
|||
} else {
|
||||
html += "<div class='storeStarRating' title='" + title + "'></div>";
|
||||
}
|
||||
html += noLinks ? "" : "</a>";
|
||||
html += noLinks ? "" : "</span>";
|
||||
}
|
||||
|
||||
html += "</div>";
|
||||
|
|
|
@ -31,7 +31,8 @@
|
|||
|
||||
html += LibraryBrowser.getPosterDetailViewHtml({
|
||||
items: result.Items,
|
||||
context: "tv"
|
||||
context: "tv",
|
||||
shape: "backdrop"
|
||||
});
|
||||
|
||||
html += LibraryBrowser.getPagingHtml(query, result.TotalRecordCount);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue