-from django.shortcuts import render
-from django.views.generic import View
-
-from unfold.loginrequired import FreeAccessView
-from ui.topmenu import topmenu_items
-
-
-# splitting the 2 functions done here
-# GET is for displaying the empty form
-# POST is to process it once filled - or show the form again if anything is missing
-class DocumentationView (FreeAccessView):
- template_name = "documentationview.html"
- def _display (self, request):
- return render(request, 'documentationview.html', {
- 'topmenu_items': topmenu_items('FAQ', request),
- })
+# this somehow is not used anymore - should it not be ?
+from django.core.context_processors import csrf
+from django.http import HttpResponseRedirect
+from django.contrib.auth import authenticate, login, logout
+from django.template import RequestContext
+from django.shortcuts import render_to_response
+from django.shortcuts import render
+
+from unfold.loginrequired import FreeAccessView
+
+from manifold.manifoldresult import ManifoldResult
+from ui.topmenu import topmenu_items, the_user
+from myslice.configengine import ConfigEngine
+
+from theme import ThemeView
+
+class DocumentationView (FreeAccessView, ThemeView):
+ template_name = 'documentationview.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"
+
+
+ return render_to_response(self.template, env, context_instance=RequestContext(request))
+
-from django.shortcuts import render
-from django.views.generic import View
+# this somehow is not used anymore - should it not be ?
+from django.core.context_processors import csrf
+from django.http import HttpResponseRedirect
+from django.contrib.auth import authenticate, login, logout
+from django.template import RequestContext
+from django.shortcuts import render_to_response
+from django.shortcuts import render
-from unfold.loginrequired import FreeAccessView
-from ui.topmenu import topmenu_items
+from unfold.loginrequired import FreeAccessView
+from manifold.manifoldresult import ManifoldResult
+from ui.topmenu import topmenu_items, the_user
+from myslice.configengine import ConfigEngine
-# splitting the 2 functions done here
-# GET is for displaying the empty form
-# POST is to process it once filled - or show the form again if anything is missing
-class ExperimentView (FreeAccessView):
- template_name = "experimentview.html"
- def _display (self, request):
- return render(request, 'experimentview.html', {
- 'topmenu_items': topmenu_items('experiment', request),
- })
+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"
+
+
+ return render_to_response(self.template, env, context_instance=RequestContext(request))
--- /dev/null
+# this somehow is not used anymore - should it not be ?
+from django.core.context_processors import csrf
+from django.http import HttpResponseRedirect
+from django.contrib.auth import authenticate, login, logout
+from django.template import RequestContext
+from django.shortcuts import render_to_response
+from django.shortcuts import render
+
+from unfold.loginrequired import FreeAccessView
+
+from manifold.manifoldresult import ManifoldResult
+from ui.topmenu import topmenu_items, the_user
+from myslice.configengine import ConfigEngine
+
+from theme import ThemeView
+
+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['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"
+
+
+ return render_to_response(self.template, env, context_instance=RequestContext(request))
+
{% block unfold_main %}
<h1>OneLab Portal Documentation<h1>
+
+<h2>Portal Components</h2>
+<h3>Myslice (Web Frontend)</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 <b>resources</b> with <b>useful information</b> (characteristics, performance, network measurements).
+ </p>
+
+<p> More Info: <a href="http://myslice.info/" target="_blank">http://myslice.info/</a></p>
+<p> Code: <a href="http://git.onelab.eu/?p=myslice.git;a=summary" target="_blank">Git Repository</a> (read only)</p>
+
+<h3>Manifold (Portal backend)</h3>
+Manifold is the backend that is running behind the portal.
+
+<p> Documentation: <a href="http://trac.myslice.info/" target="_blank">http://trac.myslice.info/</a></p>
+<p> Code: <a href="https://git.top-hat.info/?p=tophat.git;a=shortlog;h=refs/heads/devel" target="_blank">Git Repository</a> (read only)</p>
+
+<h3>OneLab Registry</h3>
+<p>It's a SFA registry. SFA Registry is a specific installation mode of the SFAWrapper (Registry Only mode).</p>
+<p> More Info: <a href="http://svn.planet-lab.org/wiki/SfaDeveloperRegistryTutorial#RunninginRegistry-Onlymode" target="_blank">SFA Registry</a></p>
<h2>FAQ<h2>
<h3>Users</h3>
<h3>Managers</h3>
<li>SLICES</li>
<li>REQUESTS</li>
<li><a href="/portal/institution">INSTITUTION</a></li>
- <li><a href="/portal/contact">SUPPORT</a></li>
+ <li><a href="/portal/support">SUPPORT</a></li>
<li>|</li>
<li><a href="/portal/account">{{ username }}</a></li>
<li><a id="logout" style="cursor:pointer;" data-username="{{ username }}">LOGOUT</a></li>
--- /dev/null
+{% 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>
+ <th>Reported By</th>
+ <th>Description</th>
+ <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>
+ <td>2</td>
+ <td>azerty@lip6.fr</td>
+ <td>Unable to Register</td>
+ <td>Unresolved</td>
+ </tr>
+
+ </table>
+ </div>
+</div>
+</div>
+
+
+
+
+
+<h2><a href="/portal/support/documentation">FAQ</a></h2>
+<h2><a href="/portal/contact">Contact Us</a></h2>
+
+
+{% endblock %}
+
from portal.validationview import ValidatePendingView
from portal.experimentview import ExperimentView
from portal.documentationview import DocumentationView
+from portal.supportview import SupportView
+
# hopefully these should move in dedicated source files too
from portal.views import PresViewView, pres_view_static, pres_view_methods, pres_view_animation
from portal.django_passresetview import password_reset, password_reset_done, password_reset_confirm, password_reset_complete
url(r'^join/?$', JoinView.as_view(), name='join'),
url(r'^contact/?$', ContactView.as_view(), name='contact'),
url(r'^experiment?$', ExperimentView.as_view(), name='experiment'),
+ url(r'^support/?$', SupportView.as_view(), name='support'),
url(r'^support/documentation?$', DocumentationView.as_view(), name='FAQ'),
#url(r'^pass_reset/?$', PassResetView.as_view(), name='pass_rest'),
# Slice request