From 9ef618af4b535bb2afeddd9ee542d6c1a038af44 Mon Sep 17 00:00:00 2001
From: tidusjar
Date: Wed, 9 Mar 2016 17:19:49 +0000
Subject: [PATCH] Added the functionality for the admin to clear the issues.
---
PlexRequests.Store/RequestedModel.cs | 11 +++---
PlexRequests.UI/Content/requests.js | 37 ++++++++++++++++++---
PlexRequests.UI/Modules/RequestsModule.cs | 23 +++++++++++++
PlexRequests.UI/Modules/SearchModule.cs | 6 ++--
PlexRequests.UI/Views/Requests/Index.cshtml | 18 ++++++----
5 files changed, 77 insertions(+), 18 deletions(-)
diff --git a/PlexRequests.Store/RequestedModel.cs b/PlexRequests.Store/RequestedModel.cs
index fb7da9a87..e32f75766 100644
--- a/PlexRequests.Store/RequestedModel.cs
+++ b/PlexRequests.Store/RequestedModel.cs
@@ -33,10 +33,11 @@ namespace PlexRequests.Store
public enum IssueState
{
- WrongAudio,
- NoSubtitles,
- WrongContent,
- PlaybackIssues,
- Other
+ None = 99,
+ WrongAudio = 0,
+ NoSubtitles = 1,
+ WrongContent = 2,
+ PlaybackIssues = 3,
+ Other = 4 // Provide a message
}
}
diff --git a/PlexRequests.UI/Content/requests.js b/PlexRequests.UI/Content/requests.js
index 1e63ede83..e216b0ee5 100644
--- a/PlexRequests.UI/Content/requests.js
+++ b/PlexRequests.UI/Content/requests.js
@@ -20,7 +20,7 @@ $('#approveAll').click(function () {
dataType: "json",
success: function (response) {
if (checkJsonResponse(response)) {
- generateNotify("Success!", "success");
+ generateNotify("Success! All requests approved!", "success");
}
},
error: function (e) {
@@ -52,7 +52,7 @@ $(document).on("click", ".dropdownIssue", function (e) {
dataType: "json",
success: function (response) {
if (checkJsonResponse(response)) {
- generateNotify("Success!", "success");
+ generateNotify("Success! Added Issue.", "success");
}
},
error: function (e) {
@@ -66,7 +66,7 @@ $(document).on("click", ".dropdownIssue", function (e) {
$(".theSaveButton").click(function (e) {
var comment = $("#commentArea").val();
e.preventDefault();
- var id = e.target.value;
+
var $form = $("#commentForm");
var data = $form.serialize();
data = data + "&issue=" + 4 + "&comment=" + comment;
@@ -78,7 +78,7 @@ $(".theSaveButton").click(function (e) {
dataType: "json",
success: function (response) {
if (checkJsonResponse(response)) {
- generateNotify("Success!", "success");
+ generateNotify("Success! Added Issue.", "success");
$("#myModal").modal("hide");
}
},
@@ -100,6 +100,7 @@ $('#myModal').on('show.bs.modal', function (event) {
requestField.val(id); // Add ID to the hidden field
});
+// Delete
$(document).on("click", ".delete", function (e) {
e.preventDefault();
var buttonId = e.target.id;
@@ -113,7 +114,7 @@ $(document).on("click", ".delete", function (e) {
success: function (response) {
if (checkJsonResponse(response)) {
- generateNotify("Success!", "success");
+ generateNotify("Success! Request Deleted.", "success");
$("#" + buttonId + "Template").slideUp();
}
@@ -126,6 +127,32 @@ $(document).on("click", ".delete", function (e) {
});
+// Clear issues
+$(document).on("click", ".clear", function (e) {
+ e.preventDefault();
+ var buttonId = e.target.id;
+ var $form = $('#clear' + buttonId);
+
+ $.ajax({
+ type: $form.prop('method'),
+ url: $form.prop('action'),
+ data: $form.serialize(),
+ dataType: "json",
+ success: function (response) {
+
+ if (checkJsonResponse(response)) {
+ generateNotify("Success! Issues Cleared.", "info");
+ $('#issueArea').html("Issue: None
");
+ }
+ },
+ error: function (e) {
+ console.log(e);
+ generateNotify("Something went wrong!", "danger");
+ }
+ });
+
+});
+
function movieLoad() {
$("#movieList").html("");
diff --git a/PlexRequests.UI/Modules/RequestsModule.cs b/PlexRequests.UI/Modules/RequestsModule.cs
index 93a81ab2d..ff5aa0f8b 100644
--- a/PlexRequests.UI/Modules/RequestsModule.cs
+++ b/PlexRequests.UI/Modules/RequestsModule.cs
@@ -59,6 +59,8 @@ namespace PlexRequests.UI.Modules
Post["/reportissue"] = _ => ReportIssue((int)Request.Form.requestId, (IssueState)(int)Request.Form.issue, null);
Post["/reportissuecomment"] = _ => ReportIssue((int)Request.Form.requestId, IssueState.Other, (string)Request.Form.commentArea);
+ Post["/clearissues"] = _ => ClearIssue((int)Request.Form.requestId);
+
}
private IRepository Service { get; }
private ISettingsService PrSettings { get; }
@@ -163,5 +165,26 @@ namespace PlexRequests.UI.Modules
}
return Response.AsJson(new JsonResponseModel { Result = false, Message = "Could not add issue, please try again or contact the administrator!" });
}
+
+ private Response ClearIssue(int requestId)
+ {
+ if (!Context.CurrentUser.IsAuthenticated())
+ {
+ return Response.AsJson(new JsonResponseModel { Result = false, Message = "You are not an Admin, so you cannot clear any issues." });
+ }
+
+ var originalRequest = Service.Get(requestId);
+ if (originalRequest == null)
+ {
+ return Response.AsJson(new JsonResponseModel { Result = false, Message = "Request does not exist to clear it!" });
+ }
+ originalRequest.Issues = IssueState.None;
+ originalRequest.OtherMessage = string.Empty;
+
+ var result = Service.Update(originalRequest);
+ return Response.AsJson(result
+ ? new JsonResponseModel { Result = true }
+ : new JsonResponseModel { Result = false, Message = "Could not clear issue, please try again or check the logs" });
+ }
}
}
\ No newline at end of file
diff --git a/PlexRequests.UI/Modules/SearchModule.cs b/PlexRequests.UI/Modules/SearchModule.cs
index 5c5085ba2..ecf68e21f 100644
--- a/PlexRequests.UI/Modules/SearchModule.cs
+++ b/PlexRequests.UI/Modules/SearchModule.cs
@@ -184,7 +184,8 @@ namespace PlexRequests.UI.Modules
Status = movieInfo.Status,
RequestedDate = DateTime.Now,
Approved = false,
- RequestedBy = Session[SessionKeys.UsernameKey].ToString()
+ RequestedBy = Session[SessionKeys.UsernameKey].ToString(),
+ Issues = IssueState.None,
};
@@ -255,7 +256,8 @@ namespace PlexRequests.UI.Modules
Status = showInfo.status,
RequestedDate = DateTime.Now,
Approved = false,
- RequestedBy = Session[SessionKeys.UsernameKey].ToString()
+ RequestedBy = Session[SessionKeys.UsernameKey].ToString(),
+ Issues = IssueState.None
};
RequestService.AddRequest(showId, model);
diff --git a/PlexRequests.UI/Views/Requests/Index.cshtml b/PlexRequests.UI/Views/Requests/Index.cshtml
index 272a4f939..26fe4de0f 100644
--- a/PlexRequests.UI/Views/Requests/Index.cshtml
+++ b/PlexRequests.UI/Views/Requests/Index.cshtml
@@ -93,12 +93,13 @@
Requested By: {{requestedBy}}
Requested Date: {{requestedDate}}
- {{#if otherMessage}}
- Message: {{otherMessage}}
- {{else}}
- Issue: {{issues}}
- {{/if}}
-
+
+ {{#if otherMessage}}
+
Message: {{otherMessage}}
+ {{else}}
+
Issue: {{issues}}
+ {{/if}}
+
@@ -108,6 +109,11 @@
+
+
{{/if_eq}}