diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/21361147_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/21361147_au-commencement-du-college-chloe-avait-donc-fait-la-connaissance-dun-garcon.-il-etait-plus-vieux.pdf deleted file mode 100644 index 263651b..0000000 Binary files a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/21361147_au-commencement-du-college-chloe-avait-donc-fait-la-connaissance-dun-garcon.-il-etait-plus-vieux.pdf and /dev/null differ diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/21361147_au-commencement-du-college-chloe-avait-donc-fait-la-connaissance-dun-garcon.-il-etait-plus-vieux.pdf.txt b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/21361147_au-commencement-du-college-chloe-avait-donc-fait-la-connaissance-dun-garcon.-il-etait-plus-vieux.pdf.txt deleted file mode 100644 index b6eb500..0000000 --- a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/21361147_au-commencement-du-college-chloe-avait-donc-fait-la-connaissance-dun-garcon.-il-etait-plus-vieux.pdf.txt +++ /dev/null @@ -1,9 +0,0 @@ -Date: 2024-10-16 01:15 - ----- - -Uuid: fGa7zaC6S5zprMyo - ----- - -Template: document \ No newline at end of file diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/4034442471_bleu-divague.jpg b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/4034442471_bleu-divague.jpg new file mode 100644 index 0000000..a8872d0 Binary files /dev/null and b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/4034442471_bleu-divague.jpg differ diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/4034442471_bleu-divague.jpg.txt b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/4034442471_bleu-divague.jpg.txt new file mode 100644 index 0000000..663a855 --- /dev/null +++ b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/4034442471_bleu-divague.jpg.txt @@ -0,0 +1,17 @@ +Date: 2024-10-16 02:10 + +---- + +Description: + +---- + +Tags: DA globale + +---- + +Uuid: BvOqspCnL024Ar9u + +---- + +Template: image \ No newline at end of file diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/black-1984277_1280.jpg b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/black-1984277_1280.jpg new file mode 100644 index 0000000..8cb0aa6 Binary files /dev/null and b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/black-1984277_1280.jpg differ diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/black-1984277_1280.jpg.txt b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/black-1984277_1280.jpg.txt new file mode 100644 index 0000000..98d5b5f --- /dev/null +++ b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/black-1984277_1280.jpg.txt @@ -0,0 +1,17 @@ +Description: description + +---- + +Tags: + +---- + +Sort: 7 + +---- + +Uuid: zIZTny7xOE28rckL + +---- + +Template: image \ No newline at end of file diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/client-brief.txt b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/client-brief.txt index 49ccdd5..90c3a43 100644 --- a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/client-brief.txt +++ b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/client-brief.txt @@ -6,7 +6,7 @@ Stepname: clientBrief ---- -Pdf: - file://fGa7zaC6S5zprMyo +Pdf: ---- @@ -14,7 +14,13 @@ Description: ---- -Moodboard: +Moodboard: + +- file://YV7aUYle8hcLrzb6 +- file://zIZTny7xOE28rckL +- file://Z5m6jEomcOt9bJqR +- file://C2zFxRDOmD5PeXD6 +- file://BvOqspCnL024Ar9u ---- diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-144546_1280.jpg b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-144546_1280.jpg new file mode 100644 index 0000000..ba16ec9 Binary files /dev/null and b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-144546_1280.jpg differ diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-144546_1280.jpg.txt b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-144546_1280.jpg.txt new file mode 100644 index 0000000..e00bc39 --- /dev/null +++ b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-144546_1280.jpg.txt @@ -0,0 +1,17 @@ +Description: + +---- + +Tags: + +---- + +Sort: 8 + +---- + +Uuid: Z5m6jEomcOt9bJqR + +---- + +Template: image \ No newline at end of file diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-2643349_1280.jpg b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-2643349_1280.jpg new file mode 100644 index 0000000..e9b3bbb Binary files /dev/null and b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-2643349_1280.jpg differ diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-2643349_1280.jpg.txt b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-2643349_1280.jpg.txt new file mode 100644 index 0000000..1a22bac --- /dev/null +++ b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-2643349_1280.jpg.txt @@ -0,0 +1,17 @@ +Description: + +---- + +Tags: + +---- + +Sort: 10 + +---- + +Uuid: C2zFxRDOmD5PeXD6 + +---- + +Template: image \ No newline at end of file diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-4718455_1280.jpg b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-4718455_1280.jpg new file mode 100644 index 0000000..82312ed Binary files /dev/null and b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-4718455_1280.jpg differ diff --git a/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-4718455_1280.jpg.txt b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-4718455_1280.jpg.txt new file mode 100644 index 0000000..1b7cb5d --- /dev/null +++ b/public/content/projects/1_miss-dior-blooming-bouquet/1_client-brief/perfume-4718455_1280.jpg.txt @@ -0,0 +1,17 @@ +Description: + +---- + +Tags: + +---- + +Sort: 12 + +---- + +Uuid: YV7aUYle8hcLrzb6 + +---- + +Template: image \ No newline at end of file diff --git a/public/site/models/project.php b/public/site/models/project.php index 23faa6e..0a9dba2 100644 --- a/public/site/models/project.php +++ b/public/site/models/project.php @@ -5,12 +5,21 @@ class ProjectPage extends Page { $steps = []; foreach ($this->children() as $child) { + $files = []; + + if ($child->stepName() == 'clientBrief') { + foreach ($child->moodboard()->toFiles() as $file) { + $files[] = getFileData($file); + } + } + $steps[] = [ 'text' => $child->title()->value(), 'value' => $child->stepName()->value(), 'index' => $child->stepIndex()->value(), 'modified' => $child->modified('Y-MM-dd'), - 'uri' => $child->uri() + 'uri' => $child->uri(), + 'files' => $files ]; } diff --git a/public/site/plugins/helpers/index.php b/public/site/plugins/helpers/index.php new file mode 100644 index 0000000..9c3e4b1 --- /dev/null +++ b/public/site/plugins/helpers/index.php @@ -0,0 +1,16 @@ + $file->url(), + 'uuid' => (string) $file->uuid(), + 'name' => $file->filename(), + ]; + + if ($file->description()->exists()) { + $data['description'] = $file->description(); + $data['tags'] = $file->tags()->split(); + }; + + return $data; +} \ No newline at end of file diff --git a/public/site/plugins/kql/README.md b/public/site/plugins/kql/README.md index 1e10ec2..b85e616 100755 --- a/public/site/plugins/kql/README.md +++ b/public/site/plugins/kql/README.md @@ -16,21 +16,21 @@ Given a POST request to: `/api/query` ```json { - "query": "page('photography').children", - "select": { - "url": true, - "title": true, - "text": "page.text.markdown", - "images": { - "query": "page.images", - "select": { - "url": true - } + "query": "page('photography').children", + "select": { + "url": true, + "title": true, + "text": "page.text.markdown", + "images": { + "query": "page.moodboard", + "select": { + "url": true + } + } + }, + "pagination": { + "limit": 10 } - }, - "pagination": { - "limit": 10 - } } ``` @@ -39,48 +39,48 @@ Given a POST request to: `/api/query` ```json { - "code": 200, - "result": { - "data": [ - { - "url": "https://example.com/photography/trees", - "title": "Trees", - "text": "Lorem ipsum …", - "images": [ - { - "url": "https://example.com/media/pages/photography/trees/1353177920-1579007734/cheesy-autumn.jpg" - }, - { - "url": "https://example.com/media/pages/photography/trees/1940579124-1579007734/last-tree-standing.jpg" - }, - { - "url": "https://example.com/media/pages/photography/trees/3506294441-1579007734/monster-trees-in-the-fog.jpg" - } - ] - }, - { - "url": "https://example.com/photography/sky", - "title": "Sky", - "text": "

Dolor sit amet

…", - "images": [ - { - "url": "https://example.com/media/pages/photography/sky/183363500-1579007734/blood-moon.jpg" - }, - { - "url": "https://example.com/media/pages/photography/sky/3904851178-1579007734/coconut-milkyway.jpg" - } - ] - } - ], - "pagination": { - "page": 1, - "pages": 1, - "offset": 0, - "limit": 10, - "total": 2 - } - }, - "status": "ok" + "code": 200, + "result": { + "data": [ + { + "url": "https://example.com/photography/trees", + "title": "Trees", + "text": "Lorem ipsum …", + "images": [ + { + "url": "https://example.com/media/pages/photography/trees/1353177920-1579007734/cheesy-autumn.jpg" + }, + { + "url": "https://example.com/media/pages/photography/trees/1940579124-1579007734/last-tree-standing.jpg" + }, + { + "url": "https://example.com/media/pages/photography/trees/3506294441-1579007734/monster-trees-in-the-fog.jpg" + } + ] + }, + { + "url": "https://example.com/photography/sky", + "title": "Sky", + "text": "

Dolor sit amet

…", + "images": [ + { + "url": "https://example.com/media/pages/photography/sky/183363500-1579007734/blood-moon.jpg" + }, + { + "url": "https://example.com/media/pages/photography/sky/3904851178-1579007734/coconut-milkyway.jpg" + } + ] + } + ], + "pagination": { + "page": 1, + "pages": 1, + "offset": 0, + "limit": 10, + "total": 2 + } + }, + "status": "ok" } ``` @@ -124,23 +124,24 @@ const username = "apiuser"; const password = "strong-secret-api-password"; const headers = { - Authorization: "Basic " + Buffer.from(`${username}:${password}`).toString("base64"), - "Content-Type": "application/json", - Accept: "application/json", + Authorization: + "Basic " + Buffer.from(`${username}:${password}`).toString("base64"), + "Content-Type": "application/json", + Accept: "application/json", }; const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "page('notes').children", - select: { - title: true, - text: "page.text.kirbytext", - slug: true, - date: "page.date.toDate('d.m.Y')", - }, - }), - headers, + method: "post", + body: JSON.stringify({ + query: "page('notes').children", + select: { + title: true, + text: "page.text.kirbytext", + slug: true, + date: "page.date.toDate('d.m.Y')", + }, + }), + headers, }); console.log(await response.json()); @@ -158,11 +159,11 @@ When you don't pass the select option, Kirby will try to come up with the most u ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "site.title", - }), - headers, + method: "post", + body: JSON.stringify({ + query: "site.title", + }), + headers, }); console.log(await response.json()); @@ -185,11 +186,11 @@ console.log(await response.json()); ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "site.children", - }), - headers, + method: "post", + body: JSON.stringify({ + query: "site.children", + }), + headers, }); console.log(await response.json()); @@ -220,11 +221,11 @@ Queries can even execute field methods. ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "site.title.upper", - }), - headers, + method: "post", + body: JSON.stringify({ + query: "site.title.upper", + }), + headers, }); console.log(await response.json()); @@ -253,12 +254,12 @@ To include a property or field in your results, list them as an array. Check out ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "site.children", - select: ["title", "url"], - }), - headers, + method: "post", + body: JSON.stringify({ + query: "site.children", + select: ["title", "url"], + }), + headers, }); console.log(await response.json()); @@ -311,15 +312,15 @@ You can also use the object notation and pass true for each key/property you wan ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "site.children", - select: { - title: true, - url: true, - }, - }), - headers, + method: "post", + body: JSON.stringify({ + query: "site.children", + select: { + title: true, + url: true, + }, + }), + headers, }); console.log(await response.json()); @@ -368,14 +369,14 @@ Instead of passing true, you can also pass a string query to specify what you wa ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "site.children", - select: { - title: "page.title", - }, - }), - headers, + method: "post", + body: JSON.stringify({ + query: "site.children", + select: { + title: "page.title", + }, + }), + headers, }); console.log(await response.json()); @@ -409,14 +410,14 @@ console.log(await response.json()); ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "site.children", - select: { - title: "page.title.upper", - }, - }), - headers, + method: "post", + body: JSON.stringify({ + query: "site.children", + select: { + title: "page.title.upper", + }, + }), + headers, }); console.log(await response.json()); @@ -452,19 +453,19 @@ String queries are a perfect way to create aliases or return variations of the s ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "page('notes').children", - select: { - title: "page.title", - upperCaseTitle: "page.title.upper", - lowerCaseTitle: "page.title.lower", - guid: "page.id", - date: "page.date.toDate('d.m.Y')", - timestamp: "page.date.toTimestamp", - }, - }), - headers, + method: "post", + body: JSON.stringify({ + query: "page('notes').children", + select: { + title: "page.title", + upperCaseTitle: "page.title.upper", + lowerCaseTitle: "page.title.lower", + guid: "page.id", + date: "page.date.toDate('d.m.Y')", + timestamp: "page.date.toTimestamp", + }, + }), + headers, }); console.log(await response.json()); @@ -504,15 +505,15 @@ With such string queries you can of course also include nested data ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "page('photography').children", - select: { - title: "page.title", - images: "page.images", - }, - }), - headers, + method: "post", + body: JSON.stringify({ + query: "page('photography').children", + select: { + title: "page.title", + images: "page.moodboard", + }, + }), + headers, }); console.log(await response.json()); @@ -554,20 +555,20 @@ You can also pass an object with a `query` and a `select` option ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "page('photography').children", - select: { - title: "page.title", - images: { - query: "page.images", + method: "post", + body: JSON.stringify({ + query: "page('photography').children", select: { - filename: true, + title: "page.title", + images: { + query: "page.moodboard", + select: { + filename: true, + }, + }, }, - }, - }, - }), - headers, + }), + headers, }); console.log(await response.json()); @@ -623,17 +624,17 @@ You can specify a custom limit with the limit option. The default limit for coll ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "page('notes').children", - pagination: { - limit: 5, - }, - select: { - title: "page.title", - }, - }), - headers, + method: "post", + body: JSON.stringify({ + query: "page('notes').children", + pagination: { + limit: 5, + }, + select: { + title: "page.title", + }, + }), + headers, }); console.log(await response.json()); @@ -683,18 +684,18 @@ You can jump to any page in the resultset with the `page` option. ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "page('notes').children", - pagination: { - page: 2, - limit: 5, - }, - select: { - title: "page.title", - }, - }), - headers, + method: "post", + body: JSON.stringify({ + query: "page('notes').children", + pagination: { + page: 2, + limit: 5, + }, + select: { + title: "page.title", + }, + }), + headers, }); console.log(await response.json()); @@ -735,24 +736,24 @@ Pagination settings also work for subqueries. ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "page('photography').children", - select: { - title: "page.title", - images: { - query: "page.images", - pagination: { - page: 2, - limit: 5, - }, + method: "post", + body: JSON.stringify({ + query: "page('photography').children", select: { - filename: true, + title: "page.title", + images: { + query: "page.moodboard", + pagination: { + page: 2, + limit: 5, + }, + select: { + filename: true, + }, + }, }, - }, - }, - }), - headers, + }), + headers, }); console.log(await response.json()); @@ -764,41 +765,41 @@ With the power of selects and subqueries you can basically query the entire site ```js const response = await fetch(api, { - method: "post", - body: JSON.stringify({ - query: "site", - select: { - title: "site.title", - url: "site.url", - notes: { - query: "page('notes').children.listed", + method: "post", + body: JSON.stringify({ + query: "site", select: { - title: true, - url: true, - date: "page.date.toDate('d.m.Y')", - text: "page.text.kirbytext", - }, - }, - photography: { - query: "page('photography').children.listed", - select: { - title: true, - images: { - query: "page.images", - select: { - url: true, - alt: true, - caption: "file.caption.kirbytext", + title: "site.title", + url: "site.url", + notes: { + query: "page('notes').children.listed", + select: { + title: true, + url: true, + date: "page.date.toDate('d.m.Y')", + text: "page.text.kirbytext", + }, + }, + photography: { + query: "page('photography').children.listed", + select: { + title: true, + images: { + query: "page.moodboard", + select: { + url: true, + alt: true, + caption: "file.caption.kirbytext", + }, + }, + }, + }, + about: { + text: "page.text.kirbytext", }, - }, }, - }, - about: { - text: "page.text.kirbytext", - }, - }, - }), - headers, + }), + headers, }); console.log(await response.json()); @@ -966,19 +967,20 @@ KQL only offers access to data in your site. It does not support any mutations. ## Plugins -- [KQL + 11ty](https://github.com/getkirby/eleventykit) -- [KQL + Nuxt](https://nuxt-kql.jhnn.dev) +- [KQL + 11ty](https://github.com/getkirby/eleventykit) +- [KQL + Nuxt](https://nuxt-kql.jhnn.dev) ## What's Kirby? -- **[getkirby.com](https://getkirby.com)** – Get to know the CMS. -- **[Try it](https://getkirby.com/try)** – Take a test ride with our online demo. Or download one of our kits to get started. -- **[Documentation](https://getkirby.com/docs/guide)** – Read the official guide, reference and cookbook recipes. -- **[Issues](https://github.com/getkirby/kirby/issues)** – Report bugs and other problems. -- **[Feedback](https://feedback.getkirby.com)** – You have an idea for Kirby? Share it. -- **[Forum](https://forum.getkirby.com)** – Whenever you get stuck, don't hesitate to reach out for questions and support. -- **[Discord](https://chat.getkirby.com)** – Hang out and meet the community. -- **[Mastodon](https://mastodon.social/@getkirby)** – Spread the word. -- **[Instagram](https://www.instagram.com/getkirby/)** – Share your creations: #madewithkirby. + +- **[getkirby.com](https://getkirby.com)** – Get to know the CMS. +- **[Try it](https://getkirby.com/try)** – Take a test ride with our online demo. Or download one of our kits to get started. +- **[Documentation](https://getkirby.com/docs/guide)** – Read the official guide, reference and cookbook recipes. +- **[Issues](https://github.com/getkirby/kirby/issues)** – Report bugs and other problems. +- **[Feedback](https://feedback.getkirby.com)** – You have an idea for Kirby? Share it. +- **[Forum](https://forum.getkirby.com)** – Whenever you get stuck, don't hesitate to reach out for questions and support. +- **[Discord](https://chat.getkirby.com)** – Hang out and meet the community. +- **[Mastodon](https://mastodon.social/@getkirby)** – Spread the word. +- **[Instagram](https://www.instagram.com/getkirby/)** – Share your creations: #madewithkirby. --- diff --git a/public/site/templates/client-brief.json.php b/public/site/templates/client-brief.json.php index d491a0c..b05b3d9 100644 --- a/public/site/templates/client-brief.json.php +++ b/public/site/templates/client-brief.json.php @@ -1,20 +1,14 @@ moodboard()->toFiles() as $image) { - $images[] = [ - 'url' => $image->url(), - 'uuid' => (string) $image->uuid(), - 'tags' => $image->tags()->split(), - 'name' => $image->filename(), - 'description' => $image->description()->value(), - ]; + $moodboard[] = getFileData($image); } $specificData = [ "tags" => $page->parent()->parent()->clientBriefImageTags()->split(), - "images" => $images + "moodboard" => $moodboard ]; $data = array_merge($genericData, $specificData); diff --git a/public/site/templates/project.json.php b/public/site/templates/project.json.php index 0fb12e7..c1e3db8 100644 --- a/public/site/templates/project.json.php +++ b/public/site/templates/project.json.php @@ -1,13 +1,11 @@ $page->title()->value(), 'url' => $page->url(), 'modified' => $page->modified('Y-MM-d'), 'status' => $page->status(), 'logo' => $page->client()->toPage()->logo()->toFile()->url(), - 'currentStep' => $page->currentStep()->value(), - 'steps' => $page->getSteps() + 'steps' => $page->getSteps(), ]; $data = array_merge($genericData, $project); diff --git a/src/components/project/ProjectStep.vue b/src/components/project/ProjectStep.vue index 04cc887..789a2dd 100644 --- a/src/components/project/ProjectStep.vue +++ b/src/components/project/ProjectStep.vue @@ -4,37 +4,34 @@ aria-labelledby="votre-brief-label" :data-status="status" > -

- {{ step.text }} -

-
-
-
-

{{ step.text }}

-
-
- -
- -
- - - -
-
-
-
+ +

+ {{ step.text }} +

+
+
+
+

{{ step.text }}

+
+
+ +
+ + +
+
+
@@ -51,14 +48,9 @@ dayjs.locale("fr"); const { page } = usePageStore(); -const steps = [ - "clientBrief", - "proposal", - "extended-brief", - "industrialIdeation", - "virtualSample", - "physicalSample", -]; +const steps = page.steps.map((item) => { + return item.value; +}); const status = setStatus(); @@ -74,3 +66,128 @@ function setStatus() { } } + + diff --git a/src/components/project/client-brief/Images.vue b/src/components/project/client-brief/Images.vue index 879638e..084575a 100644 --- a/src/components/project/client-brief/Images.vue +++ b/src/components/project/client-brief/Images.vue @@ -12,7 +12,7 @@ > Ajouter une ou plusieurs images -