示例#1
0
class FormPanelExample:
    def onModuleLoad(self):
        # Create a FormPanel and point it at a service.
        self.form = FormPanel()
        self.form.setAction("/chat-service/test/")

        # Because we're going to add a FileUpload widget, we'll need to set the
        # form to use the POST method, and multipart MIME encoding.
        self.form.setEncoding(FormPanel.ENCODING_MULTIPART)
        self.form.setMethod(FormPanel.METHOD_POST)

        # Create a panel to hold all of the form widgets.
        panel = VerticalPanel()
        self.form.setWidget(panel)

        # Create a TextBox, giving it a name so that it will be submitted.
        self.tb = TextBox()
        self.tb.setName("textBoxFormElement")
        panel.add(self.tb)

        # Create a ListBox, giving it a name and some values to be associated with
        # its options.
        lb = ListBox()
        lb.setName("listBoxFormElement")
        lb.addItem("foo", "fooValue")
        lb.addItem("bar", "barValue")
        lb.addItem("baz", "bazValue")
        panel.add(lb)

        # Create a FileUpload widget.
        upload = FileUpload()
        upload.setName("uploadFormElement")
        panel.add(upload)

        # Add a 'submit' button.
        panel.add(Button("Submit", self))

        # Add an event handler to the form.
        self.form.addFormHandler(self)

        RootPanel().add(self.form)

    def onClick(self, sender):
        self.form.submit()

    def onSubmitComplete(self, event):
        # When the form submission is successfully completed, this event is
        # fired. Assuming the service returned a response of type text/plain,
        # we can get the result text here (see the FormPanel documentation for
        # further explanation).
        Window.alert(event.getResults())

    def onSubmit(self, event):
        # This event is fired just before the form is submitted. We can take
        # this opportunity to perform validation.
        if self.tb.getText().length == 0:
            Window.alert("The text box must not be empty")
            event.setCancelled(True)
示例#2
0
class FormPanelExample:
    def onModuleLoad(self):
        # Create a FormPanel and point it at a service.
        self.form = FormPanel()
        self.form.setAction("/chat-service/test/")

        # Because we're going to add a FileUpload widget, we'll need to set the
        # form to use the POST method, and multipart MIME encoding.
        self.form.setEncoding(FormPanel.ENCODING_MULTIPART)
        self.form.setMethod(FormPanel.METHOD_POST)

        # Create a panel to hold all of the form widgets.
        panel = VerticalPanel()
        self.form.setWidget(panel)

        # Create a TextBox, giving it a name so that it will be submitted.
        self.tb = TextBox()
        self.tb.setName("textBoxFormElement")
        panel.add(self.tb)

        # Create a ListBox, giving it a name and some values to be associated with
        # its options.
        lb = ListBox()
        lb.setName("listBoxFormElement")
        lb.addItem("foo", "fooValue")
        lb.addItem("bar", "barValue")
        lb.addItem("baz", "bazValue")
        panel.add(lb)

        # Create a FileUpload widget.
        upload = FileUpload()
        upload.setName("uploadFormElement")
        panel.add(upload)

        # Add a 'submit' button.
        panel.add(Button("Submit", self))

        # Add an event handler to the form.
        self.form.addFormHandler(self)

        RootPanel().add(self.form)

    def onClick(self, sender):
        self.form.submit()

    def onSubmitComplete(self, event):
        # When the form submission is successfully completed, this event is
        # fired. Assuming the service returned a response of type text/plain,
        # we can get the result text here (see the FormPanel documentation for
        # further explanation).
        Window.alert(event.getResults())

    def onSubmit(self, event):
        # This event is fired just before the form is submitted. We can take
        # this opportunity to perform validation.
        if (len(self.tb.getText()) == 0):
            Window.alert("The text box must not be empty")
            event.setCancelled(True)
示例#3
0
 def addRow(self, timeVO=None):
     self.rows += 1
     col = -1
     for name, maxLength, visibleLength in self.columns:
         col += 1
         textBox = TextBox()
         textBox.setText("")
         textBox.col = col
         textBox.row = self.rows
         textBox.addChangeListener(self.checkValid)
         textBox.addKeyboardListener(self)
         textBox.addFocusListener(self)
         textBox.setName(name)
         if not maxLength is None:
             textBox.setMaxLength(maxLength)
         if not visibleLength is None:
             textBox.setVisibleLength(visibleLength)
         self.setWidget(self.rows, col, textBox)
     if not timeVO is None:
         self.setRow(self.rows, timeVO)
示例#4
0
文件: TimeGrid.py 项目: Afey/pyjs
 def addRow(self, timeVO = None):
     self.rows += 1
     col = -1
     for name, maxLength, visibleLength in self.columns:
         col += 1
         textBox = TextBox()
         textBox.setText("")
         textBox.col = col
         textBox.row = self.rows
         textBox.addChangeListener(self.checkValid)
         textBox.addKeyboardListener(self)
         textBox.addFocusListener(self)
         textBox.setName(name)
         if not maxLength is None:
             textBox.setMaxLength(maxLength)
         if not visibleLength is None:
             textBox.setVisibleLength(visibleLength)
         self.setWidget(self.rows, col, textBox)
     if not timeVO is None:
         self.setRow(self.rows, timeVO)
示例#5
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.")
示例#6
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 .")