Skip to content

Commit 15cb203

Browse files
QCStates filter on animal history (#176)
* Add reportQCStates prop to TabbedReportPanel (passed on to filter types) * Add reportQCStates prop to filter types and add non-removable filter
1 parent 48ed7e2 commit 15cb203

File tree

4 files changed

+22
-1
lines changed

4 files changed

+22
-1
lines changed

LDK/resources/web/LDK/panel/AbstractFilterType.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
Ext4.define('LDK.panel.AbstractFilterType', {
22
extend: 'Ext.panel.Panel',
33

4+
// This is passed to the filter types to apply a non-removable filter on these QC state labels
5+
reportQCStates: [],
6+
47
initComponent: function(){
58
Ext4.apply(this, {
69
layout: 'hbox',
@@ -31,10 +34,16 @@ Ext4.define('LDK.panel.AbstractFilterType', {
3134
},
3235

3336
getFilterArray: function(tab, subject){
34-
return {
37+
let filterArray = {
3538
removable: [],
3639
nonRemovable: []
3740
};
41+
42+
if (this.reportQCStates?.length) {
43+
filterArray.nonRemovable.push(LABKEY.Filter.create('qcstate/label', this.reportQCStates, LABKEY.Filter.Types.EQUALS_ONE_OF));
44+
}
45+
46+
return filterArray;
3847
},
3948

4049
getTitle: function(){

LDK/resources/web/LDK/panel/SingleSubjectFilterType.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ Ext4.define('LDK.panel.SingleSubjectFilterType', {
6464
nonRemovable: []
6565
};
6666

67+
if (this.reportQCStates?.length) {
68+
filterArray.nonRemovable.push(LABKEY.Filter.create('qcstate/label', this.reportQCStates, LABKEY.Filter.Types.EQUALS_ONE_OF));
69+
}
70+
6771
var subjectFieldName;
6872
if(tab.report) {
6973
subjectFieldName = tab.report.subjectFieldName;

LDK/resources/web/LDK/panel/TabbedReportPanel.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ Ext4.define('LDK.panel.TabbedReportPanel', {
3131
// Passed to filters implementing caseInsensitive id search
3232
caseInsensitiveSubjects: false,
3333

34+
// Passed to filters implementing reportQCStates filter
35+
reportQCStates: [],
36+
3437
btnPanelPrefix: 'btnPanel',
3538
totalPanelPrefix: 'totalPanel',
3639
btnPrefix: 'btn',
@@ -1019,6 +1022,7 @@ Ext4.define('LDK.panel.TabbedReportPanel', {
10191022
cfg.tabbedReportPanel = this;
10201023
cfg.filterContext = this.getFilterContext();
10211024
cfg.caseInsensitive = this.caseInsensitiveSubjects;
1025+
cfg.reportQCStates = this.reportQCStates;
10221026

10231027
if (this.activeFilterType){
10241028
this.activeFilterType.prepareRemove();

laboratory/resources/web/laboratory/panel/ProjectFilterType.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ Ext4.define('Laboratory.panel.ProjectFilterType', {
7777
nonRemovable: []
7878
};
7979

80+
if (this.reportQCStates?.length) {
81+
filterArray.nonRemovable.push(LABKEY.Filter.create('qcstate/label', this.reportQCStates, LABKEY.Filter.Types.EQUALS_ONE_OF));
82+
}
83+
8084
var filters = this.getFilters();
8185
var report = tab.report;
8286
var projectFieldName = (filters.projectFilterMode === 'overlappingProjects') ? report.overlappingProjectsFieldName : report.allProjectsFieldName;

0 commit comments

Comments
 (0)