From 8cf5de7f9f80abaabcc5b60195df665dd79f1d3b Mon Sep 17 00:00:00 2001 From: Ludovic CANDELLIER Date: Tue, 19 May 2020 00:13:55 +0200 Subject: [PATCH] Ajout du titre du produit sur l'article --- Gruntfile.js | 6 ++ app/DataTables/Shop/TagFamiliesDataTable.php | 30 --------- app/DataTables/Shop/TagGroupsDataTable.php | 27 ++++++++ app/DataTables/Shop/TagsDataTable.php | 6 +- .../Controllers/Shop/Admin/TagController.php | 9 +-- .../Shop/Admin/TagFamilyController.php | 62 ------------------- .../Shop/Admin/TagGroupController.php | 56 +++++++++++++++++ app/Menu/Shop.php | 4 +- app/Models/Shop/Tag.php | 10 ++- .../Shop/{TagFamily.php => TagGroup.php} | 7 ++- app/Repositories/Shop/TagGroups.php | 7 ++- app/Repositories/Shop/Tags.php | 54 ++++++++++++++++ composer.json | 1 + package.json | 5 ++ .../views/Shop/Admin/Articles/edit.blade.php | 2 +- .../views/Shop/Admin/Articles/form.blade.php | 33 +++++++++- .../partials/characteristics.blade.php | 37 ++++++----- .../Shop/Admin/TagFamilies/create.blade.php | 28 --------- .../Shop/Admin/TagFamilies/edit.blade.php | 29 --------- .../Shop/Admin/TagFamilies/form.blade.php | 29 --------- .../Shop/Admin/TagGroups/create.blade.php | 24 +++++++ .../views/Shop/Admin/TagGroups/edit.blade.php | 23 +++++++ .../views/Shop/Admin/TagGroups/form.blade.php | 9 +++ .../{TagFamilies => TagGroups}/list.blade.php | 4 +- .../{TagFamilies => TagGroups}/show.blade.php | 0 .../views/Shop/Admin/Tags/form.blade.php | 9 +-- routes/Shop/Admin/TagFamilies.php | 12 ---- routes/Shop/Admin/TagGroups.php | 12 ++++ routes/Shop/Admin/route.php | 2 +- 29 files changed, 304 insertions(+), 233 deletions(-) delete mode 100644 app/DataTables/Shop/TagFamiliesDataTable.php create mode 100644 app/DataTables/Shop/TagGroupsDataTable.php delete mode 100644 app/Http/Controllers/Shop/Admin/TagFamilyController.php create mode 100644 app/Http/Controllers/Shop/Admin/TagGroupController.php rename app/Models/Shop/{TagFamily.php => TagGroup.php} (56%) create mode 100644 app/Repositories/Shop/Tags.php delete mode 100644 resources/views/Shop/Admin/TagFamilies/create.blade.php delete mode 100644 resources/views/Shop/Admin/TagFamilies/edit.blade.php delete mode 100644 resources/views/Shop/Admin/TagFamilies/form.blade.php create mode 100644 resources/views/Shop/Admin/TagGroups/create.blade.php create mode 100644 resources/views/Shop/Admin/TagGroups/edit.blade.php create mode 100644 resources/views/Shop/Admin/TagGroups/form.blade.php rename resources/views/Shop/Admin/{TagFamilies => TagGroups}/list.blade.php (65%) rename resources/views/Shop/Admin/{TagFamilies => TagGroups}/show.blade.php (100%) delete mode 100644 routes/Shop/Admin/TagFamilies.php create mode 100644 routes/Shop/Admin/TagGroups.php diff --git a/Gruntfile.js b/Gruntfile.js index a5f4c0ef..d350b430 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -17,6 +17,7 @@ var jsMain = [ // 'node_modules/jQuery-QueryBuilder/dist/js/jquery-builder.standalone.min.js', /* 'node_modules/jQuery-QueryBuilder/dist/i18n/query-builder.fr.js', */ /* 'node_modules/isotope-layout/dist/isotope.pkgd.min.js', */ + 'node_modules/bootstrap4-toggle/js/bootstrap4-toggle.min.js', 'node_modules/wew.js/dist/wew.min.js', 'node_modules/jquery.are-you-sure/jquery.are-you-sure.js', /* 'node_modules/letteringjs/jquery.lettering.js', */ @@ -39,6 +40,7 @@ var cssMain = [ // 'node_modules/bootstrap-slider/dist/css/bootstrap-slider.min.css', // 'node_modules/jQuery-QueryBuilder/dist/css/query-builder.default.min.css', 'node_modules/animate.css/animate.min.css', + 'node_modules/bootstrap4-toggle/css/bootstrap4-toggle.min.css', 'node_modules/jqtree/jqtree.css', // 'build/css/modal-option.css', 'build/css/shadow.css', @@ -60,6 +62,7 @@ var jsDataTables = [ 'node_modules/datatables.net-buttons/js/buttons.print.min.js', 'node_modules/datatables.net-buttons/js/buttons.colVis.min.js', 'node_modules/datatables.net-colreorder/js/dataTables.colReorder.min.js', + 'node_modules/datatables.net-colreorder-bs4/js/dataTables.colReorder-bs4.min.js', 'node_modules/datatables.net-fixedheader/js/dataTables.fixedHeader.min.js', 'node_modules/datatables.net-fixedheader-bs4/js/fixedHeader.bootstrap4.min.js', 'node_modules/datatables.net-fixedcolumns/js/dataTables.fixedColumns.min.js', @@ -67,6 +70,8 @@ var jsDataTables = [ 'node_modules/datatables.net-keytable/js/dataTables.keyTable.min.js', 'node_modules/datatables.net-keytable-bs4/js/keyTable.bootstrap4.min.js', 'node_modules/datatables.net-responsive/js/dataTables.responsive.min.js', + 'node_modules/datatables.net-rowreorder/js/dataTables.rowReorder.min.js', + 'node_modules/datatables.net-rowreorder-bs4/js/dataTables.rowReorder.botstrap4.min.js', 'node_modules/datatables.net-scroller/js/dataTables.scroller.min.js', 'node_modules/datatables.net-scroller-bs4/js/scroller.bootstrap4.min.js', 'node_modules/datatables.net-select/js/dataTables.select.min.js', @@ -85,6 +90,7 @@ var cssDataTables = [ 'node_modules/datatables.net-fixedheader-bs4/css/fixedHeader.bootstrap4.min.css', 'node_modules/datatables.net-fixedcolumns-bs4/css/fixedColumns.bootstrap4.min.css', 'node_modules/datatables.net-keytable-bs4/css/keyTable.bootstrap4.min.css', + 'node_modules/datatables.net-rowreorder-bs4/css/rowReorder.bootstrap4.min.css', 'node_modules/datatables.net-scroller-bs4/css/scroller.bootstrap4.min.css', 'node_modules/datatables.net-select-bs4/css/select.bootstrap4.min.css', 'node_modules/yadcf/jquery.dataTables.yadcf.css', diff --git a/app/DataTables/Shop/TagFamiliesDataTable.php b/app/DataTables/Shop/TagFamiliesDataTable.php deleted file mode 100644 index 0811bd39..00000000 --- a/app/DataTables/Shop/TagFamiliesDataTable.php +++ /dev/null @@ -1,30 +0,0 @@ -exportable(false) - ->printable(false) - ->width(120) - ->addClass('text-center'), - ]; - } - -} diff --git a/app/DataTables/Shop/TagGroupsDataTable.php b/app/DataTables/Shop/TagGroupsDataTable.php new file mode 100644 index 00000000..c9459c93 --- /dev/null +++ b/app/DataTables/Shop/TagGroupsDataTable.php @@ -0,0 +1,27 @@ +exportable(false) - ->printable(false) - ->width(120) - ->addClass('text-center'), + self::makeColumnButtons(), ]; } diff --git a/app/Http/Controllers/Shop/Admin/TagController.php b/app/Http/Controllers/Shop/Admin/TagController.php index 09ab3dac..48ed77b1 100644 --- a/app/Http/Controllers/Shop/Admin/TagController.php +++ b/app/Http/Controllers/Shop/Admin/TagController.php @@ -6,7 +6,7 @@ use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Repositories\Shop\Tags; -use App\Repositories\Shop\TagFamilies; +use App\Repositories\Shop\TagGroups; use App\DataTables\Shop\TagsDataTable; class TagController extends Controller @@ -24,10 +24,7 @@ class TagController extends Controller 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']; + $data['groups'] = TagGroups::getOptions(); return view('Shop.Admin.Tags.create', $data); } @@ -46,7 +43,7 @@ class TagController extends Controller public function edit($id) { $data = Tags::get($id); - $data['categories'] = Tags::getOptions(); + $data['groups'] = TagGroups::getOptions(); return view('Shop.Admin.Tags.edit', $data); } diff --git a/app/Http/Controllers/Shop/Admin/TagFamilyController.php b/app/Http/Controllers/Shop/Admin/TagFamilyController.php deleted file mode 100644 index dc82f93b..00000000 --- a/app/Http/Controllers/Shop/Admin/TagFamilyController.php +++ /dev/null @@ -1,62 +0,0 @@ -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/Http/Controllers/Shop/Admin/TagGroupController.php b/app/Http/Controllers/Shop/Admin/TagGroupController.php new file mode 100644 index 00000000..7e4412c7 --- /dev/null +++ b/app/Http/Controllers/Shop/Admin/TagGroupController.php @@ -0,0 +1,56 @@ +render('Shop.Admin.TagGroups.list'); + } + + public function getDatatable(Request $request) + { + return TagGroups::getTables($request->all()); + } + + public function create($data) + { + return view('Shop.Admin.TagGroups.create', $data); + } + + public function store(Request $request) + { + $ret = TagGroups::store($request->all()); + return redirect()->route('Shop.Admin.TagGroups.index'); + } + + public function show($id) + { + $data = TagGroups::get($id); + return view('Shop.Admin.TagGroups.view', $data); + } + + public function edit($id) + { + $data = TagGroups::get($id); + return view('Shop.Admin.TagGroups.edit', $data); + } + + public function update(Request $request) + { + // + } + + public function destroy($id) + { + return TagGroups::destroy($id); + } + +} diff --git a/app/Menu/Shop.php b/app/Menu/Shop.php index c9c8fab2..8dd16c83 100644 --- a/app/Menu/Shop.php +++ b/app/Menu/Shop.php @@ -23,8 +23,8 @@ 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', 'Familles de tags', [ 'route' => 'Shop.Admin.TagGroups.index', 'permission' => 'backend_access' ]) + ->activeIfRoute(['Shop.Admin.TagGroups.*'])->order(6); $menu->addTo('shop', 'Tags', [ 'route' => 'Shop.Admin.Tags.index', 'permission' => 'backend_access' ]) ->activeIfRoute(['Shop.Admin.Tags.*'])->order(7); diff --git a/app/Models/Shop/Tag.php b/app/Models/Shop/Tag.php index 2c3e9d96..633cb3b0 100644 --- a/app/Models/Shop/Tag.php +++ b/app/Models/Shop/Tag.php @@ -4,9 +4,15 @@ namespace App\Models\Shop; use Illuminate\Database\Eloquent\Model; -class TagFamily extends Model +class Tag extends Model { protected $guarded = ['id']; - protected $table = 'tagging_tag_groups'; + protected $table = 'tagging_tags'; + + + public function group() + { + return $this->hasOne('App\Models\Shop\TagGroup'); + } } diff --git a/app/Models/Shop/TagFamily.php b/app/Models/Shop/TagGroup.php similarity index 56% rename from app/Models/Shop/TagFamily.php rename to app/Models/Shop/TagGroup.php index 2c3e9d96..3322b14d 100644 --- a/app/Models/Shop/TagFamily.php +++ b/app/Models/Shop/TagGroup.php @@ -4,9 +4,14 @@ namespace App\Models\Shop; use Illuminate\Database\Eloquent\Model; -class TagFamily extends Model +class TagGroup extends Model { protected $guarded = ['id']; protected $table = 'tagging_tag_groups'; + public function tags() + { + return $this->hasMany('App\Models\Shop\Tag'); + } + } diff --git a/app/Repositories/Shop/TagGroups.php b/app/Repositories/Shop/TagGroups.php index 55139776..0280a69c 100644 --- a/app/Repositories/Shop/TagGroups.php +++ b/app/Repositories/Shop/TagGroups.php @@ -15,10 +15,15 @@ class TagGroups public static function getDatatable() { - $model = TagGroup::orderBy('name'); + $model = TagGroup::query(); return Datatables::of($model)->make(true); } + public static function getOptions() + { + return TagGroup::get()->SortBy('name')->pluck('name','id')->toArray(); + } + public static function getAll() { return TagGroup::orderBy('name','asc')->get(); diff --git a/app/Repositories/Shop/Tags.php b/app/Repositories/Shop/Tags.php new file mode 100644 index 00000000..55139776 --- /dev/null +++ b/app/Repositories/Shop/Tags.php @@ -0,0 +1,54 @@ +make(true); + } + + public static function getAll() + { + return TagGroup::orderBy('name','asc')->get(); + } + + public static function get($id) + { + return TagGroup::find($id); + } + + public static function store($data) + { + $id = isset($data['id']) ? $data['id'] : false; + $item = $id ? self::update($data) : self::create($data); + return $item->id; + } + + public static function create($data) + { + return TagGroup::create($data); + } + + public static function update($data) + { + return TagGroup::find($id)->update($data); + } + + public static function destroy($id) + { + return TagGroup::destroy($id); + } + +} diff --git a/composer.json b/composer.json index 2d6e5762..a55186d5 100644 --- a/composer.json +++ b/composer.json @@ -25,6 +25,7 @@ "eduardokum/laravel-mail-auto-embed": "^1.0", "erjanmx/laravel-migrate-check": "^1.3", "exyplis/eloquent-builder-macros": "^1.5", + "fico7489/laravel-eloquent-join": "^4.1", "fideloper/proxy": "^4.0", "geo6/geocoder-php-addok-provider": "^1.1", "gzero/eloquent-tree": "^3.1", diff --git a/package.json b/package.json index 28ff62ce..505b7990 100644 --- a/package.json +++ b/package.json @@ -64,8 +64,13 @@ "datatables.net-keytable-bs4": "^2.5.0", "datatables.net-plugins": "^1.10.19", "datatables.net-responsive": "^2.2.3", + "datatables.net-rowgroup": "^1.1.2", + "datatables.net-rowgroup-bs4": "^1.1.2", + "datatables.net-rowreorder": "^1.2.7", + "datatables.net-rowreorder-bs4": "^1.2.7", "datatables.net-scroller": "^2.0.0", "datatables.net-scroller-bs4": "^2.0.0", + "datatables.net-searchpanes": "^1.1.0", "datatables.net-select": "^1.3.0", "datatables.net-select-bs4": "^1.3.0", "daterangepicker": "^3.0.5", diff --git a/resources/views/Shop/Admin/Articles/edit.blade.php b/resources/views/Shop/Admin/Articles/edit.blade.php index ed81ae1d..d0ecc2f2 100644 --- a/resources/views/Shop/Admin/Articles/edit.blade.php +++ b/resources/views/Shop/Admin/Articles/edit.blade.php @@ -22,7 +22,7 @@ - + @include('Shop.Admin.Articles.form') diff --git a/resources/views/Shop/Admin/Articles/form.blade.php b/resources/views/Shop/Admin/Articles/form.blade.php index 41372b3c..74659ffe 100644 --- a/resources/views/Shop/Admin/Articles/form.blade.php +++ b/resources/views/Shop/Admin/Articles/form.blade.php @@ -6,7 +6,8 @@
-