Update last backup when upload is finish

This commit is contained in:
Sebastien Clement 2019-12-28 16:25:54 +01:00
parent a962827599
commit b32d51847e
3 changed files with 27 additions and 17 deletions

View File

@ -80,14 +80,17 @@ router.get('/nextcloud-settings', function(req, res, next) {
router.post('/manual-backup', function(req, res, next) { router.post('/manual-backup', function(req, res, next) {
let id = req.query.id; let id = req.query.id;
let name = req.query.name; let name = req.query.name;
// hassioApiTools.downloadSnapshot(id) hassioApiTools.downloadSnapshot(id)
// .then(() => { .then(() => {
webdav.uploadFile('8afb4728', '/Hassio Backup/Manual/' + '8afb4728' + '.tar'); webdav.uploadFile(id, '/Hassio Backup/Manual/' + name + '.tar');
res.send(200); res.send(200);
// }) })
// .catch(() => { .catch(() => {
// res.send(500); res.send(500);
// }) })
});
}); });

View File

@ -1,5 +1,6 @@
const { createClient } = require("webdav"); const { createClient } = require("webdav");
const fs = require("fs"); const fs = require("fs");
const moment = require('moment');
const statusTools = require('./status'); const statusTools = require('./status');
const endpoint = "/remote.php/webdav" const endpoint = "/remote.php/webdav"
@ -148,6 +149,8 @@ class WebdavTools {
status.status = "idle"; status.status = "idle";
status.message = null; status.message = null;
status.error_code = null; status.error_code = null;
status.last_backup = moment().format("lll")
statusTools.setStatus(status); statusTools.setStatus(status);
resolve(); resolve();
}).catch((err) => { }).catch((err) => {

View File

@ -112,7 +112,7 @@
<div class="card-content"> <div class="card-content">
<span class="card-title white-text" style="font-weight: bold;">Last Backup</span> <span class="card-title white-text" style="font-weight: bold;">Last Backup</span>
<div class="divider"></div> <div class="divider"></div>
<h5 id="last_back_status"></h5> <h6 class="white-text" id="last_back_status"></h6>
</div> </div>
</div> </div>
</div> </div>
@ -308,7 +308,7 @@
console.log(id); console.log(id);
}); });
$('.manual-back-list').click(function(){ $('.manual-back-list').click(function() {
let id = this.getAttribute('data-id'); let id = this.getAttribute('data-id');
let name = this.getAttribute('data-name'); let name = this.getAttribute('data-name');
manualBackup(id, name); manualBackup(id, name);
@ -333,6 +333,10 @@
case "upload": case "upload":
printStatusWithBar('Uploading Snapshot', data.progress); printStatusWithBar('Uploading Snapshot', data.progress);
} }
if (data.last_backup != null) {
if ($('#last_back_status').html() != data.last_backup)
$('#last_back_status').html(data.last_backup);
}
} }
@ -350,27 +354,27 @@
$('#progress').addClass("hide"); $('#progress').addClass("hide");
} }
function printStatusWithBar(status, progress){ function printStatusWithBar(status, progress) {
$('#status').empty(); $('#status').empty();
$('#status').html(status); $('#status').html(status);
let secondLine = $('#status-second-line') let secondLine = $('#status-second-line')
secondLine.empty(); secondLine.empty();
secondLine.html(progress == -1 ? "Waiting..." : (Math.round(progress*100) + "%")); secondLine.html(progress == -1 ? "Waiting..." : (Math.round(progress * 100) + "%"));
secondLine.addClass("center"); secondLine.addClass("center");
secondLine.attr('data-tooltip', Math.round(progress*100) + "%"); secondLine.attr('data-tooltip', Math.round(progress * 100) + "%");
let progressDiv = $('#progress'); let progressDiv = $('#progress');
progressDiv.removeClass("hide"); progressDiv.removeClass("hide");
if(progress == -1){ if (progress == -1) {
progressDiv.children().removeClass('determinate'); progressDiv.children().removeClass('determinate');
progressDiv.children().addClass('indeterminate'); progressDiv.children().addClass('indeterminate');
} }
else{ else {
progressDiv.children().removeClass('indeterminate'); progressDiv.children().removeClass('indeterminate');
progressDiv.children().addClass('determinate'); progressDiv.children().addClass('determinate');
progressDiv.children().css('width', (progress*100) + "%"); progressDiv.children().css('width', (progress * 100) + "%");
} }
} }
function listeners() { function listeners() {
@ -411,7 +415,7 @@
}) })
} }
function manualBackup(id, name){ function manualBackup(id, name) {
$.post('./api/manual-backup?id=' + id + '&name=' + name); $.post('./api/manual-backup?id=' + id + '&name=' + name);
} }