add cgi_overload_message
authorJoey Hess <joey@kitenet.net>
Thu, 11 Oct 2012 15:22:03 +0000 (11:22 -0400)
committerJoey Hess <joey@kitenet.net>
Thu, 11 Oct 2012 15:22:03 +0000 (11:22 -0400)
IkiWiki.pm
IkiWiki/Wrapper.pm

index a7dc6b36bb4557be43cde21d9158f7dd607d5d68..52da3c112b26289298ef2a4a1faf7636ec6ff119 100644 (file)
@@ -126,6 +126,14 @@ sub getsetup () {
                safe => 1,
                rebuild => 0,
        },
+       cgi_overload_message => {
+               type => "string",
+               default => '',
+               example => "Please wait",
+               description => "message to display when overloaded (may contain html)",
+               safe => 1,
+               rebuild => 0,
+       },
        rcs => {
                type => "string",
                default => '',
index 0855a3ba2ede3194d0d71a9697db246c1b619c31..06be36dfc8f17ad8247cace2880f21d8ce89b5fd 100644 (file)
@@ -105,6 +105,14 @@ EOF
                        my $i=int($config{cgi_overload_delay});
                        $pre_exec.="#define CGI_OVERLOAD_DELAY $i\n"
                                if $i > 0;
+                       my $msg=gettext("Please wait");
+                       $msg=~s/"/\\"/g;
+                       $pre_exec.='#define CGI_PLEASE_WAIT_TITLE "'.$msg."\"\n";
+                       if (defined $config{cgi_overload_message} && length $config{cgi_overload_message}) {
+                               $msg=$config{cgi_overload_message};
+                               $msg=~s/"/\\"/g;
+                       }
+                       $pre_exec.='#define CGI_PLEASE_WAIT_BODY "'.$msg."\"\n";
                }
                $pre_exec.=<<"EOF";
        lockfd=open("$config{wikistatedir}/cgilock", O_CREAT | O_RDWR, 0666);
@@ -116,9 +124,11 @@ EOF
                                set_cgilock_fd(lockfd);
                        }
                        else {
-                               printf("Content-Type: text/html\\nRefresh: %i; URL=%s\\n\\n<html><head><title>please wait...</title><head><body><p>Please wait ...</p></body></html>",
+                               printf("Content-Type: text/html\\nRefresh: %i; URL=%s\\n\\n<html><head><title>%s</title><head><body><p>%s</p></body></html>",
                                        CGI_OVERLOAD_DELAY,
-                                       getenv("REQUEST_URI"));
+                                       getenv("REQUEST_URI"),
+                                       CGI_PLEASE_WAIT_TITLE,
+                                       CGI_PLEASE_WAIT_BODY);
                                exit(0);
                        }
                }