MiniDigger/Hangar

View on GitHub
ore/app/views/projects/versions/list.scala.html

Summary

Maintainability
Test Coverage
@*
Versions page within Project overview.
*@
@import controllers.sugar.Requests.OreRequest
@import ore.models.project.Channel
@import models.viewhelper.{ProjectData, ScopedProjectData}
@import ore.OreConfig
@import views.html.helper.CSPNonce
@import ore.permission.Permission
@import ore.markdown.MarkdownRenderer
@import ore.models.project.io.ProjectFiles
@(p: ProjectData,
        sp: ScopedProjectData,
        channels: Seq[Channel])(implicit messages: Messages, request: OreRequest[_], flash: Flash, config: OreConfig, renderer: MarkdownRenderer, projectFiles: ProjectFiles)

@projectRoutes = @{ controllers.project.routes.Projects }
@versionRoutes = @{ controllers.project.routes.Versions }
@channelRoutes = @{ controllers.project.routes.Channels }

@scripts = {
    <script type="text/javascript" src="@routes.Assets.versioned("javascripts/versionList.js")"></script>
    <script @CSPNonce.attr>
            PLUGIN_ID = '@p.project.pluginId';
            PROJECT_OWNER = '@p.project.ownerName';
            PROJECT_SLUG = '@p.project.slug';
            TEXT_NOT_APPROVED = '@messages("version.download.confirm.reviewedChannel")';
            TEXT_PARTIALLY_APPROVED = '@messages("version.download.confirmPartial.reviewedChannel")';
            TEXT_NOT_APPROVED_CHANNEL = '@messages("version.download.confirm.nonReviewedChannel")';
            SHOW_HIDDEN = @request.headerData.globalPerm(Permission.SeeHidden);
    </script>
}

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

    <div class="row">
        <div class="col-md-9">
            <div class="panel panel-default version-panel">

                <div class="panel-heading">
                    <h4 class="panel-title pull-left">@messages("project.versions")</h4>
                    @if(sp.perms(Permission.CreateVersion)) {
                        <a href="@versionRoutes.showCreator(p.project.ownerName, p.project.slug)" class="btn yellow">
                        @messages("project.version.new")
                        </a>
                    }
                </div>

                    <!-- Version table -->
                <div class="loading">
                    <i class="fas fa-spinner fa-spin"></i>
                </div>

                <table class="version-table table">
                    <tbody></tbody>
                </table>

                <div class="panel-pagination">
                    <ul class="pagination">
                    </ul>
                </div>
            </div>
        </div>

        <div class="col-md-3">
            <div class="panel panel-default channels">
                <div class="panel-heading">
                    <h3 class="panel-title pull-left">Channels</h3>
                    <input type="checkbox" class="pull-right channels-all" { checked } />
                </div>

                    <!-- Channel list -->
                <ul class="list-group list-channel">
                    @channels.sorted.map { channel =>
                        <li class="list-group-item">
                            <span class="channel" style="background-color: @channel.color.hex">@channel.name</span>
                            <input type="checkbox" class="pull-right"/>
                        </li>
                    }

                    @if(sp.perms(Permission.EditChannel)) {
                        <li class="list-group-item text-right">
                            <a class="btn yellow btn-xs" href="@channelRoutes.showList(p.project.ownerName, p.project.slug)">
                                Edit
                            </a>
                        </li>
                    }
                </ul>
            </div>
            @users.memberList(
                j = p,
                perms = sp.permissions,
                settingsCall = projectRoutes.showSettings(p.project.ownerName, p.project.slug)
            )
        </div>
    </div>

}