{{onlyresults ? 'All research outcomes' : 'All content'}}
Research outcomes
Projects
Content providers
Organizations
Publications
Datasets
Software
Other Research products
`
})
export class EntitiesSelectionComponent {
showResearchOutcomes: boolean = false;
showPublications: boolean = false;
showDatasets: boolean = false;
showSoftware: boolean = false;
showOther: boolean = false;
showProjects: boolean = false;
showDataProviders: boolean = false;
showOrganizations: boolean = false;
@Input() properties: EnvProperties;
@Input() customFilter: SearchCustomFilter = null;
@Input() @Output() selectedEntity = "Research Outcomes";
@Input() currentEntity = "Research Outcomes";
@Input() simpleView: boolean = true;
@Input() onChangeNavigate: boolean = true;
@Output() selectionChange = new EventEmitter();
@Input() onlyresults: boolean = false;
@Input() matPanelClass="matSelectionPanel";
@Input() disableSelect:boolean=false;
show = 0;
@ViewChild(MatSelect)matSelect:MatSelect;
constructor(private _fb: FormBuilder, private config: ConfigurationService, private router: Router) {
}
ngOnInit() {
this.show = 0;
if (this.properties) {
// console.log(this.customFilter)
this.config.getCommunityInformation(this.properties, (this.customFilter && this.customFilter.queryFieldName == "communityId") ? this.customFilter.valueId : this.properties.adminToolsCommunity).subscribe(data => {
let showEntity = {};
let showPage = {};
for (let i = 0; i < data['entities'].length; i++) {
showEntity["" + data['entities'][i]["pid"] + ""] = data['entities'][i]["isEnabled"];
}
for (let i = 0; i < data['pages'].length; i++) {
showPage["" + data['pages'][i]["route"] + ""] = data['pages'][i]["isEnabled"];
}
this.showResearchOutcomes = showPage[this.properties.searchLinkToResults] && (showEntity["publication"] || showEntity["dataset"] || showEntity["software"] || showEntity["orp"]);
this.showPublications = showPage[this.properties.searchLinkToResults] && showEntity["publication"];
this.showDatasets = showPage[this.properties.searchLinkToResults] && showEntity["dataset"];
this.showSoftware = showPage[this.properties.searchLinkToResults] && showEntity["software"];
this.showOther = showPage[this.properties.searchLinkToResults] && showEntity["orp"];
this.showProjects = showPage[this.properties.searchLinkToProjects] && showEntity["project"];
this.showOrganizations = showPage[this.properties.searchLinkToOrganizations] && showEntity["organization"];
this.showDataProviders = showPage[this.properties.searchLinkToDataProviders] && showEntity["datasource"];
if (this.customFilter && this.customFilter.queryFieldName == "communityId") {
this.showOrganizations = false;
if(!this.simpleView){
this.showProjects = false;
this.showDataProviders = false;
}
}
if(this.showResearchOutcomes){
this.show++;
}
if(this.showDataProviders){
this.show++;
}
if(this.showOrganizations){
this.show++;
}
if(this.showProjects){
this.show++;
}
if(this.show ==1){
this.disableSelect = true;
}
});
}
this.selectedEntity = this.currentEntity;
this.selectionChange.emit({
entity: this.selectedEntity,
simpleUrl: this.getUrl(true),
advancedUrl: this.getUrl(false)
});
}
entityChanged() {
if (!this.simpleView || this.onChangeNavigate) {
this.router.navigate([this.getUrl(this.simpleView)]);
} else {
this.selectionChange.emit({
entity: this.selectedEntity,
simpleUrl: this.getUrl(true),
advancedUrl: this.getUrl(false)
});
}
}
getUrl(simpleView: boolean) {
let url = "";
if(!this.onlyresults) {
if (this.selectedEntity == "all") {
url = (simpleView ? "/search/find/" : null);
} else if (this.selectedEntity == "result") {
url = (simpleView ? this.properties.searchLinkToResults : this.properties.searchLinkToAdvancedResults);
} else if (this.selectedEntity == "project") {
url = (simpleView ? this.properties.searchLinkToProjects : this.properties.searchLinkToAdvancedProjects);
} else if (this.selectedEntity == "dataprovider") {
url = (simpleView ? this.properties.searchLinkToDataProviders : this.properties.searchLinkToAdvancedDataProviders);
} else if (this.selectedEntity == "organization") {
url = (simpleView ? this.properties.searchLinkToOrganizations : this.properties.searchLinkToAdvancedOrganizations);
}
}else{
url = (simpleView ? this.properties.searchLinkToResults : this.properties.searchLinkToAdvancedResults);
}
return url;
}
toggle(){
if(this.matSelect) {
this.matSelect.toggle();
}
}
open(){
if(this.matSelect && !this.matSelect.focused) {
this.matSelect.open();
}
}
}