Criar Instância com Campos Auto-Preenchidos
(Funcionalidade de Clipboard / Auto-Paste)
Esta funcionalidade é ideal para:
- Gerar links que abrem uma nova instância com valores por defeito
- Passar dados entre ecrãs usando URLs
Isto é feito passando um objeto JSON na URL, que especifica:
- Os campos a pré-preencher
- Definições de comportamento opcionais (colar automaticamente, tornar só de leitura)
Como Funciona
Estrutura de exemplo:
| Operação | Sintaxe | Argumentos |
|---|---|---|
| criar | #/instance/create/<id>/data={"opts":{...},"fields":[...]} | <id> é o id da definção |
| editar | #/instance/<id>/data={"opts":{...},"fields":[...]} | <id> é o id da instância |
Opções (opts):
Se omitidas, a funcionalidade usa os comportamentos padrão, sendo cada valor "false".
auto-paste-if-empty
true →Cola automaticamente o valor apenas se o campo estiver vaziofalse →Mostra um botão junto ao campo que o utilizador pode clicar para colarreadonly-on-paste
true →Depois de colar, o campo torna-se só de leiturafalse →O campo permanece editável
Campos (fields):
Each atribuition looks like:
{"value":"`valor1`","fieldDefinition":{"name":"`campo1`"}},
{"value":"`valor1`","fieldDefinition":{"name":"`campo2`"}},
...Exemplo de utilização
Exemplo Básico
O cenário mais comum é criar uma instância com valores preenchidos, e pode ser usado da seguinte forma:
- se queremos criar uma instância da definição 161
- e preencher os campos da seguinte forma:
| nomde do campo | -> | valor do campo a preencher |
|---|---|---|
| Type | -> | Mission |
| Amount | -> | small |
#/instance/create/161/data={
"opts": { "auto-paste-if-empty": true, "readonly-on-paste": false },
"fields": [
{"value":"Mission","fieldDefinition":{"name":"Type"}},
{"value":"small","fieldDefinition":{"name":"Ammout"}}
]
}Com as opções selcionadas: "auto-paste-if-empty": false, "readonly-on-paste": true Este é o comportamento obtido:

Os valores não são colados automáticamente, e a opção de os colar aparece ao lado de cada campo

quando os valores são colados, os campos tornam-se apenas de leitura
Exemplo com Expressões Recordm
Num caso onde temos os campos valor e tipo e queremos construir uma ligação para criar outra instância e colar esses valores. Abaixo está um exemplo prático usado dentro do Recordm para gerar um link dinâmico que cria uma instância e pré-preenche dois campos:
$link $auto.text(valor,tipo).join('#/instance/create/294/data={
"opts":{"auto-paste-if-empty":true, "readonly-on-paste": false},
"fields":[
{"value":"',valor,'","fieldDefinition":{"name":"valor"}},
{"value":"',tipo,'","fieldDefinition":{"name":"Tipo"}}
]
}')
Este link cria uma instância da definição 294 com os valores pré-definidos valor e Tipo.

O valor de Tipo é automaticamente colado devido à opção "auto-paste-if-empty": true
Como valor é "$[*grande,pequeno]", o valor já está preenchido como grande, e haverá uma opção para colar
