(r'^rest/(?P<object_type>[^/]+)/(?P<object_name>[^/]+)?/?$', 'rest.dispatch'),
(r'^table/(?P<object_type>[^/]+)/(?P<object_name>[^/]+)?/?$', 'rest.dispatch'),
(r'^datatable/(?P<object_type>[^/]+)/(?P<object_name>[^/]+)?/?$', 'rest.dispatch'),
++ (r'^update/(?P<object_type>[^/]+)/(?P<object_name>[^/]+)?/?$', 'rest.update.dispatch'),
#
#
#(r'^view/?', include('view.urls')),
manifoldresult = auth_result
# let's use ManifoldResult.__repr__
env['state']="%s"%manifoldresult
-- env['layout_1_or_2']="layout-unfold2.html"
return render_to_response(self.template,env, context_instance=RequestContext(request))
# user was authenticated at the backend
if request.user.is_authenticated():
env['person'] = self.request.user
++ env['username'] = self.request.user
else:
env['person'] = None
return render_to_response(self.template,env, context_instance=RequestContext(request))
# otherwise
else:
env['state'] = "Your username and/or password were incorrect."
-- env['layout_1_or_2']="layout-unfold2.html"
return render_to_response(self.template, env, context_instance=RequestContext(request))
if state: env['state'] = state
elif not env['username']: env['state'] = None
# use one or two columns for the layout - not logged in users will see the login prompt
-- env['layout_1_or_2']="layout-unfold2.html" if not env['username'] else "layout-unfold1.html"
return render_to_response(self.template, env, context_instance=RequestContext(request))
--/*****************************************************************
--Motivated from Geni clearing house
--********************/
--
--* {
-- margin: 0;
-- padding: 0;
--}
--
--fieldset, img {
-- border: 0;
--}
--
--
--
--/************************
--* GENERAL
--************************/
--
--body {
-- background-color: #fff;
-- /* font-family: "Segoe UI", "Lucida Grande", "Helvetica" , sans-serif;
-- font-size: 12pt; */
-- min-width: 1000px; /* ADDED July 2012 */
-- margin: 0px auto; /* ADDED Aug 14, 2012 */
--}
--
--ol {
-- list-style-position: inside;
--}
--
--a {
-- text-decoration: none;
-- color: #0066FF;
--}
--
--code {
-- font-family: "Consolas", "Lucida Console", "Monaco", "Courier New";
--}
--
--.odd {
-- background-color: #fff;
--}
--
--.even {
-- background-color: #eee;
--}
--
--
--/************************
--* LAYOUT
--************************/
--
--/***** Header *****/
--
--#header {
-- width: 900px; /* Edited Aug 14, 2012 prev width:70%*/
-- margin: 30px auto 20px auto;
--}
--
--#header #logo {
-- font-size: 42px; /* Edited Sept 28, 2012 prev value :36pt*/
-- font-weight: bold;
--}
--
--#header #logo a {
-- color: #000;
--}
--
--#header #caption {
-- margin-left: 20px;
-- font-size: 13.3333px;
--}
--
--#header #caption a {
-- color: #0066FF;
--}
--
--
--/***** Navigator *****/
--
--#navigator {
-- border-bottom: 3px solid #222;
-- width: 100%;
-- margin: 0 auto; /* ADDED Aug 14, 2012 */
--}
--
--#tabs {
-- margin: 0 auto;
-- width: 900px; /* Editied Aug 14, 2012 prev width: 70% */
--}
--
--#meta {
-- float: right;
-- font-size: 13pt;
-- margin: 5px 0;
--}
--
--#meta a.logout {
-- color: red;
--}
--
--#tabs table {
-- border-collapse: collapse;
-- border-spacing: 0;
--}
--
--#tabs table tr td {
-- padding: 5px 15px;
-- font-size: 14pt;
-- border-top: 1px solid #222;
-- border-right: 2px solid #222;
-- border-left: 2px solid #222;
--}
--
--#tabs table tr td a {
-- color: #000;
--}
--
--#tabs table tr td.active {
-- background-color: #222;
-- color: #fff;
--}
--
--#tabs table tr td.active a {
-- color: #fff;
--}
--
--
--/***** Main *****/
--
--#main {
-- width: 100%;
-- height: 400px;
-- padding: 40px 0;
-- background-image: url(../images/bg.png);
-- background-repeat: repeat-x;
--}
--
--#middle {
-- margin: 0 auto;
-- width: 900px; /* Edited Aug 14, 2012 prev width:70% */
-- padding-bottom: 60px;
--}
--
--
--/***** Notifications *****/
--
--.warning2 {
-- border: 1px solid red;
-- margin: 20px 60px;
-- padding: 10px 20px;
-- color: red;
-- background-color: #f2dbdb;
-- text-align: center;
--}
--.message {
-- border: 1px solid green;
-- max-width : 682px; /* ADDED July 2012 */
-- margin: 20px 60px;
-- padding: 10px 20px;
-- color: green;
-- font-weight: normal;
-- background-color: #CCFFCC;
-- text-align: center;
--}
--
--.tooltip {
-- background-color: #efefef;
-- color: #333;
-- font-size: 10pt;
-- padding: 3px;
-- border: solid 1px #333;
-- z-index:100;
--}
--
--ul.errorlist li {
-- color: red;
-- font-weight: normal;
-- font-size: 10pt;
-- background-color: #f2dbdb;
-- padding: 3px;
-- list-style-position: inside;
--}
--
--#learn-about-seattle {
-- /* max-width : 70%;*/
-- text-align : center;
-- background-color : #ded;
-- border : 1px solid #0a0;
-- padding : 1em;
-- margin-top : 1em;
-- margin-bottom : 1em;
-- font-size : 1.3em;
--}
* STYLE FOR PERSONAL DETAILS TABLE
*******************************/
--h1 {
-- font-size: 1.8em;
-- border-bottom: 1px solid #bbb;
-- width: 70%;
-- min-width: 688px;
--}
#info {
background-color : #839E99;
--/* @override unfold/static/css/plugin.css */
--
--/*-------------------------------- MARKO'S STYLES -----*/
--
--
--
--
--/*** NEW CSS STYLES FOR ONLEAB ***/
--
body {
background-color:white;
color:black;
h1 {
border-bottom:1px solid #DDDDDD;
-- padding:0 0 15px 0;
++ padding:0 0 5px 0;
margin:0 0 15px 0;
++ font-size:18pt;
}
h1 img {
-- vertical-align:top;
++ vertical-align:middle;
++ margin-bottom:4px;
++}
++h2 {
++ font-size:14pt;
++ color:#333333;
++}
++h3 {
++ font-size:13pt;
++ color:#201E62;
}
div.wrapper {
width:980px;
margin:0 auto;
position:relative;
}
++div.container {
++ width:980px;
++ margin:25px auto;
++}
++div.wide {
++ margin:25px auto;
++ padding:0 25px;
++}
span.label {
font-size:11pt;
}
/* HEADER */
div#header {
-- height:85px;
++ height:100px;
background-color:white;
}
/* HOME DASHBOARD */
div#home-dashboard {
color:black;
-- margin:25px auto;
++ margin:0 auto 25px auto;
}
div#home-dashboard table {
margin:25px;
/* NAV TABS */
.nav.nav-tabs {
++ margin-bottom:25px;
}
.nav.nav-tabs li.active a {
/* INSTITUTION */
div#institution {
color:black;
-- margin:25px auto;
}
.form-hint {
font-size:11pt;
color:gray;
}
--/* SLICE REQUEST */
--div#slice-request {
-- color:black;
-- margin:25px auto;
--}
++
.form-hint {
font-size:11pt;
font-style:italic;
/* TICKET REQUEST */
div#ticket-request {
color:black;
-- margin:25px auto;
}
.form-hint {
font-size:11pt;
/* SLICE VIEW */
div#slice-view {
-- width:100%;
-- margin:25px auto;
++ margin:0;
}
--div#slice-view div.list-group-item {
++div.list-group-item {
border:0;
background-color:white;
font-weight:bold;
padding-left:0;
}
--div#slice-view a.list-group-item {
++a.list-group-item {
border:0;
background-color:white;
padding:3px 0 3px 10px;
border-left:2pt white solid;
}
--div#slice-view a.list-group-item.active, div#slice-view a.list-group-item:hover {
++a.list-group-item.active, a.list-group-item:hover {
border-left:2pt blue solid;
}
--div#slice-view a.list-group-item p.list-group-item-text {
++a.list-group-item p.list-group-item-text {
font-size:9pt;
font-style:italic;
}
font-size:14px;
color:black;
padding:0;
-- margin-top:10px;
}
.slice-sections li.active a, .slice-pending li.active a {
color:#201E62;
}
.slice-pending button {
font-size:9pt;
-- margin:8px 0 0 0;
++ margin:-2px 0 0 0;
padding:3px 5px;
}
.slice-pending button.apply {
}
.slice-pending button.clear {
}
--
--/* */
--
--/* TESTBED LIST */
--div#testbed-list {
-- margin:25px auto;
--}
--
});
});
--
-- oTable.load("/table/resource/", {'columns' : ['hostname','country','type'], 'filters' : { 'country' : 'France' } }, function(data) {
++ //{'columns' : ['hostname','country','type'], 'filters' : { 'country' : 'France' } }
++ oTable.load("/table/resource/", {'columns' : ['hostname','country','type'] }, function(data) {
$(this).dataTable( {
"sScrollY": window.innerHeight - 275,
"sDom": "frtiS",
class SupportView (FreeAccessView, ThemeView):
template_name = 'supportview.html'
-- # expose this so we can mention the backend URL on the welcome page
-- def default_env (self):
-- return {
-- 'MANIFOLD_URL':ConfigEngine().manifold_url(),
-- }
++
def post (self,request):
-- env = self.default_env()
++ env = {}
env['theme'] = self.theme
return render_to_response(self.template, env, context_instance=RequestContext(request))
def get (self, request, state=None):
-- env = self.default_env()
++ env = {}
if request.user.is_authenticated():
env['person'] = self.request.user
env['username']=the_user(request)
-- env['topmenu_items'] = topmenu_items(None, request)
++
if state: env['state'] = state
elif not env['username']: env['state'] = None
# use one or two columns for the layout - not logged in users will see the login prompt
-- env['layout_1_or_2']="layout-unfold2.html" if not env['username'] else "layout-unfold1.html"
--
--
++
return render_to_response(self.template, env, context_instance=RequestContext(request))
--{% extends "layout-unfold1.html" %}
++{% extends "layout.html" %}
--{% block unfold_main %}
--<div class="wrapper" id="ticket-request">
++{% block content %}
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_slices_small.png" alt="About MySlice" /> About</h1>
</div>
--<h1>This portal is powered by MySlice</h1>
--<a href ="http://myslice.info">More info</a>
++<div class="row">
++ <h3>A ready-made and easily customisable user interface for your testbed.</h3>
++
++ <p>
++ MySlice is an ambitious project aiming to support researchers throughout the lifecycle of experiments that can run on a variety
++ of testbeds spanning different administrative domains and networking technologies. Its basic principle is to bring together
++ available resources with useful information (characteristics, performance, network measurements).
++ </p>
++ <p>
++ MySlice inititiave started in Janury 2011 by offering annotation services for the first ederated experimental resources. Today,
++ MySlice has taken a big step toward becoming a tand-alone web framework, which will present all available resources from testbeds
++ across the world, interconnected through the Slice-based Facility Architecture (SFA) and annotated by the TopHat measurement system.
++ </p>
++ <p>
++ Our framework is built with standard programming tools (php and javascript for the front-end and python for the back-end)
++ and has a modular structure based on the concept of plugins for implementing different core functionalities (query editing,
++ data display, and resource allocation).
++ </p>
++ <p>
++ The goal is to enable developers with expertise on different testbed technologies and different experimental
++ practices to work in parallel for optimizing the tools presented to the users allowing them for a wide range of choices
++ according to their own requirements. Opening in this way the development of web-based user tools for experimentation and
++ sharing effort and information can increase significantly the chances for the achievement of our challenging objective.
++ </p>
++ <p>
++ You can access the code at git.myslice.info. If you need write access to the git repository you need first to send
++ your public key to <a href="mailto:support@myslice.info">support@myslice.info</a>.
++ </p>
++ <p>
++ Go to the <a href ="http://myslice.info">MySlice web site</a> or the <a href ="http://onelab.eu">OneLab public web site</a>
++ </p>
++</div>
{% endblock %}
--{% extends "layout-unfold1.html" %}
--{% block unfold_main %}
++{% extends "layout.html" %}
++{% block content %}
{% if messages %}
</ul>
{% endif %}
--<div class="wrapper" id="institution">
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_user_small.png" alt="" /> User Account</h1>
++</div>
++
++<div class="row">
<ul class="nav nav-tabs">
-- <li class="active"><a class="home-tab" data-panel="user_profile" href="#">User Profile</a></li>
-- <li><a class="home-tab" data-panel="principal_acc" href="#">User Account</a></li>
-- <li><a class="home-tab" data-panel="ref_acc" href="#">Testbed Access</a></li>
++ <li class="active"><a class="account-tab" data-panel="user_profile" href="#">User Profile</a></li>
++ <li><a class="account-tab" data-panel="principal_acc" href="#">User Account</a></li>
++ <li><a class="account-tab" data-panel="ref_acc" href="#">Testbed Access</a></li>
</ul>
--<div class="home-panel" id="user_profile">
--<p></p>
--<form id="editForm" method="POST" action="account_process" enctype="multipart/form-data">
--<div id="middle" align="center">
-- <div class="well">
++
++ <div class="account-panel" id="user_profile">
++ <form id="editForm" method="post" action="account_process" enctype="multipart/form-data">
++ <div>
{% csrf_token %}
<table class="profile">
-- <tr class="odd">
++ <tr>
<td colspan="2">
-- <div id="info">Platform: Myslice</div>
++ <div>Platform: Myslice</div>
</td>
</tr>
-- <tr class="even">
++ <tr>
<td class="key">Email</td>
<td class="value">
<span id="emailval" class="value" >{{ person.email }}</span>
-- <button class="btn btn-default btn-xs" type="button" id="edit_email" onclick="editAlert()" title="To change your affiliation please contact the administrator">
++ <button class="btn btn-default btn-xs" type="button" id="edit_email" onclick="editAlert();" title="To change your affiliation please contact the administrator">
<span class="glyphicon glyphicon-question-sign"></span> Edit
</button>
</td>
<button type="submit" name="dl_pkey" class="btn btn-default btn-xs disabled" title="Download your privaye key" id="dl_pkey">
<span class="glyphicon glyphicon-download"></span> Download
</button>
-- <input class="btn btn-danger btn-xs disabled" id="delete" name="delete" type="submit" title="Delete your private key"
-- value="Delete" />
++ <input class="btn btn-danger btn-xs disabled" id="delete" name="delete" type="submit" title="Delete your private key" value="Delete" />
</td>
{%endif%}
</tr>
</tr>
{%endif%}
</table>
++ </div>
</div>
--</div>
--</div>
--<div class="home-panel" id="principal_acc" style="display:none;">
++ <div class="account-panel" id="principal_acc" style="display:none;">
--<h3>Principal Account <small>Account used for delegating credentials</small></h3>
--<div id="middle" align="center">
-- <div class="well">
-- <table class="table table-bordered table-hover mytable">
++ <h3>Principal Account <small>Account used for delegating credentials</small></h3>
++ <div class="raw">
++ <table class="table">
<tr class="odd">
<th>Platform</th>
<th>Account Type</th>
{%endfor%}
</table>
</div>
--</div>
--{%if 'Enabled' in user_status %}
--<h3>Credentials <small>Delegated to Principal Account</small></h3>
--<div id="middle" align="center">
-- <div class="well">
-- <table class="mytable table table-bordered table-hover">
-- <caption><b>Delegated User Credential</b></caption>
-- <tr class="odd">
-- <th>Expiration Date</th>
-- <th>Download</th>
-- </tr>
-- {% for row in my_users %}
-- <tr class="border_bottom">
-- <td class="odd"> {{ row.cred_exp }} </td>
-- <td class="odd">
-- <button class="btn btn-default btn-xs" name= "dl_user_cred" type="submit" title="Download User Credential">
-- <span class="glyphicon glyphicon-download"></span> Download
-- </button>
-- </td>
-- </tr>
-- {%endfor%}
-- </table>
-- <p></p>
-- <table class="mytable table table-bordered table-hover">
-- <caption><b>Delegated Slice Credentials</b></caption>
-- <tr class="odd">
-- <th>Slice Name</th>
-- <th>Expiration Date</th>
-- <th>Download</th>
-- </tr>
-- {% for row in my_slices %}
-- <tr class="border_bottom">
-- <td class="odd"> {{ row.slice_name }} </td>
-- <td class="odd"> {{ row.cred_exp }} </td>
-- <td class="odd">
-- <button class="btn btn-default btn-xs" name= "dl_{{row.slice_name}}" type="submit" title="Download Slice Credentials">
-- <span class="glyphicon glyphicon-download"></span> Download
-- </button>
-- </td>
-- </tr>
-- {%endfor%}
-- </table>
-- <p></p>
-- <table class="mytable table table-bordered table-hover">
-- <caption><b>Delegated Authority Credentials</b></caption>
-- <tr class="odd">
-- <th>Authority Name</th>
-- <th>Expiration Date</th>
-- <th>Download</th>
-- </tr>
-- {% for row in my_auths %}
-- <tr class="border_bottom">
-- <td class="odd"> {{ row.auth_name }} </td>
-- <td class="odd"> {{ row.cred_exp }} </td>
-- <td class="odd">
-- <button class="btn btn-default btn-xs" name= "dl_{{row.auth_name}}" type="submit" title="Download Authority Credentials">
-- <span class="glyphicon glyphicon-download"></span> Download
-- </button>
-- </td>
-- </tr>
-- {%endfor%}
-- </table>
-- <p></p>
-- {%if '' not in my_users%}
-- <p><button class="btn btn-danger btn-lg btn-block" name= "clear_cred" type="submit" title="Clear All Credentials">Clear Credentials</button></p>
-- {%else%}
-- <p><button class="btn btn-danger btn-lg btn-block disabled" name= "clear_cred" type="submit" title="Clear All Credentials">Clear Credentials</button></p>
-- {%endif%}
-- </div>
--</div>
--</div>
--
--
--<div class="home-panel" id="ref_acc" style="display:none;">
--<h3>Testbed Access <small>Reference Accounts in the following testbeds</small></h3>
--<div id="middle" align="center">
-- <div class="well">
-- <table class="mytable table table-bordered table-hover">
-- <tr class="odd">
-- <th>Platform</th>
-- <th>Account Type</th>
-- <th>Reference to</th>
-- <th>Remove Account</th>
-- </tr>
-- {% for row in ref_acc %}
-- <tr class="border_bottom">
-- <td class="odd"> {{ row.platform_name }} </td>
-- <td class="odd"> {{ row.account_type }} </td>
-- <td class="odd"> {{ row.account_reference }} </td>
-- <td class="odd">
-- <button class="btn btn-danger btn-xs" name="delete_{{row.platform_name}}" type="submit" title="Delete account from this platform">
-- <span class="glyphicon glyphicon-minus"></span>
-- </button>
-- </td>
-- </tr>
-- {%endfor%}
-- </table>
-- </div>
--</div>
--
++ {%if 'Enabled' in user_status %}
++ <div class="row">
++ <h3>Credentials <small>Delegated to Principal Account</small></h3>
++ <table class="table">
++ <caption><b>Delegated User Credential</b></caption>
++ <tr class="odd">
++ <th>Expiration Date</th>
++ <th>Download</th>
++ </tr>
++ {% for row in my_users %}
++ <tr class="border_bottom">
++ <td class="odd"> {{ row.cred_exp }} </td>
++ <td class="odd">
++ <button class="btn btn-default btn-xs" name= "dl_user_cred" type="submit" title="Download User Credential">
++ <span class="glyphicon glyphicon-download"></span> Download
++ </button>
++ </td>
++ </tr>
++ {%endfor%}
++ </table>
++ <p></p>
++ <table class="mytable table table-bordered table-hover">
++ <caption><b>Delegated Slice Credentials</b></caption>
++ <tr class="odd">
++ <th>Slice Name</th>
++ <th>Expiration Date</th>
++ <th>Download</th>
++ </tr>
++ {% for row in my_slices %}
++ <tr class="border_bottom">
++ <td class="odd"> {{ row.slice_name }} </td>
++ <td class="odd"> {{ row.cred_exp }} </td>
++ <td class="odd">
++ <button class="btn btn-default btn-xs" name= "dl_{{row.slice_name}}" type="submit" title="Download Slice Credentials">
++ <span class="glyphicon glyphicon-download"></span> Download
++ </button>
++ </td>
++ </tr>
++ {%endfor%}
++ </table>
++ <p></p>
++ <table class="mytable table table-bordered table-hover">
++ <caption><b>Delegated Authority Credentials</b></caption>
++ <tr class="odd">
++ <th>Authority Name</th>
++ <th>Expiration Date</th>
++ <th>Download</th>
++ </tr>
++ {% for row in my_auths %}
++ <tr class="border_bottom">
++ <td class="odd"> {{ row.auth_name }} </td>
++ <td class="odd"> {{ row.cred_exp }} </td>
++ <td class="odd">
++ <button class="btn btn-default btn-xs" name= "dl_{{row.auth_name}}" type="submit" title="Download Authority Credentials">
++ <span class="glyphicon glyphicon-download"></span> Download
++ </button>
++ </td>
++ </tr>
++ {%endfor%}
++ </table>
++ <p></p>
++ {%if '' not in my_users%}
++ <p><button class="btn btn-danger btn-lg btn-block" name= "clear_cred" type="submit" title="Clear All Credentials">Clear Credentials</button></p>
++ {%else%}
++ <p><button class="btn btn-danger btn-lg btn-block disabled" name= "clear_cred" type="submit" title="Clear All Credentials">Clear Credentials</button></p>
++ {%endif%}
++ </div>
++ </div>
++
--<h3>Add reference account to the following testbeds</h3>
--<div id="middle" align="center">
-- <div class="well">
-- <table class="mytable table table-bordered table-hover">
-- <tr class="odd">
-- <th>Platforms</th>
-- <th>Add Account</th>
-- </tr>
-- {% for platform in platform_list %}
-- <tr class="border_bottom">
-- <td class="odd"> {{ platform.platform_no_access }} </td>
-- <td class="odd">
-- <button class="btn btn-success btn-sm" name= "add_{{platform.platform_no_access}}" type="submit" title="Add account to this platform">
-- <span class="glyphicon glyphicon-plus"></span>
-- </button>
-- </td>
-- </tr>
-- {%endfor%}
-- </table>
-- </div>
--</div>
--</div>
++ <div class="account-panel" id="ref_acc" style="display:none;">
++ <h3>Testbed Access <small>Reference Accounts in the following testbeds</small></h3>
++ <div class="row">
++ <table class="mytable table table-bordered table-hover">
++ <tr class="odd">
++ <th>Platform</th>
++ <th>Account Type</th>
++ <th>Reference to</th>
++ <th>Remove Account</th>
++ </tr>
++ {% for row in ref_acc %}
++ <tr class="border_bottom">
++ <td class="odd"> {{ row.platform_name }} </td>
++ <td class="odd"> {{ row.account_type }} </td>
++ <td class="odd"> {{ row.account_reference }} </td>
++ <td class="odd">
++ <button class="btn btn-danger btn-xs" name="delete_{{row.platform_name}}" type="submit" title="Delete account from this platform">
++ <span class="glyphicon glyphicon-minus"></span>
++ </button>
++ </td>
++ </tr>
++ {%endfor%}
++ </table>
++ </div>
++
++
++
++ <h3>Add reference account to the following testbeds</h3>
++ <div class="row">
++ <table class="mytable table table-bordered table-hover">
++ <tr class="odd">
++ <th>Platforms</th>
++ <th>Add Account</th>
++ </tr>
++ {% for platform in platform_list %}
++ <tr class="border_bottom">
++ <td class="odd"> {{ platform.platform_no_access }} </td>
++ <td class="odd">
++ <button class="btn btn-success btn-sm" name= "add_{{platform.platform_no_access}}" type="submit" title="Add account to this platform">
++ <span class="glyphicon glyphicon-plus"></span>
++ </button>
++ </td>
++ </tr>
++ {%endfor%}
++ </table>
++ </div>
++ </div>
{%endif%}
--</div>
</form>
</div>
<script>
$(document).ready(function() {
-- $('a.home-tab').click(function() {
++ $('a.account-tab').click(function() {
$('ul.nav-tabs li').removeClass('active');
$(this).parent().addClass('active');
-- $('div.home-panel').hide();
++ $('div.account-panel').hide();
$('div#'+$(this).data('panel')).show();
});
$('button#createslice').click(function() {
window.location="/portal/slice_request/";
-- })
-- ;$('button#slicerequestbtn').click(function() {
-- /*
-- window.location="/portal/slice_request/";
-- */
});
});
</script>
--{% extends "layout-unfold1.html" %}
++{% extends "layout.html" %}
{% block head %}
{{ wizard.form.media }}
{% endblock %}
--{% block unfold_main %}
--
--
--<div class="wrapper" id="ticket-request">
--<h1><img src="{{ STATIC_URL }}img/icon_support_small.png" alt="Open a Ticket" /> OneLab Support</h1>
--
--<p>
++{% block content %}
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_support_small.png" alt="Open a Ticket" /> OneLab Support</h1>
++</div>
++<div class="row">
++ <p>
If you have any diffculties using the portal, please contact us by filling this form below.<br />
-- You can also <a href="mailto:support@myslice.info">e-mail</a> us directly or consult to our <a href="http://trac.myslice.info/" >documentation</a>
--</p>
++ You can also <a href="mailto:support@myslice.info">e-mail</a> us directly or consult to our <a target="_blank" href="http://trac.myslice.info/" >documentation</a>
++ </p>
++</div>
--<div>
++<div class="row">
<form class="cmxform form-horizontal" id="commentForm" action="#" method="post" role="form">{% csrf_token %}
<fieldset>
{% for field in form %}
--{% extends "layout-unfold1.html" %}
--
--{% block unfold_main %}
--
-- <h1>Query Received !</h1>
--
--We will study your problem and get back to you as soon as possible.
++{% extends "layout.html" %}
++
++{% block content %}
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_support_small.png" alt="Open a Ticket" /> OneLab Support</h1>
++</div>
++<div class="row">
++ <h2>Query Received !</h2>
++ <p>
++ We will study your problem and get back to you as soon as possible.
++ </p>
++</div>
{% endblock %}
--{% extends "layout-unfold1.html" %}
--
--{% block head %}
--{{ wizard.form.media }}
--{% endblock %}
--
--{% block unfold_main %}
--
--<h1>OneLab Portal Documentation<h1>
++{% extends "layout.html" %}
++{% block content %}
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_support_small.png" alt="Open a Ticket" /> OneLab Portal Documentation</h1>
++</div>
++<div class="row">
<h2>Portal Components</h2>
<h3>Myslice (Web Frontend)</h3>
<p>
<h2>FAQ<h2>
<h3>Users</h3>
<h3>Managers</h3>
--
++</div>
{% endblock %}
--{% extends "layout-unfold1.html" %}
++{% extends "layout.html" %}
--{% block head %}
--{{ wizard.form.media }}
--{% endblock %}
--
--{% block unfold_main %}
++{% block content %}
--
--<h1> Experiment Tools </h1>
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_slices_small.png" alt="Experiment Tools" /> Experiment Tools</h1>
++</div>
++<div class="row">
<h2>Secure Shell (SSH)</h2>
<p>
<p>More Info: <a href="http://mytestbed.net/projects/omf" target="_blank">http://mytestbed.net/projects/omf</a></p>
--
++</div>
{% endblock %}
--{% extends "layout-unfold1.html" %}
++{% extends "layout.html" %}
--{% block unfold_main %}
++{% block content %}
<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/css/registration.css" />
<div id="home-dashboard">
<ul class="nav nav-tabs">
</table>
</div>
</div>
--{% endblock unfold_main %}
++{% endblock %}
-{% extends "layout-unfold1.html" %}
+{% extends "layout.html" %}
-{% block unfold_main %}
-<div class="wrapper" id="institution">
+{% block content %}
+<div class="row">
+ <h1><img src="{{ STATIC_URL }}img/icon_authority_color_small.png" alt="" /> Affiliation to an Institution</h1>
+</div>
+<div class="row" id="institution">
<ul class="nav nav-tabs">
- <li class="active"><a class="home-tab" data-panel="institution" href="#">INSTITUTION</a></li>
- <li><a class="home-tab" data-panel="users" href="#">USERS</a></li>
- <li><a class="home-tab" data-panel="slices" href="#">SLICES</a></li>
+ <li class="active" id="authority-tab"><a class="home-tab" data-panel="institution" href="#">INSTITUTION</a></li>
+ <li id="users-tab"><a class="home-tab" data-panel="users" href="#">USERS</a></li>
+ <li id="slices-tab"><a class="home-tab" data-panel="slices" href="#">SLICES</a></li>
</ul>
<div class="home-panel" id="institution">
- <h1><img src="{{ STATIC_URL }}img/icon_authority_color_small.png" alt="" /> Affiliation to an Institution</h1>
- <br>
<div id="authority-tab-loading"><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading Authority" /></div>
<div id="authority-tab-loaded" style="display:none;">
<div id="onelab_membership" style="float:left; width:30%;">
--{% extends "layout-unfold1.html" %}
++{% extends "layout.html" %}
--{% block unfold_main %}
++{% block content %}
--<div class="onelab-title well-lg">
-- <h2>Join the OneLab Federation</h2>
--</div>
--<div class="well">
--OneLab welcomes companies, universities, and research laboratories to join the OneLab Federation of Testbeds. <br>
--We are supported by the European Commision through its 7th Framework Programs and FIRE initiative (Future Internet Research and Experimentation), as well as by other national and international funding initiatives.
--<br>
--<br>
--If you wish to become a new member of OneLab Federation, you should first consult the Membership Agreement.
--<br>
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_testbed_small.png" alt="Join Federation" /> Join the OneLab Federation</h1>
++</div>
++<div class="row">
++
++ <p>
++ OneLab welcomes companies, universities, and research laboratories to join the OneLab Federation of Testbeds. <br>
++ We are supported by the European Commision through its 7th Framework Programs and FIRE initiative (Future Internet Research and Experimentation), as well as by other national and international funding initiatives.
++ </p>
++ <p>
++ If you wish to become a new member of OneLab Federation, you should first consult the Membership Agreement.
++ </p>
</div>
{% if errors %}
--<div class="well">
++<div class="row">
<ul class="error">
{% for error in errors %}
<li>{{ error }}</li>
</div>
{% endif %}
--<div class="well">
++<div class="row">
<form action="" id="joinForm" method="post">
{% csrf_token %}
<fieldset>
</form>
</div>
--<div class="well">
++<div class="row">
++ <p>
A membership agreement document will be sent to your email address as a PDF file.
--<br>
++</p><p>
Please print and sign a copy of the agreement and send it to:
--<br>
--<br>
++</p><p>
Ciro Scognamiglio<br>
UPMC - LIP6<br>
Campus Jussieu<br>
Boite courrier 169<br>
4 place Jussieu<br>
F-75252 PARIS cedex 05 - FRANCE<br>
--<br>
++</p><p>
Once your membership has been processed we will contact you to welcome you as a member.
--<br>
++</p><p>
If you have any questions about membership, contact the <a href="/portal/contact" >OneLab Support team</a>.
++</p>
</div>
<script>
/*
--{% extends "layout-unfold1.html" %}
--{% block unfold_main %}
++{% extends "layout.html" %}
++{% block content %}
++
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_users_small.png" alt="Manage Users" /> Manage Users</h1>
++</div>
{% if messages %}
</ul>
{% endif %}
--<div class="wrapper" id="institution">
++<div class="row">
<ul class="nav nav-tabs">
<li class="active"><a class="home-tab" data-panel="user_profile" href="#">User Profile</a></li>
<li><a class="home-tab" data-panel="principal_acc" href="#">User Account</a></li>
<li><a class="home-tab" data-panel="ref_acc" href="#">Testbed Access</a></li>
</ul>
--<div class="home-panel" id="user_profile">
--<p></p>
--<form id="editForm" method="POST" action="{{user_email}}/user_process" enctype="multipart/form-data">
--<div id="middle" align="center">
-- <div class="well">
-- {% csrf_token %}
-- <table class="profile">
-- <tr class="odd">
-- <td colspan="2">
-- <div id="info">Platform: Myslice</div>
-- </td>
-- </tr>
-- <tr class="even">
-- <td class="key">Email</td>
-- <td class="value"> <span id="emailval" class="value" >{{ user_email }}</span> </td>
-- </tr>
-- <tr class="odd">
-- <td class="key">Full Name</td>
-- <td class="value">
-- <span id="nameval" class="value" >{{ fullname }} </span>
-- <span class="hide_this" id="span_name">
-- <button type="button" class="btn btn-default btn-xs" title="Cancel" id="cancel_name_change"> Cancel </button>
-- <div style='display:none;'><input type='hidden' name='nameform' /></div>
-- <input id="fname" type="text" name="fname" class="required" maxlength="200" value="{{firstname}}" />
-- <input id="lname" type="text" name="lname" class="required" maxlength="200" value="{{lastname}}" />
-- <input type="submit" class="btn btn-default btn-xs" name="submit_name" value="Save"/>
-- </span>
-- <button class="btn btn-default btn-xs" type="button"title="Full Name" id="edit_name">
-- <span class="glyphicon glyphicon-edit"></span> Edit
-- </button>
-- </td>
-- </tr>
-- <tr class="even">
-- <td class="key">Authority</td>
-- <td class="value">
-- <span id="authval" class="value" >{{ authority }} </span>
-- <span class="hide_this" id="span_auth">
-- <button type="button" class="btn btn-default btn-xs" title="Cancel" id="cancel_auth_change"> Cancel </button>
-- <div style='display:none;'><input type='hidden' name='authform' /></div>
-- <input id="authority" type="text" name="authority" class="required" maxlength="200" value="{{authority}}" />
-- <input type="submit" class="btn btn-default btn-xs" name="submit_auth" value="Save"/>
-- </span>
-- <button class="btn btn-default btn-xs" type="button"title="auth" id="edit_auth">
-- <span class="glyphicon glyphicon-edit"></span> Edit
-- </button>
-- </td>
-- </tr>
-- <tr class="odd">
-- <td class="key">Generate Keys</td>
-- <td>
-- <input type="submit" name="generate" class="btn btn-danger btn-xs" value="Generate a new Key Pair" id="generate_keypair"
-- onclick="return confirm('Are you sure? If you do so, your current credentials will be overwritten.');"
-- title="It will generate a new key Pair and your current credentials will be overwritten."/>
-- </td>
-- </tr>
-- <tr class="even">
-- <td class="key">Public Key</td>
-- <td class="value">
-- <span id="keyval" class="value">******** </span>
-- <span class="hide_this" id="span_upload">
-- <button type="button" class="btn btn-default btn-xs" title="Cancel" id="cancel_upload"> Cancel </button>
-- <div style='display:none;'>
-- <input type='hidden' name='upload' /></div>
-- <input type="file" name="pubkey" class="required" id="pubkey"/>
-- <input class="btn btn-default btn-xs" name="upload_key" id="upload_key" type="submit" title="Upload your public key" value="Upload"
-- onclick="return confirm('Are you sure? It will overwrite your current credentials and you have delegate it manually.');"/>
-- </span>
-- <div style='display:none;'> <input type='hidden' name='dload' /> </div>
-- <button type="submit" name="dl_pubkey" class="btn btn-default btn-xs" title="Download your public key" id="dl_file">
-- <span class="glyphicon glyphicon-download"></span> Download
-- </button>
-- <button class="btn btn-default btn-xs" id="upload_file" type="button" title="Upload a public key">
-- <span class="glyphicon glyphicon-upload"></span> Upload
-- </button>
-- </td>
-- </tr>
-- </table>
++ <div class="home-panel" id="user_profile">
++ <form id="editForm" method="POST" action="{{user_email}}/user_process" enctype="multipart/form-data">
++ <div id="middle" align="center">
++ <div class="well">
++ {% csrf_token %}
++ <table class="profile">
++ <tr class="odd">
++ <td colspan="2">
++ <div id="info">Platform: Myslice</div>
++ </td>
++ </tr>
++ <tr class="even">
++ <td class="key">Email</td>
++ <td class="value"> <span id="emailval" class="value" >{{ user_email }}</span> </td>
++ </tr>
++ <tr class="odd">
++ <td class="key">Full Name</td>
++ <td class="value">
++ <span id="nameval" class="value" >{{ fullname }} </span>
++ <span class="hide_this" id="span_name">
++ <button type="button" class="btn btn-default btn-xs" title="Cancel" id="cancel_name_change"> Cancel </button>
++ <div style='display:none;'><input type='hidden' name='nameform' /></div>
++ <input id="fname" type="text" name="fname" class="required" maxlength="200" value="{{firstname}}" />
++ <input id="lname" type="text" name="lname" class="required" maxlength="200" value="{{lastname}}" />
++ <input type="submit" class="btn btn-default btn-xs" name="submit_name" value="Save"/>
++ </span>
++ <button class="btn btn-default btn-xs" type="button"title="Full Name" id="edit_name">
++ <span class="glyphicon glyphicon-edit"></span> Edit
++ </button>
++ </td>
++ </tr>
++ <tr class="even">
++ <td class="key">Authority</td>
++ <td class="value">
++ <span id="authval" class="value" >{{ authority }} </span>
++ <span class="hide_this" id="span_auth">
++ <button type="button" class="btn btn-default btn-xs" title="Cancel" id="cancel_auth_change"> Cancel </button>
++ <div style='display:none;'><input type='hidden' name='authform' /></div>
++ <input id="authority" type="text" name="authority" class="required" maxlength="200" value="{{authority}}" />
++ <input type="submit" class="btn btn-default btn-xs" name="submit_auth" value="Save"/>
++ </span>
++ <button class="btn btn-default btn-xs" type="button"title="auth" id="edit_auth">
++ <span class="glyphicon glyphicon-edit"></span> Edit
++ </button>
++ </td>
++ </tr>
++ <tr class="odd">
++ <td class="key">Generate Keys</td>
++ <td>
++ <input type="submit" name="generate" class="btn btn-danger btn-xs" value="Generate a new Key Pair" id="generate_keypair"
++ onclick="return confirm('Are you sure? If you do so, your current credentials will be overwritten.');"
++ title="It will generate a new key Pair and your current credentials will be overwritten."/>
++ </td>
++ </tr>
++ <tr class="even">
++ <td class="key">Public Key</td>
++ <td class="value">
++ <span id="keyval" class="value">******** </span>
++ <span class="hide_this" id="span_upload">
++ <button type="button" class="btn btn-default btn-xs" title="Cancel" id="cancel_upload"> Cancel </button>
++ <div style='display:none;'>
++ <input type='hidden' name='upload' /></div>
++ <input type="file" name="pubkey" class="required" id="pubkey"/>
++ <input class="btn btn-default btn-xs" name="upload_key" id="upload_key" type="submit" title="Upload your public key" value="Upload"
++ onclick="return confirm('Are you sure? It will overwrite your current credentials and you have delegate it manually.');"/>
++ </span>
++ <div style='display:none;'> <input type='hidden' name='dload' /> </div>
++ <button type="submit" name="dl_pubkey" class="btn btn-default btn-xs" title="Download your public key" id="dl_file">
++ <span class="glyphicon glyphicon-download"></span> Download
++ </button>
++ <button class="btn btn-default btn-xs" id="upload_file" type="button" title="Upload a public key">
++ <span class="glyphicon glyphicon-upload"></span> Upload
++ </button>
++ </td>
++ </tr>
++ </table>
++ </div>
++ </div>
</div>
--</div>
--</div>
--
--
--<div class="home-panel" id="principal_acc" style="display:none;">
--<h3>Principal Account <small>Account used for delegating credentials</small></h3>
--<div id="middle" align="center">
-- <div class="well">
-- <table class="table table-bordered table-hover mytable">
-- <tr class="odd">
-- <th>Platform</th>
-- <th>Account Type</th>
-- <th>Account Delegation</th>
-- <th>User hrn</th>
-- <th>User Status</th>
-- <!--<th>Pub Key</th> -->
-- </tr>
-- {% for row in principal_acc %}
-- <tr class="border_bottom">
-- <td class="odd"> {{ row.platform_name }} </td>
-- <td class="odd"> {{ row.account_type }} </td>
-- <td class="odd"> {{ row.delegation_type }} </td>
-- <td class="odd"> {{ row.usr_hrn }} </td>
-- <td class="odd"> {{ row.user_status }} </td>
-- <!-- <td class="even"> {{ row.usr_pubkey }} </td> -->
-- </tr>
-- {%endfor%}
-- </table>
++
++ <div class="home-panel" id="principal_acc" style="display:none;">
++ <div class="row">
++
++ <h3>Principal Account <small>Account used for delegating credentials</small></h3>
++
++ <table class="table table-bordered table-hover mytable">
++ <tr class="odd">
++ <th>Platform</th>
++ <th>Account Type</th>
++ <th>Account Delegation</th>
++ <th>User hrn</th>
++ <th>User Status</th>
++ <!--<th>Pub Key</th> -->
++ </tr>
++ {% for row in principal_acc %}
++ <tr class="border_bottom">
++ <td class="odd"> {{ row.platform_name }} </td>
++ <td class="odd"> {{ row.account_type }} </td>
++ <td class="odd"> {{ row.delegation_type }} </td>
++ <td class="odd"> {{ row.usr_hrn }} </td>
++ <td class="odd"> {{ row.user_status }} </td>
++ <!-- <td class="even"> {{ row.usr_pubkey }} </td> -->
++ </tr>
++ {%endfor%}
++ </table>
</div>
--</div>
{%if 'Enabled' in user_status %}
--<h3>Credentials <small>Delegated to Principal Account</small></h3>
--<div id="middle" align="center">
-- <div class="well">
-- <table class="mytable table table-bordered table-hover">
-- <caption><b>Delegated User Credential</b></caption>
-- <tr class="odd">
-- <th>Expiration Date</th>
-- <th>Download</th>
-- </tr>
-- {% for row in my_users %}
-- <tr class="border_bottom">
-- <td class="odd"> {{ row.cred_exp }} </td>
-- <td class="odd">
-- <button class="btn btn-default btn-xs" name= "dl_user_cred" type="submit" title="Download User Credential">
-- <span class="glyphicon glyphicon-download"></span> Download
-- </button>
-- </td>
-- </tr>
-- {%endfor%}
-- </table>
-- <p></p>
-- <table class="mytable table table-bordered table-hover">
-- <caption><b>Delegated Slice Credentials</b></caption>
-- <tr class="odd">
-- <th>Slice Name</th>
-- <th>Expiration Date</th>
-- <th>Download</th>
-- </tr>
-- {% for row in my_slices %}
-- <tr class="border_bottom">
-- <td class="odd"> {{ row.slice_name }} </td>
-- <td class="odd"> {{ row.cred_exp }} </td>
-- <td class="odd">
-- <button class="btn btn-default btn-xs" name= "dl_{{row.slice_name}}" type="submit" title="Download Slice Credentials">
-- <span class="glyphicon glyphicon-download"></span> Download
-- </button>
-- </td>
-- </tr>
-- {%endfor%}
-- </table>
-- <p></p>
-- <table class="mytable table table-bordered table-hover">
-- <caption><b>Delegated Authority Credentials</b></caption>
-- <tr class="odd">
-- <th>Authority Name</th>
-- <th>Expiration Date</th>
-- <th>Download</th>
-- </tr>
-- {% for row in my_auths %}
-- <tr class="border_bottom">
-- <td class="odd"> {{ row.auth_name }} </td>
-- <td class="odd"> {{ row.cred_exp }} </td>
-- <td class="odd">
-- <button class="btn btn-default btn-xs" name= "dl_{{row.auth_name}}" type="submit" title="Download Authority Credentials">
-- <span class="glyphicon glyphicon-download"></span> Download
-- </button>
-- </td>
-- </tr>
-- {%endfor%}
-- </table>
-- <p></p>
-- {%if '' not in my_users%}
-- <p><button class="btn btn-danger btn-lg btn-block" name= "clear_cred" type="submit" title="Clear All Credentials">Clear Credentials</button></p>
-- {%else%}
-- <p><button class="btn btn-danger btn-lg btn-block disabled" name= "clear_cred" type="submit" title="Clear All Credentials">Clear Credentials</button></p>
-- {%endif%}
-- </div>
--</div>
++ <div class="row">
++ <h3>Credentials <small>Delegated to Principal Account</small></h3>
++ <table class="mytable table table-bordered table-hover">
++ <caption><b>Delegated User Credential</b></caption>
++ <tr class="odd">
++ <th>Expiration Date</th>
++ <th>Download</th>
++ </tr>
++ {% for row in my_users %}
++ <tr class="border_bottom">
++ <td class="odd"> {{ row.cred_exp }} </td>
++ <td class="odd">
++ <button class="btn btn-default btn-xs" name= "dl_user_cred" type="submit" title="Download User Credential">
++ <span class="glyphicon glyphicon-download"></span> Download
++ </button>
++ </td>
++ </tr>
++ {%endfor%}
++ </table>
++ <p></p>
++ <table class="mytable table table-bordered table-hover">
++ <caption><b>Delegated Slice Credentials</b></caption>
++ <tr class="odd">
++ <th>Slice Name</th>
++ <th>Expiration Date</th>
++ <th>Download</th>
++ </tr>
++ {% for row in my_slices %}
++ <tr class="border_bottom">
++ <td class="odd"> {{ row.slice_name }} </td>
++ <td class="odd"> {{ row.cred_exp }} </td>
++ <td class="odd">
++ <button class="btn btn-default btn-xs" name= "dl_{{row.slice_name}}" type="submit" title="Download Slice Credentials">
++ <span class="glyphicon glyphicon-download"></span> Download
++ </button>
++ </td>
++ </tr>
++ {%endfor%}
++ </table>
++ <p></p>
++ <table class="mytable table table-bordered table-hover">
++ <caption><b>Delegated Authority Credentials</b></caption>
++ <tr class="odd">
++ <th>Authority Name</th>
++ <th>Expiration Date</th>
++ <th>Download</th>
++ </tr>
++ {% for row in my_auths %}
++ <tr class="border_bottom">
++ <td class="odd"> {{ row.auth_name }} </td>
++ <td class="odd"> {{ row.cred_exp }} </td>
++ <td class="odd">
++ <button class="btn btn-default btn-xs" name= "dl_{{row.auth_name}}" type="submit" title="Download Authority Credentials">
++ <span class="glyphicon glyphicon-download"></span> Download
++ </button>
++ </td>
++ </tr>
++ {%endfor%}
++ </table>
++ <p></p>
++ {%if '' not in my_users%}
++ <p><button class="btn btn-danger btn-lg btn-block" name= "clear_cred" type="submit" title="Clear All Credentials">Clear Credentials</button></p>
++ {%else%}
++ <p><button class="btn btn-danger btn-lg btn-block disabled" name= "clear_cred" type="submit" title="Clear All Credentials">Clear Credentials</button></p>
++ {%endif%}
++ </div>
</div>
--<div class="home-panel" id="ref_acc" style="display:none;">
--<h3>Testbed Access <small>Reference Accounts in the following testbeds</small></h3>
--<div id="middle" align="center">
-- <div class="well">
++ <div class="home-panel" id="ref_acc" style="display:none;">
++ <h3>Testbed Access <small>Reference Accounts in the following testbeds</small></h3>
<table class="mytable table table-bordered table-hover">
<tr class="odd">
<th>Platform</th>
</tr>
{%endfor%}
</table>
-- </div>
--</div>
--<h3>Add reference account to the following testbeds</h3>
--<div id="middle" align="center">
-- <div class="well">
++ <h3>Add reference account to the following testbeds</h3>
++
<table class="mytable table table-bordered table-hover">
<tr class="odd">
<th>Platforms</th>
</tr>
{%endfor%}
</table>
-- </div>
--</div>
--</div>
++
++ </div>
{%endif%}
</div>
</form>
</div>
{% endif %}
</div>
++<script>
++ $(document).ready(function() {
++ var slices = localStorage.getItem('slices');
++ if (slices.length == 0) {
++ $.post("/rest/user/",{'filters':{'user_hrn':'$user_hrn'}}, function( data ) {
++ var items = [];
++ localStorage.setItem('slices', data[0].slice);
++ });
++ }
++ $.each(slices, function( key, val ) {
++ items.push( "<li><a href=\"/slice/"+val.slice_hrn+"\">" + val.slice_hrn + "</a></li>" );
++ });
++ $("div#home-slice-list").html($( "<ul/>", { html: items.join( "" ) }));
++ });
++</script>
--{% extends "layout-unfold1.html" %}
++{% extends "layout_wide.html" %}
--{% block unfold_main %}
--<div id="slice-view">
++{% block content %}
<div class="col-md-2">
-- <div id="select-platform" class="list-group">
-- </div>
++ <div id="select-platform" class="list-group">
++ </div>
<ul class="list-group">
<li class="list-group-item">Filter: CPU</li>
<li class="list-group-item">...</li>
<li class="list-group-item">...</li>
</ul>
--
-- </div>
++
++ </div>
<div class="col-md-10">
<div class="row">
{% include theme|add:"_widget-slice-sections.html" %}
</div>
<table cellpadding="0" cellspacing="0" border="0" class="table" id="objectList"></table>
</div>
--</div>
--{% endblock unfold_main %}
++{% endblock %}
<div class="col-md-10">
<br>
<br>
- <table>
- <tr>
- <td><b>Description:</b></td>
- <td>this slice is dedicated to debug the myslice software...</td>
- </tr>
- <tr>
- <td><b>url:</b></td>
- <td><a href="http://myslice.info" target="_blank">http://myslice.info</a></td>
- </tr>
- <tr>
- <td><b>users:</b></td>
- <td>3</td>
- </tr>
- <tr>
- <td><b>resources:</b></td>
- <td>8</td>
- </tr>
- <tr>
- <td><b>created:</b></td>
- <td>2012-06-21 10:00</td>
- </tr>
- <tr>
- <td><b>last update:</b></td>
- <td>2014-02-25 14:00</td>
- </tr>
- <tr>
- <td><b>expires:</b></td>
- <td>2014-04-01 12:00</td>
- </tr>
- </table>
+ <div id="slice-tab-loading"><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading Slices" /></div>
+ <div id="slice-tab-loaded" style="display:none;">
+ <table id="slice-tab">
+ </table>
+ </div>
</div>
--
-</div>
++
+ <script>
+ $(document).ready(function() {
+ $.post("/rest/slice/",{'filters':{'slice_hrn':'{{slice}}'}}, function( data ) {
+ var table_slices = [];
+ /* "slice_hrn", "slice_description", "slice_type", "parent_authority", "created", "nodes", "slice_url", "slice_last_updated", "user", "slice_urn", "slice_expires" */
+ $.each( data, function( key, val ) {
+ if(val.nodes=="undefined" || val.nodes==null){
+ nodes_length=0;
+ }else{
+ nodes_length=val.nodes.length;
+ }
+
+ if(val.user=="undefined" || val.user==null){
+ user_length=0;
+ }else{
+ user_length=val.user.length;
+ }
+
+ if(val.slice_url=="undefined" || val.slice_url==null){
+ slice_url="";
+ }else{
+ slice_url="<a href='"+val.slice_url+"' target='_blank'>"+val.slice_url+"</a>";
+ }
+
+ slice_row = "<tr><td><b>Description:</b></td><td>"+val.slice_description+"</td></tr>";
+ slice_row += "<tr><td><b>url:</b></td><td><a href='"+val.slice_url+" target='_blank'>"+val.slice_url+"</a></td></tr>";
+ slice_row += "<tr><td><b>users:</b></td><td>"+user_length+"</td></tr>";
+ slice_row += "<tr><td><b>resources:</b></td><td>"+nodes_length+"</td></tr>";
+ slice_row += "<tr><td><b>created:</b></td><td>"+val.created+"</td></tr>";
+ slice_row += "<tr><td><b>last update:</b></td><td>"+val.last_updated+"</td></tr>";
+ slice_row += "<tr><td><b>expires:</b></td><td>"+val.slice_expires+"</td></tr>";
+ table_slices.push(slice_row);
+ });
+ $("table#slice-tab").html(table_slices.join( "" ));
+ $("div#slice-tab-loaded").css("display","block");
+ $("div#slice-tab-loading").css("display","none");
+ });
+ });
+ </script>
-{% endblock unfold_main %}
+{% endblock %}
--{% extends "layout-unfold1.html" %}
++{% extends "layout_wide.html" %}
--{% block unfold_main %}
--<div id="testbed-list">
++{% block content %}
<div class="col-md-2"></div>
<div class="col-md-10">
<div class="row">
</div>
<table cellpadding="0" cellspacing="0" border="0" class="table" id="testbedList"></table>
</div>
--</div>
--{% endblock unfold_main %}
++{% endblock %}
--{% extends "layout-unfold1.html" %}
++{% extends "layout.html" %}
{% load i18n %}
--{% block unfold_main %}
--
--
{% block content %}
--<h2>{% trans 'OneLab secured Password reset wizard' %}</h2>
--<h3>{% trans 'Password reset successful' %}</h3>
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_user_small.png" alt="Password reset" /> Password reset</h1>
++</div>
++<div class="row">
++ <h3>Onelab secured Password reset wizard</h3>
++ <p>Password reset successful</p>
--<p>{% trans "Your password has been set. You may go ahead and log in now." %}</p>
++ <p>Your password has been set. You may go ahead and log in now.</p>
--<p><a href="{{ login_url }}">{% trans 'Log in' %}</a></p>
--
--{% endblock %}
++ <p><a href="/">Log in</a></p>
++</div>
{% endblock %}
--{% extends "layout-unfold1.html" %}
--{% load i18n %}
--
--{% block unfold_main %}
--
--
++{% extends "layout.html" %}
{% block content %}
{% if validlink %}
--<h2>{% trans 'OneLab secured Password reset wizard' %}</h2>
--<h3>{% trans 'Enter new password' %}</h3>
--
--<p>{% trans "Please enter your new password twice so we can verify you typed it in correctly." %}</p>
--
--<form action="" method="post">{% csrf_token %}
--{{ form.new_password1.errors }}
--<p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p>
--{{ form.new_password2.errors }}
--<p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p>
--<p><input type="submit" value="{% trans 'Change my password' %}" /></p>
--</form>
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_user_small.png" alt="Password reset" /> Password reset</h1>
++</div>
++<div class="row">
++ <h3>Onelab secured Password reset wizard</h3>
++
++ <p>Please enter your new password twice so we can verify you typed it in correctly.</p>
++
++ <form action="" method="post">{% csrf_token %}
++ {{ form.new_password1.errors }}
++ <p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p>
++ {{ form.new_password2.errors }}
++ <p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p>
++ <p><input type="submit" value="{% trans 'Change my password' %}" /></p>
++ </form>
{% else %}
++
++ <h3>Onelab secured Password reset wizard</h3>
--<h2>{% trans 'OneLab secured Password reset wizard' %}</h2>
--<h3>{% trans 'Password reset unsuccessful!' %}</h3>
--
--<p> The password reset link was invalid, possibly because it has already been used. Please request a new <a href="/portal/pass_reset/">password reset.</a></p>
++ <p> The password reset link was invalid, possibly because it has already been used. Please request a new <a href="/portal/pass_reset/">password reset.</a></p>
--<p>If you still encounter problem please <a href="/portal/contact/">Contact Support</a> for password recovery.</p>
++ <p>If you still encounter problem please <a href="/portal/contact/">Contact Support</a> for password recovery.</p>
++</div>
{% endif %}
{% endblock %}
--{% endblock %}
--{% extends "layout-unfold1.html" %}
--{% load i18n %}
--
--{% block unfold_main %}
--
++{% extends "layout.html" %}
{% block content %}
--
--<h2>{% trans 'Onelab secured Password reset wizard' %}</h2>
--
--<p>{% trans "We've emailed you instructions for setting your password to the email address you submitted. You should be receiving it shortly." %}</p>
--
--{% endblock %}
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_user_small.png" alt="Password reset" /> Password reset</h1>
++</div>
++<div class="row">
++ <h3>Onelab secured Password reset wizard</h3>
++
++ <p>We've emailed you instructions for setting your password to the email address you submitted. You should be receiving it shortly.</p>
++</div>
{% endblock %}
--{% extends "layout-unfold1.html" %}
--{% load i18n %}
--
--{% block unfold_main %}
--
--
--
++{% extends "layout.html" %}
{% block content %}
--
--<h2>{% trans "Welcome to Onelab secured Password reset wizard" %}</h2>
--
--<p>{% trans "Forgotten your password? Enter your email address below, and we'll email instructions for setting a new one." %}</p>
--
--<form action="" method="post">{% csrf_token %}
--{{ form.email.errors }}
--<p><label for="id_email">{% trans 'Email address:' %}</label> {{ form.email }} <input type="submit" value="{% trans 'Reset my password' %}" /></p>
--</form>
--
--{% endblock %}
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_user_small.png" alt="Password reset" /> Password reset</h1>
++</div>
++<div class="row">
++ <h3>Welcome to Onelab secured Password reset wizard</h3>
++
++ <p>Forgotten your password? Enter your email address below, and we'll email instructions for setting a new one.</p>
++
++ <form action="/portal/pass_reset/" method="post">{% csrf_token %}
++ {{ form.email.errors }}
++ <p><label for="id_email">Email address:</label> {{ form.email }} <input type="submit" value="Reset my password" /></p>
++ </form>
++</div>
{% endblock %}
--{% extends "layout-unfold1.html" %}
++{% extends "layout.html" %}
{% block head %}
<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/css/dashboard.css" />
{% endblock %}
--{% block unfold_main %}
++{% block content %}
<h1>Platform</h1>
{{networks}}
<br>
--{% extends "layout-unfold1.html" %}
--{% load i18n %}
++{% extends "layout.html" %}
{% load crispy_forms_tags %}
--
{% block head %}
{{ wizard.form.media }}
<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}css/smart_wizard.css" />
{% endblock %}
--{% block unfold_main %}
++{% block content %}
<h1>User registration</h1>
--{% extends "layout-unfold1.html" %}
++{% extends "layout.html" %}
--{% block unfold_main %}
++{% block content %}
--<div class="onelab-title well-lg">
-- <h2>OneLab Experimenter Registration</h2>
-- <h4>For First Line Support please <a href="/portal/contact" >Contact Support</a></h3>
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_user_small.png" alt="User Registration" /> OneLab Experimenter Registration</h1>
</div>
++<div class="row">
++
++ <h4>For First Line Support please <a href="/portal/contact" >Contact Support</a></h3>
{% if errors %}
<ul>
</ul>
{% endif %}
--<div class="well">
<form class="cmxform form-horizontal" id="registrationForm" method="post" action="" enctype="multipart/form-data" role="form">
<fieldset>
{% csrf_token %}
<div class="form-group" id="register">
<button class="submit btn btn-default col-xs-12" type="submit">Register</button>
</div>
-- </div>
</fieldset>
</form>
</div>
--{% extends "layout-unfold1.html" %}
++{% extends "layout.html" %}
--{% block unfold_main %}
++{% block content %}
<h1>Slice request Received !</h1>
--{% extends "layout-unfold1.html" %}
++{% extends "layout.html" %}
{% load i18n %}
{% block head %}
{{ wizard.form.media }}
{% endblock %}
--{% block unfold_main %}
++{% block content %}
<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/css/onelab.css" />
<!-- xxx ideally only onelab.css but ... xxx -->
--{% extends "layout-unfold1.html" %}
--
--{% block head %}
--{{ wizard.form.media }}
--{% endblock %}
--
--{% block unfold_main %}
--
--<h1>OneLab Portal Support</h1>
--
--<h2>Report a Bug</h2>
--<p>If you have found a bug or having difficulties accesing some features or found some anomalies, please report it using our ticketing system.</p>
--<button id="ticketbtn" type="button" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> Create Ticket</button>
--<h3>Unresolved Tickets</h3>
--
--
--<div id="middle" align="center">
-- <div class="well">
-- <table class="mytable table table-bordered table-hover">
-- <tr>
-- <th>Ticket No</th>
++{% extends "layout.html" %}
++
++{% block content %}
++ <div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_support_small.png" alt="Request a Slice" /> OneLab Portal Support</h1>
++ </div>
++
++
++ <div class="row">
++ <h2>Report a Bug</h2>
++ <p>If you have found a bug or having difficulties accesing some features or found some anomalies, please report it using our ticketing system.</p>
++ <button id="ticketbtn" type="button" class="btn btn-default"><span class="glyphicon glyphicon-plus"></span> Create Ticket</button>
++ <h3>Unresolved Tickets</h3>
++ </div>
++
++ <div class="row">
++ <table class="mytable table table-bordered table-hover">
++ <tr>
++ <th>Ticket No</th>
<th>Reported By</th>
<th>Description</th>
-- <th>Status</th>
-- </tr>
-- <tr>
-- <td>1</td>
++ <th>Status</th>
++ </tr>
++ <tr>
++ <td>1</td>
<td>yasin.upmc@gmail.com</td>
<td> Slice_request page is not working </td>
<td> Unresolved</td>
-- </tr>
++ </tr>
<tr>
-- <td>2</td>
++ <td>2</td>
<td>azerty@lip6.fr</td>
-- <td>Unable to Register</td>
-- <td>Unresolved</td>
++ <td>Unable to Register</td>
++ <td>Unresolved</td>
</tr>
--
-- </table>
-- </div>
--</div>
--</div>
--
--
--
--
--
--<h2><a href="/portal/support/documentation">FAQ</a></h2>
--<h2>Contact Us</h2>
--
--<h3>Mailing List</h3>
--<p>You can subscribe to our mailing list by sending a request to: <b>support</b> AT <b>myslice</b> DOT <b>info</b></p>
--<p>Also you can adress any issues in the same email address.</p>
--
--<h3>Mailing Address</h3>
--<p>
--UPMC - LIP6<br>
--Boîte courrier 16 <br>
--Couloir 26-00, Etage 01, Bureau 102<br>
--4 place Jussieu<br>
--75252 PARIS CEDEX 05<br>
--France<br>
--</p>
++
++ </table>
++ </div>
++
++
++
++ <div class="row">
++
++ <h2><a href="/portal/support/documentation">FAQ</a></h2>
++ <h2>Contact Us</h2>
++
++ <h3>Mailing List</h3>
++ <p>You can subscribe to our mailing list by sending a request to: <b>support</b> AT <b>myslice</b> DOT <b>info</b></p>
++ <p>Also you can adress any issues in the same email address.</p>
++
++ <h3>Mailing Address</h3>
++ <p>
++ UPMC - LIP6<br>
++ Boîte courrier 16 <br>
++ Couloir 26-00, Etage 01, Bureau 102<br>
++ 4 place Jussieu<br>
++ 75252 PARIS CEDEX 05<br>
++ France<br>
++ </p>
++ </div>
<script>
$(document).ready(function() {
$('button#ticketbtn').click(function() {
window.location="/portal/contact/";
-- })
++ });
});
</script>
--{% extends "layout-unfold1.html" %}
++{% extends "layout.html" %}
{% block head %}
{{ wizard.form.media }}
<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}css/smart_wizard.css" />
{% endblock %}
--{% block unfold_main %}
++{% block content %}
-- <h1>User registration</h1>
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_user_small.png" alt="User Registration" /> OneLab Experimenter Registration</h1>
++</div>
++<div class="row">
--{% if envoi %}Your registration message has been sent !{% endif %}
--
--<div class='well'>
--<form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
--{{ form.as_p }}
--<input type="submit" value="Submit" />
--</form>
++{% if envoi %}
++ <h3>Your registration message has been sent !</h3>
++{% endif %}
++
++ <form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
++ {{ form.as_p }}
++ <input type="submit" value="Submit" />
++ </form>
</div>
{% endblock %}
--{% extends "layout-unfold1.html" %}
++{% extends "layout.html" %}
--{% block unfold_main %}
++{% block content %}
-- <h1>User registration complete !</h1>
++<div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_user_small.png" alt="User Registration" /> OneLab Experimenter Registration</h1>
++</div>
++<div class="row">
++ <h3>User registration complete !</h3>
++ <p>
++ You will receive an email with further instructions.
++ </p>
++ </div>
--You will receive an email with further instructions.
{% endblock %}
--{% extends "layout-unfold1.html" %}
++{% extends "layout.html" %}
{% block head %}
--<link rel="stylesheet" type="text/css" href="{{STATIC_URL}}/css/validate_pending.css" />
<script type="text/javascript">
function on_click_event() {
var ids = [];
</script>
{% endblock %}
--{% block unfold_main %}
--<div class="onelab-title well-lg">
--<h1>Pending requests</h1>
--</div>
--<hr/>
--<h2>My authorities</h2>
--
--{% if my_authorities %}
--
--{% for authority, requests in my_authorities.items %}
--<h3>{{authority}}</h3>
--<div class="container">
-- <table width=100% border=1>
-- <th>
-- <td>type</td>
-- <td>id</td>
-- <td>details</td>
-- <td>timestamp</td>
-- <td>status</td>
-- </th>
-- {% for request in requests %}
--
-- <tr>
-- <td>
-- {% if request.allowed == 'allowed' %}
-- <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
-- {% else %}
-- {% if request.allowed == 'expired' %}
-- expired
-- {% else %} {# denied #}
-- denied
++{% block content %}
++ <div class="row">
++ <h1><img src="{{ STATIC_URL }}img/icon_testbed_small.png" alt="" /> Pending requests</h1>
++ </div>
++
++ {% if my_authorities %}
++
++ {% for authority, requests in my_authorities.items %}
++
++ <div class="row">
++ <h3>{{authority}}</h3>
++ <table class="table">
++ <th>
++ <td>type</td>
++ <td>id</td>
++ <td>details</td>
++ <td>timestamp</td>
++ <td>status</td>
++ </th>
++ {% for request in requests %}
++
++ <tr>
++ <td>
++ {% if request.allowed == 'allowed' %}
++ <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
++ {% else %}
++ {% if request.allowed == 'expired' %}
++ expired
++ {% else %} {# denied #}
++ denied
++ {% endif %}
{% endif %}
-- {% endif %}
-- </td>
-- <td>{{ request.type }}</td>
-- <td>{{ request.id }}</td>
-- <td>
-- {% if request.type == 'user' %}
-- Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
-- {% else %}
-- {% if request.type == 'slice' %}
-- Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
-- {% else %} {# authority #}
-- Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
-- {% endif %}
-- {% endif %}
-- </td>
-- <td>{{ request.timestamp }}</td>
--
-- <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
--
-- <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
-- </tr>
--
-- {% endfor %}
-- </table>
--{% endfor %}
++ </td>
++ <td>{{ request.type }}</td>
++ <td>{{ request.id }}</td>
++ <td>
++ {% if request.type == 'user' %}
++ Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
++ {% else %}
++ {% if request.type == 'slice' %}
++ Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
++ {% else %} {# authority #}
++ Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
++ {% endif %}
++ {% endif %}
++ </td>
++ <td>{{ request.timestamp }}</td>
++
++ <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
++
++ <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
++ </tr>
++
++ {% endfor %}
++ </table>
++ </div>
++ {% endfor %}
{% else %}
--<i>There is no pending request waiting for validation.</i>
++ <div class="row">
++ <i>There is no pending request waiting for validation.</i>
++ </div>
{% endif %}
{% if sub_authorities %}
--<hr/>
--<h2>Sub-Authorities</h2>
--
--{% for authority, requests in sub_authorities.items %}
--<h3>{{authority}}</h3>
-- <table width=100% border=1>
-- <th>
-- <td>type</td>
-- <td>id</td>
-- <td>details</td>
-- <td>timestamp</td>
-- <td>status</td>
-- </th>
-- {% for request in requests %}
-- <tr>
-- <td>
-- {% if request.allowed == 'allowed' %}
-- <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
-- {% else %}
-- {% if request.allowed == 'expired' %}
-- expired
-- {% else %} {# denied #}
-- denied
++ <div class="row">
++ <h2>Sub-Authorities</h2>
++ </div>
++ {% for authority, requests in sub_authorities.items %}
++ <div class="row">
++ <h3>{{authority}}</h3>
++ <table class="table">
++ <th>
++ <td>type</td>
++ <td>id</td>
++ <td>details</td>
++ <td>timestamp</td>
++ <td>status</td>
++ </th>
++ {% for request in requests %}
++ <tr>
++ <td>
++ {% if request.allowed == 'allowed' %}
++ <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
++ {% else %}
++ {% if request.allowed == 'expired' %}
++ expired
++ {% else %} {# denied #}
++ denied
++ {% endif %}
{% endif %}
-- {% endif %}
-- </td>
-- <td>{{ request.type }}</td>
-- <td>{{ request.id }}</td>
-- <td>
-- {% if request.type == 'user' %}
-- Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
-- {% else %}
-- {% if request.type == 'slice' %}
-- Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
-- {% else %} {# authority #}
-- Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
-- {% endif %}
-- {% endif %}
-- </td>
-- <td>{{ request.timestamp }}</td>
--
-- <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
--
-- <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
-- </tr>
-- {% endfor %}
-- </table>
--{% endfor %}
--<hr/>
++ </td>
++ <td>{{ request.type }}</td>
++ <td>{{ request.id }}</td>
++ <td>
++ {% if request.type == 'user' %}
++ Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
++ {% else %}
++ {% if request.type == 'slice' %}
++ Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
++ {% else %} {# authority #}
++ Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
++ {% endif %}
++ {% endif %}
++ </td>
++ <td>{{ request.timestamp }}</td>
++
++ <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
++
++ <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
++ </tr>
++ {% endfor %}
++ </table>
++ </div>
++ {% endfor %}
{% endif %}
{% if delegation_authorities %}
--<hr/>
--<h2>Authorities with delegation</h2>
--
--{% for authority, requests in delegation_authorities.items %}
--<h3>{{authority}}</h3>
-- <table width=100% border=1>
-- <th>
-- <td>type</td>
-- <td>id</td>
-- <td>details</td>
-- <td>timestamp</td>
-- <td>status</td>
-- </th>
-- {% for request in requests %}
-- <tr>
-- <td>
-- {% if request.allowed == 'allowed' %}
-- <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
-- {% else %}
-- {% if request.allowed == 'expired' %}
-- expired
-- {% else %} {# denied #}
-- denied
-- {% endif %}
-- {% endif %}
-- </td>
-- <td>{{ request.type }}</td>
-- <td>{{ request.id }}</td>
-- <td>
-- {% if request.type == 'user' %}
-- Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
-- {% else %}
-- {% if request.type == 'slice' %}
-- Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
-- {% else %} {# authority #}
-- Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
-- {% endif %}
-- {% endif %}
-- </td>
-- <td>{{ request.timestamp }}</td>
++ <div class="row">
++ <h2>Authorities with delegation</h2>
++ </div>
++ {% for authority, requests in delegation_authorities.items %}
++ <div class="row">
++ <h3>{{authority}}</h3>
++ <table class="table">
++ <th>
++ <td>type</td>
++ <td>id</td>
++ <td>details</td>
++ <td>timestamp</td>
++ <td>status</td>
++ </th>
++ {% for request in requests %}
++ <tr>
++ <td>
++ {% if request.allowed == 'allowed' %}
++ <input class='portal__validate__checkbox' id='portal__validate__checkbox__{{request.type}}__{{request.id}}' type='checkbox'/>
++ {% else %}
++ {% if request.allowed == 'expired' %}
++ expired
++ {% else %} {# denied #}
++ denied
++ {% endif %}
++ {% endif %}
++ </td>
++ <td>{{ request.type }}</td>
++ <td>{{ request.id }}</td>
++ <td>
++ {% if request.type == 'user' %}
++ Login: {{request.login}} -- First name: {{request.first_name}} -- Last name: {{request.last_name}} -- Email: {{request.email}}
++ {% else %}
++ {% if request.type == 'slice' %}
++ Slice name: {{request.slice_name}} -- Number of nodes: {{request.number_of_nodes}} -- Type of nodes: {{request.type_of_nodes}} -- Purpose: {{request.purpose}}
++ {% else %} {# authority #}
++ Authority name: {{request.site_name}} -- authority_hrn: {{request.site_authority}} -- City: {{request.address_city}} -- Country: {{request.address_country}}
++ {% endif %}
++ {% endif %}
++ </td>
++ <td>{{ request.timestamp }}</td>
++
++ <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
-- <td><span id='portal__status__{{request.type}}__{{request.id}}'></span></td>
--
-- <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
-- </tr>
-- {% endfor %}
-- </table>
--{% endfor %}
--<hr/>
++ <!--<div class='portal_validate_request {{request.type}} {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}'> -->
++ </tr>
++ {% endfor %}
++ </table>
++ </div>
++ {% endfor %}
{% endif %}
--
--<input type='button' id='portal__validate' value='Validate' onclick='on_click_event();'/>
--</div>
--<!-- End of the container div -->
++ <div class="row">
++ <button type="button" id="portal__validate" onclick="on_click_event();">Validate</button>
++ </div>
{% endblock %}
{# This is required by insert_above #}{% insert_handler %}<!DOCTYPE html>
<html lang="en"><head>
--<title>MySlice - {{ section }}</title>
++<title>OneLab - {{ section }}</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" href="/static/img/myslice-icon.png">
{# This is where insert_str will end up #}{% media_container prelude %}