--- ECHO_content/ECHO_helpers.py 2005/06/09 11:12:59 1.51
+++ 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):
@@ -229,19 +240,22 @@ class ECHO_basis:
coords = string.split(coordstring, ',')
angle = self.REQUEST.get('angle.'+id, '0')
type = self.REQUEST.get('type.'+id, 'area')
+ permanent = self.REQUEST.get('permanent.'+id, '')
if len(coords) == 4:
area.setCoordString(coordstring)
area.setAngle(angle)
area.setType(type)
- # add new area
+ area.setPermanent(permanent)
+ # add the "new" area
if self.REQUEST.has_key('add'):
coordstring = self.REQUEST.get('coords.new', '')
coords = string.split(coordstring, ',')
angle = self.REQUEST.get('angle.new', '0')
type = self.REQUEST.get('type.new', 'area')
+ permanent = self.REQUEST.get('permanent.new', '')
if len(coords) == 4:
coords.append(angle)
- area = MapArea(None, coords, type=type)
+ area = MapArea(None, coords, type=type, permanent=permanent)
self.addMapArea(area)
# return to edit area menu
if RESPONSE is not None:
@@ -249,10 +263,16 @@ class ECHO_basis:
def createJSAreas(self, areas):
"""create area calls for JavaScript"""
- dynamical="\n"
+ forceperm = self.REQUEST.get('map_force_permanent', None)
+ js="\n"
for ob in areas:
- dynamical+="""addArea('%s', 'overview', %s, '%s');\n"""%(ob.getFullId(),ob.getCoordString(),ob.getType())
- return dynamical
+ # 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):
"""create javascript include and script tags for head"""
@@ -289,17 +309,17 @@ class ECHO_basis:
tag = ""
if bt.isN4:
# N4 needs layer for highlighting
- tag += '" + text + ""
else:
# a-element
- tag = '" + text + ""
return tag
- def createMapAux(self, ob, arrowsrc="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?dw=15&fn=icons/pfeil",target="_blank"):
+ def createMapAux(self, ob, arrowsrc="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?dw=15&fn=icons/pfeil", circlesrc="http://nausikaa2.rz-berlin.mpg.de/digitallibrary/servlet/Scaler/?dw=15&fn=icons/kreis", target="_blank"):
"""generate map link image, text and other stuff"""
bt = BrowserCheck(self)
id = ob.getFullId()
@@ -308,37 +328,56 @@ class ECHO_basis:
tag = ""
if bt.isN4:
+ #
# N4 needs layer and img elements
+ #
tag += ''%(id,id,id)
if ob.isTypeArrow():
+ # N4 - Arrow
rot = ob.angle
- tag += ''%(link,arrowsrc,rot)
+ marksrc = arrowsrc
+ if float(rot) < 0:
+ marksrc = circlesrc
+ tag += ''%(link,marksrc,rot)
+ elif ob.isTypeText():
+ # N4 - Text
+ tag += '