mirror of
https://github.com/pelican-dev/panel.git
synced 2025-11-09 16:49:27 +01:00
remove "is" methods from plugin model
This commit is contained in:
parent
889daf2fab
commit
09fc3ed59b
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Console\Commands\Plugin;
|
||||
|
||||
use App\Enums\PluginStatus;
|
||||
use App\Facades\Plugins;
|
||||
use App\Models\Plugin;
|
||||
use Illuminate\Console\Command;
|
||||
@ -24,7 +25,7 @@ class InstallPluginCommand extends Command
|
||||
return;
|
||||
}
|
||||
|
||||
if ($plugin->isInstalled()) {
|
||||
if ($plugin->status !== PluginStatus::NotInstalled) {
|
||||
$this->error('Plugin is already installed!');
|
||||
|
||||
return;
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Console\Commands\Plugin;
|
||||
|
||||
use App\Enums\PluginStatus;
|
||||
use App\Facades\Plugins;
|
||||
use App\Models\Plugin;
|
||||
use Illuminate\Console\Command;
|
||||
@ -24,7 +25,7 @@ class UninstallPluginCommand extends Command
|
||||
return;
|
||||
}
|
||||
|
||||
if (!$plugin->isInstalled()) {
|
||||
if ($plugin->status === PluginStatus::NotInstalled) {
|
||||
$this->error('Plugin is not installed!');
|
||||
|
||||
return;
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Filament\Admin\Resources\Plugins;
|
||||
|
||||
use App\Enums\PluginStatus;
|
||||
use App\Facades\Plugins;
|
||||
use App\Filament\Admin\Resources\Plugins\Pages\ListPlugins;
|
||||
use App\Models\Plugin;
|
||||
@ -106,7 +107,7 @@ class PluginResource extends Resource
|
||||
->authorize(fn (Plugin $plugin) => user()?->can('update', $plugin))
|
||||
->icon('tabler-settings')
|
||||
->color('primary')
|
||||
->visible(fn (Plugin $plugin) => $plugin->isEnabled() && $plugin->hasSettings())
|
||||
->visible(fn (Plugin $plugin) => $plugin->status === PluginStatus::Enabled && $plugin->hasSettings())
|
||||
->schema(fn (Plugin $plugin) => $plugin->getSettingsForm())
|
||||
->action(fn (array $data, Plugin $plugin) => $plugin->saveSettings($data))
|
||||
->slideOver(),
|
||||
@ -116,7 +117,7 @@ class PluginResource extends Resource
|
||||
->authorize(fn (Plugin $plugin) => user()?->can('update', $plugin))
|
||||
->icon('tabler-terminal')
|
||||
->color('success')
|
||||
->hidden(fn (Plugin $plugin) => $plugin->isInstalled())
|
||||
->hidden(fn (Plugin $plugin) => $plugin->status !== PluginStatus::NotInstalled)
|
||||
->action(function (Plugin $plugin, $livewire) {
|
||||
Plugins::installPlugin($plugin, !$plugin->isTheme() || !Plugins::hasThemePluginEnabled());
|
||||
|
||||
@ -132,7 +133,7 @@ class PluginResource extends Resource
|
||||
->authorize(fn (Plugin $plugin) => user()?->can('update', $plugin))
|
||||
->icon('tabler-download')
|
||||
->color('success')
|
||||
->visible(fn (Plugin $plugin) => $plugin->isInstalled() && $plugin->isUpdateAvailable())
|
||||
->visible(fn (Plugin $plugin) => $plugin->status !== PluginStatus::NotInstalled && $plugin->isUpdateAvailable())
|
||||
->action(function (Plugin $plugin, $livewire) {
|
||||
Plugins::updatePlugin($plugin);
|
||||
|
||||
@ -184,7 +185,7 @@ class PluginResource extends Resource
|
||||
->icon('tabler-trash')
|
||||
->color('danger')
|
||||
->requiresConfirmation()
|
||||
->hidden(fn (Plugin $plugin) => $plugin->isInstalled())
|
||||
->visible(fn (Plugin $plugin) => $plugin->status === PluginStatus::NotInstalled)
|
||||
->action(function (Plugin $plugin, $livewire) {
|
||||
Plugins::deletePlugin($plugin);
|
||||
|
||||
@ -201,7 +202,7 @@ class PluginResource extends Resource
|
||||
->icon('tabler-terminal')
|
||||
->color('danger')
|
||||
->requiresConfirmation()
|
||||
->visible(fn (Plugin $plugin) => $plugin->isInstalled())
|
||||
->hidden(fn (Plugin $plugin) => $plugin->status === PluginStatus::NotInstalled)
|
||||
->action(function (Plugin $plugin, $livewire) {
|
||||
Plugins::uninstallPlugin($plugin);
|
||||
|
||||
|
||||
@ -192,42 +192,17 @@ class Plugin extends Model implements HasPluginSettings
|
||||
|
||||
public function shouldLoad(?string $panelId = null): bool
|
||||
{
|
||||
return !$this->isDisabled() && $this->isInstalled() && !$this->isIncompatible() && (is_null($panelId) || !$this->panels || in_array($panelId, explode(',', $this->panels)));
|
||||
return ($this->status === PluginStatus::Enabled || $this->status === PluginStatus::Errored) && (is_null($panelId) || !$this->panels || in_array($panelId, explode(',', $this->panels)));
|
||||
}
|
||||
|
||||
public function canEnable(): bool
|
||||
{
|
||||
return $this->isDisabled() && $this->isInstalled() && $this->isCompatible();
|
||||
return $this->status === PluginStatus::Disabled && $this->isCompatible();
|
||||
}
|
||||
|
||||
public function canDisable(): bool
|
||||
{
|
||||
return $this->isEnabled() && $this->isInstalled() && $this->isCompatible();
|
||||
}
|
||||
|
||||
public function isEnabled(): bool
|
||||
{
|
||||
return $this->status === PluginStatus::Enabled;
|
||||
}
|
||||
|
||||
public function isDisabled(): bool
|
||||
{
|
||||
return $this->status === PluginStatus::Disabled;
|
||||
}
|
||||
|
||||
public function isInstalled(): bool
|
||||
{
|
||||
return $this->status !== PluginStatus::NotInstalled;
|
||||
}
|
||||
|
||||
public function hasErrored(): bool
|
||||
{
|
||||
return $this->status === PluginStatus::Errored;
|
||||
}
|
||||
|
||||
public function isIncompatible(): bool
|
||||
{
|
||||
return $this->status === PluginStatus::Incompatible;
|
||||
return $this->status !== PluginStatus::Disabled && $this->status !== PluginStatus::NotInstalled && $this->isCompatible();
|
||||
}
|
||||
|
||||
public function isCompatible(): bool
|
||||
|
||||
@ -44,7 +44,7 @@ class PluginService
|
||||
continue;
|
||||
} else {
|
||||
// Make sure to update the status if a plugin is no longer incompatible (e.g. because the user changed their panel version)
|
||||
if ($plugin->isIncompatible()) {
|
||||
if ($plugin->status === PluginStatus::Incompatible) {
|
||||
$this->disablePlugin($plugin);
|
||||
}
|
||||
}
|
||||
@ -141,7 +141,7 @@ class PluginService
|
||||
|
||||
$panel->plugin(new $pluginClass());
|
||||
|
||||
if ($plugin->hasErrored()) {
|
||||
if ($plugin->status === PluginStatus::Errored) {
|
||||
$this->enablePlugin($plugin);
|
||||
}
|
||||
} catch (Exception $exception) {
|
||||
@ -243,7 +243,7 @@ class PluginService
|
||||
if ($enable) {
|
||||
$this->enablePlugin($plugin);
|
||||
} else {
|
||||
if (!$plugin->isInstalled()) {
|
||||
if ($plugin->status === PluginStatus::NotInstalled) {
|
||||
$this->disablePlugin($plugin);
|
||||
}
|
||||
}
|
||||
@ -393,7 +393,7 @@ class PluginService
|
||||
{
|
||||
$plugins = Plugin::query()->orderBy('load_order')->get();
|
||||
foreach ($plugins as $plugin) {
|
||||
if ($plugin->isTheme() && $plugin->isEnabled()) {
|
||||
if ($plugin->isTheme() && $plugin->status === PluginStatus::Enabled) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -408,7 +408,7 @@ class PluginService
|
||||
|
||||
$plugins = Plugin::query()->orderBy('load_order')->get();
|
||||
foreach ($plugins as $plugin) {
|
||||
if (!$plugin->isEnabled() || !$plugin->isLanguage()) {
|
||||
if ($plugin->status !== PluginStatus::Enabled || !$plugin->isLanguage()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user