# a reference to the normal signin form.
require IkiWiki::CGI;
my $real_cgi_signin;
+ my $nonopenidform_label=gettext("Other");
if (keys %{$IkiWiki::hooks{auth}} > 1) {
$real_cgi_signin=\&IkiWiki::cgi_signin;
+ if (keys %{$IkiWiki::hooks{auth}} == 2 && exists $IkiWiki::hooks{auth}->{passwordauth}) {
+ $nonopenidform_label=gettext("Password");
+ }
}
inject(name => "IkiWiki::cgi_signin", call => sub ($$) {
- openid_selector($real_cgi_signin, @_);
+ openid_selector($real_cgi_signin, $nonopenidform_label, @_);
});
}
}
sub openid_selector {
my $real_cgi_signin=shift;
+ my $nonopenidform_label=shift;
my $q=shift;
my $session=shift;
(defined $openid_error ? (openid_error => $openid_error) : ()),
(defined $openid_url ? (openid_url => $openid_url) : ()),
($real_cgi_signin ? (nonopenidform => $real_cgi_signin->($q, $session, 1)) : ()),
+ nonopenidform_label => $nonopenidform_label,
);
IkiWiki::printheader($session);
* Re-remove google from openid selector; their openid provider is
gone for good.
+ * When openid and passwordauth are the only enabled auth plugins,
+ make the openid selector display "Password" instead of "Other",
+ so users are more likely to click on it when they don't have an openid.
-- Joey Hess <id@joeyh.name> Tue, 28 Apr 2015 12:24:08 -0400
<script type="text/javascript" src="ikiwiki/openid/openid-jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
- openid.init('openid_identifier','<TMPL_IF NONOPENIDFORM>nonopenidform</TMPL_IF>');
+ openid.init('openid_identifier','<TMPL_IF NONOPENIDFORM>nonopenidform</TMPL_IF>', '<TMPL_VAR NONOPENIDFORM_LABEL>');
});
</script>
<form action="<TMPL_VAR CGIURL>" method="get" id="openid_form">
<fieldset>
<script>
- $('fieldset').append("<legend>Select your account provider</legend>");
+ $('fieldset').append("<legend>Select login method</legend>");
</script>
<input type="hidden" name="do" value="signin" />
<TMPL_IF NONOPENIDFORM>
<br />
<noscript>
-<h2>Other:</h2>
+<h2><TMPL_VAR NONOPENIDFORM_LABEL>:</h2>
</noscript>
</TMPL_IF>
<TMPL_VAR NONOPENIDFORM>
provider_id: null,
localsignin_id: null,
- init: function(input_id, localsignin_id) {
+ init: function(input_id, localsignin_id, localsignin_label) {
var openid_btns = $('#openid_btns');
openid_btns.append(this.getBoxHTML(providers_small[id], 'small'));
}
}
+ if (localsignin_label != "") {
+ this.localsignin_label=localsignin_label;
+ }
+ else {
+ this.localsignin_label="other";
+ }
if (localsignin_id != "") {
this.localsignin_id=localsignin_id;
openid_btns.append(
' style="background: #FFF" ' +
'class="localsignin openid_small_btn">' +
'<img alt="" width="16" height="16" src="favicon.ico" />' +
- ' other' +
+ ' ' + this.localsignin_label +
'</a>'
);
$('#'+this.localsignin_id).hide();