From 0266ed16baf74f0a2ed9b5a85817d72ed3f0e69a Mon Sep 17 00:00:00 2001 From: Sebastian Florek Date: Thu, 19 May 2016 14:59:37 +0200 Subject: [PATCH] Improve dashboard state transitions and fix dependency issues --- .../backend/resource/service/servicelist.go | 15 +++++++++++ src/app/frontend/chrome/chrome.html | 2 +- .../resourcecard/resourcecardcolumn.scss | 8 ++++-- .../deploymentlist_stateconfig.js | 2 ++ .../frontend/podlist/podlist_stateconfig.js | 2 ++ .../replicasetdetail_controller.js | 1 + .../replicasetdetail_stateconfig.js | 2 ++ .../replicasetlist_stateconfig.js | 2 ++ .../replicationcontrollerlist_stateconfig.js | 2 ++ .../servicedetail/servicedetail_controller.js | 1 + .../servicedetail/servicedetail_module.js | 4 +++ .../servicedetail_stateconfig.js | 2 ++ .../servicelist/servicelist_controller.js | 1 + .../servicelist/servicelist_stateconfig.js | 2 ++ src/app/frontend/workloads/workloads.html | 26 ++++++++++++------- .../frontend/workloads/workloads_module.js | 6 ++--- 16 files changed, 63 insertions(+), 15 deletions(-) diff --git a/src/app/backend/resource/service/servicelist.go b/src/app/backend/resource/service/servicelist.go index d4f032edb..3ea324f4c 100644 --- a/src/app/backend/resource/service/servicelist.go +++ b/src/app/backend/resource/service/servicelist.go @@ -69,3 +69,18 @@ func GetServiceList(client client.Interface) (*ServiceList, error) { return serviceList, nil } + +// GetServiceListFromChannels returns a list of all services in the cluster. +func GetServiceListFromChannels(channels *common.ResourceChannels) (*ServiceList, error) { + services := <-channels.ServiceList.List + if err := <-channels.ServiceList.Error; err != nil { + return nil, err + } + + serviceList := &ServiceList{Services: make([]Service, 0)} + for _, service := range services.Items { + serviceList.Services = append(serviceList.Services, ToService(&service)) + } + + return serviceList, nil +} diff --git a/src/app/frontend/chrome/chrome.html b/src/app/frontend/chrome/chrome.html index 19a894259..14f6b8109 100644 --- a/src/app/frontend/chrome/chrome.html +++ b/src/app/frontend/chrome/chrome.html @@ -16,7 +16,7 @@ limitations under the License.
- +

diff --git a/src/app/frontend/common/components/resourcecard/resourcecardcolumn.scss b/src/app/frontend/common/components/resourcecard/resourcecardcolumn.scss index e010e2964..808dcae51 100644 --- a/src/app/frontend/common/components/resourcecard/resourcecardcolumn.scss +++ b/src/app/frontend/common/components/resourcecard/resourcecardcolumn.scss @@ -49,9 +49,13 @@ kd-resource-card-column { &:last-child { padding-right: $baseline-grid; } +} - &:first-child { - padding-left: $baseline-grid; +.kd-resource-card-list-with-statuses { + kd-resource-card-column { + &:first-child { + padding-left: $baseline-grid; + } } } diff --git a/src/app/frontend/deploymentlist/deploymentlist_stateconfig.js b/src/app/frontend/deploymentlist/deploymentlist_stateconfig.js index dc64b7ab0..53a2d6478 100644 --- a/src/app/frontend/deploymentlist/deploymentlist_stateconfig.js +++ b/src/app/frontend/deploymentlist/deploymentlist_stateconfig.js @@ -16,6 +16,7 @@ import {actionbarViewName} from 'chrome/chrome_state'; import {breadcrumbsConfig} from 'common/components/breadcrumbs/breadcrumbs_component'; import {DeploymentListController} from './deploymentlist_controller'; import {stateName, stateUrl} from './deploymentlist_state'; +import {stateName as workloadsState} from 'workloads/workloads_state'; import {DeploymentListActionBarController} from './deploymentlistactionbar_controller'; /** @@ -33,6 +34,7 @@ export default function stateConfig($stateProvider) { data: { [breadcrumbsConfig]: { 'label': 'Deployments', + 'parent': workloadsState, }, }, views: { diff --git a/src/app/frontend/podlist/podlist_stateconfig.js b/src/app/frontend/podlist/podlist_stateconfig.js index b3e240fdb..d62a83c53 100644 --- a/src/app/frontend/podlist/podlist_stateconfig.js +++ b/src/app/frontend/podlist/podlist_stateconfig.js @@ -16,6 +16,7 @@ import {actionbarViewName} from 'chrome/chrome_state'; import {breadcrumbsConfig} from 'common/components/breadcrumbs/breadcrumbs_component'; import {PodListController} from './podlist_controller'; import {stateName, stateUrl} from './podlist_state'; +import {stateName as workloadsState} from 'workloads/workloads_state'; import {PodListActionBarController} from './podlistactionbar_controller'; /** @@ -33,6 +34,7 @@ export default function stateConfig($stateProvider) { data: { [breadcrumbsConfig]: { 'label': 'Pods', + 'parent': workloadsState, }, }, views: { diff --git a/src/app/frontend/replicasetdetail/replicasetdetail_controller.js b/src/app/frontend/replicasetdetail/replicasetdetail_controller.js index 0042232ce..3040f87d7 100644 --- a/src/app/frontend/replicasetdetail/replicasetdetail_controller.js +++ b/src/app/frontend/replicasetdetail/replicasetdetail_controller.js @@ -18,6 +18,7 @@ export class ReplicaSetDetailController { /** * @param {!backendApi.ReplicaSetDetail} replicaSetDetail + * @ngInject */ constructor(replicaSetDetail) { /** @export {!backendApi.ReplicaSetDetail} */ diff --git a/src/app/frontend/replicasetdetail/replicasetdetail_stateconfig.js b/src/app/frontend/replicasetdetail/replicasetdetail_stateconfig.js index 0a1f0f392..ea34bb68f 100644 --- a/src/app/frontend/replicasetdetail/replicasetdetail_stateconfig.js +++ b/src/app/frontend/replicasetdetail/replicasetdetail_stateconfig.js @@ -52,6 +52,7 @@ export default function stateConfig($stateProvider) { * @param {!./replicasetdetail_state.StateParams} $stateParams * @param {!angular.$resource} $resource * @return {!angular.Resource} + * @ngInject */ export function getReplicaSetDetailResource($resource, $stateParams) { return $resource(`api/v1/replicasets/${$stateParams.namespace}/${$stateParams.replicaSet}`); @@ -60,6 +61,7 @@ export function getReplicaSetDetailResource($resource, $stateParams) { /** * @param {!angular.Resource} replicaSetDetailResource * @return {!angular.$q.Promise} + * @ngInject */ export function getReplicaSetDetail(replicaSetDetailResource) { return replicaSetDetailResource.get().$promise; diff --git a/src/app/frontend/replicasetlist/replicasetlist_stateconfig.js b/src/app/frontend/replicasetlist/replicasetlist_stateconfig.js index f74f1b573..23c2431e1 100644 --- a/src/app/frontend/replicasetlist/replicasetlist_stateconfig.js +++ b/src/app/frontend/replicasetlist/replicasetlist_stateconfig.js @@ -16,6 +16,7 @@ import {actionbarViewName} from 'chrome/chrome_state'; import {breadcrumbsConfig} from 'common/components/breadcrumbs/breadcrumbs_component'; import {ReplicaSetListController} from './replicasetlist_controller'; import {stateName, stateUrl} from './replicasetlist_state'; +import {stateName as workloadsState} from 'workloads/workloads_state'; import ReplicaSetListActionBarController from './replicasetlistactionbar_controller'; /** @@ -33,6 +34,7 @@ export default function stateConfig($stateProvider) { data: { [breadcrumbsConfig]: { 'label': 'Replica Sets', + 'parent': workloadsState, }, }, views: { diff --git a/src/app/frontend/replicationcontrollerlist/replicationcontrollerlist_stateconfig.js b/src/app/frontend/replicationcontrollerlist/replicationcontrollerlist_stateconfig.js index eb713eec5..4cd218210 100644 --- a/src/app/frontend/replicationcontrollerlist/replicationcontrollerlist_stateconfig.js +++ b/src/app/frontend/replicationcontrollerlist/replicationcontrollerlist_stateconfig.js @@ -16,6 +16,7 @@ import {actionbarViewName} from 'chrome/chrome_state'; import {breadcrumbsConfig} from 'common/components/breadcrumbs/breadcrumbs_component'; import {ReplicationControllerListController} from './replicationcontrollerlist_controller'; import {stateName, stateUrl} from './replicationcontrollerlist_state'; +import {stateName as workloadsState} from 'workloads/workloads_state'; import ReplicationControllerListActionBarController from './replicationcontrollerlistactionbar_controller'; /** @@ -33,6 +34,7 @@ export default function stateConfig($stateProvider) { data: { [breadcrumbsConfig]: { 'label': 'Replication Controllers', + 'parent': workloadsState, }, }, views: { diff --git a/src/app/frontend/servicedetail/servicedetail_controller.js b/src/app/frontend/servicedetail/servicedetail_controller.js index 3dd590d68..db39a003f 100644 --- a/src/app/frontend/servicedetail/servicedetail_controller.js +++ b/src/app/frontend/servicedetail/servicedetail_controller.js @@ -18,6 +18,7 @@ export class ServiceDetailController { /** * @param {!backendApi.ServiceDetail} serviceDetail + * @ngInject */ constructor(serviceDetail) { /** @export {!backendApi.ServiceDetail} */ diff --git a/src/app/frontend/servicedetail/servicedetail_module.js b/src/app/frontend/servicedetail/servicedetail_module.js index aac8db9a2..4b4fed4c8 100644 --- a/src/app/frontend/servicedetail/servicedetail_module.js +++ b/src/app/frontend/servicedetail/servicedetail_module.js @@ -13,6 +13,7 @@ // limitations under the License. import componentsModule from './../common/components/components_module'; +import filtersModule from 'common/filters/filters_module'; import stateConfig from './servicedetail_stateconfig'; import {serviceInfoComponent} from './servicedetailinfo_component'; @@ -26,6 +27,9 @@ export default angular 'kubernetesDashboard.serviceDetail', [ 'ngMaterial', + 'ngResource', + 'ui.router', + filtersModule.name, componentsModule.name, ]) .config(stateConfig) diff --git a/src/app/frontend/servicedetail/servicedetail_stateconfig.js b/src/app/frontend/servicedetail/servicedetail_stateconfig.js index 65e581885..bb6d66d87 100644 --- a/src/app/frontend/servicedetail/servicedetail_stateconfig.js +++ b/src/app/frontend/servicedetail/servicedetail_stateconfig.js @@ -52,6 +52,7 @@ export default function stateConfig($stateProvider) { * @param {!./servicedetail_state.StateParams} $stateParams * @param {!angular.$resource} $resource * @return {!angular.Resource} + * @ngInject */ export function getServiceDetailResource($stateParams, $resource) { return $resource(`api/v1/services/${$stateParams.namespace}/${$stateParams.service}`); @@ -60,6 +61,7 @@ export function getServiceDetailResource($stateParams, $resource) { /** * @param {!angular.Resource} serviceDetailResource * @return {!angular.$q.Promise} + * @ngInject */ export function resolveServiceDetail(serviceDetailResource) { return serviceDetailResource.get().$promise; diff --git a/src/app/frontend/servicelist/servicelist_controller.js b/src/app/frontend/servicelist/servicelist_controller.js index 9e413173e..a2a702fca 100644 --- a/src/app/frontend/servicelist/servicelist_controller.js +++ b/src/app/frontend/servicelist/servicelist_controller.js @@ -18,6 +18,7 @@ export class ServiceListController { /** * @param {!backendApi.ServiceList} serviceList + * @ngInject */ constructor(serviceList) { /** @export {!backendApi.ServiceList} */ diff --git a/src/app/frontend/servicelist/servicelist_stateconfig.js b/src/app/frontend/servicelist/servicelist_stateconfig.js index 3f74cfb54..a57116867 100644 --- a/src/app/frontend/servicelist/servicelist_stateconfig.js +++ b/src/app/frontend/servicelist/servicelist_stateconfig.js @@ -49,6 +49,7 @@ export default function stateConfig($stateProvider) { /** * @param {!angular.$resource} $resource * @return {!angular.Resource} + * @ngInject */ export function getServiceListResource($resource) { return $resource('api/v1/services'); @@ -57,6 +58,7 @@ export function getServiceListResource($resource) { /** * @param {!angular.Resource} serviceListResource * @return {!angular.$q.Promise} + * @ngInject */ export function resolveServiceList(serviceListResource) { return serviceListResource.get().$promise; diff --git a/src/app/frontend/workloads/workloads.html b/src/app/frontend/workloads/workloads.html index c1d42ac0d..98c2b1a7d 100644 --- a/src/app/frontend/workloads/workloads.html +++ b/src/app/frontend/workloads/workloads.html @@ -14,9 +14,11 @@ See the License for the specific language governing permissions and limitations under the License. --> - + - Deployments + + Deployments + @@ -24,9 +26,11 @@ limitations under the License. - + - Replica Sets + + Replica Sets + @@ -34,20 +38,24 @@ limitations under the License. - + - Replication Controllers + + Replication Controllers + + replication-controllers="$ctrl.workloads.replicationControllerList.replicationControllers"> - + - Pods + + Pods + diff --git a/src/app/frontend/workloads/workloads_module.js b/src/app/frontend/workloads/workloads_module.js index b63fd6445..57f93d52b 100644 --- a/src/app/frontend/workloads/workloads_module.js +++ b/src/app/frontend/workloads/workloads_module.js @@ -12,12 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -import stateConfig from './workloads_stateconfig'; -import filtersModule from 'common/filters/filters_module'; import componentsModule from 'common/components/components_module'; +import deploymentListModule from 'deploymentlist/deploymentlist_module'; +import filtersModule from 'common/filters/filters_module'; import replicationControllerListModule from 'replicationcontrollerlist/replicationcontrollerlist_module'; import replicaSetListModule from 'replicasetlist/replicasetlist_module'; -import deploymentListModule from 'deploymentlist/deploymentlist_module'; +import stateConfig from './workloads_stateconfig'; /** * Module with a view that displays resources categorized as workloads, e.g., Replica Sets or -- GitLab