You've already forked Atomcms-edit
Initial commit
This commit is contained in:
+192
@@ -0,0 +1,192 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Resources\User\Users\RelationManagers;
|
||||
|
||||
use App\Filament\Traits\TranslatableResource;
|
||||
use App\Models\User;
|
||||
use Carbon\CarbonInterval;
|
||||
use Filament\Actions\Action;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Schemas\Components\Tabs;
|
||||
use Filament\Schemas\Components\Tabs\Tab;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Tables\Columns\IconColumn;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Tables\Table;
|
||||
|
||||
class SettingsRelationManager extends RelationManager
|
||||
{
|
||||
use TranslatableResource;
|
||||
|
||||
#[\Override]
|
||||
protected static string $relationship = 'settings';
|
||||
|
||||
protected static string $translateIdentifier = 'settings';
|
||||
|
||||
#[\Override]
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $schema
|
||||
->components([
|
||||
Tabs::make('Settings')
|
||||
->schema([
|
||||
Tab::make(__('filament::resources.tabs.Account Data'))
|
||||
->schema([
|
||||
TextInput::make('achievement_score')
|
||||
->label(__('filament::resources.inputs.achievement_score'))
|
||||
->disabled()
|
||||
->required(),
|
||||
|
||||
TextInput::make('respects_received')
|
||||
->label(__('filament::resources.inputs.respects_received'))
|
||||
->disabled()
|
||||
->required(),
|
||||
|
||||
Select::make('can_trade')
|
||||
->native(false)
|
||||
->label(__('filament::resources.inputs.can_trade'))
|
||||
->options([
|
||||
'0' => __('filament::resources.common.No'),
|
||||
'1' => __('filament::resources.common.Yes'),
|
||||
])
|
||||
->required(),
|
||||
|
||||
Select::make('block_following')
|
||||
->native(false)
|
||||
->label(__('filament::resources.inputs.block_following'))
|
||||
->options([
|
||||
'0' => __('filament::resources.common.No'),
|
||||
'1' => __('filament::resources.common.Yes'),
|
||||
])
|
||||
->required(),
|
||||
|
||||
Select::make('block_friendrequests')
|
||||
->native(false)
|
||||
->label(__('filament::resources.inputs.block_friendrequests'))
|
||||
->options([
|
||||
'0' => __('filament::resources.common.No'),
|
||||
'1' => __('filament::resources.common.Yes'),
|
||||
])
|
||||
->required(),
|
||||
|
||||
Select::make('block_roominvites')
|
||||
->native(false)
|
||||
->label(__('filament::resources.inputs.block_roominvites'))
|
||||
->options([
|
||||
'0' => __('filament::resources.common.No'),
|
||||
'1' => __('filament::resources.common.Yes'),
|
||||
])
|
||||
->required(),
|
||||
|
||||
TextInput::make('max_rooms')
|
||||
->label(__('filament::resources.inputs.max_rooms'))
|
||||
->numeric()
|
||||
->required(),
|
||||
|
||||
TextInput::make('max_friends')
|
||||
->label(__('filament::resources.inputs.max_friends'))
|
||||
->numeric()
|
||||
->required(),
|
||||
])
|
||||
->columns(['sm' => 2]),
|
||||
|
||||
Tab::make(__('filament::resources.tabs.Extra Settings'))
|
||||
->schema([
|
||||
Select::make('old_chat')
|
||||
->native(false)
|
||||
->label(__('filament::resources.inputs.old_chat'))
|
||||
->options([
|
||||
'0' => __('filament::resources.common.No'),
|
||||
'1' => __('filament::resources.common.Yes'),
|
||||
])
|
||||
->required(),
|
||||
|
||||
Select::make('block_camera_follow')
|
||||
->native(false)
|
||||
->label(__('filament::resources.inputs.block_camera_follow'))
|
||||
->options([
|
||||
'0' => __('filament::resources.common.No'),
|
||||
'1' => __('filament::resources.common.Yes'),
|
||||
])
|
||||
->required(),
|
||||
|
||||
Select::make('ignore_bots')
|
||||
->native(false)
|
||||
->label(__('filament::resources.inputs.ignore_bots'))
|
||||
->options([
|
||||
'0' => __('filament::resources.common.No'),
|
||||
'1' => __('filament::resources.common.Yes'),
|
||||
])
|
||||
->required(),
|
||||
|
||||
Select::make('ignore_pets')
|
||||
->native(false)
|
||||
->label(__('filament::resources.inputs.ignore_pets'))
|
||||
->options([
|
||||
'0' => __('filament::resources.common.No'),
|
||||
'1' => __('filament::resources.common.Yes'),
|
||||
])
|
||||
->required(),
|
||||
])->columns(['sm' => 2]),
|
||||
])->columnSpanFull(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
TextColumn::make('achievement_score')
|
||||
->label(__('filament::resources.columns.achievement_score'))
|
||||
->toggleable(),
|
||||
|
||||
TextColumn::make('respects_received')
|
||||
->label(__('filament::resources.columns.respects_received'))
|
||||
->toggleable(),
|
||||
|
||||
TextColumn::make('online_time')
|
||||
->label(__('filament::resources.columns.online_time'))
|
||||
->formatStateUsing(fn (string $state) => __(':m minutes', ['m' => round(CarbonInterval::seconds($state)->totalMinutes)]))
|
||||
->toggleable(),
|
||||
|
||||
IconColumn::make('can_trade')
|
||||
->label(__('filament::resources.columns.can_trade'))
|
||||
->icon(fn (string $state) => $state === '1' ? 'heroicon-o-check-circle' : 'heroicon-o-x-circle')
|
||||
->colors([
|
||||
'success' => '1',
|
||||
'danger' => '0',
|
||||
]),
|
||||
|
||||
IconColumn::make('can_change_name')
|
||||
->label(__('filament::resources.columns.can_change_name'))
|
||||
->icon(fn (string $state) => $state === '1' ? 'heroicon-o-check-circle' : 'heroicon-o-x-circle')
|
||||
->colors([
|
||||
'success' => '1',
|
||||
'danger' => '0',
|
||||
]),
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->headerActions([
|
||||
Action::make('helper')
|
||||
->label('Settings Tip')
|
||||
->icon('heroicon-o-exclamation-triangle')
|
||||
->tooltip('You can only change the offline user settings.')
|
||||
->extraAttributes(['style' => 'cursor: default !important']),
|
||||
])
|
||||
->recordActions([
|
||||
EditAction::make()
|
||||
->disabled(function (RelationManager $livewire): bool {
|
||||
/** @var User $user */
|
||||
$user = $livewire->getOwnerRecord();
|
||||
|
||||
return $user->online;
|
||||
}),
|
||||
])
|
||||
->toolbarActions([]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user