refs #2662 - ( #39afx2h )
This commit is contained in:
parent
815faf82fa
commit
ea5ce7f02b
@ -146,14 +146,31 @@ class Categories extends Controller
|
|||||||
$categories[$type] = [];
|
$categories[$type] = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
Category::enabled()->orderBy('name')->get()->each(function ($category) use (&$categories, $edited_category_id) {
|
$skip_categories = [];
|
||||||
if ($edited_category_id != $category->id) {
|
$skip_categories[] = $edited_category_id;
|
||||||
|
|
||||||
|
foreach ($category->sub_categories as $sub_category) {
|
||||||
|
$skip_categories[] = $sub_category->id;
|
||||||
|
|
||||||
|
if ($sub_category->sub_categories) {
|
||||||
|
$skips = $this->getChildrenCategoryIds($sub_category);
|
||||||
|
|
||||||
|
foreach ($skips as $skip) {
|
||||||
|
$skip_categories[] = $skip;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Category::enabled()->orderBy('name')->get()->each(function ($category) use (&$categories, &$skip_categories) {
|
||||||
|
if (in_array($category->id, $skip_categories)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$categories[$category->type][] = [
|
$categories[$category->type][] = [
|
||||||
'id' => $category->id,
|
'id' => $category->id,
|
||||||
'title' => $category->name,
|
'title' => $category->name,
|
||||||
'level' => $category->level,
|
'level' => $category->level,
|
||||||
];
|
];
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return view('settings.categories.edit', compact('category', 'types', 'type_disabled', 'categories'));
|
return view('settings.categories.edit', compact('category', 'types', 'type_disabled', 'categories'));
|
||||||
@ -167,10 +184,8 @@ class Categories extends Controller
|
|||||||
*
|
*
|
||||||
* @return Response
|
* @return Response
|
||||||
*/
|
*/
|
||||||
public function update($category_id, Request $request)
|
public function update(Category $category, Request $request)
|
||||||
{
|
{
|
||||||
$category = $this->getCategoryWithoutChildren($category_id);
|
|
||||||
|
|
||||||
$response = $this->ajaxDispatch(new UpdateCategory($category, $request));
|
$response = $this->ajaxDispatch(new UpdateCategory($category, $request));
|
||||||
|
|
||||||
if ($response['success']) {
|
if ($response['success']) {
|
||||||
@ -197,10 +212,8 @@ class Categories extends Controller
|
|||||||
*
|
*
|
||||||
* @return Response
|
* @return Response
|
||||||
*/
|
*/
|
||||||
public function enable($category_id)
|
public function enable(Category $category)
|
||||||
{
|
{
|
||||||
$category = $this->getCategoryWithoutChildren($category_id);
|
|
||||||
|
|
||||||
$response = $this->ajaxDispatch(new UpdateCategory($category, request()->merge(['enabled' => 1])));
|
$response = $this->ajaxDispatch(new UpdateCategory($category, request()->merge(['enabled' => 1])));
|
||||||
|
|
||||||
if ($response['success']) {
|
if ($response['success']) {
|
||||||
@ -217,10 +230,8 @@ class Categories extends Controller
|
|||||||
*
|
*
|
||||||
* @return Response
|
* @return Response
|
||||||
*/
|
*/
|
||||||
public function disable($category_id)
|
public function disable(Category $category)
|
||||||
{
|
{
|
||||||
$category = $this->getCategoryWithoutChildren($category_id);
|
|
||||||
|
|
||||||
$response = $this->ajaxDispatch(new UpdateCategory($category, request()->merge(['enabled' => 0])));
|
$response = $this->ajaxDispatch(new UpdateCategory($category, request()->merge(['enabled' => 0])));
|
||||||
|
|
||||||
if ($response['success']) {
|
if ($response['success']) {
|
||||||
|
@ -94,6 +94,7 @@ class Category extends Model
|
|||||||
{
|
{
|
||||||
return $this->resolveRouteBindingQuery($this, $value, $field)
|
return $this->resolveRouteBindingQuery($this, $value, $field)
|
||||||
->withoutGlobalScope(Scope::class)
|
->withoutGlobalScope(Scope::class)
|
||||||
|
->getWithoutChildren()
|
||||||
->first();
|
->first();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -43,4 +43,19 @@ trait Categories
|
|||||||
|
|
||||||
return $id == $this->getTransferCategoryId();
|
return $id == $this->getTransferCategoryId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getChildrenCategoryIds($category)
|
||||||
|
{
|
||||||
|
$ids = [];
|
||||||
|
|
||||||
|
foreach ($category->sub_categories as $sub_category) {
|
||||||
|
$ids[] = $sub_category->id;
|
||||||
|
|
||||||
|
if ($sub_category->sub_categories) {
|
||||||
|
$ids = array_merge($ids, $this->getChildrenCategoryIds($sub_category));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $ids;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user