Changeset 240
- Timestamp:
- 15.10.2008 14:28:13 (4 years ago)
- Location:
- ZMS/trunk
- Files:
-
- 20 edited
-
Extensions/urls_xml.py (modified) (9 diffs)
-
ZMSMetaobjManager.py (modified) (10 diffs)
-
_zcatalogmanager.py (modified) (1 diff)
-
changes.txt (modified) (2 diffs)
-
dtml/ZMS/index.dtml (modified) (1 diff)
-
dtml/ZMSMetamodelProvider/manage_main.dtml (modified) (4 diffs)
-
dtml/ZMSObject/input_fields.dtml (modified) (1 diff)
-
dtml/ZMSObject/manage_main.dtml (modified) (1 diff)
-
dtml/ZMSSqlDb/input_form.dtml (modified) (11 diffs)
-
dtml/ZMSSqlDb/manage_configuration.dtml (modified) (2 diffs)
-
dtml/javascript/comlib.dtml (modified) (1 diff)
-
dtml/object/f_recordset_grid.dtml (modified) (1 diff)
-
import/com.zms.sendmail.metaobj.xml (modified) (4 diffs)
-
import/localfsExplorer.metaobj.xml (modified) (6 diffs)
-
import/wiki.conf.zip (modified) (previous)
-
import/zms.metaobj.xml (modified) (9 diffs)
-
version.txt (modified) (1 diff)
-
www/btn_key.gif (modified) (previous)
-
zms.py (modified) (2 diffs)
-
zmsobject.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
ZMS/trunk/Extensions/urls_xml.py
r209 r240 13 13 14 14 import Products.zms._blobfields 15 import Products.zms._fileutil16 15 import Products.zms._globals 17 16 import urllib 17 18 def guess_content_type( filename, default='application/octet-stream'): 19 content_type = default 20 if filename.endswith('.gif'): 21 content_type = 'image/gif' 22 elif filename.endswith('.jpg'): 23 content_type = 'image/jpeg' 24 elif filename.endswith('.png'): 25 content_type = 'image/png' 26 elif filename.endswith('.css'): 27 content_type = 'text/css' 28 elif filename.endswith('.js'): 29 content_type = 'text/javascript' 30 elif filename.endswith('.html'): 31 content_type = 'text/html' 32 return content_type 18 33 19 34 # see _blobfields.py::recurse_downloadRessources 20 35 def recurseRessources(self, base_path, REQUEST, incl_embedded, RESPONSE): 21 36 try: 37 if REQUEST.get('DEBUG'): 22 38 RESPONSE.write('<!-- DEBUG recurseRessources(self, %s, REQUEST, incl_embedded, RESPONSE) -->\n'%(base_path)) 23 39 except: … … 35 51 return 36 52 37 # Attributes. 38 keys = ob.getObjAttrs().keys() 39 for key in keys: 40 #RESPONSE.write('<!-- DEBUG %s -->\n'%(key)) 53 if ob.isVisible( REQUEST): 54 55 # Attributes. 56 keys = ob.getObjAttrs().keys() 57 for key in keys: 41 58 obj_attr = ob.getObjAttr(key) 42 59 datatype = obj_attr['datatype_key'] 43 60 if datatype in Products.zms._globals.DT_BLOBS: 44 61 for lang in ob.getLangIds(): 45 #RESPONSE.write('<!-- DEBUG Products.zms._globals.DT_BLOBS %s -->\n'%(lang))46 62 try: 47 63 if obj_attr['multilang']==1 or lang==ob.getPrimaryLanguage() or (obj_attr['multilang']==0 and lang!=ob.getPrimaryLanguage()): … … 53 69 filename = Products.zms._blobfields.getLangFilename(ob,filename,lang) 54 70 filename = '%s%s'%(base_path,filename) 55 filename = Products.zms._fileutil.getOSPath(filename)71 filename = filename.replace('\\','/') 56 72 RESPONSE.write('<url content_type="%s">%s</url>\n'%(blob.getContentType(), filename)) 57 73 except: 58 s = Products.zms._globals.writeException(ob,"[recurse_downloadRessources]: Can't export %s"%key)59 RESPONSE.write('<!-- ERROR %s -->\n'%(s))74 s = Products.zms._globals.writeException(ob,"[recurse_downloadRessources]: Can't export %s"%key) 75 RESPONSE.write('<!-- ERROR %s -->\n'%(s)) 60 76 elif datatype == Products.zms._globals.DT_LIST and obj_attr.get('type') in ['image','file']: 61 77 for lang in ob.getLangIds(): 62 #RESPONSE.write('<!-- DEBUG Products.zms._globals.DT_LIST %s -->\n'%(lang))63 78 try: 64 79 if obj_attr['multilang']==1 or lang==ob.getPrimaryLanguage() or (obj_attr['multilang']==0 and lang!=ob.getPrimaryLanguage()): … … 71 86 filename = Products.zms._blobfields.getLangFilename(ob,filename,lang) 72 87 filename = '%s@%i/%s'%(base_path,i,filename) 73 filename = Products.zms._fileutil.getOSPath(filename)88 filename = filename.replace('\\','/') 74 89 RESPONSE.write('<url content_type="%s">%s</url>\n'%(blob.getContentType(), filename)) 75 90 i += 1 76 91 except: 77 s = Products.zms._globals.writeException(ob,"[recurse_downloadRessources]: Can't export %s"%key) 78 RESPONSE.write('<!-- ERROR %s -->\n'%(s)) 79 if ob.meta_type == 'ZMSCustom': 80 metaObjId = ob.meta_id 81 for metaObjAttrId in ob.getMetaobjAttrIds( metaObjId): 82 metaObjAttr = ob.getMetaobjAttr( metaObjId, metaObjAttrId) 83 if metaObjAttr['type'] == 'resource': 84 try: 85 blob = metaObjAttr['custom'] 86 filename = blob.getFilename() 87 filename = '%s%s'%(base_path,filename) 88 filename = Products.zms._fileutil.getOSPath(filename) 89 RESPONSE.write('<url content_type="%s">%s</url>\n'%(blob.getContentType(), filename)) 90 except: 91 Products.zms._globals.writeException( ob, "[recurse_downloadRessources]: Can't export %s.%s"%(metaObjId,metaObjAttrId)) 92 s = Products.zms._globals.writeException(ob,"[recurse_downloadRessources]: Can't export %s"%key) 93 RESPONSE.write('<!-- ERROR %s -->\n'%(s)) 94 92 95 # Process children. 93 96 for child in ob.getChildNodes(): … … 101 104 def recurseHtmlPages(self, obj, path, lang, REQUEST, RESPONSE): 102 105 try: 106 if REQUEST.get('DEBUG'): 103 107 RESPONSE.write('<!-- DEBUG recurseHtmlPages(self, obj, %s, %s, REQUEST, RESPONSE) -->\n'%(path, lang)) 104 108 except: 105 109 RESPONSE.write('<!-- ERROR exception -->\n') 106 110 107 level = obj.getLevel() 108 109 dctOp = {'index':'','sitemap':'sitemap','index_print':'print'} 110 for key in dctOp.keys(): 111 if key == 'index' and \ 112 level > 0 and \ 113 self.getConfProperty('ZMS.pathhandler',0) != 0 and \ 114 self.getConfProperty('ZMS.export.pathhandler',0) == 1: 115 filename = '%s/../%s%s'%( path, obj.getDeclId(REQUEST), obj.getPageExt(REQUEST)) 116 else: 117 if key == 'sitemap': 118 pageext = '.html' 119 else: 120 pageext = obj.getPageExt( REQUEST) 121 filename = '%s/%s_%s%s'%( path, key, lang, pageext) 122 123 RESPONSE.write('<url>%s</url>\n'%(filename)) 124 125 # Process DTML-methods of meta-objects. 126 if self.zms_build >= '131': # >= ZMS-2.11 111 if obj.isVisible( REQUEST): 112 113 level = obj.getLevel() 114 115 dctOp = {'index':'','sitemap':'sitemap','index_print':'print'} 116 for key in dctOp.keys(): 117 if key == 'index' and \ 118 level > 0 and \ 119 self.getConfProperty('ZMS.pathhandler',0) != 0 and \ 120 self.getConfProperty('ZMS.export.pathhandler',0) == 1: 121 filename = '%s/../%s%s'%( path, obj.getDeclId(REQUEST), obj.getPageExt(REQUEST)) 122 else: 123 if key == 'sitemap': 124 pageext = '.html' 125 else: 126 pageext = obj.getPageExt( REQUEST) 127 filename = '%s/%s_%s%s'%( path, key, lang, pageext) 128 129 content_type = 'text/html' 130 RESPONSE.write('<url lang="%s" content_type="%s">%s</url>\n'%(lang,content_type,filename)) 131 132 # Process DTML-methods of meta-objects. 127 133 for metadictAttrId in self.getMetaobjAttrIds( obj.meta_id): 128 134 try: … … 137 143 RESPONSE.write('<url>%s</url>\n'%(filename)) 138 144 except: 139 s = Products.zms._globals.writeException( self, "[recurse_downloadHtmlPages]: Can't process DTML-method '%s' of meta-object"%metadictAttr) 140 RESPONSE.write('<!-- ERROR %s -->\n'%(s)) 141 else: # < ZMS-2.11 142 for metadictAttrId in self.getMetadictAttrs( obj.meta_type): 143 try: 144 metadictAttr = self.getMetadictAttr( metadictAttrId) 145 if metadictAttr['type'] in self.getMetaobjIds(): 146 metaObj = self.getMetaobj( metadictAttr['type']) 147 if metaObj['type'] == 'ZMSResource': 148 for metadictObj in obj.getObjChildren( metadictAttr['id'], REQUEST): 149 for metaObjAttr in metaObj['attrs']: 150 if metaObjAttr['type'] in [ 'DTML Document', 'DTML Method']: 151 filename = '%s/%s'%( path, metaObjAttr['id']) 152 RESPONSE.write('<url>%s</url>\n'%(filename)) 153 except: 154 s = Products.zms._globals.writeException( self, "[recurse_downloadHtmlPages]: Can't process DTML-method '%s' of meta-object"%metadictAttr) 155 RESPONSE.write('<!-- ERROR %s -->\n'%(s)) 145 s = Products.zms._globals.writeException( self, "[recurse_downloadHtmlPages]: Can't process DTML-method '%s' of meta-object"%metadictAttr) 146 RESPONSE.write('<!-- ERROR %s -->\n'%(s)) 156 147 157 148 # Process children. … … 163 154 def recurseFolder(self, root, path, id, REQUEST, RESPONSE): 164 155 try: 156 if REQUEST.get('DEBUG'): 165 157 RESPONSE.write('<!-- DEBUG recurseFolder(%s, %s, %s, %s, REQUEST, RESPONSE) -->\n'%(self, "root", path, id)) 166 158 except: … … 176 168 else: 177 169 try: 178 ob_id = ob.id()170 ob_id = ob.id() 179 171 except: 180 ob_id = str(ob.id)172 ob_id = str(ob.id) 181 173 #if ob.meta_type in [ 'DTML Document', 'DTML Method']: 182 174 # ob = Products.zms._globals.dt_html(self,ob.raw,REQUEST) 183 RESPONSE.write('<url>%s/%s/%s</url>\n'%(path,id,ob_id)) 184 185 186 # see _exportable::exportContentRessources 187 def recurseContentRessources(self, REQUEST, RESPONSE): 188 try: 189 RESPONSE.write('<!-- DEBUG recurseContentRessources(self, REQUEST, RESPONSE) -->\n') 190 except: 191 RESPONSE.write('<!-- ERROR exception -->\n') 192 193 #-- JavaScript 194 # diese mÃŒssen als comlib_ger.js usw. exportiert werden(!) 195 for js in [ 'comlib', 'formlib', 'datelib', 'formlib', 'zmilib', 'styleswitcher']: 196 attr = getattr(self,'%s_js'%(js),None) 197 if attr: 198 data = attr(self,REQUEST) 199 filename = '%s.js'%js 200 RESPONSE.write('<url>/%s</url>\n'%(filename)) 201 175 content_type = getattr(ob,'content_type','application/octet-stream') 176 if content_type == 'application/octet-stream': 177 content_type = guess_content_type( ob_id) 178 RESPONSE.write('<url content_type="%s">%s/%s/%s</url>\n'%(content_type,path,id,ob_id)) 179 180 181 # see _exportable::exportMetaobjManager 182 def recurseMetaobjManager(self, root, path, REQUEST, RESPONSE): 183 try: 184 if REQUEST.get('DEBUG'): 185 RESPONSE.write('<!-- DEBUG recurseMetaobjManager(%s, %s, %s) -->\n'%(self, "root", path)) 186 except: 187 RESPONSE.write('<!-- ERROR exception -->\n') 188 189 id = 'metaobj_manager' 190 if hasattr(root,id): 191 folder = getattr(root,id) 192 for ob in folder.objectValues(['File']): 193 try: 194 ob_id = ob.id() 195 except: 196 ob_id = str(ob.id) 197 content_type = getattr(ob,'content_type','application/octet-stream') 198 if content_type == 'application/octet-stream': 199 content_type = guess_content_type( ob_id) 200 RESPONSE.write('<url content_type="%s">%s/%s/%s</url>\n'%(content_type,path,id,ob_id)) 202 201 203 202 def manage_getMirrorURLs(self, REQUEST, RESPONSE): … … 209 208 # see _exportable.py::exportRessources, etc. 210 209 folder = '/misc_/zms' 211 for obj_id in self.misc_.zms._d.keys(): 212 RESPONSE.write('<url>%s/%s</url>\n'%(folder, obj_id)) 210 for ob_id in self.misc_.zms._d.keys(): 211 content_type = guess_content_type( ob_id) 212 RESPONSE.write('<url content_type="%s">%s/%s</url>\n'%(content_type,folder,ob_id)) 213 213 214 214 for id in [ 'common', 'instance']: 215 215 recurseFolder( self, self.getHome(), "", id, REQUEST, RESPONSE) 216 217 recurseContentRessources( self, REQUEST, RESPONSE) 218 216 217 recurseMetaobjManager( self, self, "/content", REQUEST, RESPONSE) 219 218 recurseRessources(self, "/content/", REQUEST, True, RESPONSE) 220 recurseHtmlPages(self, self, "/content", lang, REQUEST, RESPONSE) 219 for lang in self.getLangIds(): 220 REQUEST.set('lang',lang) 221 REQUEST.set('preview',None) 222 recurseHtmlPages(self, self, "/content", lang, REQUEST, RESPONSE) 221 223 222 224 RESPONSE.write('</urls>\n'); -
ZMS/trunk/ZMSMetaobjManager.py
r227 r240 184 184 # -------------------------------------------------------------------------- 185 185 # ZMSMetaobjManager.__get_metaobjs__: 186 # 186 # 187 187 # Returns all meta-objects (including acquisitions). 188 188 # -------------------------------------------------------------------------- … … 232 232 # -------------------------------------------------------------------------- 233 233 # ZMSMetaobjManager.__get_metaobj__: 234 # 234 # 235 235 # Returns meta-object identified by id. 236 236 # -------------------------------------------------------------------------- … … 254 254 rtnVal = False 255 255 ob = self.__get_metaobj__( id) 256 if ob['type'] == 'ZMSDocument' or ob['id'] == 'ZMSTeaserContainer':256 if type( ob) is dict and (ob.get('type') == 'ZMSDocument' or ob.get('id') == 'ZMSTeaserContainer'): 257 257 ids = map( lambda x: x['id'], filter( lambda x: x['type']=='*', ob['attrs'])) 258 258 rtnVal = ids == ['e'] … … 264 264 # -------------------------------------------------------------------------- 265 265 # ZMSMetaobjManager.getMetaobjIds: 266 # 266 # 267 267 # Returns list of all meta-ids in model. 268 268 # -------------------------------------------------------------------------- … … 380 380 # -------------------------------------------------------------------------- 381 381 # ZMSMetaobjManager.getMetaobjAttrIdentifierId: 382 # 382 # 383 383 # Returns attribute-id of datatable-identifier for meta-object specified by id. 384 384 # -------------------------------------------------------------------------- … … 391 391 # -------------------------------------------------------------------------- 392 392 # ZMSMetaobjManager.getMetaobjAttrIds: 393 # 393 # 394 394 # Returns list of attribute-ids for meta-object specified by meta-id. 395 395 # -------------------------------------------------------------------------- … … 412 412 # Get attribute for meta-object specified by attribute-id. 413 413 # -------------------------------------------------------------------------- 414 def getMetaobjAttr(self, meta_id, key ):414 def getMetaobjAttr(self, meta_id, key, sync=True): 415 415 meta_objs = self.__get_metaobjs__() 416 416 if meta_objs.get(meta_id,{}).get('acquired',0) == 1: … … 439 439 valid_types = self.valid_datatypes+self.valid_zopetypes+meta_types+['*'] 440 440 # type is valid: sync type (copy can be edited directly in ZODB via FTP!) 441 if attr['type'] in valid_types:441 if sync and attr['type'] in valid_types: 442 442 attr['meta_type'] = '' 443 443 syncType( self, meta_id, attr) … … 451 451 # -------------------------------------------------------------------------- 452 452 # ZMSMetaobjManager.setMetaobjAttr: 453 # 453 # 454 454 # Set/add meta-object attribute with specified values. 455 455 # -------------------------------------------------------------------------- … … 829 829 newKeys = self.string_list(REQUEST.get('attr_keys_%s'%old_id,''),'\n') 830 830 newCustom = REQUEST.get('attr_custom_%s'%old_id,'') 831 if REQUEST.get('attr_custom_%s_modified'%old_id,'1') == '0': 832 savedAttr = filter(lambda x: x['id']==old_id, savedAttrs)[0] 833 syncType( self, id, savedAttr) 834 newCustom = savedAttr['custom'] 831 835 newDefault = REQUEST.get('attr_default_%s'%old_id,'') 832 836 if len( newMetaType) > 0: -
ZMS/trunk/_zcatalogmanager.py
r121 r240 206 206 except ( UnicodeDecodeError, UnicodeEncodeError): 207 207 _globals.writeException(self,"[search_encode]") 208 v = str(sys.exc_value) 209 STR_POSITION = ' position ' 210 i = v.find(STR_POSITION) 211 if i > 0: 212 v = v[i+len(STR_POSITION):] 213 if v.find('-') > 0: 214 l = int( v[:v.find('-')]) 215 h = int( v[v.find('-')+1:v.find(':')]) 216 else: 217 l = int( v[:v.find(':')]) 218 h = l 219 ln = max( l - 20, 0) 220 hn = min( h + 20, len(s)) 221 print ">>>>>",s[ln:hn] 222 print ">>>>>"," "*(l-ln)+"^"*(h-l+1) 208 try: 209 v = str(sys.exc_value) 210 STR_POSITION = ' position ' 211 i = v.find(STR_POSITION) 212 if i > 0: 213 v = v[i+len(STR_POSITION):] 214 if v.find('-') > 0: 215 l = int( v[:v.find('-')]) 216 h = int( v[v.find('-')+1:v.find(':')]) 217 else: 218 l = int( v[:v.find(':')]) 219 h = l 220 ln = max( l - 20, 0) 221 hn = min( h + 20, len(s)) 222 print ">>>>>",s[ln:hn] 223 print ">>>>>"," "*(l-ln)+"^"*(h-l+1) 224 except: 225 _globals.writeException(self,"[search_encode]: ignore exception") 223 226 return s 224 227 -
ZMS/trunk/changes.txt
r227 r240 940 940 2008-08-21::zms-2.11.0-30 941 941 -- MINOR CHANGES 942 [01083] Applied fix for display of properties-tab after c utting objects (reported by J. Klein).942 [01083] Applied fix for display of properties-tab after copying objects (reported by J. Klein). 943 943 -------------------------------------------------- 944 944 2008-09-02::zms-2.11.0-31 … … 972 972 [01095] Revised keys in language-dictionary: WEEKDAY%i is deprecated, use DAYOFWEEK%i instead! 973 973 -------------------------------------------------- 974 2008-09-23:zms-2.11.1-01 975 -- MINOR CHANGES 976 [01096] Added support for Zope-2.11.1. 977 [01097] Applied fix for Google-Sitemap/Mirror-Manager (requested by xm). 978 -------------------------------------------------- 979 2008-10-06:zms-2.11.1-02 980 -- MINOR CHANGES 981 [01098] Revised special-object 'Wiki' (contributed by fh). 982 -------------------------------------------------- 983 2008-10-08:zms-2.11.1-03 984 -- MINOR CHANGES 985 [01099] Applied fix for display of properties-tab after cutting objects (reported by desy). 986 [01100] Applied fixes for ZMSTable (reported by desy). 987 -------------------------------------------------- 988 2008-10-09:zms-2.11.1-04 989 -- MINOR CHANGES 990 [01101] Applied fix for Google-Sitemap/Mirror-Manager (requested by xm). 991 [01102] Added support for simultaneous remote- (via ftp) and web-editing (via zmi) of content-object-methods. 992 -------------------------------------------------- 993 2008-10-09:zms-2.11.1-05 994 -- MINOR CHANGES 995 [01103] Revised semantics of zmsobject.isModifiedInParentLanguage(): equal timestamps mean unmodified (important for xml-import). 996 -------------------------------------------------- 997 2008-10-10:zms-2.11.1-06 998 -- MINOR CHANGES 999 [01104] Added support for multilingual labels to SQL-Datasource (contributed by tf). 1000 [01105] Added support for smtp-authentication to send_mail extension (contributed by S. Tänzer). 1001 -------------------------------------------------- 1002 2008-10-13:zms-2.11.1-07 1003 -- MINOR CHANGES 1004 [01106] Applied fix for Google-Sitemap/Mirror-Manager (requested by xm). 1005 -------------------------------------------------- -
ZMS/trunk/dtml/ZMS/index.dtml
r121 r240 76 76 ><script type="text/javascript"><dtml-in "REQUEST.get(ZMS_HIGHLIGHT,'').split(' ')"><dtml-if sequence-item>do_highlight('<dtml-var sequence-item>');</dtml-if></dtml-in></script></dtml-if 77 77 ><dtml-else 78 ><dtml-call "RESPONSE.setStatus(503)" 78 79 ><p class="standard"><dtml-var "getLangStr('MSG_INACTIVE',lang)"></p 79 80 ></dtml-if -
ZMS/trunk/dtml/ZMSMetamodelProvider/manage_main.dtml
r227 r240 37 37 fm.elements['attr_name'].value = arr[v]; 38 38 } 39 } 40 41 /** 42 * 43 * @param el 44 */ 45 function changeCustom(el) 46 { 47 $(el).css( 'backgroundColor', '#FFFFE8'); 48 $('input[@name='+el.name+'_modified]').val( '1'); 39 49 } 40 50 … … 569 579 <dtml-elif "oAttr['type'] in ['hint']"> 570 580 class="form-small" style="width:80px; border-width=1;" 571 <dtml-elif "oAttr['type'] in ['method','interface'] or oAttr['type'] invalid_zopetypes">581 <dtml-elif "oAttr['type'] in ['method','interface']+valid_zopetypes"> 572 582 class="form-fixed" style="width:80px; " 573 583 <dtml-else> … … 582 592 <dtml-elif "oAttr['type'] in ['hint']"> 583 593 class="form-small" style="width:120px; border-width=1;" 584 <dtml-elif "oAttr['type'] in ['method','interface'] or oAttr['type'] invalid_zopetypes">594 <dtml-elif "oAttr['type'] in ['method','interface']+valid_zopetypes"> 585 595 class="form-fixed" style="width:120px; " 586 596 <dtml-else> … … 591 601 ##### METHOD ##### 592 602 </dtml-comment> 593 <dtml-if "oAttr['type'] == 'method' or oAttr['type'] invalid_zopetypes">603 <dtml-if "oAttr['type'] in ['method']+valid_zopetypes"> 594 604 <td nowrap="nowrap" colspan="<dtml-if "metaObj['type']=='ZMSRecordSet'">4<dtml-else>5</dtml-if>"> 595 605 <input type="hidden" name="attr_type_<dtml-var "oAttr['id']">" value="<dtml-var "oAttr['type']">"> 596 <textarea class="form-fixed" title="<dtml-var "oAttr['type']">" name="attr_custom_<dtml-var "oAttr['id']">" cols="80" rows="1" wrap="virtual" style="width:390px; height:20px;"><dtml-var "oAttr.get('custom','')" html_quote></textarea 606 <input type="hidden" name="attr_custom_<dtml-var "oAttr['id']">_modified" value="0"/> 607 <textarea class="form-fixed" title="<dtml-var "oAttr['type']">" name="attr_custom_<dtml-var "oAttr['id']">" cols="80" rows="1" wrap="virtual" style="width:390px; height:20px;" onchange="changeCustom(this);"><dtml-var "oAttr.get('custom','')" html_quote></textarea 597 608 ><a href="manage_editorForm?came_from=<dtml-var "URL+'?'+QUERY_STRING" url_quote>&lang=<dtml-var lang>&fmName=form0&elName=attr_custom_<dtml-var "oAttr['id']">&headline=<dtml-var "getZMILangStr(meta_type)+': '+id+'.'+oAttr['id']" url_quote>" onclick="javascript:return confirmChanges(this);"><img src="<dtml-var MISC_ZMS>table_cell_edit.gif" border="0" align="bottom"></a> 598 609 </td> -
ZMS/trunk/dtml/ZMSObject/input_fields.dtml
r226 r240 83 83 ##### Cacheable ##### 84 84 </dtml-comment> 85 <dtml-elif "objAttr['id']=='attr_cacheable' ">86 <dtml-if "REQUEST['AUTHENTICATED_USER'].has_permission('ZMS Administrator',this()) and getConfProperty('ZMS.cache.active')==1">85 <dtml-elif "objAttr['id']=='attr_cacheable' and getConfProperty('ZMS.cache.active')==1"> 86 <dtml-if "REQUEST['AUTHENTICATED_USER'].has_permission('ZMS Administrator',this())"> 87 87 <tr id="tr_<dtml-var key>" valign="top"> 88 88 <td><div class="form-label<dtml-if disabled>-disabled</dtml-if>"><dtml-var elLabel><dtml-if required><sup style="color:red">*</sup></dtml-if></div></td> -
ZMS/trunk/dtml/ZMSObject/manage_main.dtml
r121 r240 1 1 <dtml-let lurl="URL.replace('?','/').split('/')"> 2 <dtml-if "isPageContainer() and ('manage' in lurl or 'manage_main' in lurl or 'manage_copyObjects' in lurl )">2 <dtml-if "isPageContainer() and ('manage' in lurl or 'manage_main' in lurl or 'manage_copyObjects' in lurl or 'manage_cutObjects' in lurl)"> 3 3 <dtml-var manage_container> 4 4 <dtml-else> -
ZMS/trunk/dtml/ZMSSqlDb/input_form.dtml
r121 r240 20 20 self.btnClicked=="<dtml-var "getZMILangStr('BTN_CHANGE')" html_quote>") { 21 21 if (fm.elements['<dtml-var elName>'] && fm.elements['<dtml-var "'new_%s_confirm'%id">']) { 22 b = b && !disallowBlank(fm.elements['<dtml-var elName>'],"<dtml-var "getZMILangStr('MSG_REQUIRED')% label">",false);23 b = b && !disallowBlank(fm.elements['<dtml-var "'new_%s_confirm'%id">'],"<dtml-var "getZMILangStr('MSG_REQUIRED')%'%s (%s)'%( label,getZMILangStr('ATTR_CONFIRM'))">",false);22 b = b && !disallowBlank(fm.elements['<dtml-var elName>'],"<dtml-var "getZMILangStr('MSG_REQUIRED')%getLangStr(label,lang)">",false); 23 b = b && !disallowBlank(fm.elements['<dtml-var "'new_%s_confirm'%id">'],"<dtml-var "getZMILangStr('MSG_REQUIRED')%'%s (%s)'%(getLangStr(label,lang),getZMILangStr('ATTR_CONFIRM'))">",false); 24 24 if (fm.elements['<dtml-var elName>'].value!=fm.elements['<dtml-var "'new_%s_confirm'%id">'].value) { 25 25 b = false; 26 alert('<dtml-var label><><dtml-var "'%s (%s)'%(label,getZMILangStr('ATTR_CONFIRM'))">!');26 alert('<dtml-var "getLangStr(label,lang)"><><dtml-var "'%s (%s)'%(getLangStr(label,lang),getZMILangStr('ATTR_CONFIRM'))">!'); 27 27 } 28 28 } … … 183 183 <img src="<dtml-var MISC_ZMS>btn_key.gif" title="" border="0" align="middle"/> 184 184 </dtml-if> 185 <dtml-var label><dtml-if mandatory><sup style="color:red">*</sup></dtml-if>185 <dtml-var "getLangStr(label,lang)"><dtml-if mandatory><sup style="color:red">*</sup></dtml-if> 186 186 </td> 187 187 <dtml-if "grid_col.get('details')"> … … 226 226 <tr> 227 227 <td colspan="<dtml-var "_.len(multimultiselect.get('tables',[]))">"> 228 <div class="form-small"><dtml-in "multimultiselect.get('tables',[])" mapping><dtml-var label><dtml-unless sequence-end>/</dtml-unless></dtml-in></div>228 <div class="form-small"><dtml-in "multimultiselect.get('tables',[])" mapping><dtml-var "getLangStr(label,lang)"><dtml-unless sequence-end>/</dtml-unless></dtml-in></div> 229 229 <dtml-let values="[]" leftjoins="[]" outerjoins="[]"> 230 230 <dtml-unless ZMS_INSERT> … … 323 323 ><dtml-let i=sequence-index item=sequence-item 324 324 ><td style="vertical-align:bottom" 325 ><div class="form-small"><dtml-var label><dtml-unless "item.get('nullable') in [1,_.True]"><sup style="color:red">*</sup></dtml-unless></div325 ><div class="form-small"><dtml-var "getLangStr(label,lang)"><dtml-unless "item.get('nullable') in [1,_.True]"><sup style="color:red">*</sup></dtml-unless></div 326 326 ><dtml-if "item.has_key('lazy')" 327 327 ><dtml-let fk=item … … 337 337 ><dtml-else 338 338 ><select class="<dtml-var css>" id="<dtml-var mmsid><dtml-var sequence-index>" 339 ><dtml-if "item.get('nullable') in [1,_.True]"><option value="">----- <dtml-var "getZMILangStr('ACTION_SELECT')% label"> -----</option></dtml-if339 ><dtml-if "item.get('nullable') in [1,_.True]"><option value="">----- <dtml-var "getZMILangStr('ACTION_SELECT')%getLangStr(label,lang)"> -----</option></dtml-if 340 340 ><dtml-in "query( 'SELECT ' + fieldname + ' AS qkey, ' + displayfield + ' AS qvalue FROM ' + tablename + ' ORDER BY ' + displayfield)['records']" 341 341 ><dtml-let row=sequence-item … … 407 407 class="form-submit" style="vertical-align:middle;padding:1px 2px;background:#fff" 408 408 src="<dtml-var MISC_ZMS>pencil_add.png" 409 title="<dtml-var "getZMILangStr('ACTION_SELECT')% label">"409 title="<dtml-var "getZMILangStr('ACTION_SELECT')%getLangStr(label,lang)">" 410 410 onclick="return browseDbBtnClick('form0','<dtml-var id>','<dtml-var "js_quote(fk.get('fieldname'))">','<dtml-var "js_quote(fk.get('displayfield'))">','<dtml-var "js_quote(fk.get('tablename'))">')"/> 411 411 <img class="form-submit" style="vertical-align:middle;padding:1px 2px;background:#fff" … … 420 420 <select class="<dtml-var css>" id="<dtml-var elName>" name="<dtml-var elName>"> 421 421 <dtml-if nullable> 422 <option value="">----- <dtml-var "getZMILangStr('ACTION_SELECT')% label"> -----</option>422 <option value="">----- <dtml-var "getZMILangStr('ACTION_SELECT')%getLangStr(label,lang)"> -----</option> 423 423 </dtml-if> 424 424 <dtml-in options> … … 469 469 ></dtml-in 470 470 ></dtml-if 471 ><dtml-var "getSelect(fmName='form0', elName='%s:list'%elName, value=value, inputtype='multiselect', lang_str= label, required=0, optpl=optpl, enabled=1, REQUEST=REQUEST)"471 ><dtml-var "getSelect(fmName='form0', elName='%s:list'%elName, value=value, inputtype='multiselect', lang_str=getLangStr(label,lang), required=0, optpl=optpl, enabled=1, REQUEST=REQUEST)" 472 472 ></dtml-let 473 473 ><dtml-else … … 534 534 </dtml-in> 535 535 </select> 536 <input class="form-submit" type="submit" value="..." title="<dtml-var "getZMILangStr('ACTION_SELECT')% label">" onclick="return browseDbBtnClick('form0','<dtml-var id>','<dtml-var "js_quote(fk.get('fieldname'))">','<dtml-var "js_quote(fk.get('displayfield'))">','<dtml-var "js_quote(fk.get('tablename'))">')"/>536 <input class="form-submit" type="submit" value="..." title="<dtml-var "getZMILangStr('ACTION_SELECT')%getLangStr(label,lang)">" onclick="return browseDbBtnClick('form0','<dtml-var id>','<dtml-var "js_quote(fk.get('fieldname'))">','<dtml-var "js_quote(fk.get('displayfield'))">','<dtml-var "js_quote(fk.get('tablename'))">')"/> 537 537 <input class="form-submit" type="submit" value="-" title="<dtml-var "getZMILangStr('BTN_DELETE')">" onclick="return multiMultiSelectRemoveElements('<dtml-var elName>')"/> 538 538 <dtml-if nullable><input class="form-submit" type="submit" value="X" title="<dtml-var "getZMILangStr('BTN_DELETE')">" onclick="document.getElementById('<dtml-var elName>').value='null'; document.getElementById('<dtml-var "'displayfield_%s'%id">').value='[null]'; return false;"/></dtml-if> 539 539 <dtml-else> 540 <dtml-var "getSelect(fmName='form0', elName='%s:list'%elName, value=value, inputtype='multiselect', lang_str= label, required=0, optpl=optpl, enabled=1, REQUEST=REQUEST)">540 <dtml-var "getSelect(fmName='form0', elName='%s:list'%elName, value=value, inputtype='multiselect', lang_str=getLangStr(label,lang), required=0, optpl=optpl, enabled=1, REQUEST=REQUEST)"> 541 541 </dtml-if> 542 542 </dtml-let> … … 646 646 </dtml-comment> 647 647 <dtml-elif "type in ['richtext']"> 648 <dtml-var "f_selectRichtext(_,_,fmName='form0', elName=elName, cols=50, rows=15, value=row.get(id,''), key=id, metaObj=_.None, enabled=1, lang=lang, lang_str= label, REQUEST=REQUEST, css=css, wrap='virtual')">648 <dtml-var "f_selectRichtext(_,_,fmName='form0', elName=elName, cols=50, rows=15, value=row.get(id,''), key=id, metaObj=_.None, enabled=1, lang=lang, lang_str=getLangStr(label,lang), REQUEST=REQUEST, css=css, wrap='virtual')"> 649 649 <dtml-comment> 650 650 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ … … 670 670 <dtml-if password> 671 671 <tr id="tr_<dtml-var id>_confirm"> 672 <td class="form-label"><dtml-var label> (<dtml-var "getZMILangStr('ATTR_CONFIRM')">)<dtml-unless nullable><sup style="color:red">*</sup></dtml-unless></td>672 <td class="form-label"><dtml-var "getLangStr(label,lang)"> (<dtml-var "getZMILangStr('ATTR_CONFIRM')">)<dtml-unless nullable><sup style="color:red">*</sup></dtml-unless></td> 673 673 <td class="form-element"><dtml-var "getTextInput(fmName='form0', elName='new_%s_confirm'%id, value=row.get(id,''), type='password', css=css)"></td> 674 674 </tr> -
ZMS/trunk/dtml/ZMSSqlDb/manage_configuration.dtml
r227 r240 40 40 <colgroup> 41 41 <col /> 42 <col />43 <col />44 <col />45 <col />46 <col width="20" />47 42 </colgroup> 48 43 49 44 <!-- Header --> 50 45 <tr> 51 <td colspan="6"><dtml-var "f_headline(_,_,headline=getZMILangStr('TAB_EDIT'),extra='<a href='+QUOT+'sqlmodel.xml'+QUOT+' target='+QUOT+'_blank'+QUOT+'><img src='+QUOT+MISC_ZMS+'mime_type.text_xml.gif'+QUOT+' title='+QUOT+getZMILangStr('BTN_EXPORT')+' (XML)'+QUOT+' border='+QUOT+'1'+QUOT+' align='+QUOT+'absmiddle'+QUOT+'/></a>')"></td>46 <td><dtml-var "f_headline(_,_,headline=getZMILangStr('TAB_EDIT'),extra='<a href='+QUOT+'sqlmodel.xml'+QUOT+' target='+QUOT+'_blank'+QUOT+'><img src='+QUOT+MISC_ZMS+'mime_type.text_xml.gif'+QUOT+' title='+QUOT+getZMILangStr('BTN_EXPORT')+' (XML)'+QUOT+' border='+QUOT+'1'+QUOT+' align='+QUOT+'absmiddle'+QUOT+'/></a>')"></td> 52 47 </tr> 53 48 54 49 <dtml-in "getEntities()" mapping sort=label> 55 50 <dtml-if "REQUEST.get('id','')==id"> 51 <!-- Headline --> 52 <tr valign="top" class="zmiNeutralColorStrong0"> 53 <td><div class="form-label">Model</div></td> 54 </tr> 55 <tr valign="top" class="zmiNeutralColorMedium0"> 56 <td> 57 <textarea class="form-fixed" name="model" style="width:100%" rows="10"><dtml-in "getModel()"><dtml-let x=sequence-item><dtml-if "x.get('id')==REQUEST.get('id')"><dtml-var "toXmlString(x)"></dtml-if></dtml-let></dtml-in></textarea> 58 </td> 59 </tr> 56 60 <dtml-elif "REQUEST.get('id','')==''"> 57 61 <tr valign="top" class="neutralColorWhite"> 58 <td colspan="6">62 <td> 59 63 <div class="form-small"> 60 64 <a href="javascript:toggleElement('img_<dtml-var id>','columns_<dtml-var id>')"><img id="img_<dtml-var id>" src="<dtml-var MISC_ZMS>pl.gif" alt="+" title="+" border="0" align="absmiddle"/></a> 61 <a id="a_<dtml-var id>" href="?lang=<dtml-var lang>&id=<dtml-var id>" class="zmi"><strong><dtml-var label></strong></a> 62 <div id="columns_<dtml-var id>" style="display:none;"> 63 <table cellspacing="0" cellpadding="0" border="0"> 65 <a id="a_<dtml-var id>" href="?lang=<dtml-var lang>&id=<dtml-var id>" class="zmi"><strong><dtml-var id></strong> (<em><dtml-var label></em>)</a> 66 <div id="columns_<dtml-var id>" style="display:none;padding-left:20px;"> 64 67 <dtml-in columns mapping> 65 <tr> 66 <td><dtml-var sequence-item></td> 67 </tr> 68 <div class="form-small"> 69 <img src="<dtml-var MISC_ZMS>ico_attr.gif" title="Attribute" border="0" style="vertical-align:middle" /> 70 <dtml-if pk><img src="<dtml-var MISC_ZMS>btn_key.gif" alt="" border="0" align="middle" /><span style="color:blue;"></dtml-if> 71 <dtml-var id><dtml-if mandatory><sup style="color:red">*</sup></dtml-if>: <dtml-var type><dtml-if name> (<em><dtml-var name></em>)</dtml-if> 72 <dtml-if pk></span></dtml-if> 73 </div> 68 74 </dtml-in> 69 </table>70 75 </div> 71 76 </div> … … 82 87 <dtml-if "REQUEST.get('id','')==''"> 83 88 <tr> 84 <td colspan="8"><dtml-var "f_headline(_,_,headline='<img src=%smime_type.text_xml.gif alt=XML border=0 align=absmiddle> %s'%(MISC_ZMS,getZMILangStr('BTN_IMPORT')))"></td>89 <td><dtml-var "f_headline(_,_,headline='<img src=%smime_type.text_xml.gif alt=XML border=0 align=absmiddle> %s'%(MISC_ZMS,getZMILangStr('BTN_IMPORT')))"></td> 85 90 </tr> 86 91 <tr class="zmiNeutralColorLight0"> 87 <td colspan="6">92 <td> 88 93 <table cellspacing="0" cellpadding="2" border="0"> 89 94 <tr valign="middle"> -
ZMS/trunk/dtml/javascript/comlib.dtml
r123 r240 417 417 */ 418 418 419 function getInnerDimensions( )419 function getInnerDimensions( offset) 420 420 { 421 421 if (window.innerWidth) { 422 return {width: window.innerWidth, height: window.innerHeight}; 422 var dims = {width: window.innerWidth, height: window.innerHeight}; 423 if ( offset) 424 dims = {width: dims.width+window.pageXOffset, height: dims.height+window.pageYOffset}; 425 return dims 423 426 } else if (document.body && document.body.offsetWidth) { 424 427 // important: for IE set body width = 100% 425 428 document.getElementsByTagName("body")[0].style.setAttribute("width", "100%", "false"); 426 429 document.getElementsByTagName("body")[0].style.setAttribute("height", "100%", "false"); 427 return {width: document.body.offsetWidth, height: document.body.offsetHeight}; 430 var dims = {width: document.body.offsetWidth, height: document.body.offsetHeight}; 431 if ( offset) 432 dims = {width: dims.width+document.body.scrollLeft, height: dims.height+document.body.scrollTop}; 433 return dims 428 434 } else { 429 435 return {width: 0, height: 0}; -
ZMS/trunk/dtml/object/f_recordset_grid.dtml
r121 r240 56 56 <dtml-unless "grid_col.get('hide')"> 57 57 <th class="form-small" align="left"> 58 <dtml-if pk> 59 <img src="<dtml-var MISC_ZMS>btn_key.gif" alt="" border="0" align="middle" /> 60 </dtml-if> 58 <dtml-if pk><img src="<dtml-var MISC_ZMS>btn_key.gif" alt="" border="0" align="middle" /></dtml-if> 61 59 <dtml-if sort> 62 60 <dtml-if "key==qorder"> -
ZMS/trunk/import/com.zms.sendmail.metaobj.xml
r121 r240 1 <?xml version="1.0" encoding=" utf-8"?>1 <?xml version="1.0" encoding="UTF-8"?> 2 2 <dictionary> 3 <item key="dtml"><![CDATA[<!-- BO bodyContentZMSCustom_com.zms.sendmail -->4 5 6 <!-- EO bodyContentZMSCustom_com.zms.sendmail -->7 ]]></item>8 <item key="enabled" type="int">1</item>9 3 <item key="key"><![CDATA[com.zms.sendmail]]></item> 10 4 <item key="value" type="dictionary"><dictionary> 11 5 <item key="__obj_attrs__" type="list"><list> 12 6 <item type="dictionary"><dictionary> 13 <item key="custom"><![CDATA[import smtplib 7 <item key="custom"><![CDATA[# ------------------------------------------------------------------------------ 8 # Changes: 9 # 2008-10-10 [st]: Added support for smtp-authentication. 10 # ------------------------------------------------------------------------------ 11 12 import smtplib 14 13 import os 15 14 from email.MIMEMultipart import MIMEMultipart … … 19 18 from email import Encoders 20 19 21 def send_mail(send_from, send_to, subject, text, files=[], server="localhost", send_cc=[], send_bcc=[] ):20 def send_mail(send_from, send_to, subject, text, files=[], server="localhost", send_cc=[], send_bcc=[], smtp_user=None, smtp_passwd=None): 22 21 assert type(send_to)==list 23 22 assert type(send_cc)==list … … 46 45 47 46 smtp = smtplib.SMTP(server) 47 if smtp_user is not None: 48 smtp.login(smtp_user,smtp_passwd) 48 49 smtp.sendmail(send_from, send_to, msg.as_string()) 49 smtp.close() 50 ]]></item> 51 <item key="default"></item> 50 51 smtp.close()]]></item> 52 52 <item key="id"><![CDATA[send_mail]]></item> 53 <item key="keys" type="list"><list>54 </list>55 </item>56 53 <item key="mandatory" type="int">0</item> 57 54 <item key="multilang" type="int">0</item> … … 63 60 </list> 64 61 </item> 62 <item key="access" type="dictionary"><dictionary> 63 <item key="delete" type="list"><list> 64 </list> 65 </item> 66 <item key="delete_custom"/> 67 <item key="edit" type="list"><list> 68 </list> 69 </item> 70 <item key="edit_custom"/> 71 <item key="insert" type="list"><list> 72 </list> 73 </item> 74 <item key="insert_custom"/> 75 </dictionary> 76 </item> 65 77 <item key="acquired" type="int">0</item> 78 <item key="enabled" type="int">0</item> 79 <item key="id"><![CDATA[com.zms.sendmail]]></item> 66 80 <item key="name"><![CDATA[com.zms.sendmail]]></item> 67 <item key="package" ></item>81 <item key="package"/> 68 82 <item key="type"><![CDATA[ZMSLibrary]]></item> 69 83 </dictionary> 70 84 </item> 71 85 </dictionary> 72 -
ZMS/trunk/import/localfsExplorer.metaobj.xml
r121 r240 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 2 <dictionary> 3 <item key="dtml"><![CDATA[<!-- BO bodyContentZMSCustom_localfsExplorer -->4 5 <dtml-let path="getObjProperty('path',REQUEST)" tunnel="getObjProperty('tunnel',REQUEST)" ico_folderup="getObjProperty('ico_folderup',REQUEST)">6 7 <script language="JavaScript">8 <!--//9 10 function clickElement(id,currentPath,currentLevel)11 {12 var img = document.getElementById( id+"_img");13 var el = document.getElementById( id+"_children");14 if ( img.title == "-") {15 img.src = "<dtml-var MISC_ZMS>pl.gif";16 img.title = "+";17 el.style.visibility = "hidden";18 el.style.display = "none";19 }20 else21 if ( img.title == "+") {22 img.src = "<dtml-var MISC_ZMS>mi.gif";23 img.title = "-";24 el.style.visibility = "visible";25 el.style.display = "inline";26 if ( ( el.childNodes.length < 1) || ( el.childNodes.length == 1 && el.firstChild.nodeType != 1)) {27 setxml(id,currentPath,currentLevel);28 }29 }30 }31 32 function setxml(id,currentPath,currentLevel)33 {34 document.getElementsByTagName('body')[0].style.cursor = "wait";35 if (window.XMLHttpRequest) {36 req = new XMLHttpRequest();37 } else if (window.ActiveXObject) {38 req = new ActiveXObject("Microsoft.XMLHTTP");39 }40 var url = "<dtml-var absolute_url>/localfsExplorer_readPath.xml?currentPath="+escape(currentPath)+"¤tLevel:int="+currentLevel;41 req.open("GET",url,true);42 req.onreadystatechange = processResponse;43 req.send(null);44 }45 46 function processResponse()47 {48 if ( req.readyState == 4) {49 document.getElementsByTagName('body')[0].style.cursor = "auto";50 if ( req.status == 200) {51 var id = req.responseXML.getElementsByTagName('path')[0].getAttribute('id');52 var level = req.responseXML.getElementsByTagName('path')[0].getAttribute('level');53 var el = document.getElementById( id+"_children");54 var dir = req.responseXML.getElementsByTagName('dir');55 for (var i = 0; i < dir.length; i++) {56 var ciId = dir[i].getElementsByTagName("id")[0].firstChild.data;57 var ciLocalFilename = dir[i].getElementsByTagName("local_filename")[0].firstChild.data;58 var ciFilename = dir[i].getElementsByTagName("filename")[0].firstChild.data;59 var ciTimestamp = dir[i].getElementsByTagName("timestamp")[0].firstChild.data;60 var div = document.createElement( "div");61 div.setAttribute( "id", ciId);62 var img = document.createElement( "img");63 img.setAttribute( "src", "<dtml-var spacer_gif>");64 img.setAttribute( "width", level*8);65 img.setAttribute( "height", 16);66 img.setAttribute( "border", 0);67 img.setAttribute( "align", "absmiddle");68 img.setAttribute( "title", "");69 div.appendChild( img);70 var a = document.createElement( "a");71 a.setAttribute( "href", "javascript:clickElement('" + ciId + "','" + ciLocalFilename + "'," + level + ");");72 var img = document.createElement( "img");73 img.setAttribute( "id", ciId + "_img");74 img.setAttribute( "src", "<dtml-var MISC_ZMS>pl.gif");75 img.setAttribute( "width", 16);76 img.setAttribute( "height", 16);77 img.setAttribute( "border", 0);78 img.setAttribute( "align", "absmiddle");79 img.setAttribute( "title", "+");80 a.appendChild( img);81 div.appendChild( a)82 var img = document.createElement( "img");83 img.setAttribute( "src", "<dtml-var MISC_ZMS>zmsfolder.gif");84 img.setAttribute( "border", 0);85 img.setAttribute( "align", "absmiddle");86 img.setAttribute( "title", "Folder, <dtml-var "getLangStr('ATTR_LAST_MODIFIED',lang)">: " + ciTimestamp);87 div.appendChild( img);88 div.appendChild( document.createTextNode( " " + ciFilename));89 // Children90 var div_children = document.createElement( "div");91 div_children.setAttribute( "id", ciId + "_children");92 div.appendChild( div_children);93 el.appendChild( div);94 }95 var file = req.responseXML.getElementsByTagName('file');96 for (var i = 0; i < file.length; i++) {97 var ciLocalFilename = file[i].getElementsByTagName("local_filename")[0].firstChild.data;98 var ciFilename = file[i].getElementsByTagName("filename")[0].firstChild.data;99 var ciTimestamp = file[i].getElementsByTagName("timestamp")[0].firstChild.data;100 var ciSize = file[i].getElementsByTagName("size")[0].firstChild.data;101 var ciIcon = file[i].getElementsByTagName("icon")[0].firstChild.data;102 var ciContentType = file[i].getElementsByTagName("content_type")[0].firstChild.data;103 var div = document.createElement( "div");104 var img = document.createElement( "img");105 img.setAttribute( "src", "<dtml-var spacer_gif>");106 img.setAttribute( "width", level*8+16);107 img.setAttribute( "height", 16);108 img.setAttribute( "border", 0);109 img.setAttribute( "align", "absmiddle");110 img.setAttribute( "title", "");111 div.appendChild( img);112 var a = document.createElement( "a");113 a.setAttribute( "href", "<dtml-if tunnel>localfsExplorer_read?currentPath=<dtml-else>file://</dtml-if>" + ciLocalFilename);114 a.setAttribute( "target", "_blank");115 var img = document.createElement( "img");116 img.setAttribute( "src", ciIcon);117 img.setAttribute( "border", 0);118 img.setAttribute( "align", "absmiddle");119 img.setAttribute( "title", "<dtml-var "getLangStr('ATTR_LAST_MODIFIED',lang)">: " + ciTimestamp);120 a.appendChild( img);121 a.appendChild( document.createTextNode( ciFilename));122 div.appendChild( a)123 // Size124 div.appendChild( document.createTextNode( " (" + ciSize + ")"));125 el.appendChild( div);126 }127 } else {128 error = "error: \n";129 for(var r in req) { error += "variable: " + r + ", value: " + req[r] + "\n"; }130 alert(error);131 }132 }133 }134 135 //-->136 </script>137 138 139 <p>140 <div>141 <img src="<dtml-var "ico_folderup.getHref(REQUEST)">" border="0" title="Location" align="absmiddle"/> <strong>Location:</strong> <span style="color:blue;text-decoration:underline;"><dtml-var path></span>142 </div>143 <dtml-let readPath="localfs_readPath(path)">144 <dtml-in readPath mapping>145 <dtml-let id="id_quote(local_filename.replace('\\','/'))">146 <dtml-if isdir>147 <div id="<dtml-var id>">148 <a href="javascript:clickElement('<dtml-var id>','<dtml-var "local_filename.replace('\\','/')">',0);"><img id="<dtml-var id>_img" src="<dtml-var MISC_ZMS>pl.gif" width="16" height="16" title="+" border="0" align="absmiddle"/></a><img src="<dtml-var MISC_ZMS>zmsfolder.gif" border="0" title="Folder, <dtml-var "getLangStr('ATTR_LAST_MODIFIED',lang)">: <dtml-var "getLangFmtDate(mtime,lang,'SHORTDATETIME_FMT')">" align="absmiddle"/> <dtml-var filename>149 </div>150 <div id="<dtml-var id>_children"></div>151 </dtml-if>152 </dtml-let>153 <dtml-else>154 <div><em>Empty</em></div>155 </dtml-in>156 <dtml-in readPath mapping>157 <dtml-unless isdir>158 <dtml-let icon="getMimeTypeIconSrc(content_type)">159 <div>160 <img src="<dtml-var spacer_gif>" alt="" border="0" width="16" height="16" align="absmiddle"/><a href="<dtml-if tunnel>localfsExplorer_read?currentPath=<dtml-else>file://</dtml-if><dtml-var local_filename>" target="_blank" title="<dtml-var "getLangStr('ATTR_LAST_MODIFIED',lang)">: <dtml-var "getLangFmtDate(mtime,lang,'SHORTDATETIME_FMT')">"><img src="<dtml-if "icon.find('unknown')>=0"><dtml-var MISC_ZMS>mime_type.application_octet_stream.gif<dtml-else><dtml-var icon></dtml-if>" alt="<dtml-var content_type>" border="0" align="absmiddle"/><dtml-var filename></a> (<dtml-var "getDataSizeStr(size)">)161 </div>162 </dtml-let>163 </dtml-unless>164 </dtml-in>165 </dtml-let>166 </p>167 168 </dtml-let>169 170 <!-- EO bodyContentZMSCustom_localfsExplorer -->]]></item>171 <item key="enabled" type="int">1</item>172 3 <item key="key"><![CDATA[localfsExplorer]]></item> 173 4 <item key="value" type="dictionary"><dictionary> 174 5 <item key="__obj_attrs__" type="list"><list> 175 6 <item type="dictionary"><dictionary> 176 <item key="custom"/>177 <item key="default"/>178 7 <item key="id"><![CDATA[path]]></item> 179 <item key="keys" type="list"><list>180 </list>181 </item>182 8 <item key="mandatory" type="int">1</item> 183 9 <item key="multilang" type="int">0</item> … … 188 14 </item> 189 15 <item type="dictionary"><dictionary> 190 <item key="custom"/>191 16 <item key="default"><![CDATA[1]]></item> 192 17 <item key="id"><![CDATA[tunnel]]></item> 193 <item key="keys" type="list"><list>194 </list>195 </item>196 18 <item key="mandatory" type="int">0</item> 197 19 <item key="multilang" type="int">0</item> … … 202 24 </item> 203 25 <item type="dictionary"><dictionary> 204 <item key="custom" type="file">26 <item key="custom"> 205 27 <data content_type="image/gif" filename="ico_explorer.gif" type="file">47494638396114001400b30000795a1cc28e2ca8969ccec9a8f8d06dc1d0dfe2f9faac8779fc02fc5c5d5ddfb049b2b3b4fbf99ba87815fae882ccb68c21f90401000008002c000000001400140003047d10c949abbd386b1d5408c636294669048508322c73364d105f41bb14b869348915388443a960281c3eb146e5a720ea9c40406f1220a09e05164121a574aeba014bd1e852ab03dd62e0707c120bef6a50182c1e0705a13c9d344804818202797c150f32308a000d0747701602099394948e7d22120b0798999e9fa00811003b</data></item> 206 <item key="default"/>207 28 <item key="id"><![CDATA[icon]]></item> 208 <item key="keys" type="list"><list>209 </list>210 </item>211 29 <item key="mandatory" type="int">0</item> 212 30 <item key="multilang" type="int">0</item> … … 217 35 </item> 218 36 <item type="dictionary"><dictionary> 219 <item key="custom" type="file">37 <item key="custom"> 220 38 <data content_type="image/gif" filename="ico_folderup.gif" type="file">47494638396114001400b30000187810318c2094ba8c69d13d679b59fbfbd2f8f39bd8ac2deaca64fc02fcd8b759d1e66fe7c24437ad1cc7c8b3e5ce9121f90401000009002c000000001400140003047d30c949abbd384f129cb602d000c4373962d304806012e2d0c824c61c07a0cf830e5c8747a1803b04068312e65030188685632f73705a1900240107342c100cc623b018080a0ae083f11c1e034e972588b02e8e040363a9282c9c1c000b0f0f4b0c4d8300010c08071e6a0f088d4507726a450a0f8f1a389a269fa0a111003b</data></item> 221 <item key="default"/>222 39 <item key="id"><![CDATA[ico_folderup]]></item> 223 <item key="keys" type="list"><list>224 </list>225 </item>226 40 <item key="mandatory" type="int">0</item> 227 41 <item key="multilang" type="int">0</item> … … 232 46 </item> 233 47 <item type="dictionary"><dictionary> 48 <item key="custom"> 49 <data content_type="image/gif" filename="icon_folder.gif" type="file">47494638396112001000f700004c4c4c6d6d6d6e6e6e9967019a68029c6a049e6c06a06e08a3710ba5730da87610ab7913ae7c16b07e18ff00ffb3811bb4811cb5821db7841fb88520ba8722bc8924bd8a25bf8c27c08d28c28f2ac5922dc7942fc99631cb9833cc9934d3a03bdca944e6b34eefbc57f8c560ffcc67ffd46fffe07b8383838c8c8cffe681ffeb85fff48efff791ffff99ffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000021f9040100000e002c00000000120010000008ae001d081c48b0a0410f1d386c30c8d0838b872e323024e8b085c5162e2c509010e14183821d58ac183912e2430628087250914283cb97182a4c80f0e0c1c00d263498dc99c20582940e3494f070b1a8c5112d0e081098814487162ca24a8d2aa2858100023190d0d04285d7af5e43b42880d5810512175a9858cb762d881604ca522031a14589bb78ef7e683160a9c08e0d182c509000c1010305080c007082e0890090234b0ed078a2e5cb970302003b</data></item> 50 <item key="id"><![CDATA[ico_folder]]></item> 51 <item key="mandatory" type="int">0</item> 52 <item key="multilang" type="int">0</item> 53 <item key="name"><![CDATA[Icon: Folder]]></item> 54 <item key="repetitive" type="int">0</item> 55 <item key="type"><![CDATA[resource]]></item> 56 </dictionary> 57 </item> 58 <item type="dictionary"><dictionary> 234 59 <item key="custom"><![CDATA[<dtml-return "localfs_read(currentPath,mode='b',REQUEST=REQUEST)">]]></item> 235 <item key="default"/>236 60 <item key="id"><![CDATA[localfsExplorer_read]]></item> 237 <item key="keys" type="list"><list>238 </list>239 </item>240 61 <item key="mandatory" type="int">0</item> 241 62 <item key="multilang" type="int">0</item> … … 279 100 </path> 280 101 </dtml-let>]]></item> 281 <item key="default"/>282 102 <item key="id"><![CDATA[localfsExplorer_readPath.xml]]></item> 283 <item key="keys" type="list"><list> 103 <item key="mandatory" type="int">0</item> 104 <item key="multilang" type="int">0</item> 105 <item key="name"><![CDATA[LocalFS: Read path (xml)]]></item> 106 <item key="repetitive" type="int">0</item> 107 <item key="type"><![CDATA[DTML Method]]></item> 108 </dictionary> 109 </item> 110 <item type="dictionary"><dictionary> 111 <item key="custom"><![CDATA[<!-- BO bodyContentZMSCustom_localfsExplorer --> 112 113 <dtml-let path="getObjProperty('path',REQUEST)" tunnel="getObjProperty('tunnel',REQUEST)" ico_folderup="getObjProperty('ico_folderup',REQUEST)" ico_folder="getObjProperty('ico_folder',REQUEST)"> 114 115 <script language="JavaScript"> 116 <!--// 117 118 function clickElement(id,currentPath,currentLevel) 119 { 120 var img = document.getElementById( id+"_img"); 121 var el = document.getElementById( id+"_children"); 122 if ( img.title == "-") { 123 img.src = "<dtml-var MISC_ZMS>pl.gif"; 124 img.title = "+"; 125 el.style.visibility = "hidden"; 126 el.style.display = "none"; 127 } 128 else 129 if ( img.title == "+") { 130 img.src = "<dtml-var MISC_ZMS>mi.gif"; 131 img.title = "-"; 132 el.style.visibility = "visible"; 133 el.style.display = "inline"; 134 if ( ( el.childNodes.length < 1) || ( el.childNodes.length == 1 && el.firstChild.nodeType != 1)) { 135 setxml(id,currentPath,currentLevel); 136 } 137 } 138 } 139 140 function setxml(id,currentPath,currentLevel) 141 { 142 document.getElementsByTagName('body')[0].style.cursor = "wait"; 143 if (window.XMLHttpRequest) { 144 req = new XMLHttpRequest(); 145 } else if (window.ActiveXObject) { 146 req = new ActiveXObject("Microsoft.XMLHTTP"); 147 } 148 var url = "<dtml-var absolute_url>/localfsExplorer_readPath.xml?currentPath="+escape(currentPath)+"¤tLevel:int="+currentLevel; 149 req.open("GET",url,true); 150 req.onreadystatechange = processResponse; 151 req.send(null); 152 } 153 154 function processResponse() 155 { 156 if ( req.readyState == 4) { 157 document.getElementsByTagName('body')[0].style.cursor = "auto"; 158 if ( req.status == 200) { 159 var id = req.responseXML.getElementsByTagName('path')[0].getAttribute('id'); 160 var level = req.responseXML.getElementsByTagName('path')[0].getAttribute('level'); 161 var el = document.getElementById( id+"_children"); 162 var dir = req.responseXML.getElementsByTagName('dir'); 163 for (var i = 0; i < dir.length; i++) { 164 var ciId = dir[i].getElementsByTagName("id")[0].firstChild.data; 165 var ciLocalFilename = dir[i].getElementsByTagName("local_filename")[0].firstChild.data; 166 var ciFilename = dir[i].getElementsByTagName("filename")[0].firstChild.data; 167 var ciTimestamp = dir[i].getElementsByTagName("timestamp")[0].firstChild.data; 168 var div = document.createElement( "div"); 169 div.setAttribute( "id", ciId); 170 var img = document.createElement( "img"); 171 img.setAttribute( "src", "<dtml-var spacer_gif>"); 172 img.setAttribute( "width", level*8); 173 img.setAttribute( "height", 16); 174 img.setAttribute( "border", 0); 175 img.setAttribute( "align", "absmiddle"); 176 img.setAttribute( "title", ""); 177 div.appendChild( img); 178 var a = document.createElement( "a"); 179 a.setAttribute( "href", "javascript:clickElement('" + ciId + "','" + ciLocalFilename + "'," + level + ");"); 180 var img = document.createElement( "img"); 181 img.setAttribute( "id", ciId + "_img"); 182 img.setAttribute( "src", "<dtml-var MISC_ZMS>pl.gif"); 183 img.setAttribute( "width", 16); 184 img.setAttribute( "height", 16); 185 img.setAttribute( "border", 0); 186 img.setAttribute( "align", "absmiddle"); 187 img.setAttribute( "title", "+"); 188 a.appendChild( img); 189 div.appendChild( a) 190 var img = document.createElement( "img"); 191 img.setAttribute( "src", "<dtml-var "ico_folder.getHref(REQUEST)">"); 192 img.setAttribute( "border", 0); 193 img.setAttribute( "align", "absmiddle"); 194 img.setAttribute( "title", "Folder, <dtml-var "getLangStr('ATTR_LAST_MODIFIED',lang)">: " + ciTimestamp); 195 div.appendChild( img); 196 div.appendChild( document.createTextNode( " " + ciFilename)); 197 // Children 198 var div_children = document.createElement( "div"); 199 div_children.setAttribute( "id", ciId + "_children"); 200 div.appendChild( div_children); 201 el.appendChild( div); 202 } 203 var file = req.responseXML.getElementsByTagName('file'); 204 for (var i = 0; i < file.length; i++) { 205 var ciLocalFilename = file[i].getElementsByTagName("local_filename")[0].firstChild.data; 206 var ciFilename = file[i].getElementsByTagName("filename")[0].firstChild.data; 207 var ciTimestamp = file[i].getElementsByTagName("timestamp")[0].firstChild.data; 208 var ciSize = file[i].getElementsByTagName("size")[0].firstChild.data; 209 var ciIcon = file[i].getElementsByTagName("icon")[0].firstChild.data; 210 var ciContentType = file[i].getElementsByTagName("content_type")[0].firstChild.data; 211 var div = document.createElement( "div"); 212 var img = document.createElement( "img"); 213 img.setAttribute( "src", "<dtml-var spacer_gif>"); 214 img.setAttribute( "width", level*8+16); 215 img.setAttribute( "height", 16); 216 img.setAttribute( "border", 0); 217 img.setAttribute( "align", "absmiddle"); 218 img.setAttribute( "title", ""); 219 div.appendChild( img); 220 var a = document.createElement( "a"); 221 a.setAttribute( "href", "<dtml-if tunnel>localfsExplorer_read?currentPath=<dtml-else>file://</dtml-if>" + ciLocalFilename); 222 a.setAttribute( "target", "_blank"); 223 var img = document.createElement( "img"); 224 img.setAttribute( "src", ciIcon); 225 img.setAttribute( "border", 0); 226 img.setAttribute( "align", "absmiddle"); 227 img.setAttribute( "title", "<dtml-var "getLangStr('ATTR_LAST_MODIFIED',lang)">: " + ciTimestamp); 228 a.appendChild( img); 229 a.appendChild( document.createTextNode( ciFilename)); 230 div.appendChild( a) 231 // Size 232 div.appendChild( document.createTextNode( " (" + ciSize + ")")); 233 el.appendChild( div); 234 } 235 } else { 236 error = "error: \n"; 237 for(var r in req) { error += "variable: " + r + ", value: " + req[r] + "\n"; } 238 alert(error); 239 } 240 } 241 } 242 243 //--> 244 </script> 245 246 247 <p> 248 <div> 249 <img src="<dtml-var "ico_folderup.getHref(REQUEST)">" border="0" title="Location" align="absmiddle"/> <strong>Location:</strong> <span style="color:blue;text-decoration:underline;"><dtml-var path></span> 250 </div> 251 <dtml-let readPath="localfs_readPath(path)"> 252 <dtml-in readPath mapping> 253 <dtml-let id="id_quote(local_filename.replace('\\','/'))"> 254 <dtml-if isdir> 255 <div id="<dtml-var id>"> 256 <a href="javascript:clickElement('<dtml-var id>','<dtml-var "local_filename.replace('\\','/')">',0);"><img id="<dtml-var id>_img" src="<dtml-var MISC_ZMS>pl.gif" width="16" height="16" title="+" border="0" align="absmiddle"/></a><img src="<dtml-var "ico_folder.getHref(REQUEST)">" border="0" title="Folder, <dtml-var "getLangStr('ATTR_LAST_MODIFIED',lang)">: <dtml-var "getLangFmtDate(mtime,lang,'SHORTDATETIME_FMT')">" align="absmiddle"/> <dtml-var filename> 257 </div> 258 <div id="<dtml-var id>_children"></div> 259 </dtml-if> 260 </dtml-let> 261 <dtml-else> 262 <div><em>Empty</em></div> 263 </dtml-in> 264 <dtml-in readPath mapping> 265 <dtml-unless isdir> 266 <dtml-let icon="getMimeTypeIconSrc(content_type)"> 267 <div> 268 <img src="<dtml-var spacer_gif>" alt="" border="0" width="16" height="16" align="absmiddle"/><a href="<dtml-if tunnel>localfsExplorer_read?currentPath=<dtml-else>file://</dtml-if><dtml-var local_filename>" target="_blank" title="<dtml-var "getLangStr('ATTR_LAST_MODIFIED',lang)">: <dtml-var "getLangFmtDate(mtime,lang,'SHORTDATETIME_FMT')">"><img src="<dtml-if "icon.find('unknown')>=0"><dtml-var MISC_ZMS>mime_type.application_octet_stream.gif<dtml-else><dtml-var icon></dtml-if>" alt="<dtml-var content_type>" border="0" align="absmiddle"/><dtml-var filename></a> (<dtml-var "getDataSizeStr(size)">) 269 </div> 270 </dtml-let> 271 </dtml-unless> 272 </dtml-in> 273 </dtml-let> 274 </p> 275 276 </dtml-let> 277 278 <!-- EO bodyContentZMSCustom_localfsExplorer --> 279 ]]></item> 280 <item key="id"><![CDATA[bodyContentZMSCustom_localfsExplorer]]></item> 281 <item key="mandatory" type="int">0</item> 282 <item key="multilang" type="int">0</item> 283 <item key="name"><![CDATA[Template: LocalFS-Explorer]]></item> 284 <item key="repetitive" type="int">0</item> 285 <item key="type"><![CDATA[DTML Method]]></item> 286 </dictionary> 287 </item> 284 288 </list> 285 289 </item> 286 <item key="mandatory" type="int">0</item> 287 <item key="multilang" type="int">0</item> 288 <item key="name"><![CDATA[LocalFS: Read path (xml)]]></item> 289 <item key="repetitive" type="int">0</item> 290 <item key="type"><![CDATA[DTML Method]]></item> 291 </dictionary> 292 </item> 290 <item key="access" type="dictionary"><dictionary> 291 <item key="delete" type="list"><list> 292 <item><![CDATA[ZMSAdministrator]]></item> 293 <item><![CDATA[ZMSAuthor]]></item> 294 <item><![CDATA[ZMSEditor]]></item> 293 295 </list> 294 296 </item> 297 <item key="delete_custom"/> 298 <item key="edit" type="list"><list> 299 <item><![CDATA[ZMSAdministrator]]></item> 300 <item><![CDATA[ZMSAuthor]]></item> 301 <item><![CDATA[ZMSEditor]]></item> 302 </list> 303 </item> 304 <item key="edit_custom"/> 305 <item key="insert" type="list"><list> 306 <item><![CDATA[ZMSAdministrator]]></item> 307 <item><![CDATA[ZMSAuthor]]></item> 308 <item><![CDATA[ZMSEditor]]></item> 309 </list> 310 </item> 311 <item key="insert_custom"><![CDATA[{$}]]></item> 312 </dictionary> 313 </item> 295 314 <item key="acquired" type="int">0</item> 315 <item key="enabled" type="int">1</item> 316 <item key="id"><![CDATA[localfsExplorer]]></item> 296 317 <item key="name"><![CDATA[LocalFS-Explorer]]></item> 297 318 <item key="package"/> -
ZMS/trunk/import/zms.metaobj.xml
r207 r240 1030 1030 <item key="package"><![CDATA[com.zms.foundation]]></item> 1031 1031 <item key="type"><![CDATA[ZMSObject]]></item> 1032 </dictionary>1033 </item>1034 </dictionary>1035 </item>1036 <item type="dictionary"><dictionary>1037 <item key="key"><![CDATA[ZMSLib]]></item>1038 <item key="value" type="dictionary"><dictionary>1039 <item key="__obj_attrs__" type="list"><list>1040 <item type="dictionary"><dictionary>1041 <item key="custom"><![CDATA[# --// BO getLinkList //--1042 1043 links = []1044 return links1045 1046 # --// EO getLinkList //--1047 ]]></item>1048 <item key="id"><![CDATA[getLinkList]]></item>1049 <item key="mandatory" type="int">0</item>1050 <item key="multilang" type="int">0</item>1051 <item key="name"><![CDATA[Function: Links (align=none)]]></item>1052 <item key="repetitive" type="int">0</item>1053 <item key="type"><![CDATA[Script (Python)]]></item>1054 </dictionary>1055 </item>1056 <item type="dictionary"><dictionary>1057 <item key="custom"><![CDATA[<dtml-comment>--// BO bodyContentZMSLib_page //--</dtml-comment1058 1059 ><dtml-let childNodes="getObjChildren('e',REQUEST,PAGEELEMENTS)" forced="isPreviewRequest(REQUEST) and not isActive(REQUEST)"1060 ><dtml-if childNodes1061 ><dtml-var bodyContent_PagePre1062 ><dtml-in childNodes1063 ><dtml-var "getBodyContent(REQUEST,forced)"1064 ></dtml-in1065 ><dtml-var bodyContent_PagePost1066 ></dtml-if1067 ></dtml-let1068 1069 ><dtml-comment>--// EO bodyContentZMSLib_page //--</dtml-comment>]]></item>1070 <item key="id"><![CDATA[bodyContentZMSLib_page]]></item>1071 <item key="mandatory" type="int">0</item>1072 <item key="multilang" type="int">0</item>1073 <item key="name"><![CDATA[Template: Page]]></item>1074 <item key="repetitive" type="int">0</item>1075 <item key="type"><![CDATA[DTML Method]]></item>1076 </dictionary>1077 </item>1078 </list>1079 </item>1080 <item key="acquired" type="int">0</item>1081 <item key="enabled" type="int">1</item>1082 <item key="id"><![CDATA[ZMSLib]]></item>1083 <item key="name"><![CDATA[ZMSLib]]></item>1084 <item key="package"><![CDATA[com.zms.foundation]]></item>1085 <item key="type"><![CDATA[ZMSLibrary]]></item>1086 1032 </dictionary> 1087 1033 </item> … … 2331 2277 ><div id="zmiImgZoomImgDiv" style="visibility:hidden;display:none;" 2332 2278 ><div class="zmiNeutralColorMedium0"> 2333 <dtml-var "f_selectRichtext(_,_,ob=this(),fmName=fmName,elName='content ',cols=25,rows=10,value='',key='cell',enabled=_.True,lang=lang,lang_str=getZMILangStr('ACTION_EDIT_CELL'),custom_str=''.join(custom),REQUEST=REQUEST,css='form-small',wrap='virtual')">2279 <dtml-var "f_selectRichtext(_,_,ob=this(),fmName=fmName,elName='content_editor',cols=25,rows=10,value='',key='cell',enabled=_.True,lang=lang,lang_str=getZMILangStr('ACTION_EDIT_CELL'),custom_str=''.join(custom),REQUEST=REQUEST,css='form-small',wrap='virtual')"> 2334 2280 <hr size="1"/> 2335 2281 <input class="form-submit" type="submit" value="<dtml-var "getZMILangStr('BTN_CHANGE')">" onclick="return table_cell_change();"/> … … 2394 2340 function table_cell_edit(el) 2395 2341 { 2342 var dims = getInnerDimensions(true); 2343 var coords = getCoords(el); 2396 2344 table_cell_id = el.name.substr(el.name.indexOf('_')+1); 2397 2345 var el_td = $('#content_'+ table_cell_id).parent(); … … 2404 2352 zmiImgZoomDiv.style.top = 0; 2405 2353 zmiImgZoomDiv.style.left = 0; 2406 zmiImgZoomDiv.style.width = '100%';2407 zmiImgZoomDiv.style.height = '100%';2354 zmiImgZoomDiv.style.width = dims.width; 2355 zmiImgZoomDiv.style.height = dims.height; 2408 2356 var zmiImgZoomImgDiv = document.getElementById('zmiImgZoomImgDiv'); 2409 2357 zmiImgZoomImgDiv.style.visibility = 'visible'; 2410 2358 zmiImgZoomImgDiv.style.display = 'block'; 2411 2359 zmiImgZoomImgDiv.style.position = 'absolute'; 2412 var dims = getInnerDimensions();2413 zmiImgZoomImgDiv.style.top = (dims.height - zmiImgZoomImgDiv.offsetHeight) / 2;2414 zmiImgZoomImgDiv.style.left = ( dims.width - zmiImgZoomImgDiv.offsetWidth) / 2;2360 zmiImgZoomImgDiv.style.width = '90%'; 2361 zmiImgZoomImgDiv.style.top = Math.min( coords.y + el.offsetHeight, dims.height - zmiImgZoomImgDiv.offsetHeight); //(dims.height - zmiImgZoomImgDiv.offsetHeight) / 2; 2362 zmiImgZoomImgDiv.style.left = ($('div.zmi').attr('offsetWidth') - zmiImgZoomImgDiv.offsetWidth) / 2; //(dims.width - zmiImgZoomImgDiv.offsetWidth) / 2; 2415 2363 // Apply values. 2416 2364 $('#zmiRichtextEditor<dtml-var elName>').css( { display: "none", visibility: "hidden"}); 2417 2365 $('#zmiStandardEditor<dtml-var elName>').css( { display: "block", visibility: "visible"}); 2418 $('#content ').val($('#content_'+ table_cell_id).val());2366 $('#content_editor').val($('#content_'+ table_cell_id).val()); 2419 2367 selectValue(document.getElementById('tag'),$('#tag_'+ table_cell_id).val()); 2420 2368 selectValue(document.getElementById('format'),$('#format_'+ table_cell_id).val()); 2421 <dtml-let elName="'content '">2369 <dtml-let elName="'content_editor'"> 2422 2370 <dtml-if "REQUEST.get('richedit_fmt')"> 2423 2371 if ( $('#format').val()=='<dtml-var "REQUEST.get('richedit_fmt').getId()">') { … … 2435 2383 $('#format_'+ table_cell_id).val($('#format').val()); 2436 2384 $('#tag_'+ table_cell_id).val($('#tag').val()); 2437 $('#content_'+ table_cell_id).val($('#content ').val());2385 $('#content_'+ table_cell_id).val($('#content_editor').val()); 2438 2386 return table_cell_cancel(); 2439 2387 } … … 2519 2467 $(el_inputs[k]).val( ""); 2520 2468 } 2469 table_cell_uid++; 2521 2470 } 2522 2471 new_td.insertBefore( el_td); 2523 table_cell_uid++;2524 2472 } 2525 2473 } … … 2541 2489 $(el_inputs[k]).val( ""); 2542 2490 } 2491 table_cell_uid++; 2543 2492 } 2544 2493 new_tr.insertBefore( el_tr); 2545 table_cell_uid++;2546 2494 $('#rows').val( parseInt($('#rows').val())-1); 2547 2495 } … … 2705 2653 2706 2654 <input type="hidden" id="table" name="table_<dtml-var lang>" value="<list></list>"/> 2707 <dtml-call "REQUEST.set('ZMS_HIDE_ELEMENTS',REQUEST.get('ZMS_HIDE_ELEMENTS',[])+['type','table','colgroup'])">]]></item> 2655 <dtml-call "REQUEST.set('ZMS_HIDE_ELEMENTS',REQUEST.get('ZMS_HIDE_ELEMENTS',[])+['type','table','colgroup'])"> 2656 ]]></item> 2708 2657 <item key="repetitive" type="int">0</item> 2709 2658 <item key="type"><![CDATA[interface]]></item> … … 3614 3563 </item> 3615 3564 </list> 3616 -
ZMS/trunk/version.txt
r227 r240 1 ZMS 2.11. 0-361 ZMS 2.11.1-07 -
ZMS/trunk/zms.py
r239 r240 374 374 recurse_updateVersionBuild(docElmnt, ob, REQUEST) 375 375 376 ##### Build 130a: ZMS Standard-Objects #### 377 if getattr( docElmnt, 'build', '000') < '130': 378 if self.meta_type == 'ZMS': 379 users = self.getConfProperty('ZMS.security.users',{}) 380 for user in users.keys(): 381 nodes = users[user].get('nodes',{}) 382 try: 383 for node_ref in nodes.keys(): 384 node_ob = self.getLinkObj(node_ref) 385 node_dict = nodes[node_ref] 386 if node_ob: 387 self.setLocalUser( user, node_ref, node_dict['roles'], node_dict['langs']) 388 except: 389 pass 390 376 391 # Return with message. 377 392 return message … … 589 604 # ------------- 590 605 zms_build = '131' # Internal use only, designates object model! 591 zms_patch = ' e' # Internal use only!606 zms_patch = 'f' # Internal use only! 592 607 593 608 # Properties. -
ZMS/trunk/zmsobject.py
r121 r240 365 365 change_dt_parent = self.getObjProperty('change_dt',req) 366 366 try: 367 rtnVal = _globals.compareDate(change_dt_lang, change_dt_parent) > =0367 rtnVal = _globals.compareDate(change_dt_lang, change_dt_parent) > 0 368 368 except: 369 369 _globals.writeException(self,"[isModifiedInParentLanguage]: Unexpected exception: change_dt_lang=%s, change_dt_parent=%s!"%(str(change_dt_lang),str(change_dt_parent)))
Note: See TracChangeset
for help on using the changeset viewer.
