summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2015-07-21 02:13:31 +0200
committerYorhel <git@yorhel.nl>2015-07-21 02:13:31 +0200
commit0032d62652c6168316fd9429d17604b61a812598 (patch)
tree20a40c8771b179dacf37bd62666410159c9fc7fe
parent7605b38f304f043b1a0947278eca12daad32a608 (diff)
Add profile option to show or summarize tags on VN pages by default
-rw-r--r--data/lang.txt12
-rw-r--r--data/script.js2
-rw-r--r--lib/VNDB/Handler/Users.pm6
-rw-r--r--lib/VNDB/Handler/VNPage.pm4
-rw-r--r--util/sql/all.sql2
-rw-r--r--util/updates/update_2.25.sql5
6 files changed, 25 insertions, 6 deletions
diff --git a/data/lang.txt b/data/lang.txt
index f308b4e8..9626176d 100644
--- a/data/lang.txt
+++ b/data/lang.txt
@@ -12544,6 +12544,18 @@ tr : NSFW resimler için gösterilen uyarıyı devre dışı bırak
uk : Відключити попередження про небезпечні зображення.
it : Disabilita avvertimenti per le immagini NSFW
+:_usere_ftags
+en : Show all tags by default on visual novel pages.
+ru*:
+cs*:
+hu*:
+nl*:
+de*:
+es*:
+tr*:
+uk*:
+it*:
+
:_usere_skin
en : Preferred skin
ru : Предпочитаемая шкурка
diff --git a/data/script.js b/data/script.js
index dddc800c..a1e74608 100644
--- a/data/script.js
+++ b/data/script.js
@@ -495,7 +495,7 @@ function tvsInit() {
var l = byName(byId('tagops'), 'a');
for(var i=0;i<l.length; i++)
l[i].onclick = tvsClick;
- tvsSet(getCookie('tagspoil'), true, (getCookie('tagcat')||'cont,tech').split(','));
+ tvsSet(getCookie('tagspoil'), hasClass(l[6], 'tsel'), (getCookie('tagcat')||'cont,tech').split(','));
}
function tvsClick() {
diff --git a/lib/VNDB/Handler/Users.pm b/lib/VNDB/Handler/Users.pm
index 87e9701b..32b1d205 100644
--- a/lib/VNDB/Handler/Users.pm
+++ b/lib/VNDB/Handler/Users.pm
@@ -374,6 +374,7 @@ sub edit {
{ post => 'usrpass2', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' },
{ post => 'hide_list', required => 0, default => 0, enum => [0,1] },
{ post => 'show_nsfw', required => 0, default => 0, enum => [0,1] },
+ { post => 'tags_all', required => 0, default => 0, enum => [0,1] },
{ post => 'skin', required => 0, default => $self->{skin_default}, enum => [ keys %{$self->{skins}} ] },
{ post => 'customcss', required => 0, maxlength => 2000, default => '' },
);
@@ -381,7 +382,7 @@ sub edit {
if ($frm->{usrpass} || $frm->{usrpass2}) && (!$frm->{usrpass} || !$frm->{usrpass2} || $frm->{usrpass} ne $frm->{usrpass2});
if(!$frm->{_err}) {
$frm->{skin} = '' if $frm->{skin} eq $self->{skin_default};
- $self->dbUserPrefSet($uid, $_ => $frm->{$_}) for (qw|skin customcss show_nsfw hide_list |);
+ $self->dbUserPrefSet($uid, $_ => $frm->{$_}) for (qw|skin customcss show_nsfw tags_all hide_list |);
my %o;
if($self->authCan('usermod')) {
$o{username} = $frm->{usrname} if $frm->{usrname};
@@ -400,7 +401,7 @@ sub edit {
$frm->{usrname} ||= $u->{username};
$frm->{mail} ||= $u->{mail};
$frm->{perms} ||= [ grep $u->{perm} & $self->{permissions}{$_}, keys %{$self->{permissions}} ];
- $frm->{$_} //= $u->{prefs}{$_} for(qw|skin customcss show_nsfw hide_list|);
+ $frm->{$_} //= $u->{prefs}{$_} for(qw|skin customcss show_nsfw tags_all hide_list|);
$frm->{ign_votes} = $u->{ign_votes} if !defined $frm->{ign_votes};
$frm->{skin} ||= $self->{skin_default};
@@ -435,6 +436,7 @@ sub edit {
[ part => title => mt '_usere_options' ],
[ check => short => 'hide_list', name => mt '_usere_flist', "/u$uid/list", "/u$uid/votes", "/u$uid/wish" ],
[ check => short => 'show_nsfw', name => mt '_usere_fnsfw' ],
+ [ check => short => 'tags_all', name => mt '_usere_ftags' ],
[ select => short => 'skin', name => mt('_usere_skin'), width => 300, options => [
map [ $_, $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 ae976fa2..ef808d82 100644
--- a/lib/VNDB/Handler/VNPage.pm
+++ b/lib/VNDB/Handler/VNPage.pm
@@ -631,8 +631,8 @@ sub page {
a href => '#', class => 'sec tsel', mt '_vnpage_tags_spoil0';
a href => '#', mt '_vnpage_tags_spoil1';
a href => '#', mt '_vnpage_tags_spoil2';
- a href => '#', class => 'sec', mt '_vnpage_tags_summary';
- a href => '#', mt '_vnpage_tags_all';
+ a href => '#', class => 'sec'.($self->authPref('tags_all') ? '': ' tsel'), mt '_vnpage_tags_summary';
+ a href => '#', $self->authPref('tags_all') ? (class => 'tsel') : (), mt '_vnpage_tags_all';
end;
div id => 'vntags';
for (@$t) {
diff --git a/util/sql/all.sql b/util/sql/all.sql
index 1377e3ad..fc32d3c4 100644
--- a/util/sql/all.sql
+++ b/util/sql/all.sql
@@ -15,7 +15,7 @@ CREATE TYPE medium AS ENUM ('cd', 'dvd', 'gdr', 'blr', 'flp', 'mrt',
CREATE TYPE notification_ntype AS ENUM ('pm', 'dbdel', 'listdel', 'dbedit', 'announce');
CREATE TYPE notification_ltype AS ENUM ('v', 'r', 'p', 'c', 't', 's');
CREATE TYPE platform AS ENUM ('win', 'dos', 'lin', 'mac', 'ios', 'and', 'dvd', 'bdp', 'fmt', 'gba', 'gbc', 'msx', 'nds', 'nes', 'p88', 'p98', 'pce', 'pcf', 'psp', 'ps1', 'ps2', 'ps3', 'ps4', 'psv', 'drc', 'sat', 'sfc', 'wii', 'n3d', 'x68', 'xb1', 'xb3', 'xbo', 'web', 'oth');
-CREATE TYPE prefs_key AS ENUM ('l10n', 'skin', 'customcss', 'filter_vn', 'filter_release', 'show_nsfw', 'hide_list', 'notify_nodbedit', 'notify_announce', 'vn_list_own', 'vn_list_wish');
+CREATE TYPE prefs_key AS ENUM ('l10n', 'skin', 'customcss', 'filter_vn', 'filter_release', 'show_nsfw', 'hide_list', 'notify_nodbedit', 'notify_announce', 'vn_list_own', 'vn_list_wish', 'tags_all');
CREATE TYPE producer_relation AS ENUM ('old', 'new', 'sub', 'par', 'imp', 'ipa', 'spa', 'ori');
CREATE TYPE release_type AS ENUM ('complete', 'partial', 'trial');
CREATE TYPE tag_category AS ENUM('cont', 'ero', 'tech');
diff --git a/util/updates/update_2.25.sql b/util/updates/update_2.25.sql
index a7ccf6c4..05839565 100644
--- a/util/updates/update_2.25.sql
+++ b/util/updates/update_2.25.sql
@@ -36,3 +36,8 @@ INSERT INTO stats_cache (section, count) VALUES ('staff', 0);
CREATE TRIGGER stats_cache_new AFTER INSERT ON staff FOR EACH ROW WHEN (NEW.hidden = FALSE) EXECUTE PROCEDURE update_stats_cache();
CREATE TRIGGER stats_cache_edit AFTER UPDATE ON staff FOR EACH ROW WHEN (OLD.hidden IS DISTINCT FROM NEW.hidden) EXECUTE PROCEDURE update_stats_cache();
UPDATE stats_cache SET count = (SELECT COUNT(*) FROM staff WHERE hidden = FALSE) WHERE section = 'staff'
+
+
+-- New preferences
+ALTER TYPE prefs_key ADD VALUE 'tags_all';
+