Esempio n. 1
0
 def handle_pageUnloaded(self, ctx): 
     """ 	
     Called after a refresh or window close. Save the page 
     """
     print 'Page Unloaded'  	
     self.client.send(js.alert('Page Unloaded Matey')) 
     self.package.save(self.config.configDir/'unsavedWork.elp', True) 
Esempio n. 2
0
    def recieveFieldData(self, client, fieldId, value, total, onDone=None):
        """
        Called by client to give us a value from a certain field
        """
        total = int(total)
        self.fieldsReceived.add(fieldId)
        obj, name = self.fieldId2obj(fieldId)
        # Decode the value
        decoded = ''
        toSearch = value

        def getMatch():
            if toSearch and toSearch[0] == '%':
                match1 = self.reUni.search(toSearch)
                match2 = self.reChr.search(toSearch)
                if match1 and match2:
                    if match1.start() < match2.start():
                        return match1
                    else:
                        return match2
                else:
                    return match1 or match2
            else:
                return self.reRaw.search(toSearch)

        match = getMatch()
        while match:
            num = match.groups()[-1]
            if len(num) > 1:
                decoded += unichr(int(num, 16))
            else:
                decoded += num
            toSearch = toSearch[match.end():]
            match = getMatch()
        # Check the field type
        if fieldId in self.booleanFieldNames:
            setattr(obj, name, decoded[0].lower() == 't')
        elif fieldId in self.imgFieldNames:
            if not decoded.startswith("resources"):
                setattr(obj, name, toUnicode(decoded))
        else:
            # Must be a string
            setattr(obj, name, toUnicode(decoded))
        client.sendScript(
            js('document.getElementById("%s").style.color = "black"' %
               fieldId))
        if len(self.fieldsReceived) == total:
            self.fieldsReceived = set()
            client.sendScript(
                js.alert((u"%s" % _('Settings saved')).encode('utf8')))
            if onDone:
                client.sendScript(js(onDone))
Esempio n. 3
0
 def recieveFieldData(self, client, fieldId, value, total, onDone=None):
     """
     Called by client to give us a value from a certain field
     """
     total = int(total)
     self.fieldsReceived.add(fieldId)
     obj, name = self.fieldId2obj(fieldId)
     # Decode the value
     decoded = ''
     toSearch = value
     def getMatch():
         if toSearch and toSearch[0] == '%':
             match1 = self.reUni.search(toSearch)
             match2 = self.reChr.search(toSearch)
             if match1 and match2:
                 if match1.start() < match2.start():
                     return match1
                 else:
                     return match2
             else:
                 return match1 or match2
         else:
             return self.reRaw.search(toSearch)
     match = getMatch()
     while match:
         num = match.groups()[-1]
         if len(num) > 1:
             decoded += unichr(int(num, 16))
         else:
             decoded += num
         toSearch = toSearch[match.end():]
         match = getMatch()
     # Check the field type
     if fieldId in self.booleanFieldNames:
         setattr(obj, name, decoded[0].lower() == 't')
     elif fieldId in self.imgFieldNames:
         if not decoded.startswith("resources"):
             setattr(obj, name, toUnicode(decoded))
     else:
         # Must be a string
         setattr(obj, name, toUnicode(decoded))
     client.sendScript(js(
         'document.getElementById("%s").style.color = "black"' % fieldId))
     if len(self.fieldsReceived) == total:
         self.fieldsReceived = set()
         client.sendScript(js.alert(
             (u"%s" % _('Settings saved')).encode('utf8')))
         if onDone:
             client.sendScript(js(onDone))
Esempio n. 4
0
    def recieveFieldData(self, client, fieldId, value, number, total):
        """
        Called by client to give us a value from a certain field
        """
        number = int(number)
        total = int(total)
        if number == 0:
            self.fieldsReceived = set([0])
        else:
            self.fieldsReceived.add(fieldId)
        obj, name = self.fieldId2obj(fieldId)
        decoded = ""
        toSearch = value

        def getMatch():
            if toSearch and toSearch[0] == "%":
                match1 = self.reUni.search(toSearch)
                match2 = self.reChr.search(toSearch)
                if match1 and match2:
                    if match1.start() < match2.start():
                        return match1
                    else:
                        return match2
                else:
                    return match1 or match2
            else:
                return self.reRaw.search(toSearch)

        match = getMatch()
        while match:
            num = match.groups()[-1]
            if len(num) > 1:
                decoded += unichr(int(num, 16))
            else:
                decoded += num
            toSearch = toSearch[match.end() :]
            match = getMatch()
        if fieldId in self.booleanFieldNames:
            setattr(obj, name, decoded[0].lower() == "t")
        else:
            setattr(obj, name, toUnicode(decoded))
        client.sendScript(js('document.getElementById("%s").style.color = "black"' % fieldId))
        if len(self.fieldsReceived) == total:
            client.sendScript(js.alert((u"%s" % _("Settings saved")).encode("utf8")))