From e46f634c49aa4e174d6cc351b25a60d33c251b25 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Tue, 25 Jan 2011 16:45:45 +0100 Subject: TUWF: Initial convert from YAWF to TUWF There may still be some bugs present and I've only converted the points where TUWF is incompatible with YAWF. The new TUWF features are not in use yet, I'll do that later on. Note that, in order to run the new code, TUWF must be installed on your system. The configuration for the TransAdmin plugin has also changed. Other than that there shouldn't be any issues. --- lib/VNDB/Handler/Releases.pm | 94 ++++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 47 deletions(-) (limited to 'lib/VNDB/Handler/Releases.pm') diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm index 06dcfd0a..32608d30 100644 --- a/lib/VNDB/Handler/Releases.pm +++ b/lib/VNDB/Handler/Releases.pm @@ -3,11 +3,11 @@ package VNDB::Handler::Releases; use strict; use warnings; -use YAWF ':html'; +use TUWF ':html'; use VNDB::Func; -YAWF::register( +TUWF::register( qr{r([1-9]\d*)(?:\.([1-9]\d*))?} => \&page, qr{(v)([1-9]\d*)/add} => \&edit, qr{r} => \&browse, @@ -24,7 +24,7 @@ sub page { what => 'vn extended producers platforms media'.($rev ? ' changes' : ''), $rev ? (rev => $rev) : (), )->[0]; - return 404 if !$r->{id}; + return $self->resNotFound if !$r->{id}; $self->htmlHeader(title => $r->{title}, noindex => $rev); $self->htmlMainTabs('r', $r); @@ -272,11 +272,11 @@ sub edit { } my $r = $rid && $self->dbReleaseGet(id => $rid, what => 'vn extended producers platforms media changes', $rev ? (rev => $rev) : ())->[0]; - return 404 if $rid && !$r->{id}; + return $self->resNotFound if $rid && !$r->{id}; $rev = undef if !$r || $r->{cid} == $r->{latest}; my $v = $vid && $self->dbVNGet(id => $vid)->[0]; - return 404 if $vid && !$v->{id}; + return $self->resNotFound if $vid && !$v->{id}; return $self->htmlDenied if !$self->authCan('edit') || $rid && ($r->{locked} && !$self->authCan('lock') || $r->{hidden} && !$self->authCan('del')); @@ -298,31 +298,31 @@ sub edit { if($self->reqMethod eq 'POST') { return if !$self->authCheckCode; $frm = $self->formValidate( - { name => 'type', enum => $self->{release_types} }, - { name => 'patch', required => 0, default => 0 }, - { name => 'freeware', required => 0, default => 0 }, - { name => 'doujin', required => 0, default => 0 }, - { name => 'title', maxlength => 250 }, - { name => 'original', required => 0, default => '', maxlength => 250 }, - { name => 'gtin', required => 0, default => '0', + { post => 'type', enum => $self->{release_types} }, + { post => 'patch', required => 0, default => 0 }, + { post => 'freeware', required => 0, default => 0 }, + { post => 'doujin', required => 0, default => 0 }, + { post => 'title', maxlength => 250 }, + { post => 'original', required => 0, default => '', maxlength => 250 }, + { post => 'gtin', required => 0, default => '0', func => [ \>intype, 'Not a valid JAN/UPC/EAN code' ] }, - { name => 'catalog', required => 0, default => '', maxlength => 50 }, - { name => 'languages', multi => 1, enum => $self->{languages} }, - { name => 'website', required => 0, default => '', maxlength => 250, template => 'url' }, - { name => 'released', required => 0, default => 0, template => 'int' }, - { name => 'minage' , required => 0, default => -1, enum => $self->{age_ratings} }, - { name => 'notes', required => 0, default => '', maxlength => 10240 }, - { name => 'platforms', required => 0, default => '', multi => 1, enum => $self->{platforms} }, - { name => 'media', required => 0, default => '' }, - { name => 'resolution',required => 0, default => 0, enum => [ 0..$#{$self->{resolutions}} ] }, - { name => 'voiced', required => 0, default => 0, enum => $self->{voiced} }, - { name => 'ani_story', required => 0, default => 0, enum => $self->{animated} }, - { name => 'ani_ero', required => 0, default => 0, enum => $self->{animated} }, - { name => 'producers', required => 0, default => '' }, - { name => 'vn', maxlength => 5000 }, - { name => 'editsum', required => 0, maxlength => 5000 }, - { name => 'ihid', required => 0 }, - { name => 'ilock', required => 0 }, + { post => 'catalog', required => 0, default => '', maxlength => 50 }, + { post => 'languages', multi => 1, enum => $self->{languages} }, + { post => 'website', required => 0, default => '', maxlength => 250, template => 'url' }, + { post => 'released', required => 0, default => 0, template => 'int' }, + { post => 'minage' , required => 0, default => -1, enum => $self->{age_ratings} }, + { post => 'notes', required => 0, default => '', maxlength => 10240 }, + { post => 'platforms', required => 0, default => '', multi => 1, enum => $self->{platforms} }, + { post => 'media', required => 0, default => '' }, + { post => 'resolution',required => 0, default => 0, enum => [ 0..$#{$self->{resolutions}} ] }, + { post => 'voiced', required => 0, default => 0, enum => $self->{voiced} }, + { post => 'ani_story', required => 0, default => 0, enum => $self->{animated} }, + { post => 'ani_ero', required => 0, default => 0, enum => $self->{animated} }, + { post => 'producers', required => 0, default => '' }, + { post => 'vn', maxlength => 5000 }, + { post => 'editsum', required => 0, maxlength => 5000 }, + { post => 'ihid', required => 0 }, + { post => 'ilock', required => 0 }, ); push @{$frm->{_err}}, 'badeditsum' if !$frm->{editsum} || lc($frm->{editsum}) eq lc($frm->{notes}); @@ -480,13 +480,13 @@ sub browse { my $self = shift; my $f = $self->formValidate( - { name => 'p', required => 0, default => 1, template => 'int' }, - { name => 'o', required => 0, default => 'a', enum => ['a', 'd'] }, - { name => 'q', required => 0, default => '', maxlength => 500 }, - { name => 's', required => 0, default => 'title', enum => [qw|released minage title|] }, - { name => 'fil',required => 0, default => '' }, + { get => 'p', required => 0, default => 1, template => 'int' }, + { get => 'o', required => 0, default => 'a', enum => ['a', 'd'] }, + { get => 'q', required => 0, default => '', maxlength => 500 }, + { get => 's', required => 0, default => 'title', enum => [qw|released minage title|] }, + { get => 'fil',required => 0, default => '' }, ); - return 404 if $f->{_err}; + return $self->resNotFound if $f->{_err}; $f->{fil} = $self->authPref('filter_release') if !grep $_ eq 'fil', $self->reqParam(); my %compat = _fil_compat($self); @@ -561,18 +561,18 @@ sub _fil_compat { my $self = shift; my %c; my $f = $self->formValidate( - { name => 'ln', required => 0, multi => 1, default => '', enum => $self->{languages} }, - { name => 'pl', required => 0, multi => 1, default => '', enum => $self->{platforms} }, - { name => 'me', required => 0, multi => 1, default => '', enum => [ keys %{$self->{media}} ] }, - { name => 'tp', required => 0, default => '', enum => [ '', @{$self->{release_types}} ] }, - { name => 'pa', required => 0, default => 0, enum => [ 0..2 ] }, - { name => 'fw', required => 0, default => 0, enum => [ 0..2 ] }, - { name => 'do', required => 0, default => 0, enum => [ 0..2 ] }, - { name => 'ma_m', required => 0, default => 0, enum => [ 0, 1 ] }, - { name => 'ma_a', required => 0, default => 0, enum => $self->{age_ratings} }, - { name => 'mi', required => 0, default => 0, template => 'int' }, - { name => 'ma', required => 0, default => 99999999, template => 'int' }, - { name => 're', required => 0, multi => 1, default => 0, enum => [ 1..$#{$self->{resolutions}} ] }, + { get => 'ln', required => 0, multi => 1, default => '', enum => $self->{languages} }, + { get => 'pl', required => 0, multi => 1, default => '', enum => $self->{platforms} }, + { get => 'me', required => 0, multi => 1, default => '', enum => [ keys %{$self->{media}} ] }, + { get => 'tp', required => 0, default => '', enum => [ '', @{$self->{release_types}} ] }, + { get => 'pa', required => 0, default => 0, enum => [ 0..2 ] }, + { get => 'fw', required => 0, default => 0, enum => [ 0..2 ] }, + { get => 'do', required => 0, default => 0, enum => [ 0..2 ] }, + { get => 'ma_m', required => 0, default => 0, enum => [ 0, 1 ] }, + { get => 'ma_a', required => 0, default => 0, enum => $self->{age_ratings} }, + { get => 'mi', required => 0, default => 0, template => 'int' }, + { get => 'ma', required => 0, default => 99999999, template => 'int' }, + { get => 're', required => 0, multi => 1, default => 0, enum => [ 1..$#{$self->{resolutions}} ] }, ); return () if $f->{_err}; $c{minage} = [ grep $_ >= 0 && ($f->{ma_m} ? $f->{ma_a} >= $_ : $f->{ma_a} <= $_), @{$self->{age_ratings}} ] if $f->{ma_a} || $f->{ma_m}; -- cgit v1.2.3 From 78f364130abe51a4baeeef1e20a7292c3a1a28dd Mon Sep 17 00:00:00 2001 From: Yorhel Date: Thu, 27 Jan 2011 10:43:19 +0100 Subject: TUWF: Use the uri_escape() provided by TUWF --- lib/VNDB/Handler/Releases.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/VNDB/Handler/Releases.pm') diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm index 32608d30..be1d8bd4 100644 --- a/lib/VNDB/Handler/Releases.pm +++ b/lib/VNDB/Handler/Releases.pm @@ -3,7 +3,7 @@ package VNDB::Handler::Releases; use strict; use warnings; -use TUWF ':html'; +use TUWF ':html', 'uri_escape'; use VNDB::Func; -- cgit v1.2.3 From 2e12ebc8ca793160cb0cd54c1fd0bfd42676c1ae Mon Sep 17 00:00:00 2001 From: Yorhel Date: Thu, 27 Jan 2011 12:32:37 +0100 Subject: TUWF: Added tag name to several end() calls Haven't found any bugs this way, yet. I doubt there'll be any problems, but it's a nice new feature that could help quite a bit. :-D --- lib/VNDB/Handler/Releases.pm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'lib/VNDB/Handler/Releases.pm') diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm index be1d8bd4..f65d3e0c 100644 --- a/lib/VNDB/Handler/Releases.pm +++ b/lib/VNDB/Handler/Releases.pm @@ -250,10 +250,10 @@ sub _infotable { option value => -1, mt '_relinfo_user_del' if $rl; end; end; - end; + end 'tr'; } - end; + end 'table'; } @@ -456,7 +456,7 @@ sub _form { option value => 3, mt '_redit_form_prod_both'; end; end; td class => 'tc_add'; a id => 'producer_add', href => '#', mt '_redit_form_prod_addbut'; end; - end; end; + end; end 'table'; }], ], @@ -509,7 +509,7 @@ sub browse { end; input type => 'hidden', class => 'hidden', name => 'fil', id => 'fil', value => $f->{fil}; end; - end; + end 'form'; my $uri = sprintf '/r?q=%s;fil=%s', uri_escape($f->{q}), $f->{fil}; $self->htmlBrowse( @@ -541,7 +541,7 @@ sub browse { a href => "/r$l->{id}", title => $l->{original}||$l->{title}, shorten $l->{title}, 90; b class => 'grayedout', ' (patch)' if $l->{patch}; end; - end; + end 'tr'; }, ) if @$list; if(($f->{q} || $f->{fil}) && !@$list) { -- cgit v1.2.3 From 11ba55dfc97565ec17fd4828b407d477d2844147 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Thu, 27 Jan 2011 15:39:02 +0100 Subject: L10N: Renamed _rbrowse_filters to _js_fil_filters --- lib/VNDB/Handler/Releases.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/VNDB/Handler/Releases.pm') diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm index f65d3e0c..a4d70e87 100644 --- a/lib/VNDB/Handler/Releases.pm +++ b/lib/VNDB/Handler/Releases.pm @@ -505,7 +505,7 @@ sub browse { h1 mt '_rbrowse_title'; $self->htmlSearchBox('r', $f->{q}); a id => 'filselect', href => '#r'; - lit ' '.mt('_rbrowse_filters').''; + lit ' '.mt('_js_fil_filters').''; end; input type => 'hidden', class => 'hidden', name => 'fil', id => 'fil', value => $f->{fil}; end; -- cgit v1.2.3 From 7ef623807ff91258743db4d6555150fd38968eea Mon Sep 17 00:00:00 2001 From: Yorhel Date: Thu, 3 Feb 2011 17:12:47 +0100 Subject: Cleaner and more efficient method of checking for the &fil= param With the new TUWF, kv_validate() returns undef when the param isn't present and an empty string if it is, but left empty. This is a more efficient way to differentiate between empty and nonexistent than the previous YAWF-method of grepping all param names. --- lib/VNDB/Handler/Releases.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/VNDB/Handler/Releases.pm') diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm index a4d70e87..349c813b 100644 --- a/lib/VNDB/Handler/Releases.pm +++ b/lib/VNDB/Handler/Releases.pm @@ -484,10 +484,10 @@ sub browse { { get => 'o', required => 0, default => 'a', enum => ['a', 'd'] }, { get => 'q', required => 0, default => '', maxlength => 500 }, { get => 's', required => 0, default => 'title', enum => [qw|released minage title|] }, - { get => 'fil',required => 0, default => '' }, + { get => 'fil',required => 0 }, ); return $self->resNotFound if $f->{_err}; - $f->{fil} = $self->authPref('filter_release') if !grep $_ eq 'fil', $self->reqParam(); + $f->{fil} //= $self->authPref('filter_release'); my %compat = _fil_compat($self); my($list, $np) = !$f->{q} && !$f->{fil} && !keys %compat ? ([], 0) : $self->filFetchDB(release => $f->{fil}, \%compat, { -- cgit v1.2.3