Changeset 794


Ignore:
Timestamp:
16.11.2009 15:50:56 (2 years ago)
Author:
cmeier
Message:

zms-2.12.1-01

Location:
ZMS/trunk
Files:
4 added
11 edited

Legend:

Unmodified
Added
Removed
  • ZMS/trunk/ZMSMetaobjManager.py

    r723 r794  
    2525# Imports. 
    2626from __future__ import nested_scopes 
     27from zope.interface import implements 
    2728from Products.ExternalMethod import ExternalMethod 
    2829from Products.PageTemplates import ZopePageTemplate 
     
    3233import ZPublisher.HTTPRequest 
    3334import copy 
     35import os 
    3436import sys 
    3537import time 
     
    3840import _fileutil 
    3941import _globals 
     42import IZMSSvnInterface 
    4043 
    4144 
     
    7477        attr['custom'] = '<connection>%s</connection>\n<params>%s</params>\n%s'%(connection,params,ob.src) 
    7578  except: 
    76     value = _globals.writeError(self,'[getMetaobjAttr]') 
     79    value = _globals.writeError(self,'[syncType]') 
    7780 
    7881 
     
    98101################################################################################ 
    99102class ZMSMetaobjManager: 
     103    implements(IZMSSvnInterface.IZMSSvnInterface) 
    100104 
    101105    # Globals. 
     
    219223      return ids 
    220224 
     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    ############################################################################ 
    221363 
    222364    # -------------------------------------------------------------------------- 
     
    9691111            metaOb = self.getMetaobj(id) 
    9701112            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]) 
    9751114              self.importMetaobjXml(xml=xml) 
    9761115              message = self.getZMILangStr('MSG_IMPORTED')%('<i>%s</i>'%id) 
     
    9801119          elif btn == self.getZMILangStr('BTN_EXPORT'): 
    9811120            sync_id = False 
    982             value = [] 
    9831121            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) 
    10221123           
    10231124          # Insert. 
  • ZMS/trunk/_confmanager.py

    r792 r794  
    3737import urllib 
    3838# Product imports. 
    39 import IZMSMetamodelProvider, IZMSFormatProvider 
     39import IZMSMetamodelProvider, IZMSFormatProvider, IZMSSvnInterface 
    4040import _globals 
    4141import _fileutil 
     
    133133    implements( 
    134134      IZMSMetamodelProvider.IZMSMetamodelProvider, 
    135       IZMSFormatProvider.IZMSFormatProvider) 
     135      IZMSFormatProvider.IZMSFormatProvider, 
     136      IZMSSvnInterface.IZMSSvnInterface) 
    136137 
    137138    # Management Interface. 
     
    274275    #  ConfManager.svnCopy: 
    275276    # -------------------------------------------------------------------------- 
    276     def svnCopy(self, node, path, ids=[]): 
     277    def svnCopy(self, node, path, ids=[], excl_ids=[]): 
    277278      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)) 
    306327      return l 
    307328 
     
    310331    #  ConfManager.svnUpdate: 
    311332    # -------------------------------------------------------------------------- 
    312     def svnUpdate(self, node, path, ids=[]): 
     333    def svnUpdate(self, node, path, ids=[], excl_ids=[]): 
    313334      l = [] 
    314335      path_ids = [] 
     
    316337        action = None 
    317338        id = filename 
    318         filepath = path+os.sep+id 
     339        filepath = path+'/'+id 
    319340        filestat = os.stat(filepath) 
    320341        mode = filestat[stat.ST_MODE] 
     
    327348        ob = getattr( node, id, None) 
    328349        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': 
    330354            if ob is None: 
    331355              if filepath in ids: 
     
    334358              meta_type = 'Folder' 
    335359              mtime = 0 
    336               action = 'insert' 
     360              action = 'add' 
    337361            if action: 
    338362              l.append({'action':action,'filepath':filepath,'mtime':mtime,'filemtime':filemtime,'meta_type':meta_type}) 
     
    360384            ob = getattr( node, id, None) 
    361385            mtime = 0 
    362             action = 'insert' 
     386            action = 'add' 
    363387          else: 
    364388            meta_type = ob.meta_type 
     
    374398              ob.manage_upload(data) 
    375399              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'])): 
    378409          ob = getattr( node, id) 
    379410          action = 'delete' 
    380           filepath = path+os.sep+id 
     411          filepath = path+'/'+id 
    381412          mtime = long(ob.bobobase_modification_time().timeTime()) 
    382413          filemtime = 0 
     
    758789        home_id = home.id 
    759790        temp_folder = self.temp_folder 
     791        # Init exclude-ids. 
    760792        excl_ids = [] 
     793        # Add clients-folders to exclude-ids. 
    761794        for folder in home.objectValues( ['Folder']): 
    762795          if len( folder.objectValues( ['ZMS'])) > 0: 
    763796            excl_ids.append( absattr( folder.id)) 
     797        # Add content-object artefacts to exclude-ids. 
    764798        for metaObjId in self.getMetaobjIds(): 
    765799          for metaObjAttrId in self.getMetaobjAttrIds( metaObjId): 
     
    767801            if metaObjAttr['type'] in self.metaobj_manager.valid_zopetypes: 
    768802              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)) 
    770805        if btn == self.getZMILangStr('BTN_EXPORT'): 
    771806          if home_id in temp_folder.objectIds(): 
  • ZMS/trunk/_filtermanager.py

    r752 r794  
    3838 
    3939 
    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################################################################################ 
    4745 
    4846# ------------------------------------------------------------------------------ 
     
    634632    # -------------------------------------------------------------------------- 
    635633    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() 
    640638      else: 
    641639        # Acquire from parent. 
     
    643641        if portalMaster is not None: 
    644642          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 
    649655 
    650656 
  • ZMS/trunk/changes.txt

    r793 r794  
    13891389[01278] Applied fix for adding link-elements to link-containers (reported by fh). 
    13901390Risk: Adding link-element zombies without prefix ('e')! 
     1391-------------------------------------------------- 
     13922009-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-------------------------------------------------- 
     13962009-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. 
    13911399---------------------------------------------------------------------------------------------------- 
  • ZMS/trunk/dtml/ZMS/manage_customizesvnform.dtml

    r723 r794  
    77<dtml-var f_bo_area> 
    88 
    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, 
    1011          '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, 
    1514        }"> 
    1615 
     
    2322 
    2423<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))"> 
    2625 <dtml-call "REQUEST.set('headline','Copy to Location')"> 
    2726<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))"> 
    2928 <dtml-call "REQUEST.set('headline','Update from Location')"> 
    3029</dtml-if> 
     
    3635   <td colspan="4"><dtml-var "f_headline(_,_,headline='%s: %s'%(headline,basepath))"></td> 
    3736  </tr> 
     37  <dtml-if "action=='outgoing'"> 
     38   <tr> 
     39    <td class="form-small">&nbsp;</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">&nbsp;</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> 
    3850 </dtml-if> 
    3951 <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> 
    4153  <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"/> 
    4355   <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+'/'):]"> 
    4557  </td> 
    46   <td class="form-small"><dtml-if mtime><dtml-var "getLangFmtDate(_.DateTime(mtime),lang,'DATETIME_FMT')"></dtml-if></td> 
    47   <td class="form-small"><dtml-if filemtime><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> 
    4860 <dtml-if sequence-end> 
    4961  </table> 
  • ZMS/trunk/dtml/ZMSContainerObject/manage_main.dtml

    r793 r794  
    262262 ><img src="<dtml-var thisIcon>" class="zmiDisplayIcon" 
    263263><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" 
    265265></dtml-if 
    266266>./<dtml-var clientId>:</a> 
  • ZMS/trunk/dtml/ZMSMetamodelProvider/manage_main.dtml

    r750 r794  
    544544              ><img src="<dtml-var MISC_ZMS>ico_meta.gif" title="Meta-Attribute" border="0" style="vertical-align:middle"  
    545545             /><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"  
    547547             /><dtml-else 
    548548              ><img src="<dtml-var MISC_ZMS>ico_item.gif" title="<dtml-var "oAttr['type'].capitalize()">" border="0" style="vertical-align:middle"  
     
    570570            ><dtml-if "oAttr['meta_type']" 
    571571             ><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"  
    573573             /><dtml-else 
    574574              ><img src="<dtml-var MISC_ZMS>ico_meta.gif" title="Meta-Attribute" border="0" style="vertical-align:middle"  
     
    576576            ><dtml-elif "oAttr['type'] == 'DTML Method'" 
    577577             ><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" 
    579579             /><dtml-else 
    580580              ><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>" 
     
    582582            ><dtml-elif "oAttr['type'] == 'DTML Document'" 
    583583             ><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" 
    585585             /><dtml-else 
    586586              ><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>" 
     
    591591             ><dtml-with "_.getattr(this(),oAttr['id'])" 
    592592              ><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"  
    594594              /><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"  
    596596              /><dtml-else 
    597597               ><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>" 
     
    603603             ><dtml-with "_.getattr(this(),oAttr['id'])" 
    604604              ><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"  
    606606              /><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"  
    608608              /><dtml-else 
    609609               ><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>"  
     
    622622            ><dtml-elif "oAttr['type']=='method'" 
    623623             ><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" 
    625625             /><dtml-else 
    626626              ><img src="<dtml-var MISC_ZMS>ico_method.gif" title="<dtml-var "oAttr['type'].capitalize()">" border="0" style="vertical-align:middle"  
     
    974974             ><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 
    975975             ><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 
    979978             ><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 
    980979             ><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 
     
    985984               ></dtml-if 
    986985              ></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> 
    992988             </div 
    993989            ></td> 
     
    11201116                   ><dtml-if "type not in valid_types" 
    11211117                    ><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" 
    11231119                    ><dtml-else 
    11241120                     ><img src="<dtml-var MISC_ZMS>ico_meta.gif" title="Meta-Attribute" border="0" style="vertical-align:middle" 
     
    11351131                   ><dtml-if "type not in valid_types" 
    11361132                    ><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" 
    11381134                    ><dtml-else 
    11391135                     ><img src="<dtml-var MISC_ZMS>ico_meta.gif" title="Meta-Attribute" border="0" style="vertical-align:middle" 
     
    11531149                      ><dtml-if "type not in valid_types" 
    11541150                       ><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" 
    11561152                       ><dtml-else 
    11571153                        ><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  
    186186     ><nobr><a id="a_<dtml-var metadictAttrId>" href="#" onmouseover="showDstMetaTypes('<dtml-var metadictAttrId>')" onmouseout="hideDstMetaTypes('<dtml-var metadictAttrId>')" 
    187187     ><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']">" 
    189189     <dtml-elif "metadictAttr['type'] in ['delimiter','hint','interface']"> src="<dtml-var MISC_ZMS>ico_item.gif" 
    190190     <dtml-elif "metadictAttr['type'] == 'method'"> src="<dtml-var MISC_ZMS>ico_method.gif" 
  • ZMS/trunk/version.txt

    r793 r794  
    1 ZMS2 2.12.0-02 
     1ZMS2 2.12.1-01 
Note: See TracChangeset for help on using the changeset viewer.