version 1.175.2.25, 2011/08/15 09:58:56
|
version 1.175.2.26, 2011/08/15 19:09:08
|
Line 1
|
Line 1
|
from OFS.Folder import Folder |
from OFS.Folder import Folder |
|
from OFS.Image import File |
from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate |
from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from AccessControl import ClassSecurityInfo |
from AccessControl import ClassSecurityInfo |
Line 135 class documentViewer(Folder):
|
Line 136 class documentViewer(Folder):
|
page_main_xml = PageTemplateFile('zpt/page_main_xml', globals()) |
page_main_xml = PageTemplateFile('zpt/page_main_xml', globals()) |
page_main_pureXml = PageTemplateFile('zpt/page_main_pureXml', globals()) |
page_main_pureXml = PageTemplateFile('zpt/page_main_pureXml', globals()) |
head_main = PageTemplateFile('zpt/head_main', globals()) |
head_main = PageTemplateFile('zpt/head_main', globals()) |
docuviewer_css = PageTemplateFile('css/docuviewer.css', globals()) |
|
info_xml = PageTemplateFile('zpt/info_xml', globals()) |
info_xml = PageTemplateFile('zpt/info_xml', globals()) |
|
# TODO: can this be nicer? |
|
docuviewer_css = File('docuviewer_css','',open(os.path.join(package_home(globals()),'css/docuviewer.css')), content_type='text/css') |
|
|
|
|
thumbs_main_rss = PageTemplateFile('zpt/thumbs_main_rss', globals()) |
thumbs_main_rss = PageTemplateFile('zpt/thumbs_main_rss', globals()) |
Line 348 class documentViewer(Folder):
|
Line 350 class documentViewer(Folder):
|
url = self.template.zogilib.getDLBaseUrl() |
url = self.template.zogilib.getDLBaseUrl() |
return url |
return url |
|
|
|
def getScalerUrl(self, fn=None, pn=None, dw=100, dh=100, docinfo=None): |
|
"""returns URL to digilib Scaler with params""" |
|
url = None |
|
if docinfo is not None: |
|
url = docinfo.get('imageURL', None) |
|
|
|
if url is None: |
|
url = "%s/servlet/Scaler?"%self.digilibBaseUrl |
|
if fn is None and docinfo is not None: |
|
fn = docinfo.get('imagePath','') |
|
|
|
url += "fn=%s"%fn |
|
|
|
if pn: |
|
url += "&pn=%s"%pn |
|
|
|
url += "&dw=%s&dh=%s"%(dw,dh) |
|
return url |
|
|
def getDocumentViewerURL(self): |
def getDocumentViewerURL(self): |
"""returns the URL of this instance""" |
"""returns the URL of this instance""" |
return self.absolute_url() |
return self.absolute_url() |
|
|
def getStyle(self, idx, selected, style=""): |
def getStyle(self, idx, selected, style=""): |
"""returns a string with the given style and append 'sel' if path == selected.""" |
"""returns a string with the given style and append 'sel' if idx == selected.""" |
#logger("documentViewer (getstyle)", logging.INFO, "idx: %s selected: %s style: %s"%(idx,selected,style)) |
#logger("documentViewer (getstyle)", logging.INFO, "idx: %s selected: %s style: %s"%(idx,selected,style)) |
if idx == selected: |
if idx == selected: |
return style + 'sel' |
return style + 'sel' |
Line 708 class documentViewer(Folder):
|
Line 729 class documentViewer(Folder):
|
|
|
current = getInt(current) |
current = getInt(current) |
pageinfo['current'] = current |
pageinfo['current'] = current |
|
pageinfo['pn'] = current |
rows = int(rows or self.thumbrows) |
rows = int(rows or self.thumbrows) |
pageinfo['rows'] = rows |
pageinfo['rows'] = rows |
cols = int(cols or self.thumbcols) |
cols = int(cols or self.thumbcols) |
Line 718 class documentViewer(Folder):
|
Line 740 class documentViewer(Folder):
|
start = getInt(start, default=(math.ceil(float(current)/float(grpsize))*grpsize-(grpsize-1))) |
start = getInt(start, default=(math.ceil(float(current)/float(grpsize))*grpsize-(grpsize-1))) |
# int(current / grpsize) * grpsize +1)) |
# int(current / grpsize) * grpsize +1)) |
pageinfo['start'] = start |
pageinfo['start'] = start |
pn = self.REQUEST.get('pn','1') |
|
pageinfo['pn'] = pn |
|
np = int(docinfo.get('numPages', 0)) |
np = int(docinfo.get('numPages', 0)) |
if np == 0: |
if np == 0: |
# numPages unknown - maybe we can get it from text page |
# numPages unknown - maybe we can get it from text page |
if docinfo.get('textURLPath', None): |
if docinfo.get('textURLPath', None): |
# cache text page as well |
# cache text page as well |
pageinfo['textPage'] = self.getTextPage(mode=viewType, pn=pn, docinfo=docinfo, pageinfo=pageinfo) |
pageinfo['textPage'] = self.getTextPage(mode=viewType, pn=current, docinfo=docinfo, pageinfo=pageinfo) |
np = int(docinfo.get('numPages', 0)) |
np = int(docinfo.get('numPages', 0)) |
|
|
pageinfo['numgroups'] = int(np / grpsize) |
pageinfo['numgroups'] = int(np / grpsize) |
Line 737 class documentViewer(Folder):
|
Line 758 class documentViewer(Folder):
|
# add zeroth page for two columns |
# add zeroth page for two columns |
pageZero = (cols == 2 and (pageFlowLtr != oddScanLeft)) |
pageZero = (cols == 2 and (pageFlowLtr != oddScanLeft)) |
pageinfo['pageZero'] = pageZero |
pageinfo['pageZero'] = pageZero |
pageinfo['pageList'] = self.getPageList(start=start, rows=rows, cols=cols, pageFlowLtr=pageFlowLtr, pageZero=pageZero, minIdx=1, maxIdx=np) |
pageinfo['pageBatch'] = self.getPageBatch(start=start, rows=rows, cols=cols, pageFlowLtr=pageFlowLtr, pageZero=pageZero, minIdx=1, maxIdx=np) |
|
|
|
# TODO: do we need this here? |
pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','reg') |
pageinfo['characterNormalization'] = self.REQUEST.get('characterNormalization','reg') |
pageinfo['query'] = self.REQUEST.get('query','') |
pageinfo['query'] = self.REQUEST.get('query','') |
pageinfo['queryType'] = self.REQUEST.get('queryType','') |
pageinfo['queryType'] = self.REQUEST.get('queryType','') |
Line 764 class documentViewer(Folder):
|
Line 786 class documentViewer(Folder):
|
return pageinfo |
return pageinfo |
|
|
|
|
def getPageList(self, start=None, rows=None, cols=None, pageFlowLtr=True, pageZero=False, minIdx=1, maxIdx=0): |
def getPageBatch(self, start=None, rows=None, cols=None, pageFlowLtr=True, pageZero=False, minIdx=1, maxIdx=0): |
"""returns array of page informations for one screenfull of thumbnails""" |
"""returns dict with array of page informations for one screenfull of thumbnails""" |
|
grpsize = rows * cols |
if maxIdx == 0: |
if maxIdx == 0: |
maxIdx = start + rows * cols |
maxIdx = start + grpsize |
|
|
pages = [] |
pages = [] |
if pageZero and start == 1: |
if pageZero and start == 1: |
Line 792 class documentViewer(Folder):
|
Line 815 class documentViewer(Folder):
|
|
|
pages.append(row) |
pages.append(row) |
|
|
logging.debug("getPageList returns=%s"%(pages)) |
batch = {} |
return pages |
if start > 1: |
|
batch['prevStart'] = max(start - grpsize, 1) |
|
else: |
|
batch['prevStart'] = None |
|
|
|
if start + grpsize < maxIdx: |
|
batch['nextStart'] = start + grpsize |
|
else: |
|
batch['nextStart'] = None |
|
|
|
batch['pages'] = pages |
|
#logging.debug("getPageList returns=%s"%(batch)) |
|
return batch |
|
|
|
|
security.declareProtected('View management screens','changeDocumentViewerForm') |
security.declareProtected('View management screens','changeDocumentViewerForm') |