projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into 5493-getting-started-modal
[arvados.git]
/
apps
/
workbench
/
app
/
assets
/
javascripts
/
filterable.js
diff --git
a/apps/workbench/app/assets/javascripts/filterable.js
b/apps/workbench/app/assets/javascripts/filterable.js
index cd01f64a74f539945d5fb2f0f7cef7399a574be3..27473ad28585a7d44504465299bfbb4cc4656916 100644
(file)
--- a/
apps/workbench/app/assets/javascripts/filterable.js
+++ b/
apps/workbench/app/assets/javascripts/filterable.js
@@
-52,7
+52,11
@@
function updateFilterableQueryNow($target) {
var newquery = $target.data('filterable-query-new');
var params = $target.data('infinite-content-params-filterable') || {};
function updateFilterableQueryNow($target) {
var newquery = $target.data('filterable-query-new');
var params = $target.data('infinite-content-params-filterable') || {};
- params.filters = [['any', 'ilike', '%' + newquery + '%']];
+ if (newquery == null || newquery == '') {
+ params.filters = [];
+ } else {
+ params.filters = [['any', '@@', newquery.concat(':*')]];
+ }
$target.data('infinite-content-params-filterable', params);
$target.data('filterable-query', newquery);
}
$target.data('infinite-content-params-filterable', params);
$target.data('filterable-query', newquery);
}
@@
-83,6
+87,7
@@
$(document).
});
}).
on('paste keyup input', 'input[type=text].filterable-control', function(e) {
});
}).
on('paste keyup input', 'input[type=text].filterable-control', function(e) {
+ var regexp;
if (this != e.target) return;
var $target = $($(this).attr('data-filterable-target'));
var currentquery = $target.data('filterable-query');
if (this != e.target) return;
var $target = $($(this).attr('data-filterable-target'));
var currentquery = $target.data('filterable-query');
@@
-113,9
+118,20
@@
$(document).
} else {
// Target does not have infinite-scroll capability. Just
// filter the rows in the browser using a RegExp.
} else {
// Target does not have infinite-scroll capability. Just
// filter the rows in the browser using a RegExp.
+ regexp = undefined;
+ try {
+ regexp = new RegExp($(this).val(), 'i');
+ } catch(e) {
+ if (e instanceof SyntaxError) {
+ // Invalid/partial regexp. See 'has-error' below.
+ } else {
+ throw e;
+ }
+ }
$target.
$target.
+ toggleClass('has-error', regexp === undefined).
addClass('filterable-container').
addClass('filterable-container').
- data('q',
new RegExp($(this).val(), 'i')
).
+ data('q',
regexp
).
trigger('refresh');
}
}).on('refresh', '.filterable-container', function() {
trigger('refresh');
}
}).on('refresh', '.filterable-container', function() {