version 1.1, 2003/09/25 15:25:08
|
version 1.10, 2003/12/19 15:05:41
|
Line 1
|
Line 1
|
# Classes for displaying, browsing and organizing the archive |
# Classes for displaying, browsing and organizing the archive |
|
|
|
|
|
import addFolder |
from OFS.Folder import Folder |
from OFS.Folder import Folder |
from OFS.SimpleItem import SimpleItem |
from OFS.SimpleItem import SimpleItem |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplate import PageTemplate |
from Products.PageTemplates.PageTemplate import PageTemplate |
|
from AccessControl import ClassSecurityInfo |
|
from Globals import InitializeClass |
|
|
class OSAS_ShowOnline(SimpleItem): |
class OSAS_ShowOnline(SimpleItem): |
|
security=ClassSecurityInfo() |
|
|
"""OnlineBrowser""" |
"""OnlineBrowser""" |
def __init__(self,id): |
def __init__(self,id): |
"""initialize a new instance""" |
"""initialize a new instance""" |
Line 13 class OSAS_ShowOnline(SimpleItem):
|
Line 19 class OSAS_ShowOnline(SimpleItem):
|
|
|
meta_type="OSAS_ShowOnline" |
meta_type="OSAS_ShowOnline" |
|
|
|
security.declareProtected('View','index_html') |
def index_html(self): |
def index_html(self): |
"""main view""" |
"""main view""" |
pt=PageTemplateFile('products/OSA_system/OSAS_ViewFiles.zpt').__of__(self) |
pt=PageTemplateFile('Products/OSA_system/OSAS_ViewFiles.zpt').__of__(self) |
return pt() |
return pt() |
|
|
def getfilesystem2(self,start,reload=0): |
def getfilesystem2(self,start,reload=0): |
Line 51 class OSAS_ShowOnline(SimpleItem):
|
Line 58 class OSAS_ShowOnline(SimpleItem):
|
self.tree(path).toggle(path,file) |
self.tree(path).toggle(path,file) |
return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"?path="+path) |
return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"?path="+path) |
|
|
|
InitializeClass(OSAS_ShowOnline) |
|
|
def manage_AddOSAS_ShowOnlineForm(self): |
def manage_AddOSAS_ShowOnlineForm(self): |
"""interface for adding the OSAS_root""" |
"""interface for adding the OSAS_root""" |
pt=PageTemplateFile('products/OSA_system/AddOSAS_ShowOnline.zpt').__of__(self) |
pt=PageTemplateFile('Products/OSA_system/AddOSAS_ShowOnline.zpt').__of__(self) |
return pt() |
return pt() |
|
|
def manage_AddOSAS_ShowOnline(self,id,RESPONSE=None): |
def manage_AddOSAS_ShowOnline(self,id,RESPONSE=None): |
Line 64 def manage_AddOSAS_ShowOnline(self,id,RE
|
Line 73 def manage_AddOSAS_ShowOnline(self,id,RE
|
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
|
|
|
|
|
class OSAS_StoreOnline(SimpleItem): |
|
"""Webfrontend für das Storagesystem""" |
|
security=ClassSecurityInfo() |
|
|
|
def __init__(self,id): |
|
"""initialize a new instance""" |
|
self.id = id |
|
|
|
meta_type="OSAS_StoreOnline" |
|
|
|
security.declareProtected('View','index_html') |
|
def index_html(self): |
|
"""main view""" |
|
pt=PageTemplateFile('Products/OSA_system/OSAS_StoreFiles.zpt').__of__(self) |
|
return pt() |
|
|
|
def readContexts(self,path): |
|
"""Zeige Contexte""" |
|
if os.path.exists(path+"/index.meta"): |
|
|
|
return readContexts(path) |
|
|
|
else: |
|
|
|
return [] |
|
|
|
def rescaleThumbs(self,path): |
|
"""rescale thumbs of imeages in path""" |
|
|
|
os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/thumb 90 >> /tmp/sc.out &"% re.sub('/mpiwg/online/','',self.REQUEST['path'])) |
|
|
|
self.REQUEST.SESSION['path']=self.REQUEST['path'] |
|
#return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']) |
|
pt=PageTemplateFile('Products/OSA_system/OSAS_scaled.zpt').__of__(self) |
|
return pt() |
|
|
|
|
|
def getfilesystem2(self,start,reload=0): |
|
"""load filesystem""" |
|
|
|
k=filesystem2(start,1) |
|
return k |
|
|
|
def tree(self,start): |
|
"""get the filetree""" |
|
k=browse(start) |
|
return k |
|
|
|
def path_to_link_store(self,path): |
|
"""generates navigation bar for viewfiles""" |
|
return path_to_link_store(self.REQUEST['URL'],path) |
|
|
|
def isdigilib2(self,path): |
|
"""check if digilib""" |
|
return isdigilib2(path) |
|
|
|
def changeName(self,name): |
|
return changeName(name) |
|
|
|
def hasMetafile(self,path): |
|
return hasMetafile(path) |
|
|
|
def getMetafile(self,path): |
|
return getMetafile(path) |
|
|
|
def toggle_view(self,path,file): |
|
"""Oeffnen bzw. schließen der Subfolders""" |
|
self.tree(path).toggle(path,file) |
|
return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"?path="+path) |
|
|
|
def isFolder(self,path): |
|
"""Test ob Eintrag ein Folder ist""" |
|
return isFolder(self,path) |
|
|
|
def isScannedDocument(self,path): |
|
"""Test ob Eintrag ein Folder ist""" |
|
return isScannedDocument(self,path) |
|
|
|
def isFullText(self,path,folder_name): |
|
"""Test ob Eintrag ein Folder ist""" |
|
return isFullText(path,folder_name) |
|
|
|
def addFolderForm(self,path): |
|
"""add a new path""" |
|
pt=PageTemplateFile('Products/OSA_system/OSAS_addFolder.zpt').__of__(self) |
|
return pt() |
|
|
|
def date(self): |
|
return strftime("%d.%m.%Y",localtime()) |
|
|
|
def addFolder(self,path,folder_name,description,archive_creation_date,creator): |
|
"""add the folder to the filesystem and write the metadata files""" |
|
return addFolder.addFolder(self,path,folder_name,description,archive_creation_date,creator) |
|
|
|
def EditIndex(self,path): |
|
"""Editiere das Index Metafile""" |
|
try: |
|
dom=xml.dom.minidom.parse(path+"/index.meta") |
|
indexmeta=dom.toxml() |
|
except: |
|
indexmeta="" |
|
self.REQUEST.SESSION['indexmeta']=indexmeta |
|
self.REQUEST.SESSION['path']=path |
|
newtemplate=PageTemplateFile('Products/OSA_system/editindex').__of__(self) |
|
return newtemplate() |
|
|
|
def EditIndex2(self): |
|
"""Sichern der Aenderungen in Index.meta""" |
|
if not self.REQUEST.has_key('fileupload'): |
|
#newtext=urllib.unquote(self.REQUEST['indexmeta']) |
|
newtext=self.REQUEST['indexmeta'] |
|
|
|
else: |
|
self.file_name=self.REQUEST['fileupload'].filename |
|
#newtext=self.REQUEST.form['fileupload'].read() |
|
# HACK DW |
|
newtext=self.REQUEST['indexmeta'] |
|
|
|
indexmeta=file(self.REQUEST.SESSION['path']+"/index.meta","w") |
|
indexmeta.writelines(newtext) |
|
return self.REQUEST.response.redirect(self.REQUEST['URL1']+"?path="+self.REQUEST.SESSION['path']) |
|
|
|
def add_metafile(self): |
|
"""nothing""" |
|
pt=PageTemplateFile('Products/OSA_system/OSAS_addmetadata.zpt').__of__(self) |
|
return pt() |
|
|
|
InitializeClass(OSAS_StoreOnline) |
|
|
|
def manage_AddOSAS_StoreOnlineForm(self): |
|
"""interface for adding the OSAS_root""" |
|
pt=PageTemplateFile('Products/OSA_system/AddOSAS_StoreOnline.zpt').__of__(self) |
|
return pt() |
|
|
|
def manage_AddOSAS_StoreOnline(self,id,RESPONSE=None): |
|
"""add the OSAS_root""" |
|
newObj=OSAS_StoreOnline(id) |
|
self._setObject(id,newObj) |
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
|
|
|
|
|
|
def readContexts(path): |
|
"""ReadContext from index.meta""" |
|
dom=xml.dom.minidom.parse(path+"/index.meta") |
|
nodes=dom.getElementsByTagName('context') |
|
ret=[] |
|
|
|
|
|
for node in nodes: |
|
try: |
|
link=getText(node.getElementsByTagName('link')[0].childNodes) |
|
name=getText(node.getElementsByTagName('name')[0].childNodes) |
|
ret.append((link,name)) |
|
except: |
|
"""nothing""" |
|
return ret |
|
|
|
|
### Ab hier Baustelle |
### Ab hier Baustelle |
Line 535 def path_to_link_view(URL,path):
|
Line 702 def path_to_link_view(URL,path):
|
i=i-1 |
i=i-1 |
return string |
return string |
|
|
def path_to_link_store(path): |
def path_to_link_store(URL,path): |
"""generates navigation bar for viewfiles""" |
"""generates navigation bar for viewfiles""" |
string="" |
string="" |
|
|
Line 552 def path_to_link_store(path):
|
Line 719 def path_to_link_store(path):
|
tmppath=os.path.dirname(tmppath) |
tmppath=os.path.dirname(tmppath) |
|
|
while i>=0: |
while i>=0: |
string=string+"<a href=storefiles?path="+pathes[i][0]+">"+pathes[i][1]+"</a>/" |
string=string+"<a href="+URL+"?path="+pathes[i][0]+">"+pathes[i][1]+"</a>/" |
|
|
i=i-1 |
i=i-1 |
return string |
return string |
Line 705 def getText(nodelist):
|
Line 872 def getText(nodelist):
|
|
|
def getBib(nodelist): |
def getBib(nodelist): |
rc= "<table border='0'>" |
rc= "<table border='0'>" |
print "HI" |
|
for node in nodelist: |
for node in nodelist: |
|
|
if node.nodeType == node.ELEMENT_NODE: |
if node.nodeType == node.ELEMENT_NODE: |
Line 748 def getMetafile(path):
|
Line 915 def getMetafile(path):
|
else: |
else: |
html=html+"<h4>Info</h4>" |
html=html+"<h4>Info</h4>" |
html=html+getBib(bib.childNodes) |
html=html+getBib(bib.childNodes) |
print html |
|
except: |
except: |
"""none""" |
"""none""" |
|
|
Line 986 def date(self):
|
Line 1153 def date(self):
|
|
|
|
|
|
|
def EditIndex(self,path): |
|
try: |
|
dom=xml.dom.minidom.parse(path+"/index.meta") |
|
indexmeta=dom.toxml() |
|
except: |
|
indexmeta="" |
|
self.REQUEST.SESSION['indexmeta']=indexmeta |
|
self.REQUEST.SESSION['path']=path |
|
newtemplate=PageTemplateFile('/usr/local/mpiwg/Zope/Extensions/editindex').__of__(self) |
|
return newtemplate() |
|
|
|
def EditIndex2(self): |
|
if not self.REQUEST.has_key('fileupload'): |
|
#newtext=urllib.unquote(self.REQUEST['indexmeta']) |
|
newtext=self.REQUEST['indexmeta'] |
|
print newtext |
|
else: |
|
self.file_name=self.REQUEST['fileupload'].filename |
|
#newtext=self.REQUEST.form['fileupload'].read() |
|
# HACK DW |
|
newtext=self.REQUEST['indexmeta'] |
|
|
|
indexmeta=file(self.REQUEST.SESSION['path']+"/index.meta","w") |
|
indexmeta.writelines(newtext) |
|
return self.REQUEST.response.redirect("storage/storefiles?path="+self.REQUEST.SESSION['path']) |
|
|
|
|
|