runtime/NevowServer.py
changeset 2700 144b149cded4
parent 2672 4bc60e426dd6
child 2701 f4dac054cfa3
equal deleted inserted replaced
2699:467ff0e58327 2700:144b149cded4
    37 from formless import configurable
    37 from formless import configurable
    38 from twisted.internet import reactor
    38 from twisted.internet import reactor
    39 
    39 
    40 import util.paths as paths
    40 import util.paths as paths
    41 from runtime.loglevels import LogLevels, LogLevelsDict
    41 from runtime.loglevels import LogLevels, LogLevelsDict
       
    42 from runtime import MainWorker, GetPLCObjectSingleton
    42 
    43 
    43 PAGE_TITLE = 'Beremiz Runtime Web Interface'
    44 PAGE_TITLE = 'Beremiz Runtime Web Interface'
    44 
    45 
    45 xhtml_header = '''<?xml version="1.0" encoding="utf-8"?>
    46 xhtml_header = '''<?xml version="1.0" encoding="utf-8"?>
    46 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    47 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
   215     sendLogMessage = annotate.autocallable(sendLogMessage,
   216     sendLogMessage = annotate.autocallable(sendLogMessage,
   216                                            label=_(
   217                                            label=_(
   217                                                "Send a message to the log"),
   218                                                "Send a message to the log"),
   218                                            action=_("Send"))
   219                                            action=_("Send"))
   219 
   220 
       
   221     # pylint: disable=no-self-argument
       
   222     def restartOrResetPLC(
       
   223             ctx=annotate.Context(),
       
   224             action=annotate.Choice(["Restart", "Reset"],
       
   225                                   required=True,
       
   226                                   label=_("Action"))):
       
   227         pass
       
   228 
       
   229     restartOrResetPLC = annotate.autocallable(restartOrResetPLC,
       
   230                                            label=_(
       
   231                                                "Restart or Reset"),
       
   232                                            action=_("Do"))
   220 
   233 
   221 customSettingsURLs = {
   234 customSettingsURLs = {
   222 }
   235 }
   223 
   236 
   224 extensions_settings_od = collections.OrderedDict()
   237 extensions_settings_od = collections.OrderedDict()
   282         """
   295         """
   283         return ConfigurableSettings
   296         return ConfigurableSettings
   284 
   297 
   285     def sendLogMessage(self, level, message, **kwargs):
   298     def sendLogMessage(self, level, message, **kwargs):
   286         level = LogLevelsDict[level]
   299         level = LogLevelsDict[level]
   287         if _PySrv.plcobj is not None:
   300         GetPLCObjectSingleton().LogMessage(
   288             _PySrv.plcobj.LogMessage(
   301             level, "Web form log message: " + message)
   289                 level, "Web form log message: " + message)
   302 
       
   303     def restartOrResetPLC(self, action, **kwargs):
       
   304         if(action == "Reset"):
       
   305             GetPLCObjectSingleton().RepairPLC()
       
   306         else:
       
   307             MainWorker.quit()
       
   308             
       
   309         
   290 
   310 
   291     def locateChild(self, ctx, segments):
   311     def locateChild(self, ctx, segments):
   292         if segments[0] in customSettingsURLs:
   312         if segments[0] in customSettingsURLs:
   293             return customSettingsURLs[segments[0]](ctx, segments)
   313             return customSettingsURLs[segments[0]](ctx, segments)
   294         return super(SettingsPage, self).locateChild(ctx, segments)
   314         return super(SettingsPage, self).locateChild(ctx, segments)