cleaned up page edit template, fix formatting

cleaned up the page edit template a bit to make it easier to convert to
the new editor UI.

php formatting also needed to be updated, so the php cs fixer file was
updated and added some setting to prettier to handle blade files
This commit is contained in:
RXP 2025-05-08 18:25:57 -06:00
parent 47dfdbb7fc
commit 16856f6c25
Signed by: ro
GPG key ID: 976711B5057688B7
7 changed files with 221 additions and 215 deletions

View file

@ -55,20 +55,15 @@ return $config
] ]
], ],
'no_multiline_whitespace_around_double_arrow' => true, 'no_multiline_whitespace_around_double_arrow' => true,
'no_spaces_around_offset' => true,
'no_unused_imports' => true,
'no_whitespace_before_comma_in_array' => true, 'no_whitespace_before_comma_in_array' => true,
'no_whitespace_in_blank_line' => true, 'no_whitespace_in_blank_line' => true,
'object_operator_without_whitespace' => true, 'object_operator_without_whitespace' => true,
'single_blank_line_before_namespace' => true,
'ternary_operator_spaces' => true, 'ternary_operator_spaces' => true,
'trim_array_spaces' => true, 'trim_array_spaces' => true,
'unary_operator_spaces' => true, 'unary_operator_spaces' => true,
'whitespace_after_comma_in_array' => true, 'whitespace_after_comma_in_array' => true,
'single_line_after_imports' => true, 'single_line_after_imports' => true,
'ordered_imports' => [ //'single_blank_line_before_namespace' => true, php fixer doesn't like this rule?
'sort_algorithm' => 'none',
],
//Other rules here... //Other rules here...
]) ])
->setLineEnding("\n"); ->setLineEnding("\n");

View file

@ -1,9 +1,7 @@
{ {
"plugins": ["@shufo/prettier-plugin-blade"],
"overrides": [ "overrides": [
{ { "files": ".prettierrc", "options": { "parser": "json" } },
"files": ".prettierrc",
"options": { "parser": "json" }
},
{ {
"files": "*.css", "files": "*.css",
"options": { "options": {
@ -31,6 +29,10 @@
"tabWidth": 4, "tabWidth": 4,
"printWidth": 90 "printWidth": 90
} }
},
{
"files": ["*.blade.php"],
"options": { "parser": "blade", "tabWidth": 4 }
} }
] ]
} }

View file

@ -92,12 +92,50 @@ class DashController extends Controller
$mode == 'edit' ? $title = $page['title'] : $title = 'Add New'; $mode == 'edit' ? $title = $page['title'] : $title = 'Add New';
$mode == 'edit' ? $views = $this->themes->getCustomViews($page['layout']) : $views[] = 'page'; $mode == 'edit' ? $views = $this->themes->getCustomViews($page['layout']) : $views[] = 'page';
//just a patch for now to get this out of the template
if ($mode == 'edit') {
$id = $page['id'];
$uuid = $page['uuid'];
$slug = $page['slug'];
$feature = $page['feature'];
$layout = $page['layout'];
$tags = $page['tags'];
$content = $page['content'];
$date = $page['created'];
$updated = $page['updated'];
$media = $page['media'];
$files = $page['docs'];
} else {
$id = "";
$uuid = "";
$slug = "";
$feature = "";
$layout = "";
$tags = "";
$content = "";
$date = "";
$updated = "";
$media = "";
$files = "";
};
return view('back.page', [ return view('back.page', [
"status" => $this->member::status(), "status" => $this->member::status(),
"mode" => $mode, "mode" => $mode,
"page" => $page, "page" => $page,
"views" => $views, "views" => $views,
"title" => $title, "id" => $id,
"uuid" => $uuid,
"slug" => $slug,
"feature" => $feature,
"layout" => $layout,
"tags" => $tags,
"content" => $content,
"date" => $date,
"updated" => $updated,
"media" => $media,
"files" => $files,
"title" => urldecode($title),
]); ]);
} }

View file

@ -1,191 +1,82 @@
@extends('frame') @extends('frame')
@section('title', 'The Dash | Editing '. $title)
@php @section('main-content')
$title = urldecode($title); <section data-index="{{$id}}" data-uuid="{{$uuid}}" data-slug="{{$slug}}" data-layout="{{$layout}}" class="file-manager">
if($mode == 'edit') @if($feature == '')
{ <div class="file-drop">
$id = $page['id']; <label for="page-files-upload">DRAG AND DROP FILES OR CLICK TO SELECT</label>
$uuid = $page['uuid']; </div>
$slug = $page['slug']; <label class="list-title">IMAGES AND VIDEO</label>
$feature = $page['feature']; <div id="page-images-list" class="page-images-list"></div>
$layout = $page['layout']; <label class="list-title">FILES</label>
$tags = $page['tags']; <div class="page-files-list"></div>
$content = $page['content']; @else
$date = $page['created']; <div class="file-drop">
$updated = $page['updated']; <label for="page-files-upload">DRAG AND DROP FILES OR CLICK TO SELECT</label>
$media = $page['media']; </div>
$files = $page['docs']; <label class="list-title">IMAGES AND VIDEO</label>
}else{ <div id="page-images-list" class="page-images-list">
$id = ""; @include('includes.media-list')
$uuid = ""; </div>
$slug = ""; <label class="list-title">FILES</label>
$feature = ""; <div class="page-files-list">
$layout = ""; @include('includes.files-list')
$tags = ""; </div>
$content = ""; @endif
$date = ""; </section>
$updated = ""; <section class="page-meta">
$media = ""; <div class="page-meta-wrapper">
$files = ""; <div class="page-title">
} <strong>TITLE</strong>
@endphp <textarea id="post-title-text" class="input-dark" type="text" name="post-title-text" class="post-edit" placeholder="TITLE">{{$title}}</textarea>
@section('title', 'The Dash | Editing '. $title) </div>
<div class="page-tags">
@section('main-content') <strong>TAGS</strong>
<section data-index="{{ $id }}" data-uuid="{{ $uuid }}" data-slug="{{ $slug }}" data-layout="{{ $layout }}" class="file-manager"> <textarea id="post-tags" class="input-dark" type="text" name="post-tags" class="form-control" placeholder="tags [comma seperated]">{{$tags}}</textarea>
@if($feature == '') </div>
<div class="file-drop"> <div class="page-layouts">
<label for="page-files-upload">DRAG AND DROP FILES OR CLICK TO SELECT</label> <strong>LAYOUTS</strong>
<select id="page-templates">
@foreach($views as $view)
@if($view == $layout)
<option value= {{$view}} selected>{{$view}}</option>
@else
<option value= {{$view}}>{{$view}}</option>
@endif
@endforeach
</select>
</div>
<div class="page-options">
<strong>OPTIONS</strong>
@include('includes.options')
</div>
<div class="page-updated">
<strong>UPDATED</strong>
<span id="post-date" type="text">
{{$updated}}
</span>
</div>
<div class="page-created">
<strong>CREATED</strong>
<span id="post-date" type="text">
{{$date}}
</span>
<input id="page-files-upload" type="file" name="page-files-upload" multiple />
<input id="post-image-upload" type="file" name="post-image-upload" />
<input id="form_token" name="token" type="hidden" value="needtoaddtoken">
</div>
</div> </div>
<label class="list-title">IMAGES AND VIDEO</label>
<div id="page-images-list" class="page-images-list"></div>
<label class="list-title">FILES</label>
<div class="page-files-list"></div>
@else
<div class="file-drop">
<label for="page-files-upload">DRAG AND DROP FILES OR CLICK TO SELECT</label>
</div> </div>
<label class="list-title">IMAGES AND VIDEO</label> </section>
<div id="page-images-list" class="page-images-list"> <section class="text-editor">
@if(count($media)>1) @include('includes.editor')
@foreach($media as $item) <div class="edit-post-wrapper">
@if($item['type'] == "mp4") <textarea id="edit" spellcheck="false" class="language-md">{{$content}}</textarea>
<div id="{{ $loop->index }}" class="video-item" data-id="{{ $item['file'] }}"> <pre id="highlight"><code id="highlight-content" class="language-md"></code></pre>
<video>
<source src="{{ $item['file'] }}"/>
</video>
<button id="{{ $loop->index }}" class="media-remove">
X
</button>
</div>
@else
<div id="{{ $loop->index }}" class="img-item" data-id="{{ $item['file'] }}" style="background: url({{ $item['file'] }}) no-repeat center center / cover">
<button id="{{ $loop->index }}" class="media-remove">
X
</button>
</div>
@endif
@endforeach
@else
@if($media[0] != '')
@if($media[0]['type'] == "mp4")
<div id="0" class="video-item" data-id="{{ $media[0]['file'] }}">
<button id="0" class="media-remove">X</button>
</div>
@else
<div id="0" class="img-item" data-id="{{ $media[0]['file'] }}" style="background: url({{ $media[0]['file'] }}) no-repeat center center / cover">
<button id="0" class="media-remove">X</button>
</div>
@endif
@endif
@endif
</div> </div>
<label class="list-title">FILES</label> </section>
<div class="page-files-list"> @endsection
@if(count($files) > 1) @section('scripting')
@foreach($files as $item) <script type="module" src="/assets/scripts/dash/app/EditPage.js"></script>
@php @endsection
$fileName = explode("/", $item['file']);
@endphp
@if($item['type'] == "mp3")
<div id="{{ $loop->index }}" class="audio-item" data-id="{{ $item['file'] }}">
<audio controls>
<source src="{{ $item['file'] }}"/>
</audio>
<button id="{{ $loop->index }}" class="media-remove">
X
</button>
</div>
@else
<div id="{{ $loop->index }}" class="file-item" data-id="{{ $item['file'] }}">
<a href="{{ $item['file'] }}" target="_blank">{{ $fileName[6] }}"</a>
<button id="{{ $loop->index }}" class="media-remove">
X
</button>
</div>
@endif
@endforeach
@else
@if(isset($files[0]) && $files[0] != '')
@php
$fileName = explode("/", $item['file']);
@endphp
@if($files[0]['type'] == "mp3")
<div id="0" class="audio-item" data-id="{{ $files[0]['file'] }}">
<audio controls>
<source src="{{ $files[0]['file'] }}"/>
</audio>
<button id="{{ $loop->index }}" class="media-remove">
X
</button>
</div>
@else
<div id="0" class="file-item" data-id="{{ $files[0]['file'] }}">
<a href="{{ $item['file'] }}" target="_blank">{{ $fileName[6] }}"</a>
<button id="{{ $loop->index }}" class="media-remove">
X
</button>
</div>
@endif
@else
@endif
@endif
</div>
@endif
</section><section class="page-meta">
<div class="page-meta-wrapper">
<div class="page-title">
<strong>TITLE</strong>
<textarea id="post-title-text" class="input-dark" type="text" name="post-title-text" class="post-edit" placeholder="TITLE">{{ $title }}</textarea>
</div>
<div class="page-tags">
<strong>TAGS</strong>
<textarea id="post-tags" class="input-dark" type="text" name="post-tags" class="form-control" placeholder="tags [comma seperated]">{{ $tags }}</textarea>
</div>
<div class="page-layouts">
<strong>LAYOUTS</strong>
<select id="page-templates">
@foreach($views as $view)
@if($view == $layout)
<option value={{ $view }} selected>{{ $view }}</option>
@else
<option value={{ $view }}>{{ $view }}</option>
@endif
@endforeach
</select>
</div>
<div class="page-options">
<strong>OPTIONS</strong>
@include('includes.options')
</div>
<div class="page-updated">
<strong>UPDATED</strong>
<span id="post-date" type="text">
{{ $updated }}
</span>
</div>
<div class="page-created">
<strong>CREATED</strong>
<span id="post-date" type="text">
{{ $date }}
</span>
<input id="page-files-upload" type="file" name="page-files-upload" multiple/>
<input id="post-image-upload" type="file" name="post-image-upload"/>
<input id="form_token" name="token" type="hidden" value="needtoaddtoken"></div>
</div>
</div>
</section>
<section class="text-editor">
@include('includes.editor')
<div class="edit-post-wrapper">
<textarea id="edit" spellcheck="false" class="language-md">{{ $content }}</textarea>
<pre id="highlight"><code id="highlight-content" class="language-md"></code></pre>
</div>
</section>
@endsection
@section('scripting')
<script type="module" src="/assets/scripts/dash/app/EditPage.js"></script>
@endsection

View file

@ -0,0 +1,50 @@
@if(count($files) > 1)
@foreach($files as $item)
@php
$fileName = explode("/", $item['file']);
@endphp
@if($item['type'] == "mp3")
<div id="{{$loop->index}}" class="audio-item" data-id="{{$item['file']}}">
<audio controls>
<source src="{{$item['file']}}" />
</audio>
<button id="{{$loop->index}}" class="media-remove">
X
</button>
</div>
@else
<div id="{{$loop->index}}" class="file-item" data-id="{{$item['file']}}">
<a href="{{$item['file']}}" target="_blank">{{$fileName[6]}}"</a>
<button id="{{$loop->index}}" class="media-remove">
X
</button>
</div>
@endif
@endforeach
@else
@if(isset($files[0]) && $files[0] != '')
@php
$fileName = explode("/", $item['file']);
@endphp
@if($files[0]['type'] == "mp3")
<div id="0" class="audio-item" data-id="{{$files[0]['file']}}">
<audio controls>
<source src="{{$files[0]['file']}}" />
</audio>
<button id="{{$loop->index}}" class="media-remove">
X
</button>
</div>
@else
<div id="0" class="file-item" data-id="{{$files[0]['file']}}">
<a href="{{$item['file']}}" target="_blank">{{$fileName[6]}}"</a>
<button id="{{$loop->index}}" class="media-remove">
X
</button>
</div>
@endif
@else
@endif
@endif

View file

@ -0,0 +1,32 @@
@if(count($media)>1)
@foreach($media as $item)
@if($item['type'] == "mp4")
<div id="{{$loop->index}}" class="video-item" data-id="{{$item['file']}}">
<video>
<source src="{{$item['file']}}" />
</video>
<button id="{{$loop->index}}" class="media-remove">
X
</button>
</div>
@else
<div id="{{$loop->index}}" class="img-item" data-id="{{$item['file']}}" style="background: url({{$item['file']}}) no-repeat center center / cover">
<button id="{{$loop->index}}" class="media-remove">
X
</button>
</div>
@endif
@endforeach
@else
@if($media[0] != '')
@if($media[0]['type'] == "mp4")
<div id="0" class="video-item" data-id="{{$media[0]['file']}}">
<button id="0" class="media-remove">X</button>
</div>
@else
<div id="0" class="img-item" data-id="{{$media[0]['file']}}" style="background: url({{$media[0]['file']}}) no-repeat center center / cover">
<button id="0" class="media-remove">X</button>
</div>
@endif
@endif
@endif

View file

@ -1,5 +1,4 @@
<?php
@php
if(isset($page['menu']) && $page['menu']) if(isset($page['menu']) && $page['menu'])
{ {
@ -28,26 +27,25 @@ if(isset($page['uuid']))
}else{ }else{
$uuid = 1; $uuid = 1;
} }
?>
@endphp
<div role="toolbar" aria-label="page options" aria-orientation="horizontal"> <div role="toolbar" aria-label="page options" aria-orientation="horizontal">
<button id="option-menu-pin" class="option-inactive post-option-btn" data-active="{{ $menu }}" title='Pin to Menu' aria-label="pin to menu"> <button id="option-menu-pin" class="option-inactive post-option-btn" data-active="{{$menu}}" title='Pin to Menu' aria-label="pin to menu">
<svg id="option-menu-pin" class="icon"> <svg id="option-menu-pin" class="icon">
<use id="option-menu-pin" xlink:href="/assets/images/global/sprite.svg#entypo-pin"/> <use id="option-menu-pin" xlink:href="/assets/images/global/sprite.svg#entypo-pin" />
</svg> </svg>
</button><button id="option-feature" class="option-inactive post-option-btn" data-active="{{ $featured }}" title='Feature' aria-label="feature post toggle"> </button><button id="option-feature" class="option-inactive post-option-btn" data-active="{{$featured}}" title='Feature' aria-label="feature post toggle">
<svg id="option-feature-icon" class="icon"> <svg id="option-feature-icon" class="icon">
<use id="option-feature-icon" xlink:href="/assets/images/global/sprite.svg#entypo-star"/> <use id="option-feature-icon" xlink:href="/assets/images/global/sprite.svg#entypo-star" />
</svg> </svg>
</button><button id="option-published" class="option-inactive post-option-btn" data-active="{{ $published }}" title='Published' aria-label="publish post toggle"> </button><button id="option-published" class="option-inactive post-option-btn" data-active="{{$published}}" title='Published' aria-label="publish post toggle">
<svg id="option-published-icon" class="icon"> <svg id="option-published-icon" class="icon">
<use id="option-published-icon" xlink:href="/assets/images/global/sprite.svg#entypo-globe"/> <use id="option-published-icon" xlink:href="/assets/images/global/sprite.svg#entypo-globe" />
</svg> </svg>
</button><a href="/theme/view/page/{{ $uuid }}" target="_blank"><button id="option-preview" class="option-inactive post-option-btn" data-active="false" title='preview page' aria-label="preview post"> </button><a href="/theme/view/page/{{$uuid}}" target="_blank"><button id="option-preview" class="option-inactive post-option-btn" data-active="false" title='preview page' aria-label="preview post">
<svg id="option-preview-icon" class="icon"> <svg id="option-preview-icon" class="icon">
<use id="option-preview-icon" xlink:href="/assets/images/global/sprite.svg#entypo-eye"/> <use id="option-preview-icon" xlink:href="/assets/images/global/sprite.svg#entypo-eye" />
</svg> </svg>
</button> </button>
</a> </a>
</div> </div>