מדיה ויקי:Gadget-autocomplete.js – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
לפי קרינקל
experimental support for suggestedvalues - idea of User:IKhitron
 
שורה 99:
var dfd = new jQuery.Deferred();
if (!templateName) return dfd.reject().promise();
if (templateDataCache[templateName]) return dfd.resolve(templateDataCache[templateName]).promise();
var api = new mw.Api();
api.get({
שורה 109:
for (var pageid in data.pages) {
templateDataCache[templateName] = data.pages[pageid];
dfd.resolve(templateDataCache[templateName]);
}
if (!templateDataCache[templateName]) dfd.reject();
שורה 155:
else if (mode === 'templateParams') {
var templateMatch = /(.+?)\|(?:.*\|)?([^=]+$)/.exec(txt);
var templateParamMatch = /(.+?)\|(?:.*\|)?([^=]+=[^=]+$)/.exec(txt);
$.when(resolveTempalte(templateMatch && templateMatch[1])).done(function() {
 
var curTemplateData = templateDataCache[templateMatch[1]],
$.when(resolveTempalte((templateMatch && templateMatch[1]) || (templateParamMatch && templateParamMatch[1]))).done(function(td) {
 
var curTemplateData = templateDataCache[templateMatch[1]]td,
suggestions = [],
curParamIndex = txt.split('|').length - 1;
if (templateParamMatch && !templateMatch) {
var paramNameVal = templateParamMatch[2].split('=');
if (paramNameVal[0] in curTemplateData.params && 'suggestedvalues' in curTemplateData.params[paramNameVal[0]]) {
mode = 'templateValue';
for (const suggestedVal of curTemplateData.params[paramNameVal[0]].suggestedvalues) {
if (suggestedVal.indexOf(paramNameVal[1])==0) suggestions.push(paramNameVal[0] + '=' + suggestedVal);
}
}
} else {
for (var paramName in curTemplateData.params) {
if (paramName == curParamIndex) {
שורה 180 ⟵ 192:
mode = 'templateValue';
break;
case 'string':
 
if ('suggestedvalues' in curTemplateData.params[paramName]){
mode = 'templateValue';
for (const suggestedVal of curTemplateData.params[paramName].suggestedvalues) {
if (suggestedVal.indexOf(paramValue)==0) suggestions.push(suggestedVal);
}
return res(suggestions);
} else
return res([]);
default:
return res([]); // dont suggest for this indexed param
שורה 190 ⟵ 212:
suggestions.push(paramName);
}
}
res(suggestions);
}).fail(res);
} else if (txt.indexOf('#') > -1) {