Bug 25549: Add error reporting to plugins-home
This patch adds handling for the newly introduced 'errors' option in
GetPlugins and reports erroroneos plugins to the user.
To test:
1 - Enable plugins in the koha-conf
2 - Install the kitchen sink plugin
3 - Your staff client should be orange now :-)
4 - The plugin should display as installed in the table at
tools/plugins.
5 - edit the plugin module
/var/lib/koha/kohadev/plugins/Koha/Plugin/Com/ByWaterSolutions/KitchenSink.pm
6 - Add a line to break compilation, like:
this won't compile
7 - Restart all
8 - Your Koha is not broken, but is no longer orange (The plugin is not
loading).
9 - The plugin should display as unable to load in the table at
tools/plugins.
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
0eae966d25
commit
759ff45199
|
|
@ -164,14 +164,13 @@ sub InstallPlugins {
|
|||
my @plugin_classes = $self->plugins();
|
||||
my @plugins;
|
||||
|
||||
# If we can reload the plugin we will add the methods back, if not they should be removed
|
||||
Koha::Plugins::Methods->search()->delete();
|
||||
foreach my $plugin_class (@plugin_classes) {
|
||||
if ( can_load( modules => { $plugin_class => undef }, nocache => 1 ) ) {
|
||||
next unless $plugin_class->isa('Koha::Plugins::Base');
|
||||
|
||||
my $plugin = $plugin_class->new({ enable_plugins => $self->{'enable_plugins'} });
|
||||
|
||||
Koha::Plugins::Methods->search({ plugin_class => $plugin_class })->delete();
|
||||
|
||||
foreach my $method ( @{ Class::Inspector->methods( $plugin_class, 'public' ) } ) {
|
||||
Koha::Plugins::Method->new(
|
||||
|
|
|
|||
|
|
@ -116,6 +116,19 @@
|
|||
</tr>
|
||||
|
||||
[% FOREACH plugin IN plugins %]
|
||||
[% IF plugin.error %]
|
||||
<tr class="warn">
|
||||
<td>
|
||||
<strong>[% plugin.name | html %]</strong>
|
||||
<span class="label label-warning">ERRORS</span>
|
||||
</td>
|
||||
[% IF ( CAN_user_plugins_configure || CAN_user_plugins_manage || CAN_user_plugins_report || CAN_user_plugins_tool ) %]
|
||||
<td colspan="7">Error found whilst attempting to load plugin</td>
|
||||
[% ELSE %]
|
||||
<td colspan="6">Error found whilst attempting to load plugin</td>
|
||||
[% END %]
|
||||
</tr>
|
||||
[% ELSE %]
|
||||
<tr>
|
||||
<td>
|
||||
<strong>[% plugin.metadata.name | html %]</strong>
|
||||
|
|
@ -181,6 +194,8 @@
|
|||
</div>
|
||||
</td>
|
||||
[% END %]
|
||||
</tr>
|
||||
[% END %]
|
||||
[% END %]
|
||||
</table>
|
||||
[% END %]
|
||||
|
|
|
|||
|
|
@ -52,10 +52,13 @@ if ($plugins_enabled) {
|
|||
method => $method,
|
||||
);
|
||||
|
||||
my @plugins = Koha::Plugins->new()->GetPlugins({
|
||||
method => $method,
|
||||
all => 1,
|
||||
});
|
||||
my @plugins = Koha::Plugins->new()->GetPlugins(
|
||||
{
|
||||
method => $method,
|
||||
all => 1,
|
||||
errors => 1
|
||||
}
|
||||
);
|
||||
|
||||
$template->param( plugins => \@plugins, );
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue