mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 01:14:15 +02:00
[improvement][ui] not performing a full table refresh after installing a new package
This commit is contained in:
@@ -17,7 +17,7 @@ from colorama import Fore
|
||||
from requests import exceptions, Response
|
||||
|
||||
from bauh.api.abstract.context import ApplicationContext
|
||||
from bauh.api.abstract.controller import SoftwareManager, SearchResult, UpgradeRequirements
|
||||
from bauh.api.abstract.controller import SoftwareManager, SearchResult, UpgradeRequirements, TransactionResult
|
||||
from bauh.api.abstract.disk import DiskCacheLoader
|
||||
from bauh.api.abstract.handler import ProcessWatcher, TaskManager
|
||||
from bauh.api.abstract.model import SoftwarePackage, CustomSoftwareAction, PackageSuggestion, PackageUpdate, \
|
||||
@@ -617,13 +617,13 @@ class WebApplicationManager(SoftwareManager):
|
||||
pkg.name))
|
||||
traceback.print_exc()
|
||||
|
||||
def install(self, pkg: WebApplication, root_password: str, watcher: ProcessWatcher) -> bool:
|
||||
def install(self, pkg: WebApplication, root_password: str, disk_loader: DiskCacheLoader, watcher: ProcessWatcher) -> TransactionResult:
|
||||
|
||||
continue_install, install_options = self._ask_install_options(pkg, watcher)
|
||||
|
||||
if not continue_install:
|
||||
watcher.print("Installation aborted by the user")
|
||||
return False
|
||||
return TransactionResult(success=False, installed=[], removed=[])
|
||||
|
||||
watcher.change_substatus(self.i18n['web.env.checking'])
|
||||
handler = ProcessHandler(watcher)
|
||||
@@ -635,18 +635,18 @@ class WebApplicationManager(SoftwareManager):
|
||||
watcher.show_message(title=self.i18n['error'].capitalize(),
|
||||
body=self.i18n['web.install.global_nativefier.unavailable'].format(n=bold('Nativefier'), app=bold(pkg.name)) + '.',
|
||||
type_=MessageType.ERROR)
|
||||
return False
|
||||
return TransactionResult(success=False, installed=[], removed=[])
|
||||
|
||||
env_components = self.env_updater.check_environment(app=pkg, local_config=local_config, env=env_settings, is_x86_x64_arch=self.context.is_system_x86_64())
|
||||
|
||||
comps_to_update = [c for c in env_components if c.update]
|
||||
|
||||
if comps_to_update and not self._ask_update_permission(comps_to_update, watcher):
|
||||
return False
|
||||
return TransactionResult(success=False, installed=[], removed=[])
|
||||
|
||||
if not self.env_updater.update(components=comps_to_update, handler=handler):
|
||||
watcher.show_message(title=self.i18n['error'], body=self.i18n['web.env.error'].format(bold(pkg.name)), type_=MessageType.ERROR)
|
||||
return False
|
||||
return TransactionResult(success=False, installed=[], removed=[])
|
||||
|
||||
Path(INSTALLED_PATH).mkdir(parents=True, exist_ok=True)
|
||||
|
||||
@@ -699,7 +699,7 @@ class WebApplicationManager(SoftwareManager):
|
||||
msg = '{}.{}.'.format(self.i18n['wen.install.error'].format(bold(pkg.name)),
|
||||
self.i18n['web.install.nativefier.error.unknown'].format(bold(self.i18n['details'].capitalize())))
|
||||
watcher.show_message(title=self.i18n['error'], body=msg, type_=MessageType.ERROR)
|
||||
return False
|
||||
return TransactionResult(success=False, installed=[], removed=[])
|
||||
|
||||
inner_dir = os.listdir(app_dir)
|
||||
|
||||
@@ -707,7 +707,7 @@ class WebApplicationManager(SoftwareManager):
|
||||
msg = '{}.{}.'.format(self.i18n['wen.install.error'].format(bold(pkg.name)),
|
||||
self.i18n['web.install.nativefier.error.inner_dir'].format(bold(app_dir)))
|
||||
watcher.show_message(title=self.i18n['error'], body=msg, type_=MessageType.ERROR)
|
||||
return False
|
||||
return TransactionResult(success=False, installed=[], removed=[])
|
||||
|
||||
# bringing the inner app folder to the 'installed' folder level:
|
||||
inner_dir = '{}/{}'.format(app_dir, inner_dir[0])
|
||||
@@ -763,7 +763,8 @@ class WebApplicationManager(SoftwareManager):
|
||||
if install_options:
|
||||
pkg.options_set = install_options
|
||||
|
||||
return True
|
||||
pkg.installed = True
|
||||
return TransactionResult(success=True, installed=[pkg], removed=[])
|
||||
|
||||
def _gen_desktop_entry_content(self, pkg: WebApplication) -> str:
|
||||
return """
|
||||
|
||||
Reference in New Issue
Block a user