<?xml version="1.0" encoding="utf-8" ?>
<?zms version='ZMS4-4.3.5'?>
<list>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMS]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[fas fa-home]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[titlealt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[titlealt]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title.Alt]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[title]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[title]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[titleimage]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Titleimage]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[image]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[levelnfc]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Level]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[?]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[TAB_METADATA]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[TAB_METADATA]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[delimiter]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_description]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_description]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Zusammenfassung]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[text]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_subject]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_subject]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Subject]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[text]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_type]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[Home]]></item>
                      <item><![CDATA[Artikel]]></item>
                      <item><![CDATA[Forum]]></item>
                      <item><![CDATA[Navigation]]></item>
                      <item><![CDATA[News]]></item>
                      <item><![CDATA[Resource]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_type]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Type]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[select]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_creator]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Creator]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[?]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[delimiter_permalinks]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Permalinks]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[delimiter]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMS.interface_permalinks -->

<div class="control-group" tal:define="zmscontext options/zmscontext">
	<table class="table table-bordered m-0" title="Permalinks">
		<tbody tal:define="prefix python:'%s.permalink.'%zmscontext.meta_id;
			keys python:[x for x in zmscontext.getConfProperties() if x.startswith(prefix)];
			dummy0 python:keys.sort();">
		<tal:block tal:repeat="key keys">
		<tr tal:define="id python:key[len(prefix):]">
			<td class="meta-sort">
				<div class="btn-group">
					<a class="btn btn-secondary" href="javascript:;" tal:attributes="onclick python:'if (confirm(getZMILangStr(\'MSG_CONFIRM_DELOBJ\'))){$(this).parents(\'tr\').remove()}'; title python:here.getZMILangStr('BTN_DELETE')"
						><i class="fas fa-times"></i></a>
				</div><!-- .btn-group -->
			</td>
			<td class="meta-id"><input class="form-control form-control-sm" tal:attributes="name python:'permalink_key_%s'%id; value id;"/>
			<td class="meta-url"><input class="form-control form-control-sm url-input" tal:attributes="name python:'permalink_val_%s'%id; value python:zmscontext.getConfProperty(key)"/>
		</tr>
		</tal:block>
		<tr class="row_insert">
			<td class="meta-sort"><span class="btn btn-light"><i class="fas fa-plus"></i></td>
			<td class="meta-id"><input class="form-control form-control-sm" name="permalink_key__" placeholder="Enter Id..."/>
			<td class="meta-url"><input class="form-control form-control-sm url-input" name="permalink_val__" placeholder="Select Url..."/>
		</tr>
		</tbody>
	</table>
</div>

<!-- /ZMS.interface_permalinks -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[interface_permalinks]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[interface_permalinks]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[interface]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[zmsindex]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[ZMSIndex]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[ZMSIndexZCatalog]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[e]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[type(ZMSDocument)]]></item>
                      <item><![CDATA[type(ZMSObject)]]></item>
                      <item><![CDATA[type(ZMSRecordSet)]]></item>
                      <item><![CDATA[type(ZMSReference)]]></item>
                      <item><![CDATA[type(ZMSModule)]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Objects]]></item>
                  <item key="repetitive" type="int">1</item>
                  <item key="type"><![CDATA[*]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_owner]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_owner]]></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Verantwortlich]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_logo]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_logo]]></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Logo]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[image]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMS.onChangeObjEvt"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext
##title=py: Event: onChange
##
# --// ZMS.onChangeObjEvt //--

request = zmscontext.REQUEST
# permalinks
if 'permalink_key__' in request and 'permalink_val__' in request:
  prefix = '%s.permalink.'%zmscontext.meta_id
  # delete all conf-properties
  for key in [x for x in zmscontext.getConfProperties() if x.startswith(prefix)]:
    zmscontext.delConfProperty(key)
  # set new conf-properties
  reqprefix = 'permalink_key_'
  for reqkey in request.form:
    if reqkey.find(reqprefix) >= 0:
      id = reqkey[len(reqprefix):]
      k = request.get('permalink_key_%s'%id)
      v = request.get('permalink_val_%s'%id)
      if k and v:
        zmscontext.setConfProperty(prefix+k,v)

# --// /ZMS.onChangeObjEvt //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[onChangeObjEvt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Event: onChange]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMS.standard_html -->

<tal:block tal:define="global 
		zmscontext options/zmscontext"
		tal:content="structure python:zmscontext.bodyContentZMSLib_page(zmscontext,request)">
	The page-content
</tal:block>

<!-- /ZMS.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: ZMS]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">0</item>
          <item key="id"><![CDATA[ZMS]]></item>
          <item key="name"><![CDATA[ZMS]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.2.6]]></item>
          <item key="type"><![CDATA[ZMSDocument]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSDocument]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[far fa-file-alt]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[titlealt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[titlealt]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title.Alt]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[title]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[title]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[titleimage]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Titleimage]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[image]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[levelnfc]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Level]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[?]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[TAB_METADATA]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[TAB_METADATA]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[delimiter]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_description]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_description]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Zusammenfassung]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[text]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_subject]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_subject]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Subject]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[text]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_type]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[Home]]></item>
                      <item><![CDATA[Artikel]]></item>
                      <item><![CDATA[Forum]]></item>
                      <item><![CDATA[Navigation]]></item>
                      <item><![CDATA[News]]></item>
                      <item><![CDATA[Resource]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_type]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Type]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[select]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_creator]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Creator]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[?]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[e]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[type(ZMSObject)]]></item>
                      <item><![CDATA[type(ZMSRecordSet)]]></item>
                      <item><![CDATA[type(ZMSModule)]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Objects]]></item>
                  <item key="repetitive" type="int">1</item>
                  <item key="type"><![CDATA[*]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_owner]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_owner]]></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Verantwortlich]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_ucstate]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[In Arbeit]]></item>
                      <item><![CDATA[Fertig für Review]]></item>
                      <item><![CDATA[Fertig für Umlauf]]></item>
                      <item><![CDATA[Fertig]]></item>
                      <item><![CDATA[Veraltet]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_ucstate]]></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Status]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[select]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSDocument.standard_html -->

<tal:block tal:define="global 
		zmscontext options/zmscontext"
		tal:content="structure python:zmscontext.bodyContentZMSLib_page(zmscontext,request)">
	The page-content
</tal:block>

<!-- /ZMSDocument.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: ZMSDocument]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">1</item>
          <item key="id"><![CDATA[ZMSDocument]]></item>
          <item key="name"><![CDATA[ZMSDocument]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.0.1]]></item>
          <item key="type"><![CDATA[ZMSDocument]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSFile]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[fas fa-download]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom">
                    <data content_type="text/plain" filename="default.css" type="file"><![CDATA[
div.ZMSFile.none, div.ZMSLinkElement.none 
	{
	background-color: transparent;
	border: 2px dashed #eee;
	}

div.ZMSFile.floatleft, div.ZMSLinkElement.floatleft 
	{ 
	float:left;
	width:50%
	}

div.ZMSFile.floatright, div.ZMSLinkElement.floatright 
	{ 
	float:right;
	width:50%
	}

div.ZMSFile div.title a:link, div.ZMSFile div.title a:visited, 
div.ZMSLinkElement div.title a:link, div.ZMSLinkElement div.title a:visited 
	{
	font-weight:bold;
	text-decoration:none;
	}
]]></data>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[f_css_defaults]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[CSS: Default]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[resource]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[title]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[title]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[file]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[File]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[file]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[align]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[LEFT]]></item>
                      <item><![CDATA[LEFT_FLOAT]]></item>
                      <item><![CDATA[RIGHT]]></item>
                      <item><![CDATA[RIGHT_FLOAT]]></item>
                      <item><![CDATA[NONE]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Align]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[select]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[titlealt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[titlealt]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title.Alt]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<script type="text/javascript" tal:define="global
		zmscontext options/zmscontext">

$(function(){
	$("#file_"+getZMILang()).change( function() {
			var filename = $(this).val();
			var i = Math.max(filename.lastIndexOf('/'),filename.lastIndexOf('\\'));
			if (i > 0) {
				filename = filename.substring(i+1);
			}
			var title = $("#title_"+getZMILang());
			if (title.val().length == 0) {
				title.attr({'data-value-attr':'placeholder','placeholder':filename});
			}
		});
});

</script>]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[interface0]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[interface0]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[interface]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[TAB_METADATA]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[TAB_METADATA]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[delimiter]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_description]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_description]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Zusammenfassung]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[text]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSFile.attr_img_src"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext
##title=py: Alias: Teaser.Image
##
# --// BO attr_img_src //--

file = zmscontext.attr('file')
mt = file.getContentType()
return zmscontext.getMimeTypeIconSrc(mt)

# --// EO attr_img_src //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_img_src]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Alias: Teaser.Image]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSFile.attr_url"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext
##title=py: Alias: Teaser.Url
##
# --// BO attr_url //--

file = zmscontext.attr('file')
return file.getHref(zmscontext.REQUEST)

# --// EO attr_url //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_url]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Alias: Teaser.Url]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSFile.attr_abstract"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext
##title=py: Alias: Teaser.Abstract
##
# --// BO attr_abstract //--
#
return zmscontext.attr('attr_dc_description')

# --// EO attr_abstract //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_abstract]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Alias: Teaser.Abstract]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSFile.getHref2IndexHtml"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext
##title=py: Function: index_html
##
# --// BO getHref2IndexHtml //--

file = zmscontext.attr('file')
if file:
    return file.getHref(zmscontext.REQUEST)
return ''

# --// EO getHref2IndexHtml //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[getHref2IndexHtml]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Function: index_html]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSFile.standard_html -->

<tal:block tal:define="Std modules/Products.PythonScripts/standard; newline_to_br nocall:Std/newline_to_br; global 
		zmscontext options/zmscontext;
		subclass      python:[zmscontext.meta_id];
		title         python:zmscontext.attr('title');
		titlealt      python:zmscontext.attr('titlealt');
		file          python:zmscontext.attr('file');
		align         python:zmscontext.attr('align');
		displaytype   python:zmscontext.attr('displaytype');
		abstract      python:zmscontext.attr('attr_abstract')">
	<tal:block tal:condition="python:align not in ['','NONE'] or request.get('URL','').find('/manage')>0">
		<tal:block tal:condition="python:align in [ '', 'NONE']">
			<tal:block tal:define="global subclass python:subclass+['none']"></tal:block>
		</tal:block>
		<tal:block tal:condition="python:align in [ 'LEFT', 'CENTER', 'RIGHT']">
			<tal:block tal:define="global subclass python:subclass+[align.lower()]"></tal:block>
		</tal:block>
		<tal:block tal:condition="python:align in [ 'LEFT_FLOAT'] and displaytype in [ 'top', 'bottom']">
			<tal:block tal:define="global subclass python:subclass+['floatleft']"></tal:block>
		</tal:block>
		<tal:block tal:condition="python:align in [ 'RIGHT_FLOAT'] and displaytype in [ 'top', 'bottom']">
			<tal:block tal:define="global subclass python:subclass+['floatright']"></tal:block>
		</tal:block>
		<div tal:attributes="id python:zmscontext.id; class python:' '.join(subclass)">
			<tal:block tal:condition="python:file">
				<div class="title" tal:define="mt python:file.getContentType()">
					<img tal:attributes="src python:zmscontext.getMimeTypeIconSrc(mt); title python:'%s (%s)'%(mt,file.getDataSizeStr())" border="0" alt="Icon" align="absmiddle"/>
					<a tal:attributes="href python:file.getHref(request)" tal:content="structure python:titlealt" target="_blank">The titlealt</a>
					(<span tal:content="python:file.getDataSizeStr()">The data-size string</span>)
				</div>
				<div tal:condition="python:title and title!=titlealt" tal:content="structure title" class="text">The title</div>
				<div tal:condition="python:abstract" tal:content="structure python:newline_to_br(abstract)" class="description">The abstract</div>
			</tal:block>
			<tal:block tal:condition="python:not (file)" tal:content="python:zmscontext.getZMILangStr('ATTR_NONE')">
				None
			</tal:block>
		</div>
	</tal:block>
</tal:block>

<!-- /ZMSFile.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: ZMSFile]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">1</item>
          <item key="id"><![CDATA[ZMSFile]]></item>
          <item key="name"><![CDATA[ZMSFile]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.3.9]]></item>
          <item key="type"><![CDATA[ZMSObject]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSFlexbox]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[icon-columns fas fa-columns]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon-Class (CSS)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[e]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[type(ZMSObject)]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Items]]></item>
                  <item key="repetitive" type="int">1</item>
                  <item key="type"><![CDATA[*]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[@media only screen and (min-width: 576px) {
	body:not(.zmi) .ZMSFlexbox:not(.contentEditable) {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
	}
	body:not(.zmi) .ZMSFlexbox:not(.contentEditable) .ZMSFlexboxItem {
		flex-direction: column;
		background: rgba(0,0,0,.05);
		padding: 1rem;
		margin:1rem 0;
	}
	body:not(.zmi) .ZMSFlexbox:not(.contentEditable) .ZMSFlexboxItem > * {
		margin:0 !important;
		padding:0 !important;
	}
	body:not(.zmi) .ZMSFlexbox .ZMSFlexboxItem {
		flex-basis:calc((100% / var(--data-itemcount)) - 3rem);
	}
	body:not(.zmi) .ZMSFlexbox .ZMSFlexboxItem .ZMSGraphic .graphic,
	body:not(.zmi) .ZMSFlexbox .ZMSFlexboxItem .ZMSGraphic .graphic img {
		width:100% !important;
		max-width:100% !important;
	}
	body:not(.zmi) .ZMSFlexbox .ZMSFlexboxItem .ZMSGraphic .text {
		padding-top:1em;
	}
}
}]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[f_css_defaults]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[CSS Default]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSFlexbox.standard_html -->
<div class="ZMSFlexbox"
	tal:define="zmscontext options/zmscontext;
		childnodes python:zmscontext.filteredChildNodes(request);
		itemcount python:len(childnodes);"
	tal:attributes="class python:'ZMSFlexbox itemcount-%s'%(itemcount)">
	<div class="ZMSFlexboxItem"
		tal:repeat="childnode childnodes"
		tal:attributes="style python:'--data-itemcount:%s'%(itemcount)"
		tal:content="structure python:childnode.renderShort(request)">
	</div>
</div>
<!-- /ZMSFlexbox.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: Box-Container]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">0</item>
          <item key="id"><![CDATA[ZMSFlexbox]]></item>
          <item key="name"><![CDATA[Flexbox-Container]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[0.0.6]]></item>
          <item key="type"><![CDATA[ZMSObject]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSFolder]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[far fa-folder]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[titlealt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[titlealt]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title.Alt]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[title]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[title]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[titleimage]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Titleimage]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[image]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[levelnfc]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Level]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[?]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[TAB_METADATA]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[TAB_METADATA]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[delimiter]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_description]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_description]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Zusammenfassung]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[text]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_subject]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_subject]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Subject]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[text]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_type]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[Home]]></item>
                      <item><![CDATA[Artikel]]></item>
                      <item><![CDATA[Forum]]></item>
                      <item><![CDATA[Navigation]]></item>
                      <item><![CDATA[News]]></item>
                      <item><![CDATA[Resource]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_type]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Type]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[select]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_creator]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Creator]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[?]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[e]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[type(ZMSDocument)]]></item>
                      <item><![CDATA[type(ZMSObject)]]></item>
                      <item><![CDATA[type(ZMSRecordSet)]]></item>
                      <item><![CDATA[type(ZMSModule)]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Objects]]></item>
                  <item key="repetitive" type="int">1</item>
                  <item key="type"><![CDATA[*]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_owner]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_owner]]></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Verantwortlich]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_logo]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_logo]]></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Logo]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[image]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_ucstate]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[In Arbeit]]></item>
                      <item><![CDATA[Fertig für Review]]></item>
                      <item><![CDATA[Fertig für Umlauf]]></item>
                      <item><![CDATA[Fertig]]></item>
                      <item><![CDATA[Veraltet]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_ucstate]]></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Status]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[select]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSFolder.standard_html -->

<tal:block tal:define="global 
		zmscontext options/zmscontext"
		tal:content="structure python:zmscontext.bodyContentZMSLib_page(zmscontext,request)">
	The page-content
</tal:block>

<!-- /ZMSFolder.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: ZMSFolder]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">1</item>
          <item key="id"><![CDATA[ZMSFolder]]></item>
          <item key="name"><![CDATA[ZMSFolder]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.0.1]]></item>
          <item key="type"><![CDATA[ZMSDocument]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSGraphic]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[far fa-image]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom">
                    <data content_type="text/plain" filename="default.css" type="file"><![CDATA[
/*--------- .ZMSGraphic --------------*/
a.fancybox img {
	padding:1px 1px 21px 1px;
	background:transparent url(/++resource++zms_/img/zoom.gif) bottom right no-repeat;
	background-color:transparent;
}
div.ZMSGraphic {
	background-color: transparent;
	margin: 1em 0;
}
.zmi div.ZMSGraphic {
	margin:0;
}
div.ZMSGraphic.left {
	text-align:left;
}
div.ZMSGraphic.right {
	text-align:right;
}
div.ZMSGraphic.center {
	text-align:center;
}
div.ZMSGraphic.floatleft {
	float:left;
	margin-right:2em;
}
div.ZMSGraphic.floatright {
	float:right;
	margin-left:2em;
}
div.ZMSGraphic .alignleft {
	margin-right:10px;
}
div.ZMSGraphic.center div.graphic {
	text-align:center;
	margin:0px auto;
}
div.graphic {
	max-width:100% !important;
}
div.graphic.alignleft {
	float:left;
	text-align:right;
}
div.graphic.alignright {
	float:right;
	text-align:right;
}
div.ZMSGraphic div.text {
	padding: 4px;
}
.ZMSGraphic .text {
	background-color:transparent;
	padding:.5em 1em 0em 1em;
	font-size:smaller;
	font-style:italic;
}
.ZMSGraphic .graphic {
	margin-bottom: 7px;
}
.ZMSGraphic.center div.graphic  {
	margin:0 auto
}
.ZMSGraphic.left .graphic.alignleft {
	float:left;
	margin-right:15px;
}
.ZMSGraphic.left .text,
.ZMSGraphic.right .graphic,
.ZMSGraphic.right .text {
	width: auto !important;
}
/*-- ## FF Patch ## --*/
div.ZMSGraphic.right div.graphic {
	width:100% !important;
}
div.ZMSGraphic.right div.graphic img {
	display:inline !important;
}
a.zoom img.zoom,
a.superzoom img.superzoom {
	width: 26px;
	height: 21px;
	background-position:top right;
	background-repeat:no-repeat;
	margin:0px;
	padding:0px;
}
a.zoom img.zoom {
	background-image: url(/++resource++zms_/img/zoom.gif);
}
a.superzoom img.superzoom {
	background-image: url(/++resource++zms_/img/superzoom.gif);
}
/*--------- /.ZMSGraphic --------------*/
]]></data>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[f_css_defaults]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[CSS: Default]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[resource]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"><![CDATA[2]]></item>
                  <item key="id"><![CDATA[displaytype]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Display-Type]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[int]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[img]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Image]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[image]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[imghires]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Image (Hires)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[image]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[imgsuperres]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Image (Superres)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[image]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"><![CDATA[alt=""]]></item>
                  <item key="id"><![CDATA[img_attrs_spec]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[WAI-Attributes]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_url]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Image (URL)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[url]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[align]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[LEFT]]></item>
                      <item><![CDATA[LEFT_FLOAT]]></item>
                      <item><![CDATA[RIGHT]]></item>
                      <item><![CDATA[RIGHT_FLOAT]]></item>
                      <item><![CDATA[CENTER]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Align]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[select]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[text]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Text]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[richtext]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"><![CDATA[##
return context.getTextFormatDefault()]]>
                  </item>
                  <item key="id"><![CDATA[format]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Format]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[textalign]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[LEFT]]></item>
                      <item><![CDATA[RIGHT]]></item>
                      <item><![CDATA[CENTER]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Text-Align]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[select]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_origfile]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_origfile]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Original-Datei]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[file]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSGraphic.titlealt"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None
##title=py: DC.Title.Alt
##
# --// BO titlealt //--

from Products.zms import standard
try:
    titlealt = standard.string_maxlen(zmscontext.attr('text'),24)
    img = zmscontext.attr('img')
    if titlealt:
        if len(titlealt) < 24:
            return titlealt
        else:
            return '%s...'%(titlealt)
    else:
        return img.getFilename() 
except:
    return zmscontext.display_type(zmscontext.REQUEST)

# --// EO titlealt //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[titlealt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[DC.Title.Alt]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSGraphic.getHref2IndexHtml"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None,options=None
##title=py: Function: index_html
##
# --// getHref2IndexHtml //--

img = zmscontext.attr('img')
if img:
    return img.getHref(zmscontext.REQUEST)
return ''

# --// /getHref2IndexHtml //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[getHref2IndexHtml]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Function: index_html]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSGraphic.standard_html -->

<tal:block tal:define="global
		standard      modules/Products/zms/standard;
		zmscontext    options/zmscontext;
		subclass      python:[zmscontext.meta_id];
		text          python:standard.pybytes(zmscontext.getText(request),'utf-8');
		format        python:standard.pybytes(zmscontext.attr('format'),'utf-8');
		textclass     python:'text';
		displaytype   python:zmscontext.dctDisplaytype.get(str(zmscontext.attr('displaytype')),'left');
		align         python:zmscontext.attr('align');
		textalign     python:zmscontext.attr('textalign');
		imgclass      python:'img img-responsive';
		imgurl        python:zmscontext.getLinkUrl(zmscontext.attr('attr_url'),request);
		isimghires    python:zmscontext.attr('imghires');
		imgthumb      python:request['URL'].find('/manage')>0;
		imgspecial    python:standard.pystr(zmscontext.attr('img_attrs_spec'));">
	<tal:block tal:condition="python:imgurl and isimghires">
		<tal:block
			tal:define="global text python:text+'\n<span class=\042imgurl\042>'+zmscontext.getLangStr('HREF_MORE',request['lang'])%(' href=\042%s\042'%imgurl)+'</span>';
			            global imgurl python:''">
		</tal:block>
	</tal:block>
	<tal:block
		tal:define="global renderedtext python:zmscontext.renderText(format,'text',text,request);
		            global bodyContent python:zmscontext.renderDisplaytype(displaytype,'img','imghires',imgurl,imgthumb,imgspecial,imgclass,renderedtext,textalign,textclass,request)">
	</tal:block>
	<tal:block tal:condition="python:align in [ 'LEFT', 'CENTER', 'RIGHT']">
		<tal:block tal:define="global subclass python:subclass+[align.lower()]"></tal:block>
	</tal:block>
	<tal:block tal:condition="python:align in [ 'LEFT_FLOAT'] and displaytype in [ 'top', 'bottom']">
		<tal:block tal:define="global subclass python:subclass+['floatleft']"></tal:block>
	</tal:block>
	<tal:block tal:condition="python:align in [ 'RIGHT_FLOAT'] and displaytype in [ 'top', 'bottom']">
		<tal:block tal:define="global subclass python:subclass+['floatright']"></tal:block>
	</tal:block>
	<div tal:attributes="id python:zmscontext.id; class python:' '.join(subclass)" tal:content="structure bodyContent">
		The graphic
	</div>
</tal:block>

<!-- /ZMSGraphic.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: ZMSGraphic]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">1</item>
          <item key="id"><![CDATA[ZMSGraphic]]></item>
          <item key="name"><![CDATA[ZMSGraphic]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.3.2]]></item>
          <item key="type"><![CDATA[ZMSObject]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSLib]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[f_css_defaults]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[CSS: Default]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[resource]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- bodyContentZMSLib_page -->

	<tal:block tal:condition="python:here.meta_id in ['ZMS','ZMSFolder','ZMSDocument']" tal:define="global 
		childNodes python:here.getObjChildren('e',request,here.PAGEELEMENTS)">
			<tal:block tal:repeat="childNode childNodes" tal:content="structure python:childNode.getBodyContent(request)">
				The page-element body-content
			</tal:block>
	</tal:block>
	<tal:block tal:condition="python:here.meta_id not in ['ZMS','ZMSFolder','ZMSDocument']">
		<tal:block tal:content="structure python:here.getBodyContent(request)">
			The body-content
		</tal:block>
	</tal:block>

<!-- /bodyContentZMSLib_page -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[bodyContentZMSLib_page]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: Page]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[Page Template]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSLib.uploadMedia"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None
##title=py: Upload: Media
##
# --// BO uploadMedia //--
from Products.zms import pilutil

result = {}
temp_folder = context.temp_folder
request = context.REQUEST
base_url = request.get('SERVER_URL')
form_id = request.get('form_id')
file = request.get('file')

def resize_image(context, orig, maxdims):
  width = orig.getWidth()
  height = orig.getHeight()
  while width > maxdims or height > maxdims:
    if width > maxdims:
      height = int(height * maxdims / width)
      width = maxdims
    elif height > maxdims:
      width = int(width * maxdims / height)
      height = maxdims
  size = (width,height)
  blob = pilutil.resize( orig, size)
  return blob

def create_blob(container, blob):
  filename = blob.getFilename()
  data = blob.getData()
  id = form_id + '_' + filename
  if id in container.objectIds():
    container.manage_delObjects(ids=[id])
  if blob.getContentType().startswith('image'):
    container.manage_addImage( id=id, title=filename, file=data)
  else:
    container.manage_addFile( id=id, title=filename, file=data)
  ob = getattr(container,id)
  d = {}
  d['content_type'] = blob.getContentType()
  d['filename'] = blob.getFilename()
  d['absolute_url'] = ob.absolute_url()[len(base_url):]
  return d

if file and file.filename:
  blobs = {}
  blob = context.FileFromData(file,file.filename)
  content_type = blob.getContentType()
  if content_type.startswith('image'):
    image = context.ImageFromData(file,file.filename)
    maxdims = int(context.getConfProperty('InstalledProducts.pil.thumbnail.max'))
    if image.getWidth() > maxdims:
      result['imghires'] = create_blob(temp_folder,image)
      result['image'] = create_blob(temp_folder,resize_image(context, image, maxdims))
    else:
      result['image'] = create_blob(temp_folder,image)
  else:
    result['file'] = create_blob(temp_folder,blob)

result['message'] = context.getZMILangStr( 'MSG_UPLOADED')
return context.str_json(result)

# --// EO uploadMedia //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[uploadMedia]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Upload: Media]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSLib.show_version -->

<tal:block tal:define="global zmscontext options/zmscontext">
	<tal:block tal:condition="python:zmscontext.getHistory()">
		<script>
		<!--
			function showHistory(el) {
				var v = $(el).val();
				var version_nr = v.substr(0,v.indexOf(" "));
				var version_dt = v.substr(v.indexOf(" ")+1);
				// $(el).prop('selectedIndex',0);
				$.get("ajaxBodyContentObjHistory",{lang:$("input#lang").val(),version_nr:version_nr,revision:1,ts:new Date()},function(data) {
					var $xml = $( data );
					var body = $xml.find( "ObjHistory" );
					var title = $xml.find("title").text();
					var description = $xml.find("description").text();
					if ($("div#revision").length==0) {
						$("body").append('<'+'div id="revision"><'+'/div>');
					}
					var html = ''
						+ '<'+'div id="flow" class="hyphenate">'
						+ '<'+'article>'
						+ '<'+'header>'
						+ '<'+'h1 style="font-weight:bold!important">'+title+'<'+'/h1>'
						+ '<'+'p style="text-decoration:italic!important" class="description">'+description+'<'+'/p>'
						+ '<'+'/header>'
						+ '<'+'/section>';
					for (var i = 0; i < body.length; i++) {
						html += $(body[i]).text();
					}
					html += ''
						+ '<'+'/section>';
						+ '<'+'/article>';
						+ '<'+'/div>';
					$("div#revision").html(html);
					if ($("div#revision .ZMSGraphic").length> 0){
						showFancybox({
							'href':'#revision',
							'title':'r'+v,
							'autoDimensions':true,
							'transitionIn':'fade',
							'transitionOut':'fade',
							onCleanup:function() {
								$("div#revision").remove();
							}
						});
					}
					$("div#revision>div").show();
					// Quickfix1: Remove ZMSLinkElement doublicates
					$('#Content .ZMSLinkElement[id]').each(function (i) {
						$('[id="' + this.id + '"]').slice(1).remove();
					});
					$('#Content .ZMSTeaserContainer,#Content .ZMSTeaserElement').hide();
					
				});
			}
			// Quickfix2: Load last version initially
			$ZMI.registerReady(function(){
			var historyselect = $("div#ZMSLib-show_version select");
			if ( historyselect.children().length > 1 ) {
				showHistory(historyselect.prop("selectedIndex", 1));
				historyselect.prop("selectedIndex", 1);
			}
			});
		-->
		</script>
		<input type="hidden" id="lang" name="lang" tal:attributes="value request/lang"/>
		<select onchange="showHistory(this)">
			<option value="" tal:content="python:'--- %s ---'%zmscontext.getLangStr('TAB_HISTORY',request['lang'])">the history</option>
			<tal:block tal:define="global 
					change_history python:zmscontext.attr('change_history');
					rchange_history python:[change_history[len(change_history)-(x+1)] for x in range(len(change_history))]"
					tal:repeat="history rchange_history">
				<option
						tal:attributes="value python:'%i.%i.%i %s'%(history['master_version'],history['major_version'],0,zmscontext.getLangFmtDate(history['version_dt'],request['lang'],'SHORTDATETIME_FMT'))" 
						tal:content="python:'r%i.%i.%i (%s)'%(history['master_version'],history['major_version'],0,zmscontext.getLangFmtDate(history['version_dt'],request['lang'],'SHORTDATETIME_FMT'))">version_nr version_dt</option>
			</tal:block>
		</select>
	</tal:block>
</tal:block>

<!-- /ZMSLib.show_version -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[show_version]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Show version]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "index_html"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=Index-Html
##
# --// index_html //--

request = container.REQUEST
RESPONSE =  request.RESPONSE
RESPONSE.redirect(context.objectValues(['ZMS'])[0].getHref2IndexHtml(request,deep=False), status=301)

# --// /index_html //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[index_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Index-Html]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[Script (Python)]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                </list>
              </item>
              <item key="insert_custom"></item>
              <item key="insert_deny" type="list">
                <list>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">0</item>
          <item key="id"><![CDATA[ZMSLib]]></item>
          <item key="name"><![CDATA[ZMSLib]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.1.2]]></item>
          <item key="type"><![CDATA[ZMSLibrary]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSLinkContainer]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[fas fa-link]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom">
                    <data content_type="text/plain" filename="default.css" type="file"><![CDATA[div.ZMSLinkContainer {
	background-color: #eee;
}]]></data>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[f_css_defaults]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[CSS: Defaults]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[resource]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<tal:block tal:condition="not:python:request.get('ZMS_INSERT')">
<tal:block tal:define="global
		zmscontext options/zmscontext;">

<style>
table.ZMSLinkContainer td.meta-sort .input-group {
	width: 68px;
}
table.ZMSLinkContainer td.meta-sort select.zmi-sort {
    width: 3em !important;
}
.zmi-manage-main-change div.constraint {
	display:inline-block;
	max-width:200px;
	overflow:hidden;
}
</style>

<!--
################################################################################
##### Align: EDIT
################################################################################
-->
<div class="form-group row" id="tr_align" tal:condition="python:zmscontext.getParentNode().meta_id in ['ZMS','ZMSFolder','ZMSDocument']">
	<label class="col-sm-2 control-label" for="title_ger"><span tal:content="structure python:here.getZMILangStr('ALIGN')">Align</span></label>
	<div class="col-sm-10" tal:content="structure python:zmscontext.getObjInput('align',request)">the align-input</div>
</div>

<table class="table table-striped table-bordered zmi-sortable ZMSLinkContainer">
<tr>
	<colgroup>
		<col style="width:5%">
		<col style="width:5%">
		<col style="width:29%">
		<col style="width:29%">
		<col style="width:29%">
		<col style="width:5%">
	</colgroup> 
	<th>&nbsp;</th>
	<th class="text-center">
		<label for="_active" tal:content="structure python:here.getZMILangStr('ATTR_ACTIVE')">Active*</label>
	</th>
	<th>
		<label for="_url" tal:content="structure python:here.getZMILangStr('ATTR_URL')">Url*</label>
	</th>
	<th>
		<label for="_title" tal:content="structure python:here.getZMILangStr('ATTR_TITLE')">Title*</label>
	</th>
	<th colspan="2">
		<label for="_description" tal:content="structure python:here.getZMILangStr('ATTR_DESCRIPTION')">Description</label>
	</th>
</tr>

<!--
################################################################################
##### Link-Elements: EDIT
################################################################################
-->
<tal:block tal:condition="python:request.get( 'ZMS_INSERT', None)==None">
<tal:block tal:define="objChildren python:zmscontext.getObjChildren('e',request); hasChildren python:len(objChildren)>0">
<tr tal:repeat="childNode objChildren">
	<td class="meta-sort">
		<div class="input-group">
			<select class="zmi-sort" tal:attributes="onchange python:'location.href=\'%s/manage_moveObjToPos?lang=%s&pos:int=\'+(this.selectedIndex+1)'%(childNode.id,request['lang'])">
				<tal:block tal:repeat="seqindex python:range(len(objChildren))">
					<option tal:attributes="selected python:['','selected'][int(seqindex==objChildren.index(childNode))]" tal:content="python:seqindex+1">seqindex+1</option>
				</tal:block>
			</select>
			<div class="input-group-append">
				<a class="btn btn-secondary" href="javascript:;" 
					tal:attributes="onclick python:'if (confirm(getZMILangStr(\'MSG_CONFIRM_DELOBJ\'))){self.location.href=\'manage_deleteObjs?ids:list=%s&lang=%s&preview=%s\'}'%(childNode.id,request['lang'],request['preview']); title python:here.getZMILangStr('BTN_DELETE')"
					><i class="fas fa-times"></i></a>
			</div>
		</div><!-- .input-group -->
	</td>
	<td align="center" tal:content="structure python:childNode.getCheckbox(fmName='form0',elName='active%s'%(childNode.getId()),value=childNode.isActive(request))"></td>
	<td tal:content="structure python:childNode.getUrlInput(fmName='form0',elName='url%s'%(childNode.getId()),elTextName='title%s'%(childNode.getId()),size=15,value=childNode.getObjAttrValue(childNode.getObjAttr('attr_ref'),request))"><input/></td>
	<td tal:content="structure python:childNode.getTextInput(fmName='form0',elName='title%s'%(childNode.getId()),size=15,value=childNode.getObjAttrValue(childNode.getObjAttr('title'),request))"><input/></td>
	<td tal:content="structure python:childNode.getTextArea(fmName='form0',elName='description%s'%(childNode.getId()),cols=20,rows=2,value=childNode.getObjAttrValue(childNode.getObjAttr('attr_dc_description'),request))"><textarea/></td>
	<td>
		<div class="zmi-manage-main-change" style="display:block;visibility:visible" tal:content="structure python:childNode.zmi_manage_main_change(childNode,request)">
			the info child-node
		</div>
	</td>
</tr>
</tal:block>
</tal:block>
<!--
################################################################################
##### Link-Elements: INSERT
################################################################################
-->
<tal:block tal:define="global dummy0 python:request.set( 'ZMS_INSERT', 'ZMSLinkElement')"></tal:block>
<tr class="row_insert">
	<td class="meta-sort"><span class="btn btn-light"><i class="fas fa-plus"></i></span></td>
	<td align="center" tal:content="structure python:here.getCheckbox(fmName='form0',elName='active_',value=True)"></td>
	<td tal:content="structure python:here.getUrlInput(fmName='form0',elName='url_',elTextName='_title',size=15,value='')"><input/></td>
	<td tal:content="structure python:here.getTextInput(fmName='form0',elName='title_',size=15,value='')"><input/></td>
	<td colspan="2"
		tal:content="structure python:here.getTextArea(fmName='form0',elName='description_',cols=20,rows=2,value='')"><textarea/>
	</td>
</tr>
<tal:block tal:define="global dummy0 python:request.set( 'ZMS_INSERT', None)"></tal:block>

</table>

</tal:block>
</tal:block>
<tal:block tal:define="dummy0 python:request.set('ZMS_HIDE_ELEMENTS',request.get('ZMS_HIDE_ELEMENTS',[])+['align','e'])"></tal:block>]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[interface0]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[interface0]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[interface]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[align]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[LEFT]]></item>
                      <item><![CDATA[LEFT_FLOAT]]></item>
                      <item><![CDATA[RIGHT]]></item>
                      <item><![CDATA[RIGHT_FLOAT]]></item>
                      <item><![CDATA[NONE]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Align]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[select]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[e]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Link-Elements]]></item>
                  <item key="repetitive" type="int">1</item>
                  <item key="type"><![CDATA[ZMSLinkElement]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSLinkContainer.onChangeObjEvt"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext
##title=py: Event: onChangeObj
##
# --// BO onChangeObjEvt //--

def equals(o, d):
  for k in d:
    if o.attr(k) != d[k]:
      return False
  return True

request = zmscontext.REQUEST
lang = request['lang']
if request.get('btn') == zmscontext.getZMILangStr('BTN_SAVE'):
  align = zmscontext.attr('align')
  # Save.
  for childNode in zmscontext.getChildNodes(request,['ZMSLinkElement']):
    id = childNode.id
    active = int(request.get('active%s'%id,1))
    url = request['url%s'%id].strip()
    title = request['title%s'%id].strip()
    description = request['description%s'%id].strip()
    attr_type = ['new','replace'][int(url.startswith('{$') and url.endswith('}'))]
    d = {'active':active,'title':title,'titlealt':title,'attr_ref':url,'attr_dc_description':description,'attr_type':attr_type,'align':align}
    if not equals(childNode,d):
      childNode.setObjStateModified(request)
      for k in d:
        childNode.setObjProperty(k,d[k],lang)
      childNode.onChangeObj(request)
  # Insert.
  id = '_'
  url = request['url%s'%id].strip()
  if len(url) > 0:
    active = int(request.get('active%s'%id,1))
    title = request['title%s'%id].strip()
    description = request['description%s'%id].strip()
    attr_type = ['new','replace'][int(url.startswith('{$') and url.endswith('}'))]
    d = {'active':active,'title':title,'titlealt':title,'attr_ref':url,'attr_dc_description':description,'attr_type':attr_type,'align':align}
    childNode = zmscontext.manage_addZMSCustom('ZMSLinkElement',d,request)

# --// EO onChangeObjEvt //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[onChangeObjEvt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Event: onChangeObj]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSLinkContainer.standard_html -->

<tal:block tal:define="global 
		zmscontext options/zmscontext;
		subclass      python:[zmscontext.meta_id];
		align         python:zmscontext.attr('align')">
  <tal:block tal:condition="python:align in [ 'LEFT', 'CENTER', 'RIGHT']">
    <tal:block tal:define="global subclass python:subclass+[align.lower()]"></tal:block>
  </tal:block>
  <tal:block tal:condition="python:align in [ 'LEFT_FLOAT']">
    <tal:block tal:define="global subclass python:subclass+['floatleft']"></tal:block>
  </tal:block>
  <tal:block tal:condition="python:align in [ 'RIGHT_FLOAT']">
    <tal:block tal:define="global subclass python:subclass+['floatright']"></tal:block>
  </tal:block>
  <div tal:condition="python:len(subclass)>0"
       tal:attributes="id python:zmscontext.id; class python:' '.join(subclass)"
       tal:content="structure python:''.join([x.renderShort(request) for x in zmscontext.filteredChildNodes(request,'ZMSLinkElement')])">
    The content
  </div>
</tal:block>

<!-- /ZMSLinkContainer.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: ZMSLinkContainer]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">1</item>
          <item key="id"><![CDATA[ZMSLinkContainer]]></item>
          <item key="name"><![CDATA[ZMSLinkContainer]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.1.10]]></item>
          <item key="type"><![CDATA[ZMSObject]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSLinkElement]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[fas fa-link]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom">
                    <data content_type="text/plain" filename="default.css" type="file"><![CDATA[/* @see ZMSFile.f_css_defaults */]]></data>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[f_css_defaults]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[CSS: Default]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[resource]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[titlealt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[titlealt]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title.Alt]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[title]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[title]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<div id="inferface0" tal:define="global
		zmscontext options/zmscontext;
		dummy0 python:request.set('beforeSubmitBtnClick','if ( zmiOnSubmitEventHandler(this)) { ');
		dummy0 python:request.set('afterSubmitBtnClick',' } ')">
<script type="text/javascript">
<!--//

var btn = null;
var remoteHref = null;
var remoteHrefValid = false;
var remoteHrefResponseWaiting = false;
var remoteHrefResponseTimeout = 5000;

function zmiOnSubmitEventHandler(el) {
	btn = el;
	if ($("#attr_type").val() == "remote") {
		var href = $("#attr_ref").val();
		if ( !remoteHrefValid || remoteHref != href) {
			remoteHref = href;
			remoteHrefValid = false;
			remoteHrefResponseWaiting = true;
			self.btnClicked = 'break';
			// Set wait-cursor.
			$(document.body).css( "cursor", "wait");
			// JQuery.AJAX.get
			$.get( remoteHref+"/ajaxGetBodyContent", remoteResponse);
			// Set time-out.
			setTimeout("remoteResponseTimedout()",remoteHrefResponseTimeout);
		}
		return remoteHrefValid;
	}
	return true;
}

function remoteResponse(data) {
	if (remoteHrefResponseWaiting) {
		remoteHrefResponseWaiting = false;
		// Reset wait-cursor.
		$(document.body).css( "cursor", "auto");
		//
		$("#attr_ref").removeClass("form-error");
		remoteHrefValid = true;
		btn.click();
	}
}

function remoteResponseTimedout() {
	if (remoteHrefResponseWaiting) {
		remoteHrefResponseWaiting = false;
		// Reset wait-cursor.
		$(document.body).css( "cursor", "auto");
		//
		$("#attr_ref").addClass("form-error");
		remoteHrefValid = false;
		if (confirm( "Time-Out "+getZMILangStr('ATTR_URL')+": "+remoteHref)) {
			remoteHrefValid = true;
			btn.click();
		}
	}
}

initAttrRef = function() {
		var v = $(this).val();
		var $select = $("select#attr_type");
		$("option",$select).each(function() {
			$(this).prop("disabled","");
			if (v.indexOf("{$")!=0 && $.inArray($(this).prop("value"),["embed","recursive","remote"])>=0) {
				$(this).prop("disabled","disable");
			}
		});
	};

$(function(){

	$ZMI.afterInitInputFields(function() {
		$("input#attr_ref").each(function() {
				var $input = $(this);
				var $inputgroup = $input.parent();
				if ($input.val().indexOf('{$')==0 && $input.prop("disabled")) {
					$input.attr("data-value",$input.val());
					if ($(".dropdown.languages .dropdown-menu li").length>0) {
						var html = ''
							+ '<div class="btn-group">'
							+ '<button type="button" class="dropdown-toggle btn btn-secondary" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">'
								+ '<i class="fas fa-flag"></i>'
							+ '</button>'
							+ '<div class="dropdown-menu">'
							+ '<a class="dropdown-item" href="#" data-language=""><i class="far fa-square"></i> Default</a>';
						$(".dropdown.languages .dropdown-menu li").each(function() {
								html += '<a class="dropdown-item" href="#" data-language="'+$("a",this).attr("data-language")+'"><i class="far fa-square"></i> '+$("a",this).text()+'</a>';
							});
						html += ''
							+ '</div>'
							+ '</div>';
						$(".input-group-addon",$inputgroup).html(html).addClass("input-group-dropdown");
						var fn = function() {
								var v = $("#ref_lang").val();
								var attr_ref = $input.attr("data-value");
								if (v!="") {
									attr_ref = attr_ref.replace(/;lang\=\w*/gi,'');
									attr_ref = attr_ref.substr(0,attr_ref.indexOf('}'));
									attr_ref += ';lang='+v+'}';
								}
								$input.val(attr_ref).change();
								$(".input-group-addon button .fas fa-flag",$inputgroup).removeClass("text-muted text-primary").addClass(v==""?"text-muted":"text-primary");
								$(".input-group-addon .dropdown-menu li a",$inputgroup).each(function() {
										$(".fa-check-square",this).toggleClass("fa-square fa-check-square");
										if (v==$(this).attr("data-language")) {
											$(".fa-square",this).toggleClass("fa-square fa-check-square");
										}
									});
							};
						fn();
						$(".input-group-addon .dropdown-menu li a",$inputgroup)
							.click(function() {
									$("#ref_lang").val($(this).attr("data-language"));
									fn();
								});
					}
				}
				else {
				$("#ref_lang").val("");
				}
			});
		});

	$("input#attr_ref").change(initAttrRef).change();
	$("#tr_attr_ref_type select").css("width", "100%");
});

//-->
</script>
<!--
################################################################################
##### Ref & Type: EDIT
################################################################################
-->
<input type="hidden" id="ref_lang" tal:attributes="name python:'ref_lang_%s'%request['lang']; value python:zmscontext.attr('ref_lang')"/>
<div class="form-group row" id="tr_attr_ref">
	<label class="col-sm-2 col-md-2 col-lg-2 control-label mandatory" for="attr_ref"><span tal:content="structure python:here.getZMILangStr('ATTR_URL')">Url</span></label>
	<div class="col-sm-10">
		<div class="pull-left" style="width:50%">
			<tal:block tal:content="structure python:zmscontext.getObjInput('attr_ref',request)">the ref-input</tal:block>
		</div>
		<div id="tr_attr_ref_type" class="form-inline" style="width:50%;float:right" tal:content="structure python:zmscontext.getObjInput('attr_type',request)">the type-input</div>
	</div>
</div>
<!--
################################################################################
##### Embedded Object: PREVIEW
################################################################################
-->
<div class="form-group row" id="tr_attr_preview" tal:condition="not:python:request.get('ZMS_INSERT')">
	<label class="col-sm-2 control-label" for="attr_ref_preview"><span tal:content="structure python:here.getZMILangStr('TAB_PREVIEW')"></span></label>
	<div id="attr_ref_preview" class="col-sm-10 attr_ref_preview"
		tal:attributes="style python:['background-color:#fff','background-color:#eee'][int(zmscontext.isPage())]"
		tal:content="structure python:zmscontext.renderShort(request)">
			renderShort
	</div>
</div>
<tal:block tal:define="global dummy0 python:request.set('ZMS_HIDE_ELEMENTS',request.get('ZMS_HIDE_ELEMENTS',[])+['attr_ref','ref_lang','attr_type'])"></tal:block>
</div>]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[inferface0]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[inferface0]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[interface]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_ref]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Reference]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[url]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[ref_lang]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Reference (lang)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_type]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[replace]]></item>
                      <item><![CDATA[new]]></item>
                      <item><![CDATA[embed]]></item>
                      <item><![CDATA[recursive]]></item>
                      <item><![CDATA[remote]]></item>
                      <item><![CDATA[iframe]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Type]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[select]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[align]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[LEFT]]></item>
                      <item><![CDATA[LEFT_FLOAT]]></item>
                      <item><![CDATA[RIGHT]]></item>
                      <item><![CDATA[RIGHT_FLOAT]]></item>
                      <item><![CDATA[NONE]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Align]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[select]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[TAB_METADATA]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[TAB_METADATA]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[delimiter]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_description]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_description]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Zusammenfassung]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[text]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_creator]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Creator]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[?]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSLinkElement.attr_url"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None,options=None
##title=py: Alias: Url
##
# --// attr_url //--

request = zmscontext.REQUEST
lang = request.get('lang',zmscontext.getPrimaryLanguage())
ref = zmscontext.attr('attr_ref')
if ref.startswith('{$') and ref.endswith('}'):
  ref_lang = zmscontext.attr('ref_lang')
  if lang != zmscontext.getPrimaryLanguage() and len(ref_lang) > 0:
    ref = zmscontext.re_sub(';lang\\=\\w*','',ref)
    ref = ref[:-1]
    ref += ';lang='+ref_lang+'}'
return ref

# --// /attr_url //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_url]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Alias: Url]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSLinkElement.attr_abstract"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None,options=None
##title=py: Alias: Abstract
##
# --// attr_abstract //--

return zmscontext.attr('attr_dc_description')

# --// /attr_abstract //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_abstract]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Alias: Abstract]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSLinkElement.check_constraints"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None,options=None
##title=py: Hook: check constraints
##
# --// check_constraints //--

constraints = {}
request = zmscontext.REQUEST
try:
  if not request.get('ZMS_INSERT')=='ZMSLinkElement':
    ref = zmscontext.getRef()
    if ref.startswith('{$') and ref.endswith('}'):
      ref_obj = zmscontext.getRefObj()
      if ref_obj is None:
        constraints['ERRORS'] = constraints.get('ERRORS',[])
        constraints['ERRORS'].append(('ref-obj','link-target not found: '+str(ref)))
except:
  constraints['ERRORS'] = constraints.get('ERRORS',[])
  constraints['ERRORS'].append(('ref-obj',zmscontext.writeError('can\'t check_constraints')))
return constraints

# --// /check_constraints //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[check_constraints]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Hook: Check constraints]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSLinkElement.standard_html -->

<tal:block tal:on-error="structure string:<!-- URL ERROR -->" tal:define="global
		zmscontext options/zmscontext;
		zmsid         python:zmscontext.getId();
		title         python:zmscontext.attr('title');
		titlealt      python:zmscontext.attr('titlealt');
		ref           python:zmscontext.attr('attr_url');
		target        python:zmscontext.attr('attr_type');
		align         python:zmscontext.attr('align');
		abstract      python:zmscontext.attr('attr_abstract').replace('\n','<br/>');
		domain        python:zmscontext.getConfProperty('ASP.ip_or_domain','');
		subclass      python:[zmscontext.meta_id]+[['external','internal'][int((domain != '' and domain in ref) or (ref.startswith('{$') and ref.endswith('}')))]];"
	><tal:block tal:condition="python:target!='iframe'"
		><tal:block tal:condition="python:align in [ 'LEFT', 'CENTER', 'RIGHT']"
			><tal:block tal:define="global subclass python:subclass+[align.lower()]"></tal:block
		></tal:block
		><tal:block tal:condition="python:align in [ 'LEFT_FLOAT']"
			><tal:block tal:define="global subclass python:subclass+['floatleft']"></tal:block
		></tal:block
		><tal:block tal:condition="python:align in [ 'RIGHT_FLOAT']"
			><tal:block tal:define="global subclass python:subclass+['floatright']"></tal:block
		></tal:block
		><div tal:condition="python:zmscontext.getParentNode().meta_id=='ZMSLinkContainer' or align not in ['','NONE'] or request.get('URL','').find('/manage')>0"
				tal:attributes="id python:zmscontext.id; class python:' '.join(subclass)">
			<div class="title" tal:condition="title">
				<tal:block tal:content="structure python:zmscontext.tal_anchor(zmscontext.getLinkUrl(ref,request),target=['','_blank'][int(zmscontext.attr('attr_type')=='new')],content=titlealt)">the link</tal:block>
			</div>
			<div tal:condition="python:title and title!=titlealt" class="text" tal:content="structure title">The title</div>
			<div tal:condition="python:abstract" class="description" tal:content="structure abstract">The abstract</div>
		</div>
	</tal:block
	><tal:block tal:condition="python:target=='iframe'"
		><iframe class="ZMSLinkElement" tal:attributes="src ref; id zmsid" style="width:100%;padding:0;margin:0;border:0;min-height:260px;background-color:#f5f5f5">IFRAME CONTENT</iframe>
		<tal:block tal:replace="structure python:'<script type=\042text/javascript\042>'"></tal:block>
			// $ZMI Register function: On Docment Ready the iFrameResizer Script will be Executed
			// IMOPRTANT HINT: Targetted Content Needs to be linked to the iframeResizer.contentWindow Script:
			// /++resource++zms_/iframeresizer/iframeResizer.contentWindow.min.js
			// SOURCE: https://github.com/davidjbradshaw/iframe-resizer/blob/master/js/iframeResizer.contentWindow.min.js
			if (typeof(ZMI)!='undefined') {
				$ZMI.registerReady(function() {
					try {
						<tal:block tal:replace="python:'iFrameResize({},\047iframe#%s.ZMSLinkElement\047);'%(zmsid)"></tal:block>
					}
					catch(err) {
					}
				})
			}
		<tal:block tal:replace="structure string:</script>"></tal:block>
		<script tal:condition="python:request.get('link_iframeResizer',True)"
			src="/++resource++zms_/iframeresizer/iframeResizer.min.js"></script>
		<tal:block tal:define="iframeexists python:request.set('link_iframeResizer',False)"></tal:block>
	</tal:block>
</tal:block>

<!-- /ZMSLinkElement.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: ZMSLinkElement]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">1</item>
          <item key="id"><![CDATA[ZMSLinkElement]]></item>
          <item key="name"><![CDATA[ZMSLinkElement]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.1.20]]></item>
          <item key="type"><![CDATA[ZMSObject]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSNote]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[far fa-comment-alt]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom">
                    <data content_type="image/gif" filename="zmsnote_bg.gif" type="file"><![CDATA[b'62273632323733343337333433393334333633333338333333393336333133303634333033303330363433303330363233333330333033303330363636333633363533363334363636333636333636323633363636333634363133383633363636333634333233373334363636363636363636363636363636333633363533363633363636333636363536333633333033303330333033373337333733383338333233363338363536343330333033323331333133323330333036353338333033303330333033303330333933303330333236363635333033303330333036363636333033303330333036363636333033303330333036363636333233313636333933303334333033303330333033303330333033303330333033323633333033303330333033303330333033303330363433303330333036343330333033303333333033343332363336323330333933303334333936353632333033343633333233363631333133303338333636313635333833303331333133363334333136363331333133383631363436353337333733383631363133343632333536313332333936323332333136333632363133333333363236333636333136343337333836353333363536343337363236343337363133363634363433323636333533333330333033313338333836363334333833363333333033343330333033333632323727']]></data>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[zmsnote_bg.gif]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Resource: Background]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[resource]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[text]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Memotext]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[text]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<script language="JavaScript">
	$ZMI.registerReady(function(){
		$('#zmiIframeAddDialog textarea').attr('title','INFO: the note element is just for internal usage - it is not published');
		$('#zmiIframeAddDialog textarea').attr('placeholder','INFO: the note element is just for internal usage - it is not published');
	});
	</script>]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[interface]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[interface]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[interface]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[catalogText]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Hook: Catalog-Text]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSNote.renderShort -->

<tal:block tal:define="global zmscontext options/zmscontext;
	ishtml python:zmscontext.attr('text').find('<');
	id python:zmscontext.id;
	containerid python:'contentEditable_%s_%s'%(id,request.get('lang','ger'))">

<tal:block tal:condition="python:not request.get('ZMSNote.renderShort')">

<script language="JavaScript">
var firedZMSNoteDiv = false;
var repeatZMSNoteDiv = false;

function onKeyUpZMSNoteDiv(el) {
	if (!firedZMSNoteDiv) {
		firedZMSNoteDiv = true;
		setTimeout('onChangeZMSNoteDiv(\''+el.id+'\')',500);
	}
	else {
		repeatZMSNoteDiv = true;
	}
}

function onChangeZMSNoteDiv(id) {
	if (repeatZMSNoteDiv) {
		repeatZMSNoteDiv = false;
		setTimeout('onChangeZMSNoteDiv(\''+id+'\')',500);
	}
	else {
		firedZMSNoteDiv = false;
		repeatZMSNoteDiv = false;
		var el = $('div#'+id);
		var v = el.text();
		el.addClass('zmiTeaserColor');
		var lang = getZMILang();
		var params = {};
		params['lang'] = lang;
		params['text_'+lang] = v;
		$.post(id+'/manage_changeProperties',params,function(data){
			el.removeClass('zmiTeaserColor');
		},'html');
	}
}
</script>

<tal:block tal:define="global dummy0 python:request.set('ZMSNote.renderShort',True)"></tal:block>
</tal:block>

<div class="note alert alert-warning">
	<div 
		contentEditable="true"
		onkeyup="onKeyUpZMSNoteDiv(this)" 
		tal:attributes="id id;
			contentEditable python:'true' and ishtml<0 or 'false'; 
			onkeyup python:'onKeyUpZMSNoteDiv(this)' and ishtml<0 or None"
		tal:content="structure python:zmscontext.getText(request).replace('\n','<br/>')">the text</div>
</div>

</tal:block>

<!-- /ZMSNote.renderShort -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[renderShort]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[ZMI: Render short]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSNote.onChangeObjEvt"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext
##title=py: Event: onChangeObj
##
# --// BO onChangeObjEvt //--

request = zmscontext.REQUEST
zmscontext.commitObj(request)

# --// EO onChangeObjEvt //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[onChangeObjEvt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Event: onChangeObj]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete" type="list">
                <list>
                  <item><![CDATA[ZMSAdministrator]]></item>
                  <item><![CDATA[ZMSAuthor]]></item>
                  <item><![CDATA[ZMSEditor]]></item>
                </list>
              </item>
              <item key="delete_custom"></item>
              <item key="insert" type="list">
                <list>
                  <item><![CDATA[ZMSAdministrator]]></item>
                  <item><![CDATA[ZMSAuthor]]></item>
                  <item><![CDATA[ZMSEditor]]></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
            </dictionary>
          </item>
          <item key="enabled" type="int">1</item>
          <item key="id"><![CDATA[ZMSNote]]></item>
          <item key="name"><![CDATA[ZMSNote]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.0.2]]></item>
          <item key="type"><![CDATA[ZMSObject]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSObjectSet]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[far fa-list-alt]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[record_meta_ids]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[##]]></item>
                      <item><![CDATA[l = []]]></item>
                      <item><![CDATA[request = context.REQUEST]]></item>
                      <item><![CDATA[metaobj_manager = context.getMetaobjManager()]]></item>
                      <item><![CDATA[l = [metaobj_manager.getMetaobj(x) for x in metaobj_manager.getMetaobjIds()]]]></item>
                      <item><![CDATA[l = [x for x in l if x['type'] in ['ZMSDocument','ZMSObject','ZMSRecordSet']]]]></item>
                      <item><![CDATA[l = [(x['id'],('%s %s'%(context.display_icon(request,x['id']),context.display_type(request,x['id']))).replace('<','<!--').replace('>','-->')) for x in l]]]></item>
                      <item><![CDATA[return l]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Type(s)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[multiselect]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[record_attr_ids]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Attribute(s) [id:type,...]]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[record_order_default]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Sort-Order (Default) [id:asc|desc]]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"><![CDATA[<!-- effective_standard_html(default) -->

<tal:block tal:define="zmscontext context">

<script src="/++resource++zms_/jquery/plugin/jquery.plugin.zmi_highlight.js"></script>
<script>
$(function() {
	var applyListFilter = function() {
			var filter = $('input.filter').val().toLowerCase().trim();
			var v = filter;
			var regexp = new RegExp('<span class="highlight(.*?)">(.*?)</span>', "gi");
			$(".card .card-header.matched").removeClass("matched").each(function() {
					var html = $(this).html();
					html = html.replace(regexp,'$2');
					$(this).html(html);
				});
			if (v.length>0) {
				$(".card .card-header a").each(function() {
						if ($(this).text().toLowerCase().indexOf(v)>=0) {
							htmlReplace($(this),'('+v+')','<span class="highlight">$1</span>');
							$(this).parent(".card-header").addClass("matched");
						}
					});
			}
			$(".card").each(function() {
					if ($(this).text().toLowerCase().indexOf(v)>=0) {
						$(this).show();
					}
					else {
						$(this).hide();
					}
				});
			$(window).trigger('resize');
		};
	var t = null;
	$('input.filter').focus().keyup(function(e) {
		var that = this;
		if (t != null) {
			clearTimeout(t);
		}
		t = setTimeout(applyListFilter, 500);
	});
});
</script>

	<form class="form-filter" method="get" tal:attributes="action request/URL">
		<div class="row">
			<div class="col-md-12">
				<div class="input-group">
					<div class="input-group-prepend">
						<span class="input-group-text"><i class="fas fa-filter"></i> <span class="badge badge-pill badge-info">0</span></span>
					</div>
					<input type="text" class="form-control filter" name="search" placeholder="Filter"/>
				</div><!-- .input-group -->
			</div>
		</div><!-- .row -->
	</form>

	<div class="ZMSObjectSet accordion" tal:define="recordSet python:zmscontext.getSelf().evalMetaobjAttr('recordSet_Prepare')">
		<div class="card" tal:repeat="record recordSet">
			<h3 class="card-header" tal:define="childNode python:zmscontext.operator_getattr(zmscontext,record['__id__'])">
				<a tal:attributes="href python:childNode.getHref2IndexHtml(request,deep=False); class python:childNode.meta_id;" tal:content="python:childNode.getTitle(request)">
					the title
				</a>
			</h3><!-- .card-header -->
		</div><!-- .card -->
	</div>

</tal:block>

<!-- /effective_standard_html(default) -->]]>
                  </item>
                  <item key="id"><![CDATA[effective_standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Standard Html]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[text]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom">
                    <data content_type="application/javascript" filename="script.zmi.js" type="file"><![CDATA[function addZMSCustom(sort_id,custom) {
	var title = '<i class="fas fa-plus"></i> '+getZMILangStr('BTN_INSERT');
	var target = 'manage_addProduct/zms/manage_addzmscustomform';
	var data = {lang:getZMILang(),preview:'preview',id_prefix:'records','_sort_id:int':sort_id,custom:custom};
	// Show add-dialog.
	$ZMI.iframe(target,data,{
			id:'zmiIframeAddDialog',
			title:title,
			width:800,
			open:function(event,ui) {
				$ZMI.runReady();
				$('#addInsertBtn').click(function() {
							self.btnClicked = $(this).text();
							var $fm = $(".modal form.form-horizontal");
							$("input[name=btn]:hidden",$fm).remove();
							$fm.append('<input type="hidden" name="btn" value="'+getZMILangStr('BTN_INSERT')+'">');
							$fm.submit();
						});
				$('#addCancelBtn').click(function() {
							zmiModal("hide");
						});
				if($('#zmiIframeAddDialog .form-control').length==0) {
					$('#addInsertBtn').click();
				}
			},
			close:function(event,ui) {
				$('#manage_addProduct').remove();
			},
			buttons:[
					{id:'addInsertBtn', text:getZMILangStr('BTN_INSERT'), name:'btn', 'class':'btn btn-primary'},
					{id:'addCancelBtn', text:getZMILangStr('BTN_CANCEL'), name:'btn', 'class':'btn'}
			]
		});
	return false;
}

function delZMSCustom(sender) {
	var $btnGroup = $(sender).parents(".btn-group");
	$("input[name='qindices:list']",$btnGroup).prop("checked","checked");
	var i = $("input[name='qindices:list']:checkbox:checked").length;
	var msg = getZMILangStr('MSG_CONFIRM_TRASHOBJS');
	msg = msg.replace("%i",""+i);
	msg += $ZMI.getDescendantLanguages();
	b = i > 0 && confirm(msg);
	if (b) {
		var html = '';
		html += '<form class="d-none" id="delZMSCustomForm" method="post" action="manage_deleteObjs">';
		html += '<input type="hidden" name="lang" value="'+getZMILang()+'"/>';
		$("input[name='qindices:list']:checkbox:checked").each(function() {
				html += '<input type="hidden" name="ids:list" value="'+$(this).val()+'"/>';
			});
		html += '</form>';
		$("body").append(html);
		$("#delZMSCustomForm").submit();
	}
	else {
		$("input[name='qindices:list']",$btnGroup).prop("checked","");
	}
	return false;
}

$(function() {

	// always collapse last-modified-accordion
	$(".attr_last_modified a.card-toggle").each(function(){
			var data_root = $("body").attr('data-root');
			var id = $(this).attr('href').substr(1);
			var key = "ZMS."+data_root+".collapse-"+id;
			console.log("$ZMILocalStorageAPI.set("+key+",0)");
			$ZMILocalStorageAPI.set(key,'0');
		});

	$("#tabProperties").hide();
	$(".zmi-change-uid").after(' <a href="javascript:;" title="Change Objectset Configuration" onclick="$(\'#tabProperties\').toggle();"><i class="fas fa-cog"></i></a>');

	// Relocate buttons.
	var e = $(".controls.save:gt(0)").detach();
	e.insertAfter(".form-group.coverage");

	$(".ZMSRecordSet form.form-horizontal").each(function() {
			var prefix = $("meta[name=physical_path]").attr("content").split("/");
			prefix = prefix[prefix.length-1]+".ZMSRecordSet.";
			console.log(prefix);
			var $fm = $(this);
			localStorage[prefix+"btn"] = getZMILangStr('BTN_REFRESH');
			if (zmiParams['btn']==getZMILangStr('BTN_REFRESH')) {
				for (var i in zmiParams) {
					localStorage[prefix+i] = zmiParams[i];
				}
				$("input:text,input:checkbox,input:radio,select,textarea",$fm).each(function() {
						var $input = $(this);
						var n = $input.attr("name");
						var v = $input.val();
						if ($input.attr("type")=="radio") {
							v = $("input[name='"+n+"']:radio:checked").val();
						}
						if ($input.attr("type")=="checkbox") {
							v = $input.prop("checked")?v:null;
						}
						if ($input[0].nodeName.toUpperCase()=="SELECT") {
							v = $("option:selected",$input).val();
						}
						localStorage[prefix+n] = v;
					});
			}
			else if (typeof zmiParams['btn']!='undefined') {
				for (var i in localStorage) {
					if (i.indexOf(prefix)==0) {
						localStorage.removeItem(i);
					}
				}
			}

			var params = {lang:zmiParams['lang'],AUTHENTICATED_USER:$(".authenticated_user").text()};
			for (var i in localStorage) {
				if (i.indexOf(prefix)==0) {
					console.log("i="+i);
					params[i.substr(prefix.length)] = localStorage[i];
				}
			}

			$.get("publicRecordSetGrid",params,function(data) {
					// Assemble grid.
					var $grid = $("#metaobj_recordset_main_grid");
					$grid.html(data);

					// Assemble info.
					$(".zmi-info",$grid).each(function() {
            if (!$(this).hasClass("active")) {
              $(this).parents("tr").addClass("inactive");
            }
					});

					// Assemble update.
					$(".dropdown-menu a[onclick='[[UPDATE]]']",$grid).each(function() {
							var $btnGroup = $(this).parents(".btn-group");
							var id = $("input[name='qindices:list']",$btnGroup).val();
							var href = id + '/manage_main?lang=' + getZMILang();
							$(this).attr({href:href,onclick:''});
					});

					// Assemble insert.
					var insertHtml = ''
					insertHtml += '<li class="dropdown-header insert-action"><i class="icon-caret-down fas fa-caret-down"></i> '+getZMILangStr('BTN_INSERT')+'</li>';
					$("select[name='record_meta_ids:list'] option:selected").each(function() {
							var $option = $(this);
							insertHtml += '<a class="dropdown-item" href="javascript:;" onclick="addZMSCustom(0,\''+$option.text().trim()+'\')">'+$option.html().replace(/<!--/gi,'<').replace(/-->/gi,'>')+'</a>';
					});
					insertHtml += '<li class="dropdown-header insert-action"><i class="icon-caret-down fas fa-caret-down"></i> '+getZMILangStr('ATTR_ACTION')+'</li>';
					$(".dropdown-menu .fa-plus",$grid).each(function() {
							$(this).parents(".dropdown-item").replaceWith(insertHtml);
					});

					$(".ZMSRecordSet.main_grid table.zmi-sortable th a").on("click",function() {
							$(".ZMSRecordSet.main_grid form").css({'transition':'opacity 1.5s','opacity':'0.25'});
							$(".ZMSRecordSet.main_grid").prepend( "<div id='loading' class='zmi-page text-center' style='width:100%;position:absolute;margin-bottom:0.75em'><i class='text-primary icon-spinner icon-3x icon-spin fas fa-spinner fa-spin fa-3x'></i></div>");
					})

				});
		});
});]]></data>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[script.zmi.js]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Script ZMI (JS)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[resource]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSObjectSet.attr_dc_identifier_doi"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None,options=None
##title=py: DC.Identifier: DOI (Declarative ID)
##
# --// attr_dc_identifier_doi //--

return zmscontext.getId() 

# --// /attr_dc_identifier_doi //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_identifier_doi]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[DC.Identifier: DOI (Declarative ID)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<tal:block tal:condition="not:python:request.get('ZMS_INSERT')">
<tal:block tal:define="standard modules/Products.zms/standard;
	zmscontext options/zmscontext;
	attr_ids python:zmscontext.attr('record_attrs');">

<tal:block tal:content="structure python:'<'+'/div><!-- .card-body -->'"></tal:block>
		<div class="card-body">
			<div class="form-row">
				<div class="controls save">
					<button type="submit" name="btn" class="btn btn-primary" tal:attributes="value python:zmscontext.getZMILangStr('BTN_SAVE')" tal:content="python:zmscontext.getZMILangStr('BTN_SAVE')">Action</button>
					<button type="submit" name="btn" class="btn btn-secondary" tal:attributes="value python:zmscontext.getZMILangStr('BTN_CANCEL')" tal:content="python:zmscontext.getZMILangStr('BTN_CANCEL')">Cancel</button>
				</div>
			</div><!-- .form-row -->
		</div><!-- .card-body -->
<tal:block tal:content="structure python:'<'+'/div><!-- .card-body -->'"></tal:block>
<tal:block tal:content="structure python:'<'+'/div><!-- .collapse -->'"></tal:block>
<tal:block tal:content="structure python:'<'+'/div><!-- .card -->'"></tal:block>
<tal:block tal:content="structure python:'<'+'/form>'"></tal:block>

<script type="text/javascript" tal:attributes="src python:'%s/%s.script.zmi.js'%(zmscontext.getMetaobjManager().absolute_url(),zmscontext.meta_id)"></script>
<style>
.card.zmi-container {
	display:none;
}
tr.inactive > td.data > * {
	color:#AAA;
}
</style>

		<tal:block tal:define="global
				record_duplicate python:zmscontext.attr('record_duplicate');
				metaObjAttrs python:[{'id':'objectset','name':'','type':'html'}]
						+attr_ids
						+[{'id':'change_uid','name':zmscontext.getZMILangStr('BY'),'type':'string'}]
						+[{'id':'change_dt','name':zmscontext.getZMILangStr('ON'),'type':'datetime'}];
				metaObjAttrIds python:['__id__']+[x['id'] for x in metaObjAttrs];
				dummy0 python:zmscontext.attr('recordSet_Prepare')">

<tal:block tal:condition="record_duplicate">
	<tal:block tal:define="dummy0 python:request.RESPONSE.redirect('%s/manage_main?manage_tabs_message=%s'%(record_duplicate[0].absolute_url(),record_duplicate[1]))"></tal:block>
</tal:block>

<tal:block tal:repeat="record_meta_id python:zmscontext.attr('record_meta_ids')">
	<tal:block tal:condition="python:'objectset_interface' in zmscontext.getMetaobjAttrIds(record_meta_id)">
		<tal:block tal:content="structure python:zmscontext.evalMetaobjAttr('%s.objectset_interface'%record_meta_id)"></tal:block>
	</tal:block>
</tal:block>

<div class="ZMSRecordSet">
<form method="get" class="form-horizontal">
	<input type="hidden" name="lang" tal:attributes="value request/lang">
	<input type="hidden" name="preview" tal:attributes="value request/preview">
	<input tal:condition="python:'qorder' in request" type="hidden" name="qorder" tal:attributes="value request/qorder">
	<input tal:condition="python:'qorderdir' in request" type="hidden" name="qorderdir" tal:attributes="value request/qorderdir">
	<div class="card" tal:define="filter_columns attr_ids">
		<div class="card-header filters btn-collapse">
			<a class="btn card-toggle pull-left" data-toggle="collapse" href="#attrProperties">
				<i class="icon-caret-down fas fa-caret-down"></i>
				<tal:block tal:content="structure python:zmscontext.getZMILangStr('ATTR_FILTER')">the label</tal:block>
			</a>
		</div><!-- .card-header -->
		<div id="attrProperties" class="filters collapse show">
			<div class="card-body">
				<tal:block tal:repeat="filterIndex python:range(request.get('qfilters',1)+1)">
					<div tal:attributes="class python:' '.join(['form-row']+[[],['d-none']][int(filterIndex==request.get('qfilters',1))])">
						<div class="form-group col-md-4">
							<select class="form-control form-control-sm" tal:attributes="name python:'filterattr%i'%filterIndex">
								<option value="" tal:content="python:zmscontext.getZMILangStr('CAPTION_SELECT')">the option</option>
								<tal:block tal:repeat="filter_column filter_columns">
									<option tal:attributes="value python:filter_column['id']; selected python:['','selected'][int(standard.get_session_value(zmscontext,'filterattr%i_%s'%(filterIndex,zmscontext.id))==filter_column['id'])]" tal:content="filter_column/name">label</option>
								</tal:block>
							</select>
						</div>
						<div class="form-group col-md-2">
							<select class="form-control form-control-sm" tal:attributes="name python:'filterop%i'%filterIndex">
								<tal:block tal:repeat="op python:['LIKE','=','<','<=','>','>=','NULL','NOT NULL']">
									<option tal:attributes="value python:op; selected python:['','selected'][str(op).lower()==str(request.get('filterop%i'%filterIndex, standard.get_session_value(zmscontext,'filterop%i_%s'%(filterIndex,zmscontext.id),''))).lower()]" tal:content="python:op">op</option>
								</tal:block>
							</select>
						</div>
						<div class="form-group col-md-6">
							<input class="form-control form-control-sm" type="text" tal:attributes="name python:'filtervalue%i'%filterIndex; value python:request.get('filtervalue%i'%filterIndex, standard.get_session_value(zmscontext,'filtervalue%i_%s'%(filterIndex,zmscontext.id),''))" />
						</div>
					</div><!-- .form-row -->
				</tal:block>
				<div class="form-row">
					<button type="submit" id="btn-search" class="btn btn-primary" name="btn" tal:attributes="value python:zmscontext.getZMILangStr('BTN_REFRESH')">
						<i class="fas fa-search"></i>
						<tal:block tal:content="python:zmscontext.getZMILangStr('BTN_SEARCH')">Search</tal:block>
					</button>
					<button type="submit" id="btn-reset" class="btn btn-secondary" name="btn" tal:attributes="value python:zmscontext.getZMILangStr('BTN_RESET')">
						<tal:block tal:content="python:zmscontext.getZMILangStr('BTN_RESET')">Reset</tal:block>
					</button>
				</div><!-- .form-row -->
			</div><!-- .card-body -->
		</div><!-- .collapse -->
	</div><!-- .card -->
</form>
</div><!-- .ZMSRecordSet -->

<div id="metaobj_recordset_main_grid"><div class="container text-center p-3"><i class="fas fa-spinner fa-spin fa-3x text-primary"></i></div></div>

</tal:block>

<tal:block tal:content="structure python:'<'+'form class=\042form-horizontal\042>'"></tal:block>
<tal:block tal:content="structure python:'<'+'div>'"></tal:block>
<tal:block tal:content="structure python:'<'+'div>'"></tal:block>
<tal:block tal:content="structure python:'<'+'div>'"></tal:block>

<tal:block tal:define="dummy0 python:request.set('ZMS_HIDE_ELEMENTS',request.get('ZMS_HIDE_ELEMENTS',[])+['records'])"></tal:block>
</tal:block>
</tal:block>]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[interface0]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[interface0]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[interface]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[records]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[type(ZMSObject)]]></item>
                      <item><![CDATA[type(ZMSDocument)]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Records]]></item>
                  <item key="repetitive" type="int">1</item>
                  <item key="type"><![CDATA[*]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSObjectSet.publicRecordSetGrid"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None,options=None
##title=py: Grid record-set.
##
# --// publicRecordSetGrid //--

request = container.REQUEST
RESPONSE =  request.RESPONSE
zmscontext.zmi_page_request(zmscontext,request)
url = request['HTTP_REFERER']+'?'
url = url[:url.find('?')]
request.set('URL',url)

attr_ids = zmscontext.attr('record_attrs')
metaObjAttrs =[{'id':'objectset','name':'','type':'html'}] \
		+attr_ids \
		+[{'id':'change_uid','name':zmscontext.getZMILangStr('BY'),'type':'string'}] \
		+[{'id':'change_dt','name':zmscontext.getZMILangStr('ON'),'type':'datetime'}]
metaObjAttrIds = ['__id__']+[x['id'] for x in metaObjAttrs]
zmscontext.attr('recordSet_Prepare')
# hook: objectset-filter
for record_meta_id in zmscontext.attr('record_meta_ids'):
	if 'objectset_interface' in zmscontext.getMetaobjAttrIds(record_meta_id):
		zmscontext.evalMetaobjAttr('%s.objectset_filter'%record_meta_id)

return zmscontext.metaobj_recordset_main_grid( \
		metaObjAttrIds=metaObjAttrIds, \
		metaObjAttrs=metaObjAttrs, \
		record_handler=zmscontext.attr('record_handler'), \
		records=request['res'], \
		filtered_records=request['res'], \
		actions=['insert','update','delete'], \
		insert='[[INSERT]]', \
		update='[[UPDATE]]', \
		delete='delZMSCustom(this)', \
		)

# --// /publicRecordSetGrid //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[publicRecordSetGrid]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Grid record-set.]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSObjectSet.sortChildNodes"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None,options=None
##title=py: Sort record-set.
##
# --// sortChildNodes //--

from Products.zms import standard

request = container.REQUEST
records = options.get('records')
prepare = options.get('prepare',True)

qorder = request.get('qorder','')
qorderdir = request.get('qorderdir','')
if not qorder:
  qorderdefault = zmscontext.attr('record_order_default')
  if qorderdefault.find(':')>=0:
    qorder = qorderdefault[:qorderdefault.find(':')]
    qorderdir = qorderdefault[qorderdefault.find(':')+1:]
  qorder = standard.get_session_value(zmscontext,'qorder%s'%zmscontext.id,qorder)
  qorderdir = standard.get_session_value(zmscontext,'qorderdir%s'%zmscontext.id,qorderdir)
if records and qorder and qorderdir:
  if prepare:
    records = [{qorder:x.attr(qorder),'ob':x} for x in records]
  [standard.operator_setitem(x,qorder,'None') for x in records if x.get(qorder) is None]
  records = standard.sort_list(records,qorder,qorderdir)
  if prepare:
    records = [x['ob'] for x in records]
  request.set('qorder',qorder)
  request.set('qorderdir',qorderdir)

return records

# --// /sortChildNodes //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[sortChildNodes]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Sort record-set]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSObjectSet.recordSet_Prepare"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None,options=None
##title=py: Prepare record-set.
##
# --// recordSet_Prepare //--

from Products.zms import standard

request = zmscontext.REQUEST
lang = request['lang']
session = request.SESSION

records = []
attr_ids = [x['id'] for x in zmscontext.attr('record_attrs')]+['change_uid','change_dt']
buff = {}
for childNode in zmscontext.getChildNodes(request):
  meta_id = childNode.meta_id
  if not meta_id in buff:
    buff[meta_id] = {}
    for attr_id in attr_ids:
      objAttr = childNode.getObjAttr(attr_id)
      buff[meta_id][objAttr['id']] = {'id':objAttr['id'],'attr_name':childNode.getObjAttrName(objAttr,lang)}
  obj_version = childNode.getObjVersion(request)
  record = {'__id__':childNode.id}
  objAttrs = buff[meta_id]
  for objAttr in objAttrs.values():
    record[objAttr['id']] = getattr(obj_version,objAttr['attr_name'],None)  
  records.append(record)
res = records
request.set('res',res)

# Filter
for filterIndex in range(10):
  for filterStereotype in ['attr','op','value']:
    requestkey = 'filter%s%i'%(filterStereotype,filterIndex)
    sessionkey = '%s_%s'%(requestkey,zmscontext.id)
    requestvalue = request.form.get(requestkey,standard.get_session_value(zmscontext,sessionkey,''))
    if request.get('btn','')==zmscontext.getZMILangStr('BTN_RESET'):
      requestvalue = ''
    request.set(requestkey,requestvalue)
    standard.set_session_value(zmscontext,sessionkey,requestvalue)
standard.set_session_value(zmscontext,'qfilters_%s'%zmscontext.id,request.form.get('qfilters',standard.get_session_value(zmscontext,'qfilters_%s'%zmscontext.id,1)))
for filterIndex in range(10):
  suffix = '%i_%s'%(filterIndex,zmscontext.id)
  sessionattr = standard.get_session_value(zmscontext,'filterattr%s'%suffix,'')
  sessionop = standard.get_session_value(zmscontext,'filterop%s'%suffix,'%')
  sessionvalue = standard.get_session_value(zmscontext,'filtervalue%s'%suffix,'')
  if sessionattr and sessionvalue:
    res = standard.filter_list(res,sessionattr,sessionvalue,sessionop)

# Order
res = zmscontext.evalMetaobjAttr('sortChildNodes',records=res,prepare=False)

request.set('res',res)
return res

# --// /recordSet_Prepare //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[recordSet_Prepare]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Prepare record-set]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSObjectSet.record_attrs"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None,options=None
##title=py: Record-Attrs
##
# --// record_attrs //--

attrs = []
for x in zmscontext.attr('record_attr_ids').split(','):
  id = x
  type = 'string'
  if x.find(':') > 0:
    id = x[:x.find(':')]
    type = x[x.find(':')+1:]
  name = id.capitalize()
  if id.find('[') < id.find(']'):
    name = id[id.find('[')+1:-1]
    id = id[:id.find('[')]
  attrs.append({'id':id,'name':name,'type':type})
return attrs

# --// /record_attrs //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[record_attrs]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Record-Attrs]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSObjectSet.record_handler"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None,options=None
##title=py: Record-Handler
##
# --// record_handler //--

request = zmscontext.REQUEST
class EntityRecordHandler():
  def handle_record(self, r):
    id = r['__id__']
    childNode = getattr(zmscontext,id)
    objectset = childNode.attr('objectset')
    if not objectset:
      objectset = '<span class=\042label label-default zmi-info %s\042><a href=\042%s/manage_main?lang=%s\042>%s %s</a></span>'%(['','active'][int(childNode.isActive(request))],childNode.absolute_url(),request['lang'],childNode.display_icon(request),childNode.display_type(request))
    r['objectset'] = objectset
    return r
record_handler = EntityRecordHandler()
return record_handler

# --// /record_handler //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[record_handler]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Record-Handler]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSObjectSet.record_duplicate"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None,options=None
##title=py: Record-Duplicate
##
# --// record_duplicate //--

request = zmscontext.REQUEST
if request.get('action') == 'record_duplicate':
  before = zmscontext.objectIds()
  ids = [request.get('id')]
  cp = zmscontext.manage_copyObjects(ids)
  zmscontext.manage_pasteObjects(cb_copy_data=cp)
  after = zmscontext.objectIds()
  id = [x for x in after if x not in before][0]
  new_id = zmscontext.getNewId('records')
  zmscontext.manage_renameObject(id=id,new_id=new_id)
  new_ob = [x for x in zmscontext.objectValues() if x.id == new_id][0]
  new_ob.setObjStateNew(request)
  new_ob.setObjProperty('attr_active_start',None,request['lang'])
  new_ob.setObjProperty('attr_active_end',None,request['lang'])
  for attr_id in new_ob.getObjAttrs():
    if attr_id.find('title')>=0:
      new_ob.setObjProperty(attr_id,'Copy of %s'%new_ob.attr(attr_id),request['lang'])
      break
  new_ob.onChangeObj(request)
  return (new_ob,zmscontext.getZMILangStr('MSG_PASTED'))
return None

# --// /record_duplicate //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[record_duplicate]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Record-Duplicate]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSObjectSet.standard_html -->

<tal:block tal:define="zmscontext options/zmscontext">
	<tal:block tal:content="structure python:zmscontext.attr('effective_standard_html')"></tal:block>
</tal:block>

<!-- /ZMSObjectSet.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: ZMSObjectSet]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">0</item>
          <item key="id"><![CDATA[ZMSObjectSet]]></item>
          <item key="name"><![CDATA[ZMSObjectSet]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[4.0.0]]></item>
          <item key="type"><![CDATA[ZMSObject]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSRichtext]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[fas fa-file-word]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<tal:block tal:define="
		standard modules/Products.zms/standard;
		zmscontext options/zmscontext;
		dummy0 python:request.set('CKEDITOR_config_toolbar',[
				['Format'],
				['Bold','Italic','Underline','NumberedList','BulletedList'],
				['Undo','Redo'],
				['mediabutton'],
				['Find','linkbutton','Link','Unlink'],
				['Anchor','Table'],
				['Source','ShowBlocks','Maximize','About']
			])">

<style>
span.active {
	background-color:#FFF;
	font-weight:bold;
}
span.mouseover {
	border:1px solid #999;
	background-color:#DFF1FF;
}
</style>

<!--
////////////////////////////////////////////////////////////////////////////////
/// CKEDITOR Plugin
////////////////////////////////////////////////////////////////////////////////
-->

<tal:block tal:content="structure python:'<script>'">script</tal:block>

$(function(){
	$(".zmiRichtextEditorHeadline").hide();
});

<tal:block tal:content="structure python:'</script>'">/script</tal:block>

</tal:block>]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[interface0]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[interface0]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[interface]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[text]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Text]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[richtext]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSRichtext.onChangeObjEvt"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None
##title=py: Event: onChange-Object
##
# --// BO onChangeObjEvt //--

temp_folder = context.temp_folder
request = context.REQUEST

# Find images/files.
text = zmscontext.attr('text')
l = []
lt = []
for sp in ['src="', 'href="' ]:
  for s in text.split(sp):
    ref = s[:s.find('"')]
    if ref.find('/'+zmscontext.id+'/') >= 0:
      idmedia = ref.split('/')[-1]
      l.append(idmedia)
    elif ref.find('/'+temp_folder.id+'/') >= 0:
      lt.append(ref)

# Remove unused images/files.
ob_ids = zmscontext.objectIds(['File','Image'])
for ref in l:
  id = ref.split('/')[-1]
  if id in ob_ids:
    ob_ids.remove(id)
if len(ob_ids) > 0:
  zmscontext.manage_delObjects(ids=ob_ids)

# Add new images/files from temp_folder.
for ref in lt:
  id = ref.split('/')[-1]
  ob = getattr(temp_folder,id,None)
  if ob is not None:
    new_id = ob.title_or_id()
    new_title = ''
    new_data = ob.data
    if ob.meta_type == 'Image':
      zmscontext.manage_addImage( id=new_id, title=new_title, file=new_data)
    else:
      zmscontext.manage_addFile( id=new_id, title=new_title, file=new_data)
    temp_folder.manage_delObjects(ids=[id])
    text = text.replace('"'+ref+'"','"./'+zmscontext.id+'/'+new_id+'"')
zmscontext.attr('text',text)

# --// EO onChangeObjEvt //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[onChangeObjEvt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Event: onChange-Object]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSRichtext.standard_html -->

<tal:block tal:define="global 
		zmscontext options/zmscontext;
		text          python:zmscontext.getText(request);
		format        python:zmscontext.attr('format');
		renderedText  python:zmscontext.renderText(format,'text',text,request,zmscontext.id)"
		tal:content="structure renderedText">
	The text
</tal:block>

<!-- /ZMSRichtext.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: ZMSRichtext]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete" type="list">
                <list>
                  <item><![CDATA[ZMSAdministrator]]></item>
                  <item><![CDATA[ZMSAuthor]]></item>
                  <item><![CDATA[ZMSEditor]]></item>
                </list>
              </item>
              <item key="delete_custom"></item>
              <item key="insert" type="list">
                <list>
                  <item><![CDATA[ZMSAdministrator]]></item>
                  <item><![CDATA[ZMSAuthor]]></item>
                  <item><![CDATA[ZMSEditor]]></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
            </dictionary>
          </item>
          <item key="enabled" type="int">0</item>
          <item key="id"><![CDATA[ZMSRichtext]]></item>
          <item key="name"><![CDATA[ZMSRichtext]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.0.0]]></item>
          <item key="type"><![CDATA[ZMSObject]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSSqlDb]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[fas fa-database]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSSqlDb.renderShort -->

<tal:block tal:define="global 
		zmscontext options/zmscontext">
	<h4>
		<i class="icon-table"></i>
		<tal:block tal:content="python:zmscontext.connection_id">the connection-id</tal:block>
	</h4>
	<ul>
		<li tal:repeat="table python:[x for x in zmscontext.getEntities() if x['type']=='table']">
			<a tal:attributes="href python:'%s/manage_main?qentity=%s'%(zmscontext.id,table['id'])" tal:content="table/id">the table</a>
		</li>
	</ul>
	<br/>
</tal:block>

<!-- /ZMSSqlDb.renderShort -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[renderShort]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[ZMI: Render short]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete" type="list">
                <list>
                  <item><![CDATA[ZMSAdministrator]]></item>
                  <item><![CDATA[ZMSAuthor]]></item>
                  <item><![CDATA[ZMSEditor]]></item>
                </list>
              </item>
              <item key="delete_custom"></item>
              <item key="insert" type="list">
                <list>
                  <item><![CDATA[ZMSAdministrator]]></item>
                  <item><![CDATA[ZMSAuthor]]></item>
                  <item><![CDATA[ZMSEditor]]></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
            </dictionary>
          </item>
          <item key="enabled" type="int">0</item>
          <item key="id"><![CDATA[ZMSSqlDb]]></item>
          <item key="name"><![CDATA[ZMSSqlDb]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.0.0]]></item>
          <item key="type"><![CDATA[ZMSObject]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSSysFolder]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[fas fa-folder]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[titlealt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[titlealt]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title.Alt]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[title]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[title]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[0]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_cacheable]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Cacheable]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[TAB_METADATA]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[TAB_METADATA]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[delimiter]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_description]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_description]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Zusammenfassung]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[text]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<tal:block tal:condition="not:python:request.get('ZMS_INSERT')">
<tal:block tal:define="global
		standard modules/Products.zms/standard;
		zmscontext options/zmscontext;
		SecurityManager modules/AccessControl/getSecurityManager;
		skey python:request.get('skey', 'id');
		rkey python:request.get('rkey', '')">

<!--
################################################################################
##### Action-List
################################################################################
-->
<div class="pull-right" style="margin:1.5em 0 0.5em">
	<select class="form-control" style="background-color: aliceblue;"
			name=":action" tal:attributes="onchange python:'this.name=\':action\';;location.href=\'%s/\'+this.options[this.selectedIndex].value'%request['URL1']">
		<option value="manage_workspace" tal:content="python:'----- %s -----'%zmscontext.getZMILangStr('ACTION_INSERT')%zmscontext.display_type(request)">----- Insert -----</option>
		<tal:block tal:repeat="meta_type python:[x for x in standard.sort_list(zmscontext.filtered_meta_types(),'name') if x['name'].find('ZMS')<>0]">
			<option tal:attributes="value python:meta_type['action']" tal:content="python:meta_type['name']">the name</option>
		</tal:block>
	</select>
</div>

<!--
################################################################################
##### Object-List
################################################################################
-->

<tal:block tal:define="global items python:[x for x in zmscontext.objectItems() if x[1].meta_type.find('ZMS')<>0]">
<tal:block tal:condition="python:len(items)>0">
<table class="table table-striped">
<thead>
<tr>
	<th>&nbsp;</th>
	<tal:block define="global
			columns python:['meta_type','id','get_size','bobobase_modification_time'];
			labels python:{'meta_type':'type','id':'name','get_size':'size','bobobase_modification_time':'last_modified'}">
		<tal:block tal:repeat="column columns">
			<th tal:define="global label python:zmscontext.getZMILangStr('ATTR_%s'%labels[column].upper())">
				<i tal:condition="python:skey==column or rkey==column" tal:attributes="class python:['icon-caret-down','icon-caret-up'][int(rkey==column)]"></i>
				<a tal:attributes="href python:zmscontext.url_append_params(request['URL'],{['skey','rkey'][int(skey==column)]:column}); title python:'Sort objects by %s'%label"><tal:block tal:content="label">the label</tal:block></a>
			</th>
		</tal:block>
	</tal:block>
</tr>
</thead>
<tbody>
<tr tal:repeat="item items">
	<td><input type="checkbox" name="ids:list" tal:attributes="value python:item[0]"/></td>
	<td>
		<tal:block tal:condition="python:item[1].icon">
			<img tal:attributes="src python:item[1].icon; title python:item[1].meta_type"/>
		</tal:block>
	</td>
	<td>
		<a tal:attributes="href python:'%s/manage_workspace'%item[1].absolute_url()">
			<tal:block tal:content="python:item[0]">the id</tal:block>
			<tal:block tal:condition="python:item[1].title">(<tal:block tal:content="python:item[1].title">the title</tal:block>)</tal:block>
		</a>
	</td>
	<td><tal:block tal:content="python:zmscontext.getDataSizeStr(item[1].get_size())">the size</tal:block></td>
	<td><tal:block tal:content="python:zmscontext.getLangFmtDate(item[1].bobobase_modification_time())">the timestamp</tal:block></td>
</tr>
</tbody>
</table>
<tal:block tal:condition="not:python:request.get('dontAllowCopyAndPaste')">
	<input class="btn" type="submit" name="manage_renameForm:method" tal:attributes="value python:zmscontext.getZMILangStr('BTN_RENAME')" tal:condition="items"/>
	<input class="btn" type="submit" name="manage_cutForm:method" tal:attributes="value python:zmscontext.getZMILangStr('BTN_CUT')" tal:condition="items"/>
	<input class="btn" type="submit" name="manage_copyForm:method" tal:attributes="value python:zmscontext.getZMILangStr('BTN_COPY')" tal:condition="items"/>
	<input class="btn" type="submit" name="manage_pasteForm:method" tal:attributes="value python:zmscontext.getZMILangStr('BTN_PASTE')" tal:condition="python:request.get('cb_dataValid')"/>
	<input class="btn" type="submit" name="manage_delObjects:method" tal:attributes="value python:zmscontext.getZMILangStr('BTN_DELETE')" tal:condition="python:SecurityManager.checkPermission('Delete objects',zmscontext)"/>
	<input class="btn" type="submit" name="manage_importExportForm:method" value="Import/Export" tal:condition="python:SecurityManager.checkPermission('Import/Export objects',zmscontext)"/>
</tal:block>
</tal:block>
</tal:block>

</tal:block>
</tal:block>]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[interface0]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[interface0]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[interface]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete" type="list">
                <list>
                  <item><![CDATA[ZMSAdministrator]]></item>
                  <item><![CDATA[ZMSAuthor]]></item>
                  <item><![CDATA[ZMSEditor]]></item>
                </list>
              </item>
              <item key="delete_custom"></item>
              <item key="insert" type="list">
                <list>
                  <item><![CDATA[ZMSAdministrator]]></item>
                  <item><![CDATA[ZMSAuthor]]></item>
                  <item><![CDATA[ZMSEditor]]></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
            </dictionary>
          </item>
          <item key="enabled" type="int">0</item>
          <item key="id"><![CDATA[ZMSSysFolder]]></item>
          <item key="name"><![CDATA[ZMSSysFolder]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.0.2]]></item>
          <item key="type"><![CDATA[ZMSDocument]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSTable]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[caption]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Caption]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_description]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_description]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Zusammenfassung]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[text]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"><![CDATA[0]]></item>
                  <item key="id"><![CDATA[sortable]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Sortable]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[boolean]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"><![CDATA[0]]></item>
                  <item key="id"><![CDATA[colgroup]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Colgroup]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[boolean]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSTable.titlealt"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext
##title=py: DC.Title.Alt
##
# --// BO titlealt //--

titlealt = zmscontext.attr('caption')
if titlealt:
    return titlealt
return zmscontext.display_type(zmscontext.REQUEST)

# --// EO titlealt //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[titlealt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[DC.Title.Alt]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<tal:block tal:define="textFormatDefault python:here.getConfProperty('ZMSTable.getTextFormatDefault',here.getTextFormatDefault())">
	<!-- ### Table(Type,Cols,Rows): INSERT ### -->
	<tal:block tal:condition="python:request.get('ZMS_INSERT')">
		<input type="hidden" name="redirect_self:int" value="1"/>
		<span class="d-none" id="fmName" tal:content="request/fmName"></span>
		<span class="d-none" id="textFormatDefault" tal:content="textFormatDefault"></span>
		<script>
		var fmName;
		var textFormatDefault;
		
		$(function() {
				fmName = $('#fmName').text();
				textFormatDefault = $("#textFormatDefault").text();
				$("form[name="+fmName+"]").submit( onZMSTableFormSubmit);
				
				$("[name=\x22type:int\x22]").on('change',function(){
					let sortableTr = $('#tr_sortable');
					if(this.value==3){
						sortableTr.hide();
					}else{
						sortableTr.show()
					}
				});
			});
		
		function onZMSTableFormSubmit() {
			var xml = '';
			var type = parseInt($("[name=\x22type:int\x22]").val());
			xml += '<'+'list>\n';
			for ( var y = 0; y < parseInt($('#rows').val()); y++) {
				xml += '<'+'item type="list"><list>\n';
				if ( y==0 && type == 2) {
					xml += '<'+'item type="dictionary"><'+'dictionary>\n';
					xml += '<'+'item key="colspan" type="int">'+parseInt($('#cols').val())+'<'+'/item>\n';
					xml += '<'+'item key="content"><'+'/item>\n';
					xml += '<'+'item key="format">'+textFormatDefault+'<'+'/item>\n';
					xml += '<'+'item key="tag">th<'+'/item>\n';
					xml += '<'+'/dictionary><'+'/item>\n';
				}
				else {
					for ( var x = 0; x < parseInt($('#cols').val()); x++) {
						xml += '<'+'item type="dictionary"><'+'dictionary>\n';
						if ( y==0 && x == 0 && type == 4) {
							xml += '<'+'item key="colspan" type="int">1<'+'/item>\n';
						}
						else {
							var tag = "td";
							if ( (type == 1 && y == 0) ||
								(type == 3 && x == 0) ||
								(type == 4 && (x == 0 || y == 0))) {
								tag = "th";
							}
							xml += '<'+'item key="colspan" type="int">1<'+'/item>\n';
							xml += '<'+'item key="content"><'+'/item>\n';
							xml += '<'+'item key="format">'+textFormatDefault+'<'+'/item>\n';
							xml += '<'+'item key="tag">'+tag+'<'+'/item>\n';
						}
						xml += '<'+'/dictionary><'+'/item>\n';
					}
				}
				xml += '<'+'/list><'+'/item>\n';
			}
			xml += '<'+'/list>\n';
			$("#table_table").val( xml);
			return true;
		}
		</script>
	
<div class="form-group row">
	<label class="col-sm-2 control-label mandatory"><span tal:content="structure python:here.getZMILangStr('ATTR_COLS')">Cols</span></label>
	<div class="col-sm-2">
		<tal:block tal:content="structure python:here.getTextInput(fmName=request['fmName'],elName='cols',value='3',size=2)"></tal:block>
	</div>
	<label class="col-sm-1 control-label mandatory"><span tal:content="structure python:here.getZMILangStr('ATTR_ROWS')">Rows</span></label>
	<div class="col-sm-2">
		<tal:block tal:content="structure python:here.getTextInput(fmName=request['fmName'],elName='rows',value='3',size=2)"></tal:block>
	</div>
</div>

<div class="form-group row">
	<label class="col-sm-2 control-label mandatory" tal:content="python:here.getZMILangStr('ATTR_TYPE')">the type-label</label>
	<div class="col-sm-10 form-group row">
		<div class="mr-2" title="Type 1">
			<input type="radio" name="type:int" value="1" checked="checked" /> <tal:block tal:content="python:here.getZMILangStr('HORIZONTAL')"></tal:block>
			<table class="ZMSTable table table-sm">
			<thead>
				<tr><th>Firstname</th><th>Lastname</th><th>Age</th></tr>
			</thead>
			<tbody>
				<tr><td>Jill</td><td>Smith</td><td>50</td></tr>
				<tr><td>John</td><td>Doe</td><td>38</td></tr>
			</tbody>
			</table>
		</div>
		<div class="mr-2" title="Type 3">
			<input type="radio" name="type:int" value="3" /> <tal:block tal:content="python:here.getZMILangStr('VERTICAL')"></tal:block>
			<table class="ZMSTable table table-sm">
			<tbody>
				<tr><th>Firstname</th><td>Jill</td><td>John</td></tr>
				<tr><th>Lastname</th><td>Smith</td><td>Doe</td></tr>
				<tr><th>Age</th><td>50</td><td>38</td></tr>
			</tbody>
			</table>
		</div>
	</div>
</div>

<div class="form-group col-sm-12 col-sm-push-2" style="font-size: small;color: #999;" 
	tal:content="python:here.getZMILangStr('MSG_ZMSTABLE_TYPE')">Note: Type can not be changed later
</div>

	</tal:block>

	<!-- ### Table(Type,Cols,Rows): EDIT ### -->
	<tal:block tal:condition="not:python:request.get('ZMS_INSERT')">
		<tal:block tal:define="zmscontext options/zmscontext;
					table_table python:zmscontext.attr('table');
					table_type python:zmscontext.attr('type');
					table_colgroup_cols python:zmscontext.attr('cols');
					table_cols python:len(table_table[-1]);
					table_rows python:len(table_table);
					table_widths python:zmscontext.attr('widths');">

			<!--### Table-Cell Styles ###-->
			<style>
				.th.placeholder {
					background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='50px' width='200px'><text x='20' y='20' fill='gray' font-size='12' font-family='Arial'>Enter Header here...</text></svg>");
					background-repeat:no-repeat;
				}
				.td.placeholder {
					background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='50px' width='200px'><text x='20' y='20' fill='silver' font-size='12' font-family='Arial'>Enter Data here...</text></svg>");
					background-repeat:no-repeat;
				}
				td.ZMSTable-cell {
					padding: 0;
				}
				#table_cell_editor > thead > tr > th {
					background-color: #32475b;
					color: #fff;
				}
				#table_cell_editor > thead > tr > th, 
				#table_cell_editor > thead > tr > td {
					padding: 1.57143em 1.14286em 1.57143em 1.14286em;
					
				}
				#table_cell_editor tr th p:last-child, 
				#table_cell_editor tr td p:last-child {
					 margin-bottom: 0;
				}
				#table_cell_editor .table_cell_editable.current {
					background-color: rgba(0,123,255,.15);
					color: #212529;
				}
				table tr:nth-child(even) td {
					background-color: #e3e8ed;
				}
				#table_cell_editor > thead > tr:first-child td{
					background-color: #32475b;
					color: #fff;
				}
				.zmi-interface table th textarea.form-control{
					color:white;
				}
				<tal:block tal:condition="python:table_type == 3">
					#tr_sortable{
						display:none;
					}
					
					#table_cell_editor>tbody>tr:nth-child(odd) td {
						background-color: #e3e8ed;
					}
					#table_cell_editor>tbody>tr:nth-child(even) td {
						background-color: #FFFFFF;
					}
					
					#table_cell_editor>tbody>tr>td:first-child{
						background-color: #32475b;
					}
					#table_cell_editor tr#colgrouping td{
						background-color:#FFFFFF;
					}
				</tal:block>
			</style>

			<!--### Table-Cell Editor ###-->
			<tal:block tal:define="celltypes python:[['td','td'],['th','th']];custom python:'<div class=\042pull-left celltypes\042>%s</div>'%(here.zmi_input_select(name='tag',value='',lang_str=here.getZMILangStr('ATTR_FORMAT'),options=celltypes))">
				<div class="d-none ui-helper-overlay modal-backdrop in">&nbsp;</div>
				<div class="d-none">
					<div id="div_table_cell_editor">
						<tal:block tal:content="structure python:here.f_selectRichtext(ob=here,fmName=request['fmName'],elName='content_editor',cols=25,rows=10,value='',key='cell',enabled=True,lang=request['lang'],lang_str=here.getZMILangStr('ACTION_EDIT_CELL'),custom_str=custom,REQUEST=request,wrap='virtual',format='')"></tal:block>
						<div class="form-row">
							<div class="controls save">
								<button class="btn btn-primary" type="submit" value="BTN_CHANGE" onclick="return table_cell_change();" tal:content="python:here.getZMILangStr('BTN_CHANGE')"></button>
								<button class="btn btn-secondary" type="submit" value="BTN_CANCEL" onclick="return table_cell_cancel();" tal:content="python:here.getZMILangStr('BTN_CANCEL')"></button>
							</div>
						</div>
					</div>
				</div>
			</tal:block>

			<!-- ### Table-Cell Grid ###-->

			<span class="d-none" id="fmName" tal:content="request/fmName"></span>
			<span class="d-none" id="elName" tal:content="request/elName"></span>

			<span class="d-none" id="textFormatDefault" tal:content="textFormatDefault"></span>
			<tal:block tal:condition="python:request.get('richedit_fmt',None)"><span class="d-none" id="richedit_fmt" tal:content="python:request.get('richedit_fmt').getId()"></span></tal:block>
			<span class="d-none" id="table_type" tal:content="table_type"></span>
			<span class="d-none" id="table_cell_uid" tal:content="python:table_cols*table_rows"></span>
			<style>
				#table_cell_editor .btn {
					padding: 0 .3em;
				}
				.zmi.ZMSTable.properties .modal-backdrop.in {
					filter: alpha(opacity=30);
					opacity: .3;
				}
				.div_table_cell_editor_parent {
					position:absolute;
					background:#FEFEFE;
					z-index:9999;
					border-radius: 4px;
					box-shadow: 0 4px 16px #333;
				}
				#div_table_cell_editor {
					width:65em;
					margin:1em;
				}
				#table_cell_editor #colgrouping td {
					min-width:6em
				}
				.celltypes select {
					width:10em;
				}
				/* Compensate Preview Styles */
				#table_cell_editor table.ZMSTable {
					margin:0
				}
				#table_cell_editor table.ZMSTable td,
				#table_cell_editor table.ZMSTable th {
					border:0 !important;
					margin:0;
					padding:0;
				}
				#table_cell_editor table.ZMSTable th > div,
				#table_cell_editor table.ZMSTable td > div {
					padding:.5em;
				}
				#table_cell_editor table.ZMSTable [contenteditable]:focus {
					outline: 2px dotted #007bff;
					background-color:rgba(0, 123, 255, 0.05);
				}
				img.vbutton {
					border:1px solid #CCC;
					height:16px!important;
					width:8px!important;
					border-radius:3px;
				}
				img.hbutton {
					border:1px solid #CCC;
					height:8px!important;
					width:16px!important;
					border-radius:3px;
				}
				td .btn-group {
					width:80px;
				}
				.ZMSTable-cell {
					border:1px solid #CCC;
				}
				.ZMSTable-cell.top, 
				.ZMSTable-cell.right, 
				.ZMSTable-cell.bottom, 
				.ZMSTable-cell.left {
					border-top:2px solid #666;
				}
				.table_cell_editable.changed {
					background-color:#FFF;
				}
				.table_cell_editable.active {
					background-color:#FFC;
				}
				.table_cell_editable.new {
					background-color:#DFD;
				}
				.table_cell_editable.moved {
					background-color:#FFF;
				}
				/* shift url select modal win to top */
				.modal {
					z-index:10000;
				}
			</style>
			
			<script>
				var fmName;
				var elName;
				var textFormatDefault;
				var richedit_fmt;
				var table_type;
				var table_cell_uid;
				var table_cell_id;
				var table_cell_offs;
				
				$(function() {
						fmName = $('#fmName').text();
						elName = $('#elName').text();
						textFormatDefault = $("#textFormatDefault").text();
						richedit_fmt = $('#richedit_fmt').text();
						table_type = parseInt($('#table_type').text());
						table_cell_uid = $('#table_cell_uid').text();
						table_cell_id = '';
						table_cell_offs = 2;
						$('form[name='+fmName+']').submit( onZMSTableFormSubmit);
						table_cell_init();
					});
				
				function onZMSTableFormSubmit() {
					var xml = '';
					xml += '<'+'list>\n';
					var el_tbody = $($("#table_cell_editor").children()[0]);
					var el_trs = el_tbody.children().filter(":gt(0)");
					for ( var i=0; i < el_trs.length; i++) {
						xml += '<'+'item type="list"><'+'list>\n';
						//changed by uzk
						var el_tds = $(el_trs[i]).children();
						//var el_tds = $(el_trs[i]).children().filter(":gt(0)").filter(":not(:last)");
						for ( var j=0; j < el_tds.length; j++) {
							xml += '<'+'item type="dictionary"><'+'dictionary>\n';
							xml += '<'+'item key="colspan" type="int">'+1+'<'+'/item>\n';
							var el_inputs = $("textarea,input",el_tds[j]);
							for ( var k=0; k < el_inputs.length; k++) {
								var key = el_inputs[k].id.substr(0,el_inputs[k].id.indexOf("_"));
								xml += '<'+'item key="'+key+'"><'+'![CDATA'+'['+$(el_inputs[k]).val()+']'+']><'+'/item>\n';
							}
							xml += '<'+'/dictionary><'+'/item>\n';
						}
						xml += '<'+'/list><'+'/item>\n';
					}
					xml += '<'+'/list>\n';
					$("#table_table").val( xml);

					xml = '';
					xml += '<'+'list>\n';
					var el_trs = el_tbody.children().filter(":eq(0)");
					for ( var i=0; i < el_trs.length; i++) {
						var el_inputs = $("input:text",el_trs[i]);
						for ( var j = 0; j < el_inputs.length; j++) {
							xml += '<'+'item type="string">'+$(el_inputs[j]).val()
							+'<'+'/item>\n';
						}
					}
					xml += '<'+'/list>\n';
					
					$("#table_colgroup_cols").val( xml);
					return true;
				}
				
				
				function table_cell_edit(el_td) {
					var el = $('textarea',el_td);
					var el_name = el.attr('id');
					table_cell_id = el_name.substr(el_name.indexOf('_')+1);
					// Set cell background.
					el_td.addClass("active");
					// Apply values.
					$('#zmiRichtextEditor'+elName).hide();
					$('#zmiStandardEditor'+elName).show();
					$('#content_editor').val($('#content_'+ table_cell_id).val());
					$('select[name="tag"]').val($('#tag_'+ table_cell_id).val());
					$('#format').val($('#format_'+ table_cell_id).val());
					if (typeof richedit_fmt != 'undefined') {
						zmiRichtextSyncDataToView(elName);
						if ( $('#format').val()==richedit_fmt) {
							$('#zmiRichtextEditor'+'content_editor').show();
							$('#zmiStandardEditor'+'content_editor').hide();
							zmiStandardOnSubmitEventHandler();
						}
					}
					// Open cell editor.
					var offset = $(el_td).offset();
					$('.ui-helper-overlay').removeClass('d-none');
					//$('#div_table_cell_editor').parent().addClass('div_table_cell_editor_parent').css({left:offset.left,top:offset.top}).removeClass('d-none');
					let cell_editor = $('#div_table_cell_editor');
					let left = cell_editor.width() < window.innerWidth ? (window.innerWidth - cell_editor.width())/2  : 0; 
					let top =  window.innerHeight > 400 ? (window.innerHeight - 400)/2 : 0;
					$('#div_table_cell_editor').parent().addClass('div_table_cell_editor_parent').css({left:left, top:top}).removeClass('d-none');
					$('#zmiRichtextEditor'+'content_editor').height(300);
					zmiRichtextResize('content_editor');
				}
				
				function table_cell_change() {
					if (typeof richedit_fmt != 'undefined') {
						if ( $('#format').val()==richedit_fmt) {
							zmiRichtextOnSubmitEventHandler();
							$('#input_'+ table_cell_id).hide();
							$('#preview_'+ table_cell_id).show();
						}
						else {
							$('#input_'+ table_cell_id).show();
							$('#preview_'+ table_cell_id).hide();
						}
					}
					$('#format_'+ table_cell_id).val($('#format').val());
					$('#tag_'+ table_cell_id).val($('select[name="tag"]').val());
					$('#content_'+ table_cell_id).val($('#content_editor').val());
					$('#preview_'+ table_cell_id).html($('#content_editor').val());
					return table_cell_cancel();
				}
				
				function table_cell_cancel(event) {
					// Reset cell background.
					var el_td = $("td.active");
					el_td.removeClass("active");
					// Close cell editor.
					if (!event) {
						/*
						$('#div_table_cell_editor').modal('hide');
						*/
						$('.ui-helper-overlay').addClass('d-none');
						$('#div_table_cell_editor').parent().addClass('d-none');
					}
					return false;
				}
				
				
				function table_cell_init() {
					$("form[name="+fmName+"] input[type=hidden]+textarea").change( function () { $(this).parents(".table_cell_editable").addClass('changed').removeClass('changed',1000);});
					$("form[name="+fmName+"] .table_cell_editable").dblclick( function () { table_cell_edit($(this));});
					$('div[id^=preview_]')
						.attr('contenteditable','').keyup(onKeyUpZMSTableDivContenteditable).blur(onKeyUpZMSTableDivContenteditable).on('contextmenu',function(){onKeyUpZMSTableDivContenteditable});
				}
				
				function actionBtnClick(el, fct) {
					var x = 0;
					var $td = $(el).closest("td");
					while ( $td.prev().length > 0) {
						x++;
						$td = $td.prev();
					}
					var y = 0;
					var $tr = $($td.parent("tr"));
					while ( $tr.prev().length > 0) {
						y++;
						$tr = $tr.prev();
					}
					var $tbody = $(el).closest("tbody");
					//////////////////////////////////////////////////////////////////////////////
					/// DELETE
					//////////////////////////////////////////////////////////////////////////////
					if (fct.indexOf('delete') == 0) {
						if (confirm(getZMILangStr('MSG_CONFIRM_DELOBJ'))) {
							if (fct.indexOf('delete_col') == 0) {
								var $trs = $tbody.children();
								for ( var i = 0; i < $trs.length; i++) {
									if ( i == table_cell_offs && table_type == 2) {
										var $td = $($trs[i]).children().filter(":eq("+table_cell_offs+")");
										$td.prop("colspan",parseInt($td.prop("colspan"))-1);
									}
									else {
										var $td = $($trs[i]).children().filter(":eq("+x+")");
										$td.remove();
									}
								}
								$('#cols').val( parseInt($('#cols').val())-1);
							}
							else if (fct.indexOf('delete_row') == 0) {
								var $tr = $tbody.children().filter(":eq("+y+")");
								$tr.remove();
								$('#rows').val( parseInt($('#rows').val())-1);
							}
						}
					}
					//////////////////////////////////////////////////////////////////////////////
					/// INSERT
					//////////////////////////////////////////////////////////////////////////////
					else if (fct.indexOf('insert_col') == 0) {
						var $trs = $tbody.children();
						for ( var i = 0; i < $trs.length; i++) {
							if ( i == table_cell_offs && table_type == 2) {
								var $td = $($trs[i]).children().filter(":eq("+table_cell_offs+")");
								$td.attr("colspan",parseInt($td.attr("colspan"))+1);
							}
							else {
								var $tds = $($trs[i]).children();
								var $td = $tds.filter(":eq("+x+")");
								var new_td = insertCell($tds[$tds.length-2]);
								if(fct.indexOf('insert_col_left') == 0){
									new_td.insertBefore( $td);
								}else{
									new_td.insertAfter( $td);
								}
								
							}
						}
						$('#cols').val( parseInt($('#cols').val())+1);
						table_cell_init();
					}
					else if (fct.indexOf('insert_row') == 0) {
						var $trs = $tbody.children();
						var $tr = $trs.filter(":eq("+y+")");
						var new_tr = insertCell($trs[$trs.length-2]);
						if(fct.indexOf('insert_row_above') == 0) {
							new_tr.insertBefore( $tr);
						}else{
							new_tr.insertAfter( $tr);
						}
					
						$('#rows').val( parseInt($('#rows').val())-1);
						table_cell_init();
					}
					//////////////////////////////////////////////////////////////////////////////
					/// MOVE
					//////////////////////////////////////////////////////////////////////////////
					else if (fct.indexOf('move_col') == 0) {
						var source_x = x;
						var target_x = x;
						if (fct == 'move_col_left') {
							target_x = target_x - 1;
						}
						else {
							target_x = target_x + 1;
						}
						var $trs = $tbody.children().filter(":gt(0)");
						for ( var i = 0; i < $trs.length; i++) {
							var source_td = $($trs[i]).children().filter(":eq("+source_x+")");
							var target_td = $($trs[i]).children().filter(":eq("+target_x+")");
							moveCell(source_td, target_td);
						}
					}
					else if (fct.indexOf('move_row') == 0) {
						var source_y = y;
						var target_y = y;
						if (fct == 'move_row_up') {
							target_y = target_y - 1;
						}
						else {
							target_y = target_y + 1;
						}
						var source_tr = $tbody.children().filter(":eq("+source_y+")");
						var target_tr = $tbody.children().filter(":eq("+target_y+")");
						moveCell(source_tr, target_tr);
					}
					else {
						var par = Math.max(x,y)-table_cell_offs;
						var fm = document.forms[fmName];
						fm.elements['function'].value = fct;
						fm.elements['param'].value = par;
						fm.submit();
					}
				}
				
				function insertCell(source) {
					var $clone = $(source).clone();
					$("table.ZMSTable th, table.ZMSTable td",$clone).each(function() {
							// Remove table with inline-links (if exists).
							$("table",this).remove();
							$("textarea,input",this).each(function() {
									var key = this.id.substr(0,this.id.indexOf("_"));
									$(this).attr( "id", key+"_" + table_cell_uid);
									$(this).attr( "name", key+"_" + table_cell_uid);
									if ( key.indexOf("format") == 0) {
										$(this).val( textFormatDefault);
									}
									else if ( key.indexOf("content") == 0) {
										$(this).val( "").css( 'border', '2px solid #00FF00');
									}
								});
							$('div[id^="preview"]',this).each(function() {
									$(this).attr("id","preview_"+table_cell_uid)
										.html('')
										.attr('contenteditable','')
										.keyup(onKeyUpZMSTableDivContenteditable).blur(onKeyUpZMSTableDivContenteditable);
								});
							$(this).addClass('new').removeClass('new',1000);
							table_cell_uid++;
						});
					return $clone;
				}
				
				function moveCell(source, target) {
					var source_inp = $("textarea,input",source);
					var target_inp = $("textarea,input",target);
					for ( var j = 0; j < source_inp.length; j++) {
						var v = $(source_inp[j]).val();
						$(source_inp[j]).val( $(target_inp[j]).val());
						$(target_inp[j]).val( v);
					}
					var source_preview = $("div[id^=preview]",source);
					var target_preview = $("div[id^=preview]",target);
					for ( var j = 0; j < source_preview.length; j++) {
						var v = $(source_preview[j]).html();
						$(source_preview[j]).html( $(target_preview[j]).html());
						$(target_preview[j]).html( v);
					}
					$("td.table_cell_editable",target).addClass("moved").removeClass("moved",1000);
				}
				
				function onKeyUpZMSTableDivContenteditable() {
					if ($(this).text().length==0) {
						$(this).addClass('placeholder');
					}
					else {
						$(this).removeClass('placeholder');
					}
					var $textarea = $("textarea",$(this).prev());
					$textarea.val($(this).html());
				}
			</script>

			<!-- BO Dropdown -->
			<div class="dropdown-menu dropdown-menu-sm" id="context-menu">
				<a class="dropdown-item move_col_left" href="#"><i class="fas fa-caret-left"></i>Spalte nach Link verschieben</a>
				<a class="dropdown-item move_col_right" href="#"><i class="fas fa-caret-right"></i>Spalte nach Rechts verschieben</a>
				<a class="dropdown-item delete_col" href="#"><i class="fas fa-trash"></i>Ganze Spalte l&ouml;schen</a>
				<a class="dropdown-item insert_col_left" href="#"><i class="far fa-plus-square"></i>Neue Spalte links einf&uuml;gen</a>
				<a class="dropdown-item insert_col_right" href="#"><i class="far fa-plus-square"></i>Neue Spalte rechts einf&uuml;gen</a>
				<div class="dropdown-divider"></div>
				<a class="dropdown-item move_row_up" href="#"><i class="fas fa-caret-up"></i>Zeile nach oben verschieben</a>
				<a class="dropdown-item move_row_down" href="#"><i class="fas fa-caret-down"></i>Zeile nach unten verschieben</a>
				
				<a class="dropdown-item delete_row" href="#"><i class="fas fa-trash"></i>Ganze Zeile l&ouml;schen</a>
				<a class="dropdown-item insert_row_above" href="#"><i class="far fa-plus-square"></i>Neue Zeile oberhalb einf&uuml;gen</a>
				<a class="dropdown-item insert_row_below" href="#"><i class="far fa-plus-square"></i>Neue Zeile unterhalb einf&uuml;gen</a>
			</div>
			<style>
				.dropdown-menu{ position:absolute; }
				.div_table_cell_editor_parent{ position:fixed; }
				.dropdown-item.disabled, .dropdown-item:disabled { cursor: no-drop;}
			</style>
			<script>
			// <!--
				$(function () {
					$('table.table *, table.table *').on('contextmenu', function (e) {
						$('table#table_cell_editor .table_cell_editable.current').removeClass('current');
						let contextMenu = $("#context-menu");
						var target = e.target;
						let card = contextMenu.closest('.card');
						var top = e.pageY - card.position().top;
						var left = e.pageX - card.position().left;
						
						var height =$("#context-menu").height();
						var bottom = top + height;
						var width = $("#context-menu").width();
						var right = left + width;
						
						var doc_bottom =  (window.pageYOffset + window.innerHeight);
						var doc_right = (window.pageXOffset + window.innerWidth);
						
						if(bottom > doc_bottom){
							top = top - height;
						}
						if( right > doc_right){
							left = left - width;
						}

						$("#context-menu").css({
							display: "block",
							top: top,
							left: left
						}).addClass("show");
						
					  
						if($(target).hasClass('ZMSTable-cell')){
							target = $('.table_cell_editable', target).first();
						}
						
						let contextmenu = $('#context-menu');
						let selector = '.table_cell_edit';
						let btn = $(selector, contextmenu);
						let table_cell = $($(target).closest('.table_cell_editable'));
						table_cell.addClass('current');
						let actionlist = ['move_col_left', 'move_col_right', 'move_row_down', 'move_row_up', 'insert_row_above', 'insert_row_below', 'delete_row', 'insert_col_left', 'insert_col_right', 'delete_col'];
						for (let action of actionlist) {
							let selector = '.' + action;
							let btn = $('.' + action, contextmenu);
							let actionAvailable = true;
							
							if(action == 'move_row_up' && (table_cell.closest('tr#table_row_0').length > 0 || (table_type == 1 && table_cell.closest('tr#table_row_1').length > 0)) ){
								actionAvailable = false;
							}else if(action == 'move_col_left' && (table_cell.closest('.ZMSTable-cell').prev().length == 0 || table_type == 3 && table_cell.closest('.ZMSTable-cell').prevAll('.ZMSTable-cell').length == 1)){
								actionAvailable = false;   
							}else if(action == 'move_col_right' && table_cell.closest('.ZMSTable-cell').next().length == 0){
								actionAvailable = false;
							}else if(action == 'move_row_down' && table_cell.closest('.ZMSTable-cell').closest('tr').next().length==0){
								actionAvailable = false;
							}else if(table_cell.prop("tagName") == "TH") {
								if(table_type == 1 && ['move_row_down','insert_row_above','delete_row'].includes(action)){
									actionAvailable = false; 
								}else if(table_type == 3 && ['move_col_left','move_col_right','insert_col_left','delete_col'].includes(action)){
									actionAvailable = false;
								}
							}
							
							if(actionAvailable){
								btn.show();
								btn.off('click');
								btn.on('click', function (event) {
									event.preventDefault();
									actionBtnClick($(target).closest('.ZMSTable'), action);
									$('table#table_cell_editor .table_cell_editable.current').removeClass('current');
									contextmenu.removeClass("show").hide();
								});
							}else{
								btn.hide();
							}
						}

						return false; //blocks default Webbrowser right click menu
					})

					$(document).on("click ", function (event) {
						$('table#table_cell_editor .table_cell_editable.current').removeClass('current');
						$('#context-menu').removeClass("show").hide();
					});
				});
			//-->
			</script>
			<!-- EO Dropdown -->

			<table id="table_cell_editor" class="table" cellspacing="0" cellpadding="0" border="0">
				<tr id="colgrouping">
					<tal:block tal:repeat="col_index python:range(table_cols)">
						<td align="center" tal:attributes="style python:'width:%s'%([ 'initial', '%s%%'%((table_colgroup_cols+[''])[min(col_index,len(table_colgroup_cols))]) ][zmscontext.attr('colgroup')] )">
							<tal:block tal:condition="python:zmscontext.attr('colgroup')">
								<input class="form-control form-control-sm" type="text" size="3"
									style="display:inline;width:4em;"
									onchange="$(this).parent().css('width',$(this).val()+'%')"
									tal:attributes="name python:'col%i'%col_index;
										value python:(table_colgroup_cols+[''])[min(col_index,len(table_colgroup_cols))];
										title python: 'Calculated Average-Width = %s%%'%(table_widths[col_index])" />
								&#37;
							</tal:block>
						</td>
					</tal:block>
				</tr>
				<tr tal:repeat="row_index python:range(table_rows)" tal:attributes="id python:'table_row_%i'%row_index">
					<tal:block tal:repeat="col_index python:range(len(table_table[row_index]))">
						<tal:block tal:define="global 
								cell python:table_table[row_index][col_index];
								pattern python:'%3Cdtml-var%20\042 getlinkurl\\((.*?),request\\)\042=\042\042>\042&gt\073';
								replacement python:'<dtml-var \042getLinkUrl(\\1,REQUEST)\042>\042>';
								cell_content python:here.re_sub(pattern,replacement,cell.get('content',''));
								cell_format python:cell.get('format',textFormatDefault);
								richedit_preview python:int(request.get('richedit_fmt') is not None and cell_format==request.get('richedit_fmt').getId())">
						
							<td class="ZMSTable-cell" tal:attributes="colspan cell/colspan">
								<div class="ZMSTable">
									<table style="width:100%" class="ZMSTable">
									<tr>
										<tal:block tal:content="structure python:'<%s title=\042onDblClick: %s\042 class=\042table_cell_editable\042>'%(['td',cell['tag']][cell['tag']!=''],here.getZMILangStr('ACTION_EDIT_CELL'))">start-tag</tal:block>
										<input type="hidden" tal:attributes="id python:'tag_%i_%i'%(col_index,row_index); value cell/tag" />
										<input type="hidden" tal:attributes="id python:'format_%i_%i'%(col_index,row_index); value cell_format" />
										<div tal:attributes="id python:'input_%i_%i'%(col_index,row_index); class python:['','d-none'][richedit_preview]">
											<textarea tal:attributes="id python:'content_%i_%i'%(col_index,row_index); placeholder python:'table:'+['td',cell['tag']][cell['tag']!='']" tal:content="cell_content"></textarea>
										</div>
										<div tal:attributes="id python:'preview_%i_%i'%(col_index,row_index);class python:cell['tag']+[' placeholder',''][len(cell_content)>0]+[' d-none',''][richedit_preview]"
											><tal:block tal:condition="cell/content" tal:content="structure cell_content">the cell-content</tal:block
										></div>
										<tal:block tal:content="structure python:'</%s><!-- .table_cell_editable -->'%cell['tag']">end-tag</tal:block>
									</tr>
									</table>
								</div>
							</td>
							
						</tal:block>
					</tal:block>
				</tr>
			</table>
			<div class="form-group row">
				<div class="col-sm-12">
					<small class="form-text text-muted mb-3"><i class="fas fa-info-circle"></i> 
						<i class="fas fa-mouse"></i> <span class="badge badge-dark">Click</span> cell to edit, 
						<span class="badge badge-dark">Double-click</span> cell to open WYSIWYG-editor, 
						<span class="badge badge-dark">Right-click</span> to insert, move or delete cells.
					</small>
				</div>
			</div>		
			<input type="hidden" id="cols" tal:attributes="value table_cols" />
			<input type="hidden" id="rows" tal:attributes="value table_rows" />

		</tal:block>
	</tal:block>

	<input type="hidden" id="table_table" tal:attributes="name python:'table_%s'%request['lang']" value="<list></list>"/>
	<input type="hidden" id="table_colgroup_cols" tal:attributes="name python:'cols_%s'%request['lang']" value="<list></list>"/>
	<tal:block tal:define="global dummy0 python:request.set('ZMS_HIDE_ELEMENTS',request.get('ZMS_HIDE_ELEMENTS',[])+['type','table','colgroup','cols','sortable'])"></tal:block>

</tal:block>]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[interface0]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[interface0]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[interface]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[type]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Type]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[int]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[table]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Table]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[list]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[cols]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Cols]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[list]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom">
                    <data content_type="application/javascript" filename="jquery.tablesorter.min.js" type="file">[encoded data, 33040 characters]</data>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[jquery.tablesorter.min.js]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[jQuery tablesorter plugin: http://tablesorter.com]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[resource]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[fas fa-table]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (CSS)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[isActive]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[isActive]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[?]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_targetgroups]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[attr_targetgroups]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[?]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[manage_main_change]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[manage_main_change]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[?]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSTable.onChangeObjEvt"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None,options=None
##title=py: Event: onChange
##
# --// onChangeObjEvt //--

request = zmscontext.REQUEST
lang = request['lang']
table = zmscontext.attr('table')
ncols = max(map(lambda x: len(x), table))
weights = map(lambda x: 1, range( ncols))
for row in table:
    for cell in row:
        content = cell.get('content','')
        content = zmscontext.validateInlineLinkObj(content)
        cell['content'] = content
zmscontext.setObjProperty('table',table,lang)

# --// /onChangeObjEvt //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[onChangeObjEvt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Event: onChange]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSTable.widths"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext
##title=py: Col-Widths [list]
##
# --// BO widths //--

REQUEST = zmscontext.REQUEST
table = zmscontext.attr('table')
ncols = max(map(lambda x: len(x), table))
weights = map(lambda x: 1, range( ncols))
for row in table:
    i = 0
    for cell in row:
        weight = len(zmscontext.re_sub('<(.*?)>', '',zmscontext.dt_exec(cell.get('content',''))))
        weights[i] = weights[i] + weight
        i += 1
return [int((x*100.0)/sum(weights)) for x in weights]

# --// EO widths //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[widths]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Col-Widths [list]]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<tal:block tal:define="zmscontext options/zmscontext; cols python:zmscontext.attr('cols'); d python:{}">
    <tal:block tal:repeat="col python:zmscontext.attr('widths')">
        <tal:block tal:define="col_index repeat/col/index">
            <tal:block tal:condition="python:col_index<len(cols) and cols[col_index]">
                <tal:block tal:define="dummy0 python:zmscontext.operator_setitem(d,col_index+1,str(cols[col_index])+'%')"></tal:block>
            </tal:block>
        </tal:block>
    </tal:block>
    <tal:block tal:condition="python:len(d)>0">
        @media screen and (min-width:560px){
            <tal:block tal:repeat="k d">
                table#<tal:block tal:content="python:zmscontext.id"></tal:block> tr th:nth-child(<tal:block tal:content="k"></tal:block>), table#<tal:block tal:content="python:zmscontext.id"></tal:block> tr td:nth-child(<tal:block tal:content="k"></tal:block>) { width:<tal:block tal:content="python:d[k]"></tal:block> }</tal:block>
        }
    </tal:block>
</tal:block>]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[zmstable_colgroup_css]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[CSS Colgroup]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[table.ZMSTable.sortable thead tr .header{background-image:  url('data:image/gif;base64,R0lGODlhGQALAMIEAO/v7/b29v39/f7+/v///////////////yH5BAEKAAcALAAAAAAZAAsAAAMkeLqs0DA2MYK8jGiNLxkb1zVhOZ6oUoapGoLtYsZLMAh083QJADs=');background-repeat: no-repeat;background-position: center right;cursor: pointer;}table.ZMSTable.sortable thead tr .headerSortUp{background-image: url( data:image/gif;base64,R0lGODlhGQAFAMIEAO/v7/b29v39/f7+/v///////////////yH5BAEKAAcALAAAAAAZAAUAAAMUeLpK/o/J2eAgNDOItT/BIHwkQCYAOw==);}table.ZMSTable.sortable thead tr .headerSortDown {background-image:  url('data:image/gif;base64,R0lGODlhGQAFAMIEAO/v7/b29v39/f7+/v///////////////yH5BAEKAAcALAAAAAAZAAUAAAMUeLp80DA2MYK8jGiNLxkb1zVheSUAOw==');}]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[zmstable_sortable_css]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[CSS Sortable]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<tal:block tal:define="global zmscontext options/zmscontext; resourceurl python:'%s/%s.'%(zmscontext.metaobj_manager.absolute_url(),zmscontext.meta_id);">
  $(function(){
    $.plugin('tablesorter',{
      files: ['<tal:block tal:content="resourceurl"></tal:block>jquery.tablesorter.min.js']
    });
    $.plugin('tablesorter').get('.ZMSTable.sortable',function() {
      $(".ZMSTable.sortable").tablesorter();
    });
  });
</tal:block>]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[zmstable_sortable_js]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[JS Sortable]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSTable.standard_html -->

<div tal:define="zmscontext    options/zmscontext;
                 Std           modules/Products.PythonScripts/standard; 
                 newline_to_br nocall:Std/newline_to_br;
                 standard      modules/Products.zms/standard; 
                 rteformats    python:filter(lambda x: str(x.getRichedit())=='1',here.getTextFormats(request)); 
                 table         python:zmscontext.attr('table');
                 sortable      python:int(zmscontext.attr('sortable') in [1,True]);
                 caption       python:zmscontext.attr('caption');
                 table_type    python:zmscontext.attr('type');"
     class="uzk15__editorblock">
    <tal:block tal:condition="python:sortable and request.get('ZMSTable.sortable',True)">
        <script tal:define="dummy0 python:request.set('ZMSTable.sortable',False)" tal:content="structure python:zmscontext.attr('zmstable_sortable_js')"></script>
        <style tal:content="structure python:zmscontext.attr('zmstable_sortable_css')"></style>
    </tal:block>
    <style tal:condition="python:zmscontext.attr('colgroup')" tal:content="structure python:zmscontext.attr('zmstable_colgroup_css')"></style>
    <table tal:attributes="id python:zmscontext.id; class python:' '.join(['ZMSTable table bs-table']+[[],['sortable']][sortable])">
        <caption tal:condition="python:caption" tal:content="structure caption"></caption>
        <tal:block tal:repeat="row table">
            <tal:block tal:condition="python:table_type==1 and row==table[0]" tal:content="structure python:'<thead>'"></tal:block>
            <tal:block tal:condition="python:table_type==1 and row==table[1]" tal:content="structure python:'<tbody>'"></tal:block>
            <tr>
                <tal:block tal:repeat="column row">
                    <tal:block tal:define="row_index     repeat/row/index;
                                           col_index     repeat/column/index;
                                           tag           python:str(column.get('tag','')).lower();
                                           format        python:column.get('format','');
                                           pattern       python:'%3Cdtml-var%20\042 getlinkurl\\((.*?),request\\)\042=\042\042>\042>\073';
                                           replacement   python:'<dtml-var \042getLinkUrl(\\1,REQUEST)\042>\042>';
                                           content       python:standard.pybytes(column.get('content',''));
                                           content       python:zmscontext.re_sub(pattern,replacement,content);
                                           content       python:[content,newline_to_br(content)][format==''];
                                           col_text      python:[zmscontext.dt_exec(zmscontext.renderText(format,'table_%i_%i'%(col_index,row_index),content,request)),content][format in map(lambda x: x.getId(),rteformats)];
                                           col_text      python:zmscontext.re_sub('^(B \073)','',col_text);
                                           col_text      python:zmscontext.re_sub('^<p>((\\w|\\W)*?)</p>$','\\1',col_text)">
                        <th tal:condition="python:tag == 'th'" tal:content="structure python:col_text if col_text else ' '"></th>
                        <td tal:condition="python:tag != 'th'" tal:content="structure python:col_text if col_text else ' '"></td>
                    </tal:block>
                </tal:block>
            </tr>
            <tal:block tal:condition="python:table_type==1 and row==table[0]" tal:content="structure python:'</thead>'"></tal:block>
            <tal:block tal:condition="python:table_type==1 and row==table[-1]" tal:content="structure python:'</tbody>'"></tal:block>
        </tal:block>
    </table>
</div>

<!-- /ZMSTable.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: ZMSTable]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">1</item>
          <item key="id"><![CDATA[ZMSTable]]></item>
          <item key="name"><![CDATA[ZMSTable]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[4.0.0]]></item>
          <item key="type"><![CDATA[ZMSObject]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSTeaserContainer]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[fas fa-bullhorn]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[f_css_defaults]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[CSS: Default]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[resource]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[e]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[ZMSNote]]></item>
                      <item><![CDATA[ZMSFile]]></item>
                      <item><![CDATA[type(ZMSTeaserElement)]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Teaser-Elements]]></item>
                  <item key="repetitive" type="int">1</item>
                  <item key="type"><![CDATA[*]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "getTeaserElements"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=Function: Teaser-Elements
##
# --// BO getTeaserElements //--

request = container.REQUEST
teaserElmnts = []
obs = context.breadcrumbs_obj_path(portalMaster=False)
obs.reverse()
this = context.getSelf()
for ob in obs:
  abort_penetrance = ob != this and ob.meta_type == 'ZMSLinkElement'
  if abort_penetrance:
    break
  temp = []
  subobs = ob.filteredChildNodes( request, ['ZMSCustom','ZMSTeaserContainer'])
  for subob in subobs:
    if subob.meta_id == 'ZMSTeaserContainer':
      temp.extend( subob.filteredChildNodes( request))
    elif subob.getType() == 'ZMSTeaserElement':
      temp.append( subob)
  for teaserElmnt in temp:
    penetrance = teaserElmnt.attr('attr_penetrance')
    if ( penetrance in [0,'this',''] and context == ob) or \
       ( penetrance in [1,'sub_nav'] and context.meta_id in ['ZMS','ZMSFolder']) or \
       ( penetrance in [2,'sub_all']):
      teaserElmnts.insert( 0, teaserElmnt)
  abort_penetrance = ob.attr('attr_zmsteasercontainer_abort_penetrance') not in ['',0]
  if abort_penetrance:
    break
teaserElmnts.reverse()
return teaserElmnts

# --// EO getTeaserElements //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[getTeaserElements]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Function: Teaser-Elements]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[Script (Python)]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "pageelement_Teaser"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=here=None,request=None
##title=Template: Teaser
##
# --// BO pageelement_Teaser //--

request = container.REQUEST
RESPONSE =  request.RESPONSE

last_borderstyle = None
last_bgcolor_border = None
teaserElmnts = context.getTeaserElements()
if teaserElmnts:
  print('<div class="ZMSTeaserContainer">')
  for teaserElmnt in teaserElmnts:
    if teaserElmnt.meta_id in ['ZMSLinkElement','ZMSFile','ZMSTeaserElement']:
      name = 'pageelement_TeaserElement'
    else:
      name = 'bodyContentZMSCustom_%s'%teaserElmnt.meta_id
    method = getattr(teaserElmnt,name,None)
    if method is not None:
      method_result = method(teaserElmnt,request)
    else:
      method_result = teaserElmnt.getBodyContent(request)
    print(method_result)
  print('</div><!-- .ZMSTeaserContainer -->')

return printed

# --// EO pageelement_Teaser //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[pageelement_Teaser]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: Teaser]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[Script (Python)]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSTeaserContainer.renderShort -->

<tal:block tal:define="global 
		zmscontext options/zmscontext">
	<div class="form-small" tal:repeat="teaserElmnt python:zmscontext.getChildNodes(request)">
		<a tal:attributes="
						href python:'%s/manage_main?lang=%s'%(teaserElmnt.absolute_url(),request['lang']); 
						title python:zmscontext.getZMILangStr('CAPTION_EDIT')%teaserElmnt.display_type(request)"
				tal:content="structure python:teaserElmnt.display_icon(request)">
			the internal link
		</a>
		<tal:block tal:define="global 
				url      python:zmscontext.getLinkUrl(teaserElmnt.attr('attr_url'));
				img_src  python:teaserElmnt.attr('attr_img_src')+'?';
				title    python:teaserElmnt.attr('title');
				abstract python:zmscontext.search_quote(teaserElmnt.attr('attr_abstract'))">
			<tal:block tal:condition="python:title">
				<a tal:condition="python:url" tal:attributes="href url" target="_blank" class="zmi" tal:content="title"><b>The title</b></a>
				<tal:block tal:condition="python:not url" tal:content="title">The title</tal:block>
			</tal:block>
			<tal:block tal:condition="python:not title">
				<tal:block tal:condition="python:img_src">
					<div><i>&laquo;<tal:block tal:content="python:img_src[img_src.rfind('/')+1:img_src.find('?')]"></tal:block>&raquo;</i></div>
				</tal:block>
			</tal:block>
			<div tal:content="structure abstract">The abstract</div>
		</tal:block>
	</div>
</tal:block>

<!-- /ZMSTeaserContainer.renderShort -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[renderShort]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[ZMI: Render short]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">1</item>
          <item key="id"><![CDATA[ZMSTeaserContainer]]></item>
          <item key="name"><![CDATA[ZMSTeaserContainer]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.3.0]]></item>
          <item key="type"><![CDATA[ZMSObject]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSTeaserElement]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[fas fa-bullhorn]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[f_css_defaults]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[CSS: Default]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[resource]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_penetrance]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[this]]></item>
                      <item><![CDATA[sub_nav]]></item>
                      <item><![CDATA[sub_all]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Penetrance]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[select]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_url]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Url]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[url]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_img]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Image]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[image]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[title]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[title]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[text]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Text]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[richtext]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSTeaserElement.attr_img_src"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext
##title=py: Alias: Image
##
# --// BO attr_img_src //--

img = zmscontext.attr('attr_img')
if img:
    return img.getHref(zmscontext.REQUEST)
return ''

# --// EO attr_img_src //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_img_src]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Alias: Image]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSTeaserElement.attr_abstract"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext
##title=py: Alias: Abstract
##
# --// BO attr_abstract //--

return zmscontext.attr('text')

# --// EO attr_abstract //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_abstract]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Alias: Abstract]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- pageelement_TeaserElement -->
<div class="ZMSTeaserElement" tal:define="
			zmscontext here;
			id python:zmscontext.getId();
			attr_url python:zmscontext.attr('attr_url');
			url python:zmscontext.getLinkUrl(attr_url,request);
			url_error python:'error' in url;
			url_target python:attr_url.rfind('://')>0 and '_blank' or 'self';
			img_src_attr python:zmscontext.attr('attr_img_src');
			img_src python:img_src_attr+'?';
			img_filename python:img_src[img_src.rfind('/')+1:img_src.find('?')];
			title python:unicode(zmscontext.attr('title'),'utf-8');
			text python:unicode(zmscontext.attr('attr_abstract'),'utf-8');"
		tal:attributes="id id">
	<div class="graphic" tal:condition="python:img_filename">
		<a href="#" tal:omit-tag="python:(not attr_url) or url_error" tal:attributes="href url">
			<img src="#" border="0" tal:attributes="src img_src_attr;title title;alt title" />
		</a>
	</div>
	<div class="title" tal:condition="title">
		<a tal:omit-tag="python:(not attr_url) or url_error" tal:attributes="href url" tal:content="title">TITLE</a>
	</div>
	<div class="text" tal:condition="text">
		<span tal:replace="structure text">TEXT</span>
		<span class="HREF_MORE" tal:condition="python:text and (url and not url_error)"
			tal:content="structure python:here.getLangStr('HREF_MORE',request['lang'])%(' href=\042%s\042 title=\042%s\042'%(url,title.encode('utf-8')))">
			MORE...
		</span>
	</div>
</div>
<!-- /pageelement_TeaserElement -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[pageelement_TeaserElement]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: Teaser-Element]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[Page Template]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSTeaserElement.standard_html -->
<div class="ZMSTeaserContainer" 
	tal:omit-tag="python:request.get('URL').find('/manage') < 0"
	tal:define="zmscontext options/zmscontext"
	tal:content="structure python:zmscontext.pageelement_TeaserElement(zmscontext,request)">
	The teaser-element
</div>
<!-- /ZMSTeaserElement.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: ZMSTeaserElement]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">1</item>
          <item key="id"><![CDATA[ZMSTeaserElement]]></item>
          <item key="name"><![CDATA[ZMSTeaserElement]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[4.0.0]]></item>
          <item key="type"><![CDATA[ZMSTeaserElement]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSTextarea]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[fas fa-align-left]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<tal:block tal:define="
	zmscontext options/zmscontext;
	dummy0 python:request.set('CKEDITOR_config_removeButtons','JustifyLeft,JustifyCenter,JustifyRight')">
<script type="text/javascript">

$(function(){
	$('#text_'+getZMILang()).parent('form').submit(function() {
			var b = true;
			if (self.btnClicked != getZMILangStr('BTN_CANCEL') &&
					self.btnClicked != getZMILangStr('BTN_BACK')) {
				var txt = '<'+'xml>'+$('#text_'+getZMILang()).val().replace('&','')+'<'+'/xml>';
				if ( txt.indexOf( '<'+'dtml-') < 0) {
					try {
						var xmlString = txt.replace(/\&(\w*)\;/g,'');
						if (window.DOMParser) {
							var parser=new DOMParser();
							var doc=parser.parseFromString(xmlString,"text/xml");
							if ( doc.childNodes[0].nodeName == 'parsererror') {
								b = confirm(getZMILangStr('CAPTION_WARNING')+'\n'+doc.childNodes[0].childNodes[0].nodeValue+'\n'+getZMILangStr('MSG_CHANGE_ANYWAY')+'\n');
							}
						} else if (window.ActiveXObject) {
							var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
							xmlDoc.async="false";
							xmlDoc.loadXML(xmlString);
							if ( xmlDoc.childNodes.length == 0) {
								b = confirm(getZMILangStr('CAPTION_WARNING')+'\n'+'Invalid (X)HTML!\n'+getZMILangStr('MSG_CHANGE_ANYWAY')+'\n');
							}
						}
					}
					catch(e) {
						alert(e.message);
					}
				}
			}
			return b;
		});
	});

</script>
</tal:block>]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[interface0]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[interface0]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[interface]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"><![CDATA[##
return context.getTextFormatDefault()]]>
                  </item>
                  <item key="id"><![CDATA[format]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Format]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[text]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Text]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[richtext]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[resources]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[resources]]></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Resourcen]]></item>
                  <item key="repetitive" type="int">1</item>
                  <item key="type"><![CDATA[file]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSTextarea.check_constraints"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None,options=None
##title=py: Hook: check constraints
##
# --// check_constraints //--

constraints = {}
request = zmscontext.REQUEST
obj_attr = zmscontext.getObjAttr('text')
text = zmscontext.getObjAttrValue(obj_attr,request)
if text.startswith('##') or text.find('<dtml-')>=0 or text.find('<tal:')>=0:
  constraints['RESTRICTIONS'] = constraints.get('RESTRICTIONS',[])
  constraints['RESTRICTIONS'].append(('restricted-access','text contains executable-code (py, tal, dtml)',['ZMS Administrator']))
return constraints

# --// /check_constraints //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[check_constraints]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Hook: check constraints]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSTextarea.standard_html -->

<tal:block tal:define="
			standard      modules/Products/zms/standard;
			zmscontext    options/zmscontext;
			text          python:unicode(zmscontext.getText(request)).encode('utf-8');
			format        python:zmscontext.attr('format');
			renderedText  python:zmscontext.renderText(format,'text',text,request,zmscontext.id);">
	<div tal:attributes="id zmscontext/id; class zmscontext/meta_id" tal:content="structure renderedText">
		The text
	</div>
</tal:block>

<!-- /ZMSTextarea.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: ZMSTextarwa]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">1</item>
          <item key="id"><![CDATA[ZMSTextarea]]></item>
          <item key="name"><![CDATA[ZMSTextarea]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[3.1.2]]></item>
          <item key="type"><![CDATA[ZMSObject]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[ZMSVideo]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[fas fa-film]]></item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[icon_clazz]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Icon (Class)]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[constant]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[title]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"><![CDATA[title]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[DC.Title]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[attr_dc_description]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"><![CDATA[attr_dc_description]]></item>
                  <item key="multilang" type="int">1</item>
                  <item key="name"><![CDATA[Zusammenfassung]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[text]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[img]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Preview-Screen]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[image]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[videodata]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[MP4 File Upload]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[file]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[provider]]></item>
                  <item key="keys" type="list">
                    <list>
                      <item><![CDATA[fileupload]]></item>
                      <item><![CDATA[vimeo]]></item>
                      <item><![CDATA[youtube]]></item>
                      <item><![CDATA[switch]]></item>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Video Provider]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[select]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[videoId]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">1</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Video-ID]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[string]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[videoHint]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[<div id="tr_videoHint" class="form-group row"><label class="col-sm-2 control-label" for="videoHint"><span>Hinweise</span></label><div id="videoHint" class="col-sm-10">Der Kurztitel ist nur für die interne Darstellung/Referenzierung.<br />WICHTIG: Die Option "Einbetten auf Anfrage" des YouTube Videos darf nicht deaktiviert sein!<br />Die YouTube ID kann aus der URL des Browsers beim Betrachten des Videos entnommen werden:<ol><li>http://www.youtube.com/watch?v=<strong style="color:darkred">7nxwgSxLA68</strong></li><li>http://youtu.be/<strong style="color:darkred">7nxwgSxLA68</strong></li></ol></div></div>]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[hint]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[videoWidth]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Breite]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[int]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="default"></item>
                  <item key="id"><![CDATA[videoHeight]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Höhe]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[int]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[## Script (Python) "ZMSVideo.titlealt"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=zmscontext=None
##title=py: DC.Title.Alt
##
# --// titlealt //--
return zmscontext.attr('title')
# --// /titlealt //--
]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[titlealt]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[DC.Title.Alt]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[py]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<script>
	function changeGUI() {
		$('#tr_videoId').hide();
		$('#tr_videoHint').hide();
		$('#tr_videoWidth').hide();
		$('#tr_videoHeight').hide();
		$('#tr_videodata').hide();
		if ( $('#tr_provider select option:selected').val()!='switch' ) {
			if ( $('#tr_provider select option:selected').val()=='youtube' ) {
				$('#tr_videoHint').show();
			}
			if ( $('#tr_provider select option:selected').val()=='fileupload' ) {
				$('#tr_videodata').show();
				$('#tr_videoId label').removeClass('mandatory');
			}
			else {
				$('#tr_videoId').show();
				$('#tr_videoId label').addClass('mandatory');
			}
			$('#tr_videoWidth').show();
			$('#tr_videoHeight').show();
		};
	};
	$(document).ready( function() {
		$('#tr_provider select').change(function() { changeGUI() });
		changeGUI();
	});
</script>]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[interface]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[interface]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[interface]]></item>
                </dictionary>
              </item>
              <item type="dictionary">
                <dictionary>
                  <item key="custom"><![CDATA[<!-- ZMSVideo.standard_html -->

<tal:block tal:define="
		zmscontext options/zmscontext;
		zmi python:request.get('URL').find('/manage')>=0;
		id python:zmscontext.getId();
		title python:zmscontext.attr('title');
		description python:zmscontext.attr('attr_dc_description');
		img python:zmscontext.attr('img');
		videodata python:zmscontext.attr('videodata');
		provider python:zmscontext.attr('provider');
		videoId python:zmscontext.attr('videoId');
		videoWidth python:zmscontext.attr('videoWidth');
		videoHeight python:zmscontext.attr('videoHeight');
		videoURL python:{'fileupload':'','vimeo':'//player.vimeo.com/video/%s?badge=0','youtube':'http://www.youtube.com/embed/%s','switch':'https://tube.switch.ch/embed/%s'}[provider]">

<style type="text/css" tal:condition="python:request.get('first_video_on_page',True)">
	.video-wrapper {margin: 1em 0;}
	.youtube { position: relative; padding-bottom: 55%; padding-top: 15px; height: 0; overflow: hidden;}
	.youtube iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
	.video-wrapper p.description {font-size:90%;font-style:italic;}
</style>
<tal:block tal:define="first_video_on_page python:request.set('first_video_on_page',False)"></tal:block>

<div class="note" tal:condition="zmi">
	<strong tal:content="title">Titel</strong> - web size:
	<strong tal:content="videoWidth">videoWidth</strong> x <strong tal:content="videoHeight">videoHeight</strong> Pixel.
</div>

<div tal:attributes="class python:'video-wrapper elastic-video %s'%(provider);title title;id id">
	<div class="embed-responsive embed-responsive-16by9">
	<tal:block tal:condition="python:img!='' and img!=None"
		><img tal:attributes="src python:img.getHref(request);
			width videoWidth;
			height videoHeight;
			style python:['cursor:pointer','display:none'][img==''];
			onclick python:'javascript:$(\047#%s img\047).hide()\073$(\047#%s .video\047).show()'%(id,id)"
	/></tal:block>
	<iframe tal:condition="python:provider!='fileupload'"
		tal:attributes="src python:videoURL%(videoId); width python:[None,videoWidth][videoWidth>0]; height python:[None,videoHeight][videoHeight>0];style python:['display:none',''][img=='' or img==None]"
		class="embed-responsive-item"
		frameborder="0"
		webkitallowfullscreen=""
		mozallowfullscreen=""
		allowfullscreen="">
	</iframe>
	<video tal:condition="python:provider=='fileupload' and videodata!=''"
		tal:attributes="width python:[None,videoWidth][videoWidth>0]; height python:[None,videoHeight][videoHeight>0]; style python:['display:none',''][img=='' or img==None]"
		class="embed-responsive-item"
		frameborder="0"
		controls="">
		<source src="movie.mp4" type="video/mp4" tal:attributes="src python:videodata.getHref(request)" />
		ERROR: Your browser does not support the video tag.
	</video>
	</div>    
	<div tal:condition="python:(provider=='fileupload' and videodata=='') or (provider!='fileupload' and videoId=='')"
		class="alert alert-warning">No video file uploaded or no provider video specified.
	</div>
	<p class="description" tal:condition="description" tal:content="description">description</p>
</div>

</tal:block>

<!-- /ZMSVideo.standard_html -->]]>
                  </item>
                  <item key="default"></item>
                  <item key="id"><![CDATA[standard_html]]></item>
                  <item key="keys" type="list">
                    <list>
                    </list>
                  </item>
                  <item key="mandatory" type="int">0</item>
                  <item key="meta_type"></item>
                  <item key="multilang" type="int">0</item>
                  <item key="name"><![CDATA[Template: YouTube Video]]></item>
                  <item key="repetitive" type="int">0</item>
                  <item key="type"><![CDATA[zpt]]></item>
                </dictionary>
              </item>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
              <item key="insert_custom"><![CDATA[{$}]]></item>
              <item key="insert_deny" type="list">
                <list>
                  <item></item>
                  <item></item>
                  <item></item>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">0</item>
          <item key="id"><![CDATA[ZMSVideo]]></item>
          <item key="name"><![CDATA[ZMSVideo]]></item>
          <item key="package"><![CDATA[com.zms.foundation]]></item>
          <item key="revision"><![CDATA[4.0.0]]></item>
          <item key="type"><![CDATA[ZMSObject]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
  <item type="dictionary">
    <dictionary>
      <item key="key"><![CDATA[com.zms.foundation]]></item>
      <item key="value" type="dictionary">
        <dictionary>
          <item key="__obj_attrs__" type="list">
            <list>
            </list>
          </item>
          <item key="access" type="dictionary">
            <dictionary>
              <item key="delete_custom"></item>
              <item key="delete_deny" type="list">
                <list>
                </list>
              </item>
              <item key="insert_custom"></item>
              <item key="insert_deny" type="list">
                <list>
                </list>
              </item>
            </dictionary>
          </item>
          <item key="enabled" type="int">0</item>
          <item key="id"><![CDATA[com.zms.foundation]]></item>
          <item key="name"><![CDATA[com.zms.foundation]]></item>
          <item key="package"></item>
          <item key="revision"><![CDATA[4.0.0]]></item>
          <item key="type"><![CDATA[ZMSPackage]]></item>
        </dictionary>
      </item>
    </dictionary>
  </item>
</list>