class MCProjectSamplesViewComponentController {
    /*@ngInject*/
    constructor() {
        this.state = {
            samples: [],
            savedSamples: [],
            showFilter: false,
        };
    }

    $onChanges(changes) {
        if (changes.samples) {
            this.state.samples = angular.copy(changes.samples.currentValue);
        }
    }

    handleRunFilter(processes, conditions) {
        console.log('handleRunFilter', processes, conditions);
        let processesCount = _.size(processes);
        let conditionsCount = _.size(conditions);
        let samplesMatchingProcesses = this.state.samples.filter(sample => {
            let matches = 0;
            sample.processes.forEach(p => {
                if (_.has(processes, p.name)) {
                    matches++;
                }
            });
            return matches === processesCount;
        });

        console.log(samplesMatchingProcesses.length);

        if (!processesCount) {
            samplesMatchingProcesses = this.state.samples;
        }

        let samplesMatchingConditions = samplesMatchingProcesses.filter(sample => {
            let matches = 0;
            sample.processes.forEach(p => {
                p.setup.forEach(s => {
                    s.properties.forEach(property => {
                        if (_.has(conditions, property.name)) {
                            console.log('has property ', property.name, property.value, conditions[property.name].value);
                            if (property.value == conditions[property.name].value) {
                                console.log('  and they are equal');
                                matches++;
                            }
                        }
                    });
                });
            });
            return matches === conditionsCount;
        });

        console.log(samplesMatchingConditions.length);
        console.log(samplesMatchingConditions);

        this.state.savedSamples = this.state.samples;

        if (processesCount && conditionsCount) {
            this.state.samples = angular.copy(samplesMatchingConditions);
        } else if (processesCount) {
            this.state.samples = angular.copy(samplesMatchingProcesses);
        } else {
            this.state.samples = angular.copy(samplesMatchingConditions);
        }
    }

    handleResetFilter() {
        this.state.samples = angular.copy(this.state.savedSamples);
    }
}

angular.module('materialscommons').component('mcProjectSamplesView', {
    controller: MCProjectSamplesViewComponentController,
    template: require('./project-samples-view.html'),
    bindings: {
        samples: '<'
    }
});
@@ -406,71 +406,8 @@
 ) %7B%0A
-        console.log('handleRunFilter', processes, conditions);%0A
     
@@ -442,32 +442,32 @@
 ize(processes);%0A
+
         let cond
@@ -1286,32 +1286,33 @@
 operty.name)) %7B%0A
+%0A
                 
@@ -1327,255 +1327,231 @@
     
-console.log('has property ', property.name, property.
+// *** Don't use strict '===' here. We need javascript to convert 
 value
-, conditions%5Bproperty.name%5D.value);%0A                            if (property.value == conditions%5Bproperty.name%5D.value) %7B%0A                                console.log('  and they are equal');
+s for comparison purposes. ***%0A                            if (/* Dont' change comparison to === */ property.value == conditions%5Bproperty.name%5D.value) %7B
 %0A   
@@ -1771,112 +1771,8 @@
 );%0A%0A
-        console.log(samplesMatchingConditions.length);%0A        console.log(samplesMatchingConditions);%0A%0A
     
@@ -2185,24 +2185,74 @@
 tFilter() %7B%0A
+        if (this.state.savedSamples.length) %7B%0A    
         this
@@ -2303,24 +2303,34 @@
 edSamples);%0A
+        %7D%0A
     %7D%0A%7D%0A%0Aang

Add comment about why we use '==' rather than '===' and remove console statements