Skip to content

Commit 6c0b221

Browse files
committed
Merge branch 'main' of github.com:daniel-cintra/modular
2 parents 060c64f + 7bda3fe commit 6c0b221

File tree

13 files changed

+59
-42
lines changed

13 files changed

+59
-42
lines changed

src/Console/MakeModuleCommand.php

Lines changed: 42 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
namespace Modular\Modular\Console;
44

5+
use Illuminate\Support\Str;
56
use Illuminate\Console\Command;
7+
use Illuminate\Support\Facades\File;
68
use Illuminate\Filesystem\Filesystem;
7-
use Illuminate\Support\Str;
9+
use Illuminate\Support\Facades\Artisan;
810

911
class MakeModuleCommand extends Command
1012
{
@@ -18,27 +20,30 @@ public function handle(): ?int
1820
{
1921
$this->setModuleName();
2022

21-
$this->comment('Creating Module '.$this->moduleName);
23+
$this->comment('Creating Module ' . $this->moduleName);
24+
25+
if ($this->createModuleDirectoryStructure()) {
26+
$this->createServiceProvider();
2227

23-
$this->createModuleDirectoryStructure();
24-
$this->createServiceProvider();
28+
$params = [
29+
'moduleName' => $this->moduleName,
30+
'resourceName' => $this->moduleName,
31+
];
2532

26-
$params = [
27-
'moduleName' => $this->moduleName,
28-
'resourceName' => $this->moduleName,
29-
];
33+
$this->call('modular:make-controller', $params);
34+
$this->call('modular:make-validate', $params);
35+
$this->call('modular:make-model', $params);
36+
$this->call('modular:make-route', $params);
3037

31-
$this->call('modular:make-controller', $params);
32-
$this->call('modular:make-validate', $params);
33-
$this->call('modular:make-model', $params);
34-
$this->call('modular:make-route', $params);
38+
$this->call('modular:make-migration', ['moduleName' => $this->moduleName, 'migrationName' => "create{$this->moduleName}s_table"]);
3539

36-
$this->call('modular:make-migration', ['moduleName' => $this->moduleName, 'migrationName' => "create{$this->moduleName}s_table"]);
40+
$this->call('modular:make-page', $params);
41+
$this->call('modular:make-test', $params);
3742

38-
$this->call('modular:make-page', $params);
39-
$this->call('modular:make-test', $params);
43+
return self::SUCCESS;
44+
}
4045

41-
return self::SUCCESS;
46+
return false;
4247
}
4348

4449
private function setModulename(): void
@@ -48,7 +53,7 @@ private function setModulename(): void
4853

4954
private function createServiceProvider(): void
5055
{
51-
$stub = file_get_contents(__DIR__.'/../../stubs/module-stub/modules/ModuleServiceProvider.stub');
56+
$stub = file_get_contents(__DIR__ . '/../../stubs/module-stub/modules/ModuleServiceProvider.stub');
5257

5358
$stub = str_replace('{{ moduleName }}', $this->moduleName, $stub);
5459
$stub = str_replace('{{ resourceName }}', Str::camel($this->moduleName), $stub);
@@ -58,14 +63,26 @@ private function createServiceProvider(): void
5863
file_put_contents($path, $stub);
5964
}
6065

61-
private function createModuleDirectoryStructure(): void
66+
private function createModuleDirectoryStructure(): bool
6267
{
63-
(new Filesystem)->makeDirectory(base_path("modules/{$this->moduleName}"));
64-
(new Filesystem)->makeDirectory(base_path("modules/{$this->moduleName}/Http/Controllers"), 0755, true);
65-
(new Filesystem)->makeDirectory(base_path("modules/{$this->moduleName}/Http/Requests"));
66-
(new Filesystem)->makeDirectory(base_path("modules/{$this->moduleName}/Models"));
67-
(new Filesystem)->makeDirectory(base_path("modules/{$this->moduleName}/routes"));
68-
(new Filesystem)->makeDirectory(base_path("modules/{$this->moduleName}/Tests"));
69-
(new Filesystem)->makeDirectory(base_path("modules/{$this->moduleName}/Database/Migrations"), 0755, true);
68+
$modulePath = base_path("modules/{$this->moduleName}");
69+
70+
// Check if the module directory already exists
71+
if (File::exists($modulePath)) {
72+
// Output an error message to the console
73+
$this->info("Module {$this->moduleName} already exists. SKIPPING");
74+
return false;
75+
}
76+
77+
// Create the necessary directories
78+
(new Filesystem)->makeDirectory($modulePath);
79+
(new Filesystem)->makeDirectory("{$modulePath}/Http/Controllers", 0755, true);
80+
(new Filesystem)->makeDirectory("{$modulePath}/Http/Requests");
81+
(new Filesystem)->makeDirectory("{$modulePath}/Models");
82+
(new Filesystem)->makeDirectory("{$modulePath}/routes");
83+
(new Filesystem)->makeDirectory("{$modulePath}/Tests");
84+
(new Filesystem)->makeDirectory("{$modulePath}/Database/Migrations", 0755, true);
85+
86+
return true;
7087
}
7188
}

stubs/page-stub/Index.stub

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

3434
<AppDataTableData>
3535
<!-- edit {{ resourceName }} -->
36-
<AppTooltip text="Edit {{ ResourceName }}" class="mr-3">
36+
<AppTooltip text="Edit {{ ResourceName }}" class="mr-2">
3737
<AppButton
3838
class="btn btn-icon btn-primary"
3939
@click="
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<td class="whitespace-nowrap px-6 py-4 font-medium">
2+
<td class="whitespace-nowrap px-4 py-2 font-medium">
33
<slot></slot>
44
</td>
55
</template>

stubs/resources/js/Components/DataTable/AppDataTableHead.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<th
55
v-for="header in headers"
66
:key="header"
7-
class="border-b border-skin-neutral-6 bg-skin-neutral-3 px-6 py-3"
7+
class="border-b border-skin-neutral-5 bg-skin-neutral-5 px-4 py-2"
88
>
99
{{ header }}
1010
</th>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<tr class="border-b border-b-skin-neutral-6 hover:bg-skin-neutral-3">
2+
<tr class="border border-skin-neutral-4 hover:bg-skin-neutral-3">
33
<slot></slot>
44
</tr>
55
</template>

stubs/resources/js/Components/DataTable/AppPaginator.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
<template v-for="(link, index) in links" :key="index">
77
<div
88
v-if="link.url === null"
9-
class="mb-1 mr-1 rounded border px-4 py-3 text-sm leading-4 opacity-30"
9+
class="mb-1 mr-1 rounded border px-3 py-2 text-sm leading-4 opacity-30"
1010
v-html="link.label"
1111
/>
1212
<Link
1313
v-else
14-
class="mb-1 mr-1 rounded border px-4 py-3 text-sm leading-4 hover:bg-skin-primary-10 hover:text-skin-primary-1 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2"
14+
class="mb-1 mr-1 rounded border px-3 py-2 text-sm leading-4 hover:bg-skin-primary-10 hover:text-skin-primary-1 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2"
1515
:class="{
1616
'bg-skin-primary-9 text-skin-primary-2': link.active
1717
}"

stubs/resources/js/Components/Misc/AppButton.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const emit = defineEmits(['click'])
1010

1111
<style scoped>
1212
.btn {
13-
@apply z-0 rounded-md px-5 py-2.5 text-sm font-medium transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2;
13+
@apply z-0 flex items-center rounded-md px-4 py-2 text-sm font-medium transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2;
1414
}
1515
1616
.btn-primary {
@@ -38,6 +38,6 @@ const emit = defineEmits(['click'])
3838
}
3939
4040
.btn-icon {
41-
@apply h-10 w-10 rounded-md px-2.5 py-2.5;
41+
@apply h-8 rounded-md px-3;
4242
}
4343
</style>

stubs/resources/js/Pages/AclPermission/PermissionIndex.vue

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

3434
<AppDataTableData>
3535
<!-- edit permission -->
36-
<AppTooltip :text="__('Edit Permission')" class="mr-3">
36+
<AppTooltip :text="__('Edit Permission')" class="mr-2">
3737
<AppButton
3838
class="btn btn-icon btn-primary"
3939
@click="

stubs/resources/js/Pages/AclRole/RoleIndex.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030

3131
<AppDataTableData>
3232
<!-- role permissions -->
33-
<AppTooltip :text="__('Role Permissions')" class="mr-3">
33+
<AppTooltip :text="__('Role Permissions')" class="mr-2">
3434
<AppButton
3535
class="btn btn-icon btn-primary"
3636
@click="
@@ -44,7 +44,7 @@
4444
</AppTooltip>
4545

4646
<!-- edit role -->
47-
<AppTooltip :text="__('Edit Role')" class="mr-3">
47+
<AppTooltip :text="__('Edit Role')" class="mr-2">
4848
<AppButton
4949
class="btn btn-icon btn-primary"
5050
@click="

stubs/resources/js/Pages/AclRolePermission/RolePermissionForm.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
name="permission"
2828
:value="permission"
2929
/>
30-
<AppLabel :for="permission.name" class="ml-3">
30+
<AppLabel :for="permission.name" class="ml-2">
3131
{{ permission.name }}
3232
</AppLabel>
3333
</div>

0 commit comments

Comments
 (0)