hw_posbox_homepage/views/upgrade_page.html

96 lines
4.6 KiB
HTML

{% extends "layout.html" %}
{% from "loading.html" import loading_block_ui %}
{% block head %}
<script type="text/javascript" src="/web/static/lib/jquery/jquery.js"></script>
<script>
$(function() {
var updating = false;
$('#upgrade').click(function() {
if (!updating) {
updating = true;
$('.loading-block').removeClass('o_hide');
$.ajax({
url:'/hw_proxy/perform_upgrade/'
}).done(function() {
$('.message-title').text('Upgrade successful');
var cpt = 25;
setInterval(function() {
--cpt;
if (cpt === 0) {location.reload();}
$('.message-status').text('Restarting the IoTBox. Available in ' + cpt);
} , 1000);
}).fail(function() {
$('.error-message').text('Upgrade Failed');
});
}
});
$('#flash').click(async function() {
if (confirm('Are you sure you want to flash your IoT Box?\nThe box will be unavailable for ~30 min\nDo not turn off the box or close this page during the flash.\nThis page will reaload when your box is ready.')) {
$('.loading-block').removeClass('o_hide');
$('.message-title').text('IoTBox perform a self flashing it take a lot of time (~30min).');
$('.message-status').text('Prepare space for IoTBox.');
try {
await $.ajax({url: '/hw_proxy/perform_flashing_create_partition/'}).promise();
$('.message-status').text('Prepare new boot partition.');
await $.ajax({url: '/hw_proxy/perform_flashing_download_raspios/'}).promise();
$('.message-status').text('Download file for new boot partition.');
await $.ajax({url: '/hw_proxy/perform_flashing_copy_raspios/'}).promise();
$('.message-status').text('Prepare to restart and installation of the new version of the IoT Box.');
setTimeout(function() {
$('.message-status').text('The auto flash is almost finished - the page will be automatically reloaded');
setInterval(function() {
$.ajax({
url: '/hw_proxy/get_version',
timeout: 4000,
}).done(function(version) {
if (version == {{ flashToVersion }}) {
window.location = '/';
}
});
} , 2000);
}, 240000);
}
catch(error) {
$('.loading-block').addClass('o_hide');
$('.error-message').text(error.responseText);
}
}
});
});
</script>
<style>
.commit-details {
background: #f1f1f1;
padding: 10px 10px 0 10px;
border-radius: 5px;
}
</style>
{% endblock %}
{% block content %}
<h2 class="text-center">IoT Box Software Upgrade</h2>
<p>
This tool will help you perform an upgrade of the IoTBox's software over the internet.
However the preferred method to upgrade the IoTBox is to flash the sd-card with
the <a href='https://nightly.odoo.com/master/iotbox/iotbox-latest.zip'>latest image</a>. The upgrade
procedure is explained into to the
<a href='https://www.odoo.com/documentation/17.0/applications/productivity/iot.html'>IoTBox manual</a>
</p>
<p>
To upgrade the IoTBox, click on the upgrade button. The upgrade will take a few minutes. <b>Do not reboot</b> the IoTBox during the upgrade.
</p>
<div class="commit-details">
<div style="padding-bottom: 5px; font-weight: bold;">
Latest patch:
</div>
<pre style="margin: 0;padding: 15px 0; overflow: auto;">{{ commit|safe }}</pre>
</div>
<div class="text-center" style="margin: 15px auto;">
{% if flashToVersion %}
<a class="btn" href='#' id='flash'>Upgrade to {{ flashToVersion }}</a>
{% else %}
<a class="btn" href='#' id='upgrade'>Upgrade</a>
{% endif %}
</div>
{{ loading_block_ui(loading_message) }}
{% endblock %}