diff --git a/deploy/datasets/query.js b/deploy/datasets/query.js index 51b03194c0b55a0cf4863d389ee01fbbee224264..d35fd789deef6c8d57478671fe0cdca069f9e8da 100644 --- a/deploy/datasets/query.js +++ b/deploy/datasets/query.js @@ -1,6 +1,7 @@ const fs = require('fs') const request = require('request') const path = require('path') +const { commonSenseDsFilter } = require('./supplements/commonSense') const { getPreviewFile, hasPreview } = require('./supplements/previewFile') const { manualFilter: manualFilterDWM, manualMap: manualMapDWM } = require('./supplements/util/mapDwm') @@ -121,6 +122,9 @@ readConfigFile('waxholmRatV2_0.json') }) .catch(console.error) +/** + * deprecated + */ const filterByPRs = (prs, atlasPr) => atlasPr ? prs.some(pr => { const regex = new RegExp(pr.name.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'), 'i') @@ -130,7 +134,9 @@ const filterByPRs = (prs, atlasPr) => atlasPr const manualFilter = require('./supplements/parcellation') + const filter = (datasets = [], {templateName, parcellationName}) => datasets + .filter(ds => commonSenseDsFilter({ds, templateName, parcellationName })) .filter(ds => { if (/infant/.test(ds.name)) return false @@ -152,7 +158,7 @@ const filter = (datasets = [], {templateName, parcellationName}) => datasets ? waxholm : null ) - : manualFilter({ parcellationName, dataset: ds }) + : false } return false diff --git a/deploy/datasets/supplements/commonSense.js b/deploy/datasets/supplements/commonSense.js new file mode 100644 index 0000000000000000000000000000000000000000..c3c564e88f1c9266ba75890b5fd5ab0e2b0f1c89 --- /dev/null +++ b/deploy/datasets/supplements/commonSense.js @@ -0,0 +1,52 @@ + +const humanTemplateSet = new Set([ + 'Big Brain (Histology)', + 'MNI Colin 27', + 'MNI 152 ICBM 2009c Nonlinear Asymmetric' +]) + +const humanParcellationSet = new Set([ + 'Grey/White matter', + 'Area V1', + 'Area V2', + 'JuBrain Cytoarchitectonic Atlas', + 'Fibre Bundle Atlas - Short Bundle', + 'Fibre Bundle Atlas - Long Bundle' +]) + +const ratTemplateSet = new Set([ + 'Waxholm Space rat brain atlas v.2.0' +]) + +const ratParcellationSet = new Set([ + 'Waxholm Space rat brain atlas v.2.0' +]) + +const mouseTemplateSet = new Set([ + 'Allen adult mouse brain reference atlas V3' +]) + +const mouseParcellationSet = new Set([ + 'Allen adult mouse brain reference atlas V3 Brain Atlas' +]) + +const dsIsHuman = ({ds}) => ds && ds.species.some(species => /homo\ sapiens/i.test(species)) +const dsIsRat = ({ ds }) => ds && ds.species.some(species => /rattus\ norvegicus/i.test(species)) +const dsIsMouse = ({ ds }) => ds && ds.species.some(species => /mus\ musculus/i.test(species)) + +const queryIsMouse = ({ templateName, parcellationName }) => + (templateName && mouseTemplateSet.has(templateName)) + || (parcellationName && mouseParcellationSet.has(parcellationName)) + +const queryIsRat = ({ templateName, parcellationName }) => + (templateName && ratTemplateSet.has(templateName)) + || (parcellationName && ratParcellationSet.has(parcellationName)) + +const queryIsHuman = ({ templateName, parcellationName }) => + (templateName && humanTemplateSet.has(templateName)) + || (parcellationName && humanParcellationSet.has(parcellationName)) + +exports.commonSenseDsFilter = ({ ds , templateName, parcellationName}) => + (queryIsHuman({ templateName, parcellationName }) && !dsIsRat({ ds }) && !dsIsMouse({ ds })) + || (queryIsMouse({ templateName, parcellationName }) && !dsIsRat({ ds }) && !dsIsHuman({ ds })) + || (queryIsRat({ templateName, parcellationName }) && !dsIsMouse({ ds }) && !dsIsHuman({ ds })) diff --git a/src/ui/signinBanner/signinBanner.template.html b/src/ui/signinBanner/signinBanner.template.html index cb33a4e169b21ba46ca3d4aa1d05dd730ae4c587..f43eccde7ce230929d915a891acef3f77cc3f856 100644 --- a/src/ui/signinBanner/signinBanner.template.html +++ b/src/ui/signinBanner/signinBanner.template.html @@ -36,21 +36,27 @@ </ng-container> <!-- help btn --> - <div - *ngIf="!isMobile" - (click)="showHelp()" - class="btn btn-outline-secondary btn-sm rounded-circle login-icon"> - <i class="fas fa-question-circle"></i> + <div class="btnWrapper"> + <div + *ngIf="!isMobile" + (click)="showHelp()" + class="btn btn-outline-secondary btn-sm rounded-circle login-icon"> + <i class="fas fa-question-circle"></i> + </div> </div> <!-- signin --> - <div - *ngIf="!isMobile" - (click)="showSignin()" - class="btn btn-outline-secondary btn-sm rounded-circle login-icon"> - <i - [ngClass]="user ? 'fa-user' : 'fa-sign-in-alt'" - class="fas"></i> + + <div class="btnWrapper"> + + <div + *ngIf="!isMobile" + (click)="showSignin()" + class="btn btn-outline-secondary btn-sm rounded-circle login-icon"> + <i + [ngClass]="user ? 'fa-user' : 'fa-sign-in-alt'" + class="fas"></i> + </div> </div> <div *ngIf="isMobile" class="login-button-panel-mobile">