[Notice] Announcing the End of Demo Server [Read me]
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
@**
* Yobi, Project Hosting SW
*
* Copyright 2013 NAVER Corp.
* http://yobi.io
*
* @author Jihan Kim
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
**@
@(project:Project, menuType:utils.MenuType, menuCSS:String)
@import utils._
@import utils.TemplateHelper._
@import utils.AccessControl._
@import models.enumeration.ResourceType;
@isActiveMenu(m_type:MenuType) = @{
if (m_type == menuType) {"active"}
}
@getPullRequestURL(project:Project) = @{
if(project.isForkedFromOrigin){
routes.PullRequestApp.sentPullRequests(project.owner, project.name)
} else {
routes.PullRequestApp.pullRequests(project.owner, project.name)
}
}
@reviewCount = @{
CommentThread.countReviewsBy(project.id, null)
}
@countingBadge(counting:Integer) = @{
if(counting != null && counting > 0){
Html("<span class=\"project-menu-count\">" + counting + "</span>")
}
}
<div class="project-menu-outer">
<div class="project-menu-inner">
<ul class="project-menu-nav project-menu-gruop">
<li class="@isActiveMenu(MenuType.PROJECT_HOME)">
<a href="@routes.ProjectApp.project(project.owner, project.name)">
<span class="menu-name">@Messages("title.projectHome")</span><span class="short-menu">H</span>
</a>
</li>
@defining(project.menuSetting){ menuSetting =>
@if(menuSetting.code) {
@if(!project.isCodeAccessibleMemberOnly || project.hasMember(UserApp.currentUser())) {
<li class="@isActiveMenu(MenuType.CODE)">
<a href="@routes.CodeApp.codeBrowser(project.owner, project.name)">
<span class="menu-name">@Messages("menu.code")</span><span class="short-menu">C</span>
</a>
</li>
}
}
@if(menuSetting.issue) {
<li class="@isActiveMenu(MenuType.ISSUE)">
<a href="@routes.IssueApp.issues(project.owner, project.name, "open")">
<span class="menu-name">@Messages("menu.issue")</span><span class="short-menu">I</span> @countingBadge(Issue.countIssues(project.id, State.OPEN))
</a>
</li>
}
@if(menuSetting.pullRequest && project.vcs.equals("GIT")) {
@if(!project.isCodeAccessibleMemberOnly || project.hasMember(UserApp.currentUser())) {
<li class="@isActiveMenu(MenuType.PULL_REQUEST)">
<a href="@getPullRequestURL(project)">
<span class="menu-name">@Messages("menu.pullRequest")</span><span class="short-menu">P</span> @countingBadge(PullRequest.countOpenedPullRequests(project))
</a>
</li>
}
}
@if(menuSetting.review) {
@if(!project.isCodeAccessibleMemberOnly || project.hasMember(UserApp.currentUser())) {
<li class="@isActiveMenu(MenuType.PROJECT_REVIEW)">
<a href="@routes.ReviewThreadApp.reviewThreads(project.owner, project.name)">
<span class="menu-name">@Messages("menu.review")</span><span class="short-menu">
R</span> @countingBadge(reviewCount)
</a>
</li>
}
}
@if(menuSetting.milestone) {
<li class="@isActiveMenu(MenuType.MILESTONE)">
<a href="@routes.MilestoneApp.milestones(project.owner, project.name)">
<span class="menu-name">@Messages("milestone")</span><span class="short-menu">M</span>
</a>
</li>
}
@if(menuSetting.board) {
<li class="@isActiveMenu(MenuType.BOARD)">
<a href="@routes.BoardApp.posts(project.owner, project.name)">
<span class="menu-name">@Messages("menu.board")</span><span class="short-menu">B</span>
@if(Posting.countPostings(project) > 0){
<span class="project-menu-count">@Posting.countPostings(project)</span>
}
</a>
</li>
}
}
</ul>
@if(AccessControl.isAllowed(UserApp.currentUser(), project.asResource(), Operation.UPDATE)){
<div class="project-setting">
<ul class="project-menu-nav">
<li class="@isActiveMenu(MenuType.PROJECT_SETTING)">
<a href="@routes.ProjectApp.settingForm(project.owner, project.name)">
<i class="yobicon-cog"></i>
<span class="blind"><span class="menu-name">@Messages("menu.admin")</span></span>
@countingBadge(project.enrolledUsers.size)
</a>
<li>
</ul>
</div>
}
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
@defining(project.menuSetting) { menuSetting =>
var htKeyMap = {
"H": "@routes.ProjectApp.project(project.owner, project.name)"
@if(menuSetting.board) {
,"B": "@routes.BoardApp.posts(project.owner, project.name)"
}
@if(menuSetting.code) {
,"C": "@routes.CodeApp.codeBrowser(project.owner, project.name)"
}
@if(menuSetting.issue) {
,"I": "@routes.IssueApp.issues(project.owner, project.name,"open")"
}
@if(menuSetting.milestone) {
,"M": "@routes.MilestoneApp.milestones(project.owner, project.name)"
}
@if(menuSetting.pullRequest && project.vcs.equals("GIT")){
,"F": "@getPullRequestURL(project)"
}
@requestHeader.session.get("loginId") match {
case Some(role) if role.equals("manager") => { "Q": "@routes.ProjectApp.settingForm(project.owner, project.name)" }
case _ => { }
}
};
}
$yobi.loadModule("project.Global", {
"htKeyMap": htKeyMap,
"sRepoURL": "@CodeApp.getURLWithLoginId(project)"
});
});
</script>