diff --git a/app/Filament/Resources/System/SeedBoxRecordResource.php b/app/Filament/Resources/System/SeedBoxRecordResource.php index b75730ad..e48f1086 100644 --- a/app/Filament/Resources/System/SeedBoxRecordResource.php +++ b/app/Filament/Resources/System/SeedBoxRecordResource.php @@ -5,6 +5,7 @@ namespace App\Filament\Resources\System; use App\Filament\OptionsTrait; use App\Filament\Resources\System\SeedBoxRecordResource\Pages; use App\Filament\Resources\System\SeedBoxRecordResource\RelationManagers; +use App\Models\NexusModel; use App\Models\SeedBoxRecord; use App\Repositories\SeedBoxRepository; use Filament\Facades\Filament; @@ -64,7 +65,11 @@ class SeedBoxRecordResource extends Resource Tables\Columns\TextColumn::make('id'), Tables\Columns\TextColumn::make('typeText')->label(__('label.seed_box_record.type')), Tables\Columns\TextColumn::make('uid')->searchable(), - Tables\Columns\TextColumn::make('user.username')->label(__('label.username'))->searchable(), + Tables\Columns\TextColumn::make('user.username') + ->label(__('label.username')) + ->searchable() + ->formatStateUsing(fn ($record) => username_for_admin($record->uid)) + , Tables\Columns\TextColumn::make('operator')->label(__('label.seed_box_record.operator'))->searchable(), Tables\Columns\TextColumn::make('bandwidth')->label(__('label.seed_box_record.bandwidth')), Tables\Columns\TextColumn::make('ip') @@ -112,14 +117,24 @@ class SeedBoxRecordResource extends Resource Tables\Actions\EditAction::make(), Tables\Actions\Action::make('audit') ->label(__('admin.resources.seed_box_record.toggle_status')) + ->mountUsing(fn (Forms\ComponentContainer $form, NexusModel $record) => $form->fill([ + 'status' => $record->status, + ])) ->form([ - Forms\Components\Radio::make('status')->options(SeedBoxRecord::listStatus('text')) - ->inline()->label(__('label.seed_box_record.status'))->required() + Forms\Components\Radio::make('status') + ->options(SeedBoxRecord::listStatus('text')) + ->inline() + ->label(__('label.seed_box_record.status')) + ->required() + , + Forms\Components\TextInput::make('reason') + ->label(__('label.reason')) + , ]) ->action(function (SeedBoxRecord $record, array $data) { $rep = new SeedBoxRepository(); try { - $rep->updateStatus($record, $data['status']); + $rep->updateStatus($record, $data['status'], $data['reason']); } catch (\Exception $exception) { Filament::notify('danger', class_basename($exception)); } diff --git a/app/Repositories/SeedBoxRepository.php b/app/Repositories/SeedBoxRepository.php index 2649046a..05083dc9 100644 --- a/app/Repositories/SeedBoxRepository.php +++ b/app/Repositories/SeedBoxRepository.php @@ -100,7 +100,7 @@ class SeedBoxRepository extends BaseRepository return SeedBoxRecord::query()->whereIn('id', Arr::wrap($id))->where('uid', $uid)->delete(); } - public function updateStatus(SeedBoxRecord $seedBoxRecord, $status): bool + public function updateStatus(SeedBoxRecord $seedBoxRecord, $status, $reason = ''): bool { if (Auth::user()->class < User::CLASS_ADMINISTRATOR) { throw new InsufficientPermissionException(); @@ -119,6 +119,7 @@ class SeedBoxRepository extends BaseRepository 'operator' => Auth::user()->username, 'old_status' => $seedBoxRecord->statusText, 'new_status' => nexus_trans('seed-box.status_text.' . $status), + 'reason' => $reason, ]), 'added' => now() ]; diff --git a/include/constants.php b/include/constants.php index 08bc7a94..98614a1e 100644 --- a/include/constants.php +++ b/include/constants.php @@ -1,6 +1,6 @@ $date".format_comment($arr["txt"],true,false,true)."".(user_can('chrmanage') ? "".$lang_log['text_edit']." | ".$lang_log['text_delete']."" : "")."\n"); + print("$date".format_comment($arr["txt"],true,false,true)."".(user_can('chrmanage') ? "".$lang_log['text_edit']." | ".$lang_log['text_delete']."" : "")."\n"); } print(""); echo $pagerbottom; diff --git a/public/staffbox.php b/public/staffbox.php index 764a53ee..d7e5eaa5 100644 --- a/public/staffbox.php +++ b/public/staffbox.php @@ -62,7 +62,7 @@ if (!$action) { $answered = "".$lang_staffbox['text_no'].""; $pmid = $arr["id"]; - print("".htmlspecialchars($arr['subject'])."" . get_username($arr['sender']) . "".gettime($arr['added'], true, false)."$answered\n"); + print("".htmlspecialchars($arr['subject'])."" . get_username($arr['sender']) . "".gettime($arr['added'], true, false)."$answered\n"); } print(""); print("\n"); @@ -121,7 +121,7 @@ print("".format_comment($arr4["a print(""); print(""); if ($arr4["answered"] == 0) -print("[ ".$lang_staffbox['text_reply']." ] [ ".$lang_staffbox['text_mark_answered']." ] "); +print("[ ".$lang_staffbox['text_reply']." ] [ ".$lang_staffbox['text_mark_answered']." ] "); print("[ ".$lang_staffbox['text_delete']." ]"); print(""); print(""); @@ -231,7 +231,7 @@ $id = intval($_GET["id"] ?? 0); sql_query ("UPDATE staffmessages SET answered=1, answeredby = {$CURUSER['id']} WHERE id = $id") or sqlerr(); $Cache->delete_value('staff_new_message_count'); clear_staff_message_cache(); -header("Refresh: 0; url=staffbox.php?action=viewpm&pmid=$id"); +header("Refresh: 0; url=staffbox.php" . (!empty($_GET['return']) ? "?" . $_GET['return'] : '')); } ////////////////////////// diff --git a/resources/lang/en/label.php b/resources/lang/en/label.php index b5a9974e..cff136da 100644 --- a/resources/lang/en/label.php +++ b/resources/lang/en/label.php @@ -39,6 +39,7 @@ return [ 'country' => 'Country', 'city' => 'City', 'client' => 'Client', + 'reason' => 'Reason', 'setting' => [ 'nav_text' => 'Setting', 'backup' => [ diff --git a/resources/lang/en/seed-box.php b/resources/lang/en/seed-box.php index 5a3556f6..c4632fbb 100644 --- a/resources/lang/en/seed-box.php +++ b/resources/lang/en/seed-box.php @@ -12,6 +12,6 @@ return [ ], 'status_change_message' => [ 'subject' => 'SeedBox record status changed', - 'body' => 'The status of your SeedBox record with ID :id was changed by :operator from :old_status to :new_status', + 'body' => 'The status of your SeedBox record with ID :id was changed by :operator from :old_status to :new_status. Reason: :reason', ], ]; diff --git a/resources/lang/zh_CN/label.php b/resources/lang/zh_CN/label.php index 4f4e42e0..827ff724 100644 --- a/resources/lang/zh_CN/label.php +++ b/resources/lang/zh_CN/label.php @@ -39,6 +39,7 @@ return [ 'country' => '国家', 'city' => '城市', 'client' => '客户端', + 'reason' => '原因', 'setting' => [ 'nav_text' => '设置', 'backup' => [ diff --git a/resources/lang/zh_CN/seed-box.php b/resources/lang/zh_CN/seed-box.php index dc4d88a0..4416632c 100644 --- a/resources/lang/zh_CN/seed-box.php +++ b/resources/lang/zh_CN/seed-box.php @@ -12,6 +12,6 @@ return [ ], 'status_change_message' => [ 'subject' => 'SeedBox 记录状态变更', - 'body' => '你的 ID 为 :id 的 SeedBox 记录状态被 :operator 由 :old_status 变更为 :new_status', + 'body' => '你的 ID 为 :id 的 SeedBox 记录状态被 :operator 由 :old_status 变更为 :new_status。原因::reason', ], ]; diff --git a/resources/lang/zh_TW/label.php b/resources/lang/zh_TW/label.php index 68b3f026..eb24e0d5 100644 --- a/resources/lang/zh_TW/label.php +++ b/resources/lang/zh_TW/label.php @@ -39,6 +39,7 @@ return [ 'country' => '國家', 'city' => '城市', 'client' => '客戶端', + 'reason' => '原因', 'setting' => [ 'nav_text' => '設置', 'backup' => [ diff --git a/resources/lang/zh_TW/seed-box.php b/resources/lang/zh_TW/seed-box.php index 01537b35..d2747782 100644 --- a/resources/lang/zh_TW/seed-box.php +++ b/resources/lang/zh_TW/seed-box.php @@ -12,6 +12,6 @@ return [ ], 'status_change_message' => [ 'subject' => 'SeedBox 記錄狀態變更', - 'body' => '你的 ID 為 :id 的 SeedBox 記錄狀態被 :operator 由 :old_status 變更為 :new_status', + 'body' => '你的 ID 為 :id 的 SeedBox 記錄狀態被 :operator 由 :old_status 變更為 :new_status。原因::reason', ], ];