pull/884/head
Moravčík, Marian 5 years ago
parent 2d1e734400
commit 0e500171ce

@ -133,7 +133,8 @@ a.link:hover, a.link:focus {
font-weight: 400;
border-left: 3px solid #ce2829;
background: #252833;
padding: 8px 35px 8px 37px; }
padding: 8px 35px 8px 37px;
box-shadow: 0 0 0 rgba(0, 0, 0, 0.2); }
.sidebar-nav > ul > li.active > a i {
color: #ce2829;
font-size: 14px; }
@ -294,14 +295,15 @@ a.link:hover, a.link:focus {
.page-titles {
background: #4f566f;
margin: 0 -30px 30px;
min-height: 50px;
height: 50px;
margin: 0 -30px 5px;
min-height: 60px;
height: 60px;
padding: 0;
box-shadow: 0 0 0 rgba(0, 0, 0, 0.1); }
.page-titles .btn {
height: 50px;
width: 80px; }
width: 70px;
padding: 0 0; }
.card-no-border .sidebar-nav > ul > li > a.active {
background: #252833; }
@ -341,4 +343,40 @@ a.link:hover, a.link:focus {
background: white;
padding-bottom: 60px; }
.overlay {
display: none;
height: 100%;
width: 100%;
position: fixed;
z-index: 2147483647;
left: 0;
top: 0;
background-color: black;
background-color: rgba(0, 0, 0, 0.8);
backdrop-filter: blur(6px);
overflow-x: hidden; }
.overlay-content {
position: relative;
top: 50%;
width: 100%;
text-align: center; }
.dataTables_wrapper {
padding-top: 0px; }
.dt-buttons {
display: inline-block;
padding-top: 0;
margin-bottom: 0; }
.tooltip {
pointer-events: none; }
table.dataTable tbody td {
vertical-align: middle; }
.container-fluid {
padding: 0 5px 25px 30px; }
/*# sourceMappingURL=bazarr.css.map */

File diff suppressed because one or more lines are too long

@ -197,6 +197,7 @@ a.link {
border-left: 3px solid $topbar;
background: $themecolor-alt;
padding: 8px 35px 8px 37px;
box-shadow: 0 0 0 rgba(0, 0, 0, 0.2);
i {
color: $topbar;
@ -439,15 +440,16 @@ a.link {
.page-titles {
background: #4f566f;
margin: 0 -30px 30px;
min-height: 50px;
height: 50px;
margin: 0 -30px 5px;
min-height: 60px;
height: 60px;
padding: 0;
box-shadow: 0 0 0 rgba(0, 0, 0, 0.1);
.btn {
height: 50px;
width: 80px;
width: 70px;
padding: 0 0;
}
}
@ -500,3 +502,46 @@ a.link {
background: $bodycolor;
padding-bottom: 60px;
}
.overlay {
display: none;
height: 100%;
width: 100%;
position: fixed;
z-index: 2147483647;
left: 0;
top: 0;
background-color: rgb(0, 0, 0);
background-color: rgba(0, 0, 0, 0.8);
backdrop-filter: blur(6px);
overflow-x: hidden;
}
.overlay-content {
position: relative;
top: 50%;
width: 100%;
text-align: center;
}
.dataTables_wrapper {
padding-top: 0px
}
.dt-buttons{
display: inline-block;
padding-top: 0;
margin-bottom: 0;
}
.tooltip {
pointer-events: none;
}
table.dataTable tbody td {
vertical-align: middle;
}
.container-fluid {
padding: 0 5px 25px 30px;
}

@ -39,34 +39,6 @@
href="{{ url_for('static',filename='plugins/datatables.net-bs4/css/dataTables.bootstrap4.min.css') }}">
<link rel="stylesheet" href="{{ url_for('static',filename='css/bootstrap-select.css') }}" />
<style>
table.dataTable tbody td {
vertical-align: middle;
}
.tooltip { pointer-events: none; }
.overlay {
display: none;
height: 100%;
width: 100%;
position: fixed;
z-index: 2147483647;
left: 0;
top: 0;
background-color: rgb(0,0,0);
background-color: rgba(0,0,0, 0.8);
backdrop-filter: blur(6px);
overflow-x: hidden;
}
.overlay-content {
position: relative;
top: 50%;
width: 100%;
text-align: center;
}
</style>
{% endblock head_css %}
{% block head %}

@ -10,7 +10,7 @@
background-position: top center;
box-sizing: initial;
margin-left: -32px;
margin-top: -30px;
margin-top: -5px;
padding: 2em;
}
@ -76,7 +76,8 @@
<div class="container-fluid">
<div class="row">
<h1><span id="seriesTitle"></span></h1>
<i class="far fa-clone" id="seriesAlternateTitles" data-toggle="tooltip" data-placement="right" title="None" data-html="true"></i>
<i class="far fa-clone" id="seriesAlternateTitles" data-toggle="tooltip" data-placement="right"
title="None" data-html="true"></i>
</div>
<div class="row">
<h5><span id="seriesAudioLanguage" class="badge badge-secondary"></span></h5>
@ -98,6 +99,7 @@
</div>
</div>
<div class="container-fluid">
<!-- ============================================================== -->
<!-- Bread crumb and right sidebar toggle -->
<!-- ============================================================== -->
<table id="episodes" class="table table-striped" style="width:100%">
@ -176,7 +178,8 @@
</div>
<div class="form-group col-sm-1 pl-sm-0">
<label class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" id="forced_checkbox" name="forced">
<input type="checkbox" class="custom-control-input" id="forced_checkbox"
name="forced">
<span class="custom-control-label" for="forced_checkbox"></span>
</label>
</div>
@ -234,7 +237,8 @@
Subtitles Language(s)
</div>
<div class="form-group col-sm-8 pl-sm-0">
<select class="selectpicker" id="edit_languages_select" name="languages" multiple data-live-search="true"></select>
<select class="selectpicker" id="edit_languages_select" name="languages" multiple
data-live-search="true"></select>
</div>
</div>
<div class="row">
@ -322,26 +326,28 @@
getEnabledLanguages();
var table = $('#episodes').DataTable({
"processing": true,
"serverSide": true,
dom: "tr",
processing: true,
serverSide: true,
language: {
zeroRecords: 'No Episodes Found For This Series',
processing: "Loading Episodes..."
},
"searching": false,
"ordering": false,
"lengthChange": false,
"responsive": true,
"pageLength": {{ settings.general.page_size }},
"ajax": "{{ url_for('api.episodes') }}?seriesid={{id}}",
searching: false,
ordering: false,
lengthChange: false,
responsive: true,
pageLength: {{ settings.general.page_size }},
ajax: "{{ url_for('api.episodes') }}?seriesid={{id}}",
rowGroup: {
dataSrc: function (data) {
return 'Season ' + data.season;
}
},
"columns": [
{"data": "monitored",
"render": function (data, type, row) {
columns: [
{
data: "monitored",
render: function (data, type, row) {
if (data === 'False') {
return '<i class="far fa-bookmark" data-toggle="tooltip" data-placement="right" title="Episode unmonitored in Sonarr"></i>';
} else if (data === 'True') {
@ -349,9 +355,10 @@
}
}
},
{"data": "episode"},
{"data": null,
"render": function (data) {
{data: "episode"},
{
data: null,
render: function (data) {
var title_path = '<a href="" data-toggle="tooltip" title="Path is: ' + data.mapped_path + '" data-season=' + data.season + ' data-episode=' + data.episode + ' data-episodeTitle="' + data.title + '" data-sonarrEpisodeId=' + data.sonarrEpisodeId + ' class="episode_history">' + data.title + '</a>';
if (data.scene_name) {
return '<i class="fas fa-info-circle" data-toggle="tooltip" data-placement="right" title="' + data.scene_name + '"></i> ' + title_path;
@ -360,8 +367,9 @@
}
}
},
{"data": null,
"render": function (data) {
{
data: null,
render: function (data) {
if (data.subtitles !== 'None') {
var languages = '';
data.subtitles.forEach(appendFunc);
@ -379,8 +387,9 @@
}
}
},
{"data": null,
"render": function (data) {
{
data: null,
render: function (data) {
if (data.missing_subtitles !== 'None') {
var languages = '';
data.missing_subtitles.forEach(appendFunc);
@ -394,8 +403,9 @@
}
}
},
{"data": null,
"render": function (data) {
{
data: null,
render: function (data) {
if (data.desired_languages !== '[]') {
return '<a href="" class="manual_search badge badge-secondary" data-season=' + data.season + ' data-episode=' + data.episode + ' data-episode_title="' + data.title + '" data-episodePath="' + data.mapped_path + '" data-sceneName="' + data.scene_name + '" data-language="' + data.desired_languages + '" data-sonarrEpisodeId=' + data.sonarrEpisodeId + '><i class="fas fa-user"></i></a>';
} else {
@ -403,8 +413,9 @@
}
}
},
{"data": null,
"render": function (data) {
{
data: null,
render: function (data) {
if (data.desired_languages !== '[]') {
return '<a href="" class="upload_subtitle badge badge-secondary" data-episodePath="' + data.mapped_path + '" data-sceneName"' + data.scene_name + '" data-sonarrSeriesId="' + seriesDetails['sonarrSeriesId'] + '" data-sonarrEpisodeId="' + data.sonarrEpisodeId + '" data-season="' + data.season + '" data-episode="' + data.episode + '" data-episode_title="' + data.title + '"><i class="fas fa-cloud-upload-alt"></i></a>';
} else {
@ -510,12 +521,14 @@
data: values
},
columns: [
{ data: 'score',
{
data: 'score',
render: function (data) {
return data + '%';
}
},
{ data: null,
{
data: null,
render: function (data) {
if (data.language === "pt" && is_pb === true && is_pt === false) {
return 'pb'
@ -525,12 +538,14 @@
}
},
{data: 'hearing_impaired'},
{ data: null,
{
data: null,
render: function (data) {
return '<a href="' + data.url + '" target="_blank">' + data.provider + '</a>';
}
},
{ data: null,
{
data: null,
render: function (data) {
const array_matches = data.matches;
const array_dont_matches = data.dont_matches;
@ -548,7 +563,8 @@
return text;
}
},
{ data: null,
{
data: null,
render: function (data) {
const array_release_info = data.release_info;
let i;
@ -560,7 +576,8 @@
return text;
}
},
{ data: null,
{
data: null,
render: function (data) {
return '<a href="" class="manual_download badge badge-secondary" data-episodePath="' + episodePath + '" data-sceneName="' + sceneName + '" data-sonarrEpisodeId=' + sonarrEpisodeId + ' data-subtitle="' + data.subtitle + '" data-provider="' + data.provider + '" data-language="' + data.language + '" data-forced="' + forced + '"><i class="fas fa-download" style="margin-right:0px" ></i></a>';
}
@ -786,14 +803,22 @@
url: '{{ url_for( 'api.episodeshistory' )}}?episodeid=' + sonarrEpisodeId
},
columns: [
{ data: 'action',
{
data: 'action',
"render": function (data) {
if (data === 0) {return "<i class='fas fa-trash' title='Subtitle file has been erased.' data-toggle='tooltip' data-placement='right'></i>";}
else if (data === 1) {return "<i class='fas fa-download' title='Subtitle file has been downloaded.' data-toggle='tooltip' data-placement='right'></i>";}
else if (data === 2) {return "<i class='fas fa-user' title='Subtitle file has been manually downloaded.' data-toggle='tooltip' data-placement='right'></i>";}
else if (data === 3) {return "<i class='fas fa-recycle' title='Subtitle file has been upgraded.' data-toggle='tooltip' data-placement='right'></i>";}
else if (data === 4) {return "<i class='fas fa-cloud-upload-alt' title='Subtitle file has been manually uploaded.' data-toggle='tooltip' data-placement='right'></i>";}
}},
if (data === 0) {
return "<i class='fas fa-trash' title='Subtitle file has been erased.' data-toggle='tooltip' data-placement='right'></i>";
} else if (data === 1) {
return "<i class='fas fa-download' title='Subtitle file has been downloaded.' data-toggle='tooltip' data-placement='right'></i>";
} else if (data === 2) {
return "<i class='fas fa-user' title='Subtitle file has been manually downloaded.' data-toggle='tooltip' data-placement='right'></i>";
} else if (data === 3) {
return "<i class='fas fa-recycle' title='Subtitle file has been upgraded.' data-toggle='tooltip' data-placement='right'></i>";
} else if (data === 4) {
return "<i class='fas fa-cloud-upload-alt' title='Subtitle file has been manually uploaded.' data-toggle='tooltip' data-placement='right'></i>";
}
}
},
{data: 'language'},
{data: 'provider'},
{data: 'score'},

@ -27,20 +27,21 @@
<script>
$(document).ready(function () {
var table = $('#history_movies').DataTable({
"processing": false,
"serverSide": true,
processing: false,
serverSide: true,
language: {
zeroRecords: 'Nothing Found In Movies History',
processing: "Loading Movies History..."
},
"searching": false,
"ordering": false,
"responsive": true,
"lengthChange": false,
"pageLength": {{ settings.general.page_size }},
"ajax": "{{ url_for('api.historymovies') }}",
"columns": [
{"data": "action",
searching: false,
ordering: false,
responsive: true,
lengthChange: false,
pageLength: {{ settings.general.page_size }},
ajax: "{{ url_for('api.historymovies') }}",
columns: [
{
"data": "action",
"render": function (data) {
if (data === 0) {
return "<i class='fas fa-trash' title='Subtitle file has been erased.' data-toggle='tooltip' data-placement='right'></i>";
@ -55,14 +56,16 @@
}
}
},
{"data": null,
"render": function (data) {
{
data: null,
render: function (data) {
return '<a href="' + "{{ url_for( 'movie', no='tempvalue' ) }}".replace("tempvalue", data.radarrId) + '">' + data.title + '</a>';
}
},
{"data": "timestamp"},
{"data": null,
"render": function (data) {
{data: "timestamp"},
{
data: null,
render: function (data) {
if (data.upgradable) {
return "<i class='fas fa-recycle' title='This Subtitles File Is Eligible For An Upgrade.' style='color: green;' data-toggle='tooltip' data-placement='right'></i> " + data.description;
} else {

@ -29,21 +29,22 @@
<script>
$(document).ready(function () {
var table = $('#history_series').DataTable({
"processing": true,
"serverSide": true,
processing: true,
serverSide: true,
language: {
zeroRecords: 'Nothing Found In Series History',
processing: "Loading Series History..."
},
"searching": false,
"ordering": false,
"lengthChange": false,
"responsive": true,
"pageLength": {{ settings.general.page_size }},
"ajax": "{{ url_for('api.historyseries') }}",
"columns": [
{"data": "action",
"render": function(data) {
searching: false,
ordering: false,
lengthChange: false,
responsive: true,
pageLength: {{ settings.general.page_size }},
ajax: "{{ url_for('api.historyseries') }}",
columns: [
{
data: "action",
render: function (data) {
if (data === 0) {
return "<i class='fas fa-trash' title='Subtitle file has been erased.' data-toggle='tooltip' data-placement='right'></i>";
} else if (data === 1) {
@ -57,16 +58,18 @@
}
}
},
{"data": null,
"render": function (data) {
{
data: null,
render: function (data) {
return '<a href="' + "{{ url_for( 'episodes', no='tempvalue' ) }}".replace("tempvalue", data.sonarrSeriesId) + '">' + data.seriesTitle + '</a>';
}
},
{"data": "episode_number"},
{"data": "episodeTitle"},
{"data": "timestamp"},
{"data": null,
"render": function (data) {
{data: "episode_number"},
{data: "episodeTitle"},
{data: "timestamp"},
{
data: null,
render: function (data) {
if (data.upgradable) {
return "<i class='fas fa-recycle' title='This Subtitles File Is Eligible For An Upgrade.' style='color: green;' data-toggle='tooltip' data-placement='right'></i> " + data.description;
} else {

@ -10,7 +10,7 @@
background-position: top center;
box-sizing: initial;
margin-left: -32px;
margin-top: -30px;
margin-top: -5px;
padding: 2em;
}

@ -4,7 +4,8 @@
{% block bcleft %}
<div class="">
<button class="btn btn-outline" id="mass_edit" onclick="window.location.href = '{{ url_for('movieseditor') }}';">
<button class="btn btn-outline" id="mass_edit"
onclick="window.location.href = '{{ url_for('movieseditor') }}';">
<div><i class="fas fa-list align-top text-themecolor text-center font-20" aria-hidden="true"></i></div>
<div class="align-bottom text-themecolor small text-center">Mass Edit</div>
</button>
@ -56,7 +57,8 @@
Subtitles Language(s)
</div>
<div class="form-group col-sm-8 pl-sm-0">
<select class="selectpicker" id="edit_languages_select" name="languages" multiple data-live-search="true"></select>
<select class="selectpicker" id="edit_languages_select" name="languages" multiple
data-live-search="true"></select>
</div>
</div>
<div class="row">
@ -139,21 +141,21 @@
});
var table = $('#movies').DataTable({
"dom":
dom:
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
"processing": false,
"serverSide": true,
"searching": false,
"ordering": false,
"lengthChange": true,
"responsive": true,
"pageLength": {{ settings.general.page_size }},
"ajax": "{{ url_for('api.movies') }}",
"columns": [
processing: false,
serverSide: true,
searching: false,
ordering: false,
lengthChange: true,
responsive: true,
pageLength: {{ settings.general.page_size }},
ajax: "{{ url_for('api.movies') }}",
columns: [
{
"data": "monitored",
"render": function (data, type, row) {
data: "monitored",
render: function (data, type, row) {
if (data === 'False') {
return '<i class="far fa-bookmark" data-toggle="tooltip" data-placement="right" title="Movie unmonitored in Radarr"></i>';
} else if (data === 'True') {
@ -162,8 +164,8 @@
}
},
{
"data": null,
"render": function (data) {
data: null,
render: function (data) {
if (data.sceneName) {
return '<i class="fas fa-info-circle" data-toggle="tooltip" data-placement="right" title="' + data.sceneName + '"></i> ' + '<a href="' + "{{ url_for( 'movie', no='tempvalue' ) }}".replace("tempvalue", data.radarrId) + '">' + data.title + '</a>';
} else {
@ -172,9 +174,9 @@
}
},
{
"data": null,
"className": "dt-center",
"render": function (data) {
data: null,
className: "dt-center",
render: function (data) {
if (data.exist === false) {
return '<i class="fas fa-exclamation-triangle" data-toggle="tooltip" data-placement="right" title="This path doesn\'t seem to be valid: ' + data.mapped_path + '"></i>';
} else if (data.exist === true) {
@ -182,10 +184,10 @@
}
}
},
{"data": "audio_language.name"},
{data: "audio_language.name"},
{
"data": "languages",
"render": function (data) {
data: "languages",
render: function (data) {
if (data !== 'None') {
var languages = '';
data.forEach(appendFunc);
@ -200,16 +202,16 @@
}
},
{
"data": "hearing_impaired",
"className": "dt-center"
data: "hearing_impaired",
className: "dt-center"
},
{
"data": "forced",
"className": "dt-center"
data: "forced",
className: "dt-center"
},
{
"data": null,
"render": function (data) {
data: null,
render: function (data) {
return '<a href="" class="edit_button badge badge-secondary" data-radarrId=' + data.radarrId + ' data-audiolanguage="' + data.audio_language.name + '" data-title="' + data.title + '" data-languages=' + JSON.stringify(data.languages) + ' data-hi="' + data.hearing_impaired + '" data-forced="' + data.forced + '"><i class="fas fa-wrench"></i></a>';
}
}

@ -106,38 +106,39 @@
$('#save_button').css('cursor', 'not-allowed');
var table = $('#movies').DataTable({
"processing": true,
"serverSide": true,
processing: true,
serverSide: true,
language: {
zeroRecords: 'No Movies Found',
processing: "Loading Movies..."
},
"searching": false,
"ordering": false,
"lengthChange": true,
"responsive": true,
"paging": false,
"ajax": "{{ url_for('api.movies') }}",
"columnDefs": [ {
"orderable": false,
"className": 'select-checkbox',
"targets": 0
searching: false,
ordering: false,
lengthChange: true,
responsive: true,
paging: false,
ajax: "{{ url_for('api.movies') }}",
columnDefs: [{
orderable: false,
className: 'select-checkbox',
targets: 0
}],
"select": {
"style": 'multi',
"selector": 'td:first-child'
select: {
style: 'multi',
selector: 'td:first-child'
},
"columns": [
{"defaultContent": ""},
{"data": null,
"render": function (data) {
columns: [
{defaultContent: ""},
{
data: null,
render: function (data) {
return '<a href="' + "{{ url_for( 'movie', no='tempvalue' ) }}".replace("tempvalue", data.radarrId) + '">' + data.title + '</a>'
}
},
{"data": "audio_language.name"},
{data: "audio_language.name"},
{
"data": "languages",
"render": function (data) {
data: "languages",
render: function (data) {
if (data !== 'None') {
var languages = '';
data.forEach(appendFunc);
@ -152,25 +153,36 @@
}
},
{
"data": "hearing_impaired",
"className": "dt-center"
data: "hearing_impaired",
className: "dt-center"
},
{
"data": "forced",
"className": "dt-center"
data: "forced",
className: "dt-center"
}
]
});
new $.fn.dataTable.Buttons(table, {
"buttons": [
'selectAll',
'selectNone'
]
buttons: [
{
extend: 'selectAll',
text: '<div><i class="far fa-check-square align-top text-themecolor text-center font-20" aria-hidden="true"></i></div>\n' +
' <div class="align-bottom text-themecolor small text-center">Select ALL</div>'
},
{
extend: 'selectNone',
text: '<div><i class="far fa-square align-top text-themecolor text-center font-20" aria-hidden="true"></i></div>\n' +
' <div class="align-bottom text-themecolor small text-center nowrap">Deselect ALL</div>'
}]
});
table.buttons().container().appendTo('#buttons');
var btns = $('.dt-button');
btns.addClass('btn btn-outline');
btns.removeClass('dt-button');
table.on('select', function () {
$('.selectpicker').prop('disabled', false);
$('.selectpicker').selectpicker('refresh');

@ -4,7 +4,8 @@
{% block bcleft %}
<div class="">
<button class="btn btn-outline" id="mass_edit" onclick="window.location.href = '{{ url_for('serieseditor') }}';">
<button class="btn btn-outline" id="mass_edit"
onclick="window.location.href = '{{ url_for('serieseditor') }}';">
<div><i class="fas fa-list align-top text-themecolor text-center font-20" aria-hidden="true"></i></div>
<div class="align-bottom text-themecolor small text-center">Mass Edit</div>
</button>
@ -56,7 +57,8 @@
Subtitles Language(s)
</div>
<div class="form-group col-sm-8 pl-sm-0">
<select class="selectpicker" id="edit_languages_select" name="languages" multiple data-live-search="true"></select>
<select class="selectpicker" id="edit_languages_select" name="languages" multiple
data-live-search="true"></select>
</div>
</div>
<div class="row">
@ -140,29 +142,33 @@
});
var table = $('#series').DataTable({
"processing": true,
"serverSide": true,
dom:
"<'row'<'col-sm-12'tr>>" +
"<'row'<'col-sm-5'i><'col-sm-7'p>>",
processing: true,
serverSide: true,
language: {
zeroRecords: 'No Series Found',
processing: "Loading Series..."
},
"searching": false,
"ordering": false,
"lengthChange": false,
"responsive": true,
"pageLength": {{ settings.general.page_size }},
"ajax": "{{ url_for('api.series') }}",
"columns": [
{"data": null,
"render": function (data) {
searching: false,
ordering: false,
lengthChange: false,
responsive: true,
pageLength: {{ settings.general.page_size }},
ajax: "{{ url_for('api.series') }}",
columns: [
{
data: null,
render: function (data) {
return '<a href="' + "{{ url_for( 'episodes', no='tempvalue' ) }}".replace("tempvalue", data.sonarrSeriesId) + '">' + data.title + '</a>';
}
},
{
"data": null,
"className": "dt-center",
"responsivePriority": 1,
"render": function (data) {
data: null,
className: "dt-center",
responsivePriority: 1,
render: function (data) {
if (data.exist === false) {
return '<i class="fas fa-exclamation-triangle" data-toggle="tooltip" data-placement="right" title="This path doesn\'t seem to be valid: ' + data.mapped_path + '"></i>';
} else if (data.exist === true) {
@ -170,10 +176,10 @@
}
}
},
{"data": "audio_language.name"},
{data: "audio_language.name"},
{
"data": "languages",
"render": function (data) {
data: "languages",
render: function (data) {
if (data !== 'None') {
var languages = '';
data.forEach(appendFunc);
@ -188,17 +194,17 @@
}
},
{
"data": "hearing_impaired",
"className": "dt-center"
data: "hearing_impaired",
className: "dt-center"
},
{
"data": "forced",
"className": "dt-center"
data: "forced",
className: "dt-center"
},
{
"data": null,
"responsivePriority": 2,
"render": function (data) {
data: null,
responsivePriority: 2,
render: function (data) {
var total = data.episodeFileCount;
var completed = data.episodeFileCount - data.episodeMissingCount;
var completed_style = '';
@ -211,8 +217,8 @@
}
},
{
"data": null,
"render": function (data) {
data: null,
render: function (data) {
return '<a href="" class="edit_button badge badge-secondary" data-sonarrSeriesId=' + data.sonarrSeriesId + ' data-audiolanguage="' + data.audio_language.name + '" data-title="' + data.title + '" data-languages=' + JSON.stringify(data.languages) + ' data-hi="' + data.hearing_impaired + '" data-forced="' + data.forced + '"><i class="fas fa-wrench"></i></a>';
}
}

@ -106,38 +106,39 @@
$('#save_button').css('cursor', 'not-allowed');
var table = $('#series').DataTable({
"processing": true,
"serverSide": true,
processing: true,
serverSide: true,
language: {
zeroRecords: 'No Series Found',
processing: "Loading Series..."
},
"searching": false,
"ordering": false,
"lengthChange": true,
"responsive": true,
"paging": false,
"ajax": "{{ url_for('api.series') }}",
"columnDefs": [ {
"orderable": false,
"className": 'select-checkbox',
"targets": 0
searching: false,
ordering: false,
lengthChange: true,
responsive: true,
paging: false,
ajax: "{{ url_for('api.series') }}",
columnDefs: [{
orderable: false,
className: 'select-checkbox',
targets: 0
}],
"select": {
"style": 'multi',
"selector": 'td:first-child'
select: {
style: 'multi',
selector: 'td:first-child'
},
"columns": [
{"defaultContent": ""},
{"data": null,
"render": function (data) {
columns: [
{defaultContent: ""},
{
data: null,
render: function (data) {
return '<a href="' + "{{ url_for( 'episodes', no='tempvalue' ) }}".replace("tempvalue", data.sonarrSeriesId) + '">' + data.title + '</a>'
}
},
{"data": "audio_language.name"},
{data: "audio_language.name"},
{
"data": "languages",
"render": function (data) {
data: "languages",
render: function (data) {
if (data !== 'None') {
var languages = '';
data.forEach(appendFunc);
@ -151,26 +152,31 @@
}
}
},
{
"data": "hearing_impaired",
"className": "dt-center"
},
{
"data": "forced",
"className": "dt-center"
}
{data: "hearing_impaired", className: "dt-center"},
{data: "forced", className: "dt-center"}
]
});
new $.fn.dataTable.Buttons(table, {
"buttons": [
'selectAll',
'selectNone'
]
buttons: [
{
extend: 'selectAll',
text: '<div><i class="far fa-check-square align-top text-themecolor text-center font-20" aria-hidden="true"></i></div>\n' +
' <div class="align-bottom text-themecolor small text-center">Select ALL</div>'
},
{
extend: 'selectNone',
text: '<div><i class="far fa-square align-top text-themecolor text-center font-20" aria-hidden="true"></i></div>\n' +
' <div class="align-bottom text-themecolor small text-center nowrap">Deselect ALL</div>'
}]
});
table.buttons().container().appendTo('#buttons');
var btns = $('.dt-button');
btns.addClass('btn btn-outline');
btns.removeClass('dt-button');
table.on('select', function () {
$('.selectpicker').prop('disabled', false);
$('.selectpicker').selectpicker('refresh');

@ -28,26 +28,28 @@
<script>
$(document).ready(function () {
var table = $('#wanted_movies').DataTable({
"processing": true,
"serverSide": true,
processing: true,
serverSide: true,
language: {
zeroRecords: 'No Missing Movies Subtitles',
processing: "Loading Missing Movies Subtitles..."
},
"searching": false,
"ordering": false,
"lengthChange": false,
"responsive": true,
"pageLength": {{ settings.general.page_size }},
"ajax": "{{ url_for('api.wantedmovies') }}",
"columns": [
{"data": null,
"render": function (data) {
searching: false,
ordering: false,
lengthChange: false,
responsive: true,
pageLength: {{ settings.general.page_size }},
ajax: "{{ url_for('api.wantedmovies') }}",
columns: [
{
data: null,
render: function (data) {
return '<a href="' + "{{ url_for( 'movie', no='tempvalue' ) }}".replace("tempvalue", data.radarrId) + '">' + data.title + '</a>';
}
},
{"data": null,
"render": function (data) {
{
data: null,
render: function (data) {
if (data.missing_subtitles !== 'None') {
var languages = '';
data.missing_subtitles.forEach(appendFunc);

@ -30,28 +30,30 @@
<script>
$(document).ready(function () {
var table = $('#wanted_series').DataTable({
"processing": true,
"serverSide": true,
processing: true,
serverSide: true,
language: {
zeroRecords: 'No Missing Series Subtitles',
processing: "Loading Missing Series Subtitles..."
},
"searching": false,
"ordering": false,
"lengthChange": false,
"responsive": true,
"pageLength": {{ settings.general.page_size }},
"ajax": "{{ url_for('api.wantedseries') }}",
"columns": [
{"data": null,
"render": function (data) {
searching: false,
ordering: false,
lengthChange: false,
responsive: true,
pageLength: {{ settings.general.page_size }},
ajax: "{{ url_for('api.wantedseries') }}",
columns: [
{
data: null,
render: function (data) {
return '<a href="' + "{{ url_for( 'episodes', no='tempvalue' ) }}".replace("tempvalue", data.sonarrSeriesId) + '">' + data.seriesTitle + '</a>';
}
},
{"data": "episode_number"},
{"data": "episodeTitle"},
{"data": null,
"render": function (data) {
{data: "episode_number"},
{data: "episodeTitle"},
{
data: null,
render: function (data) {
if (data.missing_subtitles !== 'None') {
var languages = '';
data.missing_subtitles.forEach(appendFunc);

Loading…
Cancel
Save