Sort by strains and measurements
This commit is contained in:
parent
86b3fb46d7
commit
37becad20a
11 changed files with 95 additions and 18 deletions
5
app/controllers/measurements/index.js
Normal file
5
app/controllers/measurements/index.js
Normal file
|
@ -0,0 +1,5 @@
|
|||
import SortableController from '../sortable';
|
||||
|
||||
export default SortableController.extend({
|
||||
sortBy: 'characteristicName'
|
||||
});
|
18
app/controllers/sortable.js
Normal file
18
app/controllers/sortable.js
Normal file
|
@ -0,0 +1,18 @@
|
|||
import Ember from 'ember';
|
||||
|
||||
export default Ember.ArrayController.extend({
|
||||
queryParams: ['sortBy', 'sortAscending'],
|
||||
sortAscending: true,
|
||||
sortBy: null, // Set in subclass
|
||||
// Make sortProperties computed so that we have a nice URL using sortBy
|
||||
sortProperties: Ember.computed('sortBy', function() {
|
||||
return [this.get('sortBy')];
|
||||
}),
|
||||
actions: {
|
||||
setSortBy: function(fieldName) {
|
||||
this.set('sortBy', fieldName);
|
||||
this.toggleProperty('sortAscending');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
5
app/controllers/strains/index.js
Normal file
5
app/controllers/strains/index.js
Normal file
|
@ -0,0 +1,5 @@
|
|||
import SortableController from '../sortable';
|
||||
|
||||
export default SortableController.extend({
|
||||
sortBy: 'strainName',
|
||||
});
|
|
@ -26,11 +26,11 @@ export default DS.Model.extend({
|
|||
}),
|
||||
computedValue: Ember.computed('textMeasurementType', 'txtValue', 'numValue', function() {
|
||||
var val;
|
||||
if (this.get('computedType') == 'Fixed-text') {
|
||||
if (this.get('computedType') === 'Fixed-text') {
|
||||
val = this.get('textMeasurementType');
|
||||
} else if (this.get('computedType') == 'Free-text') {
|
||||
} else if (this.get('computedType') === 'Free-text') {
|
||||
val = this.get('txtValue');
|
||||
} else if (this.get('computedType') == 'Numerical') {
|
||||
} else if (this.get('computedType') === 'Numerical') {
|
||||
val = this.get('numValue');
|
||||
if (this.get('confidenceInterval')) {
|
||||
val = val + ' ± ' + this.get('confidenceInterval');
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
.measurements-container {
|
||||
padding: 2em 0em 0em 0em;
|
||||
}
|
||||
|
||||
.flakes-table thead tr {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
<table class="flakes-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Characteristic</th>
|
||||
<th>Measurement Type</th>
|
||||
<th>Measurement</th>
|
||||
<th>Notes</th>
|
||||
<th>Test Method</th>
|
||||
<th {{action "setSortBy" "characteristicName"}}>Characteristic</th>
|
||||
<th {{action "setSortBy" "computedType"}}>Measurement Type</th>
|
||||
<th {{action "setSortBy" "computedValue"}}>Measurement</th>
|
||||
<th {{action "setSortBy" "notes"}}>Notes</th>
|
||||
<th {{action "setSortBy" "testMethod"}}>Test Method</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each model as |measurement|}}
|
||||
{{#each controller as |measurement|}}
|
||||
{{measurements/measurement-row measurement=measurement}}
|
||||
{{/each}}
|
||||
</tbody>
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
<h2>Strains</h2>
|
||||
<h3>Total strains: {{model.length}}</h3>
|
||||
<h2>Hymenobacter Strains</h2>
|
||||
<h3>Total strains: {{controller.length}}</h3>
|
||||
|
||||
<table class="flakes-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Measurements</th>
|
||||
<th {{action "setSortBy" "strainName"}}>Name</th>
|
||||
<th {{action "setSortBy" "totalMeasurements"}}>Measurements</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each strain in model}}
|
||||
{{#each strain in controller}}
|
||||
<tr>
|
||||
<td>{{link-to strain.strainName 'measurements' strain}}</td>
|
||||
<td>{{strain.totalMeasurements}}</td>
|
||||
|
|
Reference in a new issue