moved non-openid signin form into same page as openid selector; show/hide as buttons are pressed
parent
f735e2d1b3
commit
c3e9215e1f
|
@ -22,7 +22,7 @@ sub printheader ($) {
|
|||
}
|
||||
}
|
||||
|
||||
sub showform ($$$$;@) {
|
||||
sub prepform {
|
||||
my $form=shift;
|
||||
my $buttons=shift;
|
||||
my $session=shift;
|
||||
|
@ -35,6 +35,16 @@ sub showform ($$$$;@) {
|
|||
});
|
||||
}
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
sub showform ($$$$;@) {
|
||||
my $form=prepform(@_);
|
||||
shift;
|
||||
my $buttons=shift;
|
||||
my $session=shift;
|
||||
my $cgi=shift;
|
||||
|
||||
printheader($session);
|
||||
print misctemplate($form->title, $form->render(submit => $buttons), @_);
|
||||
}
|
||||
|
@ -90,9 +100,10 @@ sub needsignin ($$) {
|
|||
}
|
||||
}
|
||||
|
||||
sub cgi_signin ($$) {
|
||||
sub cgi_signin ($$;$) {
|
||||
my $q=shift;
|
||||
my $session=shift;
|
||||
my $returnhtml=shift;
|
||||
|
||||
decode_cgi_utf8($q);
|
||||
eval q{use CGI::FormBuilder};
|
||||
|
@ -112,9 +123,6 @@ sub cgi_signin ($$) {
|
|||
);
|
||||
my $buttons=["Login"];
|
||||
|
||||
if ($q->param("do") ne "signin" && !$form->submitted) {
|
||||
$form->text(gettext("You need to log in first."));
|
||||
}
|
||||
$form->field(name => "do", type => "hidden", value => "signin",
|
||||
force => 1);
|
||||
|
||||
|
@ -129,6 +137,11 @@ sub cgi_signin ($$) {
|
|||
$form->validate;
|
||||
}
|
||||
|
||||
if ($returnhtml) {
|
||||
$form=prepform($form, $buttons, $session, $q);
|
||||
return $form->render(submit => $buttons);
|
||||
}
|
||||
|
||||
showform($form, $buttons, $session, $q);
|
||||
}
|
||||
|
||||
|
|
|
@ -62,17 +62,13 @@ sub openid_selector {
|
|||
$openid_error=shift;
|
||||
});
|
||||
}
|
||||
elsif ($q->param("do") eq "signin" && $real_cgi_signin) {
|
||||
$real_cgi_signin->($q, $session);
|
||||
exit;
|
||||
}
|
||||
|
||||
my $template=IkiWiki::template("openid-selector.tmpl");
|
||||
$template->param(
|
||||
cgiurl => $config{cgiurl},
|
||||
(defined $openid_error ? (openid_error => $openid_error) : ()),
|
||||
(defined $openid_url ? (openid_url => $openid_url) : ()),
|
||||
($real_cgi_signin ? (nonopenidurl => IkiWiki::cgiurl(do => "signin")) : ()),
|
||||
($real_cgi_signin ? (nonopenidform => $real_cgi_signin->($q, $session, 1)) : ()),
|
||||
);
|
||||
|
||||
IkiWiki::printheader($session);
|
||||
|
|
|
@ -2,21 +2,18 @@
|
|||
<script type="text/javascript" src="ikiwiki/openid/openid-jquery.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
openid.init('openid_identifier', "<TMPL_VAR NONOPENIDURL>");
|
||||
openid.init('openid_identifier','<TMPL_IF NONOPENIDFORM>nonopenidform</TMPL_IF>');
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<noscript>
|
||||
<h2>OpenID:</h2>
|
||||
</noscript>
|
||||
|
||||
<form action="<TMPL_VAR CGIURL>" method="get" id="openid_form">
|
||||
<fieldset>
|
||||
<legend>Select your account provider</legend>
|
||||
|
||||
<noscript>
|
||||
<ul>
|
||||
<TMPL_IF NONOPENIDURL>
|
||||
<li><a href="<TMPL_VAR NONOPENIDURL>">Local Account</a></li>
|
||||
</TMPL_IF>
|
||||
<li>OpenID:</div>
|
||||
</noscript>
|
||||
|
||||
<input type="hidden" name="do" value="signin" />
|
||||
<input type="hidden" name="action" value="verify" />
|
||||
<div id="openid_choice">
|
||||
|
@ -29,9 +26,15 @@ $(document).ready(function() {
|
|||
<TMPL_IF OPENID_ERROR>
|
||||
<div class="error"><TMPL_VAR OPENID_ERROR></div>
|
||||
</TMPL_IF>
|
||||
<noscript>
|
||||
</li>
|
||||
</ul>
|
||||
</noscript>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<div id="nonopenidform">
|
||||
<TMPL_IF NONOPENIDFORM>
|
||||
<br />
|
||||
<noscript>
|
||||
<h2>Local Account:</h2>
|
||||
</noscript>
|
||||
</TMPL_IF>
|
||||
<TMPL_VAR NONOPENIDFORM>
|
||||
</div>
|
||||
|
|
|
@ -82,8 +82,9 @@ var openid = {
|
|||
input_id: null,
|
||||
provider_url: null,
|
||||
provider_id: null,
|
||||
localsignin_id: null,
|
||||
|
||||
init: function(input_id, localloginurl) {
|
||||
init: function(input_id, localsignin_id) {
|
||||
|
||||
var openid_btns = $('#openid_btns');
|
||||
|
||||
|
@ -105,13 +106,14 @@ var openid = {
|
|||
openid_btns.append(this.getBoxHTML(providers_small[id], 'small'));
|
||||
}
|
||||
}
|
||||
if (localloginurl != "") {
|
||||
if (localsignin_id != "") {
|
||||
this.localsignin_id=localsignin_id;
|
||||
openid_btns.append(
|
||||
'<a href="' + localloginurl + '"' +
|
||||
'<a href="javascript: openid.signin(\'localsignin\');"' +
|
||||
' style="background: #FFF" ' +
|
||||
'class="openid_small_btn">' +
|
||||
'class="localsignin openid_small_btn">' +
|
||||
'<img alt="" width="16" height="16" src="favicon.ico" />' +
|
||||
' Local Account' +
|
||||
' other' +
|
||||
'</a>'
|
||||
);
|
||||
}
|
||||
|
@ -143,7 +145,20 @@ var openid = {
|
|||
},
|
||||
/* Provider image click */
|
||||
signin: function(box_id, onload) {
|
||||
|
||||
|
||||
if (box_id == 'localsignin') {
|
||||
this.highlight(box_id);
|
||||
$('#openid_input_area').empty();
|
||||
$('#'+this.localsignin_id).show();
|
||||
this.setCookie(box_id);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
if (this.localsignin_id) {
|
||||
$('#'+this.localsignin_id).hide();
|
||||
}
|
||||
}
|
||||
|
||||
var provider = providers[box_id];
|
||||
if (! provider) {
|
||||
return;
|
||||
|
|
Loading…
Reference in New Issue