runtime/NevowServer.py
changeset 2266 ed415982a9aa
parent 2219 73042b2d8d65
child 2267 e83aa36b6627
equal deleted inserted replaced
2226:addb6eff8d94 2266:ed415982a9aa
    28 import os
    28 import os
    29 import platform
    29 import platform
    30 from zope.interface import implements
    30 from zope.interface import implements
    31 from nevow import appserver, inevow, tags, loaders, athena, url, rend
    31 from nevow import appserver, inevow, tags, loaders, athena, url, rend
    32 from nevow.page import renderer
    32 from nevow.page import renderer
       
    33 from nevow.static import File
    33 from formless import annotate
    34 from formless import annotate
    34 from formless import webform
    35 from formless import webform
    35 from formless import configurable
    36 from formless import configurable
    36 from twisted.internet import reactor
    37 from twisted.internet import reactor
    37 
    38 
    74 
    75 
    75 
    76 
    76 class MainPage(athena.LiveElement):
    77 class MainPage(athena.LiveElement):
    77     jsClass = u"WebInterface.PLC"
    78     jsClass = u"WebInterface.PLC"
    78     docFactory = loaders.stan(
    79     docFactory = loaders.stan(
    79         tags.div(render=tags.directive('liveElement'))[
    80         tags.invisible[
    80             tags.div(id='content')[
    81             tags.div(render=tags.directive('liveElement'))[
    81                 tags.div(render=tags.directive('PLCElement'))]
    82                 tags.div(id='content')[
    82         ])
    83                     tags.div(render=tags.directive('PLCElement'))]
       
    84             ],
       
    85             tags.a(href='settings')['Settings']])
    83 
    86 
    84     def __init__(self, *a, **kw):
    87     def __init__(self, *a, **kw):
    85         athena.LiveElement.__init__(self, *a, **kw)
    88         athena.LiveElement.__init__(self, *a, **kw)
    86         self.pcl_state = False
    89         self.pcl_state = False
    87         self.HMI = None
    90         self.HMI = None
   178     # We deserve a slash
   181     # We deserve a slash
   179     addSlash = True
   182     addSlash = True
   180     
   183     
   181     # This makes webform_css url answer some default CSS
   184     # This makes webform_css url answer some default CSS
   182     child_webform_css = webform.defaultCSS
   185     child_webform_css = webform.defaultCSS
       
   186     child_webinterface_css = File(paths.AbsNeighbourFile(__file__, 'webinterface.css'), 'text/css')
   183 
   187 
   184     implements(ISettings)
   188     implements(ISettings)
   185 
   189 
   186 
   190 
   187     docFactory = loaders.stan([tags.html[
   191     docFactory = loaders.stan([tags.html[
   188                                    tags.head[
   192                                    tags.head[
   189                                        tags.title[_("Beremiz Runtime Settings")],
   193                                        tags.title[_("Beremiz Runtime Settings")],
   190                                        tags.link(rel='stylesheet',
   194                                        tags.link(rel='stylesheet',
   191                                                  type='text/css', 
   195                                                  type='text/css', 
   192                                                  href=url.here.child("webform_css"))
   196                                                  href=url.here.child("webform_css")),
       
   197                                        tags.link(rel='stylesheet',
       
   198                                                  type='text/css',
       
   199                                                  href=url.here.child("webinterface_css"))
   193                                    ],
   200                                    ],
   194                                    tags.body[ 
   201                                    tags.body[ 
       
   202                                        tags.a(href='/')['back'],
   195                                        tags.h1["Runtime settings:"],
   203                                        tags.h1["Runtime settings:"],
   196                                        webform.renderForms('staticSettings'),
   204                                        webform.renderForms('staticSettings'),
   197                                        tags.h2["Extensions settings:"],
   205                                        tags.h1["Extensions settings:"],
   198                                        webform.renderForms('dynamicSettings'),
   206                                        webform.renderForms('dynamicSettings'),
   199                                    ]]])
   207                                    ]]])
   200 
   208 
   201     def configurable_staticSettings(self, ctx):
   209     def configurable_staticSettings(self, ctx):
   202         return configurable.TypedInterfaceConfigurable(self)
   210         return configurable.TypedInterfaceConfigurable(self)