diff --git a/i18n/messages-en.xtb b/i18n/messages-en.xtb index 5c986a8ef3b91f4615d407792781e1140cf840ee..6d69f7cd4d76f1fe54d0491661b91afadf96ddd5 100644 --- a/i18n/messages-en.xtb +++ b/i18n/messages-en.xtb @@ -524,4 +524,23 @@ value from ConfigMap / Ready Services + Namespace + Name + Namespace + Labels + Pods + Age + Images + Namespace + Namespace + Namespace + Namespace + Namespace + Namespace + Namespace + Namespace + Namespace + Namespace + Namespace + Services \ No newline at end of file diff --git a/i18n/messages-ja.xtb b/i18n/messages-ja.xtb index e8cc02f9284fd84e3b162e563afa57c4a385e348..7b9f7c981581091d18ee17c7743599562f3e5099 100644 --- a/i18n/messages-ja.xtb +++ b/i18n/messages-ja.xtb @@ -712,5 +712,24 @@ - value from ConfigMap / Ready + Namespace + Namespace + Namespace + Namespace + Name + Namespace + Labels + Pods + Age + Images + Namespace + Namespace + Namespace + Namespace + Namespace + Namespace + Namespace + Namespace + Services Services \ No newline at end of file diff --git a/src/app/frontend/common/namespace/namespace_module.js b/src/app/frontend/common/namespace/namespace_module.js index c32e15c84fed6213621f075465ec1d0fbc540197..363eaff066376083ad5511558cf5c43fc3b7a370 100644 --- a/src/app/frontend/common/namespace/namespace_module.js +++ b/src/app/frontend/common/namespace/namespace_module.js @@ -1,4 +1,3 @@ - // Copyright 2015 Google Inc. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import {NamespaceService} from './namespace_service'; import {namespaceSelectComponent} from './namespaceselect_component'; /** @@ -25,4 +25,5 @@ export default angular 'ngMaterial', 'ngResource', ]) - .component('kdNamespaceSelect', namespaceSelectComponent); + .component('kdNamespaceSelect', namespaceSelectComponent) + .service('kdNamespaceService', NamespaceService); diff --git a/src/app/frontend/common/namespace/namespace_service.js b/src/app/frontend/common/namespace/namespace_service.js new file mode 100644 index 0000000000000000000000000000000000000000..88dd2cd6c8c22c8aa023007e56bc67123bb83862 --- /dev/null +++ b/src/app/frontend/common/namespace/namespace_service.js @@ -0,0 +1,41 @@ +// Copyright 2015 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +/** + * Service class for registering namespace. + * @final + */ +export class NamespaceService { + /** + * @ngInject + */ + constructor() { + /** @private {boolean} */ + this.multipleNamespacesSelected_ = true; + } + + /** + * Getter for multipleNamespacesSelected_ flag. + * @return {boolean} + */ + areMultipleNamespacesSelected() { return this.multipleNamespacesSelected_; } + + /** + * Switches the multipleNamespacesSelected flag. + * @param {boolean} multipleSelected + */ + setMultipleNamespacesSelected(multipleSelected) { + this.multipleNamespacesSelected_ = multipleSelected; + } +} diff --git a/src/app/frontend/common/namespace/namespaceselect_component.js b/src/app/frontend/common/namespace/namespaceselect_component.js index 34199c2f5454fbfd044b261f5ba22b185a3461fb..32055c38842ebb548bdd7468b239d9d871e3d3cc 100644 --- a/src/app/frontend/common/namespace/namespaceselect_component.js +++ b/src/app/frontend/common/namespace/namespaceselect_component.js @@ -25,9 +25,10 @@ export class NamespaceSelectController { * @param {!angular.$resource} $resource * @param {!ui.router.$state} $state * @param {!angular.Scope} $scope + * @param {!./namespace_service.NamespaceService} kdNamespaceService * @ngInject */ - constructor($resource, $state, $scope) { + constructor($resource, $state, $scope, kdNamespaceService) { /** * Initialized with all namespaces on first open. * @export {!Array} @@ -49,6 +50,11 @@ export class NamespaceSelectController { */ this.selectedNamespace; + /** + * @private {!./namespace_service.NamespaceService} + */ + this.namespaceService_ = kdNamespaceService; + /** @private {!angular.$resource} */ this.resource_ = $resource; @@ -85,16 +91,20 @@ export class NamespaceSelectController { if (this.namespacesInitialized_) { if (this.namespaces.indexOf(newNamespace) >= 0) { this.selectedNamespace = newNamespace; + this.namespaceService_.setMultipleNamespacesSelected(false); } else { this.selectedNamespace = NAMESPACE_NOT_SELECTED; + this.namespaceService_.setMultipleNamespacesSelected(true); } this.changeNamespace(); } else { this.namespaces = [newNamespace]; this.selectedNamespace = newNamespace; + this.namespaceService_.setMultipleNamespacesSelected(false); } } else { this.selectedNamespace = NAMESPACE_NOT_SELECTED; + this.namespaceService_.setMultipleNamespacesSelected(true); } } } diff --git a/src/app/frontend/configmaplist/configmapcard.html b/src/app/frontend/configmaplist/configmapcard.html index cf6ccabdca3df8cb739406cb418f42af1b56c49c..ecafc1d63ab5b817868cee26c314533105d831a4 100644 --- a/src/app/frontend/configmaplist/configmapcard.html +++ b/src/app/frontend/configmaplist/configmapcard.html @@ -24,6 +24,12 @@ limitations under the License. + +
+ + +
+
diff --git a/src/app/frontend/configmaplist/configmapcard_component.js b/src/app/frontend/configmaplist/configmapcard_component.js index 0429a6688adc6baec0a5089b578db3e4f0012af1..a073f35a2659b926e1a07257f1b89dd204901a99 100644 --- a/src/app/frontend/configmaplist/configmapcard_component.js +++ b/src/app/frontend/configmaplist/configmapcard_component.js @@ -24,9 +24,10 @@ export default class ConfigMapCardController { /** * @param {!ui.router.$state} $state * @param {!angular.$interpolate} $interpolate + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService * @ngInject */ - constructor($state, $interpolate) { + constructor($state, $interpolate, kdNamespaceService) { /** * Initialized from the scope. * @export {!backendApi.ConfigMap} @@ -39,10 +40,21 @@ export default class ConfigMapCardController { /** @private */ this.interpolate_ = $interpolate; + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } + /** * @return {string} * @export diff --git a/src/app/frontend/configmaplist/configmapcardlist.html b/src/app/frontend/configmaplist/configmapcardlist.html index d5f239402edf449eff38079d54518853585bc0b9..63aa7d8e08e4218ee95680d23fd7b4bc43ba54f0 100644 --- a/src/app/frontend/configmaplist/configmapcardlist.html +++ b/src/app/frontend/configmaplist/configmapcardlist.html @@ -19,6 +19,9 @@ limitations under the License. {{::$ctrl.i18n.MSG_CONFIG_MAP_LIST_HEADER_NAME}} + + {{::$ctrl.i18n.MSG_CONFIGMAP_LIST_NAMESPACE_LABEL}} + {{::$ctrl.i18n.MSG_CONFIG_MAP_LIST_HEADER_LABELS}} diff --git a/src/app/frontend/configmaplist/configmapcardlist_component.js b/src/app/frontend/configmaplist/configmapcardlist_component.js index 4cbb78cede580055ca8812a031a0b786c1c84fd4..248f03b73e8c478b1bf3a8d201e22bd803333f45 100644 --- a/src/app/frontend/configmaplist/configmapcardlist_component.js +++ b/src/app/frontend/configmaplist/configmapcardlist_component.js @@ -19,12 +19,24 @@ */ export class ConfigMapCardListController { /** + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService * @ngInject */ - constructor() { + constructor(kdNamespaceService) { + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } } /** @@ -41,10 +53,12 @@ export const configMapCardListComponent = { }; const i18n = { - /** @export {string} @desc Pet set list header: name. */ + /** @export {string} @desc Config map list header: name. */ MSG_CONFIG_MAP_LIST_HEADER_NAME: goog.getMsg('Name'), - /** @export {string} @desc Pet set list header: labels. */ + /** @export {string} @desc Config map list header: namespace. */ + MSG_CONFIG_MAP_LIST_NAMESPACE_LABEL: goog.getMsg('Namespace'), + /** @export {string} @desc Config map list header: labels. */ MSG_CONFIG_MAP_LIST_HEADER_LABELS: goog.getMsg('Labels'), - /** @export {string} @desc Pet set list header: age. */ + /** @export {string} @desc Config map list header: age. */ MSG_CONFIG_MAP_LIST_HEADER_AGE: goog.getMsg('Age'), }; diff --git a/src/app/frontend/configmaplist/configmaplist_module.js b/src/app/frontend/configmaplist/configmaplist_module.js index 4a849f2fa8e8f65df97e5777eba0ec6a91b18463..135d57f46f4e12077338e353e1c1913b490fd299 100644 --- a/src/app/frontend/configmaplist/configmaplist_module.js +++ b/src/app/frontend/configmaplist/configmaplist_module.js @@ -17,6 +17,7 @@ import filtersModule from 'common/filters/filters_module'; import componentsModule from 'common/components/components_module'; import chromeModule from 'chrome/chrome_module'; import configMapDetailModule from 'configmapdetail/configmapdetail_module'; +import namespaceModule from 'common/namespace/namespace_module'; import {configMapCardComponent} from './configmapcard_component'; import {configMapCardListComponent} from './configmapcardlist_component'; @@ -34,6 +35,7 @@ export default angular componentsModule.name, configMapDetailModule.name, chromeModule.name, + namespaceModule.name, ]) .config(stateConfig) .component('kdConfigMapCardList', configMapCardListComponent) diff --git a/src/app/frontend/daemonsetlist/daemonsetcard.html b/src/app/frontend/daemonsetlist/daemonsetcard.html index a11ead84d5b157a5a9df6126c4b89ac63f322222..fc30c8b333b40e37cc0d7458ff35aca99fa923e9 100644 --- a/src/app/frontend/daemonsetlist/daemonsetcard.html +++ b/src/app/frontend/daemonsetlist/daemonsetcard.html @@ -35,6 +35,12 @@ limitations under the License. + +
+ + +
+
diff --git a/src/app/frontend/daemonsetlist/daemonsetcard_component.js b/src/app/frontend/daemonsetlist/daemonsetcard_component.js index 7b04d73fcc3b7f2f05b5db9d61dfbd5d0bcc46d3..bc1ac3133f182fabd8c22d2a7c2f38ef52242b10 100644 --- a/src/app/frontend/daemonsetlist/daemonsetcard_component.js +++ b/src/app/frontend/daemonsetlist/daemonsetcard_component.js @@ -24,9 +24,10 @@ export class DaemonSetCardController { /** * @param {!ui.router.$state} $state * @param {!angular.$interpolate} $interpolate + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService * @ngInject */ - constructor($state, $interpolate) { + constructor($state, $interpolate, kdNamespaceService) { /** @export {!backendApi.DaemonSet} - Initialized from binding. */ this.daemonSet; @@ -36,10 +37,21 @@ export class DaemonSetCardController { /** @private {!angular.$interpolate} */ this.interpolate_ = $interpolate; + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } + /** * @return {string} * @export diff --git a/src/app/frontend/daemonsetlist/daemonsetcardlist.html b/src/app/frontend/daemonsetlist/daemonsetcardlist.html index 645f083015ed1d5d2cb7d013ef8554d86ac64f9c..51ee1a6ef8db60d02674f98f227cac8a2d7c1013 100644 --- a/src/app/frontend/daemonsetlist/daemonsetcardlist.html +++ b/src/app/frontend/daemonsetlist/daemonsetcardlist.html @@ -19,6 +19,9 @@ limitations under the License. {{::$ctrl.i18n.MSG_DAEMON_SET_LIST_NAME_LABEL}} + + {{::$ctrl.i18n.MSG_DAEMON_SET_LIST_NAMESPACE_LABEL}} + {{::$ctrl.i18n.MSG_DAEMON_SET_LIST_LABELS_LABEL}} diff --git a/src/app/frontend/daemonsetlist/daemonsetcardlist_component.js b/src/app/frontend/daemonsetlist/daemonsetcardlist_component.js index 78e81b93be0f23d3aa98b62c093d556a100ff154..dc83b49ac12d48d4b2a5b6bb343e41a29020758a 100644 --- a/src/app/frontend/daemonsetlist/daemonsetcardlist_component.js +++ b/src/app/frontend/daemonsetlist/daemonsetcardlist_component.js @@ -16,11 +16,25 @@ * @final */ export class DaemonSetCardListController { - /** @ngInject */ - constructor() { + /** + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService + * @ngInject + */ + constructor(kdNamespaceService) { + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } } /** @@ -47,6 +61,9 @@ const i18n = { /** @export {string} @desc Label 'Name' which appears as a column label in the table of daemon sets (daemon set list view). */ MSG_DAEMON_SET_LIST_NAME_LABEL: goog.getMsg('Name'), + /** @export {string} @desc Label 'Namespace' which appears as a column label in the + table of daemon sets (daemon set list view). */ + MSG_DAEMON_SET_LIST_NAMESPACE_LABEL: goog.getMsg('Namespace'), /** @export {string} @desc Label 'Labels' which appears as a column label in the table of daemon sets (daemon set list view). */ MSG_DAEMON_SET_LIST_LABELS_LABEL: goog.getMsg('Labels'), diff --git a/src/app/frontend/daemonsetlist/daemonsetlist_module.js b/src/app/frontend/daemonsetlist/daemonsetlist_module.js index 7f6b61412892af0007e02dd84aa927928ecda104..ac37a41ceab4762b688c3efc14d156ffdd05a687 100644 --- a/src/app/frontend/daemonsetlist/daemonsetlist_module.js +++ b/src/app/frontend/daemonsetlist/daemonsetlist_module.js @@ -15,6 +15,7 @@ import componentsModule from 'common/components/components_module'; import chromeModule from 'chrome/chrome_module'; import filtersModule from 'common/filters/filters_module'; +import namespaceModule from 'common/namespace/namespace_module'; import stateConfig from './daemonsetlist_stateconfig'; import {daemonSetCardListComponent} from './daemonsetcardlist_component'; import {daemonSetCardComponent} from './daemonsetcard_component'; @@ -33,6 +34,7 @@ export default angular 'ngResource', 'ui.router', filtersModule.name, + namespaceModule.name, componentsModule.name, chromeModule.name, daemonSetDetailModule.name, diff --git a/src/app/frontend/deploymentlist/deploymentcard.html b/src/app/frontend/deploymentlist/deploymentcard.html index 65368fed6bc48e728a1eeb0c58b4996c15a8edb1..55b10286ddcd5246c870406c4fd7be153d639137 100644 --- a/src/app/frontend/deploymentlist/deploymentcard.html +++ b/src/app/frontend/deploymentlist/deploymentcard.html @@ -41,6 +41,12 @@ limitations under the License. + +
+ + +
+
diff --git a/src/app/frontend/deploymentlist/deploymentcard_component.js b/src/app/frontend/deploymentlist/deploymentcard_component.js index 5bd121d2064dce2f3d8d90bb93f79b94f644c17e..e24c61ca00186197456e3a0d65f8d5a7a814522e 100644 --- a/src/app/frontend/deploymentlist/deploymentcard_component.js +++ b/src/app/frontend/deploymentlist/deploymentcard_component.js @@ -24,9 +24,10 @@ export default class DeploymentCardController { /** * @param {!ui.router.$state} $state * @param {!angular.$interpolate} $interpolate + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService * @ngInject */ - constructor($state, $interpolate) { + constructor($state, $interpolate, kdNamespaceService) { /** * Initialized from the scope. * @export {!backendApi.Deployment} @@ -39,10 +40,21 @@ export default class DeploymentCardController { /** @private {!angular.$interpolate} */ this.interpolate_ = $interpolate; + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } + /** * @return {string} * @export diff --git a/src/app/frontend/deploymentlist/deploymentcardlist.html b/src/app/frontend/deploymentlist/deploymentcardlist.html index 8539c05260f56b38977fe1ebf76997c4ba8d5c95..ba7c1f4839bb44d282711942345e1d3be5331392 100644 --- a/src/app/frontend/deploymentlist/deploymentcardlist.html +++ b/src/app/frontend/deploymentlist/deploymentcardlist.html @@ -19,6 +19,9 @@ limitations under the License. {{::$ctrl.i18n.MSG_DEPLOYMENT_LIST_NAME_LABEL}} + + {{::$ctrl.i18n.MSG_DEPLOYMENT_LIST_NAMESPACE_LABEL}} + {{::$ctrl.i18n.MSG_DEPLOYMENT_LIST_LABELS_LABEL}} diff --git a/src/app/frontend/deploymentlist/deploymentcardlist_component.js b/src/app/frontend/deploymentlist/deploymentcardlist_component.js index 4a65e5c0c9d9c112c76e9eef88d367fceef8e464..39b5da82d3a3c5bad109c4ef1300e693cae1f175 100644 --- a/src/app/frontend/deploymentlist/deploymentcardlist_component.js +++ b/src/app/frontend/deploymentlist/deploymentcardlist_component.js @@ -16,8 +16,25 @@ * @final */ class DeploymentCardListController { - /** @ngInject */ - constructor() { this.i18n = i18n; } + /** + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService + * @ngInject + */ + constructor(kdNamespaceService) { + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + + /** @export */ + this.i18n = i18n; + } + + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } } /** @@ -37,6 +54,9 @@ const i18n = { /** @export {string} @desc Label 'Name' which appears as a column label in the table of deployments (deployment list view). */ MSG_DEPLOYMENT_LIST_NAME_LABEL: goog.getMsg('Name'), + /** @export {string} @desc Label 'Namespace' which appears as a column label in the + table of deployments (deployment list view). */ + MSG_DEPLOYMENT_LIST_NAMESPACE_LABEL: goog.getMsg('Namespace'), /** @export {string} @desc Label 'Labels' which appears as a column label in the table of deployments (deployment list view). */ MSG_DEPLOYMENT_LIST_LABELS_LABEL: goog.getMsg('Labels'), diff --git a/src/app/frontend/deploymentlist/deploymentlist_module.js b/src/app/frontend/deploymentlist/deploymentlist_module.js index f7a5f78a65ea3a97ec2b942e8c0dc1896489c8b0..a07359ebcb6c8479a9cf0b70be8bb72b46161fd0 100644 --- a/src/app/frontend/deploymentlist/deploymentlist_module.js +++ b/src/app/frontend/deploymentlist/deploymentlist_module.js @@ -15,6 +15,7 @@ import stateConfig from './deploymentlist_stateconfig'; import filtersModule from 'common/filters/filters_module'; import componentsModule from 'common/components/components_module'; +import namespaceModule from 'common/namespace/namespace_module'; import chromeModule from 'chrome/chrome_module'; import {deploymentCardComponent} from './deploymentcard_component'; import {deploymentCardListComponent} from './deploymentcardlist_component'; @@ -34,6 +35,7 @@ export default angular 'ui.router', filtersModule.name, componentsModule.name, + namespaceModule.name, chromeModule.name, deploymentDetailModule.name, ]) diff --git a/src/app/frontend/joblist/jobcard.html b/src/app/frontend/joblist/jobcard.html index 493ce19232a1bc861b1b75369a023a152e02b791..e5b5e375489e739e50f8dd925351e623a4945f0d 100644 --- a/src/app/frontend/joblist/jobcard.html +++ b/src/app/frontend/joblist/jobcard.html @@ -41,6 +41,12 @@ limitations under the License. + +
+ + +
+
diff --git a/src/app/frontend/joblist/jobcard_component.js b/src/app/frontend/joblist/jobcard_component.js index 08cc2ca2e00d39b221436c514ac0c2cf50aa30f1..3c90808ce6b37079d70ef7d2d274850b65dfe016 100644 --- a/src/app/frontend/joblist/jobcard_component.js +++ b/src/app/frontend/joblist/jobcard_component.js @@ -23,9 +23,10 @@ import {stateName} from 'jobdetail/jobdetail_state'; export default class JobCardController { /** * @param {!ui.router.$state} $state + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService * @ngInject */ - constructor($state) { + constructor($state, kdNamespaceService) { /** * Initialized from the scope. * @export {!backendApi.Job} @@ -34,6 +35,17 @@ export default class JobCardController { /** @private {!ui.router.$state} */ this.state_ = $state; + + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + } + + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); } /** diff --git a/src/app/frontend/joblist/jobcardlist.html b/src/app/frontend/joblist/jobcardlist.html index 60f1c0dde5df9fb9b9ad854fd9d603860796dedc..a4ae06da5cb7088a92fcbd01565d85a4ac945383 100644 --- a/src/app/frontend/joblist/jobcardlist.html +++ b/src/app/frontend/joblist/jobcardlist.html @@ -17,19 +17,22 @@ limitations under the License. - Name + {{::$ctrl.i18n.MSG_JOB_LIST_NAME_LABEL}} + + + {{::$ctrl.i18n.MSG_JOB_LIST_NAMESPACE_LABEL}} - Labels + {{::$ctrl.i18n.MSG_JOB_LIST_LABELS_LABEL}} - Pods + {{::$ctrl.i18n.MSG_JOB_LIST_PODS_LABEL}} - Age + {{::$ctrl.i18n.MSG_JOB_LIST_AGE_LABEL}} - Images + {{::$ctrl.i18n.MSG_JOB_LIST_IMAGES_LABEL}} diff --git a/src/app/frontend/joblist/jobcardlist_component.js b/src/app/frontend/joblist/jobcardlist_component.js index ef35eaae8045a45b494bfb20ab90c9a62c09d79d..d4468abf3d7a2296c8f409dcbf1cea7d88246e31 100644 --- a/src/app/frontend/joblist/jobcardlist_component.js +++ b/src/app/frontend/joblist/jobcardlist_component.js @@ -12,6 +12,31 @@ // See the License for the specific language governing permissions and // limitations under the License. +/** + * @final + */ +class JobListController { + /** + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService + * @ngInject + */ + constructor(kdNamespaceService) { + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + + /** @export */ + this.i18n = i18n; + } + + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } +} + /** * @return {!angular.Component} */ @@ -23,4 +48,26 @@ export const jobCardListComponent = { 'jobListResource': '<', }, templateUrl: 'joblist/jobcardlist.html', + controller: JobListController, +}; + +const i18n = { + /** @export {string} @desc Label 'Name' which appears as a column label in the table of + jobs (Job list view). */ + MSG_JOB_LIST_NAME_LABEL: goog.getMsg('Name'), + /** @export {string} @desc Label 'Namespace' which appears as a column label in the + table of replication controllers (Job list view). */ + MSG_JOB_LIST_NAMESPACE_LABEL: goog.getMsg('Namespace'), + /** @export {string} @desc Label 'Labels' which appears as a column label in the table of + replication controllers (Job list view). */ + MSG_JOB_LIST_LABELS_LABEL: goog.getMsg('Labels'), + /** @export {string} @desc Label 'Pods' which appears as a column label in the table of + replication controllers (Job list view). */ + MSG_JOB_LIST_PODS_LABEL: goog.getMsg('Pods'), + /** @export {string} @desc Label 'Age' which appears as a column label in the + table of replication controllers (Job list view). */ + MSG_JOB_LIST_AGE_LABEL: goog.getMsg('Age'), + /** @export {string} @desc Label 'Images' which appears as a column label in the + table of replication controllers (Job list view). */ + MSG_JOB_LIST_IMAGES_LABEL: goog.getMsg('Images'), }; diff --git a/src/app/frontend/joblist/joblist_module.js b/src/app/frontend/joblist/joblist_module.js index ae6e9a47b49d24f1dcadc801a9d2b58516203f2c..5680db3f569fd9b81e0177268ad77af1d7bf2a1a 100644 --- a/src/app/frontend/joblist/joblist_module.js +++ b/src/app/frontend/joblist/joblist_module.js @@ -15,6 +15,7 @@ import stateConfig from './joblist_stateconfig'; import filtersModule from 'common/filters/filters_module'; import componentsModule from 'common/components/components_module'; +import namespaceModule from 'common/namespace/namespace_module'; import {jobCardComponent} from './jobcard_component'; import {jobCardListComponent} from './jobcardlist_component'; import jobDetailModule from 'jobdetail/jobdetail_module'; @@ -34,6 +35,7 @@ export default angular filtersModule.name, componentsModule.name, jobDetailModule.name, + namespaceModule.name, ]) .config(stateConfig) .component('kdJobCardList', jobCardListComponent) diff --git a/src/app/frontend/petsetlist/petsetcard.html b/src/app/frontend/petsetlist/petsetcard.html index b4fb8661994a229b092ccaefad3c4dc162b00548..3836537a61cc9396de7e2a0674abc5252513706a 100644 --- a/src/app/frontend/petsetlist/petsetcard.html +++ b/src/app/frontend/petsetlist/petsetcard.html @@ -39,6 +39,12 @@ limitations under the License. + +
+ + +
+
diff --git a/src/app/frontend/petsetlist/petsetcard_component.js b/src/app/frontend/petsetlist/petsetcard_component.js index 33d64eab3e995e7b1933707b2f51985d45bc80ca..4151c751ae3be5eb415c45471395c66c28ee3203 100644 --- a/src/app/frontend/petsetlist/petsetcard_component.js +++ b/src/app/frontend/petsetlist/petsetcard_component.js @@ -24,9 +24,10 @@ export default class PetSetCardController { /** * @param {!ui.router.$state} $state * @param {!angular.$interpolate} $interpolate + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService * @ngInject */ - constructor($state, $interpolate) { + constructor($state, $interpolate, kdNamespaceService) { /** * Initialized from the scope. * @export {!backendApi.PetSet} @@ -39,10 +40,21 @@ export default class PetSetCardController { /** @private */ this.interpolate_ = $interpolate; + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } + /** * @return {string} * @export diff --git a/src/app/frontend/petsetlist/petsetcardlist.html b/src/app/frontend/petsetlist/petsetcardlist.html index c6258240d4f461522b7e47a02dfc63d2c82e0fd0..50923be640debefe4ed6456caaef0d8270afe2ca 100644 --- a/src/app/frontend/petsetlist/petsetcardlist.html +++ b/src/app/frontend/petsetlist/petsetcardlist.html @@ -19,6 +19,9 @@ limitations under the License. {{::$ctrl.i18n.MSG_PET_SET_LIST_HEADER_NAME}} + + {{::$ctrl.i18n.MSG_PET_SET_LIST_NAMESPACE_LABEL}} + {{::$ctrl.i18n.MSG_PET_SET_LIST_HEADER_LABELS}} diff --git a/src/app/frontend/petsetlist/petsetcardlist_component.js b/src/app/frontend/petsetlist/petsetcardlist_component.js index b55ccd707f90bef5a8b72cdccdc0f97de5ea88ab..3df22a85790f22a3f6eaf7ea03bc357f0b770017 100644 --- a/src/app/frontend/petsetlist/petsetcardlist_component.js +++ b/src/app/frontend/petsetlist/petsetcardlist_component.js @@ -19,12 +19,24 @@ */ export class PetSetCardListController { /** + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService * @ngInject */ - constructor() { + constructor(kdNamespaceService) { + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } } /** @@ -43,6 +55,8 @@ export const petSetCardListComponent = { const i18n = { /** @export {string} @desc Pet set list header: name. */ MSG_PET_SET_LIST_HEADER_NAME: goog.getMsg('Name'), + /** @export {string} @desc Pet set list header: namespace. */ + MSG_PET_SET_LIST_NAMESPACE_LABEL: goog.getMsg('Namespace'), /** @export {string} @desc Pet set list header: labels. */ MSG_PET_SET_LIST_HEADER_LABELS: goog.getMsg('Labels'), /** @export {string} @desc Pet set list header: pods. */ diff --git a/src/app/frontend/petsetlist/petsetlist_module.js b/src/app/frontend/petsetlist/petsetlist_module.js index 703b5dbb18da07ca33967b5976507e264056fff5..accd611888f7baa2b31076eedb50809d0e785c57 100644 --- a/src/app/frontend/petsetlist/petsetlist_module.js +++ b/src/app/frontend/petsetlist/petsetlist_module.js @@ -15,6 +15,7 @@ import stateConfig from './petsetlist_stateconfig'; import filtersModule from 'common/filters/filters_module'; import componentsModule from 'common/components/components_module'; +import namespaceModule from 'common/namespace/namespace_module'; import chromeModule from 'chrome/chrome_module'; import petSetDetailModule from 'petsetdetail/petsetdetail_module'; import {petSetCardComponent} from './petsetcard_component'; @@ -34,6 +35,7 @@ export default angular 'ui.router', filtersModule.name, componentsModule.name, + namespaceModule.name, petSetDetailModule.name, chromeModule.name, ]) diff --git a/src/app/frontend/podlist/podcardlist.html b/src/app/frontend/podlist/podcardlist.html index de9f159da2050e2133056e76d6821edf2047ddae..4752000bd82885df5bfc54f861a4c03f5872e7d5 100644 --- a/src/app/frontend/podlist/podcardlist.html +++ b/src/app/frontend/podlist/podcardlist.html @@ -20,6 +20,9 @@ limitations under the License. {{::$ctrl.i18n.MSG_POD_LIST_NAME_LABEL}} + + {{::$ctrl.i18n.MSG_POD_LIST_NAMESPACE_LABEL}} + {{::$ctrl.i18n.MSG_POD_LIST_STATUS_LABEL}} @@ -64,6 +67,12 @@ limitations under the License. + +
+ + +
+
{{::pod.podPhase}} {{::pod.restartCount}} diff --git a/src/app/frontend/podlist/podcardlist_component.js b/src/app/frontend/podlist/podcardlist_component.js index 94ea7511a84250806bbdb13b0fe084fe0b7744e0..8abdd718940b3886528239cbbe7060cae75cb9c3 100644 --- a/src/app/frontend/podlist/podcardlist_component.js +++ b/src/app/frontend/podlist/podcardlist_component.js @@ -24,8 +24,9 @@ export class PodCardListController { * @ngInject * @param {!ui.router.$state} $state * @param {!angular.$interpolate} $interpolate + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService */ - constructor($state, $interpolate) { + constructor($state, $interpolate, kdNamespaceService) { /** * List of pods. Initialized from the scope. * @export {!backendApi.PodList} @@ -41,10 +42,21 @@ export class PodCardListController { /** @private {!angular.$interpolate} */ this.interpolate_ = $interpolate; + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } + /** * @return {boolean} * @export @@ -166,6 +178,9 @@ const i18n = { /** @export {string} @desc Label 'Name' which appears as a column label in the table of pods (pod list view). */ MSG_POD_LIST_NAME_LABEL: goog.getMsg('Name'), + /** @export {string} @desc Label 'Namespace' which appears as a column label in the + table of pods (pod list view). */ + MSG_POD_LIST_NAMESPACE_LABEL: goog.getMsg('Namespace'), /** @export {string} @desc Label 'Status' which appears as a column label in the table of pods (pod list view). */ MSG_POD_LIST_STATUS_LABEL: goog.getMsg('Status'), diff --git a/src/app/frontend/podlist/podlist_module.js b/src/app/frontend/podlist/podlist_module.js index 46a02c910237a6c19b240ee9f8b0fe3a9d0eea14..2162adc4c02f62b37bef2851e2b5a0c437865122 100644 --- a/src/app/frontend/podlist/podlist_module.js +++ b/src/app/frontend/podlist/podlist_module.js @@ -17,6 +17,7 @@ import stateConfig from './podlist_stateconfig'; import {podCardListComponent} from './podcardlist_component'; import paginationModule from 'common/pagination/pagination_module'; import filtersModule from 'common/filters/filters_module'; +import namespaceModule from 'common/namespace/namespace_module'; /** * Angular module for the Pods list view. @@ -33,6 +34,7 @@ export default angular chromeModule.name, paginationModule.name, filtersModule.name, + namespaceModule.name, ]) .config(stateConfig) .component('kdPodCardList', podCardListComponent) diff --git a/src/app/frontend/replicasetlist/replicasetcard.html b/src/app/frontend/replicasetlist/replicasetcard.html index 0a48b0fda9d3305baa3325700acfd6c345bd699e..5962cd23760e7d16b60409a6e739bc25aa00ac08 100644 --- a/src/app/frontend/replicasetlist/replicasetcard.html +++ b/src/app/frontend/replicasetlist/replicasetcard.html @@ -41,6 +41,12 @@ limitations under the License. + +
+ + +
+
diff --git a/src/app/frontend/replicasetlist/replicasetcard_component.js b/src/app/frontend/replicasetlist/replicasetcard_component.js index 1ee01b4ddc1c73dfd1642290653f74138fd365b2..ac11048546f97eac0409428a5d1210b9eb492dad 100644 --- a/src/app/frontend/replicasetlist/replicasetcard_component.js +++ b/src/app/frontend/replicasetlist/replicasetcard_component.js @@ -24,9 +24,10 @@ export default class ReplicaSetCardController { /** * @param {!ui.router.$state} $state * @param {!angular.$interpolate} $interpolate + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService * @ngInject */ - constructor($state, $interpolate) { + constructor($state, $interpolate, kdNamespaceService) { /** * Initialized from the scope. * @export {!backendApi.ReplicaSet} @@ -39,10 +40,21 @@ export default class ReplicaSetCardController { /** @private */ this.interpolate_ = $interpolate; + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } + /** * @return {string} * @export diff --git a/src/app/frontend/replicasetlist/replicasetcardlist.html b/src/app/frontend/replicasetlist/replicasetcardlist.html index 14101aa261f0dc9c4aad2c40b98b61decc87a94d..a772a0119095ab4e51b5cb149f983735102a2945 100644 --- a/src/app/frontend/replicasetlist/replicasetcardlist.html +++ b/src/app/frontend/replicasetlist/replicasetcardlist.html @@ -19,6 +19,9 @@ limitations under the License. {{::$ctrl.i18n.MSG_REPLICA_SET_LIST_NAME_LABEL}} + + {{::$ctrl.i18n.MSG_REPLICA_SET_LIST_NAMESPACE_LABEL}} + {{::$ctrl.i18n.MSG_REPLICA_SET_LIST_LABELS_LABEL}} diff --git a/src/app/frontend/replicasetlist/replicasetcardlist_component.js b/src/app/frontend/replicasetlist/replicasetcardlist_component.js index 5132e3fbe55cd6a90d45088fd12f9256647c29aa..9f58feefa30135a4ccaea747a43e3da28f5e40cc 100644 --- a/src/app/frontend/replicasetlist/replicasetcardlist_component.js +++ b/src/app/frontend/replicasetlist/replicasetcardlist_component.js @@ -17,14 +17,27 @@ */ export class ReplicaSetCardListController { /** + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService * @ngInject */ - constructor() { + constructor(kdNamespaceService) { /** @export {!backendApi.ReplicaSetList} Initialized from binding. */ this.replicaSetList; + + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } } /** @@ -44,6 +57,9 @@ const i18n = { /** @export {string} @desc Label 'Name' which appears as a column label in the table of replica sets (replica set list view). */ MSG_REPLICA_SET_LIST_NAME_LABEL: goog.getMsg('Name'), + /** @export {string} @desc Label 'Namespace' which appears as a column label in the + table of replication controllers (RC list view). */ + MSG_REPLICA_SET_LIST_NAMESPACE_LABEL: goog.getMsg('Namespace'), /** @export {string} @desc Label 'Labels' which appears as a column label in the table of replica sets (replica set list view). */ MSG_REPLICA_SET_LIST_LABELS_LABEL: goog.getMsg('Labels'), diff --git a/src/app/frontend/replicasetlist/replicasetlist_module.js b/src/app/frontend/replicasetlist/replicasetlist_module.js index dc3692ec358e547caa4588ce28da83b56f30547a..bf058937a1c7d897626bf077b791a4381cb6853a 100644 --- a/src/app/frontend/replicasetlist/replicasetlist_module.js +++ b/src/app/frontend/replicasetlist/replicasetlist_module.js @@ -15,6 +15,7 @@ import stateConfig from './replicasetlist_stateconfig'; import filtersModule from 'common/filters/filters_module'; import componentsModule from 'common/components/components_module'; +import namespaceModule from 'common/namespace/namespace_module'; import {replicaSetCardComponent} from './replicasetcard_component'; import {replicaSetCardListComponent} from './replicasetcardlist_component'; import replicaSetDetailModule from 'replicasetdetail/replicasetdetail_module'; @@ -34,6 +35,7 @@ export default angular 'ui.router', filtersModule.name, componentsModule.name, + namespaceModule.name, replicaSetDetailModule.name, paginationModule.name, ]) diff --git a/src/app/frontend/replicationcontrollerlist/replicationcontrollercard.html b/src/app/frontend/replicationcontrollerlist/replicationcontrollercard.html index d4e8da6f8d971d1321c5bc5d0c61991a5607775c..6ea2811a5670889fcf740e429d9a3b9a1c7a1799 100644 --- a/src/app/frontend/replicationcontrollerlist/replicationcontrollercard.html +++ b/src/app/frontend/replicationcontrollerlist/replicationcontrollercard.html @@ -38,6 +38,12 @@ limitations under the License. + +
+ + +
+
diff --git a/src/app/frontend/replicationcontrollerlist/replicationcontrollercard_component.js b/src/app/frontend/replicationcontrollerlist/replicationcontrollercard_component.js index 424a57145a2c55ef84fa50525a6a540195fcfa2e..846c60a91a4b20de0d409855a1df5e508aa24432 100644 --- a/src/app/frontend/replicationcontrollerlist/replicationcontrollercard_component.js +++ b/src/app/frontend/replicationcontrollerlist/replicationcontrollercard_component.js @@ -24,9 +24,10 @@ export default class ReplicationControllerCardController { /** * @param {!ui.router.$state} $state * @param {!angular.$interpolate} $interpolate + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService * @ngInject */ - constructor($state, $interpolate) { + constructor($state, $interpolate, kdNamespaceService) { /** * Initialized from the scope. * @export {!backendApi.ReplicationController} @@ -39,10 +40,21 @@ export default class ReplicationControllerCardController { /** @private {!angular.$interpolate} */ this.interpolate_ = $interpolate; + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } + /** * @return {string} * @export diff --git a/src/app/frontend/replicationcontrollerlist/replicationcontrollercardlist.html b/src/app/frontend/replicationcontrollerlist/replicationcontrollercardlist.html index cf683ad1c5cfb68afa5222f8fbc75a506cc18b8f..643b7f38a3e36b389d47e9674c3c7f35db3069a8 100644 --- a/src/app/frontend/replicationcontrollerlist/replicationcontrollercardlist.html +++ b/src/app/frontend/replicationcontrollerlist/replicationcontrollercardlist.html @@ -19,6 +19,9 @@ limitations under the License. {{::$ctrl.i18n.MSG_RC_LIST_NAME_LABEL}} + + {{::$ctrl.i18n.MSG_RC_LIST_NAMESPACE_LABEL}} + {{::$ctrl.i18n.MSG_RC_LIST_LABELS_LABEL}} diff --git a/src/app/frontend/replicationcontrollerlist/replicationcontrollercardlist_component.js b/src/app/frontend/replicationcontrollerlist/replicationcontrollercardlist_component.js index d433998e61e6a9ab225f6c78f7be3c806b3c951d..d48c249343fc7d0dc9b1a4334beb1bfd4327a5e3 100644 --- a/src/app/frontend/replicationcontrollerlist/replicationcontrollercardlist_component.js +++ b/src/app/frontend/replicationcontrollerlist/replicationcontrollercardlist_component.js @@ -16,10 +16,25 @@ * @final */ class RCCardListController { - constructor() { + /** + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService + * @ngInject + */ + constructor(kdNamespaceService) { + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } } /** @@ -39,6 +54,9 @@ const i18n = { /** @export {string} @desc Label 'Name' which appears as a column label in the table of replication controllers (RC list view). */ MSG_RC_LIST_NAME_LABEL: goog.getMsg('Name'), + /** @export {string} @desc Label 'Namespace' which appears as a column label in the + table of replication controllers (RC list view). */ + MSG_RC_LIST_NAMESPACE_LABEL: goog.getMsg('Namespace'), /** @export {string} @desc Label 'Labels' which appears as a column label in the table of replication controllers (RC list view). */ MSG_RC_LIST_LABELS_LABEL: goog.getMsg('Labels'), diff --git a/src/app/frontend/replicationcontrollerlist/replicationcontrollerlist_module.js b/src/app/frontend/replicationcontrollerlist/replicationcontrollerlist_module.js index 38732bdc32ba2cc808edd63df87aafab5d4995dd..635b28498769fe282fbbe65ac98b82dcd5dc2ad9 100644 --- a/src/app/frontend/replicationcontrollerlist/replicationcontrollerlist_module.js +++ b/src/app/frontend/replicationcontrollerlist/replicationcontrollerlist_module.js @@ -15,6 +15,7 @@ import stateConfig from './replicationcontrollerlist_stateconfig'; import filtersModule from 'common/filters/filters_module'; import componentsModule from 'common/components/components_module'; +import namespaceModule from 'common/namespace/namespace_module'; import {replicationControllerCardComponent} from './replicationcontrollercard_component'; import {replicationControllerCardMenuComponent} from './replicationcontrollercardmenu_component'; import {replicationControllerCardListComponent} from './replicationcontrollercardlist_component'; @@ -35,6 +36,7 @@ export default angular filtersModule.name, componentsModule.name, replicationControllerDetailModule.name, + namespaceModule.name, ]) .config(stateConfig) .component('kdReplicationControllerCardList', replicationControllerCardListComponent) diff --git a/src/app/frontend/secretlist/secretcard.html b/src/app/frontend/secretlist/secretcard.html index e57e8d5d7fcd1ba22c11d0c24d7cbcd453f25dbd..6f893b006506978a0111d6ce156f717bec96f99b 100644 --- a/src/app/frontend/secretlist/secretcard.html +++ b/src/app/frontend/secretlist/secretcard.html @@ -22,6 +22,12 @@ limitations under the License. + +
+ + +
+
{{::$ctrl.secret.objectMeta.creationTimestamp | relativeTime}} diff --git a/src/app/frontend/secretlist/secretcard_component.js b/src/app/frontend/secretlist/secretcard_component.js index b9c4f279122550eefd758e858a0ec29ce390361c..bf06e60dfb15f761625867fd2f054341861ef8dd 100644 --- a/src/app/frontend/secretlist/secretcard_component.js +++ b/src/app/frontend/secretlist/secretcard_component.js @@ -2,8 +2,9 @@ class SecretCardController { /** * @ngInject * @param {!angular.$interpolate} $interpolate + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService */ - constructor($interpolate) { + constructor($interpolate, kdNamespaceService) { /** * Secret initialised from scope * @export {!backendApi.Secret} @@ -12,6 +13,17 @@ class SecretCardController { /** @private {!angular.$interpolate} */ this.interpolate_ = $interpolate; + + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + } + + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); } /** diff --git a/src/app/frontend/secretlist/secretcardlist.html b/src/app/frontend/secretlist/secretcardlist.html index 92d2ce2217997b728cca1b8378fb31b7728b14b8..4a32dfc56ee8a8e58cd9378177aa71832b0c14c8 100644 --- a/src/app/frontend/secretlist/secretcardlist.html +++ b/src/app/frontend/secretlist/secretcardlist.html @@ -18,6 +18,9 @@ limitations under the License. {{::$ctrl.i18n.MSG_SECRET_LIST_NAME_LABEL}} + + {{::$ctrl.i18n.MSG_SECRET_LIST_NAMESPACE_LABEL}} + {{::$ctrl.i18n.MSG_SECRET_LIST_AGE_LABEL}} diff --git a/src/app/frontend/secretlist/secretcardlist_component.js b/src/app/frontend/secretlist/secretcardlist_component.js index 3621856b76ff1fe45a033463cf248b64d91fbda5..254cd5811525a1195e90437be90100a6e0075e21 100644 --- a/src/app/frontend/secretlist/secretcardlist_component.js +++ b/src/app/frontend/secretlist/secretcardlist_component.js @@ -16,11 +16,25 @@ * @final */ export class SecretCardListController { - /** @ngInject */ - constructor() { + /** + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService + * @ngInject + */ + constructor(kdNamespaceService) { + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } } /** @@ -42,6 +56,9 @@ const i18n = { /** @export {string} @desc Label 'Name' which appears as a column label in the table of secrets (secret list view). */ MSG_SECRET_LIST_NAME_LABEL: goog.getMsg('Name'), + /** @export {string} @desc Label 'Namespace' which appears as a column label in the + table of secrets (secret list view). */ + MSG_SECRET_LIST_NAMESPACE_LABEL: goog.getMsg('Namespace'), /** @export {string} @desc Label 'Age' which appears as a column label in the table of secrets (secret list view). */ MSG_SECRET_LIST_AGE_LABEL: goog.getMsg('Age'), diff --git a/src/app/frontend/secretlist/secretlist_module.js b/src/app/frontend/secretlist/secretlist_module.js index 51b622b63fb7d1f7c1eac3486e5e3fbbd721fdd7..4afd8913ec98d972d94a94e9fb8335bf520de83c 100644 --- a/src/app/frontend/secretlist/secretlist_module.js +++ b/src/app/frontend/secretlist/secretlist_module.js @@ -17,6 +17,7 @@ import stateConfig from './secretlist_stateconfig'; import paginationModule from 'common/pagination/pagination_module'; import componentsModule from 'common/components/components_module'; import filtersModule from 'common/filters/filters_module'; +import namespaceModule from 'common/namespace/namespace_module'; import {secretCardListComponent} from './secretcardlist_component'; import {secretCardComponent} from './secretcard_component'; @@ -36,6 +37,7 @@ export default angular componentsModule.name, paginationModule.name, filtersModule.name, + namespaceModule.name, ]) .config(stateConfig) .component('kdSecretCardList', secretCardListComponent) diff --git a/src/app/frontend/servicelist/servicecard.html b/src/app/frontend/servicelist/servicecard.html index c6630cec638d6d51519c489d0d15ced1309df727..9f0a2d23e35c116f3987c42bc997f1936feff3dd 100644 --- a/src/app/frontend/servicelist/servicecard.html +++ b/src/app/frontend/servicelist/servicecard.html @@ -32,6 +32,12 @@ limitations under the License. + +
+ + +
+
diff --git a/src/app/frontend/servicelist/servicecard_component.js b/src/app/frontend/servicelist/servicecard_component.js index 6f14a0cd9c474f0d2c4a1faa441ddb50a6b25ac2..648bd6cd017af6e4de9df2d2af44fb7abf5a8773 100644 --- a/src/app/frontend/servicelist/servicecard_component.js +++ b/src/app/frontend/servicelist/servicecard_component.js @@ -21,9 +21,13 @@ import {stateName} from 'servicedetail/servicedetail_state'; export class ServiceCardController { /** * @param {!ui.router.$state} $state + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService * @ngInject */ - constructor($state) { + constructor($state, kdNamespaceService) { + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export {!backendApi.Service} */ this.service; @@ -34,6 +38,14 @@ export class ServiceCardController { this.i18n = i18n; } + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } + /** * @return {string} * @export diff --git a/src/app/frontend/servicelist/servicecardlist.html b/src/app/frontend/servicelist/servicecardlist.html index e6d4dbc6b180e8129484f982fbae4e7253256230..082977076a180c408b7b637299e3823e6ac05622 100644 --- a/src/app/frontend/servicelist/servicecardlist.html +++ b/src/app/frontend/servicelist/servicecardlist.html @@ -19,6 +19,9 @@ limitations under the License. {{::$ctrl.i18n.MSG_SERVICE_LIST_NAME_LABEL}} + + {{::$ctrl.i18n.MSG_SERVICE_LIST_NAMESPACE_LABEL}} + {{::$ctrl.i18n.MSG_SERVICE_LIST_LABELS_LABEL}} diff --git a/src/app/frontend/servicelist/servicecardlist_component.js b/src/app/frontend/servicelist/servicecardlist_component.js index e13fdf63d84a5f97324acd90ba1487aa4cf19f75..93562742c5baf226279e6e7a5f3621397e0dfdad 100644 --- a/src/app/frontend/servicelist/servicecardlist_component.js +++ b/src/app/frontend/servicelist/servicecardlist_component.js @@ -16,11 +16,25 @@ * @final */ export class ServiceCardListController { - /** @ngInject */ - constructor() { + /** + * @param {!./../common/namespace/namespace_service.NamespaceService} kdNamespaceService + * @ngInject + */ + constructor(kdNamespaceService) { + /** @private {!./../common/namespace/namespace_service.NamespaceService} */ + this.kdNamespaceService_ = kdNamespaceService; + /** @export */ this.i18n = i18n; } + + /** + * @return {boolean} + * @export + */ + areMultipleNamespacesSelected() { + return this.kdNamespaceService_.areMultipleNamespacesSelected(); + } } /** @@ -45,6 +59,9 @@ const i18n = { /** @export {string} @desc Label 'Name' which appears as a column label in the table of services (service list view). */ MSG_SERVICE_LIST_NAME_LABEL: goog.getMsg('Name'), + /** @export {string} @desc Label 'Namespace' which appears as a column label in the + table of services (service list view). */ + MSG_SERVICE_LIST_NAMESPACE_LABEL: goog.getMsg('Namespace'), /** @export {string} @desc Label 'Labels' which appears as a column label in the table of services (service list view). */ MSG_SERVICE_LIST_LABELS_LABEL: goog.getMsg('Labels'), diff --git a/src/app/frontend/servicelist/servicelist_module.js b/src/app/frontend/servicelist/servicelist_module.js index 3a368f300f9e9702555e570a6f9274487c0d6916..c2698e7bdf1fcca517841ec563a9b79832890285 100644 --- a/src/app/frontend/servicelist/servicelist_module.js +++ b/src/app/frontend/servicelist/servicelist_module.js @@ -15,6 +15,7 @@ import componentsModule from 'common/components/components_module'; import chromeModule from 'chrome/chrome_module'; import filtersModule from 'common/filters/filters_module'; +import namespaceModule from 'common/namespace/namespace_module'; import stateConfig from './servicelist_stateconfig'; import {serviceCardListComponent} from './servicecardlist_component'; import {serviceCardComponent} from './servicecard_component'; @@ -34,6 +35,7 @@ export default angular filtersModule.name, componentsModule.name, chromeModule.name, + namespaceModule.name, ]) .config(stateConfig) .component('kdServiceCardList', serviceCardListComponent) diff --git a/src/test/frontend/common/namespace/namespace_service_test.js b/src/test/frontend/common/namespace/namespace_service_test.js new file mode 100644 index 0000000000000000000000000000000000000000..10952fe300d002eac5319d9fc185e7d91f619e79 --- /dev/null +++ b/src/test/frontend/common/namespace/namespace_service_test.js @@ -0,0 +1,40 @@ +// Copyright 2015 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import namespaceModule from 'common/namespace/namespace_module'; + +describe('Namespace service', () => { + /** @type {!common/namespace/namespace_service.NamespaceService} */ + let namespaceService; + + beforeEach(() => angular.mock.module(namespaceModule.name)); + + beforeEach(angular.mock.inject((kdNamespaceService) => { + namespaceService = kdNamespaceService; + + })); + + it(`should initialise multipleNamespacesSelected as true`, + () => { expect(namespaceService.areMultipleNamespacesSelected()).toBe(true); }); + + it(`should set multipleNamespacesSelected to true`, () => { + namespaceService.setMultipleNamespacesSelected(true); + expect(namespaceService.areMultipleNamespacesSelected()).toBe(true); + }); + + it(`should set multipleNamespacesSelected to false`, () => { + namespaceService.setMultipleNamespacesSelected(false); + expect(namespaceService.areMultipleNamespacesSelected()).toBe(false); + }); +}); diff --git a/src/test/frontend/common/namespace/namespaceselect_component_test.js b/src/test/frontend/common/namespace/namespaceselect_component_test.js index 1b10c482221aec374a03554cb29cb25f0ae83270..64ec0ca97879c083e3b77d0cc6f38170a28bda35 100644 --- a/src/test/frontend/common/namespace/namespaceselect_component_test.js +++ b/src/test/frontend/common/namespace/namespaceselect_component_test.js @@ -21,6 +21,8 @@ describe('Namespace select component ', () => { let scope; /** @type {!common/namespace/namespaceselect_component.NamespaceSelectController} */ let ctrl; + /** @type {!common/namespace/namespace_service.NamespaceService} */ + let service; /** @type {!angular.$httpBackend} */ let httpBackend; /** @type {!ui.router.$state} */ @@ -39,12 +41,14 @@ describe('Namespace select component ', () => { angular.mock.module(fakeModule.name); angular.mock.module(chromeModule.name); - angular.mock.inject(($componentController, $rootScope, $httpBackend, $state) => { - scope = $rootScope; - ctrl = $componentController('kdNamespaceSelect', {$scope: $rootScope}); - httpBackend = $httpBackend; - state = $state; - }); + angular.mock.inject( + ($componentController, $rootScope, $httpBackend, $state, kdNamespaceService) => { + scope = $rootScope; + ctrl = $componentController('kdNamespaceSelect', {$scope: $rootScope}); + service = kdNamespaceService; + httpBackend = $httpBackend; + state = $state; + }); }); it('should initialize from non-exisitng namespace and watch for state changes', () => { @@ -106,4 +110,15 @@ describe('Namespace select component ', () => { ctrl.selectedNamespace = 'foo'; expect(ctrl.formatNamespace('foo')).toBe('foo'); }); + + it('should change this.isMultipleNamespaces depending on namespaces selected', () => { + ctrl.$onInit(); + + expect(service.areMultipleNamespacesSelected()).toBe(true); + + scope.$broadcast('$stateChangeSuccess', {}, {namespace: 'a'}); + scope.$digest(); + expect(ctrl.selectedNamespace).toBe('a'); + expect(service.areMultipleNamespacesSelected()).toBe(false); + }); }); diff --git a/src/test/frontend/configmaplist/configmapcardlist_component_test.js b/src/test/frontend/configmaplist/configmapcardlist_component_test.js index 270f1cf0fc301d15149bc3a3b282afb82f0bb3cf..87ed8de40856685ebeb25437d636cb242efa2685 100644 --- a/src/test/frontend/configmaplist/configmapcardlist_component_test.js +++ b/src/test/frontend/configmaplist/configmapcardlist_component_test.js @@ -16,14 +16,28 @@ import configMapListModule from 'configmaplist/configmaplist_module'; describe('Config Map card list', () => { /** @type {!configmaplist/configmapcard_component.ConfigMapCardListController} */ let ctrl; + /** + * @type {!./../common/namespace/namespace_service.NamespaceService} + */ + let data; beforeEach(() => { angular.mock.module(configMapListModule.name); - angular.mock.inject(($componentController, $rootScope) => { - ctrl = $componentController('kdConfigMapCardList', {$scope: $rootScope}); + angular.mock.inject(($componentController, $rootScope, kdNamespaceService) => { + /** @type {!./../common/namespace/namespace_service.NamespaceService} */ + data = kdNamespaceService; + /** @type {!ConfigMapCardListController} */ + ctrl = $componentController( + 'kdConfigMapCardList', {$scope: $rootScope, kdNamespaceService_: data}, {}); }); }); + it('should instantiate the controller properly', () => { expect(ctrl).not.toBeUndefined(); }); + + it('should return the value from Namespace service', () => { + expect(ctrl.areMultipleNamespacesSelected()).toBe(data.areMultipleNamespacesSelected()); + }); + it('should init i18n', () => { expect(ctrl.i18n).not.toBeUndefined(); }); }); diff --git a/src/test/frontend/daemonsetlist/daemonsetcardlist_component_test.js b/src/test/frontend/daemonsetlist/daemonsetcardlist_component_test.js new file mode 100644 index 0000000000000000000000000000000000000000..fdbe84d47bf849db7618455c3171de177b66b821 --- /dev/null +++ b/src/test/frontend/daemonsetlist/daemonsetcardlist_component_test.js @@ -0,0 +1,43 @@ +// Copyright 2015 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import daemonsetListModule from 'daemonsetlist/daemonsetlist_module'; + +describe('Daemon Set Card List controller', () => { + /** + * @type {!daemonsetlist/daemonsetcardlist_component.DaemonSetCardListController} + */ + let ctrl; + /** + * @type {!./../common/namespace/namespace_service.NamespaceService} + */ + let data; + + beforeEach(() => { + angular.mock.module(daemonsetListModule.name); + + angular.mock.inject(($componentController, kdNamespaceService) => { + /** @type {!./../common/namespace/namespace_service.NamespaceService} */ + data = kdNamespaceService; + /** @type {!DaemonSetCardListController} */ + ctrl = $componentController('kdDaemonSetCardList', {kdNamespaceService_: data}); + }); + }); + + it('should instantiate the controller properly', () => { expect(ctrl).not.toBeUndefined(); }); + + it('should return the value from Namespace service', () => { + expect(ctrl.areMultipleNamespacesSelected()).toBe(data.areMultipleNamespacesSelected()); + }); +}); diff --git a/src/test/frontend/deploymentlist/deploymentcardlist_component_test.js b/src/test/frontend/deploymentlist/deploymentcardlist_component_test.js new file mode 100644 index 0000000000000000000000000000000000000000..0f6eafe6f3c4289cadf27784db14f972d2088b1c --- /dev/null +++ b/src/test/frontend/deploymentlist/deploymentcardlist_component_test.js @@ -0,0 +1,43 @@ +// Copyright 2015 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import deploymentListModule from 'deploymentlist/deploymentlist_module'; + +describe('Deployment Card List controller', () => { + /** + * @type {!deploymentlist/deploymentcardlist_component.DeploymentCardListController} + */ + let ctrl; + /** + * @type {!./../common/namespace/namespace_service.NamespaceService} + */ + let data; + + beforeEach(() => { + angular.mock.module(deploymentListModule.name); + + angular.mock.inject(($componentController, kdNamespaceService) => { + /** @type {!./../common/namespace/namespace_service.NamespaceService} */ + data = kdNamespaceService; + /** @type {!DeploymentCardListController} */ + ctrl = $componentController('kdDeploymentCardList', {kdNamespaceService_: data}); + }); + }); + + it('should instantiate the controller properly', () => { expect(ctrl).not.toBeUndefined(); }); + + it('should return the value from Namespace service', () => { + expect(ctrl.areMultipleNamespacesSelected()).toBe(data.areMultipleNamespacesSelected()); + }); +}); diff --git a/src/test/frontend/joblist/jobcardlist_component_test.js b/src/test/frontend/joblist/jobcardlist_component_test.js new file mode 100644 index 0000000000000000000000000000000000000000..60f5731a27e80290a5f9e55e71525305b674abd1 --- /dev/null +++ b/src/test/frontend/joblist/jobcardlist_component_test.js @@ -0,0 +1,43 @@ +// Copyright 2015 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import jobListModule from 'joblist/joblist_module'; + +describe('Job Card List controller', () => { + /** + * @type {!joblist/jobcardlist_component.JobCardListController} + */ + let ctrl; + /** + * @type {!./../common/namespace/namespace_service.NamespaceService} + */ + let data; + + beforeEach(() => { + angular.mock.module(jobListModule.name); + + angular.mock.inject(($componentController, kdNamespaceService) => { + /** @type {!./../common/namespace/namespace_service.NamespaceService} */ + data = kdNamespaceService; + /** @type {!JobCardListController} */ + ctrl = $componentController('kdJobCardList', {kdNamespaceService_: data}); + }); + }); + + it('should instantiate the controller properly', () => { expect(ctrl).not.toBeUndefined(); }); + + it('should return the value from Namespace service', () => { + expect(ctrl.areMultipleNamespacesSelected()).toBe(data.areMultipleNamespacesSelected()); + }); +}); diff --git a/src/test/frontend/petsetlist/petsetcardlist_component_test.js b/src/test/frontend/petsetlist/petsetcardlist_component_test.js new file mode 100644 index 0000000000000000000000000000000000000000..101cc152a5d2333aab44bea6185fc4ae7ca04e10 --- /dev/null +++ b/src/test/frontend/petsetlist/petsetcardlist_component_test.js @@ -0,0 +1,43 @@ +// Copyright 2015 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import petsetListModule from 'petsetlist/petsetlist_module'; + +describe('Pet Set Card List controller', () => { + /** + * @type {!petsetlist/petsetcardlist_component.PetSetCardListController} + */ + let ctrl; + /** + * @type {!./../common/namespace/namespace_service.NamespaceService} + */ + let data; + + beforeEach(() => { + angular.mock.module(petsetListModule.name); + + angular.mock.inject(($componentController, kdNamespaceService) => { + /** @type {!./../common/namespace/namespace_service.NamespaceService} */ + data = kdNamespaceService; + /** @type {!PetSetCardListController} */ + ctrl = $componentController('kdPetSetCardList', {kdNamespaceService_: data}); + }); + }); + + it('should instantiate the controller properly', () => { expect(ctrl).not.toBeUndefined(); }); + + it('should return the value from Namespace service', () => { + expect(ctrl.areMultipleNamespacesSelected()).toBe(data.areMultipleNamespacesSelected()); + }); +}); diff --git a/src/test/frontend/podlist/podcardlist_component_test.js b/src/test/frontend/podlist/podcardlist_component_test.js index 3368889889fccb2bccd6d6630b4829c79a64be10..afd3118e5f46069909ddc2a450deb250eae3e6a6 100644 --- a/src/test/frontend/podlist/podcardlist_component_test.js +++ b/src/test/frontend/podlist/podcardlist_component_test.js @@ -20,16 +20,30 @@ describe('Pod card list controller', () => { * @type {!podlist/podcardlist_component.PodCardListController} */ let ctrl; + /** + * @type {!./../common/namespace/namespace_service.NamespaceService} + */ + let data; beforeEach(() => { angular.mock.module(podsListModule.name); angular.mock.module(podDetailModule.name); - angular.mock.inject(($componentController, $rootScope) => { - ctrl = $componentController('kdPodCardList', {$scope: $rootScope}, {}); + angular.mock.inject(($componentController, $rootScope, kdNamespaceService) => { + /** @type {!./../common/namespace/namespace_service.NamespaceService} */ + data = kdNamespaceService; + /** @type {!podCardListController} */ + ctrl = $componentController( + 'kdPodCardList', {$scope: $rootScope, kdNamespaceService_: data}, {}); }); }); + it('should instantiate the controller properly', () => { expect(ctrl).not.toBeUndefined(); }); + + it('should return the value from Namespace service', () => { + expect(ctrl.areMultipleNamespacesSelected()).toBe(data.areMultipleNamespacesSelected()); + }); + it('should execute logs href callback function', () => { expect(ctrl.getPodDetailHref({ objectMeta: { diff --git a/src/test/frontend/replicasetlist/replicasetcardlist_component_test.js b/src/test/frontend/replicasetlist/replicasetcardlist_component_test.js new file mode 100644 index 0000000000000000000000000000000000000000..1dc56c6a8caa21faa0c77635564f24a162e51c68 --- /dev/null +++ b/src/test/frontend/replicasetlist/replicasetcardlist_component_test.js @@ -0,0 +1,43 @@ +// Copyright 2015 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import replicasetListModule from 'replicasetlist/replicasetlist_module'; + +describe('Replica Set Card List controller', () => { + /** + * @type {!replicasetlist/replicasetcardlist_component.ReplicaSetCardListController} + */ + let ctrl; + /** + * @type {!./../common/namespace/namespace_service.NamespaceService} + */ + let data; + + beforeEach(() => { + angular.mock.module(replicasetListModule.name); + + angular.mock.inject(($componentController, kdNamespaceService) => { + /** @type {!./../common/namespace/namespace_service.NamespaceService} */ + data = kdNamespaceService; + /** @type {!ReplicaSetCardListController} */ + ctrl = $componentController('kdReplicaSetCardList', {kdNamespaceService_: data}); + }); + }); + + it('should instantiate the controller properly', () => { expect(ctrl).not.toBeUndefined(); }); + + it('should return the value from Namespace service', () => { + expect(ctrl.areMultipleNamespacesSelected()).toBe(data.areMultipleNamespacesSelected()); + }); +}); diff --git a/src/test/frontend/replicationcontrollerlist/replicationcontrollercardlist_component_test.js b/src/test/frontend/replicationcontrollerlist/replicationcontrollercardlist_component_test.js new file mode 100644 index 0000000000000000000000000000000000000000..877772de264170302c7a9b4785945dd33a894365 --- /dev/null +++ b/src/test/frontend/replicationcontrollerlist/replicationcontrollercardlist_component_test.js @@ -0,0 +1,43 @@ +// Copyright 2015 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import replicationControllerListModule from 'replicationcontrollerlist/replicationcontrollerlist_module'; + +describe('Replication Controller Card List controller', () => { + /** + * @type {!replicationcontrollerlist/replicationcontrollercardlist_component.RCCardListController} + */ + let ctrl; + /** + * @type {!./../common/namespace/namespace_service.NamespaceService} + */ + let data; + + beforeEach(() => { + angular.mock.module(replicationControllerListModule.name); + + angular.mock.inject(($componentController, kdNamespaceService) => { + /** @type {!./../common/namespace/namespace_service.NamespaceService} */ + data = kdNamespaceService; + /** @type {!RCCardListController} */ + ctrl = $componentController('kdReplicationControllerCardList', {kdNamespaceService_: data}); + }); + }); + + it('should instantiate the controller properly', () => { expect(ctrl).not.toBeUndefined(); }); + + it('should return the value from Namespace service', () => { + expect(ctrl.areMultipleNamespacesSelected()).toBe(data.areMultipleNamespacesSelected()); + }); +}); diff --git a/src/test/frontend/secretlist/secretcardlist_component_test.js b/src/test/frontend/secretlist/secretcardlist_component_test.js new file mode 100644 index 0000000000000000000000000000000000000000..8d402d3d4c4c59ad0a198add15d116f44f2ac2ea --- /dev/null +++ b/src/test/frontend/secretlist/secretcardlist_component_test.js @@ -0,0 +1,43 @@ +// Copyright 2015 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import secretListModule from 'secretlist/secretlist_module'; + +describe('Secret Card List controller', () => { + /** + * @type {!secretlist/secretcardlist_component.SecretCardListController} + */ + let ctrl; + /** + * @type {!./../common/namespace/namespace_service.NamespaceService} + */ + let data; + + beforeEach(() => { + angular.mock.module(secretListModule.name); + + angular.mock.inject(($componentController, kdNamespaceService) => { + /** @type {!./../common/namespace/namespace_service.NamespaceService} */ + data = kdNamespaceService; + /** @type {!SecretListController} */ + ctrl = $componentController('kdSecretCardList', {kdNamespaceService_: data}); + }); + }); + + it('should instantiate the controller properly', () => { expect(ctrl).not.toBeUndefined(); }); + + it('should return the value from Namespace service', () => { + expect(ctrl.areMultipleNamespacesSelected()).toBe(data.areMultipleNamespacesSelected()); + }); +}); diff --git a/src/test/frontend/servicelist/servicecardlist_component_test.js b/src/test/frontend/servicelist/servicecardlist_component_test.js new file mode 100644 index 0000000000000000000000000000000000000000..48d9cfbed873d8de30ff45f658a79ac0d5d64f7b --- /dev/null +++ b/src/test/frontend/servicelist/servicecardlist_component_test.js @@ -0,0 +1,43 @@ +// Copyright 2015 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import serviceListModule from 'servicelist/servicelist_module'; + +describe('Service Card List controller', () => { + /** + * @type {!servicelist/servicecardlist_component.ServiceCardListController} + */ + let ctrl; + /** + * @type {!./../common/namespace/namespace_service.NamespaceService} + * */ + let data; + + beforeEach(() => { + angular.mock.module(serviceListModule.name); + + angular.mock.inject(($componentController, kdNamespaceService) => { + /** @type {!./../common/namespace/namespace_service.NamespaceService} */ + data = kdNamespaceService; + /** @type {!ServiceCardListController} */ + ctrl = $componentController('kdServiceCardList', {kdNamespaceService_: data}); + }); + }); + + it('should instantiate the controller properly', () => { expect(ctrl).not.toBeUndefined(); }); + + it('should return the value from Namespace service', () => { + expect(ctrl.areMultipleNamespacesSelected()).toBe(data.areMultipleNamespacesSelected()); + }); +});