Skip to content

Commit bc11432

Browse files
committed
Merge pull request #295 from floreks/ux-styling
UX changes and styling of replica set detail page
2 parents 019253b + 8248b5e commit bc11432

File tree

7 files changed

+79
-11
lines changed

7 files changed

+79
-11
lines changed

src/app/frontend/_variables.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
}
2121

2222
$display-4-font-size-base: rem(11.2) !default;
23+
$display-1-font-size-base: rem(3.4) !default;
2324
$headline-font-size-base: rem(2.4) !default;
2425
$subhead-font-size-base: rem(1.6) !default;
2526
$body-font-size-base: rem(1.4) !default;

src/app/frontend/chrome/chrome.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,8 @@ a {
8181
}
8282
}
8383
}
84+
85+
// Disables animation on md-tab switch. Avoids some flickering and is simpler.
86+
[role='tabpanel'] {
87+
transition: none;
88+
}

src/app/frontend/index_config.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,15 @@
1919
export default function config($mdThemingProvider) {
2020
// Create a color palette that uses Kubernetes colors.
2121
let kubernetesColorPaletteName = 'kubernetesColorPalette';
22+
let kubernetesAccentPaletteName = 'kubernetesAccentPallete';
2223
let kubernetesColorPalette = $mdThemingProvider.extendPalette('blue', {
2324
'500': '326de6',
2425
});
2526

2627
// Use the palette as default one.
2728
$mdThemingProvider.definePalette(kubernetesColorPaletteName, kubernetesColorPalette);
28-
$mdThemingProvider.theme('default').primaryPalette(kubernetesColorPaletteName);
29+
$mdThemingProvider.definePalette(kubernetesAccentPaletteName, kubernetesColorPalette);
30+
$mdThemingProvider.theme('default')
31+
.primaryPalette(kubernetesColorPaletteName)
32+
.accentPalette(kubernetesAccentPaletteName);
2933
}

src/app/frontend/replicasetdetail/replicasetdetail.html

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,12 @@ <h1 flex class="md-title kd-replicasetdetail-app-name">
3434
<div layout="row" flex="nogrow">
3535
<md-button class="md-primary" ng-click="ctrl.handleDeleteReplicaSetDialog()">
3636
<md-icon class="material-icons">delete</md-icon>
37-
DELETE
37+
DELETE REPLICA SET
3838
</md-button>
3939
</div>
40+
<span class="kd-replicasetdetail-sidebar-title kd-replicasetdetail-sidebar-info">
41+
Replica set
42+
</span>
4043
<div flex layout="column" class="kd-replicasetdetail-sidebar-info">
4144
<span class="kd-replicasetdetail-sidebar-line">Name</span>
4245
<span class="kd-replicasetdetail-sidebar-subline">
@@ -251,7 +254,7 @@ <h1 flex class="md-title kd-replicasetdetail-app-name">
251254
</md-content>
252255
</md-tab>
253256
<md-tab label="Events">
254-
<md-content flex>
257+
<md-content flex ng-if="ctrl.hasEvents()">
255258
<div class="kd-replicasetdetail-options" layout="row">
256259
<md-input-container class="kd-replicasetdetail-option-picker">
257260
<label>Type</label>
@@ -270,7 +273,7 @@ <h1 flex class="md-title kd-replicasetdetail-app-name">
270273
<th class="kd-replicasetdetail-table-header">
271274
<kd-sorted-header currently-selected-column="ctrl.sortEventsBy"
272275
currently-selected-order="ctrl.eventsOrder"
273-
column-name="message" tooltip="Event message">
276+
column-name="message">
274277
Message
275278
</kd-sorted-header>
276279
</th>
@@ -285,7 +288,7 @@ <h1 flex class="md-title kd-replicasetdetail-app-name">
285288
<th class="kd-replicasetdetail-table-header">
286289
<kd-sorted-header currently-selected-column="ctrl.sortEventsBy"
287290
currently-selected-order="ctrl.eventsOrder"
288-
column-name="object" tooltip="Sub-object of the event">
291+
column-name="object">
289292
Sub-object
290293
</kd-sorted-header>
291294
</th>
@@ -336,6 +339,15 @@ <h1 flex class="md-title kd-replicasetdetail-app-name">
336339
</tr>
337340
</tbody>
338341
</table>
342+
</md-content>
343+
<md-content class="kd-replicasetdetail-no-events" ng-if="!ctrl.hasEvents()">
344+
<md-icon class="material-icons kd-replicasetdetail-no-events-icon">info_outline</md-icon>
345+
<div class="kd-replicasetdetail-no-events-text">No events were found</div>
346+
<span class="kd-replicasetdetail-no-events-info">
347+
There are no events to display. It's possible that all of them have expired.
348+
<a href="">Learn more</a>
349+
</span>
350+
</md-content>
339351
</md-tab>
340352
</md-tabs>
341353
</md-content>

src/app/frontend/replicasetdetail/replicasetdetail.scss

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,13 @@ $table-cell-height-half: $table-cell-height / 2;
5353
font-weight: $bold-font-weight;
5454
padding-bottom: $baseline-grid;
5555
padding-top: $baseline-grid;
56-
57-
&.kd-replicasetdetail-sidebar-info {
58-
padding-bottom: 0;
59-
padding-top: 2 * $baseline-grid;
60-
}
6156
}
6257

6358
.kd-replicasetdetail-sidebar-line {
6459
color: $foreground-2;
6560
display: block;
6661
font-size: $body-font-size-base;
67-
padding-bottom: $baseline-grid;
62+
padding-bottom: 0;
6863
}
6964

7065
.kd-replicasetdetail-sidebar-subline {
@@ -134,3 +129,27 @@ $table-cell-height-half: $table-cell-height / 2;
134129
color: $foreground-2;
135130
cursor: default;
136131
}
132+
133+
.kd-replicasetdetail-no-events {
134+
margin-top: 4 * $baseline-grid;
135+
text-align: center;
136+
}
137+
138+
md-icon {
139+
&.kd-replicasetdetail-no-events-icon {
140+
color: $muted;
141+
font-size: $display-1-font-size-base;
142+
margin: 0 (2 * $baseline-grid) (2 * $baseline-grid) 0;
143+
}
144+
}
145+
146+
.kd-replicasetdetail-no-events-text {
147+
color: $muted;
148+
font-size: $headline-font-size-base;
149+
margin-bottom: $baseline-grid;
150+
}
151+
152+
.kd-replicasetdetail-no-events-info {
153+
color: $delicate;
154+
font-size: $subhead-font-size-base;
155+
}

src/app/frontend/replicasetdetail/replicasetdetail_controller.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,14 @@ export default class ReplicaSetDetailController {
115115
*/
116116
isEventWarning(event) { return event.type === EVENT_TYPE_WARNING; }
117117

118+
/**
119+
* Returns true if there are events to display.
120+
*
121+
* @returns {boolean}
122+
* @export
123+
*/
124+
hasEvents() { return this.events !== undefined && this.events.length > 0; }
125+
118126
/**
119127
* Handles event filtering by type and source.
120128
* @export

src/test/frontend/replicasetdetail/replicasetdetail_controller_test.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,4 +124,23 @@ describe('Replica Set Detail controller', () => {
124124
// then
125125
expect(kdReplicaSetService.showDeleteDialog).toHaveBeenCalled();
126126
});
127+
128+
it('should return true when there are events to display', () => {
129+
// given
130+
ctrl.events = ["Some event"];
131+
132+
// when
133+
let result = ctrl.hasEvents();
134+
135+
// then
136+
expect(result).toBeTruthy();
137+
});
138+
139+
it('should return false if there are no events to display', () => {
140+
// when
141+
let result = ctrl.hasEvents();
142+
143+
// then
144+
expect(result).toBeFalsy();
145+
});
127146
});

0 commit comments

Comments
 (0)