]> source.dussan.org Git - gitea.git/commitdiff
Fix attachments list in edit comment (#13036)
authorzeripath <art27@cantab.net>
Sat, 10 Oct 2020 23:49:59 +0000 (00:49 +0100)
committerGitHub <noreply@github.com>
Sat, 10 Oct 2020 23:49:59 +0000 (00:49 +0100)
#11141 broke the appearance of dropzone attachments when editting
comments causing poorly updating lists.

This PR fixes this.

Fix #12583

Signed-off-by: Andrew Thornton art27@cantab.net
modules/upload/upload.go
templates/repo/issue/view_content.tmpl
templates/repo/issue/view_content/attachments.tmpl
templates/repo/issue/view_content/comments.tmpl
templates/repo/upload.tmpl
web_src/js/index.js

index e020faca7ead4fc50ecba8a89ecbcc5a655283b3..97f0df054287f45162b90097a548513e91fd3156 100644 (file)
@@ -75,18 +75,25 @@ func AddUploadContext(ctx *context.Context, uploadType string) {
        if uploadType == "release" {
                ctx.Data["UploadUrl"] = ctx.Repo.RepoLink + "/releases/attachments"
                ctx.Data["UploadRemoveUrl"] = ctx.Repo.RepoLink + "/releases/attachments/remove"
+               ctx.Data["UploadLinkUrl"] = ctx.Repo.RepoLink + "/releases/attachments"
                ctx.Data["UploadAccepts"] = strings.Replace(setting.Repository.Release.AllowedTypes, "|", ",", -1)
                ctx.Data["UploadMaxFiles"] = setting.Attachment.MaxFiles
                ctx.Data["UploadMaxSize"] = setting.Attachment.MaxSize
        } else if uploadType == "comment" {
                ctx.Data["UploadUrl"] = ctx.Repo.RepoLink + "/issues/attachments"
                ctx.Data["UploadRemoveUrl"] = ctx.Repo.RepoLink + "/issues/attachments/remove"
+               if len(ctx.Params(":index")) > 0 {
+                       ctx.Data["UploadLinkUrl"] = ctx.Repo.RepoLink + "/issues/" + ctx.Params(":index") + "/attachments"
+               } else {
+                       ctx.Data["UploadLinkUrl"] = ctx.Repo.RepoLink + "/issues/attachments"
+               }
                ctx.Data["UploadAccepts"] = strings.Replace(setting.Attachment.AllowedTypes, "|", ",", -1)
                ctx.Data["UploadMaxFiles"] = setting.Attachment.MaxFiles
                ctx.Data["UploadMaxSize"] = setting.Attachment.MaxSize
        } else if uploadType == "repo" {
                ctx.Data["UploadUrl"] = ctx.Repo.RepoLink + "/upload-file"
                ctx.Data["UploadRemoveUrl"] = ctx.Repo.RepoLink + "/upload-remove"
+               ctx.Data["UploadLinkUrl"] = ctx.Repo.RepoLink + "/upload-file"
                ctx.Data["UploadAccepts"] = strings.Replace(setting.Repository.Upload.AllowedTypes, "|", ",", -1)
                ctx.Data["UploadMaxFiles"] = setting.Repository.Upload.MaxFiles
                ctx.Data["UploadMaxSize"] = setting.Repository.Upload.FileMaxSize
index a4ce0a7106077cdaeb523212ced70c7685426cc3..190f5117b852c301bf6de27393a616ecffe89327 100644 (file)
                                                <div id="comment-{{.Issue.ID}}" class="raw-content hide">{{.Issue.Content}}</div>
                                                <div class="edit-content-zone hide" data-write="issue-{{.Issue.ID}}-write" data-preview="issue-{{.Issue.ID}}-preview" data-update-url="{{$.RepoLink}}/issues/{{.Issue.Index}}/content" data-context="{{.RepoLink}}" data-attachment-url="{{$.RepoLink}}/issues/{{.Issue.Index}}/attachments" data-view-attachment-url="{{$.RepoLink}}/issues/{{.Issue.Index}}/view-attachments"></div>
                                        {{if .Issue.Attachments}}
-                                               <div class="ui clearing divider"></div>
-                                               <div class="ui middle aligned padded grid">
-                                                       {{template "repo/issue/view_content/attachments" Dict "ctx" $ "Attachments" .Issue.Attachments}}
+                                               <div class="dropzone-attachments">
+                                                       <div class="ui clearing divider"></div>
+                                                       <div class="ui middle aligned padded grid">
+                                                               {{template "repo/issue/view_content/attachments" Dict "ctx" $ "Attachments" .Issue.Attachments}}
+                                                       </div>
                                                </div>
                                        {{end}}
                                        </div>
index 1144b9a77aa179152d8f6b57652be51f89af620b..d76c0bbfa29570006b462c284f5b55e2edfef315 100644 (file)
@@ -2,7 +2,7 @@
 <div class="twelve wide column" style="padding: 6px;">
        <a target="_blank" rel="noopener noreferrer" href="{{.DownloadURL}}" title='{{$.ctx.i18n.Tr "repo.issues.attachment.open_tab" .Name}}'>
        {{if FilenameIsImage .Name}}
-               <span class="ui image">{{svg "octicon-file-media"}}</span>
+               <span class="ui image">{{svg "octicon-file"}}</span>
        {{else}}
                <span class="ui image">{{svg "octicon-desktop-download"}}</span>
        {{end}}
index a730bd5e8b6c8f7b3e3f035e47510a53780f7f0c..3b70a1071507f463a71b92e369d4b2f35a3fa35f 100644 (file)
                                        <div id="comment-{{.ID}}" class="raw-content hide">{{.Content}}</div>
                                        <div class="edit-content-zone hide" data-write="issuecomment-{{.ID}}-write" data-preview="issuecomment-{{.ID}}-preview" data-update-url="{{$.RepoLink}}/comments/{{.ID}}" data-context="{{$.RepoLink}}" data-attachment-url="{{$.RepoLink}}/comments/{{.ID}}/attachments"></div>
                                {{if .Attachments}}
-                                       <div class="ui clearing divider"></div>
-                                       <div class="ui middle aligned padded grid">
-                                               {{template "repo/issue/view_content/attachments" Dict "ctx" $ "Attachments" .Attachments}}
+                                       <div class="dropzone-attachments">
+                                               <div class="ui clearing divider"></div>
+                                               <div class="ui middle aligned padded grid">
+                                                       {{template "repo/issue/view_content/attachments" Dict "ctx" $ "Attachments" .Attachments}}
+                                               </div>
                                        </div>
                                {{end}}
                                </div>
index 93bc098daeda2536136fa615c1ff8e102ea125c1..9215da2b1967040418331a5ef6ab3e8381e5ab14 100644 (file)
@@ -1,6 +1,7 @@
 <div
        class="ui dropzone"
        id="dropzone"
+       data-link-url="{{.UploadLinkUrl}}"
        data-upload-url="{{.UploadUrl}}"
        data-remove-url="{{.UploadRemoveUrl}}"
        data-accepts="{{.UploadAccepts}}"
index e4f1575391678d5dbea3564487529954d9f7706d..e1fd24f37c3136f13f5aca2a74b7377932799763 100644 (file)
@@ -940,7 +940,7 @@ async function initRepository() {
                   dz.removeAllFiles(true);
                   $files.empty();
                   $.each(data, function () {
-                    const imgSrc = `${$dropzone.data('upload-url')}/${this.uuid}`;
+                    const imgSrc = `${$dropzone.data('link-url')}/${this.uuid}`;
                     dz.emit('addedfile', this);
                     dz.emit('thumbnail', this, imgSrc);
                     dz.emit('complete', this);
@@ -976,7 +976,9 @@ async function initRepository() {
         $editContentZone.find('.cancel.button').on('click', () => {
           $renderContent.show();
           $editContentZone.hide();
-          dz.emit('reload');
+          if (dz) {
+            dz.emit('reload');
+          }
         });
         $editContentZone.find('.save.button').on('click', () => {
           $renderContent.show();
@@ -990,26 +992,32 @@ async function initRepository() {
             context: $editContentZone.data('context'),
             files: $attachments
           }, (data) => {
-            if (data.length === 0) {
+            if (data.length === 0 || data.content.length === 0) {
               $renderContent.html($('#no-content').html());
             } else {
               $renderContent.html(data.content);
             }
-            const $content = $segment.parent();
-            if (!$content.find('.ui.small.images').length) {
+            const $content = $segment;
+            if (!$content.find('.dropzone-attachments').length) {
               if (data.attachments !== '') {
-                $content.append(
-                  '<div class="ui bottom attached segment"><div class="ui small images"></div></div>'
-                );
-                $content.find('.ui.small.images').html(data.attachments);
+                $content.append(`
+                  <div class="dropzone-attachments">
+                    <div class="ui clearing divider"></div>
+                    <div class="ui middle aligned padded grid">
+                    </div>
+                  </div>
+                `);
+                $content.find('.dropzone-attachments .grid').html(data.attachments);
               }
             } else if (data.attachments === '') {
-              $content.find('.ui.small.images').parent().remove();
+              $content.find('.dropzone-attachments').remove();
             } else {
-              $content.find('.ui.small.images').html(data.attachments);
+              $content.find('.dropzone-attachments .grid').html(data.attachments);
+            }
+            if (dz) {
+              dz.emit('submit');
+              dz.emit('reload');
             }
-            dz.emit('submit');
-            dz.emit('reload');
             renderMarkdownContent();
           });
         });