From 95caf9564ff5947e3585e4b867531073a2cee37e Mon Sep 17 00:00:00 2001 From: Benjamin Kellermann Date: Fri, 24 Oct 2008 23:39:14 +0200 Subject: improved history display --- index.cgi | 71 ++++++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 26 deletions(-) (limited to 'index.cgi') diff --git a/index.cgi b/index.cgi index c8f375d..e4e9c2a 100755 --- a/index.cgi +++ b/index.cgi @@ -27,7 +27,7 @@ class Poll return <
add/remove column -
+
@@ -42,7 +42,7 @@ END end def to_html ret = "
\n" - ret += "\n" + ret += "\n" ret += "\n" ret += head_to_html @@ -133,7 +133,7 @@ END ret += "
Comments" @comment.each_with_index{|c,i| time,name,comment = c - ret += "\n" + ret += "\n" ret += "
" ret += "
#{name} said on #{time.strftime("%d.%m, %H:%M")} " ret += "" @@ -151,10 +151,10 @@ END ret end def add_participant(name, agreed) - name = CGI.escapeHTML(name.strip) - @data[name] = {"timestamp" => Time.now} + htmlname = CGI.escapeHTML(name.strip) + @data[htmlname] = {"timestamp" => Time.now} @head.each_key{|columntitle| - @data[name][columntitle] = agreed[columntitle.to_s] + @data[htmlname][columntitle] = agreed[columntitle.to_s] } store "Participant #{name} edited" end @@ -172,15 +172,14 @@ END out << self.to_yaml out.chmod(0660) end - `bzr commit -m "#{comment}"` + `bzr commit -m "#{CGI.escapeHTML(comment)}"` end def add_comment name, comment @comment << [Time.now, CGI.escapeHTML(name), CGI.escapeHTML(comment.strip).gsub("\r\n","
")] store "Comment added by #{name}" end def delete_comment index - @comment.delete_at(index) - store "Comment deleted" + store "Comment from #{@comment.delete_at(index)[1]} deleted" end def add_remove_column name, description add_remove_parsed_column CGI.escapeHTML(name.strip), CGI.escapeHTML(description.strip) @@ -240,7 +239,7 @@ class DatePoll < Poll ret = <
add/remove column - +
END @@ -301,7 +300,7 @@ puts "Content-type: #{CONTENTTYPE}" if ($cgi.include?("utf") || $cgi.cookies["utf"][0]) && !$cgi.include?("ascii") puts "Set-Cookie: utf=true; path=; expires=#{(Time.now+1*60*60*24*365).getgm.strftime("%a, %d %b %Y %H:%M:%S %Z")}" - UTFASCII = "A" + UTFASCII = "ASCII" BACK = CGI.escapeHTML("↩") YES = CGI.escapeHTML('✔') @@ -315,7 +314,7 @@ if ($cgi.include?("utf") || $cgi.cookies["utf"][0]) && !$cgi.include?("ascii") YEARFORWARD = CGI.escapeHTML("↠") else puts "Set-Cookie: utf=true; path=; expires=#{(Time.now-1*60*60*24*365).getgm.strftime("%a, %d %b %Y %H:%M:%S %Z")}" - UTFASCII = "#{CGI.escapeHTML('✔')}" + UTFASCII = "#{CGI.escapeHTML('↩✔✘?–↞←→↠')}" BACK = CGI.escapeHTML("<-") YES = CGI.escapeHTML('OK') @@ -393,25 +392,40 @@ HEAD MAXREV=`bzr revno`.to_i REVISION=MAXREV unless defined?(REVISION) + log = `bzr log --forward`.split("-"*60) + log.collect!{|s| s.scan(/\nrevno:.*\ncommitter.*\n.*\ntimestamp: (.*)\nmessage:\n (.*)/).flatten} + log.shift + log.collect!{|t,c| [DateTime.parse(t),c]} puts "
" puts "
browse history" - puts "\n" - puts "
" - (1..5).to_a.reverse.each do |i| - puts "" if REVISION - i >= 1 - end - puts REVISION - (1..5).each do |i| - puts "" if REVISION + i <= MAXREV + puts "
" + puts "" + puts "" + puts "" + puts "" + puts "" + + ((REVISION-2)..(REVISION+2)).each do |i| + if i >0 && i<=MAXREV + if REVISION == i + puts "" + puts "" + puts "" + puts "" + end end - puts "" - puts "" + puts "
revtimedescription of change
#{i}" + else + puts "
" + puts "#{i}" + end + puts "#{log[i-1][0].strftime('%d.%m, %H:%M')}#{log[i-1][1]}
" puts "
" puts "" puts "
" puts "
invite/delete participant" - puts "
\n" + puts "\n" puts "
" puts "" puts "" @@ -424,7 +438,7 @@ HEAD puts "
" puts "
Comment" - puts "\n" + puts "\n" puts "
" puts "
" puts "
" @@ -467,7 +481,6 @@ HEAD end puts "
Available Polls" - puts UTFASCII puts "" Dir.glob("*/data.yaml").sort_by{|f| File.new(f).mtime @@ -484,7 +497,7 @@ HEAD puts <Create new Poll -
+
PollLast change