]> git.ipfire.org Git - ipfire.org.git/blob - src/web/ui_modules.py
b81aeb21f42174873c44df7c1adba6a355b1723d
[ipfire.org.git] / src / web / ui_modules.py
1 #!/usr/bin/python
2
3 import tornado.web
4
5 from .. import database
6
7 class UIModule(tornado.web.UIModule):
8 @property
9 def backend(self):
10 return self.handler.backend
11
12
13 class IPFireLogoModule(UIModule):
14 def render(self, suffix=None):
15 return self.render_string("modules/ipfire-logo.html", suffix=suffix)
16
17
18 class OpenGraphModule(UIModule):
19 def render(self, title, **kwargs):
20 properties = {
21 "site_name" : "IPFire.org",
22 "title" : title,
23 "type" : "website",
24 "url" : self.request.full_url(),
25 "image" : self.handler.static_url("img/ipfire-tux.png", include_host=True),
26 "logo" : self.handler.static_url("img/ipfire-tux.png", include_host=True),
27 "locale" : self.locale.code,
28 } | kwargs
29
30 return self.render_string("modules/open-graph.html", properties=properties)
31
32
33 class MarkdownModule(UIModule):
34 def render(self, markdown):
35 return self.backend.blog._render_text(markdown)
36
37
38 class MapModule(UIModule):
39 def render(self, search):
40 return self.render_string("modules/map.html", search=search)
41
42 def css_files(self):
43 return (
44 "css/leaflet.css",
45 "css/Control.Geocoder.css",
46 )
47
48 def javascript_files(self):
49 return (
50 "js/leaflet.min.js",
51 "js/Control.Geocoder.min.js",
52 "js/maps.js",
53 )
54
55
56 class ProgressBarModule(UIModule):
57 def render(self, value, colour=None):
58 value *= 100
59
60 return self.render_string("modules/progress-bar.html",
61 colour=colour, value=value)