mirror of
https://github.com/Tautulli/Tautulli.git
synced 2024-11-21 04:50:36 -08:00
257 lines
12 KiB
HTML
257 lines
12 KiB
HTML
<%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: update_metadata.html
|
|
Version: 0.1
|
|
Variable names: query [list]
|
|
|
|
query :: Usable parameters
|
|
|
|
== Global keys ==
|
|
query_string Returns the string used for the search query.
|
|
title Returns the name of the movie, episode, or track.
|
|
parent_title Returns the name of the album.
|
|
grandparent_title Returns the name of the show, or artist.
|
|
media_index Returns the index number of the episode, or track.
|
|
parent_media_index Returns the index number of the season.
|
|
year Returns the release year of the movie, or show.
|
|
media_type Returns the type of media. Either 'movie', 'show', 'season', 'episode', 'artist', 'album', or 'track'.
|
|
rating_key Returns the unique identifier for the media item.
|
|
|
|
DOCUMENTATION :: END
|
|
</%doc>
|
|
|
|
<%inherit file="base.html"/>
|
|
|
|
<%def name="headIncludes()">
|
|
</%def>
|
|
|
|
<%def name="body()">
|
|
% if query:
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="summary-container">
|
|
<div class="summary-navbar">
|
|
<div class="col-md-12">
|
|
<div class="summary-navbar-list">
|
|
<ul class="list-unstyled breadcrumb">
|
|
% if query['media_type'] == 'movie':
|
|
<li>Movies</li>
|
|
<span class="breadcrumb-arrow"><i class="fa fa-chevron-right"></i></span>
|
|
<li class="active">${query['title']}</li>
|
|
% elif query['media_type'] == 'show':
|
|
<li>TV Shows</li>
|
|
<span class="breadcrumb-arrow"><i class="fa fa-chevron-right"></i></span>
|
|
<li class="active">${query['grandparent_title']}</li>
|
|
% elif query['media_type'] == 'season':
|
|
<li class="hidden-xs hidden-sm">TV Shows</li>
|
|
<span class="breadcrumb-arrow"><i class="fa fa-chevron-right"></i></span>
|
|
<li class="hidden-xs hidden-sm">${query['grandparent_title']}</li>
|
|
<span class="breadcrumb-arrow"><i class="fa fa-chevron-right"></i></span>
|
|
<li class="active">${query['parent_title']}</li>
|
|
% elif query['media_type'] == 'episode':
|
|
<li class="hidden-xs hidden-sm">TV Shows</li>
|
|
<span class="breadcrumb-arrow"><i class="fa fa-chevron-right"></i></span>
|
|
<li class="hidden-xs hidden-sm">${query['grandparent_title']}</li>
|
|
<span class="breadcrumb-arrow"><i class="fa fa-chevron-right"></i></span>
|
|
<li>${query['parent_title']}</li>
|
|
<span class="breadcrumb-arrow"><i class="fa fa-chevron-right"></i></span>
|
|
<li class="active">Episode ${query['media_index']} - ${query['title']}</li>
|
|
% elif query['media_type'] == 'artist':
|
|
<li>Music</li>
|
|
<span class="breadcrumb-arrow"><i class="fa fa-chevron-right"></i></span>
|
|
<li class="active">${query['grandparent_title']}</li>
|
|
% elif query['media_type'] == 'album':
|
|
<li class="hidden-xs hidden-sm">Music</li>
|
|
<span class="breadcrumb-arrow"><i class="fa fa-chevron-right"></i></span>
|
|
<li>${query['grandparent_title']}</li>
|
|
<span class="breadcrumb-arrow"><i class="fa fa-chevron-right"></i></span>
|
|
<li class="active">${query['parent_title']}</li>
|
|
% elif query['media_type'] == 'track':
|
|
<li class="hidden-xs hidden-sm">Music</li>
|
|
<span class="breadcrumb-arrow"><i class="fa fa-chevron-right"></i></span>
|
|
<li class="hidden-xs hidden-sm">${query['grandparent_title']}</li>
|
|
<span class="breadcrumb-arrow"><i class="fa fa-chevron-right"></i></span>
|
|
<li>${query['parent_title']}</li>
|
|
<span class="breadcrumb-arrow"><i class="fa fa-chevron-right"></i></span>
|
|
<li class="active">Track ${query['media_index']} - ${query['title']}</li>
|
|
% endif
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="summary-content-wrapper">
|
|
<div class='col-md-12'>
|
|
% if not update:
|
|
<div style="text-align: center; margin-top: 20px;">
|
|
<i class="fa fa-exclamation-triangle"></i> Tautulli cannot find this item's metadata. Either this media item is not available in the Plex Media Server library or it has been moved.
|
|
</div>
|
|
% endif
|
|
<div style="text-align: center; margin-top: 20px;">
|
|
<i class="fa fa-info-circle"></i> Please select the correct match below to update the Tautulli database.
|
|
</div>
|
|
<div class='table-card-header'>
|
|
<div class="header-bar">
|
|
<span>Search Results for <strong><span id="update_query_title">${query['query_string']}</span></strong></span>
|
|
</div>
|
|
<div class="button-bar">
|
|
<form class="form" id="update_search_form">
|
|
Incorrect search results? Try a different query:
|
|
<div class="input-group" role="group" aria-label="Update Metadata Query">
|
|
<input type="search" class="form-control" name="update_query" id="update_query" aria-label="Query" placeholder="Query..." value="${query['query_string']}" />
|
|
<span class="input-group-btn">
|
|
<button class="btn btn-form btn-dark btn-inactive" type="submit" id="update_search_button"><i class="fa fa-search"></i></button>
|
|
</span>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div class='table-card-back'>
|
|
<div id="search-results-list" class="children-list"><i class="fa fa-refresh fa-spin"></i> Loading search results...</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
% else:
|
|
<div class="container-fluid">
|
|
<div class="row">
|
|
<div class="summary-container">
|
|
<div class="summary-navbar">
|
|
<div class="col-md-12">
|
|
<div class="summary-navbar-list">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="summary-content-wrapper">
|
|
<div class='col-md-12'>
|
|
<div style="text-align: center; margin-top: 20px;">
|
|
<i class="fa fa-exclamation-triangle"></i> Tautulli cannot find this item's metadata. Either this media item is not available in the Plex Media Server library or it has been moved.
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
% endif
|
|
</%def>
|
|
|
|
<%def name="modalIncludes()">
|
|
% if query:
|
|
<%
|
|
from plexpy.helpers import short_season
|
|
%>
|
|
<div class="modal fade" id="confirm-modal-update" tabindex="-1" role="dialog" aria-labelledby="confirm-modal-update">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-remove"></i></button>
|
|
<h4 class="modal-title" id="myModalLabel">Confirm Update</h4>
|
|
</div>
|
|
<div class="modal-body" style="text-align: center;">
|
|
<p>Are you REALLY sure you want to replace
|
|
<p>
|
|
<strong>
|
|
% if query['media_type'] == 'movie':
|
|
${query['title']}<br />${query['year']}
|
|
% elif query['media_type'] == 'show':
|
|
${query['grandparent_title']}
|
|
% elif query['media_type'] == 'season':
|
|
${query['grandparent_title']}<br />${query['parent_title']}
|
|
% elif query['media_type'] == 'episode':
|
|
${query['grandparent_title']}<br />${query['title']}<br />${short_season(query['parent_title'])} · E${query['media_index']}
|
|
% elif query['media_type'] == 'artist':
|
|
${query['grandparent_title']}
|
|
% elif query['media_type'] == 'album':
|
|
${query['grandparent_title']}<br />${query['parent_title']}
|
|
% elif query['media_type'] == 'track':
|
|
${query['grandparent_title']}<br />${query['title']}<br />${query['parent_title']}
|
|
% endif
|
|
</strong>
|
|
</p>
|
|
<p> with </p>
|
|
<p><span id="new_title"></span></p>
|
|
<p>from the <strong><span id="new_library"></span></strong> library?</p>
|
|
% if query['media_type'] != 'movie':
|
|
<p>All items for <strong>${query['grandparent_title']}</strong> will also be updated.</p>
|
|
% endif
|
|
<p>This is permanent and cannot be undone!</p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-dark" data-dismiss="modal">Cancel</button>
|
|
<button type="button" class="btn btn-danger btn-ok" data-dismiss="modal" id="confirm-update">Update</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
% endif
|
|
</%def>
|
|
|
|
<%def name="javascriptIncludes()">
|
|
|
|
% if query:
|
|
<script>
|
|
function getSearchResults() {
|
|
var query_string = $('#update_query').val();
|
|
$.ajax({
|
|
url: 'get_search_results_children',
|
|
type: 'GET',
|
|
async: true,
|
|
data: {
|
|
query: query_string,
|
|
limit: 30,
|
|
media_type: '${query["media_type"]}',
|
|
season_index: '${query["parent_media_index"]}'
|
|
},
|
|
complete: function (xhr, status) {
|
|
$('#search-results-list').html(xhr.responseText);
|
|
$('#update_query_title').text(query_string)
|
|
}
|
|
});
|
|
}
|
|
|
|
$(document).on('click', '#search-results-list a', function (e) {
|
|
e.preventDefault();
|
|
var new_rating_key = $(this).data('rating_key');
|
|
var new_library_section = $(this).data('library_name');
|
|
var new_href = $(this).attr('href');
|
|
|
|
$('#new_title').html($(this).find('.item-children-instance-text-wrapper').html());
|
|
$('#new_library').text(new_library_section);
|
|
|
|
$('#confirm-modal-update').modal();
|
|
$('#confirm-modal-update').one('click', '#confirm-update', function () {
|
|
$(this).prop('disabled', true);
|
|
var msg = '<i class="fa fa-refresh fa-spin"></i> Updating database...';
|
|
showMsg(msg, false, false, 0);
|
|
|
|
$.ajax({
|
|
url: 'update_metadata_details',
|
|
data: {
|
|
old_rating_key: '${query["rating_key"]}',
|
|
new_rating_key: new_rating_key,
|
|
media_type: '${query["media_type"]}',
|
|
single_update: true
|
|
},
|
|
async: true,
|
|
success: function (data) {
|
|
window.location.href = new_href;
|
|
}
|
|
});
|
|
});
|
|
});
|
|
|
|
getSearchResults();
|
|
$('#update_search_form').submit(function (e) {
|
|
e.preventDefault();
|
|
if ($('#update_query').val().trim() != '')
|
|
{
|
|
getSearchResults();
|
|
}
|
|
})
|
|
</script>
|
|
% endif
|
|
</%def> |