summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2022-08-30 10:42:09 +0200
committerYorhel <git@yorhel.nl>2022-08-30 10:42:09 +0200
commit34fabe3ebeb17119aac578bcb224fd9c74fb93ea (patch)
tree7551db74b71973577496e50d8d293c0ba8487122 /lib
parentfcab0435c90414b60566b3d8c424a0263d0ce0e4 (diff)
Rename users_prefs_tags.tag -> tid, add update script
Diffstat (limited to 'lib')
-rw-r--r--lib/VNWeb/User/Edit.pm6
-rw-r--r--lib/VNWeb/VN/Page.pm16
2 files changed, 11 insertions, 11 deletions
diff --git a/lib/VNWeb/User/Edit.pm b/lib/VNWeb/User/Edit.pm
index 6620f22b..41353615 100644
--- a/lib/VNWeb/User/Edit.pm
+++ b/lib/VNWeb/User/Edit.pm
@@ -63,7 +63,7 @@ my $FORM = {
alttitle_langs => { langpref => 1 },
tagprefs => { sort_keys => 'tag', maxlength => 500, aoh => {
- tag => { vndbid => 'g' },
+ tid => { vndbid => 'g' },
spoil => { int => 1, range => [ -1, 3 ] },
childs => { anybool => 1 },
name => {},
@@ -119,7 +119,7 @@ TUWF::get qr{/$RE{uid}/edit}, sub {
$u->{prefs}{title_langs} = langpref_parse($u->{prefs}{title_langs}) // $DEFAULT_TITLE_LANGS;
$u->{prefs}{alttitle_langs} = langpref_parse($u->{prefs}{alttitle_langs}) // $DEFAULT_ALTTITLE_LANGS;
$u->{prefs}{traits} = tuwf->dbAlli('SELECT u.tid, t.name, g.name AS "group" FROM users_traits u JOIN traits t ON t.id = u.tid LEFT JOIN traits g ON g.id = t.group WHERE u.id =', \$u->{id}, 'ORDER BY g.order, t.name');
- $u->{prefs}{tagprefs} = tuwf->dbAlli('SELECT u.tag, u.spoil, u.childs, t.name FROM users_prefs_tags u JOIN tags t ON t.id = u.tag WHERE u.id =', \$u->{id}, 'ORDER BY t.name');
+ $u->{prefs}{tagprefs} = tuwf->dbAlli('SELECT u.tid, u.spoil, u.childs, t.name FROM users_prefs_tags u JOIN tags t ON t.id = u.tid WHERE u.id =', \$u->{id}, 'ORDER BY t.name');
}
$u->{admin} = auth->permDbmod || auth->permUsermod || auth->permTagmod || auth->permBoardmod ?
@@ -171,7 +171,7 @@ elm_api UserEdit => $FORM_OUT, $FORM_IN, sub {
tuwf->dbExeci('INSERT INTO users_traits', { id => $data->{id}, tid => $_->{tid} }) for $p->{traits}->@*;
tuwf->dbExeci('DELETE FROM users_prefs_tags WHERE id =', \$data->{id});
- tuwf->dbExeci('INSERT INTO users_prefs_tags', { id => $data->{id}, tag => $_->{tag}, spoil => $_->{spoil}, childs => $_->{childs} }) for $p->{tagprefs}->@*;
+ tuwf->dbExeci('INSERT INTO users_prefs_tags', { id => $data->{id}, tid => $_->{tid}, spoil => $_->{spoil}, childs => $_->{childs} }) for $p->{tagprefs}->@*;
}
if(auth->permUsermod) {
diff --git a/lib/VNWeb/VN/Page.pm b/lib/VNWeb/VN/Page.pm
index 463977c6..68b31c54 100644
--- a/lib/VNWeb/VN/Page.pm
+++ b/lib/VNWeb/VN/Page.pm
@@ -47,19 +47,19 @@ sub enrich_vn {
WHERE tv.vid =', \$v->{id}, '
ORDER BY rating DESC, t.name'
) : tuwf->dbAlli('
- WITH RECURSIVE tag_prefs (tag, spoil, childs) AS (
- SELECT tag, spoil, childs FROM users_prefs_tags WHERE id =', \auth->uid, '
- ), tag_overrides (tag, spoil, childs) AS (
- SELECT tag, spoil, childs FROM tag_prefs
+ WITH RECURSIVE tag_prefs (tid, spoil, childs) AS (
+ SELECT tid, spoil, childs FROM users_prefs_tags WHERE id =', \auth->uid, '
+ ), tag_overrides (tid, spoil, childs) AS (
+ SELECT tid, spoil, childs FROM tag_prefs
UNION ALL
SELECT tp.id, x.spoil, true
FROM tag_overrides x
- JOIN tags_parents tp ON tp.parent = x.tag AND tp.main
- WHERE x.childs AND NOT EXISTS(SELECT 1 FROM tag_prefs y WHERE y.tag = tp.id)
- ) SELECT t.id, t.name, t.cat, tv.rating, COALESCE(x.spoil, tv.spoiler) AS spoiler, tv.lie, x.tag IS NOT NULL AS override
+ JOIN tags_parents tp ON tp.parent = x.tid AND tp.main
+ WHERE x.childs AND NOT EXISTS(SELECT 1 FROM tag_prefs y WHERE y.tid = tp.id)
+ ) SELECT t.id, t.name, t.cat, tv.rating, COALESCE(x.spoil, tv.spoiler) AS spoiler, tv.lie, x.tid IS NOT NULL AS override
FROM tags t
JOIN tags_vn_direct tv ON t.id = tv.tag
- LEFT JOIN tag_overrides x ON x.tag = tv.tag
+ LEFT JOIN tag_overrides x ON x.tid = tv.tag
WHERE tv.vid =', \$v->{id}, 'AND x.spoil IS DISTINCT FROM 1+1+1
ORDER BY rating DESC, t.name'
);