Progression vue brief client

- l'étape courante est déterminée en fonction des données de la page
- les images sont ajoutées au champ
- les images déjà ajoutées sont affichées directement
- changement donnée briefClient -> clientBrief (cohérence avec le nommage front)
This commit is contained in:
isUnknown 2024-10-02 15:29:31 +02:00
parent 3d93905983
commit 13b6b371d7
18 changed files with 245 additions and 66 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

View file

@ -0,0 +1,9 @@
Date: 2024-10-02 01:10
----
Uuid: 1NmPGSM9FKgiyOwH
----
Template: default

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

View file

@ -0,0 +1,9 @@
Date: 2024-10-02 01:10
----
Uuid: ump9516TWbjrIo7T
----
Template: default

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

View file

@ -0,0 +1,9 @@
Date: 2024-10-02 01:10
----
Uuid: RaQyVfBK6c8gv8pW
----
Template: default

View file

@ -6,7 +6,7 @@ Stepname: clientBrief
----
Briefclientpdf:
Clientbriefpdf:
----
@ -14,7 +14,11 @@ Description: Sed congue magna magna lorem aliquam diam dolor arcu fusce adipisci
----
Briefclientimages:
Clientbriefimages:
- file://ump9516TWbjrIo7T
- file://RaQyVfBK6c8gv8pW
- file://1NmPGSM9FKgiyOwH
----

View file

@ -2,7 +2,7 @@ Title: Miss Dior Blooming Bouquet
----
Currentstep:
Currentstep: clientBrief
----

View file

@ -14,7 +14,7 @@ Uuid: 5NGq8baScF9pCeK9
----
Briefclientpdf:
Clientbriefpdf:
----
@ -22,4 +22,4 @@ Description:
----
Briefclientimages:
Clientbriefimages:

View file

@ -2,4 +2,4 @@ Title: Nom du service
----
Briefclientimagestags: Parachèvements, Forme & design, Matériaux & textures, Coloris & nuances, Bouchon, Bouton poussoir, DA globale
Clientbriefimagestags: Parachèvements, Forme & design, Matériaux & textures, Coloris & nuances, Bouchon, Bouton poussoir, DA globale

View file

@ -24,7 +24,7 @@ tabs:
stepName:
type: hidden
value: test
briefClientPdf:
clientBriefPdf:
label: PDF
type: files
multiple: false
@ -34,7 +34,7 @@ tabs:
size: tiny
buttons: false
maxlength: 700
briefClientImages:
clientBriefImages:
label: Images
type: files
uploads: image

View file

@ -35,7 +35,7 @@ tabs:
label: Paramètres
type: fields
fields:
briefClientImagesTags:
clientBriefImagesTags:
label: Tags des images de Brief client
help: Ensemble des tags dimages disponibles lors de la création du Brief client
type: tags

View file

@ -21,7 +21,7 @@ return [
'routes' => [
require(__DIR__ . '/routes/logout.php'),
require(__DIR__ . '/routes/toggle-favorite.php'),
require(__DIR__ . '/routes/upload.php')
require(__DIR__ . '/routes/upload-images.php')
],
'hooks' => [
'page.create:after' => require_once(__DIR__ . '/hooks/create-steps.php'),

View file

@ -1,7 +1,7 @@
<?php
return [
'pattern' => 'upload.json',
'pattern' => 'upload-images.json',
'method' => 'POST',
'action' => function () {
if ($uploads = kirby()->request()->files()) {
@ -11,6 +11,7 @@ return [
$alerts = [];
$success = '';
$newFiles = [];
$allFiles = [];
foreach ($uploads->get('images') as $upload) {
// check for duplicate
@ -26,12 +27,11 @@ return [
if ($duplicates->count() > 0) {
$alerts[$upload['name']] = "The file already exists";
continue;
}
try {
$name = crc32($upload['name'].microtime()). '_' . $upload['name'];
$newFiles[] = $page->createFile([
$newFile = $page->createFile([
'source' => $upload['tmp_name'],
'filename' => $name,
'template' => 'default',
@ -39,16 +39,28 @@ return [
'date' => date('Y-m-d h:m')
]
]);
$newFiles[] = $newFile;
$success = 'Your file upload was successful';
$allFiles[] = (string) $newFile->uuid();
} catch (Exception $e) {
$alerts[$upload['name']] = $e->getMessage();
}
}
$images = array_map(function ($file) {
return $file->url();
return [
'url' => $file->url(),
'uuid' => $file->uuid()
];
}, $newFiles);
$newPage = $page->update([
'clientBriefImages' => $allFiles
]);
return compact('images', 'alerts', 'success');
}

View file

@ -1,7 +1,16 @@
<?php
$images = [];
foreach ($page->clientBriefImages()->toFiles() as $image) {
$images[] = [
'url' => $image->url(),
'uuid' => (string) $image->uuid()
];
}
$specificData = [
"exampleField" => $page->exampleField(),
"images" => $images
];
$data = array_merge($genericData, $specificData);