1
0
Fork 0
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:
Luke Pulverenti 2013-12-01 21:24:14 -05:00
parent c6dd5d44df
commit 0605bfbaaa
9 changed files with 294 additions and 116 deletions

View file

@ -58,6 +58,7 @@ body {
h1 {
font-weight: 300;
font-size: 2.22em;
}
.toolsSidebar h1 {
@ -71,6 +72,7 @@ h1 {
h2 {
font-weight: 400;
font-size: 1.68em;
}
h1 a {

View file

@ -316,7 +316,7 @@
<ul data-role="listview" data-inset="true" data-split-icon="delete" id="listTags"></ul>
</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>
<div>
<p>

View file

@ -97,9 +97,18 @@
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="b" data-position-fixed="true">
<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">
<legend>
<strong>Filters:</strong>
<strong>User Data:</strong>
</legend>
<input class="chkStandardFilter" type="checkbox" data-theme="c" name="chkPlayed" id="chkPlayed" data-filter="IsPlayed" data-mini="true">
<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">
<label for="chk3D">3D</label>
</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">
<legend>
@ -164,6 +195,7 @@
<label for="chkThemeVideo">Theme video</label>
</fieldset>
</div>
</form>
</div>

View file

@ -516,17 +516,16 @@
userId: Dashboard.getCurrentUserId()
});
}
else if (item.Type == "Season" && item.IndexNumber != null) {
else if (item.Type == "Season") {
if (item.IndexNumber == null) {
// If there's no known season number, just use generic folder browsing
if (!user.Configuration.DisplayMissingEpisodes) {
query.IsMissing = false;
}
if (!user.Configuration.DisplayUnairedEpisodes) {
query.IsVirtualUnaired = false;
}
// Use dedicated episodes endpoint
promise = ApiClient.getEpisodes(item.SeriesId, {
seasonId: item.Id,
userId: Dashboard.getCurrentUserId()
});
} else {
// Use dedicated episodes endpoint

View file

@ -142,6 +142,11 @@
$('#chkThemeSong', page).checked(query.HasThemeSong == 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);
}
@ -290,6 +295,58 @@
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 () {
var limit = LibraryBrowser.getDefaultPageSize();

View file

@ -49,7 +49,7 @@
html += "<h3>" + plugin.Name + "</h3>";
html += "<p><strong>" + plugin.Version + "</strong></p>";
html += "<p>" + plugin.Version + "</p>";
html += "</a>";

View file

@ -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
html += '</div>';

View file

@ -143,6 +143,11 @@
$('#chkThemeVideo', page).checked(query.HasThemeVideo == 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);
}
@ -271,6 +276,58 @@
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 () {
var limit = LibraryBrowser.getDefaultPageSize();

View file

@ -78,6 +78,15 @@
</div>
<div data-role="panel" id="filterPanel" data-position="right" data-display="overlay" data-theme="b" data-position-fixed="true">
<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">
<legend>
<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">
<label for="chkSaturday">Saturday</label>
</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">
<legend>
@ -140,6 +170,7 @@
<label for="chkThemeVideo">Theme video</label>
</fieldset>
</div>
</form>
</div>
</div>