blob: 18f486889495868681b2cb4ab4097899b4a4976f [file] [log] [blame]
Dixsie Wolmersc4b87572021-10-07 16:15:50 -05001<template>
2 <div>
3 <page-section>
4 <b-row>
5 <b-col md="3">
6 <dl>
7 <dt>{{ $t('pageNetwork.linkStatus') }}</dt>
8 <dd>
9 {{ dataFormatter(linkStatus) }}
10 </dd>
11 </dl>
12 </b-col>
13 <b-col md="3">
14 <dl>
15 <dt>{{ $t('pageNetwork.speed') }}</dt>
16 <dd>
17 {{ dataFormatter(linkSpeed) }}
18 </dd>
19 </dl>
20 </b-col>
21 </b-row>
22 </page-section>
23 <page-section :section-title="$t('pageNetwork.interfaceSection')">
24 <b-row>
25 <b-col md="3">
26 <dl>
Dixsie Wolmers12dc20c2021-12-03 14:29:26 -060027 <dt>
28 {{ $t('pageNetwork.fqdn') }}
29 </dt>
Dixsie Wolmersc4b87572021-10-07 16:15:50 -050030 <dd>
31 {{ dataFormatter(fqdn) }}
32 </dd>
33 </dl>
34 </b-col>
35 <b-col md="3">
36 <dl class="text-nowrap">
Dixsie Wolmers12dc20c2021-12-03 14:29:26 -060037 <dt>
38 {{ $t('pageNetwork.macAddress') }}
39 <b-button
40 variant="link"
41 class="p-1"
42 @click="initMacAddressModal()"
43 >
44 <icon-edit
45 :title="$t('pageNetwork.modal.editMacAddressTitle')"
46 />
47 </b-button>
48 </dt>
Dixsie Wolmersc4b87572021-10-07 16:15:50 -050049 <dd>
50 {{ dataFormatter(macAddress) }}
51 </dd>
52 </dl>
53 </b-col>
54 </b-row>
55 </page-section>
56 </div>
57</template>
58
59<script>
60import BVToastMixin from '@/components/Mixins/BVToastMixin';
Dixsie Wolmers12dc20c2021-12-03 14:29:26 -060061import IconEdit from '@carbon/icons-vue/es/edit/16';
Dixsie Wolmersc4b87572021-10-07 16:15:50 -050062import PageSection from '@/components/Global/PageSection';
63import DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
64import { mapState } from 'vuex';
Surya Vde23ea22024-07-11 15:19:46 +053065import { useI18n } from 'vue-i18n';
jason westoverd36ac8a2025-11-03 20:58:59 -060066import { useModal } from 'bootstrap-vue-next';
Dixsie Wolmersc4b87572021-10-07 16:15:50 -050067
68export default {
69 name: 'Ipv4Table',
70 components: {
Dixsie Wolmers12dc20c2021-12-03 14:29:26 -060071 IconEdit,
Dixsie Wolmersc4b87572021-10-07 16:15:50 -050072 PageSection,
73 },
74 mixins: [BVToastMixin, DataFormatterMixin],
75 props: {
76 tabIndex: {
77 type: Number,
78 default: 0,
79 },
80 },
jason westoverd36ac8a2025-11-03 20:58:59 -060081 setup() {
82 const bvModal = useModal();
83 return { bvModal };
84 },
Dixsie Wolmersc4b87572021-10-07 16:15:50 -050085 data() {
86 return {
Surya Vde23ea22024-07-11 15:19:46 +053087 $t: useI18n().t,
Dixsie Wolmersc4b87572021-10-07 16:15:50 -050088 selectedInterface: '',
89 linkStatus: '',
90 linkSpeed: '',
91 fqdn: '',
92 macAddress: '',
jason westoverd36ac8a2025-11-03 20:58:59 -060093 showMacAddressModal: false,
Dixsie Wolmersc4b87572021-10-07 16:15:50 -050094 };
95 },
96 computed: {
97 ...mapState('network', ['ethernetData']),
98 },
99 watch: {
100 // Watch for change in tab index
101 tabIndex() {
102 this.getSettings();
103 },
104 },
105 created() {
106 this.getSettings();
107 this.$store.dispatch('network/getEthernetData').finally(() => {
108 // Emit initial data fetch complete to parent component
jason westoverd36ac8a2025-11-03 20:58:59 -0600109 require('@/eventBus').default.$emit(
110 'network-interface-settings-complete',
111 );
Dixsie Wolmersc4b87572021-10-07 16:15:50 -0500112 });
113 },
114 methods: {
115 getSettings() {
116 this.selectedInterface = this.tabIndex;
117 this.linkStatus = this.ethernetData[this.selectedInterface].LinkStatus;
118 this.linkSpeed = this.ethernetData[this.selectedInterface].SpeedMbps;
119 this.fqdn = this.ethernetData[this.selectedInterface].FQDN;
120 this.macAddress = this.ethernetData[this.selectedInterface].MACAddress;
121 },
Dixsie Wolmers12dc20c2021-12-03 14:29:26 -0600122 initMacAddressModal() {
jason westoverd36ac8a2025-11-03 20:58:59 -0600123 this.showMacAddressModal = true;
Dixsie Wolmers12dc20c2021-12-03 14:29:26 -0600124 },
Dixsie Wolmersc4b87572021-10-07 16:15:50 -0500125 },
126};
127</script>