project-booster-vue 9.26.0 → 9.28.1
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.
- package/package.json +1 -1
- package/src/components/cards/PbCard.vue +14 -2
- package/src/components/media/PbMedia.stories.mdx +29 -65
- package/src/components/media/PbMedia.vue +19 -29
- package/src/components/media/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-components-documents-media-pb-media-/360/237/246/240-with-media-1-snap.png +0 -0
- package/src/components/media/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-components-documents-media-pb-media-/360/237/246/240-with-media-read-only-1-snap.png +0 -0
- package/src/components/media/detail/PbMediaDetail.stories.mdx +11 -71
- package/src/components/media/detail/PbMediaDetail.vue +8 -124
- package/src/components/media/list/PbMediaList.stories.mdx +102 -80
- package/src/components/media/list/PbMediaList.vue +8 -19
- package/src/components/media/list/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-components-documents-media-pb-media-list-/360/237/247/254-all-media-1-snap.png +0 -0
- package/src/components/media/upload/PbMediaUpload.stories.mdx +12 -51
- package/src/components/media/upload/PbMediaUpload.vue +15 -26
- package/src/components/projects/project-hub/PbProjectHub-Collaborator.stories.mdx +1 -32
- package/src/components/projects/project-hub/PbProjectHub-Features-Documents&Media.stories.mdx +0 -82
- package/src/components/projects/project-hub/PbProjectHub.stories.mdx +0 -102
- package/src/components/projects/project-hub/PbProjectHub.vue +0 -91
- package/src/components/projects/project-hub/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-components-projects-pb-project-hub-/360/237/246/240-features-documents-media-showcase-with-media-documents-1-snap.png +0 -0
- package/src/components/question/PbQuestion-Features-Answers-Conditional.stories.mdx +2 -1
- package/src/components/question/PbQuestion-Features-Answers-Modal.stories.mdx +122 -0
- package/src/components/question/PbQuestion.vue +99 -1
- package/src/components/question/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-scenario-questions-pb-question-/360/237/246/240-features-answers-conditional-with-modal-1-snap.png +0 -0
- package/src/components/question/city-search/PbCitySearch.vue +56 -14
- package/src/components/question/city-search/default-payload.json +1 -0
- package/src/components/question/space-input/__snapshots__/storyshots-puppeteer-test-puppeteer-ts-image-storyshots-project-booster-scenario-questions-pb-space-input-/360/237/246/240-showcase-feature-with-modal-1-snap.png +0 -0
- package/src/components/question/upload-document/PbUploadDocument-Features-ShowMore.stories.mdx +4 -4
- package/src/components/question/upload-document/PbUploadDocument-Features-StartOpen.stories.mdx +4 -4
- package/src/components/question/upload-document/PbUploadDocument.stories.mdx +4 -5
- package/src/components/question/upload-document/PbUploadDocument.vue +7 -10
- package/src/services/api/eventsApi.ts +0 -24
- package/src/services/api/mocks/documentsMock.ts +10 -0
- package/src/stores/modules/{mediaDocumentsStore.ts → documentsStore.ts} +78 -210
- package/src/stores/store.ts +4 -5
- package/src/types/pb/Scenario.ts +7 -0
- package/src/components/media/detail/media-detail-payload.json +0 -6
- package/src/components/media/list/media-list-payload.json +0 -14
- package/src/components/media/upload/media-upload-payload.json +0 -17
- package/src/services/api/mediaApi.ts +0 -73
- package/src/services/api/mocks/mediaMock.ts +0 -262
package/package.json
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
disabled ? 'pb-card--disabled' : ''
|
|
6
6
|
}${flattened ? 'pb-card--no-pointer-events' : ''} ${
|
|
7
7
|
cardMinRatio && cardMinRatio !== 'auto' ? 'm-ratio-container--' + cardMinRatio : ''
|
|
8
|
-
}`"
|
|
8
|
+
}${borderTop ? 'pb-card--border-top' : ''}`"
|
|
9
9
|
:role="!buttonLabel ? 'button' : 'article'"
|
|
10
|
-
:style="`min-height: ${cardMinHeight}`"
|
|
10
|
+
:style="`min-height: ${cardMinHeight}; border-color:${borderTop ? borderTop : null}`"
|
|
11
11
|
@click="handleCardClick"
|
|
12
12
|
>
|
|
13
13
|
<m-flex
|
|
@@ -309,6 +309,13 @@ export default defineComponent({
|
|
|
309
309
|
type: [Boolean, String],
|
|
310
310
|
default: false,
|
|
311
311
|
},
|
|
312
|
+
/**
|
|
313
|
+
* Definies if the card has a border top
|
|
314
|
+
*/
|
|
315
|
+
borderTop: {
|
|
316
|
+
type: String,
|
|
317
|
+
default: null,
|
|
318
|
+
},
|
|
312
319
|
},
|
|
313
320
|
|
|
314
321
|
computed: {
|
|
@@ -361,6 +368,11 @@ $responsive-breakpoint: 's';
|
|
|
361
368
|
overflow: hidden;
|
|
362
369
|
position: relative;
|
|
363
370
|
|
|
371
|
+
&--border-top {
|
|
372
|
+
border-top-style: solid !important;
|
|
373
|
+
border-top-width: 4px !important;
|
|
374
|
+
}
|
|
375
|
+
|
|
364
376
|
&__items-container:empty ~ &__image-container {
|
|
365
377
|
height: 100%;
|
|
366
378
|
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
import { Meta, Canvas, Story } from '@storybook/addon-docs';
|
|
2
2
|
import PbMedia from './PbMedia';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
getAllMediaPaginationResolver,
|
|
6
|
-
getMediaThumbnailResolver,
|
|
7
|
-
getMediaFileResolver,
|
|
8
|
-
uploadMediaResolver,
|
|
9
|
-
} from '../../services/api/mocks/mediaMock';
|
|
3
|
+
import documentsStore from '../../stores/modules/documentsStore';
|
|
10
4
|
import {
|
|
11
5
|
getDocumentsByInhabitantProjectIdResolver,
|
|
12
6
|
getDocumentsImageThumbnailResolver,
|
|
@@ -32,8 +26,7 @@ import { useStore } from 'vuex';
|
|
|
32
26
|
nestedAppDecorator(
|
|
33
27
|
{
|
|
34
28
|
modules: {
|
|
35
|
-
documents: cloneDeep(
|
|
36
|
-
media: cloneDeep(mediaDocumentsStore),
|
|
29
|
+
documents: cloneDeep(documentsStore),
|
|
37
30
|
},
|
|
38
31
|
getters: {
|
|
39
32
|
getProject(state) {
|
|
@@ -64,8 +57,6 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
64
57
|
components: { PbMedia },
|
|
65
58
|
setup() {
|
|
66
59
|
const store = useStore();
|
|
67
|
-
store.dispatch('documents/updateContext', { type: 'DOCUMENT' });
|
|
68
|
-
store.dispatch('media/updateContext', { type: 'MEDIA' });
|
|
69
60
|
},
|
|
70
61
|
template: `<div style="flex-direction: column;display: flex;place-content: flex-start;align-items: center;min-height: 100vh;width: 100%;">
|
|
71
62
|
<pb-media />
|
|
@@ -73,37 +64,6 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
73
64
|
};
|
|
74
65
|
};
|
|
75
66
|
|
|
76
|
-
# `EmptyState`
|
|
77
|
-
|
|
78
|
-
<Canvas>
|
|
79
|
-
<Story
|
|
80
|
-
name="Empty State"
|
|
81
|
-
parameters={{
|
|
82
|
-
controls: { disabled: true },
|
|
83
|
-
msw: [
|
|
84
|
-
rest.patch('/api/media/:mediaId', notContentResolver),
|
|
85
|
-
rest.post('/api/events/media', acceptedResolver),
|
|
86
|
-
rest.post('/api/media', uploadMediaResolver),
|
|
87
|
-
rest.get('/api/media/:mediaId/thumbnail', getMediaThumbnailResolver),
|
|
88
|
-
rest.get('/api/media/:mediaId/file', getMediaFileResolver),
|
|
89
|
-
rest.get('/api/media', getAllMediaPaginationResolver),
|
|
90
|
-
],
|
|
91
|
-
}}
|
|
92
|
-
height="512px"
|
|
93
|
-
>
|
|
94
|
-
{{
|
|
95
|
-
components: { PbMedia },
|
|
96
|
-
created() {
|
|
97
|
-
this.$store.dispatch('media/updateContext', { type: 'MEDIA' });
|
|
98
|
-
this.$store.dispatch('media/resetMediaListContext');
|
|
99
|
-
},
|
|
100
|
-
template: `<div style="flex-direction: column;display: flex;place-content: flex-start;align-items: center;min-height: 100vh;width: 100%;">
|
|
101
|
-
<pb-media />
|
|
102
|
-
</div>`,
|
|
103
|
-
}}
|
|
104
|
-
</Story>
|
|
105
|
-
</Canvas>
|
|
106
|
-
|
|
107
67
|
# `EmptyState Document`
|
|
108
68
|
|
|
109
69
|
<Canvas>
|
|
@@ -127,7 +87,6 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
127
87
|
{{
|
|
128
88
|
components: { PbMedia },
|
|
129
89
|
created() {
|
|
130
|
-
this.$store.dispatch('documents/updateContext', { type: 'DOCUMENT' });
|
|
131
90
|
this.$store.dispatch('documents/resetMediaListContext');
|
|
132
91
|
},
|
|
133
92
|
data: () => ({
|
|
@@ -138,7 +97,6 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
138
97
|
template: `<div style="flex-direction: column;display: flex;place-content: flex-start;align-items: center;min-height: 100vh;width: 100%;">
|
|
139
98
|
<pb-media
|
|
140
99
|
section-title="Mes documents"
|
|
141
|
-
store-module-name="documents"
|
|
142
100
|
:list-payload="DOCUMENTS_LIST_PAYLOAD"
|
|
143
101
|
:detail-payload="DOCUMENT_DETAIL_PAYLOAD"
|
|
144
102
|
:upload-payload="DOCUMENT_UPLOAD_PAYLOAD"
|
|
@@ -156,12 +114,15 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
156
114
|
parameters={{
|
|
157
115
|
controls: { disabled: true },
|
|
158
116
|
msw: [
|
|
159
|
-
rest.
|
|
160
|
-
rest.get('/api/
|
|
161
|
-
rest.get(
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
117
|
+
rest.post('/api/inhabitant-projects/:projectId/documents', uploadDocumentResolver),
|
|
118
|
+
rest.get('/api/inhabitant-projects/:projectId/documents/', getDocumentsByInhabitantProjectIdResolver),
|
|
119
|
+
rest.get(
|
|
120
|
+
'/api/inhabitant-projects/:projectId/documents/:documentId/thumbnail',
|
|
121
|
+
getDocumentsImageThumbnailResolver,
|
|
122
|
+
),
|
|
123
|
+
rest.get('/api/inhabitant-projects/:projectId/documents/:documentId/file', getDocumentsImageFileResolver),
|
|
124
|
+
rest.post('/api/inhabitant-projects/:projectId/documents', uploadDocumentResolver),
|
|
125
|
+
rest.delete('/api/inhabitant-projects/:projectId/documents/:documentId', notContentResolver),
|
|
165
126
|
],
|
|
166
127
|
}}
|
|
167
128
|
height="512px"
|
|
@@ -169,8 +130,7 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
169
130
|
{{
|
|
170
131
|
components: { PbMedia },
|
|
171
132
|
created() {
|
|
172
|
-
this.$store.dispatch('
|
|
173
|
-
this.$store.dispatch('media/loadMedia');
|
|
133
|
+
this.$store.dispatch('documents/loadMedia', '001');
|
|
174
134
|
},
|
|
175
135
|
template: `<div style="flex-direction: column;display: flex;place-content: flex-start;align-items: center;min-height: 100vh;width: 100%;">
|
|
176
136
|
<pb-media />
|
|
@@ -187,9 +147,12 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
187
147
|
parameters={{
|
|
188
148
|
controls: { disabled: true },
|
|
189
149
|
msw: [
|
|
190
|
-
rest.
|
|
191
|
-
rest.get(
|
|
192
|
-
|
|
150
|
+
rest.post('/api/inhabitant-projects/:projectId/documents', uploadDocumentResolver),
|
|
151
|
+
rest.get(
|
|
152
|
+
'/api/inhabitant-projects/:projectId/documents/:documentId/thumbnail',
|
|
153
|
+
getDocumentsImageThumbnailResolver,
|
|
154
|
+
),
|
|
155
|
+
rest.get('/api/inhabitant-projects/:projectId/documents/:documentId/file', getDocumentsImageFileResolver),
|
|
193
156
|
],
|
|
194
157
|
}}
|
|
195
158
|
height="512px"
|
|
@@ -197,8 +160,7 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
197
160
|
{{
|
|
198
161
|
components: { PbMedia },
|
|
199
162
|
created() {
|
|
200
|
-
this.$store.dispatch('
|
|
201
|
-
this.$store.dispatch('media/resetMediaListContext');
|
|
163
|
+
this.$store.dispatch('documents/resetMediaListContext');
|
|
202
164
|
},
|
|
203
165
|
template: `<div style="flex-direction: column;display: flex;place-content: flex-start;align-items: center;min-height: 100vh;width: 100%;">
|
|
204
166
|
<pb-media read-only />
|
|
@@ -207,7 +169,7 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
207
169
|
</Story>
|
|
208
170
|
</Canvas>
|
|
209
171
|
|
|
210
|
-
# `With Media`
|
|
172
|
+
# `With Media` read only
|
|
211
173
|
|
|
212
174
|
<Canvas>
|
|
213
175
|
<Story
|
|
@@ -215,11 +177,14 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
215
177
|
parameters={{
|
|
216
178
|
controls: { disabled: true },
|
|
217
179
|
msw: [
|
|
218
|
-
rest.
|
|
219
|
-
rest.get('/api/
|
|
220
|
-
rest.get(
|
|
221
|
-
|
|
222
|
-
|
|
180
|
+
rest.post('/api/inhabitant-projects/:projectId/documents', uploadDocumentResolver),
|
|
181
|
+
rest.get('/api/inhabitant-projects/:projectId/documents/', getDocumentsByInhabitantProjectIdResolver),
|
|
182
|
+
rest.get(
|
|
183
|
+
'/api/inhabitant-projects/:projectId/documents/:documentId/thumbnail',
|
|
184
|
+
getDocumentsImageThumbnailResolver,
|
|
185
|
+
),
|
|
186
|
+
rest.get('/api/inhabitant-projects/:projectId/documents/:documentId/file', getDocumentsImageFileResolver),
|
|
187
|
+
rest.post('/api/inhabitant-projects/:projectId/documents', uploadDocumentResolver),
|
|
223
188
|
rest.delete('/api/media/:mediaId', notContentResolver),
|
|
224
189
|
],
|
|
225
190
|
}}
|
|
@@ -228,8 +193,7 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
228
193
|
{{
|
|
229
194
|
components: { PbMedia },
|
|
230
195
|
created() {
|
|
231
|
-
this.$store.dispatch('
|
|
232
|
-
this.$store.dispatch('media/loadMedia');
|
|
196
|
+
this.$store.dispatch('documents/loadMedia', '001');
|
|
233
197
|
},
|
|
234
198
|
template: `<div style="flex-direction: column;display: flex;place-content: flex-start;align-items: center;min-height: 100vh;width: 100%;">
|
|
235
199
|
<pb-media read-only />
|
|
@@ -12,7 +12,6 @@
|
|
|
12
12
|
<div class="pb-media__header-upload-button" v-if="(!isLoadingMedia || mediaList.length > 0) && !mediaLoadError">
|
|
13
13
|
<pb-media-upload
|
|
14
14
|
v-if="!readOnly"
|
|
15
|
-
:store-module-name="storeModuleName"
|
|
16
15
|
:payload="uploadPayload"
|
|
17
16
|
@media-uploaded="handleMediaUploaded"
|
|
18
17
|
ref="pbMediaUpload"
|
|
@@ -38,13 +37,12 @@
|
|
|
38
37
|
subtitle-error="Voulez-vous relancer le chargement des photos"
|
|
39
38
|
retry-button-label="Réessayer"
|
|
40
39
|
:state="mediaLoadError ? 'error' : 'loading'"
|
|
41
|
-
@loader-click="$store.dispatch(
|
|
40
|
+
@loader-click="$store.dispatch('documents/loadMedia', $route.params.projectId)"
|
|
42
41
|
/>
|
|
43
42
|
</m-flex>
|
|
44
43
|
<pb-media-list
|
|
45
44
|
v-else
|
|
46
45
|
ref="pbMediaList"
|
|
47
|
-
:store-module-name="storeModuleName"
|
|
48
46
|
:media-list="mediaList"
|
|
49
47
|
:has-still-media="hasStillMedia"
|
|
50
48
|
:is-loading-media="isLoadingMedia"
|
|
@@ -53,7 +51,7 @@
|
|
|
53
51
|
:read-only="readOnly"
|
|
54
52
|
@add-media="addMedia"
|
|
55
53
|
@click-on-delete="handleClickOnDelete"
|
|
56
|
-
@click-load-more="$store.dispatch(
|
|
54
|
+
@click-load-more="$store.dispatch('documents/loadMoreMedia')"
|
|
57
55
|
/>
|
|
58
56
|
</m-flex>
|
|
59
57
|
<m-notification
|
|
@@ -126,7 +124,7 @@
|
|
|
126
124
|
} » n'a pas pu être supprimée.`"
|
|
127
125
|
closable
|
|
128
126
|
:link-label="mediaDeletionError ? 'Réessayer' : null"
|
|
129
|
-
@link-click="$store.dispatch(
|
|
127
|
+
@link-click="$store.dispatch('documents/deleteMedia', currentMedia)"
|
|
130
128
|
@close="resetMediaDeletionError"
|
|
131
129
|
/>
|
|
132
130
|
<pb-sticky-footer
|
|
@@ -137,7 +135,6 @@
|
|
|
137
135
|
<pb-media-upload
|
|
138
136
|
ref="pbMediaUploadSticky"
|
|
139
137
|
class="pb-media__sticky-upload-button-content"
|
|
140
|
-
:store-module-name="storeModuleName"
|
|
141
138
|
:payload="uploadPayload"
|
|
142
139
|
@media-uploaded="handleMediaUploaded"
|
|
143
140
|
:read-only="readOnly"
|
|
@@ -161,9 +158,9 @@ import PbLoader from '../loader/PbLoader.vue';
|
|
|
161
158
|
import PbMediaList from '../media/list/PbMediaList.vue';
|
|
162
159
|
import PbMediaUpload from '../media/upload/PbMediaUpload.vue';
|
|
163
160
|
import PbStickyFooter from '../sticky-footer/PbStickyFooter.vue';
|
|
164
|
-
import
|
|
165
|
-
import
|
|
166
|
-
import
|
|
161
|
+
import DOCUMENTS_LIST_PAYLOAD from './list/documents-list-payload.json';
|
|
162
|
+
import DOCUMENT_DETAIL_PAYLOAD from './detail/document-detail-payload.json';
|
|
163
|
+
import DOCUMENT_UPLOAD_PAYLOAD from './upload/document-upload-payload.json';
|
|
167
164
|
|
|
168
165
|
const BACK_ICON =
|
|
169
166
|
'https://storage.googleapis.com/project-booster-media/mozaic-icons/svg/Navigation_Arrow_Arrow--Left_16px.svg';
|
|
@@ -190,35 +187,28 @@ export default defineComponent({
|
|
|
190
187
|
*/
|
|
191
188
|
sectionTitle: {
|
|
192
189
|
type: String,
|
|
193
|
-
default: 'Mes
|
|
194
|
-
},
|
|
195
|
-
/**
|
|
196
|
-
* The store module name
|
|
197
|
-
*/
|
|
198
|
-
storeModuleName: {
|
|
199
|
-
type: String,
|
|
200
|
-
default: 'media',
|
|
190
|
+
default: 'Mes documents',
|
|
201
191
|
},
|
|
202
192
|
/**
|
|
203
193
|
* The detail component payload
|
|
204
194
|
*/
|
|
205
195
|
detailPayload: {
|
|
206
196
|
type: Object,
|
|
207
|
-
default: () =>
|
|
197
|
+
default: () => DOCUMENT_DETAIL_PAYLOAD,
|
|
208
198
|
},
|
|
209
199
|
/**
|
|
210
200
|
* The list component payload
|
|
211
201
|
*/
|
|
212
202
|
listPayload: {
|
|
213
203
|
type: Object,
|
|
214
|
-
default: () =>
|
|
204
|
+
default: () => DOCUMENTS_LIST_PAYLOAD,
|
|
215
205
|
},
|
|
216
206
|
/**
|
|
217
207
|
* The upload component payload
|
|
218
208
|
*/
|
|
219
209
|
uploadPayload: {
|
|
220
210
|
type: Object,
|
|
221
|
-
default: () =>
|
|
211
|
+
default: () => DOCUMENT_UPLOAD_PAYLOAD,
|
|
222
212
|
},
|
|
223
213
|
/**
|
|
224
214
|
* Indicates whether the UI is read only
|
|
@@ -244,16 +234,16 @@ export default defineComponent({
|
|
|
244
234
|
const isDeletingMedia = ref(false);
|
|
245
235
|
const isMediaDeletionSuccess = ref(false);
|
|
246
236
|
|
|
247
|
-
const isLoadingMedia = computed(() => store.getters[
|
|
248
|
-
const hasStillMedia = computed(() => store.getters[
|
|
249
|
-
const mediaList = computed(() => store.getters[
|
|
250
|
-
const mediaLoadError = computed(() => store.getters[
|
|
251
|
-
const isAddPhotoDisabled = computed(() => store.getters[
|
|
252
|
-
const currentMedia = computed(() => store.getters[
|
|
237
|
+
const isLoadingMedia = computed(() => store.getters['documents/isLoadingMedia']);
|
|
238
|
+
const hasStillMedia = computed(() => store.getters['documents/hasStillMedia']);
|
|
239
|
+
const mediaList = computed(() => store.getters['documents/getMediaList']);
|
|
240
|
+
const mediaLoadError = computed(() => store.getters['documents/getMediaLoadError']);
|
|
241
|
+
const isAddPhotoDisabled = computed(() => store.getters['documents/isAddPhotoDisabled']);
|
|
242
|
+
const currentMedia = computed(() => store.getters['documents/getCurrentMedia']);
|
|
253
243
|
const project = computed(() => store.getters['projects/getProject']);
|
|
254
244
|
|
|
255
245
|
const handleMediaUploaded = () => {
|
|
256
|
-
store.dispatch(
|
|
246
|
+
store.dispatch('documents/refreshMediaList');
|
|
257
247
|
};
|
|
258
248
|
const handleClickOnDelete = (media: Media) => {
|
|
259
249
|
mediaToDelete.value = media;
|
|
@@ -279,10 +269,10 @@ export default defineComponent({
|
|
|
279
269
|
mediaDeletionError.value = null;
|
|
280
270
|
isDeletingMedia.value = true;
|
|
281
271
|
try {
|
|
282
|
-
await store.dispatch(
|
|
272
|
+
await store.dispatch('documents/deleteMedia', mediaToDelete.value);
|
|
283
273
|
isMediaDeletionSuccess.value = true;
|
|
284
274
|
if (currentMedia.value && currentMedia.value.id === mediaToDelete.value?.id) {
|
|
285
|
-
store.dispatch(
|
|
275
|
+
store.dispatch('documents/updateCurrentMedia', null);
|
|
286
276
|
}
|
|
287
277
|
setTimeout(() => {
|
|
288
278
|
isMediaDeletionSuccess.value = false;
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import { Meta, Canvas, Story } from '@storybook/addon-docs';
|
|
2
2
|
import { nestedAppDecorator } from '../../../../.storybook/nested-app-decorator';
|
|
3
3
|
import PbMediaDetail from './PbMediaDetail.vue';
|
|
4
|
-
import
|
|
4
|
+
import documentsStore from '../../../stores/modules/documentsStore';
|
|
5
5
|
import { rest } from 'msw';
|
|
6
6
|
import { internalServerErrorResolver, notContentResolver } from '../../../services/api/mocks/commonMock';
|
|
7
|
-
import {
|
|
8
|
-
getAllMediaPaginationResolver,
|
|
9
|
-
getMediaFileResolver,
|
|
10
|
-
nameAlreadyUsedResolver,
|
|
11
|
-
} from '../../../services/api/mocks/mediaMock';
|
|
12
7
|
import {
|
|
13
8
|
getDocumentsByInhabitantProjectIdResolver,
|
|
14
|
-
getDocumentsImageThumbnailResolver,
|
|
15
9
|
getDocumentsPdfThumbnailResolver,
|
|
16
10
|
getDocumentsImageFileResolver,
|
|
17
11
|
getDocumentsPdfFileResolver,
|
|
@@ -30,8 +24,7 @@ import { useStore } from 'vuex';
|
|
|
30
24
|
nestedAppDecorator(
|
|
31
25
|
{
|
|
32
26
|
modules: {
|
|
33
|
-
|
|
34
|
-
documents: cloneDeep(mediaDocumentsStore),
|
|
27
|
+
documents: cloneDeep(documentsStore),
|
|
35
28
|
},
|
|
36
29
|
},
|
|
37
30
|
[],
|
|
@@ -47,13 +40,10 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
47
40
|
components: { PbMediaDetail },
|
|
48
41
|
setup() {
|
|
49
42
|
const store = useStore();
|
|
50
|
-
store.dispatch('media/updateContext', { type: 'MEDIA' });
|
|
51
|
-
store.dispatch('documents/updateContext', { type: 'DOCUMENT' });
|
|
52
43
|
return { args };
|
|
53
44
|
},
|
|
54
45
|
template: `<div style="flex-direction: column;display: flex;place-content: flex-start;align-items: center;min-height: 100vh;width: 100%;">
|
|
55
46
|
<pb-media-detail
|
|
56
|
-
:store-module-name="args.storeModuleName"
|
|
57
47
|
:read-only="args.readOnly"
|
|
58
48
|
:payload="args.payload"
|
|
59
49
|
:media="args.media"
|
|
@@ -70,21 +60,15 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
70
60
|
parameters={{
|
|
71
61
|
controls: { disabled: true },
|
|
72
62
|
msw: [
|
|
73
|
-
rest.patch('/api/
|
|
74
|
-
rest.get('/api/
|
|
75
|
-
rest.get('/api/
|
|
63
|
+
rest.patch('/api/inhabitant-projects/:projectId/documents/:documentId', notContentResolver),
|
|
64
|
+
rest.get('/api/inhabitant-projects/:projectId/documents/', getDocumentsByInhabitantProjectIdResolver),
|
|
65
|
+
rest.get('/api/inhabitant-projects/:projectId/documents/:documentId/file', getDocumentsImageFileResolver),
|
|
76
66
|
],
|
|
77
67
|
}}
|
|
78
68
|
inline={false}
|
|
79
69
|
height="1024px"
|
|
80
70
|
args={{
|
|
81
|
-
media:
|
|
82
|
-
id: '123456',
|
|
83
|
-
title: 'My office',
|
|
84
|
-
public: false,
|
|
85
|
-
verificationResult: { accepted: true },
|
|
86
|
-
},
|
|
87
|
-
storeModuleName: 'media',
|
|
71
|
+
media: imageDocument,
|
|
88
72
|
}}
|
|
89
73
|
>
|
|
90
74
|
{TemplateSandbox.bind({})}
|
|
@@ -98,19 +82,13 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
98
82
|
name="Showcase Media - Verification refused"
|
|
99
83
|
parameters={{
|
|
100
84
|
controls: { disabled: true },
|
|
101
|
-
msw: [rest.get('/api/
|
|
85
|
+
msw: [rest.get('/api/inhabitant-projects/:projectId/documents/:documentId/file', getDocumentsImageFileResolver)],
|
|
102
86
|
storyshots: { disable: true },
|
|
103
87
|
}}
|
|
104
88
|
inline={false}
|
|
105
89
|
height="1024px"
|
|
106
90
|
args={{
|
|
107
|
-
media:
|
|
108
|
-
id: '123456',
|
|
109
|
-
title: 'My office',
|
|
110
|
-
public: false,
|
|
111
|
-
verificationResult: { accepted: false },
|
|
112
|
-
},
|
|
113
|
-
storeModuleName: 'media',
|
|
91
|
+
media: imageDocument,
|
|
114
92
|
}}
|
|
115
93
|
>
|
|
116
94
|
{TemplateSandbox.bind({})}
|
|
@@ -125,50 +103,15 @@ export const TemplateSandbox = (args, { argTypes }) => {
|
|
|
125
103
|
parameters={{
|
|
126
104
|
controls: { disabled: true },
|
|
127
105
|
msw: [
|
|
128
|
-
rest.patch('/api/
|
|
129
|
-
rest.get('/api/
|
|
130
|
-
],
|
|
131
|
-
storyshots: { disable: true },
|
|
132
|
-
}}
|
|
133
|
-
inline={false}
|
|
134
|
-
height="1024px"
|
|
135
|
-
args={{
|
|
136
|
-
media: {
|
|
137
|
-
id: '123456',
|
|
138
|
-
title: 'My office',
|
|
139
|
-
public: false,
|
|
140
|
-
verificationResult: { accepted: true },
|
|
141
|
-
},
|
|
142
|
-
storeModuleName: 'media',
|
|
143
|
-
}}
|
|
144
|
-
>
|
|
145
|
-
{TemplateSandbox.bind({})}
|
|
146
|
-
</Story>
|
|
147
|
-
</Canvas>
|
|
148
|
-
|
|
149
|
-
## **Save media with same name** action
|
|
150
|
-
|
|
151
|
-
<Canvas>
|
|
152
|
-
<Story
|
|
153
|
-
name="Showcase Media - With same name"
|
|
154
|
-
parameters={{
|
|
155
|
-
controls: { disabled: true },
|
|
156
|
-
msw: [
|
|
157
|
-
rest.patch('/api/media/:mediaId', nameAlreadyUsedResolver),
|
|
158
|
-
rest.get('/api/media/:mediaId/file', getMediaFileResolver),
|
|
106
|
+
rest.patch('/api/inhabitant-projects/:projectId/documents/:documentId', internalServerErrorResolver),
|
|
107
|
+
rest.get('/api/inhabitant-projects/:projectId/documents/:documentId/file', getDocumentsImageFileResolver),
|
|
159
108
|
],
|
|
160
109
|
storyshots: { disable: true },
|
|
161
110
|
}}
|
|
162
111
|
inline={false}
|
|
163
112
|
height="1024px"
|
|
164
113
|
args={{
|
|
165
|
-
media:
|
|
166
|
-
id: '123456',
|
|
167
|
-
title: 'My office',
|
|
168
|
-
public: false,
|
|
169
|
-
verificationResult: { accepted: true },
|
|
170
|
-
},
|
|
171
|
-
storeModuleName: 'media',
|
|
114
|
+
media: imageDocument,
|
|
172
115
|
}}
|
|
173
116
|
>
|
|
174
117
|
{TemplateSandbox.bind({})}
|
|
@@ -209,7 +152,6 @@ export const imageDocument = {
|
|
|
209
152
|
height="1024px"
|
|
210
153
|
args={{
|
|
211
154
|
media: imageDocument,
|
|
212
|
-
storeModuleName: 'documents',
|
|
213
155
|
payload: DOCUMENT_DETAIL_PAYLOAD,
|
|
214
156
|
}}
|
|
215
157
|
>
|
|
@@ -254,7 +196,6 @@ export const pdfDocument = {
|
|
|
254
196
|
height="1024px"
|
|
255
197
|
args={{
|
|
256
198
|
media: pdfDocument,
|
|
257
|
-
storeModuleName: 'documents',
|
|
258
199
|
payload: DOCUMENT_DETAIL_PAYLOAD,
|
|
259
200
|
}}
|
|
260
201
|
>
|
|
@@ -282,7 +223,6 @@ export const pdfDocument = {
|
|
|
282
223
|
height="1024px"
|
|
283
224
|
args={{
|
|
284
225
|
media: pdfDocument,
|
|
285
|
-
storeModuleName: 'documents',
|
|
286
226
|
payload: DOCUMENT_DETAIL_PAYLOAD,
|
|
287
227
|
readOnly: true,
|
|
288
228
|
}}
|