]>
Commit | Line | Data |
---|---|---|
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) |