Como configurar um filtro exposto em uma exibição usando um seletor de datas?

11

Como posso configurar um filtro exposto para que os usuários possam filtrar o conteúdo do meu site pela data de criação, de preferência usando um seletor de datas?

Tentei usar o conteúdo: Autorizado como filtro, mas obtive um campo de texto para inserir a data para inserir uma data / hora no formato aaaa-mm-dd hh: mm: ss , o que dificulta a inserção da data para os usuários e mais propenso a erros.

Qual é a diferença entre o Drupal 8 e o Drupal 7 com vistas 7.x-3?

Sam
fonte
Você já tentou adicionar um dos filtros "Conteúdo: criado" (existem diferentes tipos) e expô-lo?
mpdonadio
Não foi possível encontrar o filtro "Conteúdo: criado". Tenha apenas "Conteúdo: Autor em", "revisão de conteúdo: Autor em" e "Termo de taxonomia: Data de publicação".
Sam
Foi pela memória. O "Conteúdo: criado em" funciona?
mpdonadio
"Conteúdo: criado" fornece uma caixa de entrada para os usuários inserirem a data no formato aaaa-mm-dd hh: mm: ss, o que é muito complicado. Como mostrar uma lista suspensa de data, mês e ano ou selecionador de data?
Sam
3
Isso ainda não é suportado, drupal.org/node/2648950 Espero que seja encerrado esta semana e no 8.2.x.
mpdonadio

Respostas:

1

Há um novo patch lançado há alguns dias, eu testo em um projeto e funciona bem. Aqui está o problema:

Use o elemento de formulário do tipo data em vez do campo de texto ao selecionar uma data em um filtro exposto

Problema / Motivação

Ao adicionar um filtro exposto à data e hora, não posso simplesmente selecionar uma data - tenho que inserir manualmente uma data com um UX muito ruim.

E o patch é o número 65

Adrian Cid Almaguer
fonte
1

O módulo Better Exposed Filters se integra aos campos de tipo de data, incluindo o pop-up de data. Você pode usar este módulo para adicionar facilmente um filtro exposto com o pop-up da data.

Está em beta por enquanto, mas você pode usá-lo.

Lovejit S.
fonte
Caso você esteja usando a API da entidade para adicionar campos (via BaseFieldDefinitions), em vez da API do campo: o BEF não funciona para campos de data e hora, apenas para registros de data e hora.
aaronbauman 26/09/18
1

Adicione o selecionador de data do jquery para essa página como dependência. your_theme.libraries.yml

date-picker:
  js:
    script/site-datepicker.js : {}
  dependencies:
    - core/jquery
    - core/jquery.ui.datepicker

site-datepicker.js

Drupal.behaviors.customDatepicker = {
  attach: function (context, settings) {
    jQuery(function () {
      jQuery("#datepicker").datepicker({
        dateFormat: "dd-mm-yy",
        altField: "input[data-drupal-selector=edit-created]",
        altFormat: "yy/mm/dd 23:59:59"
      });
    });
  }
};

views- expos -- form-- views-block-name .html.twig

{% if q is not empty %}
  {#
    This ensures that, if clean URLs are off, the 'q' is added first,
    as a hidden form element, so that it shows up first in the POST URL.
  #}
  {{ q }}
{% endif %}

<input id="datepicker" type="text">
<input data-drupal-selector="edit-created" data-msg-maxlength="This field field has a maximum length of 128." name="created" size="30" maxlength="128" aria-invalid="false" type="hidden">
{{ form|without('created') }}
Razeem Ahmad
fonte