Changes for page Attachments
Last modified by Ludovic Dubost on 2024/07/22 15:50
From version 10.1
edited by Ludovic Dubost
on 2019/11/21 10:03
on 2019/11/21 10:03
Change comment:
Install extension [org.xwiki.platform:xwiki-platform-attachment-ui/11.9]
To version 5.1
edited by Ludovic Dubost
on 2017/03/08 18:02
on 2017/03/08 18:02
Change comment:
Install extension [org.xwiki.platform:xwiki-platform-attachment-ui-9.1.1]
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (6 modified, 0 added, 1 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,12 +1,9 @@ 1 1 {{velocity output="false"}} 2 -#set ($translationPrefix = 'xe.attachmentSelector') 3 - 4 4 #if ($request.xaction == 'postUpload') 5 5 #set ($targetDocument = $xwiki.getDocument($request.get('docname'))) 6 6 #set ($targetAttachDocument = $xwiki.getDocument($request.get('targetdocname'))) 7 7 8 8 #set ($fieldname = $request.get('fieldname')) 9 - #set ($comment = $services.localization.render("${translationPrefix}.postUpload.comment", [$fieldname])) 10 10 #set ($docAction = $request.get('docAction')) 11 11 #set ($attachmentList = $targetAttachDocument.getAttachmentList()) 12 12 #if ($attachmentList && $attachmentList.size() > 0) ... ... @@ -15,7 +15,6 @@ 15 15 #end 16 16 $response.sendRedirect($targetDocument.getURL($docAction, $escapetool.url({ 17 17 $fieldname: $lastAttachment.filename, 18 - 'comment': $comment, 19 19 'form_token': $request.form_token 20 20 }))) 21 21 #stop ... ... @@ -26,6 +26,7 @@ 26 26 ## 27 27 ## Macros 28 28 ## 25 +#set ($translationPrefix = 'xe.attachmentSelector') 29 29 #set ($attachmentPickerDocName = 'XWiki.AttachmentSelector') 30 30 31 31 $xwiki.ssx.use($attachmentPickerDocName) ... ... @@ -105,19 +105,14 @@ 105 105 *# 106 106 #macro (attachmentPicker_displayAttachmentDetails $attachment $options) 107 107 #if ($attachment) 108 - ## Compute the attachment reference because there's no getter. 109 - #set ($attachmentReference = $services.model.createAttachmentReference($attachment.document.documentReference, 110 - $attachment.filename)) 111 - #set ($attachmentStringReference = $services.model.serialize($attachmentReference, 'default')) 112 112 #if ($attachment.isImage() && $options.displayImage) 113 - ## We add the version to the query string in order to invalidate the cache when an image attachment is replaced. 114 - #set ($queryString = $escapetool.url({'version': $attachment.version})) 115 - [[[[image:$attachmentStringReference||width=180 queryString="$queryString"]]>>attach:$attachmentStringReference]] 106 + #set ($attachmentDocument = $attachment.getDocument()) 107 +[[[[image:${attachmentDocument.fullName}@${attachment.filename}||width=180]]>>attach:${attachmentDocument.fullName}@${attachment.filename}||rel="lightbox[attachments]"]] 116 116 #else 117 117 * (% class="mime" %){{html wiki=false clean=false}}#mimetypeimg($attachment.getMimeType().toLowerCase() $attachment.getFilename().toLowerCase()){{/html}}(%%) (% class="filename" %)$attachment.getFilename()(% %) 118 118 * v$attachment.getVersion() (#dynamicsize($attachment.longSize)) 119 119 * $services.localization.render('core.viewers.attachments.author', [$!{xwiki.getUserName($attachment.author, false)}]) $services.localization.render('core.viewers.attachments.date', [$!{xwiki.formatDate($attachment.date, 'dd/MM/yyyy hh:mm')}]) 120 - * (% class="buttonwrapper" %)[[${services.localization.render("${translationPrefix}.actions.download")}>>attach:$attachment StringReference||title="$services.localization.render("${translationPrefix}.actions.download")" rel="__blank" class="button"]](%%)112 + * (% class="buttonwrapper" %)[[${services.localization.render("${translationPrefix}.actions.download")}>>attach:${attachment.getDocument()}@${attachment.filename}||title="$services.localization.render("${translationPrefix}.actions.download")" rel="__blank" class="button"]](%%) 121 121 #end 122 122 #end 123 123 #end ... ... @@ -165,7 +165,7 @@ 165 165 #if (${options.rawfilter} != '') 166 166 <span class="xHint">$escapetool.xml($services.localization.render("${translationPrefix}.upload.hint", [${options.rawfilter}]))</span> 167 167 #end 168 - <input type="file" name="filepath" id="attachfile" class=" noitems" title="$!{escapetool.xml($options.rawfilter)}"/>160 + <input type="file" name="filepath" id="attachfile" class="attachment" size="30" title="$!{escapetool.xml($options.rawfilter)}"/> 169 169 <input type="hidden" name="xredirect" value="$xwiki.getDocument($attachmentPickerDocName).getURL('get', "xaction=postUpload&docAction=$!{escapetool.url($options.get('docAction'))}&targetdocname=$!{escapetool.url($targetAttachDocument.fullName)}&docname=$!{escapetool.url($targetDocument.fullName)}&fieldname=$!{escapetool.url($options.get('classname'))}_$!{escapetool.url($options.get('object'))}_$!{escapetool.url($options.get('property'))}&form_token=$!{services.csrf.getToken()}")" /> 170 170 <input type="hidden" name="docname" value="$!{escapetool.xml($targetDocument.fullName)}" /> 171 171 <input type="hidden" name="classname" value="$!{escapetool.xml($options.get('classname'))}" /> ... ... @@ -173,27 +173,6 @@ 173 173 <input type="hidden" name="property" value="$!{escapetool.xml($options.get('property'))}" /> 174 174 <input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" /> 175 175 </div> 176 - #if ("$!currentValue" != '' && $currentValue != $options.defaultValue) 177 - <div> 178 - <label> 179 - <input type="checkbox" name="filename" value="$!escapetool.xml($currentValue)" 180 - />$services.localization.render('attachmentSelector.replace', 181 - ["<strong>$!escapetool.xml($currentValue)</strong>"]) 182 - </label> 183 - <span class="xHint">$escapetool.xml($services.localization.render('attachmentSelector.replace.hint'))</span> 184 - </div> 185 - #end 186 - #if ($xwiki.hasEditComment() && $options.versionSummary) 187 - <div> 188 - #if ($xwiki.isEditCommentFieldHidden()) 189 - <input type="hidden" name="comment" value="$!escapetool.xml($request.comment)" /> 190 - #else 191 - <label for="commentinput">$services.localization.render('core.comment')</label> 192 - <input type="text" name="comment" id="commentinput" value="$!escapetool.xml($request.comment)" 193 - title="$services.localization.render('core.comment.tooltip')" /> 194 - #end 195 - </div> 196 - #end 197 197 <div class="buttons"> 198 198 <span class="buttonwrapper"> 199 199 <input type="submit" name="action_upload" class="button " value='$services.localization.render("${translationPrefix}.upload.submit")' title='$services.localization.render("${translationPrefix}.upload.submit")'/> ... ... @@ -292,8 +292,7 @@ 292 292 'defaultValue' : "$!{request.defaultValue}", 293 293 'rawfilter': "$!{rawfilter}", 294 294 'filter': ${filter}, 295 - 'sortAttachmentsBy': ${sortAttachmentsBy}, 296 - 'versionSummary': $request.versionSummary.equals('true') 266 + 'sortAttachmentsBy': ${sortAttachmentsBy} 297 297 }) 298 298 $!targetDocument.use($targetDocument.getObject($options.classname, $options.object))## 299 299 #attachmentPicker_displayAttachmentGallery($targetDocument, $targetAttachDocument, $options)
- XWiki.JavaScriptExtension[0]
-
- Code
-
... ... @@ -40,7 +40,7 @@ 40 40 * and saves the underlying form (if any) so that any unsaved changes won't be lost. 41 41 */ 42 42 filterFormUpload : function() { 43 - this.gallery.select('.uploadAttachment input [type="file"]').each(function(fileInput) {43 + this.gallery.select('.uploadAttachment input.attachment').each(function(fileInput) { 44 44 fileInput.__allowedExtensions = fileInput.title.toLowerCase().replace(/\s*[,|; ]\s*/g, " ").strip(); 45 45 if (fileInput.__allowedExtensions != '') { 46 46 fileInput.__allowedExtensions = fileInput.__allowedExtensions.split(" "); ... ... @@ -52,7 +52,7 @@ 52 52 event.stop(); 53 53 var uploadForm = event.element(); 54 54 var hasErrors = false; 55 - uploadForm.select('input [type="file"]').each(function(fileInput) {55 + uploadForm.select('input.attachment').each(function(fileInput) { 56 56 if (fileInput.value == '') { 57 57 new XWiki.widgets.Notification("$services.localization.render('xe.attachmentSelector.upload.error.noFile')", 'error'); 58 58 hasErrors = true; ... ... @@ -68,7 +68,7 @@ 68 68 uploadForm.submit(); 69 69 } else { 70 70 // FIXME This fails in HTML5, will deal with it later: 71 - // this.property.down('input').value = uploadForm.down(' input[type="file"]').value;71 + // this.property.down('input').value = uploadForm.down('.attachment').value; 72 72 // uploadForm.xredirect.value = window.location.pathname; 73 73 document.observe('xwiki:document:saved', function() { 74 74 new XWiki.widgets.Notification("$services.localization.render('xe.attachmentSelector.upload.inProgress')", 'inprogress'); ... ... @@ -117,11 +117,6 @@ 117 117 if (this.gallery.down('.gallery_emptyChoice')) { 118 118 this.gallery.down('.gallery_emptyChoice').addClassName('current'); 119 119 } 120 - // Disable the replace feature because there's no selection. 121 - var fileNameInput = this.gallery.down('input[type="checkbox"][name="filename"]'); 122 - fileNameInput.disabled = true; 123 - // Empty the displayed selected file name. 124 - fileNameInput.up('label').down('strong').update(''); 125 125 if (!this.directSave) { 126 126 this.property.down('input').value = this.defaultValue; 127 127 }
- XWiki.StyleSheetExtension[0]
-
- Code
-
... ... @@ -153,29 +153,24 @@ 153 153 background-repeat: no-repeat; 154 154 padding-left: 16px; 155 155 } 156 -.gallery_upload .gallery_attachmentframe{157 - height: auto;156 +.gallery_upload form { 157 + height: ${imgSize}px; 158 158 } 159 -.gallery_upload _input {160 - margin-bottom:10px;159 +.gallery_upload .xHint { 160 + text-transform: none !important; 161 161 } 162 -.gallery_upload input[type="file"] { 163 - font-size: 86%; 162 +.gallery_upload input.attachment { 163 + font-size: 83.3%; 164 + margin: 0; /* Overrides viewers/attachments.css */ 165 + padding: 0; /* Overrides viewers/attachments.css */ 164 164 width: ${mathtool.sub($uploadBoxSize, $mathtool.mul($boxPadding, 2))}px; 165 165 } 166 166 .gallery_upload .buttonwrapper { 167 167 margin: 0; 168 168 } 169 -.gallery_upload .button, 170 -.gallery_upload label { 171 - font-size: 86%; 171 +.gallery_upload .button { 172 + font-size: .65em; 172 172 } 173 -.gallery_upload input[type="checkbox"] { 174 - vertical-align: text-bottom; 175 -} 176 -.gallery_upload label[for="commentinput"] { 177 - margin-top: 10px; 178 -} 179 179 180 180 /* ------------------------------------ */ 181 181 /* Buttons on top: */
- XWiki.WikiMacroClass[0]
-
- Macro code
-
... ... @@ -123,24 +123,7 @@ 123 123 ## 1. Edit the current page 124 124 ## 2. View the target attachment page. (can be the same page) 125 125 #macro (attachmentPicker_displayButton) 126 - #if ($hasEdit && $targetPermView) 127 - #set ($queryString = { 128 - 'docname': $doc.fullName, 129 - 'classname': $classname, 130 - 'property': $property, 131 - 'object': $object, 132 - 'savemode': $savemode, 133 - 'defaultValue': $defaultValue, 134 - 'filter': $filter, 135 - 'displayImage': $displayImage, 136 - 'versionSummary': $xcontext.macro.params.versionSummary.equals('true') 137 - }) 138 - #if ($hasTargetDoc) 139 - #set ($queryString.targetdocname = $targetdoc.fullName) 140 - #end 141 - (% class="buttonwrapper" %)[[$buttontext>>$xcontext.macro.doc.fullName||queryString="$escapetool.url($queryString)" 142 - class="attachment-picker-start button" title="$buttontext"]](%%)## 143 - #end 126 + #if ($hasEdit && $targetPermView)(% class="buttonwrapper" %)[[${buttontext}>>${xcontext.macro.doc.fullName}||queryString="#if ($hasTargetDoc)targetdocname=${escapetool.url($targetdoc.fullName)}&#{end}docname=${escapetool.url($doc.fullName)}&classname=${classname}&property=${property}&object=${object}&savemode=${savemode}&defaultValue=$escapetool.url($defaultValue)&filter=$!{filter}&displayImage=${displayImage}" class="attachment-picker-start button" title="${buttontext}"]](%%)#end 144 144 #end 145 145 {{/velocity}} 146 146 - Default category
-
... ... @@ -1,1 +1,0 @@ 1 -Development - Cached
-
... ... @@ -1,1 +1,0 @@ 1 -No - Asynchronous rendering
-
... ... @@ -1,1 +1,0 @@ 1 -No
- XWiki.WikiMacroParameterClass[0]
-
- Parameter type
-
... ... @@ -1,1 +1,0 @@ 1 -org.xwiki.model.reference.DocumentReference
- XWiki.WikiMacroParameterClass[10]
-
- Parameter type
-
... ... @@ -1,1 +1,0 @@ 1 -org.xwiki.model.reference.AttachmentReference
- XWiki.WikiMacroParameterClass[18]
-
- Parameter type
-
... ... @@ -1,1 +1,0 @@ 1 -org.xwiki.model.reference.DocumentReference
- XWiki.WikiMacroParameterClass[19]
-
- Parameter default value
-
... ... @@ -1,1 +1,0 @@ 1 -false - Parameter description
-
... ... @@ -1,1 +1,0 @@ 1 -Whether to allow the user to enter a version summary that will be recorded in the history. An automatic message is used when no version summary is provided or if the version summary input is not displayed. - Parameter mandatory
-
... ... @@ -1,1 +1,0 @@ 1 -No - Parameter name
-
... ... @@ -1,1 +1,0 @@ 1 -versionSummary