Skip to content
This repository was archived by the owner on Jan 3, 2023. It is now read-only.

Commit 0a65dd7

Browse files
committed
updates
* add models clearing events * add support for “app\controllers\controller” __cons * more cleanup and optimize * remove the caret from the menu items * create "routeListPath" if not found * remove `role/perms` require validation from "page & user" * update rdme
1 parent 91f70e9 commit 0a65dd7

File tree

16 files changed

+73
-45
lines changed

16 files changed

+73
-45
lines changed

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,17 @@ return [
130130

131131
### Crud Views
132132
[Wiki](https://github.com/ctf0/SimpleMenu/wiki/Crud-Views)
133+
134+
### Events
135+
- in case you are using some package that caches the response and you need to invalidate the cache when any of the package **CRUD** operations is fired, you can listen to
136+
+ `sm-menus.cleared`
137+
+ `sm-pages.cleared`
138+
+ `sm-users.cleared`
139+
+ `sm-perms.cleared`
140+
141+
and you can listen to all through
142+
```php
143+
Event::listen('sm-*', function () {
144+
// do something
145+
});
146+
```

src/Controllers/Admin/Traits/PageOps.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ protected function sT_uP_Validaiton($request, $id = null)
2626
$validator = Validator::make($request->all(), [
2727
'template' => 'required_without:action',
2828
'route_name' => $routename,
29-
'roles' => 'required',
30-
'permissions' => 'required',
3129
]);
3230

3331
// because laravel still pretty fucked up when it comes to showing array input errors

src/Controllers/Admin/Traits/RolePermOps.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,7 @@ trait RolePermOps
77
protected function clearCache()
88
{
99
$this->cache->tags('sm')->flush();
10+
11+
event('sm-perms.cleared');
1012
}
1113
}

src/Controllers/Admin/UsersController.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,6 @@ public function store(Request $request)
4747
'name' => 'required',
4848
'email' => 'required|email|unique:users,email',
4949
'password' => 'required',
50-
'roles' => 'required',
51-
'permissions' => 'required',
5250
]);
5351

5452
$user = $this->userModel->create($request->except(['roles', 'permissions']));
@@ -90,8 +88,6 @@ public function update($id, Request $request)
9088
$this->validate($request, [
9189
'name' => 'required',
9290
'email' => 'required|email|unique:users,email,' . $id,
93-
'roles' => 'required',
94-
'permissions' => 'required',
9591
]);
9692

9793
$user = $this->userModel->find($id);

src/Controllers/BaseController.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@ class BaseController extends Controller
1414

1515
public function __construct()
1616
{
17-
$this->cache = app()['cache'];
17+
if (is_callable('parent::__construct')) {
18+
parent::__construct();
19+
}
20+
21+
$this->cache = app('cache');
1822
$fw = config('simpleMenu.framework');
1923
$this->adminPath = "SimpleMenu::admin.{$fw}";
2024
$this->templatePath = config('simpleMenu.templatePath');

src/Models/Page.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
namespace ctf0\SimpleMenu\Models;
44

55
use Baum\Node;
6-
use Illuminate\Support\Facades\Cache;
76
use Spatie\Permission\Traits\HasRoles;
87
use Spatie\Translatable\HasTranslations;
98
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
@@ -76,15 +75,15 @@ public function syncMenus($menus)
7675
*/
7776
public function getAncestors($columns = ['*'])
7877
{
79-
return Cache::tags('sm')->rememberForever($this->getCrntLocale() . "-{$this->route_name}_ancestors", function () use ($columns) {
78+
return app('cache')->tags('sm')->rememberForever($this->getCrntLocale() . "-{$this->route_name}_ancestors", function () use ($columns) {
8079
return $this->ancestors()->get($columns);
8180
});
8281
}
8382

8483
public function getNestsAttribute()
8584
{
86-
return Cache::tags('sm')->rememberForever($this->getCrntLocale() . "-{$this->route_name}_nests", function () {
87-
return $childs = array_flatten(current($this->getDescendants()->toHierarchy()));
85+
return app('cache')->tags('sm')->rememberForever($this->getCrntLocale() . "-{$this->route_name}_nests", function () {
86+
return array_flatten(current($this->getDescendants()->toHierarchy()));
8887
});
8988
}
9089

src/Observers/BaseObserver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ class BaseObserver
88

99
public function __construct()
1010
{
11-
$this->cache = app()['cache'];
11+
$this->cache = app('cache');
1212
}
1313
}

src/Observers/MenuObserver.php

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,33 @@
22

33
namespace ctf0\SimpleMenu\Observers;
44

5-
use ctf0\SimpleMenu\Models\Menu;
6-
75
class MenuObserver extends BaseObserver
86
{
97
/**
10-
* Listen to the User saved event.
8+
* Listen to the Menu saved event.
119
*/
12-
public function saved(Menu $menu)
10+
public function saved()
1311
{
14-
return $this->cleanData($menu);
12+
return $this->cleanData();
1513
}
1614

1715
/**
18-
* Listen to the User deleted event.
16+
* Listen to the Menu deleted event.
1917
*/
20-
public function deleted(Menu $menu)
18+
public function deleted()
2119
{
22-
return $this->cleanData($menu);
20+
return $this->cleanData();
2321
}
2422

2523
/**
2624
* helpers.
2725
*
28-
* @param [type] $menu [description]
29-
* @param mixed $page
30-
*
3126
* @return [type] [description]
3227
*/
33-
protected function cleanData($menu)
28+
protected function cleanData()
3429
{
3530
$this->cache->tags('sm')->flush();
31+
32+
event('sm-menus.cleared');
3633
}
3734
}

src/Observers/PageObserver.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
class PageObserver extends BaseObserver
99
{
1010
/**
11-
* Listen to the User saved event.
11+
* Listen to the Page saved event.
1212
*/
1313
public function saved(Page $page)
1414
{
1515
return $this->cleanData($page);
1616
}
1717

1818
/**
19-
* Listen to the User deleted event.
19+
* Listen to the Page deleted event.
2020
*/
2121
public function deleted(Page $page)
2222
{
@@ -26,8 +26,7 @@ public function deleted(Page $page)
2626
/**
2727
* helpers.
2828
*
29-
* @param [type] $menu [description]
30-
* @param mixed $page
29+
* @param [type] $page [description]
3130
*
3231
* @return [type] [description]
3332
*/
@@ -43,5 +42,7 @@ protected function cleanData($page)
4342

4443
// clear all cache
4544
$this->cache->tags('sm')->flush();
45+
46+
event('sm-pages.cleared');
4647
}
4748
}

src/Observers/UserObserver.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,12 @@ public function deleted()
2323
/**
2424
* helpers.
2525
*
26-
* @param [type] $menu [description]
27-
*
2826
* @return [type] [description]
2927
*/
3028
protected function cleanData()
3129
{
3230
$this->cache->forget('sm-users');
31+
32+
event('sm-users.cleared');
3333
}
3434
}

0 commit comments

Comments
 (0)