diff options
-rw-r--r-- | routers/repo/issue.go | 7 | ||||
-rw-r--r-- | templates/repo/issue/view_content.tmpl | 11 | ||||
-rw-r--r-- | templates/repo/issue/view_content/attachments.tmpl | 55 | ||||
-rw-r--r-- | templates/repo/issue/view_content/comments.tmpl | 11 | ||||
-rw-r--r-- | web_src/js/index.js | 7 | ||||
-rw-r--r-- | web_src/less/_repository.less | 46 |
6 files changed, 56 insertions, 81 deletions
diff --git a/routers/repo/issue.go b/routers/repo/issue.go index 6ebc5d6ecb..e350f74de9 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -1649,7 +1649,7 @@ func UpdateIssueContent(ctx *context.Context) { ctx.JSON(200, map[string]interface{}{ "content": string(markdown.Render([]byte(issue.Content), ctx.Query("context"), ctx.Repo.Repository.ComposeMetas())), - "attachments": attachmentsHTML(ctx, issue.Attachments), + "attachments": attachmentsHTML(ctx, issue.Attachments, issue.Content), }) } @@ -2065,7 +2065,7 @@ func UpdateCommentContent(ctx *context.Context) { ctx.JSON(200, map[string]interface{}{ "content": string(markdown.Render([]byte(comment.Content), ctx.Query("context"), ctx.Repo.Repository.ComposeMetas())), - "attachments": attachmentsHTML(ctx, comment.Attachments), + "attachments": attachmentsHTML(ctx, comment.Attachments, comment.Content), }) } @@ -2399,10 +2399,11 @@ func updateAttachments(item interface{}, files []string) error { return err } -func attachmentsHTML(ctx *context.Context, attachments []*models.Attachment) string { +func attachmentsHTML(ctx *context.Context, attachments []*models.Attachment, content string) string { attachHTML, err := ctx.HTMLString(string(tplAttachment), map[string]interface{}{ "ctx": ctx.Data, "Attachments": attachments, + "Content": content, }) if err != nil { ctx.ServerError("attachmentsHTML.HTMLString", err) diff --git a/templates/repo/issue/view_content.tmpl b/templates/repo/issue/view_content.tmpl index 355ba0ea29..37628a74e8 100644 --- a/templates/repo/issue/view_content.tmpl +++ b/templates/repo/issue/view_content.tmpl @@ -66,14 +66,9 @@ </div> <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="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}} + {{if .Issue.Attachments}} + {{template "repo/issue/view_content/attachments" Dict "ctx" $ "Attachments" .Issue.Attachments "Content" .Issue.RenderedContent}} + {{end}} </div> {{$reactions := .Issue.Reactions.GroupByType}} {{if $reactions}} diff --git a/templates/repo/issue/view_content/attachments.tmpl b/templates/repo/issue/view_content/attachments.tmpl index d76c0bbfa2..16d77847d0 100644 --- a/templates/repo/issue/view_content/attachments.tmpl +++ b/templates/repo/issue/view_content/attachments.tmpl @@ -1,15 +1,42 @@ -{{- range .Attachments -}} -<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"}}</span> - {{else}} - <span class="ui image">{{svg "octicon-desktop-download"}}</span> - {{end}} - <span><strong>{{.Name}}</strong></span> - </a> +<div class="dropzone-attachments"> + {{if .Attachments}} + <div class="ui clearing divider"></div> + {{end}} + <div class="ui middle aligned padded grid"> + {{$hasThumbnails := false}} + {{- range .Attachments -}} + <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}} + {{if not (containGeneric $.Content .UUID)}} + {{$hasThumbnails = true}} + {{end}} + <span class="ui image">{{svg "octicon-file"}}</span> + {{else}} + <span class="ui image">{{svg "octicon-desktop-download"}}</span> + {{end}} + <span><strong>{{.Name}}</strong></span> + </a> + </div> + <div class="four wide column" style="padding: 0px;"> + <span class="ui text grey right">{{.Size | FileSize}}</span> + </div> + {{end -}} + </div> + + {{if $hasThumbnails}} + <div class="ui clearing divider"></div> + <div class="ui small images thumbnails"> + {{- range .Attachments -}} + {{if FilenameIsImage .Name}} + {{if not (containGeneric $.Content .UUID)}} + <a target="_blank" rel="noopener noreferrer" href="{{.DownloadURL}}"> + <img class="ui image" src="{{.DownloadURL}}" title='{{$.ctx.i18n.Tr "repo.issues.attachment.open_tab" .Name}}'> + </a> + {{end}} + {{end}} + {{end -}} + </div> + {{end}} + </div> -<div class="four wide column" style="padding: 0px;"> - <span class="ui text grey right">{{.Size | FileSize}}</span> -</div> -{{end -}} diff --git a/templates/repo/issue/view_content/comments.tmpl b/templates/repo/issue/view_content/comments.tmpl index 698e4698d0..2c413b3c46 100644 --- a/templates/repo/issue/view_content/comments.tmpl +++ b/templates/repo/issue/view_content/comments.tmpl @@ -72,14 +72,9 @@ </div> <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="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}} + {{if .Attachments}} + {{template "repo/issue/view_content/attachments" Dict "ctx" $ "Attachments" .Attachments "Content" .RenderedContent}} + {{end}} </div> {{$reactions := .Reactions.GroupByType}} {{if $reactions}} diff --git a/web_src/js/index.js b/web_src/js/index.js index 55cf08cb61..d4928a01a3 100644 --- a/web_src/js/index.js +++ b/web_src/js/index.js @@ -1048,17 +1048,14 @@ async function initRepository() { if (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); + $content.find('.dropzone-attachments').replaceWith(data.attachments); } } else if (data.attachments === '') { $content.find('.dropzone-attachments').remove(); } else { - $content.find('.dropzone-attachments .grid').html(data.attachments); + $content.find('.dropzone-attachments').replaceWith(data.attachments); } if (dz) { dz.emit('submit'); diff --git a/web_src/less/_repository.less b/web_src/less/_repository.less index 8876dcdcb0..b35718c29d 100644 --- a/web_src/less/_repository.less +++ b/web_src/less/_repository.less @@ -1016,50 +1016,10 @@ font-style: italic; } - > .bottom.segment { - background: var(--color-box-body); - - .ui.images::after { - clear: both; - content: ' '; - display: block; - } - - a { - display: block; - float: left; - margin: 5px; - padding: 5px; - height: 150px; - border: solid 1px var(--color-secondary); - border-radius: 3px; - max-width: 150px; - background-color: var(--color-body); - - &::before { - content: ' '; - display: inline-block; - height: 100%; - vertical-align: middle; - } - } - - .ui.image { - max-height: 100%; - width: auto; - margin: 0; - vertical-align: middle; - } - - span.ui.image { - font-size: 128px; - color: var(--color-text); - } - - span.ui.image:hover { - color: var(--color-text); - } + .dropzone-attachments .thumbnails .ui.image { + max-height: 150px; } + } .ui.form { |