├── .github ├── ISSUE_TEMPLATE │ └── bug-reporting.md └── workflows │ └── deploy.yml ├── .phpunit.result.cache ├── LICENSE.md ├── build ├── coverage.txt ├── coverage │ ├── Commands │ │ ├── CrudBase.php.html │ │ ├── CrudGenerate.php.html │ │ ├── CrudRemove.php.html │ │ ├── CrudTemplate.php.html │ │ ├── MakeCrud.php.html │ │ ├── dashboard.html │ │ └── index.html │ ├── Crud.php.html │ ├── Formatters │ │ ├── Formatter.php.html │ │ ├── dashboard.html │ │ └── index.html │ ├── Generators │ │ ├── BaseGen.php.html │ │ ├── ControllerGen.php.html │ │ ├── ModelGen.php.html │ │ ├── PolicyGen.php.html │ │ ├── RouteGen.php.html │ │ ├── Templates.php.html │ │ ├── ViewGen.php.html │ │ ├── dashboard.html │ │ └── index.html │ ├── ServiceProvider.php.html │ ├── Utils │ │ ├── FileUtils.php.html │ │ ├── NameUtils.php.html │ │ ├── RouteUtils.php.html │ │ ├── SchemaUtils.php.html │ │ ├── TextUtils.php.html │ │ ├── dashboard.html │ │ └── index.html │ ├── _css │ │ ├── bootstrap.min.css │ │ ├── custom.css │ │ ├── nv.d3.min.css │ │ ├── octicons.css │ │ └── style.css │ ├── _icons │ │ ├── file-code.svg │ │ └── file-directory.svg │ ├── _js │ │ ├── bootstrap.min.js │ │ ├── d3.min.js │ │ ├── file.js │ │ ├── jquery.min.js │ │ ├── nv.d3.min.js │ │ └── popper.min.js │ ├── dashboard.html │ ├── index.html │ └── template │ │ ├── dashboard.html │ │ ├── index.html │ │ └── stubs │ │ ├── Controllers │ │ ├── _controller_.php.html │ │ ├── dashboard.html │ │ └── index.html │ │ ├── Models │ │ ├── _model_.php.html │ │ ├── dashboard.html │ │ └── index.html │ │ ├── Policies │ │ ├── _policy_.php.html │ │ ├── dashboard.html │ │ └── index.html │ │ ├── dashboard.html │ │ ├── index.html │ │ ├── routes │ │ ├── _route_.php.html │ │ ├── dashboard.html │ │ └── index.html │ │ └── views │ │ ├── bootstrap │ │ ├── create.blade.php.html │ │ ├── dashboard.html │ │ ├── edit.blade.php.html │ │ ├── index.blade.php.html │ │ ├── index.html │ │ ├── partials │ │ │ ├── buttons │ │ │ │ ├── actions-trash.blade.php.html │ │ │ │ ├── actions.blade.php.html │ │ │ │ ├── dashboard.html │ │ │ │ └── index.html │ │ │ ├── dashboard.html │ │ │ ├── display │ │ │ │ ├── boolean.blade.php.html │ │ │ │ ├── dashboard.html │ │ │ │ ├── index.html │ │ │ │ ├── json.blade.php.html │ │ │ │ ├── string.blade.php.html │ │ │ │ └── text.blade.php.html │ │ │ ├── index.html │ │ │ ├── inputs │ │ │ │ ├── boolean.blade.php.html │ │ │ │ ├── dashboard.html │ │ │ │ ├── index.html │ │ │ │ ├── input.blade.php.html │ │ │ │ ├── json.blade.php.html │ │ │ │ ├── related.blade.php.html │ │ │ │ ├── select.blade.php.html │ │ │ │ └── textarea.blade.php.html │ │ │ └── render │ │ │ │ ├── dashboard.html │ │ │ │ ├── form.blade.php.html │ │ │ │ ├── index.html │ │ │ │ ├── show.blade.php.html │ │ │ │ └── table.blade.php.html │ │ └── show.blade.php.html │ │ ├── dashboard.html │ │ └── index.html └── report.junit.xml ├── composer.json ├── config └── crud.php ├── database └── migrations │ ├── leads_table.php │ ├── replies_table.php │ ├── tickets_table.php │ └── users_table.php ├── docs ├── .vitepress │ ├── cache │ │ └── deps │ │ │ ├── @theme_index.js │ │ │ ├── @theme_index.js.map │ │ │ ├── _metadata.json │ │ │ ├── package.json │ │ │ ├── vue.js │ │ │ └── vue.js.map │ └── config.js ├── CONTRIBUTING.md ├── LICENSE.md ├── badges.md ├── guide │ ├── about.md │ ├── authentication.md │ ├── crud.md │ ├── customization.md │ ├── gotchas.md │ ├── index.md │ ├── install.md │ ├── license.md │ ├── nesting.md │ ├── options.md │ ├── remove.md │ ├── roadmap.md │ ├── search.md │ └── soft-deletes.md ├── index.md └── readme.php ├── package.json ├── src ├── Commands │ ├── CrudBase.php │ ├── CrudGenerate.php │ ├── CrudRemove.php │ └── CrudTemplate.php ├── Crud.php ├── Formatters │ └── Formatter.php ├── Generators │ ├── BaseGen.php │ ├── ControllerGen.php │ ├── ModelGen.php │ ├── PolicyGen.php │ ├── RouteGen.php │ ├── Templates.php │ └── ViewGen.php ├── ServiceProvider.php ├── Utils │ ├── FileUtils.php │ ├── NameUtils.php │ ├── RouteUtils.php │ ├── SchemaUtils.php │ └── TextUtils.php └── template │ └── stubs │ ├── Controllers │ └── _controller_.php │ ├── Models │ └── _model_.php │ ├── Policies │ └── _policy_.php │ ├── routes │ └── _route_.php │ └── views │ ├── bootstrap │ ├── create-edit.blade.php │ ├── create.blade.php │ ├── edit.blade.php │ ├── index.blade.php │ ├── layout.blade.php │ ├── partials │ │ ├── buttons │ │ │ ├── actions-expanded.blade.php │ │ │ ├── actions-trash.blade.php │ │ │ └── actions.blade.php │ │ ├── display │ │ │ ├── boolean.blade.php │ │ │ ├── json.blade.php │ │ │ ├── string.blade.php │ │ │ └── text.blade.php │ │ ├── inputs │ │ │ ├── boolean.blade.php │ │ │ ├── input.blade.php │ │ │ ├── json.blade.php │ │ │ ├── related.blade.php │ │ │ ├── select.blade.php │ │ │ └── textarea.blade.php │ │ └── render │ │ │ ├── breadcrumbs.blade.php │ │ │ ├── cards.blade.php │ │ │ ├── chat.blade.php │ │ │ ├── form.blade.php │ │ │ ├── show.blade.php │ │ │ └── table.blade.php │ └── show.blade.php │ ├── larastrap │ ├── create-edit.blade.php │ ├── create.blade.php │ ├── edit.blade.php │ ├── index.blade.php │ ├── layout.blade.php │ ├── partials │ │ ├── buttons │ │ │ ├── actions-expanded.blade.php │ │ │ ├── actions-trash.blade.php │ │ │ └── actions.blade.php │ │ ├── display │ │ │ ├── boolean.blade.php │ │ │ ├── json.blade.php │ │ │ ├── string.blade.php │ │ │ └── text.blade.php │ │ ├── inputs │ │ │ ├── boolean.blade.php │ │ │ ├── input.blade.php │ │ │ ├── json.blade.php │ │ │ ├── related.blade.php │ │ │ ├── select.blade.php │ │ │ └── textarea.blade.php │ │ └── render │ │ │ ├── breadcrumbs.blade.php │ │ │ ├── cards.blade.php │ │ │ ├── chat.blade.php │ │ │ ├── form.blade.php │ │ │ ├── show.blade.php │ │ │ └── table.blade.php │ └── show.blade.php │ └── tailwind │ ├── create-edit.blade.php │ ├── create.blade.php │ ├── edit.blade.php │ ├── index.blade.php │ ├── layout.blade.php │ ├── partials │ ├── buttons │ │ ├── actions-trash.blade.php │ │ └── actions.blade.php │ ├── display │ │ ├── boolean.blade.php │ │ ├── json.blade.php │ │ ├── string.blade.php │ │ └── text.blade.php │ ├── inputs │ │ ├── boolean.blade.php │ │ ├── input.blade.php │ │ ├── json.blade.php │ │ ├── related.blade.php │ │ ├── select.blade.php │ │ └── textarea.blade.php │ └── render │ │ ├── breadcrumbs.blade.php │ │ ├── cards.blade.php │ │ ├── chat.blade.php │ │ ├── form.blade.php │ │ ├── show.blade.php │ │ └── table.blade.php │ └── show.blade.php └── yarn.lock /.github/ISSUE_TEMPLATE/bug-reporting.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: bug reporting 3 | about: How to report an issue 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | Before submitting a bug report please make sure to include the following information 11 | 12 | 1. Have you set the mysql password in the .env file? 13 | 14 | 2. Have you created the db migrations using `artisan migrate`? 15 | 16 | 3. Can laravel can connect to your mysql db? 17 | 18 | 4. Are you able to see the output for `User:all()`? 19 | 20 | 5. Can you see the tables you've created in the mysql database? (using phpmyadmin or mysql client) 21 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | deploy: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v3 13 | with: 14 | fetch-depth: 0 15 | - uses: actions/setup-node@v3 16 | with: 17 | node-version: 16 18 | cache: yarn 19 | - run: yarn install --frozen-lockfile 20 | 21 | - name: Build 22 | run: yarn docs:build 23 | 24 | - name: Deploy 25 | uses: peaceiris/actions-gh-pages@v3 26 | with: 27 | github_token: ${{ secrets.GITHUB_TOKEN }} 28 | publish_dir: docs/.vitepress/dist 29 | # cname: example.com # if wanna deploy to custom domain -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # The MIT License (MIT) 2 | 3 | Copyright (c) San Kumar 4 | 5 | > Permission is hereby granted, free of charge, to any person obtaining a copy 6 | > of this software and associated documentation files (the "Software"), to deal 7 | > in the Software without restriction, including without limitation the rights 8 | > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | > copies of the Software, and to permit persons to whom the Software is 10 | > furnished to do so, subject to the following conditions: 11 | > 12 | > The above copyright notice and this permission notice shall be included in 13 | > all copies or substantial portions of the Software. 14 | > 15 | > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | > THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /build/coverage.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Code Coverage Report: 4 | 2022-12-24 03:08:27 5 | 6 | Summary: 7 | Classes: 44.44% (8/18) 8 | Methods: 87.39% (104/119) 9 | Lines: 91.13% (452/496) 10 | 11 | San\Crud\Commands\CrudBase 12 | Methods: 80.00% ( 4/ 5) Lines: 71.43% ( 10/ 14) 13 | San\Crud\Commands\CrudGenerate 14 | Methods: 66.67% ( 2/ 3) Lines: 98.97% ( 96/ 97) 15 | San\Crud\Commands\CrudRemove 16 | Methods: 66.67% ( 2/ 3) Lines: 89.13% ( 41/ 46) 17 | San\Crud\Commands\CrudTemplate 18 | Methods: 66.67% ( 2/ 3) Lines: 80.00% ( 16/ 20) 19 | San\Crud\Formatters\Formatter 20 | Methods: 100.00% ( 1/ 1) Lines: 100.00% ( 3/ 3) 21 | San\Crud\Generators\BaseGen 22 | Methods: 100.00% (18/18) Lines: 100.00% ( 28/ 28) 23 | San\Crud\Generators\ControllerGen 24 | Methods: 82.35% (14/17) Lines: 94.12% ( 48/ 51) 25 | San\Crud\Generators\ModelGen 26 | Methods: 85.71% ( 6/ 7) Lines: 94.44% ( 17/ 18) 27 | San\Crud\Generators\PolicyGen 28 | Methods: 100.00% (12/12) Lines: 100.00% ( 17/ 17) 29 | San\Crud\Generators\RouteGen 30 | Methods: 100.00% (14/14) Lines: 100.00% ( 27/ 27) 31 | San\Crud\Generators\Templates 32 | Methods: 100.00% ( 5/ 5) Lines: 100.00% ( 10/ 10) 33 | San\Crud\Generators\ViewGen 34 | Methods: 83.33% ( 5/ 6) Lines: 94.34% ( 50/ 53) 35 | San\Crud\Utils\FileUtils 36 | Methods: 33.33% ( 1/ 3) Lines: 91.30% ( 21/ 23) 37 | San\Crud\Utils\NameUtils 38 | Methods: 100.00% ( 8/ 8) Lines: 100.00% ( 8/ 8) 39 | San\Crud\Utils\RouteUtils 40 | Methods: 100.00% ( 1/ 1) Lines: 100.00% ( 13/ 13) 41 | San\Crud\Utils\SchemaUtils 42 | Methods: 70.00% ( 7/10) Lines: 68.97% ( 40/ 58) 43 | San\Crud\Utils\TextUtils 44 | Methods: 100.00% ( 2/ 2) Lines: 100.00% ( 7/ 7) 45 | -------------------------------------------------------------------------------- /build/coverage/Formatters/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |35 | | Code Coverage |
36 | ||||||||
39 | | Lines |
40 | Functions and Methods |
41 | Classes and Traits |
42 | ||||||
Total | 47 |
48 |
52 |
51 | |
53 | 100.00% |
54 | 3 / 3 |
55 |
56 |
60 |
59 | |
61 | 100.00% |
62 | 1 / 1 |
63 |
64 |
68 |
67 | |
69 | 100.00% |
70 | 1 / 1 |
71 |
76 |
80 |
79 | |
81 | 100.00% |
82 | 3 / 3 |
83 |
84 |
88 |
87 | |
89 | 100.00% |
90 | 1 / 1 |
91 |
92 |
96 |
95 | |
97 | 100.00% |
98 | 1 / 1 |
99 |
35 | | Code Coverage |
36 | ||||||||
39 | | Lines |
40 | Functions and Methods |
41 | Classes and Traits |
42 | ||||||
Total | 47 |
48 |
52 |
51 | |
53 | 0.00% |
54 | 0 / 274 |
55 |
56 |
60 |
59 | |
61 | 0.00% |
62 | 0 / 16 |
63 |
64 |
68 |
67 | |
69 | 0.00% |
70 | 0 / 2 |
71 |
76 |
80 |
79 | |
81 | 0.00% |
82 | 0 / 274 |
83 |
84 |
88 |
87 | |
89 | 0.00% |
90 | 0 / 16 |
91 |
92 |
96 |
95 | |
97 | 0.00% |
98 | 0 / 2 |
99 |
37 | | Code Coverage |
38 | ||||||||
41 | | Lines |
42 | Functions and Methods |
43 | Classes and Traits |
44 | ||||||
Total | 49 |50 | | n/a |
51 | 0 / 0 |
52 | 53 | | n/a |
54 | 0 / 0 |
55 | 56 | | n/a |
57 | 0 / 0 |
58 |
63 | | n/a |
64 | 0 / 0 |
65 | 66 | | n/a |
67 | 0 / 0 |
68 | 69 | | n/a |
70 | 0 / 0 |
71 |
37 | | Code Coverage |
38 | ||||||||
41 | | Lines |
42 | Functions and Methods |
43 | Classes and Traits |
44 | ||||||
Total | 49 |
50 |
54 |
53 | |
55 | 0.00% |
56 | 0 / 5 |
57 | 58 | | n/a |
59 | 0 / 0 |
60 | 61 | | n/a |
62 | 0 / 0 |
63 |
68 |
72 |
71 | |
73 | 0.00% |
74 | 0 / 5 |
75 | 76 | | n/a |
77 | 0 / 0 |
78 | 79 | | n/a |
80 | 0 / 0 |
81 |
40 | | Code Coverage |
41 | |||||||||
44 | | Lines |
45 | Functions and Methods |
46 | Classes and Traits |
47 | |||||||
Total | 52 |
53 |
57 |
56 | |
58 | 0.00% |
59 | 0 / 1 |
60 | 61 | | n/a |
62 | 0 / 0 |
63 | CRAP | 64 |65 | | n/a |
66 | 0 / 0 |
67 |
1 | {{ $_var_->_col_ ? "Yes" : "No" }} |
40 | | Code Coverage |
41 | |||||||||
44 | | Lines |
45 | Functions and Methods |
46 | Classes and Traits |
47 | |||||||
Total | 52 |
53 |
57 |
56 | |
58 | 0.00% |
59 | 0 / 1 |
60 | 61 | | n/a |
62 | 0 / 0 |
63 | CRAP | 64 |65 | | n/a |
66 | 0 / 0 |
67 |
1 | <textarea class="form-control" readonly>@json($_var_->_col_, JSON_PRETTY_PRINT)</textarea> |
40 | | Code Coverage |
41 | |||||||||
44 | | Lines |
45 | Functions and Methods |
46 | Classes and Traits |
47 | |||||||
Total | 52 |
53 |
57 |
56 | |
58 | 0.00% |
59 | 0 / 1 |
60 | 61 | | n/a |
62 | 0 / 0 |
63 | CRAP | 64 |65 | | n/a |
66 | 0 / 0 |
67 |
1 | {{ $_var_->_col_ ?: "(blank)" }} |
40 | | Code Coverage |
41 | |||||||||
44 | | Lines |
45 | Functions and Methods |
46 | Classes and Traits |
47 | |||||||
Total | 52 |
53 |
57 |
56 | |
58 | 0.00% |
59 | 0 / 1 |
60 | 61 | | n/a |
62 | 0 / 0 |
63 | CRAP | 64 |65 | | n/a |
66 | 0 / 0 |
67 |
1 | {{ Str::limit($_var_->_col_, 50) ?: "(blank)"}} |
40 | | Code Coverage |
41 | |||||||||
44 | | Lines |
45 | Functions and Methods |
46 | Classes and Traits |
47 | |||||||
Total | 52 |
53 |
57 |
56 | |
58 | 0.00% |
59 | 0 / 1 |
60 | 61 | | n/a |
62 | 0 / 0 |
63 | CRAP | 64 |65 | | n/a |
66 | 0 / 0 |
67 |
1 | <input type="_type_" name="_id_" id="_id_" class="form-control" value="{{_val_}}" _required_/> |
40 | | Code Coverage |
41 | |||||||||
44 | | Lines |
45 | Functions and Methods |
46 | Classes and Traits |
47 | |||||||
Total | 52 |
53 |
57 |
56 | |
58 | 0.00% |
59 | 0 / 1 |
60 | 61 | | n/a |
62 | 0 / 0 |
63 | CRAP | 64 |65 | | n/a |
66 | 0 / 0 |
67 |
1 | <textarea name="_id_" id="_id_" class="form-control" _required_>{{_val_}}</textarea> |
40 | | Code Coverage |
41 | |||||||||
44 | | Lines |
45 | Functions and Methods |
46 | Classes and Traits |
47 | |||||||
Total | 52 |
53 |
57 |
56 | |
58 | 0.00% |
59 | 0 / 1 |
60 | 61 | | n/a |
62 | 0 / 0 |
63 | CRAP | 64 |65 | | n/a |
66 | 0 / 0 |
67 |
1 | <textarea name="_id_" id="_id_" class="form-control" _required_>{{_val_}}</textarea> |
37 | | Code Coverage |
38 | ||||||||
41 | | Lines |
42 | Functions and Methods |
43 | Classes and Traits |
44 | ||||||
Total | 49 |
50 |
54 |
53 | |
55 | 0.00% |
56 | 0 / 241 |
57 | 58 | | n/a |
59 | 0 / 0 |
60 | 61 | | n/a |
62 | 0 / 0 |
63 |
68 |
72 |
71 | |
73 | 0.00% |
74 | 0 / 241 |
75 | 76 | | n/a |
77 | 0 / 0 |
78 | 79 | | n/a |
80 | 0 / 0 |
81 |
@{{ $_var_->_readable_ }}
8 |ID: | 5 |@{{$_var_->id}} | 6 |
---|---|
{{ $field->name }}: | 10 |{!! $display($field) !!} | 11 |
Created at | 16 |@{{Carbon\Carbon::parse($_var_->created_at)->format('d/m/Y H:i:s')}} | 17 |
Updated at | 20 |@{{Carbon\Carbon::parse($_var_->updated_at)->format('d/m/Y H:i:s')}} | 21 |
{{ $field->name }} | 6 | @endforeach 7 |Actions | 8 |
---|---|
{!! $display($field) !!} | 15 | @endforeach 16 | 17 |18 | @if(!empty($hasSoftDelete)) 19 | {!! $render('buttons/actions-trash') !!} 20 | @else 21 | {!! $render('buttons/actions') !!} 22 | @endif 23 | | 24 |
@{{ $_var_->_readable_ }}
8 |ID: | 5 |@{{$_var_->id}} | 6 |
---|---|
{{ $field->name }}: | 10 |{!! $display($field) !!} | 11 |
Created at | 16 |@{{Carbon\Carbon::parse($_var_->created_at)->format('d/m/Y H:i:s')}} | 17 |
Updated at | 20 |@{{Carbon\Carbon::parse($_var_->updated_at)->format('d/m/Y H:i:s')}} | 21 |
{{ $field->name }} | 6 | @endforeach 7 |Actions | 8 |
---|---|
{!! $display($field) !!} | 15 | @endforeach 16 | 17 |18 | @if(!empty($hasSoftDelete)) 19 | {!! $render('buttons/actions-trash') !!} 20 | @else 21 | {!! $render('buttons/actions') !!} 22 | @endif 23 | | 24 |
@{{ $_var_->_readable_ }}
8 |ID: | 5 |@{{$_var_->id}} | 6 |
---|---|
{{ $field->name }}: | 10 |{!! $display($field) !!} | 11 |
Created at | 16 |@{{Carbon\Carbon::parse($_var_->created_at)->format('d/m/Y H:i:s')}} | 17 |
Updated at | 20 |@{{Carbon\Carbon::parse($_var_->updated_at)->format('d/m/Y H:i:s')}} | 21 |
15 | {{ $field->name }} 16 | {!! $display($field) !!} 17 | | 18 | @endforeach 19 | 20 |21 | @if(!empty($hasSoftDelete)) 22 | {!! $render('buttons/actions-trash') !!} 23 | @else 24 | {!! $render('buttons/actions') !!} 25 | @endif 26 | | 27 |