Skip to content
Snippets Groups Projects
Commit e1a98bdb authored by Tifenn Guillas's avatar Tifenn Guillas
Browse files

Merge branch '139-search-multiple-select-aor-unselect-all-datasets-by-default' into 'develop'

Resolve "[Search Multiple] Select or unselect all datasets by default"

Closes #139

See merge request !152
parents c87cbf5d d758c543
No related branches found
No related tags found
2 merge requests!169Develop,!152Resolve "[Search Multiple] Select or unselect all datasets by default"
Pipeline #3228 passed
...@@ -6,14 +6,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ...@@ -6,14 +6,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [3.5.0] - 2020-xx ## [3.5.0] - 2020-xx
### Added ### Added
- #136 => Add detail view for spectra type object and default object
### Fixed ### Fixed
### Changed ### Changed
- #139 => Datasets selected in search multiple is a configurable option in anis-admin
- #138 => Sort attributes and put scrollbar if table too long in Documentation module
- #133 => Change typo if only one dataset - #133 => Change typo if only one dataset
## [3.4.0] - 2020-10 ## [3.4.0] - 2020-10
### Added ### Added
- #132 => Add reset cone search button in search multiple - #132 => Add reset cone search button in search multiple
......
import { ComponentFixture, TestBed } from '@angular/core/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing';
import { NavComponent } from './nav.component'; import { NavComponent } from './nav.component';
import { INSTANCE } from '../../../settings/test-data/instance';
describe('[Core] Component: NavComponent', () => { describe('[Core] Component: NavComponent', () => {
let component: NavComponent; let component: NavComponent;
...@@ -52,18 +53,7 @@ describe('[Core] Component: NavComponent', () => { ...@@ -52,18 +53,7 @@ describe('[Core] Component: NavComponent', () => {
}); });
it('should display search, search multiple and documentation links if instance config allows it', () => { it('should display search, search multiple and documentation links if instance config allows it', () => {
component.instance = { component.instance = INSTANCE;
name: 'toto',
label: 'Toto',
client_url: '',
nb_dataset_families: 1,
nb_datasets: 1,
config: {
search: true,
search_multiple: true,
documentation: true
}
};
fixture.detectChanges(); fixture.detectChanges();
const template = fixture.nativeElement; const template = fixture.nativeElement;
expect(template.querySelector('#search_link')).toBeTruthy(); expect(template.querySelector('#search_link')).toBeTruthy();
...@@ -80,7 +70,10 @@ describe('[Core] Component: NavComponent', () => { ...@@ -80,7 +70,10 @@ describe('[Core] Component: NavComponent', () => {
nb_datasets: 1, nb_datasets: 1,
config: { config: {
search: false, search: false,
search_multiple: false, search_multiple: {
allowed: false,
all_datasets_selected: false
},
documentation: false documentation: false
} }; } };
fixture.detectChanges(); fixture.detectChanges();
...@@ -99,7 +92,10 @@ describe('[Core] Component: NavComponent', () => { ...@@ -99,7 +92,10 @@ describe('[Core] Component: NavComponent', () => {
nb_datasets: 1, nb_datasets: 1,
config: { config: {
search: true, search: true,
search_multiple: false, search_multiple: {
allowed: false,
all_datasets_selected: false
},
documentation: false documentation: false
} }
}; };
...@@ -112,7 +108,10 @@ describe('[Core] Component: NavComponent', () => { ...@@ -112,7 +108,10 @@ describe('[Core] Component: NavComponent', () => {
nb_datasets: 1, nb_datasets: 1,
config: { config: {
search: false, search: false,
search_multiple: false, search_multiple: {
allowed: false,
all_datasets_selected: false
},
documentation: false documentation: false
} }; } };
expect(component.isSearchAllowed()).toBeFalsy(); expect(component.isSearchAllowed()).toBeFalsy();
...@@ -127,7 +126,10 @@ describe('[Core] Component: NavComponent', () => { ...@@ -127,7 +126,10 @@ describe('[Core] Component: NavComponent', () => {
nb_datasets: 1, nb_datasets: 1,
config: { config: {
search: true, search: true,
search_multiple: true, search_multiple: {
allowed: true,
all_datasets_selected: false
},
documentation: false documentation: false
} }
}; };
...@@ -140,7 +142,10 @@ describe('[Core] Component: NavComponent', () => { ...@@ -140,7 +142,10 @@ describe('[Core] Component: NavComponent', () => {
nb_datasets: 1, nb_datasets: 1,
config: { config: {
search: true, search: true,
search_multiple: false, search_multiple: {
allowed: false,
all_datasets_selected: false
},
documentation: false documentation: false
} }
}; };
...@@ -156,7 +161,10 @@ describe('[Core] Component: NavComponent', () => { ...@@ -156,7 +161,10 @@ describe('[Core] Component: NavComponent', () => {
nb_datasets: 1, nb_datasets: 1,
config: { config: {
search: true, search: true,
search_multiple: true, search_multiple: {
allowed: true,
all_datasets_selected: false
},
documentation: true documentation: true
} }
}; };
...@@ -169,7 +177,10 @@ describe('[Core] Component: NavComponent', () => { ...@@ -169,7 +177,10 @@ describe('[Core] Component: NavComponent', () => {
nb_datasets: 1, nb_datasets: 1,
config: { config: {
search: true, search: true,
search_multiple: true, search_multiple: {
allowed: true,
all_datasets_selected: false
},
documentation: false documentation: false
} }
}; };
......
...@@ -26,7 +26,7 @@ export class NavComponent { ...@@ -26,7 +26,7 @@ export class NavComponent {
isSearchMultipleAllowed(): boolean { isSearchMultipleAllowed(): boolean {
if (this.instance && this.instance.config.search_multiple) { if (this.instance && this.instance.config.search_multiple) {
return this.instance.config.search_multiple; return this.instance.config.search_multiple.allowed;
} }
return false; return false;
} }
......
import * as instanceActions from './instance.action'; import * as instanceActions from './instance.action';
import { Instance } from '../model'; import { INSTANCE } from '../../../settings/test-data/instance';
describe('[Metamodel] Instance action', () => { describe('[Metamodel] Instance action', () => {
it('should create LoadInstanceMetaAction', () => { it('should create LoadInstanceMetaAction', () => {
...@@ -8,21 +8,9 @@ describe('[Metamodel] Instance action', () => { ...@@ -8,21 +8,9 @@ describe('[Metamodel] Instance action', () => {
}); });
it('should create LoadDatasetSearchMetaSuccessAction', () => { it('should create LoadDatasetSearchMetaSuccessAction', () => {
const payload: Instance = { const action = new instanceActions.LoadInstanceMetaSuccessAction(INSTANCE);
name: 'toto',
label: 'Toto',
client_url: '',
nb_dataset_families: 1,
nb_datasets: 1,
config: {
search: true,
search_multiple: true,
documentation: true
}
};
const action = new instanceActions.LoadInstanceMetaSuccessAction(payload);
expect(action.type).toEqual(instanceActions.LOAD_INSTANCE_META_SUCCESS); expect(action.type).toEqual(instanceActions.LOAD_INSTANCE_META_SUCCESS);
expect(action.payload).toEqual(payload); expect(action.payload).toEqual(INSTANCE);
}); });
it('should create LoadDatasetSearchMetaFailAction', () => { it('should create LoadDatasetSearchMetaFailAction', () => {
......
...@@ -6,7 +6,10 @@ export interface Instance { ...@@ -6,7 +6,10 @@ export interface Instance {
nb_datasets: number; nb_datasets: number;
config: { config: {
search: boolean; search: boolean;
search_multiple: boolean; search_multiple: {
allowed: boolean;
all_datasets_selected: boolean;
};
documentation: boolean; documentation: boolean;
}; };
} }
import * as fromInstance from './instance.reducer'; import * as fromInstance from './instance.reducer';
import * as instanceActions from '../action/instance.action'; import * as instanceActions from '../action/instance.action';
import { Instance } from '../model'; import { Instance } from '../model';
import { INSTANCE } from '../../../settings/test-data/instance';
describe('[Metamodel] Instance reducer', () => { describe('[Metamodel] Instance reducer', () => {
it('should return init state', () => { it('should return init state', () => {
...@@ -12,18 +13,7 @@ describe('[Metamodel] Instance reducer', () => { ...@@ -12,18 +13,7 @@ describe('[Metamodel] Instance reducer', () => {
}); });
it('should set instance', () => { it('should set instance', () => {
const instance: Instance = { const instance: Instance = INSTANCE;
name: 'toto',
label: 'Toto',
client_url: '',
nb_dataset_families: 1,
nb_datasets: 1,
config: {
search: true,
search_multiple: true,
documentation: true
}
};
const { initialState } = fromInstance; const { initialState } = fromInstance;
const action = new instanceActions.LoadInstanceMetaSuccessAction(instance); const action = new instanceActions.LoadInstanceMetaSuccessAction(instance);
const state = fromInstance.reducer(initialState, action); const state = fromInstance.reducer(initialState, action);
......
...@@ -62,22 +62,23 @@ export class SearchMultipleEffects { ...@@ -62,22 +62,23 @@ export class SearchMultipleEffects {
}) })
); );
// @Effect() @Effect()
// loadDatasetSearchMetaSuccessAction$ = this.actions$.pipe( loadDatasetSearchMetaSuccessAction$ = this.actions$.pipe(
// ofType(datasetActions.LOAD_DATASET_SEARCH_META_SUCCESS), ofType(datasetActions.LOAD_DATASET_SEARCH_META_SUCCESS),
// withLatestFrom(this.store$), withLatestFrom(this.store$),
// switchMap(([action, state]) => { switchMap(([action, state]) => {
// if (state.searchMultiple.selectedDatasets.length === 0) { const allDatasetsSelected = state.metamodel.instance.instance.config.search_multiple.all_datasets_selected;
// const loadDatasetSearchMetaSuccessAction = action as datasetActions.LoadDatasetSearchMetaSuccessAction; if (allDatasetsSelected && state.searchMultiple.selectedDatasets.length === 0) {
// const datasetWithConeSearchList: Dataset[] = loadDatasetSearchMetaSuccessAction.payload[1] const loadDatasetSearchMetaSuccessAction = action as datasetActions.LoadDatasetSearchMetaSuccessAction;
// .filter(d => d.config.cone_search && d.config.cone_search.enabled === true); const datasetWithConeSearchList: Dataset[] = loadDatasetSearchMetaSuccessAction.payload[1]
// const selectedDatasets: string[] = datasetWithConeSearchList.map(d => d.name); .filter(d => d.config.cone_search && d.config.cone_search.enabled === true);
// return of(new searchMultipleActions.InitSelectedDatasetsAction(selectedDatasets)); const selectedDatasets: string[] = datasetWithConeSearchList.map(d => d.name);
// } else { return of(new searchMultipleActions.InitSelectedDatasetsAction(selectedDatasets));
// return of({ type: '[No Action] ' + searchMultipleActions.INIT_SELECTED_DATASETS }); } else {
// } return of({ type: '[No Action]' + searchMultipleActions.INIT_SELECTED_DATASETS });
// }) }
// ); })
);
@Effect() @Effect()
retrieveDatasetsCountAction$ = this.actions$.pipe( retrieveDatasetsCountAction$ = this.actions$.pipe(
......
import { Instance } from '../../app/metamodel/model';
export const INSTANCE: Instance = {
name: 'instance',
label: 'Instance',
client_url: 'http://localhost.com',
nb_dataset_families: 2,
nb_datasets: 3,
config: {
search: true,
search_multiple: {
allowed: true,
all_datasets_selected: true,
},
documentation: true
}
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment