fix tags in project detail page
parent
5d9e82ea58
commit
c85e1cf4a0
|
@ -6,8 +6,10 @@ div.wrapper
|
||||||
span.private(ng-if="::vm.project.get('is_private')", title="{{'PROJECT.PRIVATE' | translate}}")
|
span.private(ng-if="::vm.project.get('is_private')", title="{{'PROJECT.PRIVATE' | translate}}")
|
||||||
include ../../../svg/lock.svg
|
include ../../../svg/lock.svg
|
||||||
p.description {{vm.project.get('description')}}
|
p.description {{vm.project.get('description')}}
|
||||||
|
|
||||||
div.project-list-single-tags.tags-container(ng-if="::vm.project.get('tags').size")
|
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
|
div.project-data
|
||||||
section.timeline(ng-if="vm.project")
|
section.timeline(ng-if="vm.project")
|
||||||
|
|
|
@ -8,6 +8,8 @@ class ProjectsService extends taiga.Service
|
||||||
|
|
||||||
getProjectBySlug: (projectSlug) ->
|
getProjectBySlug: (projectSlug) ->
|
||||||
return @rs.projects.getProjectBySlug(projectSlug)
|
return @rs.projects.getProjectBySlug(projectSlug)
|
||||||
|
.then (project) =>
|
||||||
|
return @._decorate(project)
|
||||||
|
|
||||||
getProjectStats: (projectId) ->
|
getProjectStats: (projectId) ->
|
||||||
return @rs.projects.getProjectStats(projectId)
|
return @rs.projects.getProjectStats(projectId)
|
||||||
|
@ -15,25 +17,24 @@ class ProjectsService extends taiga.Service
|
||||||
getProjectsByUserId: (userId) ->
|
getProjectsByUserId: (userId) ->
|
||||||
return @rs.projects.getProjectsByUserId(userId)
|
return @rs.projects.getProjectsByUserId(userId)
|
||||||
.then (projects) =>
|
.then (projects) =>
|
||||||
return @._decorate(projects)
|
return projects.map @._decorate.bind(@)
|
||||||
|
|
||||||
_decorate: (projects) ->
|
_decorate: (project) ->
|
||||||
return projects.map (project) =>
|
url = @projectUrl.get(project.toJS())
|
||||||
url = @projectUrl.get(project.toJS())
|
|
||||||
|
|
||||||
project = project.set("url", url)
|
project = project.set("url", url)
|
||||||
colorized_tags = []
|
colorized_tags = []
|
||||||
|
|
||||||
if project.get("tags")
|
if project.get("tags")
|
||||||
tags = project.get("tags").sort()
|
tags = project.get("tags").sort()
|
||||||
|
|
||||||
colorized_tags = tags.map (tag) ->
|
colorized_tags = tags.map (tag) ->
|
||||||
color = project.get("tags_colors").get(tag)
|
color = project.get("tags_colors").get(tag)
|
||||||
return Immutable.fromJS({name: tag, color: color})
|
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: ->
|
newProject: ->
|
||||||
@lightboxFactory.create("tg-lb-create-project", {
|
@lightboxFactory.create("tg-lb-create-project", {
|
||||||
|
|
|
@ -87,15 +87,6 @@ describe "tgProjectsService", ->
|
||||||
|
|
||||||
expect(result).to.be.true
|
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", () ->
|
it "getProjectStats", () ->
|
||||||
projectId = 3
|
projectId = 3
|
||||||
|
|
||||||
|
@ -105,6 +96,27 @@ describe "tgProjectsService", ->
|
||||||
|
|
||||||
expect(projectsService.getProjectStats(projectId)).to.be.true
|
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) ->
|
it "getProjectsByUserId", (done) ->
|
||||||
projectId = 3
|
projectId = 3
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue