File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
2012-08-28
File name
Commit message
Commit date
2013-08-02
@(message: String, project: Project, histories: List[models.History] )
@import utils.JodaDateUtil._
@import utils.TemplateHelper._
@import utils.AccessControl._
@import models.enumeration._
@projectLogoImage = @{
defining(Attachment.findByContainer(project.asResource)) { files =>
if(files.size > 0){
"/files/" + files.head.id
} else {
routes.Assets.at("images/bg-default-project.jpg")
}
}
}
@userPageUrlOnHistory(history:History) = @{
if(history.getUserPageUrl() != null) {
history.getUserPageUrl()
} else {
"#"
}
}
@userAvatarUrlOnHistory(history:History) = @{
if(history.getUserAvatarUrl() != null){
history.getUserAvatarUrl()
} else {
routes.Assets.at("images/default-avatar-64.png")
}
}
@makeHistoryWho(history:History) = {<a href="@userPageUrlOnHistory(history)" class="actor">@history.getWho()</a>}
@makeHistoryHow(history:History) = {<a href="@history.getUrl()"><span class="whereis"><code>@history.getShortTitle()</code> @history.getHow()</span></a> }
@makeHistoryWhat(history:History) = {@Messages("project.history.type." + history.getWhat())}
@main(message, project, utils.MenuType.PROJECT_HOME) {
<div class="page">
@prjmenu(project, utils.MenuType.PROJECT_HOME, "")
<div class="row-fluid">
<div class="span9">
<ul id="homeTabs" class="nav nav-tabs">
<li class="active"><a href="#readme" data-toggle="tab">README</a></li>
@if(histories.size > 0) {
<li><a href="#recent" data-toggle="tab">@Messages("project.history.recent") (@if(histories.size > 0) {@agoString(ago(histories.get(0).getWhen))})</a></li>
}
</ul>
<div class="tab-content">
<div id="readme" class="tab-pane active">
<div class="bubble-wrap gray readme">
@if(project.readme == null){
<p class="default">
<span class="v"></span>
@if(project.vcs.equals("GIT")) {
<span>@Messages("project.readme")</span>
} else {
<span>@Messages("project.svn.readme")</span>
}
</p>
} else {
<div class="readme-wrap">
<header><i class="ico ico-readme-book"></i><strong>@project.getReadmeFileName</strong></header>
<div class="readme-body" markdown="true">@project.readme</div>
</div>
}
@markdown(project)
</div>
</div>
@if(histories.size > 0) {
<div id="recent" class="tab-pane">
<div class="content-container" style="margin:0;">
<div class="main-stream" style="width:100%;">
<ul class="activity-streams unstyled">
@for(history <- histories.iterator()) {
<li class="activity-stream">
<a href="@userPageUrlOnHistory(history)" class="avatar-wrap pull-left" style="margin-right:15px;">
<img src="@userAvatarUrlOnHistory(history)" width="32" height="32">
</a>
<div class="activity-desc">
<p class="header-text" style="margin-bottom:5px;">
@Html(Messages("project.history.item",
makeHistoryWho(history),
makeHistoryWhat(history),
makeHistoryHow(history)
))
</p>
<p class="others" style="padding-left:0;">
<span class="date" style="margin-left:0;">@agoString(ago(history.getWhen()))</span>
</p>
</div>
</li>
}
</ul>
</div>
</div>
</div>
}
</div>
</div>
<div class="span3">
<div class="bubble-wrap gray project-home" style="width:260px;">
<div class="inner logo" style="background-image:url('@projectLogoImage');">
@if(isAllowed(UserApp.currentUser(), project.labelsAsResource(), Operation.UPDATE)){
<div class="edit">
<a href="@routes.ProjectApp.settingForm(project.owner, project.name)"><i class="icon-edit icon-white"></i> @Messages("project.setting")</a>
</div>
}
</div>
@defining(Milestone.findOpenMilestones(project.id)){ milestones =>
@if(milestones.length > 0){
@views.html.milestone.partial_status(milestones(0), project)
}
}
<div class="inner project-info">
<header>
<h3>@Messages("project.info")</h3>
@if(isAllowed(UserApp.currentUser(), project.labelsAsResource(), Operation.UPDATE)){
<button type="button" class="nbtn small white" data-toggle="button" id="label-editor-toggle">@Messages("button.edit")</button>
}
</header>
<ul class="infos" id="label-board">
<!-- labels are added here by yobi.project.Home.js -->
</ul>
<script id="label-delete-button-template" type="text/x-jquery-tmpl">
<a href="javascript:void(0)">×</a>
</script>
<script id="label-template" type="text/x-jquery-tmpl">
<span class="label">${name}</span>
</script>
<script id="category-template" type="text/x-jquery-tmpl">
<li class="info" data-category="${category}">
<strong>${category} : </strong>
<span class="label-list"></span>
</li>
</script>
<script id="plus-button-template" type="text/x-jquery-tmpl">
<button class="nbtn small white">
<i class="ico ico-plus-blue"></i>
</button>
</script>
<script id="label-input-template" type="text/x-jquery-tmpl">
<input type="text" autocomplete="off" class="text" style="margin-bottom: 0px;">
</script>
<script id="label-submit-template" type="text/x-jquery-tmpl">
<button type="button" class="nbtn medium">@Messages("button.add")</button>
</script>
</div>
<div class="inner member-info">
<header>
<h3>@Messages("project.members")</h3>
@if(isAllowed(UserApp.currentUser(), project.labelsAsResource(), Operation.UPDATE)){
<a href="@routes.ProjectApp.members(project.owner, project.name)" class="nbtn small white" id="member-add-link">@Messages("button.add")</a>
}
</header>
<div class="member-wrap">
<ul class="project-members">
@for(member <- User.findUsersByProject(project.id)){
<li class="member">
<a href="@routes.UserApp.userInfo(member.loginId)" class="avatar-wrap img-rounded pull-left small">
<img src="@member.avatarUrl" alt="@member.loginId" width="24" height="24">
</a>
<a href="@routes.UserApp.userInfo(member.loginId)" class="name">
<strong>@member.name (@member.loginId)</strong>
</a>
</li>
}
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$yobi.loadModule("project.Home", {
"sURLProjectLabels": "@routes.ProjectApp.labels(project.owner, project.name)",
"sURLLabels" : "@routes.LabelApp.labels()",
"sURLLabelCategories": "@routes.LabelApp.categories()",
"welLabelBoard": $('#label-board'),
"welLabelEditorToggle": $('#label-editor-toggle'),
"nProjectId" : @project.id
});
});
</script>
}