Backport #13036 #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 Co-authored-by: techknowlogick <techknowlogick@gitea.io>tags/v1.12.6
<div id="comment-{{.Issue.ID}}" class="raw-content hide">{{.Issue.Content}}</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> | <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}} | {{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> | </div> | ||||
{{end}} | {{end}} | ||||
</div> | </div> |
<div class="twelve wide column" style="padding: 6px;"> | <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}}'> | <a target="_blank" rel="noopener noreferrer" href="{{.DownloadURL}}" title='{{$.ctx.i18n.Tr "repo.issues.attachment.open_tab" .Name}}'> | ||||
{{if FilenameIsImage .Name}} | {{if FilenameIsImage .Name}} | ||||
<span class="ui image">{{svg "octicon-file-media" 16}}</span> | |||||
<span class="ui image">{{svg "octicon-file" 16}}</span> | |||||
{{else}} | {{else}} | ||||
<span class="ui image">{{svg "octicon-desktop-download" 16}}</span> | <span class="ui image">{{svg "octicon-desktop-download" 16}}</span> | ||||
{{end}} | {{end}} |
<div id="comment-{{.ID}}" class="raw-content hide">{{.Content}}</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> | <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}} | {{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> | </div> | ||||
{{end}} | {{end}} | ||||
</div> | </div> |
$editContentZone.find('.cancel.button').on('click', () => { | $editContentZone.find('.cancel.button').on('click', () => { | ||||
$renderContent.show(); | $renderContent.show(); | ||||
$editContentZone.hide(); | $editContentZone.hide(); | ||||
dz.emit('reload'); | |||||
if (dz) { | |||||
dz.emit('reload'); | |||||
} | |||||
}); | }); | ||||
$editContentZone.find('.save.button').on('click', () => { | $editContentZone.find('.save.button').on('click', () => { | ||||
$renderContent.show(); | $renderContent.show(); | ||||
context: $editContentZone.data('context'), | context: $editContentZone.data('context'), | ||||
files: $attachments | files: $attachments | ||||
}, (data) => { | }, (data) => { | ||||
if (data.length === 0) { | |||||
if (data.length === 0 || data.content.length === 0) { | |||||
$renderContent.html($('#no-content').html()); | $renderContent.html($('#no-content').html()); | ||||
} else { | } else { | ||||
$renderContent.html(data.content); | $renderContent.html(data.content); | ||||
highlight(this); | highlight(this); | ||||
}); | }); | ||||
} | } | ||||
const $content = $segment.parent(); | |||||
if (!$content.find('.ui.small.images').length) { | |||||
const $content = $segment; | |||||
if (!$content.find('.dropzone-attachments').length) { | |||||
if (data.attachments !== '') { | 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 === '') { | } else if (data.attachments === '') { | ||||
$content.find('.ui.small.images').parent().remove(); | |||||
$content.find('.dropzone-attachments').remove(); | |||||
} else { | } 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'); | |||||
}); | }); | ||||
}); | }); | ||||
} else { | } else { |