updated look and feel of the site
authorJordan Augé <jordan.auge@lip6.fr>
Thu, 25 Jul 2013 13:27:50 +0000 (15:27 +0200)
committerJordan Augé <jordan.auge@lip6.fr>
Thu, 25 Jul 2013 13:27:50 +0000 (15:27 +0200)
auth/templates/widget-login.html
auth/views.py
manifold/js/manifold.js
myslice/viewutils.py
portal/views.py
trash/sliceview.py
views/templates/view-login.html
views/templates/widget-topmenu.html

index ac90bcc..80578e5 100644 (file)
@@ -1,6 +1,6 @@
 {% insert_str prelude 'css/login.css' %}
 <p class='login-status'> {{ state }} </p>
-<a href="/" alt="Home"><img class="logo" src="{{ STATIC_URL }}img/myslice-logo.png" alt="MySlice" /></a>
+<!--<a href="/" alt="Home"><img class="logo" src="{{ STATIC_URL }}img/myslice-logo.png" alt="MySlice" /></a>-->
 <form action="/login/" method="post">
   {% csrf_token %}
   {% if next %}
index 2a9ff83..43ca56e 100644 (file)
@@ -29,7 +29,8 @@ def login_user(request):
             if user.is_active:
                 login(request, user)
                 #state = "You're successfully logged in!"
-                return HttpResponseRedirect ('/login-ok')
+                return HttpResponseRedirect ('/portal/dashboard')
+                #return HttpResponseRedirect ('/login-ok')
             else:
                 env['state'] = "Your account is not active, please contact the site admin."
                 return render_to_response('view-login.html',env, context_instance=RequestContext(request))
@@ -37,7 +38,7 @@ def login_user(request):
             env['state'] = "Your username and/or password were incorrect."
             return render_to_response('view-login.html',env, context_instance=RequestContext(request))
     else:
-        state='Welcome to MySlice'
+        state='' #Welcome to MySlice'
         env['state']=state
         env['username']=the_user(request)
         return render_to_response('view-login.html',env, context_instance=RequestContext(request))
index 94b6442..e7f6c1d 100644 (file)
@@ -32,11 +32,25 @@ var CLEAR_RECORDS  = 8;
 var IN_PROGRESS    = 101;
 var DONE           = 102;
 
+/* Update requests from plugins */
 var SET_ADD        = 201;
 var SET_REMOVED    = 202;
 
+/* Query status */
+var STATUS_NONE               = 500; // Query has not been started yet
+var STATUS_GET_IN_PROGRESS    = 501; // Query has been sent, no result has been received
+var STATUS_GET_RECEIVED       = 502; // Success
+var STATUS_GET_ERROR          = 503; // Error
+var STATUS_UPDATE_PENDING     = 504;
+var STATUS_UPDATE_IN_PROGRESS = 505;
+var STATUS_UPDATE_RECEIVED    = 506;
+var STATUS_UPDATE_ERROR       = 507;
+// outdated ?
+
 // A structure for storing queries
 
+
+
 function QueryExt(query, parent_query, main_query) {
 
     /* Constructor */
@@ -45,15 +59,16 @@ function QueryExt(query, parent_query, main_query) {
     this.query        = query
     this.parent_query = (typeof parent_query == "undefined") ? false : parent_query
     this.main_query   = (typeof main_query   == "undefined") ? false : main_query
-
-    // How to link to an update query ? they both have the same UUID !!
-
+    
+    this.status       = null;
+    this.results      = null;
+    this.update_query = null; // null unless we are a main_query (aka parent_query == null); only main_query_fields can be updated...
 }
 
 function QueryStore() {
 
-    var main_queries     = {};
-    var analyzed_queries = {};
+    this.main_queries     = {};
+    this.analyzed_queries = {};
 
     /* Insertion */
 
@@ -63,14 +78,17 @@ function QueryStore() {
             query.analyze_subqueries();
         }
 
-        query_ext = QueryExt(query, null, null)
+        query_ext = new QueryExt(query, null, null)
         manifold.query_store.main_queries[query.query_uuid] = query_ext;
 
         // We also need to insert all queries and subqueries from the analyzed_query
         query.iter_subqueries(function(sq, data, parent_query) {
-            parent_query_ext = this.find_analyzed_query_ext(parent_query.query_uuid);
+            if (parent_query)
+                parent_query_ext = manifold.query_store.find_analyzed_query_ext(parent_query.query_uuid);
+            else
+                parent_query_ext = null;
             sq_ext = QueryExt(sq, parent_query_ext, query_ext)
-            this.analyzed_queries[sq.query_uuid] = sq_ext;
+            manifold.query_store.analyzed_queries[sq.query_uuid] = sq_ext;
         });
     }
 
@@ -124,7 +142,7 @@ var manifold = {
      * Query management
      **************************************************************************/ 
 
-    query_store: QueryStore(),
+    query_store: new QueryStore(),
 
     // XXX Remaining functions are deprecated since they are replaced by the query store
 
@@ -142,6 +160,10 @@ var manifold = {
      * \param ManifoldQuery query Query to be added
      */
     insert_query : function (query) { 
+        // NEW API
+        manifold.query_store.insert(query);
+
+        // FORMER API
         if (query.analyzed_query == null) {
             query.analyze_subqueries();
         }
@@ -375,10 +397,24 @@ var manifold = {
         switch(event_type) {
             case SET_ADD:
                 // Query uuid has been updated with the key of a new element
-                query = manifold.find_query(query_uuid);
+                query_ext    = manifold.find_analyzed_query(query_uuid);
+
+                // update is only possible is the query is not pending, etc
+                // CHECK status !
+
+                // XXX we can only update subqueries of the main query. Check !
+                // assert query_ext.parent_query == query_ext.main_query
+                update_query = query_ext.parent_query.update_query;
+
+                // NOTE: update might modify the fields in Get
+                // NOTE : we have to modify all child queries
+                // NOTE : parts of a query might not be started (eg slice.measurements, how to handle ?)
+
+                // if everything is done right, update_query should not be null. It is updated when we received results from the get query
+                // object = the same as get
+                // filter = key : update a single object for now
+                // fields = the same as get
 
-                // XXX We need to find the parent to update the property
-                // XXX We need to find the non-analyzed query so that it can be updated also
                 break;
             case SET_REMOVED:
                 // Query uuid has been updated with the key of a removed element
index 2b5ab86..937fa9b 100644 (file)
@@ -5,7 +5,7 @@ from copy import deepcopy
 standard_topmenu_items = [ 
 #    { 'label':'Tab', 'href': '/tab/'},
 #    { 'label':'Scroll', 'href': '/scroll/'},
-    { 'label':'One Plugin', 'href': '/plugin/'},
+#    { 'label':'One Plugin', 'href': '/plugin/'},
     { 'label':'Dashboard', 'href': '/portal/dashboard/'},
     { 'label':'Slice', 'href': '/slice/'},
     ]
index 597f319..dd63182 100644 (file)
@@ -41,9 +41,7 @@ class DashboardView(TemplateView):
     def get_context_data(self, **kwargs):
         user_hrn = 'ple.upmc.jordan_auge'
 
-        messages.info(self.request, 'You have logged in')
-
-
+        #messages.info(self.request, 'You have logged in')
         page = Page(self.request)
 
         # Slow...
index d462e3e..252291f 100644 (file)
@@ -24,7 +24,7 @@ from plugins.quickfilter.quickfilter import QuickFilter
 from plugins.messages.messages       import Messages
 from plugins.updater.updater         import Updater
 
-tmp_default_slice='ple.inria.heartbeat'
+tmp_default_slice='ple.inria.myslicedemo'
 debug = True
 
 @login_required
index 6cd126e..f958c60 100644 (file)
@@ -5,6 +5,7 @@
 {% endblock unfold2_margin %}
 
 {% block unfold2_main %}
+<!--
 <code> This page is currently connected to two authentication systems:</code>
 <ul>
 <li> A manifold server, located at <code>{{ manifold_url }}</code>, (configured in <code>myslice/config.py</code>), and</li>
@@ -17,4 +18,25 @@ Currently hard wired users are:
   {% endfor %}
 </ul>
 </li></ul>
+-->
+
+<div style='padding: 20px;'>
+  <div style=' padding-top: 12px; background-color: orange; border: 1px solid #61210B; text-align: center;'>
+    <h2 style="font-weight: bold;">Welcome to the OneLab portal !</h2>
+    <h3>New to OneLab? Please <a href="/register">register</a> or learn more about <a href="http://www.fed4fire.eu/" target="_blank">the project</a>.</h3>
+  </div>
+<p/>
+  <p>
+Experimentally-driven research is key to success in exploring the possible
+futures of the Internet. The OneLab initiative provides an open,
+general-purpose, shared experimental facility, both large-scale and
+sustainable, which allows European industry and academia to innovate and assess
+the performance of their solutions. Based on the results of several different
+European and national projects, OneLab offers access to a range of  tools and
+testbeds including PlanetLab Europe, the NITOS wireless testbed, and other
+federated testbeds.
+  </p>
+  <div class="item-separator"></div>
+</div>
+
 {% endblock unfold2_main %}
index cc0fa70..eabd6f8 100644 (file)
@@ -6,7 +6,8 @@
 <div class="navbar navbar-fixed-top">
   <div class="navbar-inner">
     <div class="container-fluid">
-      <a class="brand" href="/"><img src="{{ STATIC_URL }}img/myslice-logo.png" height="30" alt="MySlice logo" /></a>
+      <a class="brand" href="/"><img src="{{ STATIC_URL }}img/onelab-logo.png" height="30" alt="OneLab logo" /></a>
+      <!--<a class="brand" href="/"><img src="{{ STATIC_URL }}img/myslice-logo.png" height="30" alt="MySlice logo" /></a>-->
       <div class="nav-collapse topmenu">
        <ul class="nav nav-pills" id='menu_ul'> {% for d in topmenu_items %} {% if d.is_active %}
          <li class='active'> <a href="{{ d.href }}"> {{ d.label }} </a> </li> {% else %}