flows.md · documentação · Blocos

@form#

Um formulário que grava cada envio como uma linha de uma coleção do espaço: contato, inscrição, lista de espera, pesquisa.

Ao vivo#

Este é o formulário como ele sai numa página, com preview:true: os campos funcionam, mas o botão está desligado e nada é enviado — não há para onde enviar. Ele desenha a coleção contato-exemplo, declarada na página do @schema, que não aceita envios de ninguém mas pode ser lida por qualquer leitor — por isso a prévia aparece para você.

Example — this form sends nothing.

```@form collection:contato-exemplo preview:true submit:"Enviar mensagem"
nome
email required
mensagem
```

Um campo por linha, com o nome que ele tem na coleção. O tipo vem da coleção: um e-mail é conferido como e-mail, um texto longo vira uma caixa grande. No seu espaço, sem preview:true, o mesmo bloco grava cada envio como uma linha da coleção e responde com o texto de success:.

Numa linha só#

layout:inline põe o campo e o botão lado a lado — para uma lista de espera de um campo só.

Example — this form sends nothing.

```@form collection:contato-exemplo preview:true layout:inline submit:"Me avise"
email required
```

Só a aparência#

preview:true desenha o formulário sem nada que o envie, mesmo que a coleção não aceite ninguém: para uma documentação, a prévia de um tema ou de um modelo, um rascunho de página. Ele aparece para quem pode ler a coleção ou enviar por ela; para os outros, aparece o aviso de formulário fechado. Tire o preview:true quando a coleção estiver pronta para receber.

Outras formas#

  • scope:viewer pede que a pessoa entre e grava o envio no nome dela.
  • mode:edit own:true lista os envios da própria pessoa e deixa cada um ser mudado.
  • Com o corpo vazio, o formulário traz todos os campos que se pode escrever, na ordem da coleção.

O que precisa#

Uma coleção declarada com @schema que aceite quem vai enviar: accepts:anyone para qualquer leitor, accepts:members para as pessoas do espaço. Para quem a coleção não aceita, o formulário não aparece — a não ser como prévia, para quem pode ler a coleção. Para mostrar as respostas, um @data na mesma coleção.