aboutsummaryrefslogtreecommitdiff
path: root/underlays
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2015-05-13 17:51:29 -0400
committerJoey Hess <joeyh@joeyh.name>2015-05-13 17:51:29 -0400
commit7765941011a78e8062bc76ae3daba9aa56d279c8 (patch)
treeb64077c8e8bb4971863f4f6e3e0135aa1c6b9a06 /underlays
parentab4d9a54677c2c17b186048ba5d86986a161bcef (diff)
downloadikiwiki-7765941011a78e8062bc76ae3daba9aa56d279c8.tar
ikiwiki-7765941011a78e8062bc76ae3daba9aa56d279c8.tar.gz
further generalization of openid selector
Now template variables can be set to control which login methods are shown
Diffstat (limited to 'underlays')
-rw-r--r--underlays/openid-selector/ikiwiki/openid/openid-jquery.js39
1 files changed, 24 insertions, 15 deletions
diff --git a/underlays/openid-selector/ikiwiki/openid/openid-jquery.js b/underlays/openid-selector/ikiwiki/openid/openid-jquery.js
index db8dca235..eaac50315 100644
--- a/underlays/openid-selector/ikiwiki/openid/openid-jquery.js
+++ b/underlays/openid-selector/ikiwiki/openid/openid-jquery.js
@@ -5,21 +5,23 @@ http://code.google.com/p/openid-selector/
This code is licenced under the New BSD License.
*/
-var selections_large = {
+var selections_email_large = {
email: {
name: 'Email',
icon: 'wikiicons/email.png',
label: 'Enter your email address:',
url: null
- },
+ }
+};
+var selections_openid_large = {
openid: {
name: 'OpenID',
icon: 'wikiicons/openidlogin-bg.gif',
label: 'Enter your OpenID:',
url: null
- },
+ }
};
-var selections_small = {
+var selections_openid_small = {
verisign: {
name: 'Verisign',
icon: 'ikiwiki/openid/verisign.png',
@@ -50,7 +52,7 @@ var selections_small = {
url: 'http://openid.aol.com/{username}'
}
};
-var selections = $.extend({}, selections_large, selections_small);
+var selections = $.extend({}, selections_email_large, selections_openid_large, selections_openid_small);
var selector = {
@@ -66,7 +68,7 @@ var selector = {
selection_id: null,
othersignin_id: null,
- init: function(input_id, othersignin_id, othersignin_label) {
+ init: function(input_id, login_methods, othersignin_id, othersignin_label) {
var selector_btns = $('#login_btns');
@@ -76,9 +78,17 @@ var selector = {
$('#login_input_area').empty();
// add box for each selection
- for (id in selections_large) {
- selector_btns.append(this.getBoxHTML(selections_large[id], 'large'));
- }
+ if (login_methods['openid']) {
+ for (id in selections_openid_large) {
+ selector_btns.append(this.getBoxHTML(selections_openid_large[id], 'large'));
+ }
+ }
+ if (login_methods['email']) {
+ for (id in selections_email_large) {
+ selector_btns.prepend(this.getBoxHTML(selections_email_large[id], 'large'));
+ }
+ }
+
if (othersignin_label != "") {
this.othersignin_label=othersignin_label;
}
@@ -98,11 +108,11 @@ var selector = {
$('#'+this.othersignin_id).hide();
}
- if (selections_small) {
+ if (login_methods['openid'] && selections_openid_small) {
selector_btns.append('<br/>');
- for (id in selections_small) {
- selector_btns.append(this.getBoxHTML(selections_small[id], 'small'));
+ for (id in selections_openid_small) {
+ selector_btns.append(this.getBoxHTML(selections_openid_small[id], 'small'));
}
}
@@ -179,7 +189,7 @@ var selector = {
else {
selector.setOpenIdUrl("");
}
- if(selector.ajaxHandler) {
+ if (selector.ajaxHandler) {
selector.ajaxHandler(selector.selection_id, document.getElementById(selector.input_id).value);
return false;
}
@@ -227,7 +237,7 @@ var selector = {
var input_area = $('#login_input_area');
var html = '';
- var id = 'entry';
+ var id = selection['name']+'_entry';
var value = '';
var label = selection['label'];
var style = '';
@@ -240,7 +250,6 @@ var selector = {
if (label) {
html = '<label for="'+ id +'" class="block">' + label + '</label>';
}
- html += '<input name="selection" type="hidden" value="' + selection['name'] + '" />'
html += '<input id="'+id+'" type="text" style="'+style+'" name="'+id+'" value="'+value+'" />' +
'<input id="selector_submit" type="submit" value="Login"/>';