@import de.smederee.hub.Account @import de.smederee.tickets.MilestoneForm._ @import de.smederee.tickets._ @import de.smederee.tickets.forms._ @import de.smederee.tickets.forms.types._ @import de.smederee.tickets.views.html.forms.renderFormErrors @import de.smederee.tickets.views.html.format._ @import de.smederee.tickets.views.html.showProjectMenu @(baseUri: Uri = Uri(path = Uri.Path.Root), lang: LanguageCode = LanguageCode("en") )(action: Uri, csrf: Option[CsrfToken] = None, linkToHubService: Uri, milestone: Milestone, renderedMilestoneDescription: Option[String], projectBaseUri: Uri, tickets: List[Ticket], title: Option[String] = None, user: Option[Account], project: Project ) @main(linkToHubService, lang)()(csrf, title, user) { @defining(lang.toLocale) { implicit locale =>

~@project.owner.name/@project.name

@showProjectMenu(baseUri, linkToHubService)(projectBaseUri.addSegment("milestones").some, projectBaseUri, user, project)
@Messages("project.milestone.title", milestone.title)
@if(user.nonEmpty) {
@if(milestone.closed) {
@csrfToken(csrf)
} else {
@csrfToken(csrf)
} @Messages("project.milestone.edit.link")
} else {} @milestone.title
@Html(renderedMilestoneDescription)
@if(tickets.nonEmpty) { @defining(tickets.filter(_.status =!= TicketStatus.Resolved).size) { openTickets => @Messages("project.milestone.status.tickets", (tickets.size - openTickets), tickets.size) } } else {}
@Messages("milestone.due-date")
@for(date <- milestone.dueDate){@formatDate(date)}

@Messages("project.tickets.list.title", tickets.size)

@if(tickets.size === 0) {
@Messages("project.tickets.list.empty")
} else { @for(ticket <- tickets) {
@ticket.number
@for(content <- ticket.content) { @if(content.toString.length < 180) { @content } else { @content.toString.take(176)) ...} }
@ticket.status
@ticket.resolution
@for(submitter <- ticket.submitter){@submitter.name}
@formatDateTime(ticket.updatedAt)
} }
} }