class Index: def onModuleLoad(self): self.remote_py = MyBlogService() # Create a FormPanel and point it at a service. self.form = FormPanel() # Create a panel to hold all of the form widgets. vp=VerticalPanel(BorderWidth=0,HorizontalAlignment=HasAlignment.ALIGN_CENTER,VerticalAlignment=HasAlignment.ALIGN_MIDDLE,Width="100%",Height="150px") self.form.setWidget(vp) header=HTML("<h2>LOGIN TO YOUR ACCOUNT</h2>") part1=header # Create a TextBox, giving it a name so that it will be submitted. self.userName = TextBox() self.userName.setName("userNameFormElement") self.userName.setPlaceholder("User Name") part2=self.userName self.password = PasswordTextBox() self.password.setName("passwordFormElement") self.password.setPlaceholder("Password") part3=self.password self.errorInfoLabel = Label() self.errorInfoLabel.setStyleName('error-info') part4=self.errorInfoLabel part4.setStyleName("errorlabel") # Add a 'submit' button. hpanel = HorizontalPanel(BorderWidth=0,HorizontalAlignment=HasAlignment.ALIGN_CENTER,VerticalAlignment=HasAlignment.ALIGN_MIDDLE,Width="100%",Height="50px") partb=Button("Login", self) partb.setStyleName('btn') image=Label("Don''t have account? Sign up") anchor = Anchor(Widget=image, Href='/signup.html') parta=anchor hpanel.add(partb) hpanel.add(parta) part5=hpanel part5.setStyleName("hpanel") vp.add(part1) vp.add(part2) vp.add(part3) vp.add(part4) vp.add(part5) vp.setStyleName("signup") # Add an event handler to the form. self.form.addFormHandler(self) RootPanel().add(self.form) def onClick(self, sender): if (len(self.userName.getText()) == 0 or len(self.password.getText()) == 0): self.errorInfoLabel.setText("Username or Password required") else: self.errorInfoLabel.setText('') self.authenticateUser() def authenticateUser(self): self.remote_py.callMethod('authenticateUser', [self.userName.getText(), self.password.getText()], self) def onRemoteResponse(self, response, requestInfo): self.errorInfoLabel.setText('') d = datetime.date.today() + datetime.timedelta(days=1) setCookie("LoggedInUser", response, d, path='/') loggedInUser = json.loads(response) if loggedInUser["is_superuser"] == True: Window.setLocation("/admin.html") else: Window.setLocation("/home.html") def onRemoteError(self, code, error_dict, requestInfo): if code == 401: self.errorInfoLabel.setText("Invalid Credentials. Please try again.")
class Signup: def onModuleLoad(self): self.form = FormPanel() self.remote_py = MyBlogService() self.form.setAction("/index.html") vp = VerticalPanel(BorderWidth=0, HorizontalAlignment=HasAlignment.ALIGN_CENTER, VerticalAlignment=HasAlignment.ALIGN_MIDDLE, Width="100%", Height="150px") self.form.setWidget(vp) header = HTML( "<h2>CREATE MY ACCOUNT</h2><h3>Welcome to signup form</h3>") part1 = header hpn = HorizontalPanel(BorderWidth=0, HorizontalAlignment=HasAlignment.ALIGN_LEFT, VerticalAlignment=HasAlignment.ALIGN_MIDDLE, Width="92%", Height="60px") self.fname = TextBox() self.fname.setName("fname") self.fname.setPlaceholder("First Name") hpn.add(self.fname) self.lname = TextBox() self.lname.setName("lname") self.lname.setPlaceholder("Last Name") hpn.add(self.lname) hpn.setCellWidth(self.fname, "70%") hpn.setCellWidth(self.lname, "30%") part2 = hpn self.uname = TextBox() self.uname.setName("uname") self.uname.setPlaceholder("User Name") part3 = self.uname self.password = PasswordTextBox() self.password.setName("passsignup") self.password.setPlaceholder("Choose a password") part4 = self.password self.rpassword = PasswordTextBox() self.rpassword.setName("rpasssignup") self.rpassword.setPlaceholder("Confirm your password") part5 = self.rpassword self.email = TextBox() self.email.setName("emailsignup") self.email.setPlaceholder("Enter your email address ") part6 = self.email self.errorlabel = Label() self.errorlabel.setStyleName("errorlabel") part7 = self.errorlabel hpanel = HorizontalPanel(BorderWidth=0, HorizontalAlignment=HasAlignment.ALIGN_CENTER, VerticalAlignment=HasAlignment.ALIGN_MIDDLE, Width="100%", Height="50px") partb = Button("Signup", self) partb.setStyleName('btn') image = Label("Already have account! Sign in") anchor = Anchor(Widget=image, Href='/index.html') parta = anchor hpanel.add(partb) hpanel.add(parta) hpanel.setStyleName("hpanel") part8 = hpanel vp.add(part1) vp.add(part2) vp.add(part3) vp.add(part4) vp.add(part5) vp.add(part6) vp.add(part7) vp.add(part8) vp.setCellHeight(part1, "5%") vp.setCellHeight(part2, "10%") vp.setCellHeight(part3, "10%") vp.setCellHeight(part4, "10%") vp.setCellHeight(part5, "10%") vp.setCellHeight(part6, "10%") vp.setCellHeight(part7, "10%") vp.setCellHeight(part8, "10%") vp.setStyleName("signup") self.form.addFormHandler(self) RootPanel().add(self.form) def onClick(self, sender): add = self.email.getText() match = re.match( '^[a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$', add) if (len(self.fname.getText()) == 0 or len(self.lname.getText()) == 0): self.errorlabel.setText("First Name or Last name can't be empty ") elif (len(self.uname.getText()) == 0): self.errorlabel.setText("Username can't be empty ") elif (len(self.password.getText()) == 0): self.errorlabel.setText("Password can't be empty ") elif (len(self.rpassword.getText()) == 0): self.errorlabel.setText("confirm your password") elif ((self.password.getText() != self.rpassword.getText())): self.errorlabel.setText("Password should be same!") elif match == None: self.errorlabel.setText("invalid email") else: self.errorlabel.setText('') self.createUser() def onSubmitComplete(self, event): Window.alert(event.getResults()) def createUser(self): self.remote_py.callMethod('createUser', [ self.fname.getText(), self.lname.getText(), self.uname.getText(), self.email.getText(), self.password.getText() ], self) def onRemoteResponse(self, response, requestInfo): self.errorlabel.setText('') Window.alert("Signed up successfully. Please login.") Window.setLocation("/index.html") def onRemoteError(self, code, error_dict, requestInfo): if code == 500: self.errorlabel.setText("user name already exists .")