kivyblocks/kivyblocks/login.py
2020-02-26 17:24:58 +08:00

68 lines
1.6 KiB
Python

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",
"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.initflag = False
self.bind(size=self.buildContent,
pos=self.buildContent)
def buildContent(self,o,size):
print('build Content. ....')
if self.initflag:
return
print('build Content ....... ....')
self.initflag = True
app = App.get_running_app()
self.content = app.blocks.widgetBuild(logformdesc)
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)
login_url = '%s%s' % (app.config.uihome, app.config.login_url)
x = app.hc.get(login_url)
print('login return=', x, login_url, authinfo)
def on_cancel(self,o,v):
print('login() on_cancel fired .....')
self.dismiss()