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;
## 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 });
}
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__
}
label,
-.label {
+.label:not(.label-primary):not(.label-default) {
color: #000;
display: inline;
font-size: inherit;
[% FOREACH plugin IN plugins %]
<tr>
- <td><strong>[% plugin.metadata.name | html %]</strong></td>
+ <td>
+ [% IF ( plugin.enabled ) %]
+ <span class="label label-primary">ENABLED</span>
+ [% ELSE %]
+ <span class="label label-default">DISABLED</span>
+ [% END %]
+ <strong>[% plugin.metadata.name | html %]</strong>
+ </td>
<td>
[% plugin.metadata.description | html %]
[% END %]
[% IF ( CAN_user_plugins_manage ) %]
<li><a class="uninstall_plugin" data-plugin-name="[% plugin.metadata.name | html %]" href="/cgi-bin/koha/plugins/plugins-uninstall.pl?class=[% plugin.class | html %]"><i class="fa fa-trash"></i> Uninstall</a></li>
+ [% IF ( plugin.enabled ) %]
+ <li><a class="enable_plugin" data-plugin-name="[% plugin.metadata.name | html %]" href="/cgi-bin/koha/plugins/plugins-enable.pl?class=[% plugin.class | html %]&method=disable"><i class="fa fa-pause"></i> Disable</a></li>
+ [% ELSE %]
+ <li><a class="enable_plugin" data-plugin-name="[% plugin.metadata.name | html %]" href="/cgi-bin/koha/plugins/plugins-enable.pl?class=[% plugin.class | html %]&method=enable"><i class="fa fa-play"></i> Enable</a></li>
+ [% END %]
[% END %]
</ul>
</div>
--- /dev/null
+#!/usr/bin/perl
+#
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
+
+use Modern::Perl;
+
+use CGI qw ( -utf8 );
+
+use C4::Context;
+use C4::Auth qw(check_cookie_auth);
+use Koha::Plugins::Handler;
+
+die("Koha plugins are disabled!")
+ unless C4::Context->preference('UseKohaPlugins');
+
+my $input = new CGI;
+
+my ( $auth_status, $sessionID ) =
+ check_cookie_auth( $input->cookie('CGISESSID'), { plugins => 'manage' } );
+
+my $class = $input->param('class');
+my $method = $input->param('method');
+
+Koha::Plugins::Handler->run({
+ class => $class,
+ method => $method
+});
+
+print $input->redirect("/cgi-bin/koha/plugins/plugins-home.pl");
my @plugins = Koha::Plugins->new()->GetPlugins({
method => $method,
+ all => 1,
});
$template->param( plugins => \@plugins, );