new Link(name, target [, processKey] [, newTab])
Define um atalho para auxiliar o fluxo das interações ou para executar códigos sem sair da interação corrente. Através de um atalho podemos ir para uma interação dentro ou fora do processo.
Parameters:
Name | Type | Argument | Description |
---|---|---|---|
name |
string | Nome do atalho. O valor informado também será utilizado como o texto do botão, caso não a propriedade #label não seja informada. |
|
target |
string | function | Poderá ser informado:
|
|
processKey |
number |
<optional> |
Parâmetro opcional que indica a chave do processo que contém a atividade ou interação informada no parâmetro "target". Será considerado o processo corrente quando não for informado. |
newTab |
boolean |
<optional> |
Parâmetro opcional que indica se deve ser criada uma nova aba para exibir a interação ou atividade informada em "target". Será considerado "false" quando não for informado. |
Examples
// O exemplo ilustra a criação de um link definindo uma função que será // executada ao se clicar nele, também ilustra a passagem de parâmetro obtido a partir do link. const linkEspelhoDoPedido = this.link('consultaEspelhoDoPedido', function (lnk) { const chaveProcesso = -1; process.setNextInteraction('run', ['chave', lnk.params.chave], chaveProcesso, null, true); }); linkEspelhoDoPedido.params['chave'] = this.ds.chave;
// O exemplo ilustra a criação de um link que irá para a interação "geraPedido". const link = this.link('linkGeraPedido', 'geraPedido');
// O exemplo ilustra a criação de um link que irá executar a interação // "query" do processo indicador por "chaveProcesso" e abrirá em uma nova aba, também // ilustra a passagem de parâmetros para essa interação através do link. const link = this.link('cadastro', 'query', chaveProcesso, true); link.params['chave'] = this.ds.num('chave'); link.params['versao'] = this.ds.num('versao');
Members
-
<static> createProcess :function
-
Função chamada quando a ação precisa criar um processo. Essa propriedade é configurada automaticamente pelo Web Framework.
Type:
- function
-
autoSanitize :boolean
-
Determina se texto do atalho deve ser tratado para remover tags que possam ser utilizadas com o objetivo de injetar scripts maliciosos em ataques do tipo Cross Site Scripting (XSS).
Ao desativar esta propriedade, é de crítica importância que algum tipo de validação ou sanitização seja realizada no conteúdo a ser escrito na tela.
Type:
- boolean
-
createNewTab :boolean
-
Indica se deverá ser aberta uma nova aba para exibir o conteúdo da interação ou atividade apontada por esta âncora.
Type:
- boolean
-
cssClass :string
-
Classe CSS complementar que será utilizada para configurar o visual do atalho. Essa classe será adicionada à classe padrão do link, portanto a configuração visual especializada deverá considerar as configurações visuais padrão.
Deve ser informada apenas o nome da classe CSS.
Type:
- string
Example
const link = this.link('example', 'interaction'); link.cssClass = 'custom-link';
-
enabled :boolean
-
Indica se o componente pode ser acionado pelo usuário. Quando desabilitado, ele estará visível, mas com uma cor diferente, sinalizando que não pode ser clicado.
Type:
- boolean
-
hint :string
-
Mensagem que será exibida para o usuário final quando ele passar o mouse sobre o componente.
Type:
- string
-
label :string
-
Texto que será exibido para o usuário. Caso não seja informado, será utilizado o valor da propriedade "name".
Type:
- string
-
name :string
-
Nome único do componente informado ao construtor.
Type:
- string
-
nextInteractionName :string
-
Nome da interação ou atividade que será exibida quando o componente for acionado.
Type:
- string
-
nextProcessId :string
-
Id da instância de um processo que contém a atividade ou interação informada na propriedade "nextInteractionName". Quando esta propriedade é informada, um processo já aberto pelo usuário será navegado para a interação ou atividade informada em "nextInteractionName".
Type:
- string
-
nextProcessKey :number
-
Chave do processo que contém a atividade ou interação informada na propriedade "nextInteractionName". Será considerado o processo corrente quando não for informado.
Type:
- number
-
parameters :Array
-
Nomes dos parâmetros que serão passados para o processo destino ou para o evento "onClick" quando este link for utilizado. Os valores devem ser informados por outra API, como o
writeLink
doSimpleLayout
. Opcionalmente, também pode ser informado um array com o nome e o valor do parâmetro.O uso desta propriedade em colunas do SimpleLayout com múltiplos links requer a atenção de garantir que todos os links utilizem a mesma quantidade de parâmetros, pois o mesmo conjunto de valores será passado para os links. Nesse cenário de uso, deve-se preferir utilizar a propriedade
params
.Caso os mesmos nomes de propriedades sejam definidos em
parameters
eparams
, será dada preferência aos valores definidos emparameters
se forem informados os valores dos parâmetros. Os valores definidos emparameters
sobrescrevem os definidos emparams
na escrita do Link.Esta propriedade é legada e mantida apenas para fins de compatibilidade. Em novas implementações, utilize apenas a propriedade
params
.Type:
- Array
- Deprecated:
-
- Utilize a propriedade `params`.
Example
link.parameters.push('eventKey'); link.parameters.push('description'); link.parameters.push(['action', ds.str('action')]); sl.writeLink(ds.num('iKey'), [ds.num('iKey')], ds.str('iDescription'));
-
params :Record.<string, (string|number|boolean|Date|null)>
-
Parâmetros que serão passados para o processo destino ou para o evento "onClick" quando este link for clicado.
Esta propriedade é um objeto que associa os nomes das propriedades ao seus valores. As propriedades informadas serão definidas no processo destino quando o link for acionado. Somente podem ser informados valores primitivos ou datas.
Type:
- Record.<string, (string|number|boolean|Date|null)>
Example
link.params.eventKey = ds.num('iKey'); link.params.description = ds.str('iDescription');
-
paramsFieldNames :Array.<string>
-
Nomes de campos do dataSet da grade que servirão de parâmetros para o atalho. Caso seja informado uma lista textual de campos, ela será convertida automaticamente em um array de nomes.
Por padrão, os valores dos campos serão publicados como propriedades de mesmo nome no processo, portanto, é recomendado que os nomes sejam normalizados em caixa baixa. Este comportamento é alterado quando existem parâmetros abertos definidos em
parameters
. Nesse cenário, os campos serão publicados com os nomes dos parâmetros abertos na posição correspondente deparamsFieldNames
.Type:
- Array.<string>
Examples
const link = this.link('myLink'); link.paramsFieldNames = ['chcriacao', 'classe'];
const link = this.link('myLink'); link.paramsFieldNames = ['CHCRIACAO', 'CLASSE']; link.parameters = ['chaveDeCriacao', 'classeDoRegistro'];
-
parent :Field|Column
-
Objeto que contém este atalho. Poderá ser uma instância de:
- Field, para os atalhos definidos em um campo de grade;
- Column, para os atalhos de uma coluna de um relatório.
Type:
- Field | Column
- See:
-
permissionKeyWord :string
-
Palavra chave utilizada para controlar o poder do usuário em disparar esta âncora. Se o usuário não tiver permissão, o componente será exibido desabilitado, independente do valor da propriedade "enabled".
Quando informado, o usuário ou o seu grupo deverão ter ao menos uma permissão que contenha a palavra chave definida. A permissão deve ser concedida no processo Admin > Segurança > Permissões, selecionado o processo na árvore de diretórios e arquivos, e adicionando um registro na grade de permissões e preenchendo o campo "Palavras Chaves".Type:
- string
-
process :Process
-
Instância do processo onde este objeto foi criado.
Type:
- Process
-
size :string
-
Controla o tamanho do texto do
Link
. Valores possíveis: "small", "default" ou "large".Um valor vazio será considerado como o valor "default". O tamanho irá se ajustar às configurações de densidade variável do Web Framework.
Type:
- string
- See:
-
- module:@nginstack/web-framework/lib/anchor/LinkSize
Example
const link = this.link('example', 'interaction'); link.size = 'small'; link.write('Small link');
-
srcId :string
-
Identificação do arquivo que será descarregado pelo navegador quando o usuário clicar no link. Essa identificação é gerada pelo método Process.prototype.getFileId.
O uso desta API não é mais recomendado, pois a sessão do usuário é bloqueada enquanto o arquivo é descarregado. Prefira utilizar o método Process.prototype.download.
Type:
- string
- See:
Examples
// O exemplo ilustra a criação de um link que irá fazer o download do // arquivo "Arquivo temporário.txt" this._download_file = this.link('_download_file'); this._download_file.srcId = this.getFileId(path, 'Arquivo temporário.txt');
// O exemplo ilustra a criação de um link que irá fazer o download do // script -1898145534 this._download_script = this.link('_download_script'); this._download_script.srcId = this.getFileId(-1898145534, 'Incrementar conexões.reg');
-
validateLastInteraction :boolean
-
Determina se os componentes da interação corrente serão notificados que irá ocorrer uma navegação para uma outra interação, possibilitando que os componentes notificados tomem ações para validar os seus estados, podendo inclusive cancelar o comando de navegação do usuário.
A ação de validação irá variar entre os componentes notificados. Por exemplo: a grade irá executar um "post" caso o registro atual se encontre em edição e irá bloquear a navegação caso o registro não possa ser gravado.Type:
- boolean
Methods
-
assign(obj)
-
Atribui as propriedades desta instância com os valores das propriedades da instância informada.
Parameters:
Name Type Description obj
Link Objeto do qual se deseja obter os valores.
-
clone()
-
Cria uma cópia desta instância.
Returns:
- Type
- Link
-
getHtml(content [, parametersValue] [, cssClass])
-
Semelhante ao método Link.write(), porém não escreve diretamente na tela, mas retorna o conteúdo HTML do link para que possa ser armazenado e posteriormente utilizado.
Parameters:
Name Type Argument Description content
string Conteúdo que deverá ser impresso no link. Se não for informado, será impresso o rótulo ou o nome do link.
parametersValue
string <optional>
Valores dos parâmetros. Prefira utilizar a propriedade #params.
cssClass
string <optional>
Classe CSS adicional do link. Prefira utiliza a propriedade #cssClass.
Returns:
- Type
- string
-
restoreParameters(storedParametersId)
-
Restaura os parâmetros do link preservados anteriormente pelo método
storeParameters
.Parameters:
Name Type Description storedParametersId
string Id retornado pelo método
storeParameters
. -
storeParameters( [openParameterValues])
-
Persiste os parâmetros do link e retorna um id que permite a sua posterior restauração pelo método
restoreParameters
.Parameters:
Name Type Argument Description openParameterValues
Array <optional>
Valores dos parâmetros abertos declarados em
parameters
.Returns:
Id que identifica os parâmetros armazenados.
- Type
- string
-
updateFieldParams(rowId)
-
Atualiza o propriedade
params
com os valores dos campos definidos emparamsFieldNames
.Parameters:
Name Type Description rowId
number Identificador do registro do qual serão lidos os campos.
-
write(content [, parametersValue] [, cssClass])
-
Escreve o atalho na tela.
Parameters:
Name Type Argument Description content
string Conteúdo que deverá ser impresso no link. Se não for informado, será impresso o rótulo ou o nome do link.
parametersValue
string <optional>
Valores dos parâmetros. Prefira utilizar a propriedade #params.
cssClass
string <optional>
Classe CSS adicional do link. Prefira utiliza a propriedade #cssClass.
Returns:
- Type
- string