New OneLab dashboard - home-view.html
authorYasin Rahman <loic.baron@lip6.fr>
Thu, 7 May 2015 14:19:34 +0000 (16:19 +0200)
committerYasin Rahman <loic.baron@lip6.fr>
Thu, 7 May 2015 14:19:34 +0000 (16:19 +0200)
portal/static/css/onelab.css
portal/templates/onelab/onelab_home-view.html
portal/templates/slice-tab-users-view.html

index 4023e6c..ac35d43 100644 (file)
@@ -56,11 +56,15 @@ h4 {
     font-size:12pt;
     color:#333333;
 }
-ul {
-    margin:0 0 0 15px;
-    padding:0;
+label {
+    font-weight:normal;
+    font-size:13px;
+    color:#201E62;
 }
-li {
+.sublabel {
+    color:gray;
+    font-style:italic;
+    font-weight:normal;
 }
 span.subtitle {
     color:#454545;
@@ -127,6 +131,7 @@ div.breadcrumbs a:hover {
     text-decoration:underline;
 }
 .tab-pane {
+    padding-top:15px;
 }
 /* buttons */
 button.btn, input.btn {
@@ -222,7 +227,17 @@ button.btn-onelab:active, input.btn-onelab:active {
     background-color: #f2dbdb;
     text-align: center;
 }
-
+div#menu-slice-list{
+    display:none;
+    position:absolute;
+    background-color:orange;
+    padding:15px;
+    left:-15px;
+    z-index:10;
+}
+div.dashboard div.projects-tree {
+    margin-left:49px;
+}
 /* HOME DASHBOARD */
 div#home-dashboard {
     color:black;
@@ -394,31 +409,6 @@ div.sl-filter-facilities {
 div.sl-filter-facilities h4 {
     margin-bottom:15px;
     
-}
-.sl-menu {
-    padding:0;
-}
-.sl-menu h4 {
-    margin:0 0 15px 0;
-    padding:0;
-}
-.sl-menu ul {
-    list-style:none;
-    margin:0;
-    padding:0;
-}
-.sl-menu li {
-    color:gray;
-    cursor:pointer;
-    padding:4px 8px;
-}
-.sl-menu li img {
-    vertical-align:top;
-}
-.sl-menu li.active {
-    color:black;
-}
-.sl-menu-item {
 }
 img.sl-image {
     margin:0 5px 5px 0;
@@ -781,6 +771,7 @@ div.home h3 {
     color:white;
     line-height:1.4em;
 }
+/*
 div.dashboard {
     text-align:center;
 }
@@ -792,6 +783,78 @@ div.dashboard ul {
     margin-left:24px;
     list-style:none;
 }
+div.home {
+    padding-top:50px;
+}
+div.home h1 {
+    font-size:22pt;
+    border:0;
+}
+div.home h3, div.home h4 {
+    color:#424242;
+    line-height:1.4em;
+}
+
+div.home h3 a {
+    color:#FD6D2C;
+}*/
+div.dashboard {
+}
+div.dashboard a {
+    color:#206090;
+}
+
+div.dashboard a:hover {
+    text-decoration:underline;
+}
+div.dashboard div.projects-tree {
+    margin-left:49px;
+}
+div.dashboard ul {
+    list-style-type:disc;
+    list-style-position:inside;
+    text-align:left;
+    margin:0 0 15px 0;
+    padding:0;
+    
+}
+div.dashboard ul ul {
+    margin:5px 0 15px 25px;
+    list-style:none;
+}
+div.dashboard li {
+    margin:0 0 5px 0;
+    padding:0;
+}
+div.dashboard ul ul li {
+    margin:0;
+}
+div.dashboard ul ul a {
+}
+div.dashboard h3 {
+    border-bottom:1px solid #E0E0E0;
+    margin-right:15px;
+    margin-bottom:25px;
+}
+div.dashboard h3 a {
+     color:#201E62;
+}
+div.dashboard h3 img {
+    margin:15px 15px 15px 0;
+}
+div.dashboard span.glyphicon {
+    text-align:center;
+    width:45px;
+    height:25px;
+}
+div.dashboard-create-slice {
+    display:none;
+}
+
+div.registration-form {
+    padding-top:150px;
+    text-align:center;
+}
 div.registration-form {
     padding-top:150px;
     text-align:center;
index d98d1b1..c9be8b6 100644 (file)
 {% widget '_widget-news.html' %}
 </div> -->
 {% if username %}
+
+{% block head %} 
+<script type="text/javascript" src="https://java.com/js/dtjava.js"></script>
+{% endblock head %}
+
 {% widget "_widget-no_credentials.html" %}
 <div class="container dashboard">
+       <div class="row">
+           <div class="col-md-12" id="credentials_msg" style="display:none;">
        {%if 'no_creds'  in user_cred %}
-        <p class="command"><a href="#" style="color:red" data-toggle="modal" data-target="#myModal">NO CREDENTIALS</a> are delegated to the portal!</p>
-    {%endif%}
+       <p class="command"><a href="#" style="color:red" data-toggle="modal" data-target="#myModal">NO CREDENTIALS</a> are delegated to the portal!</p>
+       {%endif%}
        {%if 'creds_expired'  in user_cred %}
-        <p class="command"><a href="#" style="color:red" data-toggle="modal" data-target="#myModal">EXPIRED CREDENTIALS</a> Please delegate again your credentials to the portal!</p>
+       <p class="command"><a href="#" style="color:red" data-toggle="modal" data-target="#myModal">EXPIRED CREDENTIALS</a> Please delegate again your credentials to the portal!</p>
     {%endif%}
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-sm-4">
+            <h3>
+                <a href="/portal/slice_request/"><img src="{{ STATIC_URL }}img/icon_slices_small.png" alt="" />EXPERIMENT</a>
+            </h3>
+            <div>
+                <span class="glyphicon glyphicon-cog"></span> <a href="/portal/project_request/">Create/Join project</a>
+            </div>
+            <div class="dashboard-create-slice">
+                <span class="glyphicon glyphicon-plus"></span> <a href="/portal/slice_request/">Create slice</a>
+            </div>
+            <div class="projects-tree">
+                Your projects and slices
+                <span title="A <b>slice</b> is a set of testbed resources on which you can conduct an experiment. 
+                Either ask your colleagues to give you access to an existing slice or request a new slice by clicking 'Request Slice'. 
+                However, on the Fed4FIRE portal, you will only see slices that you have created through Fed4FIRE. If you have created slices elsewhere, 
+                those slices will not appear here. <br /><br /> A <b>project</b> is a sub-authority under the responsability of your institution gathering users, 
+                who will be able to create slices for their experiments." class="glyphicon glyphicon-info-sign">&nbsp;</span> 
+             
+                <div id="home-project-tree"><img class="projects-loading" src="{{ STATIC_URL }}img/loading.gif" alt="Loading projects" /></div>
+            </div>
+            <!--            
+            <div class="experiment-tools">
+                <h4 title="Some tools do their own slice creation and management.">Experiment now</h4>
+                
+                <p class="jfed">
+                    <button id="start" class="btn btn-primary" type="button" onclick="launchjFed()"><span class="glyphicon glyphicon-cloud"></span> Start jFed</button>
+                </p>
+                <div id='java7Dialog' title="Old Java version detected" >
+                <p>The latest version of jFed is only compatible with Java 8 or higher. We detected that you are using an older version.</p>
+                <p>Please upgrade to Java 8 to get access to the newest version of jFed. Otherwise, you can use jFed 5.3.2, which is Java 7-compatible.</p>
+                </div>
+                
+                <div id='noJavaDialog' title="No Java detected" >
+                <p>jFed requires Java to run. We however couldn't detect a Java installation in your browser.</p>
+                <p>Please install the latest version of Java to continue.</p>
+                </div>
 
-       <div class="row">
-        {% if request.session.user.pi %}
-               <div class="col-md-3">
-                       <h3>
-                               EXPERIMENT
-                       </h3>
-                       <div>
-                               <a href="#"><img src="{{ STATIC_URL }}img/icon_slices.png" alt="" /></a>
-                       </div>
-                       <div>
-                               <button id="slicerequestbtn" type="button" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> Create Slice</button>
-                       </div>
-                       <div>
-                               <p><strong>Your slices </strong>
-                                       <span title="A slice is a set of testbed resources on which you can conduct an experiment. 
-                                       Either ask your colleagues to give you access to an existing slice or request a new slice by clicking 'Request Slice'. 
-                                       However, on the OneLab portal, you will only see slices that you have created through OneLab. If you have created slices elsewhere, 
-                                       such as on the PlanetLab Europe portal, those slices will not appear here."
-                                       class="glyphicon glyphicon-info-sign">
-                               </span>
-
-                               </p>
-                       </div>
-                       <div>   
-                               <div id="home-slice-list"><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading Slices" /></div>
-                       </div>
-               </div>
-               <div class="col-md-3">
-                       <h3>MANAGEMENT</h3>
-                       <div>
-                               <a href="/portal/institution"><img src="{{ STATIC_URL }}img/icon_authority_color.png" alt="" /></a>
-                       </div>
-                       <div>
-                               <button id="validaterequestbtn" type="button" class="btn btn-default"><span class="glyphicon glyphicon-ok"></span> Validate Requests</button>
-                       </div>
-               </div>
-               <div class="col-md-3">
-                       <h3>
-                               SUPPORT
-                       </h3>
-                       <div>
-                               <a href="/portal/support"><img src="{{ STATIC_URL }}img/icon_support.png" alt="" /></a>
-                       </div>
-                       <div>
-                               <button id="ticketbtn" type="button" class="btn btn-default"><span class="glyphicon glyphicon-envelope"></span> Contact</button>
-                       </div>
-               </div>
-               
-               <div class="col-md-3">
-                       <h3>
-                               ACCOUNT
-                       </h3>
-                       <div>
-                               <a href="/portal/account/"><img src="{{ STATIC_URL }}img/icon_user_color.png" alt="" /></a>
-                       </div>
-                       <div>
-                               <button id="logoutbtn" type="button" class="btn btn-default" data-username="{{ username }}"><span class="glyphicon glyphicon-off"></span> Logout</button>
-                       </div>
-                       <div>
-                               {% if person.last_name %}
-                                       {{person.first_name}} {{person.last_name}}<br />
-                               {% endif %}
-                       <span class="label">Username:</span> <a href='/portal/account/' title="Click here to see and edit your account details.">{{person.email}}</a>
-               </div>
-               </div>
-       </div>
-       {%else%}
-       <div class="row">
-               <div class="col-md-4">
-                       <h3>
-                               EXPERIMENT
-                       </h3>
-                       <div>
-                               <a href="#"><img src="{{ STATIC_URL }}img/icon_slices.png" alt="" /></a>
-                       </div>
-                       <div>
-                               <button id="slicerequestbtn" type="button" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> Request Slice</button>
-                       </div>
-                       <div>
-                               <p><strong>Your slices </strong>
-                               <span title="A slice is a set of testbed resources on which you can conduct an experiment. 
-                                       Either ask your colleagues to give you access to an existing slice or request a new slice by clicking 'Request Slice'. 
-                                       However, on the OneLab portal, you will only see slices that you have created through OneLab. If you have created slices elsewhere, 
-                                       such as on the PlanetLab Europe portal, those slices will not appear here."
-                                       class="glyphicon glyphicon-info-sign">
-                               </span>
-                               </p>
-                       </div>
-                       <div>   
-                               <div id="home-slice-list"><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading Slices" /></div>
-                       </div>
-                       {% if pending_slices %}
-                       <p><strong>Pending slices</strong>
-                       <span title="Slices that you have requested and are pending for validation by the contact person of your organization."
-                               class="glyphicon glyphicon-info-sign">
-                       <ul>
-                       {% for slices in pending_slices %}
-                       <li>{{slices}}</li>
-                       {% endfor %}
-                       </ul>
-                       </span>
-                       </p>
-                       {%endif%}       
-               </div>
-               <div class="col-md-4">
-                       <h3>
-                               SUPPORT
-                       </h3>
-                       <div>
-                               <a href="/portal/support"><img src="{{ STATIC_URL }}img/icon_support.png" alt="" /></a>
-                       </div>
-                       <div>
-                               <button id="ticketbtn" type="button" class="btn btn-default"><span class="glyphicon glyphicon-envelope"></span> Contact</button>
-                       </div>
-               </div>
-               
-               <div class="col-md-4">
-                       <h3>
-                               ACCOUNT
-                       </h3>
-                       <div>
-                               <a href="/portal/account/"><img src="{{ STATIC_URL }}img/icon_user_color.png" alt="" /></a>
-                       </div>
-                       <div>
-                               <button id="logoutbtn" type="button" class="btn btn-default" data-username="{{ username }}"><span class="glyphicon glyphicon-off"></span> Logout</button>
-                       </div>
-                       <div>
-                               {% if person.last_name %}
-                                       {{person.first_name}} {{person.last_name}}<br />
-                               {% endif %}
-                       <span class="label">Username:</span> <a href='/portal/account/' title="Click here to see and edit your account details.">{{person.email}}</a>
-               </div>
-               </div>
-       </div>
-       {%endif%}
-
+            </div> -->
+        </div>
+        <div class="col-sm-4">
+            <div class="row">
+                <div class="col-sm-12">
+                    <h3>
+                        <a href="/portal/account/"><img src="{{ STATIC_URL }}img/icon_user_small.png" alt="" /></a><a href="/portal/account/">ACCOUNT</a>
+                    </h3>
+                    {% if person.last_name %}
+                    <p>
+                        {{person.first_name}} {{person.last_name}}
+                    </p>
+                    {% endif %}
+                    <p>
+                        <span class="glyphicon glyphicon-user"></span> <a href='/portal/account/' title="Click here to see and edit your account details.">{{person.email}}</a>
+                    </p>
+                </div>
+            </div>
+            <div class="row">
+                <div class="col-sm-12">
+                    <h3>
+                        <a href="/portal/institution"><img src="{{ STATIC_URL }}img/icon_authority_color_small.png" alt="" /></a><a href="/portal/institution">MANAGEMENT</a>
+                    </h3>
+                   
+                    <div>
+                        <span class="glyphicon glyphicon-ok"></span> <a href="/portal/institution#requests">Validate Requests</a>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="col-sm-4">
+            <div class="row">
+                <div class="col-sm-12">
+                    <h3>
+                        <a href="/portal/support"><img src="{{ STATIC_URL }}img/icon_support_small.png" alt="" /></a><a href="/portal/support">SUPPORT</a>
+                    </h3>
+                    <p>
+                        <span class="glyphicon glyphicon-envelope"></span> <a href="/portal/contact/">Contact</a>
+                    </p>
+                </div>
+            </div>            
+        </div>
+    </div>
 </div>
 {% else %}
 <div class="container-fluid home">
-       <div class="">
-               <div class="col-sm-2"></div>
-               <div class="col-sm-4 slogan">
-                       <h2>
-                               Your Easy Access to Computer Networking Testbeds:
-                       </h2>
-                       <h3>
-                               A wide variety of world class testbeds available through your one account
-                       </h3>
-               </div>
-               <div class="col-sm-5 col-sm-offset-1">
-                       <div class="row">
-                               {% widget '_widget-login-user.html' %}
-                       </div>
-               </div>
-               <div class="col-sm-1"></div>
-       </div>
+    <div class="">
+        <div class="col-sm-2"></div>
+        <div class="col-sm-4 slogan">
+            <h2>
+                Your Easy Access to Computer Networking Testbeds:
+            </h2>
+            <h3>
+                A wide variety of world class testbeds available through your one account
+            </h3>
+        </div>
+        <div class="col-sm-5 col-sm-offset-1">
+            <div class="row">
+                {% widget '_widget-login-user.html' %}
+            </div>
+        </div>
+        <div class="col-sm-1"></div>
+    </div>
 </div>
+<script type="text/javascript">
+       $(document).ready(function() {
+        localStorage.clear();
+    });
+</script>
+
 {% endif %}
 
 
 <script type="text/javascript">
+   var config = {
+       java8_jnlp: 'http://jfed.iminds.be/jfed-f4f-java8.jnlp',
+       java7_jnlp: 'http://jfed.iminds.be/jfed-f4f-java7.jnlp'
+   };
+
+   var certkey = "{{jfed_identity}}";
+
        $(document).ready(function() {
+           {%if 'no_creds' in user_cred or 'creds_expired' in user_cred %}
+        localStorage.clear();
+        /*
+        $.post("/cache/clear/", function( data ) {
+        });
+        */
+        {% endif %}
                $('a.home-tab').click(function() {
                        $('ul.nav-tabs li').removeClass('active');
                        $(this).parent().addClass('active');
                        $('div.home-panel').hide();
                        $('div#'+$(this).data('panel')).show();
                });
-               $('button#validaterequestbtn').click(function() {
-                       window.location="/portal/institution#requests";
-               });
-               $('button#ticketbtn').click(function() {
-                       window.location="/portal/contact/";
-               });
-               $('button#signupbtn').click(function() {
-                       window.location="/portal/register/";
-               });
-               $('button#slicerequestbtn').click(function() {
-                       window.location="/portal/slice_request/";
-               });
-
-        myslice.loadSlices();
-        
-});
+               
+    });
 </script>
-{% widget "_widget-monitor.html" %}
-{# widget "_widget-stats-top-slices.html" #}
+<script src='https://authority.ilabt.iminds.be/js/jquery/jquery-ui.min.js'></script>
+<script src="//java.com/js/dtjava.js"></script>
+<script src='https://authority.ilabt.iminds.be/js/jfed_webstart_f4fportal.js'></script>
+<link rel='stylesheet' href='https://authority.ilabt.iminds.be/js/jquery/jquery-ui.css' />
 
+{% widget "_widget-monitor.html" %}
 {% endblock %}
index 6f06c1f..d64fdee 100644 (file)
                <div id="user-tab-loaded" style="display:none;">
                <table id="user-tab" class="table">
                </table>
-
-                <!-- XXX TODO: for the moment only PIs have access to Update but users that have slice credentials should also have access to that -->
-
                                <button id="addusers" type="button" class="btn btn-default"><span class="glyphicon glyphicon-ok"></span> Update users</button>
                </div>