diff options
author | Yorhel <git@yorhel.nl> | 2021-07-02 16:54:05 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2021-07-02 16:54:07 +0200 |
commit | 0e7877ce6ad23a2ee9e1cbc0f53cb5745a0739d1 (patch) | |
tree | f42a9af7e569d71ef6005739204f7b82ea95f124 /lib/VNWeb/Misc | |
parent | bd827d994bd834bd6e1095bc15d3310fdbdf0515 (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.pm | 14 |
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; |