package DBIx::dbMan::Extension::Authors;
use strict;
use base 'DBIx::dbMan::Extension';
our $VERSION = '0.10';
# registered authornames
our %authorname = (
'000001' => 'Milan Sorm <sorm@is4u.cz>',
'000002' => 'Frantisek Darena <darena@mendelu.cz>',
'000003' => 'Ales Kutin <kutin@is4u.cz>',
'000004' => 'Ondrej \'Kepi\' Kudlik <kepi@igloonet.cz>',
'000005' => 'Tomas Klein <klein@is4u.cz>',
);
1;
sub IDENTIFICATION { return "000001-000012-000010"; }
sub author { return 'Milan Sorm <sorm@is4u.cz>'; }
sub preference { return 0; }
sub known_actions { return [ qw/AUTHORS/ ]; }
sub menu {
return ( { label => '_Help', submenu => [
{ label => 'Authors', action => { action => 'AUTHORS' } }
] } );
}
sub handle_action {
my ($obj,%action) = @_;
if ($action{action} eq 'AUTHORS') {
my %authors = ();
for my $ext (@{$obj->{-core}->{extensions}}) {
my $id = $ext->IDENTIFICATION;
$id =~ s/-.*//;
++$authors{$id};
if ($ext->can('author')) {
$authorname{$id} = $ext->author();
}
}
my $authors = '';
for (sort { $authors{$a} <=> $authors{$b} } keys %authors) {
$authors .= " ".((exists $authorname{$_})?$authorname{$_}:$_)." ($authors{$_} extension".($authors{$_}==1?"":"s").")\n";
}
$action{output} = "Program:\n ".$authorname{'000001'}."\n\nExtensions:\n".$authors;
if ($action{gui}) {
$action{action} = 'NONE';
$obj->{-interface}->infobox($action{output});
} else {
$action{action} = 'OUTPUT';
}
}
$action{processed} = 1;
return %action;
}