summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2010-12-23 12:05:57 +0100
committerYorhel <git@yorhel.nl>2010-12-23 12:05:57 +0100
commit951568c87b1a1ad6fcb73928608f76b3470fd817 (patch)
tree9c01cc5a5fd66c894ab76ae7f005668d3f1c256e
parente0131b6ab501eaeda1003ac5131f803a36192d46 (diff)
Converted the show_nsfw preference to use the users_prefs table
-rw-r--r--ChangeLog2
-rw-r--r--lib/VNDB/DB/Users.pm4
-rw-r--r--lib/VNDB/Handler/Users.pm24
-rw-r--r--lib/VNDB/Handler/VNPage.pm10
-rw-r--r--lib/VNDB/Util/FormHTML.pm2
-rw-r--r--util/sql/schema.sql1
-rw-r--r--util/updates/update_2.16.sql3
7 files changed, 23 insertions, 23 deletions
diff --git a/ChangeLog b/ChangeLog
index 8c5f8920..b83ee22f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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;