diff --git a/addons/default/visiosoft/cats-module/migrations/2019_04_01_161009_visiosoft.module.cats__create_category_stream.php b/addons/default/visiosoft/cats-module/migrations/2019_04_01_161009_visiosoft.module.cats__create_category_stream.php
index 483147d50..80fc91a73 100644
--- a/addons/default/visiosoft/cats-module/migrations/2019_04_01_161009_visiosoft.module.cats__create_category_stream.php
+++ b/addons/default/visiosoft/cats-module/migrations/2019_04_01_161009_visiosoft.module.cats__create_category_stream.php
@@ -15,7 +15,7 @@ class VisiosoftModuleCatsCreateCategoryStream extends Migration
'title_column' => 'name',
'translatable' => true,
'versionable' => false,
- 'trashable' => false,
+ 'trashable' => true,
'searchable' => false,
'sortable' => true,
];
diff --git a/addons/default/visiosoft/cats-module/resources/views/table/categories.twig b/addons/default/visiosoft/cats-module/resources/views/table/categories.twig
index 702f2cba1..ce728b2fd 100644
--- a/addons/default/visiosoft/cats-module/resources/views/table/categories.twig
+++ b/addons/default/visiosoft/cats-module/resources/views/table/categories.twig
@@ -14,10 +14,15 @@
{% else %}
{% set parent_url = url('admin/cats?cat='~parent.parent_category_id) %}
{% endif %}
+
+ {% for parnt in category_parents_name(app.request.get('cat'))|reverse %}
+ - {{ parnt }}
+ {% endfor %}
+
diff --git a/addons/default/visiosoft/cats-module/src/Category/CategoryCollection.php b/addons/default/visiosoft/cats-module/src/Category/CategoryCollection.php
index cb3856c6c..179cd9692 100644
--- a/addons/default/visiosoft/cats-module/src/Category/CategoryCollection.php
+++ b/addons/default/visiosoft/cats-module/src/Category/CategoryCollection.php
@@ -1,33 +1,7 @@
find($id);
- $adv->deleted_at = Carbon::now();
- $adv->save();
- }
-
- public function subCatDelete($id)
- {
- $counter = 0;
-
- for ($i = 0; $i <= $counter; $i++) {
- $data = CategoryModel::query()
- ->where('cats_category.parent_category_id', $id)
- ->where('cats_category.deleted_at', null)
- ->select('cats_category.id', 'cats_category.parent_category_id')
- ->first();
- if ($data != "") {
- $id = $data['id'];
- $counter++;
- }
- }
- $delete = new CategoryCollection();
- $delete = $delete->deleteCat($id);
- }
}
diff --git a/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php b/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php
index 849cd2a44..ae8053411 100644
--- a/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php
+++ b/addons/default/visiosoft/cats-module/src/Category/CategoryModel.php
@@ -12,7 +12,7 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface
return CategoryModel::query()->where('cats_category.id', $id)->first();
}
- public function getParentCats($id, $type = null, $subCatDeepCount = 7)
+ public function getParentCats($id, $type = null)
{
$cat = $this->getCat($id);
$catNames = array();
@@ -24,6 +24,8 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface
for ($i = 0; $i < 7; $i++) {
$parCat = $this->getCat($subCat);
if ($parCat->parent_category_id == "") {
+ if ($type == "add_main")
+ $catNames[] = $parCat->name;
break;
}
$catNames[] = $parCat->name;
@@ -44,7 +46,7 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface
public function getCatLevel($id)
{
//count parent and itself
- return count($this->getParentCats($id))+1;
+ return count($this->getParentCats($id)) + 1;
}
public function getSubCategories($id, $get = null)
@@ -96,12 +98,12 @@ class CategoryModel extends CatsCategoryEntryModel implements CategoryInterface
$join->on('cats_category.id', '=', 'cats_category_translations.entry_id');
$join->where('cats_category_translations.locale', '=', Request()->session()->get('_locale'));
});
- $cats = $cats->select('cats_category.*','cats_category_translations.name as name');
+ $cats = $cats->select('cats_category.*', 'cats_category_translations.name as name');
$cats = $cats->orderBy('id', 'DESC')
->get();
foreach ($cats as $cat) {
$link = '';
- $parents = $this->getParentCats($cat->id, null, 2);
+ $parents = $this->getParentCats($cat->id, null);
krsort($parents);
foreach ($parents as $key => $parent) {
if ($key == 0) {
diff --git a/addons/default/visiosoft/cats-module/src/Category/CategoryRepository.php b/addons/default/visiosoft/cats-module/src/Category/CategoryRepository.php
index b0fc13185..1d1bfe7e2 100644
--- a/addons/default/visiosoft/cats-module/src/Category/CategoryRepository.php
+++ b/addons/default/visiosoft/cats-module/src/Category/CategoryRepository.php
@@ -63,4 +63,15 @@ class CategoryRepository extends EntryRepository implements CategoryRepositoryIn
{
return $this->model->get();
}
+
+ public function DeleteCategories($id)
+ {
+ $sub_categories = $this->model->getAllSubCategories($id);
+ if (count($sub_categories)) {
+ $this->model
+ ->whereIn('id', array_merge($sub_categories, [$id]))
+ ->delete();
+ } else
+ $this->model->find($id)->delete();
+ }
}
diff --git a/addons/default/visiosoft/cats-module/src/Category/Contract/CategoryRepositoryInterface.php b/addons/default/visiosoft/cats-module/src/Category/Contract/CategoryRepositoryInterface.php
index f4c8c8bfb..38d128225 100644
--- a/addons/default/visiosoft/cats-module/src/Category/Contract/CategoryRepositoryInterface.php
+++ b/addons/default/visiosoft/cats-module/src/Category/Contract/CategoryRepositoryInterface.php
@@ -19,4 +19,6 @@ interface CategoryRepositoryInterface extends EntryRepositoryInterface
public function findBySlug($slug);
public function getCategories();
+
+ public function DeleteCategories($id);
}
diff --git a/addons/default/visiosoft/cats-module/src/Category/Table/CategoryTableBuilder.php b/addons/default/visiosoft/cats-module/src/Category/Table/CategoryTableBuilder.php
index c9e73e775..8d38cc343 100644
--- a/addons/default/visiosoft/cats-module/src/Category/Table/CategoryTableBuilder.php
+++ b/addons/default/visiosoft/cats-module/src/Category/Table/CategoryTableBuilder.php
@@ -36,7 +36,9 @@ class CategoryTableBuilder extends TableBuilder
* @var array|string
*/
protected $buttons = [
- 'edit',
+ 'edit' => [
+ 'href' => '/admin/cats/edit/{entry.id}?parent={entry.parent_category_id}'
+ ],
'add_sub_category' => [
'icon' => 'fa fa-caret-square-o-down',
'type' => 'success',
@@ -50,7 +52,7 @@ class CategoryTableBuilder extends TableBuilder
'delete' => [
'icon' => 'fa fa-trash',
'type' => 'danger',
- 'href' => '/admin/cats/category/delete/{entry.id}'
+ 'href' => '/admin/cats/category/delete/{entry.id}?parent={entry.parent_category_id}'
]
];
diff --git a/addons/default/visiosoft/cats-module/src/CatsModulePlugin.php b/addons/default/visiosoft/cats-module/src/CatsModulePlugin.php
index ed8df9a3e..0b98b7b7c 100644
--- a/addons/default/visiosoft/cats-module/src/CatsModulePlugin.php
+++ b/addons/default/visiosoft/cats-module/src/CatsModulePlugin.php
@@ -1,6 +1,7 @@
getParentCats($id,'add_main');
+ }
)
];
}
diff --git a/addons/default/visiosoft/cats-module/src/CatsModuleServiceProvider.php b/addons/default/visiosoft/cats-module/src/CatsModuleServiceProvider.php
index 0a880c0f8..aaa63322a 100644
--- a/addons/default/visiosoft/cats-module/src/CatsModuleServiceProvider.php
+++ b/addons/default/visiosoft/cats-module/src/CatsModuleServiceProvider.php
@@ -184,4 +184,31 @@ class CatsModuleServiceProvider extends AddonServiceProvider
// Use method injection or commands to bring in services.
}
+ public function getOverrides()
+ {
+ $request = app('Illuminate\Http\Request');
+ $view = $request->get('view');
+
+ if ($request->segment(2) === $this->addon->getSlug() && $view !== 'table' and $request->path() == "admin/cats") {
+ $sections = [
+ 'category' => [
+ 'buttons' => [
+ 'new_category' => [
+ 'href' => '/admin/cats/create?parent='.$request->cat
+ ],
+ ],
+ ],
+ 'placeholderforsearch' => [
+ 'buttons' => [
+ 'new_placeholderforsearch',
+ ],
+ ],
+ ];
+ $this->addon->setSections($sections);
+ }
+
+ return parent::getOverrides();
+ }
+
+
}
diff --git a/addons/default/visiosoft/cats-module/src/Http/Controller/Admin/CategoryController.php b/addons/default/visiosoft/cats-module/src/Http/Controller/Admin/CategoryController.php
index edbd28f14..553782903 100644
--- a/addons/default/visiosoft/cats-module/src/Http/Controller/Admin/CategoryController.php
+++ b/addons/default/visiosoft/cats-module/src/Http/Controller/Admin/CategoryController.php
@@ -6,6 +6,7 @@ use Illuminate\Http\Request;
use Sunra\PhpSimple\HtmlDomParser;
use Visiosoft\CatsModule\Category\CategoryCollection;
use Visiosoft\CatsModule\Category\CategoryModel;
+use Visiosoft\CatsModule\Category\Contract\CategoryRepositoryInterface;
use Visiosoft\CatsModule\Category\Form\CategoryFormBuilder;
use Visiosoft\CatsModule\Category\Table\CategoryTableBuilder;
use Anomaly\Streams\Platform\Http\Controller\AdminController;
@@ -58,9 +59,8 @@ class CategoryController extends AdminController
if ($form->hasFormErrors()) {
return $this->redirect->to('/admin/cats/create');
}
- if($parent_id != "")
- {
- return $this->redirect->to('/admin/cats?cat='.$parent_id);
+ if ($parent_id != "") {
+ return $this->redirect->to('/admin/cats?cat=' . $parent_id);
}
return $this->redirect->to('/admin/cats');
@@ -89,6 +89,12 @@ class CategoryController extends AdminController
if ($form->hasFormErrors()) {
return $this->redirect->back();
}
+ $parent = $request->parent_category;
+ if ($parent != "") {
+ return $this->redirect->to('/admin/cats?cat=' . $parent);
+ die;
+ }
+ return $this->redirect->to('/admin/cats');
} else {
$form->setFields(['name']);
$nameField = HTMLDomParser::str_get_html($form->render($id)->getContent());
@@ -103,26 +109,25 @@ class CategoryController extends AdminController
return $this->view->make('visiosoft.module.cats::cats/admin-cat', compact('nameField'))->with('id', $id);
}
- public function delete(CategoryCollection $categoryCollection, CategoryModel $categoryModel, $id)
+ public function delete(CategoryRepositoryInterface $categoryRepository, Request $request, CategoryModel $categoryModel, $id)
{
+ ini_set('max_execution_time', 0);
echo "url() . ");
background-repeat:no-repeat;
background-size: 300px;
background-position:center;
text-align:center;
width:98%;
- height:100%;
+ height:100%;
padding-left: 20px;'>
" . trans('visiosoft.module.cats::field.please_wait') . "
";
- $Find_Categories = $categoryModel
- ->where('deleted_at', null)
- ->find($id);
- if ($Find_Categories != "") {
- $categoryCollection->subCatDelete($id);
- header("Refresh:0");
- } else {
- $categoryModel->find($id)->delete();
- return redirect('admin/cats')->with('success', ['Category and related sub-categories deleted successfully.']);
- }
+ $categoryRepository->DeleteCategories($id);
+
+ if ($request->parent == "")
+ return redirect('admin/cats')->with('success', ['Category and related sub-categories deleted successfully.']);
+ else
+ return redirect('admin/cats?cat=' . $request->parent)->with('success', ['Category and related sub-categories deleted successfully.']);
}
+
+
}