Templates: Registration
[unfold.git] / portal / templates / fed4fire / fed4fire_registration_view.html
1 {% extends "layout.html" %}
2
3 {% block content %}        
4
5 <div class="row">
6         <div class="col-md-12">
7         <h1><img src="{{ STATIC_URL }}icons/user-xs.png" alt="User Registration" />User sign-up</h1>
8         </div>
9 </div>
10 <div class="row">
11         <div class="col-md-12">
12                 <p><strong>Questions? <a href="/contact" >Contact us.</a></strong></p>
13   </div>
14 </div>
15 {% if errors %}
16 <div class="row">
17         <div class="col-md-12">
18                 <ul class="error">
19                   {% for error in errors %}
20                   <li>{{ error | safe }}</li>
21                   {% endfor %}
22                 </ul>
23         </div>
24 </div>
25 {% endif %}
26 <form action="/register" class="cmxform form-horizontal" method="post" enctype="multipart/form-data">
27 <div class="row">
28         <div class="col-md-12">
29                         <p>
30                                 {% csrf_token %}
31                                 <label for="authority_hrn" class="control-label">Organization</label>
32                         </p>
33                         <p>
34                                 <select id="org_name" name="org_name" class="form-control" style="width:590px" value="{{ organization }}" 
35                                 title="Choose your organization (company/university) from the list that apears when you click in the field and start to type.
36                                  Use the arrow keys to scroll through the list; type part of the name to narrow down the list. We will send an email to 
37                                  the managers that we have on record for your organization, asking them to validate your sign-up request." required>
38                     <option value="">select an organization</option>
39                 {% if authorities %}
40                     {% for authority in authorities %}
41                         {% if authority.name %}
42                             <option value="{{ authority.authority_hrn }}">{{authority.name}}</option>
43                         {% else %}
44                             <option value="{{ authority.authority_hrn }}">{{authority.authority_hrn}}</option>
45                         {% endif %}
46                     {% endfor %}
47                 {% else %}
48                     <option value:"">No authority found !!!</option>
49                 {% endif %}
50                 </select>
51             </p>
52             {% include theme|add:"_authority_notListed.html" %}
53                 </p> 
54         </div>
55 </div>
56
57 <div class="row">
58         <div class="col-md-6">
59         <p>
60                         <label for="firstname" class="control-label">Personal information</label>
61                 </p>
62         <p>
63                         <input type="text" name="firstname" class="form-control" style="width:350px" minlength="2" value="{{ first_name }}" placeholder="First name" required />
64             </p>
65         <p>
66                         <input type="text" name="lastname" size="25" class="form-control" style="width:350px" minlength="2" value="{{ last_name }}" placeholder="Last name" required />
67             </p>
68         <p>
69                 <input type="email" name="email" size="25"  class="form-control" style="width:350px" value="{{ email }}" 
70                         title="Your e-mail address will be your identifier for logging in. We contact you to verify your account and then, occasionally, for important issues."
71                         placeholder="Email" required />
72                 </p>
73         </div>  
74
75         <div class="col-md-6">
76         <p>
77               <label for="password" class="control-label">Authentication</label>
78                 </p>
79                 <p>     
80               <input type="password"  id="password" name="password"   class="form-control" style="width:250px" minlength="8" value="{{ password }}" title="Your password allows you to log in to this portal." placeholder="Password" required />
81             </p>
82         <p>
83                         <input type="password"  id="confirmpassword" name="confirmpassword" style="width:250px"  minlength="8" class="form-control" value="" placeholder="Confirm password" required />
84             </p>
85         <p>
86                         <select name="question" class="form-control" style="width:350px" id="key-policy" 
87                                 title="Your public/private key pair allows you to access the testbeds." required >        
88                                 <option value="generate">Generate my keys for me (recommended)</option>
89                                 <option value="upload">Upload my public key (advanced users only)</option>
90                         </select>
91             </p>
92             <div style="display:none;" id="upload_key">
93                 <label for="file" class="control-label">Upload public key</label>
94                 <input type="file" name="user_public_key" class="form-control" style="width:200px" id="user_public_key" />
95                 <br />
96                         <div class="alert alert-danger" id="pkey_del_msg">
97                                 In order for the portal to contact testbeds on your behalf, so as to list and reserve resources, you will need to 
98                                 <a href="/portal/manual_delegation" target="_blank">delegate your credentials to the portal.</a>
99                         </div>
100             </div>
101         </div>
102 </div>
103 <div class="row">
104         <div class="col-md-12">
105         <p>
106                         <input type="checkbox" name="agreement" value="agreement" required />&nbsp;&nbsp; I agree to the 
107                         <a href="#" data-toggle="modal" data-target="#myModal">terms and conditions.</a> 
108                 </p>
109         </div>
110 </div>
111 {% include theme|add:"_register_info.html" %}
112 <div class="row">
113         <div class="col-md-12">
114                 <div id="register">
115                         <p>
116                 <input class="submit btn btn-onelab" type="submit" value="Sign up" />
117                </p>
118             </div>
119         </div>
120 </div>
121 </form>
122         <!-- Modal - columns selector -->
123 <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
124         <div class="modal-dialog">
125                 <div class="modal-content">
126                         <div class="modal-header">
127                                 <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
128                                         <h4 class="modal-title" id="myModalLabel">Terms & Conditions</h4>
129                         </div>
130                         <div class="modal-body">
131
132                         </div>
133                         <div class="modal-footer">
134                                 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
135                         </div>
136                 </div>
137         </div>
138 </div>
139
140     
141 <script>
142
143 $(document).ready(function(){
144     /*
145     var availableTags = [
146     {% if authorities %}
147         {% for authority in authorities %}
148             {% if authority.name %}
149                 {value:"{{ authority.authority_hrn }}",label:"{{authority.name}}"},
150                         // show hrn if we don't have the name
151             {% else %}
152                 {value:"{{ authority.authority_hrn }}",label:"{{authority.authority_hrn}}"},
153             {% endif %}
154         {% endfor %}    
155     {% else %}
156         {value:"",label:"No authority found !!!"}
157     {% endif %}
158     ];
159         // sorting the list
160     
161         availableTags.sort(function(a,b){
162                 var nameA=a.value.toLowerCase(), nameB=b.value.toLowerCase();
163                 if (nameA < nameB) {
164                 return -1;
165                 }
166                 if (nameA > nameB) {
167                 return 1;
168                 }
169         return 0;
170         }); 
171     */
172     
173         // auto-complete the form
174     jQuery("#org_name").combobox();
175
176     //setting the default value in the org_list
177     var temp="fed4fire.global"; 
178     $("#org_name").val(temp);
179
180     /*
181     // Must be executed in Python as Admin Query - User is not logged in
182
183     $.post("/rest/authority/",{'filters':{'authority_hrn':'CONTAINS'+temp}}, function( data ) {
184         $.each( data, function( key, val ) {
185             console.log(val);
186         });
187     });
188     */
189         $('[title!=""]').qtip();
190         $("form").validate();
191         $("form").submit(function() {
192                 if ($('select option:selected').val() == 'upload') {
193                         if ($('input[name=user_public_key]').val() == '') {
194                                 alert('Please specify the key file to upload');
195                                 return false;
196                         }
197                 }
198         });
199 });
200 </script>
201 {% endblock %}
202