Skip to content

Commit

Permalink
started nova-4 upgrade
Browse files Browse the repository at this point in the history
  • Loading branch information
FlorenceRandaxhe committed Apr 29, 2022
1 parent 23331b4 commit cdc9f46
Show file tree
Hide file tree
Showing 21 changed files with 5,694 additions and 92 deletions.
8 changes: 4 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@
}
],
"require": {
"php": ">=7.1.0",
"laravel/nova": "*"
"php": "^7.3|^8.0",
"laravel/nova": "^4.0",
"orchestra/testbench": "^7.4"
},
"require-dev": {
"phpunit/phpunit": "^8.1",
"orchestra/testbench": "3.8.*"
"phpunit/phpunit": "^9.5"
},
"autoload": {
"psr-4": {
Expand Down
1 change: 1 addition & 0 deletions dist/mix-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
27 changes: 15 additions & 12 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
{
"private": true,
"scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
"dev": "mix",
"development": "mix",
"watch": "mix watch",
"watch-poll": "mix watch -- --watch-options-poll=1000",
"hot": "mix watch --hot",
"production": "mix --production"
},
"devDependencies": {
"cross-env": "^5.0.0",
"laravel-mix": "^1.0"
},
"dependencies": {
"vue": "^2.5.0"
"laravel-nova": "^1.0",
"@vue/compiler-sfc": "^3.2.22",
"laravel-mix": "^6.0.41",
"postcss": "^8.2",
"resolve-url-loader": "^3.1.2",
"sass": "^1.32.8",
"sass-loader": "10.*",
"vue-loader": "^16.8.3",
"@vue/babel-plugin-jsx": "^1.1.1"
}
}
18 changes: 9 additions & 9 deletions routes/api.php
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,12 @@
Route::get('/nova-api/nova-option/cards', CardController::class . '@index');

// Resource Management...
Route::get('/nova-api/nova-page', PageResourceIndexController::class . '@handle');
Route::get('/nova-api/nova-page/count', PageResourceCountController::class . '@show');
Route::put('/nova-api/nova-page/{resourceId}', PageResourceUpdateController::class . '@handle');
Route::delete('/nova-api/nova-page/{resourceId}/field/{field}', PageFieldDestroyController::class . '@handle');

Route::get('/nova-api/nova-option', OptionResourceIndexController::class . '@handle');
Route::get('/nova-api/nova-option/count', OptionResourceCountController::class . '@show');
Route::put('/nova-api/nova-option/{resourceId}', OptionResourceUpdateController::class . '@handle');
Route::delete('/nova-api/nova-option/{resourceId}/field/{field}', OptionFieldDestroyController::class . '@handle');
Route::get('/nova-page', PageResourceIndexController::class . '@handle');
Route::get('/nova-page/count', PageResourceCountController::class . '@show');
Route::put('/nova-page/{resourceId}', PageResourceUpdateController::class . '@handle');
Route::delete('/nova-page/{resourceId}/field/{field}', PageFieldDestroyController::class . '@handle');

Route::get('/nova-option', OptionResourceIndexController::class . '@handle');
Route::get('/nova-option/count', OptionResourceCountController::class . '@show');
Route::put('/nova-option/{resourceId}', OptionResourceUpdateController::class . '@handle');
Route::delete('/nova-option/{resourceId}/field/{field}', OptionFieldDestroyController::class . '@handle');
6 changes: 3 additions & 3 deletions src/Http/Controllers/Page/IndexController.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class IndexController extends ResourceIndexController
{
/**
* Resource label callback
*
*
* @return string
*/
protected function resourceLabel() {
Expand All @@ -19,10 +19,10 @@ protected function resourceLabel() {

/**
* Callback to retrieve the resource index items
*
*
* @param \Laravel\Nova\Http\Requests\ResourceIndexRequest $request
* @param \Whitecube\NovaPage\Pages\Manager $manager
* @return \Illuminate\Support\Collection
* @return \Illuminate\Support\Collection
*/
protected function resourceIndexItems(ResourceIndexRequest $request, Manager $manager) {
return $manager->queryIndexResources($request, 'route');
Expand Down
7 changes: 3 additions & 4 deletions src/Http/Controllers/ResourceIndexController.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,17 @@ abstract class ResourceIndexController extends Controller
{
/**
* Get the queried resource's plural label
*
*
* @return string
*/
abstract protected function resourceLabel();

/**
* Get the queried resource's index items
*
*
* @param \Laravel\Nova\Http\Requests\ResourceIndexRequest $request
* @param \Whitecube\NovaPage\Pages\Manager $manager
* @return \Illuminate\Support\Collection
* @return \Illuminate\Support\Collection
*/
abstract protected function resourceIndexItems(ResourceIndexRequest $request, Manager $manager);

Expand Down Expand Up @@ -64,5 +64,4 @@ protected function paginator(ResourceIndexRequest $request, Manager $manager)

return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page);
}

}
2 changes: 1 addition & 1 deletion src/Http/Controllers/ResourceUpdateController.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public function handle(UpdateResourceRequest $request)
if ($this->templateHasBeenUpdatedSinceRetrieval($request, $template)) {
return response('', 409);
}

[$template, $callbacks] = $resource::fillForUpdate($request, $template);

tap($template)->save();
Expand Down
4 changes: 2 additions & 2 deletions src/Http/Middleware/Authorize.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@ public function handle(Request $request, Closure $next) : Response
? $next($request)
: abort(403);
}
}

}
2 changes: 1 addition & 1 deletion src/Http/Middleware/LoadPageForCurrentRoute.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,4 +40,4 @@ public function handle(Request $request, Closure $next)
return $next($request);
}

}
}
2 changes: 1 addition & 1 deletion src/NovaPageRouteMacros.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ public function template()
};
}

}
}
10 changes: 8 additions & 2 deletions src/NovaPageTool.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@

use Laravel\Nova\Nova;
use Laravel\Nova\Tool;
use Illuminate\Http\Request;
use Laravel\Nova\Menu\MenuItem;
use Laravel\Nova\Menu\MenuSection;

class NovaPageTool extends Tool
{
Expand All @@ -25,8 +28,11 @@ public function boot()
*
* @return \Illuminate\View\View
*/
public function renderNavigation()
public function menu(Request $request)
{
return view('nova-page::navigation');
return MenuSection::make('Nova Pages', [
MenuItem::make('Pages')->path('resources/nova-page'),
MenuItem::make('Options')->path('resources/nova-option'),
]);
}
}
16 changes: 2 additions & 14 deletions src/NovaPageToolServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ class NovaPageToolServiceProvider extends ServiceProvider
*/
public function boot()
{
$this->loadViewsFrom(__DIR__.'/../resources/views', 'nova-page');

$this->app->booted(function () {
$this->routes();
});
Expand All @@ -39,17 +37,7 @@ protected function routes()
return;
}

Route::middleware(['nova', Authorize::class])
->group(__DIR__.'/../routes/api.php');
}

/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
Nova::router(['nova', Authorize::class], 'nova-page')
->group(__DIR__.'/../routes/api.php');
}
}
8 changes: 4 additions & 4 deletions src/Pages/Manager.php
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ public function load($name, $type = 'route', $current = true, $throwOnMissing =
public function loadForRoute(Route $route, $current = true, $throwOnMissing = false)
{
if(!$route->template()) return;

$this->load($route->getName(), 'route', $current, $throwOnMissing);
}

Expand All @@ -130,7 +130,7 @@ public function find($name = null, $type = 'route')

/**
* Get an option template by its name
*
*
* @param string $name
* @param bool $throwOnMissing
* @return mixed
Expand Down Expand Up @@ -190,5 +190,5 @@ public function getRepository()
{
return $this->repository;
}
}

}
6 changes: 4 additions & 2 deletions src/Pages/OptionResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class OptionResource extends StaticResource
* @var string
*/
public static $model = 'nova-option';

/**
* Get the URI key for the resource.
*
Expand Down Expand Up @@ -72,7 +72,9 @@ protected function getIndexTableFields()
DateTime::make(__('Last updated on'), 'last_updated_on', function () {
$updated_at = $this->getDate('updated_at');
return $updated_at ? $updated_at->toDateTimeString() : null;
})->format(config('novapage.date_format'))->sortable(),
})
// ->format(config('novapage.date_format'))
->sortable(),
];
}

Expand Down
6 changes: 4 additions & 2 deletions src/Pages/PageResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ protected function getBaseAttributeFields()
->rules(['required', 'string', 'max:255']),

DateTime::make(__('Page creation date'), 'nova_page_created_at')
->format('DD-MM-YYYY HH:mm:ss')
// ->format('DD-MM-YYYY HH:mm:ss')
->rules(['required', 'string', 'max:255']),
];
}
Expand All @@ -93,7 +93,9 @@ protected function getIndexTableFields()
DateTime::make(__('Last updated on'), 'last_updated_on', function () {
$updated_at = $this->getDate('updated_at');
return $updated_at ? $updated_at->toDateTimeString() : null;
})->format(config('novapage.date_format'))->sortable(),
})
// ->format(config('novapage.date_format'))
->sortable(),
];
}

Expand Down
2 changes: 1 addition & 1 deletion src/Pages/Query.php
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ public function firstOrFail()
return $results->first();
}

throw new TemplateNotFoundException(null, $this->key);
throw new TemplateNotFoundException(null, $this->key);
}

/**
Expand Down
35 changes: 17 additions & 18 deletions src/Pages/StaticResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ abstract class StaticResource extends Resource
public static $search = [
'title', 'name'
];

/**
* Indicates if the resource should be displayed in the sidebar.
*
Expand All @@ -49,7 +48,7 @@ abstract class StaticResource extends Resource
* @param \Whitecube\NovaPage\Pages\Template $resource
* @return void
*/
public function __construct(Template $resource)
public function __construct($resource)
{
parent::__construct($resource);
}
Expand Down Expand Up @@ -93,10 +92,10 @@ public static function newModel()
/**
* Get the fields displayed by the resource.
*
* @param \Illuminate\Http\Request $request
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @return array
*/
public function fields(Request $request)
public function fields(NovaRequest $request)
{
return array_merge(
$this->getFormIntroductionFields(),
Expand All @@ -121,54 +120,54 @@ abstract protected function getIndexTableFields();
/**
* Get the fields displayed by the template.
*
* @param \Illuminate\Http\Request $request
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @return array
*/
protected function getTemplateAttributesFields(Request $request)
protected function getTemplateAttributesFields(NovaRequest $request)
{
return $this->resource->fields($request);
return $this->resource->fields($request) ?? [];
}

/**
* Get the cards available for the request.
*
* @param \Illuminate\Http\Request $request
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @return array
*/
public function cards(Request $request)
public function cards(NovaRequest $request)
{
return $this->resource->cards($request);
return $this->resource->cards($request) ?? [];
}

/**
* Get the filters available for the resource.
*
* @param \Illuminate\Http\Request $request
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @return array
*/
public function filters(Request $request)
public function filters(NovaRequest $request)
{
return [];
}

/**
* Get the lenses available for the resource.
*
* @param \Illuminate\Http\Request $request
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @return array
*/
public function lenses(Request $request)
public function lenses(NovaRequest $request)
{
return [];
}

/**
* Get the actions available for the resource.
*
* @param \Illuminate\Http\Request $request
* @param \Laravel\Nova\Http\Requests\NovaRequest $request
* @return array
*/
public function actions(Request $request)
public function actions(NovaRequest $request)
{
return [];
}
Expand Down Expand Up @@ -200,7 +199,7 @@ public function authorizedToDelete(Request $request)
*
* @return array
*/
public function jsonSerialize()
public function jsonSerialize(): array
{
return $this->serializeWithId($this->resolveFields(resolve(NovaRequest::class)));
}
Expand All @@ -221,4 +220,4 @@ protected function serializeWithId(Collection $fields)
];
}

}
}
Loading

0 comments on commit cdc9f46

Please sign in to comment.