diff options
author | Maksim Zakharov <m.zakharov@IBS.RU> | 2022-09-09 14:10:03 +0300 |
---|---|---|
committer | Maksim Zakharov <m.zakharov@IBS.RU> | 2022-09-09 14:10:03 +0300 |
commit | c2d0cfa676eb57602d3bb3c44c6b7965f84b82da (patch) | |
tree | dbed4007384c11de2bb37a7262255a3e4d887700 | |
parent | b1e69d3cdfbd682c8eaab1246f62be5bfe1a07e9 (diff) | |
download | webui-vue-c2d0cfa676eb57602d3bb3c44c6b7965f84b82da.tar.xz |
smnp-layout
-rw-r--r-- | src/env/components/AppNavigation/sila.js | 5 | ||||
-rw-r--r-- | src/env/router/sila.js | 9 | ||||
-rw-r--r-- | src/locales/en-US.json | 17 | ||||
-rw-r--r-- | src/locales/ru-RU.json | 17 | ||||
-rw-r--r-- | src/store/index.js | 2 | ||||
-rw-r--r-- | src/store/modules/Settings/SmtpStore.js | 43 | ||||
-rw-r--r-- | src/views/_sila/Overview/Overview.vue | 10 | ||||
-rw-r--r-- | src/views/_sila/Settings/TransferInfo/Smnp.vue | 77 | ||||
-rw-r--r-- | src/views/_sila/Settings/TransferInfo/Syslog.vue | 49 | ||||
-rw-r--r-- | src/views/_sila/Settings/TransferInfo/Transfer.vue | 35 | ||||
-rw-r--r-- | src/views/_sila/Settings/TransferInfo/WarningSmnp.vue | 57 | ||||
-rw-r--r-- | src/views/_sila/Settings/TransferInfo/WarningSmtp.vue | 128 | ||||
-rw-r--r-- | src/views/_sila/Settings/TransferInfo/index.js | 2 |
13 files changed, 451 insertions, 0 deletions
diff --git a/src/env/components/AppNavigation/sila.js b/src/env/components/AppNavigation/sila.js index acfbde52..cf30f77e 100644 --- a/src/env/components/AppNavigation/sila.js +++ b/src/env/components/AppNavigation/sila.js @@ -181,6 +181,11 @@ const AppNavigationMixin = { label: this.$t('appNavigation.powerRestorePolicy'), route: '/settings/power-restore-policy', }, + { + id: 'settings/transfer', + label: this.$t('appPageTitle.transfer'), + route: '/settings/transfer', + }, ], }, { diff --git a/src/env/router/sila.js b/src/env/router/sila.js index e7c4b19c..eb1ac1e7 100644 --- a/src/env/router/sila.js +++ b/src/env/router/sila.js @@ -36,6 +36,7 @@ import FansDynamic from '@/views/_sila/Fans/Dynamic'; import MotherboardDynamic from '@/views/_sila/Motherboard/Dynamic'; import PowerStatic from '@/views/_sila/Power/Static'; import PowerDynamic from '@/views/_sila/Power/Dynamic'; +import TransferInfo from '@/views/_sila/Settings/TransferInfo'; import i18n from '@/i18n'; @@ -280,6 +281,14 @@ const routes = [ }, }, { + path: '/settings/transfer', + name: 'transfer', + component: TransferInfo, + meta: { + title: i18n.t('appPageTitle.transfer'), + }, + }, + { path: '/resource-management/power', name: 'power', component: Power, diff --git a/src/locales/en-US.json b/src/locales/en-US.json index d8338e16..705f8e92 100644 --- a/src/locales/en-US.json +++ b/src/locales/en-US.json @@ -209,6 +209,7 @@ "virtualMedia": "Virtual media", "keyClear": "Key clear", "specification": "Specification", + "transfer": "Communication settings", "pciDevices": "PCI-devices" }, "pageChangePassword": { @@ -1143,6 +1144,22 @@ "deviceClass": "Device Class" } }, + "pageTransfer": { + "title": "Setting up information transfer", + "saveSmtpSuсcess": "Save SMTP successfully.", + "saveSmtpError": "Save SMTP error.", + "smtp": { + "smtpTitle": "Warning SMTP", + "username": "Username", + "password": "Password", + "host": "SMTP-server", + "port": "SMTP-port" + }, + "table": { + "userName": "User name", + "value": "Value" + } + }, "countries": { "AF": "Afghanistan", "AL": "Albania", diff --git a/src/locales/ru-RU.json b/src/locales/ru-RU.json index eacd2a7a..2c5fd793 100644 --- a/src/locales/ru-RU.json +++ b/src/locales/ru-RU.json @@ -209,6 +209,7 @@ "virtualMedia": "Виртуальные носители", "keyClear": "Удаление ключей", "specification": "Характеристики", + "transfer": "Настройки передачи информации", "pciDevices": "PCI-устройства" }, "pageChangePassword": { @@ -1143,6 +1144,22 @@ "deviceClass": "Класс девайса" } }, + "pageTransfer": { + "title": "Настройка передачи информации", + "saveSmtpSuсcess": "Настройки SMTP успешно сохранены.", + "saveSmtpError": "Ошибка сохранения настроек SMTP.", + "smtp": { + "smtpTitle": "Предупреждения SMTP", + "username": "Имя пользователя", + "password": "Пароль", + "host": "SMTP-сервер", + "port": "SMTP-порт" + }, + "table": { + "userName": "Имя пользователя", + "value": "Значение" + } + }, "countries": { "AF": "Афганистан", "AL": "Албания", diff --git a/src/store/index.js b/src/store/index.js index a4dd16ed..ba7cdf99 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -30,6 +30,7 @@ import PoliciesStore from './modules/SecurityAndAccess/PoliciesStore'; import FactoryResetStore from './modules/Operations/FactoryResetStore'; import KeyClearStore from './modules/Operations/KeyClearStore'; import PciStore from './modules/HardwareStatus/PciStore'; +import SmtpStore from './modules/Settings/SmtpStore'; import WebSocketPlugin from './plugins/WebSocketPlugin'; import DateTimeStore from './modules/Settings/DateTimeStore'; @@ -73,6 +74,7 @@ export default new Vuex.Store({ factoryReset: FactoryResetStore, keyClear: KeyClearStore, pciStore: PciStore, + smtpStore: SmtpStore, }, plugins: [WebSocketPlugin], }); diff --git a/src/store/modules/Settings/SmtpStore.js b/src/store/modules/Settings/SmtpStore.js new file mode 100644 index 00000000..ccb0eb48 --- /dev/null +++ b/src/store/modules/Settings/SmtpStore.js @@ -0,0 +1,43 @@ +import api from '@/store/api'; +import i18n from '@/i18n'; + +const SmtpStore = { + namespaced: true, + state: { smtp: {} }, + getters: { smtpSettings: (state) => state.smtp }, + mutations: { + saveSmtpSettings: (state, data) => (state.smtp = data), + }, + actions: { + async setSmtpSettings({ commit }, payload) { + return await api + .get( + `/redfish/v1/Smtp/ChangeParameters/ + &user=${payload.user} + &password=${payload.password} + &host=smtp.${payload.host} + &port=${payload.port}` + ) + .then(() => { + commit('saveSmtpSettings', payload); + return i18n.t('pageTransfer.saveSmtpSuсcess'); + }) + .catch((error) => { + console.log(error); + throw new Error(i18n.t('pageTransfer.saveSmtpError')); + }); + }, + async sendTestMessage(payload) { + return await api.get( + `redfish/v1/Smtp/SendMail + &from=${payload.from} + &to=${payload.subscribers} + &subject=theme + &text=text + ` + ); + }, + }, +}; + +export default SmtpStore; diff --git a/src/views/_sila/Overview/Overview.vue b/src/views/_sila/Overview/Overview.vue index 9f97fb3e..c3928789 100644 --- a/src/views/_sila/Overview/Overview.vue +++ b/src/views/_sila/Overview/Overview.vue @@ -5,6 +5,16 @@ <page-section :section-title="$t('pageOverview.systemInformation')" class="mb-1" + @overviewEventsComplete=" + () => { + console.log('как подключить веб камеру к ноутбуку'); + } + " + @overview-firmware-complete=" + () => { + console.log('как подключить веб камеру к ноутбуку'); + } + " > <b-card-group deck> <overview-server /> diff --git a/src/views/_sila/Settings/TransferInfo/Smnp.vue b/src/views/_sila/Settings/TransferInfo/Smnp.vue new file mode 100644 index 00000000..f3a7a183 --- /dev/null +++ b/src/views/_sila/Settings/TransferInfo/Smnp.vue @@ -0,0 +1,77 @@ +<template> + <page-section :section-title="$t('pageLdap.settings')"> + <b-row class="mt-4"> + <b-col xs="12" sm="6" lg="4"> + <b-form-group label="Расположение системы" label-for="system-location"> + <b-form-input + id="system-location" + placeholder="Ведите значение" + :disabled="$store.getters['authentication/role'] === 'ReadOnly'" + /> </b-form-group + ></b-col> + <b-col xs="12" sm="6" lg="4"> + <b-form-group label="Контакты системы" label-for="system-contacts"> + <b-form-input + id="system-contacts" + placeholder="Ведите значение" + :disabled="$store.getters['authentication/role'] === 'ReadOnly'" + /> + </b-form-group> + </b-col> + <b-col xs="12" sm="6" lg="4"> + <b-form-group label="Community String" label-for="Community String"> + <b-form-input + id="community-string" + placeholder="Ведите значение" + :disabled="$store.getters['authentication/role'] === 'ReadOnly'" + /> + </b-form-group> + </b-col> + <b-col xs="12" sm="6" lg="4"> + <b-form-group label="IP адрес SMNP" label-for="ip-smnp"> + <b-form-input + id="ip-smnp" + placeholder="Ведите значение" + :disabled="$store.getters['authentication/role'] === 'ReadOnly'" + /> </b-form-group + ></b-col> + <b-col xs="12" sm="6" lg="4"> + <b-form-group label="Контакты системы" label-for="SMNP-port"> + <b-form-input + id="SMNP-port" + placeholder="Ведите значение" + :disabled="$store.getters['authentication/role'] === 'ReadOnly'" + /> + </b-form-group> + </b-col> + <b-col xs="12" sm="6" lg="4"> + <b-form-group label="Статус" label-for="SMNP-status"> + <b-form-select id="SMNP-status"> </b-form-select> + </b-form-group> + </b-col> + </b-row> + <b-row> + <b-col class="d-flex justify-content-end"> + <b-button variant="primary"> + {{ $t('global.action.save') }} + </b-button> + </b-col> + </b-row> + </page-section> +</template> + +<script> +import PageSection from '@/components/_sila/Global/PageSection'; + +export default { + name: 'Smnp', + components: { + PageSection, + }, + + data() { + return {}; + }, + computed: {}, +}; +</script> diff --git a/src/views/_sila/Settings/TransferInfo/Syslog.vue b/src/views/_sila/Settings/TransferInfo/Syslog.vue new file mode 100644 index 00000000..1d2111c9 --- /dev/null +++ b/src/views/_sila/Settings/TransferInfo/Syslog.vue @@ -0,0 +1,49 @@ +<template> + <page-section :section-title="$t('pageLdap.settings')"> + <b-row class="mt-4 justify-content-end"> + <b-col xs="12" sm="6" lg="4"> + <b-form-group label="Расположение системы" label-for="system-location"> + <b-form-input + id="system-location" + placeholder="Ведите значение" + :disabled="$store.getters['authentication/role'] === 'ReadOnly'" + /> </b-form-group + ></b-col> + <b-col xs="12" sm="6" lg="4"> + <b-form-group label="Контакты системы" label-for="system-contacts"> + <b-form-input + id="system-contacts" + placeholder="Ведите значение" + :disabled="$store.getters['authentication/role'] === 'ReadOnly'" + /> + </b-form-group> + </b-col> + <b-col xs="12" sm="6" lg="4"> + <b-form-group label="Статус" label-for="SMNP-status"> + <b-form-select id="SMNP-status"> </b-form-select> + </b-form-group> + </b-col> + <b-col xs="4" class="d-flex justify-content-end align-items-start"> + <b-button variant="primary"> + {{ $t('global.action.save') }} + </b-button> + </b-col> + </b-row> + </page-section> +</template> + +<script> +import PageSection from '@/components/_sila/Global/PageSection'; + +export default { + name: 'Syslog', + components: { + PageSection, + }, + + data() { + return {}; + }, + computed: {}, +}; +</script> diff --git a/src/views/_sila/Settings/TransferInfo/Transfer.vue b/src/views/_sila/Settings/TransferInfo/Transfer.vue new file mode 100644 index 00000000..921087e5 --- /dev/null +++ b/src/views/_sila/Settings/TransferInfo/Transfer.vue @@ -0,0 +1,35 @@ +<template> + <b-container fluid="xl"> + <page-title :description="$t('pageTransfer.title')" /> + <smnp /> + <warning-smnp /> + <warning-smtp /> + <syslog /> + </b-container> +</template> + +<script> +import PageTitle from '@/components/_sila/Global/PageTitle'; +// import Smnp from './Smnp'; +// import WarningSmnp from './WarningSmnp'; +import WarningSmtp from './WarningSmtp'; +// import Syslog from './Syslog'; + +export default { + name: 'PowerRestorePolicy', + components: { + PageTitle, + // Smnp, + // WarningSmnp, + WarningSmtp, + // Syslog + }, + + data() { + return { + policyValue: null, + options: [], + }; + }, +}; +</script> diff --git a/src/views/_sila/Settings/TransferInfo/WarningSmnp.vue b/src/views/_sila/Settings/TransferInfo/WarningSmnp.vue new file mode 100644 index 00000000..df97d1a1 --- /dev/null +++ b/src/views/_sila/Settings/TransferInfo/WarningSmnp.vue @@ -0,0 +1,57 @@ +<template> + <page-section section-title="Предупреждения SNmP"> + <b-row> + <b-col> + <b-table + hover + responsive="md" + show-empty + :items="items" + :fields="fields" + :empty-text="$t('global.table.emptyMessage')" + > + </b-table> + </b-col> + </b-row> + <b-row> + <b-col class="d-flex justify-content-end flex-wrap"> + <b-button variant="secondary" class="mr-3 mb-3"> + {{ 'Тестовое сообщение' }} + </b-button> + <b-button variant="primary" class="mb-3"> + {{ $t('global.action.save') }} + </b-button> + </b-col> + </b-row> + </page-section> +</template> + +<script> +import PageSection from '@/components/_sila/Global/PageSection'; + +export default { + name: 'WarningSmnp', + components: { + PageSection, + }, + + data() { + return { + fields: [ + { + key: 'id', + label: 'Тип предупреждения', + formatter: this.dataFormatter, + }, + { + key: 'health', + label: 'Значение', + formatter: this.dataFormatter, + tdClass: 'text-nowrap', + }, + ], + }; + }, + computed: {}, +}; +</script> diff --git a/src/views/_sila/Settings/TransferInfo/WarningSmtp.vue b/src/views/_sila/Settings/TransferInfo/WarningSmtp.vue new file mode 100644 index 00000000..8372acca --- /dev/null +++ b/src/views/_sila/Settings/TransferInfo/WarningSmtp.vue @@ -0,0 +1,128 @@ +<template> + <page-section :section-title="$t('pageTransfer.smtp.smtpTitle')"> + <b-row class="mt-4"> + <b-col xs="12" sm="6" lg="4"> + <b-form-group + :label="$t('pageTransfer.smtp.username')" + label-for="smtp-name" + > + <b-form-input + id="smtp-name" + v-model="form.name" + :disabled="$store.getters['authentication/role'] === 'ReadOnly'" + /> </b-form-group + ></b-col> + <b-col xs="12" sm="6" lg="4"> + <b-form-group + :label="$t('pageTransfer.smtp.password')" + label-for="smtp-password" + > + <input-password-toggle> + <b-form-input + id="smtp-password" + v-model="form.password" + type="password" + :disabled="$store.getters['authentication/role'] === 'ReadOnly'" + /> + </input-password-toggle> + </b-form-group> + </b-col> + <b-col xs="12" sm="6" lg="4"> + <b-form-group + :label="$t('pageTransfer.smtp.host')" + label-for="smtp-host" + > + <b-form-input + id="smtp-host" + v-model="form.host" + :disabled="$store.getters['authentication/role'] === 'ReadOnly'" + /> + </b-form-group> + </b-col> + <b-col xs="12" sm="6" lg="4"> + <b-form-group + :label="$t('pageTransfer.smtp.port')" + label-for="smtp-port" + > + <b-form-input + id="smtp-port" + v-model="form.port" + type="number" + :disabled="$store.getters['authentication/role'] === 'ReadOnly'" + /> + </b-form-group> + </b-col> + <b-col xs="4" class="d-flex justify-content-end align-items-start"> + <b-button variant="primary" @click="saveSmtp"> + {{ $t('global.action.save') }} + </b-button> + </b-col> + </b-row> + <b-row> + <b-col> + <b-table + hover + responsive="md" + show-empty + :fields="fields" + :empty-text="$t('global.table.emptyMessage')" + > + </b-table> + </b-col> + </b-row> + </page-section> +</template> + +<script> +import PageSection from '@/components/_sila/Global/PageSection'; +import BVToastMixin from '@/components/_sila/Mixins/BVToastMixin'; +import DataFormatterMixin from '@/components/_sila/Mixins/DataFormatterMixin'; +import InputPasswordToggle from '@/components/_sila/Global/InputPasswordToggle'; + +export default { + name: 'WarningSmnp', + components: { + PageSection, + InputPasswordToggle, + }, + mixins: [BVToastMixin, DataFormatterMixin], + + data() { + return { + form: { + name: '', + password: '', + host: '', + port: '', + }, + fields: [ + { + key: 'name', + label: this.$t('pageTransfer.table.userName'), + formatter: this.dataFormatter, + }, + { + key: 'value', + label: this.$t('pageTransfer.table.value'), + formatter: this.dataFormatter, + tdClass: 'text-nowrap', + }, + ], + }; + }, + methods: { + saveSmtp() { + this.$store + .dispatch('smtpStore/setSmtpSettings', this.form) + .then((message) => this.successToast(message)) + .catch(({ message }) => this.errorToast(message)); + }, + sendMail() { + this.$store + .dispatch('smtpStore/sendTestMessage') + .then((message) => this.successToast(message)) + .catch(({ message }) => this.errorToast(message)); + }, + }, +}; +</script> diff --git a/src/views/_sila/Settings/TransferInfo/index.js b/src/views/_sila/Settings/TransferInfo/index.js new file mode 100644 index 00000000..50508f66 --- /dev/null +++ b/src/views/_sila/Settings/TransferInfo/index.js @@ -0,0 +1,2 @@ +import Transfer from './Transfer.vue'; +export default Transfer; |