Patrones Índice de páginas
- Cómo pedimos información
- Cómo mostramos información
- Ayudar a resolver
- Páginas y flujos
- Cómo pedimos información
- Cómo mostramos información
- Ayudar a resolver
- Páginas y flujos
Acciones de tabla
Cómo mostramos información
Otorga más información sobre la tabla para hacerla más accesible y permite realizar acciones en lote.
Acerca de esta tabla
En la primera columna es posible seleccionar uno o más items pendientes. Puedes seleccionar todos los items pendientes con la casilla de verificación "Seleccionar todo".
La segunda columna contiene enlaces de acceso a los items.
Las cabeceras de columna tienen opción de ordenación.
Puedes realizar acciones sobre los items mediante los botones situados antes de la tabla.
Selección múltiple y Acciones sobre la tabla de items
Mostrar código del ejemplo: includes/_pattern.acciones-de-tabla.njk
Contenido
Nunjucks macro del ejemplo: includes/_pattern.acciones-de-tabla.njk
{% from "components/checkboxes/_macro.checkboxes.njk" import componentCheckboxes %}
{% from "components/details/_macro.details.njk" import componentDetails %}
{% from "components/menubar/_macro.menubar.njk" import componentMenubar %}
{# Instrucciones de funcionamiento de la tabla #}
{% call componentDetails({
"summary": {
"html": "Acerca de esta tabla"
},
"classes": "mb-xs text-sm"
}) %}
<div id="descTable1">
<p>En la primera columna es posible seleccionar uno o más items pendientes. Puedes seleccionar todos los items pendientes con la casilla de verificación "Seleccionar todo".</p>
<p>La segunda columna contiene enlaces de acceso a los items.</p>
<p>Las cabeceras de columna tienen opción de ordenación.</p>
<p>Puedes realizar acciones sobre los items mediante los botones situados antes de la tabla.</p>
</div>
{% endcall %}
{# Barra de Acciones #}
<section class="flex flex-col lg:flex-row lg:flex-wrap lg:w-full" aria-labelledby="acciones-items">
<h3 id="acciones-items" class="sr-only">Selección múltiple y Acciones sobre la tabla de items</h3>
<div class="lg:flex sm:flex-1">
<form action="#">
{{ componentCheckboxes({
"idPrefix": "todos-items",
"name": "todos-items",
"classes": "c-checkboxes--sm mt-sm -mb-xl ml-base",
"items": [
{
"value": "todas",
"text": "Seleccionar todo",
"classes": "-mt-base",
"label": {
"classes": "text-sm -mt-1"
}
}
]
}) }}
</form>
</div>
<div class="flex lg:items-start lg:ml-auto lg:pl-base order-first lg:order-last">
{{ componentMenubar({
"id": "actions-table-menubar",
"idPrefix": "actions-table",
"ariaLabel":"Acciones sobre los items seleccionados de la tabla",
"items": [
{
"text": "Importar items",
"ariaLabel": "Importar items",
"id": "actions-table-item-1",
"classes": "c-menubar__button--transparent c-menubar__button--sm mb-sm mr-sm",
"href": "#"
},
{
"text": "Aceptar",
"ariaLabel": "Aceptar",
"id": "actions-table-item-2",
"classes": "c-menubar__button--sm mb-sm mr-sm",
"href": "#"
},
{
"text": "Reenviar",
"ariaLabel": "Reenviar items seleccionados",
"id": "actions-table-item-3",
"classes": "c-menubar__button--sm mb-sm mr-sm",
"sub": {
"items": [
{
"role": "menuitem",
"text": "A una bandeja personal"
},
{
"role": "menuitem",
"text": "A un organismo"
}
],
"attributes": {
"aria-labelledby": "actions-table-item-3"
}
}
}
]
}) }}
</div>
</section>
{# fin Barra de Acciones #}
HTML del ejemplo: includes/_pattern.acciones-de-tabla.njk
<!-- details -->
<details class=" mb-xs text-sm">
<summary class="py-sm cursor-pointer focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black">
<span class="c-link">
Acerca de esta tabla
</span>
</summary>
<div class="py-sm">
<div>
<div id="descTable1">
<p>En la primera columna es posible seleccionar uno o más items pendientes. Puedes seleccionar todos los items pendientes con la casilla de verificación "Seleccionar todo".</p>
<p>La segunda columna contiene enlaces de acceso a los items.</p>
<p>Las cabeceras de columna tienen opción de ordenación.</p>
<p>Puedes realizar acciones sobre los items mediante los botones situados antes de la tabla.</p>
</div>
</div>
</div>
</details>
<!-- /details -->
<section class="flex flex-col lg:flex-row lg:flex-wrap lg:w-full" aria-labelledby="acciones-items">
<h3 id="acciones-items" class="sr-only">Selección múltiple y Acciones sobre la tabla de items</h3>
<div class="lg:flex sm:flex-1">
<form action="#">
<!-- checkboxes -->
<div class="c-form-group">
<div class="c-checkboxes c-checkboxes--sm mt-sm -mb-xl ml-base" data-module="c-checkboxes">
<div class=" -mt-base c-checkboxes__conditional-hidden">
<div class="relative flex items-start py-base">
<div class="flex items-center mx-sm">
<input class="w-6 h-6 transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base" id="todos-items" name="todos-items" type="checkbox" value="todas" aria-describedby=" ">
</div>
<div class="pt-0.5 leading-5">
<!-- label -->
<label class="block text-sm -mt-1" for="todos-items">Seleccionar todo</label>
<!-- /label -->
</div>
</div>
</div>
</div>
</div>
<!-- /checkboxes -->
</form>
</div>
<div class="flex lg:items-start lg:ml-auto lg:pl-base order-first lg:order-last">
<!-- menubar -->
<div id="actions-table-menubar" class="c-menubar">
<ul data-module="c-menubar" id="actions-table-menubar-menubar" class="lg:flex lg:flex-wrap" role="menubar" aria-label="Acciones sobre los items seleccionados de la tabla">
<li class="relative" role="none">
<a role="menuitem" id="actions-table-item-1" href="#" class="c-menubar__button c-menubar__button--transparent c-menubar__button--sm mb-sm mr-sm">
Importar items
</a>
</li>
<li class="relative" role="none">
<a role="menuitem" id="actions-table-item-2" href="#" class="c-menubar__button c-menubar__button--sm mb-sm mr-sm">
Aceptar
</a>
</li>
<li class="relative" role="none">
<a href="#" role="menuitem" aria-haspopup="true" aria-expanded="false" class="c-menubar__button c-menubar__button--sm mb-sm mr-sm" id="actions-table-item-3">
<span class="inline-flex self-center max-w-xs align-middle truncate">Reenviar</span>
<svg class="inline-block -mr-2 align-middle -my-px" viewBox="0 0 96 96" aria-hidden="true" fill="currentColor" focusable="false" width="1.5em" height="1.5em">
<g>
<path d="M46.71 58.037a1.823 1.823 0 002.581 0L62.048 45.28a1.823 1.823 0 00-1.29-3.113H35.243a1.823 1.823 0 00-1.291 3.113z" />
</g>
</svg></a>
<ul role="menu" class="c-menubar__tooltip w-max max-w-64 hidden border border-neutral-base shadow-md bg-white text-sm" aria-label="Reenviar items seleccionados" aria-labelledby="actions-table-item-3">
<li role="menuitem" id="sub-actions-table-item-3-1" data-option="sub-actions-table-item-3-1" class="flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white focus:bg-primary-base focus:text-white focus:outline-none">
A una bandeja personal
</li>
<li role="menuitem" id="sub-actions-table-item-3-2" data-option="sub-actions-table-item-3-2" class="flex items-center pr-base pl-lg py-sm cursor-pointer hover:bg-primary-base hover:text-white focus:bg-primary-base focus:text-white focus:outline-none">
A un organismo
</li>
</ul>
</li>
</ul>
</div>
<!-- /menubar -->
</div>
</section>
Cuándo lo utilizamos #
Qué componentes utilizamos #
Qué debes tener en cuenta #
- En el componente detalles (
Acerca de esta tabla
) debes explicar las funcionalidades de la tabla y el tipo de datos que contiene. - Las acciones deben estar dentro de un elemento
<section>
y tener un encabezado con.sr-only
que las describa.