66 lines
1.4 KiB
Python
66 lines
1.4 KiB
Python
from traceback import print_exc
|
|
from kivy.logger import Logger
|
|
from kivy.factory import Factory
|
|
from kivy.app import App
|
|
from kivy.core.window import Window
|
|
from kivy.uix.popup import Popup
|
|
from appPublic.Singleton import SingletonDecorator
|
|
from appPublic.jsonConfig import getConfig
|
|
from appPublic.registerfunction import RegisterFunction
|
|
logformdesc = {
|
|
"widgettype":"Form",
|
|
"options":{
|
|
"cols":1,
|
|
"labelwidth":0.4,
|
|
"textsize":1,
|
|
"inputheight":4,
|
|
"fields":[
|
|
{
|
|
"name":"userid",
|
|
"label":"user name",
|
|
"datatype":"str",
|
|
"required":True,
|
|
"uitype":"string"
|
|
},
|
|
{
|
|
"name":"passwd",
|
|
"label":"Password",
|
|
"datatype":"str",
|
|
"uitype":"password"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
@SingletonDecorator
|
|
class LoginForm(Popup):
|
|
def __init__(self):
|
|
super().__init__(size_hint=(0.8,0.8))
|
|
self.title = 'login'
|
|
self.buildContent(None,None)
|
|
self.register_event_type('on_setupuser')
|
|
|
|
def on_setupuser(self,o=None):
|
|
return
|
|
|
|
def buildContent(self,o,size):
|
|
self.content = Factory.Form(**logformdesc['options'])
|
|
self.content.bind(on_submit=self.on_submit)
|
|
|
|
def on_submit(self,o,userinfo):
|
|
print('login(),on_submit fired ....')
|
|
self.dismiss()
|
|
print('userinfo=',userinfo)
|
|
app = App.get_running_app()
|
|
|
|
if userinfo.get('passwd',False):
|
|
userinfo['authmethod'] = 'password'
|
|
authinfo = app.serverinfo.encode(userinfo)
|
|
self.dispatch('on_setupuser')
|
|
|
|
def on_cancel(self,o,v):
|
|
print('login() on_cancel fired .....')
|
|
self.dismiss()
|
|
|
|
|