From e144178c27f982ec9b61b4ec40ccb38eed9fe328 Mon Sep 17 00:00:00 2001 From: Araozu Date: Tue, 4 Jul 2023 21:52:45 -0500 Subject: [PATCH] [FE] Certificate: Sort by date. Improve course search field. --- .../batch_certs/BatchCerts.template.ts | 1 + .../certificate/certificate.template.ts | 1 + src/views/BatchCerts.tsx | 5 ++- .../NewRegister/SearchableSelect.tsx | 33 ++++++++++++++---- src/views/components/Registers.tsx | 6 ++-- static/favicon.png | Bin 0 -> 361911 bytes 6 files changed, 37 insertions(+), 9 deletions(-) create mode 100644 static/favicon.png diff --git a/src/controller/batch_certs/BatchCerts.template.ts b/src/controller/batch_certs/BatchCerts.template.ts index 8b23cdf..a3b1bd8 100644 --- a/src/controller/batch_certs/BatchCerts.template.ts +++ b/src/controller/batch_certs/BatchCerts.template.ts @@ -9,6 +9,7 @@ export function template(ssr: string): string { + Registrar certificados - EEGSAC + >([]); + onMount(ensureColors); + return (

diff --git a/src/views/components/NewRegister/SearchableSelect.tsx b/src/views/components/NewRegister/SearchableSelect.tsx index 5a26b1a..9cc7301 100644 --- a/src/views/components/NewRegister/SearchableSelect.tsx +++ b/src/views/components/NewRegister/SearchableSelect.tsx @@ -15,7 +15,14 @@ export function SearchableSelect(props: { const inputEl = ev.target as HTMLInputElement; // Clear current selection setSelected(null); - setFilter(inputEl.value.toLowerCase()); + + let filter: string = inputEl.value.toLowerCase(); + filter = filter.replace("á", "a"); + filter = filter.replace("é", "e"); + filter = filter.replace("í", "i"); + filter = filter.replace("ó", "o"); + filter = filter.replace("ú", "u"); + setFilter(filter); }; createEffect(() => { @@ -58,6 +65,21 @@ export function SearchableSelect(props: { }); } + const filteredOptions = () => { + const filterText = filter(); + + return props.subjects.filter((subject) => { + let subjectText = subject.nombre.toLowerCase(); + subjectText = subjectText.replace("á", "a"); + subjectText = subjectText.replace("é", "e"); + subjectText = subjectText.replace("í", "i"); + subjectText = subjectText.replace("ó", "o"); + subjectText = subjectText.replace("ú", "u"); + + return selected() === null && subjectText.indexOf(filterText) !== -1; + }); + }; + return ( <> {inputElement} @@ -65,15 +87,14 @@ export function SearchableSelect(props: {
- + {(s) => (