summaryrefslogtreecommitdiff
path: root/lib/VNWeb/Misc
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2021-07-02 16:54:05 +0200
committerYorhel <git@yorhel.nl>2021-07-02 16:54:07 +0200
commit0e7877ce6ad23a2ee9e1cbc0f53cb5745a0739d1 (patch)
treef42a9af7e569d71ef6005739204f7b82ea95f124 /lib/VNWeb/Misc
parentbd827d994bd834bd6e1095bc15d3310fdbdf0515 (diff)
Misc::History: Turn "hidden" filter into "item status" filter
To support filtering on the "awaiting approval" status as well. Fixes https://vndb.org/t2520.576
Diffstat (limited to 'lib/VNWeb/Misc')
-rw-r--r--lib/VNWeb/Misc/History.pm14
1 files changed, 9 insertions, 5 deletions
diff --git a/lib/VNWeb/Misc/History.pm b/lib/VNWeb/Misc/History.pm
index 0a6a87a3..e72288a1 100644
--- a/lib/VNWeb/Misc/History.pm
+++ b/lib/VNWeb/Misc/History.pm
@@ -20,9 +20,12 @@ sub fetch {
$filt->{e} && $filt->{e} == 1 ? sql 'c.rev <> 1' : (),
$filt->{e} && $filt->{e} ==-1 ? sql 'c.rev = 1' : (),
- $filt->{h} ? sql $filt->{h} == 1 ? 'NOT' : '',
+ # -2 = awaiting mod, -1 = deleted, 0 = all, 1 = approved
+ $filt->{h} ? sql
'EXISTS(SELECT 1 FROM changes c_i
- WHERE c_i.itemid = c.itemid AND c_i.ihid
+ WHERE c_i.itemid = c.itemid AND',
+ $filt->{h} == -2 ? 'c_i.ihid AND NOT c_i.ilock' :
+ $filt->{h} == -1 ? 'c_i.ihid AND c_i.ilock' : 'NOT c_i.ihid', '
AND c_i.rev = (SELECT MAX(c_ii.rev) FROM changes c_ii WHERE c_ii.itemid = c.itemid))' : ();
my $lst = tuwf->dbAlli('
@@ -93,7 +96,7 @@ sub filters_ {
# Types
t => { type => 'array', scalar => 1, onerror => [map $_->[0], @types], values => { enum => [(map $_->[0], @types), 'a'] } },
m => { onerror => undef, enum => [ 0, 1 ] }, # Automated edits
- h => { onerror => 0, enum => [ -1..1 ] }, # Hidden items
+ h => { onerror => 0, enum => [ -2..1 ] }, # Item status (the numbers dont make sense)
e => { onerror => 0, enum => [ -1..1 ] }, # Existing/new items
r => { onerror => 0, enum => [ 0, 1 ] }, # Include releases
p => { page => 1 },
@@ -134,8 +137,9 @@ sub filters_ {
} if exists $filt->{e};
p_ class => 'linkradio', sub {
opt_ radio => h => 0, 'All'; em_ ' | ';
- opt_ radio => h => 1, 'Only non-deleted items'; em_ ' | ';
- opt_ radio => h =>-1, 'Only deleted';
+ opt_ radio => h => 1, 'Only public items'; em_ ' | ';
+ opt_ radio => h =>-1, 'Only deleted'; em_ ' | ';
+ opt_ radio => h =>-2, 'Only unapproved';
} if exists $filt->{h};
p_ class => 'linkradio', sub {
opt_ checkbox => m => 0, 'Show automated edits' if !$type;