Skip to content
Snippets Groups Projects
Commit 996f1380 authored by ml bonhomme's avatar ml bonhomme :bee: Committed by Erwan Rouchet
Browse files

Add creator email filter to filter bar

parent 63fba668
No related branches found
No related tags found
1 merge request!1459Add creator email filter to filter bar
......@@ -363,6 +363,13 @@ export class MetadataValueFilter extends Filter {
}
}
/**
* String filter. No auto-completion.
* @extends {Filter<string>}
*/
export class StringFilter extends Filter {
}
/**
* Filter methods that are common to every strictly boolean filter
* @extends {Filter<boolean>}
......@@ -418,7 +425,8 @@ export const getNavigationFilters = (store, context = {}) => {
new MetadataNameFilter(store),
new ConfidenceFilter('confidence'),
new ConfidenceFilter('transcription_confidence'),
new WorkerVersionFilter(store, 'transcription_worker_version')
new WorkerVersionFilter(store, 'transcription_worker_version'),
new StringFilter('creator_email')
]
// Only include the metadata value filter when the metadata name filter is set
......
......@@ -13,6 +13,7 @@ import {
MetadataNameFilter,
MetadataValueFilter,
BooleanFilter,
StringFilter,
getNavigationFilters
} from '@/filterbar'
......@@ -1371,6 +1372,61 @@ describe('filterbar.js', () => {
})
})
describe('StringFilter', () => {
it('has correct attributes', () => {
const filter = new StringFilter('filter_name')
assert.strictEqual(filter.name, 'filter_name')
assert.strictEqual(filter.displayName, 'Filter name')
assert.strictEqual(filter.placeholder, 'Filter value')
assert.strictEqual(filter.operatorName, undefined)
assert.strictEqual(filter.operatorPlaceholder, 'Select an operator')
assert.deepStrictEqual(filter.operators, { eq: '=' })
})
it('has no autocomplete', () => {
const filter = new StringFilter('filter_name')
assert.deepStrictEqual(filter.autocomplete('', 'eq'), [])
assert.deepStrictEqual(filter.autocomplete('some input', 'eq'), [])
assert.deepStrictEqual(filter.autocomplete('', 'invalid_operator'), [])
})
it('displays a value as a string', () => {
const filter = new StringFilter('filter_name')
assert.strictEqual(filter.display('blah'), 'blah')
assert.strictEqual(filter.display(42), '42')
assert.strictEqual(filter.display(true), 'true')
})
it('validates anything', () => {
const filter = new StringFilter('filter_name')
assert.strictEqual(filter.validate('blah'), 'blah')
assert.strictEqual(filter.validate(42), 42)
assert.strictEqual(filter.validate(true), true)
assert.deepStrictEqual(filter.validate({ a: 'b' }), { a: 'b' })
})
it('serializes anything as a string', () => {
const filter = new StringFilter('filter_name')
assert.strictEqual(filter.serialize('blah'), 'blah')
assert.strictEqual(filter.serialize(42), '42')
assert.strictEqual(filter.serialize(true), 'true')
})
it('does nothing on a deserialize', () => {
const filter = new StringFilter('filter_name')
assert.strictEqual(filter.deserialize('blah'), 'blah')
assert.strictEqual(filter.deserialize(42), 42)
assert.strictEqual(filter.deserialize(true), true)
assert.deepStrictEqual(filter.deserialize({ a: 'b' }), { a: 'b' })
})
})
describe('getNavigationFilters', () => {
it('returns no filters without a selected corpus', () => {
assert.deepStrictEqual(getNavigationFilters(store), [])
......@@ -1387,6 +1443,7 @@ describe('filterbar.js', () => {
new ConfidenceFilter('confidence'),
new ConfidenceFilter('transcription_confidence'),
new WorkerVersionFilter(store, 'transcription_worker_version'),
new StringFilter('creator_email'),
new TypeFilter(store),
new BooleanFilter('folder'),
new MLClassFilter(store),
......@@ -1408,6 +1465,7 @@ describe('filterbar.js', () => {
new ConfidenceFilter('confidence'),
new ConfidenceFilter('transcription_confidence'),
new WorkerVersionFilter(store, 'transcription_worker_version'),
new StringFilter('creator_email'),
new TypeFilter(store),
new BooleanFilter('folder'),
new MLClassFilter(store),
......@@ -1428,6 +1486,7 @@ describe('filterbar.js', () => {
new ConfidenceFilter('confidence'),
new ConfidenceFilter('transcription_confidence'),
new WorkerVersionFilter(store, 'transcription_worker_version'),
new StringFilter('creator_email'),
new BooleanFilter('folder'),
new MLClassFilter(store),
new ConfidenceFilter('classification_confidence'),
......@@ -1447,6 +1506,7 @@ describe('filterbar.js', () => {
new ConfidenceFilter('confidence'),
new ConfidenceFilter('transcription_confidence'),
new WorkerVersionFilter(store, 'transcription_worker_version'),
new StringFilter('creator_email'),
new TypeFilter(store),
new MLClassFilter(store),
new ConfidenceFilter('classification_confidence'),
......@@ -1466,6 +1526,7 @@ describe('filterbar.js', () => {
new ConfidenceFilter('confidence'),
new ConfidenceFilter('transcription_confidence'),
new WorkerVersionFilter(store, 'transcription_worker_version'),
new StringFilter('creator_email'),
new MetadataValueFilter(),
new TypeFilter(store),
new BooleanFilter('folder'),
......@@ -1488,6 +1549,7 @@ describe('filterbar.js', () => {
new ConfidenceFilter('confidence'),
new ConfidenceFilter('transcription_confidence'),
new WorkerVersionFilter(store, 'transcription_worker_version'),
new StringFilter('creator_email'),
new TypeFilter(store),
new BooleanFilter('folder'),
new BooleanFilter('top_level')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment