system: Add check for updates close #681
This commit is contained in:
parent
de84bd6597
commit
af1ae9a0ec
@ -2,7 +2,7 @@ import gi
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
gi.require_version("Gtk", "3.0")
|
gi.require_version("Gtk", "3.0")
|
||||||
from gi.repository import Gtk, Pango
|
from gi.repository import Gtk, Pango, GLib
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from ks_includes.screen_panel import ScreenPanel
|
from ks_includes.screen_panel import ScreenPanel
|
||||||
@ -27,12 +27,12 @@ class SystemPanel(ScreenPanel):
|
|||||||
grid = self._gtk.HomogeneousGrid()
|
grid = self._gtk.HomogeneousGrid()
|
||||||
grid.set_row_homogeneous(False)
|
grid.set_row_homogeneous(False)
|
||||||
|
|
||||||
update_all = self._gtk.ButtonImage('refresh', _('Full\nUpdate'), 'color1')
|
update_all = self._gtk.ButtonImage('arrow-up', _('Full\nUpdate'), 'color1')
|
||||||
update_all.connect("clicked", self.show_update_info, "full")
|
update_all.connect("clicked", self.show_update_info, "full")
|
||||||
update_all.set_vexpand(False)
|
update_all.set_vexpand(False)
|
||||||
firmrestart = self._gtk.ButtonImage('refresh', _('Firmware\nRestart'), 'color2')
|
self.refresh = self._gtk.ButtonImage('refresh', _('Refresh'), 'color2')
|
||||||
firmrestart.connect("clicked", self._screen._ws.klippy.restart_firmware)
|
self.refresh.connect("clicked", self.refresh_updates)
|
||||||
firmrestart.set_vexpand(False)
|
self.refresh.set_vexpand(False)
|
||||||
|
|
||||||
reboot = self._gtk.ButtonImage('refresh', _('System\nRestart'), 'color3')
|
reboot = self._gtk.ButtonImage('refresh', _('System\nRestart'), 'color3')
|
||||||
reboot.connect("clicked", self._screen._confirm_send_action,
|
reboot.connect("clicked", self._screen._confirm_send_action,
|
||||||
@ -83,7 +83,7 @@ class SystemPanel(ScreenPanel):
|
|||||||
|
|
||||||
grid.attach(scroll, 0, 0, 4, 2)
|
grid.attach(scroll, 0, 0, 4, 2)
|
||||||
grid.attach(update_all, 0, 2, 1, 1)
|
grid.attach(update_all, 0, 2, 1, 1)
|
||||||
grid.attach(firmrestart, 1, 2, 1, 1)
|
grid.attach(self.refresh, 1, 2, 1, 1)
|
||||||
grid.attach(reboot, 2, 2, 1, 1)
|
grid.attach(reboot, 2, 2, 1, 1)
|
||||||
grid.attach(shutdown, 3, 2, 1, 1)
|
grid.attach(shutdown, 3, 2, 1, 1)
|
||||||
self.content.add(grid)
|
self.content.add(grid)
|
||||||
@ -96,8 +96,13 @@ class SystemPanel(ScreenPanel):
|
|||||||
self._screen.set_updating(False)
|
self._screen.set_updating(False)
|
||||||
self.get_updates()
|
self.get_updates()
|
||||||
|
|
||||||
def get_updates(self):
|
def refresh_updates(self, widget=None):
|
||||||
update_resp = self._screen.apiclient.send_request("machine/update/status")
|
self.refresh.set_sensitive(False)
|
||||||
|
self._screen.show_popup_message(_("Checking for updates, please wait..."), level=1)
|
||||||
|
GLib.timeout_add_seconds(1, self.get_updates, "true")
|
||||||
|
|
||||||
|
def get_updates(self, refresh="false"):
|
||||||
|
update_resp = self._screen.apiclient.send_request(f"machine/update/status?refresh={refresh}")
|
||||||
if not update_resp:
|
if not update_resp:
|
||||||
logging.info("No update manager configured")
|
logging.info("No update manager configured")
|
||||||
else:
|
else:
|
||||||
@ -106,6 +111,7 @@ class SystemPanel(ScreenPanel):
|
|||||||
items = sorted(list(vi))
|
items = sorted(list(vi))
|
||||||
for prog in items:
|
for prog in items:
|
||||||
self.update_program_info(prog)
|
self.update_program_info(prog)
|
||||||
|
self.refresh.set_sensitive(True)
|
||||||
|
|
||||||
def process_update(self, action, data):
|
def process_update(self, action, data):
|
||||||
if action == "notify_update_response":
|
if action == "notify_update_response":
|
||||||
|
Loading…
x
Reference in New Issue
Block a user