diff options
6 files changed, 22 insertions, 10 deletions
diff --git a/app/assets/javascripts/groups/components/app.vue b/app/assets/javascripts/groups/components/app.vue index fdec34f5dab..2c0b6ab4ea8 100644 --- a/app/assets/javascripts/groups/components/app.vue +++ b/app/assets/javascripts/groups/components/app.vue @@ -43,8 +43,8 @@ export default { }, }, methods: { - fetchGroups({ parentId, page, filterGroupsBy, sortBy, updatePagination }) { - return this.service.getGroups(parentId, page, filterGroupsBy, sortBy) + fetchGroups({ parentId, page, filterGroupsBy, sortBy, archived, updatePagination }) { + return this.service.getGroups(parentId, page, filterGroupsBy, sortBy, archived) .then((res) => { if (updatePagination) { this.updatePagination(res.headers); @@ -63,6 +63,7 @@ export default { fetchAllGroups() { const page = getParameterByName('page') || null; const sortBy = getParameterByName('sort') || null; + const archived = getParameterByName('archived') || null; const filterGroupsBy = getParameterByName('filter') || null; this.isLoading = true; @@ -71,13 +72,14 @@ export default { page, filterGroupsBy, sortBy, + archived, updatePagination: true, }).then((res) => { this.isLoading = false; this.updateGroups(res, Boolean(filterGroupsBy)); }); }, - fetchPage(page, filterGroupsBy, sortBy) { + fetchPage(page, filterGroupsBy, sortBy, archived) { this.isLoading = true; // eslint-disable-next-line promise/catch-or-return @@ -85,6 +87,7 @@ export default { page, filterGroupsBy, sortBy, + archived, updatePagination: true, }).then((res) => { this.isLoading = false; diff --git a/app/assets/javascripts/groups/components/groups.vue b/app/assets/javascripts/groups/components/groups.vue index d3482818183..75a2bf34887 100644 --- a/app/assets/javascripts/groups/components/groups.vue +++ b/app/assets/javascripts/groups/components/groups.vue @@ -29,7 +29,8 @@ export default { change(page) { const filterGroupsParam = getParameterByName('filter_groups'); const sortParam = getParameterByName('sort'); - eventHub.$emit('fetchPage', page, filterGroupsParam, sortParam); + const archivedParam = getParameterByName('archived'); + eventHub.$emit('fetchPage', page, filterGroupsParam, sortParam, archivedParam); }, }, }; diff --git a/app/assets/javascripts/groups/service/groups_service.js b/app/assets/javascripts/groups/service/groups_service.js index 1393c96aed6..639410384c2 100644 --- a/app/assets/javascripts/groups/service/groups_service.js +++ b/app/assets/javascripts/groups/service/groups_service.js @@ -8,7 +8,7 @@ export default class GroupsService { this.groups = Vue.resource(endpoint); } - getGroups(parentId, page, filterGroups, sort) { + getGroups(parentId, page, filterGroups, sort, archived) { const data = {}; if (parentId) { @@ -26,6 +26,10 @@ export default class GroupsService { if (sort) { data.sort = sort; } + + if (archived) { + data.archived = archived; + } } return this.groups.get(data); diff --git a/spec/javascripts/groups/components/app_spec.js b/spec/javascripts/groups/components/app_spec.js index 8472c726b08..cd19a0fae1e 100644 --- a/spec/javascripts/groups/components/app_spec.js +++ b/spec/javascripts/groups/components/app_spec.js @@ -102,9 +102,10 @@ describe('AppComponent', () => { page: 2, filterGroupsBy: 'git', sortBy: 'created_desc', + archived: true, }); setTimeout(() => { - expect(vm.service.getGroups).toHaveBeenCalledWith(1, 2, 'git', 'created_desc'); + expect(vm.service.getGroups).toHaveBeenCalledWith(1, 2, 'git', 'created_desc', true); done(); }, 0); }); @@ -162,6 +163,7 @@ describe('AppComponent', () => { filterGroupsBy: null, sortBy: null, updatePagination: true, + archived: null, }); setTimeout(() => { expect(vm.updateGroups).toHaveBeenCalled(); @@ -178,13 +180,14 @@ describe('AppComponent', () => { spyOn(window.history, 'replaceState'); spyOn($, 'scrollTo'); - vm.fetchPage(2, null, null); + vm.fetchPage(2, null, null, true); expect(vm.isLoading).toBeTruthy(); expect(vm.fetchGroups).toHaveBeenCalledWith({ page: 2, filterGroupsBy: null, sortBy: null, updatePagination: true, + archived: true, }); setTimeout(() => { expect(vm.isLoading).toBeFalsy(); diff --git a/spec/javascripts/groups/components/groups_spec.js b/spec/javascripts/groups/components/groups_spec.js index 280376d4903..90e818c1545 100644 --- a/spec/javascripts/groups/components/groups_spec.js +++ b/spec/javascripts/groups/components/groups_spec.js @@ -43,7 +43,7 @@ describe('GroupsComponent', () => { spyOn(eventHub, '$emit').and.stub(); vm.change(2); - expect(eventHub.$emit).toHaveBeenCalledWith('fetchPage', 2, jasmine.any(Object), jasmine.any(Object)); + expect(eventHub.$emit).toHaveBeenCalledWith('fetchPage', 2, jasmine.any(Object), jasmine.any(Object), jasmine.any(Object)); }); }); }); diff --git a/spec/javascripts/groups/service/groups_service_spec.js b/spec/javascripts/groups/service/groups_service_spec.js index 222e75d24a4..20bb63687f7 100644 --- a/spec/javascripts/groups/service/groups_service_spec.js +++ b/spec/javascripts/groups/service/groups_service_spec.js @@ -20,12 +20,13 @@ describe('GroupsService', () => { page: 2, filter: 'git', sort: 'created_asc', + archived: true, }; - service.getGroups(55, 2, 'git', 'created_asc'); + service.getGroups(55, 2, 'git', 'created_asc', true); expect(service.groups.get).toHaveBeenCalledWith({ parent_id: 55 }); - service.getGroups(null, 2, 'git', 'created_asc'); + service.getGroups(null, 2, 'git', 'created_asc', true); expect(service.groups.get).toHaveBeenCalledWith(queryParams); }); }); |