Add library recently added

This commit is contained in:
Jonathan Wong 2016-01-06 22:29:27 -08:00
parent 95b55760ad
commit 2a85e11ad9
8 changed files with 224 additions and 49 deletions

View file

@ -128,6 +128,23 @@ DOCUMENTATION :: END
</div>
</div>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<div class="table-card-header">
<div class="header-bar">
<span><i class="fa fa-history"></i> Recently Added</span>
</div>
</div>
<div class="table-card-back">
<div id="library-recently-added">
<div class='muted'><i class="fa fa-refresh fa-spin"></i> Loading data...</div>
<br>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane" id="libraryHistory">
<div class="container-fluid">
@ -366,9 +383,35 @@ DOCUMENTATION :: END
});
}
function recentlyAdded() {
var widthVal = $('body').find("#library-recently-added").width();
var tmp = (widthVal-32) / 180;
if (tmp > 0) {
containerSize = parseInt(tmp);
} else {
containerSize = 1;
}
// Populate recently added
$.ajax({
url: 'get_library_recently_added',
async: true,
data: {
library_id: section_id,
limit: containerSize
},
complete: function(xhr, status) {
$("#library-recently-added").html(xhr.responseText);
}
});
}
recentlyWatched();
recentlyAdded();
$(window).resize(function() {
recentlyWatched();
recentlyAdded();
});
});
$('div.art-face').animate({ opacity: 0.2 }, { duration: 1000 });

View file

@ -0,0 +1,92 @@
<%doc>
USAGE DOCUMENTATION :: PLEASE LEAVE THIS AT THE TOP OF THIS FILE
For Mako templating syntax documentation please visit: http://docs.makotemplates.org/en/latest/
Filename: library_recently_added.html
Version: 0.1
Variable names: data [array]
data[array_index] :: Usable parameters
== Global keys ==
media_type Returns the type of media. Either 'movie' or 'episode' or 'album'.
rating_key Returns the unique identifier for the media item.
parent_rating_key Returns the unique identifier for the season or artist.
grandparent_rating_key Returns the unique identifier for the show.
title Returns the name of the movie, episode, album.
parent_title Returns the name of the artist.
grandparent_title Returns the name of the show.
media_index Returns the index number of the episode.
parent_media_index Returns the index number of the season.
library_id Returns the library section number of the media item.
library_name Returns the library section name of the media item.
year Returns the release year of the movie, episode, or album.
thumb Returns the location of the item's thumbnail. Use with pms_image_proxy.
parent_thumb Returns the location of the artist's thumbnail. Use with pms_image_proxy.
grandparent_thumb Returns the location of the show's thumbnail. Use with pms_image_proxy.
added_at Returns the time when the media was added to the library.
DOCUMENTATION :: END
</%doc>
% if data:
<div class="dashboard-recent-media-row">
<ul class="dashboard-recent-media list-unstyled">
% for item in data:
<li>
% if item['media_type'] == 'episode' or item['media_type'] == 'movie':
<a href="info?rating_key=${item['rating_key']}">
<div class="dashboard-recent-media-poster">
% if item['media_type'] == 'episode':
<div class="dashboard-recent-media-poster-face" style="background-image: url(pms_image_proxy?img=${item['parent_thumb']}&width=300&height=450&fallback=poster);">
% elif item['media_type'] == 'movie':
<div class="dashboard-recent-media-poster-face" style="background-image: url(pms_image_proxy?img=${item['thumb']}&width=300&height=450&fallback=poster);">
% endif
<div class="dashboard-recent-media-overlay">
<div class="dashboard-recent-media-overlay-text" id="added_at-${item['rating_key']}">
<script>
$('#added_at-${item['rating_key']}').text('Added ' + moment(${item['added_at']}, "X").fromNow())
</script>
</div>
</div>
</div>
</div>
<div class="dashboard-recent-media-metacontainer">
% if item['media_type'] == 'episode':
<h3 title="${item['grandparent_title']}">${item['grandparent_title']}</h3>
<h3 title="${item['title']}">${item['title']}</h3>
<h3 class="text-muted">S${item['parent_media_index']} &middot; E${item['media_index']}</h3>
% elif item['media_type'] == 'movie':
<h3 title="${item['title']}">${item['title']}</h3>
<h3 class="text-muted">${item['year']}</h3>
% endif
</div>
</a>
% elif item['media_type'] == 'album':
<a href="info?rating_key=${item['rating_key']}">
<div class="dashboard-recent-media-cover">
<div class="dashboard-recent-media-cover-face" style="background-image: url(pms_image_proxy?img=${item['thumb']}&width=300&height=300&fallback=cover);">
<div class="dashboard-recent-media-overlay">
<div class="dashboard-recent-media-overlay-text" id="added_at-${item['rating_key']}">
<script>
$('#added_at-${item['rating_key']}').text('Added ' + moment(${item['added_at']}, "X").fromNow())
</script>
</div>
</div>
</div>
</div>
<div class="dashboard-recent-media-metacontainer">
<h3 title="${item['parent_title']}">${item['parent_title']}</h3>
<h3 class="text-muted">${item['title']}</h3>
</div>
</a>
% endif
</li>
% endfor
</ul>
</div>
% else:
<div class="text-muted">Unable to retrieve data from database.
</div><br>
% endif

View file

@ -10,15 +10,22 @@ Variable names: data [array]
data[array_index] :: Usable parameters
== Global keys ==
media_type Returns the type of media. Either 'movie' or 'episode' or 'album'.
rating_key Returns the unique identifier for the media item.
media_type Returns the media type of media. Either 'movie' or 'season' or 'album'.
parent_rating_key Returns the unique identifier for the season or artist.
grandparent_rating_key Returns the unique identifier for the show.
title Returns the name of the movie, episode, album.
parent_title Returns the name of the artist.
grandparent_title Returns the name of the show.
media_index Returns the index number of the episode.
parent_media_index Returns the index number of the season.
library_id Returns the library section number of the media item.
library_name Returns the library section name of the media item.
year Returns the release year of the movie, episode, or album.
thumb Returns the location of the item's thumbnail. Use with pms_image_proxy.
parent_thumb Returns the location of the artist's thumbnail. Use with pms_image_proxy.
grandparent_thumb Returns the location of the show's thumbnail. Use with pms_image_proxy.
added_at Returns the time when the media was added to the library.
title Returns the name of the movie or season.
parent_title Returns the name of the TV Show a season belongs too.
== Only if 'media_type' is 'movie' ==
year Returns the movie release year.
DOCUMENTATION :: END
</%doc>

View file

@ -12,18 +12,16 @@ data[array_index] :: Usable parameters
== Global keys ==
rating_key Returns the unique identifier for the media item.
row_id Returns the unique row id for the media item in the database.
type Returns the type of media. Either 'movie' or 'episode'.
media_type Returns the type of media. Either 'movie' or 'episode' or 'album'.
thumb Returns the location of the item's thumbnail. Use with pms_image_proxy.
time Returns the last watched time of the media.
title Returns the name of the movie or episode.
== Only if 'type' is 'episode ==
parent_title Returns the name of the TV Show a season belongs too.
parent_index Returns the season number.
index Returns the episode number.
== Only if 'type' is 'movie' ==
year Returns the movie release year.
user Returns the name of the user that watched the item.
title Returns the name of the movie, episode, album.
parent_title Returns the name of the artist.
grandparent_title Returns the name of the show.
media_index Returns the index number of the episode.
parent_media_index Returns the index number of the season.
year Returns the release year of the movie, episode, or album.
DOCUMENTATION :: END
</%doc>
@ -33,7 +31,7 @@ DOCUMENTATION :: END
<ul class="dashboard-recent-media list-unstyled">
% for item in data:
<li>
% if item['type'] == 'episode' or item['type'] == 'movie':
% if item['media_type'] == 'episode' or item['media_type'] == 'movie':
<a href="info?source=history&rating_key=${item['rating_key']}">
<div class="dashboard-recent-media-poster">
<div class="dashboard-recent-media-poster-face" style="background-image: url(pms_image_proxy?img=${item['thumb']}&width=300&height=450&fallback=poster);">
@ -47,19 +45,17 @@ DOCUMENTATION :: END
</div>
</div>
<div class="dashboard-recent-media-metacontainer">
% if item['type'] == 'episode':
% if item['media_type'] == 'episode':
<h3 title="${item['grandparent_title']}">${item['grandparent_title']}</h3>
<h3 title="${item['title']}">${item['title']}</h3>
<h3 class="text-muted">S${item['parent_media_index']} &middot; E${item['media_index']}</h3>
% elif item['type'] == 'movie':
% elif item['media_type'] == 'movie':
<h3 title="${item['title']}">${item['title']}</h3>
<h3 class="text-muted">${item['year']}</h3>
% endif
<div class="text-muted" id="time-${item['time']}">
</div>
</div>
</a>
% elif item['type'] == 'track':
% elif item['media_type'] == 'track':
<a href="info?source=history&rating_key=${item['rating_key']}">
<div class="dashboard-recent-media-cover">
<div class="dashboard-recent-media-cover-face" style="background-image: url(pms_image_proxy?img=${item['thumb']}&width=300&height=300&fallback=cover);">