source: ZMS/trunk/import/manage_addMultiUpload.metacmd.xml @ 1696

Revision 1696, 7.6 KB checked in by zmsdev, 7 months ago (diff)

removed debug-artefacts

Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<dictionary>
3  <item key="custom"/>
4  <item key="data"><![CDATA[# Import a standard function, and get the HTML request and response objects.
5from Products.PythonScripts.standard import html_quote
6request = container.REQUEST
7RESPONSE =  request.RESPONSE
8
9print context.manage_page_header(context,request)
10print context.manage_tabs(context,request)
11print context.f_headline(context,headline='<big><img src="%swand.png" align="absmiddle" border="0"/> Multi-Upload...</big>'%context.MISC_ZMS)
12print '<form action="%s" method="post" enctype="multipart/form-data">'%request['URL']
13print '<input type="hidden" name="form_id:string" value="manage_addMultiUpload"/>'
14print '<input type="hidden" name="lang:string" value="%s"/>'%request['lang']
15print '<input type="hidden" name="id_prefix:string" value="%s"/>'%request.get('id_prefix','e')
16print context.zmi_form_section_begin(context,request)
17
18# --- Display contents of zip-file.
19# ---------------------------------
20if request.form.get('btn')==context.getZMILangStr('BTN_IMPORT') and request.form.get('file'):
21        file = request['file']
22        temp_id = str(request.SESSION.getId())+'_'+str(request['form_id'])
23        temp_folder = context.temp_folder
24        files = context.getZipArchive(file)
25        containers = []
26        print '<input type="hidden" name="temp_id:string" value="%s"/>'%temp_id
27        print '<input type="hidden" name="temp_filename:string" value="%s"/>'%file.filename
28        if temp_id in context.temp_folder.objectIds():
29                getattr(temp_folder,temp_id).manage_upload(file)
30        else:
31                temp_folder.manage_addFile(id=temp_id,title=file.filename,file=file)
32        print '<tr valign="top">'
33        print '<td class="form-label"><strong><img src="%smime_type.application_zip.gif" alt="" border="0" align="absmiddle"/> %s</strong><br/>(%s, %i %s)</td>'%(context.MISC_ZMS,file.filename,context.getDataSizeStr(getattr(temp_folder,temp_id).size),len(files),context.getZMILangStr('ATTR_OBJECTS'))
34        print '<td class="form-small neutralColorWhite">'
35        root = None
36        for file in context.sort_list(files,'local_filename'):
37                base = file['local_filename'][:-len(file['filename'])-1]
38                if root is None:
39                        root = file['local_filename'][:max(file['local_filename'].rfind('/'),file['local_filename'].rfind('\\'))]
40                if file['isdir']:
41                        containers.append(file['local_filename'])
42                        print '<div><input type="checkbox" name="ids:list" value="%s" checked="checked"/><img src="%s" alt="" border="0" align="absmiddle"/> %s</div>'%(file['local_filename'][len(root):],context.display_icon(request,'ZMSFolder'),file['filename'])
43                        print '<div style="margin-left:20px;">'
44                else:
45                        if containers:
46                                if base != containers[-1]:
47                                        containers.remove(containers[-1])
48                                        print '</div>'
49                        meta_id = 'ZMSFile'
50                        if file['content_type'] == 'text/html':
51                                meta_id = 'ZMSTextarea'
52                        elif file['content_type'].startswith('image/'):
53                                meta_id = 'ZMSGraphic'
54                        print '<div><input type="checkbox" name="ids:list" value="%s" checked="checked"/><img src="%s" alt="" border="0" align="absmiddle"/> %s (%s)</div>'%(file['local_filename'][len(root):],context.display_icon(request,meta_id),file['filename'],context.getDataSizeStr(file['size']))
55        for base in containers:
56                print '</div>'
57        print '</tr>'
58        print '<tr valign="middle">'
59        print '<td>&nbsp;</td>'
60        print '<td>'
61        print '<input class="ui-button ui-state-default ui-corner-all" name="btn" type="submit" value="%s">'%context.getZMILangStr('BTN_IMPORT')
62        print '<input class="ui-button ui-state-default ui-corner-all" name="btn" type="submit" value="%s">'%context.getZMILangStr('BTN_CANCEL')
63        print '</td>'
64        print '</tr>'
65
66# --- Import contents of zip-file.
67# ---------------------------------
68elif request.form.get('btn')==context.getZMILangStr('BTN_IMPORT') and request.form.get('temp_id'):
69        temp_id = request['temp_id']
70        temp_filename = request['temp_filename']
71        temp_folder = context.temp_folder
72        message = []
73        files = context.getZipArchive(str(getattr(temp_folder,temp_id).data))
74        containers = {}
75        root = None
76        c = 0
77        for file in context.sort_list(files,'local_filename'):
78                base = file['local_filename'][:-len(file['filename'])-1]
79                if root is None:
80                        root = file['local_filename'][:max(file['local_filename'].rfind('/'),file['local_filename'].rfind('\\'))]
81                id_prefix = 'e'
82                if len(containers.keys()) == 0:
83                        id_prefix = request['id_prefix']
84                if file['local_filename'][len(root):] in request.form.get('ids',[]):
85                        container = containers.get(base,context)
86                        if file['isdir']:
87                                containers[file['local_filename']] = \
88                                                                                                container.manage_addZMSCustom('ZMSFolder',{ \
89                                                                                                                'id_prefix':id_prefix, \
90                                                                                                                'title':file['filename'], \
91                                                                                                                'titlealt':file['filename'], \
92                                                                                                        },request)
93                        elif file['content_type'] == 'text/html':
94                                text = str(file['data'])
95                                i = text.lower().find('<body')
96                                if i >= 0:
97                                        text = text[i:]
98                                        text = text[text.find('>')+1:]
99                                        i = text.lower().find('</body')
100                                        if i >= 0:
101                                                text = text[:i]
102                                text = unicode(text,'latin-1').encode('utf-8')
103                                container.manage_addZMSCustom('ZMSTextarea',{ \
104                                                                                                                'id_prefix':id_prefix, \
105                                                                                                                'text':text, \
106                                                                                                                'format':'plain_html', \
107                                                                                                        },request)
108                        elif file['content_type'].startswith('image/'):
109                                request.set('generate_preview_imghires_%s'%request['lang'],True)
110                                container.manage_addZMSCustom('ZMSGraphic',{ \
111                                                                                                                'id_prefix':id_prefix, \
112                                                                                                                'imghires':file, \
113                                                                                                        },request)
114                        else:
115                                container.manage_addZMSCustom('ZMSFile',{ \
116                                                                                                                'id_prefix':id_prefix, \
117                                                                                                                'title':file['filename'], \
118                                                                                                                'titlealt':file['filename'], \
119                                                                                                                'file':file, \
120                                                                                                                'align':'LEFT', \
121                                                                                                        },request)
122                        c += 1
123        message.append(context.getZMILangStr('MSG_IMPORTED')%temp_filename+' [%i/%i]'%(c,len(files)))
124        request.response.redirect(context.url_append_params('%s/manage_main'%context.absolute_url(),{'lang':request['lang'],'manage_tabs_message':'<br/>'.join(message)}))
125
126# --- Display initial import form.
127# ---------------------------------
128else:
129        print '<tr valign="middle">'
130        print '<td class="form-label"><img src="%smime_type.application_zip.gif" alt="" border="0" align="absmiddle"/> %s</td>'%(context.MISC_ZMS,context.getZMILangStr('ATTR_FILE'))
131        print '<td class="form-element"><input class="form-element" name="file" type="file" size="25"></td>'
132        print '</tr>'
133        print '<tr valign="middle">'
134        print '<td>&nbsp;</td>'
135        print '<td>'
136        print '<input class="ui-button ui-state-default ui-corner-all" name="btn" type="submit" value="%s">'%context.getZMILangStr('BTN_IMPORT')
137        print '<input class="ui-button ui-state-default ui-corner-all" name="btn" type="submit" value="%s">'%context.getZMILangStr('BTN_CANCEL')
138        print '</td>'
139        print '</tr>'
140
141# ---------------------------------
142
143print context.zmi_form_section_end(context,request)
144print '</form>'
145print context.manage_page_footer(context,request)
146
147return printed
148]]>
149  </item>
150  <item key="description"/>
151  <item key="exec" type="int">0</item>
152  <item key="id"><![CDATA[manage_addMultiUpload]]></item>
153  <item key="meta_type"><![CDATA[Script (Python)]]></item>
154  <item key="meta_types" type="list">
155    <list>
156      <item><![CDATA[ZMSDocument]]></item>
157      <item><![CDATA[ZMSFolder]]></item>
158      <item><![CDATA[ZMS]]></item>
159    </list>
160  </item>
161  <item key="name"><![CDATA[Multi-Upload...]]></item>
162  <item key="roles" type="list">
163    <list>
164      <item><![CDATA[ZMSAdministrator]]></item>
165      <item><![CDATA[ZMSAuthor]]></item>
166      <item><![CDATA[ZMSEditor]]></item>
167    </list>
168  </item>
169</dictionary>
Note: See TracBrowser for help on using the repository browser.