project-booster-vue 9.1.0 → 9.2.0
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
CHANGED
package/src/components/projects/project-hub/PbProjectHub-Features-Documents&Media.stories.mdx
CHANGED
|
@@ -54,9 +54,11 @@ import DOCUMENT_UPLOAD_PAYLOAD from '../../media/upload/document-upload-payload.
|
|
|
54
54
|
store.dispatch('projects/loadProject', '001');
|
|
55
55
|
}
|
|
56
56
|
if (store.getters['media/getCurrentProjectId'] !== '001') {
|
|
57
|
+
store.dispatch('media/updateContext', { type: 'MEDIA' });
|
|
57
58
|
store.dispatch('media/loadMedia', '001');
|
|
58
59
|
}
|
|
59
60
|
if (store.getters['documents/getCurrentProjectId'] !== '001') {
|
|
61
|
+
store.dispatch('documents/updateContext', { type: 'DOCUMENTS' });
|
|
60
62
|
store.dispatch('documents/loadMedia', '001');
|
|
61
63
|
}
|
|
62
64
|
next();
|
|
@@ -72,6 +74,7 @@ import DOCUMENT_UPLOAD_PAYLOAD from '../../media/upload/document-upload-payload.
|
|
|
72
74
|
uploadPayload: MEDIA_UPLOAD_PAYLOAD,
|
|
73
75
|
},
|
|
74
76
|
beforeEnter: async (to, from, next, store) => {
|
|
77
|
+
store.dispatch('media/updateContext', { type: 'MEDIA' });
|
|
75
78
|
if (store.getters['projects/getCurrentProjectId'] !== '001') {
|
|
76
79
|
store.dispatch('projects/loadProject', '001');
|
|
77
80
|
}
|
|
@@ -91,6 +94,7 @@ import DOCUMENT_UPLOAD_PAYLOAD from '../../media/upload/document-upload-payload.
|
|
|
91
94
|
uploadPayload: MEDIA_UPLOAD_PAYLOAD,
|
|
92
95
|
},
|
|
93
96
|
beforeEnter: async (to, from, next, store) => {
|
|
97
|
+
store.dispatch('media/updateContext', { type: 'MEDIA' });
|
|
94
98
|
if (store.getters['projects/getCurrentProjectId'] !== '001') {
|
|
95
99
|
store.dispatch('projects/loadProject', '001');
|
|
96
100
|
}
|
|
@@ -114,6 +118,7 @@ import DOCUMENT_UPLOAD_PAYLOAD from '../../media/upload/document-upload-payload.
|
|
|
114
118
|
uploadPayload: DOCUMENT_UPLOAD_PAYLOAD,
|
|
115
119
|
},
|
|
116
120
|
beforeEnter: async (to, from, next, store) => {
|
|
121
|
+
store.dispatch('documents/updateContext', { type: 'DOCUMENTS' });
|
|
117
122
|
if (store.getters['projects/getCurrentProjectId'] !== '001') {
|
|
118
123
|
store.dispatch('projects/loadProject', '001');
|
|
119
124
|
}
|
|
@@ -134,6 +139,7 @@ import DOCUMENT_UPLOAD_PAYLOAD from '../../media/upload/document-upload-payload.
|
|
|
134
139
|
uploadPayload: DOCUMENT_UPLOAD_PAYLOAD,
|
|
135
140
|
},
|
|
136
141
|
beforeEnter: async (to, from, next, store) => {
|
|
142
|
+
store.dispatch('documents/updateContext', { type: 'DOCUMENTS' });
|
|
137
143
|
if (store.getters['projects/getCurrentProjectId'] !== '001') {
|
|
138
144
|
store.dispatch('projects/loadProject', '001');
|
|
139
145
|
}
|
|
@@ -148,7 +154,7 @@ import DOCUMENT_UPLOAD_PAYLOAD from '../../media/upload/document-upload-payload.
|
|
|
148
154
|
},
|
|
149
155
|
]),
|
|
150
156
|
]}
|
|
151
|
-
|
|
157
|
+
/>
|
|
152
158
|
|
|
153
159
|
# 🦠 `PbProjectHub` - Component
|
|
154
160
|
|
|
@@ -97,9 +97,11 @@ import DOCUMENT_UPLOAD_PAYLOAD from '../../media/upload/document-upload-payload.
|
|
|
97
97
|
store.dispatch('estimates/loadEstimates', projectId);
|
|
98
98
|
}
|
|
99
99
|
if (store.getters['media/getCurrentProjectId'] !== projectId) {
|
|
100
|
+
store.dispatch('media/updateContext', { type: 'MEDIA' });
|
|
100
101
|
store.dispatch('media/loadMedia', projectId);
|
|
101
102
|
}
|
|
102
103
|
if (store.getters['documents/getCurrentProjectId'] !== projectId) {
|
|
104
|
+
store.dispatch('documents/updateContext', { type: 'DOCUMENTS' });
|
|
103
105
|
store.dispatch('documents/loadMedia', projectId);
|
|
104
106
|
}
|
|
105
107
|
if (store.getters['projects/getCurrentProjectId'] !== projectId) {
|
|
@@ -125,6 +127,7 @@ import DOCUMENT_UPLOAD_PAYLOAD from '../../media/upload/document-upload-payload.
|
|
|
125
127
|
beforeEnter: async (to, from, next, store) => {
|
|
126
128
|
store.dispatch('media/updateCurrentMedia', null);
|
|
127
129
|
const projectId = to.params.projectId;
|
|
130
|
+
store.dispatch('media/updateContext', { type: 'MEDIA' });
|
|
128
131
|
if (store.getters['projects/getCurrentProjectId'] !== projectId) {
|
|
129
132
|
store.dispatch('projects/loadProject', projectId);
|
|
130
133
|
}
|
|
@@ -141,6 +144,7 @@ import DOCUMENT_UPLOAD_PAYLOAD from '../../media/upload/document-upload-payload.
|
|
|
141
144
|
beforeEnter: async (to, from, next, store) => {
|
|
142
145
|
const projectId = to.params.projectId;
|
|
143
146
|
const mediaId = to.params.inspirationId;
|
|
147
|
+
store.dispatch('media/updateContext', { type: 'MEDIA' });
|
|
144
148
|
if (store.getters['projects/getCurrentProjectId'] !== projectId) {
|
|
145
149
|
store.dispatch('projects/loadProject', projectId);
|
|
146
150
|
}
|
|
@@ -164,6 +168,7 @@ import DOCUMENT_UPLOAD_PAYLOAD from '../../media/upload/document-upload-payload.
|
|
|
164
168
|
uploadPayload: DOCUMENT_UPLOAD_PAYLOAD,
|
|
165
169
|
},
|
|
166
170
|
beforeEnter: async (to, from, next, store) => {
|
|
171
|
+
store.dispatch('documents/updateContext', { type: 'DOCUMENTS' });
|
|
167
172
|
store.dispatch('documents/updateCurrentMedia', null);
|
|
168
173
|
const projectId = to.params.projectId;
|
|
169
174
|
if (store.getters['projects/getCurrentProjectId'] !== projectId) {
|
|
@@ -188,6 +193,7 @@ import DOCUMENT_UPLOAD_PAYLOAD from '../../media/upload/document-upload-payload.
|
|
|
188
193
|
beforeEnter: async (to, from, next, store) => {
|
|
189
194
|
const projectId = to.params.projectId;
|
|
190
195
|
const mediaId = to.params.documentId;
|
|
196
|
+
store.dispatch('documents/updateContext', { type: 'DOCUMENTS' });
|
|
191
197
|
if (store.getters['projects/getCurrentProjectId'] !== projectId) {
|
|
192
198
|
store.dispatch('projects/loadProject', projectId);
|
|
193
199
|
}
|
|
@@ -245,31 +251,34 @@ The `PbProjectHub` component to access your project.
|
|
|
245
251
|
rest.get('/api/estimates', getEstimatesByProjectIdResolver),
|
|
246
252
|
rest.post('/api/estimates', successResolver),
|
|
247
253
|
rest.get(
|
|
248
|
-
'/inhabitant-projects/:inhabitantProjectId/simulations',
|
|
254
|
+
'/api/inhabitant-projects/:inhabitantProjectId/simulations',
|
|
249
255
|
getConfigurationsWithUpdatedPricesByProjectIdResolver,
|
|
250
256
|
),
|
|
251
|
-
rest.get('
|
|
257
|
+
rest.get('//apisimulations', getConfigurationsByProjectIdResolver),
|
|
252
258
|
rest.get(
|
|
253
259
|
'https://storage.googleapis.com/pb-dev-adeo-disp-project-tools/:id.json',
|
|
254
260
|
getToolsByProjectTypeResolver,
|
|
255
261
|
),
|
|
256
|
-
rest.get('/project-types/:projectTypeId/products-feature-flag', getEnabledProductsFeatureFlagResolver),
|
|
257
|
-
rest.get('/media', getAllMediaPaginationResolver),
|
|
258
|
-
rest.get('/media/:mediaId', getMediumByIdResolver),
|
|
259
|
-
rest.get('/media/:mediaId/thumbnail', getMediaThumbnailResolver),
|
|
260
|
-
rest.get('/media/:mediaId/file', getMediaFileResolver),
|
|
261
|
-
rest.post('/media', uploadMediaResolver),
|
|
262
|
-
rest.patch('/media/:mediaId', getMediumByIdResolver),
|
|
263
|
-
rest.delete('/media/:mediaId', successResolver),
|
|
264
|
-
rest.patch('/media/:mediaId', notContentResolver),
|
|
265
|
-
rest.get('/inhabitant-projects/:projectId/documents/', getDocumentsByInhabitantProjectIdResolver),
|
|
266
|
-
rest.get('/inhabitant-projects/:projectId/documents/:documentId', getDocumentByIdResolver),
|
|
267
|
-
rest.delete('/inhabitant-projects/:projectId/documents/:documentId', successResolver),
|
|
268
|
-
rest.get(
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
rest.get('/inhabitant-
|
|
262
|
+
rest.get('/api/project-types/:projectTypeId/products-feature-flag', getEnabledProductsFeatureFlagResolver),
|
|
263
|
+
rest.get('/api/media', getAllMediaPaginationResolver),
|
|
264
|
+
rest.get('/api/media/:mediaId', getMediumByIdResolver),
|
|
265
|
+
rest.get('/api/media/:mediaId/thumbnail', getMediaThumbnailResolver),
|
|
266
|
+
rest.get('/api/media/:mediaId/file', getMediaFileResolver),
|
|
267
|
+
rest.post('/api/media', uploadMediaResolver),
|
|
268
|
+
rest.patch('/api/media/:mediaId', getMediumByIdResolver),
|
|
269
|
+
rest.delete('/api/media/:mediaId', successResolver),
|
|
270
|
+
rest.patch('/api/media/:mediaId', notContentResolver),
|
|
271
|
+
rest.get('/api/inhabitant-projects/:projectId/documents/', getDocumentsByInhabitantProjectIdResolver),
|
|
272
|
+
rest.get('/api/inhabitant-projects/:projectId/documents/:documentId', getDocumentByIdResolver),
|
|
273
|
+
rest.delete('/api/inhabitant-projects/:projectId/documents/:documentId', successResolver),
|
|
274
|
+
rest.get(
|
|
275
|
+
'/api/inhabitant-projects/:projectId/documents/:documentId/thumbnail',
|
|
276
|
+
getDocumentsImageThumbnailResolver,
|
|
277
|
+
),
|
|
278
|
+
rest.get('/api/inhabitant-projects/:projectId/documents/:documentId/file', getDocumentsImageFileResolver),
|
|
279
|
+
rest.post('/api/inhabitant-projects/:projectId/documents', uploadDocumentResolver),
|
|
280
|
+
rest.get('/api/inhabitant-projects/:projectId/attributes', getProjectAttributesByIdResolver),
|
|
281
|
+
rest.get('/api/inhabitant-api/users/:buId/:inhabitantId', getInhabitantByIdResolver),
|
|
273
282
|
],
|
|
274
283
|
storyshots: { disable: true },
|
|
275
284
|
}}
|
|
@@ -81,35 +81,61 @@
|
|
|
81
81
|
/>
|
|
82
82
|
</m-flex>
|
|
83
83
|
</m-flex>
|
|
84
|
-
<m-flex
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
84
|
+
<m-flex v-if="isDocumentsDisplayed" class="pb-project-hub__section" direction="column" full-width>
|
|
85
|
+
<div class="pb-project-hub__section-header">
|
|
86
|
+
<div class="pb-project-hub__section-title">{{ titleDocument }}</div>
|
|
87
|
+
</div>
|
|
88
|
+
<div class="pb-project-hub__section-content">
|
|
89
|
+
<m-flex
|
|
90
|
+
class="pb-project-hub__section-content--loading"
|
|
91
|
+
v-if="isLoadingDocuments"
|
|
92
|
+
direction="column"
|
|
93
|
+
align-items="center"
|
|
94
|
+
justify-content="center"
|
|
95
|
+
align-content="center"
|
|
96
|
+
>
|
|
97
|
+
<pb-animable-loader class="pb-project-hub__section-content--loading-loader" />
|
|
98
|
+
<div class="pb-project-hub__section-content--loading-label">Chargement...</div>
|
|
99
|
+
</m-flex>
|
|
100
|
+
<m-container
|
|
101
|
+
class="pb-project-hub__section-content-cards-container"
|
|
102
|
+
fluid
|
|
103
|
+
v-if="displayedDocuments && displayedDocuments.length > 0"
|
|
104
|
+
>
|
|
105
|
+
<m-flexy class="pb-project-hub__section-content-cards-flexy">
|
|
106
|
+
<m-flexy-col
|
|
107
|
+
class="pb-project-hub__section-content-card-flexy"
|
|
108
|
+
v-for="document in displayedDocuments"
|
|
109
|
+
:key="document.id"
|
|
110
|
+
width="full"
|
|
111
|
+
width-from-m="1of3"
|
|
112
|
+
>
|
|
113
|
+
<div class="pb-project-hub__section-content-card-container">
|
|
114
|
+
<pb-card
|
|
115
|
+
@cardClick="handleDocumentClick(document.id)"
|
|
116
|
+
class="pb-project-hub__section-content-card"
|
|
117
|
+
:image="documentThumbnailUrl.replace('@@PB_MEDIA_ID_FILLER@@', document.id)"
|
|
118
|
+
:text="document.title ? document.title : 'Image sans nom'"
|
|
119
|
+
/>
|
|
120
|
+
</div>
|
|
121
|
+
</m-flexy-col>
|
|
122
|
+
</m-flexy>
|
|
123
|
+
<m-link
|
|
124
|
+
class="pb-project-hub__section-content-link"
|
|
125
|
+
label="Gérer vos documents"
|
|
126
|
+
@click="$router.push({ name: 'PbDocuments' })"
|
|
127
|
+
/>
|
|
128
|
+
</m-container>
|
|
129
|
+
<pb-empty-state
|
|
130
|
+
v-else
|
|
131
|
+
:title="!readOnly ? 'Centraliser vos documents' : ''"
|
|
132
|
+
:subtitle="!readOnly ? '' : 'Aucune information renseignée'"
|
|
133
|
+
image="https://storage.googleapis.com/project-booster-media/media/empty-media.png"
|
|
134
|
+
:button-label="!readOnly ? 'Ajouter des documents' : ''"
|
|
135
|
+
@button-click="handleClickDocumentEmptyState"
|
|
136
|
+
:disabled="readOnly"
|
|
137
|
+
/>
|
|
138
|
+
</div>
|
|
113
139
|
</m-flex>
|
|
114
140
|
<m-flex
|
|
115
141
|
v-if="isEstimatesDisplayed"
|
|
@@ -360,7 +386,7 @@
|
|
|
360
386
|
</m-flexy>
|
|
361
387
|
<m-link
|
|
362
388
|
class="pb-project-hub__section-content-link"
|
|
363
|
-
label="
|
|
389
|
+
label="Gérer vos inspirations"
|
|
364
390
|
@click="$router.push({ name: 'PbInspirations' })"
|
|
365
391
|
/>
|
|
366
392
|
</m-container>
|
|
@@ -375,63 +401,12 @@
|
|
|
375
401
|
/>
|
|
376
402
|
</div>
|
|
377
403
|
</m-flex>
|
|
378
|
-
<m-flex
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
class="pb-project-hub__section-content--loading"
|
|
385
|
-
v-if="isLoadingDocuments"
|
|
386
|
-
direction="column"
|
|
387
|
-
align-items="center"
|
|
388
|
-
justify-content="center"
|
|
389
|
-
align-content="center"
|
|
390
|
-
>
|
|
391
|
-
<pb-animable-loader class="pb-project-hub__section-content--loading-loader" />
|
|
392
|
-
<div class="pb-project-hub__section-content--loading-label">Chargement...</div>
|
|
393
|
-
</m-flex>
|
|
394
|
-
<m-container
|
|
395
|
-
class="pb-project-hub__section-content-cards-container"
|
|
396
|
-
fluid
|
|
397
|
-
v-if="displayedDocuments && displayedDocuments.length > 0"
|
|
398
|
-
>
|
|
399
|
-
<m-flexy class="pb-project-hub__section-content-cards-flexy">
|
|
400
|
-
<m-flexy-col
|
|
401
|
-
class="pb-project-hub__section-content-card-flexy"
|
|
402
|
-
v-for="document in displayedDocuments"
|
|
403
|
-
:key="document.id"
|
|
404
|
-
width="full"
|
|
405
|
-
width-from-m="1of3"
|
|
406
|
-
>
|
|
407
|
-
<div class="pb-project-hub__section-content-card-container">
|
|
408
|
-
<pb-card
|
|
409
|
-
@cardClick="handleDocumentClick(document.id)"
|
|
410
|
-
class="pb-project-hub__section-content-card"
|
|
411
|
-
:image="documentThumbnailUrl.replace('@@PB_MEDIA_ID_FILLER@@', document.id)"
|
|
412
|
-
:text="document.title ? document.title : 'Image sans nom'"
|
|
413
|
-
/>
|
|
414
|
-
</div>
|
|
415
|
-
</m-flexy-col>
|
|
416
|
-
</m-flexy>
|
|
417
|
-
<m-link
|
|
418
|
-
class="pb-project-hub__section-content-link"
|
|
419
|
-
label="Voir tous les documents"
|
|
420
|
-
@click="$router.push({ name: 'PbDocuments' })"
|
|
421
|
-
/>
|
|
422
|
-
</m-container>
|
|
423
|
-
<pb-empty-state
|
|
424
|
-
v-else
|
|
425
|
-
:title="!readOnly ? 'Centraliser vos documents' : ''"
|
|
426
|
-
:subtitle="!readOnly ? '' : 'Aucune information renseignée'"
|
|
427
|
-
image="https://storage.googleapis.com/project-booster-media/media/empty-media.png"
|
|
428
|
-
:button-label="!readOnly ? 'Ajouter des documents' : ''"
|
|
429
|
-
@button-click="handleClickDocumentEmptyState"
|
|
430
|
-
:disabled="readOnly"
|
|
431
|
-
/>
|
|
432
|
-
</div>
|
|
433
|
-
</m-flex>
|
|
434
|
-
<m-flex v-if="areProjectAttributesDisplayed" class="pb-project-hub__section" direction="column" full-width>
|
|
404
|
+
<m-flex
|
|
405
|
+
v-if="areProjectAttributesDisplayed && projectAttributes && Object.keys(projectAttributes).length > 0"
|
|
406
|
+
class="pb-project-hub__section"
|
|
407
|
+
direction="column"
|
|
408
|
+
full-width
|
|
409
|
+
>
|
|
435
410
|
<div class="pb-project-hub__section-header">
|
|
436
411
|
<div class="pb-project-hub__section-title" ref="pbProjectAttributeList">
|
|
437
412
|
{{ titleProjectAttribute }}
|
|
@@ -466,6 +441,36 @@
|
|
|
466
441
|
</m-flex>
|
|
467
442
|
</div>
|
|
468
443
|
</m-flex>
|
|
444
|
+
<m-flex
|
|
445
|
+
v-if="isPlannerDisplayed"
|
|
446
|
+
class="pb-project-hub__section pb-project-hub__planner-section"
|
|
447
|
+
direction="column"
|
|
448
|
+
full-width
|
|
449
|
+
>
|
|
450
|
+
<pb-tasks-preview
|
|
451
|
+
v-if="!plannerError"
|
|
452
|
+
class="pb-project-hub__planner"
|
|
453
|
+
:tasks="tasks"
|
|
454
|
+
:tasks-number="3"
|
|
455
|
+
:read-only="readOnly"
|
|
456
|
+
@show-task-details="handleShowTaskDetails"
|
|
457
|
+
@create-task="handleCreateTask"
|
|
458
|
+
@view-tasks="handleViewTasks"
|
|
459
|
+
@task-completed="handleCompleteTask"
|
|
460
|
+
/>
|
|
461
|
+
<m-flex
|
|
462
|
+
v-else-if="plannerError"
|
|
463
|
+
class="pb-project-hub__planner--error"
|
|
464
|
+
direction="column"
|
|
465
|
+
align-items="center"
|
|
466
|
+
justify-content="center"
|
|
467
|
+
gap="2rem"
|
|
468
|
+
full-width
|
|
469
|
+
>
|
|
470
|
+
<div>Une erreur est survenue lors du chargement des étapes</div>
|
|
471
|
+
<m-button label="Réessayer" @click="$store.dispatch('tasks/reloadPlanner')" />
|
|
472
|
+
</m-flex>
|
|
473
|
+
</m-flex>
|
|
469
474
|
<m-flex v-if="isMailConsentDisplayed" class="pb-project-hub__section" direction="column" full-width>
|
|
470
475
|
<div class="pb-project-hub__section-header">
|
|
471
476
|
<div class="pb-project-hub__section-title" ref="pbConsent">Souscription newsletter</div>
|