add own method for delete

This commit is contained in:
Boy132 2025-11-07 11:05:26 +01:00
parent 3eba089c47
commit 889daf2fab
3 changed files with 8 additions and 3 deletions

View File

@ -20,6 +20,7 @@ use Illuminate\Support\Facades\Facade;
* @method static void updatePlugin(Plugin $plugin) * @method static void updatePlugin(Plugin $plugin)
* @method static void downloadPluginFromFile(UploadedFile $file) * @method static void downloadPluginFromFile(UploadedFile $file)
* @method static void downloadPluginFromUrl(string $url) * @method static void downloadPluginFromUrl(string $url)
* @method static void deletePlugin(Plugin $plugin)
* @method static void enablePlugin(string|Plugin $plugin) * @method static void enablePlugin(string|Plugin $plugin)
* @method static void disablePlugin(string|Plugin $plugin) * @method static void disablePlugin(string|Plugin $plugin)
* @method static void updateLoadOrder(array<int, string> $order) * @method static void updateLoadOrder(array<int, string> $order)

View File

@ -18,7 +18,6 @@ use Filament\Schemas\Components\Tabs\Tab;
use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table; use Filament\Tables\Table;
use Illuminate\Http\UploadedFile; use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\File;
class PluginResource extends Resource class PluginResource extends Resource
{ {
@ -187,7 +186,7 @@ class PluginResource extends Resource
->requiresConfirmation() ->requiresConfirmation()
->hidden(fn (Plugin $plugin) => $plugin->isInstalled()) ->hidden(fn (Plugin $plugin) => $plugin->isInstalled())
->action(function (Plugin $plugin, $livewire) { ->action(function (Plugin $plugin, $livewire) {
File::deleteDirectory(plugin_path($plugin->id)); Plugins::deletePlugin($plugin);
redirect(ListPlugins::getUrl(['tab' => $livewire->activeTab])); redirect(ListPlugins::getUrl(['tab' => $livewire->activeTab]));

View File

@ -275,7 +275,7 @@ class PluginService
$this->buildAssets(); $this->buildAssets();
if ($deleteFiles) { if ($deleteFiles) {
File::deleteDirectory(plugin_path($plugin->id)); $this->deletePlugin($plugin);
} else { } else {
$this->setStatus($plugin, PluginStatus::NotInstalled); $this->setStatus($plugin, PluginStatus::NotInstalled);
} }
@ -342,6 +342,11 @@ class PluginService
$this->downloadPluginFromFile(new UploadedFile($tmpPath, $info['basename'], 'application/zip'), $cleanDownload); $this->downloadPluginFromFile(new UploadedFile($tmpPath, $info['basename'], 'application/zip'), $cleanDownload);
} }
public function deletePlugin(Plugin $plugin): void
{
File::deleteDirectory(plugin_path($plugin->id));
}
public function enablePlugin(string|Plugin $plugin): void public function enablePlugin(string|Plugin $plugin): void
{ {
$this->setStatus($plugin, PluginStatus::Enabled); $this->setStatus($plugin, PluginStatus::Enabled);