Merge branch '8784-dir-listings'
[arvados.git] / apps / workbench / app / views / users / setup_popup.js.erb
index 2eca58b5d1ff1cf35d00088643cc78eff32e45fe..0a9871928f486cb56f6bc6882f07b6fe5dc9a363 100644 (file)
@@ -1,6 +1,48 @@
-$("#modal-window").html("<%= escape_javascript(render 'setup_popup') %>");
+<%# Copyright (C) The Arvados Authors. All rights reserved.
 
-function save_user () {
-  $('#modal-window').modal('hide'); 
-  repo_name = document.getElementById ("repository_name").value;
-};
+SPDX-License-Identifier: AGPL-3.0 %>
+
+$("#user-setup-modal-window").html("<%= escape_javascript(render partial: 'setup_popup') %>");
+
+// disable the submit button on load
+var $input = $('input:text'),
+$register = $('#register');
+
+var email_disabled = document.forms["setup_form"]["email"].disabled;
+var email_value = document.forms["setup_form"]["email"].value;
+var prefix_value = document.forms["setup_form"]["openid_prefix"].value;
+if ((email_disabled == false) && (email_value == null || email_value == "" ||
+        prefix_value == null || prefix_value == "")) {
+  $register.prop('disabled', true);
+}
+
+// capture events to enable submit button when applicable
+$input.on('keyup paste mouseleave', function() {
+  var trigger = false;
+
+  var email_disabled = document.forms["setup_form"]["email"].disabled;
+  var email_value = document.forms["setup_form"]["email"].value;
+  var prefix_value = document.forms["setup_form"]["openid_prefix"].value;
+
+  var emailRegExp = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
+  var validEmail = false;
+
+  if (emailRegExp.test(email_value )) {
+    validEmail = true;
+  }
+
+  if ((email_disabled == false) && (!validEmail || email_value == null ||
+            email_value == "" || prefix_value == null || prefix_value == "")){
+    trigger = true;
+  }
+
+  $register.prop('disabled', trigger);
+});
+
+// reset form input fields, for the next time around
+function reset_form() {
+  $('#email').val("");
+  $('#openid_prefix').val("");
+  $('#repo_name').val("");
+  $('select').val('')
+}