Reset form fields on cancel.
[arvados.git] / apps / workbench / app / views / users / _setup_popup.html.erb
1 <%= form_tag setup_user_path, {id: 'setup_form', name: 'setup_form', method: 'get', 
2                     class: 'form-search', remote: true} do %>
3
4   <div class="modal-header">
5     <button type="button" class="close" onClick="reset_form()" data-dismiss="modal" aria-hidden="true">&times;</button>
6     <h3 class="modal-title">Setup User</h4>
7   </div
8
9   <div class="modal-body">
10     <% if @object%>
11       <% uuid = @object.uuid %>
12       <% email = @object.email %>
13     <% end %>
14     <% disable_email = uuid != nil %>
15     <% identity_url_prefix = @current_selections[:identity_url_prefix] %>
16     <% disable_url_prefix = identity_url_prefix != nil %>
17     <% selected_repo = @current_selections[:repo_name] %>
18     <% selected_vm = @current_selections[:vm_uuid] %>
19
20       <input id="user_uuid" maxlength="250" name="user_uuid" type="hidden" value="<%=uuid%>">
21       <div>
22         <table><tbody><div class="form-group">
23           <tr>
24             <% if disable_email %>
25               <td> Email </td>
26               <td> <input id="email" maxlength="250" name="email" type="text" value="<%=email%>" 
27                     disabled=true > </td>
28             <% else %>
29               <td> Email </td>
30               <td> <input id="email" maxlength="250" name="email" type="text" > </td>
31             <% end %>
32           </tr>
33           <tr>
34             <% if disable_url_prefix %>
35               <td> Identity URL Prefix &nbsp </td>
36               <td> <input id="openid_prefix" maxlength="250" name="openid_prefix" type="text" 
37                     value="<%=identity_url_prefix%>" disabled=true > </td>
38             <% else %>
39               <td> Openid Prefix </td>
40               <td> <input id="openid_prefix" maxlength="250" name="openid_prefix" type="text" 
41                     value="<%= Rails.configuration.default_openid_prefix %>"> </td>
42             <% end %>
43           </tr>
44           <tr>
45             <td> Repository Name </td>
46             <td> <input id="repo_name" maxlength="250" name="repo_name" type="text" value="<%=selected_repo%>">
47           </tr>
48           <tr>
49             <td> Virtual Machine </td>
50             <td>
51               <select name="vm_uuid">
52                 <% if selected_vm %>
53                   <option value=""> Choose One: </option>
54                 <% else %>
55                   <option value="" selected> Choose One: </option>
56                 <% end %>
57                 <% @vms.each do |vm| %>
58                   <% if selected_vm == vm.uuid %>
59                     <option value=<%=vm.uuid%> selected> <%=vm.hostname%> </option>
60                   <% else %> 
61                     <option value=<%=vm.uuid%> > <%=vm.hostname%> </option>
62                   <% end %>
63                 <% end %>
64               </select>
65             </td>
66           </tr>
67         </div></tbody></table>
68       </div>
69   </div>
70
71   <div class="modal-footer">
72     <button type="submit" id="register" class="btn btn-primary" autofocus>Submit</button>
73     <button class="btn btn-default" onClick="reset_form()" data-dismiss="modal" aria-hidden="true">Cancel</button>
74   </div>
75
76 <% end %>
77
78 <script>
79   var $input = $('input:text'),
80   $register = $('#register');
81
82   var email_disabled = document.forms["setup_form"]["email"].disabled;
83   var email_value = document.forms["setup_form"]["email"].value;
84   var prefix_value = document.forms["setup_form"]["openid_prefix"].value;
85   if ((email_disabled == false) && (email_value == null || email_value == "" || 
86         prefix_value == null || prefix_value == "")) {
87     $register.attr('disabled', true);
88   }
89
90   $input.keyup(function() {
91     var trigger = false;
92
93     var email_disabled = document.forms["setup_form"]["email"].disabled;
94     var email_value = document.forms["setup_form"]["email"].value;
95     var prefix_value = document.forms["setup_form"]["openid_prefix"].value;
96
97     var emailRegExp = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
98     var validEmail = false;
99     if (emailRegExp.test(email_value )) {
100       validEmail = true;
101     }
102
103     if ((email_disabled == false) && (!validEmail || email_value == null || 
104             email_value == "" || prefix_value == null || prefix_value == "")){
105       trigger = true;
106     }
107
108     trigger ? $register.attr('disabled', true) : $register.removeAttr('disabled');
109   });
110
111   function reset_form() {
112     $('#email').val("");
113     $('#openid_prefix').val("");
114     $('#repo_name').val("");
115     $('select').val('')
116   }
117
118 </script>