diff --git a/app/DataTables/Shop/TagFamiliesDataTable.php b/app/DataTables/Shop/TagFamiliesDataTable.php new file mode 100644 index 00000000..0811bd39 --- /dev/null +++ b/app/DataTables/Shop/TagFamiliesDataTable.php @@ -0,0 +1,30 @@ +exportable(false) + ->printable(false) + ->width(120) + ->addClass('text-center'), + ]; + } + +} diff --git a/app/DataTables/Shop/TagsDataTable.php b/app/DataTables/Shop/TagsDataTable.php new file mode 100644 index 00000000..d486a128 --- /dev/null +++ b/app/DataTables/Shop/TagsDataTable.php @@ -0,0 +1,30 @@ +exportable(false) + ->printable(false) + ->width(120) + ->addClass('text-center'), + ]; + } + +} diff --git a/app/Http/Controllers/Shop/Admin/TagController.php b/app/Http/Controllers/Shop/Admin/TagController.php new file mode 100644 index 00000000..09ab3dac --- /dev/null +++ b/app/Http/Controllers/Shop/Admin/TagController.php @@ -0,0 +1,63 @@ +render('Shop.Admin.Tags.list'); + } + + public function getDatatable(Request $request) + { + return Tags::getTables($request->all()); + } + + public function create() + { + $data = []; + $data['categories'] = Categories::getOptions(); + $data['families'] = TagFamilies::getOptions(); + $data['attribute_families'] = TagAttributeFamilies::getOptions(); + $data['models'] = ['App\Models\Botanic\Specie' => 'Espèces', 'App\Models\Botanic\Variety' => 'Variétés']; + return view('Shop.Admin.Tags.create', $data); + } + + public function store(Request $request) + { + $ret = Tags::store($request->all()); + return redirect()->route('Shop.Admin.Tags.index'); + } + + public function show($id) + { + $data = Tags::get($id); + return view('Shop.Admin.Tags.view', $data); + } + + public function edit($id) + { + $data = Tags::get($id); + $data['categories'] = Tags::getOptions(); + return view('Shop.Admin.Tags.edit', $data); + } + + public function update(Request $request) + { + // + } + + public function destroy($id) + { + return Tags::destroy($id); + } + +} diff --git a/app/Http/Controllers/Shop/Admin/TagFamilyController.php b/app/Http/Controllers/Shop/Admin/TagFamilyController.php new file mode 100644 index 00000000..dc82f93b --- /dev/null +++ b/app/Http/Controllers/Shop/Admin/TagFamilyController.php @@ -0,0 +1,62 @@ +render('Shop.Admin.TagFamilies.list'); + } + + public function getDatatable(Request $request) + { + return TagFamilies::getTables($request->all()); + } + + public function create() + { + $data = []; + $data['categories'] = Categories::getOptions(); + $data['families'] = TagFamilyFamilies::getOptions(); + $data['attribute_families'] = TagFamilyAttributeFamilies::getOptions(); + $data['models'] = ['App\Models\Botanic\Specie' => 'Espèces', 'App\Models\Botanic\Variety' => 'Variétés']; + return view('Shop.Admin.TagFamilies.create', $data); + } + + public function store(Request $request) + { + $ret = TagFamilies::store($request->all()); + return redirect()->route('Shop.Admin.TagFamilies.index'); + } + + public function show($id) + { + $data = TagFamilies::get($id); + return view('Shop.Admin.TagFamilies.view', $data); + } + + public function edit($id) + { + $data = TagFamilies::get($id); + $data['categories'] = TagFamilies::getOptions(); + return view('Shop.Admin.TagFamilies.edit', $data); + } + + public function update(Request $request) + { + // + } + + public function destroy($id) + { + return TagFamilies::destroy($id); + } + +} diff --git a/app/Menu/Shop.php b/app/Menu/Shop.php index a9cd7562..c9c8fab2 100644 --- a/app/Menu/Shop.php +++ b/app/Menu/Shop.php @@ -23,10 +23,16 @@ class Shop ->activeIfRoute(['Shop.Admin.ArticleAttributeFamilies.*'])->order(4); $menu->addTo('shop', 'Attributs', [ 'route' => 'Shop.Admin.ArticleAttributeValues.index', 'permission' => 'backend_access' ]) ->activeIfRoute(['Shop.Admin.ArticleAttributeValues.*'])->order(5); + $menu->addTo('shop', 'Familles de tags', [ 'route' => 'Shop.Admin.TagFamilies.index', 'permission' => 'backend_access' ]) + ->activeIfRoute(['Shop.Admin.TagFamilies.*'])->order(6); + $menu->addTo('shop', 'Tags', [ 'route' => 'Shop.Admin.Tags.index', 'permission' => 'backend_access' ]) + ->activeIfRoute(['Shop.Admin.Tags.*'])->order(7); + + $menu->addTo('shop', 'Réductions', [ 'route' => 'Shop.Admin.ArticleAttributeValues.index', 'permission' => 'backend_access' ]) - ->activeIfRoute(['Shop.Admin.ArticleAttributeValues.*'])->order(6); + ->activeIfRoute(['Shop.Admin.ArticleAttributeValues.*'])->order(8); $menu->addTo('shop', 'Stock', [ 'route' => 'Shop.Admin.ArticleAttributeValues.index', 'permission' => 'backend_access' ]) - ->activeIfRoute(['Shop.Admin.ArticleAttributeValues.*'])->order(7); + ->activeIfRoute(['Shop.Admin.ArticleAttributeValues.*'])->order(9); } diff --git a/app/Models/Shop/TagGroup.php b/app/Models/Shop/Tag.php similarity index 60% rename from app/Models/Shop/TagGroup.php rename to app/Models/Shop/Tag.php index a1b2257b..2c3e9d96 100644 --- a/app/Models/Shop/TagGroup.php +++ b/app/Models/Shop/Tag.php @@ -4,8 +4,9 @@ namespace App\Models\Shop; use Illuminate\Database\Eloquent\Model; -class TagGroup extends Model +class TagFamily extends Model { protected $guarded = ['id']; + protected $table = 'tagging_tag_groups'; } diff --git a/app/Models/Shop/TagFamily.php b/app/Models/Shop/TagFamily.php new file mode 100644 index 00000000..2c3e9d96 --- /dev/null +++ b/app/Models/Shop/TagFamily.php @@ -0,0 +1,12 @@ + __('tag_families.title'), + 'subtitle' => __('tag_families.create.title'), + 'breadcrumb' => [__('tag_families.title'), __('tag_families.create.title')] +]) + +@include('boilerplate::load.fileinput') + +@section('content') + + {{ Form::open(['route' => 'Shop.Admin.ArticleFamilies.store', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }} + +
+
+ + {{ __('tag_families.list.title') }} + + + + @include('components.button-save') + +
+
+ + @include('Shop.Admin.TagFamilies.form') + + +@endsection diff --git a/resources/views/Shop/Admin/TagFamilies/edit.blade.php b/resources/views/Shop/Admin/TagFamilies/edit.blade.php new file mode 100644 index 00000000..bb5f765c --- /dev/null +++ b/resources/views/Shop/Admin/TagFamilies/edit.blade.php @@ -0,0 +1,29 @@ +@extends('layout.index', [ + 'title' => 'Famille d\'articles', + 'subtitle' => 'Edition d\'une famille d\'article', + 'breadcrumb' => ['Articles'] +]) + +@include('boilerplate::load.fileinput') + +@section('content') + + {{ Form::open(['route' => 'Shop.Admin.TagFamilies.update', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }} + +
+
+ + {{ __('tag_families.list.title') }} + + + + @include('components.button-save') + +
+
+ + + @include('Shop.Admin.TagFamilies.form') + + +@endsection diff --git a/resources/views/Shop/Admin/TagFamilies/form.blade.php b/resources/views/Shop/Admin/TagFamilies/form.blade.php new file mode 100644 index 00000000..d6a4b4c7 --- /dev/null +++ b/resources/views/Shop/Admin/TagFamilies/form.blade.php @@ -0,0 +1,29 @@ +@include('boilerplate::load.tinymce') + + +
+
+ {{ Form::label('name', 'Nom') }} + @include('components.input', ['name' => 'name', 'value' => (isset($family['name'])) ? $family['name'] : null, 'required' => true]) + + {{ Form::label('description', 'Description') }} + @include('components.textarea', ['name' => 'description', 'value' => isset($description) ? $description : null, 'class' => 'editor', 'required' => false]) + +
+
+ +
+
+
+ @include('components.button-save') +
+
+
+ +@push('js') + +@endpush \ No newline at end of file diff --git a/resources/views/Shop/Admin/TagFamilies/list.blade.php b/resources/views/Shop/Admin/TagFamilies/list.blade.php new file mode 100644 index 00000000..7ff8426d --- /dev/null +++ b/resources/views/Shop/Admin/TagFamilies/list.blade.php @@ -0,0 +1,21 @@ +@extends('layout.index', [ + 'title' => __('Shop.tag_families.title'), + 'subtitle' => __('Shop.tag_families.list'), + 'breadcrumb' => [__('Shop.tag_families.title')] +]) + +@section('content') + +
+
+ {{ __('Shop.Admin.ArticleFamilies.add') }} +
+
+ + {{$dataTable->table()}} + +@endsection + +@push('scripts') + @include('components.js.datatable', ['route' => '/Shop/Admin/TagFamilies', 'model' => 'TagFamilies']) +@endpush \ No newline at end of file diff --git a/resources/views/Shop/Admin/TagFamilies/show.blade.php b/resources/views/Shop/Admin/TagFamilies/show.blade.php new file mode 100644 index 00000000..1e1cd729 --- /dev/null +++ b/resources/views/Shop/Admin/TagFamilies/show.blade.php @@ -0,0 +1,36 @@ +@extends('layout.index', [ + 'title' => __('products.title'), + 'subtitle' => __('products.title'), + 'breadcrumb' => [__('products.title')] +]) + +@section('content') +
+ +
+ +
+ +
+
+
+

{{ name }}

+

+ {{ $product.section.name }}
+

+
+
+

{{ $prix_total }} €

+

{{ $residence['type_produit']['name'] }}

+
+ +
+ @include('Hestimmo.modules.Lot.partials.carousel') +
+
+
+
+
+
+ +@endsection diff --git a/resources/views/Shop/Admin/Tags/create.blade.php b/resources/views/Shop/Admin/Tags/create.blade.php new file mode 100644 index 00000000..53d5e646 --- /dev/null +++ b/resources/views/Shop/Admin/Tags/create.blade.php @@ -0,0 +1,28 @@ +@extends('layout.index', [ + 'title' => __('article_families.title'), + 'subtitle' => __('article_families.create.title'), + 'breadcrumb' => [__('article_families.title'), __('article_families.create.title')] +]) + +@include('boilerplate::load.fileinput') + +@section('content') + + {{ Form::open(['route' => 'Shop.Admin.ArticleFamilies.store', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }} + +
+
+ + {{ __('article_families.list.title') }} + + + + @include('components.button-save') + +
+
+ + @include('Shop.Admin.ArticleFamilies.form') + + +@endsection diff --git a/resources/views/Shop/Admin/Tags/edit.blade.php b/resources/views/Shop/Admin/Tags/edit.blade.php new file mode 100644 index 00000000..ab132b06 --- /dev/null +++ b/resources/views/Shop/Admin/Tags/edit.blade.php @@ -0,0 +1,29 @@ +@extends('layout.index', [ + 'title' => 'Famille d\'articles', + 'subtitle' => 'Edition d\'une famille d\'article', + 'breadcrumb' => ['Articles'] +]) + +@include('boilerplate::load.fileinput') + +@section('content') + + {{ Form::open(['route' => 'Shop.Admin.ArticleFamilies.update', 'id' => 'article-family-form', 'autocomplete' => 'off', 'files' => true]) }} + +
+
+ + {{ __('article_families.list.title') }} + + + + @include('components.button-save') + +
+
+ + + @include('Shop.Admin.ArticleFamilies.form') + + +@endsection diff --git a/resources/views/Shop/Admin/Tags/form.blade.php b/resources/views/Shop/Admin/Tags/form.blade.php new file mode 100644 index 00000000..d6a4b4c7 --- /dev/null +++ b/resources/views/Shop/Admin/Tags/form.blade.php @@ -0,0 +1,29 @@ +@include('boilerplate::load.tinymce') + + +
+
+ {{ Form::label('name', 'Nom') }} + @include('components.input', ['name' => 'name', 'value' => (isset($family['name'])) ? $family['name'] : null, 'required' => true]) + + {{ Form::label('description', 'Description') }} + @include('components.textarea', ['name' => 'description', 'value' => isset($description) ? $description : null, 'class' => 'editor', 'required' => false]) + +
+
+ +
+
+
+ @include('components.button-save') +
+
+
+ +@push('js') + +@endpush \ No newline at end of file diff --git a/resources/views/Shop/Admin/Tags/list.blade.php b/resources/views/Shop/Admin/Tags/list.blade.php new file mode 100644 index 00000000..4fbe203a --- /dev/null +++ b/resources/views/Shop/Admin/Tags/list.blade.php @@ -0,0 +1,21 @@ +@extends('layout.index', [ + 'title' => __('Shop.tags.title'), + 'subtitle' => __('Shop.tags.list'), + 'breadcrumb' => [__('Shop.tags.title')] +]) + +@section('content') + +
+
+ {{ __('Shop.Admin.Tags.add') }} +
+
+ + {{$dataTable->table()}} + +@endsection + +@push('scripts') + @include('components.js.datatable', ['route' => '/Shop/Admin/Tags', 'model' => 'Tags']) +@endpush \ No newline at end of file diff --git a/resources/views/Shop/Admin/Tags/show.blade.php b/resources/views/Shop/Admin/Tags/show.blade.php new file mode 100644 index 00000000..1e1cd729 --- /dev/null +++ b/resources/views/Shop/Admin/Tags/show.blade.php @@ -0,0 +1,36 @@ +@extends('layout.index', [ + 'title' => __('products.title'), + 'subtitle' => __('products.title'), + 'breadcrumb' => [__('products.title')] +]) + +@section('content') +
+ +
+ +
+ +
+
+
+

{{ name }}

+

+ {{ $product.section.name }}
+

+
+
+

{{ $prix_total }} €

+

{{ $residence['type_produit']['name'] }}

+
+ +
+ @include('Hestimmo.modules.Lot.partials.carousel') +
+
+
+
+
+
+ +@endsection diff --git a/routes/Shop/Admin/TagFamilies.php b/routes/Shop/Admin/TagFamilies.php new file mode 100644 index 00000000..c41b87b9 --- /dev/null +++ b/routes/Shop/Admin/TagFamilies.php @@ -0,0 +1,12 @@ +name('TagFamilies.')->group(function () { + Route::get('', 'TagFamilyController@index')->name('index'); + Route::get('create', 'TagFamilyController@create')->name('create'); + Route::delete('destroy', 'TagFamilyController@destroy')->name('destroy'); + Route::post('update', 'TagFamilyController@update')->name('update'); + Route::post('store', 'TagFamilyController@store')->name('store'); + Route::get('edit/{id}', 'TagFamilyController@edit')->name('edit'); + +}); + diff --git a/routes/Shop/Admin/Tags.php b/routes/Shop/Admin/Tags.php new file mode 100644 index 00000000..d6a15db0 --- /dev/null +++ b/routes/Shop/Admin/Tags.php @@ -0,0 +1,12 @@ +name('Tags.')->group(function () { + Route::get('', 'TagController@index')->name('index'); + Route::get('create', 'TagController@create')->name('create'); + Route::delete('destroy', 'TagController@destroy')->name('destroy'); + Route::post('update', 'TagController@update')->name('update'); + Route::post('store', 'TagController@store')->name('store'); + Route::get('edit/{id}', 'TagController@edit')->name('edit'); + +}); + diff --git a/routes/Shop/Admin/route.php b/routes/Shop/Admin/route.php index 1b11f295..9812e2e2 100644 --- a/routes/Shop/Admin/route.php +++ b/routes/Shop/Admin/route.php @@ -16,5 +16,7 @@ Route::middleware('auth')->prefix('Admin')->namespace('Admin')->name('Admin.')-> include( __DIR__ . '/Invoices.php'); include( __DIR__ . '/OrderPayments.php'); include( __DIR__ . '/Orders.php'); + include( __DIR__ . '/Tags.php'); + include( __DIR__ . '/TagFamilies.php'); });