diff --git a/lib/Controller/ExAppsPageController.php b/lib/Controller/ExAppsPageController.php index 70ee2f78..f83452cc 100644 --- a/lib/Controller/ExAppsPageController.php +++ b/lib/Controller/ExAppsPageController.php @@ -289,7 +289,9 @@ public function listApps(): JSONResponse { }))[0]['releases'][0]['version']; } - $appData['canUnInstall'] = !$appData['active'] && $appData['removable'] && !isset($appData['status']['type']); + $appData['canUnInstall'] = !$appData['active'] && $appData['removable'] && !isset($appData['status']['type']) + || (isset($appData['status']['action']) && $appData['status']['action'] === 'init') + || !empty($appData['status']['error']); // fix licence vs license if (isset($appData['license']) && !isset($appData['licence'])) { diff --git a/lib/DeployActions/DockerActions.php b/lib/DeployActions/DockerActions.php index c25f46e7..7814d51b 100644 --- a/lib/DeployActions/DockerActions.php +++ b/lib/DeployActions/DockerActions.php @@ -482,7 +482,7 @@ public function resolveExAppUrl( } else { $exAppHost = $appId; } - if (empty($deployConfig['haproxy_password'])) { + if (!isset($deployConfig['haproxy_password']) || $deployConfig['haproxy_password'] === '') { $auth = []; } else { $auth = [self::APP_API_HAPROXY_USER, $deployConfig['haproxy_password']]; @@ -527,7 +527,7 @@ public function initGuzzleClient(DaemonConfig $daemonConfig): void { } elseif ($daemonConfig->getProtocol() === 'https') { $guzzleParams = $this->setupCerts($guzzleParams); } - if (!empty($daemonConfig->getDeployConfig()['haproxy_password'])) { + if (isset($daemonConfig->getDeployConfig()['haproxy_password']) && $daemonConfig->getDeployConfig()['haproxy_password'] !== '') { $guzzleParams['auth'] = [self::APP_API_HAPROXY_USER, $daemonConfig->getDeployConfig()['haproxy_password']]; } $this->guzzleClient = new Client($guzzleParams); diff --git a/src/store/apps.js b/src/store/apps.js index 80f6ec44..60ab4380 100644 --- a/src/store/apps.js +++ b/src/store/apps.js @@ -140,9 +140,11 @@ const mutations = { console.debug('catching intermediate state deploying -> initializing') // catching moment when app is deployed but initialization status not started yet status.action = 'init' + app.canUnInstall = true } if (status.error !== '') { app.error = status.error + app.canUnInstall = true } if (status.deploy === 100 && status.init === 100) { app.active = true