コード例 #1
0
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.")
コード例 #2
0
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 .")