Simplify Webinterface Configuration Dialog a LOT!
[vuplus_dvbapp-plugin] / webinterface / src / WebIfConfig.py
1 Version = '$Header$';
2
3 from __init__ import _
4
5 from enigma import eListboxPythonMultiContent, gFont
6 from Screens.Screen import Screen
7 from Screens.MessageBox import MessageBox
8
9 from Components.config import config, getConfigListEntry, ConfigSubsection, ConfigInteger, ConfigYesNo, ConfigText, ConfigSelection
10 from Components.ConfigList import ConfigListScreen
11 from Components.Sources.StaticText import StaticText
12 from Components.MenuList import MenuList
13 from Components.MultiContent import MultiContentEntryText
14
15 from Components.ActionMap import ActionMap
16                         
17 class WebIfConfigScreen(ConfigListScreen, Screen):
18         skin = """
19                 <screen name="WebIfConfigScreen" position="center,center" size="560,400" title="Webinterface: Main Setup">
20                         <ePixmap pixmap="skin_default/buttons/red.png" position="0,0" size="140,40" alphatest="on" />
21                         <ePixmap pixmap="skin_default/buttons/green.png" position="140,0" size="140,40" alphatest="on" />
22                         <widget source="key_red" render="Label" position="0,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
23                         <widget source="key_green" render="Label" position="140,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
24                         <widget name="config" position="5,50" size="550,360" scrollbarMode="showOnDemand" zPosition="1"/>
25                 </screen>"""
26
27         def __init__(self, session, args=0):
28                 Screen.__init__(self, session)
29                 
30
31                 ConfigListScreen.__init__(self, [])             
32                 self.createSetup()
33                 
34                 self["key_red"] = StaticText(_("Cancel"))
35                 self["key_green"] = StaticText(_("OK"))
36                 self["key_yellow"] = StaticText("")
37                 self["setupActions"] = ActionMap(["SetupActions", "ColorActions"],
38                 {
39                         "red": self.cancel,
40                         "green": self.save,
41                         "save": self.save,
42                         "cancel": self.cancel,
43                         "ok": self.save,
44                 }, -2)
45                                 
46                 self.onLayoutFinish.append(self.layoutFinished)
47         
48         def keyLeft(self):
49                 ConfigListScreen.keyLeft(self)
50                 self.createSetup()
51
52         def keyRight(self):
53                 ConfigListScreen.keyRight(self)
54                 self.createSetup()
55                 
56         def createSetup(self):
57                 list = [
58                         getConfigListEntry(_("Start Webinterface"), config.plugins.Webinterface.enabled),
59                         getConfigListEntry(_("Enable /media"), config.plugins.Webinterface.includemedia),
60                         getConfigListEntry(_("Allow zapping via Webinterface"), config.plugins.Webinterface.allowzapping),
61                         getConfigListEntry(_("Autowrite timer"), config.plugins.Webinterface.autowritetimer),
62                         getConfigListEntry(_("Load movie-length"), config.plugins.Webinterface.loadmovielength),
63                         getConfigListEntry(_("Enable HTTP Access"), config.plugins.Webinterface.http.enabled)
64                 ]
65                 
66                 if config.plugins.Webinterface.http.enabled.value == True:
67                         sublist = [
68                                 getConfigListEntry(_("Enable Authentication (HTTP)"), config.plugins.Webinterface.http.auth)                            
69                         ]
70                         
71                         list.extend(sublist)
72                 
73                 list.append( getConfigListEntry(_("Enable HTTPS Access"), config.plugins.Webinterface.https.enabled) )
74                 
75                 if config.plugins.Webinterface.https.enabled.value == True:
76                         sublist = [
77                                 getConfigListEntry(_("Listening Port (HTTPS)"), config.plugins.Webinterface.https.port),
78                                 getConfigListEntry(_("Enable Authentication (HTTPS)"), config.plugins.Webinterface.https.auth)                          
79                         ]
80                         
81                         list.extend(sublist)
82                 
83                 #Auth for Streaming (127.0.0.1 Listener)
84                 list.append(getConfigListEntry(_("Enable Streaming Authentication"), config.plugins.Webinterface.streamauth))
85                 
86                 self["config"].list = list
87                 self["config"].l.setList(list)
88                 
89         def layoutFinished(self):
90                 self.setTitle(_("Webinterface: Main Setup"))
91
92         def save(self):
93                 print "[Webinterface] Saving Configuration"
94                 
95                 for x in self["config"].list:
96                         x[1].save()
97                 self.close(True, self.session)
98
99         def cancel(self):
100                 print "[Webinterface] Cancel setup changes"
101                 for x in self["config"].list:
102                         x[1].cancel()
103                 self.close(False, self.session)
104
105