FEATURE: move categories into own repository

This commit is contained in:
Michal Kváček
2017-08-22 14:10:50 +02:00
commit 16471b010f
27 changed files with 679 additions and 0 deletions
+22
View File
@@ -0,0 +1,22 @@
<?php namespace Modules\Categories\Http\Controllers;
use App\CMS\Enumerations\ModuleNamesWithIds;
use App\Http\Controllers\Admin\Controller;
use Modules\Categories\Entities\Category;
class CategoriesOverview extends Controller
{
public function getOverview()
{
// get list of all categories
$categories = Category::getTree()
->toArray();
$modules = ModuleNamesWithIds::getWithTranslations();
return view('categories::admin.overview', [
'categories' => $categories,
'modules' => $modules
]);
}
}
+60
View File
@@ -0,0 +1,60 @@
<?php namespace Modules\Categories\Http\Controllers;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\Request;
use App\Models\Module;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Str;
use Modules\Categories\Entities\Category;
class CreateNewCategory extends Controller
{
/**
* Display form for new category
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function getNew()
{
// 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' => new Category(),
'categories' => $categories,
'modules' => $modules
]);
}
/**
* Create new category
*
* @param Request $request
*
* @return \Illuminate\Http\RedirectResponse
*/
public function postNew(Request $request)
{
$category = new Category();
$category->user_id = Auth::user()->id;
$category->module_id = $request->moduleId;
$category->name = $request->name;
$category->url = Str::slug($request->url);
$category->description = $request->description;
if ((int)$request->parentCategory) {
$category->parent_id = $request->parentCategory;
}
$category->save();
return redirect()
->route('categories.overview')
->with('success', trans('categories::categories.saveSuccessfull'));
}
}
+77
View File
@@ -0,0 +1,77 @@
<?php namespace Modules\Categories\Http\Controllers;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\Request;
use App\Models\Module;
use Illuminate\Support\Str;
use Modules\Categories\Entities\Category;
class EditCategory extends Controller
{
/**
* Display form for editing category
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function getEdit($id)
{
$category = Category::findOrFail($id);
// 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.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($category->position);
}
}
return redirect()
->route('categories.edit', ['id' => $id])
->with('success', trans('categories::categories.saveSuccessfull'));
}
public function delete($id) {
$category = Category::findOrFail($id);
$category->delete();
return redirect()
->route('categories.overview')
->with('success', trans('categories::categories.deleteSuccessfull'));
}
}
View File
View File
+23
View File
@@ -0,0 +1,23 @@
<?php
Route::group([
'prefix' => LaravelLocalization::setLocale() . '/admin/categories',
'middleware' => ['admin'],
'namespace' => 'Modules\Categories\Http\Controllers'
], function () {
Route::get('/', 'CategoriesOverview@getOverview')
->name('categories.overview');
Route::get('/new', 'CreateNewCategory@getNew')
->name('categories.new');
Route::post('/new', 'CreateNewCategory@postNew')
->name('categories.postNew');
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');
});