mirror of
https://github.com/discourse/discourse.git
synced 2025-03-24 02:25:33 +08:00
FIX: Ignore case when comparing category name and search term.
This commit is contained in:
parent
d6b5b9436c
commit
0fa9a50378
@ -302,17 +302,17 @@ Category.reopenClass({
|
|||||||
const categories = Category.listByActivity();
|
const categories = Category.listByActivity();
|
||||||
const length = categories.length;
|
const length = categories.length;
|
||||||
var i;
|
var i;
|
||||||
var count = 0;
|
|
||||||
var data = [];
|
var data = [];
|
||||||
|
term = term.toLowerCase();
|
||||||
|
|
||||||
const done = () => {
|
const done = () => {
|
||||||
return data.length === limit;
|
return data.length === limit;
|
||||||
}
|
};
|
||||||
|
|
||||||
for (i = 0; i < length && !done(); i++) {
|
for (i = 0; i < length && !done(); i++) {
|
||||||
const category = categories[i];
|
const category = categories[i];
|
||||||
if ((emptyTerm) ||
|
if ((emptyTerm) ||
|
||||||
(!emptyTerm && category.get('name').indexOf(term) === 0)) {
|
(!emptyTerm && category.get('name').toLowerCase().indexOf(term) === 0)) {
|
||||||
data.push(category);
|
data.push(category);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -321,7 +321,7 @@ Category.reopenClass({
|
|||||||
for (i = 0; i < length && !done(); i++) {
|
for (i = 0; i < length && !done(); i++) {
|
||||||
const category = categories[i];
|
const category = categories[i];
|
||||||
|
|
||||||
if ((!emptyTerm && category.get('name').indexOf(term) > 0)) {
|
if ((!emptyTerm && category.get('name').toLowerCase().indexOf(term) > 0)) {
|
||||||
if (data.indexOf(category) === -1) data.push(category);
|
if (data.indexOf(category) === -1) data.push(category);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -141,6 +141,9 @@ test('search', () => {
|
|||||||
deepEqual(result(''), [category1.get('id'), category2.get('id')], "orders by activity if no term is matched");
|
deepEqual(result(''), [category1.get('id'), category2.get('id')], "orders by activity if no term is matched");
|
||||||
deepEqual(result('term'), [category1.get('id'), category2.get('id')], "orders by activity");
|
deepEqual(result('term'), [category1.get('id'), category2.get('id')], "orders by activity");
|
||||||
|
|
||||||
|
category2.set('name', 'TeRm start');
|
||||||
|
deepEqual(result('tErM'), [category2.get('id'), category1.get('id')], "ignores case of category name and search term");
|
||||||
|
|
||||||
category2.set('name', 'term start');
|
category2.set('name', 'term start');
|
||||||
deepEqual(result('term'), [category2.get('id'), category1.get('id')], "orders matching begin with and then contains");
|
deepEqual(result('term'), [category2.get('id'), category1.get('id')], "orders matching begin with and then contains");
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user