--- ECHO_content/ECHO_helpers.py 2005/06/09 21:57:30 1.54 +++ ECHO_content/ECHO_helpers.py 2005/06/13 10:35:04 1.56 @@ -178,8 +178,19 @@ class ECHO_basis: def getMapAreas(self): """returns the list of MapAreas""" + forcetypes = self.REQUEST.get('map_force_types', None) + if forcetypes: + typelist = forcetypes.split(',') + else: + typelist = None + areas = [] # get all contained MapAreas - areas = [res[1] for res in self.ZopeFind(self, obj_metatypes=('MapArea'))] + for res in self.ZopeFind(self, obj_metatypes=('MapArea')): + area = res[1] + # check the allowed types + if typelist is not None and area.getType() not in typelist: + continue + areas.append(area) return areas def addMapArea(self, newarea): @@ -235,7 +246,7 @@ class ECHO_basis: area.setAngle(angle) area.setType(type) area.setPermanent(permanent) - # add new area + # add the "new" area if self.REQUEST.has_key('add'): coordstring = self.REQUEST.get('coords.new', '') coords = string.split(coordstring, ',') @@ -252,9 +263,15 @@ class ECHO_basis: def createJSAreas(self, areas): """create area calls for JavaScript""" + forceperm = self.REQUEST.get('map_force_permanent', None) js="\n" for ob in areas: - js+="""addArea('%s', 'overview', %s, '%s', '%s');\n"""%(ob.getFullId(),ob.getCoordString(),ob.getType(),ob.isPermanent()) + # check for force-permanent + if forceperm is not None: + perm = forceperm + else: + perm = ob.isPermanent() + js+="""addArea('%s', 'overview', %s, '%s', '%s');\n"""%(ob.getFullId(),ob.getCoordString(),ob.getType(),perm) return js def createMapHead(self): @@ -292,11 +309,11 @@ class ECHO_basis: tag = "" if bt.isN4: # N4 needs layer for highlighting - tag += '" else: # a-element - tag = '" @@ -322,6 +339,12 @@ class ECHO_basis: if float(rot) < 0: marksrc = circlesrc tag += ''%(link,marksrc,rot) + elif ob.isTypeText(): + # N4 - Text + tag += '
'%(id,id,id,link,target) + tag = ''%(id,id,id,link,target) if ob.isTypeArrow(): # DOM - Arrow rot = ob.angle