MiniDigger/Hangar

View on GitHub
ore/app/views/projects/discuss.scala.html

Summary

Maintainability
Test Coverage
@*
Discussion page within Project overview.
*@
@import controllers.sugar.Requests.OreRequest
@import models.viewhelper.{ProjectData, ScopedProjectData}
@import ore.OreConfig
@import views.html.utils

@import views.html.helper.CSPNonce
@import ore.markdown.MarkdownRenderer
@import ore.models.project.io.ProjectFiles

@(p: ProjectData, sp: ScopedProjectData, forumsAvailable: Boolean)(implicit messages: Messages, request: OreRequest[_],
        flash: Flash, config: OreConfig, renderer: MarkdownRenderer, projectFiles: ProjectFiles)

@projectRoutes = @{controllers.project.routes.Projects}

@scripts = {
    <script @CSPNonce.attr>
            DiscourseEmbed = {
                discourseUrl: '@config.forums.baseUrl/',
                topicId: @p.project.topicId
            };
    </script>
    <script type="text/javascript" src="@routes.Assets.versioned("javascripts/projectDiscuss.js")"></script>
    <script @CSPNonce.attr>$(function() { $('.btn-edit').click(); });</script>
}

@projects.view(p, sp, "#discussion", additionalScripts = scripts) {

    <div id='discourse-comments'></div>
    <div class="row">
    @if(request.headerData.currentUser.isDefined) {
        <div class="col-md-8">
            <div class="reply-box">
                @if(forumsAvailable) {
                    @if(sp.canPostAsOwnerOrga) {
                        <div class="pull-right push-down">
                            <i class="minor">@messages("project.discuss.postAs")</i>
                            <select name="poster" form="form-editor-save">
                                <option selected>@request.headerData.currentUser.get.name</option>
                                <option>@p.projectOwner.name</option>
                            </select>
                        </div>
                        <div class="clearfix"></div>
                    }

                    <div class="push-down">
                    @utils.editor(
                        saveCall = projectRoutes.postDiscussionReply(p.project.ownerName, p.project.slug),
                        cancellable = false,
                        enabled = true
                    )
                    </div>
                } else {
                    <i class="minor">@messages("general.forumsUnavailable")</i>
                }
            </div>
            <div class="reply-controls">
                <a class="forums" target="_blank" rel="noopener"
                href="@config.forums.baseUrl/t/@p.project.topicId">
                @messages("general.viewOnForums")
                </a>
            </div>
        </div>
    } else {
        <div class="pull-right">
            <a href="@routes.Users.logIn(None, None, Some(request.path))">@messages("general.login")</a>
            <span class="minor"> @messages("general.toReply")</span>
        </div>
    }
    </div>

}