From 550af3cfe7177a881ce08431ef9789a352885cdf Mon Sep 17 00:00:00 2001 From: Benjamin Kellermann Date: Wed, 18 Nov 2009 00:13:11 +0100 Subject: restructured datepoll -> timepollhead (not ready yet) --- pollhead.rb | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 pollhead.rb (limited to 'pollhead.rb') diff --git a/pollhead.rb b/pollhead.rb new file mode 100644 index 0000000..339498a --- /dev/null +++ b/pollhead.rb @@ -0,0 +1,116 @@ +################################ +# Author: Benjamin Kellermann # +# License: CC-by-sa 3.0 # +# see License # +################################ +require "digest/sha2" + +class PollHead + def initialize + @data = {} + end + def col_size + @data.size + end + + def get_id(columntitle) + if @data.include?(columntitle) + return Digest::SHA2.hexdigest("#{columntitle}#{@data[columntitle]}" + columntitle) + else + raise("no such column found: #{columntitle}") + end + end + def get_title(columnid) + @data.each_key{|k| return k if get_id(k) == columnid} + raise("no such id found: #{columnid}") + end + def each_columntitle + @data.sort.each{|k,v| + yield(k) + } + end + def each_columnid + @data.sort.each{|k,v| + yield(get_id(k)) + } + end + def each_column + @data.sort.each{|k,v| + yield(get_id(k),k) + } + end + + # returns internal representation of cgi-string + def cgi_to_id(field) + field + end + + # returns true if deletion sucessfull + def delete_column(columnid) + @data.delete(get_title(columnid)) != nil + end + + # add new column if columnid = "" + # returns parsed title or false if parsed title == "" + def edit_column(columnid, newtitle, cgi) + delete_column(columnid) if columnid != "" + parsedtitle = newtitle.strip + + if parsedtitle != "" + @data[parsedtitle] = CGI.escapeHTML(cgi["columndescription"].strip) + return parsedtitle + else + return false + end + end + + def to_html(config = false,activecolumn = nil) + ret = "Name\n" + @data.each{|columntitle,columndescription| + ret += "#{CGI.escapeHTML(columntitle)}" + if config + ret += < + + + #{EDIT} + | + + #{DELETE} + + + +EDITDELETE + end + ret += "" + } + ret += "Last Edit\n" + ret += "\n" + ret + end + + def edit_column_htmlform(activecolumn) + if activecolumn != "" + title = activecolumn + description = @data[title] + title = CGI.escapeHTML(title) + hiddeninput = "" + end + return <Add/Edit Column +
+
+ + + + + #{hiddeninput} + +
+
+ +END + end +end -- cgit v1.2.3