merge
[myslice.git] / portal / templates / fed4fire / fed4fire_projectrequest_view.html
index 962976f..5daf0cc 100644 (file)
 {% extends "layout.html" %}
 {% load i18n %}
-
+{% block head %}
+<script src="{{ STATIC_URL }}js/jquery-ui.js"></script>
+<script src="{{ STATIC_URL }}js/jquery-ui-combobox.js"></script>
+<link rel='stylesheet' type='text/css' href="{{ STATIC_URL }}css/jquery-ui.css">
+<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}css/jquery.ui.combobox.css">
+{% endblock head %}
 {% block content %}
-       <div class="row">
-               <div class="col-md-12">
-                        <div class="breadcrumbs">
-                                Experiment &nbsp;>&nbsp; Request a new Project or Join an existing one
-                        </div>
-               </div>
-       </div>
+<div class="row">
+    <div class="col-md-12">
+         <div class="breadcrumbs" style="line-height: 3;">
+             Experiment &nbsp;>&nbsp; Create or join a Project
+         </div>
+    </div>
+</div>
+<div class="row">
+    <div class="col-md-12">
+        <ul class="nav nav-tabs nav-section">
+            <li class="active"><a href="#new">Create new Project</a></li>
+            <li><a href="#existing">Join existing Project</a></li>
+            
+        </ul>
+    </div>
+</div>
 
-       {% if errors %}
-       <div class="row">
-               <div class="col-md-12">
-               <ul class="error">
-                 {% for error in errors %}
-                 <li>{{ error }}</li>
-                 {% endfor %}
-               </ul>
-               </div>
-       </div>
-       {% endif %}
-       
-       <div class="row">
-               <div class="col-md-8 el">
-                       <form role="form" method="post">
-                       {% csrf_token %}
-                         <div class="form-group" style="display:none">
-                           <input type="email" class="form-control" id="email" style="width:300px" value="{{ email }}" readonly="readonly">
-                         </div>
-                         <div class="form-group">
-                               <select id="org_name" name="org_name" class="form-control" style="width:590px" value="{{ organization }}" required> 
-                {% if authorities %}
-                    {% for authority in authorities %}
-                        {% if authority.name %}
-                            <option value="{{ authority.authority_hrn }}">{{authority.name}}</option>
-                        {% else %}
-                            <option value="{{ authority.authority_hrn }}">{{authority.authority_hrn}}</option>
+{% if errors %}
+<div class="row">
+    <div class="col-md-12">
+    <ul class="error">
+      {% for error in errors %}
+      <li>{{ error }}</li>
+      {% endfor %}
+    </ul>
+    </div>
+</div>
+{% endif %}
+
+<div class="container tab-content">
+
+    <div class="tab-pane active" id="new"> 
+        
+        <div class="row">
+            <div class="col-sm-6 col-sm-offset-3">
+                <form role="form" method="post" action="/portal/project_request">
+                {% csrf_token %}
+                    <label>
+                        Please insert a name for your project under which you will be able to create slices <br />
+                        <span class="sublabel">
+                         The project name should only contain letters, numbers and the underscore "_"  (10 max length)<br />
+                        </span>
+                    </label>
+                    <div class="form-group">
+                        <input type="text" name="project_name" value="" class="form-control" maxlength="10"  style="width:100%;" title="The project name should not contain spaces but only letters, numbers and the underscore character" placeholder="Project name" required>
+                    </div>
+                    
+                    <label>
+                        The authority under which your project will be managed <br />
+                        <span class="sublabel">
+                        Before you can access your project a manager of this authority should approve the request
+                        </span>
+                    </label>
+                    <div class="form-group">
+                        <select id="org_name" name="authority_name" class="form-control" style="width:100%" value="{{ organization }}" required> 
+                        {% if authorities %}
+                            {% for authority in authorities %}
+                                {% if authority.name %}
+                                    <option value="{{ authority.authority_hrn }}" {% if authority.authority_hrn == authority_hrn %}selected{% endif %}>{{authority.name}}</option>
+                                {% else %}
+                                    <option value="{{ authority.authority_hrn }}" {% if authority.authority_hrn == authority_hrn %}selected{% endif %}>{{authority.authority_hrn}}</option>
+                                {% endif %}
+                            {% endfor %} 
                         {% endif %}
-                    {% endfor %} 
-                {% endif %}
-                </select>
-                         </div>
-                         <div class="form-group">
-                <input type="text">New Project</input>
-                         </div>
-                         <div class="form-group">
-                <input type="text">Existing Project</input>
-                         </div>
-                         <div class="form-group">
-                               <textarea id="purpose" name="purpose" class="form-control" rows="6" placeholder="Project purpose" style="width:300px" 
-                               title="Purpose of your project (informative)" required="required">{{ purpose }}</textarea>
-                         </div>
-                         {%if 'is_pi'  in pi %}        
-                         <button type="submit" id=submit_pi class="btn btn-onelab"><span class="glyphicon glyphicon-plus"></span> Create slice</button>
-                         {%else%}
-                         <button type="submit" class="btn btn-onelab"><span class="glyphicon glyphicon-plus"></span> Request slice</button>
-                         {%endif%}     
-                       </form>
-       
-               </div>
-       </div>
+                        </select>
+                    </div>
+                  
+                    <label>
+                        Please provide a description of the purpose for your project
+                    </label>
+                    <div class="form-group">
+                        <textarea id="purpose" name="purpose" class="form-control" rows="6" placeholder="Project description" style="width:100%" title="Purpose of your project (informative)" required="required"></textarea>
+                    </div>
+                    <button type="submit" class="btn btn-onelab"><span class="glyphicon glyphicon-plus"></span> Send Request</button>
+                </form>
+        
+            </div>
+        </div>
+    </div>
+    
+       <div class="tab-pane" id="existing"> 
+        <div class="row">
+            <div class="col-md-6">
+                 <h3>Join an existing Project</h3>
+            </div>
+            <div class="col-md-6">
+                 <h3>List of projects you are part of</h3>
+            </div>
+        </div>
+        <div class="row">
+            <div class="col-md-6">
+                <form role="form" method="post" action="/portal/project_request">
+                {% csrf_token %}
+                <div id="project_loading" style="display:inline;"><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading projects" /></div> 
+                <select id="projects" name="project_name" style="display:none;"></select> 
+                <div style="display:none;" id="projects_button">
+                    <input type="submit" id="join" name="join" value="Join" class="btn"/>
+                </div>
+                </form>
+            </div>
+            <div class="col-md-6">
+                <table class="table project-list">
+                    {% for pending in pending_projects %}
+                    <tr><td>(PENDING) {{ pending.project_name }}</td><td>{{ pending.authority_hrn }}</td><td>{{ pending.created|date:"d/m/Y" }}</td></tr>
+                    {% endfor %}
+                    {% for pending in pending_join_projects %}
+                    <tr><td>(PENDING JOIN) {{ pending.project_name }}</td><td>&nbsp;</td><td>{{ pending.created|date:"d/m/Y" }}</td></tr>
+                    {% endfor %}
+
+                </table>
+            </div>
+        </div>
+    </div>
+</div>
                
 <script>
-jQuery(document).ready(function(){
+$(document).ready(function() {
+    var myprojects = JSON.parse(localStorage.getItem('projects'));
+    if (myprojects) {
+        $.each(myprojects, function (i, val){
+            $('.project-list').append('<tr><td>'+ val +'</td></tr>');
+        });
+    } else {
+        $('.project-list').html('<tr><td>no projetcs</td></tr>');
+    }
+    
+    $('.nav-tabs a').click(function (e) {
+        e.preventDefault();
+        $(this).tab('show');
+    });
+    $.post("/rest/myslice:authority/",{'fields':['authority_hrn','pi_users'],'filters':{'authority_hrn':'CONTAINS{{ root_authority_hrn }}' }}, function( data ) {
+       
+        var projects = [];
+        project_row = "<option value=''> - </option>";
+        projects.push(project_row);
+       
+        $.each( data, function( key, val ) {
+            if(val.authority_hrn.split('.').length > 2){
+                if($.inArray(val.authority_hrn, myprojects)==-1){
+                project_row = "<option value='"+val.authority_hrn+"'>"+val.authority_hrn+"</option>";
+                projects.push(project_row);
+                }
+            }
+        });
+        $("#projects").show();
+        $("#projects_button").css('margin-left', '50px');
+        $("#projects_button").css('display', 'inline-block');
+        $("#project_loading").hide();
+        $("#projects").html(projects.join( "" ));
+        $("#projects").combobox();
+        var $s = jQuery("#projects").next().attr('id','listProjects');
+        jQuery('#listProjects').bind("click",function(){
+            // show all items click
+            this.childNodes[1].click();
+        });
+
+    });
 /*
        
        $("#authority_hrn").load("/rest/user/", {"fields" : ["parent_authority"], "filters": {"user_hrn": "{{ user_hrn }}"}}, function(data) {
@@ -108,6 +208,9 @@ jQuery(document).ready(function(){
        // auto-complete the form
     jQuery("#org_name").combobox();
 
+    $('input[name=project_name]').keyup(function(){
+        this.value = this.value.toLowerCase();
+    });
 });
 </script>
 {% endblock %}