Skip to content

Commit cfaef92

Browse files
authored
New builder (#742)
1 parent ed6aa91 commit cfaef92

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+792
-295
lines changed

packages/builder/CHANGELOG.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1 @@
11
# Changelog
2-
3-
## 3.0.0
4-
5-
- Initial release as package
6-
- Able to build new Filament Resources from CLI
7-
- Converted from a GitHub Template
8-
- GitHub Template now provided by Moox Skeleton
9-
- Moox Core 3.0.0 compatibility

packages/builder/composer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@
4141
"pestphp/pest": "^3.2",
4242
"pestphp/pest-plugin-livewire": "^3.0",
4343
"pestphp/pest-plugin-laravel": "^3.0",
44-
"ryangjchandler/blade-capture-directive": "^1.0",
45-
"laravel/pint": "^1.0"
44+
"ryangjchandler/blade-capture-directive": "^1.0"
4645
},
4746
"autoload-dev": {
4847
"psr-4": {

packages/builder/config/builder.php

Lines changed: 41 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -14,43 +14,39 @@
1414

1515
'blocks' => [
1616
'fields' => [
17-
'boolean' => \Moox\Builder\Blocks\Fields\Boolean::class,
18-
'builder' => \Moox\Builder\Blocks\Fields\Builder::class,
19-
'checkbox-list' => \Moox\Builder\Blocks\Fields\CheckboxList::class,
20-
'color-picker' => \Moox\Builder\Blocks\Fields\ColorPicker::class,
21-
'date' => \Moox\Builder\Blocks\Fields\Date::class,
22-
'date-time' => \Moox\Builder\Blocks\Fields\DateTime::class,
23-
'file-upload' => \Moox\Builder\Blocks\Fields\FileUpload::class,
24-
'hidden' => \Moox\Builder\Blocks\Fields\Hidden::class,
25-
'image' => \Moox\Builder\Blocks\Fields\Image::class,
26-
'key-value' => \Moox\Builder\Blocks\Fields\KeyValue::class,
27-
'markdown-editor' => \Moox\Builder\Blocks\Fields\MarkdownEditor::class,
28-
'multi-select' => \Moox\Builder\Blocks\Fields\MultiSelect::class,
29-
'number' => \Moox\Builder\Blocks\Fields\Number::class,
30-
'radio' => \Moox\Builder\Blocks\Fields\Radio::class,
31-
'relationship' => \Moox\Builder\Blocks\Fields\Relationship::class,
32-
'repeater' => \Moox\Builder\Blocks\Fields\Repeater::class,
33-
'rich-editor' => \Moox\Builder\Blocks\Fields\RichEditor::class,
34-
'select' => \Moox\Builder\Blocks\Fields\Select::class,
35-
'tags-input' => \Moox\Builder\Blocks\Fields\TagsInput::class,
36-
'text' => \Moox\Builder\Blocks\Fields\Text::class,
37-
'textarea' => \Moox\Builder\Blocks\Fields\TextArea::class,
38-
'toggle' => \Moox\Builder\Blocks\Fields\Toggle::class,
39-
'toggle-buttons' => \Moox\Builder\Blocks\Fields\ToggleButtons::class,
17+
'boolean' => \Moox\Builder\Blocks\Filament\Boolean::class,
18+
'builder' => \Moox\Builder\Blocks\Filament\Builder::class,
19+
'checkbox-list' => \Moox\Builder\Blocks\Filament\CheckboxList::class,
20+
'color-picker' => \Moox\Builder\Blocks\Filament\ColorPicker::class,
21+
'date' => \Moox\Builder\Blocks\Filament\Date::class,
22+
'date-time' => \Moox\Builder\Blocks\Filament\DateTime::class,
23+
'file-upload' => \Moox\Builder\Blocks\Filament\FileUpload::class,
24+
'hidden' => \Moox\Builder\Blocks\Filament\Hidden::class,
25+
'image' => \Moox\Builder\Blocks\Filament\Image::class,
26+
'key-value' => \Moox\Builder\Blocks\Filament\KeyValue::class,
27+
'markdown-editor' => \Moox\Builder\Blocks\Filament\MarkdownEditor::class,
28+
'multi-select' => \Moox\Builder\Blocks\Filament\MultiSelect::class,
29+
'number' => \Moox\Builder\Blocks\Filament\Number::class,
30+
'radio' => \Moox\Builder\Blocks\Filament\Radio::class,
31+
'relationship' => \Moox\Builder\Blocks\Filament\Relationship::class,
32+
'repeater' => \Moox\Builder\Blocks\Filament\Repeater::class,
33+
'rich-editor' => \Moox\Builder\Blocks\Filament\RichEditor::class,
34+
'select' => \Moox\Builder\Blocks\Filament\Select::class,
35+
'tags-input' => \Moox\Builder\Blocks\Filament\TagsInput::class,
36+
'text' => \Moox\Builder\Blocks\Filament\Text::class,
37+
'textarea' => \Moox\Builder\Blocks\Filament\TextArea::class,
38+
'toggle' => \Moox\Builder\Blocks\Filament\Toggle::class,
39+
'toggle-buttons' => \Moox\Builder\Blocks\Filament\ToggleButtons::class,
4040
],
4141
'features' => [
42-
'custom-demo' => \Moox\Builder\Blocks\Features\CustomDemo::class,
42+
'simple' => \Moox\Builder\Blocks\Singles\Simple::class,
43+
'soft-delete' => \Moox\Builder\Blocks\Singles\SoftDelete::class,
44+
'title-with-slug' => \Moox\Builder\Blocks\Moox\TitleWithSlug::class,
4345
'simple-status' => \Moox\Builder\Blocks\Features\SimpleStatus::class,
4446
'simple-type' => \Moox\Builder\Blocks\Features\SimpleType::class,
45-
'tabs' => \Moox\Builder\Blocks\Features\Tabs::class,
4647
],
4748
'sections' => [
48-
'simple-address' => \Moox\Builder\Blocks\Sections\SimpleAddressSection::class,
49-
],
50-
'singles' => [
51-
'light' => \Moox\Builder\Blocks\Singles\Light::class,
52-
'simple' => \Moox\Builder\Blocks\Singles\Simple::class,
53-
'soft-delete' => \Moox\Builder\Blocks\Singles\SoftDelete::class,
49+
'address' => \Moox\Builder\Blocks\Sections\AddressSection::class,
5450
],
5551
],
5652

@@ -66,8 +62,12 @@
6662
*/
6763

6864
'contexts' => [
69-
'custom' => [
70-
'base_path' => app_path('Custom'),
65+
'moox' => [
66+
'base_path' => app_path('Moox'),
67+
'base_namespace' => 'App\\Moox',
68+
],
69+
'app' => [
70+
'base_path' => app_path(),
7171
'base_namespace' => 'App',
7272
'generators' => [
7373
'model' => [
@@ -111,98 +111,6 @@
111111
],
112112
],
113113
],
114-
'app' => [
115-
'base_path' => app_path(),
116-
'base_namespace' => 'App',
117-
'generators' => [
118-
'model' => [
119-
'path' => '%BasePath%\Models',
120-
'namespace' => '%BaseNamespace%\\Models',
121-
'template' => __DIR__.'/../src/Templates/Entity/model.php.stub',
122-
'generator' => \Moox\Builder\Generators\Entity\ModelGenerator::class,
123-
],
124-
'resource' => [
125-
'path' => '%BasePath%\Resources',
126-
'namespace' => '%BaseNamespace%\\Resources',
127-
'template' => __DIR__.'/../src/Templates/Entity/resource.php.stub',
128-
'page_templates' => [
129-
'List' => __DIR__.'/../src/Templates/Entity/pages/list.php.stub',
130-
'Create' => __DIR__.'/../src/Templates/Entity/pages/create.php.stub',
131-
'Edit' => __DIR__.'/../src/Templates/Entity/pages/edit.php.stub',
132-
'View' => __DIR__.'/../src/Templates/Entity/pages/view.php.stub',
133-
],
134-
'generator' => \Moox\Builder\Generators\Entity\ResourceGenerator::class,
135-
],
136-
'plugin' => [
137-
'path' => '%BasePath%\Filament\Plugins',
138-
'namespace' => '%BaseNamespace%\\Filament\\Plugins',
139-
'template' => __DIR__.'/../src/Templates/Entity/plugin.php.stub',
140-
'generator' => \Moox\Builder\Generators\Entity\PluginGenerator::class,
141-
],
142-
'migration' => [
143-
'path' => 'database\migrations',
144-
'template' => __DIR__.'/../src/Templates/Entity/migration.php.stub',
145-
'generator' => \Moox\Builder\Generators\Entity\MigrationGenerator::class,
146-
],
147-
'translation' => [
148-
'path' => 'lang\%locale%\entities',
149-
'template' => __DIR__.'/../src/Templates/Entity/translation.php.stub',
150-
'generator' => \Moox\Builder\Generators\Entity\TranslationGenerator::class,
151-
],
152-
'config' => [
153-
'path' => 'config\entities',
154-
'template' => __DIR__.'/../src/Templates/Entity/config.php.stub',
155-
'generator' => \Moox\Builder\Generators\Entity\ConfigGenerator::class,
156-
],
157-
],
158-
],
159-
/*
160-
'package' => [
161-
'base_path' => '$PackagePath',
162-
'base_namespace' => '$PackageNamespace',
163-
'generators' => [
164-
'model' => [
165-
'path' => '%BasePath%\src\Models',
166-
'namespace' => '%BaseNamespace%\\Models',
167-
'template' => __DIR__.'/../src/Templates/Entity/model.php.stub',
168-
'generator' => \Moox\Builder\Generators\Entity\ModelGenerator::class,
169-
],
170-
'resource' => [
171-
'path' => '%BasePath%\src\Resources',
172-
'namespace' => '%BaseNamespace%\\Resources',
173-
'template' => __DIR__.'/../src/Templates/Entity/resource.php.stub',
174-
'page_templates' => [
175-
'List' => __DIR__.'/../src/Templates/Entity/pages/list.php.stub',
176-
'Create' => __DIR__.'/../src/Templates/Entity/pages/create.php.stub',
177-
'Edit' => __DIR__.'/../src/Templates/Entity/pages/edit.php.stub',
178-
'View' => __DIR__.'/../src/Templates/Entity/pages/view.php.stub',
179-
],
180-
'generator' => \Moox\Builder\Generators\Entity\ResourceGenerator::class,
181-
],
182-
'migration_stub' => [
183-
'path' => '%BasePath%\database\migrations',
184-
'template' => __DIR__.'/../src/Templates/Entity/migration.php.stub',
185-
'generator' => \Moox\Builder\Generators\Entity\MigrationGenerator::class,
186-
],
187-
'plugin' => [
188-
'path' => '%BasePath%\src',
189-
'namespace' => '%BaseNamespace%',
190-
'template' => __DIR__.'/../src/Templates/Entity/plugin.php.stub',
191-
'generator' => \Moox\Builder\Generators\Entity\PluginGenerator::class,
192-
],
193-
'translation' => [
194-
'path' => '%BasePath%\resources\lang\entities',
195-
'template' => __DIR__.'/../src/Templates/Entity/translation.php.stub',
196-
'generator' => \Moox\Builder\Generators\Entity\TranslationGenerator::class,
197-
],
198-
'config' => [
199-
'path' => '%BasePath%\config\entities',
200-
'template' => __DIR__.'/../src/Templates/Entity/config.php.stub',
201-
'generator' => \Moox\Builder\Generators\Entity\ConfigGenerator::class,
202-
],
203-
],
204-
],
205-
*/
206114
'preview' => [
207115
'base_path' => app_path('Builder'),
208116
'base_namespace' => 'App\\Builder',
@@ -267,5 +175,13 @@
267175
'class' => \Moox\Builder\Presets\FullItemPreset::class,
268176
'generators' => ['model', 'migration', 'resource'],
269177
],
178+
'related-item' => [
179+
'class' => \Moox\Builder\Presets\RelatedItemPreset::class,
180+
'generators' => ['model', 'migration', 'resource'],
181+
],
182+
'simple-taxonomy' => [
183+
'class' => \Moox\Builder\Presets\SimpleTaxonomyPreset::class,
184+
'generators' => ['model', 'migration', 'resource'],
185+
],
270186
],
271187
];

packages/builder/resources/lang/hr/translations.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
<?php
22

33
return [
4+
'single' => '',
5+
'plural' => '',
6+
'breadcrumb' => '',
7+
'title' => '',
8+
'navigation_label' => '',
9+
'navigation_group' => '',
10+
'totalone' => '',
11+
'totaltwo' => '',
12+
'totalthree' => '',
413
'name' => 'Ime',
514
'started_at' => 'Pokrenuto',
615
'failed' => 'neuspjelo',
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Moox\Builder\Blocks\Features;
6+
7+
use Moox\Builder\Blocks\AbstractBlock;
8+
9+
class Taxonomy extends AbstractBlock
10+
{
11+
protected array $taxonomies = [];
12+
13+
protected array $formFields = [];
14+
15+
public function __construct(
16+
string $name = 'taxonomy',
17+
string $label = 'Taxonomy',
18+
string $description = 'Simple or nested taxonomy relation',
19+
string $single = 'Tag',
20+
string $plural = 'Tags',
21+
string $model = '\Moox\Tag\Models\Tag::class',
22+
string $table = 'taggables',
23+
string $relationship = 'taggable',
24+
string $foreignKey = 'taggable_id',
25+
string $relatedKey = 'tag_id',
26+
string $createForm = '\Moox\Tag\Forms\TaxonomyCreateForm::class',
27+
bool $nested = false,
28+
bool $nullable = false,
29+
) {
30+
parent::__construct($name, $label, $description, $nullable);
31+
32+
$this->addSection('taxonomy')
33+
->asMeta()
34+
->hideHeader()
35+
->withFields([
36+
'static::getTaxonomyFields()',
37+
]);
38+
39+
$this->tableColumns['resource'] = [
40+
'...static::getTaxonomyColumns()',
41+
];
42+
43+
$this->taxonomies[] = [
44+
'name' => strtolower($single),
45+
'label' => $plural,
46+
'model' => $model,
47+
'table' => $table,
48+
'relationship' => $relationship,
49+
'foreign_key' => $foreignKey,
50+
'related_key' => $relatedKey,
51+
'create_form' => $createForm,
52+
'hierarchical' => $nested,
53+
];
54+
55+
$this->traits['model'] = ['Moox\Core\Traits\Taxonomy\TaxonomyInModel'];
56+
$this->traits['resource'] = ['Moox\Core\Traits\Taxonomy\TaxonomyInResource'];
57+
$this->traits['pages']['create'] = ['Moox\Core\Traits\Taxonomy\TaxonomyInPages'];
58+
$this->traits['pages']['view'] = ['Moox\Core\Traits\Taxonomy\TaxonomyInPages'];
59+
$this->traits['pages']['edit'] = ['Moox\Core\Traits\Taxonomy\TaxonomyInPages'];
60+
61+
$this->methods['model'] = [
62+
'protected function getResourceName(): string
63+
{
64+
return \'{{ resource_name }}\';
65+
}',
66+
];
67+
}
68+
69+
public function getFormFields(string $context = 'resource'): array
70+
{
71+
return $this->formFields[$context] ?? [];
72+
}
73+
74+
public function getTaxonomies(): array
75+
{
76+
return $this->taxonomies;
77+
}
78+
}

packages/builder/src/Blocks/Fields/Boolean.php renamed to packages/builder/src/Blocks/Filament/Boolean.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace Moox\Builder\Blocks\Fields;
5+
namespace Moox\Builder\Blocks\Filament;
66

77
use Moox\Builder\Blocks\AbstractBlock;
88

packages/builder/src/Blocks/Fields/Builder.php renamed to packages/builder/src/Blocks/Filament/Builder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace Moox\Builder\Blocks\Fields;
5+
namespace Moox\Builder\Blocks\Filament;
66

77
use Moox\Builder\Blocks\AbstractBlock;
88

packages/builder/src/Blocks/Fields/CheckboxList.php renamed to packages/builder/src/Blocks/Filament/CheckboxList.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace Moox\Builder\Blocks\Fields;
5+
namespace Moox\Builder\Blocks\Filament;
66

77
use Moox\Builder\Blocks\AbstractBlock;
88

packages/builder/src/Blocks/Fields/ColorPicker.php renamed to packages/builder/src/Blocks/Filament/ColorPicker.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace Moox\Builder\Blocks\Fields;
5+
namespace Moox\Builder\Blocks\Filament;
66

77
use Moox\Builder\Blocks\AbstractBlock;
88

packages/builder/src/Blocks/Fields/Date.php renamed to packages/builder/src/Blocks/Filament/Date.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace Moox\Builder\Blocks\Fields;
5+
namespace Moox\Builder\Blocks\Filament;
66

77
use Moox\Builder\Blocks\AbstractBlock;
88

0 commit comments

Comments
 (0)