Widget:Companies/Search: Difference between revisions
From TwogPedia
mNo edit summary |
mNo edit summary |
||
| (4 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
<div class="companies__search"> | <div class="companies__search"> | ||
<div style="display: flex;"> | <div style="display: flex; gap: 0.5rem;"> | ||
<div> | <div> | ||
<label style="display: block;" for="location__name">Name</label> | <label style="display: block;" for="location__name">Name</label> | ||
<input type="text" id="companies__name" placeholder="Name..."> | <input style="height: 30px; " type="text" id="companies__name" placeholder="Name..."> | ||
</div> | </div> | ||
<div> | <div> | ||
<label for="places">Type</label> | <label style="display: block;" for="places">Type</label> | ||
<select id="types" name="types" onchange="updateTemplate()"> | <select style="height: 30px; " id="types" name="types" onchange="updateTemplate()"> | ||
<option value="">Any</option> | <option value="">Any</option> | ||
<option value="Organization">Gaming Organization</option> | <option value="Organization">Gaming Organization</option> | ||
| Line 26: | Line 26: | ||
let type = document.getElementById("types").value; | let type = document.getElementById("types").value; | ||
if ( type !== '' ) parameters += '|type=' + document.querySelector(`option[value="${type}"]`). | if ( type !== '' ) parameters += '|type=' + document.querySelector(`option[value="${type}"]`).value | ||
let name = document.getElementById("companies__name").value; | let name = document.getElementById("companies__name").value; | ||
| Line 45: | Line 45: | ||
contentContainer.innerHTML = content.querySelector('#companies-search-container').outerHTML; | contentContainer.innerHTML = content.querySelector('#companies-search-container').outerHTML; | ||
} else { | } else { | ||
contentContainer.innerHTML = 'No | contentContainer.innerHTML = 'No companies found' | ||
} | } | ||
Latest revision as of 11:08, 17 April 2024
<label style="display: block;" for="location__name">Name</label> <input style="height: 30px; " type="text" id="companies__name" placeholder="Name...">
<label style="display: block;" for="places">Type</label> <select style="height: 30px; " id="types" name="types" onchange="updateTemplate()"> <option value="">Any</option> <option value="Organization">Gaming Organization</option> <option value="Locations">Locations</option> <option value="Sponsor">Sponsor</option> <option value="Organizer">Organizer</option> <option value="Other">Other</option> </select>
<script>
// Get the input and dropdown content elements
var input = document.getElementById("search--input");
function updateTemplate() {
var parameters = ;
let type = document.getElementById("types").value;
if ( type !== ) parameters += '|type=' + document.querySelector(`option[value="${type}"]`).value
let name = document.getElementById("companies__name").value;
if ( name !== ) parameters += '|name=' + name
var contentContainer = document.getElementById("companies--list");
// Use the selected template as a parameter in the parser function
var parserFunction = "Template:Companies/Search" + parameters + "";
// Replace the content in the dynamic content container with the parsed template
$.get(mw.util.wikiScript('api'), { action: 'parse', format: 'json', text: parserFunction }, function(data) {
var parsedContent = data.parse.text['*'];
var content = document.createElement('div')
content.innerHTML = parsedContent
if ( content.querySelector('.mw-parser-output #companies-search-container') ) {
contentContainer.innerHTML = content.querySelector('#companies-search-container').outerHTML;
} else {
contentContainer.innerHTML = 'No companies found'
}
}); }
// Name input to run 500ms after last input
let timeoutId;
document.getElementById('companies__name').addEventListener('input', function() {
// Clear previous timeout (if any)
clearTimeout(timeoutId);
// Set a new timeout for 500ms
timeoutId = setTimeout(updateTemplate, 500);
});
</script>
No categories