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

Commit 2721236

Browse files
committed
move v-pub to composer
1 parent 94c85b0 commit 2721236

File tree

9 files changed

+120
-141
lines changed

9 files changed

+120
-141
lines changed

README.md

+32-44
Original file line numberDiff line numberDiff line change
@@ -5,68 +5,43 @@
55

66
Create menus & pages that support (multiLocale "title, url, body, ...", nesting, template, static & dynamic data, roles & permissions).
77

8+
- package requires Laravel v5.5+
9+
- package rely heavily on caching through **Redis**, so make sure to check the [docs](https://laravel.com/docs/5.5/redis) for installation & configuration.
10+
811
<br>
912

1013
## Installation
1114

1215
- `composer require ctf0/simple-menu`
1316

14-
- (Laravel < 5.5) add the service provider & facade to `config/app.php`
15-
16-
```php
17-
'providers' => [
18-
ctf0\SimpleMenu\SimpleMenuServiceProvider::class,
19-
]
20-
21-
'aliases' => [
22-
'SimpleMenu' => ctf0\SimpleMenu\Facade\SimpleMenu::class,
23-
]
24-
```
25-
2617
- after installation, package will auto-add
2718
+ package routes to `routes/web.php`
2819
+ package assets compiling to `webpack.mix.js`
2920

30-
- the package rely heavily on caching through **Redis**, so make sure to check the [docs](https://laravel.com/docs/5.4/redis) for installation & configuration.
31-
3221
- publish the packages assets with `php artisan vendor:publish`
33-
- for simpleMenu [Wiki](https://github.com/ctf0/simple-menu/wiki/Publish)
34-
- also check the below **Dependencies** for extra "configuration/options/migrations".
35-
> - [laravel-permission](https://github.com/spatie/laravel-permission#laravel)
36-
> - [laravel-translatable](https://github.com/spatie/laravel-translatable#installation)
37-
> - [laravel-localization](https://github.com/mcamara/laravel-localization#config)
38-
39-
- add `SMUsers` trait to your **User Model**
40-
41-
```php
42-
use ctf0\SimpleMenu\Models\Traits\SMUsers;
43-
44-
// ...
45-
46-
class User extends Authenticatable
47-
{
48-
use Notifiable, SMUsers;
49-
}
50-
```
22+
- [simpleMenu](https://github.com/ctf0/simple-menu/wiki/Publish)
23+
- [laravel-permission](https://github.com/spatie/laravel-permission#laravel)
24+
- [laravel-translatable](https://github.com/spatie/laravel-translatable#installation)
25+
- [laravel-localization](https://github.com/mcamara/laravel-localization#config)
5126

5227
- install JS dependencies
5328

54-
```bash
55-
yarn add vue axios vue-tippy@v1 vuedraggable vue-notif vue-multi-ref vue-awesome list.js
56-
# or
57-
npm install vue axios vue-tippy@v1 vuedraggable vue-notif vue-multi-ref vue-awesome list.js --save
58-
```
29+
```bash
30+
yarn add vue axios vue-tippy@v1 vuedraggable vue-notif vue-multi-ref vue-awesome@v2 list.js
31+
# or
32+
npm install vue axios vue-tippy@v1 vuedraggable vue-notif vue-multi-ref vue-awesome@v2 list.js --save
33+
```
5934

6035
- add this one liner to your main js file and run `npm run watch` to compile your `js/css` files.
6136
+ if you are having issues [Check](https://ctf0.wordpress.com/2017/09/12/laravel-mix-es6/).
6237

63-
```js
64-
require('../vendor/SimpleMenu/js/manager')
38+
```js
39+
require('../vendor/SimpleMenu/js/manager')
6540
66-
new Vue({
67-
el: '#app'
68-
})
69-
```
41+
new Vue({
42+
el: '#app'
43+
})
44+
```
7045

7146
<br>
7247

@@ -177,10 +152,23 @@ return [
177152
<br>
178153
179154
## Usage
155+
- add `SMUsers` trait to your **User Model**
156+
157+
```php
158+
use ctf0\SimpleMenu\Models\Traits\SMUsers;
159+
160+
// ...
161+
162+
class User extends Authenticatable
163+
{
164+
use Notifiable, SMUsers;
165+
}
166+
```
167+
180168
- visit `localhost:8000/admin`
181169
- [Wiki](https://github.com/ctf0/simple-menu/wiki/Usage)
182170
183171
<br>
184172
185173
## Crud Views
186-
[Wiki](https://github.com/ctf0/SimpleMenu/wiki/Crud-Views)
174+
[Wiki](https://github.com/ctf0/SimpleMenu/wiki/Crud-Views)

composer.json

+6-1
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,10 @@
4949
},
5050
"config": {
5151
"sort-packages": true
52+
},
53+
"scripts": {
54+
"post-package-install": [
55+
"@php artisan vendor:publish"
56+
]
5257
}
53-
}
58+
}

src/Models/Page.php

+1-5
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,14 @@ class Page extends Node
1212
{
1313
use HasRoles, HasTranslations, SoftDeletes;
1414

15+
protected $dates = ['deleted_at'];
1516
protected $with = ['roles', 'permissions', 'menus'];
1617
protected $appends = ['nests'];
1718
protected $guard_name = 'web';
1819
protected $hidden = [
1920
'children', 'roles', 'permissions', 'menus',
2021
'pivot', 'parent_id', 'lft', 'rgt', 'depth',
2122
];
22-
protected $dates = [
23-
'created_at',
24-
'updated_at',
25-
'deleted_at',
26-
];
2723
public $translatable = [
2824
'title', 'body', 'desc', 'prefix',
2925
'url', 'meta',

src/SimpleMenuServiceProvider.php

+57-67
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@
1515
class SimpleMenuServiceProvider extends ServiceProvider
1616
{
1717
protected $file;
18-
protected $packagesSP = [
19-
\Baum\Providers\BaumServiceProvider::class,
20-
\ctf0\PackageChangeLog\PackageChangeLogServiceProvider::class,
21-
];
2218

2319
/**
2420
* Perform post-registration booting of services.
@@ -72,8 +68,52 @@ protected function packagePublish()
7268
$this->observers();
7369
$this->macros();
7470
$this->viewComp();
71+
}
72+
73+
/**
74+
* [autoReg description].
75+
*
76+
* @return [type] [description]
77+
*/
78+
protected function autoReg()
79+
{
80+
// routes
81+
$route_file = base_path('routes/web.php');
82+
$search = 'SimpleMenu';
83+
84+
if ($this->checkExist($route_file, $search)) {
85+
$data = "\n// SimpleMenu\nSimpleMenu::menuRoutes();";
86+
87+
$this->file->append($route_file, $data);
88+
}
89+
90+
// mix
91+
$mix_file = base_path('webpack.mix.js');
92+
$search = 'SimpleMenu';
93+
94+
if ($this->checkExist($mix_file, $search)) {
95+
$data = "\n// SimpleMenu\nmix.sass('resources/assets/vendor/SimpleMenu/sass/style.scss', 'public/assets/vendor/SimpleMenu/style.css').version();";
7596

76-
$this->app['simplemenu'];
97+
$this->file->append($mix_file, $data);
98+
}
99+
100+
// run check once
101+
app('cache')->store('file')->rememberForever('ct-sm', function () {
102+
return 'added';
103+
});
104+
}
105+
106+
/**
107+
* [checkExist description].
108+
*
109+
* @param [type] $file [description]
110+
* @param [type] $search [description]
111+
*
112+
* @return [type] [description]
113+
*/
114+
protected function checkExist($file, $search)
115+
{
116+
return $this->file->exists($file) && !str_contains($this->file->get($file), $search);
77117
}
78118

79119
/**
@@ -83,10 +123,12 @@ protected function packagePublish()
83123
*/
84124
protected function observers()
85125
{
86-
if (!app()->runningInConsole()) {
87-
app(config('simpleMenu.models.page'))->observe(PageObserver::class);
88-
app(config('simpleMenu.models.menu'))->observe(MenuObserver::class);
89-
app(config('simpleMenu.models.user'))->observe(UserObserver::class);
126+
$config = config('simpleMenu.models');
127+
128+
if (!app()->runningInConsole() && $config) {
129+
app(array_get($config, 'page'))->observe(PageObserver::class);
130+
app(array_get($config, 'menu'))->observe(MenuObserver::class);
131+
app(array_get($config, 'user'))->observe(UserObserver::class);
90132
}
91133
}
92134

@@ -135,7 +177,6 @@ public function register()
135177
});
136178

137179
$this->regPSP();
138-
$this->regPA();
139180
$this->regPMW();
140181
}
141182

@@ -146,21 +187,16 @@ public function register()
146187
*/
147188
protected function regPSP()
148189
{
149-
foreach ($this->packagesSP as $one) {
190+
$packagesSP = [
191+
\Baum\Providers\BaumServiceProvider::class,
192+
\ctf0\PackageChangeLog\PackageChangeLogServiceProvider::class,
193+
];
194+
195+
foreach ($packagesSP as $one) {
150196
$this->app->register($one);
151197
}
152198
}
153199

154-
/**
155-
* packages aliases.
156-
*
157-
* @return [type] [description]
158-
*/
159-
protected function regPA()
160-
{
161-
$this->app->alias('simplemenu', SimpleMenu::class);
162-
}
163-
164200
/**
165201
* packages middlewares.
166202
*
@@ -173,50 +209,4 @@ protected function regPMW()
173209
$this->app['router']->aliasMiddleware('localizationRedirect', LaravelLocalizationRedirectFilter::class);
174210
$this->app['router']->aliasMiddleware('localeSessionRedirect', LocaleSessionRedirect::class);
175211
}
176-
177-
/**
178-
* [autoReg description].
179-
*
180-
* @return [type] [description]
181-
*/
182-
protected function autoReg()
183-
{
184-
// routes
185-
$route_file = base_path('routes/web.php');
186-
$search = 'SimpleMenu';
187-
188-
if ($this->checkExist($route_file, $search)) {
189-
$data = "\n// SimpleMenu\nSimpleMenu::menuRoutes();";
190-
191-
$this->file->append($route_file, $data);
192-
}
193-
194-
// mix
195-
$mix_file = base_path('webpack.mix.js');
196-
$search = 'SimpleMenu';
197-
198-
if ($this->checkExist($mix_file, $search)) {
199-
$data = "\n// SimpleMenu\nmix.sass('resources/assets/vendor/SimpleMenu/sass/style.scss', 'public/assets/vendor/SimpleMenu/style.css').version();";
200-
201-
$this->file->append($mix_file, $data);
202-
}
203-
204-
// run check once
205-
app('cache')->store('file')->rememberForever('ct-sm', function () {
206-
return 'added';
207-
});
208-
}
209-
210-
/**
211-
* [checkExist description].
212-
*
213-
* @param [type] $file [description]
214-
* @param [type] $search [description]
215-
*
216-
* @return [type] [description]
217-
*/
218-
protected function checkExist($file, $search)
219-
{
220-
return $this->file->exists($file) && !str_contains($this->file->get($file), $search);
221-
}
222212
}

src/Traits/RoutesTrait.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ protected function routeGen($page)
9090
$route = $this->getRouteUrl($url, $prefix);
9191

9292
$uses = $action
93-
? $action
93+
? starts_with($action, '\\') ? $action : "\\$action"
9494
: '\ctf0\SimpleMenu\Controllers\DummyController@handle';
9595

9696
$mds = array_filter(array_flatten([$middlewares, $roles, $permissions]));

src/resources/assets/js/manager.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ axios.defaults.headers.common = {
3636
'X-Requested-With': 'XMLHttpRequest'
3737
}
3838
axios.interceptors.response.use(
39-
(response) => {return response},
40-
(error) => {return Promise.reject(error.response)}
39+
(response) => response,
40+
(error) => Promise.reject(error.response)
4141
)
4242

4343
/* Component */
+16-16
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
{{-- choices --}}
2-
<script src="//cdnjs.cloudflare.com/ajax/libs/choices.js/3.0.3/choices.min.js"></script>
2+
<script src="//cdnjs.cloudflare.com/ajax/libs/choices.js/3.0.4/choices.min.js"></script>
33
{{-- tinymce --}}
4-
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.9/tinymce.min.js"></script>
5-
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.9/plugins/autoresize/plugin.min.js"></script>
6-
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.9/plugins/preview/plugin.min.js"></script>
7-
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.9/plugins/fullscreen/plugin.min.js"></script>
8-
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.9/plugins/image/plugin.min.js"></script>
9-
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.9/plugins/link/plugin.min.js"></script>
10-
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.9/plugins/lists/plugin.min.js"></script>
11-
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.9/plugins/media/plugin.min.js"></script>
12-
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.9/plugins/table/plugin.min.js"></script>
4+
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.11/tinymce.min.js"></script>
5+
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.11/plugins/autoresize/plugin.min.js"></script>
6+
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.11/plugins/preview/plugin.min.js"></script>
7+
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.11/plugins/fullscreen/plugin.min.js"></script>
8+
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.11/plugins/image/plugin.min.js"></script>
9+
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.11/plugins/link/plugin.min.js"></script>
10+
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.11/plugins/lists/plugin.min.js"></script>
11+
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.11/plugins/media/plugin.min.js"></script>
12+
<script src="//cdnjs.cloudflare.com/ajax/libs/tinymce/4.7.11/plugins/table/plugin.min.js"></script>
1313
{{-- ace --}}
14-
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.1/ace.js"></script>
15-
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.1/ext-language_tools.js"></script>
16-
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.1/ext-spellcheck.js"></script>
17-
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.1/ext-elastic_tabstops_lite.js"></script>
18-
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.1/theme-monokai.js"></script>
19-
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.1/mode-php.js"></script>
14+
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.3/ace.js"></script>
15+
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.3/ext-language_tools.js"></script>
16+
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.3/ext-spellcheck.js"></script>
17+
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.3/ext-elastic_tabstops_lite.js"></script>
18+
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.3/theme-monokai.js"></script>
19+
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.3.3/mode-php.js"></script>

src/resources/views/admin/shared.blade.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
<title>@yield('title', '')</title>
1010

1111
{{-- styles --}}
12-
<link href="//cdnjs.cloudflare.com/ajax/libs/choices.js/3.0.3/styles/css/choices.min.css" rel="stylesheet" />
13-
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bulma/0.6.2/css/bulma.min.css">
12+
<link href="//cdnjs.cloudflare.com/ajax/libs/choices.js/3.0.4/styles/css/choices.min.css" rel="stylesheet" />
13+
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bulma/0.7.1/css/bulma.min.css">
1414
<link rel="stylesheet" href="{{ asset('assets/vendor/SimpleMenu/style.css') }}"/>
1515
</head>
1616

@@ -88,4 +88,4 @@
8888
{{-- app --}}
8989
<script src="{{ asset("path/to/app.js") }}"></script>
9090
</body>
91-
</html>
91+
</html>

0 commit comments

Comments
 (0)