forked from mirrors/bookwyrm
Uses datalist for autocomplete suggestions
This commit is contained in:
parent
380087da90
commit
2746318152
3 changed files with 4 additions and 18 deletions
|
@ -606,13 +606,6 @@ details[open].details-panel summary .details-close {
|
||||||
right: 1em;
|
right: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Autocomplete suggestions
|
|
||||||
******************************************************************************/
|
|
||||||
.autocomplete-suggestions {
|
|
||||||
position: fixed;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Tooltips
|
/** Tooltips
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
|
|
|
@ -21,25 +21,17 @@
|
||||||
// Get suggestions
|
// Get suggestions
|
||||||
let suggestions = getSuggestions(input.value, mimetypeTrie);
|
let suggestions = getSuggestions(input.value, mimetypeTrie);
|
||||||
|
|
||||||
const boxId = input.id + "_suggestions";
|
const boxId = input.getAttribute("list");
|
||||||
|
|
||||||
// Create suggestion box, if needed
|
// Create suggestion box, if needed
|
||||||
let suggestionsBox = document.getElementById(boxId);
|
let suggestionsBox = document.getElementById(boxId);
|
||||||
|
|
||||||
if (!suggestionsBox) {
|
|
||||||
suggestionsBox = document.createElement("ul");
|
|
||||||
suggestionsBox.id = boxId;
|
|
||||||
suggestionsBox.classList.add("autocomplete-suggestions", "box");
|
|
||||||
|
|
||||||
input.insertAdjacentElement("afterend", suggestionsBox);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clear existing suggestions
|
// Clear existing suggestions
|
||||||
suggestionsBox.innerHTML = "";
|
suggestionsBox.innerHTML = "";
|
||||||
|
|
||||||
// Populate suggestions box
|
// Populate suggestions box
|
||||||
suggestions.forEach(suggestion => {
|
suggestions.forEach(suggestion => {
|
||||||
const suggestionItem = document.createElement("li");
|
const suggestionItem = document.createElement("option");
|
||||||
|
|
||||||
suggestionItem.textContent = suggestion;
|
suggestionItem.textContent = suggestion;
|
||||||
suggestionsBox.appendChild(suggestionItem);
|
suggestionsBox.appendChild(suggestionItem);
|
||||||
|
|
|
@ -27,7 +27,8 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="column is-one-fifth">
|
<div class="column is-one-fifth">
|
||||||
<label class="label" for="id_filetype">{% trans "File type:" %}</label>
|
<label class="label" for="id_filetype">{% trans "File type:" %}</label>
|
||||||
<input type="text" name="filetype" maxlength="5" class="input" required="" id="id_filetype" value="{% firstof file_link_form.filetype.value "" %}" placeholder="PDF" data-autocomplete="mimetype">
|
<input type="text" name="filetype" maxlength="5" class="input" required="" id="id_filetype" value="{% firstof file_link_form.filetype.value "" %}" placeholder="PDF" list="mimetypes-list" data-autocomplete="mimetype">
|
||||||
|
<datalist id="mimetypes-list"></datalist>
|
||||||
{% include 'snippets/form_errors.html' with errors_list=file_link_form.filetype.errors id="desc_filetype" %}
|
{% include 'snippets/form_errors.html' with errors_list=file_link_form.filetype.errors id="desc_filetype" %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue