This commit is contained in:
tidusjar 2016-06-22 09:33:20 +01:00
parent ffc0ec34c4
commit 7b57e3fffc
6 changed files with 433 additions and 429 deletions

View file

@ -57,10 +57,6 @@ namespace PlexRequests.Core
var version = CheckSchema(); var version = CheckSchema();
if (version > 0) if (version > 0)
{ {
if (version > 1700 && version <= 1799)
{
MigrateToVersion1700();
}
if (version > 1799 && version <= 1800) if (version > 1799 && version <= 1800)
{ {
MigrateToVersion1800(); MigrateToVersion1800();

View file

@ -27,19 +27,43 @@ $(".theNoteSaveButton").click(function (e) {
}); });
}); });
// Update the note modal // Update the note modal
$('#noteModal').on('show.bs.modal', function (event) { $('#noteModal').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget); // Button that triggered the modal var button = $(event.relatedTarget); // Button that triggered the modal
var id = button.data('identifier'); // Extract info from data-* attributes var id = button.data('identifier'); // Extract info from data-* attributes
var issue = button.data('issue'); var issue = button.data('issue');
var modal = $(this); var modal = $(this);
modal.find('.theNoteSaveButton').val(id); // Add ID to the button modal.find('.theNoteSaveButton').val(id); // Add ID to the button
var requestField = modal.find('.noteId'); var requestField = modal.find('.noteId');
requestField.val(id); // Add ID to the hidden field requestField.val(id); // Add ID to the hidden field
var noteType = modal.find('.issue'); var noteType = modal.find('.issue');
noteType.val(issue); noteType.val(issue);
}); });
$('.delete').click(function(e) {
e.preventDefault();
var url = createBaseUrl(base, "/issues");
var $form = $("#removeForm");
$.ajax({
type: $form.prop("method"),
url: $form.prop("action"),
data: $form.serialize(),
dataType: "json",
success: function (response) {
if (checkJsonResponse(response)) { window.location.replace(url); }
},
error: function (e) {
console.log(e);
generateNotify("Something went wrong!", "danger");
}
});
});

View file

@ -48,7 +48,7 @@ namespace PlexRequests.UI.Modules
Get["/issuecount", true] = async (x, ct) => await IssueCount(); Get["/issuecount", true] = async (x, ct) => await IssueCount();
Get["/tabCount", true] = async (x, ct) => await TabCount(); Get["/tabCount", true] = async (x, ct) => await TabCount();
Post["/issuecomment", true] = async (x, ct) => await ReportRequestIssue((int)Request.Form.provierId, IssueState.Other, (string)Request.Form.commentArea); Post["/issuecomment", true] = async (x, ct) => await ReportRequestIssue((int)Request.Form.providerId, IssueState.Other, (string)Request.Form.commentArea);
Post["/nonrequestissue", true] = async (x, ct) => await ReportNonRequestIssue((int)Request.Form.providerId, (string)Request.Form.type, (IssueState)(int)Request.Form.issue, null); Post["/nonrequestissue", true] = async (x, ct) => await ReportNonRequestIssue((int)Request.Form.providerId, (string)Request.Form.type, (IssueState)(int)Request.Form.issue, null);
@ -369,16 +369,22 @@ namespace PlexRequests.UI.Modules
this.RequiresClaims(UserClaims.Admin); this.RequiresClaims(UserClaims.Admin);
var issue = await IssuesService.GetAsync(issueId); var issue = await IssuesService.GetAsync(issueId);
var request = await RequestService.GetAsync(issue.RequestId); var request = await RequestService.GetAsync(issue.RequestId);
if (request.Id > 0)
{
request.IssueId = 0; // No issue;
request.IssueId = 0; // No issue; var result = await RequestService.UpdateRequestAsync(request);
if (result)
var result = await RequestService.UpdateRequestAsync(request); {
if (result) await IssuesService.DeleteIssueAsync(issueId);
}
}
else
{ {
await IssuesService.DeleteIssueAsync(issueId); await IssuesService.DeleteIssueAsync(issueId);
} }
return Response.AsJson(new JsonResponseModel() { Result = true }); return Response.AsJson(new JsonResponseModel { Result = true });
} }
catch (Exception e) catch (Exception e)

View file

@ -42,7 +42,7 @@
} }
@if (Model.IssueStatus == IssueStatus.ResolvedIssue) @if (Model.IssueStatus == IssueStatus.ResolvedIssue)
{ {
<form action="@formAction/issues/remove" method="post"> <form action="@formAction/issues/remove" method="post" id="removeForm">
<input id="issueId" name="issueId" value="@Model.Id" hidden="hidden" /> <input id="issueId" name="issueId" value="@Model.Id" hidden="hidden" />
<button type="submit" id="@Model.Id" class="btn btn-sm btn-danger-outline dropdown-toggle delete">Remove</button> <button type="submit" id="@Model.Id" class="btn btn-sm btn-danger-outline dropdown-toggle delete">Remove</button>
</form> </form>

View file

@ -1,8 +1,15 @@
 
@using PlexRequests.UI.Helpers @using PlexRequests.UI.Helpers
@inherits PlexRequests.UI.Helpers.EmptyViewBase<PlexRequests.UI.Models.LandingPageViewModel> @inherits PlexRequests.UI.Helpers.EmptyViewBase<PlexRequests.UI.Models.LandingPageViewModel>
@{
<img class="landing-header" src="~/Content/images/logo.png" width="300" /> var baseUrl = Html.GetBaseUrl();
var formAction = string.Empty;
if (!string.IsNullOrEmpty(baseUrl.ToHtmlString()))
{
formAction = "/" + baseUrl.ToHtmlString();
}
}
<img class="landing-header" src="@formAction/Content/images/logo.png" width="300" />
<div id="area" class="landing-block"> <div id="area" class="landing-block">
@if (Model.NoticeEnable && (!Model.EnabledNoticeTime || Model.NoticeActive)) @if (Model.NoticeEnable && (!Model.EnabledNoticeTime || Model.NoticeActive))
{ {

View file

@ -1,408 +1,379 @@
@using Nancy.Security @using Nancy.Security
@using PlexRequests.UI.Helpers @using PlexRequests.UI.Helpers
@{ @{
var baseUrl = Html.GetBaseUrl(); var baseUrl = Html.GetBaseUrl();
var formAction = string.Empty; var formAction = string.Empty;
if (!string.IsNullOrEmpty(baseUrl.ToHtmlString())) if (!string.IsNullOrEmpty(baseUrl.ToHtmlString()))
{ {
formAction = "/" + baseUrl.ToHtmlString(); formAction = "/" + baseUrl.ToHtmlString();
} }
} }
<div> <div>
<h1>Requests</h1> <h1>Requests</h1>
<h4>Below you can see yours and all other requests, as well as their download and approval status.</h4> <h4>Below you can see yours and all other requests, as well as their download and approval status.</h4>
<br /> <br />
<!-- Nav tabs --> <!-- Nav tabs -->
<ul id="nav-tabs" class="nav nav-tabs" role="tablist"> <ul id="nav-tabs" class="nav nav-tabs" role="tablist">
@if (Model.SearchForMovies) @if (Model.SearchForMovies)
{ {
<li role="presentation" class="active"><a href="#MoviesTab" aria-controls="home" role="tab" data-toggle="tab"><i class="fa fa-film"></i>Movies</a></li> <li role="presentation" class="active"><a href="#MoviesTab" aria-controls="home" role="tab" data-toggle="tab"><i class="fa fa-film"></i>Movies</a></li>
} }
@if (Model.SearchForTvShows) @if (Model.SearchForTvShows)
{ {
<li role="presentation"><a href="#TvShowTab" aria-controls="profile" role="tab" data-toggle="tab"><i class="fa fa-television"></i>TV Shows</a></li> <li role="presentation"><a href="#TvShowTab" aria-controls="profile" role="tab" data-toggle="tab"><i class="fa fa-television"></i>TV Shows</a></li>
} }
@if (Model.SearchForMusic) @if (Model.SearchForMusic)
{ {
<li role="presentation"><a href="#MusicTab" aria-controls="profile" role="tab" data-toggle="tab"><i class="fa fa-music"></i>Albums</a></li> <li role="presentation"><a href="#MusicTab" aria-controls="profile" role="tab" data-toggle="tab"><i class="fa fa-music"></i>Albums</a></li>
} }
</ul> </ul>
<br /> <br />
<!-- Tab panes --> <!-- Tab panes -->
<div class="tab-content contentList"> <div class="tab-content contentList">
<div class="row"> <div class="row">
<div class="col-sm-12"> <div class="col-sm-12">
<div class="pull-right"> <div class="pull-right">
<div class="btn-group btn-group-separated"> <div class="btn-group btn-group-separated">
@if (Context.CurrentUser.IsAuthenticated()) //TODO replace with IsAdmin @if (Context.CurrentUser.IsAuthenticated()) //TODO replace with IsAdmin
{ {
@if (Model.SearchForMovies) @if (Model.SearchForMovies)
{ {
<button id="deleteMovies" class="btn btn-warning-outline delete-category" type="submit"><i class="fa fa-trash"></i> Delete Movies</button> <button id="deleteMovies" class="btn btn-warning-outline delete-category" type="submit"><i class="fa fa-trash"></i> Delete Movies</button>
<button id="approveMovies" class="btn btn-success-outline approve-category" type="submit"><i class="fa fa-plus"></i> Approve Movies</button> <button id="approveMovies" class="btn btn-success-outline approve-category" type="submit"><i class="fa fa-plus"></i> Approve Movies</button>
} }
@if (Model.SearchForTvShows) @if (Model.SearchForTvShows)
{ {
<button id="deleteTVShows" class="btn btn-warning-outline delete-category" type="submit" style="display: none;"><i class="fa fa-trash"></i> Delete TV Shows</button> <button id="deleteTVShows" class="btn btn-warning-outline delete-category" type="submit" style="display: none;"><i class="fa fa-trash"></i> Delete TV Shows</button>
<button id="approveTVShows" class="btn btn-success-outline approve-category" type="submit" style="display: none;"><i class="fa fa-plus"></i> Approve TV Shows</button> <button id="approveTVShows" class="btn btn-success-outline approve-category" type="submit" style="display: none;"><i class="fa fa-plus"></i> Approve TV Shows</button>
} }
@if (Model.SearchForMusic) @if (Model.SearchForMusic)
{ {
<button id="deleteMusic" class="btn btn-warning-outline delete-category" type="submit" style="display: none;"><i class="fa fa-trash"></i> Delete Music</button> <button id="deleteMusic" class="btn btn-warning-outline delete-category" type="submit" style="display: none;"><i class="fa fa-trash"></i> Delete Music</button>
<button id="approveMusic" class="btn btn-success-outline approve-category" type="submit" style="display: none;"><i class="fa fa-plus"></i> Approve Music</button> <button id="approveMusic" class="btn btn-success-outline approve-category" type="submit" style="display: none;"><i class="fa fa-plus"></i> Approve Music</button>
} }
} }
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a href="#" class="btn btn-primary-outline dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> <a href="#" class="btn btn-primary-outline dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Filter Filter
<i class="fa fa-filter"></i> <i class="fa fa-filter"></i>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="#" class="filter" data-filter="all"><i class="fa fa-check-square"></i> All</a></li> <li><a href="#" class="filter" data-filter="all"><i class="fa fa-check-square"></i> All</a></li>
<li><a href="#" class="filter" data-filter=".approved-true"><i class="fa fa-square-o"></i> Approved</a></li> <li><a href="#" class="filter" data-filter=".approved-true"><i class="fa fa-square-o"></i> Approved</a></li>
<li><a href="#" class="filter" data-filter=".approved-false"><i class="fa fa-square-o"></i> Not Approved</a></li> <li><a href="#" class="filter" data-filter=".approved-false"><i class="fa fa-square-o"></i> Not Approved</a></li>
<li><a href="#" class="filter" data-filter=".available-true"><i class="fa fa-square-o"></i> Available</a></li> <li><a href="#" class="filter" data-filter=".available-true"><i class="fa fa-square-o"></i> Available</a></li>
<li><a href="#" class="filter" data-filter=".available-false"><i class="fa fa-square-o"></i> Not Available</a></li> <li><a href="#" class="filter" data-filter=".available-false"><i class="fa fa-square-o"></i> Not Available</a></li>
<li><a href="#" class="filter" data-filter=".released-true"><i class="fa fa-square-o"></i> Released</a></li> <li><a href="#" class="filter" data-filter=".released-true"><i class="fa fa-square-o"></i> Released</a></li>
<li><a href="#" class="filter" data-filter=".released-false"><i class="fa fa-square-o"></i> Not Released</a></li> <li><a href="#" class="filter" data-filter=".released-false"><i class="fa fa-square-o"></i> Not Released</a></li>
</ul> </ul>
</div> </div>
<div class="btn-group"> <div class="btn-group">
<a href="#" class="btn btn-primary-outline dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> <a href="#" class="btn btn-primary-outline dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Order Order
<i class="fa fa-sort"></i> <i class="fa fa-sort"></i>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a href="#" class="sort" data-sort="requestorder:desc"><i class="fa fa-check-square"></i> Latest Requests</a></li> <li><a href="#" class="sort" data-sort="requestorder:desc"><i class="fa fa-check-square"></i> Latest Requests</a></li>
<li><a href="#" class="sort" data-sort="requestorder:asc"><i class="fa fa-square-o"></i> Oldest Requests</a></li> <li><a href="#" class="sort" data-sort="requestorder:asc"><i class="fa fa-square-o"></i> Oldest Requests</a></li>
<li><a href="#" class="sort" data-sort="releaseorder:desc"><i class="fa fa-square-o"></i> Latest Releases</a></li> <li><a href="#" class="sort" data-sort="releaseorder:desc"><i class="fa fa-square-o"></i> Latest Releases</a></li>
<li><a href="#" class="sort" data-sort="releaseorder:asc"><i class="fa fa-square-o"></i> Oldest Releases</a></li> <li><a href="#" class="sort" data-sort="releaseorder:asc"><i class="fa fa-square-o"></i> Oldest Releases</a></li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
@if (Model.SearchForMovies) @if (Model.SearchForMovies)
{ {
<!-- Movie tab --> <!-- Movie tab -->
<div role="tabpanel" class="tab-pane active" id="MoviesTab"> <div role="tabpanel" class="tab-pane active" id="MoviesTab">
<br /> <br />
<br /> <br />
<!-- Movie content --> <!-- Movie content -->
<div id="movieList"> <div id="movieList">
</div> </div>
</div> </div>
} }
@if (Model.SearchForTvShows) @if (Model.SearchForTvShows)
{ {
<!-- TV tab --> <!-- TV tab -->
<div role="tabpanel" class="tab-pane" id="TvShowTab"> <div role="tabpanel" class="tab-pane" id="TvShowTab">
<br /> <br />
<br /> <br />
<!-- TV content --> <!-- TV content -->
<div id="tvList"> <div id="tvList">
</div> </div>
</div> </div>
} }
@if (Model.SearchForMusic) @if (Model.SearchForMusic)
{ {
<!-- Music tab --> <!-- Music tab -->
<div role="tabpanel" class="tab-pane" id="MusicTab"> <div role="tabpanel" class="tab-pane" id="MusicTab">
<br /> <br />
<br /> <br />
<!-- TV content --> <!-- TV content -->
<div id="musicList"> <div id="musicList">
</div> </div>
</div> </div>
} }
</div> </div>
</div> </div>
<script id="search-template" type="text/x-handlebars-template"> <script id="search-template" type="text/x-handlebars-template">
<div id="{{requestId}}Template" class="mix available-{{available}} approved-{{approved}} released-{{released}}" data-requestorder="{{requestedDateTicks}}" data-releaseorder="{{releaseDateTicks}}"> <div id="{{requestId}}Template" class="mix available-{{available}} approved-{{approved}} released-{{released}}" data-requestorder="{{requestedDateTicks}}" data-releaseorder="{{releaseDateTicks}}">
<div class="row"> <div class="row">
<div class="col-sm-2"> <div class="col-sm-2">
{{#if_eq type "movie"}} {{#if_eq type "movie"}}
{{#if posterPath}} {{#if posterPath}}
<img class="img-responsive" src="https://image.tmdb.org/t/p/w150/{{posterPath}}" alt="poster"> <img class="img-responsive" src="https://image.tmdb.org/t/p/w150/{{posterPath}}" alt="poster">
{{/if}} {{/if}}
{{/if_eq}} {{/if_eq}}
{{#if_eq type "tv"}} {{#if_eq type "tv"}}
{{#if posterPath}} {{#if posterPath}}
<img class="img-responsive" width="150" src="{{posterPath}}" alt="poster"> <img class="img-responsive" width="150" src="{{posterPath}}" alt="poster">
{{/if}} {{/if}}
{{/if_eq}} {{/if_eq}}
</div> </div>
<div class="col-sm-5 "> <div class="col-sm-5 ">
<div> <div>
<a href="http://www.imdb.com/title/{{imdb}}/" target="_blank"> <a href="http://www.imdb.com/title/{{imdb}}/" target="_blank">
<h4 class="request-title">{{title}} ({{year}})</h4> <h4 class="request-title">{{title}} ({{year}})</h4>
</a> </a>
<span class="label label-success">{{status}}</span> <span class="label label-success">{{status}}</span>
</div> </div>
<br /> <br />
<div>Release Date: {{releaseDate}}</div> <div>Release Date: {{releaseDate}}</div>
<div> <div>
Approved: Approved:
{{#if_eq approved false}} {{#if_eq approved false}}
<i id="{{requestId}}notapproved" class="fa fa-times"></i> <i id="{{requestId}}notapproved" class="fa fa-times"></i>
{{/if_eq}} {{/if_eq}}
{{#if_eq approved true}} {{#if_eq approved true}}
<i class="fa fa-check"></i> <i class="fa fa-check"></i>
{{/if_eq}} {{/if_eq}}
</div> </div>
<div> <div>
Available Available
{{#if_eq available false}} {{#if_eq available false}}
<i id="availableIcon{{requestId}}" class="fa fa-times"></i> <i id="availableIcon{{requestId}}" class="fa fa-times"></i>
{{/if_eq}} {{/if_eq}}
{{#if_eq available true}} {{#if_eq available true}}
<i id="availableIcon{{requestId}}" class="fa fa-check"></i> <i id="availableIcon{{requestId}}" class="fa fa-check"></i>
{{/if_eq}} {{/if_eq}}
</div> </div>
{{#if_eq type "tv"}} {{#if_eq type "tv"}}
<div>Seasons Requested: {{seriesRequested}}</div> <div>Seasons Requested: {{seriesRequested}}</div>
{{/if_eq}} {{/if_eq}}
{{#if requestedUsers}} {{#if requestedUsers}}
<div>Requested By: {{requestedUsers}}</div> <div>Requested By: {{requestedUsers}}</div>
{{/if}} {{/if}}
<div>Requested Date: {{requestedDate}}</div> <div>Requested Date: {{requestedDate}}</div>
<div> <div>
Issue: Issue:
{{#if_eq issueId 0}} {{#if_eq issueId 0}}
<i class="fa fa-times"></i> <i class="fa fa-times"></i>
{{else}} {{else}}
<a href="@formAction/issues/{{issueId}}"><i class="fa fa-check"></i></a> <a href="@formAction/issues/{{issueId}}"><i class="fa fa-check"></i></a>
{{/if_eq}} {{/if_eq}}
</div> </div>
</div> </div>
<div class="col-sm-3 col-sm-push-3"> <div class="col-sm-3 col-sm-push-3">
{{#if_eq admin true}} {{#if_eq admin true}}
{{#if_eq approved false}} {{#if_eq approved false}}
<form method="POST" action="@formAction/approval/approve" id="approve{{requestId}}"> <form method="POST" action="@formAction/approval/approve" id="approve{{requestId}}">
<input name="requestId" type="text" value="{{requestId}}" hidden="hidden" /> <input name="requestId" type="text" value="{{requestId}}" hidden="hidden" />
{{#if_eq hasQualities true}} {{#if_eq hasQualities true}}
<div class="btn-group btn-split"> <div class="btn-group btn-split">
<button type="button" class="btn btn-sm btn-success-outline approve" id="{{requestId}}" custom-button="{{requestId}}"><i class="fa fa-plus"></i> Approve</button> <button type="button" class="btn btn-sm btn-success-outline approve" id="{{requestId}}" custom-button="{{requestId}}"><i class="fa fa-plus"></i> Approve</button>
<button type="button" class="btn btn-success-outline dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <button type="button" class="btn btn-success-outline dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="caret"></span> <span class="caret"></span>
<span class="sr-only">Toggle Dropdown</span> <span class="sr-only">Toggle Dropdown</span>
</button> </button>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
{{#each qualities}} {{#each qualities}}
<li><a href="#" class="approve-with-quality" id="{{id}}">{{name}}</a></li> <li><a href="#" class="approve-with-quality" id="{{id}}">{{name}}</a></li>
{{/each}} {{/each}}
</ul> </ul>
</div> </div>
{{else}} {{else}}
<button id="{{requestId}}" custom-button="{{requestId}}" style="text-align: right" class="btn btn-sm btn-success-outline approve" type="submit"><i class="fa fa-plus"></i> Approve</button> <button id="{{requestId}}" custom-button="{{requestId}}" style="text-align: right" class="btn btn-sm btn-success-outline approve" type="submit"><i class="fa fa-plus"></i> Approve</button>
{{/if_eq}} {{/if_eq}}
</form> </form>
{{/if_eq}} {{/if_eq}}
<form method="POST" action="@formAction/requests/delete" id="delete{{requestId}}"> <form method="POST" action="@formAction/requests/delete" id="delete{{requestId}}">
<input name="Id" type="text" value="{{requestId}}" hidden="hidden" /> <input name="Id" type="text" value="{{requestId}}" hidden="hidden" />
<button id="{{requestId}}" style="text-align: right" class="btn btn-sm btn-danger-outline delete" type="submit"><i class="fa fa-minus"></i> Remove</button> <button id="{{requestId}}" style="text-align: right" class="btn btn-sm btn-danger-outline delete" type="submit"><i class="fa fa-minus"></i> Remove</button>
</form> </form>
<form method="POST" action="@formAction/requests/changeavailability" id="change{{requestId}}"> <form method="POST" action="@formAction/requests/changeavailability" id="change{{requestId}}">
<input name="Id" type="text" value="{{requestId}}" hidden="hidden" /> <input name="Id" type="text" value="{{requestId}}" hidden="hidden" />
{{#if_eq available true}} {{#if_eq available true}}
<button id="{{requestId}}" custom-availibility="{{requestId}}" style="text-align: right" value="false" class="btn btn-sm btn-info-outline change" type="submit"><i class="fa fa-minus"></i> Mark Unavailable</button> <button id="{{requestId}}" custom-availibility="{{requestId}}" style="text-align: right" value="false" class="btn btn-sm btn-info-outline change" type="submit"><i class="fa fa-minus"></i> Mark Unavailable</button>
{{else}} {{else}}
<button id="{{requestId}}" custom-availibility="{{requestId}}" style="text-align: right" value="true" class="btn btn-sm btn-success-outline change" type="submit"><i class="fa fa-plus"></i> Mark Available</button> <button id="{{requestId}}" custom-availibility="{{requestId}}" style="text-align: right" value="true" class="btn btn-sm btn-success-outline change" type="submit"><i class="fa fa-plus"></i> Mark Available</button>
{{/if_eq}} {{/if_eq}}
</form> </form>
{{/if_eq}} {{/if_eq}}
<form method="POST" action="@formAction/issues/issue/" id="report{{requestId}}"> <form method="POST" action="@formAction/issues/issue/" id="report{{requestId}}">
<input name="requestId" type="text" value="{{requestId}}" hidden="hidden" /> <input name="requestId" type="text" value="{{requestId}}" hidden="hidden" />
<div class="dropdown"> <div class="dropdown">
<button id="{{requestId}}" class="btn btn-sm btn-primary-outline dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <button id="{{requestId}}" class="btn btn-sm btn-primary-outline dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<i class="fa fa-plus"></i> Report Issue <i class="fa fa-plus"></i> Report Issue
<span class="caret"></span> <span class="caret"></span>
</button> </button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1"> <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
<li><a id="{{requestId}}" issue-select="0" class="dropdownIssue" href="#">Wrong Audio</a></li> <li><a id="{{requestId}}" issue-select="0" class="dropdownIssue" href="#">Wrong Audio</a></li>
<li><a id="{{requestId}}" issue-select="1" class="dropdownIssue" href="#">No Subtitles</a></li> <li><a id="{{requestId}}" issue-select="1" class="dropdownIssue" href="#">No Subtitles</a></li>
<li><a id="{{requestId}}" issue-select="2" class="dropdownIssue" href="#">Wrong Content</a></li> <li><a id="{{requestId}}" issue-select="2" class="dropdownIssue" href="#">Wrong Content</a></li>
<li><a id="{{requestId}}" issue-select="3" class="dropdownIssue" href="#">Playback Issues</a></li> <li><a id="{{requestId}}" issue-select="3" class="dropdownIssue" href="#">Playback Issues</a></li>
<li><a id="{{requestId}}" issue-select="4" class="dropdownIssue" data-identifier="{{requestId}}" href="#" data-toggle="modal" data-target="#myModal">Other</a></li> <li><a id="{{requestId}}" issue-select="4" class="dropdownIssue" data-identifier="{{requestId}}" href="#" data-toggle="modal" data-target="#myModal">Other</a></li>
</ul>
{{#if_eq admin true}} </div>
<li><a id="{{requestId}}" issue-select="4" class="note" data-identifier="{{requestId}}" href="#" data-toggle="modal" data-target="#noteModal">Add Note</a></li> </form>
{{/if_eq}}
</ul> </div>
</div> </div>
</form> <hr />
</div>
</div> </script>
</div>
<hr /> <script id="album-template" type="text/x-handlebars-template">
</div> <div id="{{requestId}}Template" class="mix available-{{available}} approved-{{approved}}" data-requestorder="{{requestedDateTicks}}" data-releaseorder="{{releaseDateTicks}}">
</script> <div class="row">
<div class="col-sm-2">
<script id="album-template" type="text/x-handlebars-template"> {{#if posterPath}}
<div id="{{requestId}}Template" class="mix available-{{available}} approved-{{approved}}" data-requestorder="{{requestedDateTicks}}" data-releaseorder="{{releaseDateTicks}}"> <img class="img-responsive" src="{{posterPath}}" width="150" alt="poster">
<div class="row"> {{/if}}
<div class="col-sm-2"> </div>
{{#if posterPath}} <div class="col-sm-5 ">
<img class="img-responsive" src="{{posterPath}}" width="150" alt="poster"> <div>
{{/if}} <a href="https://musicbrainz.org/release/{{musicBrainzId}}" target="_blank">
</div> <h4>
<div class="col-sm-5 "> {{artist}} - {{title}}
<div> {{#if year}}
<a href="https://musicbrainz.org/release/{{musicBrainzId}}" target="_blank"> ({{year}})
<h4> {{/if}}
{{artist}} - {{title}} </h4>
{{#if year}} </a>
({{year}}) <span class="label label-success">{{status}}</span>
{{/if}} </div>
</h4> <br />
</a> <div>Release Date: {{releaseDate}}</div>
<span class="label label-success">{{status}}</span> <div>
</div> Approved:
<br /> {{#if_eq approved false}}
<div>Release Date: {{releaseDate}}</div> <i id="{{requestId}}notapproved" class="fa fa-times"></i>
<div> {{/if_eq}}
Approved: {{#if_eq approved true}}
{{#if_eq approved false}} <i class="fa fa-check"></i>
<i id="{{requestId}}notapproved" class="fa fa-times"></i> {{/if_eq}}
{{/if_eq}} </div>
{{#if_eq approved true}} <div>
<i class="fa fa-check"></i> Available
{{/if_eq}} {{#if_eq available false}}
</div> <i id="availableIcon{{requestId}}" class="fa fa-times"></i>
<div> {{/if_eq}}
Available {{#if_eq available true}}
{{#if_eq available false}} <i id="availableIcon{{requestId}}" class="fa fa-check"></i>
<i id="availableIcon{{requestId}}" class="fa fa-times"></i> {{/if_eq}}
{{/if_eq}} </div>
{{#if_eq available true}} {{#if requestedUsers}}
<i id="availableIcon{{requestId}}" class="fa fa-check"></i> <div>Requested By: {{requestedUsers}}</div>
{{/if_eq}} {{/if}}
</div> <div>Requested Date: {{requestedDate}}</div>
{{#if requestedUsers}} <div id="issueArea{{requestId}}">
<div>Requested By: {{requestedUsers}}</div> {{#if otherMessage}}
{{/if}} <div>Message: {{otherMessage}}</div>
<div>Requested Date: {{requestedDate}}</div> {{else}}
<div id="issueArea{{requestId}}"> <div>Issue: {{issues}}</div>
{{#if otherMessage}} {{/if}}
<div>Message: {{otherMessage}}</div> </div>
{{else}} <div id="adminNotesArea{{requestId}}">
<div>Issue: {{issues}}</div> {{#if adminNote}}
{{/if}} <div>Note from Admin: {{adminNote}}</div>
</div> {{/if}}
<div id="adminNotesArea{{requestId}}"> </div>
{{#if adminNote}} </div>
<div>Note from Admin: {{adminNote}}</div> <div class="col-sm-2 col-sm-push-3">
{{/if}} {{#if_eq admin true}}
</div> {{#if_eq approved false}}
</div> <form method="POST" action="@formAction/approval/approve" id="approve{{requestId}}">
<div class="col-sm-2 col-sm-push-3"> <input name="requestId" type="text" value="{{requestId}}" hidden="hidden" />
{{#if_eq admin true}} <button id="{{requestId}}" custom-button="{{requestId}}" style="text-align: right" class="btn btn-sm btn-success-outline approve" type="submit"><i class="fa fa-plus"></i> Approve</button>
{{#if_eq approved false}} </form>
<form method="POST" action="@formAction/approval/approve" id="approve{{requestId}}"> {{/if_eq}}
<input name="requestId" type="text" value="{{requestId}}" hidden="hidden" /> <form method="POST" action="@formAction/requests/delete" id="delete{{requestId}}">
<button id="{{requestId}}" custom-button="{{requestId}}" style="text-align: right" class="btn btn-sm btn-success-outline approve" type="submit"><i class="fa fa-plus"></i> Approve</button> <input name="Id" type="text" value="{{requestId}}" hidden="hidden" />
</form> <button id="{{requestId}}" style="text-align: right" class="btn btn-sm btn-danger-outline delete" type="submit"><i class="fa fa-minus"></i> Remove</button>
{{/if_eq}} </form>
<form method="POST" action="@formAction/requests/delete" id="delete{{requestId}}">
<input name="Id" type="text" value="{{requestId}}" hidden="hidden" /> <form method="POST" action="@formAction/requests/changeavailability" id="change{{requestId}}">
<button id="{{requestId}}" style="text-align: right" class="btn btn-sm btn-danger-outline delete" type="submit"><i class="fa fa-minus"></i> Remove</button> <input name="Id" type="text" value="{{requestId}}" hidden="hidden" />
</form> {{#if_eq available true}}
<button id="{{requestId}}" custom-availibility="{{requestId}}" style="text-align: right" value="false" class="btn btn-sm btn-info-outline change" type="submit"><i class="fa fa-minus"></i> Mark Unavailable</button>
<form method="POST" action="@formAction/requests/changeavailability" id="change{{requestId}}"> {{else}}
<input name="Id" type="text" value="{{requestId}}" hidden="hidden" /> <button id="{{requestId}}" custom-availibility="{{requestId}}" style="text-align: right" value="true" class="btn btn-sm btn-success-outline change" type="submit"><i class="fa fa-plus"></i> Mark Available</button>
{{#if_eq available true}} {{/if_eq}}
<button id="{{requestId}}" custom-availibility="{{requestId}}" style="text-align: right" value="false" class="btn btn-sm btn-info-outline change" type="submit"><i class="fa fa-minus"></i> Mark Unavailable</button> </form>
{{else}}
<button id="{{requestId}}" custom-availibility="{{requestId}}" style="text-align: right" value="true" class="btn btn-sm btn-success-outline change" type="submit"><i class="fa fa-plus"></i> Mark Available</button> {{/if_eq}}
{{/if_eq}}
</form> <form method="POST" action="@formAction/issues/issue/" id="report{{requestId}}">
<input name="requestId" type="text" value="{{requestId}}" hidden="hidden" />
{{/if_eq}} <div class="dropdown">
<button id="{{requestId}}" class="btn btn-sm btn-primary-outline dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<form method="POST" action="@formAction/issues/issue/" id="report{{requestId}}"> <i class="fa fa-plus"></i> Report Issue
<input name="requestId" type="text" value="{{requestId}}" hidden="hidden" /> <span class="caret"></span>
<div class="dropdown"> </button>
<button id="{{requestId}}" class="btn btn-sm btn-primary-outline dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
<i class="fa fa-plus"></i> Report Issue <li><a id="{{requestId}}" issue-select="0" class="dropdownIssue" href="#">Wrong Audio</a></li>
<span class="caret"></span> <li><a id="{{requestId}}" issue-select="1" class="dropdownIssue" href="#">No Subtitles</a></li>
</button> <li><a id="{{requestId}}" issue-select="2" class="dropdownIssue" href="#">Wrong Content</a></li>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1"> <li><a id="{{requestId}}" issue-select="3" class="dropdownIssue" href="#">Playback Issues</a></li>
<li><a id="{{requestId}}" issue-select="0" class="dropdownIssue" href="#">Wrong Audio</a></li> <li><a id="{{requestId}}" issue-select="4" class="dropdownIssue" data-identifier="{{requestId}}" href="#" data-toggle="modal" data-target="#myModal">Other</a></li>
<li><a id="{{requestId}}" issue-select="1" class="dropdownIssue" href="#">No Subtitles</a></li> </ul>
<li><a id="{{requestId}}" issue-select="2" class="dropdownIssue" href="#">Wrong Content</a></li> </div>
<li><a id="{{requestId}}" issue-select="3" class="dropdownIssue" href="#">Playback Issues</a></li> </form>
<li><a id="{{requestId}}" issue-select="4" class="dropdownIssue" data-identifier="{{requestId}}" href="#" data-toggle="modal" data-target="#myModal">Other</a></li>
</div>
{{#if_eq admin true}} </div>
<li><a id="{{requestId}}" issue-select="4" class="note" data-identifier="{{requestId}}" href="#" data-toggle="modal" data-target="#noteModal">Add Note</a></li> <hr />
{{/if_eq}} </div>
</ul> </script>
</div>
</form> <div class="modal fade" id="myModal">
<div class="modal-dialog">
</div> <div class="modal-content">
</div> <div class="modal-header">
<hr /> <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times"></i></button>
</div> <h4 class="modal-title">Add issue/comment</h4>
</script> </div>
<form method="POST" action="@formAction/issues/issuecomment" id="commentForm">
<div class="modal fade" id="myModal"> <div class="modal-body">
<div class="modal-dialog"> <input name="providerId" class="providerId" type="text" hidden="hidden" value="" />
<div class="modal-content"> <textarea class="form-control form-control-custom" rows="3" id="commentArea" name="commentArea"></textarea>
<div class="modal-header"> </div>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"><i class="fa fa-times"></i></button> <div class="modal-footer">
<h4 class="modal-title">Add issue/comment</h4> <button type="button" class="btn btn-danger-outline" data-dismiss="modal">Close</button>
</div> <button type="button" class="btn btn-primary-outline theSaveButton" data-dismiss="modal">Save changes</button>
<form method="POST" action="@formAction/issues/issuecomment" id="commentForm"> </div>
<div class="modal-body"> </form>
<input name="requestId" class="requestId" type="text" hidden="hidden" value="" /> </div>
<textarea class="form-control form-control-custom" rows="3" id="commentArea" name="commentArea"></textarea> </div>
</div> </div>
<div class="modal-footer">
<button type="button" class="btn btn-danger-outline" data-dismiss="modal">Close</button> @Html.LoadRequestAssets()
<button type="button" class="btn btn-primary-outline theSaveButton" data-dismiss="modal">Save changes</button>
</div>
</form>
</div>
</div>
</div>
<div class="modal fade" id="noteModal">
<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-times"></i></button>
<h4 class="modal-title">Add a note</h4>
</div>
<form method="POST" action="@formAction/requests/addnote" id="noteForm">
<div class="modal-body">
<input name="requestId" class="noteId" type="text" hidden="hidden" value="" />
<textarea class="form-control form-control-custom" rows="3" id="noteArea" name="noteArea"></textarea>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger-outline" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary-outline theNoteSaveButton" data-dismiss="modal">Save changes</button>
</div>
</form>
</div>
</div>
</div>
@Html.LoadRequestAssets()