A lot of things
This commit is contained in:
@@ -15,8 +15,14 @@
|
||||
</div>
|
||||
<div class="form-gallery form-group level" style="flex:4;">
|
||||
<template x-for="(image,i) in images" :key="image.key">
|
||||
<div class="gallery-item">
|
||||
<div class="gallery-item" :class="{ 'gallery-item--dragging': dragSrcI === i }" draggable="true" @dragstart="dragStart(i)" @dragover="dragOver($event, i)" @dragend="dragEnd()">
|
||||
<div class="form-image-preview-wrap">
|
||||
<div class="gallery-drag-handle" title="Drag to reorder">
|
||||
<i data-lucide="grip-vertical" size="14"></i>
|
||||
</div>
|
||||
|
||||
<span class="gallery-order-badge" x-text="i + 1"></span>
|
||||
|
||||
<img :src="image.preview" :alt="image.name">
|
||||
<button type="button" class="form-image-remove" @click="handleRemoveFile(i)">
|
||||
X
|
||||
|
||||
@@ -1,12 +1,7 @@
|
||||
<nav id="menu">
|
||||
|
||||
<div class="menu-header">
|
||||
<div class="menu-logo">
|
||||
RP
|
||||
</div>
|
||||
<div class="menu-title">
|
||||
Romhack Plaza
|
||||
</div>
|
||||
<img src="{{ asset('logo/plaza-logo-wide.png') }}">
|
||||
</div>
|
||||
|
||||
<div class="menu-navigation">
|
||||
@@ -15,7 +10,7 @@
|
||||
<div class="menu-group">
|
||||
<div class="menu-group-title">{{ $menu['name'] }}</div>
|
||||
@foreach( $menu['items'] as $item )
|
||||
@if( !isset( $item['requires_auth'] ) || $item['requires_auth'] && !\Auth::guest() )
|
||||
@if( !isset( $item['requires_auth'] ) || $item['requires_auth'] === true && !\Auth::guest() )
|
||||
<a href="{{ isset($item['xf_route']) ? xfRoute($item['xf_route']) : route($item['route']) }}"
|
||||
@class(['menu-item', 'active' => request()->routeIs( $item['route'] ?? '' )]) >
|
||||
<i data-lucide="{{ $item['icon'] }}"></i><span>{{ $item['name'] }}</span>
|
||||
|
||||
41
resources/views/components/news-card.blade.php
Normal file
41
resources/views/components/news-card.blade.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<a href="{{ route('news.show', $news->slug) }}" class="news-card">
|
||||
<div class="news-card-cover"
|
||||
style="background-image:
|
||||
linear-gradient(rgba(0,0,0,0.1), rgba(20,20,20,0.9)),
|
||||
url('{{ $news->gallery()->first() ? Storage::url($news->gallery()->first()->image) : '' }}')">
|
||||
@if($news->state !== 'published')
|
||||
<span class="news-card-state-badge">
|
||||
@if($news->state === 'pending')
|
||||
<i data-lucide="clock" size="11"></i> Pending
|
||||
@elseif($news->state === 'draft')
|
||||
<i data-lucide="scissors" size="11"></i> Draft
|
||||
@elseif($news->state === 'hidden')
|
||||
<i data-lucide="eye-off" size="11"></i> Hidden
|
||||
@endif
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
<div class="news-card-body">
|
||||
<h2 class="news-card-title">{{ $news->title }}</h2>
|
||||
@if($news->description)
|
||||
<p class="news-card-excerpt">
|
||||
{{ Str::limit(strip_tags($news->description), 100) }}
|
||||
</p>
|
||||
@endif
|
||||
<div class="news-card-meta">
|
||||
@if($news->user_id)
|
||||
<span><i data-lucide="user" size="12"></i>
|
||||
<x-xf-username-link :user-id="$news->user_id"/>
|
||||
</span>
|
||||
@endif
|
||||
<span><i data-lucide="calendar" size="12"></i>
|
||||
{{ $news->created_at->format('M d, Y') }}
|
||||
</span>
|
||||
@if($news->gallery->isNotEmpty())
|
||||
<span><i data-lucide="images" size="12"></i>
|
||||
{{ $news->gallery->count() }}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
13
resources/views/components/news-category-selector.blade.php
Normal file
13
resources/views/components/news-category-selector.blade.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php /** @var \App\Models\Category $category */ ?>
|
||||
<div class="form-group">
|
||||
<select class="form-select" name="category">
|
||||
<option value="" disabled {{ empty($selected) ? 'selected' : '' }} hidde*>
|
||||
Select a category...
|
||||
</option>
|
||||
@foreach($categories as $category)
|
||||
<option value="{{ $category->id }}" {{ in_array($category->id, (array) $selected) ? 'selected' : '' }}>
|
||||
{{ $category->name }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
@@ -32,25 +32,6 @@
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="settings-separator"></div>
|
||||
|
||||
<div class="settings-section">
|
||||
<div class="settings-section-title">
|
||||
<i data-lucide="layout-grid" size="14"></i>
|
||||
Entries per page
|
||||
</div>
|
||||
<div class="settings-perpage">
|
||||
<template x-for="n in $store.settings.entriesPerPage" :key="n">
|
||||
<button
|
||||
type="button"
|
||||
class="settings-perpage-btn"
|
||||
:class="{ 'active': $store.settings.currentEntriesPerPage == n }"
|
||||
@click="$store.settings.entriesPerPageChanged(n)"
|
||||
x-text="n"
|
||||
></button>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<div class="settings-separator"></div>
|
||||
|
||||
@auth
|
||||
@@ -67,6 +48,4 @@
|
||||
</div>
|
||||
@endauth
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
nsfw: null,
|
||||
state: '{{ old('submit-state', $defaultState) }}',
|
||||
deleteOpen: false,
|
||||
featuredOpen: false,
|
||||
init(){
|
||||
this.$watch('nsfw', (val) => {
|
||||
if( val && this.state === 'published' ) {
|
||||
@@ -11,6 +12,13 @@
|
||||
}
|
||||
}" x-init="init()">
|
||||
@if($isEdit)
|
||||
@if(!$news && $entry && !$entry->featured )
|
||||
<div>
|
||||
<button type="button" id="entry-featured-button" class="btn" @click="featuredOpen = true; $dispatch('modal:opened')">
|
||||
<i data-lucide="star" size="13"></i> Featured
|
||||
</button>
|
||||
</div>
|
||||
@endif
|
||||
<div>
|
||||
<button type="button" class="btn danger" @click="deleteOpen = true; $dispatch('modal:opened')">
|
||||
<i data-lucide="trash-2" size="13"></i> Delete
|
||||
@@ -35,6 +43,46 @@
|
||||
</select>
|
||||
|
||||
@if($isEdit)
|
||||
@if(!$news && $entry && !$entry->featured )
|
||||
<template x-teleport="body">
|
||||
<div
|
||||
class="modal-overlay"
|
||||
x-cloak
|
||||
x-show="featuredOpen"
|
||||
x-transition.opacity
|
||||
@click.self="featuredOpen = false"
|
||||
@keydown.escape.window="featuredOpen = false"
|
||||
@modal:opened.window="refreshIcons($el)"
|
||||
>
|
||||
<div class="modal-window" x-show="featuredOpen" x-transition>
|
||||
<div class="modal-header">
|
||||
<span class="modal-title">Request as featured</span>
|
||||
<button type="button" class="modal-close" @click="featuredOpen = false">
|
||||
<i data-lucide="x" size="20"></i>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="modal-body" id="entry-featured-body">
|
||||
<p style="margin-bottom: 1.5rem; color: var(--text, #333);">
|
||||
Please do not overuse this feature. Send only one request at a time.
|
||||
</p>
|
||||
|
||||
<div class="queue-mod-actions" id="entry-featured-actions">
|
||||
<button type="button" class="btn" @click="featuredOpen = false">
|
||||
Cancel
|
||||
</button>
|
||||
<button type="button" class="btn" @click="Submission().requestFeatured({{ $entry->id }})">
|
||||
<i data-lucide="star" size="14"></i>
|
||||
Request as featured
|
||||
</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@endif
|
||||
<template x-teleport="body">
|
||||
<div
|
||||
class="modal-overlay"
|
||||
@@ -58,7 +106,7 @@
|
||||
Are you sure you want to delete this entry? This action cannot be undone.
|
||||
</p>
|
||||
|
||||
<form action="{{ route('submit.destroy', ['section' => $section, 'entry' => $entry ]) }}" method="POST">
|
||||
<form action="{{ $news ? route('news.destroy', [ 'news' => $news ] ) : route('submit.destroy', ['section' => $section, 'entry' => $entry ]) }}" method="POST">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
{{-- Users --}}
|
||||
@can('create','\App\Models\Entry')
|
||||
<a href="#" class="btn">
|
||||
<a href="{{ route('submit.index') }}" class="btn">
|
||||
<i data-lucide="hard-drive-upload" size="18"></i>
|
||||
</a>
|
||||
@endcan
|
||||
@@ -78,7 +78,7 @@
|
||||
@include('components.conversations')
|
||||
</div>
|
||||
@endif
|
||||
<div x-data style="position: relative;" x-init="$store.settings.xfUrls = { 'default': '{{ xfStyleVariationUrl( 'default' ) }}', 'alternate': '{{ xfStyleVariationUrl( 'alternate' ) }}' }">
|
||||
<div x-data style="position: relative;" x-init="$store.settings.xfUrls = { 'default': '{{ xfStyleVariationUrl( 'default' ) }}', 'alternate': '{{ xfStyleVariationUrl( 'alternate' ) }}' }; $store.settings.currentTheme = '{{ userTheme() }}'">
|
||||
<button
|
||||
type="button"
|
||||
class="btn"
|
||||
|
||||
Reference in New Issue
Block a user