Ignore:
Timestamp:
23.11.2009 08:14:48 (3 years ago)
Author:
mhallbauer
Message:

0.3.0

  • can switch between index and toc
  • attribute static_list is now hidden
  • auto update static list while saving object
File:
1 edited

Legend:

Unmodified
Added
Removed
  • CMESS/misc/trunk/org/cmess/misc/zms/org.cmess.misc.metaobj.xml

    r767 r801  
    66<item key="__obj_attrs__" type="list"><list> 
    77<item type="dictionary"><dictionary> 
    8 <item key="id"><![CDATA[interface1]]></item> 
    9 <item key="mandatory" type="int">0</item> 
    10 <item key="multilang" type="int">0</item> 
    11 <item key="name"><![CDATA[<dtml-if "URL.find('/manage') > 0"> 
    12         <dtml-if "REQUEST.get('update_overview', None)"> 
    13                 <dtml-call "ZMSOverview_updateStaticList()"> 
    14                 <dtml-call "RESPONSE.redirect('manage_main?lang=%s&manage_lang=%s'%(lang, manage_lang))"> 
    15         </dtml-if> 
    16 </dtml-if>]]></item> 
    17 <item key="repetitive" type="int">0</item> 
    18 <item key="type"><![CDATA[interface]]></item> 
     8<item key="id"><![CDATA[ZMSOverview_type]]></item> 
     9<item key="keys" type="list"><list> 
     10<item><![CDATA[<dtml-return "[['index', 'Index'], ['toc', 'Inhaltsverzeichnis']]">]]></item> 
     11</list> 
     12</item> 
     13<item key="mandatory" type="int">1</item> 
     14<item key="multilang" type="int">1</item> 
     15<item key="name"><![CDATA[Typ]]></item> 
     16<item key="repetitive" type="int">0</item> 
     17<item key="type"><![CDATA[select]]></item> 
     18</dictionary> 
     19</item> 
     20<item type="dictionary"><dictionary> 
     21<item key="id"><![CDATA[ZMSOverview_pageTypes]]></item> 
     22<item key="keys" type="list"><list> 
     23<item><![CDATA[<dtml-let result="[]">]]></item> 
     24<item><![CDATA[<dtml-in "getMetaobjIds()">]]></item> 
     25<item><![CDATA[<dtml-if "getMetaobj(_['sequence-item'])['type'] in ['ZMSDocument']">]]></item> 
     26<item><![CDATA[<dtml-call "result.append([_['sequence-item'], nvl(getZMILangStr('TYPE_' + _['sequence-item'].upper()), getMetaobj(_['sequence-item'])['name'], 'TYPE_' + _['sequence-item'].upper())])">]]></item> 
     27<item><![CDATA[</dtml-if>]]></item> 
     28<item><![CDATA[</dtml-in>]]></item> 
     29<item><![CDATA[<dtml-return "result">]]></item> 
     30<item><![CDATA[</dtml-let>]]></item> 
     31</list> 
     32</item> 
     33<item key="mandatory" type="int">0</item> 
     34<item key="multilang" type="int">1</item> 
     35<item key="name"><![CDATA[Elemente]]></item> 
     36<item key="repetitive" type="int">0</item> 
     37<item key="type"><![CDATA[multiselect]]></item> 
    1938</dictionary> 
    2039</item> 
     
    2443<item key="mandatory" type="int">0</item> 
    2544<item key="multilang" type="int">1</item> 
    26 <item key="name"><![CDATA[rekursiv]]></item> 
     45<item key="name"><![CDATA[rekursiv?]]></item> 
    2746<item key="repetitive" type="int">0</item> 
    2847<item key="type"><![CDATA[boolean]]></item> 
     48</dictionary> 
     49</item> 
     50<item type="dictionary"><dictionary> 
     51<item key="default"><![CDATA[1]]></item> 
     52<item key="id"><![CDATA[ZMSOverview_static]]></item> 
     53<item key="mandatory" type="int">0</item> 
     54<item key="multilang" type="int">1</item> 
     55<item key="name"><![CDATA[statisch?]]></item> 
     56<item key="repetitive" type="int">0</item> 
     57<item key="type"><![CDATA[boolean]]></item> 
     58</dictionary> 
     59</item> 
     60<item type="dictionary"><dictionary> 
     61<item key="id"><![CDATA[delimiter0]]></item> 
     62<item key="mandatory" type="int">0</item> 
     63<item key="multilang" type="int">0</item> 
     64<item key="name"><![CDATA[FÃŒr Index]]></item> 
     65<item key="repetitive" type="int">0</item> 
     66<item key="type"><![CDATA[delimiter]]></item> 
    2967</dictionary> 
    3068</item> 
     
    3472<item key="mandatory" type="int">0</item> 
    3573<item key="multilang" type="int">1</item> 
    36 <item key="name"><![CDATA[zeige Header]]></item> 
     74<item key="name"><![CDATA[Buchstaben Kopfzeile?]]></item> 
    3775<item key="repetitive" type="int">0</item> 
    3876<item key="type"><![CDATA[boolean]]></item> 
     
    4482<item key="mandatory" type="int">0</item> 
    4583<item key="multilang" type="int">1</item> 
    46 <item key="name"><![CDATA[Header mit kompletten Alphabet]]></item> 
     84<item key="name"><![CDATA[Komplettes Alphabet?]]></item> 
    4785<item key="repetitive" type="int">0</item> 
    4886<item key="type"><![CDATA[boolean]]></item> 
     
    5088</item> 
    5189<item type="dictionary"><dictionary> 
     90<item key="id"><![CDATA[_ZMSOverview_staticList]]></item> 
     91<item key="mandatory" type="int">0</item> 
     92<item key="multilang" type="int">1</item> 
     93<item key="name"><![CDATA[_ZMSOverview_staticList]]></item> 
     94<item key="repetitive" type="int">0</item> 
     95<item key="type"><![CDATA[list]]></item> 
     96</dictionary> 
     97</item> 
     98<item type="dictionary"><dictionary> 
    5299<item key="default"><![CDATA[0]]></item> 
    53 <item key="id"><![CDATA[ZMSOverview_static]]></item> 
    54 <item key="mandatory" type="int">0</item> 
    55 <item key="multilang" type="int">1</item> 
    56 <item key="name"><![CDATA[statische Liste]]></item> 
     100<item key="id"><![CDATA[_ZMSOverview_updateStaticList]]></item> 
     101<item key="mandatory" type="int">0</item> 
     102<item key="multilang" type="int">1</item> 
     103<item key="name"><![CDATA[_ZMSOverview_updateStaticList]]></item> 
    57104<item key="repetitive" type="int">0</item> 
    58105<item key="type"><![CDATA[boolean]]></item> 
     
    60107</item> 
    61108<item type="dictionary"><dictionary> 
    62 <item key="id"><![CDATA[ZMSOverview_staticList]]></item> 
    63 <item key="mandatory" type="int">0</item> 
    64 <item key="multilang" type="int">1</item> 
    65 <item key="name"/> 
    66 <item key="repetitive" type="int">0</item> 
    67 <item key="type"><![CDATA[list]]></item> 
    68 </dictionary> 
    69 </item> 
    70 <item type="dictionary"><dictionary> 
    71 <item key="id"><![CDATA[interface0]]></item> 
    72 <item key="mandatory" type="int">0</item> 
    73 <item key="multilang" type="int">0</item> 
    74 <item key="name"><![CDATA[<dtml-if "URL.find('/manage') > 0"> 
    75         <table cellspacing="0" cellpadding="1" border="0" width="100%"> 
    76         <colgroup> 
    77          <col width="20%" /> 
    78          <col width="80%" /> 
    79         </colgroup> 
    80         <tr valign="top"> 
    81          <td><div class="form-label">&nbsp;</div></td> 
    82          <td><div class="form-label"><input type="button" value="aktualisieren" onclick="window.location.href='<dtml-var "absolute_url()">/manage_main?lang=<dtml-var "lang">&update_overview=1'" /></div></td> 
    83         </tr> 
    84         </table> 
    85 </dtml-if>]]></item> 
    86 <item key="repetitive" type="int">0</item> 
    87 <item key="type"><![CDATA[interface]]></item> 
    88 </dictionary> 
    89 </item> 
    90 <item type="dictionary"><dictionary> 
    91109<item key="custom"><![CDATA[<dtml-comment>--// BO bodyContentZMSCustom_ZMSOverview //--</dtml-comment> 
     110 
     111<dtml-if "(URL.find('/manage') > 0) and (getObjProperty('_ZMSOverview_updateStaticList', REQUEST) == True)"> 
     112        <dtml-call "ZMSOverview_updateStaticList()"> 
     113        <dtml-call "setObjProperty('_ZMSOverview_updateStaticList', False, lang)"> 
     114</dtml-if> 
    92115 
    93116<dtml-var "ZMSOverview_renderOverview()"> 
     
    109132                for one_item in obj_list: 
    110133                        temp_dict = {} 
     134                        temp_dict['level']                      = one_item['level'] 
    111135                        temp_dict['title_alt']  = one_item['title_alt'] 
    112136                        temp_dict['title']                      = one_item['title'] 
     
    124148        if ((item_list is not None) and (context.operator_gettype(item_list) == context.operator_gettype([]))): 
    125149                for one_item in item_list: 
    126                         if (one_item['title_alt'].startswith('Ä')): 
     150                        if (one_item['title'].startswith('Ä')): 
    127151                                temp_first_char = 'A' 
    128                         elif (one_item['title_alt'].startswith('Ö')): 
     152                        elif (one_item['title'].startswith('Ö')): 
    129153                                temp_first_char = 'O' 
    130                         elif (one_item['title_alt'].startswith('Ü')): 
     154                        elif (one_item['title'].startswith('Ü')): 
    131155                                temp_first_char = 'U' 
    132156                        else: 
    133                                 temp_first_char = one_item['title_alt'][:1].upper() 
     157                                temp_first_char = one_item['title'][:1].upper() 
    134158                         
    135159                        if (temp_first_char != temp_act_char): 
     
    168192        return temp_result 
    169193 
     194def renderToc(item_list): 
     195        temp_base_level = context.getLevel() 
     196        temp_level                      = 0 
     197        temp_result                     = '' 
     198         
     199        if ((item_list is not None) and (context.operator_gettype(item_list) == context.operator_gettype([]))): 
     200                for one_item in item_list: 
     201                        temp_level = one_item['level'] - temp_base_level 
     202                        temp_result += '<a href="%s"%s>%s</a><br />\n'%(one_item['url'], \ 
     203                                                                                        (temp_level > 0) and ' style="margin-left: %iem;"'%temp_level or '', one_item['title']) 
     204         
     205        return temp_result 
     206 
    170207################################################################################################## 
    171208REQUEST                 = context.REQUEST 
     
    174211 
    175212if (context.getObjProperty('ZMSOverview_static', REQUEST)): 
    176         temp_overview_list = context.getObjProperty('ZMSOverview_staticList', REQUEST) 
     213        temp_overview_list = context.getObjProperty('_ZMSOverview_staticList', REQUEST) 
    177214else: 
    178215        temp_overview_list = convertObjs(context.ZMSOverview_getObjList()) 
    179216 
    180 temp_output_body, temp_chars = renderOverview(temp_overview_list, temp_header) 
    181 temp_output_head = temp_header and renderOverviewHead(temp_chars, context.getObjProperty('ZMSOverview_completeAlphabet', REQUEST), True) or '' 
    182  
    183 return temp_output_head + temp_output_body 
     217if (context.getObjProperty('ZMSOverview_type', REQUEST) == 'index'): 
     218        temp_output_body, temp_chars = renderOverview(temp_overview_list, temp_header) 
     219        temp_output_head = temp_header and renderOverviewHead(temp_chars, context.getObjProperty('ZMSOverview_completeAlphabet', REQUEST), True) or '' 
     220         
     221        temp_result = temp_output_head + temp_output_body 
     222else: 
     223        temp_result = renderToc(temp_overview_list) 
     224 
     225return temp_result 
    184226 
    185227# --// EO ZMSOverview_renderOverview //-- 
     
    205247                        temp_result += '<item key="title"><![CDATA' + '[' + one_item['title'] + ']' + ']></item>\n' 
    206248                        temp_result += '<item key="url"><![CDATA' + '[' + one_item['obj'].absolute_url() + ']' + ']></item>\n' 
     249                        temp_result += '<item key="level" type="int">' + str(one_item['level']) + '</item>\n' 
    207250                        temp_result += '</dictionary></item>\n' 
    208251         
     
    213256temp_xml = '<list>\n%s</list>\n' 
    214257 
    215 context.setObjProperty('ZMSOverview_staticList', \ 
     258context.setObjProperty('_ZMSOverview_staticList', \ 
    216259                                                                                                temp_xml%createStaticXML(context.ZMSOverview_getObjList()), \ 
    217260                                                                                                REQUEST.get('lang', context.getPrimaryLanguage())) 
     
    235278<item key="custom"><![CDATA[# --// BO ZMSOverview_getObjList //-- 
    236279 
    237 def getOverviewObjects(parent_folder, recursive = False): 
     280def getOverviewObjects(parent_folder, page_types, meta_types, recursive = False): 
    238281        temp_result = [] 
    239282         
    240         if ((parent_folder is not None) and (parent_folder.isMetaType('ZMSFolder'))): 
    241                 for one_child in parent_folder.filteredChildNodes(meta_types = ['ZMSFolder', 'ZMSDocument']): 
    242                         if (one_child.isMetaType('ZMSDocument')): 
    243                                 temp_result.append({'obj' : one_child, 'title' : one_child.getTitle(REQUEST), 'title_alt' : one_child.getTitlealt(REQUEST)}) 
    244                         elif (one_child.isMetaType('ZMSFolder') and recursive): 
    245                                 temp_result += getOverviewObjects(one_child, recursive) 
     283        if ((parent_folder is not None) and (parent_folder.isMetaType(['ZMS', 'ZMSFolder']))): 
     284                for one_child in parent_folder.filteredChildNodes(meta_types = meta_types): 
     285                        if (not one_child.isResource(REQUEST)): 
     286                                if (one_child.isMetaType(page_types)): 
     287                                        temp_result.append({'obj' : one_child, 'title' : one_child.getTitle(REQUEST), 'title_alt' : one_child.getTitlealt(REQUEST), 'level' : one_child.getLevel()}) 
     288                                if (one_child.isMetaType('ZMSFolder') and recursive): 
     289                                        temp_result += getOverviewObjects(one_child, page_types, meta_types, recursive) 
    246290         
    247291        return temp_result 
    248292 
    249293################################################################################################## 
    250 REQUEST                 = context.REQUEST 
    251 temp_parent = context.getParentNode() 
    252  
    253 return context.sort_list(getOverviewObjects(temp_parent, context.getObjProperty('ZMSOverview_recursive')), 'title') 
     294REQUEST                                 = context.REQUEST 
     295temp_parent             = context.getParentNode() 
     296# get meta_types which user wants to see at overview 
     297temp_page_types = context.getObjProperty('ZMSOverview_pageTypes', REQUEST) 
     298# copy meta_types 
     299temp_meta_types = context.copy_list(temp_page_types) 
     300# meta_types to search for in parent_folder - find ZMSFolder too, to look recursive 
     301if (not 'ZMSFolder' in temp_meta_types): 
     302        temp_meta_types.append('ZMSFolder') 
     303 
     304temp_result = getOverviewObjects(temp_parent, temp_page_types, temp_meta_types, context.getObjProperty('ZMSOverview_recursive')) 
     305 
     306if (context.getObjProperty('ZMSOverview_type', REQUEST) == 'index'): 
     307        temp_result = context.sort_list(temp_result, 'title') 
     308 
     309return temp_result 
    254310 
    255311# --// EO ZMSOverview_getObjList //-- 
     
    261317<item key="repetitive" type="int">0</item> 
    262318<item key="type"><![CDATA[Script (Python)]]></item> 
     319</dictionary> 
     320</item> 
     321<item type="dictionary"><dictionary> 
     322<item key="custom"><![CDATA[<dtml-comment>--// BO onChangeObjEvt //--</dtml-comment> 
     323 
     324<dtml-if "REQUEST.form.get('btn', None) == getZMILangStr('BTN_SAVE')"> 
     325        <dtml-call "setObjProperty('_ZMSOverview_updateStaticList', True, lang)"> 
     326</dtml-if> 
     327 
     328<dtml-comment>--// EO onChangeObjEvt //--</dtml-comment> 
     329]]></item> 
     330<item key="id"><![CDATA[onChangeObjEvt]]></item> 
     331<item key="mandatory" type="int">0</item> 
     332<item key="multilang" type="int">0</item> 
     333<item key="name"><![CDATA[onChangeObjEvt]]></item> 
     334<item key="repetitive" type="int">0</item> 
     335<item key="type"><![CDATA[method]]></item> 
    263336</dictionary> 
    264337</item> 
     
    291364<item key="enabled" type="int">1</item> 
    292365<item key="id"><![CDATA[ZMSOverview]]></item> 
    293 <item key="name"><![CDATA[Übersicht]]></item> 
     366<item key="name"><![CDATA[ZMSOverview]]></item> 
    294367<item key="package"><![CDATA[org.cmess.misc]]></item> 
    295 <item key="revision"><![CDATA[0.2.1]]></item> 
     368<item key="revision"><![CDATA[0.3.0]]></item> 
    296369<item key="type"><![CDATA[ZMSObject]]></item> 
    297370</dictionary> 
     
    324397<item key="name"><![CDATA[org.cmess.misc]]></item> 
    325398<item key="package"/> 
    326 <item key="revision"><![CDATA[0.2.1]]></item> 
     399<item key="revision"><![CDATA[0.3.0]]></item> 
    327400<item key="type"><![CDATA[ZMSPackage]]></item> 
    328401</dictionary> 
Note: See TracChangeset for help on using the changeset viewer.