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]) }}
+
+
+
+ @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]) }}
+
+
+
+
+ @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')
+
+
+
+ {{$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')
+
+
+@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]) }}
+
+
+
+ @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]) }}
+
+
+
+
+ @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')
+
+
+
+ {{$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')
+
+
+@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');
});