bfg-common 1.5.705 → 1.5.707

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.
@@ -0,0 +1,27 @@
1
+ <template>
2
+ <atoms-loader v-show="props.loading" test-id="certificate-spinner" />
3
+ <div class="certificate flex flex-col h-full">
4
+ <common-certificate-tools @renew-certificate="emits('renew-certificate')" />
5
+
6
+ <common-certificate-info :certificate-data="props.certificateData" />
7
+ </div>
8
+ </template>
9
+
10
+ <script lang="ts" setup>
11
+ import type { UI_I_Certificate } from '~/components/common/certificate/lib/models/interfaces'
12
+
13
+ const props = defineProps<{
14
+ loading: boolean
15
+ certificateData: UI_I_Certificate | {}
16
+ }>()
17
+
18
+ const emits = defineEmits<{
19
+ (event: 'renew-certificate'): void
20
+ }>()
21
+ </script>
22
+
23
+ <style lang="scss" scoped>
24
+ .certificate {
25
+ padding-left: 10px;
26
+ }
27
+ </style>
@@ -0,0 +1,139 @@
1
+ <template>
2
+ <div class="stack-view">
3
+ <atoms-stack-block
4
+ :has-children="false"
5
+ test-id="certificate-subject-stack-block"
6
+ >
7
+ <template #stackBlockKey>
8
+ <div class="flex-align-center">
9
+ <span data-id="certificate-subject">{{
10
+ localization.common.subject
11
+ }}</span>
12
+ </div>
13
+ </template>
14
+ <template #stackBlockContent
15
+ ><span data-id="certificate-subject-value">{{
16
+ props.certificateData.subject
17
+ }}</span></template
18
+ >
19
+ </atoms-stack-block>
20
+ <atoms-stack-block
21
+ :has-children="false"
22
+ test-id="certificate-issuer-stack-block"
23
+ >
24
+ <template #stackBlockKey>
25
+ <div class="flex-align-center">
26
+ <span data-id="certificate-issuer">{{
27
+ localization.common.issuer
28
+ }}</span>
29
+ </div>
30
+ </template>
31
+ <template #stackBlockContent
32
+ ><span data-id="certificate-issuer-value">{{
33
+ props.certificateData.issuer
34
+ }}</span></template
35
+ >
36
+ </atoms-stack-block>
37
+ <atoms-stack-block
38
+ :has-children="false"
39
+ test-id="certificate-valid-from-stack-block"
40
+ >
41
+ <template #stackBlockKey>
42
+ <div class="flex-align-center">
43
+ <span data-id="certificate-valid-from">{{
44
+ localization.common.validFrom
45
+ }}</span>
46
+ </div>
47
+ </template>
48
+ <template #stackBlockContent
49
+ ><span data-id="certificate-valid-from-value">{{
50
+ validFrom
51
+ }}</span></template
52
+ >
53
+ </atoms-stack-block>
54
+ <atoms-stack-block
55
+ :has-children="false"
56
+ test-id="certificate-valid-to-stack-block"
57
+ >
58
+ <template #stackBlockKey>
59
+ <div class="flex-align-center">
60
+ <span data-id="certificate-valid-to">{{
61
+ localization.common.validTo
62
+ }}</span>
63
+ </div>
64
+ </template>
65
+ <template #stackBlockContent
66
+ ><span data-id="certificate-valid-to-value">{{
67
+ validTo
68
+ }}</span></template
69
+ >
70
+ </atoms-stack-block>
71
+ <atoms-stack-block
72
+ :has-children="false"
73
+ test-id="certificate-status-stack-block"
74
+ >
75
+ <template #stackBlockKey>
76
+ <div class="flex-align-center">
77
+ <span data-id="certificate-status">{{
78
+ localization.common.status
79
+ }}</span>
80
+ </div>
81
+ </template>
82
+ <template #stackBlockContent
83
+ ><span data-id="certificate-status-value">{{
84
+ props.certificateData.status
85
+ }}</span></template
86
+ >
87
+ </atoms-stack-block>
88
+ </div>
89
+ </template>
90
+
91
+ <script lang="ts" setup>
92
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
93
+ import type { UI_I_Certificate } from '~/components/common/certificate/lib/models/interfaces'
94
+
95
+ const props = defineProps<{
96
+ certificateData: UI_I_Certificate | {}
97
+ }>()
98
+
99
+ const { $store, $formattedDatetime }: any = useNuxtApp()
100
+
101
+ const localization = computed<UI_I_Localization>(() => useLocal())
102
+
103
+ const updateTimeFormatAndInterfaceLang = computed<number>(
104
+ () => $store.getters['main/getUpdateTimeFormatAndInterfaceLang']
105
+ )
106
+
107
+ const validFrom = computed<string>(() =>
108
+ updateTimeFormatAndInterfaceLang.value
109
+ ? $formattedDatetime(props.certificateData.valid_from, {
110
+ hasSeconds: true,
111
+ })
112
+ : ''
113
+ )
114
+ const validTo = computed<string>(() =>
115
+ updateTimeFormatAndInterfaceLang.value
116
+ ? $formattedDatetime(props.certificateData.valid_to, {
117
+ hasSeconds: true,
118
+ })
119
+ : ''
120
+ )
121
+
122
+ onUnmounted(() => {
123
+ $store.dispatch('main/A_PAUSE_GLOBAL_REFRESH', 'hostCertificate')
124
+ })
125
+ </script>
126
+
127
+ <style lang="scss" scoped>
128
+ :deep(.stack-block:hover) {
129
+ border-bottom: 1px solid #ddd;
130
+
131
+ &:last-child {
132
+ border-bottom: unset;
133
+ }
134
+
135
+ .stack-block-label {
136
+ background-color: unset;
137
+ }
138
+ }
139
+ </style>
@@ -0,0 +1,59 @@
1
+ <template>
2
+ <div class="certificate-headline">
3
+ <common-headline :headline="localization.common.certificate">
4
+ <template #action>
5
+ <atoms-tabs
6
+ :items="tabs"
7
+ test-id="certificate-tabs"
8
+ size="small"
9
+ @change="onShowModal"
10
+ />
11
+ </template>
12
+ </common-headline>
13
+ </div>
14
+
15
+ <common-certificate-modals-renew
16
+ v-if="isShowModal"
17
+ :mode="mode"
18
+ @hide="onHideModal"
19
+ @renew-certificate="emits('renew-certificate')"
20
+ />
21
+ </template>
22
+
23
+ <script lang="ts" setup>
24
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
25
+ import type { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
26
+ import type { UI_T_ModeModal } from '~/components/common/certificate/lib/models/types'
27
+ import { certificateTabsFunc } from '~/components/common/certificate/lib/config/tabsPannel'
28
+
29
+ const emits = defineEmits<{
30
+ (event: 'renew-certificate'): void
31
+ }>()
32
+
33
+ const localization = computed<UI_I_Localization>(() => useLocal())
34
+
35
+ const tabs = computed<UI_I_CollapseNavItem[]>(() =>
36
+ certificateTabsFunc(localization.value)
37
+ )
38
+
39
+ const isShowModal = ref<boolean>(false)
40
+ const mode = ref<UI_T_ModeModal>('renew')
41
+ const onShowModal = (value: UI_T_ModeModal): void => {
42
+ mode.value = value
43
+ isShowModal.value = true
44
+ }
45
+ const onHideModal = (): void => {
46
+ isShowModal.value = false
47
+ }
48
+ </script>
49
+
50
+ <style lang="scss" scoped>
51
+ .certificate-headline {
52
+ :deep(.heading-block__actions) {
53
+ .nav {
54
+ margin-top: 0;
55
+ align-items: flex-start;
56
+ }
57
+ }
58
+ }
59
+ </style>
@@ -0,0 +1,22 @@
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type { UI_I_CollapseNavItem } from '~/components/atoms/collapse/lib/models/interfaces'
3
+
4
+ export const certificateTabsFunc = (
5
+ localization: UI_I_Localization
6
+ ): UI_I_CollapseNavItem[] => {
7
+ return [
8
+ {
9
+ text: localization.common.renew,
10
+ value: 'renew',
11
+ disabled: false,
12
+ testId: 'certificate-renew',
13
+ },
14
+ {
15
+ text: localization.common.certificateRefreshTitle,
16
+ value: 'refreshCaCertificates',
17
+ disabled: true,
18
+ testId: 'certificate-refresh',
19
+ development: true,
20
+ },
21
+ ]
22
+ }
@@ -0,0 +1,9 @@
1
+ export interface UI_API_I_Certificate {
2
+ subject: string
3
+ issuer: string
4
+ valid_from: string
5
+ valid_to: string
6
+ status: string
7
+ }
8
+
9
+ export interface UI_I_Certificate extends UI_API_I_Certificate {}
@@ -0,0 +1 @@
1
+ export type UI_T_ModeModal = 'renew' | 'refreshCaCertificates'
@@ -0,0 +1,64 @@
1
+ <template>
2
+ <div class="renew-refresh-certificate">
3
+ <common-modals-confirmation
4
+ :headline="title"
5
+ :description="description"
6
+ :test-id="props.testId"
7
+ :modal-texts="modalTexts"
8
+ :loading="props.loading"
9
+ @hide-modal="emits('hide')"
10
+ @confirm="emits('submit')"
11
+ />
12
+ </div>
13
+ </template>
14
+
15
+ <script lang="ts" setup>
16
+ import type { UI_I_ModalTexts } from '~/node_modules/bfg-uikit/components/ui/modal/models/interfaces'
17
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
18
+ import type { UI_T_ModeModal } from '~/components/common/certificate/lib/models/types'
19
+
20
+ const props = defineProps<{
21
+ mode: UI_T_ModeModal
22
+ hostName: string
23
+ testId: string
24
+ loading: boolean
25
+ }>()
26
+
27
+ const emits = defineEmits<{
28
+ (event: 'hide'): void
29
+ (event: 'submit'): void
30
+ }>()
31
+
32
+ const localization = computed<UI_I_Localization>(() => useLocal())
33
+
34
+ const modalTexts = computed<UI_I_ModalTexts>(() => ({
35
+ button1: localization.value.common.cancel,
36
+ button2:
37
+ localization.value.common[props.mode === 'renew' ? 'renew' : 'refresh'],
38
+ }))
39
+
40
+ const title = computed<string>(
41
+ () =>
42
+ localization.value.inventoryConfigure[
43
+ props.mode === 'renew'
44
+ ? 'renewCertificateConfirm'
45
+ : 'refreshCACertificatesConfirm'
46
+ ]
47
+ )
48
+
49
+ const description = computed<string>(() =>
50
+ localization.value.inventoryConfigure[
51
+ props.mode === 'renew'
52
+ ? 'renewCertificateConfirmDesc'
53
+ : 'refreshCACertificatesConfirmDesc'
54
+ ].replace('{0}', props.hostName)
55
+ )
56
+ </script>
57
+
58
+ <style lang="scss" scoped>
59
+ .renew-refresh-certificate {
60
+ :deep(.confirm-modal__content span:nth-child(2)) {
61
+ line-height: unset;
62
+ }
63
+ }
64
+ </style>
@@ -0,0 +1,122 @@
1
+ <template>
2
+ <atoms-modal
3
+ :title="title"
4
+ :second-title="props.hostName"
5
+ :test-id="props.testId"
6
+ class="certificate-modal"
7
+ show
8
+ @hide="onHide"
9
+ >
10
+ <template #modalBody>
11
+ <form
12
+ id="certificate-renew-form"
13
+ data-id="certificate-renew-form"
14
+ class="pt-0"
15
+ @submit.prevent="onHide"
16
+ >
17
+ <section class="form-block flex-align-center m-0 flex">
18
+ <div class="icon-wrap">
19
+ <atoms-the-icon class="icon-warning" name="warning" />
20
+ </div>
21
+ <p>{{ description }}</p>
22
+ </section>
23
+ </form>
24
+ </template>
25
+ <template #modalFooter>
26
+ <button
27
+ id="certificate-renew-modal-close-button"
28
+ data-id="certificate-renew-modal-close-button"
29
+ class="btn btn-primary"
30
+ @click="onHide"
31
+ >
32
+ {{ localization.common.no }}
33
+ </button>
34
+ <button
35
+ id="certificate-renew-modal-apply-button"
36
+ :class="['btn btn-outline', props.loading && 'pending']"
37
+ data-id="certificate-renew-modal-apply-button"
38
+ @click="emits('submit')"
39
+ >
40
+ <atoms-loader-pre-loader
41
+ v-if="props.loading"
42
+ id="loader"
43
+ :show="props.loading"
44
+ class="absolute-center btn__loading flex"
45
+ test-id="certificate-renew-spinner"
46
+ />
47
+ <span v-else>
48
+ {{ localization.common.yes }}
49
+ </span>
50
+ </button>
51
+ </template>
52
+ </atoms-modal>
53
+ </template>
54
+
55
+ <script lang="ts" setup>
56
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
57
+ import type { UI_T_ModeModal } from '~/components/common/certificate/lib/models/types'
58
+
59
+ const props = defineProps<{
60
+ mode: UI_T_ModeModal
61
+ hostName: string
62
+ testId: string
63
+ loading: boolean
64
+ }>()
65
+
66
+ const emits = defineEmits<{
67
+ (event: 'hide'): void
68
+ (event: 'submit'): void
69
+ }>()
70
+
71
+ const localization = computed<UI_I_Localization>(() => useLocal())
72
+
73
+ const title = computed<string>(
74
+ () =>
75
+ localization.value.common[
76
+ props.mode === 'renew'
77
+ ? 'certificateRenewTitle'
78
+ : 'certificateRefreshTitle'
79
+ ]
80
+ )
81
+
82
+ const description = computed<string>(
83
+ () =>
84
+ localization.value.common[
85
+ props.mode === 'renew'
86
+ ? 'certificateRenewDescription'
87
+ : 'certificateRefreshDescription'
88
+ ]
89
+ )
90
+
91
+ const onHide = (): void => {
92
+ emits('hide')
93
+ }
94
+ </script>
95
+
96
+ <style lang="scss" scoped>
97
+ .certificate-modal {
98
+ form {
99
+ .form-block {
100
+ .icon-warning {
101
+ width: 48px;
102
+ margin-right: 20px;
103
+ }
104
+ }
105
+ }
106
+ }
107
+
108
+ .btn {
109
+ &.pending {
110
+ position: relative;
111
+ pointer-events: none;
112
+ }
113
+ &__loading {
114
+ :deep(.spinner) {
115
+ width: 25px;
116
+ height: 25px;
117
+ min-width: 25px;
118
+ min-height: 25px;
119
+ }
120
+ }
121
+ }
122
+ </style>
@@ -0,0 +1,67 @@
1
+ <template>
2
+ <component
3
+ :is="currentComponent"
4
+ :mode="props.mode"
5
+ :host-name="hostName"
6
+ :test-id="testId"
7
+ :loading="loading"
8
+ @hide="onHide"
9
+ @submit="onSubmit"
10
+ />
11
+ </template>
12
+
13
+ <script lang="ts" setup>
14
+ import type { UI_T_ModeModal } from '~/components/common/certificate/lib/models/types'
15
+
16
+ const props = defineProps<{
17
+ mode: UI_T_ModeModal
18
+ }>()
19
+
20
+ const emits = defineEmits<{
21
+ (event: 'hide'): void
22
+ (event: 'renew-certificate'): void
23
+ }>()
24
+
25
+ const { $store }: any = useNuxtApp()
26
+
27
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
28
+ const currentComponent = computed(() =>
29
+ isNewView.value
30
+ ? defineAsyncComponent(() => import('./New.vue'))
31
+ : defineAsyncComponent(() => import('./Old.vue'))
32
+ )
33
+
34
+ const hostName = location.hostname
35
+
36
+ const loading = ref<boolean>(false)
37
+
38
+ const testId = computed<string>(() =>
39
+ props.mode === 'renew'
40
+ ? 'certificate-renew-modal'
41
+ : 'certificate-refresh-modal'
42
+ )
43
+
44
+ const renewCertificate = (): void => {
45
+ emits('renew-certificate')
46
+ }
47
+
48
+ const refreshCertificate = (): void => {
49
+ console.log('It will be soon')
50
+ }
51
+
52
+ const onSubmit = (): void => {
53
+ loading.value = true
54
+
55
+ props.mode === 'renew' ? renewCertificate() : refreshCertificate()
56
+
57
+ loading.value = false
58
+
59
+ onHide()
60
+ }
61
+
62
+ const onHide = (): void => {
63
+ emits('hide')
64
+ }
65
+ </script>
66
+
67
+ <style lang="scss" scoped></style>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bfg-common",
3
3
  "private": false,
4
- "version": "1.5.705",
4
+ "version": "1.5.707",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",