From a14f1d210fa5a092d1dfb1e9c152b79a51f4985e Mon Sep 17 00:00:00 2001 From: isUnknown Date: Mon, 14 Oct 2024 15:23:06 +0200 Subject: [PATCH] client brief pdf - upload : add file to field without uploading it if it already exist --- public/content/home/home.txt | 2 +- ...ssance-dun-garcon.-il-etait-plus-vieux.pdf | Bin 0 -> 29390 bytes ...ce-dun-garcon.-il-etait-plus-vieux.pdf.txt | 9 ++ .../1_client-brief/client-brief.txt | 2 +- public/site/config/config.php | 1 + public/site/config/routes/upload-pdf.php | 57 +++++++++ .../project/client-brief/ModeSelection.vue | 114 +++++++++--------- .../add-images-modal/MyImages.vue | 22 ---- src/views/ClientBrief.vue | 11 +- 9 files changed, 132 insertions(+), 86 deletions(-) create mode 100644 public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/2527557525_au-commencement-du-college-chloe-avait-donc-fait-la-connaissance-dun-garcon.-il-etait-plus-vieux.pdf create mode 100644 public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/2527557525_au-commencement-du-college-chloe-avait-donc-fait-la-connaissance-dun-garcon.-il-etait-plus-vieux.pdf.txt create mode 100644 public/site/config/routes/upload-pdf.php diff --git a/public/content/home/home.txt b/public/content/home/home.txt index 933fc14..7c59634 100644 --- a/public/content/home/home.txt +++ b/public/content/home/home.txt @@ -22,4 +22,4 @@ Uuid: 6yh1yt2Sk45Y2sOl ---- -Clientbriefimages: - file://ihuGLrw5vll0R4j2 \ No newline at end of file +Clientbriefpdf: home/927346290_au-commencement-du-college-chloe-avait-donc-fait-la-connaissance-dun-garcon.-il-etait-plus-vieux.pdf \ No newline at end of file diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/2527557525_au-commencement-du-college-chloe-avait-donc-fait-la-connaissance-dun-garcon.-il-etait-plus-vieux.pdf b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/2527557525_au-commencement-du-college-chloe-avait-donc-fait-la-connaissance-dun-garcon.-il-etait-plus-vieux.pdf new file mode 100644 index 0000000000000000000000000000000000000000..263651bed128ba626a0a594d16f79ac9bbdd4758 GIT binary patch literal 29390 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%0DqT7Y*r(hD8TAEpA|1aq3~LblfQJ(JtWjd8gjab zgdG5Tuph}B28Ohz0#>Un3`}D)vX|`zvDAs?2z~7(vR@jh1PG^BUMd}`j-s^Y6fT-B z4}&qL9K9tmB| ztjXx`b&P6C*xswU0&%aTQ})kB8h%_dxOsoXP!+h)gUSV46smtqp#(G-+-LKxJ;z%H z8D0wogkjPn+!K$*#7_4hoF{bma}2k~K|%sjB9tI87$S-oGFQRlqcEbCz@bVY5rhb$ zjUeAZsz6s}N`~ApYKX_^J-#ML77Km|aWE5=k#alv9;p&Y61Ij85=ak=(C7V_ktDJ0 zCtYQj#}rr?hezH>BfKQ77{wwoij9=7hAc&?2a(!K!Z}Ze}5>! zoSf{OlxCEF+n|z2C=q@4p|t(m2IS(rBjbOuK~L^PuD{wqAP(sNxL<9Y5NPVZ+JI21 z`1d?O0QS2s{A*kgJ5+W0n~jV6j_&_894Cb9kMco)PzwIna8L_W*7>Uq00G?%nD|S2 zKma?}?_~x-l>xu!0R(}$p$-3AT#i4=2LwUxnDSr4K{W$^#DyvY{wNDno$yCoF7`j_ z9>~f0N8JOt?o_G2<;w+zDqw%N{fB%Zz(4K{1Oz}|lK(X>=&llew{dYn$F=?~92W=Y z@A=+U%OBw&>=3A2MqE(>?f(Jp$V [ 'page.create:after' => require_once(__DIR__ . '/hooks/create-steps.php'), diff --git a/public/site/config/routes/upload-pdf.php b/public/site/config/routes/upload-pdf.php new file mode 100644 index 0000000..562b356 --- /dev/null +++ b/public/site/config/routes/upload-pdf.php @@ -0,0 +1,57 @@ + 'upload-pdf.json', + 'method' => 'POST', + 'action' => function () { + $kirby = kirby(); + $request = $kirby->request(); + + $files = $request->files(); + $data = $request->data(); + + $upload = $files->get('file') ?? null; + + $pageUri = $request->query()->get('pageUri'); + $page = page($pageUri); + + if (!$page) { + return [ + 'error' => 'Invalid page.', + ]; + } + + try { + $name = crc32($upload['name'] . microtime()) . '_' . $upload['name']; + + $existingFileId = $page->clientBriefPdf()->id() ?? null; + + if ($existingFileId) { + $existingFile = $kirby->file($existingFileId); + if ($existingFile) { + $existingFile->delete(); + } + } + + $newFile = $page->createFile([ + 'source' => $upload['tmp_name'], + 'filename' => $name, + 'template' => 'document', + 'content' => [ + 'date' => date('Y-m-d h:i') + ] + ]); + + $newPage = $page->update([ + "clientBriefPdf" => $newFile->id() + ]); + + return $newPage->toArray(); + + } catch (Exception $e) { + return [ + 'error' => $e->getMessage(), + ]; + } + } +]; diff --git a/src/components/project/client-brief/ModeSelection.vue b/src/components/project/client-brief/ModeSelection.vue index 24601fb..ad4f57b 100644 --- a/src/components/project/client-brief/ModeSelection.vue +++ b/src/components/project/client-brief/ModeSelection.vue @@ -17,34 +17,7 @@ fill="none" xmlns="http://www.w3.org/2000/svg" > - - - - +

Créer via la plateforme

@@ -52,34 +25,15 @@ plateforme afin de créer votre brief.

-
- -

Ajouter un pdf

-

- Vous avez déjà constitué votre brief en amont et souhaitez directement - l’importer. -

-
+ + +
Qu’est ce que le brief ?

Le brief est un outil créatif qui permet de définir les perspectives - esthétiques de votre projet. Il s’agit d’une planche d’inspiration qui - aide à affirmer l’ambiance et les influences que vous souhaitez apporter - à votre projet. + esthétiques de votre projet.

+ + diff --git a/src/components/project/client-brief/add-images-modal/MyImages.vue b/src/components/project/client-brief/add-images-modal/MyImages.vue index f53c856..6adba5e 100644 --- a/src/components/project/client-brief/add-images-modal/MyImages.vue +++ b/src/components/project/client-brief/add-images-modal/MyImages.vue @@ -76,26 +76,4 @@ function addImages(event) { images.value = images.value.concat(newImages); emit("add-images", newImages); } - -// function onAdvancedUpload(event) { -// if (event.xhr.status === 200) { -// toast.add({ -// severity: "success", -// summary: "Upload réussi", -// detail: event.xhr.response.success, -// life: 3000, -// }); -// const response = JSON.parse(event.xhr.response); -// console.log(response); -// emit("add-images", response.images); -// } else { -// toast.add({ -// severity: "error", -// summary: "Échec de l'upload", -// detail: event.xhr.response.error, -// life: 3000, -// }); -// console.error(JSON.parse(event.xhr.response)); -// } -// } diff --git a/src/views/ClientBrief.vue b/src/views/ClientBrief.vue index 3f31dd8..bc3b9f7 100644 --- a/src/views/ClientBrief.vue +++ b/src/views/ClientBrief.vue @@ -16,6 +16,7 @@ import ModeSelection from "../components/project/client-brief/ModeSelection.vue" import Images from "../components/project/client-brief/Images.vue"; import PdfViewer from "../components/project/client-brief/PdfViewer.vue"; import { usePageStore } from "../stores/page"; +import { storeToRefs } from "pinia"; const stepsComponents = { Intro, @@ -24,7 +25,7 @@ const stepsComponents = { PdfViewer, }; -const { page } = usePageStore(); +const { page } = storeToRefs(usePageStore()); const currentStep = ref(setInitialStep()); @@ -33,11 +34,13 @@ function changeStep(stepName) { } function setInitialStep() { - const hasPDF = page.content.clientbriefpdf.length !== 0; - const hasImages = page.content.clientbriefimages.length !== 0; + const hasPDF = page.value.content.clientbriefpdf.length !== 0; + const hasImages = + page.value.content.clientbriefimages.length !== 0 || + page.value.content.description.length !== 0; const isEmpty = !hasPDF && !hasImages; if (isEmpty) return "Intro"; - if (hasPDF) return "PDF"; + if (hasPDF) return "PdfViewer"; if (hasImages) return "Images"; }