From: Ciro Scognamiglio <ciro.scognamiglio@cslash.net> Date: Thu, 27 Feb 2014 18:34:49 +0000 (+0100) Subject: layout and style changes X-Git-Tag: myslice-1.1~268 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=2f89f2e81c44a63d6d90746a1f3c126603280b66;p=unfold.git layout and style changes --- 2f89f2e81c44a63d6d90746a1f3c126603280b66 diff --cc myslice/urls.py index 21dd9526,21dd9526..d4e298c0 --- a/myslice/urls.py +++ b/myslice/urls.py @@@ -65,6 -65,6 +65,7 @@@ urls = (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')), diff --cc portal/homeview.py index 8bd2c27a,8bd2c27a..14487c96 --- a/portal/homeview.py +++ b/portal/homeview.py @@@ -43,7 -43,7 +43,6 @@@ class HomeView (FreeAccessView, ThemeVi 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 @@@ -55,6 -55,6 +54,7 @@@ 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)) @@@ -66,7 -66,7 +66,6 @@@ # 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)) @@@ -86,7 -86,7 +85,6 @@@ 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)) diff --cc portal/static/css/account_view.css index 859b4a93,859b4a93..cfdf4326 --- a/portal/static/css/account_view.css +++ b/portal/static/css/account_view.css @@@ -1,198 -1,198 +1,3 @@@ --/***************************************************************** --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; --} @@@ -208,12 -208,12 +13,6 @@@ tr.border_bottom td {border-bottom:1pt * STYLE FOR PERSONAL DETAILS TABLE *******************************/ --h1 { -- font-size: 1.8em; -- border-bottom: 1px solid #bbb; -- width: 70%; -- min-width: 688px; --} #info { background-color : #839E99; diff --cc portal/static/css/onelab.css index 160cac20,160cac20..8147e1c9 --- a/portal/static/css/onelab.css +++ b/portal/static/css/onelab.css @@@ -1,12 -1,12 +1,3 @@@ --/* @override unfold/static/css/plugin.css */ -- --/*-------------------------------- MARKO'S STYLES -----*/ -- -- -- -- --/*** NEW CSS STYLES FOR ONLEAB ***/ -- body { background-color:white; color:black; @@@ -19,17 -19,17 +10,35 @@@ a, a:active, a:focus 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; @@@ -48,7 -48,7 +57,7 @@@ } /* HEADER */ div#header { -- height:85px; ++ height:100px; background-color:white; } @@@ -121,7 -121,7 +130,7 @@@ div#navigation li:last-child /* HOME DASHBOARD */ div#home-dashboard { color:black; -- margin:25px auto; ++ margin:0 auto 25px auto; } div#home-dashboard table { margin:25px; @@@ -214,6 -214,6 +223,7 @@@ div#home-dashboard div#home-slice-list /* NAV TABS */ .nav.nav-tabs { ++ margin-bottom:25px; } .nav.nav-tabs li.active a { @@@ -259,7 -259,7 +269,6 @@@ table.table td /* INSTITUTION */ div#institution { color:black; -- margin:25px auto; } .form-hint { font-size:11pt; @@@ -267,11 -267,11 +276,7 @@@ color:gray; } --/* SLICE REQUEST */ --div#slice-request { -- color:black; -- margin:25px auto; --} ++ .form-hint { font-size:11pt; font-style:italic; @@@ -283,7 -283,7 +288,6 @@@ /* TICKET REQUEST */ div#ticket-request { color:black; -- margin:25px auto; } .form-hint { font-size:11pt; @@@ -296,25 -296,25 +300,24 @@@ div#ticket-request p /* 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; } @@@ -344,7 -344,7 +347,6 @@@ font-size:14px; color:black; padding:0; -- margin-top:10px; } .slice-sections li.active a, .slice-pending li.active a { color:#201E62; @@@ -378,18 -378,18 +380,10 @@@ } .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; --} -- diff --cc portal/static/js/myslice-ui.js index b6b7ca53,b6b7ca53..04199868 --- a/portal/static/js/myslice-ui.js +++ b/portal/static/js/myslice-ui.js @@@ -34,8 -34,8 +34,8 @@@ $(document).ready(function() }); }); -- -- 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", diff --cc portal/supportview.py index 11d74766,11d74766..bbb5b495 --- a/portal/supportview.py +++ b/portal/supportview.py @@@ -17,19 -17,19 +17,15 @@@ from theme import ThemeVie 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 @@@ -40,12 -40,12 +36,10 @@@ 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)) diff --cc portal/templates/about.html index 375946cb,375946cb..bddeb7e5 --- a/portal/templates/about.html +++ b/portal/templates/about.html @@@ -1,10 -1,10 +1,41 @@@ --{% 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 %} diff --cc portal/templates/account-view.html index d3f724e7,d3f724e7..228ee558 --- a/portal/templates/account-view.html +++ b/portal/templates/account-view.html @@@ -1,5 -1,5 +1,5 @@@ --{% extends "layout-unfold1.html" %} --{% block unfold_main %} ++{% extends "layout.html" %} ++{% block content %} {% if messages %} @@@ -10,29 -10,29 +10,32 @@@ </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> @@@ -135,8 -135,8 +138,7 @@@ <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> @@@ -150,16 -150,16 +152,14 @@@ </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> @@@ -180,153 -180,153 +180,141 @@@ {%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> diff --cc portal/templates/contact.html index 9f2e30ee,9f2e30ee..56609126 --- a/portal/templates/contact.html +++ b/portal/templates/contact.html @@@ -1,21 -1,21 +1,21 @@@ --{% 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 %} diff --cc portal/templates/contact_sent.html index 62a2ab98,62a2ab98..c1d0d7d1 --- a/portal/templates/contact_sent.html +++ b/portal/templates/contact_sent.html @@@ -1,9 -1,9 +1,14 @@@ --{% 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 %} diff --cc portal/templates/documentationview.html index 2ecfdb78,2ecfdb78..5c838d0a --- a/portal/templates/documentationview.html +++ b/portal/templates/documentationview.html @@@ -1,13 -1,13 +1,10 @@@ --{% 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> @@@ -32,6 -32,6 +29,6 @@@ Manifold is the backend that is runnin <h2>FAQ<h2> <h3>Users</h3> <h3>Managers</h3> -- ++</div> {% endblock %} diff --cc portal/templates/experimentview.html index 0aebd03e,0aebd03e..1c7ba2a2 --- a/portal/templates/experimentview.html +++ b/portal/templates/experimentview.html @@@ -1,13 -1,13 +1,11 @@@ --{% 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> @@@ -31,5 -31,5 +29,5 @@@ OMF was originally developed for the OR <p>More Info: <a href="http://mytestbed.net/projects/omf" target="_blank">http://mytestbed.net/projects/omf</a></p> -- ++</div> {% endblock %} diff --cc portal/templates/home-view.html index 4a44ce1f,4a44ce1f..c88902d2 --- a/portal/templates/home-view.html +++ b/portal/templates/home-view.html @@@ -1,6 -1,6 +1,6 @@@ --{% 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"> @@@ -60,4 -60,4 +60,4 @@@ </table> </div> </div> --{% endblock unfold_main %} ++{% endblock %} diff --cc portal/templates/institution.html index abde7441,75b4758f..575a1f0f --- a/portal/templates/institution.html +++ b/portal/templates/institution.html @@@ -1,16 -1,15 +1,16 @@@ -{% 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%;"> diff --cc portal/templates/join_view.html index 201c91be,201c91be..576458ad --- a/portal/templates/join_view.html +++ b/portal/templates/join_view.html @@@ -1,22 -1,22 +1,24 @@@ --{% 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> @@@ -25,7 -25,7 +27,7 @@@ </div> {% endif %} --<div class="well"> ++<div class="row"> <form action="" id="joinForm" method="post"> {% csrf_token %} <fieldset> @@@ -137,12 -137,12 +139,12 @@@ </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> @@@ -150,10 -150,10 +152,11 @@@ Couloir 26-00, bureau 102<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> /* diff --cc portal/templates/manageuserview.html index 4548f460,4548f460..83b37ee3 --- a/portal/templates/manageuserview.html +++ b/portal/templates/manageuserview.html @@@ -1,5 -1,5 +1,9 @@@ --{% 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 %} @@@ -10,200 -10,200 +14,194 @@@ </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> @@@ -224,13 -224,13 +222,10 @@@ </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> @@@ -247,9 -247,9 +242,8 @@@ </tr> {%endfor%} </table> -- </div> --</div> --</div> ++ ++ </div> {%endif%} </div> </form> diff --cc portal/templates/onelab/onelab__widget-topmenu.html index 55b8dd34,55b8dd34..cb6c9381 --- a/portal/templates/onelab/onelab__widget-topmenu.html +++ b/portal/templates/onelab/onelab__widget-topmenu.html @@@ -38,3 -38,3 +38,18 @@@ </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> diff --cc portal/templates/onelab/onelab_slice-resource-view.html index 7db76a9d,7db76a9d..5432be77 --- a/portal/templates/onelab/onelab_slice-resource-view.html +++ b/portal/templates/onelab/onelab_slice-resource-view.html @@@ -1,10 -1,10 +1,9 @@@ --{% 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> @@@ -13,8 -13,8 +12,8 @@@ <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" %} @@@ -39,5 -39,5 +38,4 @@@ </div> <table cellpadding="0" cellspacing="0" border="0" class="table" id="objectList"></table> </div> --</div> --{% endblock unfold_main %} ++{% endblock %} diff --cc portal/templates/onelab/onelab_slice-view.html index 623bf890,90c9ca2c..a67d34b2 --- a/portal/templates/onelab/onelab_slice-view.html +++ b/portal/templates/onelab/onelab_slice-view.html @@@ -12,36 -13,51 +12,50 @@@ <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 %} diff --cc portal/templates/onelab/onelab_testbed-list.html index 546fd889,546fd889..a0872bf6 --- a/portal/templates/onelab/onelab_testbed-list.html +++ b/portal/templates/onelab/onelab_testbed-list.html @@@ -1,7 -1,7 +1,6 @@@ --{% 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"> @@@ -16,5 -16,5 +15,4 @@@ </div> <table cellpadding="0" cellspacing="0" border="0" class="table" id="testbedList"></table> </div> --</div> --{% endblock unfold_main %} ++{% endblock %} diff --cc portal/templates/password_reset_complete.html index 63ce14e6,63ce14e6..eee3d20e --- a/portal/templates/password_reset_complete.html +++ b/portal/templates/password_reset_complete.html @@@ -1,18 -1,18 +1,18 @@@ --{% 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 %} diff --cc portal/templates/password_reset_confirm.html index 0ea6867e,0ea6867e..8f9d2f77 --- a/portal/templates/password_reset_confirm.html +++ b/portal/templates/password_reset_confirm.html @@@ -1,36 -1,36 +1,33 @@@ --{% 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 %} diff --cc portal/templates/password_reset_done.html index caeb4ebd,caeb4ebd..5efdfb2e --- a/portal/templates/password_reset_done.html +++ b/portal/templates/password_reset_done.html @@@ -1,14 -1,14 +1,12 @@@ --{% 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 %} diff --cc portal/templates/password_reset_form.html index 8fba3201,8fba3201..427c4fe1 --- a/portal/templates/password_reset_form.html +++ b/portal/templates/password_reset_form.html @@@ -1,21 -1,21 +1,17 @@@ --{% 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 %} diff --cc portal/templates/platform.html index 136a8bfe,136a8bfe..499eb742 --- a/portal/templates/platform.html +++ b/portal/templates/platform.html @@@ -1,10 -1,10 +1,10 @@@ --{% 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> diff --cc portal/templates/register_user_wizard.html index 1f480a1b,1f480a1b..740d7c9d --- a/portal/templates/register_user_wizard.html +++ b/portal/templates/register_user_wizard.html @@@ -1,14 -1,14 +1,12 @@@ --{% 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> diff --cc portal/templates/registration_view.html index 1f27d418,1f27d418..10381a33 --- a/portal/templates/registration_view.html +++ b/portal/templates/registration_view.html @@@ -1,11 -1,11 +1,13 @@@ --{% 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> @@@ -15,7 -15,7 +17,6 @@@ </ul> {% endif %} --<div class="well"> <form class="cmxform form-horizontal" id="registrationForm" method="post" action="" enctype="multipart/form-data" role="form"> <fieldset> {% csrf_token %} @@@ -99,7 -99,7 +100,6 @@@ <div class="form-group" id="register"> <button class="submit btn btn-default col-xs-12" type="submit">Register</button> </div> -- </div> </fieldset> </form> </div> diff --cc portal/templates/slice-request-ack-view.html index dc98c27a,dc98c27a..c101b060 --- a/portal/templates/slice-request-ack-view.html +++ b/portal/templates/slice-request-ack-view.html @@@ -1,6 -1,6 +1,6 @@@ --{% extends "layout-unfold1.html" %} ++{% extends "layout.html" %} --{% block unfold_main %} ++{% block content %} <h1>Slice request Received !</h1> diff --cc portal/templates/slice-request-view.html index 4568864a,4568864a..838b9b4d --- a/portal/templates/slice-request-view.html +++ b/portal/templates/slice-request-view.html @@@ -1,11 -1,11 +1,11 @@@ --{% 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 --> diff --cc portal/templates/supportview.html index 18b5a935,18b5a935..3b4c2ef0 --- a/portal/templates/supportview.html +++ b/portal/templates/supportview.html @@@ -1,72 -1,72 +1,69 @@@ --{% 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> diff --cc portal/templates/user_register.html index bfb08f12,bfb08f12..a1295c13 --- a/portal/templates/user_register.html +++ b/portal/templates/user_register.html @@@ -1,21 -1,21 +1,25 @@@ --{% 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 %} diff --cc portal/templates/user_register_complete.html index 35b252e8,35b252e8..9c613956 --- a/portal/templates/user_register_complete.html +++ b/portal/templates/user_register_complete.html @@@ -1,8 -1,8 +1,15 @@@ --{% 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 %} diff --cc portal/templates/validate_pending.html index cef58ea9,cef58ea9..447c9318 --- a/portal/templates/validate_pending.html +++ b/portal/templates/validate_pending.html @@@ -1,7 -1,7 +1,6 @@@ --{% 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 = []; @@@ -45,176 -45,176 +44,179 @@@ </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 %} diff --cc ui/templates/base.html index d11babfe,d11babfe..8b4e8271 --- a/ui/templates/base.html +++ b/ui/templates/base.html @@@ -1,6 -1,6 +1,6 @@@ {# 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 %}