bfg-common 1.5.759 → 1.5.760

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 (124) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/localization/local_be.json +6 -3
  7. package/assets/localization/local_en.json +6 -3
  8. package/assets/localization/local_hy.json +6 -3
  9. package/assets/localization/local_kk.json +6 -3
  10. package/assets/localization/local_ru.json +6 -3
  11. package/assets/localization/local_zh.json +6 -3
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/collapse/CollapseNav.vue +170 -170
  14. package/components/atoms/perPage/PerPage.vue +58 -58
  15. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  16. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  17. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  18. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  19. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  20. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  21. package/components/common/diagramMain/port/Port.vue +580 -580
  22. package/components/common/layout/console/Console.vue +70 -70
  23. package/components/common/layout/theHeader/New.vue +2 -0
  24. package/components/common/layout/theHeader/Old.vue +2 -0
  25. package/components/common/layout/theHeader/TheHeader.vue +2 -0
  26. package/components/common/layout/theHeader/modals/reconnect/New.vue +1 -1
  27. package/components/common/layout/theHeader/modals/reconnect/Reconnect.vue +3 -1
  28. package/components/common/layout/theHeader/userMenu/UserMenu.vue +2 -0
  29. package/components/common/layout/theHeader/userMenu/modals/preferences/New.vue +2 -0
  30. package/components/common/layout/theHeader/userMenu/modals/preferences/Old.vue +2 -0
  31. package/components/common/layout/theHeader/userMenu/modals/preferences/Preferences.vue +2 -0
  32. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  33. package/components/common/layout/theHeader/userMenu/modals/preferences/view/New.vue +64 -47
  34. package/components/common/layout/theHeader/userMenu/modals/preferences/view/Old.vue +19 -0
  35. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +3 -0
  36. package/components/common/pages/backups/DetailView.vue +52 -52
  37. package/components/common/pages/backups/backupsNew/BackupsNew.vue +107 -19
  38. package/components/common/pages/backups/backupsNew/Skeleton.vue +136 -0
  39. package/components/common/pages/backups/backupsNew/contextMenuView/ContextMenuView.vue +16 -10
  40. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  41. package/components/common/pages/backups/modals/Modals.vue +243 -243
  42. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +29 -29
  43. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +69 -69
  44. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +38 -38
  45. package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/config/table.ts +1 -1
  46. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +8 -11
  47. package/components/common/pages/backups/modals/createBackup/lib/models/interfaces.ts +8 -8
  48. package/components/common/pages/backups/modals/lib/config/restore.ts +116 -116
  49. package/components/common/pages/backups/modals/lib/models/interfaces.ts +187 -187
  50. package/components/common/pages/backups/modals/restore/Restore.vue +302 -302
  51. package/components/common/pages/backups/modals/restore/disks/Disks.vue +50 -50
  52. package/components/common/pages/backups/modals/restore/lib/config/readyToCompleteOptions.ts +94 -94
  53. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +130 -130
  54. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  55. package/components/common/pages/backups/modals/restore/types/New.vue +95 -95
  56. package/components/common/pages/backups/modals/restore/types/Old.vue +62 -62
  57. package/components/common/pages/backups/modals/restore/types/Types.vue +31 -31
  58. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  59. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  60. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  61. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  62. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  63. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  64. package/components/common/pages/tasks/Tasks.vue +125 -125
  65. package/components/common/pages/tasks/table/Table.vue +373 -373
  66. package/components/common/pages/tasks/table/lib/config/config.ts +279 -279
  67. package/components/common/pages/tasks/table/lib/models/interfaces.ts +9 -9
  68. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  69. package/components/common/select/radio/RadioGroup.vue +137 -137
  70. package/components/common/spiceConsole/Drawer.vue +420 -420
  71. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  72. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  73. package/components/common/tools/Actions.vue +207 -207
  74. package/components/common/treeView/TreeView.vue +52 -52
  75. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  76. package/components/common/vm/actions/clone/new/New.vue +438 -438
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  79. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  80. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  81. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  82. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  83. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  84. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  85. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  86. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  87. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  88. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  89. package/components/common/vm/snapshots/new/New.vue +11 -12
  90. package/components/common/vm/snapshots/new/Skeleton.vue +26 -2
  91. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  92. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  93. package/components/common/wizards/common/steps/name/New.vue +221 -221
  94. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  95. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  96. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  97. package/components/common/wizards/datastore/add/Add.vue +227 -227
  98. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  99. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  100. package/components/common/wizards/network/add/Add.vue +9 -6
  101. package/components/common/wizards/network/add/lib/config/initialData.ts +2 -1
  102. package/composables/useAppVersion.ts +21 -21
  103. package/composables/useBrowse.ts +24 -24
  104. package/composables/useLocal.ts +6 -6
  105. package/composables/useLocalCommon.ts +39 -39
  106. package/lib/models/types.ts +59 -59
  107. package/package.json +1 -1
  108. package/plugins/console.ts +21 -21
  109. package/plugins/mouse.ts +21 -21
  110. package/plugins/panelStates.ts +70 -70
  111. package/plugins/text.ts +59 -59
  112. package/public/spice-console/application/clientgui.js +854 -854
  113. package/public/spice-console/application/packetfactory.js +211 -211
  114. package/public/spice-console/application/virtualmouse.js +147 -147
  115. package/public/spice-console/lib/images/bitmap.js +203 -203
  116. package/public/spice-console/network/spicechannel.js +440 -440
  117. package/public/spice-console/process/cursorprocess.js +128 -128
  118. package/public/spice-console/process/inputprocess.js +227 -227
  119. package/public/spice-console/process/mainprocess.js +212 -212
  120. package/public/spice-console/run.js +210 -210
  121. package/store/main/mutations.ts +7 -7
  122. package/store/main/state.ts +7 -7
  123. package/store/tasks/mappers/recentTasks.ts +123 -123
  124. package/store/tasks/mutations.ts +82 -82
@@ -1,70 +1,70 @@
1
- <template>
2
- <atoms-window
3
- v-if="consoleInWindow?.isShow"
4
- :top="consoleInWindow.top"
5
- :left="consoleInWindow.left"
6
- :width="consoleInWindow.width"
7
- :height="consoleInWindow.height"
8
- :title="consoleInWindow.name"
9
- :loading="consoleInWindow.isLoading"
10
- @hide="onHide"
11
- >
12
- <template #header>
13
- <div class="flex-align-center gap-2 overflow-hidden">
14
- <ui-icon name="monitor" width="16" height="16" class="monitor-icon" />
15
- <span class="text-ellipsis">{{ consoleInWindow.name }}</span>
16
- </div>
17
- </template>
18
- <embed
19
- id="embed"
20
- type="text/html"
21
- width="100%"
22
- height="100%"
23
- :src="consoleInWindow.url"
24
- @load="onLoad"
25
- />
26
- </atoms-window>
27
- </template>
28
-
29
- <script setup lang="ts">
30
- import type { UI_I_ConsoleInWindow } from '~/components/common/layout/console/lib/models/interfaces'
31
-
32
- const { $store }: any = useNuxtApp()
33
-
34
- const onLoad = (): void => {
35
- $store.dispatch('main/A_CHANGE_CONSOLE_IN_WINDOW_LOADING', false)
36
- }
37
-
38
- const consoleInWindow = computed<UI_I_ConsoleInWindow | null>(() => {
39
- return $store.getters['main/getConsoleInWindow']
40
- })
41
- watch(
42
- consoleInWindow,
43
- (newValue, oldValue) => {
44
- if (newValue?.url === oldValue?.url) {
45
- $store.dispatch('main/A_CHANGE_CONSOLE_IN_WINDOW_LOADING', false)
46
- }
47
- },
48
- { deep: true }
49
- )
50
-
51
- const onHide = (): void => {
52
- $store.dispatch('main/A_SHOW_CONSOLE_IN_WINDOW', {
53
- width: -1,
54
- height: -1,
55
- top: -1,
56
- left: -1,
57
- name: '',
58
- isShow: false,
59
- isLoading: false,
60
- url: '',
61
- })
62
- }
63
- </script>
64
-
65
- <style scoped lang="scss">
66
- .monitor-icon {
67
- min-width: 16px;
68
- min-height: 16px;
69
- }
70
- </style>
1
+ <template>
2
+ <atoms-window
3
+ v-if="consoleInWindow?.isShow"
4
+ :top="consoleInWindow.top"
5
+ :left="consoleInWindow.left"
6
+ :width="consoleInWindow.width"
7
+ :height="consoleInWindow.height"
8
+ :title="consoleInWindow.name"
9
+ :loading="consoleInWindow.isLoading"
10
+ @hide="onHide"
11
+ >
12
+ <template #header>
13
+ <div class="flex-align-center gap-2 overflow-hidden">
14
+ <ui-icon name="monitor" width="16" height="16" class="monitor-icon" />
15
+ <span class="text-ellipsis">{{ consoleInWindow.name }}</span>
16
+ </div>
17
+ </template>
18
+ <embed
19
+ id="embed"
20
+ type="text/html"
21
+ width="100%"
22
+ height="100%"
23
+ :src="consoleInWindow.url"
24
+ @load="onLoad"
25
+ />
26
+ </atoms-window>
27
+ </template>
28
+
29
+ <script setup lang="ts">
30
+ import type { UI_I_ConsoleInWindow } from '~/components/common/layout/console/lib/models/interfaces'
31
+
32
+ const { $store }: any = useNuxtApp()
33
+
34
+ const onLoad = (): void => {
35
+ $store.dispatch('main/A_CHANGE_CONSOLE_IN_WINDOW_LOADING', false)
36
+ }
37
+
38
+ const consoleInWindow = computed<UI_I_ConsoleInWindow | null>(() => {
39
+ return $store.getters['main/getConsoleInWindow']
40
+ })
41
+ watch(
42
+ consoleInWindow,
43
+ (newValue, oldValue) => {
44
+ if (newValue?.url === oldValue?.url) {
45
+ $store.dispatch('main/A_CHANGE_CONSOLE_IN_WINDOW_LOADING', false)
46
+ }
47
+ },
48
+ { deep: true }
49
+ )
50
+
51
+ const onHide = (): void => {
52
+ $store.dispatch('main/A_SHOW_CONSOLE_IN_WINDOW', {
53
+ width: -1,
54
+ height: -1,
55
+ top: -1,
56
+ left: -1,
57
+ name: '',
58
+ isShow: false,
59
+ isLoading: false,
60
+ url: '',
61
+ })
62
+ }
63
+ </script>
64
+
65
+ <style scoped lang="scss">
66
+ .monitor-icon {
67
+ min-width: 16px;
68
+ min-height: 16px;
69
+ }
70
+ </style>
@@ -99,6 +99,7 @@
99
99
  <div class="container-content user-menu-container">
100
100
  <common-layout-the-header-user-menu
101
101
  v-model:security="security"
102
+ v-model:is-show-notification="isShowNotification"
102
103
  v-model:new-view-local="newViewLocal"
103
104
  v-model:time-format="timeFormat"
104
105
  v-model:console-value="consoleValue"
@@ -134,6 +135,7 @@ import type { UI_I_Localization } from '~/lib/models/interfaces'
134
135
  import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
135
136
 
136
137
  const security = defineModel<boolean>('security')
138
+ const isShowNotification = defineModel<boolean>('isShowNotification')
137
139
  const newViewLocal = defineModel<boolean>('newViewLocal')
138
140
  const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
139
141
  const consoleValue = defineModel<string>('consoleValue')
@@ -59,6 +59,7 @@
59
59
 
60
60
  <common-layout-the-header-user-menu
61
61
  v-model:security="security"
62
+ v-model:is-show-notification="isShowNotification"
62
63
  v-model:new-view-local="newViewLocal"
63
64
  v-model:time-format="timeFormat"
64
65
  v-model:console-value="consoleValue"
@@ -106,6 +107,7 @@ import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMen
106
107
  import { findInLocals } from '~/components/common/selectLanguage/lib/utils/utils'
107
108
 
108
109
  const security = defineModel<boolean>('security')
110
+ const isShowNotification = defineModel<boolean>('isShowNotification')
109
111
  const newViewLocal = defineModel<boolean>('newViewLocal')
110
112
  const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
111
113
  const consoleValue = defineModel<string>('consoleValue')
@@ -2,6 +2,7 @@
2
2
  <component
3
3
  :is="currentComponent"
4
4
  v-model:security="security"
5
+ v-model:is-show-notification="isShowNotification"
5
6
  v-model:new-view-local="newViewLocal"
6
7
  v-model:time-format="timeFormat"
7
8
  v-model:console-value="consoleValue"
@@ -43,6 +44,7 @@ import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMen
43
44
  import { checkIsTokenExpired } from '~/lib/utils/token'
44
45
 
45
46
  const security = defineModel<boolean>('security')
47
+ const isShowNotification = defineModel<boolean>('isShowNotification')
46
48
  const newViewLocal = defineModel<boolean>('newViewLocal')
47
49
  const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
48
50
  const consoleValue = defineModel<string>('consoleValue')
@@ -57,7 +57,7 @@ const modalTexts = ref<UI_I_ModalTexts>({
57
57
 
58
58
  <style lang="scss" scoped>
59
59
  .reconnect-content {
60
- padding: 16px 32px 8px 32px;
60
+ padding: 8px 32px 8px 32px;
61
61
 
62
62
  .icon-content {
63
63
  .icon-sessions {
@@ -28,7 +28,9 @@ const isShow = computed<boolean>(
28
28
  () => $store.getters['main/isShowReconnectModal']
29
29
  )
30
30
 
31
- const title = ref<string>(localization.value.common.connectionTimeout)
31
+ const title = computed<string>(
32
+ () => localization.value.common.connectionTimeout
33
+ )
32
34
 
33
35
  const timer = ref<NodeJS.Timer | null>(null)
34
36
  const totalTime = ref<number>(60)
@@ -16,6 +16,7 @@
16
16
  <common-layout-the-header-user-menu-modals-preferences
17
17
  v-if="props.isPreference"
18
18
  v-model:security="security"
19
+ v-model:is-show-notification="isShowNotification"
19
20
  v-model:new-view-local="newViewLocal"
20
21
  v-model:time-format="timeFormat"
21
22
  v-model:console-value="consoleValue"
@@ -43,6 +44,7 @@ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMe
43
44
  import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
44
45
 
45
46
  const security = defineModel<boolean>('security')
47
+ const isShowNotification = defineModel<boolean>('isShowNotification')
46
48
  const newViewLocal = defineModel<boolean>('newViewLocal')
47
49
  const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
48
50
  const consoleValue = defineModel<string>('consoleValue')
@@ -53,6 +53,7 @@
53
53
  <ui-modal-block-form-standard without-border-bottom>
54
54
  <common-layout-the-header-user-menu-modals-preferences-view
55
55
  v-model:new-view-local="newViewLocal"
56
+ v-model:is-show-notification="isShowNotification"
56
57
  :new-view="props.newView"
57
58
  />
58
59
  </ui-modal-block-form-standard>
@@ -70,6 +71,7 @@ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMe
70
71
  import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
71
72
 
72
73
  const security = defineModel<boolean>('security')
74
+ const isShowNotification = defineModel<boolean>('isShowNotification')
73
75
  const newViewLocal = defineModel<boolean>('newViewLocal')
74
76
  const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
75
77
  const consoleValue = defineModel<string>('consoleValue')
@@ -52,6 +52,7 @@
52
52
  <common-layout-the-header-user-menu-modals-preferences-view
53
53
  v-if="selectedTab === 'view-tab'"
54
54
  v-model:new-view-local="newViewLocal"
55
+ v-model:is-show-notification="isShowNotification"
55
56
  :new-view="props.newView"
56
57
  />
57
58
  </template>
@@ -87,6 +88,7 @@ import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMen
87
88
  import { preferencesTabs } from '~/components/common/layout/theHeader/userMenu/modals/preferences/lib/config/preferencesTabs'
88
89
 
89
90
  const security = defineModel<boolean>('security')
91
+ const isShowNotification = defineModel<boolean>('isShowNotification')
90
92
  const newViewLocal = defineModel<boolean>('newViewLocal')
91
93
  const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
92
94
  const consoleValue = defineModel<string>('consoleValue')
@@ -2,6 +2,7 @@
2
2
  <component
3
3
  :is="currentComponent"
4
4
  v-model:security="security"
5
+ v-model:is-show-notification="isShowNotification"
5
6
  v-model:new-view-local="newViewLocal"
6
7
  v-model:time-format="timeFormat"
7
8
  v-model:console-value="consoleValue"
@@ -28,6 +29,7 @@ import type { UI_T_TimeValue } from '~/components/common/layout/theHeader/userMe
28
29
  import type { UI_I_Recovery } from '~/components/common/layout/theHeader/userMenu/modals/preferences/security/lib/models/interfaces'
29
30
 
30
31
  const security = defineModel<boolean>('security')
32
+ const isShowNotification = defineModel<boolean>('isShowNotification')
31
33
  const newViewLocal = defineModel<boolean>('newViewLocal')
32
34
  const timeFormat = defineModel<UI_T_TimeValue>('timeFormat')
33
35
  const consoleValue = defineModel<string>('consoleValue')
@@ -1,7 +1,7 @@
1
- export type UI_T_UserPreferenceTab =
2
- | 'time-tab'
3
- | 'language-tab'
4
- | 'console-tab'
5
- | 'inventory-tab'
6
- | 'security-tab'
7
- | 'view-tab'
1
+ export type UI_T_UserPreferenceTab =
2
+ | 'time-tab'
3
+ | 'language-tab'
4
+ | 'console-tab'
5
+ | 'inventory-tab'
6
+ | 'security-tab'
7
+ | 'view-tab'
@@ -1,47 +1,64 @@
1
- <template>
2
- <form id="view-form">
3
- <!-- TODO Shorten code by the new component for the form -->
4
- <div class="flex">
5
- <ui-modal-icon>
6
- <ui-icon-icon3 name="eye-open" width="20" height="20" />
7
- </ui-modal-icon>
8
- <div>
9
- <div class="form-first-title">
10
- {{ localization.common.view }}
11
- </div>
12
- <div class="form-second-title">
13
- {{ props.description }}
14
- </div>
15
-
16
- <div class="flex-align-center new-view-switch-container">
17
- <ui-switch
18
- v-model="newViewLocal"
19
- :label="localization.common.newView"
20
- test-id="view-switch"
21
- />
22
- </div>
23
- </div>
24
- </div>
25
- </form>
26
- </template>
27
-
28
- <script setup lang="ts">
29
- import type { UI_I_Localization } from '~/lib/models/interfaces'
30
-
31
- const newViewLocal = defineModel<boolean>()
32
-
33
- const props = defineProps<{
34
- description: string
35
- }>()
36
-
37
- const localization = computed<UI_I_Localization>(() => useLocal())
38
- </script>
39
-
40
- <style lang="scss" scoped>
41
- .new-view-switch-container {
42
- :deep(.switch-content .switch-label) {
43
- font-size: 13px;
44
- font-weight: 400;
45
- }
46
- }
47
- </style>
1
+ <template>
2
+ <form id="view-form">
3
+ <!-- TODO Shorten code by the new component for the form -->
4
+ <div class="flex">
5
+ <ui-modal-icon>
6
+ <ui-icon-icon3 name="eye-open" width="20" height="20" />
7
+ </ui-modal-icon>
8
+ <div>
9
+ <div class="form-first-title">
10
+ {{ localization.common.view }}
11
+ </div>
12
+ <div class="form-second-title">
13
+ {{ props.description }}
14
+ </div>
15
+
16
+ <div class="flex-align-center new-view-switch-container">
17
+ <ui-switch
18
+ v-model="newViewLocal"
19
+ :label="localization.common.newView"
20
+ test-id="view-switch"
21
+ />
22
+ </div>
23
+ </div>
24
+ </div>
25
+ <div class="flex mt-4">
26
+ <div style="width: 38px" class="mr-3"></div>
27
+ <div>
28
+ <div class="form-second-title">
29
+ {{ localization.myPreferences.showNotificationDescription }}
30
+ </div>
31
+
32
+ <div class="flex-align-center new-view-switch-container">
33
+ <ui-switch
34
+ v-model="isShowNotification"
35
+ :label="localization.myPreferences.showNotification"
36
+ test-id="show-notification-switch"
37
+ />
38
+ </div>
39
+ </div>
40
+ </div>
41
+ </form>
42
+ </template>
43
+
44
+ <script setup lang="ts">
45
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
46
+
47
+ const newViewLocal = defineModel<boolean>()
48
+ const isShowNotification = defineModel<boolean>('isShowNotification')
49
+
50
+ const props = defineProps<{
51
+ description: string
52
+ }>()
53
+
54
+ const localization = computed<UI_I_Localization>(() => useLocal())
55
+ </script>
56
+
57
+ <style lang="scss" scoped>
58
+ .new-view-switch-container {
59
+ :deep(.switch-content .switch-label) {
60
+ font-size: 13px;
61
+ font-weight: 400;
62
+ }
63
+ }
64
+ </style>
@@ -14,6 +14,20 @@
14
14
  class="switch"
15
15
  />
16
16
  </div>
17
+
18
+ <div class="description second-description">
19
+ {{ localization.myPreferences.showNotificationDescription }}
20
+ </div>
21
+
22
+ <div class="flex-align-center">
23
+ <label for="view">{{ localization.myPreferences.showNotification }}</label>
24
+ <input
25
+ id="view"
26
+ v-model="isShowNotification"
27
+ type="checkbox"
28
+ class="switch"
29
+ />
30
+ </div>
17
31
  </form>
18
32
  </template>
19
33
 
@@ -21,6 +35,7 @@
21
35
  import type { UI_I_Localization } from '~/lib/models/interfaces'
22
36
 
23
37
  const newViewLocal = defineModel<boolean>()
38
+ const isShowNotification = defineModel<boolean>('isShowNotification')
24
39
 
25
40
  const props = defineProps<{
26
41
  description: string
@@ -44,6 +59,10 @@ window.tools = new Proxy(
44
59
  <style lang="scss" scoped>
45
60
  .description {
46
61
  margin-bottom: 10px;
62
+
63
+ &.second-description {
64
+ margin-top: 20px;
65
+ }
47
66
  }
48
67
 
49
68
  label {
@@ -2,6 +2,7 @@
2
2
  <component
3
3
  :is="currentComponent"
4
4
  v-model="newViewLocal"
5
+ v-model:is-show-notification="isShowNotification"
5
6
  :description="description"
6
7
  />
7
8
  </template>
@@ -10,6 +11,8 @@
10
11
  import type { UI_I_Localization } from '~/lib/models/interfaces'
11
12
 
12
13
  const newViewLocal = defineModel<boolean>('newViewLocal')
14
+ const isShowNotification = defineModel<boolean>('isShowNotification')
15
+
13
16
  const props = defineProps<{
14
17
  newView: boolean
15
18
  }>()
@@ -1,52 +1,52 @@
1
- <template>
2
- <div class="detail-view overflow-auto py-0 px-6">
3
- <table v-if="detailData" class="table table-noborder">
4
- <tbody>
5
- <tr>
6
- <td class="left">{{ localization.common.name }}</td>
7
- <td class="left backup-name-label">{{ detailData.name }}</td>
8
- </tr>
9
- <tr>
10
- <td class="left">{{ localization.common.description }}</td>
11
- <td class="left backup-name-label">{{ detailData.description }}</td>
12
- </tr>
13
- <tr>
14
- <td class="left">{{ localization.common.timestamp }}</td>
15
- <td class="left backup-name-label">{{ detailData.timestamp }}</td>
16
- </tr>
17
- </tbody>
18
- </table>
19
- </div>
20
- </template>
21
-
22
- <script setup lang="ts">
23
- import type { UI_I_Localization } from '~/lib/models/interfaces'
24
- import type { UI_I_BackupsTreeNode } from '~/components/common/pages/backups/lib/models/interfaces'
25
-
26
- const props = defineProps<{
27
- detail: UI_I_BackupsTreeNode | null
28
- }>()
29
-
30
- const localization = computed<UI_I_Localization>(() => useLocal())
31
-
32
- const detailData = ref<UI_I_BackupsTreeNode | null>(null)
33
- watch(
34
- () => props.detail,
35
- (newValue) => {
36
- detailData.value = newValue
37
- },
38
- { immediate: true, deep: true }
39
- )
40
- </script>
41
-
42
- <style scoped lang="scss">
43
- .detail-view {
44
- width: 50%;
45
-
46
- .table {
47
- .left:not(.backup-name-label) {
48
- width: 320px;
49
- }
50
- }
51
- }
52
- </style>
1
+ <template>
2
+ <div class="detail-view overflow-auto py-0 px-6">
3
+ <table v-if="detailData" class="table table-noborder">
4
+ <tbody>
5
+ <tr>
6
+ <td class="left">{{ localization.common.name }}</td>
7
+ <td class="left backup-name-label">{{ detailData.name }}</td>
8
+ </tr>
9
+ <tr>
10
+ <td class="left">{{ localization.common.description }}</td>
11
+ <td class="left backup-name-label">{{ detailData.description }}</td>
12
+ </tr>
13
+ <tr>
14
+ <td class="left">{{ localization.common.timestamp }}</td>
15
+ <td class="left backup-name-label">{{ detailData.timestamp }}</td>
16
+ </tr>
17
+ </tbody>
18
+ </table>
19
+ </div>
20
+ </template>
21
+
22
+ <script setup lang="ts">
23
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
24
+ import type { UI_I_BackupsTreeNode } from '~/components/common/pages/backups/lib/models/interfaces'
25
+
26
+ const props = defineProps<{
27
+ detail: UI_I_BackupsTreeNode | null
28
+ }>()
29
+
30
+ const localization = computed<UI_I_Localization>(() => useLocal())
31
+
32
+ const detailData = ref<UI_I_BackupsTreeNode | null>(null)
33
+ watch(
34
+ () => props.detail,
35
+ (newValue) => {
36
+ detailData.value = newValue
37
+ },
38
+ { immediate: true, deep: true }
39
+ )
40
+ </script>
41
+
42
+ <style scoped lang="scss">
43
+ .detail-view {
44
+ width: 50%;
45
+
46
+ .table {
47
+ .left:not(.backup-name-label) {
48
+ width: 320px;
49
+ }
50
+ }
51
+ }
52
+ </style>