fix tags in project detail page

stable
Juanfran 2015-05-19 14:09:23 +02:00
parent 5d9e82ea58
commit c85e1cf4a0
3 changed files with 38 additions and 23 deletions

View File

@ -6,8 +6,10 @@ div.wrapper
span.private(ng-if="::vm.project.get('is_private')", title="{{'PROJECT.PRIVATE' | translate}}")
include ../../../svg/lock.svg
p.description {{vm.project.get('description')}}
div.project-list-single-tags.tags-container(ng-if="::vm.project.get('tags').size")
div.tags-block(tg-colorize-tags="vm.project.get('tags')", tg-colorize-tags-type="backlog")
span.tag(style='border-left: 5px solid {{::tag.get("color")}};', tg-repeat="tag in ::vm.project.get('colorized_tags')")
span.tag-name {{::tag.get('name')}}
div.project-data
section.timeline(ng-if="vm.project")

View File

@ -8,6 +8,8 @@ class ProjectsService extends taiga.Service
getProjectBySlug: (projectSlug) ->
return @rs.projects.getProjectBySlug(projectSlug)
.then (project) =>
return @._decorate(project)
getProjectStats: (projectId) ->
return @rs.projects.getProjectStats(projectId)
@ -15,25 +17,24 @@ class ProjectsService extends taiga.Service
getProjectsByUserId: (userId) ->
return @rs.projects.getProjectsByUserId(userId)
.then (projects) =>
return @._decorate(projects)
return projects.map @._decorate.bind(@)
_decorate: (projects) ->
return projects.map (project) =>
url = @projectUrl.get(project.toJS())
_decorate: (project) ->
url = @projectUrl.get(project.toJS())
project = project.set("url", url)
colorized_tags = []
project = project.set("url", url)
colorized_tags = []
if project.get("tags")
tags = project.get("tags").sort()
if project.get("tags")
tags = project.get("tags").sort()
colorized_tags = tags.map (tag) ->
color = project.get("tags_colors").get(tag)
return Immutable.fromJS({name: tag, color: color})
colorized_tags = tags.map (tag) ->
color = project.get("tags_colors").get(tag)
return Immutable.fromJS({name: tag, color: color})
project = project.set("colorized_tags", colorized_tags)
project = project.set("colorized_tags", colorized_tags)
return project
return project
newProject: ->
@lightboxFactory.create("tg-lb-create-project", {

View File

@ -87,15 +87,6 @@ describe "tgProjectsService", ->
expect(result).to.be.true
it "getProjectBySlug", () ->
projectSlug = "project-slug"
mocks.resources.projects = {}
mocks.resources.projects.getProjectBySlug = sinon.stub()
mocks.resources.projects.getProjectBySlug.withArgs(projectSlug).returns(true)
expect(projectsService.getProjectBySlug(projectSlug)).to.be.true
it "getProjectStats", () ->
projectId = 3
@ -105,6 +96,27 @@ describe "tgProjectsService", ->
expect(projectsService.getProjectStats(projectId)).to.be.true
it "getProjectBySlug", (done) ->
projectSlug = "project-slug"
project = Immutable.fromJS({id: 2, url: 'url-2', tags: ['xx', 'yy', 'aa'], tags_colors: {xx: "red", yy: "blue", aa: "white"}})
mocks.resources.projects = {}
mocks.resources.projects.getProjectBySlug = sinon.stub().promise()
mocks.resources.projects.getProjectBySlug.withArgs(projectSlug).resolve(project)
projectsService.getProjectBySlug(projectSlug).then (project) ->
expect(project.toJS()).to.be.eql(
{
id: 2,
url: 'url-2',
tags: ['xx', 'yy', 'aa'],
tags_colors: {xx: "red", yy: "blue", aa: "white"},
colorized_tags: [{name: 'aa', color: 'white'}, {name: 'xx', color: 'red'}, {name: 'yy', color: 'blue'}]
}
)
done()
it "getProjectsByUserId", (done) ->
projectId = 3