bfg-common 1.1.30 → 1.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/assets/localization/local_be.json +4 -1
  2. package/assets/localization/local_en.json +4 -1
  3. package/assets/localization/local_hy.json +4 -1
  4. package/assets/localization/local_kk.json +4 -1
  5. package/assets/localization/local_ru.json +4 -1
  6. package/assets/localization/local_zh.json +4 -1
  7. package/components/atoms/alert/Notification.vue +167 -167
  8. package/components/atoms/autocomplete/Autocomplete.vue +236 -236
  9. package/components/atoms/datepicker/Datepicker.vue +612 -612
  10. package/components/atoms/list/SelectList.vue +62 -62
  11. package/components/atoms/nav/NavBar.vue +116 -116
  12. package/components/atoms/nav/VerticalNavBar.vue +89 -89
  13. package/components/atoms/notificationBar/NotificationBar.vue +174 -174
  14. package/components/atoms/perPage/PerPage.vue +52 -52
  15. package/components/atoms/popup/SimplePopup.vue +90 -90
  16. package/components/atoms/step/VerticalStep.vue +104 -104
  17. package/components/atoms/switch/Switch.vue +107 -107
  18. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +204 -204
  19. package/components/atoms/table/dataGrid/DataGridPage.vue +189 -189
  20. package/components/atoms/tabs/Tabs.vue +189 -189
  21. package/components/atoms/tooltip/Signpost.vue +224 -224
  22. package/components/common/adapterManager/AddAdapterWarningModal.vue +82 -82
  23. package/components/common/adapterManager/NoActiveAdaptersModal.vue +62 -62
  24. package/components/common/adapterManager/NoConnectedActiveAdaptersModal.vue +62 -62
  25. package/components/common/browse/Browse.vue +182 -182
  26. package/components/common/browse/blocks/Title.vue +66 -66
  27. package/components/common/diagramMain/adapter/AdapterItem.vue +227 -227
  28. package/components/common/diagramMain/adapter/AdapterItems.vue +57 -57
  29. package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +339 -339
  30. package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +202 -202
  31. package/components/common/diagramMain/modals/remove/RemoveModal.vue +226 -226
  32. package/components/common/diagramMain/network/Contents.vue +238 -238
  33. package/components/common/feedback/Buttons.vue +232 -232
  34. package/components/common/feedback/Message.vue +468 -468
  35. package/components/common/feedback/VisitPortal.vue +54 -54
  36. package/components/common/help/navbar/left/Left.vue +159 -159
  37. package/components/common/help/navbar/left/utils/constructAccordion.ts +27 -27
  38. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +359 -359
  39. package/components/common/modals/Confirmation.vue +18 -4
  40. package/components/common/modals/Rename.vue +165 -165
  41. package/components/common/monitor/advanced/Advanced.vue +22 -0
  42. package/components/common/monitor/advanced/tools/Tools.vue +78 -7
  43. package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +218 -9
  44. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/Actions.vue +80 -9
  45. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/config/optionsActions.ts +22 -10
  46. package/components/common/monitor/advanced/tools/chartOptionsModal/actions/saveOptionsModal/SaveOptionsModal.vue +27 -4
  47. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/Counters.vue +16 -0
  48. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +16 -0
  49. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/form/Form.vue +100 -29
  50. package/components/common/monitor/advanced/tools/config/advancedToolbar.ts +29 -3
  51. package/components/common/perPage/PerPage.vue +51 -51
  52. package/components/common/recursionTree/RecursionTree.vue +201 -201
  53. package/components/common/vm/actions/add/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +445 -445
  54. package/components/common/vm/actions/add/select/storage/config/config.ts +154 -154
  55. package/components/common/wizards/datastore/add/nfs/configuration/Configuration.vue +373 -373
  56. package/components/common/wizards/datastore/add/nfs/configuration/serversList/ServersList.vue +123 -123
  57. package/components/common/wizards/datastore/add/nfs/kerberosAuthentication/KerberosAuthentication.vue +54 -54
  58. package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/hostTable/HostTable.vue +131 -131
  59. package/components/common/wizards/datastore/add/sharedStorm/partitionConfiguration/PartitionConfiguration.vue +230 -230
  60. package/models/store/interfaces.ts +37 -37
  61. package/models/store/storage/interfaces.ts +32 -32
  62. package/models/store/types.ts +32 -32
  63. package/modules/fixContentBuild/index.ts +92 -92
  64. package/modules/fixContentBuild/utils/methods.ts +114 -114
  65. package/package.json +1 -1
  66. package/public/spice-console/application/codec.js +257 -257
  67. package/public/spice-console/lib/rasterEngine.js +907 -907
  68. package/public/spice-console/network/spicechannel.js +369 -369
  69. package/public/spice-console-minify/lib/decoder/dixie.min.js +4 -4
  70. package/public/spice-console-minify/lib/jgestures.min.js +24 -24
  71. package/public/spice-console-minify/lib/jquery-2.0.3.min.js +24 -24
  72. package/public/spice-console-minify/lib/jquery-mousewheel.min.js +11 -11
  73. package/public/spice-console-minify/lib/jquery-visibility.min.js +1 -1
  74. package/public/spice-console-minify/lib/lodash.4.0.0.min.js +5 -5
  75. package/utils/contentBuild.ts +34 -34
@@ -23,8 +23,8 @@
23
23
  <button class="btn btn-outline" @click="onHideModal">
24
24
  {{ localization.cancel }}
25
25
  </button>
26
- <button class="btn btn-warning" @click="onRemove">
27
- {{ localization.remove }}
26
+ <button :class="currentClasses" @click="onApply">
27
+ {{ currentText }}
28
28
  </button>
29
29
  </template>
30
30
  </atoms-modal>
@@ -38,8 +38,9 @@ const props = withDefaults(
38
38
  description: string
39
39
  headline?: string
40
40
  testId?: string
41
+ type?: 'confirm' | 'remove'
41
42
  }>(),
42
- { testId: 'common-confirmation', headline: '' }
43
+ { testId: 'common-confirmation', headline: '', type: 'confirm' }
43
44
  )
44
45
  const emits = defineEmits<{
45
46
  (event: 'hide-modal'): void
@@ -48,7 +49,20 @@ const emits = defineEmits<{
48
49
 
49
50
  const localization = computed<UI_I_Localization>(() => useLocal())
50
51
 
51
- const onRemove = (): void => emits('confirm')
52
+ const currentClasses = computed<string>(() => {
53
+ let result = 'btn '
54
+ if (props.type === 'confirm') result += 'btn-primary'
55
+ else if (props.type === 'remove') result += 'btn-warning'
56
+ return result
57
+ })
58
+ const currentText = computed<string>(() => {
59
+ let result = ''
60
+ if (props.type === 'confirm') result = localization.value.ok
61
+ else if (props.type === 'remove') result = localization.value.remove
62
+ return result
63
+ })
64
+
65
+ const onApply = (): void => emits('confirm')
52
66
  const onHideModal = (): void => emits('hide-modal')
53
67
  </script>
54
68
 
@@ -1,165 +1,165 @@
1
- <template>
2
- <atoms-modal
3
- :test-id="`${props.testId}-rename`"
4
- width="576px"
5
- class="rename"
6
- :show="true"
7
- :title="localization.rename"
8
- :second-title="name"
9
- @submit="onRename"
10
- @hide="onHide"
11
- >
12
- <template #modalBody>
13
- <div class="rename__body">
14
- <form
15
- :id="`${props.testId}-rename-form`"
16
- class="clr-form clr-form-horizontal"
17
- @submit.prevent
18
- >
19
- <slot v-if="$slots.description" name="description"></slot>
20
-
21
- <div class="clr-row clr-error clr-form-control">
22
- <label
23
- for="rename"
24
- :class="['clr-control-label', `clr-col-md-${labelWidth}`]"
25
- >{{ labelName }}</label
26
- >
27
- <div class="clr-control-container clr-col-8">
28
- <div class="form-group__input">
29
- <input
30
- id="rename"
31
- v-model="form.name.value"
32
- type="text"
33
- :class="nameErrorText && 'clr-input'"
34
- @blur="initValidation"
35
- @input="initValidation"
36
- />
37
- <div v-show="nameErrorText" class="form-validate">
38
- <atoms-the-icon
39
- class="is-error tooltip-trigger"
40
- name="info"
41
- />
42
- </div>
43
- </div>
44
- <div
45
- v-show="nameErrorText"
46
- class="form-group__input-error clr-subtext"
47
- >
48
- {{ nameErrorText }}
49
- </div>
50
- </div>
51
- </div>
52
- </form>
53
- </div>
54
- </template>
55
- </atoms-modal>
56
- </template>
57
-
58
- <script lang="ts" setup>
59
- import { UI_I_ValidationTouchResult } from '~/models/plugins/validation/interfaces'
60
- import { UI_I_Localization } from '~/models/interfaces'
61
- import { UI_I_RenameForm } from '~/components/common/modals/models/interfaces'
62
- import { defaultFormRenameFunc } from '~/components/common/modals/config/defaultForm'
63
- import { labelWidthFunc } from '~/components/common/modals/config/renameLabelWidth'
64
-
65
- const props = withDefaults(
66
- defineProps<{
67
- testId: string
68
- name: string
69
- label?: string
70
- }>(),
71
- {
72
- label: 'enterNewName',
73
- }
74
- )
75
- const emits = defineEmits<{
76
- (event: 'hide'): void
77
- (event: 'apply-changes', value: string): void
78
- }>()
79
-
80
- const localization = computed<UI_I_Localization>(() => useLocal())
81
- const { $validation } = useNuxtApp()
82
-
83
- const validation = $validation.call({})
84
- const defaultForm: UI_I_RenameForm = defaultFormRenameFunc(
85
- localization.value,
86
- props?.name || ''
87
- )
88
- const form = ref<UI_I_RenameForm>(useDeepCopy(defaultForm))
89
-
90
- const setForm = () => {
91
- form.value = useDeepCopy(defaultForm)
92
- validation.setForm(form)
93
- }
94
- setForm()
95
-
96
- const validForm = ref<UI_I_ValidationTouchResult | null>(null)
97
-
98
- const labelName = computed<string>(() => localization.value[props.label])
99
-
100
- /* Validation for Name input */
101
- const initValidation = () => {
102
- validForm.value = validation.touch()
103
- }
104
-
105
- const nameErrorText = computed<string>(() => {
106
- return validForm.value?.errors?.name?.[0] || ''
107
- })
108
- /* Validation Name input end */
109
-
110
- const labelWidth = computed<number>(() => labelWidthFunc(labelName.value))
111
-
112
- const onRename = (): void => {
113
- const { isValid = true } = validForm?.value || {}
114
-
115
- if (!isValid) return
116
- emits('apply-changes', form.value.name.value)
117
- }
118
-
119
- const onHide = (): void => {
120
- emits('hide')
121
- }
122
- </script>
123
-
124
- <style lang="scss" scoped>
125
- @import '~/assets/scss/common/mixins.scss';
126
- .rename {
127
- &__body {
128
- @include flex($dir: column);
129
- .clr-form-control {
130
- @include flex($dir: row);
131
-
132
- .clr-control-container {
133
- min-height: 48px;
134
- }
135
- .form-group {
136
- &__input {
137
- @include flex();
138
- input {
139
- width: 100%;
140
- }
141
- .form-validate {
142
- svg {
143
- width: 24px;
144
- height: 24px;
145
- }
146
- }
147
- &-error {
148
- margin-top: 0;
149
- }
150
- }
151
- }
152
- }
153
- }
154
- :deep(.modal-content) {
155
- .modal-title {
156
- white-space: nowrap;
157
- }
158
- .secondary-title {
159
- word-break: break-all;
160
- font-size: 18px;
161
- font-weight: 300;
162
- }
163
- }
164
- }
165
- </style>
1
+ <template>
2
+ <atoms-modal
3
+ :test-id="`${props.testId}-rename`"
4
+ width="576px"
5
+ class="rename"
6
+ :show="true"
7
+ :title="localization.rename"
8
+ :second-title="name"
9
+ @submit="onRename"
10
+ @hide="onHide"
11
+ >
12
+ <template #modalBody>
13
+ <div class="rename__body">
14
+ <form
15
+ :id="`${props.testId}-rename-form`"
16
+ class="clr-form clr-form-horizontal"
17
+ @submit.prevent
18
+ >
19
+ <slot v-if="$slots.description" name="description"></slot>
20
+
21
+ <div class="clr-row clr-error clr-form-control">
22
+ <label
23
+ for="rename"
24
+ :class="['clr-control-label', `clr-col-md-${labelWidth}`]"
25
+ >{{ labelName }}</label
26
+ >
27
+ <div class="clr-control-container clr-col-8">
28
+ <div class="form-group__input">
29
+ <input
30
+ id="rename"
31
+ v-model="form.name.value"
32
+ type="text"
33
+ :class="nameErrorText && 'clr-input'"
34
+ @blur="initValidation"
35
+ @input="initValidation"
36
+ />
37
+ <div v-show="nameErrorText" class="form-validate">
38
+ <atoms-the-icon
39
+ class="is-error tooltip-trigger"
40
+ name="info"
41
+ />
42
+ </div>
43
+ </div>
44
+ <div
45
+ v-show="nameErrorText"
46
+ class="form-group__input-error clr-subtext"
47
+ >
48
+ {{ nameErrorText }}
49
+ </div>
50
+ </div>
51
+ </div>
52
+ </form>
53
+ </div>
54
+ </template>
55
+ </atoms-modal>
56
+ </template>
57
+
58
+ <script lang="ts" setup>
59
+ import { UI_I_ValidationTouchResult } from '~/models/plugins/validation/interfaces'
60
+ import { UI_I_Localization } from '~/models/interfaces'
61
+ import { UI_I_RenameForm } from '~/components/common/modals/models/interfaces'
62
+ import { defaultFormRenameFunc } from '~/components/common/modals/config/defaultForm'
63
+ import { labelWidthFunc } from '~/components/common/modals/config/renameLabelWidth'
64
+
65
+ const props = withDefaults(
66
+ defineProps<{
67
+ testId: string
68
+ name: string
69
+ label?: string
70
+ }>(),
71
+ {
72
+ label: 'enterNewName',
73
+ }
74
+ )
75
+ const emits = defineEmits<{
76
+ (event: 'hide'): void
77
+ (event: 'apply-changes', value: string): void
78
+ }>()
79
+
80
+ const localization = computed<UI_I_Localization>(() => useLocal())
81
+ const { $validation } = useNuxtApp()
82
+
83
+ const validation = $validation.call({})
84
+ const defaultForm: UI_I_RenameForm = defaultFormRenameFunc(
85
+ localization.value,
86
+ props?.name || ''
87
+ )
88
+ const form = ref<UI_I_RenameForm>(useDeepCopy(defaultForm))
89
+
90
+ const setForm = () => {
91
+ form.value = useDeepCopy(defaultForm)
92
+ validation.setForm(form)
93
+ }
94
+ setForm()
95
+
96
+ const validForm = ref<UI_I_ValidationTouchResult | null>(null)
97
+
98
+ const labelName = computed<string>(() => localization.value[props.label])
99
+
100
+ /* Validation for Name input */
101
+ const initValidation = () => {
102
+ validForm.value = validation.touch()
103
+ }
104
+
105
+ const nameErrorText = computed<string>(() => {
106
+ return validForm.value?.errors?.name?.[0] || ''
107
+ })
108
+ /* Validation Name input end */
109
+
110
+ const labelWidth = computed<number>(() => labelWidthFunc(labelName.value))
111
+
112
+ const onRename = (): void => {
113
+ const { isValid = true } = validForm?.value || {}
114
+
115
+ if (!isValid) return
116
+ emits('apply-changes', form.value.name.value)
117
+ }
118
+
119
+ const onHide = (): void => {
120
+ emits('hide')
121
+ }
122
+ </script>
123
+
124
+ <style lang="scss" scoped>
125
+ @import '~/assets/scss/common/mixins.scss';
126
+ .rename {
127
+ &__body {
128
+ @include flex($dir: column);
129
+ .clr-form-control {
130
+ @include flex($dir: row);
131
+
132
+ .clr-control-container {
133
+ min-height: 48px;
134
+ }
135
+ .form-group {
136
+ &__input {
137
+ @include flex();
138
+ input {
139
+ width: 100%;
140
+ }
141
+ .form-validate {
142
+ svg {
143
+ width: 24px;
144
+ height: 24px;
145
+ }
146
+ }
147
+ &-error {
148
+ margin-top: 0;
149
+ }
150
+ }
151
+ }
152
+ }
153
+ }
154
+ :deep(.modal-content) {
155
+ .modal-title {
156
+ white-space: nowrap;
157
+ }
158
+ .secondary-title {
159
+ word-break: break-all;
160
+ font-size: 18px;
161
+ font-weight: 300;
162
+ }
163
+ }
164
+ }
165
+ </style>
@@ -21,12 +21,23 @@
21
21
  :disabled-period="props.disabledPeriod"
22
22
  :disabled-view="props.disabledView"
23
23
  :selected-chart-type="props.selectedChartType"
24
+ :selected-timespan-type="props.selectedTimespanType"
25
+ :units-count="props.unitsCount"
26
+ :period-type="props.periodType"
27
+ :selected-custom-time="props.selectedCustomTime"
28
+ :selected-chart-option-name="props.selectedChartOptionName"
24
29
  @update-tools="onUpdateTools"
25
30
  @exporting="onExporting"
26
31
  @open-advanced-page="onGetEmptyPage"
27
32
  @select-row="emits('select-row', $event)"
28
33
  @select-metric="emits('select-metric', $event)"
29
34
  @update-chart-type="emits('update-chart-type', $event)"
35
+ @update-timespan-type="emits('update-timespan-type', $event)"
36
+ @update-unit-count="emits('update-unit-count', $event)"
37
+ @update-period-type="emits('update-period-type', $event)"
38
+ @update-custom-time="emits('update-custom-time', $event)"
39
+ @select-chart-name="emits('select-chart-name', $event)"
40
+ @delete-option="emits('delete-option')"
30
41
  />
31
42
 
32
43
  <div v-show="!props.data" class="empty-container">
@@ -87,6 +98,11 @@ const props = defineProps<{
87
98
  selectedCountersKeys: number[]
88
99
  selectedMetric: T_ChartHost | T_ChartVm
89
100
  selectedChartType: string
101
+ selectedTimespanType: string
102
+ unitsCount: number
103
+ periodType: string
104
+ selectedCustomTime: string
105
+ selectedChartOptionName: string
90
106
  disabledPeriod?: boolean
91
107
  disabledView?: boolean
92
108
  }>()
@@ -98,6 +114,12 @@ const emits = defineEmits<{
98
114
  (event: 'select-row', value: UI_I_AdvancedCounterItem[]): void
99
115
  (event: 'select-metric', value: string): void
100
116
  (event: 'update-chart-type', value: string): void
117
+ (event: 'update-timespan-type', value: string): void
118
+ (event: 'update-unit-count', value: number): void
119
+ (event: 'update-period-type', value: string): void
120
+ (event: 'update-custom-time', value: string): void
121
+ (event: 'select-chart-name', value: string): void
122
+ (event: 'delete-option'): void
101
123
  }>()
102
124
 
103
125
  const localization = computed<UI_I_Localization>(() => useLocal())
@@ -88,10 +88,22 @@
88
88
  :selected-counters-keys="props.selectedCountersKeys"
89
89
  :selected-metric="props.selectedMetric"
90
90
  :selected-chart-type="props.selectedChartType"
91
+ :selected-timespan-type="props.selectedTimespanType"
92
+ :units-count="props.unitsCount"
93
+ :period-type="props.periodType"
94
+ :selected-custom-time="props.selectedCustomTime"
95
+ :selected-chart-option-name="props.selectedChartOptionName"
91
96
  @hide="isShowModal = false"
92
97
  @select-row="emits('select-row', $event)"
93
98
  @select-metric="emits('select-metric', $event)"
94
99
  @update-chart-type="emits('update-chart-type', $event)"
100
+ @update-timespan-type="emits('update-timespan-type', $event)"
101
+ @update-unit-count="emits('update-unit-count', $event)"
102
+ @update-period-type="emits('update-period-type', $event)"
103
+ @update-custom-time="emits('update-custom-time', $event)"
104
+ @select-chart-name="onSelectChartName"
105
+ @delete-option="onDeleteOption"
106
+ @save-option-name="onSaveOptionName"
95
107
  />
96
108
  </template>
97
109
 
@@ -111,6 +123,7 @@ import {
111
123
  periodFunc,
112
124
  viewFunc,
113
125
  exportFunc,
126
+ getCurrentOptionsStorageFunc,
114
127
  } from '~/components/common/monitor/advanced/tools/config/advancedToolbar'
115
128
 
116
129
  const props = defineProps<{
@@ -121,6 +134,11 @@ const props = defineProps<{
121
134
  selectedCountersKeys: number[]
122
135
  selectedMetric: T_ChartHost | T_ChartVm
123
136
  selectedChartType: string
137
+ selectedTimespanType: string
138
+ unitsCount: number
139
+ periodType: string
140
+ selectedCustomTime: string
141
+ selectedChartOptionName: string
124
142
  disabledPeriod?: boolean
125
143
  disabledView?: boolean
126
144
  }>()
@@ -132,38 +150,83 @@ const emits = defineEmits<{
132
150
  (event: 'select-row', value: UI_I_AdvancedCounterItem[]): void
133
151
  (event: 'select-metric', value: string): void
134
152
  (event: 'update-chart-type', value: string): void
153
+ (event: 'update-timespan-type', value: string): void
154
+ (event: 'update-unit-count', value: number): void
155
+ (event: 'update-period-type', value: string): void
156
+ (event: 'update-custom-time', value: string): void
157
+ (event: 'select-chart-name', value: string): void
158
+ (event: 'delete-option'): void
135
159
  }>()
136
160
 
161
+ const routeType = '' + useRoute().params.type
162
+
137
163
  const localization = computed<UI_I_Localization>(() => useLocal())
138
164
  const { $formattedDatetime } = useNuxtApp()
139
165
 
140
166
  const selectedView = ref<string>('')
167
+ const optionsNames = ref<string[]>([])
141
168
  const viewOptions = computed<UI_I_OptionItem[]>(() =>
142
- viewFunc(localization.value, props.type)
169
+ viewFunc(localization.value, props.type, optionsNames.value)
143
170
  )
171
+
144
172
  watch(
145
- () => viewOptions.value,
146
- (val: UI_I_OptionItem[]) => {
147
- if (val) selectedView.value = val[0].value
173
+ () => props.selectedChartOptionName,
174
+ (newValue) => {
175
+ let currentValue = ''
176
+
177
+ if (newValue) currentValue = newValue
178
+ else if (
179
+ selectedView.value &&
180
+ optionsNames.value.includes(selectedView.value)
181
+ )
182
+ currentValue = selectedView.value
183
+ else currentValue = viewOptions.value[0].value
184
+
185
+ selectedView.value = currentValue
148
186
  },
149
187
  { immediate: true }
150
188
  )
151
189
 
190
+ const onSelectChartName = (name: string): void => {
191
+ emits('select-chart-name', name)
192
+ optionsNames.value = getCurrentOptionsStorageFunc(routeType)
193
+ }
194
+
195
+ const onDeleteOption = (): void => {
196
+ emits('delete-option')
197
+ optionsNames.value = getCurrentOptionsStorageFunc(routeType)
198
+ }
199
+
152
200
  const selectedPeriod = ref<string>('')
153
201
  const periodOptions = computed<UI_I_OptionItem[]>(() =>
154
202
  periodFunc(localization.value)
155
203
  )
156
204
  watch(
157
205
  () => periodOptions.value,
158
- (val: UI_I_OptionItem[]) => {
159
- if (val) selectedPeriod.value = val[0].value
206
+ (newValue: UI_I_OptionItem[]) => {
207
+ if (newValue) selectedPeriod.value = newValue[0].value
160
208
  },
161
209
  { immediate: true }
162
210
  )
163
211
 
212
+ const isShowModal = ref<boolean>(false)
213
+ watch(isShowModal, (newValue) => {
214
+ if (!newValue && !selectedView.value)
215
+ selectedView.value = viewOptions.value[0].value
216
+ })
217
+
164
218
  watch(
165
219
  () => [selectedPeriod.value, selectedView.value],
166
220
  (newValue: string[]) => {
221
+ const selectedValue = useLocalStorage(
222
+ newValue[1] + 'ChartOptions',
223
+ undefined,
224
+ false
225
+ )
226
+ const fields = selectedValue
227
+ ? selectedValue.counters.map((item) => item.name).join(', ')
228
+ : ''
229
+
167
230
  const validPeriodData = getValidDateByOptionFunc(newValue[0])
168
231
 
169
232
  const period = [
@@ -171,6 +234,7 @@ watch(
171
234
  Math.round(validPeriodData[1] / 1000),
172
235
  ]
173
236
  const tools: UI_I_MonitorGraphPayload = {
237
+ fields,
174
238
  period,
175
239
  periodType: newValue[0],
176
240
  view: newValue[1],
@@ -195,10 +259,17 @@ const exportMenu = ref<UI_I_DropMenu<string>[]>(exportFunc(localization.value))
195
259
  const onExportMenuItem = (item: UI_I_DropMenu<any>): void =>
196
260
  emits('exporting', item.action)
197
261
 
198
- const isShowModal = ref<boolean>(false)
199
262
  const onShowChartOptions = (): void => {
200
263
  isShowModal.value = true
201
264
  }
265
+
266
+ const onSaveOptionName = (): void => {
267
+ optionsNames.value = getCurrentOptionsStorageFunc(routeType)
268
+ }
269
+
270
+ onMounted(() => {
271
+ optionsNames.value = getCurrentOptionsStorageFunc(routeType)
272
+ })
202
273
  </script>
203
274
 
204
275
  <style scoped lang="scss">