Changeset 666
- Timestamp:
- 24.08.2009 19:55:36 (3 years ago)
- Location:
- ZMS/trunk
- Files:
-
- 1 added
- 17 edited
-
ZMSGlobals.py (modified) (2 diffs)
-
ZMSMetaobjManager.py (modified) (1 diff)
-
_confmanager.py (modified) (3 diffs)
-
_exportable.py (modified) (3 diffs)
-
_fileutil.py (modified) (2 diffs)
-
_filtermanager.py (modified) (11 diffs)
-
_xmllib.py (modified) (2 diffs)
-
_zreferableitem.py (modified) (2 diffs)
-
changes.txt (modified) (1 diff)
-
dtml/ZMS/manage_customizesvnform.dtml (modified) (2 diffs)
-
dtml/ZMSContainerObject/manage_importexport.dtml (modified) (1 diff)
-
dtml/ZMSContainerObject/manage_importexportdebugfilter.dtml (modified) (5 diffs)
-
dtml/ZMSLog/manage_remote.dtml (modified) (4 diffs)
-
dtml/ZMSSqlDb/input_details.dtml (modified) (2 diffs)
-
import/com.zms.test.metaobj.xml (added)
-
version.txt (modified) (1 diff)
-
zmslog.py (modified) (2 diffs)
-
zmssqldb.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
ZMS/trunk/ZMSGlobals.py
r665 r666 1249 1249 return _fileutil.getZipArchive(f) 1250 1250 1251 # ------------------------------------------------------------------------------ 1252 # ZMSGlobals.extractZipArchive: 1253 # ------------------------------------------------------------------------------ 1254 def extractZipArchive(self, f): 1255 return _fileutil.extractZipArchive(f) 1256 1251 1257 # -------------------------------------------------------------------------- 1252 1258 # ZMSGlobals.buildZipArchive: … … 1306 1312 access = False 1307 1313 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())) 1309 1315 # Raise unauthorized error. 1310 1316 if not access: -
ZMS/trunk/ZMSMetaobjManager.py
r622 r666 539 539 newCustom += '# Example code:\n' 540 540 newCustom += '\n' 541 newCustom += 'def ' + newId + '( ):\n'541 newCustom += 'def ' + newId + '( self):\n' 542 542 newCustom += ' return "This is the external method ' + newId + '"\n' 543 543 elif newType in [ 'Page Template']: -
ZMS/trunk/_confmanager.py
r665 r666 290 290 def svnUpdate(self, node, path, ids=[]): 291 291 l = [] 292 path_ids = [] 292 293 for filename in os.listdir(path): 293 294 action = None … … 299 300 if id.endswith('.dtml'): 300 301 id = id[:id.rfind('.')] 302 path_ids.append( id) 301 303 ob = getattr( node, id, None) 302 304 if stat.S_ISDIR(mode): … … 344 346 ob.manage_upload(data) 345 347 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]) 346 359 return l 347 360 -
ZMS/trunk/_exportable.py
r665 r666 231 231 ################################################################################ 232 232 ################################################################################ 233 class Exportable :233 class Exportable(_filtermanager.FilterItem): 234 234 235 235 ############################################################################ … … 336 336 xml.append( context.getObjToXml()) 337 337 return ''.join(xml) 338 338 339 339 340 340 # -------------------------------------------------------------------------- … … 399 399 if from_content: 400 400 base_path = tempfolder+'/' 401 if not self.meta_id == 'ZMS' and not REQUEST.get( 'ZMS_FILTER', False):402 base_path += self.id+'/'403 401 ressources.extend( _blobfields.recurse_downloadRessources( self, base_path, REQUEST, incl_embedded)) 404 402 -
ZMS/trunk/_fileutil.py
r660 r666 553 553 # ------------------------------------------------------------------------------ 554 554 def extractZipArchive(file): 555 l = [] 556 555 557 zf = zipfile.ZipFile( file, 'r') 556 558 for name in zf.namelist(): … … 562 564 localname = getOSPath( getFilePath(file) + os.sep + name) 563 565 if localname[-1] != os.sep: 566 l.append( localname) 564 567 f = open( localname, 'wb') 565 568 f.write( zf.read( name)) 566 569 f.close() 567 570 zf.close() 571 572 # Return list of files. 573 return l 568 574 569 575 -
ZMS/trunk/_filtermanager.py
r665 r666 473 473 # ------------------------------------------------------------------------------ 474 474 # _filtermanager.processFilter: 475 # 476 # Process filter. 475 477 # ------------------------------------------------------------------------------ 476 478 def 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) 491 481 # Return filename. 492 482 return filename … … 509 499 # ------------------------------------------------------------------------------ 510 500 def exportFilter(self, id, REQUEST): 511 # Set environment variables.512 instance_home = INSTANCE_HOME513 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())))519 501 # Set local variables. 520 502 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) 546 504 # Process filter. 547 505 outfilename = processFilter(self, ob_filter, tempfolder, outfilename, REQUEST) … … 569 527 ################################################################################ 570 528 ### 529 ### class FilterItem 530 ### 531 ################################################################################ 532 ################################################################################ 533 class 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 ### 571 601 ### class FilterManager 572 602 ### 573 603 ################################################################################ 574 604 ################################################################################ 575 class FilterManager: 605 class FilterManager: 576 606 577 607 # Management Interface. … … 680 710 id = REQUEST.get('id','') 681 711 pid = REQUEST.get('pid',-1) 682 712 683 713 # Acquire. 684 714 # -------- … … 688 718 id = setFilter(self, newId, newAcquired) 689 719 message = self.getZMILangStr('MSG_INSERTED')%id 690 720 691 721 # Change. 692 722 # ------- 693 723 elif btn == self.getZMILangStr('BTN_SAVE'): 694 cp = self.getFilter(id)695 # Filter.724 cp = self.getFilter(id) 725 # Filter. 696 726 newId = REQUEST.get('inpId').strip() 697 727 newAcquired = 0 … … 699 729 newFormat = REQUEST.get('inpFormat').strip() 700 730 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',[]) 704 734 id = delFilter(self, id) 705 735 id = setFilter(self, newId, newAcquired, newName, newFormat, newContentType, newDescription, newRoles, newMetaTypes) 706 # Filter Processes.707 c = 0708 for filterProcess in cp.get('processes',[]):736 # Filter Processes. 737 c = 0 738 for filterProcess in cp.get('processes',[]): 709 739 newProcessId = REQUEST.get('newFilterProcessId_%i'%c) 710 740 newProcessFile = REQUEST.get('newFilterProcessFile_%i'%c) … … 717 747 c += 1 718 748 message = self.getZMILangStr('MSG_CHANGED') 719 749 720 750 # Delete. 721 751 # ------- … … 726 756 pid = delFilterProcess(self, id, pid) 727 757 message = self.getZMILangStr('MSG_DELETED')%int(1) 728 758 729 759 # Export. 730 760 # ------- 731 761 elif btn == self.getZMILangStr('BTN_EXPORT'): 732 762 return exportXml(self, REQUEST, RESPONSE) 733 763 734 764 # Import. 735 765 # ------- … … 744 774 self.importConf(filename, REQUEST, createIfNotExists) 745 775 message = self.getZMILangStr('MSG_IMPORTED')%('<i>%s</i>'%filename) 746 776 747 777 # Insert. 748 778 # ------- … … 766 796 pid = setFilterProcess(self, id, newProcessId, newProcessFile) 767 797 message = self.getZMILangStr('MSG_INSERTED')%newProcessId 768 798 769 799 # Move to. 770 800 # -------- … … 773 803 pid = moveFilterProcess(self, id, pid, pos) 774 804 message = self.getZMILangStr('MSG_MOVEDOBJTOPOS')%(("<i>%s</i>"%pid),(pos+1)) 775 805 776 806 # Return with message. 777 807 message = urllib.quote(message) -
ZMS/trunk/_xmllib.py
r555 r666 644 644 return '' 645 645 ob = self 646 if ob.meta_type != 'ZMS':647 base_path += self.id + '/'648 646 if ob.meta_type == 'ZMSLinkElement' and ob.isEmbedded( REQUEST) and incl_embedded: 649 647 ob = ob.getRefObj() … … 672 670 # Process children. 673 671 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())) 675 673 # End tag. 676 674 xml.append('</%s>\n'%ob.xmlGetTagName()) -
ZMS/trunk/_zreferableitem.py
r665 r666 619 619 else: 620 620 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()) 622 624 if len( g) == 1: 623 625 f = g … … 681 683 else: 682 684 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()) 684 688 if len( g) == 1: 685 689 f = g -
ZMS/trunk/changes.txt
r665 r666 1276 1276 [01221] Applied fix for unified object-ids (reported by ubk). 1277 1277 -------------------------------------------------- 1278 2009-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 9 9 <dtml-let basepath="getConfProperty('SVN.path','')" dicon="{ 10 10 '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', 14 14 }"> 15 15 … … 31 31 <td class="form-element"><input class="form-checkbox" type="checkbox" name="ids:list" value="<dtml-var filepath>" checked="checked"/></td> 32 32 <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"/> 34 34 <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"/> 35 35 <dtml-var "filepath[_.len(basepath):]"> (<dtml-var meta_type>) -
ZMS/trunk/dtml/ZMSContainerObject/manage_importexport.dtml
r665 r666 174 174 <dtml-var "getEnumInput(fmName='exportForm',elName='ZMS_CHARSET',size=7,value='utf-8',enum='charset')"> 175 175 </div> 176 <dtml-if zms_log> 176 177 <div id="div_debug" class="form-small" style="display:none;float:left;"> 177 178 <input class="form-checkbox" type="checkbox" name="debug:int" value="1" <dtml-if "REQUEST.form.get('debug')==1">checked="checked"</dtml-if>/> Debug 178 179 </div> 180 </dtml-if> 179 181 </td> 180 182 </tr> -
ZMS/trunk/dtml/ZMSContainerObject/manage_importexportdebugfilter.dtml
r665 r666 9 9 <dtml-var f_bo_area> 10 10 11 <dtml-let filter="getFilter(filterId)" filterProcesses="getFilterProcesses(filter['id'])"> 12 11 13 <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> 12 32 13 33 <form name="form0" action="manage_importexportDebugFilter"> … … 16 36 <input type="hidden" name="debug:int" value="<dtml-var debug>"/> 17 37 <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"/> 18 44 19 45 <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)))">22 46 <dtml-call "REQUEST.set('src',filter.get('content_type',''))"> 23 47 <dtml-if "src.find(';')>0"> … … 29 53 <dtml-call "REQUEST.set('src',spacer_gif)"> 30 54 </dtml-if> 31 <table cellspacing="4" cellpadding="4" border="0">32 <tr>33 <td class="neutralColorWhite">34 55 <div class="form-label"> 35 56 <dtml-if "filter.get('zms_system',0) == 1"> … … 42 63 </dtml-if> 43 64 </div> 44 <table cellspacing="0" cellpadding="0" border="0" >65 <table cellspacing="0" cellpadding="0" border="0" class="neutralColorWhite"> 45 66 <tr><td align="center"><img src="<dtml-var spacer_gif>" title="" border="0" width="1" height="4" /></td></tr> 46 67 <dtml-if "filter['format']=='import'"> … … 117 138 <tr><td align="center"><img src="<dtml-var spacer_gif>" title="" border="0" width="1" height="4" /></td></tr> 118 139 </table> 119 </td>120 </tr>121 </table>122 </dtml-let>123 140 124 141 <hr size="1"/> 125 142 <input class="form-submit" type="submit" name="btn" value="<dtml-var "getZMILangStr('BTN_NEXT')">"/> 126 143 <input class="form-submit" type="submit" name="btn" value="<dtml-var "getZMILangStr('BTN_CANCEL')">"/> 144 127 145 </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> 128 157 129 158 <dtml-var f_eo_area> -
ZMS/trunk/dtml/ZMSLog/manage_remote.dtml
r267 r666 1 1 <dtml-var manage_page_header> 2 2 </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"> 5 6 6 7 <script language="JavaScript"> … … 14 15 } 15 16 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 34 17 //--> 35 18 </script> … … 41 24 42 25 <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> </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> 50 30 </tr> 51 31 </table> 52 32 53 33 <dtml-let res="readDir(path)"> 54 55 34 <table cellspacing="0" cellpadding="1" border="0"> 56 35 <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> 58 37 </tr> 59 38 <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> 61 40 </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> </td> 76 <td><div class="list-item"><dtml-var "getLangFmtDate(ob['mtime'])"></div></td> 77 <td> </td> 78 <td><div class="list-item"> </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> </td> 83 <td><div class="list-item"><dtml-var "getLangFmtDate(ob['mtime'])"></div></td> 84 <td> </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> </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> </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> </td> 54 <td><div class="list-item"><dtml-var "getLangFmtDate(ob['mtime'])"></div></td> 55 <td> </td> 56 <td><div class="list-item"> </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> </td> 61 <td><div class="list-item"><dtml-var "getLangFmtDate(ob['mtime'])"></div></td> 62 <td> </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> 103 72 104 73 <hr size="1"> 105 74 <table cellspacing="0" cellpadding="1" border="0"> 106 <tr >107 <t h 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"> 109 78 <input class="form-element" type="text" name="command"> 110 79 <input class="form-element" type="submit" name="btn" value="Execute" onclick="uploadBtnClick()"> 111 80 </td> 112 81 </tr> 113 <tr> 114 <td> </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> 115 85 </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"> </td> 122 <td align="left" valign="top"> 86 <tr valign="top"> 87 <td class="form-label"> </td> 88 <td class="form-element"> 123 89 <input class="form-element" type="radio" name="type" value="" checked="checked"> ASCII 124 90 <input class="form-element" type="radio" name="type" value="b"> Binary 125 91 </td> 126 92 </tr> 127 <tr >128 <t h align="left" valign="top"> </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"> </td> 95 <td class="form-element"><input class="form-element" type="submit" name="btn" value="Upload" onclick="uploadBtnClick()"></td> 130 96 </tr> 131 97 <tr> … … 136 102 </form> 137 103 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')" 3 6 ><script language="JavaScript" 4 7 ><!--// … … 260 263 </dtml-let> 261 264 </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- 791 ZMS 2.11.1-80 -
ZMS/trunk/zmslog.py
r121 r666 75 75 manage_main = HTMLFile( 'dtml/ZMSLog/manage_main', globals()) 76 76 manage_remote = HTMLFile( 'dtml/ZMSLog/manage_remote', globals()) 77 77 78 78 79 ############################################################################ … … 182 183 message = "" 183 184 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." 185 196 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 210 197 return REQUEST.RESPONSE.redirect( self.url_append_params( REQUEST[ 'HTTP_REFERER'], { 'manage_tabs_message' :message })) 211 198 -
ZMS/trunk/zmssqldb.py
r665 r666 158 158 ### 159 159 ############################################################################ 160 161 # -------------------------------------------------------------------------- 162 # ZMSSqlDb.filteredChildNodes: 163 # -------------------------------------------------------------------------- 164 def filteredChildNodes(self, REQUEST={}, meta_types=None): 165 return [] 166 160 167 161 168 # --------------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.
