@@ -, +, @@ plugins - apply this patch(es), - launch an updatedabase, - go to plugins/plugins-home.pl and deal with enable/disable method - install a plugin like KitchenSink https://github.com/bywatersolutions/koha-plugin-kitchen-sink - once installed, the plugin change the background color of the staff client to orange. - disable the plugin, - background color should be set back to the original one --- Koha/Plugins.pm | 10 ++++++ Koha/Plugins/Base.pm | 32 ++++++++++++++++- .../intranet-tmpl/prog/css/src/staff-global.scss | 2 +- .../prog/en/modules/plugins/plugins-home.tt | 14 +++++++- plugins/plugins-enable.pl | 42 ++++++++++++++++++++++ plugins/plugins-home.pl | 1 + 6 files changed, 98 insertions(+), 3 deletions(-) create mode 100755 plugins/plugins-enable.pl --- a/Koha/Plugins.pm +++ a/Koha/Plugins.pm @@ -79,6 +79,16 @@ sub GetPlugins { my $plugin = $plugin_class->new({ enable_plugins => $self->{'enable_plugins'} }); + my $plugin_enabled = $plugin->retrieve_data('__ENABLED__'); + $plugin->{enabled} = $plugin_enabled; + + # Want all plugins. Not only enabled ones. + if ( defined($params->{all}) && $params->{all} ) { + $plugin_enabled = 1; + } + + next unless $plugin_enabled; + # Limit results by method or metadata next if $method && !$plugin->can($method); my $plugin_metadata = $plugin->get_metadata; --- a/Koha/Plugins/Base.pm +++ a/Koha/Plugins/Base.pm @@ -50,7 +50,7 @@ sub new { ## Run the installation method if it exists and hasn't been run before if ( $self->can('install') && !$self->retrieve_data('__INSTALLED__') ) { if ( $self->install() ) { - $self->store_data( { '__INSTALLED__' => 1 } ); + $self->store_data( { '__INSTALLED__' => 1, '__ENABLED__' => 1 } ); if ( my $version = $plugin_version ) { $self->store_data({ '__INSTALLED_VERSION__' => $version }); } @@ -272,6 +272,36 @@ sub _version_compare { return 0; } +=head2 enable + +Method for enabling plugin + +$plugin->enable + +=cut + +sub enable { + my ($self) = @_; + + $self->store_data( {'__ENABLED__' => 1} ); + + return $self; +} + +=head2 disable + +Method for disabling plugin + +$plugin->disable + +=cut + +sub disable { + my ($self) = @_; + + $self->store_data( {'__ENABLED__' => 0} ); +} + 1; __END__ --- a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss +++ a/koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss @@ -520,7 +520,7 @@ input { } label, -.label { +.label:not(.label-primary):not(.label-default) { color: #000; display: inline; font-size: inherit; --- a/koha-tmpl/intranet-tmpl/prog/en/modules/plugins/plugins-home.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/plugins/plugins-home.tt @@ -77,7 +77,14 @@ [% FOREACH plugin IN plugins %]