def __init__(self): Sink.__init__(self) disabledButton = Button("Disabled Button") disabledCheck = CheckBox("Disabled Check") normalButton = Button("Normal Button") normalCheck = CheckBox("Normal Check") panel = VerticalPanel() radio0 = RadioButton("group0", "Choice 0") radio1 = RadioButton("group0", "Choice 1") radio2 = RadioButton("group0", "Choice 2 (Disabled)") radio3 = RadioButton("group0", "Choice 3") hp = HorizontalPanel() panel.add(hp) hp.setSpacing(8) hp.add(normalButton) hp.add(disabledButton) hp = HorizontalPanel() panel.add(hp) hp.setSpacing(8) hp.add(normalCheck) hp.add(disabledCheck) hp = HorizontalPanel() panel.add(hp) hp.setSpacing(8) hp.add(radio0) hp.add(radio1) hp.add(radio2) hp.add(radio3) disabledButton.setEnabled(False) disabledCheck.setEnabled(False) radio2.setEnabled(False) panel.setSpacing(8) self.initWidget(panel)
class UserTab(EntityTab): def __init__(self,app, uid): global gw EntityTab.__init__(self, app) self.table = FlexTable() self.uid = uid self.load() def load(self): global gw if self.uid == -1: self.setup(None) else: gw.getUserDetails(self.app.cookie, self.uid, self) def setup(self, x): edit = self.uid == self.app.uid or self.app.admin if not x: x = {'id': -1, 'handle': '', 'name': '' , 'admin': '', 'email': ''} self.uid = x['id'] self.name = TextBox() self.name.setText(x['name']) self.email = TextBox() self.email.setText(x['email']) self.password = PasswordTextBox() self.passwordRepeat = PasswordTextBox() self.handle = TextBox() self.admin = CheckBox() self.admin.setChecked( x['admin'] ) self.admin.setEnabled( self.app.admin ) self.table.setText(0,0, "ID"); self.table.setText(0,1, x['id']) self.table.setText(1,0, "Handle") if x['id'] == -1: self.table.setWidget(1,1, self.handle) else: self.table.setText(1,1, x['handle']) self.table.setText(2,0, "Name"); if edit: self.table.setWidget(2,1, self.name) else: self.table.setText(2,1, x['name']) self.table.setText(3,0, "Email") if edit: self.table.setWidget(3,1, self.email) else: self.table.setText(3,1, x['email']) self.table.setText(4,0, "Admin"); self.table.setWidget(4,1, self.admin) if edit: self.table.setText(5,0, "Password"); self.table.setWidget(5,1, self.password) self.table.setText(6,0, "Password Repeat"); self.table.setWidget(6,1, self.passwordRepeat) self.saveBtn = Button("Save",self.save) self.table.setWidget(7,1, self.saveBtn) if self.app.admin: self.table.setWidget(8,1, Button("Remove", self.delete)) if self.uid == -1: self.add('New user') else: self.add(x['handle']) def onUpdate(self, response, request_info): self.uid = response self.load() self.app.usersTab.reload() def save(self, _): global gw pwd="" if self.password.getText() != "" or self.passwordRepeat.getText() != "": if self.password.getText() != self.passwordRepeat.getText(): Window.alert("Passwords differ"); return pwd = pwhash(self.password.getText()) gw.updateUser(self.app.cookie, self.uid, self.handle.getText(), self.name.getText(), pwd, self.admin.isChecked(), self.email.getText(), RPCCall(self.onUpdate)) def onDelete(self, response, request_info): self.app.usersTab.reload() self.remove() def delete(self,_): global gw gw.deleteUser(self.app.cookie, self.uid, RPCCall(self.onDelete) ) def onRemoteResponse(self, response, request_info): self.setup(response)