Skip to content

Commit bd75fed

Browse files
Sukanya Pandeyrfrandse
authored andcommitted
Add system information on Appheader page
- Model type and serial number are newly added system info data on Appheader. - On small screens and below system information(model type, serial number and asset tag) will be hidden. - On large screen and below model type and serial number will be visible but asset tag will be hidden. - For all other screens all the system info will be visible. Signed-off-by: Sukanya Pandey <[email protected]> Change-Id: Ia844a26f658083cbd5fa9c8f3f6bea8b65ddcd11
1 parent 2e2f06d commit bd75fed

File tree

3 files changed

+51
-13
lines changed

3 files changed

+51
-13
lines changed

src/components/AppHeader/AppHeader.vue

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,11 @@
4141
:alt="altLogo"
4242
/>
4343
</b-navbar-brand>
44-
<div v-if="assetTag" class="asset-tag">
45-
<span class="pr-2">|</span>
46-
<span>{{ assetTag }}</span>
44+
<div v-if="isNavTagPresent" class="pl-2 nav-tags">
45+
<span>|</span>
46+
<span class="pl-3 asset-tag">{{ assetTag }}</span>
47+
<span class="pl-3">{{ modelType }}</span>
48+
<span class="pl-3">{{ serialNumber }}</span>
4749
</div>
4850
</b-navbar-nav>
4951
<!-- Right aligned nav items -->
@@ -132,9 +134,18 @@ export default {
132134
};
133135
},
134136
computed: {
137+
isNavTagPresent() {
138+
return this.assetTag || this.modelType || this.serialNumber;
139+
},
135140
assetTag() {
136141
return this.$store.getters['global/assetTag'];
137142
},
143+
modelType() {
144+
return this.$store.getters['global/modelType'];
145+
},
146+
serialNumber() {
147+
return this.$store.getters['global/serialNumber'];
148+
},
138149
isAuthorized() {
139150
return this.$store.getters['global/isAuthorized'];
140151
},
@@ -186,7 +197,7 @@ export default {
186197
// Reset auth state to check if user is authenticated based
187198
// on available browser cookies
188199
this.$store.dispatch('authentication/resetStoreState');
189-
this.getServerInfo();
200+
this.getSystemInfo();
190201
this.getEvents();
191202
},
192203
mounted() {
@@ -196,8 +207,8 @@ export default {
196207
);
197208
},
198209
methods: {
199-
getServerInfo() {
200-
this.$store.dispatch('global/getServerStatus');
210+
getSystemInfo() {
211+
this.$store.dispatch('global/getSystemInfo');
201212
},
202213
getEvents() {
203214
this.$store.dispatch('eventLog/getEventLogData');
@@ -284,22 +295,32 @@ export default {
284295
285296
.responsive-text {
286297
@include media-breakpoint-down(xs) {
287-
display: none;
298+
@include sr-only;
288299
}
289300
}
290301
}
291302
}
292303
293304
.navbar-nav {
294-
padding: 0 $spacer;
305+
@include media-breakpoint-up($responsive-layout-bp) {
306+
padding: 0 $spacer;
307+
}
295308
align-items: center;
296309
297310
.navbar-brand,
298311
.nav-link {
299312
transition: $focus-transition;
300313
}
301-
.asset-tag {
314+
.nav-tags {
302315
color: theme-color-level(light, 3);
316+
@include media-breakpoint-down(xs) {
317+
@include sr-only;
318+
}
319+
.asset-tag {
320+
@include media-breakpoint-down($responsive-layout-bp) {
321+
@include sr-only;
322+
}
323+
}
303324
}
304325
}
305326

src/store/modules/GlobalStore.js

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ const GlobalStore = {
3131
state: {
3232
assetTag: null,
3333
bmcTime: null,
34+
modelType: null,
35+
serialNumber: null,
3436
serverStatus: 'unreachable',
3537
languagePreference: localStorage.getItem('storedLanguage') || 'en-US',
3638
isUtcDisplay: localStorage.getItem('storedUtcDisplay')
@@ -41,6 +43,8 @@ const GlobalStore = {
4143
},
4244
getters: {
4345
assetTag: (state) => state.assetTag,
46+
modelType: (state) => state.modelType,
47+
serialNumber: (state) => state.serialNumber,
4448
serverStatus: (state) => state.serverStatus,
4549
bmcTime: (state) => state.bmcTime,
4650
languagePreference: (state) => state.languagePreference,
@@ -50,6 +54,9 @@ const GlobalStore = {
5054
},
5155
mutations: {
5256
setAssetTag: (state, assetTag) => (state.assetTag = assetTag),
57+
setModelType: (state, modelType) => (state.modelType = modelType),
58+
setSerialNumber: (state, serialNumber) =>
59+
(state.serialNumber = serialNumber),
5360
setBmcTime: (state, bmcTime) => (state.bmcTime = bmcTime),
5461
setServerStatus: (state, serverState) =>
5562
(state.serverStatus = serverStateMapper(serverState)),
@@ -75,12 +82,22 @@ const GlobalStore = {
7582
})
7683
.catch((error) => console.log(error));
7784
},
78-
getServerStatus({ commit }) {
85+
getSystemInfo({ commit }) {
7986
api
8087
.get('/redfish/v1/Systems/system')
8188
.then(
82-
({ data: { AssetTag, PowerState, Status: { State } = {} } } = {}) => {
89+
({
90+
data: {
91+
AssetTag,
92+
Model,
93+
PowerState,
94+
SerialNumber,
95+
Status: { State } = {},
96+
},
97+
} = {}) => {
8398
commit('setAssetTag', AssetTag);
99+
commit('setSerialNumber', SerialNumber);
100+
commit('setModelType', Model);
84101
if (State === 'Quiesced' || State === 'InTest') {
85102
// OpenBMC's host state interface is mapped to 2 Redfish
86103
// properties "Status""State" and "PowerState". Look first

tests/unit/AppHeader.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ describe('AppHeader.vue', () => {
6565
});
6666

6767
describe('Created lifecycle hook', () => {
68-
it('getServerInfo should dispatch global/getServerStatus', () => {
69-
wrapper.vm.getServerInfo();
68+
it('getSystemInfo should dispatch global/getSystemInfo', () => {
69+
wrapper.vm.getSystemInfo();
7070
expect(store.dispatch).toHaveBeenCalledTimes(1);
7171
});
7272

0 commit comments

Comments
 (0)