diff options
author | Yorhel <git@yorhel.nl> | 2010-12-23 12:05:57 +0100 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2010-12-23 12:05:57 +0100 |
commit | 951568c87b1a1ad6fcb73928608f76b3470fd817 (patch) | |
tree | 9c01cc5a5fd66c894ab76ae7f005668d3f1c256e | |
parent | e0131b6ab501eaeda1003ac5131f803a36192d46 (diff) |
Converted the show_nsfw preference to use the users_prefs table
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | lib/VNDB/DB/Users.pm | 4 | ||||
-rw-r--r-- | lib/VNDB/Handler/Users.pm | 24 | ||||
-rw-r--r-- | lib/VNDB/Handler/VNPage.pm | 10 | ||||
-rw-r--r-- | lib/VNDB/Util/FormHTML.pm | 2 | ||||
-rw-r--r-- | util/sql/schema.sql | 1 | ||||
-rw-r--r-- | util/updates/update_2.16.sql | 3 |
7 files changed, 23 insertions, 23 deletions
@@ -16,7 +16,7 @@ - Improved VN tag filter selection with a dynamic HTML list of selected tags - Don't send 'tagspoil' filter when 'tag_inc' isn't active - Don't allow page > 100 or sorting on username or title on tag link browser - - Added users_prefs table and removed users.(skin|customcss) + - Added users_prefs table and removed users.(skin|customcss|show_nsfw) 2.15 - 2010-12-15 - Removed expand/collapse from history browser and /u+/posts and switched to diff --git a/lib/VNDB/DB/Users.pm b/lib/VNDB/DB/Users.pm index 73479784..86249f44 100644 --- a/lib/VNDB/DB/Users.pm +++ b/lib/VNDB/DB/Users.pm @@ -54,7 +54,7 @@ sub dbUserGet { qw|id username c_votes c_changes show_list c_tags|, q|extract('epoch' from registered) as registered|, $o{what} =~ /extended/ ? ( - qw|mail rank salt show_nsfw ign_votes notify_dbedit notify_announce|, + qw|mail rank salt ign_votes notify_dbedit notify_announce|, q|encode(passwd, 'hex') AS passwd| ) : (), $o{what} =~ /notifycount/ ? @@ -114,7 +114,7 @@ sub dbUserEdit { my %h; defined $o{$_} && ($h{$_.' = ?'} = $o{$_}) - for (qw| username mail rank show_nsfw show_list salt ign_votes notify_dbedit notify_announce |); + for (qw| username mail rank show_list salt ign_votes notify_dbedit notify_announce |); $h{'passwd = decode(?, \'hex\')'} = $o{passwd} if defined $o{passwd}; diff --git a/lib/VNDB/Handler/Users.pm b/lib/VNDB/Handler/Users.pm index 31de6bd7..d3879109 100644 --- a/lib/VNDB/Handler/Users.pm +++ b/lib/VNDB/Handler/Users.pm @@ -300,29 +300,28 @@ sub edit { return if !$self->authCheckCode; $frm = $self->formValidate( $self->authCan('usermod') ? ( - { name => 'usrname', template => 'pname', minlength => 2, maxlength => 15 }, - { name => 'rank', enum => [ 1..$#{$self->{user_ranks}} ] }, + { name => 'usrname', template => 'pname', minlength => 2, maxlength => 15 }, + { name => 'rank', enum => [ 1..$#{$self->{user_ranks}} ] }, { name => 'ign_votes', required => 0, default => 0 }, ) : (), - { name => 'mail', template => 'mail' }, - { name => 'usrpass', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' }, - { name => 'usrpass2', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' }, + { name => 'mail', template => 'mail' }, + { name => 'usrpass', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' }, + { name => 'usrpass2', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' }, { name => 'flags_list', required => 0, default => 0 }, - { name => 'flags_nsfw', required => 0, default => 0 }, - { name => 'skin', enum => [ '', keys %{$self->{skins}} ], required => 0, default => '' }, - { name => 'customcss', required => 0, maxlength => 2000, default => '' }, + { name => 'show_nsfw', required => 0, default => 0, enum => [0,1] }, + { name => 'skin', required => 0, default => '', enum => [ '', keys %{$self->{skins}} ] }, + { name => 'customcss', required => 0, maxlength => 2000, default => '' }, ); push @{$frm->{_err}}, 'passmatch' if ($frm->{usrpass} || $frm->{usrpass2}) && (!$frm->{usrpass} || !$frm->{usrpass2} || $frm->{usrpass} ne $frm->{usrpass2}); if(!$frm->{_err}) { - $self->dbUserPrefSet($uid, $_ => $frm->{$_}) for (qw|skin customcss|); + $self->dbUserPrefSet($uid, $_ => $frm->{$_}) for (qw|skin customcss show_nsfw |); my %o; $o{username} = $frm->{usrname} if $frm->{usrname}; $o{rank} = $frm->{rank} if $frm->{rank}; $o{mail} = $frm->{mail}; ($o{passwd}, $o{salt}) = $self->authPreparePass($frm->{usrpass}) if $frm->{usrpass}; $o{show_list} = $frm->{flags_list} ? 1 : 0; - $o{show_nsfw} = $frm->{flags_nsfw} ? 1 : 0; $o{ign_votes} = $frm->{ign_votes} ? 1 : 0 if $self->authCan('usermod'); $self->dbUserEdit($uid, %o); $self->dbSessionDel($uid) if $frm->{usrpass}; @@ -334,9 +333,8 @@ sub edit { # fill out default values $frm->{usrname} ||= $u->{username}; $frm->{$_} ||= $u->{$_} for(qw|rank mail|); - $frm->{$_} ||= $u->{prefs}{$_} for(qw|skin customcss|); + $frm->{$_} //= $u->{prefs}{$_} for(qw|skin customcss show_nsfw|); $frm->{flags_list} = $u->{show_list} if !defined $frm->{flags_list}; - $frm->{flags_nsfw} = $u->{show_nsfw} if !defined $frm->{flags_nsfw}; $frm->{ign_votes} = $u->{ign_votes} if !defined $frm->{ign_votes}; # create the page @@ -369,7 +367,7 @@ sub edit { [ part => title => mt '_usere_options' ], [ check => short => 'flags_list', name => mt '_usere_flist', "/u$uid/list", "/u$uid/wish" ], - [ check => short => 'flags_nsfw', name => mt '_usere_fnsfw' ], + [ check => short => 'show_nsfw', name => mt '_usere_fnsfw' ], [ select => short => 'skin', name => mt('_usere_skin'), width => 300, options => [ map [ $_ eq $self->{skin_default} ? '' : $_, $self->{skins}{$_}[0].($self->debug?" [$_]":'') ], sort { $self->{skins}{$a}[0] cmp $self->{skins}{$b}[0] } keys %{$self->{skins}} ] ], [ textarea => short => 'customcss', name => mt '_usere_css' ], diff --git a/lib/VNDB/Handler/VNPage.pm b/lib/VNDB/Handler/VNPage.pm index ab10f5e9..a4f385db 100644 --- a/lib/VNDB/Handler/VNPage.pm +++ b/lib/VNDB/Handler/VNPage.pm @@ -74,12 +74,12 @@ sub page { } elsif($v->{image} < 0) { p mt '_vnpage_imgproc'; } else { - p $v->{img_nsfw} ? (id => 'nsfw_hid', style => $self->authInfo->{show_nsfw} ? 'display: block' : '') : (); + p $v->{img_nsfw} ? (id => 'nsfw_hid', style => $self->authPref('show_nsfw') ? 'display: block' : '') : (); img src => sprintf("%s/cv/%02d/%d.jpg", $self->{url_static}, $v->{image}%100, $v->{image}), alt => $v->{title}; i mt '_vnpage_imgnsfw_foot' if $v->{img_nsfw}; end; if($v->{img_nsfw}) { - p id => 'nsfw_show', $self->authInfo->{show_nsfw} ? (style => 'display: none') : (); + p id => 'nsfw_show', $self->authPref('show_nsfw') ? (style => 'display: none') : (); txt mt('_vnpage_imgnsfw_msg')."\n\n"; a href => '#', mt '_vnpage_imgnsfw_show'; txt "\n\n".mt '_vnpage_imgnsfw_note'; @@ -225,7 +225,7 @@ sub _revision { [ image => htmlize => sub { my $url = sprintf "%s/cv/%02d/%d.jpg", $self->{url_static}, $_[0]%100, $_[0]; if($_[0] > 0) { - return $_[1]->{img_nsfw} && !$self->authInfo->{show_nsfw} ? "<a href=\"$url\">".mt('_vndiff_image_nsfw').'</a>' : "<img src=\"$url\" />"; + return $_[1]->{img_nsfw} && !$self->authPref('show_nsfw') ? "<a href=\"$url\">".mt('_vndiff_image_nsfw').'</a>' : "<img src=\"$url\" />"; } else { return mt $_[0] < 0 ? '_vndiff_image_proc' : '_vndiff_image_none'; } @@ -461,7 +461,7 @@ sub _screenshots { if(grep $_->{nsfw}, @{$v->{screenshots}}) { p class => 'nsfwtoggle'; lit mt '_vnpage_scr_showing', - sprintf('<i id="nsfwshown">%d</i>', $self->authInfo->{show_nsfw} ? scalar @{$v->{screenshots}} : scalar grep(!$_->{nsfw}, @{$v->{screenshots}})), + sprintf('<i id="nsfwshown">%d</i>', $self->authPref('show_nsfw') ? scalar @{$v->{screenshots}} : scalar grep(!$_->{nsfw}, @{$v->{screenshots}})), scalar @{$v->{screenshots}}; txt " "; a href => '#', id => "nsfwhide", mt '_vnpage_scr_nsfwhide'; @@ -481,7 +481,7 @@ sub _screenshots { for (@scr) { my($w, $h) = imgsize($_->{width}, $_->{height}, @{$self->{scr_size}}); a href => sprintf('%s/sf/%02d/%d.jpg', $self->{url_static}, $_->{id}%100, $_->{id}), - class => sprintf('scrlnk%s%s', $_->{nsfw} ? ' nsfw':'', $_->{nsfw}&&!$self->authInfo->{show_nsfw}?' hidden':''), + class => sprintf('scrlnk%s%s', $_->{nsfw} ? ' nsfw':'', $_->{nsfw}&&!$self->authPref('show_nsfw')?' hidden':''), rel => "iv:$_->{width}x$_->{height}:scr"; img src => sprintf('%s/st/%02d/%d.jpg', $self->{url_static}, $_->{id}%100, $_->{id}), width => $w, height => $h, alt => mt '_vnpage_scr_num', $_->{id}; diff --git a/lib/VNDB/Util/FormHTML.pm b/lib/VNDB/Util/FormHTML.pm index 6cb9f7a2..7956a4c2 100644 --- a/lib/VNDB/Util/FormHTML.pm +++ b/lib/VNDB/Util/FormHTML.pm @@ -89,7 +89,7 @@ sub htmlFormPart { end; td class => 'field'; input type => 'checkbox', name => $o{short}, id => $o{short}, - value => $o{value}||'true', $frm->{$o{short}} ? ( checked => 'checked' ) : (); + value => $o{value}||1, $frm->{$o{short}} ? ( checked => 'checked' ) : (); label for => $o{short}; lit $o{name}; end; diff --git a/util/sql/schema.sql b/util/sql/schema.sql index 02fb7d60..8826a01e 100644 --- a/util/sql/schema.sql +++ b/util/sql/schema.sql @@ -266,7 +266,6 @@ CREATE TABLE users ( rank smallint NOT NULL DEFAULT 3, passwd bytea NOT NULL DEFAULT '', registered timestamptz NOT NULL DEFAULT NOW(), - show_nsfw boolean NOT NULL DEFAULT FALSE, show_list boolean NOT NULL DEFAULT TRUE, c_votes integer NOT NULL DEFAULT 0, c_changes integer NOT NULL DEFAULT 0, diff --git a/util/updates/update_2.16.sql b/util/updates/update_2.16.sql index 86654c72..a0678fd3 100644 --- a/util/updates/update_2.16.sql +++ b/util/updates/update_2.16.sql @@ -63,7 +63,10 @@ INSERT INTO users_prefs (uid, key, value) SELECT id, 'skin'::prefs_key, skin FROM users WHERE skin <> '' UNION SELECT id, 'customcss', customcss FROM users WHERE customcss <> ''; + UNION + SELECT id, 'show_nsfw'::prefs_key, '1' FROM users WHERE show_nsfw; ALTER TABLE users DROP COLUMN skin; ALTER TABLE users DROP COLUMN customcss; +ALTER TABLE users DROP COLUMN show_nsfw; |