Class: Link

@nginstack/web-framework/lib/anchor/Link~ Link


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:

  • nome de uma interação;
  • nome de uma atividade;
  • função que será atribuída ao evento onClick do botão.
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 do SimpleLayout. 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 e params, será dada preferência aos valores definidos em parameters se forem informados os valores dos parâmetros. Os valores definidos em parameters sobrescrevem os definidos em params 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 de paramsFieldNames.

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 em paramsFieldNames.

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