1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-13 21:26:28 +02:00

[ticket/13713] Rework batch size handling

PHPBB3-13713
This commit is contained in:
lavigor
2018-08-07 17:32:37 +03:00
committed by Marc Alexander
parent 35a81fce52
commit 8f21a7365d
15 changed files with 501 additions and 485 deletions

View File

@ -388,19 +388,19 @@ function getCaretPosition(txtarea) {
function Mentions() {
let $mentionDataContainer = $('[data-mention-url]:first');
let mentionURL = $mentionDataContainer.data('mentionUrl');
let mentionBatchSize = $mentionDataContainer.data('mentionBatchSize');
let mentionNamesLimit = $mentionDataContainer.data('mentionNamesLimit');
let mentionTopicId = $mentionDataContainer.data('topicId');
let mentionUserId = $mentionDataContainer.data('userId');
let queryInProgress = null;
let cachedNames = [];
let cachedAll = [];
let cachedSearchKey = 'name';
function defaultAvatar(type) {
return (type === 'group') ? '<svg class="mention-media-avatar" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path fill-rule="evenodd" d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></svg>' : '<svg class="mention-media-avatar" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path fill-rule="evenodd" d="M12,19.2C9.5,19.2 7.29,17.92 6,16C6.03,14 10,12.9 12,12.9C14,12.9 17.97,14 18,16C16.71,17.92 14.5,19.2 12,19.2M12,5A3,3 0 0,1 15,8A3,3 0 0,1 12,11A3,3 0 0,1 9,8A3,3 0 0,1 12,5M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z"/></svg>';
}
function getCachedNames(query) {
function getCachedKeyword(query) {
if (!cachedNames) {
return null;
}
@ -410,11 +410,11 @@ function getCaretPosition(txtarea) {
for (i = query.length; i > 0; i--) {
let startStr = query.substr(0, i);
if (cachedNames[startStr]) {
return cachedNames[startStr];
return startStr;
}
}
return cachedNames[''];
return '';
}
function getMatchedNames(query, items, searchKey) {
@ -442,7 +442,8 @@ function getCaretPosition(txtarea) {
return;
}
let cachedNamesForQuery = getCachedNames(query);
let cachedKeyword = getCachedKeyword(query),
cachedNamesForQuery = (cachedKeyword) ? cachedNames[cachedKeyword] : null;
/*
* Use cached values when we can:
@ -453,7 +454,7 @@ function getCaretPosition(txtarea) {
*/
if (cachedNamesForQuery &&
(getMatchedNames(query, cachedNamesForQuery, cachedSearchKey).length >= mentionNamesLimit ||
cachedNamesForQuery.length < mentionBatchSize)) {
cachedAll[cachedKeyword])) {
callback(cachedNamesForQuery);
return;
}
@ -462,7 +463,8 @@ function getCaretPosition(txtarea) {
let params = {keyword: query, topic_id: mentionTopicId, _referer: location.href};
$.getJSON(mentionURL, params, function(data) {
cachedNames[query] = data;
cachedNames[query] = data.names;
cachedAll[query] = data.all;
callback(data);
}).always(function() {
queryInProgress = null;