summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormorkt <>2015-01-04 09:30:48 +0100
committerYorhel <git@yorhel.nl>2015-01-04 09:30:48 +0100
commit34331f1a4625eec8df708a4142b4570c155fb40e (patch)
tree7ac17cab87fc1c5a23f60d3b11715a0d1d741387 /lib
parentd28afb07f7cd0219d1e702883530d6aff158bb6f (diff)
staff: Add some link fields and guidelines
Diffstat (limited to 'lib')
-rw-r--r--lib/VNDB/DB/Staff.pm4
-rw-r--r--lib/VNDB/Handler/Staff.pm37
2 files changed, 28 insertions, 13 deletions
diff --git a/lib/VNDB/DB/Staff.pm b/lib/VNDB/DB/Staff.pm
index 798200f6..cd2f7477 100644
--- a/lib/VNDB/DB/Staff.pm
+++ b/lib/VNDB/DB/Staff.pm
@@ -39,7 +39,7 @@ sub dbStaffGet {
push @join, 'JOIN users u ON u.id = c.requester' if $o{what} =~ /changes/;
my $select = 's.id, sa.id AS aid, sa.name, sa.original, sr.gender, sr.lang, sr.id AS cid';
- $select .= ', sr.desc, sr.l_wp, s.hidden, s.locked' if $o{what} =~ /extended/;
+ $select .= ', sr.desc, sr.l_wp, sr.l_site, sr.l_twitter, sr.l_anidb, s.hidden, s.locked' if $o{what} =~ /extended/;
$select .= q|, extract('epoch' from c.added) as added, c.requester, c.comments, s.latest, u.username, c.rev, c.ihid, c.ilock| if $o{what} =~ /changes/;
my $order = 'ORDER BY sa.name';
@@ -113,7 +113,7 @@ sub dbStaffRevisionInsert {
}
my %staff = map exists($o->{$_}) ? (qq|"$_" = ?|, $o->{$_}) : (),
- qw|aid image gender lang desc l_wp|;
+ qw|aid image gender lang desc l_wp l_site l_twitter l_anidb|;
$self->dbExec('UPDATE edit_staff !H', \%staff) if %staff;
for my $alias (@{$o->{aliases}}) {
if ($alias->[0]) {
diff --git a/lib/VNDB/Handler/Staff.pm b/lib/VNDB/Handler/Staff.pm
index af08a836..fbfb81a6 100644
--- a/lib/VNDB/Handler/Staff.pm
+++ b/lib/VNDB/Handler/Staff.pm
@@ -36,13 +36,13 @@ sub page {
[ original => diff => 1 ],
[ gender => serialize => sub { mt "_gender_$_[0]" } ],
[ lang => serialize => sub { "$_[0] (".mt("_lang_$_[0]").')' } ],
+ [ l_site => diff => 1 ],
[ l_wp => htmlize => sub {
$_[0] ? sprintf '<a href="http://en.wikipedia.org/wiki/%s">%1$s</a>', xml_escape $_[0] : mt '_revision_nolink'
}],
+ [ l_twitter => diff => 1 ],
+ [ l_anidb => serialize => sub { $_[0] // '' } ],
[ desc => diff => qr/[ ,\n\.]/ ],
-# [ image => htmlize => sub {
-# return $_[0] ? sprintf '<img src="%s" />', imgurl(ch => $_[0]) : mt '_stdiff_image_none';
-# }],
[ aliases => join => '<br />', split => sub {
map xml_escape(sprintf('%s%s', $_->{name}, $_->{original} ? ' ('.$_->{original}.')' : '')), @{$_[0]};
}],
@@ -79,10 +79,20 @@ sub page {
end;
end;
}
- if ($s->{l_wp}) {
+ my @links = (
+ $s->{l_site} ? [ 'site', $s->{l_site} ] : (),
+ $s->{l_wp} ? [ 'wp', "http://en.wikipedia.org/wiki/$s->{l_wp}" ] : (),
+ $s->{l_twitter} ? [ 'twitter', "https://twitter.com/$s->{l_twitter}" ] : (),
+ $s->{l_anidb} ? [ 'anidb', "http://anidb.net/cr$s->{l_anidb}" ] : (),
+ );
+ if(@links) {
Tr;
- td colspan => 2;
- a href => "http://en.wikipedia.org/wiki/$s->{l_wp}", mt '_staff_l_wp';
+ td class => 'key', mt '_staff_links';
+ td;
+ for(@links) {
+ a href => $_->[1], mt "_staff_l_$_->[0]";
+ br if $_ != $links[$#links];
+ }
end;
end;
}
@@ -195,10 +205,10 @@ sub edit {
|| $sid && (($s->{locked} || $s->{hidden}) && !$self->authCan('dbmod'));
my %b4 = !$sid ? () : (
- (map { $_ => $s->{$_} } qw|aid name original gender lang desc l_wp ihid ilock|),
+ (map { $_ => $s->{$_} } qw|aid name original gender lang desc l_wp l_site l_twitter l_anidb ihid ilock|),
aliases => jsonEncode [
map +{ aid => $_->{id}, name => $_->{name}, orig => $_->{original} },
- sort { $a->{name} <=> $b->{name} } @{$s->{aliases}}
+ sort { $a->{name} cmp $b->{name} } @{$s->{aliases}}
],
);
my $frm;
@@ -213,6 +223,9 @@ sub edit {
{ post => 'gender', required => 0, default => 'unknown', enum => [qw|unknown m f|] },
{ post => 'lang', enum => $self->{languages} },
{ post => 'l_wp', required => 0, maxlength => 150, default => '' },
+ { post => 'l_site', required => 0, template => 'url', maxlength => 250, default => '' },
+ { post => 'l_twitter', required => 0, maxlength => 16, default => '', regex => [ qr/^\S+$/, mt('_staffe_form_tw_err') ] },
+ { post => 'l_anidb', required => 0, template => 'int', default => undef },
{ post => 'image', required => 0, default => 0, template => 'int' },
{ post => 'aliases', required => 0, maxlength => 5000, default => '' },
{ post => 'editsum', required => 0, maxlength => 5000 },
@@ -235,12 +248,12 @@ sub edit {
}
if(!$frm->{_err}) {
# parse and normalize
- $frm->{aliases} = jsonEncode $aliases;
+ $frm->{aliases} = jsonEncode [ sort { $a->{name} cmp $b->{name} } @$aliases ];
$frm->{ihid} = $frm->{ihid} ?1:0;
$frm->{ilock} = $frm->{ilock}?1:0;
return $self->resRedirect("/s$sid", 'post')
- if $sid && !first { $frm->{$_} ne $b4{$_} } keys %b4;
+ if $sid && !first { ($frm->{$_}//'') ne ($b4{$_}//'') } keys %b4;
}
if(!$frm->{_err}) {
$frm->{aliases} = [ map [ @{$_}{qw|aid name orig|} ], @$aliases ];
@@ -268,7 +281,10 @@ sub edit {
map [ $_, mt("_gender_$_") ], qw(unknown m f) ] ],
[ select => name => mt('_staffe_form_lang'), short => 'lang',
options => [ map [ $_, "$_ (".mt("_lang_$_").')' ], sort @{$self->{languages}} ] ],
+ [ input => name => mt('_staffe_form_site'), short => 'l_site' ],
[ input => name => mt('_staffe_form_wikipedia'), short => 'l_wp', pre => 'http://en.wikipedia.org/wiki/' ],
+ [ input => name => mt('_staffe_form_twitter'), short => 'l_twitter' ],
+ [ input => name => mt('_staffe_form_anidb'), short => 'l_anidb' ],
[ static => content => '<br />' ],
],
@@ -347,7 +363,6 @@ sub list {
for ($perlist*$c..($perlist*($c+1))-1) {
li;
my $gender = $list->[$_]{gender};
-# cssicon "gen $gender", mt "_gender_$gender" if $gender ne 'unknown';
cssicon 'lang '.$list->[$_]{lang}, mt "_lang_$list->[$_]{lang}";
a href => "/s$list->[$_]{id}",
title => $list->[$_]{original}, $list->[$_]{name};