mirror of
https://github.com/Einundzwanzig-Podcast/einundzwanzig-portal.git
synced 2025-12-11 06:46:47 +00:00
Shift automatically applies the Laravel coding style - which uses the PSR-12 coding style as a base with some minor additions. You may customize the code style applied by configuring [Pint](https://laravel.com/docs/pint), [PHP CS Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer), or [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) for your project root. For more information on customizing the code style applied by Shift, [watch this short video](https://laravelshift.com/videos/shift-code-style).
84 lines
2.5 KiB
PHP
84 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace App\Nova;
|
|
|
|
use App\Notifications\ModelCreatedNotification;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Http\Request;
|
|
use Laravel\Nova\Fields\DateTime;
|
|
use Laravel\Nova\Fields\Markdown;
|
|
use Laravel\Nova\Fields\MorphTo;
|
|
use Laravel\Nova\Fields\Text;
|
|
use Laravel\Nova\Http\Requests\NovaRequest;
|
|
use Spatie\Comments\Models\Comment as CommentModel;
|
|
|
|
class Comment extends Resource
|
|
{
|
|
public static $model = CommentModel::class;
|
|
|
|
public static $search = [
|
|
'id', 'text',
|
|
];
|
|
|
|
public static function authorizedToCreate(Request $request)
|
|
{
|
|
return auth()
|
|
->user()
|
|
?->hasRole('super-admin');
|
|
}
|
|
|
|
public function authorizedToUpdate(Request $request)
|
|
{
|
|
return auth()
|
|
->user()
|
|
?->hasRole('super-admin');
|
|
}
|
|
|
|
public static function afterCreate(NovaRequest $request, Model $model)
|
|
{
|
|
\App\Models\User::find(1)
|
|
->notify(new ModelCreatedNotification($model, str($request->getRequestUri())
|
|
->after('/nova-api/')
|
|
->before('?')
|
|
->toString()));
|
|
}
|
|
|
|
public function fields(NovaRequest $request)
|
|
{
|
|
return [
|
|
Text::make(__('Title'), function (CommentModel $comment) {
|
|
return $comment->topLevel()->commentable?->commentableName() ?? 'Deleted...';
|
|
})
|
|
->readonly(),
|
|
|
|
MorphTo::make(__('Commentator'), 'commentator')
|
|
->types([
|
|
User::class,
|
|
]),
|
|
|
|
Markdown::make(__('Original text'), 'original_text'),
|
|
|
|
Text::make('', function (CommentModel $comment) {
|
|
if (! $url = $comment?->commentUrl()) {
|
|
return '';
|
|
}
|
|
|
|
return "<a target=\"show_comment\" href=\"{$url}\">".__('Show').'</a>';
|
|
})
|
|
->asHtml(),
|
|
|
|
Text::make(__('Status'), function (CommentModel $comment) {
|
|
if ($comment->isApproved()) {
|
|
return "<div class='inline-flex items-center px-3 py-0.5 rounded-full text-sm font-medium bg-green-100 text-green-800'>Approved</div>";
|
|
}
|
|
|
|
return "<div class='inline-flex items-center px-3 py-0.5 rounded-full text-sm font-medium bg-yellow-100 text-yellow-800'>Pending</div>";
|
|
})
|
|
->asHtml(),
|
|
|
|
DateTime::make(__('Created at'), 'created_at'),
|
|
|
|
];
|
|
}
|
|
}
|