Changeset 794
- Timestamp:
- 16.11.2009 15:50:56 (2 years ago)
- Location:
- ZMS/trunk
- Files:
-
- 4 added
- 11 edited
-
IZMSSvnInterface.py (added)
-
ZMSMetaobjManager.py (modified) (8 diffs)
-
_confmanager.py (modified) (11 diffs)
-
_filtermanager.py (modified) (3 diffs)
-
changes.txt (modified) (1 diff)
-
dtml/ZMS/manage_customizesvnform.dtml (modified) (3 diffs)
-
dtml/ZMSContainerObject/manage_main.dtml (modified) (1 diff)
-
dtml/ZMSMetamodelProvider/manage_main.dtml (modified) (12 diffs)
-
dtml/ZMSMetamodelProvider/manage_metas.dtml (modified) (1 diff)
-
version.txt (modified) (1 diff)
-
www/decorator_error.gif (added)
-
www/decorator_warning.gif (added)
-
www/ico_error.gif (modified) (previous)
-
www/ico_info.gif (added)
-
www/ico_warning.gif (modified) (previous)
Legend:
- Unmodified
- Added
- Removed
-
ZMS/trunk/ZMSMetaobjManager.py
r723 r794 25 25 # Imports. 26 26 from __future__ import nested_scopes 27 from zope.interface import implements 27 28 from Products.ExternalMethod import ExternalMethod 28 29 from Products.PageTemplates import ZopePageTemplate … … 32 33 import ZPublisher.HTTPRequest 33 34 import copy 35 import os 34 36 import sys 35 37 import time … … 38 40 import _fileutil 39 41 import _globals 42 import IZMSSvnInterface 40 43 41 44 … … 74 77 attr['custom'] = '<connection>%s</connection>\n<params>%s</params>\n%s'%(connection,params,ob.src) 75 78 except: 76 value = _globals.writeError(self,'[ getMetaobjAttr]')79 value = _globals.writeError(self,'[syncType]') 77 80 78 81 … … 98 101 ################################################################################ 99 102 class ZMSMetaobjManager: 103 implements(IZMSSvnInterface.IZMSSvnInterface) 100 104 101 105 # Globals. … … 219 223 return ids 220 224 225 def exportMetaobjXml(self, ids, REQUEST=None, RESPONSE=None): 226 value = [] 227 for id in ids: 228 metaObj = self.getMetaobj( id) 229 if metaObj['type'] == 'ZMSPackage': 230 for pkgMetaObjId in self.getMetaobjIds(): 231 pkgMetaObj = self.getMetaobj( pkgMetaObjId) 232 if pkgMetaObj[ 'package'] == metaObj[ 'id']: 233 ids.append( pkgMetaObjId) 234 keys = self.model.keys() 235 keys.sort() 236 for id in keys: 237 if id in ids or len(ids) == 0: 238 ob = copy.deepcopy(self.__get_metaobj__(id)) 239 attrs = [] 240 for attr in ob['attrs']: 241 attr_id = attr['id'] 242 syncType( self, id, attr) 243 for key in ['keys','custom','default']: 244 if attr.has_key(key) and not attr[key]: 245 del attr[key] 246 attrs.append( attr) 247 ob['__obj_attrs__'] = attrs 248 for key in ['attrs','zms_system','acquired']: 249 if ob.has_key(key): 250 del ob[key] 251 # Value. 252 value.append({'key':id,'value':ob}) 253 # XML. 254 if len(value)==1: 255 value = value[0] 256 filename = '%s.metaobj.xml'%ids[0] 257 else: 258 filename = 'export.metaobj.xml' 259 content_type = 'text/xml; charset=utf-8' 260 export = self.getXmlHeader() + self.toXmlString(value,1) 261 262 if RESPONSE: 263 RESPONSE.setHeader('Content-Type',content_type) 264 RESPONSE.setHeader('Content-Disposition','inline;filename=%s'%filename) 265 return export 266 267 268 ############################################################################ 269 # 270 # IZMSSvnInterface 271 # 272 ############################################################################ 273 274 # -------------------------------------------------------------------------- 275 # ZMSMetaobjManager.svnCopy 276 # -------------------------------------------------------------------------- 277 def svnCopy(self, node, path, ids=[], excl_ids=[]): 278 l = [] 279 for id in self.getMetaobjIds(): 280 metaObj = self.getMetaobj(id) 281 if not metaObj.get('acquired'): 282 if metaObj.get('package') == '' or metaObj.get('type') == 'ZMSPackage': 283 action = None 284 path_id = id+'.metaobj.xml' 285 filepath = path+'/'+self.id+'/'+path_id 286 filemrevision = None 287 mrevision = metaObj.get('revision','0.0.0') 288 if os.path.exists( filepath): 289 filexml = self.parseXmlString( open(filepath), mediadbStorable=False) 290 if type(filexml) is list: 291 filexml = filter(lambda x: x['value']['type']=='ZMSPackage',filexml)[0] 292 filemrevision = filexml['value'].get('revision','0.0.0') 293 if mrevision > filemrevision: 294 action = 'refresh' 295 elif mrevision < filemrevision: 296 action = 'conflict' 297 else: 298 action = 'add' 299 if action: 300 l.append({'action':action,'filepath':filepath,'mrevision':mrevision,'filemrevision':filemrevision,'meta_type':self.meta_type}) 301 if filepath in ids: 302 xml = self.exportMetaobjXml([id]) 303 _fileutil.exportObj(xml,filepath) 304 return l 305 306 307 # -------------------------------------------------------------------------- 308 # ZMSMetaobjManager.svnUpdate 309 # -------------------------------------------------------------------------- 310 def svnUpdate(self, node, path, ids=[], excl_ids=[]): 311 l = [] 312 suffix = '.metaobj.xml' 313 # Changed resources. 314 for filename in os.listdir(path): 315 action = None 316 filepath = path+'/'+filename 317 file = open(filepath) 318 # Execute action. 319 if filepath in ids: 320 ob.metaobj_manager.importMetaobjXml( file) 321 elif filepath.endswith(suffix): 322 filexml = self.parseXmlString( file, mediadbStorable=False) 323 if type(filexml) is list: 324 filexml = filter(lambda x: x['value']['type']=='ZMSPackage',filexml)[0] 325 mrevision = None 326 filemrevision = filexml['value'].get('revision','0.0.0') 327 metaObjId = filename[:-len(suffix)] 328 if metaObjId in self.getMetaobjIds(): 329 metaObj = self.getMetaobj(metaObjId) 330 mrevision = metaObj.get('revision','0.0.0') 331 if mrevision < filemrevision: 332 action = 'refresh' 333 elif mrevision > filemrevision: 334 action = 'conflict' 335 else: 336 action = 'add' 337 if action: 338 l.append({'action':action,'filepath':filepath,'mrevision':mrevision,'filemrevision':filemrevision,'meta_type':self.meta_type}) 339 # Deleted resources. 340 for id in self.getMetaobjIds(): 341 metaObj = self.getMetaobj(id) 342 if not metaObj.get('acquired'): 343 if metaObj.get('package') == '' or metaObj.get('type') == 'ZMSPackage': 344 filename = id+suffix 345 filepath = path+'/'+filename 346 # Execute action. 347 if filepath in ids: 348 self.delMetaobj(id) 349 elif not os.path.exists( filepath): 350 action = 'delete' 351 mrevision = metaObj['revision'] 352 filemrevision = None 353 l.append({'action':action,'filepath':filepath,'mrevision':mrevision,'filemrevision':filemrevision,'meta_type':self.meta_type}) 354 355 return l 356 357 358 ############################################################################ 359 # 360 # OBJECTS 361 # 362 ############################################################################ 221 363 222 364 # -------------------------------------------------------------------------- … … 969 1111 metaOb = self.getMetaobj(id) 970 1112 if metaOb.get('acquired',0) == 1: 971 masterRoot = getattr(self,self.getConfProperty('Portal.Master')) 972 masterDocElmnt = masterRoot.content 973 REQUEST.set('ids',[id]) 974 xml = masterDocElmnt.metaobj_manager.manage_changeProperties(lang, self.getZMILangStr('BTN_EXPORT'), key, REQUEST, RESPONSE) 1113 xml = self.getPortalMaster().metaobj_manager.exportMetaobjXml([id]) 975 1114 self.importMetaobjXml(xml=xml) 976 1115 message = self.getZMILangStr('MSG_IMPORTED')%('<i>%s</i>'%id) … … 980 1119 elif btn == self.getZMILangStr('BTN_EXPORT'): 981 1120 sync_id = False 982 value = []983 1121 ids = REQUEST.get('ids',[]) 984 for id in ids: 985 metaObj = self.getMetaobj( id) 986 if metaObj['type'] == 'ZMSPackage': 987 for pkgMetaObjId in self.getMetaobjIds(): 988 pkgMetaObj = self.getMetaobj( pkgMetaObjId) 989 if pkgMetaObj[ 'package'] == metaObj[ 'id']: 990 ids.append( pkgMetaObjId) 991 keys = self.model.keys() 992 keys.sort() 993 for id in keys: 994 if id in ids or len(ids) == 0: 995 ob = copy.deepcopy(self.__get_metaobj__(id)) 996 attrs = [] 997 for attr in ob['attrs']: 998 attr_id = attr['id'] 999 syncType( self, id, attr) 1000 for key in ['keys','custom','default']: 1001 if attr.has_key(key) and not attr[key]: 1002 del attr[key] 1003 attrs.append( attr) 1004 ob['__obj_attrs__'] = attrs 1005 for key in ['attrs','zms_system','acquired']: 1006 if ob.has_key(key): 1007 del ob[key] 1008 # Value. 1009 value.append({'key':id,'value':ob}) 1010 # XML. 1011 if len(value)==1: 1012 value = value[0] 1013 filename = '%s.metaobj.xml'%ids[0] 1014 else: 1015 filename = 'export.metaobj.xml' 1016 content_type = 'text/xml; charset=utf-8' 1017 export = self.getXmlHeader() + self.toXmlString(value,1) 1018 1019 RESPONSE.setHeader('Content-Type',content_type) 1020 RESPONSE.setHeader('Content-Disposition','inline;filename=%s'%filename) 1021 return export 1122 return self.exportMetaobjXml(ids,REQUEST,RESPONSE) 1022 1123 1023 1124 # Insert. -
ZMS/trunk/_confmanager.py
r792 r794 37 37 import urllib 38 38 # Product imports. 39 import IZMSMetamodelProvider, IZMSFormatProvider 39 import IZMSMetamodelProvider, IZMSFormatProvider, IZMSSvnInterface 40 40 import _globals 41 41 import _fileutil … … 133 133 implements( 134 134 IZMSMetamodelProvider.IZMSMetamodelProvider, 135 IZMSFormatProvider.IZMSFormatProvider) 135 IZMSFormatProvider.IZMSFormatProvider, 136 IZMSSvnInterface.IZMSSvnInterface) 136 137 137 138 # Management Interface. … … 274 275 # ConfManager.svnCopy: 275 276 # -------------------------------------------------------------------------- 276 def svnCopy(self, node, path, ids=[] ):277 def svnCopy(self, node, path, ids=[], excl_ids=[]): 277 278 l = [] 278 for ob in node.objectValues(): 279 action = None 280 id = absattr(ob.id) 281 filepath = path+os.sep+id 282 filemtime = None 283 mtime = long(ob.bobobase_modification_time().timeTime()) 284 meta_type = ob.meta_type 285 if ob.meta_type in ['DTML Method','DTML Document','File','Image','Script (Python)']: 286 if ob.meta_type in ['DTML Method','DTML Document']: 287 filepath += '.dtml' 288 if ob.meta_type in ['Script (Python)']: 289 filepath += '.py' 290 if os.path.exists( filepath): 291 filestat = os.stat(filepath) 292 filemtime = long(filestat[stat.ST_MTIME]) 293 if mtime > filemtime: 294 action = 'update' 295 else: 296 action = 'insert' 297 if action: 298 l.append({'action':action,'filepath':filepath,'mtime':mtime,'filemtime':filemtime,'meta_type':meta_type}) 299 if filepath in ids: 300 _fileutil.exportObj(ob,filepath) 301 atime = mtime 302 times = (atime,mtime) 303 os.utime(filepath,times) 304 elif ob.meta_type in ['Folder','ZMS','ZMSMetamodelProvider']: 305 l.extend( self.svnCopy(ob,filepath,ids)) 279 for ob in node.objectValues(['ZMS']): 280 # Add content-object artefacts to exclude-ids. 281 for metaObjId in ob.getMetaobjIds(): 282 for metaObjAttrId in ob.getMetaobjAttrIds( metaObjId): 283 metaObjAttr = ob.getMetaobjAttr(metaObjId,metaObjAttrId) 284 if metaObjAttr['type'] in ob.metaobj_manager.valid_zopetypes: 285 excl_ids.append( metaObjAttrId) 286 obs = map( lambda x: (absattr(x.id), x), node.objectValues()) 287 obs.sort() 288 for x in obs: 289 id = x[0] 290 ob = x[1] 291 if id not in excl_ids and not id.startswith('A_'): 292 action = None 293 filepath = path+'/'+id 294 filemtime = None 295 mtime = long(ob.bobobase_modification_time().timeTime()) 296 meta_type = ob.meta_type 297 if node.meta_type == 'Folder' and ob.meta_type in ['DTML Method','DTML Document','File','Image','Script (Python)']: 298 if ob.meta_type in ['DTML Method','DTML Document']: 299 filepath += '.dtml' 300 if ob.meta_type in ['Script (Python)']: 301 filepath += '.py' 302 if os.path.exists( filepath): 303 filestat = os.stat(filepath) 304 filemtime = long(filestat[stat.ST_MTIME]) 305 if mtime > filemtime: 306 action = 'refresh' 307 elif mtime < filemtime: 308 action = 'conflict' 309 else: 310 action = 'add' 311 if action: 312 l.append({'action':action,'filepath':filepath,'mtime':mtime,'filemtime':filemtime,'meta_type':meta_type}) 313 if filepath in ids: 314 _fileutil.exportObj(ob,filepath) 315 atime = mtime 316 times = (atime,mtime) 317 os.utime(filepath,times) 318 elif ob.meta_type == 'ZMS': 319 l.extend( ob.metaobj_manager.svnCopy( node, path, ids)) 320 elif ob.meta_type == 'Folder': 321 if not os.path.exists( filepath): 322 action = 'add' 323 l.append({'action':action,'filepath':filepath,'meta_type':meta_type}) 324 if filepath in ids: 325 _fileutil.mkDir(filepath) 326 l.extend( self.svnCopy(ob,filepath,ids)) 306 327 return l 307 328 … … 310 331 # ConfManager.svnUpdate: 311 332 # -------------------------------------------------------------------------- 312 def svnUpdate(self, node, path, ids=[] ):333 def svnUpdate(self, node, path, ids=[], excl_ids=[]): 313 334 l = [] 314 335 path_ids = [] … … 316 337 action = None 317 338 id = filename 318 filepath = path+ os.sep+id339 filepath = path+'/'+id 319 340 filestat = os.stat(filepath) 320 341 mode = filestat[stat.ST_MODE] … … 327 348 ob = getattr( node, id, None) 328 349 if stat.S_ISDIR(mode): 329 if filename != '.svn': 350 if filename == 'metaobj_manager': 351 for ob in node.objectValues(['ZMS']): 352 l.extend( ob.metaobj_manager.svnUpdate( node, filepath, ids)) 353 elif filename != '.svn': 330 354 if ob is None: 331 355 if filepath in ids: … … 334 358 meta_type = 'Folder' 335 359 mtime = 0 336 action = ' insert'360 action = 'add' 337 361 if action: 338 362 l.append({'action':action,'filepath':filepath,'mtime':mtime,'filemtime':filemtime,'meta_type':meta_type}) … … 360 384 ob = getattr( node, id, None) 361 385 mtime = 0 362 action = ' insert'386 action = 'add' 363 387 else: 364 388 meta_type = ob.meta_type … … 374 398 ob.manage_upload(data) 375 399 file.close() 376 if node is not None: 377 for id in filter( lambda x: x not in path_ids, node.objectIds(['DTML Method','File','Folder','Image'])): 400 if node is not None and node.meta_type != 'ZMS': 401 for ob in node.objectValues(['ZMS']): 402 # Add content-object artefacts to exclude-ids. 403 for metaObjId in ob.getMetaobjIds(): 404 for metaObjAttrId in ob.getMetaobjAttrIds( metaObjId): 405 metaObjAttr = ob.getMetaobjAttr(metaObjId,metaObjAttrId) 406 if metaObjAttr['type'] in ob.metaobj_manager.valid_zopetypes: 407 excl_ids.append( metaObjAttrId) 408 for id in filter( lambda x: x not in path_ids and x not in excl_ids and not x.startswith('A_'), node.objectIds(['DTML Method','File','Folder','Image'])): 378 409 ob = getattr( node, id) 379 410 action = 'delete' 380 filepath = path+ os.sep+id411 filepath = path+'/'+id 381 412 mtime = long(ob.bobobase_modification_time().timeTime()) 382 413 filemtime = 0 … … 758 789 home_id = home.id 759 790 temp_folder = self.temp_folder 791 # Init exclude-ids. 760 792 excl_ids = [] 793 # Add clients-folders to exclude-ids. 761 794 for folder in home.objectValues( ['Folder']): 762 795 if len( folder.objectValues( ['ZMS'])) > 0: 763 796 excl_ids.append( absattr( folder.id)) 797 # Add content-object artefacts to exclude-ids. 764 798 for metaObjId in self.getMetaobjIds(): 765 799 for metaObjAttrId in self.getMetaobjAttrIds( metaObjId): … … 767 801 if metaObjAttr['type'] in self.metaobj_manager.valid_zopetypes: 768 802 excl_ids.append( metaObjAttrId) 769 ids = filter( lambda x: x not in excl_ids, home.objectIds(['DTML Document','DTML Method','Folder','Script (Python)'])) 803 # Filter ids. 804 ids = filter( lambda x: x not in excl_ids, home.objectIds(self.metaobj_manager.valid_zopetypes)) 770 805 if btn == self.getZMILangStr('BTN_EXPORT'): 771 806 if home_id in temp_folder.objectIds(): -
ZMS/trunk/_filtermanager.py
r752 r794 38 38 39 39 40 """ 41 ################################################################################ 42 # 43 # X M L I M / E X P O R T 44 # 45 ################################################################################ 46 """ 40 ################################################################################ 41 # 42 # XML IM/EXPORT 43 # 44 ################################################################################ 47 45 48 46 # ------------------------------------------------------------------------------ … … 634 632 # -------------------------------------------------------------------------- 635 633 def getProcess(self, id): 636 obs = getRawProcesses(self)637 ob= {}638 if obs.has_key( id):639 ob = obs.get( id).copy()634 processes = getRawProcesses(self) 635 process = {} 636 if processes.has_key( id): 637 process = processes.get( id).copy() 640 638 else: 641 639 # Acquire from parent. … … 643 641 if portalMaster is not None: 644 642 if id in portalMaster.getProcessIds(): 645 ob = portalMaster.getProcess(id) 646 ob['acquired'] = 1 647 ob['id'] = id 648 return ob 643 process = portalMaster.getProcess(id) 644 process['acquired'] = 1 645 process['id'] = id 646 # Synchronize type. 647 try: 648 if process.get('type') == 'DTML Method': 649 container = self.getHome() 650 ob = getattr( container, process['id']) 651 process['command'] = ob.raw 652 except: 653 pass 654 return process 649 655 650 656 -
ZMS/trunk/changes.txt
r793 r794 1389 1389 [01278] Applied fix for adding link-elements to link-containers (reported by fh). 1390 1390 Risk: Adding link-element zombies without prefix ('e')! 1391 -------------------------------------------------- 1392 2009-10-30:zms2-2.12.0-03 1393 [01279] Added support for simultaneous remote- (via ftp) and web-editing (via zmi) of filter-processes. 1394 [01280] Applied fix for ZMI of content-object configuration (contributed by fh). 1395 -------------------------------------------------- 1396 2009-11-04:zms2-2.12.1-01 1397 [01281] Added support for Zope2-2.12.1. 1398 [01282] Revised support for replication to local-fs: encapsulate content-objects in xml. 1391 1399 ---------------------------------------------------------------------------------------------------- -
ZMS/trunk/dtml/ZMS/manage_customizesvnform.dtml
r723 r794 7 7 <dtml-var f_bo_area> 8 8 9 <dtml-let basepath="getConfProperty('SVN.path','')" dicon="{ 9 <dtml-let homeId="getHome().id" basepath="getConfProperty('SVN.path','')" dicon="{ 10 'conflict':'%sico_warning.gif'%MISC_ZMS, 10 11 'DTML Method':'/misc_/OFSP/dtmlmethod.gif', 11 'Script (Python)':'/misc_/PythonScripts/pyscript.gif' 12 }" 13 daction="{ 14 'delete':'delete1', 12 'Script (Python)':'/misc_/PythonScripts/pyscript.gif', 13 'ZMSMetamodelProvider':'%sZMSMetamodelProvider.gif'%MISC_ZMS, 15 14 }"> 16 15 … … 23 22 24 23 <dtml-if "action=='outgoing'"> 25 <dtml-call "REQUEST.set('l',svnCopy(getHome(),getConfProperty(conf_key,conf_value)+'/'+ getHome().id))">24 <dtml-call "REQUEST.set('l',svnCopy(getHome(),getConfProperty(conf_key,conf_value)+'/'+homeId))"> 26 25 <dtml-call "REQUEST.set('headline','Copy to Location')"> 27 26 <dtml-else> 28 <dtml-call "REQUEST.set('l',svnUpdate(getHome(),getConfProperty(conf_key,conf_value)+'/'+ getHome().id))">27 <dtml-call "REQUEST.set('l',svnUpdate(getHome(),getConfProperty(conf_key,conf_value)+'/'+homeId))"> 29 28 <dtml-call "REQUEST.set('headline','Update from Location')"> 30 29 </dtml-if> … … 36 35 <td colspan="4"><dtml-var "f_headline(_,_,headline='%s: %s'%(headline,basepath))"></td> 37 36 </tr> 37 <dtml-if "action=='outgoing'"> 38 <tr> 39 <td class="form-small"> </td> 40 <td class="form-small" colspan="2"><b>Location</b></td> 41 <td class="form-small"><b>ZODB</b></td> 42 </tr> 43 <dtml-else> 44 <tr> 45 <td class="form-small"> </td> 46 <td class="form-small" colspan="2"><b>ZODB</b></td> 47 <td class="form-small"><b>Location</b></td> 48 </tr> 49 </dtml-if> 38 50 </dtml-if> 39 51 <tr valign="top" class="zmiTableRow<dtml-if sequence-odd>Odd<dtml-else>Even</dtml-if>"> 40 <td class="form-element"><input class="form-checkbox" type="checkbox" name="ids:list" value="<dtml-var filepath>" checked="checked"/></td>52 <td class="form-element"><input class="form-checkbox" type="checkbox" name="ids:list" value="<dtml-var filepath>" <dtml-unless "action=='conflict'">checked="checked"</dtml-unless>/></td> 41 53 <td class="form-small"> 42 <img src="<dtml-var MISC_ZMS>btn_<dtml-var "daction.get(action,action)">.gif" alt="<dtml-var action>" border="0" align="absmiddle"/>54 <img src="<dtml-var "dicon.get(action,'%s/btn_%s.gif'%(MISC_ZMS,action))">" alt="<dtml-var action>" border="0" align="absmiddle"/> 43 55 <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"/> 44 <dtml-var "filepath[len(basepath ):]"> (<dtml-var meta_type>)56 <dtml-var "filepath[len(basepath+'/'+homeId+'/'):]"> 45 57 </td> 46 <td class="form-small"><dtml-if m time><dtml-var "getLangFmtDate(_.DateTime(mtime),lang,'DATETIME_FMT')"></dtml-if></td>47 <td class="form-small"><dtml-if filem time><dtml-var "getLangFmtDate(_.DateTime(filemtime),lang,'DATETIME_FMT')"></dtml-if></td>58 <td class="form-small"><dtml-if mrevision><dtml-var mrevision><dtml-elif mtime><dtml-var "getLangFmtDate(_.DateTime(mtime),lang,'DATETIME_FMT')"></dtml-if></td> 59 <td class="form-small"><dtml-if filemrevision><dtml-var filemrevision><dtml-elif filemtime><dtml-var "getLangFmtDate(_.DateTime(filemtime),lang,'DATETIME_FMT')"></dtml-if></td> 48 60 <dtml-if sequence-end> 49 61 </table> -
ZMS/trunk/dtml/ZMSContainerObject/manage_main.dtml
r793 r794 262 262 ><img src="<dtml-var thisIcon>" class="zmiDisplayIcon" 263 263 ><dtml-else 264 ><img src="<dtml-var MISC_ZMS> ico_error.gif" style="background-image:url(<dtml-var thisIcon>)" title="ERROR" class="zmiDisplayIcon"264 ><img src="<dtml-var MISC_ZMS>decorator_error.gif" style="background-image:url(<dtml-var thisIcon>)" title="ERROR" class="zmiDisplayIcon" 265 265 ></dtml-if 266 266 >./<dtml-var clientId>:</a> -
ZMS/trunk/dtml/ZMSMetamodelProvider/manage_main.dtml
r750 r794 544 544 ><img src="<dtml-var MISC_ZMS>ico_meta.gif" title="Meta-Attribute" border="0" style="vertical-align:middle" 545 545 /><dtml-elif "oAttr['errors']" 546 ><img src="<dtml-var MISC_ZMS> ico_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_item.gif)" title="ERROR: <dtml-var "oAttr['errors']">" border="0" style="vertical-align:middle"546 ><img src="<dtml-var MISC_ZMS>decorator_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_item.gif)" title="ERROR: <dtml-var "oAttr['errors']">" border="0" style="vertical-align:middle" 547 547 /><dtml-else 548 548 ><img src="<dtml-var MISC_ZMS>ico_item.gif" title="<dtml-var "oAttr['type'].capitalize()">" border="0" style="vertical-align:middle" … … 570 570 ><dtml-if "oAttr['meta_type']" 571 571 ><dtml-if "oAttr['meta_type']=='?'" 572 ><img src="<dtml-var MISC_ZMS> ico_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_meta.gif)" title="ERROR: Not found!" border="0" style="vertical-align:middle"572 ><img src="<dtml-var MISC_ZMS>decorator_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_meta.gif)" title="ERROR: Not found!" border="0" style="vertical-align:middle" 573 573 /><dtml-else 574 574 ><img src="<dtml-var MISC_ZMS>ico_meta.gif" title="Meta-Attribute" border="0" style="vertical-align:middle" … … 576 576 ><dtml-elif "oAttr['type'] == 'DTML Method'" 577 577 ><dtml-if "oAttr['errors']" 578 ><img src="<dtml-var MISC_ZMS> ico_error.gif" style="background-image:url(/misc_/OFSP/dtmlmethod.gif)" title="ERROR: <dtml-var "oAttr['errors']">" border="0" style="vertical-align:middle"578 ><img src="<dtml-var MISC_ZMS>decorator_error.gif" style="background-image:url(/misc_/OFSP/dtmlmethod.gif)" title="ERROR: <dtml-var "oAttr['errors']">" border="0" style="vertical-align:middle" 579 579 /><dtml-else 580 580 ><img src="/misc_/OFSP/dtmlmethod.gif" title="<dtml-var "oAttr['type']">" border="0" style="vertical-align:middle;<dtml-if "oAttr['id'].find('/')>0">background-image:url(<dtml-var MISC_ZMS>ico_folder.gif);</dtml-if>" … … 582 582 ><dtml-elif "oAttr['type'] == 'DTML Document'" 583 583 ><dtml-if "oAttr['errors']" 584 ><img src="<dtml-var MISC_ZMS> ico_error.gif" style="background-image:url(/misc_/OFSP/dtmldocument.gif)" title="ERROR: <dtml-var "oAttr['errors']">" border="0" align="absmiddle"584 ><img src="<dtml-var MISC_ZMS>decorator_error.gif" style="background-image:url(/misc_/OFSP/dtmldocument.gif)" title="ERROR: <dtml-var "oAttr['errors']">" border="0" align="absmiddle" 585 585 /><dtml-else 586 586 ><img src="/misc_/OFSP/dtmldocument.gif" title="<dtml-var "oAttr['type']">" border="0" style="vertical-align:middle;<dtml-if "oAttr['id'].find('/')>0">background-image:url(<dtml-var MISC_ZMS>ico_folder.gif);</dtml-if>" … … 591 591 ><dtml-with "_.getattr(this(),oAttr['id'])" 592 592 ><dtml-if pt_errors 593 ><img src="<dtml-var MISC_ZMS> ico_error.gif" style="background-image:url(<dtml-var icon>)" title="ERROR: <dtml-var expr="'\n'.join(pt_errors)" html_quote>" border="0" style="vertical-align:middle"593 ><img src="<dtml-var MISC_ZMS>decorator_error.gif" style="background-image:url(<dtml-var icon>)" title="ERROR: <dtml-var expr="'\n'.join(pt_errors)" html_quote>" border="0" style="vertical-align:middle" 594 594 /><dtml-elif pt_warnings 595 ><img src="<dtml-var MISC_ZMS> ico_warning.gif" style="background-image:url(<dtml-var icon>)" title="WARNING: <dtml-var expr="'\n'.join(pt_warnings)" html_quote>" border="0" style="vertical-align:middle"595 ><img src="<dtml-var MISC_ZMS>decorator_warning.gif" style="background-image:url(<dtml-var icon>)" title="WARNING: <dtml-var expr="'\n'.join(pt_warnings)" html_quote>" border="0" style="vertical-align:middle" 596 596 /><dtml-else 597 597 ><img src="<dtml-var icon>" title="<dtml-var "oAttr['type']">" border="0" style="vertical-align:middle;<dtml-if "oAttr['id'].find('/')>0">background-image:url(<dtml-var MISC_ZMS>ico_folder.gif);</dtml-if>" … … 603 603 ><dtml-with "_.getattr(this(),oAttr['id'])" 604 604 ><dtml-if errors 605 ><img src="<dtml-var MISC_ZMS> ico_error.gif" style="background-image:url(misc_/PythonScripts/pyscript.gif)" title="ERROR: <dtml-var expr="'\n'.join(errors)" html_quote>" border="0" style="vertical-align:middle"605 ><img src="<dtml-var MISC_ZMS>decorator_error.gif" style="background-image:url(misc_/PythonScripts/pyscript.gif)" title="ERROR: <dtml-var expr="'\n'.join(errors)" html_quote>" border="0" style="vertical-align:middle" 606 606 /><dtml-elif warnings 607 ><img src="<dtml-var MISC_ZMS> ico_warning.gif" style="background-image:url(misc_/PythonScripts/pyscript.gif)" title="WARNING: <dtml-var expr="'\n'.join(warnings)" html_quote>" border="0" style="vertical-align:middle"607 ><img src="<dtml-var MISC_ZMS>decorator_warning.gif" style="background-image:url(misc_/PythonScripts/pyscript.gif)" title="WARNING: <dtml-var expr="'\n'.join(warnings)" html_quote>" border="0" style="vertical-align:middle" 608 608 /><dtml-else 609 609 ><img src="misc_/PythonScripts/pyscript.gif" title="<dtml-var "oAttr['type']">" border="0" style="vertical-align:middle;<dtml-if "oAttr['id'].find('/')>0">background-image:url(<dtml-var MISC_ZMS>ico_folder.gif);</dtml-if>" … … 622 622 ><dtml-elif "oAttr['type']=='method'" 623 623 ><dtml-if "oAttr['errors']" 624 ><img src="<dtml-var MISC_ZMS> ico_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_method.gif)" title="ERROR: <dtml-var "oAttr['errors']">" border="0" align="absmiddle"624 ><img src="<dtml-var MISC_ZMS>decorator_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_method.gif)" title="ERROR: <dtml-var "oAttr['errors']">" border="0" align="absmiddle" 625 625 /><dtml-else 626 626 ><img src="<dtml-var MISC_ZMS>ico_method.gif" title="<dtml-var "oAttr['type'].capitalize()">" border="0" style="vertical-align:middle" … … 974 974 ><dtml-unless "metaObj['type'] == 'ZMSPackage'"><input type="checkbox" name="enabled_<dtml-var "metaObj['id']">" title="<dtml-var "getZMILangStr('ATTR_ACTIVE')">" value="1"<dtml-if "metaObj['enabled']==1"> checked="checked"</dtml-if><dtml-if "metaObj.get('acquired',0) == 1"> disabled="disabled"</dtml-if> onclick="enabledCheckboxClick(this)" onchange="enabledCheckboxClick(this)"/></dtml-unless 975 975 ><dtml-if "metaObj['type'] == 'ZMSPackage'"><a href="manage_bigpicture?lang=<dtml-var lang>&id=<dtml-var "metaObj['id']">" target="_blank" class="zmi" style="text-decoration:none;" title="BigPicture::Logical View"></dtml-if 976 ><img src="<dtml-var "display_icon(REQUEST,metaObj['id'])">" title="<dtml-var "metaObj['id']">" border="0" style="vertical-align:middle" 977 /><dtml-if "metaObj['type'] == 'ZMSPackage'"></a></dtml-if 978 ><dtml-if "metaObj.get('id') in dGlobalAttrs.keys()"><img src="<dtml-var MISC_ZMS>ico_zms.gif" title="native" style="margin-right:2;vertical-align:middle" /></dtml-if 976 ><a href="manage_analyze?lang=<dtml-var lang>&id=<dtml-var "metaObj['id']">" target="_blank"><img src="<dtml-var "display_icon(REQUEST,metaObj['id'])">" title="<dtml-var "metaObj['id']"> - Click for Content Analysis..." alt="Icon" border="0" style="vertical-align:middle" 977 /></a><dtml-if "metaObj.get('id') in dGlobalAttrs.keys()"><img src="<dtml-var MISC_ZMS>ico_zms.gif" title="native" style="margin-right:2;vertical-align:middle" /></dtml-if 979 978 ><dtml-if "metaObj.get('zms_system',0) == 1"><img src="<dtml-var MISC_ZMS>ico_default.gif" title="default / unmodified" style="margin-right:2;vertical-align:middle" /></dtml-if 980 979 ><dtml-if "metaObj.get('acquired',0) == 1"><a href="<dtml-var "getPortalMaster().absolute_url()+'/'+'/'.join(URL.split('/')[-2:])">?id=<dtml-var "metaObj['id']">" target="_blank" class="zmi"><img src="<dtml-var MISC_ZMS>ico_is_acquired.gif" title="is acquired: <dtml-var "getConfProperty('Portal.Master')">" border="0" style="vertical-align:middle" /></a></dtml-if … … 985 984 ></dtml-if 986 985 ></a> 987 v<dtml-var "metaObj.get('revision','0.0.0')"> 988 <dtml-unless "metaObj['type'] == 'ZMSPackage'" 989 ><i>(<dtml-var "getZMILangStr('SOTYPE_%s'%metaObj['type'].upper())">)</i 990 > <a href="manage_analyze?lang=<dtml-var lang>&id=<dtml-var "metaObj['id']">" target="_blank" class="zmi" style="text-decoration:none;" title="Analyze">[i]</a 991 ></dtml-unless> 986 <dtml-var "metaObj.get('revision','0.0.0')"> 987 <dtml-unless "metaObj['type'] == 'ZMSPackage'"><i>(<dtml-var "getZMILangStr('SOTYPE_%s'%metaObj['type'].upper())">)</i></dtml-unless> 992 988 </div 993 989 ></td> … … 1120 1116 ><dtml-if "type not in valid_types" 1121 1117 ><dtml-if "type not in getMetadictAttrs()" 1122 ><img src="<dtml-var MISC_ZMS> ico_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_meta.gif)" title="ERROR: Not found!" border="0" style="vertical-align:middle"1118 ><img src="<dtml-var MISC_ZMS>decorator_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_meta.gif)" title="ERROR: Not found!" border="0" style="vertical-align:middle" 1123 1119 ><dtml-else 1124 1120 ><img src="<dtml-var MISC_ZMS>ico_meta.gif" title="Meta-Attribute" border="0" style="vertical-align:middle" … … 1135 1131 ><dtml-if "type not in valid_types" 1136 1132 ><dtml-if "type not in getMetadictAttrs()" 1137 ><img src="<dtml-var MISC_ZMS> ico_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_meta.gif)" title="ERROR: Not found!" border="0" style="vertical-align:middle"1133 ><img src="<dtml-var MISC_ZMS>decorator_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_meta.gif)" title="ERROR: Not found!" border="0" style="vertical-align:middle" 1138 1134 ><dtml-else 1139 1135 ><img src="<dtml-var MISC_ZMS>ico_meta.gif" title="Meta-Attribute" border="0" style="vertical-align:middle" … … 1153 1149 ><dtml-if "type not in valid_types" 1154 1150 ><dtml-if "type not in getMetadictAttrs()" 1155 ><img src="<dtml-var MISC_ZMS> ico_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_meta.gif)" title="ERROR: Not found!" border="0" style="vertical-align:middle"1151 ><img src="<dtml-var MISC_ZMS>decorator_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_meta.gif)" title="ERROR: Not found!" border="0" style="vertical-align:middle" 1156 1152 ><dtml-else 1157 1153 ><img src="<dtml-var MISC_ZMS>ico_meta.gif" title="Meta-Attribute" border="0" style="vertical-align:middle" -
ZMS/trunk/dtml/ZMSMetamodelProvider/manage_metas.dtml
r750 r794 186 186 ><nobr><a id="a_<dtml-var metadictAttrId>" href="#" onmouseover="showDstMetaTypes('<dtml-var metadictAttrId>')" onmouseout="hideDstMetaTypes('<dtml-var metadictAttrId>')" 187 187 ><img 188 <dtml-if "metadictAttr.get('errors')"> src="<dtml-var MISC_ZMS> ico_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_attr.gif)" title="ERROR: <dtml-var "metadictAttr['errors']">"188 <dtml-if "metadictAttr.get('errors')"> src="<dtml-var MISC_ZMS>decorator_error.gif" style="background-image:url(<dtml-var MISC_ZMS>ico_attr.gif)" title="ERROR: <dtml-var "metadictAttr['errors']">" 189 189 <dtml-elif "metadictAttr['type'] in ['delimiter','hint','interface']"> src="<dtml-var MISC_ZMS>ico_item.gif" 190 190 <dtml-elif "metadictAttr['type'] == 'method'"> src="<dtml-var MISC_ZMS>ico_method.gif" -
ZMS/trunk/version.txt
r793 r794 1 ZMS2 2.12. 0-021 ZMS2 2.12.1-01
Note: See TracChangeset
for help on using the changeset viewer.
