Die Seite wurde neu angelegt: „var CatTools = { modes: { AND: '', //TODO OR: '', //TODO WITHOUT: '', //TODO }, mode: CatTools.modes.AND, cat1: '', cat2: '', suggestions: [], con…“ |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
var CatTools = { | var CatTools = { | ||
mode: 'AND', | |||
cat1: '', | cat1: '', | ||
cat2: '', | cat2: '', | ||
| Zeile 14: | Zeile 9: | ||
results: [], | results: [], | ||
init: function(){ | init: function(){ | ||
// | $('#CatToolsInputWrapper').html( | ||
"<input id='CatToolsInputCat1' type='text' size='50' placeholder='Kategorie 1' list='CatToolsSugg1'>"+ | |||
"<select id='CatToolsInputMode'>"+ | |||
"<option value='AND' selected>und</option>"+ | |||
"<option value='OR'>oder</option>"+ | |||
"<option value='WITHOUT'>ohne</option>"+ | |||
"</select>"+ | |||
"<input id='CatToolsInputCat2' type='text' size='50' placeholder='Kategorie 2' list='CatToolsSugg2'>"+ | |||
"<datalist id='CatToolsSugg1'></datalist>"+ | |||
"<datalist id='CatToolsSugg2'></datalist>"+ | |||
"<input id='CatToolsSubmit' type='button' value='Seiten anzeigen'>" | |||
); | |||
$('#CatToolsInputCat1').on('keyup', function(){ | |||
CatTools.existsFeedback('CatToolsInputCat1'); | |||
CatTools.suggest('CatToolsInputCat1', 'CatToolsSugg1'); | |||
}); | |||
$('#CatToolsInputCat2').on('keyup', function(){ | |||
CatTools.existsFeedback('CatToolsInputCat2'); | |||
CatTools.suggest('CatToolsInputCat2', 'CatToolsSugg2'); | |||
}); | |||
$('#CatToolsSubmit').on('click', function(){ | |||
CatTools.reset(); | |||
CatTools.cat1=$('#CatToolsInputCat1').val(); | |||
CatTools.cat2=$('#CatToolsInputCat2').val(); | |||
CatTools.mode=$('#CatToolsInputMode option:selected').val(); | |||
CatTools.exec(); | |||
}); | |||
}, | }, | ||
suggest: function( | suggest: function(inputID, datalistID){ | ||
$.get(wgServer+wgScriptPath+'/api.php?action=opensearch&format=json&namespace=14&limit=10&search='+encodeURI( | $.get(wgServer+wgScriptPath+'/api.php?action=opensearch&format=json&namespace=14&limit=10&search='+encodeURI($('#'+inputID).val()), function(d){ | ||
if('string'==typeof d) d=JSON.parse(d); | if('string'==typeof d) d=JSON.parse(d); | ||
$('#'+datalistID).empty(); | |||
d[1].forEach(function(v){ | d[1].forEach(function(v){ | ||
$('#'+datalistID).append($('<option>')).attr('value',v.substring(10)); | |||
}); | }); | ||
}, 'json'); | }, 'json'); | ||
| Zeile 26: | Zeile 48: | ||
existsFeedback: function(inputID){ | existsFeedback: function(inputID){ | ||
var exists; | var exists; | ||
$.get(wgServer+wgScriptPath+'/api.php?action=query&format=json&titles='+encodeURI($(inputID).val()), function(d){ | $.get(wgServer+wgScriptPath+'/api.php?action=query&format=json&titles='+encodeURI($('#'+inputID).val()), function(d){ | ||
if('string'==typeof d) d=JSON.parse(d); | if('string'==typeof d) d=JSON.parse(d); | ||
if(d.query.pages.hasOwnProperty('-1')) exists = false; | if(d.query.pages.hasOwnProperty('-1')) exists = false; | ||
| Zeile 47: | Zeile 69: | ||
switch(CatTools.mode){ | switch(CatTools.mode){ | ||
default: | default: | ||
case | case 'AND': | ||
CatTools.cat1Results.forEach(function(v){ | CatTools.cat1Results.forEach(function(v){ | ||
if(CatTools.cat2Results.includes(v)) results.push(v); | if(CatTools.cat2Results.includes(v)) results.push(v); | ||
}); | }); | ||
break; | break; | ||
case | case 'OR': | ||
CatTools.cat1Results.forEach(function(v){ | CatTools.cat1Results.forEach(function(v){ | ||
if(!CatTools.results.includes(v)) results.push(v); | if(!CatTools.results.includes(v)) results.push(v); | ||
| Zeile 60: | Zeile 82: | ||
}); | }); | ||
break; | break; | ||
case | case 'WITHOUT': | ||
CatTools.cat1Results.forEach(function(v){ | CatTools.cat1Results.forEach(function(v){ | ||
if(!CatTools.cat2Results.includes(v)) results.push(v); | if(!CatTools.cat2Results.includes(v)) results.push(v); | ||
| Zeile 81: | Zeile 103: | ||
}, | }, | ||
render: function(){ | render: function(){ | ||
$('#CatToolsResultWrapper').show().append($('<ul>')); | |||
CatTools.results.forEach(function(v){ | CatTools.results.forEach(function(v){ | ||
$('#CatToolsResultWrapper').append($('<a>').attr('href','http://stargate-wiki.de/wiki/'+encodeURI(v)).attr('title',v).text(v)); | $('#CatToolsResultWrapper ul').append($('<li>')).append($('<a>').attr('href','http://stargate-wiki.de/wiki/'+encodeURI(v)).attr('title',v).text(v)); | ||
}); | }); | ||
}, | |||
reset: function(){ | |||
$('#CatToolsResultWrapper').hide().empty(); | |||
} | } | ||
}; | }; | ||
$(CatTools.init); | $(CatTools.init); | ||