Merge pull request #851 from taigaio/issue/3846/exclude_invisible_projects_in_discover_section

Fix #3846: Exclude private projects in discover section
stable
Alejandro 2016-02-03 10:42:01 +01:00
commit efad795b53
2 changed files with 21 additions and 12 deletions

View File

@ -25,6 +25,10 @@ class DiscoverProjectsService extends taiga.Service
"tgProjectsService" "tgProjectsService"
] ]
_discoverParams = {
discover_mode: true
}
constructor: (@rs, @projectsService) -> constructor: (@rs, @projectsService) ->
@._mostLiked = Immutable.List() @._mostLiked = Immutable.List()
@._mostActive = Immutable.List() @._mostActive = Immutable.List()
@ -42,7 +46,8 @@ class DiscoverProjectsService extends taiga.Service
taiga.defineImmutableProperty @, "projectsCount", () => return @._projectsCount taiga.defineImmutableProperty @, "projectsCount", () => return @._projectsCount
fetchMostLiked: (params) -> fetchMostLiked: (params) ->
return @rs.projects.getProjects(params, false) _params = _.extend({}, _discoverParams, params)
return @rs.projects.getProjects(_params, false)
.then (result) => .then (result) =>
data = result.data.slice(0, 5) data = result.data.slice(0, 5)
@ -52,7 +57,8 @@ class DiscoverProjectsService extends taiga.Service
@._mostLiked = projects @._mostLiked = projects
fetchMostActive: (params) -> fetchMostActive: (params) ->
return @rs.projects.getProjects(params, false) _params = _.extend({}, _discoverParams, params)
return @rs.projects.getProjects(_params, false)
.then (result) => .then (result) =>
data = result.data.slice(0, 5) data = result.data.slice(0, 5)
@ -62,9 +68,10 @@ class DiscoverProjectsService extends taiga.Service
@._mostActive = projects @._mostActive = projects
fetchFeatured: () -> fetchFeatured: () ->
params = {is_featured: true} _params = _.extend({}, _discoverParams)
_params.is_featured = true
return @rs.projects.getProjects(params, false) return @rs.projects.getProjects(_params, false)
.then (result) => .then (result) =>
data = result.data.slice(0, 4) data = result.data.slice(0, 4)
@ -81,7 +88,8 @@ class DiscoverProjectsService extends taiga.Service
@._projectsCount = discover.getIn(['projects', 'total']) @._projectsCount = discover.getIn(['projects', 'total'])
fetchSearch: (params) -> fetchSearch: (params) ->
return @rs.projects.getProjects(params) _params = _.extend({}, _discoverParams, params)
return @rs.projects.getProjects(_params)
.then (result) => .then (result) =>
@._nextSearchPage = !!result.headers('X-Pagination-Next') @._nextSearchPage = !!result.headers('X-Pagination-Next')

View File

@ -62,7 +62,7 @@ describe "tgDiscoverProjectsService", ->
_inject() _inject()
it "fetch most liked", (done) -> it "fetch most liked", (done) ->
params = {test: 1} params = {test: 1, discover_mode: true}
mocks.resources.projects.getProjects.withArgs(sinon.match(params), false).promise().resolve({ mocks.resources.projects.getProjects.withArgs(sinon.match(params), false).promise().resolve({
data: [ data: [
@ -80,12 +80,12 @@ describe "tgDiscoverProjectsService", ->
result = discoverProjectsService._mostLiked.toJS() result = discoverProjectsService._mostLiked.toJS()
expect(result).to.have.length(5) expect(result).to.have.length(5)
expect(result[0].decorate).to.be.ok; expect(result[0].decorate).to.be.ok
done() done()
it "fetch most active", (done) -> it "fetch most active", (done) ->
params = {test: 1} params = {test: 1, discover_mode: true}
mocks.resources.projects.getProjects.withArgs(sinon.match(params), false).promise().resolve({ mocks.resources.projects.getProjects.withArgs(sinon.match(params), false).promise().resolve({
data: [ data: [
@ -103,12 +103,13 @@ describe "tgDiscoverProjectsService", ->
result = discoverProjectsService._mostActive.toJS() result = discoverProjectsService._mostActive.toJS()
expect(result).to.have.length(5) expect(result).to.have.length(5)
expect(result[0].decorate).to.be.ok; expect(result[0].decorate).to.be.ok
done() done()
it "fetch featured", (done) -> it "fetch featured", (done) ->
mocks.resources.projects.getProjects.withArgs(sinon.match({is_featured: true}), false).promise().resolve({ params = {is_featured: true, discover_mode: true}
mocks.resources.projects.getProjects.withArgs(sinon.match(params), false).promise().resolve({
data: [ data: [
{id: 1}, {id: 1},
{id: 2}, {id: 2},
@ -124,7 +125,7 @@ describe "tgDiscoverProjectsService", ->
result = discoverProjectsService._featured.toJS() result = discoverProjectsService._featured.toJS()
expect(result).to.have.length(4) expect(result).to.have.length(4)
expect(result[0].decorate).to.be.ok; expect(result[0].decorate).to.be.ok
done() done()
@ -148,7 +149,7 @@ describe "tgDiscoverProjectsService", ->
done() done()
it "fetch search", (done) -> it "fetch search", (done) ->
params = {test: 1} params = {test: 1, discover_mode: true}
result = { result = {
headers: sinon.stub(), headers: sinon.stub(),