root / snf-common / synnefo / lib / context_processors.py @ 79b5d61b
History | View | Annotate | Download (2.7 kB)
1 |
from django.utils.safestring import mark_safe |
---|---|
2 |
from django.conf import settings |
3 |
|
4 |
def cloudbar(request): |
5 |
"""
|
6 |
Django context processor that applies all cloudbar settings in response
|
7 |
context plus a ready to use pre rendered script html tag containing valid
|
8 |
javascript code for cloudbar to display.
|
9 |
|
10 |
To use it add ``synnefo.lib.context_processors.cloudbar`` in your project's
|
11 |
``TEMPLATE_CONTEXT_PROCESSORS setting`` (snf-webproject already does).
|
12 |
|
13 |
Then in your base html template::
|
14 |
|
15 |
<html>
|
16 |
....
|
17 |
<head>
|
18 |
...
|
19 |
{% if CLOUDBAR_ACTIVE %}
|
20 |
{{ CLOUDBAR_CODE }}
|
21 |
{% endif %}
|
22 |
</head>
|
23 |
<body>
|
24 |
....
|
25 |
</body>
|
26 |
</html>
|
27 |
|
28 |
|
29 |
"""
|
30 |
|
31 |
CB_ACTIVE = getattr(settings, 'CLOUDBAR_ACTIVE', True) |
32 |
CB_LOCATION = getattr(settings, 'CLOUDBAR_LOCATION', |
33 |
'https://accounts.okeanos.grnet.gr/static/im/cloudbar/')
|
34 |
CB_COOKIE_NAME = getattr(settings, 'CLOUDBAR_COOKIE_NAME', |
35 |
'okeanos_account')
|
36 |
CB_ACTIVE_SERVICE = getattr(settings, 'CLOUDBAR_ACTIVE_SERVICE', |
37 |
'cloud')
|
38 |
CB_SERVICES_URL = getattr(settings, 'CLOUDBAR_SERVICES_URL', |
39 |
'https://accounts.okeanos.grnet.gr/astakos/api/get_services')
|
40 |
CB_MENU_URL = getattr(settings, 'CLOUDBAR_MENU_URL', |
41 |
'https://accounts.okeanos.grnet.gr/astakos/api/get_menu')
|
42 |
CB_HEIGHT = getattr(settings, 'CLOUDBAR_HEIGHT', |
43 |
'35')
|
44 |
CB_BGCOLOR = getattr(settings, 'CLOUDBAR_BACKGROUND_COLOR', |
45 |
'#000000')
|
46 |
|
47 |
CB_CODE = """
|
48 |
<script type="text/javascript">
|
49 |
var CLOUDBAR_LOCATION = "%(location)s";
|
50 |
var CLOUDBAR_COOKIE_NAME = "%(cookie_name)s";
|
51 |
var CLOUDBAR_ACTIVE_SERVICE = "%(active_service)s";
|
52 |
var GET_SERVICES_URL = "%(services_url)s";
|
53 |
var GET_MENU_URL = "%(menu_url)s";
|
54 |
var CLOUDBAR_HEIGHT = '%(height)s';
|
55 |
|
56 |
$(document).ready(function(){
|
57 |
$.getScript(CLOUDBAR_LOCATION + 'cloudbar.js');
|
58 |
});
|
59 |
|
60 |
</script>
|
61 |
<style>
|
62 |
body {
|
63 |
border-top: %(height)spx solid %(bg_color)s;
|
64 |
}
|
65 |
body .cloudbar {
|
66 |
height: %(height)spx;
|
67 |
}
|
68 |
</style>
|
69 |
""" % {'location': CB_LOCATION, |
70 |
'active_service': CB_ACTIVE_SERVICE,
|
71 |
'cookie_name': CB_COOKIE_NAME,
|
72 |
'services_url': CB_SERVICES_URL,
|
73 |
'menu_url': CB_MENU_URL,
|
74 |
'height': str(CB_HEIGHT), |
75 |
'bg_color': CB_BGCOLOR}
|
76 |
|
77 |
CB_CODE = mark_safe(CB_CODE) |
78 |
|
79 |
return {
|
80 |
'CLOUDBAR_ACTIVE': CB_ACTIVE,
|
81 |
'CLOUDBAR_LOCATION': CB_LOCATION,
|
82 |
'CLOUDBAR_COOKIE_NAME': CB_COOKIE_NAME,
|
83 |
'CLOUDBAR_ACTIVE_SERVICE': CB_ACTIVE_SERVICE,
|
84 |
'CLOUDBAR_SERVICES_URL': CB_SERVICES_URL,
|
85 |
'CLOUDBAR_MENU_URL': CB_MENU_URL,
|
86 |
'CLOUDBAR_CODE': CB_CODE
|
87 |
} |
88 |
|