xref: /openbmc/webui-vue/src/views/Settings/Network/NetworkInterfaceSettings.vue (revision de23ea23d88451a2fa2774ec72053772603c23ae)
1c4b8757eSDixsie Wolmers<template>
2c4b8757eSDixsie Wolmers  <div>
3c4b8757eSDixsie Wolmers    <page-section>
4c4b8757eSDixsie Wolmers      <b-row>
5c4b8757eSDixsie Wolmers        <b-col md="3">
6c4b8757eSDixsie Wolmers          <dl>
7c4b8757eSDixsie Wolmers            <dt>{{ $t('pageNetwork.linkStatus') }}</dt>
8c4b8757eSDixsie Wolmers            <dd>
9c4b8757eSDixsie Wolmers              {{ dataFormatter(linkStatus) }}
10c4b8757eSDixsie Wolmers            </dd>
11c4b8757eSDixsie Wolmers          </dl>
12c4b8757eSDixsie Wolmers        </b-col>
13c4b8757eSDixsie Wolmers        <b-col md="3">
14c4b8757eSDixsie Wolmers          <dl>
15c4b8757eSDixsie Wolmers            <dt>{{ $t('pageNetwork.speed') }}</dt>
16c4b8757eSDixsie Wolmers            <dd>
17c4b8757eSDixsie Wolmers              {{ dataFormatter(linkSpeed) }}
18c4b8757eSDixsie Wolmers            </dd>
19c4b8757eSDixsie Wolmers          </dl>
20c4b8757eSDixsie Wolmers        </b-col>
21c4b8757eSDixsie Wolmers      </b-row>
22c4b8757eSDixsie Wolmers    </page-section>
23c4b8757eSDixsie Wolmers    <page-section :section-title="$t('pageNetwork.interfaceSection')">
24c4b8757eSDixsie Wolmers      <b-row>
25c4b8757eSDixsie Wolmers        <b-col md="3">
26c4b8757eSDixsie Wolmers          <dl>
2712dc20c3SDixsie Wolmers            <dt>
2812dc20c3SDixsie Wolmers              {{ $t('pageNetwork.fqdn') }}
2912dc20c3SDixsie Wolmers            </dt>
30c4b8757eSDixsie Wolmers            <dd>
31c4b8757eSDixsie Wolmers              {{ dataFormatter(fqdn) }}
32c4b8757eSDixsie Wolmers            </dd>
33c4b8757eSDixsie Wolmers          </dl>
34c4b8757eSDixsie Wolmers        </b-col>
35c4b8757eSDixsie Wolmers        <b-col md="3">
36c4b8757eSDixsie Wolmers          <dl class="text-nowrap">
3712dc20c3SDixsie Wolmers            <dt>
3812dc20c3SDixsie Wolmers              {{ $t('pageNetwork.macAddress') }}
3912dc20c3SDixsie Wolmers              <b-button
4012dc20c3SDixsie Wolmers                variant="link"
4112dc20c3SDixsie Wolmers                class="p-1"
4212dc20c3SDixsie Wolmers                @click="initMacAddressModal()"
4312dc20c3SDixsie Wolmers              >
4412dc20c3SDixsie Wolmers                <icon-edit
4512dc20c3SDixsie Wolmers                  :title="$t('pageNetwork.modal.editMacAddressTitle')"
4612dc20c3SDixsie Wolmers                />
4712dc20c3SDixsie Wolmers              </b-button>
4812dc20c3SDixsie Wolmers            </dt>
49c4b8757eSDixsie Wolmers            <dd>
50c4b8757eSDixsie Wolmers              {{ dataFormatter(macAddress) }}
51c4b8757eSDixsie Wolmers            </dd>
52c4b8757eSDixsie Wolmers          </dl>
53c4b8757eSDixsie Wolmers        </b-col>
54c4b8757eSDixsie Wolmers      </b-row>
55c4b8757eSDixsie Wolmers    </page-section>
56c4b8757eSDixsie Wolmers  </div>
57c4b8757eSDixsie Wolmers</template>
58c4b8757eSDixsie Wolmers
59c4b8757eSDixsie Wolmers<script>
60c4b8757eSDixsie Wolmersimport BVToastMixin from '@/components/Mixins/BVToastMixin';
6112dc20c3SDixsie Wolmersimport IconEdit from '@carbon/icons-vue/es/edit/16';
62c4b8757eSDixsie Wolmersimport PageSection from '@/components/Global/PageSection';
63c4b8757eSDixsie Wolmersimport DataFormatterMixin from '@/components/Mixins/DataFormatterMixin';
64c4b8757eSDixsie Wolmersimport { mapState } from 'vuex';
65*de23ea23SSurya Vimport { useI18n } from 'vue-i18n';
66c4b8757eSDixsie Wolmers
67c4b8757eSDixsie Wolmersexport default {
68c4b8757eSDixsie Wolmers  name: 'Ipv4Table',
69c4b8757eSDixsie Wolmers  components: {
7012dc20c3SDixsie Wolmers    IconEdit,
71c4b8757eSDixsie Wolmers    PageSection,
72c4b8757eSDixsie Wolmers  },
73c4b8757eSDixsie Wolmers  mixins: [BVToastMixin, DataFormatterMixin],
74c4b8757eSDixsie Wolmers  props: {
75c4b8757eSDixsie Wolmers    tabIndex: {
76c4b8757eSDixsie Wolmers      type: Number,
77c4b8757eSDixsie Wolmers      default: 0,
78c4b8757eSDixsie Wolmers    },
79c4b8757eSDixsie Wolmers  },
80c4b8757eSDixsie Wolmers  data() {
81c4b8757eSDixsie Wolmers    return {
82*de23ea23SSurya V      $t: useI18n().t,
83c4b8757eSDixsie Wolmers      selectedInterface: '',
84c4b8757eSDixsie Wolmers      linkStatus: '',
85c4b8757eSDixsie Wolmers      linkSpeed: '',
86c4b8757eSDixsie Wolmers      fqdn: '',
87c4b8757eSDixsie Wolmers      macAddress: '',
88c4b8757eSDixsie Wolmers    };
89c4b8757eSDixsie Wolmers  },
90c4b8757eSDixsie Wolmers  computed: {
91c4b8757eSDixsie Wolmers    ...mapState('network', ['ethernetData']),
92c4b8757eSDixsie Wolmers  },
93c4b8757eSDixsie Wolmers  watch: {
94c4b8757eSDixsie Wolmers    // Watch for change in tab index
95c4b8757eSDixsie Wolmers    tabIndex() {
96c4b8757eSDixsie Wolmers      this.getSettings();
97c4b8757eSDixsie Wolmers    },
98c4b8757eSDixsie Wolmers  },
99c4b8757eSDixsie Wolmers  created() {
100c4b8757eSDixsie Wolmers    this.getSettings();
101c4b8757eSDixsie Wolmers    this.$store.dispatch('network/getEthernetData').finally(() => {
102c4b8757eSDixsie Wolmers      // Emit initial data fetch complete to parent component
103c4b8757eSDixsie Wolmers      this.$root.$emit('network-interface-settings-complete');
104c4b8757eSDixsie Wolmers    });
105c4b8757eSDixsie Wolmers  },
106c4b8757eSDixsie Wolmers  methods: {
107c4b8757eSDixsie Wolmers    getSettings() {
108c4b8757eSDixsie Wolmers      this.selectedInterface = this.tabIndex;
109c4b8757eSDixsie Wolmers      this.linkStatus = this.ethernetData[this.selectedInterface].LinkStatus;
110c4b8757eSDixsie Wolmers      this.linkSpeed = this.ethernetData[this.selectedInterface].SpeedMbps;
111c4b8757eSDixsie Wolmers      this.fqdn = this.ethernetData[this.selectedInterface].FQDN;
112c4b8757eSDixsie Wolmers      this.macAddress = this.ethernetData[this.selectedInterface].MACAddress;
113c4b8757eSDixsie Wolmers    },
11412dc20c3SDixsie Wolmers    initMacAddressModal() {
11512dc20c3SDixsie Wolmers      this.$bvModal.show('modal-mac-address');
11612dc20c3SDixsie Wolmers    },
117c4b8757eSDixsie Wolmers  },
118c4b8757eSDixsie Wolmers};
119c4b8757eSDixsie Wolmers</script>
120