mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-14 20:40:49 +08:00
add searchbox select unselect
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\Filament\Resources\Section;
|
||||
|
||||
use App\Filament\OptionsTrait;
|
||||
use App\Filament\RedirectIndexTrait;
|
||||
use App\Filament\Resources\Section\IconResource\Pages;
|
||||
use App\Filament\Resources\Section\IconResource\RelationManagers;
|
||||
use App\Models\Icon;
|
||||
|
||||
@@ -2,12 +2,15 @@
|
||||
|
||||
namespace App\Filament\Resources\Section\IconResource\Pages;
|
||||
|
||||
use App\Filament\RedirectIndexTrait;
|
||||
use App\Filament\Resources\Section\IconResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditIcon extends EditRecord
|
||||
{
|
||||
use RedirectIndexTrait;
|
||||
|
||||
protected static string $resource = IconResource::class;
|
||||
|
||||
protected static string $view = 'filament.resources.system.category-icon-resource.pages.edit-record';
|
||||
|
||||
@@ -98,7 +98,7 @@ class SecondIconResource extends Resource
|
||||
Tables\Columns\TextColumn::make('class_name')->label(__('label.second_icon.class_name')),
|
||||
];
|
||||
$taxonomyList = self::listTaxonomy();
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $tableName) {
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $taxonomyTableModel) {
|
||||
$columns[] = Tables\Columns\TextColumn::make($torrentField)->formatStateUsing(function ($state) use ($taxonomyList, $torrentField) {
|
||||
return $taxonomyList[$torrentField]->get($state);
|
||||
});
|
||||
@@ -121,8 +121,8 @@ class SecondIconResource extends Resource
|
||||
{
|
||||
static $taxonomyList = [];
|
||||
if (empty($taxonomyList)) {
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $tableName) {
|
||||
$taxonomyList[$torrentField] = NexusDB::table($tableName)->pluck('name', 'id');
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $taxonomyTableModel) {
|
||||
$taxonomyList[$torrentField] = NexusDB::table($taxonomyTableModel['table'])->pluck('name', 'id');
|
||||
}
|
||||
}
|
||||
return $taxonomyList;
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Filament\Resources\Section\SecondIconResource\Pages;
|
||||
|
||||
use App\Filament\RedirectIndexTrait;
|
||||
use App\Filament\Resources\Section\SecondIconResource;
|
||||
use App\Models\SearchBox;
|
||||
use App\Models\SecondIcon;
|
||||
@@ -10,6 +11,8 @@ use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditSecondIcon extends EditRecord
|
||||
{
|
||||
use RedirectIndexTrait;
|
||||
|
||||
protected static string $resource = SecondIconResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
@@ -27,7 +30,7 @@ class EditSecondIcon extends EditRecord
|
||||
protected function mutateFormDataBeforeFill(array $data): array
|
||||
{
|
||||
$mode = $data['mode'];
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $table) {
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $taxonomyTableModel) {
|
||||
$taxonomyValue = $data[$torrentField] ?? null;
|
||||
unset($data[$torrentField]);
|
||||
$data[$torrentField][$mode] = $taxonomyValue;
|
||||
|
||||
@@ -44,13 +44,13 @@ class SearchBox extends NexusModel
|
||||
const EXTRA_DISPLAY_SEED_BOX_ICON_ON_TORRENT_LIST = 'display_seed_box_icon_on_torrent_list';
|
||||
|
||||
public static array $taxonomies = [
|
||||
'source' => 'sources',
|
||||
'medium' => 'media',
|
||||
'codec' => 'codecs',
|
||||
'audiocodec' => 'audiocodecs',
|
||||
'standard' => 'standards',
|
||||
'processing' => 'processings',
|
||||
'team' => 'teams',
|
||||
'source' => ['table' => 'sources', 'model' => Source::class],
|
||||
'medium' => ['table' => 'media', 'model' => Media::class],
|
||||
'codec' => ['table' => 'codecs', 'model' => Codec::class],
|
||||
'audiocodec' => ['table' => 'audiocodecs', 'model' => AudioCodec::class],
|
||||
'standard' => ['table' => 'standards', 'model' => Standard::class],
|
||||
'processing' => ['table' => 'processings', 'model' => Processing::class],
|
||||
'team' => ['table' => 'teams', 'model' => Team::class]
|
||||
];
|
||||
|
||||
public static array $extras = [
|
||||
@@ -143,7 +143,7 @@ class SearchBox extends NexusModel
|
||||
if (!$searchBox instanceof self) {
|
||||
$searchBox = self::get(intval($searchBox));
|
||||
}
|
||||
$table = self::$taxonomies[$torrentField];
|
||||
$table = self::$taxonomies[$torrentField]['table'];
|
||||
return NexusDB::table($table)->where(function (Builder $query) use ($searchBox) {
|
||||
return $query->where('mode', $searchBox->id)->orWhere('mode', 0);
|
||||
})->get();
|
||||
|
||||
@@ -14,7 +14,7 @@ class SecondIcon extends NexusModel
|
||||
|
||||
public static function formatFormData(array $data): array
|
||||
{
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $table) {
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $taxonomyTableModel) {
|
||||
$mode = $data['mode'];
|
||||
if ($mode === null || empty($data[$torrentField][$mode])) {
|
||||
unset($data[$torrentField]);
|
||||
|
||||
@@ -119,7 +119,7 @@ class SearchBoxRepository extends BaseRepository
|
||||
$searchBoxList = SearchBox::query()->get();
|
||||
foreach ($searchBoxList as $searchBox) {
|
||||
$taxonomies = [];
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $taxonomyTable) {
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $taxonomyTableModel) {
|
||||
$searchBoxField = "show" . $torrentField;
|
||||
if ($searchBox->showsubcat && $searchBox->{$searchBoxField}) {
|
||||
$taxonomies[] = [
|
||||
@@ -154,7 +154,7 @@ class SearchBoxRepository extends BaseRepository
|
||||
}
|
||||
}
|
||||
} else {
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $table) {
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $taxonomyTableModel) {
|
||||
$select = $this->buildTaxonomySelect($searchBox, $torrentField, $torrentInfo);
|
||||
if ($select) {
|
||||
$results[] = $select;
|
||||
@@ -180,7 +180,7 @@ class SearchBoxRepository extends BaseRepository
|
||||
}
|
||||
}
|
||||
} else {
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $table) {
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $taxonomyTableModel) {
|
||||
$taxonomy = $this->getTaxonomyInfo($searchBox, $torrentWithTaxonomy, $torrentField);
|
||||
if ($taxonomy) {
|
||||
$results[] = $taxonomy;
|
||||
@@ -208,7 +208,7 @@ class SearchBoxRepository extends BaseRepository
|
||||
$searchBoxId = $searchBox->id;
|
||||
$searchBoxField = "show" . $torrentField;
|
||||
if ($searchBox->showsubcat && $searchBox->{$searchBoxField}) {
|
||||
$table = SearchBox::$taxonomies[$torrentField];
|
||||
$table = SearchBox::$taxonomies[$torrentField]['table'];
|
||||
$select = sprintf("<b>%s: </b>", $searchBox->getTaxonomyLabel($torrentField));
|
||||
$select .= sprintf('<select name="%s_sel[%s]" data-mode="%s_%s">',$torrentField, $searchBoxId, $torrentField, $searchBoxId);
|
||||
$select .= sprintf('<option value="%s">%s</option>', 0, nexus_trans('nexus.select_one_please'));
|
||||
@@ -242,7 +242,7 @@ class SearchBoxRepository extends BaseRepository
|
||||
}
|
||||
}
|
||||
} else {
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $table) {
|
||||
foreach (SearchBox::$taxonomies as $torrentField => $taxonomyTableModel) {
|
||||
$select = $this->buildTaxonomyFormSchema($searchBox, $torrentField);
|
||||
if ($select) {
|
||||
$results[] = $select;
|
||||
|
||||
Reference in New Issue
Block a user