From 61f4383785643e8c5a1475f1ccea19f2a3123c68 Mon Sep 17 00:00:00 2001 From: Ciro Scognamiglio Date: Wed, 12 Mar 2014 19:05:16 +0100 Subject: [PATCH] changes to the sliceview --- portal/slicetabexperiment.py | 32 +-------- portal/slicetabinfo.py | 23 +++++++ portal/slicetabtestbeds.py | 4 +- portal/static/css/onelab.css | 8 ++- portal/static/js/myslice-ui.js | 39 ----------- portal/templates/experimentview.html | 14 +--- .../onelab/onelab__widget-topmenu.html | 4 +- .../onelab/onelab_slice-resource-view.html | 16 ++--- .../templates/onelab/onelab_slice-view.html | 68 +++++-------------- .../onelab/onelab_widget-slice-sections.html | 25 ++++--- portal/templates/slice-tab-testbeds.html | 67 ++++++++++++------ 11 files changed, 124 insertions(+), 176 deletions(-) create mode 100644 portal/slicetabinfo.py diff --git a/portal/slicetabexperiment.py b/portal/slicetabexperiment.py index 70d42671..f13c9d80 100644 --- a/portal/slicetabexperiment.py +++ b/portal/slicetabexperiment.py @@ -16,36 +16,8 @@ from theme import ThemeView class ExperimentView (FreeAccessView, ThemeView): template_name = 'experimentview.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['theme'] = self.theme - return render_to_response(self.template, env, context_instance=RequestContext(request)) - - def get (self, request, state=None): - env = self.default_env() - if request.user.is_authenticated(): - env['person'] = self.request.user - else: - env['person'] = None - - env['theme'] = self.theme - - - 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" - + def get (self, request, slicename, state=None): - return render_to_response(self.template, env, context_instance=RequestContext(request)) + return render_to_response(self.template, { 'theme' : self.theme }, context_instance=RequestContext(request)) diff --git a/portal/slicetabinfo.py b/portal/slicetabinfo.py new file mode 100644 index 00000000..7e7b78ea --- /dev/null +++ b/portal/slicetabinfo.py @@ -0,0 +1,23 @@ +from django.template import RequestContext +from django.shortcuts import render_to_response + +from manifold.core.query import Query, AnalyzedQuery +from manifoldapi.manifoldapi import execute_query + +from django.views.generic.base import TemplateView + +from unfold.loginrequired import LoginRequiredView +from django.http import HttpResponse +from django.shortcuts import render + +from unfold.page import Page +from manifold.core.query import Query, AnalyzedQuery +from manifoldapi.manifoldapi import execute_query + +from theme import ThemeView + +class SliceInfoView (LoginRequiredView, ThemeView): + template_name = "slice-tab-info.html" + + def get(self, request, slicename): + return render_to_response(self.template, {"slice": slicename, "theme": self.theme, "username": request.user, "section":"slice"}, context_instance=RequestContext(request)) diff --git a/portal/slicetabtestbeds.py b/portal/slicetabtestbeds.py index a545ec4b..a93f6787 100644 --- a/portal/slicetabtestbeds.py +++ b/portal/slicetabtestbeds.py @@ -5,8 +5,8 @@ from unfold.loginrequired import LoginRequiredView from theme import ThemeView -class TestbedList (LoginRequiredView, ThemeView): - template_name = "testbed-list.html" +class SliceTabTestbeds (LoginRequiredView, ThemeView): + template_name = "slice-tab-testbeds.html" def get(self, request, slicename): return render_to_response(self.template, {"theme": self.theme, "username": request.user, "slice" : slicename, "section":"testbeds"}, context_instance=RequestContext(request)) diff --git a/portal/static/css/onelab.css b/portal/static/css/onelab.css index a236d10d..920e6fd4 100644 --- a/portal/static/css/onelab.css +++ b/portal/static/css/onelab.css @@ -150,6 +150,7 @@ div#menu-slice-list{ background-color:black; padding:15px; left:-15px; + z-index:10; } div#menu-slice-list ul { margin:0; @@ -350,7 +351,12 @@ ul.nav-sliceview li:first-child img { padding:0; } - +ul.nav-resources { + margin:15px 0; +} +ul.nav-resources a { + padding: 4px 10px 5px 10px; +} diff --git a/portal/static/js/myslice-ui.js b/portal/static/js/myslice-ui.js index 4aa83ced..747098a1 100644 --- a/portal/static/js/myslice-ui.js +++ b/portal/static/js/myslice-ui.js @@ -7,46 +7,7 @@ $(document).ready(function() { - /* Testbeds list */ - - $.post("/rest/network/", { "fields" : ["network_hrn", "network_longname", "description"]}, function(data) { - var testbed_data = []; - var testbed_row = ""; - testbed_row += ""; - testbed_row += ""; - testbed_row += ""; - testbed_row += "network_hrn"; - testbed_row += "Full name"; - testbed_row += "Description"; - testbed_row += ""; - testbed_row += ""; - testbed_data.push(testbed_row); - $.each( data, function(key, val) { - testbed_row = "" - testbed_row += ""; - testbed_row += ""; - testbed_row += ""+val.network_hrn+""; - testbed_row += ""+val.network_longname+""; - testbed_row += ""+val.description+""; - testbed_row += ""; - testbed_data.push(testbed_row); - }); - $("table#testbedList").html(testbed_data.join('')); - $("div#testbed-list-loaded").css("display","block"); - $("div#testbed-list-loading").css("display","none"); - - $("input[type=checkbox]").click(function() { - var cnt = 0; - var id = $(this).val(); - var row = $(this).parent().parent() - if (row.hasClass("active")) { - row.removeClass("active"); - } else { - row.addClass("active"); - } - }); - }); $("#objectList").load("/table/resource/", {"fields" : ["hostname","hrn","country","type"], "options": ["checkbox"] }, function(data) { $(this).dataTable( { diff --git a/portal/templates/experimentview.html b/portal/templates/experimentview.html index 1c7ba2a2..9056eb4b 100644 --- a/portal/templates/experimentview.html +++ b/portal/templates/experimentview.html @@ -1,12 +1,3 @@ -{% extends "layout.html" %} - -{% block content %} - -
-

Experiment Tools Experiment Tools

-
-
-

Secure Shell (SSH)

Secure Shell (SSH) is a cryptographic network protocol for secure data communication, remote command-line login, remote command execution, and other secure network services between two networked computers that connects, via a secure channel over an insecure network, a server and a client (running SSH server and SSH client programs, respectively). The protocol specification distinguishes between two major versions that are referred to as SSH-1 and SSH-2. @@ -27,7 +18,4 @@ OMF was originally developed for the ORBIT wireless testbed at Winlab, Rutgers U

In addition to the main OMF software, this site also hosts OMF sub-projects addressing various related aspects of a testbed's control, measurement, and management.

-

More Info: http://mytestbed.net/projects/omf

- -
-{% endblock %} +

More Info: http://mytestbed.net/projects/omf

\ No newline at end of file diff --git a/portal/templates/onelab/onelab__widget-topmenu.html b/portal/templates/onelab/onelab__widget-topmenu.html index ec07303a..3c306548 100644 --- a/portal/templates/onelab/onelab__widget-topmenu.html +++ b/portal/templates/onelab/onelab__widget-topmenu.html @@ -54,8 +54,8 @@ $('li.slices').mouseenter(function() { $('div#menu-slice-list').fadeIn(100); }); - $('li.slices').mouseleave(function() { - $('div#menu-slice-list').fadeOut(100); + $('div#menu-slice-list').mouseleave(function() { + $(this).fadeOut(100); }); // var slices = localStorage.getItem('slices'); // if (slices.length == 0) { diff --git a/portal/templates/onelab/onelab_slice-resource-view.html b/portal/templates/onelab/onelab_slice-resource-view.html index e9bee5cf..4051c62b 100644 --- a/portal/templates/onelab/onelab_slice-resource-view.html +++ b/portal/templates/onelab/onelab_slice-resource-view.html @@ -1,10 +1,10 @@ {% extends "layout_wide.html" %} {% block head %} - + {% endblock %} @@ -13,20 +13,20 @@
-