generator-folklore 3.0.6 → 3.0.8
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/lib/generators/babel/index.js +8 -1
- package/lib/generators/build/index.js +3 -1
- package/lib/generators/cli/index.js +4 -1
- package/lib/generators/docs/index.js +9 -4
- package/lib/generators/eslint/index.js +12 -1
- package/lib/generators/intl/index.js +3 -1
- package/lib/generators/laravel-mediatheque/index.js +18 -0
- package/lib/generators/laravel-mediatheque/instructions/ServiceProvider.php +26 -0
- package/lib/generators/laravel-panneau/index.js +51 -5
- package/lib/generators/laravel-panneau/instructions/ServiceProvider.php +21 -0
- package/lib/generators/laravel-panneau/instructions/config.php +13 -0
- package/lib/generators/laravel-panneau/templates/app/Contracts/Repositories/Pages.php +2 -2
- package/lib/generators/laravel-panneau/templates/app/Contracts/Resources/Block.php +10 -0
- package/lib/generators/laravel-panneau/templates/app/Contracts/Resources/Blocks/Image.php +15 -0
- package/lib/generators/laravel-panneau/templates/app/Contracts/Resources/Blocks/Text.php +2 -0
- package/lib/generators/laravel-panneau/templates/app/Http/Resources/BlockResource.php +1 -1
- package/lib/generators/laravel-panneau/templates/app/Http/Resources/BlocksCollection.php +2 -0
- package/lib/generators/laravel-panneau/templates/app/Http/Resources/PageResource.php +6 -4
- package/lib/generators/laravel-panneau/templates/app/Models/Block.php +11 -0
- package/lib/generators/laravel-panneau/templates/app/Models/Media.php +11 -0
- package/lib/generators/laravel-panneau/templates/app/Models/Page.php +12 -2
- package/lib/generators/laravel-panneau/templates/app/Panneau/Fields/.gitkeep +0 -0
- package/lib/generators/laravel-panneau/templates/app/Panneau/Http/Resources/BlocksCollection.php +2 -0
- package/lib/generators/laravel-panneau/templates/app/Panneau/Http/Resources/UsersCollection.php +10 -0
- package/lib/generators/laravel-panneau/templates/app/Panneau/PanneauServiceProvider.php +30 -4
- package/lib/generators/laravel-panneau/templates/app/Panneau/Resources/Blocks/ImageBlock.php +30 -0
- package/lib/generators/laravel-panneau/templates/app/Panneau/Resources/Blocks/TextBlock.php +3 -2
- package/lib/generators/laravel-panneau/templates/app/Panneau/Resources/Blocks.php +4 -1
- package/lib/generators/laravel-panneau/templates/app/Panneau/Resources/Pages/Page.php +2 -2
- package/lib/generators/laravel-panneau/templates/app/Panneau/Resources/Pages.php +2 -2
- package/lib/generators/laravel-panneau/templates/app/Repositories/Pages.php +2 -2
- package/lib/generators/laravel-panneau/templates/app/Resources/Block.php +10 -0
- package/lib/generators/laravel-panneau/templates/app/Resources/Blocks/ImageBlock.php +27 -0
- package/lib/generators/laravel-panneau/templates/app/Resources/Blocks/TextBlock.php +7 -2
- package/lib/generators/laravel-panneau/templates/config.php +29 -0
- package/lib/generators/laravel-panneau/templates/index.js +1 -1
- package/lib/generators/laravel-panneau/templates/lang/en/panneau.php +4 -0
- package/lib/generators/laravel-panneau/templates/lang/fr/panneau.php +4 -0
- package/lib/generators/laravel-panneau/templates/resources/assets/js/components/panneau/fields/PageSlug.jsx +68 -0
- package/lib/generators/laravel-project/index.js +27 -12
- package/lib/generators/laravel-project/templates/laravel/app/Actions/Fortify/CreateNewUser.php +41 -0
- package/lib/generators/laravel-project/templates/laravel/app/Actions/Fortify/ResetUserPassword.php +31 -0
- package/lib/generators/laravel-project/templates/laravel/app/Actions/Fortify/UpdateUserPassword.php +34 -0
- package/lib/generators/laravel-project/templates/laravel/app/Actions/Fortify/UpdateUserProfileInformation.php +61 -0
- package/lib/generators/laravel-project/templates/laravel/app/Contracts/Repositories/Users.php +17 -0
- package/lib/generators/laravel-project/templates/laravel/app/Models/User.php +0 -30
- package/lib/generators/laravel-project/templates/laravel/app/Providers/AppServiceProvider.php +90 -15
- package/lib/generators/laravel-project/templates/laravel/app/Repositories/Users.php +4 -3
- package/lib/generators/laravel-project/templates/laravel/config/app.php +3 -2
- package/lib/generators/laravel-project/templates/laravel/config/image.php +204 -0
- package/lib/generators/lerna-repository/index.js +8 -3
- package/lib/generators/npm-package/index.js +6 -2
- package/lib/generators/prettier/index.js +5 -1
- package/lib/generators/react-app/index.js +22 -2
- package/lib/generators/react-package/index.js +14 -5
- package/lib/generators/rollup/index.js +8 -1
- package/lib/generators/server/index.js +9 -2
- package/lib/generators/storybook/index.js +9 -1
- package/lib/generators/stylelint/index.js +6 -1
- package/lib/generators/test/index.js +10 -1
- package/package.json +6 -5
- package/lib/generators/laravel-panneau/templates/app/Panneau/Fields/Block.php +0 -22
- package/lib/generators/laravel-panneau/templates/app/Panneau/Fields/Blocks.php +0 -87
- package/lib/generators/laravel-panneau/templates/app/Panneau/Fields/Page.php +0 -51
- package/lib/generators/laravel-panneau/templates/app/Panneau/Fields/PageSlug.php +0 -34
- package/lib/generators/laravel-panneau/templates/app/Panneau/Fields/PageSlugLocalized.php +0 -18
- package/lib/generators/laravel-panneau/templates/app/Panneau/Resources/Blocks/BlockWithBlocks.php +0 -110
|
@@ -56,7 +56,14 @@ module.exports = class BabelGenerator extends _generator.default {
|
|
|
56
56
|
},
|
|
57
57
|
|
|
58
58
|
dependencies() {
|
|
59
|
-
this.addDevDependencies(
|
|
59
|
+
this.addDevDependencies({
|
|
60
|
+
'@babel/core': '^7.19.3',
|
|
61
|
+
'@babel/cli': 'latest',
|
|
62
|
+
'@babel/node': 'latest',
|
|
63
|
+
'@babel/plugin-transform-runtime': 'latest',
|
|
64
|
+
'@babel/preset-env': 'latest',
|
|
65
|
+
'@babel/preset-react': 'latest'
|
|
66
|
+
});
|
|
60
67
|
}
|
|
61
68
|
|
|
62
69
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _chalk = _interopRequireDefault(require("chalk"));
|
|
4
|
+
|
|
3
5
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
4
6
|
|
|
5
7
|
var _path = _interopRequireDefault(require("path"));
|
|
6
8
|
|
|
7
|
-
var _chalk = _interopRequireDefault(require("chalk"));
|
|
8
|
-
|
|
9
9
|
var _generator = _interopRequireDefault(require("../../lib/generator"));
|
|
10
10
|
|
|
11
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -141,10 +141,15 @@ module.exports = class DocsGenerator extends _generator.default {
|
|
|
141
141
|
return;
|
|
142
142
|
}
|
|
143
143
|
|
|
144
|
-
this.addDevDependencies(
|
|
144
|
+
this.addDevDependencies({
|
|
145
|
+
'gitbook-cli': 'latest'
|
|
146
|
+
});
|
|
145
147
|
|
|
146
148
|
if (this.options.language === 'js') {
|
|
147
|
-
this.addDevDependencies(
|
|
149
|
+
this.addDevDependencies({
|
|
150
|
+
jsdoc: 'latest',
|
|
151
|
+
'jsdoc-babel': 'latest'
|
|
152
|
+
});
|
|
148
153
|
}
|
|
149
154
|
}
|
|
150
155
|
|
|
@@ -32,7 +32,18 @@ module.exports = class EslintGenerator extends _generator.default {
|
|
|
32
32
|
},
|
|
33
33
|
|
|
34
34
|
dependencies() {
|
|
35
|
-
this.addDevDependencies(
|
|
35
|
+
this.addDevDependencies({
|
|
36
|
+
'babel-preset-airbnb': 'latest',
|
|
37
|
+
'@babel/eslint-parser': 'latest',
|
|
38
|
+
eslint: '^8.0.0',
|
|
39
|
+
'eslint-config-airbnb': 'latest',
|
|
40
|
+
'eslint-config-prettier': 'latest',
|
|
41
|
+
'eslint-plugin-prettier': 'latest',
|
|
42
|
+
'eslint-plugin-import': 'latest',
|
|
43
|
+
'eslint-plugin-jsx-a11y': 'latest',
|
|
44
|
+
'eslint-plugin-react': 'latest',
|
|
45
|
+
'eslint-plugin-formatjs': 'latest'
|
|
46
|
+
});
|
|
36
47
|
}
|
|
37
48
|
|
|
38
49
|
};
|
|
@@ -130,4 +130,22 @@ module.exports = class LaravelMediathequeGenerator extends _generator.default {
|
|
|
130
130
|
};
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
+
end() {
|
|
134
|
+
if (this.options.quiet) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
console.log('\n\n');
|
|
139
|
+
console.log(_chalk.default.yellow('\n----------------------'));
|
|
140
|
+
console.log(_chalk.default.bold('Instructions'));
|
|
141
|
+
console.log(_chalk.default.yellow('----------------------\n\n'));
|
|
142
|
+
console.log(`1. Add to ${_chalk.default.bold.yellow('app/Providers/AppServiceProvider.php')}:`);
|
|
143
|
+
const serviceProvider = fs.readFileSync(_path.default.join(__dirname, './instructions/ServiceProvider.php'));
|
|
144
|
+
console.log('---');
|
|
145
|
+
console.log(highlight(serviceProvider.toString('utf-8'), {
|
|
146
|
+
language: 'php',
|
|
147
|
+
ignoreIllegals: true
|
|
148
|
+
}));
|
|
149
|
+
}
|
|
150
|
+
|
|
133
151
|
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
class AppServiceProvider extends ServiceProvider
|
|
4
|
+
{
|
|
5
|
+
//...
|
|
6
|
+
public function register()
|
|
7
|
+
{
|
|
8
|
+
// ...
|
|
9
|
+
|
|
10
|
+
$this->registerMediatheque();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
protected function registerMediatheque()
|
|
14
|
+
{
|
|
15
|
+
$this->app->bind(
|
|
16
|
+
\Folklore\Mediatheque\Contracts\Models\Media::class,
|
|
17
|
+
\App\Models\Media::class
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
$this->app->bind(
|
|
21
|
+
\Folklore\Mediatheque\Contracts\Models\File::class,
|
|
22
|
+
\App\Models\MediaFile::class
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
//...
|
|
26
|
+
}
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
4
4
|
|
|
5
|
+
var _cliHighlight = require("cli-highlight");
|
|
6
|
+
|
|
7
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
8
|
+
|
|
5
9
|
var _glob = _interopRequireDefault(require("glob"));
|
|
6
10
|
|
|
7
11
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
@@ -65,7 +69,24 @@ module.exports = class LaravelPanneauGenerator extends _generator.default {
|
|
|
65
69
|
},
|
|
66
70
|
|
|
67
71
|
packageJSON() {
|
|
68
|
-
this.addDependencies(
|
|
72
|
+
this.addDependencies({
|
|
73
|
+
'@panneau/app': '^1.0.3-alpha.1',
|
|
74
|
+
'@panneau/core': '^1.0.3-alpha.1',
|
|
75
|
+
'@panneau/data': '^1.0.3-alpha.1',
|
|
76
|
+
'@panneau/field-text': '^1.0.3-alpha.1',
|
|
77
|
+
'@panneau/field-localized': '^1.0.3-alpha.1'
|
|
78
|
+
});
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
config() {
|
|
82
|
+
const source = this.templatePath('config.php');
|
|
83
|
+
const destination = this.destinationPath('config/panneau.php');
|
|
84
|
+
|
|
85
|
+
if (this.fs.exists(destination)) {
|
|
86
|
+
this.fs.delete(destination);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
this.fs.copyTpl(source, destination, {});
|
|
69
90
|
},
|
|
70
91
|
|
|
71
92
|
routes() {
|
|
@@ -107,10 +128,6 @@ module.exports = class LaravelPanneauGenerator extends _generator.default {
|
|
|
107
128
|
this.fs.copyTpl(source, destination, {});
|
|
108
129
|
},
|
|
109
130
|
|
|
110
|
-
npmDependencies() {
|
|
111
|
-
this.addDependencies(['@panneau/app@^1.0.0-alpha.193', '@panneau/core@^1.0.0-alpha.193', '@panneau/data@^1.0.0-alpha.193', '@panneau/field-text@^1.0.0-alpha.193', '@panneau/field-localized@^1.0.0-alpha.193']);
|
|
112
|
-
},
|
|
113
|
-
|
|
114
131
|
files() {
|
|
115
132
|
const folders = ['app', 'resources', 'lang'];
|
|
116
133
|
folders.forEach(folder => {
|
|
@@ -169,4 +186,33 @@ module.exports = class LaravelPanneauGenerator extends _generator.default {
|
|
|
169
186
|
};
|
|
170
187
|
}
|
|
171
188
|
|
|
189
|
+
end() {
|
|
190
|
+
if (this.options.quiet) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
console.log('\n\n');
|
|
195
|
+
console.log(_chalk.default.yellow('\n----------------------'));
|
|
196
|
+
console.log(_chalk.default.bold('Instructions'));
|
|
197
|
+
console.log(_chalk.default.yellow('----------------------\n\n'));
|
|
198
|
+
console.log(`1. Add to ${_chalk.default.bold.yellow('app/Providers/AppServiceProvider.php')}:`);
|
|
199
|
+
|
|
200
|
+
const serviceProvider = _fs.default.readFileSync(_path.default.join(__dirname, './instructions/ServiceProvider.php'));
|
|
201
|
+
|
|
202
|
+
console.log('---');
|
|
203
|
+
console.log((0, _cliHighlight.highlight)(serviceProvider.toString('utf-8'), {
|
|
204
|
+
language: 'php',
|
|
205
|
+
ignoreIllegals: true
|
|
206
|
+
}));
|
|
207
|
+
console.log(`\n2. Add to ${_chalk.default.bold.yellow('config/app.php')}:`);
|
|
208
|
+
|
|
209
|
+
const config = _fs.default.readFileSync(_path.default.join(__dirname, './instructions/config.php'));
|
|
210
|
+
|
|
211
|
+
console.log('---');
|
|
212
|
+
console.log((0, _cliHighlight.highlight)(config.toString('utf-8'), {
|
|
213
|
+
language: 'php',
|
|
214
|
+
ignoreIllegals: true
|
|
215
|
+
}));
|
|
216
|
+
}
|
|
217
|
+
|
|
172
218
|
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
class AppServiceProvider extends ServiceProvider
|
|
4
|
+
{
|
|
5
|
+
//...
|
|
6
|
+
protected function registerRepositories()
|
|
7
|
+
{
|
|
8
|
+
//...
|
|
9
|
+
|
|
10
|
+
$this->app->bind(
|
|
11
|
+
\Folklore\Contracts\Repositories\Pages::class,
|
|
12
|
+
\App\Repositories\Pages::class
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
$this->app->bind(
|
|
16
|
+
\App\Contracts\Repositories\Pages::class,
|
|
17
|
+
\App\Repositories\Pages::class
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
//...
|
|
21
|
+
}
|
|
@@ -13,7 +13,7 @@ interface Pages extends BasePages
|
|
|
13
13
|
|
|
14
14
|
public function findBySlug(string $slug, string $locale = null): ?PageResource;
|
|
15
15
|
|
|
16
|
-
public function create(
|
|
16
|
+
public function create($data): PageResource;
|
|
17
17
|
|
|
18
|
-
public function update(string $id,
|
|
18
|
+
public function update(string $id, $data): ?PageResource;
|
|
19
19
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace App\Contracts\Resources\Blocks;
|
|
4
|
+
|
|
5
|
+
use App\Contracts\Resources\Block as BaseBlock;
|
|
6
|
+
use Folklore\Contracts\Resources\Image as ImageContract;
|
|
7
|
+
|
|
8
|
+
interface Image extends BaseBlock
|
|
9
|
+
{
|
|
10
|
+
public function image(): ?ImageContract;
|
|
11
|
+
|
|
12
|
+
public function caption(string $locale): ?string;
|
|
13
|
+
|
|
14
|
+
public function credits(string $locale): ?string;
|
|
15
|
+
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
namespace App\Http\Resources;
|
|
4
4
|
|
|
5
5
|
use Illuminate\Http\Resources\Json\JsonResource;
|
|
6
|
-
use
|
|
6
|
+
use Folklore\Contracts\Resources\HasBlocks;
|
|
7
7
|
use Folklore\Http\Resources\LocalizedResource;
|
|
8
8
|
use App\Contracts\Resources\Blocks\Text as TextBlock;
|
|
9
9
|
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
namespace App\Http\Resources;
|
|
4
4
|
|
|
5
5
|
use Illuminate\Http\Resources\Json\JsonResource;
|
|
6
|
-
use App\Http\Resources\Medias\ImageResource;
|
|
7
6
|
use App\Contracts\Resources\Page;
|
|
8
|
-
use App\Contracts\Resources\HasBlocks;
|
|
9
7
|
use App\Contracts\Resources\Pages\Home as HomePage;
|
|
8
|
+
use Folklore\Http\Resources\MediaResource;
|
|
9
|
+
use Folklore\Contracts\Resources\HasBlocks;
|
|
10
10
|
|
|
11
11
|
class PageResource extends JsonResource
|
|
12
12
|
{
|
|
@@ -19,6 +19,8 @@ class PageResource extends JsonResource
|
|
|
19
19
|
public function toArray($request)
|
|
20
20
|
{
|
|
21
21
|
$locale = $request->locale();
|
|
22
|
+
$image = $this->image();
|
|
23
|
+
$parent = $this->parent();
|
|
22
24
|
return [
|
|
23
25
|
'id' => $this->id(),
|
|
24
26
|
'type' => $this->type(),
|
|
@@ -26,10 +28,10 @@ class PageResource extends JsonResource
|
|
|
26
28
|
'title' => $this->title($locale),
|
|
27
29
|
'description' => $this->description($locale),
|
|
28
30
|
'slug' => $this->slug($locale),
|
|
29
|
-
'image' => !is_null($image) ? new
|
|
31
|
+
'image' => !is_null($image) ? new MediaResource($image) : null,
|
|
30
32
|
'parent' =>
|
|
31
33
|
!is_null($parent) && $parent instanceof Page
|
|
32
|
-
? new
|
|
34
|
+
? new PageResource($parent)
|
|
33
35
|
: null,
|
|
34
36
|
|
|
35
37
|
$this->mergeWhen($this->resource instanceof HasBlocks, function () {
|
|
@@ -2,11 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
namespace App\Models;
|
|
4
4
|
|
|
5
|
+
use App\Contracts\Resources\Block as BlockContract;
|
|
6
|
+
use App\Resources\Block as BlockResource;
|
|
5
7
|
use Folklore\Models\Block as BaseBlock;
|
|
8
|
+
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
6
9
|
|
|
7
10
|
class Block extends BaseBlock
|
|
8
11
|
{
|
|
12
|
+
use HasFactory;
|
|
13
|
+
|
|
9
14
|
protected $typeResources = [
|
|
10
15
|
'text' => \App\Resources\Blocks\TextBlock::class,
|
|
16
|
+
'image' => \App\Resources\Blocks\ImageBlock::class,
|
|
11
17
|
];
|
|
18
|
+
|
|
19
|
+
public function toResource(): BlockContract
|
|
20
|
+
{
|
|
21
|
+
return $this->toTypedResource() ?? new BlockResource($this);
|
|
22
|
+
}
|
|
12
23
|
}
|
|
@@ -2,11 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
namespace App\Models;
|
|
4
4
|
|
|
5
|
+
use App\Contracts\Resources\Page as PageContract;
|
|
6
|
+
use App\Resources\Page as PageResource;
|
|
5
7
|
use Folklore\Models\Page as BasePage;
|
|
8
|
+
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
6
9
|
|
|
7
10
|
class Page extends BasePage
|
|
8
11
|
{
|
|
9
|
-
|
|
10
|
-
|
|
12
|
+
use HasFactory;
|
|
13
|
+
|
|
14
|
+
protected $typedResources = [
|
|
15
|
+
'home' => \App\Resources\Pages\HomePage::class,
|
|
11
16
|
];
|
|
17
|
+
|
|
18
|
+
public function toResource(): PageContract
|
|
19
|
+
{
|
|
20
|
+
return $this->toTypedResource() ?? new PageResource($this);
|
|
21
|
+
}
|
|
12
22
|
}
|
|
File without changes
|
|
@@ -5,7 +5,9 @@ namespace App\Panneau;
|
|
|
5
5
|
use Illuminate\Support\ServiceProvider as BaseServiceProvider;
|
|
6
6
|
use Illuminate\Contracts\View\Factory as ViewFactory;
|
|
7
7
|
use Illuminate\Support\Facades\Gate;
|
|
8
|
+
use Panneau\Fields\Upload as UploadField;
|
|
8
9
|
use Panneau\Support\LocalizedField;
|
|
10
|
+
use Folklore\Panneau\Fields\PageSlug as PageSlugField;
|
|
9
11
|
use Panneau\Support\Facade as Panneau;
|
|
10
12
|
|
|
11
13
|
class PanneauServiceProvider extends BaseServiceProvider
|
|
@@ -27,13 +29,35 @@ class PanneauServiceProvider extends BaseServiceProvider
|
|
|
27
29
|
*/
|
|
28
30
|
public function boot()
|
|
29
31
|
{
|
|
30
|
-
|
|
31
|
-
return config('locale.locales');
|
|
32
|
-
});
|
|
33
|
-
|
|
32
|
+
$this->bootFields();
|
|
34
33
|
$this->bootViews();
|
|
35
34
|
}
|
|
36
35
|
|
|
36
|
+
protected function bootFields()
|
|
37
|
+
{
|
|
38
|
+
$this->app->booted(function () {
|
|
39
|
+
LocalizedField::setLocalesResolver(function () {
|
|
40
|
+
return config('locale.locales');
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
UploadField::setEndpoint(route('panneau.upload'));
|
|
44
|
+
|
|
45
|
+
PageSlugField::setRoutesResolver(function ($locale) {
|
|
46
|
+
return [
|
|
47
|
+
'page' => url()->routeForReactRouter($locale . '.page', [
|
|
48
|
+
'withoutPatterns' => config('panneau.routes.without_patterns', true),
|
|
49
|
+
]),
|
|
50
|
+
'page_with_parent' => url()->routeForReactRouter(
|
|
51
|
+
$locale . '.page_with_parent',
|
|
52
|
+
[
|
|
53
|
+
'withoutPatterns' => config('panneau.routes.without_patterns', true),
|
|
54
|
+
]
|
|
55
|
+
),
|
|
56
|
+
];
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
|
|
37
61
|
protected function bootViews()
|
|
38
62
|
{
|
|
39
63
|
$view = $this->app[ViewFactory::class];
|
|
@@ -42,6 +66,8 @@ class PanneauServiceProvider extends BaseServiceProvider
|
|
|
42
66
|
$view->composer('panneau::app', \App\Panneau\Composers\AppComposer::class);
|
|
43
67
|
|
|
44
68
|
Panneau::serving(function () use ($view) {
|
|
69
|
+
$view->composer('errors::*', \Panneau\Composers\PanneauComposer::class);
|
|
70
|
+
$view->composer('errors::*', \Panneau\Composers\AppComposer::class);
|
|
45
71
|
$view->composer('errors::*', \App\Panneau\Composers\AppComposer::class);
|
|
46
72
|
});
|
|
47
73
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace App\Panneau\Resources\Blocks;
|
|
4
|
+
|
|
5
|
+
use Panneau\Support\ResourceType;
|
|
6
|
+
use Panneau\Fields\Image;
|
|
7
|
+
use Panneau\Fields\HtmlLocalized;
|
|
8
|
+
use Panneau\Fields\TextLocalized;
|
|
9
|
+
|
|
10
|
+
class ImageBlock extends ResourceType
|
|
11
|
+
{
|
|
12
|
+
public function id(): string
|
|
13
|
+
{
|
|
14
|
+
return 'image';
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
public function name(): string
|
|
18
|
+
{
|
|
19
|
+
return trans('panneau.blocks_image');
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public function fields(): array
|
|
23
|
+
{
|
|
24
|
+
return [
|
|
25
|
+
Image::make('image')->withTransLabel('panneau.fields.image'),
|
|
26
|
+
HtmlLocalized::make('caption')->withTransLabel('panneau.fields.caption'),
|
|
27
|
+
TextLocalized::make('credits')->withTransLabel('panneau.fields.credits'),
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
namespace App\Panneau\Resources\Blocks;
|
|
4
4
|
|
|
5
5
|
use Panneau\Support\ResourceType;
|
|
6
|
+
use Panneau\Fields\TextLocalized;
|
|
6
7
|
use Panneau\Fields\HtmlLocalized;
|
|
7
8
|
|
|
8
9
|
class TextBlock extends ResourceType
|
|
@@ -20,8 +21,8 @@ class TextBlock extends ResourceType
|
|
|
20
21
|
public function fields(): array
|
|
21
22
|
{
|
|
22
23
|
return [
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
TextLocalized::make('title')->withTransLabel('panneau.fields.title'),
|
|
25
|
+
HtmlLocalized::make('body')->withTransLabel('panneau.fields.body'),
|
|
25
26
|
];
|
|
26
27
|
}
|
|
27
28
|
}
|
|
@@ -16,7 +16,10 @@ class Blocks extends Resource
|
|
|
16
16
|
'hideInNavbar' => true,
|
|
17
17
|
];
|
|
18
18
|
|
|
19
|
-
public static $types = [
|
|
19
|
+
public static $types = [
|
|
20
|
+
\App\Panneau\Resources\Blocks\TextBlock::class,
|
|
21
|
+
\App\Panneau\Resources\Blocks\ImageBlock::class,
|
|
22
|
+
];
|
|
20
23
|
|
|
21
24
|
public function name(): string
|
|
22
25
|
{
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
namespace App\Panneau\Resources\Pages;
|
|
4
4
|
|
|
5
5
|
use Panneau\Support\ResourceType;
|
|
6
|
-
use
|
|
7
|
-
use
|
|
6
|
+
use Folklore\Panneau\Fields\Blocks;
|
|
7
|
+
use Folklore\Panneau\Fields\Page as PageField;
|
|
8
8
|
|
|
9
9
|
class Page extends ResourceType
|
|
10
10
|
{
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<?php
|
|
2
2
|
namespace App\Panneau\Resources;
|
|
3
3
|
|
|
4
|
-
use
|
|
5
|
-
use App\Panneau\Fields\PageSlugLocalized;
|
|
4
|
+
use Folklore\Panneau\Fields\PageSlugLocalized;
|
|
6
5
|
use Panneau\Fields\TextLocalized;
|
|
6
|
+
use Panneau\Fields\ImageLocalized;
|
|
7
7
|
use Panneau\Fields\Toggle;
|
|
8
8
|
use Panneau\Support\Resource;
|
|
9
9
|
|
|
@@ -30,12 +30,12 @@ class Pages extends BasePages implements PagesContract
|
|
|
30
30
|
return parent::findBySlug($slug, $locale);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
public function create(
|
|
33
|
+
public function create($data): PageContract
|
|
34
34
|
{
|
|
35
35
|
return parent::create($data);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
public function update(string $id,
|
|
38
|
+
public function update(string $id, $data): ?PageContract
|
|
39
39
|
{
|
|
40
40
|
return parent::update($id, $data);
|
|
41
41
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace App\Resources\Blocks;
|
|
4
|
+
|
|
5
|
+
use App\Resources\Block;
|
|
6
|
+
use App\Contracts\Resources\Blocks\Text as TextBlockContract;
|
|
7
|
+
use Folklore\Contracts\Resources\Image as ImageContract;
|
|
8
|
+
use Folklore\Resources\Image;
|
|
9
|
+
|
|
10
|
+
class ImageBlock extends Block implements TextBlockContract
|
|
11
|
+
{
|
|
12
|
+
public function image(): ?ImageContract
|
|
13
|
+
{
|
|
14
|
+
$image = data_get($this->data, 'image');
|
|
15
|
+
return isset($image) ? new Image($image) : null;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public function caption(string $locale): ?string
|
|
19
|
+
{
|
|
20
|
+
return data_get($this->data, 'caption.' . $locale);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public function credits(string $locale): ?string
|
|
24
|
+
{
|
|
25
|
+
return data_get($this->data, 'credits.' . $locale);
|
|
26
|
+
}
|
|
27
|
+
}
|