Wiki source code of Office Importer Results

Last modified by Thomas Mortagne on 2025/05/08 13:08

Show last authors
1 {{velocity}}
2 #set ($displayDocExtra = false)
3 #if ($isguest)
4 #error($services.localization.render('xe.officeimporter.notallowed'))
5 #else
6 #########################
7 ## Validate Input File ##
8 #########################
9 #set ($mainDocRef = $services.wiki.currentWikiDescriptor.mainPageReference)
10 #set ($goBack = "[[$services.localization.render('xe.officeimporter.results.goback')" +
11 ">>path:$xwiki.getURL($mainDocRef, 'create', 'type=office')]]")
12 #set ($fileUpload = $xwiki.fileupload)
13 #set ($fileName = $fileUpload.getFileName("filePath"))
14 #if (!$fileName)
15 {{error}}$services.localization.render('xe.officeimporter.results.missingfile', [$goBack]){{/error}}
16 #else
17 #set ($discard = $fileUpload.loadFileList())
18 #foreach ($fileItem in $fileUpload.fileItems)
19 #if ($fileItem.fieldName == "filePath")
20 #set ($officeFileStream = $fileItem.inputStream)
21 #break
22 #end
23 #end
24 #end
25 ###########################
26 ## Validate Target ##
27 ###########################
28 #set ($target = $request.target)
29 #if ("$!target" != '')
30 #set ($targetDocumentReference = $services.model.resolveDocument($target))
31 #end
32 ##########################
33 ## Append Configuration ##
34 ##########################
35 #set ($appendContent = $request.overwriteContent != 'true')
36 #############################
37 ## Filtering Configuration ##
38 #############################
39 #set ($filterStyles = false)
40 #if ($request.filterStyles)
41 #set ($filterStyles = true)
42 #end
43 #############################
44 ## Splitting Configuration ##
45 #############################
46 #set ($splitDocument = $request.splitDocument == 'true')
47 #set ($headingLevels = ${request.getParameterValues('headingLevelsToSplit')|['1']})
48 #set ($terminalChildPages = $request.terminalChildPages == 'true')
49 ############
50 ## Import ##
51 ############
52 #if($fileName)
53 #set ($resultDocumentLink = "[[**$services.localization.render('xe.officeimporter.results.result')**" +
54 ">>doc:$services.model.serialize($targetDocumentReference)]]")
55 #set ($xdomOfficeDoc = $services.officeimporter.officeToXDOM($officeFileStream, $fileName, $targetDocumentReference,
56 $filterStyles))
57 #if ($xdomOfficeDoc)
58 #if (!$splitDocument)
59 #set ($result = $services.officeimporter.save($xdomOfficeDoc, $targetDocumentReference, $appendContent))
60 #if ($result)
61 {{info}}
62 $services.localization.render('xe.officeimporter.results.success', [$resultDocumentLink, $goBack])
63 {{/info}}
64 #else
65 {{error}}$services.rendering.escape($services.officeimporter.errorMessage, 'xwiki/2.1'){{/error}}
66 #end
67 #else
68 #set ($docsMap = $services.officeimporter.split($xdomOfficeDoc, $headingLevels, $request.childPagesNamingMethod,
69 $terminalChildPages, $targetDocumentReference))
70 #if ($docsMap)
71 #foreach ($entry in $docsMap.entrySet())
72 #set ($result = $services.officeimporter.save($entry.value, $entry.key.documentReference, $appendContent))
73 #if (!$result)
74 {{warning}}$services.rendering.escape($services.officeimporter.errorMessage, 'xwiki/2.1'){{/warning}}
75 #end
76 #end
77 {{info}}
78 $services.localization.render('xe.officeimporter.results.success', [$resultDocumentLink, $goBack])
79 {{/info}}
80 #else
81 {{error}}$services.officeimporter.errorMessage{{/error}}
82 #end
83 #end
84 #set ($discard = $xdomOfficeDoc.close())
85 #else
86 {{error}}$services.officeimporter.errorMessage{{/error}}
87 #end
88 #end
89 #end
90 {{/velocity}}