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

Commit 16b7d6a

Browse files
committed
v3.1.0
1 parent 6d5a26c commit 16b7d6a

17 files changed

+221
-130
lines changed

logs/v3.0.6.txt

Lines changed: 0 additions & 4 deletions
This file was deleted.

logs/v3.1.0.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
- add support for images in user & pages
2+
- changed user trait to `SMUsers`
3+
- add new key to config “controllers” so now you can extend package functionality with ease.
4+
- cleanup
5+
- update assets
6+
- update migrations
7+
- update wiki

src/Controllers/Admin/PagesController.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
use Spatie\Permission\Models\Permission;
99
use ctf0\SimpleMenu\Controllers\BaseController;
1010
use ctf0\SimpleMenu\Controllers\Admin\Traits\PageOps;
11+
use ctf0\SimpleMenu\Controllers\Admin\Traits\sharedOps;
1112

1213
class PagesController extends BaseController
1314
{
14-
use PageOps;
15+
use PageOps, sharedOps;
1516

1617
/**
1718
* Display a listing of Page.
@@ -50,7 +51,8 @@ public function store(Request $request)
5051
{
5152
$this->sT_uP_Validaiton($request);
5253

53-
$page = Page::create($this->cleanEmptyTranslations($request));
54+
$img = $this->getImage($request->cover);
55+
$page = Page::create(array_merge(['cover'=>$img], $this->cleanEmptyTranslations($request)));
5456
$roles = $request->input('roles') ?: [];
5557
$permissions = $request->input('permissions') ?: [];
5658
$menus = $request->input('menus') ?: [];
@@ -91,12 +93,13 @@ public function update($id, Request $request)
9193
{
9294
$this->sT_uP_Validaiton($request, $id);
9395

96+
$img = $this->getImage($request->cover);
9497
$page = Page::find($id);
9598
$roles = $request->input('roles') ?: [];
9699
$permissions = $request->input('permissions') ?: [];
97100
$menus = $request->input('menus') ?: [];
98101

99-
$page->update($this->cleanEmptyTranslations($request));
102+
$page->update(array_merge(['cover'=>$img], $this->cleanEmptyTranslations($request)));
100103
$page->syncRoles($roles);
101104
$page->syncPermissions($permissions);
102105
$page->syncMenus($menus);

src/Controllers/Admin/Traits/PageOps.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ protected function sT_uP_Validaiton($request, $id = null)
8080
*/
8181
protected function cleanEmptyTranslations($request)
8282
{
83-
$result = $request->except(['roles', 'permissions', 'menus']);
83+
$result = $request->except(['roles', 'permissions', 'menus', 'cover']);
8484

8585
foreach ($result as $k => $v) {
8686
if (is_array($v)) {

src/Controllers/Admin/Traits/Users.php renamed to src/Controllers/Admin/Traits/SMUsers.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,17 @@
55
use Spatie\Permission\Traits\HasRoles;
66
use Illuminate\Database\Eloquent\Builder;
77

8-
trait Users
8+
trait SMUsers
99
{
1010
use HasRoles;
1111

12-
public static function bootUsers()
12+
public static function bootSMUsers()
1313
{
1414
static::addGlobalScope('relations', function (Builder $builder) {
1515
$builder->with(['roles', 'permissions']);
1616
});
1717
}
1818

19-
// Accessor for Avatar
20-
public function getAvatarAttribute($value)
21-
{
22-
return null != $value ?: 'https://www.svgrepo.com/show/13656/user.svg';
23-
}
24-
2519
// Mutator for Password
2620
public function setPasswordAttribute($value)
2721
{
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
namespace ctf0\SimpleMenu\Controllers\Admin\Traits;
4+
5+
trait sharedOps
6+
{
7+
protected function getImage($img)
8+
{
9+
return $img;
10+
}
11+
}

src/Controllers/Admin/UsersController.php

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@
77
use Spatie\Permission\Models\Role;
88
use Spatie\Permission\Models\Permission;
99
use ctf0\SimpleMenu\Controllers\BaseController;
10+
use ctf0\SimpleMenu\Controllers\Admin\Traits\sharedOps;
1011

1112
class UsersController extends BaseController
1213
{
14+
use sharedOps;
15+
1316
/**
1417
* Display a listing of User.
1518
*
@@ -45,12 +48,13 @@ public function create()
4548
public function store(Request $request)
4649
{
4750
$this->validate($request, [
48-
'name' => 'required',
49-
'email' => 'required|email|unique:users,email',
50-
'password' => 'required',
51+
'name' => 'required',
52+
'email' => 'required|email|unique:users,email',
53+
'password' => 'required',
5154
]);
5255

53-
$user = $this->userModel->create($request->except(['roles', 'permissions']));
56+
$img = $this->getImage($request->avatar);
57+
$user = $this->userModel->create(array_merge(['avatar'=>$img], $request->except(['roles', 'permissions'])));
5458
$roles = $request->input('roles') ?: [];
5559
$permissions = $request->input('permissions') ?: [];
5660

@@ -87,15 +91,16 @@ public function edit($id)
8791
public function update($id, Request $request)
8892
{
8993
$this->validate($request, [
90-
'name' => 'required',
91-
'email' => 'required|email|unique:users,email,' . $id,
94+
'name' => 'required',
95+
'email' => 'required|email|unique:users,email,' . $id,
9296
]);
9397

9498
$user = $this->userModel->find($id);
9599
$roles = $request->input('roles') ?: [];
96100
$permissions = $request->input('permissions') ?: [];
101+
$img = $this->getImage($request->avatar);
97102

98-
$user->update($request->except(['roles', 'permissions']));
103+
$user->update(array_merge(['avatar'=>$img], $request->except(['roles', 'permissions'])));
99104
$user->syncRoles($roles);
100105
$user->syncPermissions($permissions);
101106

src/SimpleMenu.php

Lines changed: 3 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,15 @@
22

33
namespace ctf0\SimpleMenu;
44

5-
use ctf0\SimpleMenu\Models\Menu;
6-
use ctf0\SimpleMenu\Models\Page;
5+
use ctf0\SimpleMenu\Traits\Ops;
76
use ctf0\SimpleMenu\Traits\MenusTrait;
87
use ctf0\SimpleMenu\Traits\RoutesTrait;
98
use ctf0\SimpleMenu\Traits\NavigationTrait;
10-
use ctf0\SimpleMenu\Traits\PackageRoutesTrait;
119
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
1210

1311
class SimpleMenu
1412
{
15-
use RoutesTrait, MenusTrait, NavigationTrait, PackageRoutesTrait;
13+
use RoutesTrait, MenusTrait, NavigationTrait, Ops;
1614

1715
protected $listFileDir;
1816
protected $localeCodes;
@@ -24,9 +22,7 @@ public function __construct()
2422
$this->listFileDir = config('simpleMenu.routeListPath');
2523
$this->localeCodes = array_keys(LaravelLocalization::getSupportedLocales());
2624

27-
if ($this->listFileDir) {
28-
static::create_LFD($this->listFileDir);
29-
}
25+
static::create_LFD($this->listFileDir);
3026

3127
if (!app()->runningInConsole()) {
3228
// create caches
@@ -39,51 +35,4 @@ public function __construct()
3935
$this->createMenus();
4036
}
4137
}
42-
43-
/**
44-
* locales.
45-
*/
46-
public function AppLocales()
47-
{
48-
return $this->localeCodes;
49-
}
50-
51-
protected function getCrntLocale()
52-
{
53-
return LaravelLocalization::getCurrentLocale();
54-
}
55-
56-
/**
57-
* cacheing.
58-
*
59-
* @return [type] [description]
60-
*/
61-
protected function createCaches()
62-
{
63-
$this->cache->tags('sm')->rememberForever('menus', function () {
64-
return Menu::with('pages')->get();
65-
});
66-
67-
$this->cache->tags('sm')->rememberForever('pages', function () {
68-
return Page::get();
69-
});
70-
71-
$this->cache->rememberForever('sm-users', function () {
72-
return app(config('simpleMenu.userModel'))->get();
73-
});
74-
}
75-
76-
/**
77-
* route list dir.
78-
*
79-
* @param mixed $dir
80-
*/
81-
protected static function create_LFD($dir)
82-
{
83-
$dir_name = dirname($dir);
84-
85-
if (!app('files')->exists($dir_name)) {
86-
return app('files')->makeDirectory($dir_name, 0755, true);
87-
}
88-
}
8938
}

src/SimpleMenuServiceProvider.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,10 @@ protected function macros()
121121
protected function viewComp()
122122
{
123123
view()->composer('SimpleMenu::admin.*', function ($view) {
124-
$view->with(['crud_prefix' => config('simpleMenu.crud_prefix')]);
125-
});
126-
127-
view()->composer('SimpleMenu::admin.*', function ($view) {
128-
$view->with(['css_fw' => config('simpleMenu.framework')]);
124+
$view->with([
125+
'crud_prefix' => config('simpleMenu.crud_prefix'),
126+
'css_fw' => config('simpleMenu.framework'),
127+
]);
129128
});
130129
}
131130

src/Traits/Ops.php

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
<?php
2+
3+
namespace ctf0\SimpleMenu\Traits;
4+
5+
use ctf0\SimpleMenu\Models\Menu;
6+
use ctf0\SimpleMenu\Models\Page;
7+
use Illuminate\Support\Facades\Route;
8+
use Mcamara\LaravelLocalization\Facades\LaravelLocalization;
9+
10+
trait Ops
11+
{
12+
/**
13+
* locales.
14+
*/
15+
public function AppLocales()
16+
{
17+
return $this->localeCodes;
18+
}
19+
20+
protected function getCrntLocale()
21+
{
22+
return LaravelLocalization::getCurrentLocale();
23+
}
24+
25+
/**
26+
* cacheing.
27+
*
28+
* @return [type] [description]
29+
*/
30+
protected function createCaches()
31+
{
32+
$this->cache->tags('sm')->rememberForever('menus', function () {
33+
return Menu::with('pages')->get();
34+
});
35+
36+
$this->cache->tags('sm')->rememberForever('pages', function () {
37+
return Page::get();
38+
});
39+
40+
$this->cache->rememberForever('sm-users', function () {
41+
return app(config('simpleMenu.userModel'))->get();
42+
});
43+
}
44+
45+
/**
46+
* route list dir.
47+
*
48+
* @param mixed $dir
49+
*/
50+
protected static function create_LFD($dir)
51+
{
52+
$dir_name = dirname($dir);
53+
54+
if (!app('files')->exists($dir_name)) {
55+
return app('files')->makeDirectory($dir_name, 0755, true);
56+
}
57+
}
58+
59+
/**
60+
* package routes.
61+
*
62+
* @return [type] [description]
63+
*/
64+
public function menuRoutes()
65+
{
66+
$prefix = config('simpleMenu.crud_prefix');
67+
$controllers = config('simpleMenu.controllers');
68+
69+
Route::group([
70+
'prefix'=> $prefix,
71+
'as' => "$prefix.",
72+
], function () use ($controllers) {
73+
/* Home */
74+
Route::get('/', $controllers['admin'] . '@index')->name('index');
75+
76+
/* Roles */
77+
Route::resource('roles', $controllers['roles'], ['except'=>'show']);
78+
79+
/* Perms */
80+
Route::resource('permissions', $controllers['permissions'], ['except'=>'show']);
81+
82+
/* Menus */
83+
Route::post('menus/removechild', $controllers['menus'] . '@removeChild')->name('menus.removeChild');
84+
Route::post('menus/removepage/{id}', $controllers['menus'] . '@removePage')->name('menus.removePage');
85+
Route::get('menus/getmenupages/{id}', $controllers['menus'] . '@getMenuPages')->name('menus.getMenuPages');
86+
Route::resource('menus', $controllers['menus'], ['except'=>'show']);
87+
88+
/* Users */
89+
Route::resource('users', $controllers['users'], ['except'=>'show']);
90+
91+
/* Pages */
92+
Route::resource('pages', $controllers['pages'], ['except'=>'show']);
93+
});
94+
}
95+
}

src/Traits/PackageRoutesTrait.php

Lines changed: 0 additions & 44 deletions
This file was deleted.

0 commit comments

Comments
 (0)