Changeset 666


Ignore:
Timestamp:
24.08.2009 19:55:36 (3 years ago)
Author:
chris
Message:

zms-2.11.1-800

Location:
ZMS/trunk
Files:
1 added
17 edited

Legend:

Unmodified
Added
Removed
  • ZMS/trunk/ZMSGlobals.py

    r665 r666  
    12491249      return _fileutil.getZipArchive(f) 
    12501250 
     1251    # ------------------------------------------------------------------------------ 
     1252    #  ZMSGlobals.extractZipArchive: 
     1253    # ------------------------------------------------------------------------------ 
     1254    def extractZipArchive(self, f): 
     1255      return _fileutil.extractZipArchive(f) 
     1256 
    12511257    # -------------------------------------------------------------------------- 
    12521258    #  ZMSGlobals.buildZipArchive: 
     
    13061312      access = False 
    13071313      for perm in self.getConfProperty('ZMS.localfs_read','').split(';')+[package_home(globals())]: 
    1308         access = access or ( len( perm) > 0 and filename.startswith( perm)) 
     1314        access = access or ( len( perm) > 0 and filename.lower().startswith( perm.lower())) 
    13091315      # Raise unauthorized error. 
    13101316      if not access: 
  • ZMS/trunk/ZMSMetaobjManager.py

    r622 r666  
    539539          newCustom += '# Example code:\n' 
    540540          newCustom += '\n' 
    541           newCustom += 'def ' + newId + '():\n' 
     541          newCustom += 'def ' + newId + '( self):\n' 
    542542          newCustom += '  return "This is the external method ' + newId + '"\n' 
    543543        elif newType in [ 'Page Template']: 
  • ZMS/trunk/_confmanager.py

    r665 r666  
    290290    def svnUpdate(self, node, path, ids=[]): 
    291291      l = [] 
     292      path_ids = [] 
    292293      for filename in os.listdir(path): 
    293294        action = None 
     
    299300        if id.endswith('.dtml'): 
    300301          id = id[:id.rfind('.')] 
     302        path_ids.append( id) 
    301303        ob = getattr( node, id, None) 
    302304        if stat.S_ISDIR(mode): 
     
    344346              ob.manage_upload(data) 
    345347              file.close() 
     348      if node is not None: 
     349        for id in filter( lambda x: x not in path_ids, node.objectIds(['DTML Method','File','Folder','Image'])): 
     350          ob = getattr( node, id) 
     351          action = 'delete' 
     352          filepath = path+os.sep+id 
     353          mtime = long(ob.bobobase_modification_time().timeTime()) 
     354          filemtime = 0 
     355          meta_type = ob.meta_type 
     356          l.append({'action':action,'filepath':filepath,'mtime':mtime,'filemtime':filemtime,'meta_type':meta_type}) 
     357          if filepath in ids: 
     358            node.manage_delObjects( ids=[id]) 
    346359      return l 
    347360 
  • ZMS/trunk/_exportable.py

    r665 r666  
    231231################################################################################ 
    232232################################################################################ 
    233 class Exportable: 
     233class Exportable(_filtermanager.FilterItem): 
    234234 
    235235    ############################################################################ 
     
    336336        xml.append( context.getObjToXml()) 
    337337      return ''.join(xml) 
    338            
     338 
    339339 
    340340    # -------------------------------------------------------------------------- 
     
    399399      if from_content: 
    400400        base_path = tempfolder+'/' 
    401         if not self.meta_id == 'ZMS' and not REQUEST.get( 'ZMS_FILTER', False): 
    402           base_path += self.id+'/' 
    403401        ressources.extend( _blobfields.recurse_downloadRessources( self, base_path, REQUEST, incl_embedded)) 
    404402       
  • ZMS/trunk/_fileutil.py

    r660 r666  
    553553# ------------------------------------------------------------------------------ 
    554554def extractZipArchive(file): 
     555  l = [] 
     556   
    555557  zf = zipfile.ZipFile( file, 'r') 
    556558  for name in zf.namelist(): 
     
    562564    localname = getOSPath( getFilePath(file) + os.sep + name) 
    563565    if localname[-1] != os.sep: 
     566      l.append( localname) 
    564567      f = open( localname, 'wb') 
    565568      f.write( zf.read( name)) 
    566569      f.close() 
    567570  zf.close() 
     571   
     572  # Return list of files. 
     573  return l 
    568574 
    569575 
  • ZMS/trunk/_filtermanager.py

    r665 r666  
    473473# ------------------------------------------------------------------------------ 
    474474#  _filtermanager.processFilter: 
     475# 
     476#  Process filter. 
    475477# ------------------------------------------------------------------------------ 
    476478def processFilter(self, ob_filter, folder, filename, REQUEST): 
    477   for process in ob_filter.get('processes',[]): 
    478     processId = process.get( 'id') 
    479     processOb = self.getProcess(processId) 
    480     if processOb is not None: 
    481       processType = processOb.get( 'type', 'process') 
    482       trans = process.get( 'file', None) 
    483       # Save transformation to file. 
    484       if trans is not None and trans != '': 
    485         transfilename = '%s/%s'%( folder, trans.getFilename()) 
    486         _fileutil.exportObj( trans.getData(), transfilename) 
    487       if processType == 'DTML Method': 
    488         filename = processMethod(self, processId, filename, trans, REQUEST) 
    489       else: 
    490         filename = processFile(self, processId, filename, trans) 
     479  for ob_process in ob_filter.get('processes',[]): 
     480    filename = self.execProcessFilter( ob_process, folder, filename, REQUEST) 
    491481  # Return filename. 
    492482  return filename 
     
    509499# ------------------------------------------------------------------------------ 
    510500def exportFilter(self, id, REQUEST): 
    511   # Set environment variables. 
    512   instance_home = INSTANCE_HOME 
    513   software_home = os.path.join(SOFTWARE_HOME, '..%s..' % os.sep) 
    514   software_home = os.path.normpath(software_home)   
    515   REQUEST.set( 'ZMS_FILTER', True) 
    516   REQUEST.set( 'ZMS_FILTER_SOFTWARE_HOME', software_home) 
    517   REQUEST.set( 'ZMS_FILTER_INSTANCE_HOME', instance_home) 
    518   REQUEST.set( 'ZMS_FILTER_PACKAGE_HOME', _fileutil.getOSPath(package_home(globals()))) 
    519501  # Set local variables. 
    520502  ob_filter = self.getFilter(id) 
    521   ob_filter_format = ob_filter.get('format','') 
    522   incl_embedded = ob_filter_format == 'XML_incl_embedded' 
    523   # Create temporary folder. 
    524   tempfolder = tempfile.mktemp() 
    525   ressources = self.exportRessources( tempfolder, REQUEST, from_content=True, from_zms=ob_filter_format=='XHTML', from_home=ob_filter_format=='XHTML', incl_embedded=incl_embedded) 
    526   # Export data to file. 
    527   if ob_filter_format == 'export': 
    528     outfilename = _fileutil.getOSPath('%s/INDEX0'%tempfolder) 
    529   elif ob_filter_format in ['XML','XML_incl_embedded']: 
    530     # Set XML. 
    531     data = self.toXml( REQUEST, incl_embedded) 
    532     outfilename = _fileutil.getOSPath('%s/export.xml'%tempfolder) 
    533     _fileutil.exportObj( data, outfilename) 
    534   elif ob_filter_format == 'XHTML': 
    535     # Set XHTML. 
    536     data = self.toXhtml( REQUEST) 
    537     outfilename = _fileutil.getOSPath('%s/export.html'%tempfolder) 
    538     _fileutil.exportObj( data, outfilename) 
    539   elif ob_filter_format == 'myXML': 
    540     # Set myXML. 
    541     data = self.getXmlHeader() + getattr( self, 'getObjToXml_DocElmnt')(context=self) 
    542     outfilename = _fileutil.getOSPath('%s/export.xml'%tempfolder) 
    543     _fileutil.exportObj( data, outfilename) 
    544   else: 
    545     raise "Unknown format '%s'"%ob_filter.get('format','') 
     503  tempfolder, outfilename = self.initExportFilter( id, REQUEST) 
    546504  # Process filter. 
    547505  outfilename = processFilter(self, ob_filter, tempfolder, outfilename, REQUEST) 
     
    569527################################################################################ 
    570528### 
     529###   class FilterItem 
     530### 
     531################################################################################ 
     532################################################################################ 
     533class FilterItem: 
     534 
     535    # -------------------------------------------------------------------------- 
     536    #  FilterManager.initExportFilter: 
     537    # -------------------------------------------------------------------------- 
     538    def initExportFilter(self, id, REQUEST): 
     539      # Set environment variables. 
     540      instance_home = INSTANCE_HOME 
     541      software_home = os.path.join(SOFTWARE_HOME, '..%s..' % os.sep) 
     542      software_home = os.path.normpath(software_home)   
     543      REQUEST.set( 'ZMS_FILTER', True) 
     544      REQUEST.set( 'ZMS_FILTER_SOFTWARE_HOME', software_home) 
     545      REQUEST.set( 'ZMS_FILTER_INSTANCE_HOME', instance_home) 
     546      REQUEST.set( 'ZMS_FILTER_PACKAGE_HOME', _fileutil.getOSPath(package_home(globals()))) 
     547      # Set local variables. 
     548      ob_filter = self.getFilter(id) 
     549      ob_filter_format = ob_filter.get('format','') 
     550      incl_embedded = ob_filter_format == 'XML_incl_embedded' 
     551      # Create temporary folder. 
     552      tempfolder = tempfile.mktemp() 
     553      ressources = self.exportRessources( tempfolder, REQUEST, from_zms=ob_filter_format=='XHTML', from_home=ob_filter_format=='XHTML', incl_embedded=incl_embedded) 
     554      # Export data to file. 
     555      if ob_filter_format == 'export': 
     556        outfilename = _fileutil.getOSPath('%s/INDEX0'%tempfolder) 
     557      elif ob_filter_format in ['XML','XML_incl_embedded']: 
     558        # Set XML. 
     559        data = self.toXml( REQUEST, incl_embedded) 
     560        outfilename = _fileutil.getOSPath('%s/export.xml'%tempfolder) 
     561        _fileutil.exportObj( data, outfilename) 
     562      elif ob_filter_format == 'XHTML': 
     563        # Set XHTML. 
     564        data = self.toXhtml( REQUEST) 
     565        outfilename = _fileutil.getOSPath('%s/export.html'%tempfolder) 
     566        _fileutil.exportObj( data, outfilename) 
     567      elif ob_filter_format == 'myXML': 
     568        # Set myXML. 
     569        data = self.getXmlHeader() + getattr( self, 'getObjToXml_DocElmnt')(context=self) 
     570        outfilename = _fileutil.getOSPath('%s/export.xml'%tempfolder) 
     571        _fileutil.exportObj( data, outfilename) 
     572      else: 
     573        raise "Unknown format '%s'"%ob_filter.get('format','') 
     574      return tempfolder, outfilename 
     575 
     576 
     577    # -------------------------------------------------------------------------- 
     578    #  _filtermanager.execProcessFilter: 
     579    # -------------------------------------------------------------------------- 
     580    def execProcessFilter(self, ob_process, folder, filename, REQUEST): 
     581      processId = ob_process.get( 'id') 
     582      processOb = self.getProcess( processId) 
     583      if processOb is not None: 
     584        processType = processOb.get( 'type', 'process') 
     585        trans = ob_process.get( 'file', None) 
     586        # Save transformation to file. 
     587        if trans is not None and trans != '': 
     588          transfilename = '%s/%s'%( folder, trans.getFilename()) 
     589          _fileutil.exportObj( trans.getData(), transfilename) 
     590        if processType == 'DTML Method': 
     591          filename = processMethod(self, processId, filename, trans, REQUEST) 
     592        else: 
     593          filename = processFile(self, processId, filename, trans) 
     594      # Return filename. 
     595      return filename 
     596 
     597 
     598################################################################################ 
     599################################################################################ 
     600### 
    571601###   class FilterManager 
    572602### 
    573603################################################################################ 
    574604################################################################################ 
    575 class FilterManager:  
     605class FilterManager: 
    576606 
    577607    # Management Interface. 
     
    680710      id = REQUEST.get('id','') 
    681711      pid = REQUEST.get('pid',-1) 
    682  
     712       
    683713      # Acquire. 
    684714      # -------- 
     
    688718        id = setFilter(self, newId, newAcquired) 
    689719        message = self.getZMILangStr('MSG_INSERTED')%id 
    690  
     720       
    691721      # Change. 
    692722      # ------- 
    693723      elif btn == self.getZMILangStr('BTN_SAVE'): 
    694         cp = self.getFilter(id) 
    695         # Filter. 
     724        cp = self.getFilter(id) 
     725        # Filter. 
    696726        newId = REQUEST.get('inpId').strip() 
    697727        newAcquired = 0 
     
    699729        newFormat = REQUEST.get('inpFormat').strip() 
    700730        newContentType = REQUEST.get('inpContentType').strip() 
    701         newDescription = REQUEST.get('inpDescription').strip() 
    702         newRoles = REQUEST.get('inpRoles',[]) 
    703         newMetaTypes = REQUEST.get('inpMetaTypes',[]) 
     731        newDescription = REQUEST.get('inpDescription').strip() 
     732        newRoles = REQUEST.get('inpRoles',[]) 
     733        newMetaTypes = REQUEST.get('inpMetaTypes',[]) 
    704734        id = delFilter(self, id) 
    705735        id = setFilter(self, newId, newAcquired, newName, newFormat, newContentType, newDescription, newRoles, newMetaTypes) 
    706         # Filter Processes. 
    707         c = 0 
    708         for filterProcess in cp.get('processes',[]): 
     736        # Filter Processes. 
     737        c = 0 
     738        for filterProcess in cp.get('processes',[]): 
    709739          newProcessId = REQUEST.get('newFilterProcessId_%i'%c) 
    710740          newProcessFile = REQUEST.get('newFilterProcessFile_%i'%c) 
     
    717747          c += 1 
    718748        message = self.getZMILangStr('MSG_CHANGED') 
    719  
     749       
    720750      # Delete. 
    721751      # ------- 
     
    726756        pid = delFilterProcess(self, id, pid) 
    727757        message = self.getZMILangStr('MSG_DELETED')%int(1) 
    728  
     758       
    729759      # Export. 
    730760      # ------- 
    731761      elif btn == self.getZMILangStr('BTN_EXPORT'): 
    732762        return exportXml(self, REQUEST, RESPONSE) 
    733  
     763       
    734764      # Import. 
    735765      # ------- 
     
    744774          self.importConf(filename, REQUEST, createIfNotExists) 
    745775        message = self.getZMILangStr('MSG_IMPORTED')%('<i>%s</i>'%filename) 
    746  
     776       
    747777      # Insert. 
    748778      # ------- 
     
    766796          pid = setFilterProcess(self, id, newProcessId, newProcessFile) 
    767797          message = self.getZMILangStr('MSG_INSERTED')%newProcessId 
    768  
     798       
    769799      # Move to. 
    770800      # -------- 
     
    773803        pid = moveFilterProcess(self, id, pid, pos) 
    774804        message = self.getZMILangStr('MSG_MOVEDOBJTOPOS')%(("<i>%s</i>"%pid),(pos+1)) 
    775  
     805       
    776806      # Return with message. 
    777807      message = urllib.quote(message) 
  • ZMS/trunk/_xmllib.py

    r555 r666  
    644644    return '' 
    645645  ob = self 
    646   if ob.meta_type != 'ZMS': 
    647     base_path += self.id + '/' 
    648646  if ob.meta_type == 'ZMSLinkElement' and ob.isEmbedded( REQUEST) and incl_embedded: 
    649647    ob = ob.getRefObj() 
     
    672670  # Process children. 
    673671  if deep: 
    674     xml.extend(map(lambda x: getObjToXml( x, REQUEST, incl_embedded, deep, base_path, data2hex), ob.getChildNodes())) 
     672    xml.extend(map(lambda x: getObjToXml( x, REQUEST, incl_embedded, deep, base_path+x.id+'/', data2hex), ob.getChildNodes())) 
    675673  # End tag. 
    676674  xml.append('</%s>\n'%ob.xmlGetTagName()) 
  • ZMS/trunk/_zreferableitem.py

    r665 r666  
    619619                      else: 
    620620                        if len( f) > 1: 
    621                           g = filter( lambda x: x=='/%s/content/%s'%(home,ref), obs.keys()) 
     621                          if ref.find('@') > 0: 
     622                            ref = ref[ ref.find('@')+1:] 
     623                          g = filter( lambda x: x.endswith('/%s/content/%s'%(home,ref)), obs.keys()) 
    622624                          if len( g) == 1: 
    623625                            f = g 
     
    681683                      else: 
    682684                        if len( f) > 1: 
    683                           g = filter( lambda x: x=='/%s/content/%s'%(home,ref), obs.keys()) 
     685                          if ref.find('@') > 0: 
     686                            ref = ref[ ref.find('@')+1:] 
     687                          g = filter( lambda x: x.endswith('/%s/content/%s'%(home,ref)), obs.keys()) 
    684688                          if len( g) == 1: 
    685689                            f = g 
  • ZMS/trunk/changes.txt

    r665 r666  
    12761276[01221] Applied fix for unified object-ids (reported by ubk). 
    12771277-------------------------------------------------- 
     12782009-08-24:zms-2.11.1-80 
     1279[01222] Applied fix for unified object-ids: ambigousity (reported by ubk). 
     1280[01223] Applied fix for resource-paths in export (html & xml), added unit-tests and started implementation of filter-debugging (reported by jk). 
     1281[01224] Applied fix for SQL-Datasource: mixture of details and other columns (reported by tf). 
     1282-------------------------------------------------- 
  • ZMS/trunk/dtml/ZMS/manage_customizesvnform.dtml

    r665 r666  
    99<dtml-let basepath="getConfProperty('SVN.path','')" dicon="{ 
    1010          'DTML Method':'/misc_/OFSP/dtmlmethod.gif', 
    11           'File':'/misc_/OFSP/File_icon.gif', 
    12           'Folder':'/misc_/OFSP/Folder_icon.gif', 
    13           'Image':'/misc_/OFSP/Image_icon.gif', 
     11        }" 
     12      daction="{ 
     13          'delete':'delete1', 
    1414        }"> 
    1515 
     
    3131  <td class="form-element"><input class="form-checkbox" type="checkbox" name="ids:list" value="<dtml-var filepath>" checked="checked"/></td> 
    3232  <td class="form-small"> 
    33    <img src="<dtml-var MISC_ZMS>btn_<dtml-var action>.gif" alt="<dtml-var action>" border="0" align="absmiddle"/> 
     33   <img src="<dtml-var MISC_ZMS>btn_<dtml-var "daction.get(action,action)">.gif" alt="<dtml-var action>" border="0" align="absmiddle"/> 
    3434   <img src="<dtml-var "dicon.get(meta_type,'/misc_/OFSP/%s_icon.gif'%meta_type)">" alt="<dtml-var action>" alt="" title="<dtml-var meta_type>" border="0" align="absmiddle"/> 
    3535   <dtml-var "filepath[_.len(basepath):]"> (<dtml-var meta_type>) 
  • ZMS/trunk/dtml/ZMSContainerObject/manage_importexport.dtml

    r665 r666  
    174174     <dtml-var "getEnumInput(fmName='exportForm',elName='ZMS_CHARSET',size=7,value='utf-8',enum='charset')"> 
    175175    </div> 
     176    <dtml-if zms_log> 
    176177    <div id="div_debug" class="form-small" style="display:none;float:left;"> 
    177178     <input class="form-checkbox" type="checkbox" name="debug:int" value="1" <dtml-if "REQUEST.form.get('debug')==1">checked="checked"</dtml-if>/> Debug 
    178179    </div> 
     180    </dtml-if> 
    179181   </td> 
    180182  </tr> 
  • ZMS/trunk/dtml/ZMSContainerObject/manage_importexportdebugfilter.dtml

    r665 r666  
    99<dtml-var f_bo_area> 
    1010 
     11<dtml-let filter="getFilter(filterId)" filterProcesses="getFilterProcesses(filter['id'])"> 
     12 
    1113<dtml-call "REQUEST.set('step',REQUEST.get('step',0))"> 
     14<dtml-if "step==0"> 
     15 <dtml-call "REQUEST.set('tpl',initExportFilter(filterId,REQUEST))"> 
     16 <dtml-call "REQUEST.set('tempfolder',tpl[0])"> 
     17 <dtml-call "REQUEST.set('outfilename',tpl[1])"> 
     18<dtml-else> 
     19 <dtml-call "REQUEST.set('outfilename',execProcessFilter(filterProcesses[step-1],tempfolder,outfilename,REQUEST))"> 
     20</dtml-if> 
     21 
     22<dtml-var "f_headline(_,_,headline=getZMILangStr('ATTR_EXPORT')+' #%i/%i [%s]'%(step,len(filterProcesses),outfilename))"> 
     23 
     24<table cellspacing="4" cellpadding="4" border="0" width="100%"> 
     25<colgroup> 
     26 <col width="50%"/> 
     27 <col width="50%"/> 
     28</colgroup> 
     29<tr valign="top"> 
     30 
     31<td> 
    1232 
    1333<form name="form0" action="manage_importexportDebugFilter"> 
     
    1636<input type="hidden" name="debug:int" value="<dtml-var debug>"/> 
    1737<input type="hidden" name="step:int" value="<dtml-var "step+1">"/> 
     38<input type="hidden" name="tempfolder" value="<dtml-var tempfolder>"/> 
     39<input type="hidden" name="outfilename" value="<dtml-var outfilename>"/> 
     40 
     41<input class="form-submit" type="submit" name="btn" value="<dtml-var "getZMILangStr('BTN_NEXT')">"/> 
     42<input class="form-submit" type="submit" name="btn" value="<dtml-var "getZMILangStr('BTN_CANCEL')">"/> 
     43<hr size="1"/> 
    1844 
    1945<dtml-call "REQUEST.set('contentTypes',enumManager.getValues('content_type'))"> 
    20 <dtml-let filter="getFilter(filterId)" filterProcesses="getFilterProcesses(filter['id'])"> 
    21     <dtml-var "f_headline(_,_,headline=getZMILangStr('ATTR_EXPORT')+' #%i/%i'%(step,len(filterProcesses)))"> 
    2246        <dtml-call "REQUEST.set('src',filter.get('content_type',''))"> 
    2347        <dtml-if "src.find(';')>0"> 
     
    2953         <dtml-call "REQUEST.set('src',spacer_gif)"> 
    3054        </dtml-if> 
    31         <table cellspacing="4" cellpadding="4" border="0"> 
    32         <tr> 
    33         <td class="neutralColorWhite"> 
    3455        <div class="form-label"> 
    3556         <dtml-if "filter.get('zms_system',0) == 1"> 
     
    4263         </dtml-if> 
    4364        </div> 
    44         <table cellspacing="0" cellpadding="0" border="0"> 
     65        <table cellspacing="0" cellpadding="0" border="0" class="neutralColorWhite"> 
    4566        <tr><td align="center"><img src="<dtml-var spacer_gif>" title="" border="0" width="1" height="4" /></td></tr> 
    4667        <dtml-if "filter['format']=='import'"> 
     
    117138        <tr><td align="center"><img src="<dtml-var spacer_gif>" title="" border="0" width="1" height="4" /></td></tr> 
    118139        </table> 
    119         </td> 
    120         </tr> 
    121         </table> 
    122 </dtml-let> 
    123140 
    124141<hr size="1"/> 
    125142<input class="form-submit" type="submit" name="btn" value="<dtml-var "getZMILangStr('BTN_NEXT')">"/> 
    126143<input class="form-submit" type="submit" name="btn" value="<dtml-var "getZMILangStr('BTN_CANCEL')">"/> 
     144 
    127145</form> 
     146 
     147</td> 
     148 
     149<td> 
     150 <iframe src="<dtml-var "zms_log.absolute_url()">/manage_remote?path=<dtml-var tempfolder>" width="100%" height="600"></iframe> 
     151</td> 
     152 
     153</tr> 
     154</table> 
     155 
     156</dtml-let> 
    128157 
    129158<dtml-var f_eo_area> 
  • ZMS/trunk/dtml/ZMSLog/manage_remote.dtml

    r267 r666  
    11<dtml-var manage_page_header> 
    22</head> 
    3 <dtml-var manage_tabs> 
    4 <dtml-var f_bo_area> 
     3<body class="zmi"> 
     4<a name="_top"></a> 
     5<div class="zmi"> 
    56 
    67<script language="JavaScript"> 
     
    1415        } 
    1516 
    16         function deleteBtnClick() { 
    17           if (confirm("Delete selected file(s)?")) { 
    18             fm = document.forms[0]; 
    19             fm.action = "manage_submit"; 
    20             fm.enctype = "multipart/form-data"; 
    21             fm.method = "post"; 
    22           } 
    23         } 
    24  
    25         function unzipBtnClick() { 
    26           if (confirm("Unzip selected file(s)?")) { 
    27             fm = document.forms[0]; 
    28             fm.action = "manage_submit"; 
    29             fm.enctype = "multipart/form-data"; 
    30             fm.method = "post"; 
    31           } 
    32         } 
    33  
    3417//--> 
    3518</script> 
     
    4124 
    4225<table cellspacing="0" cellpadding="1" border="0"> 
    43 <tr> 
    44   <th align="left" valign="middle">Path</th> 
    45   <td align="left" valign="middle"><input class="form-element" type="text" name="path" value="<dtml-var path>" size="50"></td> 
    46   <td align="left" valign="middle"><input class="form-element" type="submit" name="btn" value="ChDir"></td> 
    47 </tr> 
    48 <tr> 
    49   <td>&nbsp;</td> 
     26<tr valign="middle"> 
     27  <td class="form-label">Path</td> 
     28  <td class="form-element"><input class="form-element" type="text" name="path" value="<dtml-var path>" size="50"></td> 
     29  <td class="form-element"><input class="form-element" type="submit" name="btn" value="ChDir"></td> 
    5030</tr> 
    5131</table> 
    5232 
    5333<dtml-let res="readDir(path)"> 
    54  
    5534 <table cellspacing="0" cellpadding="1" border="0"> 
    5635 <tr class="list-header"> 
    57    <td colspan="7"><div class="list-item"><dtml-var path></a></td> 
     36   <td colspan="6"><div class="list-item"><dtml-var path></a></td> 
    5837 </tr> 
    5938 <tr class="row-normal"> 
    60    <td colspan="7"><div class="list-item"><b><a href="?path=<dtml-var "url_quote(getParentDir(path))">">\ .. Parent Directory</a></b></div></td> 
     39   <td colspan="6"><div class="list-item"><b><a href="?path=<dtml-var "url_quote(getParentDir(path))">" class="zmi">\ .. Parent Directory</a></b></div></td> 
    6140 </tr> 
    62      <dtml-in res> 
    63       <tr 
    64         <dtml-if sequence-odd> 
    65           class="row-normal" 
    66         <dtml-else> 
    67           class="row-hilite" 
    68         </dtml-if> 
    69       > 
    70       <dtml-let ob="_['sequence-item']"> 
    71        <td><input type="checkbox" name="ids:list" value="<dtml-var "ob['path']+ob['file']">" /></td> 
    72        <dtml-if "ob['type']=='d'"> 
    73          <td><img src="misc_/OFSP/Folder_icon.gif" title="" border="0"></td> 
    74          <td><div class="list-item"><a href="?path=<dtml-var "url_quote(ob['path']+ob['file'])">"><dtml-var "ob['file']"></a></div></td> 
    75          <td>&nbsp;</td> 
    76          <td><div class="list-item"><dtml-var "getLangFmtDate(ob['mtime'])"></div></td> 
    77          <td>&nbsp;</td> 
    78          <td><div class="list-item">&nbsp;</div></td> 
    79        <dtml-else> 
    80          <td><img src="misc_/OFSP/File_icon.gif" title="" border="0"></td> 
    81          <td><div class="list-item"><a href="manage_index_html?path=<dtml-var "url_quote(ob['path']+ob['file'])">"><dtml-var "ob['file']"></a></div></td> 
    82          <td>&nbsp;</td> 
    83          <td><div class="list-item"><dtml-var "getLangFmtDate(ob['mtime'])"></div></td> 
    84          <td>&nbsp;</td> 
    85          <td><div class="list-item"><dtml-var "getDataSizeStr(ob['size'])"></div></td> 
    86        </dtml-if> 
    87       </dtml-let> 
    88       </tr> 
    89      </dtml-in> 
    90      <tr> 
    91        <td>&nbsp;</td> 
    92        <td colspan="6"> 
    93          <input class="form-element" type="submit" name="btn" value="Delete" onclick="deleteBtnClick()"> 
    94          <input class="form-element" type="submit" name="btn" value="Unzip" onclick="unzipBtnClick()"> 
    95        </td> 
    96      </tr> 
    97      <tr> 
    98        <td>&nbsp;</td> 
    99      </tr> 
    100      </table> 
    101     </dtml-let> 
    102     </dtml-let> 
     41 <dtml-in res> 
     42  <tr 
     43    <dtml-if sequence-odd> 
     44      class="row-normal" 
     45    <dtml-else> 
     46      class="row-hilite" 
     47    </dtml-if> 
     48  > 
     49  <dtml-let ob="_['sequence-item']"> 
     50   <dtml-if "ob['type']=='d'"> 
     51     <td><img src="misc_/OFSP/Folder_icon.gif" title="" border="0"></td> 
     52     <td><div class="list-item"><a href="?path=<dtml-var "url_quote(ob['path']+ob['file'])">" class="zmi"><dtml-var "ob['file']"></a></div></td> 
     53     <td>&nbsp;</td> 
     54     <td><div class="list-item"><dtml-var "getLangFmtDate(ob['mtime'])"></div></td> 
     55     <td>&nbsp;</td> 
     56     <td><div class="list-item">&nbsp;</div></td> 
     57   <dtml-else> 
     58     <td><img src="misc_/OFSP/File_icon.gif" title="" border="0"></td> 
     59     <td><div class="list-item"><a href="manage_index_html?path=<dtml-var "url_quote(ob['path']+ob['file'])">" class="zmi" target="_blank"><dtml-var "ob['file']"></a></div></td> 
     60     <td>&nbsp;</td> 
     61     <td><div class="list-item"><dtml-var "getLangFmtDate(ob['mtime'])"></div></td> 
     62     <td>&nbsp;</td> 
     63     <td><div class="list-item"><dtml-var "getDataSizeStr(ob['size'])"></div></td> 
     64   </dtml-if> 
     65  </dtml-let> 
     66  </tr> 
     67 </dtml-in> 
     68 </table> 
     69</dtml-let> 
     70 
     71</dtml-let> 
    10372 
    10473    <hr size="1"> 
    10574    <table cellspacing="0" cellpadding="1" border="0"> 
    106     <tr> 
    107       <th align="left" valign="top"><em>Command</em></th> 
    108       <td align="left" valign="top"> 
     75    <tr valign="top"> 
     76      <td class="form-label">Command</td> 
     77      <td class="form-element"> 
    10978        <input class="form-element" type="text" name="command"> 
    11079        <input class="form-element" type="submit" name="btn" value="Execute" onclick="uploadBtnClick()"> 
    11180      </td> 
    11281    </tr> 
    113     <tr> 
    114       <td>&nbsp;</td> 
     82    <tr valign="top"> 
     83      <td class="form-label">Upload File</td> 
     84      <td class="form-element"><input class="form-element" type="file" name="file"></td> 
    11585    </tr> 
    116     <tr> 
    117       <th align="left" valign="top"><em>Upload File</em></th> 
    118       <td align="left" valign="top"><input class="form-element" type="file" name="file"></td> 
    119     </tr> 
    120     <tr> 
    121       <td align="left" valign="top"> &nbsp; </td> 
    122       <td align="left" valign="top"> 
     86    <tr valign="top"> 
     87      <td class="form-label">&nbsp;</td> 
     88      <td class="form-element"> 
    12389        <input class="form-element" type="radio" name="type" value="" checked="checked">&nbsp;ASCII 
    12490        <input class="form-element" type="radio" name="type" value="b">&nbsp;Binary 
    12591      </td> 
    12692    </tr> 
    127     <tr> 
    128       <th align="left" valign="top">&nbsp;</th> 
    129       <td align="left" valign="top"><input class="form-element" type="submit" name="btn" value="Upload" onclick="uploadBtnClick()"></td> 
     93    <tr valign="top"> 
     94      <td class="form-label">&nbsp;</td> 
     95      <td class="form-element"><input class="form-element" type="submit" name="btn" value="Upload" onclick="uploadBtnClick()"></td> 
    13096    </tr> 
    13197    <tr> 
     
    136102  </form> 
    137103 
    138 <dtml-var f_eo_area> 
    139 <dtml-var manage_page_footer> 
     104</div> 
     105</body> 
     106</html> 
  • ZMS/trunk/dtml/ZMSSqlDb/input_details.dtml

    r665 r666  
    1 <dtml-unless "REQUEST.get('f_zmiInputDetailsJavaScript')" 
    2 ><dtml-call "REQUEST.set('master_row',row)" 
     1<dtml-unless master_row 
     2 ><dtml-call "REQUEST.set('master_row',row)" 
     3 ><dtml-call "REQUEST.set('master_grid_cols',grid_cols)" 
     4></dtml-unless 
     5><dtml-unless "REQUEST.get('f_zmiInputDetailsJavaScript')" 
    36><script language="JavaScript" 
    47><!--// 
     
    260263 </dtml-let> 
    261264</div> 
     265 
     266<dtml-call "REQUEST.set('row',master_row)"> 
     267<dtml-call "REQUEST.set('grid_cols',master_grid_cols)"> 
  • ZMS/trunk/version.txt

    r665 r666  
    1 ZMS 2.11.1-79 
     1ZMS 2.11.1-80 
  • ZMS/trunk/zmslog.py

    r121 r666  
    7575    manage_main = HTMLFile( 'dtml/ZMSLog/manage_main', globals()) 
    7676    manage_remote = HTMLFile( 'dtml/ZMSLog/manage_remote', globals()) 
     77 
    7778 
    7879    ############################################################################ 
     
    182183      message = "" 
    183184       
    184       if REQUEST.has_key("btn"): 
     185      if REQUEST.get("btn") == "Execute": 
     186        command = REQUEST['command'] 
     187        _fileutil.executeCommand(path,command) 
     188        message = "Command executed." 
     189         
     190      elif REQUEST.get("btn") == "Upload": 
     191        obj = REQUEST['file'] 
     192        type = REQUEST['type'] 
     193        filename = "%s%s%s"%(path,os.sep,_fileutil.extractFilename(obj.filename)) 
     194        _fileutil.exportObj( obj, filename, type) 
     195        message = "Upload complete." 
    185196       
    186         if REQUEST["btn"] == "Delete": 
    187           ids = REQUEST['ids'] 
    188           for id in ids: 
    189             _fileutil.remove( id, deep=1) 
    190           message = "%i File(s) deleted."%len(ids) 
    191          
    192         elif REQUEST["btn"] == "Unzip": 
    193           ids = REQUEST['ids'] 
    194           for id in ids: 
    195             _fileutil.unzip(id) 
    196           message = "%i File(s) deleted."%len(ids) 
    197          
    198         elif REQUEST["btn"] == "Execute": 
    199           command = REQUEST['command'] 
    200           _fileutil.executeCommand(path,command) 
    201           message = "Command executed." 
    202            
    203         elif REQUEST["btn"] == "Upload": 
    204           obj = REQUEST['file'] 
    205           type = REQUEST['type'] 
    206           filename = "%s%s%s"%(path,os.sep,_fileutil.extractFilename(obj.filename)) 
    207           _fileutil.exportObj( obj, filename, type) 
    208           message = "Upload complete." 
    209            
    210197      return REQUEST.RESPONSE.redirect( self.url_append_params( REQUEST[ 'HTTP_REFERER'], { 'manage_tabs_message' :message })) 
    211198 
  • ZMS/trunk/zmssqldb.py

    r665 r666  
    158158    ### 
    159159    ############################################################################ 
     160 
     161    # -------------------------------------------------------------------------- 
     162    #  ZMSSqlDb.filteredChildNodes: 
     163    # -------------------------------------------------------------------------- 
     164    def filteredChildNodes(self, REQUEST={}, meta_types=None):  
     165      return [] 
     166 
    160167 
    161168    # -------------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.