mirror of
https://github.com/Deathgarden-Rebirth/Deathgarden_Rebirth-Rewrite.git
synced 2026-09-09 03:35:14 -05:00
Created some more input components and added all attributes to game news entry.
Also added Route and function for accepting post in GameNewsController
This commit is contained in:
@@ -23,4 +23,8 @@ public function index()
|
||||
|
||||
return view('admin.tools.game-news', ['newsList' => $news]);
|
||||
}
|
||||
|
||||
public function put() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
3
dist/app/Models/Game/Messages/News.php
vendored
3
dist/app/Models/Game/Messages/News.php
vendored
@@ -9,6 +9,7 @@
|
||||
use Illuminate\Database\Eloquent\Concerns\HasUuids;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Carbon;
|
||||
|
||||
/**
|
||||
* @mixin IdeHelperNews
|
||||
@@ -21,5 +22,7 @@ class News extends Model
|
||||
'message_type' => MessageType::class,
|
||||
'redirect_mode' => GameNewsRedirectMode::class,
|
||||
'faction' => Faction::class,
|
||||
'from_date' => 'datetime:Y-m-d H:i:s',
|
||||
'to_date' => 'datetime:Y-m-d H:i:s',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -9,13 +9,18 @@
|
||||
|
||||
class GameNewsListEntry extends Component
|
||||
{
|
||||
public string $idPrefix;
|
||||
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*/
|
||||
public function __construct(
|
||||
public News $news
|
||||
public News $news,
|
||||
?string $idPrefix = null,
|
||||
)
|
||||
{}
|
||||
{
|
||||
$this->idPrefix = $idPrefix === null ? '' : $idPrefix.'_';
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
|
||||
36
dist/resources/css/inputs-global.scss
vendored
36
dist/resources/css/inputs-global.scss
vendored
@@ -1,5 +1,9 @@
|
||||
[class^='input-global-'] {
|
||||
@apply transition-colors rounded-md border bg-gray-800 border-gray-600;
|
||||
}
|
||||
|
||||
.input-global-text {
|
||||
@apply rounded-md border border-gray-600 bg-gray-800 px-4 py-2 text-base outline-none focus-within:border-indigo-600 whitespace-nowrap;
|
||||
@apply px-4 py-2 text-base outline-none focus-within:border-indigo-600 whitespace-nowrap;
|
||||
flex-grow: 1;
|
||||
|
||||
input {
|
||||
@@ -23,7 +27,7 @@
|
||||
}
|
||||
|
||||
.input-global-textarea {
|
||||
@apply px-4 py-2 rounded-md bg-gray-800 border-gray-600 border w-auto outline-none focus-within:border-indigo-600 resize-y text-nowrap;
|
||||
@apply px-4 py-2 w-auto outline-none focus-within:border-indigo-600 resize-y text-nowrap;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
@@ -32,9 +36,33 @@
|
||||
}
|
||||
|
||||
.input-global-dropdown {
|
||||
@apply rounded-md border border-gray-600 bg-gray-800 px-4 py-2 text-base outline-none focus:border-indigo-600;
|
||||
@apply px-4 py-2 text-base outline-none focus:border-indigo-600;
|
||||
|
||||
option {
|
||||
@apply bg-gray-800 px-4 py-2 rounded-sm;
|
||||
@apply px-4 py-2 rounded-sm;
|
||||
}
|
||||
}
|
||||
|
||||
.input-global-date {
|
||||
@apply px-4 py-2 text-base outline-none focus:border-indigo-600;
|
||||
}
|
||||
|
||||
.input-global-number {
|
||||
@apply px-4 py-2 text-base outline-none focus:border-indigo-600;
|
||||
}
|
||||
|
||||
.input-global-submit {
|
||||
@apply px-4 py-2 text-base outline-none focus:border-indigo-600 hover:bg-gray-600;
|
||||
|
||||
&.save {
|
||||
@apply bg-blue-800 border-blue-600 hover:bg-blue-600;
|
||||
}
|
||||
|
||||
&.delete {
|
||||
@apply bg-rose-800 border-rose-600 hover:bg-rose-600;
|
||||
}
|
||||
|
||||
&.create {
|
||||
@apply bg-green-800 border-green-600 hover:bg-green-600;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
])
|
||||
|
||||
<x-layouts.admin>
|
||||
<div class="h-full w-full p-1 md:p-16">
|
||||
<div class="h-full w-full p-2 md:p-16">
|
||||
@foreach($newsList as $news)
|
||||
<x-admin.tools.game-news-list-entry :$news />
|
||||
@endforeach
|
||||
|
||||
@@ -4,75 +4,101 @@
|
||||
use App\Enums\Game\Faction;
|
||||
use App\Enums\Game\Message\GameNewsRedirectMode;
|
||||
/** @var News $news */
|
||||
/** @var string $idPrefix */
|
||||
@endphp
|
||||
|
||||
@pushonce('head')
|
||||
@vite(['resources/css/components/admin/tools/game-news-list-entry.scss'])
|
||||
@endpushonce
|
||||
|
||||
<div class="container mx-auto bg-slate-800 border border-slate-500 rounded-xl my-2 p-2 shadow-glow shadow-gray-400/30">
|
||||
<div class="game-news-entry-attributes">
|
||||
<div>
|
||||
<label for="title">Title</label>
|
||||
<x-inputs.text value="{{ $news->title }}" />
|
||||
<div class="container mx-auto bg-slate-800 border border-slate-500 rounded-xl my-6 p-2 shadow-glow shadow-gray-400/30">
|
||||
<form action="{{ route('gamenews.post', ['newsId' => $news->uuid]) }}" method="post">
|
||||
@csrf
|
||||
<div class="game-news-entry-attributes">
|
||||
<div>
|
||||
<label for="title">Title</label>
|
||||
<x-inputs.text value="{{ $news->title }}"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="description">Description</label>
|
||||
<x-inputs.text-area id="{{ $idPrefix }}description">{{ $news->body }}</x-inputs.text-area>
|
||||
</div>
|
||||
<div>
|
||||
<label for="messageType">Message Type</label>
|
||||
<x-inputs.dropdown
|
||||
id="messageType"
|
||||
:cases="MessageType::cases()"
|
||||
:selected="$news->message_type"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="faction">Faction</label>
|
||||
<x-inputs.dropdown
|
||||
id="faction"
|
||||
:cases="Faction::cases()"
|
||||
:selected="$news->faction"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="oneTime">One Time News</label>
|
||||
<x-inputs.checkbox :checked="$news->one_time_news"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="oneTime">Should Quit Game</label>
|
||||
<x-inputs.checkbox id="oneTime" :checked="$news->should_quit_game"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="oneMatch">Complete One Match</label>
|
||||
<x-inputs.checkbox id="oneMatch" :checked="$news->one_match"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="redirectMode">Redirect Mode</label>
|
||||
<x-inputs.dropdown
|
||||
id="faction"
|
||||
:cases="GameNewsRedirectMode::cases()"
|
||||
:selected="$news->redirect_mode"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="redirectItem">Redirect Item</label>
|
||||
<x-inputs.text id="redirectItem" value="{{ $news->redirect_item }}"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="redirectUrl">Redirect Url</label>
|
||||
<x-inputs.text id="redirectUrl" value="{{ $news->redirect_url }}"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="PopUpBG">Pop-Up News Background</label>
|
||||
<x-inputs.text id="PopUpBG" value="{{ $news->background_image }}"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="inGameNewsBG">In Game News Background</label>
|
||||
<x-inputs.text id="inGameNewsBG" value="{{ $news->background_image }}"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="inGameNewsThumbnail">In Game News Thumbnail</label>
|
||||
<x-inputs.text id="inGameNewsThumbnail" value="{{ $news->background_image }}"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="fromDate">From Date</label>
|
||||
<x-inputs.date id="fromDate" value="{{ $news->from_date->toDateString() }}"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="toDate">To Date</label>
|
||||
<x-inputs.date id="toDate" value="{{ $news->to_date->toDateString() }}"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="displayXTimes">Display X Times</label>
|
||||
<x-inputs.number id="displayXTimes" min="0" value="{{ $news->display_x_times }}"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="maxPlayerLevel">Max Player Level</label>
|
||||
<x-inputs.number id="maxPlayerLevel" min="1" value="{{ $news->max_player_level }}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label for="description">Description</label>
|
||||
<x-inputs.text-area id="description">{{ $news->body }}</x-inputs.text-area>
|
||||
<div class="flex justify-start gap-6 mt-2">
|
||||
<x-inputs.submit>Stuff</x-inputs.submit>
|
||||
<x-inputs.submit class="save">Save</x-inputs.submit>
|
||||
<x-inputs.submit class="delete">Delete</x-inputs.submit>
|
||||
<x-inputs.submit class="create">Create</x-inputs.submit>
|
||||
</div>
|
||||
<div>
|
||||
<label for="messageType">Message Type</label>
|
||||
<x-inputs.dropdown
|
||||
id="messageType"
|
||||
:cases="MessageType::cases()"
|
||||
:selected="$news->message_type"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="faction">Faction</label>
|
||||
<x-inputs.dropdown
|
||||
id="faction"
|
||||
:cases="Faction::cases()"
|
||||
:selected="$news->faction"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="oneTime">One Time News</label>
|
||||
<x-inputs.checkbox :checked="$news->one_time_news" />
|
||||
</div>
|
||||
<div>
|
||||
<label for="oneTime">Should Quit Game</label>
|
||||
<x-inputs.checkbox id="oneTime" :checked="$news->should_quit_game" />
|
||||
</div>
|
||||
<div>
|
||||
<label for="oneMatch">Complete One Match</label>
|
||||
<x-inputs.checkbox id="oneMatch" :checked="$news->one_match" />
|
||||
</div>
|
||||
<div>
|
||||
<label for="redirectMode">Redirect Mode</label>
|
||||
<x-inputs.dropdown
|
||||
id="faction"
|
||||
:cases="GameNewsRedirectMode::cases()"
|
||||
:selected="$news->redirect_mode"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="redirectItem">Redirect Item</label>
|
||||
<x-inputs.text id="redirectItem" value="{{ $news->redirect_item }}" />
|
||||
</div>
|
||||
<div>
|
||||
<label for="redirectUrl">Redirect Url</label>
|
||||
<x-inputs.text id="redirectUrl" value="{{ $news->redirect_url }}"/>
|
||||
</div>
|
||||
<div>
|
||||
<label for="PopUpBG">Pop-Up News Background</label>
|
||||
<x-inputs.text id="PopUpBG" value="{{ $news->background_image }}" />
|
||||
</div>
|
||||
<div>
|
||||
<label for="inGameNewsBG">In Game News Background</label>
|
||||
<x-inputs.text id="inGameNewsBG" value="{{ $news->background_image }}" />
|
||||
</div>
|
||||
<div>
|
||||
<label for="inGameNewsThumbnail">In Game News Thumbnail</label>
|
||||
<x-inputs.text id="inGameNewsThumbnail" value="{{ $news->background_image }}" />
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
1
dist/resources/views/components/inputs/date.blade.php
vendored
Normal file
1
dist/resources/views/components/inputs/date.blade.php
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<input type="date" {{ $attributes->merge(['class' => 'input-global-date']) }}>
|
||||
1
dist/resources/views/components/inputs/number.blade.php
vendored
Normal file
1
dist/resources/views/components/inputs/number.blade.php
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<input type="number" {{ $attributes->merge(['class' => 'input-global-number']) }}>
|
||||
1
dist/resources/views/components/inputs/submit.blade.php
vendored
Normal file
1
dist/resources/views/components/inputs/submit.blade.php
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<button type="submit" {{ $attributes->merge(['class' => 'input-global-submit']) }}><span>{{ $slot }}</span></button>
|
||||
2
dist/routes/admin.php
vendored
2
dist/routes/admin.php
vendored
@@ -15,7 +15,7 @@
|
||||
Route::post('file-manager', [GameFileController::class, 'store'])->name('file.store');
|
||||
|
||||
Route::get('gamenews', [GameNewsController::class, 'index'])->name(GameNewsController::class);
|
||||
|
||||
Route::post('gamenews/{newsId}', [GameNewsController::class, 'put'])->name('gamenews.post');
|
||||
|
||||
|
||||
Route::fallback(function () {
|
||||
|
||||
Reference in New Issue
Block a user