From 91a477d9fb8a2200f09b9100fa62064ba9ea3ac5 Mon Sep 17 00:00:00 2001 From: cmeng Date: Thu, 27 Jun 2024 03:18:29 +1200 Subject: [PATCH] fix(host-info) host info improvement EE-7075 (#11883) --- .../host-overview/host-overview.html | 1 + .../components/host-overview/host-overview.js | 1 + .../devices-panel/devices-panel.html | 5 +++- .../host-details-panel-controller.js | 27 +++++++++++++++++++ .../host-details-panel/host-details-panel.js | 4 +++ app/docker/views/host/host-view-controller.js | 2 +- app/docker/views/host/host-view.html | 1 + .../AgentTab/DeploymentScripts.tsx | 1 + 8 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 app/docker/components/host-view-panels/host-details-panel/host-details-panel-controller.js diff --git a/app/docker/components/host-overview/host-overview.html b/app/docker/components/host-overview/host-overview.html index 5b133d3b4..2e4fd4331 100644 --- a/app/docker/components/host-overview/host-overview.html +++ b/app/docker/components/host-overview/host-overview.html @@ -3,6 +3,7 @@ diff --git a/app/docker/components/host-overview/host-overview.js b/app/docker/components/host-overview/host-overview.js index d446d71f5..be93a3309 100644 --- a/app/docker/components/host-overview/host-overview.js +++ b/app/docker/components/host-overview/host-overview.js @@ -10,6 +10,7 @@ angular.module('portainer.docker').component('hostOverview', { refreshUrl: '@', browseUrl: '@', hostFeaturesEnabled: '<', + environmentId: '<', }, transclude: true, }); diff --git a/app/docker/components/host-view-panels/devices-panel/devices-panel.html b/app/docker/components/host-view-panels/devices-panel/devices-panel.html index 55e0ec291..63bda40fc 100644 --- a/app/docker/components/host-view-panels/devices-panel/devices-panel.html +++ b/app/docker/components/host-view-panels/devices-panel/devices-panel.html @@ -15,9 +15,12 @@ {{ device.Name }} {{ device.Vendor }} - + Loading... + + Failed to load devices. + No device available. diff --git a/app/docker/components/host-view-panels/host-details-panel/host-details-panel-controller.js b/app/docker/components/host-view-panels/host-details-panel/host-details-panel-controller.js new file mode 100644 index 000000000..36a4fb1d5 --- /dev/null +++ b/app/docker/components/host-view-panels/host-details-panel/host-details-panel-controller.js @@ -0,0 +1,27 @@ +const ROOT_PATH = '/host'; + +export class HostDetailsPanelController { + /* @ngInject */ + constructor($async, HostBrowserService) { + Object.assign(this, { $async, HostBrowserService }); + + this.getFilesForPath = this.getFilesForPath.bind(this); + this.getFilesForPathAsync = this.getFilesForPathAsync.bind(this); + } + + getFilesForPath(path) { + return this.$async(this.getFilesForPathAsync, path); + } + + async getFilesForPathAsync(path) { + const isBrowseEnabledOrig = this.isBrowseEnabled; + this.isBrowseEnabled = false; + + await this.HostBrowserService.ls(this.environmentId, path); + this.isBrowseEnabled = isBrowseEnabledOrig; + } + + $onInit() { + this.getFilesForPath(ROOT_PATH); + } +} diff --git a/app/docker/components/host-view-panels/host-details-panel/host-details-panel.js b/app/docker/components/host-view-panels/host-details-panel/host-details-panel.js index 7fd43efc0..1b8f4085f 100644 --- a/app/docker/components/host-view-panels/host-details-panel/host-details-panel.js +++ b/app/docker/components/host-view-panels/host-details-panel/host-details-panel.js @@ -1,8 +1,12 @@ +import { HostDetailsPanelController } from './host-details-panel-controller'; + angular.module('portainer.docker').component('hostDetailsPanel', { templateUrl: './host-details-panel.html', + controller: HostDetailsPanelController, bindings: { host: '<', isBrowseEnabled: '<', browseUrl: '@', + environmentId: '<', }, }); diff --git a/app/docker/views/host/host-view-controller.js b/app/docker/views/host/host-view-controller.js index 807b446b1..759e7d39a 100644 --- a/app/docker/views/host/host-view-controller.js +++ b/app/docker/views/host/host-view-controller.js @@ -17,7 +17,7 @@ angular.module('portainer.docker').controller('HostViewController', [ this.engineDetails = {}; this.hostDetails = {}; - this.devices = null; + this.devices = undefined; this.disks = null; function initView() { diff --git a/app/docker/views/host/host-view.html b/app/docker/views/host/host-view.html index 8895ae018..2efe5e489 100644 --- a/app/docker/views/host/host-view.html +++ b/app/docker/views/host/host-view.html @@ -8,4 +8,5 @@ refresh-url="docker.host" browse-url="docker.host.browser" host-features-enabled="$ctrl.state.enableHostManagementFeatures" + environment-id="$ctrl.endpoint.Id" > diff --git a/app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/AgentTab/DeploymentScripts.tsx b/app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/AgentTab/DeploymentScripts.tsx index b0f455718..e450a952e 100644 --- a/app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/AgentTab/DeploymentScripts.tsx +++ b/app/react/portainer/environments/wizard/EnvironmentsCreationView/WizardDocker/AgentTab/DeploymentScripts.tsx @@ -99,6 +99,7 @@ function linuxStandaloneCommand(agentVersion: string, agentSecret: string) { --restart=always \\ -v /var/run/docker.sock:/var/run/docker.sock \\ -v /var/lib/docker/volumes:/var/lib/docker/volumes \\ + -v /:/host \\ portainer/agent:${agentVersion} `; }