diff --git a/awx/ui/client/features/networking/_index.less b/awx/ui/client/features/networking/_index.less index 2e9b1fbc91..a7a1dabf3c 100644 --- a/awx/ui/client/features/networking/_index.less +++ b/awx/ui/client/features/networking/_index.less @@ -1,8 +1,20 @@ +.Networking-shell{ + display:flex; + flex-direction: column; + width:100%; + align-items: flex-end; + position:absolute; +} + +.Networking-top{ + width:100%; +} + .Networking-header{ - border: 1px solid @at-color-panel-border; + border-top: 1px solid @at-color-panel-border; + border-bottom: 1px solid @at-color-panel-border; display:flex; height: 40px; - position: absolute; width:100%; background-color: @default-bg; } @@ -12,7 +24,7 @@ flex: 1 0 auto; font-size: 14px; font-weight: bold; - padding-left: 10px; + padding-left: 20px; align-items: center; display: flex; } @@ -29,45 +41,50 @@ .Networking-headerActionItem{ justify-content: flex-end; display: flex; - padding-right: 10px; + padding-right: 20px; font-size: 20px; } -.Networking-actionButton{ +.Networking-toolbarIcon{ font-size: 16px; height: 30px; min-width: 30px; color: @default-icon; background-color: inherit; border: none; - border-radius: 50%; + border-radius: 5px; + margin-left: 20px; } -.Networking-actionButton:hover{ +.Networking-toolbarIcon:hover{ background-color:@default-link; color: @default-bg; } -.Networking-panels{ - display:flex; +.Networking-toolbarIcon--selected{ + background-color:@default-link; + color: @default-bg; + border-bottom-right-radius: 0px; + border-bottom-left-radius: 0px; } -.Networking-leftPanel{ +.Networking-canvasPanel{ width:100% } -.Networking-rightPanel{ +.Networking-detailPanel{ border-left: 1px solid @at-color-panel-border; + border-bottom: 1px solid @at-color-panel-border; width:400px; - height: calc(~"100vh - 40px"); + height: calc(~"100vh - 115px"); padding: 20px; color: @default-interface-txt; font-size: 14px; font-weight: bold; - position: absolute; - top: 40px; - right: 0px; background-color: @default-bg; + position: absolute; + top:115px; + right:0px; } @@ -86,11 +103,8 @@ text-transform: uppercase; } -.Networking-resultRow { - width: 100%; - display: flex; - padding-bottom: 10px; - flex-wrap: wrap; +.Networking-resultRowLabel{ + width: initial; } .Networking-resultRow--variables { @@ -100,3 +114,166 @@ width: 100%; } } + +.Networking-noItems{ + margin-top: 0px; +} + +.Networking-toolbar{ + min-height: 40px; + width:100%; + background-color: #ebebeb; + display:flex; + flex: 1 0 auto; + align-items: center; +} + +.Networking-breadCrumbBar{ + background-color: white; + min-height: 35px; + border-bottom: 1px solid @at-color-panel-border; + border-top: 1px solid @at-color-panel-border; + align-items: center; + padding-left:20px; +} + +.Networking-breadCrumbText{ + color:@default-link; +} + +.Networking-toolbarLeftSide--expanded{ + width: calc(~"100% - 201px"); + // margin-left:201px; + left:201px; +} + +.Networking-toolbarBothPanels--expanded{ + width: calc(~"100% - 601px"); + // margin-right:400px; + left:201px; +} + +.Networking-toolbarRightSide--expanded{ + width: calc(~"100% - 445px"); +} + +.Networking-toolbarButton{ + margin: 4px 20px 5px 0px; + text-transform: uppercase; + background-color: #FFFFFF; + border-radius: 5px; + color: #707070; + border: 1px solid #B7B7B7; + cursor: pointer; + min-width: 70px; + min-height: 30px; + font-size: 12px; +} + +.Networking-toolbarButton:hover { + background-color: #f2f2f2; +} + +.Networking-toolbarLeftSide{ + display: flex; + flex-wrap: wrap; + width: 100%; + padding-left: 20px; +} + +.Networking-toolbarRightSide{ + align-items: center; + flex-wrap: wrap; + display: flex; + min-width: 400px; + padding-right: 20px; +} + +.Networking-searchBarContainer{ + height: 30px +} + +.Networking-searchButton{ + padding: 4px 10px; +} + +.Networking-searchButton i{ + color:#848992 +} + +.Networking-jumpToDropDownPanel{ + width: 150px; + padding: 10px 0px 10px 0px; + border: 1px solid #b7b7b7; + position: absolute; + right: 0px; + background-color: white; + z-index: 100; +} + +.Networking-dropdownPanelTitle{ + color: #707070; + padding-left:15px; + min-height: 30px; + font-size: 14px; + font-weight: bold; + display: flex; + align-items: center; +} + +.Networking-jumpToPanelOption{ + color: #707070; + padding-left:15px; + min-height: 30px; + font-size: 12px; + cursor: pointer; + display:flex; + align-items: center; +} + +.Networking-jumpToPanelOption:hover{ + background-color: #f2f2f2; +} + +.Networking-jumpToContainer, +.Networking-keyContainer{ + display: inline-block; + position: relative; +} + +.Networking-keyDropDownPanel{ + width: 180px; + padding: 10px 0px 10px 0px; + border: 1px solid #b7b7b7; + background-color: white; + position: absolute; + right:0px; + z-index: 100; +} + +.Networking-keyPanelOption{ + color: #707070; + padding-left:15px; + min-height: 30px; + font-size: 12px; + display:flex; + align-items: center; +} + +.Networking-keySymbol{ + background-color: #848992; + color: white; + border-radius: 50%; + width: 20px; + height: 20px; + font-size: 14px; + display: flex; + justify-content: center; + align-items: center; +} + +.Networking-keySymbolLabel{ + font-size: 12px; + padding-left: 15px; + color: #707070 +} diff --git a/awx/ui/client/features/networking/networking.controller.js b/awx/ui/client/features/networking/networking.controller.js index 10bb7f40e3..f330d30ac1 100644 --- a/awx/ui/client/features/networking/networking.controller.js +++ b/awx/ui/client/features/networking/networking.controller.js @@ -7,30 +7,51 @@ function NetworkingController (models, $state, $scope, strings) { vm.strings = strings; vm.panelTitle = `${strings.get('state.BREADCRUMB_LABEL')} | ${inventory.name}`; - vm.hostDetail = false; - - vm.panelIsExpanded = false; - - vm.togglePanel = () => { - vm.panelIsExpanded = !vm.panelIsExpanded; - }; + vm.hostDetail = {}; + vm.rightPanelIsExpanded = false; + vm.leftPanelIsExpanded = true; + vm.jumpToPanelExpanded = false; + vm.keyPanelExpanded = false; vm.close = () => { $state.go('inventories'); }; - $scope.$on('closeDetailsPanel', () => { - vm.panelIsExpanded = false; + vm.redirectButtonHandler = (string) => { + $scope.$broadcast('toolbarButtonEvent', string); + }; + + vm.jumpTo = (string) => { + vm.jumpToPanelExpanded = !vm.jumpToPanelExpanded; + vm.keyPanelExpanded = false; + if (string) { + $scope.$broadcast('jumpTo', string); + } + }; + + vm.key = () => { + vm.keyPanelExpanded = !vm.keyPanelExpanded; + vm.jumpToPanelExpanded = false; + }; + + $scope.$on('overall_toolbox_collapsed', () => { + vm.leftPanelIsExpanded = !vm.leftPanelIsExpanded; }); - $scope.$on('retrievedHostData', (e, hostData, expand) => { + $scope.$on('closeDetailsPanel', () => { + vm.rightPanelIsExpanded = false; + vm.jumpToPanelExpanded = false; + vm.keyPanelExpanded = false; + }); + + $scope.$on('showDetails', (e, data, expand) => { if (expand) { - vm.panelIsExpanded = true; + vm.rightPanelIsExpanded = true; } - if (_.isEmpty(hostData)) { - $scope.hostDetail = false; + if (!_.has(data, 'host_id')) { + $scope.item = data; } else { - $scope.hostDetail = hostData; + $scope.item = data; } }); } diff --git a/awx/ui/client/features/networking/networking.view.html b/awx/ui/client/features/networking/networking.view.html index 9153809aad..6d225101c4 100644 --- a/awx/ui/client/features/networking/networking.view.html +++ b/awx/ui/client/features/networking/networking.view.html @@ -1,91 +1,180 @@ -