From f9bbe000fbe07842eb7deee95532ec2b493c21df Mon Sep 17 00:00:00 2001 From: Matt Hook Date: Thu, 9 Feb 2023 17:18:19 +1300 Subject: [PATCH] fix(docker): remove prepended slash by default on container names [EE-3592] (#8195) * remove prepended slash by default if present * trimcontainername still needed --- app/docker/filters/filters.js | 7 +++---- .../views/containers/create/createContainerController.js | 6 +++--- .../ListView/ContainersDatatable/columns/name.tsx | 5 +---- app/react/docker/containers/utils.ts | 6 ++++++ 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/app/docker/filters/filters.js b/app/docker/filters/filters.js index 1decd66b0..198947edd 100644 --- a/app/docker/filters/filters.js +++ b/app/docker/filters/filters.js @@ -114,7 +114,7 @@ angular 'use strict'; return function (name) { if (name) { - return name.indexOf('/') === 0 ? name.replace('/', '') : name; + return name.indexOf('/') === 0 ? name.slice(1) : name; } return ''; }; @@ -161,8 +161,7 @@ angular .filter('containername', function () { 'use strict'; return function (container) { - var name = container.Names[0]; - return name.substring(1, name.length); + return container.Names[0]; }; }) .filter('swarmversion', function () { @@ -174,7 +173,7 @@ angular .filter('swarmhostname', function () { 'use strict'; return function (container) { - return _.split(container.Names[0], '/')[1]; + return container.Names[0]; }; }) .filter('repotags', function () { diff --git a/app/docker/views/containers/create/createContainerController.js b/app/docker/views/containers/create/createContainerController.js index 38fb33813..feafae51b 100644 --- a/app/docker/views/containers/create/createContainerController.js +++ b/app/docker/views/containers/create/createContainerController.js @@ -338,7 +338,7 @@ angular.module('portainer.docker').controller('CreateContainerController', [ var container = $scope.formValues.NetworkContainer; var containerName = container; if (container && typeof container === 'object') { - containerName = $filter('trimcontainername')(container.Names[0]); + containerName = container.Names[0]; } var networkMode = mode; if (containerName) { @@ -987,7 +987,7 @@ angular.module('portainer.docker').controller('CreateContainerController', [ if (!oldContainer) { return; } - return ContainerService.renameContainer(oldContainer.Id, oldContainer.Names[0].substring(1)); + return ContainerService.renameContainer(oldContainer.Id, oldContainer.Names[0]); } function confirmCreateContainer(container) { @@ -1033,7 +1033,7 @@ angular.module('portainer.docker').controller('CreateContainerController', [ } function renameContainer() { - return ContainerService.renameContainer(oldContainer.Id, oldContainer.Names[0].substring(1) + '-old'); + return ContainerService.renameContainer(oldContainer.Id, oldContainer.Names[0] + '-old'); } function pullImageIfNeeded() { diff --git a/app/react/docker/containers/ListView/ContainersDatatable/columns/name.tsx b/app/react/docker/containers/ListView/ContainersDatatable/columns/name.tsx index 6b5fa7986..0b6a373a2 100644 --- a/app/react/docker/containers/ListView/ContainersDatatable/columns/name.tsx +++ b/app/react/docker/containers/ListView/ContainersDatatable/columns/name.tsx @@ -10,10 +10,7 @@ import { TableSettings } from '../types'; export const name: Column = { Header: 'Name', - accessor: (row) => { - const name = row.Names[0]; - return name.substring(1, name.length); - }, + accessor: (row) => row.Names[0], id: 'name', Cell: NameCell, disableFilters: true, diff --git a/app/react/docker/containers/utils.ts b/app/react/docker/containers/utils.ts index a25012561..8a9ff2c7c 100644 --- a/app/react/docker/containers/utils.ts +++ b/app/react/docker/containers/utils.ts @@ -37,9 +37,15 @@ export function parseViewModel( ) ); + const names = response.Names.map((n) => { + const nameWithoutSlash = n[0] === '/' ? response.Names[0].slice(1) : n; + return nameWithoutSlash; + }); + return { ...response, ResourceControl: resourceControl, + Names: names, NodeName: nodeName, IP: ip, StackName: stackName,