equal
deleted
inserted
replaced
27 |
27 |
28 import os |
28 import os |
29 import collections |
29 import collections |
30 import shutil |
30 import shutil |
31 import platform as platform_module |
31 import platform as platform_module |
32 from zope.interface import implements |
32 from zope.interface import implementer |
33 from nevow import appserver, inevow, tags, loaders, athena, url, rend |
33 from nevow import appserver, inevow, tags, loaders, athena, url, rend |
34 from nevow.page import renderer |
34 from nevow.page import renderer |
35 from nevow.static import File |
35 from nevow.static import File |
36 from formless import annotate |
36 from formless import annotate |
37 from formless import webform |
37 from formless import webform |
42 from runtime.loglevels import LogLevels, LogLevelsDict |
42 from runtime.loglevels import LogLevels, LogLevelsDict |
43 from runtime import MainWorker, GetPLCObjectSingleton |
43 from runtime import MainWorker, GetPLCObjectSingleton |
44 |
44 |
45 PAGE_TITLE = 'Beremiz Runtime Web Interface' |
45 PAGE_TITLE = 'Beremiz Runtime Web Interface' |
46 |
46 |
47 xhtml_header = '''<?xml version="1.0" encoding="utf-8"?> |
47 xhtml_header = b'''<?xml version="1.0" encoding="utf-8"?> |
48 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" |
48 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" |
49 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
49 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
50 ''' |
50 ''' |
51 |
51 |
52 WorkingDir = None |
52 WorkingDir = None |
246 customSettingsURLs = { |
246 customSettingsURLs = { |
247 } |
247 } |
248 |
248 |
249 extensions_settings_od = collections.OrderedDict() |
249 extensions_settings_od = collections.OrderedDict() |
250 |
250 |
|
251 @implementer(ISettings) |
251 class SettingsPage(rend.Page): |
252 class SettingsPage(rend.Page): |
252 # We deserve a slash |
253 # We deserve a slash |
253 addSlash = True |
254 addSlash = True |
254 |
255 |
255 # This makes webform_css url answer some default CSS |
256 # This makes webform_css url answer some default CSS |
256 child_webform_css = webform.defaultCSS |
257 child_webform_css = webform.defaultCSS |
257 child_webinterface_css = File(paths.AbsNeighbourFile(__file__, 'webinterface.css'), 'text/css') |
258 child_webinterface_css = File(paths.AbsNeighbourFile(__file__, 'webinterface.css'), 'text/css') |
258 |
|
259 implements(ISettings) |
|
260 |
259 |
261 def __getattr__(self, name): |
260 def __getattr__(self, name): |
262 global extensions_settings_od |
261 global extensions_settings_od |
263 if name.startswith('configurable_'): |
262 if name.startswith('configurable_'): |
264 token = name[13:] |
263 token = name[13:] |