We now can manually set the status of a request.
pull/13/head
tidusjar 9 years ago
parent c24652a89f
commit 31615ff69c

@ -182,6 +182,50 @@ $(document).on("click", ".clear", function (e) {
}); });
//change
// Change Availability
$(document).on("click", ".change", function (e) {
e.preventDefault();
var buttonId = e.target.id;
var availablity = $("button[custom-availibility='" + buttonId + "']").val();
var $form = $('#change' + buttonId);
var data = $form.serialize();
data = data + "&Available=" + availablity;
$.ajax({
type: $form.prop('method'),
url: $form.prop('action'),
data: data,
dataType: "json",
success: function (response) {
if (checkJsonResponse(response)) {
generateNotify("Success! Availibility changed.", "info");
var button = $("button[custom-availibility='" + buttonId + "']");
var icon = $('#availableIcon'+buttonId);
if (response.available) {
button.text("Mark Unavailable");
button.val("false");
button.prop("class", "btn btn-sm btn-info-outline change");
icon.prop("class", "fa fa-check");
} else {
button.text("Mark Available");
button.prop("class", "btn btn-sm btn-success-outline change");
icon.prop("class", "fa fa-times");
button.val("true");
}
}
},
error: function (e) {
console.log(e);
generateNotify("Something went wrong!", "danger");
}
});
});
function movieLoad() { function movieLoad() {
$("#movieList").html(""); $("#movieList").html("");

@ -45,11 +45,10 @@ namespace PlexRequests.UI.Modules
public class RequestsModule : BaseModule public class RequestsModule : BaseModule
{ {
public RequestsModule(IRepository<RequestedModel> service, ISettingsService<PlexRequestSettings> prSettings, ISettingsService<AuthenticationSettings> auth, ISettingsService<PlexSettings> plex) : base("requests") public RequestsModule(IRepository<RequestedModel> service, ISettingsService<PlexRequestSettings> prSettings, ISettingsService<PlexSettings> plex) : base("requests")
{ {
Service = service; Service = service;
PrSettings = prSettings; PrSettings = prSettings;
AuthSettings = auth;
PlexSettings = plex; PlexSettings = plex;
Get["/"] = _ => LoadRequests(); Get["/"] = _ => LoadRequests();
@ -61,10 +60,10 @@ namespace PlexRequests.UI.Modules
Post["/clearissues"] = _ => ClearIssue((int)Request.Form.Id); Post["/clearissues"] = _ => ClearIssue((int)Request.Form.Id);
Post["/changeavailability"] = _ => ChangeRequestAvailability((int)Request.Form.Id, (bool)Request.Form.Available);
} }
private IRepository<RequestedModel> Service { get; } private IRepository<RequestedModel> Service { get; }
private ISettingsService<PlexRequestSettings> PrSettings { get; } private ISettingsService<PlexRequestSettings> PrSettings { get; }
private ISettingsService<AuthenticationSettings> AuthSettings { get; }
private ISettingsService<PlexSettings> PlexSettings { get; } private ISettingsService<PlexSettings> PlexSettings { get; }
private Negotiator LoadRequests() private Negotiator LoadRequests()
@ -131,13 +130,14 @@ namespace PlexRequests.UI.Modules
private Response DeleteRequest(int requestid) private Response DeleteRequest(int requestid)
{ {
if (Context.CurrentUser.IsAuthenticated()) if (!Context.CurrentUser.IsAuthenticated())
{ {
var currentEntity = Service.Get(requestid); return Response.AsJson(new JsonResponseModel { Result = false, Message = "You are not an Admin, so you cannot delete any requests." });
Service.Delete(currentEntity);
return Response.AsJson(new JsonResponseModel { Result = true });
} }
return Response.AsJson(new JsonResponseModel { Result = false, Message = "You are not an Admin, so you cannot delete any requests." });
var currentEntity = Service.Get(requestid);
Service.Delete(currentEntity);
return Response.AsJson(new JsonResponseModel { Result = true });
} }
/// <summary> /// <summary>
@ -162,11 +162,9 @@ namespace PlexRequests.UI.Modules
var result = Service.Update(originalRequest); var result = Service.Update(originalRequest);
if (result) return Response.AsJson(result
{ ? new JsonResponseModel { Result = true }
return Response.AsJson(new JsonResponseModel { Result = true }); : new JsonResponseModel { Result = false, Message = "Could not add issue, please try again or contact the administrator!" });
}
return Response.AsJson(new JsonResponseModel { Result = false, Message = "Could not add issue, please try again or contact the administrator!" });
} }
private Response ClearIssue(int requestId) private Response ClearIssue(int requestId)
@ -189,5 +187,21 @@ namespace PlexRequests.UI.Modules
? new JsonResponseModel { Result = true } ? new JsonResponseModel { Result = true }
: new JsonResponseModel { Result = false, Message = "Could not clear issue, please try again or check the logs" }); : new JsonResponseModel { Result = false, Message = "Could not clear issue, please try again or check the logs" });
} }
private Response ChangeRequestAvailability(int requestId, bool available)
{
var originalRequest = Service.Get(requestId);
if (originalRequest == null)
{
return Response.AsJson(new JsonResponseModel { Result = false, Message = "Request does not exist to change the availability!" });
}
originalRequest.Available = available;
var result = Service.Update(originalRequest);
return Response.AsJson(result
? new {Result = true, Available = available, Message = string.Empty}
: new { Result = false, Available=false, Message = "Could not update the availability, please try again or check the logs" });
}
} }
} }

@ -67,9 +67,7 @@ namespace PlexRequests.UI
var s = new Setup(); var s = new Setup();
s.SetupDb(); s.SetupDb();
//ConfigureTargets(connection);
if(string.IsNullOrEmpty(uri)) if(string.IsNullOrEmpty(uri))
uri = GetStartupUri(); uri = GetStartupUri();

@ -87,10 +87,10 @@
<div> <div>
Available Available
{{#if_eq available false}} {{#if_eq available false}}
<i 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 class="fa fa-check"></i> <i id="availableIcon{{requestId}}" class="fa fa-check"></i>
{{/if_eq}} {{/if_eq}}
</div> </div>
<div>Requested By: {{requestedBy}}</div> <div>Requested By: {{requestedBy}}</div>
@ -122,6 +122,16 @@
<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-info-outline clear" type="submit"><i class="fa fa-check"></i> Clear Issues</button> <button id="{{requestId}}" style="text-align: right" class="btn btn-sm btn-info-outline clear" type="submit"><i class="fa fa-check"></i> Clear Issues</button>
</form> </form>
<form method="POST" action="/requests/changeavailability" id="change{{requestId}}">
<input name="Id" type="text" value="{{requestId}}" hidden="hidden" />
{{#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">Mark Unavailable</button>
{{else}}
<button id="{{requestId}}" custom-availibility="{{requestId}}" style="text-align: right" value="true" class="btn btn-sm btn-success-outline change" type="submit">Mark Available</button>
{{/if_eq}}
</form>
{{/if_eq}} {{/if_eq}}
<form method="POST" action="/requests/reportissue/" id="report{{requestId}}"> <form method="POST" action="/requests/reportissue/" id="report{{requestId}}">

Loading…
Cancel
Save