]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/CGI.pm
* Add the needsbuild hook. Plugins can use this to manipulate which files
[ikiwiki.git] / IkiWiki / CGI.pm
index acf1f5969f3ff0641158cf0bc4f7d9753e6b3ac4..1471ae926631aef72356917c669546a1ade7f9d7 100644 (file)
@@ -137,6 +137,7 @@ sub cgi_signin ($$) { #{{{
        error($@) if $@;
        my $form = CGI::FormBuilder->new(
                title => "signin",
+               name => "signin",
                header => 1,
                charset => "utf-8",
                method => 'POST',
@@ -145,7 +146,7 @@ sub cgi_signin ($$) { #{{{
                params => $q,
                action => $config{cgiurl},
                header => 0,
-               template => scalar template_params("signin.tmpl"),
+               template => {type => 'div'},
                stylesheet => baseurl()."style.css",
        );
        my $buttons=["Login"];
@@ -206,6 +207,7 @@ sub cgi_prefs ($$) { #{{{
        error($@) if $@;
        my $form = CGI::FormBuilder->new(
                title => "preferences",
+               name => "preferences",
                header => 0,
                charset => "utf-8",
                method => 'POST',
@@ -216,8 +218,13 @@ sub cgi_prefs ($$) { #{{{
                javascript => 0,
                params => $q,
                action => $config{cgiurl},
-               template => scalar template_params("prefs.tmpl"),
+               template => {type => 'div'},
                stylesheet => baseurl()."style.css",
+               fieldsets => [
+                       [login => gettext("Login")],
+                       [preferences => gettext("Preferences")],
+                       [admin => gettext("Admin")]
+               ],
        );
        my $buttons=["Save Preferences", "Logout", "Cancel"];
 
@@ -226,10 +233,12 @@ sub cgi_prefs ($$) { #{{{
        });
        
        $form->field(name => "do", type => "hidden");
-       $form->field(name => "email", size => 50);
+       $form->field(name => "email", size => 50, fieldset => "preferences");
        $form->field(name => "subscriptions", size => 50,
+               fieldset => "preferences",
                comment => "(".htmllink("", "", "PageSpec", noimageinline => 1).")");
-       $form->field(name => "banned_users", size => 50);
+       $form->field(name => "banned_users", size => 50,
+               fieldset => "admin");
        
        my $user_name=$session->param("name");
        if (! is_admin($user_name)) {
@@ -497,6 +506,21 @@ sub cgi_editpage ($$) { #{{{
                        print $form->render(submit => \@buttons);
                        return;
                }
+               elsif (-e "$config{srcdir}/$file" &&
+                      $form->field("do") eq "create") {
+                       $form->tmpl_param("creation_conflict", 1);
+                       $form->field(name => "do", value => "edit", force => 1);
+                       $form->tmpl_param("page_select", 0);
+                       $form->field(name => "page", type => 'hidden');
+                       $form->field(name => "type", type => 'hidden');
+                       $form->title(sprintf(gettext("editing %s"), $page));
+                       $form->field("editcontent", 
+                               value => readfile("$config{srcdir}/$file").
+                                        "\n\n\n".$form->field("editcontent"),
+                               force => 1);
+                       print $form->render(submit => \@buttons);
+                       return;
+               }
                
                my $content=$form->field('editcontent');