merge
10
public/assets/css/panel.css
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
/* CSS VARIABLES */
|
||||
|
||||
:root {
|
||||
|
||||
/* Colors */
|
||||
--color-l-200: 95%;
|
||||
--color-l-300: 85%;
|
||||
--color-l-400: 80%;
|
||||
--color-l-500: 74%;
|
||||
}
|
||||
21
public/content/clients/1_dior/client.txt
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
Title: Dior
|
||||
|
||||
----
|
||||
|
||||
Headline:
|
||||
|
||||
----
|
||||
|
||||
Text:
|
||||
|
||||
----
|
||||
|
||||
Logo: - file://25NN1En7lGeEttZy
|
||||
|
||||
----
|
||||
|
||||
Color: #000
|
||||
|
||||
----
|
||||
|
||||
Uuid: G418qZ4ABsoWFx4i
|
||||
BIN
public/content/clients/1_dior/dior.jpg
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
1
public/content/clients/1_dior/dior.jpg.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
Uuid: 25NN1En7lGeEttZy
|
||||
13
public/content/clients/2_hermes/client.txt
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
Title: Hermes
|
||||
|
||||
----
|
||||
|
||||
Logo: - file://Nj3oUfpMGXwRETWn
|
||||
|
||||
----
|
||||
|
||||
Color: #fb6b22
|
||||
|
||||
----
|
||||
|
||||
Uuid: PweFYnBx27eMZ2mr
|
||||
BIN
public/content/clients/2_hermes/hermes.jpg
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
1
public/content/clients/2_hermes/hermes.jpg.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
Uuid: Nj3oUfpMGXwRETWn
|
||||
5
public/content/clients/clients.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
Title: Clients
|
||||
|
||||
----
|
||||
|
||||
Uuid: TsaoiLb9iQJWZAvX
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
Title: Error
|
||||
Title: Erreur
|
||||
|
||||
----
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Title: Home
|
||||
Title: Accueil
|
||||
|
||||
----
|
||||
|
||||
|
|
@ -10,7 +10,7 @@ Testtext: test
|
|||
|
||||
----
|
||||
|
||||
Testblocks: [{"content":{"location":"kirby","image":["home/image.png"],"src":"","alt":"","caption":"","link":"","ratio":"","crop":"false"},"id":"ad071a0e-852b-473b-9f6f-46ea4079168e","isHidden":false,"type":"image"}]
|
||||
Testblocks:
|
||||
|
||||
----
|
||||
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 36 KiB |
|
|
@ -0,0 +1,5 @@
|
|||
Uuid: aWouZREvKfW9VWMt
|
||||
|
||||
----
|
||||
|
||||
Template: image
|
||||
|
After Width: | Height: | Size: 29 KiB |
|
|
@ -0,0 +1,5 @@
|
|||
Uuid: T3MXkEhh9mmAGkUH
|
||||
|
||||
----
|
||||
|
||||
Template: image
|
||||
|
After Width: | Height: | Size: 58 KiB |
|
|
@ -0,0 +1,5 @@
|
|||
Uuid: e57fucmyhXX9jJv4
|
||||
|
||||
----
|
||||
|
||||
Template: image
|
||||
|
After Width: | Height: | Size: 53 KiB |
|
|
@ -0,0 +1,5 @@
|
|||
Uuid: aGCNfbFS7FcFJls1
|
||||
|
||||
----
|
||||
|
||||
Template: image
|
||||
|
After Width: | Height: | Size: 92 KiB |
|
|
@ -0,0 +1,5 @@
|
|||
Uuid: qqhD8ABZ7BkkJxd5
|
||||
|
||||
----
|
||||
|
||||
Template: image
|
||||
|
After Width: | Height: | Size: 59 KiB |
|
|
@ -0,0 +1,5 @@
|
|||
Uuid: B3TFeDZKd5d8dxKK
|
||||
|
||||
----
|
||||
|
||||
Template: image
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
Title: Miss Dior Blooming Bouquet
|
||||
|
||||
----
|
||||
|
||||
Client: - page://G418qZ4ABsoWFx4i
|
||||
|
||||
----
|
||||
|
||||
Briefclientpdf:
|
||||
|
||||
----
|
||||
|
||||
Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas faucibus mollis interdum. Maecenas faucibus mollis interdum. Maecenas sed diam eget risus varius blandit sit amet non magna. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Integer posuere erat a ante venenatis dapibus posuere velit aliquet.
|
||||
|
||||
----
|
||||
|
||||
Briefclientimages:
|
||||
|
||||
- file://aWouZREvKfW9VWMt
|
||||
- file://qqhD8ABZ7BkkJxd5
|
||||
- file://e57fucmyhXX9jJv4
|
||||
- file://aGCNfbFS7FcFJls1
|
||||
- file://T3MXkEhh9mmAGkUH
|
||||
- file://B3TFeDZKd5d8dxKK
|
||||
|
||||
----
|
||||
|
||||
Pdf:
|
||||
|
||||
----
|
||||
|
||||
Text:
|
||||
|
||||
----
|
||||
|
||||
Uuid: 513oEM4JFuWBt2Bw
|
||||
5
public/content/projects/projects.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
Title: Projets
|
||||
|
||||
----
|
||||
|
||||
Uuid: JgUmDeKdunC06yBi
|
||||
29
public/content/projects/projet-test/project.txt
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
Title: Projet Test
|
||||
|
||||
----
|
||||
|
||||
Client: - page://G418qZ4ABsoWFx4i
|
||||
|
||||
----
|
||||
|
||||
Briefclientpdf:
|
||||
|
||||
----
|
||||
|
||||
Description: Maecenas sed diam eget risus varius blandit sit amet non magna. Curabitur blandit tempus porttitor. Nullam quis risus eget urna mollis ornare vel eu leo. Maecenas faucibus mollis interdum.
|
||||
|
||||
----
|
||||
|
||||
Briefclientimages:
|
||||
|
||||
----
|
||||
|
||||
Pdf:
|
||||
|
||||
----
|
||||
|
||||
Text:
|
||||
|
||||
----
|
||||
|
||||
Uuid: Bdho8W2PQkSk1x21
|
||||
|
|
@ -1 +1,5 @@
|
|||
Title: Site Title
|
||||
Title: Nom du service
|
||||
|
||||
----
|
||||
|
||||
Briefclientimagestags: Parachèvements, Forme & design, Matériaux & textures, Coloris & nuances, Bouchon, Bouton poussoir, DA globale
|
||||
15
public/site/blueprints/files/image.yml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
title: Image
|
||||
|
||||
accept:
|
||||
mime: image/*
|
||||
type: image
|
||||
focus: false
|
||||
|
||||
fields:
|
||||
description:
|
||||
type: textarea
|
||||
buttons: false
|
||||
size: small
|
||||
width: 1/2
|
||||
# tags:
|
||||
# type: tags
|
||||
5
public/site/blueprints/files/pdf.yml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
title: PDF
|
||||
|
||||
accept:
|
||||
mime: application/pdf
|
||||
focus: false
|
||||
45
public/site/blueprints/pages/client.yml
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
title: Client
|
||||
|
||||
tabs:
|
||||
projects:
|
||||
label: Projets
|
||||
icon: folder
|
||||
columns:
|
||||
- width: 1/2
|
||||
sections:
|
||||
projectsListed:
|
||||
extends: sections/projects
|
||||
headline: Projets en cours
|
||||
query: page.projectsListed
|
||||
status: unlisted
|
||||
columns:
|
||||
title: true
|
||||
client: false
|
||||
- width: 1/2
|
||||
sections:
|
||||
projectsUnlisted:
|
||||
extends: sections/projects
|
||||
headline: Projets archivés
|
||||
query: page.projectsUnlisted
|
||||
status: unlisted
|
||||
columns:
|
||||
title: true
|
||||
client: false
|
||||
|
||||
brand:
|
||||
label: Brand
|
||||
icon: palette
|
||||
fields:
|
||||
logo:
|
||||
type: files
|
||||
multiple: false
|
||||
layout: cards
|
||||
image:
|
||||
ratio: 1/1
|
||||
back: white
|
||||
width: 1/6
|
||||
color:
|
||||
label: Couleur
|
||||
type: color
|
||||
width: 2/6
|
||||
files: tabs/files
|
||||
21
public/site/blueprints/pages/clients.yml
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
title: Clients
|
||||
|
||||
sections:
|
||||
pages:
|
||||
label: Tous les clients
|
||||
status: all
|
||||
templates: client
|
||||
layout: table
|
||||
columns:
|
||||
title:
|
||||
label: Nom
|
||||
projectsListed:
|
||||
label: En cours
|
||||
value: "{{ page.projectsListed.count }}"
|
||||
width: 1/12
|
||||
projectsUnlisted:
|
||||
label: Archivés
|
||||
value: "{{ page.projectsUnlisted.count }}"
|
||||
width: 1/12
|
||||
image:
|
||||
cover: true
|
||||
|
|
@ -1,7 +1 @@
|
|||
fields:
|
||||
testImages:
|
||||
type: files
|
||||
testText:
|
||||
type: text
|
||||
testBlocks:
|
||||
type: blocks
|
||||
title: Home
|
||||
|
|
|
|||
67
public/site/blueprints/pages/project.yml
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
title: Projet
|
||||
icon: page
|
||||
|
||||
tabs:
|
||||
brief:
|
||||
label: Brief client
|
||||
icon: document
|
||||
columns:
|
||||
- width: 1/2
|
||||
sections:
|
||||
brief:
|
||||
type: fields
|
||||
fields:
|
||||
client:
|
||||
type: pages
|
||||
multiple: false
|
||||
query: site.find("clients").childrenAndDrafts
|
||||
subpages: false
|
||||
image:
|
||||
query: page.logo.toFile
|
||||
layout: cardlets
|
||||
width: 1/2
|
||||
briefClientPdf:
|
||||
label: PDF
|
||||
type: files
|
||||
multiple: false
|
||||
uploads: pdf
|
||||
layout: cardlets
|
||||
width: 1/2
|
||||
- width: 1/2
|
||||
sections:
|
||||
description:
|
||||
type: fields
|
||||
fields:
|
||||
description:
|
||||
type: textarea
|
||||
size: tiny
|
||||
buttons: false
|
||||
maxlength: 700
|
||||
- width: 1/1
|
||||
sections:
|
||||
images:
|
||||
type: fields
|
||||
fields:
|
||||
briefClientImages:
|
||||
label: Images
|
||||
type: files
|
||||
uploads: image
|
||||
layout: cards
|
||||
size: medium
|
||||
# client:
|
||||
# label: Client
|
||||
# icon: account
|
||||
# columns:
|
||||
# - width: 1/1
|
||||
# sections:
|
||||
# client:
|
||||
# type: fields
|
||||
# fields:
|
||||
# client:
|
||||
# type: pages
|
||||
# multiple: false
|
||||
# query: site.find("clients").childrenAndDrafts
|
||||
# subpages: false
|
||||
# layout: cards
|
||||
# size: medium
|
||||
files: tabs/files
|
||||
15
public/site/blueprints/pages/projects.yml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
title: Projets
|
||||
|
||||
sections:
|
||||
drafts:
|
||||
extends: sections/projects
|
||||
headline: Brouillons
|
||||
status: draft
|
||||
listed:
|
||||
extends: sections/projects
|
||||
headline: En cours
|
||||
status: listed
|
||||
unlisted:
|
||||
extends: sections/projects
|
||||
headline: Archivés
|
||||
status: unlisted
|
||||
11
public/site/blueprints/sections/projects.yml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
type: pages
|
||||
headline: Projets
|
||||
template: project
|
||||
layout: table
|
||||
columns:
|
||||
title:
|
||||
label: Titre
|
||||
client: true
|
||||
empty: Pas encore de projet
|
||||
image: false
|
||||
search: true
|
||||
|
|
@ -1,5 +1,41 @@
|
|||
title: Site
|
||||
|
||||
sections:
|
||||
pages:
|
||||
type: pages
|
||||
tabs:
|
||||
dashboard:
|
||||
label: Dashboard
|
||||
icon: dashboard
|
||||
columns:
|
||||
clients:
|
||||
width: 1/2
|
||||
sections:
|
||||
clients:
|
||||
label: Clients
|
||||
type: pages
|
||||
parent: site.find("clients")
|
||||
template: client
|
||||
search: true
|
||||
image:
|
||||
back: white
|
||||
projects:
|
||||
width: 1/2
|
||||
sections:
|
||||
projects:
|
||||
extends: sections/projects
|
||||
headline: Projets récement modifiés
|
||||
parent: site.find("projects")
|
||||
layout: list
|
||||
sortBy: modified desc
|
||||
settings:
|
||||
label: Paramètres
|
||||
icon: cog
|
||||
columns:
|
||||
- width: 1/1
|
||||
sections:
|
||||
settings:
|
||||
label: Paramètres
|
||||
type: fields
|
||||
fields:
|
||||
briefClientImagesTags:
|
||||
label: Tags des images de Brief client
|
||||
help: Ensemble des tags d’images disponibles lors de la création du Brief client
|
||||
type: tags
|
||||
|
|
|
|||
15
public/site/blueprints/tabs/files.yml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
label:
|
||||
en: Files
|
||||
fr: Fichiers
|
||||
icon: images
|
||||
|
||||
columns:
|
||||
- width: 1/1
|
||||
sections:
|
||||
files:
|
||||
label:
|
||||
en: Files
|
||||
fr: Fichiers
|
||||
type: files
|
||||
layout: cards
|
||||
size: small
|
||||
1
public/site/blueprints/users/admin.yml
Normal file
|
|
@ -0,0 +1 @@
|
|||
title: Admin
|
||||
4
public/site/blueprints/users/client.yml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
title: Client
|
||||
permissions:
|
||||
access:
|
||||
panel: false
|
||||
3
public/site/blueprints/users/project-manager.yml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
title:
|
||||
fr: Chef·fe de projet
|
||||
en: Project Manager
|
||||
|
|
@ -7,7 +7,68 @@ return [
|
|||
// Enable api access without SSL. To disable in production.
|
||||
'allowInsecure' => true
|
||||
],
|
||||
'content' => [
|
||||
'uuid' => false
|
||||
'panel' => [
|
||||
'language' => 'fr',
|
||||
'css' => 'assets/css/panel.css',
|
||||
'favicon' => 'assets/favicons/favicon.svg',
|
||||
'menu' => [
|
||||
'site' => [
|
||||
'label' => 'Dashboard',
|
||||
'icon' => 'dashboard',
|
||||
'current' => function (string $current): bool {
|
||||
// the links of all your custom menu entries
|
||||
$links = [
|
||||
'pages/clients',
|
||||
'pages/projects',
|
||||
'pages/notifications',
|
||||
'pages/events'
|
||||
];
|
||||
$path = Kirby\Cms\App::instance()->path();
|
||||
return
|
||||
$current === 'site' &&
|
||||
A::every($links, fn ($link) => Str::contains($path, $link) === false);
|
||||
}
|
||||
],
|
||||
'clients' => [
|
||||
'label' => 'Clients',
|
||||
'icon' => 'account',
|
||||
'link' => 'pages/clients',
|
||||
'current' => function (string $current): bool {
|
||||
$path = Kirby\Cms\App::instance()->path();
|
||||
return Str::contains($path, 'pages/clients');
|
||||
}
|
||||
],
|
||||
'projects' => [
|
||||
'label' => 'Projets',
|
||||
'icon' => 'folder',
|
||||
'link' => 'pages/projects',
|
||||
'current' => function (string $current): bool {
|
||||
$path = Kirby\Cms\App::instance()->path();
|
||||
return Str::contains($path, 'pages/projects');
|
||||
}
|
||||
],
|
||||
'-',
|
||||
'notifications' => [
|
||||
'label' => 'Notifications',
|
||||
'icon' => 'bell',
|
||||
'link' => 'pages/notifications',
|
||||
'current' => function (string $current): bool {
|
||||
$path = Kirby\Cms\App::instance()->path();
|
||||
return Str::contains($path, 'pages/notifications');
|
||||
}
|
||||
],
|
||||
'events' => [
|
||||
'label' => 'Événements',
|
||||
'icon' => 'calendar',
|
||||
'link' => 'pages/events',
|
||||
'current' => function (string $current): bool {
|
||||
$path = Kirby\Cms\App::instance()->path();
|
||||
return Str::contains($path, 'pages/events');
|
||||
}
|
||||
],
|
||||
'-',
|
||||
'users',
|
||||
'system'
|
||||
]
|
||||
]
|
||||
];
|
||||
];
|
||||
|
|
|
|||
18
public/site/models/client.php
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
class ClientPage extends Page {
|
||||
public function projects() {
|
||||
return page('projects')->children()->filterBy('intendedTemplate', 'project')->filterBy(function($project) {
|
||||
return $project->client()->toPage() === $this;
|
||||
});
|
||||
}
|
||||
public function projectsListed() {
|
||||
return page('projects')->children()->listed()->filterBy('intendedTemplate', 'project')->filterBy(function($project) {
|
||||
return $project->client()->toPage() === $this;
|
||||
});
|
||||
}
|
||||
public function projectsUnlisted() {
|
||||
return page('projects')->children()->unlisted()->filterBy('intendedTemplate', 'project')->filterBy(function($project) {
|
||||
return $project->client()->toPage() === $this;
|
||||
});
|
||||
}
|
||||
}
|
||||