mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
fixes #640 - Add management filters
This commit is contained in:
parent
c6dd5d44df
commit
0605bfbaaa
9 changed files with 294 additions and 116 deletions
|
@ -58,6 +58,7 @@ body {
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
|
font-size: 2.22em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.toolsSidebar h1 {
|
.toolsSidebar h1 {
|
||||||
|
@ -71,6 +72,7 @@ h1 {
|
||||||
|
|
||||||
h2 {
|
h2 {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
font-size: 1.68em;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 a {
|
h1 a {
|
||||||
|
|
|
@ -316,7 +316,7 @@
|
||||||
<ul data-role="listview" data-inset="true" data-split-icon="delete" id="listTags"></ul>
|
<ul data-role="listview" data-inset="true" data-split-icon="delete" id="listTags"></ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div data-role="collapsible" data-mini="true" id="metadataSettingsCollapsible" style="display: none;">
|
<div data-role="collapsible" data-mini="true" id="metadataSettingsCollapsible" style="display: none;" data-collapsed="false">
|
||||||
<h3>Metadata Settings</h3>
|
<h3>Metadata Settings</h3>
|
||||||
<div>
|
<div>
|
||||||
<p>
|
<p>
|
||||||
|
|
|
@ -97,9 +97,18 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="b" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="b" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
|
|
||||||
|
<fieldset data-role="controlgroup" data-type="horizontal" style="margin-bottom: 1em;">
|
||||||
|
<legend>Filters:</legend>
|
||||||
|
<input type="radio" name="radioFilterTypes" id="radioBasicFilters" value="on" checked="checked" data-mini="true" data-theme="c">
|
||||||
|
<label for="radioBasicFilters">Basic</label>
|
||||||
|
<input type="radio" name="radioFilterTypes" id="radioAdvancedFilters" value="off" data-mini="true" data-theme="c">
|
||||||
|
<label for="radioAdvancedFilters">Advanced</label>
|
||||||
|
</fieldset>
|
||||||
|
<div class="basicFilters">
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
<legend>
|
<legend>
|
||||||
<strong>Filters:</strong>
|
<strong>User Data:</strong>
|
||||||
</legend>
|
</legend>
|
||||||
<input class="chkStandardFilter" type="checkbox" data-theme="c" name="chkPlayed" id="chkPlayed" data-filter="IsPlayed" data-mini="true">
|
<input class="chkStandardFilter" type="checkbox" data-theme="c" name="chkPlayed" id="chkPlayed" data-filter="IsPlayed" data-mini="true">
|
||||||
<label for="chkPlayed">Watched</label>
|
<label for="chkPlayed">Watched</label>
|
||||||
|
@ -142,6 +151,28 @@
|
||||||
<input class="chk3DFilter" type="checkbox" data-theme="c" name="chk3D" id="chk3D" data-filter="Digital3D,Sbs3D" data-mini="true">
|
<input class="chk3DFilter" type="checkbox" data-theme="c" name="chk3D" id="chk3D" data-filter="Digital3D,Sbs3D" data-mini="true">
|
||||||
<label for="chk3D">3D</label>
|
<label for="chk3D">3D</label>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="advancedFilters" style="display: none;">
|
||||||
|
|
||||||
|
<fieldset data-role="controlgroup">
|
||||||
|
<legend>
|
||||||
|
<strong>Management:</strong>
|
||||||
|
</legend>
|
||||||
|
|
||||||
|
<input class="chkMissingImdbId" type="checkbox" data-theme="c" name="chkMissingImdbId" id="chkMissingImdbId" data-mini="true">
|
||||||
|
<label for="chkMissingImdbId">Missing IMDb Id</label>
|
||||||
|
|
||||||
|
<input class="chkMissingTmdbId" type="checkbox" data-theme="c" name="chkMissingTmdbId" id="chkMissingTmdbId" data-mini="true">
|
||||||
|
<label for="chkMissingTmdbId">Missing Tmdb Id</label>
|
||||||
|
|
||||||
|
<input class="chkMissingOverview" type="checkbox" data-theme="c" name="chkMissingOverview" id="chkMissingOverview" data-mini="true">
|
||||||
|
<label for="chkMissingOverview">Missing Overview</label>
|
||||||
|
|
||||||
|
<input class="chkYearMismatch" type="checkbox" data-theme="c" name="chkYearMismatch" id="chkYearMismatch" data-mini="true">
|
||||||
|
<label for="chkYearMismatch">File/Metadata Years Mismatched</label>
|
||||||
|
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
<legend>
|
<legend>
|
||||||
|
@ -164,6 +195,7 @@
|
||||||
<label for="chkThemeVideo">Theme video</label>
|
<label for="chkThemeVideo">Theme video</label>
|
||||||
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -516,17 +516,16 @@
|
||||||
userId: Dashboard.getCurrentUserId()
|
userId: Dashboard.getCurrentUserId()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if (item.Type == "Season" && item.IndexNumber != null) {
|
else if (item.Type == "Season") {
|
||||||
|
|
||||||
if (item.IndexNumber == null) {
|
if (item.IndexNumber == null) {
|
||||||
|
|
||||||
// If there's no known season number, just use generic folder browsing
|
// Use dedicated episodes endpoint
|
||||||
if (!user.Configuration.DisplayMissingEpisodes) {
|
promise = ApiClient.getEpisodes(item.SeriesId, {
|
||||||
query.IsMissing = false;
|
|
||||||
}
|
seasonId: item.Id,
|
||||||
if (!user.Configuration.DisplayUnairedEpisodes) {
|
userId: Dashboard.getCurrentUserId()
|
||||||
query.IsVirtualUnaired = false;
|
});
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
// Use dedicated episodes endpoint
|
// Use dedicated episodes endpoint
|
||||||
|
|
|
@ -142,6 +142,11 @@
|
||||||
$('#chkThemeSong', page).checked(query.HasThemeSong == true).checkboxradio('refresh');
|
$('#chkThemeSong', page).checked(query.HasThemeSong == true).checkboxradio('refresh');
|
||||||
$('#chkThemeVideo', page).checked(query.HasThemeVideo == true).checkboxradio('refresh');
|
$('#chkThemeVideo', page).checked(query.HasThemeVideo == true).checkboxradio('refresh');
|
||||||
|
|
||||||
|
$('#chkMissingImdbId', page).checked(query.HasImdbId == false).checkboxradio('refresh');
|
||||||
|
$('#chkMissingTmdbId', page).checked(query.HasTmdbId == false).checkboxradio('refresh');
|
||||||
|
$('#chkMissingOverview', page).checked(query.HasOverview == false).checkboxradio('refresh');
|
||||||
|
$('#chkYearMismatch', page).checked(query.IsYearMismatched == true).checkboxradio('refresh');
|
||||||
|
|
||||||
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
|
$('.alphabetPicker', page).alphaValue(query.NameStartsWithOrGreater);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -290,6 +295,58 @@
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#radioBasicFilters', this).on('change', function () {
|
||||||
|
|
||||||
|
if (this.checked) {
|
||||||
|
$('.basicFilters', page).show();
|
||||||
|
$('.advancedFilters', page).hide();
|
||||||
|
} else {
|
||||||
|
$('.basicFilters', page).hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#radioAdvancedFilters', this).on('change', function () {
|
||||||
|
|
||||||
|
if (this.checked) {
|
||||||
|
$('.advancedFilters', page).show();
|
||||||
|
$('.basicFilters', page).hide();
|
||||||
|
} else {
|
||||||
|
$('.advancedFilters', page).hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#chkMissingImdbId', this).on('change', function () {
|
||||||
|
|
||||||
|
query.StartIndex = 0;
|
||||||
|
query.HasImdbId = this.checked ? false : null;
|
||||||
|
|
||||||
|
reloadItems(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#chkMissingTmdbId', this).on('change', function () {
|
||||||
|
|
||||||
|
query.StartIndex = 0;
|
||||||
|
query.HasTmdbId = this.checked ? false : null;
|
||||||
|
|
||||||
|
reloadItems(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#chkMissingOverview', this).on('change', function () {
|
||||||
|
|
||||||
|
query.StartIndex = 0;
|
||||||
|
query.HasOverview = this.checked ? false : null;
|
||||||
|
|
||||||
|
reloadItems(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#chkYearMismatch', this).on('change', function () {
|
||||||
|
|
||||||
|
query.StartIndex = 0;
|
||||||
|
query.IsYearMismatched = this.checked ? true : null;
|
||||||
|
|
||||||
|
reloadItems(page);
|
||||||
|
});
|
||||||
|
|
||||||
}).on('pagebeforeshow', "#moviesPage", function () {
|
}).on('pagebeforeshow', "#moviesPage", function () {
|
||||||
|
|
||||||
var limit = LibraryBrowser.getDefaultPageSize();
|
var limit = LibraryBrowser.getDefaultPageSize();
|
||||||
|
|
|
@ -49,7 +49,7 @@
|
||||||
|
|
||||||
html += "<h3>" + plugin.Name + "</h3>";
|
html += "<h3>" + plugin.Name + "</h3>";
|
||||||
|
|
||||||
html += "<p><strong>" + plugin.Version + "</strong></p>";
|
html += "<p>" + plugin.Version + "</p>";
|
||||||
|
|
||||||
html += "</a>";
|
html += "</a>";
|
||||||
|
|
||||||
|
|
|
@ -644,7 +644,7 @@ var Dashboard = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
html += '<a href="edititemmetadata.html" style="margin-top: .5em;">Metadata Manager</a>';
|
html += '<a href="edititemmetadata.html" style="margin-top: 1em;">Metadata Manager</a>';
|
||||||
|
|
||||||
// collapsible
|
// collapsible
|
||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
|
@ -143,6 +143,11 @@
|
||||||
$('#chkThemeVideo', page).checked(query.HasThemeVideo == true).checkboxradio('refresh');
|
$('#chkThemeVideo', page).checked(query.HasThemeVideo == true).checkboxradio('refresh');
|
||||||
$('#chkSpecialFeature', page).checked(query.HasSpecialFeature == true).checkboxradio('refresh');
|
$('#chkSpecialFeature', page).checked(query.HasSpecialFeature == true).checkboxradio('refresh');
|
||||||
|
|
||||||
|
$('#chkMissingImdbId', page).checked(query.HasImdbId == false).checkboxradio('refresh');
|
||||||
|
$('#chkMissingTvdbId', page).checked(query.HasTvdbId == false).checkboxradio('refresh');
|
||||||
|
$('#chkMissingOverview', page).checked(query.HasOverview == false).checkboxradio('refresh');
|
||||||
|
$('#chkYearMismatch', page).checked(query.IsYearMismatched == true).checkboxradio('refresh');
|
||||||
|
|
||||||
$('.alphabetPicker', page).alphaValue(query.NameStartsWith);
|
$('.alphabetPicker', page).alphaValue(query.NameStartsWith);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,6 +276,58 @@
|
||||||
reloadItems(page);
|
reloadItems(page);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#radioBasicFilters', this).on('change', function () {
|
||||||
|
|
||||||
|
if (this.checked) {
|
||||||
|
$('.basicFilters', page).show();
|
||||||
|
$('.advancedFilters', page).hide();
|
||||||
|
} else {
|
||||||
|
$('.basicFilters', page).hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#radioAdvancedFilters', this).on('change', function () {
|
||||||
|
|
||||||
|
if (this.checked) {
|
||||||
|
$('.advancedFilters', page).show();
|
||||||
|
$('.basicFilters', page).hide();
|
||||||
|
} else {
|
||||||
|
$('.advancedFilters', page).hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#chkMissingImdbId', this).on('change', function () {
|
||||||
|
|
||||||
|
query.StartIndex = 0;
|
||||||
|
query.HasImdbId = this.checked ? false : null;
|
||||||
|
|
||||||
|
reloadItems(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#chkMissingTvdbId', this).on('change', function () {
|
||||||
|
|
||||||
|
query.StartIndex = 0;
|
||||||
|
query.HasTvdbId = this.checked ? false : null;
|
||||||
|
|
||||||
|
reloadItems(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#chkMissingOverview', this).on('change', function () {
|
||||||
|
|
||||||
|
query.StartIndex = 0;
|
||||||
|
query.HasOverview = this.checked ? false : null;
|
||||||
|
|
||||||
|
reloadItems(page);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#chkYearMismatch', this).on('change', function () {
|
||||||
|
|
||||||
|
query.StartIndex = 0;
|
||||||
|
query.IsYearMismatched = this.checked ? true : null;
|
||||||
|
|
||||||
|
reloadItems(page);
|
||||||
|
});
|
||||||
|
|
||||||
}).on('pagebeforeshow', "#tvShowsPage", function () {
|
}).on('pagebeforeshow', "#tvShowsPage", function () {
|
||||||
|
|
||||||
var limit = LibraryBrowser.getDefaultPageSize();
|
var limit = LibraryBrowser.getDefaultPageSize();
|
||||||
|
|
|
@ -78,6 +78,15 @@
|
||||||
</div>
|
</div>
|
||||||
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="b" data-position-fixed="true">
|
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="b" data-position-fixed="true">
|
||||||
<form>
|
<form>
|
||||||
|
<fieldset data-role="controlgroup" data-type="horizontal" style="margin-bottom: 1em;">
|
||||||
|
<legend>Filters:</legend>
|
||||||
|
<input type="radio" name="radioFilterTypes" id="radioBasicFilters" value="on" checked="checked" data-mini="true" data-theme="c">
|
||||||
|
<label for="radioBasicFilters">Basic</label>
|
||||||
|
<input type="radio" name="radioFilterTypes" id="radioAdvancedFilters" value="off" data-mini="true" data-theme="c">
|
||||||
|
<label for="radioAdvancedFilters">Advanced</label>
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
|
<div class="basicFilters">
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
<legend>
|
<legend>
|
||||||
<strong>Filters:</strong>
|
<strong>Filters:</strong>
|
||||||
|
@ -121,6 +130,27 @@
|
||||||
<input class="chkAirDays" type="checkbox" name="chkSaturday" id="chkSaturday" data-theme="c" data-filter="Saturday" data-mini="true">
|
<input class="chkAirDays" type="checkbox" name="chkSaturday" id="chkSaturday" data-theme="c" data-filter="Saturday" data-mini="true">
|
||||||
<label for="chkSaturday">Saturday</label>
|
<label for="chkSaturday">Saturday</label>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
<div class="advancedFilters" style="display: none;">
|
||||||
|
|
||||||
|
<fieldset data-role="controlgroup">
|
||||||
|
<legend>
|
||||||
|
<strong>Management:</strong>
|
||||||
|
</legend>
|
||||||
|
|
||||||
|
<input class="chkMissingImdbId" type="checkbox" data-theme="c" name="chkMissingImdbId" id="chkMissingImdbId" data-mini="true">
|
||||||
|
<label for="chkMissingImdbId">Missing IMDb Id</label>
|
||||||
|
|
||||||
|
<input class="chkMissingTvdbId" type="checkbox" data-theme="c" name="chkMissingTvdbId" id="chkMissingTvdbId" data-mini="true">
|
||||||
|
<label for="chkMissingTvdbId">Missing Tvdb Id</label>
|
||||||
|
|
||||||
|
<input class="chkMissingOverview" type="checkbox" data-theme="c" name="chkMissingOverview" id="chkMissingOverview" data-mini="true">
|
||||||
|
<label for="chkMissingOverview">Missing Overview</label>
|
||||||
|
|
||||||
|
<input class="chkYearMismatch" type="checkbox" data-theme="c" name="chkYearMismatch" id="chkYearMismatch" data-mini="true">
|
||||||
|
<label for="chkYearMismatch">File/Metadata Years Mismatched</label>
|
||||||
|
|
||||||
|
</fieldset>
|
||||||
|
|
||||||
<fieldset data-role="controlgroup">
|
<fieldset data-role="controlgroup">
|
||||||
<legend>
|
<legend>
|
||||||
|
@ -140,6 +170,7 @@
|
||||||
<label for="chkThemeVideo">Theme video</label>
|
<label for="chkThemeVideo">Theme video</label>
|
||||||
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue