This commit is contained in:
Luke Pulverenti 2015-07-17 18:32:13 -04:00
commit bfb177618f
2 changed files with 73 additions and 45 deletions

View file

@ -10,13 +10,14 @@
<div class="viewControls"> <div class="viewControls">
<span style="margin-right: 10px; vertical-align: middle;">${LabelReport}</span> <span style="margin-right: 10px; vertical-align: middle;">${LabelReport}</span>
<div style="display: inline-block;"> <div style="display: inline-block;">
<select data-mini="true" data-inline="true" id="selectReportType"> <select data-mini="true" data-inline="true" id="selectViewType">
<option value="ReportData">${OptionReportList}</option> <option value="ReportData">${OptionReportList}</option>
<option value="ReportStatistic">${OptionReportStatistics}</option> <option value="ReportStatistics">${OptionReportStatistics}</option>
<option value="ReportActivities">${OptionReportActivities}</option>
</select> </select>
</div> </div>
<div style="display: inline-block;"> <div style="display: inline-block;" id="selectIncludeItemTypesBox">
<select data-mini="true" data-inline="true" id="selectView" name="selectView"> <select data-mini="true" data-inline="true" id="selectIncludeItemTypes" name="selectIncludeItemTypes">
<option value="MusicAlbum">${OptionReportAlbums}</option> <option value="MusicAlbum">${OptionReportAlbums}</option>
<option value="MusicArtist">${OptionReportArtists}</option> <option value="MusicArtist">${OptionReportArtists}</option>
<option value="Book">${OptionReportBooks}</option> <option value="Book">${OptionReportBooks}</option>
@ -49,7 +50,7 @@
<a href="#" id="tabFilter" data-role="button" class="viewTabButton" data-tab="tabFilter">${TabFilter}</a> <a href="#" id="tabFilter" data-role="button" class="viewTabButton" data-tab="tabFilter">${TabFilter}</a>
</div> </div>
<div class="tabView viewTab"> <div class="tabView viewTab" id="tabViewBox">
<div id="selectReportGroupingBox"> <div id="selectReportGroupingBox">
<label for="selectViewGrouping">${OptionReportGrouping}</label> <label for="selectViewGrouping">${OptionReportGrouping}</label>
<select id="selectReportGroup"></select> <select id="selectReportGroup"></select>
@ -88,7 +89,7 @@
</div> </div>
</div> </div>
<div class="tabFilter viewTab"> <div class="tabFilter viewTab" id="tabFilterBox">
<fieldset data-role="controlgroup"> <fieldset data-role="controlgroup">
<legend> <legend>
${HeaderFilters} ${HeaderFilters}
@ -183,6 +184,9 @@
<input class="chkFeatureFilter" type="checkbox" name="chkTrailer" id="chkTrailer"> <input class="chkFeatureFilter" type="checkbox" name="chkTrailer" id="chkTrailer">
<label for="chkTrailer">${OptionHasTrailer}</label> <label for="chkTrailer">${OptionHasTrailer}</label>
<input class="chkFeatureFilter" type="checkbox" name="chkMissingTrailer" id="chkMissingTrailer">
<label for="chkMissingTrailer">${OptionNoTrailer}</label>
<input class="chkFeatureFilter" type="checkbox" name="chkSpecialFeature" id="chkSpecialFeature"> <input class="chkFeatureFilter" type="checkbox" name="chkSpecialFeature" id="chkSpecialFeature">
<label for="chkSpecialFeature">${OptionHasSpecialFeatures}</label> <label for="chkSpecialFeature">${OptionHasSpecialFeatures}</label>

View file

@ -1,6 +1,5 @@
(function ($, document) { (function ($, document) {
var defaultSortBy = "SortName"; var defaultSortBy = "SortName";
var SelectedReportView = "ReportData";
var topItems = 5; var topItems = 5;
var query = { var query = {
@ -8,7 +7,8 @@
Limit: 100, Limit: 100,
IncludeItemTypes: "Movie", IncludeItemTypes: "Movie",
HasQueryLimit: true, HasQueryLimit: true,
GroupBy: "None" GroupBy: "None",
ReportView: "ReportData"
}; };
function getTable(result) { function getTable(result) {
@ -127,29 +127,29 @@
break; break;
case "StatusImage": case "StatusImage":
if (rRow.HasLockData) { if (rRow.HasLockData) {
html += '<img src="css/images/editor/lock.png" style="height:16px;"/>'; html += '<img src="css/images/editor/lock.png" style="width:18px"/>';
} }
if (rRow.IsUnidentified) { if (rRow.IsUnidentified) {
html += '<div class="libraryReportIndicator"><div class="ui-icon-alert ui-btn-icon-notext"></div></div>'; html += '<div class="libraryReportIndicator"><div class="ui-icon-alert ui-btn-icon-notext"></div></div>';
} }
if (!rRow.HasLocalTrailer && rRow.RowType === "Movie") { if (!rRow.HasLocalTrailer && rRow.RowType === "Movie") {
html += '<img src="css/images/editor/missingtrailer.png" title="Missing local trailer." style="height:16px;" />'; html += '<img src="css/images/editor/missingtrailer.png" title="Missing local trailer." style="width:18px"/>';
} }
if (!rRow.HasImageTagsPrimary) { if (!rRow.HasImageTagsPrimary) {
html += '<a href="edititemmetadata.html?tab=3&id=' + rRow.Id + '"><img src="css/images/editor/missingprimaryimage.png" title="Missing primary image." style="height:16px;" /></a>'; html += '<a href="edititemimages.html?id=' + rRow.Id + '"><img src="css/images/editor/missingprimaryimage.png" title="Missing primary image." style="width:18px"/></a>';
} }
if (!rRow.HasImageTagsBackdrop) { if (!rRow.HasImageTagsBackdrop) {
if (rRow.RowType !== "Episode" && rRow.RowType !== "Season" && rRow.MediaType !== "Audio" && rRow.RowType !== "TvChannel" && rRow.RowType !== "MusicAlbum") { if (rRow.RowType !== "Episode" && rRow.RowType !== "Season" && rRow.MediaType !== "Audio" && rRow.RowType !== "TvChannel" && rRow.RowType !== "MusicAlbum") {
html += '<a href="edititemmetadata.html?tab=3&id=' + rRow.Id + '"><img src="css/images/editor/missingbackdrop.png" title="Missing backdrop image." style="height:16px;" /></a>'; html += '<a href="edititemimages.html?id=' + rRow.Id + '"><img src="css/images/editor/missingbackdrop.png" title="Missing backdrop image." style="width:18px"/></a>';
} }
} }
if (!rRow.HasImageTagsLogo) { if (!rRow.HasImageTagsLogo) {
if (rRow.RowType === "Movie" || rRow.RowType === "Trailer" || rRow.RowType === "Series" || rRow.RowType === "MusicArtist" || rRow.RowType === "BoxSet") { if (rRow.RowType === "Movie" || rRow.RowType === "Trailer" || rRow.RowType === "Series" || rRow.RowType === "MusicArtist" || rRow.RowType === "BoxSet") {
html += '<a href="edititemmetadata.html?tab=3&id=' + rRow.Id + '"><img src="css/images/editor/missinglogo.png" title="Missing logo image." style="height:16px;" /></a>'; html += '<a href="edititemimages.html?id=' + rRow.Id + '"><img src="css/images/editor/missinglogo.png" title="Missing logo image." style="width:18px"/></a>';
} }
} }
break; break;
@ -263,18 +263,30 @@
window.scrollTo(0, 0); window.scrollTo(0, 0);
var html = ''; var html = '';
if (SelectedReportView === "ReportData") { if (query.ReportView === "ReportData" || query.ReportView === "ReportStatistics") {
$('#selectIncludeItemTypesBox', page).show();
$('#tabFilter', page).show();
}
else {
$('#selectIncludeItemTypesBox', page).hide();
$('#tabFilterBox', page).hide();
$('#tabFilter', page).hide();
}
var pagingHtml = LibraryBrowser.getQueryPagingHtml({ var pagingHtml = LibraryBrowser.getQueryPagingHtml({
startIndex: query.StartIndex, startIndex: query.StartIndex,
limit: query.Limit, limit: query.Limit,
totalRecordCount: result.TotalRecordCount, totalRecordCount: result.TotalRecordCount,
updatePageSizeSetting: false, updatePageSizeSetting: false,
viewButton: true, viewButton: true,
showLimit: false showLimit: false
}); });
page.querySelector('.listTopPaging').innerHTML = pagingHtml; if (query.ReportView === "ReportData" || query.ReportView === "ReportActivities") {
$('.listTopPaging', page).html(pagingHtml).trigger('create');
// page.querySelector('.listTopPaging').innerHTML = pagingHtml;
$('.listTopPaging', page).show(); $('.listTopPaging', page).show();
$('.listBottomPaging', page).html(pagingHtml).trigger('create'); $('.listBottomPaging', page).html(pagingHtml).trigger('create');
@ -330,8 +342,13 @@
}); });
} }
else { else {
$('.listTopPaging', page).hide();
$('.listTopPaging', page).html(pagingHtml).trigger('create');
// page.querySelector('.listTopPaging').innerHTML = pagingHtml;
$('.listTopPaging', page).show();
$('.listBottomPaging', page).hide(); $('.listBottomPaging', page).hide();
$('.btnNextPage', page).hide(); $('.btnNextPage', page).hide();
$('.btnPreviousPage', page).hide(); $('.btnPreviousPage', page).hide();
@ -359,7 +376,7 @@
$('#GroupEpisodes', page).show(); $('#GroupEpisodes', page).show();
break; break;
} }
$('.viewPanel', page).refresh;
} }
function reloadItems(page) { function reloadItems(page) {
@ -368,16 +385,20 @@
query.UserId = Dashboard.getCurrentUserId(); query.UserId = Dashboard.getCurrentUserId();
var url = ""; var url = "";
switch (SelectedReportView) { switch (query.ReportView) {
case "ReportData": case "ReportData":
query.HasQueryLimit = true; query.HasQueryLimit = true;
url = ApiClient.getUrl("Reports/Items", query); url = ApiClient.getUrl("Reports/Items", query);
break; break;
case "ReportStatistic": case "ReportStatistics":
query.TopItems = topItems; query.TopItems = topItems;
query.HasQueryLimit = false; query.HasQueryLimit = false;
url = ApiClient.getUrl("Reports/Statistics", query); url = ApiClient.getUrl("Reports/Statistics", query);
break; break;
case "ReportActivities":
query.HasQueryLimit = true;
url = ApiClient.getUrl("Reports/Activities", query);
break;
} }
ApiClient.getJSON(url).done(function (result) { ApiClient.getJSON(url).done(function (result) {
@ -390,9 +411,6 @@
} }
function updateFilterControls(page) { function updateFilterControls(page) {
$('.chkStandardFilter', page).each(function () { $('.chkStandardFilter', page).each(function () {
var filters = "," + (query.Filters || ""); var filters = "," + (query.Filters || "");
@ -436,6 +454,7 @@
$('#chkSubtitle', page).checked(query.HasSubtitles == true).checkboxradio('refresh'); $('#chkSubtitle', page).checked(query.HasSubtitles == true).checkboxradio('refresh');
$('#chkTrailer', page).checked(query.HasTrailer == true).checkboxradio('refresh'); $('#chkTrailer', page).checked(query.HasTrailer == true).checkboxradio('refresh');
$('#chkMissingTrailer', page).checked(query.HasTrailer == false).checkboxradio('refresh');
$('#chkSpecialFeature', page).checked(query.HasSpecialFeature == true).checkboxradio('refresh'); $('#chkSpecialFeature', page).checked(query.HasSpecialFeature == true).checkboxradio('refresh');
$('#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');
@ -455,7 +474,7 @@
$('#chkMissingEpisode', page).checked(query.IsMissing == true).checkboxradio('refresh'); $('#chkMissingEpisode', page).checked(query.IsMissing == true).checkboxradio('refresh');
$('#chkFutureEpisode', page).checked(query.IsUnaired == true).checkboxradio('refresh'); $('#chkFutureEpisode', page).checked(query.IsUnaired == true).checkboxradio('refresh');
$('#selectView').val(query.IncludeItemTypes).selectmenu('refresh'); $('#selectIncludeItemTypes').val(query.IncludeItemTypes).selectmenu('refresh');
} }
var filtersLoaded; var filtersLoaded;
@ -475,17 +494,16 @@
reloadItems(page); reloadItems(page);
}); });
} }
} }
$(document).on('pageinitdepends', "#libraryReportManagerPage", function () { $(document).on('pageinitdepends', "#libraryReportManagerPage", function () {
var page = this; var page = this;
$('#selectView', page).on('change', function () { $('#selectIncludeItemTypes', page).on('change', function () {
query.StartIndex = 0; query.StartIndex = 0;
SelectedReportView = $('#selectReportType', page).val(); query.ReportView = $('#selectViewType', page).val();
query.IncludeItemTypes = this.value; query.IncludeItemTypes = this.value;
query.SortOrder = "Ascending"; query.SortOrder = "Ascending";
query.ReportColumns = null; query.ReportColumns = null;
@ -494,22 +512,19 @@
loadGroupByFilters(page); loadGroupByFilters(page);
reloadFiltersIfNeeded(page); reloadFiltersIfNeeded(page);
reloadItems(page); reloadItems(page);
}); });
$('#selectReportType', page).on('change', function () { $('#selectViewType', page).on('change', function () {
query.StartIndex = 0; query.StartIndex = 0;
query.IncludeItemTypes = $('#selectView', page).val(); query.ReportView = this.value;
SelectedReportView = this.value; query.IncludeItemTypes = $('#selectIncludeItemTypes', page).val();
query.SortOrder = "Ascending"; query.SortOrder = "Ascending";
filtersLoaded = false; filtersLoaded = false;
query.ReportColumns = null;
loadGroupByFilters(page); loadGroupByFilters(page);
reloadFiltersIfNeeded(page); reloadFiltersIfNeeded(page);
reloadItems(page); reloadItems(page);
}); });
$('#selectReportGroup', page).on('change', function () { $('#selectReportGroup', page).on('change', function () {
@ -540,7 +555,6 @@
}); });
$('.viewPanel', page).on('panelopen', function () { $('.viewPanel', page).on('panelopen', function () {
reloadFiltersIfNeeded(page); reloadFiltersIfNeeded(page);
}); });
@ -624,6 +638,14 @@
reloadItems(page); reloadItems(page);
}); });
$('#chkMissingTrailer', this).on('change', function () {
query.StartIndex = 0;
query.HasTrailer = this.checked ? false : null;
reloadItems(page);
});
$('#chkSpecialFeature', this).on('change', function () { $('#chkSpecialFeature', this).on('change', function () {
query.StartIndex = 0; query.StartIndex = 0;
@ -789,7 +811,7 @@
QueryReportFilters.onPageShow(page, query); QueryReportFilters.onPageShow(page, query);
QueryReportColumns.onPageShow(page, query); QueryReportColumns.onPageShow(page, query);
$('#selectView', page).val(query.IncludeItemTypes).selectmenu('refresh').trigger('change'); $('#selectIncludeItemTypes', page).val(query.IncludeItemTypes).selectmenu('refresh').trigger('change');
updateFilterControls(page); updateFilterControls(page);
@ -974,7 +996,8 @@
UserId: userId, UserId: userId,
ParentId: itemQuery.ParentId, ParentId: itemQuery.ParentId,
IncludeItemTypes: itemQuery.IncludeItemTypes IncludeItemTypes: itemQuery.IncludeItemTypes,
ReportView: itemQuery.ReportView
})).done(function (result) { })).done(function (result) {
@ -990,7 +1013,8 @@
return ApiClient.getJSON(ApiClient.getUrl('Reports/Headers', { return ApiClient.getJSON(ApiClient.getUrl('Reports/Headers', {
UserId: userId, UserId: userId,
IncludeItemTypes: itemQuery.IncludeItemTypes IncludeItemTypes: itemQuery.IncludeItemTypes,
ReportView: itemQuery.ReportView
})).done(function (result) { })).done(function (result) {