Implement unlinking labels from issues

This commit is contained in:
Ivan Habunek 2018-10-15 13:18:54 +02:00 committed by Drew DeVault
parent aba4f78345
commit 9d66081d9a
3 changed files with 57 additions and 4 deletions

View File

@ -165,3 +165,12 @@ select.form-control {
margin-bottom: 0;
}
}
.label-edit {
white-space: nowrap;
display: block;
form {
display: inline-block;
margin-bottom: .3rem;
}
}

View File

@ -346,3 +346,31 @@ def ticket_add_label(owner, name, ticket_id):
owner=tracker.owner.canonical_name(),
name=name,
ticket_id=ticket_id))
@ticket.route("/<owner>/<name>/<int:ticket_id>/remove_label/<int:label_id>", methods=["POST"])
@loginrequired
def ticket_remove_label(owner, name, ticket_id, label_id):
tracker, _ = get_tracker(owner, name)
if not tracker:
abort(404)
ticket, access = get_ticket(tracker, ticket_id)
if not ticket:
abort(404)
if not TicketAccess.edit in access:
abort(401)
label = Label.query.filter(Label.id==label_id).first()
if not label:
abort(404)
ticket_label = (TicketLabel.query
.filter(TicketLabel.label_id == label_id)
.filter(TicketLabel.ticket_id == ticket_id)).first()
if ticket_label:
db.session.delete(ticket_label)
db.session.commit()
return redirect(url_for("ticket.ticket_GET",
owner=tracker.owner.canonical_name(),
name=name,
ticket_id=ticket_id))

View File

@ -126,10 +126,26 @@
<dt class="col-md-3">Labels</dt>
<dd class="col-md-9">
{% for tl in ticket.labels %}
<div
class="label"
style="color: {{ tl.label.text_color }}; background-color: {{ tl.label.color }}"
>{{ tl.label.name }}
<div class="label-edit">
<div
class="label"
style="color: {{ tl.label.text_color }}; background-color: {{ tl.label.color }}"
>{{ tl.label.name }}
</div>
<form
method="POST"
action="{{
url_for(".ticket_remove_label",
owner=tracker.owner.canonical_name(),
name=tracker.name,
ticket_id=ticket.scoped_id,
label_id=tl.label.id,
)
}}">
<button type="submit" class="btn btn-outline-danger">
{{ icon("times") }}
</button>
</form>
</div>
{% endfor %}
</dd>