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