summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1
-rw-r--r--Makefile9
-rw-r--r--data/global.pl1
-rw-r--r--data/lang.txt37
-rw-r--r--lib/VNDB/DB/Tags.pm4
-rw-r--r--lib/VNDB/Handler/Tags.pm11
-rw-r--r--util/sql/all.sql1
-rw-r--r--util/sql/schema.sql3
-rw-r--r--util/updates/update_2.18.sql5
9 files changed, 66 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index d51f3801..ad9a3abb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,5 @@
2.18 -
+ - Added category field to tags (content/ero/technical)
2.17 - 2011-02-04
- Allow moderators to overrule VN tag votes
diff --git a/Makefile b/Makefile
index 3e62d98d..16246871 100644
--- a/Makefile
+++ b/Makefile
@@ -37,8 +37,8 @@
# environments. Patches to improve the portability are always welcome.
-.PHONY: all dirs js skins robots chmod chmod-tladmin multi-stop multi-start multi-restart\
- sql-import update-2.10 update-2.11 update-2.12 update-2.13 update-2.14 update-2.15 update-2.16 update-2.17
+.PHONY: all dirs js skins robots chmod chmod-tladmin multi-stop multi-start multi-restart sql-import\
+ update-2.10 update-2.11 update-2.12 update-2.13 update-2.14 update-2.15 update-2.16 update-2.17 update-2.18
all: dirs js skins robots data/config.pl
@@ -168,3 +168,8 @@ update-2.17: all
$(multi-stop)
${runpsql} < util/updates/update_2.17.sql
$(multi-start)
+
+update-2.18: all
+ $(multi-stop)
+ ${runpsql} < util/updates/update_2.18.sql
+ $(multi-start)
diff --git a/data/global.pl b/data/global.pl
index 971db80a..30feb436 100644
--- a/data/global.pl
+++ b/data/global.pl
@@ -99,6 +99,7 @@ our %S = (%S,
[ '1280x800', '_scrres_ws' ],
[ '1920x1080', '_scrres_ws' ],
],
+ tag_categories => [ qw|cont ero tech| ],
voiced => [ 0..4 ],
animated => [ 0..4 ],
wishlist_status => [ 0..3 ],
diff --git a/data/lang.txt b/data/lang.txt
index 7a470697..8a94a3cb 100644
--- a/data/lang.txt
+++ b/data/lang.txt
@@ -1137,6 +1137,29 @@ hu : Lemondva
nl : Opgegeven
+# Tag categories
+
+:_tagcat_cont
+en : Content
+ru*:
+cs*:
+hu*:
+nl : Inhoud
+
+:_tagcat_ero
+en : Sexual content
+ru*:
+cs*:
+hu*:
+nl : Erotisch
+
+:_tagcat_tech
+en : Technical
+ru*:
+cs*:
+hu*:
+nl : Technisch
+
#############################################################################
@@ -3930,6 +3953,13 @@ cs : Tagy
hu : Címkék
nl :
+:_tagp_cat
+en : Category
+ru*:
+cs*:
+hu*:
+nl : Categorie
+
:_tagp_aliases
en : Aliases
ru : Прочие названия
@@ -4158,6 +4188,13 @@ cs : VAROVÁNÍ: Zaškrtnutí této volby nebo výběr položky "Smazáno" jako
hu : FIGYELEM: Ezen opció bejelölése vagy a "Törölve" állapot kiválasztása véglegesen megsemmisít minden összefüggést a VN-ekel!
nl : WAARSCHUWING: Als je deze optie selecteerd of als je de status op "verwijderd" zet zullen alle stemmen permanent verwijderd worden!
+:_tagedit_frm_cat
+en : Category
+ru*:
+cs*:
+hu*:
+nl : Categorie
+
:_tagedit_frm_alias
en : Aliases
(separated by newlines)
diff --git a/lib/VNDB/DB/Tags.pm b/lib/VNDB/DB/Tags.pm
index b7792eb8..51ab4b93 100644
--- a/lib/VNDB/DB/Tags.pm
+++ b/lib/VNDB/DB/Tags.pm
@@ -39,7 +39,7 @@ sub dbTagGet {
't.meta = ?' => $o{meta}?1:0 ) : (),
);
my @select = (
- qw|t.id t.meta t.name t.description t.state t.c_vns|,
+ qw|t.id t.meta t.name t.description t.state t.cat t.c_vns|,
q|extract('epoch' from t.added) as added|,
$o{what} =~ /addedby/ ? ('t.addedby', 'u.username') : (),
);
@@ -122,7 +122,7 @@ sub dbTagEdit {
$self->dbExec('UPDATE tags !H WHERE id = ?', {
$o{upddate} ? ('added = NOW()' => 1) : (),
- map { +"$_ = ?" => $o{$_} } qw|name meta description state|
+ map { +"$_ = ?" => $o{$_} } qw|name meta description state cat|
}, $id);
$self->dbExec('DELETE FROM tags_aliases WHERE tag = ?', $id);
$self->dbExec('INSERT INTO tags_aliases (tag, alias) VALUES (?, ?)', $id, $_) for (@{$o{aliases}});
diff --git a/lib/VNDB/Handler/Tags.pm b/lib/VNDB/Handler/Tags.pm
index 43137506..50c91455 100644
--- a/lib/VNDB/Handler/Tags.pm
+++ b/lib/VNDB/Handler/Tags.pm
@@ -94,6 +94,11 @@ sub tagpage {
lit bb2html $t->{description};
end;
}
+ p class => 'center';
+ b mt('_tagp_cat');
+ br;
+ txt mt("_tagcat_$t->{cat}");
+ end;
if(@{$t->{aliases}}) {
p class => 'center';
b mt('_tagp_aliases');
@@ -198,6 +203,7 @@ sub tagedit {
$frm = $self->formValidate(
{ post => 'name', required => 1, maxlength => 250, regex => [ qr/^[^,]+$/, 'A comma is not allowed in tag names' ] },
{ post => 'state', required => 0, default => 0, enum => [ 0..2 ] },
+ { post => 'cat', required => 1, enum => $self->{tag_categories} },
{ post => 'meta', required => 0, default => 0 },
{ post => 'alias', required => 0, maxlength => 1024, default => '', regex => [ qr/^[^,]+$/s, 'No comma allowed in aliases' ] },
{ post => 'description', required => 0, maxlength => 10240, default => '' },
@@ -225,6 +231,7 @@ sub tagedit {
my %opts = (
name => $frm->{name},
state => $frm->{state},
+ cat => $frm->{cat},
description => $frm->{description},
meta => $frm->{meta}?1:0,
aliases => \@aliases,
@@ -242,7 +249,7 @@ sub tagedit {
}
if($tag) {
- $frm->{$_} ||= $t->{$_} for (qw|name meta description state|);
+ $frm->{$_} ||= $t->{$_} for (qw|name meta description state cat|);
$frm->{alias} ||= join "\n", @{$t->{aliases}};
$frm->{parents} ||= join ', ', map $_->{name}, @{$t->{parents}};
}
@@ -274,6 +281,8 @@ sub tagedit {
$tag ?
[ static => content => mt '_tagedit_frm_meta_warn' ] : (),
) : (),
+ [ select => short => 'cat', name => mt('_tagedit_frm_cat'), options => [
+ map [$_, mt "_tagcat_$_"], @{$self->{tag_categories}} ] ],
[ textarea => short => 'alias', name => mt('_tagedit_frm_alias'), cols => 30, rows => 4 ],
[ textarea => short => 'description', name => mt '_tagedit_frm_desc' ],
[ static => content => mt '_tagedit_frm_desc_msg' ],
diff --git a/util/sql/all.sql b/util/sql/all.sql
index 09a6d214..0a6d1037 100644
--- a/util/sql/all.sql
+++ b/util/sql/all.sql
@@ -13,6 +13,7 @@ CREATE TYPE notification_ltype AS ENUM ('v', 'r', 'p', 't');
CREATE TYPE prefs_key AS ENUM ('l10n', 'skin', 'customcss', 'filter_vn', 'filter_release', 'show_nsfw', 'hide_list', 'notify_nodbedit', 'notify_announce');
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');
CREATE TYPE vn_relation AS ENUM ('seq', 'preq', 'set', 'alt', 'char', 'side', 'par', 'ser', 'fan', 'orig');
diff --git a/util/sql/schema.sql b/util/sql/schema.sql
index 2a3a394a..dd2b2ffd 100644
--- a/util/sql/schema.sql
+++ b/util/sql/schema.sql
@@ -193,7 +193,8 @@ CREATE TABLE tags (
added timestamptz NOT NULL DEFAULT NOW(),
state smallint NOT NULL DEFAULT 0,
c_vns integer NOT NULL DEFAULT 0,
- addedby integer NOT NULL DEFAULT 0
+ addedby integer NOT NULL DEFAULT 0,
+ cat tag_category NOT NULL DEFAULT 'cont'
);
-- tags_aliases
diff --git a/util/updates/update_2.18.sql b/util/updates/update_2.18.sql
new file mode 100644
index 00000000..c4cfe84f
--- /dev/null
+++ b/util/updates/update_2.18.sql
@@ -0,0 +1,5 @@
+
+CREATE TYPE tag_category AS ENUM('cont', 'ero', 'tech');
+
+ALTER TABLE tags ADD COLUMN cat tag_category NOT NULL DEFAULT 'cont';
+