From cc2433a67b35c956dbea74168618909c1a7809fe Mon Sep 17 00:00:00 2001 From: Kenichi Ishigaki Date: Sat, 3 May 2025 17:56:24 +0900 Subject: [PATCH] Improve sorting by the modified date for show_files and delete_files Store raw modified time in a "data-modified" attribute of each "modified" cell and configure list.js to sort by the value, instead of sorting by the blurb value --- lib/pause_2017/PAUSE/Web/Controller/User/Files.pm | 10 ++++++---- lib/pause_2017/templates/user/files/delete.html.ep | 4 ++-- lib/pause_2017/templates/user/files/show.html.ep | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/pause_2017/PAUSE/Web/Controller/User/Files.pm b/lib/pause_2017/PAUSE/Web/Controller/User/Files.pm index 7d6cc0472..d5e3602b8 100644 --- a/lib/pause_2017/PAUSE/Web/Controller/User/Files.pm +++ b/lib/pause_2017/PAUSE/Web/Controller/User/Files.pm @@ -49,10 +49,11 @@ sub show { warn "ALERT: Could not stat f[$f]: $!"; next; } + my $modified = (stat _)[9]; my $blurb = $deletes{$f} ? $c->scheduled($whendele{$f}) : - HTTP::Date::time2str((stat _)[9]); - $files{$f} = {stat => -s _, blurb => $blurb, indexed => $indexed->{$f} }; + HTTP::Date::time2str($modified); + $files{$f} = {stat => -s _, blurb => $blurb, indexed => $indexed->{$f}, modified => $modified }; } $pause->{files} = \%files; } @@ -177,10 +178,11 @@ sub delete { $tmpf =~ s/\.(?:readme|meta)$/.tar.gz/; my $info = CPAN::DistnameInfo->new($tmpf); my $distv = $info->distvname; + my $modified = (stat _)[9]; my $blurb = $deletes{$f} ? $c->scheduled($whendele{$f}) : - HTTP::Date::time2str((stat _)[9]); - $files{$f} = {stat => -s _, blurb => $blurb, indexed => $indexed->{$f}, distv => $distv }; + HTTP::Date::time2str($modified); + $files{$f} = {stat => -s _, blurb => $blurb, indexed => $indexed->{$f}, distv => $distv, modified => $modified }; $pause->{deleting_indexed_files} = 1 if $deletes{$f} && $indexed->{$f}; } $pause->{files} = \%files; diff --git a/lib/pause_2017/templates/user/files/delete.html.ep b/lib/pause_2017/templates/user/files/delete.html.ep index f159dc89a..2d182bae7 100644 --- a/lib/pause_2017/templates/user/files/delete.html.ep +++ b/lib/pause_2017/templates/user/files/delete.html.ep @@ -36,7 +36,7 @@ <%= $file %> % } <%= $files->{$file}{stat} %> - <%= $files->{$file}{blurb} %> + <%= $files->{$file}{blurb} %> % } @@ -48,7 +48,7 @@ %= javascript "/list.min.js" %= javascript begin var List = new List('files', { - valueNames: ['file', 'size', 'modified'] + valueNames: ['file', 'size', { name: 'modified', attr: 'data-modified' }] }); document.querySelectorAll('input[type=checkbox]').forEach(function(e) { diff --git a/lib/pause_2017/templates/user/files/show.html.ep b/lib/pause_2017/templates/user/files/show.html.ep index 9bab21d54..950f6414d 100644 --- a/lib/pause_2017/templates/user/files/show.html.ep +++ b/lib/pause_2017/templates/user/files/show.html.ep @@ -23,7 +23,7 @@ <%= $file %> % } <%= $files->{$file}{stat} %> - <%= $files->{$file}{blurb} %> + <%= $files->{$file}{blurb} %> % } @@ -33,7 +33,7 @@ %= javascript "/list.min.js" %= javascript begin var List = new List('files', { - valueNames: ['file', 'size', 'modified'] + valueNames: ['file', 'size', { name: 'modified', attr: 'data-modified' }] }); % end % end