@(release: gitbucket.core.model.Release,
assets: List[gitbucket.core.model.ReleaseAsset],
hasWritePermission: Boolean,
repository: gitbucket.core.service.RepositoryService.RepositoryInfo)(implicit context: gitbucket.core.controller.Context)
@import gitbucket.core.view.helpers
@gitbucket.core.html.main(s"${release.name} - Release ${release.releaseId} - ${repository.owner}/${repository.name}", Some(repository)){
@gitbucket.core.html.menu("releases", repository){
<div class="row">
<div class="col-md-1">
<div><a href="@helpers.url(repository)/tree/@release.tag"><i class="octicon octicon-tag"></i>@release.tag</a></div>
</div>
<div class="col-md-11" style="border-left: 1px solid #eee">
<div>
<div class="show-title pull-right">
@if(hasWritePermission){
<a class="btn btn-default" href="#" id="edit">Edit title</a>
<a class="btn btn-danger" href="#" id="delete-release">Delete</a>
}
</div>
<div class="edit-title pull-right" style="display: none;">
<a class="btn btn-success" href="#" id="update">Save</a> <a class="btn btn-default" href="#" id="cancel">Cancel</a>
</div>
<h1 class="body-title">
<span class="show-title">
<span id="show-title">@release.name</span>
</span>
<span class="edit-title" style="display: none;">
<span id="error-edit-title" class="error"></span>
<input type="text" class="form-control" style="width: 700px;" id="edit-title" value="@release.name"/>
</span>
</h1>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<span class="muted">
@helpers.avatar(release.author, 20)
@helpers.user(release.author, styleClass="username strong") released this @gitbucket.core.helper.html.datetimeago(release.registeredDate)
</span>
<span class="pull-right">
@if(hasWritePermission){
<a href="#"><i class="octicon octicon-pencil" aria-label="Edit" id="edit-notes"></i></a>
}
</span>
</div>
<div class="panel-body markdown-body" id="release-note">
@helpers.markdown(
markdown = release.content getOrElse "No description provided.",
repository = repository,
enableWikiLink = false,
enableRefsLink = true,
enableLineBreaks = true,
enableTaskList = true,
hasWritePermission = hasWritePermission
)
</div>
<div class="panel-body">
<h2>Downloads</h2>
@if(hasWritePermission){
<div style="border: 3px dashed #ccc; background-color: #eee" >
<div id="drop" class="clickable">Attach release files by dragging & dropping, or selecting them.</div>
</div>
}
<ul style="list-style: none;" id="attachedFiles">
@assets.map{ asset =>
<li>
<i class="octicon octicon-file"></i>
<a href="@helpers.url(repository)/releases/@release.releaseId/assets/@asset.fileName">@asset.label</a>
<span class="label label-default">@helpers.readableSize(Some(asset.size))</span>
</li>
}
</ul>
<ul style="list-style: none;">
<li><a href="@helpers.url(repository)/archive/@{helpers.encodeRefName(release.tag)}.zip"><i class="octicon octicon-file-zip"></i>ZIP</a></li>
<li><a href="@helpers.url(repository)/archive/@{helpers.encodeRefName(release.tag)}.tar.gz"><i class="octicon octicon-file-zip"></i>TAR.GZ</a></li>
</ul>
</div>
</div>
</div>
</div>
<script>
$(function(){
$('#edit').click(function(){
$('.edit-title').show();
$('.show-title').hide();
return false;
});
$('#update').click(function(){
$(this).attr('disabled', 'disabled');
$.ajax({
url: '@helpers.url(repository)/releases/edit_title/@release.releaseId',
type: 'POST',
data: {
title : $('#edit-title').val()
}
}).done(function(data){
$('#show-title').empty().text(data.title);
$('#cancel').click();
$(this).removeAttr('disabled');
}).fail(function(req){
$(this).removeAttr('disabled');
$('#error-edit-title').text($.parseJSON(req.responseText).title);
});
return false;
});
$('#cancel').click(function(){
$('.edit-title').hide();
$('.show-title').show();
return false;
});
$('#edit-notes').click(function(){
var id = @release.releaseId;
var url = '@helpers.url(repository)/releases/_data/' + id;
var $content = $('#release-note');
$.get(url,
{
dataType : 'html'
},
function(data){
$content.empty().html(data);
});
return false;
});
$('#delete-release').click(function(){
if(confirm('Are you sure you want to delete this?')) {
var id = $(this).closest('a').data('comment-id');
$.post('@helpers.url(repository)/issue_comments/delete/' + id,
function(data){
if(data > 0) {
$('#comment-' + id).prev('div.issue-avatar-image').remove();
$('#comment-' + id).remove();
}
});
}
return false;
});
$("#drop").dropzone({
url: '@context.path/upload/release/@repository.owner/@repository.name/@release.releaseId',
previewTemplate: "<div class=\"dz-preview\">\n <div class=\"dz-progress\"><span class=\"dz-upload\" data-dz-uploadprogress>Uploading your files...</span></div>\n <div class=\"dz-error-message\"><span data-dz-errormessage></span></div>\n</div>",
success: function(file, id) {
var attach = '<li><a href="@context.baseUrl/@repository.owner/@repository.name/_release/@release.releaseId/' + id + '">'
+ '<i class="octicon octicon-file"></i>' + file.name + '</a></li>';
$('#attachedFiles').append(attach);
}
});
});
</script>
}
}