aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xauthorization_required.cgi8
-rw-r--r--dudle.rb17
-rwxr-xr-xerror.cgi7
-rw-r--r--html.rb14
-rwxr-xr-xnot_found.cgi7
5 files changed, 34 insertions, 19 deletions
diff --git a/authorization_required.cgi b/authorization_required.cgi
index 0511251..d8ed581 100755
--- a/authorization_required.cgi
+++ b/authorization_required.cgi
@@ -25,7 +25,13 @@ if $cgi.include?("poll")
Dir.chdir($cgi["poll"])
$is_poll = true
- $d = Dudle.new(:hide_lang_chooser => true)
+
+ # check for trailing slash
+ if ENV["REDIRECT_URL"] =~ /#{$cgi["poll"]}$/
+ $d = Dudle.new(:hide_lang_chooser => true, :relative_dir => "#{$cgi["poll"]}/")
+ else
+ $d = Dudle.new(:hide_lang_chooser => true)
+ end
$d << "<h2>" + _("Authorization Required") + "</h2>"
case $cgi["user"]
diff --git a/dudle.rb b/dudle.rb
index 3b0329a..0ba7a04 100644
--- a/dudle.rb
+++ b/dudle.rb
@@ -74,7 +74,7 @@ class Dudle
when ""
ret += "<li class='separator_tab'></li>"
else
- ret += "<li class='nonactive_tab' ><a href='#{file}'>&nbsp;#{tab}&nbsp;</a></li> "
+ ret += "<li class='nonactive_tab' ><a href='#{@html.relative_dir}#{file}'>&nbsp;#{tab}&nbsp;</a></li> "
end
}
ret += "</ul></div>"
@@ -83,7 +83,7 @@ class Dudle
def inittabs
@customizetab = [_("Customize"),"customize.cgi"]
- if $is_poll
+ if is_poll?
# set-up tabs
@usertabs = [
[_("Poll"),"."],
@@ -102,36 +102,35 @@ class Dudle
@requested_revision || VCS.revno
end
- def initialize(params = {:revision => nil, :title => nil, :hide_lang_chooser => nil})
+ def initialize(params = {:revision => nil, :title => nil, :hide_lang_chooser => nil, :relative_dir => ""})
@requested_revision = params[:revision]
@hide_lang_chooser = params[:hide_lang_chooser]
@cgi = $cgi
@tab = File.basename($0)
@tab = "." if @tab == "index.cgi"
- if $is_poll
+ inittabs
+
+ if is_poll?
# log last read acces manually (no need to grep server logfiles)
File.open("last_read_access","w").close
- $is_poll = true
@basedir = ".."
@table = YAML::load(VCS.cat(self.revision, "data.yaml"))
@urlsuffix = File.basename(File.expand_path("."))
@title = @table.name
- inittabs
configfiles = @configtabs.collect{|name,file| file}
@is_config = configfiles.include?(@tab)
@wizzardindex = configfiles.index(@tab) if @is_config
@tabtitle = (@usertabs + @configtabs + [@deletetab] + [@customizetab]).collect{|title,file| title if file == @tab}.compact[0]
- @html = HTML.new("dudle - #{@title} - #{@tabtitle}")
+ @html = HTML.new("dudle - #{@title} - #{@tabtitle}",params[:relative_dir])
@html.header["Cache-Control"] = "no-cache"
else
@basedir = "."
- inittabs
@title = params[:title] || "dudle"
- @html = HTML.new(@title)
+ @html = HTML.new(@title,params[:relative_dir])
end
diff --git a/error.cgi b/error.cgi
index d6ee9c3..a9e342c 100755
--- a/error.cgi
+++ b/error.cgi
@@ -20,7 +20,12 @@
############################################################################
require "dudle"
-$d = Dudle.new(:title => _("Error"), :hide_lang_chooser => true)
+# check for trailing slash
+if ENV["REDIRECT_URL"] =~ /#{$cgi["poll"]}$/
+ $d = Dudle.new(:title => _("Error"), :hide_lang_chooser => true, :relative_dir => "#{$cgi["poll"]}/")
+else
+ $d = Dudle.new(:title => _("Error"), :hide_lang_chooser => true)
+end
def urlescape(str)
CGI.escapeHTML(CGI.escape(str).gsub("+","%20"))
diff --git a/html.rb b/html.rb
index a9db0b7..3ea4425 100644
--- a/html.rb
+++ b/html.rb
@@ -19,8 +19,10 @@
class HTML
attr_accessor :body, :header
- def initialize(title)
+ attr_reader :relative_dir
+ def initialize(title, relative_dir = "")
@title = title
+ @relative_dir = relative_dir
@header = {}
@header["type"] = "text/html"
# @header["type"] = "application/xhtml+xml"
@@ -42,12 +44,12 @@ HEAD
@css = [@css[0]] + @css[1..-1].sort unless @css.empty?
@css.each{|title,href|
titleattr = "title='#{title}'" if title != ""
- ret += "<link rel='stylesheet' type='text/css' href='#{href}' #{titleattr} media='screen, projection, tv, handheld'/>\n"
- ret += "<link rel='stylesheet' type='text/css' href='#{href}' media='print' />\n" if title == "print"
+ ret += "<link rel='stylesheet' type='text/css' href='#{@relative_dir}#{href}' #{titleattr} media='screen, projection, tv, handheld'/>\n"
+ ret += "<link rel='stylesheet' type='text/css' href='#{@relative_dir}#{href}' media='print' />\n" if title == "print"
}
@atom.each{|href|
- ret += "<link rel='alternate' type='application/atom+xml' href='#{href}' />\n"
+ ret += "<link rel='alternate' type='application/atom+xml' href='#{@relative_dir}#{href}' />\n"
}
ret += @htmlheader
@@ -73,10 +75,10 @@ HEAD
@header["cookie"] << c
end
def add_head_script(file)
- add_html_head("<script type='text/javascript' src='#{file}'></script>")
+ add_html_head("<script type='text/javascript' src='#{@relative_dir}#{file}'></script>")
end
def add_script_file(file)
- self << "<script type='text/javascript' src='#{file}'></script>"
+ self << "<script type='text/javascript' src='#{@relative_dir}#{file}'></script>"
end
def add_script(script)
self << <<SCRIPT
diff --git a/not_found.cgi b/not_found.cgi
index 577769f..425bf65 100755
--- a/not_found.cgi
+++ b/not_found.cgi
@@ -20,8 +20,11 @@
############################################################################
require "dudle"
-$d = Dudle.new(:hide_lang_chooser => true)
-
+if File.exists?(Dir.pwd + File.dirname(ENV["REDIRECT_URL"]))
+ $d = Dudle.new(:hide_lang_chooser => true)
+else
+ $d = Dudle.new(:hide_lang_chooser => true, :relative_dir => "../")
+end
title = _("Poll Not Found")