summaryrefslogtreecommitdiff
path: root/lib/VNDB/DB
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2008-11-15 13:15:26 +0100
committerYorhel <git@yorhel.nl>2008-11-15 13:15:26 +0100
commit4db2d7228c600190c5035e324f0d061891480e8b (patch)
tree98d88e42bc25fcdd47ef6b3ff2ff2aaa1d3ac2b3 /lib/VNDB/DB
parent0c18982e5f21fdf5027a4c079bcbaf7750fe0d1b (diff)
Hidden items filter for history browser
The query is starting to get pretty heavy, might want to cache a few columns to get rid of all those table joins
Diffstat (limited to 'lib/VNDB/DB')
-rw-r--r--lib/VNDB/DB/Misc.pm17
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/VNDB/DB/Misc.pm b/lib/VNDB/DB/Misc.pm
index df3d7790..1a3fdc0e 100644
--- a/lib/VNDB/DB/Misc.pm
+++ b/lib/VNDB/DB/Misc.pm
@@ -82,12 +82,13 @@ sub dbItemInsert {
}
-# Options: type, iid, uid, auto, page, results
+# Options: type, iid, uid, auto, hidden page, results
sub dbRevisionGet {
my($self, %o) = @_;
$o{results} ||= 10;
$o{page} ||= 1;
- $o{auto} ||= 0; # 0: show, -1:only, 1:hide
+ $o{auto} ||= 0; # 0:show, -1:only, 1:hide
+ $o{hidden} ||= 0;
my %where = (
$o{type} ? (
@@ -98,14 +99,24 @@ sub dbRevisionGet {
'c.requester = ?' => $o{uid} ) : (),
$o{auto} ? (
'c.requester !s 1' => $o{auto} < 0 ? '=' : '<>' ) : (),
+ $o{hidden} == 1 ? (
+ '(v.hidden IS NOT NULL AND v.hidden = FALSE OR r.hidden IS NOT NULL AND r.hidden = FALSE OR p.hidden IS NOT NULL AND p.hidden = FALSE)' => 1,
+ ) : $o{hidden} == -1 ? (
+ '(v.hidden IS NOT NULL AND v.hidden = TRUE OR r.hidden IS NOT NULL AND r.hidden = TRUE OR p.hidden IS NOT NULL AND p.hidden = TRUE)' => 1,
+ ) : (),
);
my @join = (
- $o{iid} || $o{what} =~ /item/ ? (
+ $o{iid} || $o{what} =~ /item/ || $o{hidden} ? (
'LEFT JOIN vn_rev vr ON c.type = 0 AND c.id = vr.id',
'LEFT JOIN releases_rev rr ON c.type = 1 AND c.id = rr.id',
'LEFT JOIN producers_rev pr ON c.type = 2 AND c.id = pr.id',
) : (),
+ $o{hidden} ? (
+ 'LEFT JOIN vn v ON c.type = 0 AND vr.vid = v.id',
+ 'LEFT JOIN releases r ON c.type = 1 AND rr.rid = r.id',
+ 'LEFT JOIN producers p ON c.type = 2 AND pr.pid = p.id',
+ ) : (),
$o{what} =~ /user/ ? 'JOIN users u ON c.requester = u.id' : (),
);