X-Git-Url: http://git.draconx.ca/gitweb/homepage.git/blobdiff_plain/6493de72be35a962a45a31059c7e90a8e9c3b737..79dfd09162d1c4e201eccec188057c0e9ded2260:/layouts/listing.xhtml diff --git a/layouts/listing.xhtml b/layouts/listing.xhtml new file mode 100644 index 0000000..2e053d5 --- /dev/null +++ b/layouts/listing.xhtml @@ -0,0 +1,79 @@ +<% +# Nick's web site: Generate directory listing. +# +# Copyright © 2021 Nick Bowler +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see + +mydir = rep_uri + +files = {} +@items.find_all(@item[:pattern]).each do |item| + t = item[:updated_at] + + item.reps.each do |rep| + next if rep == @rep + + p = rep_uri(rep) + d, f = File.split(p) + next unless "#{d}/" == mydir + + if p =~ %r{/$} + sz = Dir.children(File.dirname(rep.raw_path)).length - 1 + type = "DIR" + else + sz = human_filesize(File.size(rep.raw_path)) + type = nil + end + + files[f] = { + mtime: if t then t.getutc.strftime "%Y-%m-%d %H:%M UTC" end, + size: sz, + type: type, + } + end +end + +if @items["#{File.dirname(mydir)}/index.lst"] + files[".."] = { type: "UP" } +end +%> + + + + + +<% files.keys.sort.each do |key| %> + + + + + + +<% end %> + +
NameLast ModifiedSize
+<% if files[key][:type] %> +
+ <%= files[key][:type] %> +
+<% end %> +
<%= + if key == ".." then "[Parent Directory]" else key end + %><%= files[key][:mtime] %><%= files[key][:size] %>