From b791cc75e343e7e1865b8cd9eb42e498f32dd5a0 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 14 Mar 2019 18:13:28 +0100 Subject: [PATCH] wip #2628 @5 --- src/CubistBackpackServiceProvider.php | 44 ++++--------- .../Controllers/TemplateCrudController.php | 66 ------------------- src/app/Http/Requests/TemplateRequest.php | 33 ---------- src/app/Models/Field.php | 14 ---- src/app/Models/Template.php | 19 ------ src/app/Template/Abstract.php | 12 ++++ ...019_03_13_162103_create_template_table.php | 44 ------------- .../2019_03_13_180800_create_fields_table.php | 34 ---------- .../views/fields/relation_table.blade.php | 56 ++++++++++++++++ src/routes/cubist/backpack/template.php | 29 ++++---- 10 files changed, 91 insertions(+), 260 deletions(-) delete mode 100644 src/app/Http/Controllers/TemplateCrudController.php delete mode 100644 src/app/Http/Requests/TemplateRequest.php delete mode 100644 src/app/Models/Field.php delete mode 100644 src/app/Models/Template.php create mode 100644 src/app/Template/Abstract.php delete mode 100644 src/database/migrations/2019_03_13_162103_create_template_table.php delete mode 100644 src/database/migrations/2019_03_13_180800_create_fields_table.php create mode 100644 src/resources/views/fields/relation_table.blade.php diff --git a/src/CubistBackpackServiceProvider.php b/src/CubistBackpackServiceProvider.php index d56ac34..0dcd42c 100644 --- a/src/CubistBackpackServiceProvider.php +++ b/src/CubistBackpackServiceProvider.php @@ -18,12 +18,6 @@ class CubistBackpackServiceProvider extends ServiceProvider */ protected $defer = false; - /** - * Where the route file lives, both inside the package and in the app (if overwritten). - * - * @var string - */ - public $routeFilePath = '/routes/cubist/backpack/template.php'; /** * Perform post-registration booting of services. @@ -33,7 +27,7 @@ class CubistBackpackServiceProvider extends ServiceProvider public function boot() { // define the routes for the application - $this->setupRoutes($this->app->router); + //$this->setupRoutes($this->app->router); // // only use the Settings package if the Settings table is present in the database // if (!\App::runningInConsole() && count(Schema::getColumnListing('settings'))) { @@ -48,26 +42,10 @@ class CubistBackpackServiceProvider extends ServiceProvider // } $this->loadTranslationsFrom(__DIR__ . '/resources/lang', 'cubist_back'); $this->loadMigrationsFrom(__DIR__ . '/database/migrations'); - } - - /** - * Define the routes for the application. - * - * @param \Illuminate\Routing\Router $router - * - * @return void - */ - public function setupRoutes(Router $router) - { - // by default, use the routes file provided in vendor - $routeFilePathInUse = __DIR__ . $this->routeFilePath; - - // but if there's a file with the same name in routes/backpack, use that one - if (file_exists(base_path() . $this->routeFilePath)) { - $routeFilePathInUse = base_path() . $this->routeFilePath; + foreach (glob(__DIR__ . '/routes/cubist/backpack/*.php') as $filename) { + $this->loadRoutesFrom($filename); } - - $this->loadRoutesFrom($routeFilePathInUse); + $this->loadViewsFrom(__FILE__ . '/resources/views','crud'); } /** @@ -77,12 +55,12 @@ class CubistBackpackServiceProvider extends ServiceProvider */ public function register() { - $this->app->bind('templates', function ($app) { - return new Template($app); - }); - - // register their aliases - $loader = \Illuminate\Foundation\AliasLoader::getInstance(); - $loader->alias('Template', \Backpack\Settings\app\Models\Template::class); +// $this->app->bind('templates', function ($app) { +// return new Template($app); +// }); +// +// // register their aliases +// $loader = \Illuminate\Foundation\AliasLoader::getInstance(); +// $loader->alias('Template', \Backpack\Settings\app\Models\Template::class); } } diff --git a/src/app/Http/Controllers/TemplateCrudController.php b/src/app/Http/Controllers/TemplateCrudController.php deleted file mode 100644 index 23c9f33..0000000 --- a/src/app/Http/Controllers/TemplateCrudController.php +++ /dev/null @@ -1,66 +0,0 @@ -crud->setModel("Cubist\Backpack\app\Models\Template"); - $this->crud->setEntityNameStrings(trans('cubist_back::templates.template_singular'), trans('cubist_back::templates.template_plural')); - $this->crud->setRoute(backpack_url('template')); - $this->crud->setColumns([ - [ - 'name' => 'name', - 'label' => trans('cubist_back::templates.name'), - ], - [ - 'name' => 'description', - 'label' => trans('cubist_back::templates.description'), - ], - ]); - $this->crud->addField([ - 'name' => 'name', - 'label' => trans('cubist_back::templates.name'), - 'type' => 'text', - ]); - $this->crud->addField([ - 'name' => 'description', - 'label' => trans('cubist_back::templates.description'), - 'type' => 'textarea', - ]); - $this->crud->addField([ - 'name' => 'parent', - 'label' => trans('cubist_back::templates.parent'), - 'type' => 'select', - 'entity' => 'parent', - 'attribute' => 'name', - 'model' => 'Cubist\Backpack\app\Models\Template', - ]); - $this->crud->addField([ - 'name' => 'fields', - 'label' => trans('cubist_back::templates.field_plural'), - 'type' => 'textarea' - ]); - - $this->crud->enableAjaxTable(); - } - - public function store(StoreRequest $request) - { - return parent::storeCrud(); - } - - - public function update(UpdateRequest $request) - { - return parent::updateCrud(); - } -} diff --git a/src/app/Http/Requests/TemplateRequest.php b/src/app/Http/Requests/TemplateRequest.php deleted file mode 100644 index 0762303..0000000 --- a/src/app/Http/Requests/TemplateRequest.php +++ /dev/null @@ -1,33 +0,0 @@ -check(); - } - - /** - * Get the validation rules that apply to the request. - * - * @return array - */ - public function rules() - { - return [ - // 'key' => 'required|min:3|max:255', - // 'name' => 'required|min:3|max:255', - // 'field' => 'required' - ]; - } -} diff --git a/src/app/Models/Field.php b/src/app/Models/Field.php deleted file mode 100644 index 747292a..0000000 --- a/src/app/Models/Field.php +++ /dev/null @@ -1,14 +0,0 @@ -belongsTo('Cubist\Backpack\app\Models\Template', 'parent'); - } -} diff --git a/src/app/Template/Abstract.php b/src/app/Template/Abstract.php new file mode 100644 index 0000000..a5f3712 --- /dev/null +++ b/src/app/Template/Abstract.php @@ -0,0 +1,12 @@ +increments('id'); - $table->string('name'); - $table->string('description')->nullable(); - $table->string('parent')->nullable(); - $table->json('fields'); - $table->timestamps(); - }); - - Schema::create('cubist_subforms', function (Blueprint $table) { - $table->increments('id'); - $table->string('name'); - $table->string('description')->nullable(); - $table->string('parent')->nullable(); - $table->json('fields'); - $table->timestamps(); - }); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::drop('cubist_templates'); - Schema::drop('cubist_subforms'); - } -} diff --git a/src/database/migrations/2019_03_13_180800_create_fields_table.php b/src/database/migrations/2019_03_13_180800_create_fields_table.php deleted file mode 100644 index 9fcc33c..0000000 --- a/src/database/migrations/2019_03_13_180800_create_fields_table.php +++ /dev/null @@ -1,34 +0,0 @@ -increments('id'); - $table->string('name'); - $table->string('type'); - $table->json('options'); - $table->timestamps(); - }); - - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - Schema::drop('cubist_fields'); - } -} diff --git a/src/resources/views/fields/relation_table.blade.php b/src/resources/views/fields/relation_table.blade.php new file mode 100644 index 0000000..69d61ff --- /dev/null +++ b/src/resources/views/fields/relation_table.blade.php @@ -0,0 +1,56 @@ +route = $field['route']; +?> + +
+

{!! $field['label'] !!}

+ +
+ + + + + @foreach( $field['columns'] as $column ) + + @endforeach + + + + + @foreach( $field['value'] as $item) + + @foreach( $field['columns'] as $key => $column) + + @endforeach + + + @endforeach + +
+ {{ __($column['label']) }} + {{ trans('backpack::crud.actions') }}
+ {!! $item->{$column['name']} !!} + + @include('crud::buttons.update', ['entry' => $item]) + @include('crud::buttons.delete', ['entry' => $item]) +
+ + @php + // Add relation entity + $reflection = new ReflectionClass(get_class($crud->getModel())); + $classname = strtolower($reflection->getShortName()); + + $url = "{$crud->route}/create?$classname={$crud->entry->id}"; + @endphp + + + +
+
diff --git a/src/routes/cubist/backpack/template.php b/src/routes/cubist/backpack/template.php index f167c4f..c8ce76b 100644 --- a/src/routes/cubist/backpack/template.php +++ b/src/routes/cubist/backpack/template.php @@ -1,19 +1,14 @@ 'Cubist\Backpack\app\Http\Controllers', - 'prefix' => config('backpack.base.route_prefix', 'admin'), - 'middleware' => ['web', backpack_middleware()], -], function () { - CRUD::resource('template', 'TemplateCrudController'); -}); +// +//Route::group([ +// 'namespace' => 'Cubist\Backpack\app\Http\Controllers', +// 'prefix' => config('backpack.base.route_prefix', 'admin'), +// 'middleware' => ['web', backpack_middleware()], +//], function () { +// CRUD::resource('template', 'TemplateCrudController'); +// CRUD::resource('field', 'FieldCrudController')->with(function () { +// Route::any('field/ajax/{mode?}', 'FieldCrudController@handleAjaxRequest'); +// }); +// +//}); -- 2.39.5