US/121 project details
parent
08d9e17894
commit
9e2fd9cfc1
|
@ -25,6 +25,7 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide) ->
|
|||
|
||||
$routeProvider.when("/", {templateUrl: "/partials/projects.html"})
|
||||
$routeProvider.when("/create-project", {templateUrl: "/partials/create-project.html"})
|
||||
$routeProvider.when("/project/:pslug/", {templateUrl: "/partials/project.html"})
|
||||
$routeProvider.when("/project/:pslug/backlog", {templateUrl: "/partials/backlog.html"})
|
||||
$routeProvider.when("/project/:pslug/taskboard/:id", {templateUrl: "/partials/taskboard.html"})
|
||||
$routeProvider.when("/project/:pslug/search", {templateUrl: "/partials/search.html"})
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
taiga = @.taiga
|
||||
module = angular.module("taigaProject", [])
|
||||
|
||||
class ProjectController extends taiga.Controller
|
||||
class ProjectsController extends taiga.Controller
|
||||
@.$inject = ["$scope", "$tgResources"]
|
||||
|
||||
constructor: (@scope, @rs) ->
|
||||
|
@ -13,6 +13,39 @@ class ProjectController extends taiga.Controller
|
|||
return @rs.projects.list().then (projects) =>
|
||||
@.projects = {'recents': projects.slice(0, 8), 'all': projects.slice(6)}
|
||||
|
||||
module.controller("ProjectsController", ProjectsController)
|
||||
|
||||
class ProjectController extends taiga.Controller
|
||||
@.$inject = ["$scope", "$tgResources", "$tgRepo", "$routeParams", "$q"]
|
||||
|
||||
constructor: (@scope, @rs, @repo, @params, @q) ->
|
||||
@scope.hideMenu = true
|
||||
@.loadInitialData()
|
||||
|
||||
loadInitialData: ->
|
||||
# Resolve project slug
|
||||
promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
|
||||
@scope.projectId = data.project
|
||||
return data
|
||||
|
||||
return promise.then(=> @.loadPageData())
|
||||
|
||||
loadPageData: ->
|
||||
return @q.all([
|
||||
@.loadProjectStats(),
|
||||
@.loadProject()])
|
||||
|
||||
loadProject: ->
|
||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||
@.project = project
|
||||
return project
|
||||
|
||||
loadProjectStats: ->
|
||||
return @rs.projects.stats(@scope.projectId).then (stats) =>
|
||||
@.stats = stats
|
||||
return stats
|
||||
|
||||
|
||||
module.controller("ProjectController", ProjectController)
|
||||
|
||||
ProjectsPaginationDirective = ($timeout) ->
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
extends dummy-layout
|
||||
|
||||
block head
|
||||
title Taiga Project management web application with scrum in mind!
|
||||
|
||||
block content
|
||||
.home-project(ng-controller="ProjectController as ctrl")
|
||||
.inner
|
||||
h1(tg-bo-html="ctrl.project.name")
|
||||
|
||||
ul.home-project-info-list
|
||||
li
|
||||
span.info-num(tg-bo-html="ctrl.stats.total_points")
|
||||
span.info-text projects points
|
||||
li
|
||||
span.info-num(tg-bo-html="ctrl.stats.defined_points")
|
||||
span.info-text defined points
|
||||
li
|
||||
span.info-num(tg-bo-html="ctrl.stats.assigned_points")
|
||||
span.info-text assigned points
|
||||
li
|
||||
span.info-num(tg-bo-html="ctrl.stats.closed_points")
|
||||
span.info-text closed points
|
||||
|
||||
|
||||
p.description(tg-bo-html="ctrl.project.description")
|
||||
|
||||
.home-project-bottom
|
||||
ul
|
||||
li(ng-repeat="member in ctrl.project.memberships")
|
||||
img(src="http://www.gravatar.com/avatar/0601c5aa999eb9f589e3516ba7e31820?size=80&default=")
|
||||
|
||||
a.button.button-blackish(href="", tg-nav="project-backlog:project=ctrl.project.slug") GO TO PROJECT
|
|
@ -4,7 +4,7 @@ block head
|
|||
title Taiga Project management web application with scrum in mind!
|
||||
|
||||
block content
|
||||
div.home-projects-list(ng-controller="ProjectController as ctrl")
|
||||
div.home-projects-list(ng-controller="ProjectsController as ctrl")
|
||||
.home-projects-list-inner
|
||||
ul.recent-projects
|
||||
li(ng-repeat="project in ctrl.projects.recents")
|
||||
|
@ -12,14 +12,14 @@ block content
|
|||
h2(tg-bo-html="project.name")
|
||||
p(tg-bo-html="project.description")
|
||||
.project-link
|
||||
a.button.button-gray(href="", tg-nav="project-backlog:project=project.slug") Go to project
|
||||
a.button.button-gray(href="", tg-nav="project:project=project.slug") Go to project
|
||||
|
||||
div.all-projects
|
||||
h1 Projects
|
||||
div(tg-projects-pagination, active="ctrl.projects.all.length")
|
||||
ul
|
||||
li(ng-repeat="project in ctrl.projects.all")
|
||||
a.button(href="", tg-bo-html="project.name", tg-nav="project-backlog:project=project.slug")
|
||||
a.button(href="", tg-bo-html="project.name", tg-nav="project:project=project.slug")
|
||||
|
||||
.create-project-button-wrapper
|
||||
a.button.button-green(href="", tg-nav="create-project") Create project
|
|
@ -53,6 +53,18 @@ a.button-green {
|
|||
}
|
||||
}
|
||||
|
||||
.button-blackish {
|
||||
background: $blackish;
|
||||
color: $whitish;
|
||||
&:hover {
|
||||
background: $button-gray-hover;
|
||||
color: $white;
|
||||
}
|
||||
span {
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
|
||||
.button-red {
|
||||
background: $red-light;
|
||||
&:hover {
|
||||
|
|
|
@ -58,6 +58,7 @@ $prefix-for-spec: true;
|
|||
|
||||
//Project modules
|
||||
@import 'modules/home-projects-list';
|
||||
@import 'modules/home-project';
|
||||
@import 'modules/project-details';
|
||||
|
||||
//Issues modules
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
.home-project {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
.inner {
|
||||
background-color: rgba(255, 255, 255, .2);
|
||||
padding: 2rem;
|
||||
width: 970px;
|
||||
}
|
||||
h1 {
|
||||
font-weight: bold;
|
||||
margin-bottom: 3rem;
|
||||
}
|
||||
li,
|
||||
h1,
|
||||
p {
|
||||
color: $whitish;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.home-project-info-list {
|
||||
display: flex;
|
||||
.info-num {
|
||||
@extend %xlarge;
|
||||
font-family: 'DroidSans-Bold';
|
||||
margin-right: .3rem;
|
||||
}
|
||||
.info-text {
|
||||
@extend %small;
|
||||
display: block;
|
||||
line-height: 12px;
|
||||
width: 55px;
|
||||
}
|
||||
li {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.home-project-bottom {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 2rem;
|
||||
img {
|
||||
border-radius: 3px;
|
||||
width: 40px;
|
||||
}
|
||||
li {
|
||||
margin-right: .5rem;
|
||||
}
|
||||
ul {
|
||||
display: flex;
|
||||
flex-flow: row wrap;
|
||||
margin-bottom: 0;
|
||||
width: 50%;
|
||||
}
|
||||
.button-blackish {
|
||||
color: $whitish;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
.home-projects-list {
|
||||
.home-projects-list, .home-project {
|
||||
align-items: center;
|
||||
background-image: url('/images/project-selector.jpg');
|
||||
background-position: center center;
|
||||
|
|
Loading…
Reference in New Issue