Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
iamgergo committed Nov 15, 2023
1 parent 74fc8e1 commit 2c9e57c
Show file tree
Hide file tree
Showing 30 changed files with 233 additions and 22 deletions.
1 change: 0 additions & 1 deletion public/build/assets/app-275e9a85.js

This file was deleted.

File renamed without changes.
1 change: 0 additions & 1 deletion public/build/assets/app-4d04387c.css

This file was deleted.

1 change: 1 addition & 0 deletions public/build/assets/app-bc3780fe.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import{a as f}from"./app-455c4098.js";export{f as default};
1 change: 1 addition & 0 deletions public/build/assets/app-d00ef1bd.css

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions public/build/assets/dropdown-613489dc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import"./app-455c4098.js";
1 change: 0 additions & 1 deletion public/build/assets/dropdown-7fa3ba94.js

This file was deleted.

1 change: 1 addition & 0 deletions public/build/assets/editor-613489dc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import"./app-455c4098.js";
1 change: 0 additions & 1 deletion public/build/assets/editor-7fa3ba94.js

This file was deleted.

1 change: 1 addition & 0 deletions public/build/assets/media-manager-613489dc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import"./app-455c4098.js";
1 change: 0 additions & 1 deletion public/build/assets/media-manager-7fa3ba94.js

This file was deleted.

1 change: 1 addition & 0 deletions public/build/assets/repeater-613489dc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import"./app-455c4098.js";
1 change: 0 additions & 1 deletion public/build/assets/repeater-7fa3ba94.js

This file was deleted.

16 changes: 8 additions & 8 deletions public/build/manifest.json
Original file line number Diff line number Diff line change
@@ -1,50 +1,50 @@
{
"resources/js/app.css": {
"file": "assets/app-4d04387c.css",
"file": "assets/app-d00ef1bd.css",
"src": "resources/js/app.css"
},
"resources/js/app.js": {
"css": [
"assets/app-4d04387c.css"
"assets/app-d00ef1bd.css"
],
"file": "assets/app-bc4fbccb.js",
"file": "assets/app-455c4098.js",
"isEntry": true,
"src": "resources/js/app.js"
},
"resources/js/dropdown.js": {
"file": "assets/dropdown-7fa3ba94.js",
"file": "assets/dropdown-613489dc.js",
"imports": [
"resources/js/app.js"
],
"isEntry": true,
"src": "resources/js/dropdown.js"
},
"resources/js/editor.js": {
"file": "assets/editor-7fa3ba94.js",
"file": "assets/editor-613489dc.js",
"imports": [
"resources/js/app.js"
],
"isEntry": true,
"src": "resources/js/editor.js"
},
"resources/js/media-manager.js": {
"file": "assets/media-manager-7fa3ba94.js",
"file": "assets/media-manager-613489dc.js",
"imports": [
"resources/js/app.js"
],
"isEntry": true,
"src": "resources/js/media-manager.js"
},
"resources/js/repeater.js": {
"file": "assets/repeater-7fa3ba94.js",
"file": "assets/repeater-613489dc.js",
"imports": [
"resources/js/app.js"
],
"isEntry": true,
"src": "resources/js/repeater.js"
},
"resources/sass/app.scss": {
"file": "assets/app-275e9a85.js",
"file": "assets/app-bc3780fe.js",
"imports": [
"resources/js/app.js"
],
Expand Down
Binary file added public/fonts/manrope-v14-latin-500.woff2
Binary file not shown.
Binary file added public/fonts/manrope-v14-latin-600.woff2
Binary file not shown.
Binary file added public/fonts/manrope-v14-latin-700.woff2
Binary file not shown.
Binary file added public/fonts/manrope-v14-latin-800.woff2
Binary file not shown.
Binary file added public/fonts/manrope-v14-latin-regular.woff2
Binary file not shown.
Binary file added public/fonts/open-sans-v35-latin-700.woff2
Binary file not shown.
Binary file added public/fonts/open-sans-v35-latin-regular.woff2
Binary file not shown.
4 changes: 4 additions & 0 deletions resources/sass/app.scss
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,7 @@
[x-cloak] {
visibility: hidden !important;
}

img {
border-radius: config('border-radius-sm', $display);
}
35 changes: 35 additions & 0 deletions resources/sass/config/_font.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
@use 'sprucecss/scss/spruce' as *;

@include font-face(
'Manrope',
'/vendor/root/fonts/manrope-v14-latin-regular.woff2'
);

@include font-face(
'Manrope',
'/vendor/root/fonts/manrope-v14-latin-500.woff2',
500
);

@include font-face(
'Manrope',
'/vendor/root/fonts/manrope-v14-latin-600.woff2',
600
);

@include font-face(
'Manrope',
'/vendor/root/fonts/manrope-v14-latin-800.woff2',
700
);

@include font-face(
'Open Sans',
'/vendor/root/fonts/open-sans-v35-latin-regular.woff2'
);

@include font-face(
'Open Sans',
'/vendor/root/fonts/open-sans-v35-latin-700.woff2',
700
);
1 change: 1 addition & 0 deletions resources/sass/config/_index.scss
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
@forward 'config';
@forward 'font';
@forward 'styles';
@forward 'dark-mode';
9 changes: 6 additions & 3 deletions resources/views/app.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@

{{-- Styles --}}
<link rel="icon" href="{{ URL::asset('vendor/root/favicon.png') }}" sizes="32x32">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;800&family=Open+Sans:wght@400;700&display=swap">
<link rel="preload" as="font" type="font/woff2" href="{{ URL::asset('vendor/root/fonts/manrope-v14-latin-regular.woff2') }}" crossorigin>
<link rel="preload" as="font" type="font/woff2" href="{{ URL::asset('vendor/root/fonts/manrope-v14-latin-500.woff2') }}" crossorigin>
<link rel="preload" as="font" type="font/woff2" href="{{ URL::asset('vendor/root/fonts/manrope-v14-latin-600.woff2') }}" crossorigin>
<link rel="preload" as="font" type="font/woff2" href="{{ URL::asset('vendor/root/fonts/manrope-v14-latin-800.woff2') }}" crossorigin>
<link rel="preload" as="font" type="font/woff2" href="{{ URL::asset('vendor/root/fonts/open-sans-v35-latin-regular.woff2') }}" crossorigin>
<link rel="preload" as="font" type="font/woff2" href="{{ URL::asset('vendor/root/fonts/open-sans-v35-latin-700.woff2') }}" crossorigin>
{{
Vite::withEntryPoints('resources/sass/app.scss')
->useBuildDirectory('vendor/root/build')
Expand Down
6 changes: 5 additions & 1 deletion resources/views/components/layout/header.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ class="btn btn--outline-dark btn--sm btn--icon display--none:md"
{{-- <button class="btn btn--outline-dark btn--sm btn--icon display--none:md" aria-label="Open search">
<x-root::icon name="search" class="btn__icon" />
</button> --}}
<x-root::layout.theme />
</div>
{{-- <x-root::layout.breadcrumbs /> --}}
</div>
Expand All @@ -33,6 +32,11 @@ class="btn btn--outline-dark btn--sm btn--icon display--none:md"
<x-root::icon name="chevron-down" class="open-search__icon" />
</button>
<ul class="context-menu" x-bind:class="{ 'is-open': open }">
<li>
<span class="context-menu__item">
{{ __('Theme') }} <x-root::layout.theme />
</span>
</li>
<li>
<button type="submit" form="logout-form" class="context-menu__item">
{{ __('Logout') }}
Expand Down
Empty file.
9 changes: 6 additions & 3 deletions src/Fields/Relation.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ abstract class Relation extends Field
protected string|Closure|null $groupResolver = null;

/**
* Indicates wheter the relation is a sub resource.
* Indicates whether the relation is a sub resource.
*/
protected bool $asSubResource = false;

Expand Down Expand Up @@ -370,6 +370,7 @@ public function registerRoutes(Request $request, Router $router): void

$router->prefix($this->getUriKey())->group(function (Router $router) use ($request): void {
$this->resolveFields($request)->registerRoutes($request, $router);
$this->resolveActions($request)->registerRoutes($request, $router);
});
}

Expand All @@ -378,7 +379,9 @@ public function registerRoutes(Request $request, Router $router): void
*/
public function routes(Router $router): void
{
//
if ($this->isSubResource()) {
//
}
}

/**
Expand All @@ -405,7 +408,7 @@ public function toInput(Request $request, Model $model): array
}

/**
* Create a new method.
* Get the sub reosurce representation of the relation.
*/
public function toSubResource(Request $request, Model $model): array
{
Expand Down
161 changes: 161 additions & 0 deletions src/Http/Controllers/RelationController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
<?php

namespace Cone\Root\Http\Controllers;

use Cone\Root\Http\Requests\CreateRequest;
use Cone\Root\Http\Requests\IndexRequest;
use Cone\Root\Http\Requests\ResourceRequest;
use Cone\Root\Http\Requests\ShowRequest;
use Cone\Root\Http\Requests\UpdateRequest;
use Cone\Root\Support\Alert;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redirect;
use Inertia\Inertia;
use Inertia\Response;

class HasOneOrManyController extends Controller
{
/**
* Display a listing of the resource.
*/
public function index(Request $request): Response
{
$field = $request->resolved();

return Inertia::render(
'Relations/Index',
$field->toIndex($request, $model)
);
}

/**
* Show the form for creating a new resource.
*
* @param \Cone\Root\Http\Requests\CreateRequest $request
* @param \Illuminate\Database\Eloquent\Model $model
* @return \Inertia\Response
*/
public function create(CreateRequest $request, Model $model): Response
{
$field = $request->resolved();

return Inertia::render(
'Relations/Form',
$field->toCreate($request, $model)
);
}

/**
* Store a newly created resource in storage.
*
* @param \Cone\Root\Http\Requests\CreateRequest $request
* @param \Illuminate\Database\Eloquent\Model $model
* @return \Illuminate\Http\RedirectResponse
*/
public function store(CreateRequest $request, Model $model): RedirectResponse
{
$field = $request->resolved();

$relation = $field->getRelation($model);

$related = tap($relation->getRelated(), static function (Model $related) use ($model): void {
$related->setRelation('parent', $model);
});

$fields = $field->resolveFields($request)->available($request, $model, $related);

$request->validate($fields->mapToValidate($request, $related));

$fields->each->persist($request, $related);

$relation->save($related);

$path = sprintf('%s/%s', $request->resolved()->resolveUri($request), $related->getKey());

return Redirect::to($path)
->with('alerts.relation-created', Alert::success(__('The relation has been created!')));
}

/**
* Display the specified resource.
*
* @param \Cone\Root\Http\Requests\ShowRequest $request
* @param \Illuminate\Database\Eloquent\Model $model
* @return \Inertia\Response
*/
public function show(ShowRequest $request, Model $model, Model $related): Response
{
return Inertia::render(
'Relations/Show',
$request->resolved()->toShow($request, $model, $related)
);
}

/**
* Show the form for editing the specified resource.
*
* @param \Cone\Root\Http\Requests\UpdateRequest $request
* @param \Illuminate\Database\Eloquent\Model $model
* @return \Inertia\Response
*/
public function edit(UpdateRequest $request, Model $model, Model $related): Response
{
$field = $request->resolved();

return Inertia::render(
'Relations/Form',
$field->toEdit($request, $model, $related)
);
}

/**
* Update the specified resource in storage.
*
* @param \Cone\Root\Http\Requests\UpdateRequest $request
* @param \Illuminate\Database\Eloquent\Model $model
* @param \Illuminate\Database\Eloquent\Model $related
* @return \Illuminate\Http\RedirectResponse
*/
public function update(UpdateRequest $request, Model $model, Model $related): RedirectResponse
{
$field = $request->resolved();

$related->setRelation('parent', $model);

$fields = $field->resolveFields($request)->available($request, $model, $related);

$request->validate($fields->mapToValidate($request, $related));

$fields->each->persist($request, $related);

$related->save();

$path = sprintf('%s/%s/edit', $request->resolved()->resolveUri($request), $related->getKey());

return Redirect::to($path)
->with('alerts.relation-updated', Alert::success(__('The relation has been updated!')));
}

/**
* Remove the specified resource from storage.
*
* @param \Cone\Root\Http\Requests\ResourceRequest $request
* @param \Illuminate\Database\Eloquent\Model $model
* @param \Illuminate\Database\Eloquent\Model $related
* @return \Illuminate\Http\RedirectResponse
*/
public function destroy(ResourceRequest $request, Model $model, Model $related): RedirectResponse
{
$trashed = class_uses_recursive(SoftDeletes::class) && $related->trashed();

$trashed ? $related->forceDelete() : $related->delete();

$path = $request->resolved()->resolveUri($request);

return Redirect::to($path)
->with('alerts.relation-deleted', Alert::success(__('The relation has been deleted!')));
}
}
2 changes: 1 addition & 1 deletion src/Resources/Resource.php
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,7 @@ public function toShow(Request $request, Model $model): array
->subResource()
->authorized($request, $model)
->map(static function (Relation $relation) use ($request, $model): array {
return $relation->toIndex($request, $model);
return $relation->toSubResource($request, $model);
}),
]);
}
Expand Down

0 comments on commit 2c9e57c

Please sign in to comment.