Merge branch 'onelab' of ssh://git.onelab.eu/git/myslice into onelab
[myslice.git] / portal / templates / slice-tab-users-view.html
1         <div class="col-md-2">
2                 <div id="select-platform" class="list-group">
3                 </div>
4                         
5                 <ul class="list-group">
6                   <li class="list-group-item">Authority:<b> {{user_details.parent_authority}}</b>
7                         <!--<select id="auth_list">
8                                 <option value="ple.upmc">UPMC</option>
9                                 <option value="ple.inria">INRIA</option>
10                                 <option value="ple.nitos">NITOS</option>
11                                 <option value="ple.iminds">iMinds</option>
12                         </select> -->
13                   </li>
14                   <li class="list-group-item">Filter: slice</li>
15                   <li class="list-group-item">...</li>
16                   <li class="list-group-item">...</li>
17                   <li class="list-group-item">...</li>
18                 </ul>
19         
20         </div>
21         <div class="col-md-10">
22                 <div class="row">
23                 </div>
24                 <div id="user-tab-loading"><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading Useres" /></div>
25                 <div id="user-tab-loaded" style="display:none;">
26                 <table id="user-tab">
27                         <tr>
28                         <th>+/-</th>
29                         <th>Email</th>
30                         <th>user_hrn</th>
31                         <th>Enabled</th>
32                         </tr>
33                 </table>
34                                 {% if 'is_pi'  in pi %}
35                                 <button id="addusers" type="button" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span>Add users</button>
36                                 {%endif%}
37                 </div>
38 <script>
39     $(document).ready(function() {
40                         var slice_users = [];
41                         //console.log("the value you selected: " + selectedValue);
42                 $.post("/rest/user/",{'filters':{'parent_authority': "{{user_details.parent_authority}}"}}, function( data ) {
43                 var list_users = [];
44                 var table_users = [];
45                                 /* Available fields
46                                 user_gid, user_enabled, slices, pi_authorities, keys, parent_authority, user_first_name,
47                             user_urn, user_last_name, user_phone, user_hrn, user_email, user_type
48                                 */
49                 $.each( data, function( key, val ) {
50                         list_users.push( "<li><a href=\"portal/user/"+val.user_email+"\">" + val.user_email + "</a></li>" );
51                         user_row = "<tr>";
52                                         // checking the box for the users that belong to the selected slice
53                                         var flag_checkbox = 0;
54                                         for(var data in val.slices) {
55                                         var element = val.slices[data];
56                                                 if (element == "{{slice}}"){
57                                                         //console.log("the slice is: "+ element);       
58                                                         flag_checkbox = 1;
59                                                         slice_users.push (val.user_email)
60                                                         user_row += "<td><input type='checkbox' checked='True'></td>";
61                                                 }
62                                         }
63                                         if(flag_checkbox != 1){
64                                 user_row += "<td><input type='checkbox' class='user'></td>";
65                                         }
66                         user_row += "<td>"+val.user_email+"</td>";
67                         user_row += "<td>"+val.user_hrn+"</td>";
68                                         user_row += "<td>"+val.user_enabled+"</td>";
69                         user_row += "</tr>";
70                         table_users.push(user_row);
71                 
72                 });
73                                  console.log("slice users before")
74                                  console.log(slice_users)
75
76                                 $("table#user-tab tr:last").after(table_users.join( "" ));
77                 $("div#user-tab-loaded").css("display","block");
78                 $("div#user-tab-loading").css("display","none");
79
80                                 $('button#addusers').click(function() {
81                 $('input:checkbox.user').each(function (index) {
82                 if(this.checked){
83                         var record_id = this.id;
84                                         console.log("checked")
85                                         console.log($(this)
86                                         .closest('tr') //get the enclosing tr
87                                         .find('td:eq(1)'));  //find any using td:eq(<index>)
88                                         slice_users.push ("yasin.upmc@gmail.com")
89                                         console.log("after")
90                                         console.log(slice_users)
91                                         //console.log(user_email)
92                         $.post("/update/slice/",{'filters':{'slice_hrn':'{{slice}}'},'params':{'users':slice_users}}, function(data) {
93                         if(data.success){
94                                 // TODO: highlight row after success
95                                 //$('tr[id="'+record_id+'"]').highlight();
96                         }else{
97                                 alert("Rest Error for "+record_id+": "+data.error);
98                         }
99                         });
100                 
101                 }
102                 });
103                 // TODO: refresh table
104                 //window.location="/portal/institution#slices";
105         });
106
107                 });
108         //      });
109     });
110 </script>
111