const UpdateBanner = {
obj_banner: null,
str_pending_tag: null,
init: () => {
UpdateBanner._create_dom();
UpdateBanner._bind_events();
},
_create_dom: () => {
let obj_banner = document.createElement("div");
obj_banner.id = "update_banner";
obj_banner.className = "update-banner d-none";
obj_banner.innerHTML =
'
' +
'
' +
'' +
'Mise a jour disponible' +
'' +
'
' +
'' +
'' +
'
' +
'
';
let obj_nav = document.querySelector("nav.navbar");
obj_nav.parentNode.insertBefore(obj_banner, obj_nav.nextSibling);
UpdateBanner.obj_banner = obj_banner;
},
_bind_events: () => {
let obj_btn_install = document.getElementById("btn_update_install");
obj_btn_install.addEventListener("click", () => {
UpdateBanner._on_install_click();
});
let obj_btn_close = document.getElementById("btn_update_close");
obj_btn_close.addEventListener("click", () => {
UpdateBanner._hide();
});
window.api.on_update_available((obj_data) => {
UpdateBanner.str_pending_tag = obj_data.str_tag_name;
UpdateBanner._show("Version " + obj_data.str_version + " disponible");
});
window.api.on_update_progress((obj_data) => {
UpdateBanner._show_progress(obj_data.str_step, obj_data.nb_percent);
});
window.api.on_update_error((obj_data) => {
UpdateBanner.str_pending_tag = obj_data.str_tag_name || UpdateBanner.str_pending_tag;
UpdateBanner._show_error(obj_data.str_message);
});
},
_show: (str_message) => {
let obj_message = document.getElementById("update_banner_message");
obj_message.textContent = str_message;
let obj_btn_install = document.getElementById("btn_update_install");
obj_btn_install.innerHTML = '