The page provides two complementary controls for navigating the catalog: a set of category filter buttons and a free-text search input. Both controls call the sameDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/val20-11/Pagina-de-Seminarios-y-Eventos-UIM/llms.txt
Use this file to discover all available pages before exploring further.
filtrar() function, which computes the intersection of the active category and the search term, then passes the result to renderCards().
Filter toolbar
The toolbar is declared inreestructuracion.html and styled in css/components.css. It sits above the card grid inside .filter-toolbar.
reestructuracion.html
Filter buttons
Each button carries a
data-filter attribute. The value matches the tipo field in the seminarios array ('todos', 'anual', 'permanente', 'especial'). The active button receives the .active class, switching it to a solid #003B6F background.Search input
#searchInput fires the input event on every keystroke. There is no debouncing — filtrar() runs synchronously on each character change, which is adequate for a 31-item dataset.Active button styles
css/components.css
The filtrar function
filtrar() reads the current state of both controls and delegates rendering to renderCards():
js/seminarios.js
Category match logic
Category match logic
When
active is 'todos', catMatch is always true and every seminar passes the category check. For any other value ('anual', 'permanente', 'especial'), the seminar’s tipo field must match exactly.Text match logic
Text match logic
term is compared against three fields — titulo, objetivo, and responsable — using case-insensitive includes. A seminar passes if the term appears in any of the three fields. An empty search term matches every seminar because ''.includes('') is always true.Combined result
Combined result
Both conditions must be
true simultaneously (catMatch && textMatch). Selecting Anuales and typing a keyword, for example, returns only annual seminars whose title, objective, or responsible person contains that keyword.Event wiring
js/seminarios.js
The
#searchBtn (“Ir”) button visible in the HTML has no dedicated event listener in seminarios.js. Filtering already happens on the input event, so pressing the button only submits the form’s default action (none), leaving the current results in place.Filter button reference
| Button label | data-filter value | Seminars shown |
|---|---|---|
| Todos | todos | All 31 seminars |
| Anuales | anual | 14 annual seminars |
| Permanentes | permanente | 15 permanent seminars |
| Otros | especial | 2 special seminars |