MiniDigger/Hangar

View on GitHub
ore/app/views/projects/admin/notes.scala.html

Summary

Maintainability
Test Coverage
@import java.sql.Timestamp

@import controllers.sugar.Requests.OreRequest
@import ore.models.project.{Note, Project}
@import ore.models.user.User
@import ore.OreConfig
@import util.StringFormatterUtils._
@import views.html.helper.CSPNonce
@import ore.markdown.MarkdownRenderer
@import util.syntax._

@import java.time.Instant
@(project: Project, notes: Seq[(Note, Option[User])])(implicit messages: Messages, request: OreRequest[_], config: OreConfig, flash: Flash, renderer: MarkdownRenderer)


@projectRoutes = @{controllers.project.routes.Projects}
@scripts = {
    <script @CSPNonce.attr type="text/javascript" src="@routes.Assets.versioned("javascripts/notes.js")"></script>
    <script @CSPNonce.attr>resourcePath = '@project.ownerName/@project.slug'</script>
}

@layout.base(messages("notes"), scripts) {
    <div class="row">
        <div class="col-md-12  header-flags">
            <div class="clearfix">
                <h1 class="pull-left">@messages("notes") for <a href="@projectRoutes.show(project.ownerName, project.slug)">@project.ownerName/@project.slug</a></h1>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-md-12">
            <div class="input-group" style="width: 100%;
                margin-top: 1em;">
                <textarea type="text" class="form-control textarea-addmessage" placeholder="Message"></textarea>
                <div class="input-group-addon btn btn-note-addmessage-submit btn-primary"><i class="fas fa-clipboard"></i> @messages("notes.addmessage")</div>
            </div>
        </div>
    </div>
    <div class="row version-description">
        <div class="col-md-12">
            <h2>@messages("notes")</h2>
        </div>
        @if(notes.isEmpty) {
            <div class="col-md-12">
                <div class="alert-notes alert alert-info" role="alert">
                    <i class="fas fa-info-circle"></i>
                    This project does not have notes
                </div>
            </div>
        }

        <div class="col-md-12">
            <table class="table table-condensed setting-no-border table-notes-log">
                <tbody>
                @notes.map { case (note, user) =>
                <tr>
                    <td class="note-fixed-with">@prettifyDateAndTime(Instant.ofEpochMilli(note.time))</td>
                    <td class="note-fixed-with"><strong>@user.map(_.name).getOrElse("Unknown")</strong></td>
                    <td>@note.render</td>
                </tr>
                }
                </tbody>
            </table>
        </div>
    </div>
}