--- OSA_system2/OSAS_browser.py 2005/03/03 20:41:00 1.15
+++ OSA_system2/OSAS_browser.py 2005/03/17 19:26:51 1.17
@@ -41,8 +41,26 @@ class OSAS_storeOnline(SimpleItem):
objects=self.readObjectsFromPath(realPath)
- return objects[os.path.join(realPath,".")][0]
-
+ try:
+ return objects[os.path.join(realPath,".")][0]
+ except:
+ return ""
+ def getHandlersOfPath(self):
+ """handler des actullen path"""
+ path=self.REQUEST['path']
+ objects=self.readObjectsFromPath(path)
+
+ typeObject=objects.get(os.path.join(path,"."),None)
+ if not typeObject:
+ return("",[],"")
+ type=typeObject[0]
+
+ handler=self.giveHandlers(path,type)
+
+
+ return (os.path.split(path)[1],handler,objects[os.path.join(path,".")][1],type)
+
+
def getMetaFile(self,path):
"""get index.meta and translate it to HTML"""
"""Lies Metafile ein
@@ -116,9 +134,9 @@ class OSAS_storeOnline(SimpleItem):
@param path: Pfad auf das Object relativ zum rootFolderName
@return: metadata als html
"""
- print "search for ",path
+
xmlInfos=self.findEntryInIndexMeta(path)
- print "RRRRRRRRRRRR",xmlInfos
+
if xmlInfos:
return OSAS_helpers.getMetaInfoFromXML(path,xmlInfos)
else:
@@ -132,7 +150,7 @@ class OSAS_storeOnline(SimpleItem):
server=xmlrpclib.Server(self.serverUrl)
indexMeta=server.findIndexMeta(path) # suche index.meta
- print "found indexMeta",indexMeta
+
if not indexMeta:
return None
@@ -180,9 +198,10 @@ class OSAS_storeOnline(SimpleItem):
@todo: Rueckgabe einer Beschreibung gemaess Metadaten
"""
ret={}
+ startPath=path
server=xmlrpclib.Server(self.serverUrl)
indexMeta,stats=server.findIndexMetaWithStats(path)#findex index.meta zu path.
- print "checking",path,indexMeta
+
if not indexMeta:
return ret
@@ -193,10 +212,11 @@ class OSAS_storeOnline(SimpleItem):
- #teste ob schon im cache
-
- if self._v_metaFiles.has_key(path) and (self._v_metaFiles[path][0]==stats[stat.ST_MTIME]):
- return self._v_metaFiles[path][1]
+ #teste ob schon im cache zur Zeit kein chache wenn index.meta file nicht im selben ordner wie path.
+
+ if self._v_metaFiles.has_key(startPath) and (self._v_metaFiles[realPath][0]==stats[stat.ST_MTIME]) and (path==""):
+
+ return self._v_metaFiles[startPath][1]
try:
dom=xml.dom.minidom.parseString(server.getFile(indexMeta))
@@ -229,7 +249,7 @@ class OSAS_storeOnline(SimpleItem):
object=os.path.join(realPath,pathX,name)
ret[object.encode('utf-8')]=(fileType,'')
- self._v_metaFiles[path]=(stats[stat.ST_MTIME],ret) # speicher im chache
+ self._v_metaFiles[startPath]=(stats[stat.ST_MTIME],ret) # speicher im chache
return ret
@@ -300,32 +320,32 @@ class OSAS_storeOnline(SimpleItem):
return None
#teste ob schon im cache
- #if self._v_fileSystem.has_key(realPath) and (self._v_fileSystem[realPath][0]==stats[stat.ST_MTIME]):
- #
- # return self._v_fileSystem[realPath][1]
+ if self._v_fileSystem.has_key(realPath) and (self._v_fileSystem[realPath][0]==stats[stat.ST_MTIME]):
+
+ return self._v_fileSystem[realPath][1]
indexMetas=server.getAllIndexMetasOfSubDirs(realPath)
dir=indexMetas.keys()
ret={}
for filename in dir:
- print "doing",filename,indexMetas
+
object=os.path.join(realPath,filename)
fileType=indexMetas[filename][0]
if fileType:
if (fileType=='OSAS_dir') and indexMetas.has_key(".") and indexMetas["."][1]:
- print "TEEEEEEEEEE"
+
if(OSAS_helpers.isImageFolder(object,decodeRPC(indexMetas["."][1]))):
fileType='OSAS_imageFolder'
elif(OSAS_helpers.isVideoFolder(object,decodeRPC(indexMetas["."][1]))):
fileType='OSAS_videoFolder'
if metaData and indexMetas[filename][1]:
- print "do",filename
+
ret[object]=(fileType,metaData.getDisplayFieldsAsStr(decodeRPC(indexMetas[filename][1])))
else:
metaDataStr=self.findEntryInIndexMeta(object)
- print "MMMMMDDDDD",metaDataStr
+
if metaDataStr:
display=metaData.getDisplayFieldsAsStr(metaDataStr)
dom=xml.dom.minidom.parseString(metaDataStr)
@@ -335,7 +355,7 @@ class OSAS_storeOnline(SimpleItem):
else:
display=""
- print object,fileType,display
+
ret[object]=(fileType,display)
@@ -374,18 +394,24 @@ class OSAS_storeOnline(SimpleItem):
- (string) handler sind die Ergebnisse von giveHandlers fuer dieses Objekt
- (string) metainformationen die Metainformationen zum Objekt als Ergebnis von readObjectsFromPath
"""
- objects=self.readObjectsFromPath(path)
- if not objects:
- objects={}
+ objects=self.getSubDirsFromIndexMeta(path)
+
+ print "obje",objects
+
+ im=self.readObjectsFromPath(path)
+ if not im:
+ im={}
- im=self.getSubDirsFromIndexMeta(path)
+
+
+
for key in im.keys():
- #virtuelle pfade hinzufuegen
+ #relle pfade hinzufuegen, virtueller wird ueberschrieben
+
+ objects[key]=im[key]
- if not objects.has_key(key):
- objects[key]=im[key]
-
+
def sortLow(x,y):
return cmp(x.lower(),y.lower())
@@ -397,18 +423,19 @@ class OSAS_storeOnline(SimpleItem):
for object in objectSorted:
handler=self.giveHandlers(object,objects[object][0])
- print "format",objects[object][0]
- if objects[object][0]=="OSAS_dir":
-
- string="""%s"""%(object,os.path.split(object)[1])
-
- ret.append((string,handler,objects[object][1]))
- elif objects[object][0]=="OSAS_dir_archive":
- string="""%s (A)"""%(object,os.path.split(object)[1])
-
- ret.append((string,handler,objects[object][1]))
- else:
- ret.append((os.path.split(object)[1],handler,objects[object][1]))
+ if not(os.path.split(object)[1]=="."):
+ if objects[object][0] in OSASDirObjects:
+
+ string="""%s"""%(object,os.path.split(object)[1])
+
+ ret.append((string,handler,objects[object][1]))
+ elif objects[object][0]=="OSAS_dir_archive":
+ string="""%s (A)"""%(object,os.path.split(object)[1])
+
+ ret.append((string,handler,objects[object][1]))
+ else:
+
+ ret.append((os.path.split(object)[1],handler,objects[object][1]))
return ret