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_spaces_around_offset' => true,
'no_unused_imports' => true,
'no_whitespace_before_comma_in_array' => true,
'no_whitespace_in_blank_line' => true,
'object_operator_without_whitespace' => true,
'single_blank_line_before_namespace' => true,
'ternary_operator_spaces' => true,
'trim_array_spaces' => true,
'unary_operator_spaces' => true,
'whitespace_after_comma_in_array' => true,
'single_line_after_imports' => true,
'ordered_imports' => [
'sort_algorithm' => 'none',
],
//'single_blank_line_before_namespace' => true, php fixer doesn't like this rule?
//Other rules here...
])
->setLineEnding("\n");

View file

@ -1,9 +1,7 @@
{
"plugins": ["@shufo/prettier-plugin-blade"],
"overrides": [
{
"files": ".prettierrc",
"options": { "parser": "json" }
},
{ "files": ".prettierrc", "options": { "parser": "json" } },
{
"files": "*.css",
"options": {
@ -31,6 +29,10 @@
"tabWidth": 4,
"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' ? $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', [
"status" => $this->member::status(),
"mode" => $mode,
"page" => $page,
"views" => $views,
"title" => $title,
"status" => $this->member::status(),
"mode" => $mode,
"page" => $page,
"views" => $views,
"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
$title = urldecode($title);
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 = "";
}
@endphp
@section('title', 'The Dash | Editing '. $title)
@section('main-content')
<section data-index="{{ $id }}" data-uuid="{{ $uuid }}" data-slug="{{ $slug }}" data-layout="{{ $layout }}" class="file-manager">
@if($feature == '')
<div class="file-drop">
<label for="page-files-upload">DRAG AND DROP FILES OR CLICK TO SELECT</label>
@section('main-content')
<section data-index="{{$id}}" data-uuid="{{$uuid}}" data-slug="{{$slug}}" data-layout="{{$layout}}" class="file-manager">
@if($feature == '')
<div class="file-drop">
<label for="page-files-upload">DRAG AND DROP FILES OR CLICK TO SELECT</label>
</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>
<label class="list-title">IMAGES AND VIDEO</label>
<div id="page-images-list" class="page-images-list">
@include('includes.media-list')
</div>
<label class="list-title">FILES</label>
<div class="page-files-list">
@include('includes.files-list')
</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>
<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>
<label class="list-title">IMAGES AND VIDEO</label>
<div id="page-images-list" class="page-images-list">
@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
</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>
<label class="list-title">FILES</label>
<div class="page-files-list">
@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
</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
</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'])
{
@ -28,26 +27,25 @@ if(isset($page['uuid']))
}else{
$uuid = 1;
}
@endphp
?>
<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">
<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>
</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">
<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>
</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">
<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>
</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">
<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>
</button>
</a>
</div>
</div>