summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/env/components/AppNavigation/sila.js5
-rw-r--r--src/env/router/sila.js9
-rw-r--r--src/locales/en-US.json17
-rw-r--r--src/locales/ru-RU.json17
-rw-r--r--src/store/index.js2
-rw-r--r--src/store/modules/Settings/SmtpStore.js43
-rw-r--r--src/views/_sila/Overview/Overview.vue10
-rw-r--r--src/views/_sila/Settings/TransferInfo/Smnp.vue77
-rw-r--r--src/views/_sila/Settings/TransferInfo/Syslog.vue49
-rw-r--r--src/views/_sila/Settings/TransferInfo/Transfer.vue35
-rw-r--r--src/views/_sila/Settings/TransferInfo/WarningSmnp.vue57
-rw-r--r--src/views/_sila/Settings/TransferInfo/WarningSmtp.vue128
-rw-r--r--src/views/_sila/Settings/TransferInfo/index.js2
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;