diff --git a/modules/Categories/Entities/Category.php b/modules/Categories/Entities/Category.php index f48fefde..7f36e6cf 100644 --- a/modules/Categories/Entities/Category.php +++ b/modules/Categories/Entities/Category.php @@ -1,6 +1,7 @@ belongsTo(Module::class); + } } diff --git a/modules/Categories/Http/Controllers/CategoriesOverview.php b/modules/Categories/Http/Controllers/CategoriesOverview.php new file mode 100644 index 00000000..733c9c4e --- /dev/null +++ b/modules/Categories/Http/Controllers/CategoriesOverview.php @@ -0,0 +1,23 @@ +toArray(); + + $modules = ModuleNamesWithIds::getWithTranslations(); + + return view('categories::admin.overview', [ + 'categories' => $categories, + 'modules' => $modules + ]); + } +} \ No newline at end of file diff --git a/modules/Categories/Http/Controllers/CreateNewCategory.php b/modules/Categories/Http/Controllers/CreateNewCategory.php index 0f72c29e..129f0ec9 100644 --- a/modules/Categories/Http/Controllers/CreateNewCategory.php +++ b/modules/Categories/Http/Controllers/CreateNewCategory.php @@ -16,15 +16,17 @@ class CreateNewCategory extends Controller */ public function getNew() { - $category = new Category(); - $categories = Category::getTree()->toArray(); + // get list of all categories + $categories = Category::getTree() + ->toArray(); + // get list of modules which supports categories $modules = Module::where('enabled', true) + ->where('support_categories', true) ->get(); - return view('categories::admin.new', [ - 'category' => $category, + 'category' => new Category(), 'categories' => $categories, 'modules' => $modules ]); diff --git a/modules/Categories/Http/Controllers/EditCategory.php b/modules/Categories/Http/Controllers/EditCategory.php new file mode 100644 index 00000000..0116354c --- /dev/null +++ b/modules/Categories/Http/Controllers/EditCategory.php @@ -0,0 +1,70 @@ +toArray(); + + // get list of modules which supports categories + $modules = Module::where('enabled', true) + ->where('support_categories', true) + ->get(); + + return view('categories::admin.edit', [ + 'category' => $category, + 'categories' => $categories, + 'modules' => $modules + ]); + } + + /** + * Create new category + * + * @param Request $request + * @param $id + * + * @return \Illuminate\Http\RedirectResponse + */ + public function postEdit(Request $request, $id) + { + $category = Category::findOrFail($id); + + $category->name = $request->name; + $category->url = Str::slug($request->url); + $category->description = $request->description; + + $category->save(); + + + if ($category->parent_id != $request->parentCategory) { + $category->parent_id = empty($request->parentCategory) ? null : $request->parentCategory; + $category->save(); + + if (empty($request->parentCategory)) { + $category->makeRoot(1); + } + } + + + return redirect() + ->route('categories.edit', ['id' => $id]) + ->with('success', trans('categories::categories.saveSuccessfull')); + } +} \ No newline at end of file diff --git a/modules/Categories/Http/routes.php b/modules/Categories/Http/routes.php index 6a7845df..825dd9f8 100644 --- a/modules/Categories/Http/routes.php +++ b/modules/Categories/Http/routes.php @@ -12,4 +12,6 @@ Route::group([ Route::get('/edit/{id}', 'EditCategory@getEdit')->name('categories.edit'); Route::post('/edit/{id}', 'EditCategory@postEdit')->name('categories.postEdit'); + + Route::get('/delete/{id}', 'EditCategory@delete')->name('categories.delete'); }); \ No newline at end of file diff --git a/modules/Categories/Resources/views/admin/form.blade.php b/modules/Categories/Resources/views/admin/form.blade.php index 3f38b6dc..9a5a6d44 100644 --- a/modules/Categories/Resources/views/admin/form.blade.php +++ b/modules/Categories/Resources/views/admin/form.blade.php @@ -20,16 +20,17 @@ - - + @if(!$category->id) + + @endif