mirror of
https://github.com/FoggedLens/iD.git
synced 2026-03-07 11:51:35 +00:00
Improve autocompletion for raw tag editor (closes #2748)
* Don't shorten the user's query * Drop pouplar key threshold from 10000 to 5000 * Always show key if it has a wiki page (`d.in_wiki`)
This commit is contained in:
@@ -39,19 +39,10 @@ iD.taginfo = function() {
|
||||
return _.omit(parameters, 'geometry', 'debounce');
|
||||
}
|
||||
|
||||
function shorten(parameters) {
|
||||
if (!parameters.query) {
|
||||
delete parameters.query;
|
||||
} else {
|
||||
parameters.query = parameters.query.slice(0, 3);
|
||||
}
|
||||
return parameters;
|
||||
}
|
||||
|
||||
function popularKeys(parameters) {
|
||||
var pop_field = 'count_all';
|
||||
if (parameters.filter) pop_field = 'count_' + parameters.filter;
|
||||
return function(d) { return parseFloat(d[pop_field]) > 10000; };
|
||||
return function(d) { return parseFloat(d[pop_field]) > 5000 || d.in_wiki; };
|
||||
}
|
||||
|
||||
function popularValues() {
|
||||
@@ -86,7 +77,7 @@ iD.taginfo = function() {
|
||||
|
||||
taginfo.keys = function(parameters, callback) {
|
||||
var debounce = parameters.debounce;
|
||||
parameters = clean(shorten(setSort(parameters)));
|
||||
parameters = clean(setSort(parameters));
|
||||
request(endpoint + 'keys/all?' +
|
||||
iD.util.qsString(_.extend({
|
||||
rp: 10,
|
||||
@@ -101,7 +92,7 @@ iD.taginfo = function() {
|
||||
|
||||
taginfo.values = function(parameters, callback) {
|
||||
var debounce = parameters.debounce;
|
||||
parameters = clean(shorten(setSort(setFilter(parameters))));
|
||||
parameters = clean(setSort(setFilter(parameters)));
|
||||
request(endpoint + 'key/values?' +
|
||||
iD.util.qsString(_.extend({
|
||||
rp: 25,
|
||||
|
||||
@@ -25,11 +25,11 @@ describe("iD.taginfo", function() {
|
||||
server.respond();
|
||||
|
||||
expect(query(server.requests[0].url)).to.eql(
|
||||
{query: "ame", page: "1", rp: "10", sortname: "count_all", sortorder: "desc"});
|
||||
{query: "amen", page: "1", rp: "10", sortname: "count_all", sortorder: "desc"});
|
||||
expect(callback).to.have.been.calledWith(null, [{"value":"amenity"}]);
|
||||
});
|
||||
|
||||
it("filters only popular nodes", function() {
|
||||
it("filters only popular keys", function() {
|
||||
var callback = sinon.spy();
|
||||
taginfo.keys({query: "amen"}, callback);
|
||||
|
||||
@@ -42,7 +42,7 @@ describe("iD.taginfo", function() {
|
||||
expect(callback).to.have.been.calledWith(null, [{"value":"amenity"}]);
|
||||
});
|
||||
|
||||
it("filters only popular nodes with an entity type filter", function() {
|
||||
it("filters only popular keys with an entity type filter", function() {
|
||||
var callback = sinon.spy();
|
||||
|
||||
taginfo.keys({query: "amen", filter: "nodes"}, callback);
|
||||
|
||||
Reference in New Issue
Block a user