summaryrefslogtreecommitdiffstats
path: root/install/ui/src/freeipa/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'install/ui/src/freeipa/widgets')
-rw-r--r--install/ui/src/freeipa/widgets/LoginScreen.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/install/ui/src/freeipa/widgets/LoginScreen.js b/install/ui/src/freeipa/widgets/LoginScreen.js
index 6c448ff99..3e0986435 100644
--- a/install/ui/src/freeipa/widgets/LoginScreen.js
+++ b/install/ui/src/freeipa/widgets/LoginScreen.js
@@ -82,6 +82,13 @@ define(['dojo/_base/declare',
render_buttons: function(container) {
+ this.sync_btn_node = IPA.button({
+ label: text.get('@i18n:login.sync_otp_token', "Sync OTP Token"),
+ button_class: 'btn btn-link',
+ click: lang.hitch(this, this.on_sync)
+ })[0];
+ construct.place(this.sync_btn_node, container);
+
this.login_btn_node = IPA.button({
label: text.get('@i18n:login.login', "Login"),
'class': 'btn-primary btn-lg',
@@ -115,6 +122,11 @@ define(['dojo/_base/declare',
p_f.set_required(required);
},
+ on_sync: function() {
+ var user = this.get_field('username').get_value()[0];
+ this.emit('require-otp-sync', { source: this, user: user });
+ },
+
on_confirm: function() {
if (this.view == 'login') {
this.login();
@@ -231,6 +243,7 @@ define(['dojo/_base/declare',
show_login_view: function() {
this.set_login_aside_text();
if (this.buttons_node) {
+ construct.place(this.sync_btn_node, this.buttons_node);
construct.place(this.login_btn_node, this.buttons_node);
}
if (this.password_enabled()) {