diff --git a/PlexRequests.UI/Content/requests.js b/PlexRequests.UI/Content/requests.js index 94ae03e12..1e63ede83 100644 --- a/PlexRequests.UI/Content/requests.js +++ b/PlexRequests.UI/Content/requests.js @@ -41,10 +41,10 @@ $(document).on("click", ".dropdownIssue", function (e) { } e.preventDefault(); - var $form = $('#form' + id); + var $form = $('#report' + id); var data = $form.serialize(); data = data + "&issue=" + issue; - + $.ajax({ type: $form.prop('method'), url: $form.prop('action'), @@ -63,13 +63,13 @@ $(document).on("click", ".dropdownIssue", function (e) { }); // Modal click -$(".theSaveButton").click(function () { +$(".theSaveButton").click(function (e) { var comment = $("#commentArea").val(); e.preventDefault(); - - var $form = $("#form" + id); + var id = e.target.value; + var $form = $("#commentForm"); var data = $form.serialize(); - data = data + "&issue=" + 4 + "&comment="+comment; + data = data + "&issue=" + 4 + "&comment=" + comment; $.ajax({ type: $form.prop("method"), @@ -96,13 +96,14 @@ $('#myModal').on('show.bs.modal', function (event) { var modal = $(this); modal.find('.theSaveButton').val(id); // Add ID to the button - modal.find('#requestId').val(id); // Add ID to the hidden field + var requestField = modal.find('input'); + requestField.val(id); // Add ID to the hidden field }); $(document).on("click", ".delete", function (e) { e.preventDefault(); var buttonId = e.target.id; - var $form = $('#form' + buttonId); + var $form = $('#delete' + buttonId); $.ajax({ type: $form.prop('method'), @@ -168,7 +169,8 @@ function buildRequestContext(result, type) { available: result.available, admin: result.admin, issues: result.issues, - otherMessage: result.otherMessage + otherMessage: result.otherMessage, + requestId: result.id }; return context; diff --git a/PlexRequests.UI/Models/RequestViewModel.cs b/PlexRequests.UI/Models/RequestViewModel.cs index f3f7b3cf3..c6e91b9bb 100644 --- a/PlexRequests.UI/Models/RequestViewModel.cs +++ b/PlexRequests.UI/Models/RequestViewModel.cs @@ -45,7 +45,7 @@ namespace PlexRequests.UI.Models public string ReleaseYear { get; set; } public bool Available { get; set; } public bool Admin { get; set; } - public IssueState Issues { get; set; } + public string Issues { get; set; } public string OtherMessage { get; set; } } } diff --git a/PlexRequests.UI/Modules/LoginModule.cs b/PlexRequests.UI/Modules/LoginModule.cs index 65af53578..a983377c6 100644 --- a/PlexRequests.UI/Modules/LoginModule.cs +++ b/PlexRequests.UI/Modules/LoginModule.cs @@ -45,7 +45,8 @@ namespace PlexRequests.UI.Modules { dynamic model = new ExpandoObject(); model.Errored = Request.Query.error.HasValue; - + var adminCreated = UserMapper.DoUsersExist(); + model.AdminExists = adminCreated; return View["Login/Index", model]; } diff --git a/PlexRequests.UI/Modules/RequestsModule.cs b/PlexRequests.UI/Modules/RequestsModule.cs index 1e76f3ac8..93a81ab2d 100644 --- a/PlexRequests.UI/Modules/RequestsModule.cs +++ b/PlexRequests.UI/Modules/RequestsModule.cs @@ -55,13 +55,9 @@ namespace PlexRequests.UI.Modules Get["/"] = _ => LoadRequests(); Get["/movies"] = _ => GetMovies(); Get["/tvshows"] = _ => GetTvShows(); - Post["/delete"] = _ => - { - var convertedType = (string)Request.Form.type == "movie" ? RequestType.Movie : RequestType.TvShow; - return DeleteRequest((int)Request.Form.id, convertedType); - }; - Get["/reportissue"] = _ => ReportIssue((int)Request.Form.requestId, (IssueState)Request.Form.issue, null); - Get["/reportissuecomment"] = _ => ReportIssue((int)Request.Form.requestId, IssueState.Other, (string)Request.Form.commentArea); + Post["/delete"] = _ => DeleteRequest((int)Request.Form.id); + 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); } private IRepository Service { get; } @@ -96,7 +92,7 @@ namespace PlexRequests.UI.Modules ReleaseYear = movie.ReleaseDate.Year.ToString(), Available = movie.Available, Admin = isAdmin, - Issues = movie.Issues, + Issues = movie.Issues.Humanize(LetterCasing.Title), OtherMessage = movie.OtherMessage }).ToList(); @@ -124,18 +120,18 @@ namespace PlexRequests.UI.Modules ReleaseYear = tv.ReleaseDate.Year.ToString(), Available = tv.Available, Admin = isAdmin, - Issues = tv.Issues, + Issues = tv.Issues.Humanize(LetterCasing.Title), OtherMessage = tv.OtherMessage }).ToList(); return Response.AsJson(viewModel); } - private Response DeleteRequest(int providerId, RequestType type) + private Response DeleteRequest(int requestid) { if (Context.CurrentUser.IsAuthenticated()) { - var currentEntity = Service.GetAll().FirstOrDefault(x => x.ProviderId == providerId && x.Type == type); + var currentEntity = Service.Get(requestid); Service.Delete(currentEntity); return Response.AsJson(new JsonResponseModel { Result = true }); } @@ -152,8 +148,20 @@ namespace PlexRequests.UI.Modules /// private Response ReportIssue(int requestId, IssueState issue, string comment) { - - return Response.AsJson(new JsonResponseModel()); + var originalRequest = Service.Get(requestId); + if (originalRequest == null) + { + return Response.AsJson(new JsonResponseModel { Result = false, Message = "Could not add issue, please try again or contact the administrator!" }); + } + originalRequest.Issues = issue; + originalRequest.OtherMessage = comment; + + var result = Service.Update(originalRequest); + if (result) + { + return Response.AsJson(new JsonResponseModel { Result = true }); + } + return Response.AsJson(new JsonResponseModel { Result = false, Message = "Could not add issue, please try again or contact the administrator!" }); } } } \ No newline at end of file diff --git a/PlexRequests.UI/Views/Login/Index.cshtml b/PlexRequests.UI/Views/Login/Index.cshtml index bf28d7c6a..a158aaddc 100644 --- a/PlexRequests.UI/Views/Login/Index.cshtml +++ b/PlexRequests.UI/Views/Login/Index.cshtml @@ -7,9 +7,10 @@
- -If you have not yet created an Admin account you can do here: Register - +@if (!Model.AdminExists) +{ +
If you have not yet created an Admin account you can do here: Register
+} @if (Model.Errored) {
diff --git a/PlexRequests.UI/Views/Requests/Index.cshtml b/PlexRequests.UI/Views/Requests/Index.cshtml index 20143a3db..272a4f939 100644 --- a/PlexRequests.UI/Views/Requests/Index.cshtml +++ b/PlexRequests.UI/Views/Requests/Index.cshtml @@ -93,31 +93,36 @@

Requested By: {{requestedBy}}

Requested Date: {{requestedDate}}

+ {{#if otherMessage}} +

Message: {{otherMessage}}

+ {{else}} +

Issue: {{issues}}

+ {{/if}} +


{{#if_eq admin true}} -
- - - + + +
{{/if_eq}} -
- + +
@@ -135,9 +140,9 @@
-
+ -
- +
+
+ +
+
+ +
-
- -
-
- @if (Model.UsePassword) - { +
+ @if (Model.UsePassword) + { +
- } -
- +
+ } +
+