Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions doc/source/developer.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ API reference
remoteappmanager.application
remoteappmanager.command_line_config
remoteappmanager.file_config
remoteappmanager.jinja2_adapters
remoteappmanager.netutils
remoteappmanager.traitlets
remoteappmanager.user
Expand All @@ -46,4 +45,3 @@ API reference
remoteappmanager.webapi.admin.container
remoteappmanager.services.hub
remoteappmanager.services.reverse_proxy

1 change: 1 addition & 0 deletions frontend/sharedDependencies.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ require('ionicons-css');
require('admin-lte-css');
require('skin-black-css');
require('skin-red-css');
require('skin-blue-css');

// Load JS (Global jQuery so that it's accessible by bootstrap)
window.jQuery = window.$ = require('jquery');
Expand Down
18 changes: 0 additions & 18 deletions remoteappmanager/base_application.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,12 @@
from traitlets import Instance, default
from tornado import web
import tornado.ioloop
from jinja2 import Environment, FileSystemLoader

from tornadowebapi.registry import Registry

from remoteappmanager.db.interfaces import ABCDatabase
from remoteappmanager.logging.logging_mixin import LoggingMixin
from remoteappmanager.docker.container_manager import ContainerManager
from remoteappmanager.jinja2_adapters import Jinja2LoaderAdapter, gravatar_id
from remoteappmanager.user import User
from remoteappmanager.traitlets import as_dict
from remoteappmanager.services.hub import Hub
Expand Down Expand Up @@ -84,8 +82,6 @@ def __init__(self,
settings["static_url_prefix"] = (
self._command_line_config.base_urlpath + "static/")

self._jinja_init(settings)

handlers = self._get_handlers()

super().__init__(handlers, **settings)
Expand Down Expand Up @@ -181,17 +177,3 @@ def _get_handlers(self):
web_api = self.registry.api_handlers(base_urlpath)
web_handlers = self._web_handlers()
return web_api+web_handlers

def _jinja_init(self, settings):
"""Initializes the jinja template system settings.
These will be passed as settings and will be accessible at
rendering."""
jinja_env = Environment(
loader=FileSystemLoader(
settings["template_path"]
),
autoescape=True,
)

jinja_env.filters["gravatar_id"] = gravatar_id
settings["template_loader"] = Jinja2LoaderAdapter(jinja_env)
2 changes: 1 addition & 1 deletion remoteappmanager/handlers/admin/admin_home_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ class AdminHomeHandler(BaseHandler):
@web.authenticated
@gen.coroutine
def get(self):
self.render('admin/page.html')

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed the name of the admin and user page files because when doing {% extends "page.html" %} they were loading themselves resulting on an infinite loop.

self.render('admin_page.html')
21 changes: 15 additions & 6 deletions remoteappmanager/handlers/base_handler.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from http.client import responses
from urllib.parse import urljoin
import hashlib

from tornado import web, gen

Expand Down Expand Up @@ -36,12 +37,20 @@ def render(self, template_name, **kwargs):

args.update(kwargs)

if file_config.ga_tracking_id:
args.update({
"analytics": {
"tracking_id": file_config.ga_tracking_id
}
})
args.update({
"analytics": {
"tracking_id": file_config.ga_tracking_id
} if file_config.ga_tracking_id else None
})

args.update({
"gravatar_id": (
hashlib.md5(
str(self.current_user.name).strip().lower().encode(
"utf-8")).hexdigest()
if self.current_user is not None
else None)
})

super(BaseHandler, self).render(template_name, **args)

Expand Down
2 changes: 1 addition & 1 deletion remoteappmanager/handlers/user_home_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ class UserHomeHandler(BaseHandler):
@web.authenticated
@gen.coroutine
def get(self):
self.render('user/page.html')
self.render('user_page.html')
81 changes: 0 additions & 81 deletions remoteappmanager/jinja2_adapters.py

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{% extends "page.html" %}

{% set skin = "skin-red" %}

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With tornado {% set skin = ... %} only sets a local variable which is not available in the parent scope. Unfortunately, according to tornadoweb/tornado#1323, an equivalent implementation in Tornado of the behavior of Jinja is not available yet. A workaround is to use a block.

{% block skin %} skin-red {% end %}

{% block sidebar %}
<section class="sidebar">
Expand All @@ -12,7 +12,7 @@
<router-link to="/applications" tag="li" exact-active-class="active"><a>Applications</a></router-link>
</ul>
</section>
{% endblock %}
{% end %}

{% block main %}
<section class="content">
Expand All @@ -25,9 +25,8 @@
<!-- component matched by the route will render here -->
<router-view></router-view>
</section>
{% endblock %}
{% end %}

{% block script_init %}
{{ super() }}
<script src="{{ static_url("dist/admin.js") }}"></script>
{% endblock %}
{% end %}
106 changes: 78 additions & 28 deletions remoteappmanager/templates/error.html
Original file line number Diff line number Diff line change
@@ -1,28 +1,78 @@
{% extends "page.html" %}

{% block login_widget %}
{% endblock %}

{% block main %}

<div class="error">
{% block h1_error %}
<h1>
{{status_code}} : {{status_message}}
</h1>
{% endblock h1_error %}
{% block error_detail %}
{% if message %}
<p>
{{message}}
</p>
{% endif %}
{% if message_html %}

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I couldn't find any other reference to message_html, maybe an old unused anymore variable ?

<p>
{{message_html | safe}}
</p>
{% endif %}
{% endblock error_detail %}
</div>

{% endblock %}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{% block title %}RemoteApp Manager{% end %}</title>
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">

<link rel="stylesheet" href="{{ static_url("dist/sharedDependencies.css")}}">

<script type="text/javascript">
// This will always be executed and create the basic ga function that
// does nothing
window.ga = function () {
(window.ga.q = window.ga.q || []).push(arguments);
};
window.ga.l = 1 * new Date();
window.GoogleAnalyticsObject = "ga";
</script>
{% if analytics is not None %}
<script src='https://www.google-analytics.com/analytics.js' async type="text/javascript"></script>
{% end %}
</head>

<body class="fixed hold-transition skin-blue sidebar-mini">

<noscript>
<div id='noscript'>
Jupyter Hub requires JavaScript.<br>
Please enable it to proceed.
</div>
</noscript>

<div class="wrapper" id="app">

<!-- Main Header -->
<header class="main-header">
<a href="#" class="logo">
<!-- logo for regular state and mobile devices -->
<span class="logo-lg"><b>Simphony</b>Remote</span>
</a>
</header>

<aside class="main-sidebar">
</aside>

<div class="content-wrapper">
<!-- Main content -->
<div class="error">
<h1>
{{status_code}} : {{status_message}}
</h1>
{% if message %}
<p>
{{message}}
</p>
{% end %}
</div>
</div>
</div>

<div id="error-dialog-container"></div>

<script src="{{ static_url("dist/sharedDependencies.js") }}"></script>

<script type="text/javascript">
window.apidata = {
base_url: "{{ base_url }}",
{% if analytics is not None %}
analytics: {
tracking_id: "{{ analytics['tracking_id'] }}"
},
{% end %}
}
</script>

</body>
</html>
Loading