Skip to content

Commit eaa78d4

Browse files
Marcin MaciaszczykMarcin Maciaszczyk
authored andcommitted
Hide details page sidebar on narrow screens
1 parent ccd9e02 commit eaa78d4

10 files changed

+491
-292
lines changed

src/app/frontend/replicationcontrollerdetail/replicationcontrollerdetail.html

Lines changed: 57 additions & 137 deletions
Large diffs are not rendered by default.

src/app/frontend/replicationcontrollerdetail/replicationcontrollerdetail.scss

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -48,34 +48,6 @@ $table-cell-height-half: $table-cell-height / 2;
4848
border-bottom: 1px solid $foreground-4;
4949
}
5050

51-
.kd-replicationcontrollerdetail-sidebar-title {
52-
font-size: $subhead-font-size-base;
53-
font-weight: $bold-font-weight;
54-
padding-bottom: $baseline-grid;
55-
padding-top: $baseline-grid;
56-
}
57-
58-
.kd-replicationcontrollerdetail-sidebar-line {
59-
color: $foreground-2;
60-
display: block;
61-
font-size: $body-font-size-base;
62-
padding-bottom: 0;
63-
}
64-
65-
.kd-replicationcontrollerdetail-sidebar-subline {
66-
color: $foreground-1;
67-
display: block;
68-
font-size: $body-font-size-base;
69-
overflow: hidden;
70-
padding-bottom: $baseline-grid;
71-
text-overflow: ellipsis;
72-
73-
&.kd-has-labels {
74-
// To offset for labels margin.
75-
margin-bottom: -$baseline-grid / 2;
76-
}
77-
}
78-
7951
.kd-replicationcontrollerdetail-warning-icon {
8052
color: $warning;
8153
font-size: $table-cell-height-half;
@@ -87,11 +59,6 @@ $table-cell-height-half: $table-cell-height / 2;
8759
margin: 2 * $baseline-grid;
8860
}
8961

90-
.kd-replicationcontrollerdetail-sidebar-info {
91-
// 6px needed to offset for md-button padding.
92-
padding-left: $baseline-grid + 6px;
93-
}
94-
9562
.kd-replicationcontrollerdetail-option-picker {
9663
padding-right: 2 * $baseline-grid;
9764
width: 15 * $baseline-grid;
@@ -131,7 +98,7 @@ $table-cell-height-half: $table-cell-height / 2;
13198
}
13299

133100
.kd-replicationcontrollerdetail-no-events {
134-
margin-top: 4 * $baseline-grid;
101+
margin: (4 * $baseline-grid) 0 (4 * $baseline-grid);
135102
text-align: center;
136103
}
137104

src/app/frontend/replicationcontrollerdetail/replicationcontrollerdetail_controller.js

Lines changed: 13 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@
1313
// limitations under the License.
1414

1515
import {UPWARDS, DOWNWARDS} from 'replicationcontrollerdetail/sortedheader_controller';
16-
import {
17-
stateName as replicationcontrollers,
18-
} from 'replicationcontrollerlist/replicationcontrollerlist_state';
1916
import {stateName as logsStateName} from 'logs/logs_state';
2017
import {StateParams as LogsStateParams} from 'logs/logs_state';
2118

@@ -32,20 +29,22 @@ const EVENT_SOURCE_SYSTEM = 'System';
3229
*/
3330
export default class ReplicationControllerDetailController {
3431
/**
32+
* @param {function(string):boolean} $mdMedia Angular Material $mdMedia service
3533
* @param {!md.$dialog} $mdDialog
3634
* @param {!./replicationcontrollerdetail_state.StateParams} $stateParams
3735
* @param {!ui.router.$state} $state
3836
* @param {!angular.$resource} $resource
3937
* @param {!angular.$log} $log
4038
* @param {!backendApi.ReplicationControllerDetail} replicationControllerDetail
4139
* @param {!backendApi.Events} replicationControllerEvents
42-
* @param {!./replicationcontroller_service.ReplicationControllerService}
43-
* kdReplicationControllerService
4440
* @ngInject
4541
*/
4642
constructor(
47-
$mdDialog, $stateParams, $state, $resource, $log, replicationControllerDetail,
48-
replicationControllerEvents, kdReplicationControllerService) {
43+
$mdMedia, $mdDialog, $stateParams, $state, $resource, $log, replicationControllerDetail,
44+
replicationControllerEvents) {
45+
/** @export {function(string):boolean} */
46+
this.mdMedia = $mdMedia;
47+
4948
/** @export {!backendApi.ReplicationControllerDetail} */
5049
this.replicationControllerDetail = replicationControllerDetail;
5150

@@ -82,9 +81,6 @@ export default class ReplicationControllerDetailController {
8281
/** @private {!angular.$log} */
8382
this.log_ = $log;
8483

85-
/** @private {!./replicationcontroller_service.ReplicationControllerService} */
86-
this.kdReplicationControllerService_ = kdReplicationControllerService;
87-
8884
/**
8985
* Name of column, that will be used for pods sorting.
9086
* @export {string}
@@ -110,6 +106,13 @@ export default class ReplicationControllerDetailController {
110106
this.eventsOrder = DOWNWARDS;
111107
}
112108

109+
/**
110+
* Returns true if sidebar is visible, false if it is hidden.
111+
* @returns {boolean}
112+
* @export
113+
*/
114+
isSidebarVisible() { return this.mdMedia('gt-sm'); }
115+
113116
/**
114117
* Returns true if event is a warning.
115118
* @param {!backendApi.Event} event
@@ -181,36 +184,6 @@ export default class ReplicationControllerDetailController {
181184
}
182185
}
183186

184-
/**
185-
* @return {boolean}
186-
* @export
187-
*/
188-
areDesiredPodsRunning() {
189-
return this.replicationControllerDetail.podInfo.running ===
190-
this.replicationControllerDetail.podInfo.desired;
191-
}
192-
193-
/**
194-
* Handles update of replicas count in replication controller dialog.
195-
* @export
196-
*/
197-
handleUpdateReplicasDialog() {
198-
this.kdReplicationControllerService_.showUpdateReplicasDialog(
199-
this.replicationControllerDetail.namespace, this.replicationControllerDetail.name,
200-
this.replicationControllerDetail.podInfo.current,
201-
this.replicationControllerDetail.podInfo.desired);
202-
}
203-
204-
/**
205-
* Handles replication controller delete dialog.
206-
* @export
207-
*/
208-
handleDeleteReplicationControllerDialog() {
209-
this.kdReplicationControllerService_
210-
.showDeleteDialog(this.stateParams_.namespace, this.stateParams_.replicationController)
211-
.then(this.onReplicationControllerDeleteSuccess_.bind(this));
212-
}
213-
214187
/**
215188
* @param {!backendApi.ReplicationControllerPod} pod
216189
* @return {boolean}
@@ -228,20 +201,4 @@ export default class ReplicationControllerDetailController {
228201
hasMemoryUsage(pod) {
229202
return !!pod.metrics && (!!pod.metrics.memoryUsage || pod.metrics.memoryUsage === 0);
230203
}
231-
232-
/**
233-
* Callbacks used after clicking dialog confirmation button in order to delete replication
234-
* controller
235-
* or log unsuccessful operation error.
236-
*/
237-
238-
/**
239-
* Changes state back to replication controller list after successful deletion of replication
240-
* controller.
241-
* @private
242-
*/
243-
onReplicationControllerDeleteSuccess_() {
244-
this.log_.info('Replication controller successfully deleted.');
245-
this.state_.go(replicationcontrollers);
246-
}
247204
}

src/app/frontend/replicationcontrollerdetail/replicationcontrollerdetail_module.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import componentsModule from './../common/components/components_module';
1616
import filtersModule from 'common/filters/filters_module';
1717
import logsModule from 'logs/logs_module';
18+
import replicationControllerInfo from './replicationcontrollerinfo_directive';
1819
import serviceEndpointDirective from './serviceendpoint_directive';
1920
import stateConfig from './replicationcontrollerdetail_stateconfig';
2021
import sortedHeaderDirective from './sortedheader_directive';
@@ -37,6 +38,7 @@ export default angular
3738
logsModule.name,
3839
])
3940
.config(stateConfig)
41+
.directive('kdReplicationControllerInfo', replicationControllerInfo)
4042
.directive('kdServiceEndpoint', serviceEndpointDirective)
4143
.directive('kdSortedHeader', sortedHeaderDirective)
4244
.service('kdReplicationControllerService', ReplicationControllerService);
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
<!--
2+
Copyright 2015 Google Inc. All Rights Reserved.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
-->
16+
17+
<div flex="nogrow" class="kd-replicationcontrollerinfo-item">
18+
<md-button class="md-primary" ng-click="infoCtrl.handleDeleteReplicationControllerDialog()">
19+
<md-icon class="material-icons">delete</md-icon>
20+
DELETE REPLICATION CONTROLLER
21+
</md-button>
22+
</div>
23+
<div flex layout="column" class="kd-replicationcontrollerinfo-item">
24+
<div flex layout="column" class="kd-replicationcontrollerinfo-info">
25+
<span class="kd-replicationcontrollerinfo-title">
26+
Replication controller
27+
</span>
28+
<span class="kd-replicationcontrollerinfo-line">Name</span>
29+
<span class="kd-replicationcontrollerinfo-subline">
30+
{{infoCtrl.details.name}}
31+
</span>
32+
<span class="kd-replicationcontrollerinfo-line">Namespace</span>
33+
<span class="kd-replicationcontrollerinfo-subline">
34+
{{::infoCtrl.details.namespace}}
35+
</span>
36+
<div layout="row" layout-align="start end">
37+
<div flex="nogrow">
38+
<span class="kd-replicationcontrollerinfo-line">Pods</span>
39+
<span class="kd-replicationcontrollerinfo-subline"
40+
ng-if="!infoCtrl.areDesiredPodsRunning()">
41+
{{::infoCtrl.details.podInfo.current}} created,
42+
{{::infoCtrl.details.podInfo.desired}} desired
43+
</span>
44+
<span class="kd-replicationcontrollerinfo-subline" ng-if="infoCtrl.areDesiredPodsRunning()">
45+
{{::infoCtrl.details.running}} running
46+
</span>
47+
</div>
48+
<div flex="nogrow">
49+
<md-button class="md-icon-button md-primary">
50+
<md-icon class="material-icons" ng-click="infoCtrl.handleUpdateReplicasDialog()">
51+
mode_edit
52+
</md-icon>
53+
</md-button>
54+
</div>
55+
</div>
56+
<div ng-if="!infoCtrl.areDesiredPodsRunning()">
57+
<span class="kd-replicationcontrollerinfo-line">Pods status</span>
58+
<span class="kd-replicationcontrollerinfo-subline">
59+
<span ng-if="::infoCtrl.details.podInfo.pending" class="kd-comma-separated-item">
60+
{{::infoCtrl.details.podInfo.pending}} pending<!-- Collapse whitespace
61+
--></span>
62+
<span ng-if="::infoCtrl.details.podInfo.failed" class="kd-comma-separated-item">
63+
{{::infoCtrl.details.podInfo.failed}} failed<!-- Collapse whitespace
64+
--></span>
65+
<span ng-if="::infoCtrl.details.podInfo.running" class="kd-comma-separated-item">
66+
{{::infoCtrl.details.podInfo.running}} running
67+
</span>
68+
</span>
69+
</div>
70+
<span class="kd-replicationcontrollerinfo-line">Label selector</span>
71+
<span class="kd-replicationcontrollerinfo-subline kd-has-labels">
72+
<kd-labels labels="::infoCtrl.details.labelSelector"></kd-labels>
73+
</span>
74+
<span class="kd-replicationcontrollerinfo-line">Labels</span>
75+
<span class="kd-replicationcontrollerinfo-subline kd-has-labels">
76+
<kd-labels labels="::infoCtrl.details.labels"></kd-labels>
77+
</span>
78+
<span class="kd-replicationcontrollerinfo-line">Images</span>
79+
<span class="kd-replicationcontrollerinfo-subline"
80+
ng-repeat="image in infoCtrl.details.containerImages">
81+
{{image}}
82+
</span>
83+
</div>
84+
<div flex layout="column" class="kd-replicationcontrollerinfo-info">
85+
<div ng-if="::infoCtrl.details.services" layout="column">
86+
<span class="kd-replicationcontrollerinfo-title">Services</span>
87+
<div ng-repeat="service in ::infoCtrl.details.services">
88+
<span class="kd-replicationcontrollerinfo-line">Name</span>
89+
<span class="kd-replicationcontrollerinfo-subline">
90+
{{::service.name}}
91+
</span>
92+
<span class="kd-replicationcontrollerinfo-line">Label selector</span>
93+
<span class="kd-replicationcontrollerinfo-subline kd-has-labels">
94+
<kd-labels labels="::service.selector"></kd-labels>
95+
</span>
96+
<span class="kd-replicationcontrollerinfo-line">Internal endpoint</span>
97+
<div class="kd-replicationcontrollerinfo-subline">
98+
<div ng-if="::service.internalEndpoint">
99+
<kd-service-endpoint endpoint="::service.internalEndpoint"></kd-service-endpoint>
100+
</div>
101+
<span ng-hide="service.internalEndpoint">none</span>
102+
</div>
103+
<span class="kd-replicationcontrollerinfo-line">External endpoint</span>
104+
<div class="kd-replicationcontrollerinfo-subline">
105+
<div ng-repeat="endpoint in service.externalEndpoints">
106+
<kd-service-endpoint endpoint="::endpoint"></kd-service-endpoint>
107+
</div>
108+
<span class="kd-replicationcontrollerinfo-subline" ng-hide="::service.externalEndpoints">
109+
none
110+
</span>
111+
</div>
112+
</div>
113+
</div>
114+
</div>
115+
</div>
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
// Copyright 2015 Google Inc. All Rights Reserved.
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
@import '../variables';
16+
17+
.kd-replicationcontrollerinfo-item {
18+
padding-left: 2 * $baseline-grid;
19+
padding-right: $baseline-grid;
20+
}
21+
22+
.kd-replicationcontrollerinfo-title {
23+
font-size: $subhead-font-size-base;
24+
font-weight: $bold-font-weight;
25+
padding-bottom: $baseline-grid;
26+
padding-top: $baseline-grid;
27+
}
28+
29+
.kd-replicationcontrollerinfo-line {
30+
color: $foreground-2;
31+
display: block;
32+
font-size: $body-font-size-base;
33+
padding-bottom: 0;
34+
}
35+
36+
.kd-replicationcontrollerinfo-subline {
37+
color: $foreground-1;
38+
display: block;
39+
font-size: $body-font-size-base;
40+
overflow: hidden;
41+
padding-bottom: $baseline-grid;
42+
text-overflow: ellipsis;
43+
44+
&.kd-has-labels {
45+
// To offset for labels margin.
46+
margin-bottom: -$baseline-grid / 2;
47+
}
48+
}
49+
50+
.kd-replicationcontrollerinfo-info {
51+
// 6px needed to offset for md-button padding.
52+
padding-left: $baseline-grid + 6px;
53+
}

0 commit comments

Comments
 (0)