cd $DIRNAME/..
# default port : if hostname starts with z -> use 8080 ; otherwise take 80
-hostname | grep -q '^z' && port=8080 || port=8080
-#hostname | grep -q '^z' && port=8080 || port=80
+#hostname | grep -q '^z' && port=8080 || port=8080
+hostname | grep -q '^z' && port=8080 || port=80
[[ -n "$@" ]] && port=$1
while true; do
(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))
errors = []
# Using cache manifold-tables to get the list of authorities faster
- authorities_query = Query.get('authority').select('name', 'authority_hrn')
+ authorities_query = Query.get('authority').select('authority_hrn')
#onelab_enabled_query = Query.get('local:platform').filter_by('platform', '==', 'ple').filter_by('disabled', '==', 'False')
#onelab_enabled = not not execute_admin_query(request, onelab_enabled_query)
-/*****************************************************************
-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 %}
</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">
<div id="authority-tab-loading"><img src="{{ STATIC_URL }}img/loading.gif" alt="Loading Authority" /></div>
$('div.home-panel').hide();
$('div#'+$(this).data('panel')).show();
});
+ var url = window.location;
+ if(url.hash) {
+ // Fragment exists
+ tab = url.href.split("#")[1];
+ tab_exists = $('div#'+tab).length;
+ if (tab_exists) {
+ $('ul.nav-tabs li').removeClass('active');
+ $('li#'+tab+'-tab').addClass('active');
+ $('div.home-panel').hide();
+ $('div#'+tab).show();
+ }
+ }
$('button#createslice').click(function() {
window.location="/portal/slice_request/";
})
slice_row = "<tr>";
slice_row += "<td><input type='checkbox'></td>";
- slice_row += "<td><a href=\"/portal/slice/"+val.slice_hrn+"\">" + val.slice_hrn + "</a></td>";
+ slice_row += "<td><a href=\"/slice/"+val.slice_hrn+"\">" + val.slice_hrn + "</a></td>";
slice_row += "<td>"+user_length+"</td>";
slice_row += "<td>"+slice_url+"</td>";
slice_row += "<td>"+nodes_length+"</td>";
-{% 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>
</tr>
<tr>
<td><a href="/portal/institution"><img src="{{ STATIC_URL }}img/icon_authority_color.png" alt="" /></a></td>
- <td><img src="{{ STATIC_URL }}img/icon_slices.png" alt="" /></td>
+ <td><a href="/portal/institution#slices"><img src="{{ STATIC_URL }}img/icon_slices.png" alt="" /></a></td>
<td><a href="/portal/validate"><img src="{{ STATIC_URL }}img/icon_testbed_color.png" alt="" /></a></td>
</tr>
<tr>
-{% 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 %}
\ No newline at end of file
+{% endblock %}
\ No newline at end of file
<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>
-
+
+<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 %}
-{% 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 %}
\ No newline at end of file
+{% endblock %}
\ No newline at end of file
-{% 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 -->
];
$( "#authority_hrn" ).autocomplete({
source: availableTags,
+ minLength: 0,
select: function( event, ui ) {console.log(jQuery(this))}
});
});
-{% 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 %}