I think the auto updater is finished! #29

This commit is contained in:
tidusjar 2016-05-20 13:51:25 +01:00
parent 0601f04582
commit aa2949cdd0
4 changed files with 56 additions and 6 deletions

View file

@ -54,6 +54,7 @@ using PlexRequests.Store.Repository;
using PlexRequests.UI.Helpers;
using PlexRequests.UI.Models;
using System;
using System.Diagnostics;
using Nancy.Json;
using Nancy.Security;
@ -173,6 +174,8 @@ namespace PlexRequests.UI.Modules
Post["/headphones"] = _ => SaveHeadphones();
Post["/createapikey"] = x => CreateApiKey();
Post["/autoupdate"] = x => AutoUpdate();
}
private Negotiator Authentication()
@ -496,6 +499,16 @@ namespace PlexRequests.UI.Modules
return View["Status", status];
}
private Response AutoUpdate()
{
var url = Request.Form["url"];
var startInfo = new ProcessStartInfo("PlexRequests.Updater.exe") { Arguments = url};
Process.Start(startInfo);
Environment.Exit(0);
return Nancy.Response.NoBody;
}
private Negotiator PushbulletNotifications()
{
var settings = PushbulletService.GetSettings();

View file

@ -126,7 +126,7 @@
var $form = $("#mainForm");
$.ajax({
type: $form.prop("method"),
url: "requestauth",
url: url,
data: $form.serialize(),
dataType: "json",
success: function (response) {

View file

@ -1,4 +1,5 @@
@Html.Partial("_Sidebar")
@using PlexRequests.UI.Helpers
@Html.Partial("_Sidebar")
<div class="col-sm-8 col-sm-push-1">
<fieldset>
@ -15,6 +16,8 @@
@if (Model.UpdateAvailable)
{
<label class="control-label"><a href="@Model.UpdateUri" target="_blank"><i class="fa fa-check"></i></a></label>
<br />
<button id="autoUpdate" class="btn btn-success-outline">Automatic Update <i class="fa fa-download"></i></button>
}
else
{
@ -36,3 +39,33 @@
</fieldset>
</div>
<script>
var base = '@Html.GetBaseUrl()';
$('#autoUpdate')
.click(function (e) {
e.preventDefault();
$('body').append("<i class=\"fa fa-spinner fa-spin fa-5x fa-fw\" style=\"position: absolute; top: 20%; left: 50%;\"></i>");
$('#autoUpdate').prop("disabled", "disabled");
var count = 0;
setInterval(function () {
count++;
var dots = new Array(count % 10).join('.');
document.getElementById('autoUpdate').innerHTML = "Updating" + dots;
}, 1000);
var url = createBaseUrl(base, "autoupdate");
$.ajax({
type: "Post",
url: url,
data: { url: "@Model.DownloadUri" },
dataType: "json",
error: function () {
setTimeout(
function () {
location.reload();
}, 30000);
}
});
});
</script>

View file

@ -192,7 +192,11 @@ namespace PlexRequests.Updater
private void FinishUpdate()
{
var startInfo = new ProcessStartInfo("PlexRequests.exe") { Arguments = Error ? "-u 2" : "-u 1" };
ProcessStartInfo startInfo;
startInfo = Type.GetType("Mono.Runtime") != null
? new ProcessStartInfo("mono PlexRequests.exe") { Arguments = Error ? "-u 2" : "-u 1" }
: new ProcessStartInfo("PlexRequests.exe") { Arguments = Error ? "-u 2" : "-u 1" };
Process.Start(startInfo);
Environment.Exit(0);