More work on the settings

This commit is contained in:
Jamie Rees 2016-03-01 22:50:41 +00:00
commit a00d5b69f2
14 changed files with 152 additions and 39 deletions

View file

@ -30,6 +30,7 @@ using System.Web.UI;
using Nancy;
using Nancy.Extensions;
using Nancy.ModelBinding;
using Nancy.Responses.Negotiation;
using Nancy.Security;
using RequestPlex.Api;
@ -60,19 +61,12 @@ namespace RequestPlex.UI.Modules
}
private Response Admin()
private Negotiator Admin()
{
dynamic model = new ExpandoObject();
model.Errored = Request.Query.error.HasValue;
model.Port = null;
var settings = Service.GetSettings();
if (settings != null)
{
model.Port = settings.Port;
model.PlexAuthToken = settings.PlexAuthToken;
}
model = settings;
return View["/Admin/Settings", model];
}
@ -112,7 +106,7 @@ namespace RequestPlex.UI.Modules
Service.SaveSettings(newModel);
}
return Context.GetRedirect("~/admin");
return Response.AsJson(new {Result = true, AuthToken = model.user.authentication_token});
}

View file

@ -1,11 +1,9 @@
using System;
using System.Diagnostics;
using Microsoft.Owin.Hosting;
using Mono.Data.Sqlite;
using Nancy.Hosting.Self;
using RequestPlex.Core;
using RequestPlex.Core.SettingModels;
using RequestPlex.Helpers;
@ -18,6 +16,8 @@ namespace RequestPlex.UI
{
static void Main(string[] args)
{
var assemblyVer = AssemblyHelper.GetAssemblyVersion();
Console.WriteLine($"Version: {assemblyVer}");
var uri = "http://localhost:3579/";
var s = new Setup();
s.SetupDb();
@ -32,8 +32,8 @@ namespace RequestPlex.UI
using (WebApp.Start<Startup>(uri))
{
Console.WriteLine("Running on {0}", uri);
Console.WriteLine("Press enter to exit");
Console.WriteLine($"Request Plex is running on {uri}");
Console.WriteLine("Press any key to exit");
Console.ReadLine();
}
}

View file

@ -19,6 +19,7 @@
{
authToken = Model.PlexAuthToken;
}
}
<div class="col-sm-8">
<form class="form-horizontal" method="POST" id="mainForm">
@ -26,10 +27,52 @@
<legend>Request Plex Settings</legend>
<div class="form-group">
<label for="portNumber" class="col-lg-2 control-label">Port</label>
<div class="col-lg-10">
<input type="text" class="form-control" id="portNumber" name="Port" placeholder="Port Number" value="@port">
</div>
</div>
<small class="col-lg-10 col-lg-offset-2">You will have to restart after changing the port.</small>
<div class="form-group">
<label for="SearchForMovies" class="col-lg-2 control-label">Search for Movies</label>
<div class="col-lg-10 checkbox">
<label>
@if (Model.SearchForMovies)
{
<input type="checkbox" id="SearchForMovies" name="SearchForMovies" checked="checked">
}
else
{
<input type="checkbox" id="SearchForMovies" name="SearchForMovies" checked="checked">
}
</label>
</div>
</div>
<div class="form-group">
<label for="SearchForTvShows" class="col-lg-2 control-label">Search for TV Shows</label>
<div class="col-lg-10 checkbox">
<label>
@if (Model.SearchForTvShows)
{
<input type="checkbox" id="SearchForTvShows" name="SearchForTvShows" checked="checked">
}
else
{
<input type="checkbox" id="SearchForTvShows" name="SearchForTvShows">
}
</label>
</div>
</div>
<div class="form-group">
<label for="WeeklyRequestLimit" class="col-lg-2 control-label">Weekly Request Limit</label>
<div class="col-lg-10 checkbox">
<label>
<input type="number" id="WeeklyRequestLimit" name="WeeklyRequestLimit" value="@Model.WeeklyRequestLimit">
</label>
</div>
</div>
<div class="form-group">
<label for="authToken" class="col-lg-2 control-label">Plex Authorization Token</label>
@ -39,7 +82,7 @@
</div>
<div class="form-group">
<label for="userpass" class="col-lg-2 control-label">Username and Password</label>
<label for="username" class="col-lg-2 control-label">Username and Password</label>
<div class="col-lg-4">
<input type="text" class="form-control" id="username" name="Username" placeholder="Username">
</div>
@ -55,15 +98,30 @@
<div class="form-group">
<label for="userAuth" class="col-lg-2 control-label">Enable User Authentication</label>
<div class="col-lg-4">
<input type="checkbox" class="form-control" id="userAuth" name="UserAuthentication">
<div class="col-lg-4 checkbox">
<label>
@if (Model.UserAuthentication)
{
<input type="checkbox" id="userAuth" name="UserAuthentication" checked="checked">
}
else
{
<input type="checkbox" id="userAuth" name="UserAuthentication">
}
</label>
</div>
</div>
<small>Current users that are allowed to authenticate: </small>
<select id="users" multiple="" class="form-control col-lg-10 col-lg-offset-2">
</select>
<br />
<br />
<small class="col-lg-offset-2">Current users that are allowed to authenticate: </small>
<br />
<br />
<div class="form-group">
<select id="users" multiple="" class="col-lg-10 col-lg-offset-2"></select>
</div>
<div class="form-group">
<br />
<br />
<div class="col-lg-10 col-lg-offset-2">
<button id="refreshUsers" class="btn btn-primary">Refresh Users</button>
</div>
@ -74,7 +132,6 @@
<br />
<br />
<div>
<small class="col-lg-10 col-lg-offset-2">Please note, you will have to restart after changing these settings.</small>
</div>
<div class="form-group">
<div class="col-lg-10 col-lg-offset-2">
@ -87,19 +144,11 @@
</div>
@if (Model.Errored)
{
<div class="alert alert-dismissible alert-danger">
<button type="button" class="close" data-dismiss="alert"><i class="fa fa-times"></i></button>
Please enter in a correct port number
</div>
}
<script>
$(function () {
if ($('#PlexAuthToken')) {
loadUserList();
loadUserList();
}
$('#refreshUsers').click(function () {
@ -107,6 +156,7 @@
});
$('#requestToken').click(function (e) {
e.preventDefault();
var $form = $("#mainForm");
$.ajax({
type: $form.prop("method"),
@ -115,11 +165,11 @@
dataType: "json",
success: function (response) {
console.log(response);
if (response.Result === true) {
if (response.result === true) {
generateNotify("Success!", "success");
$('#authToken').val(response.authToken);
} else {
generateNotify(response.Message, "warning");
generateNotify(response.message, "warning");
}
},
error: function (e) {
@ -137,9 +187,13 @@
url: "admin/getusers",
dataType: "json",
success: function (response) {
response.each(function (user) {
$('#users').append("<option>" + user + "</option>");
});
if (response.length > 1) {
response.each(function(user) {
$('#users').append("<option>" + user + "</option>");
});
} else {
$('#users').append("<option>No Users!</option>");
}
},
error: function (e) {
console.log(e);

View file

@ -49,9 +49,11 @@
</div>
<div class="col-sm-2 col-sm-push-3">
<span class="label label-success">{{status}}</span>
<br />
<br />
<form method="POST" action="/search/request/{{type}}" id="form{{id}}">
<input name="{{type}}Id" type="text" value="{{id}}" hidden="hidden" />
<button id="{{id}}" style="text-align: right" class="btn btn-primary requestMovie" type="submit"><i class="fa fa-plus"></i> TestBtn</button>
<button id="{{id}}" style="text-align: right" class="btn btn-danger" type="submit"><i class="fa fa-plus"></i> Remove</button>
</form>
</div>

View file

@ -1,5 +1,6 @@
<div>
<h2>Search</h2>
<h4>Want to wacth something that is not currently on Plex?! No problem! Just search for it below and request it!</h4>
<!-- Nav tabs -->
<ul id="nav-tabs" class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#MoviesTab" aria-controls="home" role="tab" data-toggle="tab">Movies</a></li>