segunda-feira, 10 de maio de 2021

[CRM-GT] - Javascript Functions (SDK)


Este artigo tem como objetivo documentar o uso de um importante recurso do meu sistema de gerenciamento com o cliente, o CRM-GT. Eu criei diversas funções Javascript para facilitar as customizações do sistema (client side).
Vamos a elas!








Appearance()
Namespace: CRMGT.UserConfig
  • mode – (Standard / Dark)
  • editFormAppearanceColor – hexadecimal da cor usada no formulário de edição
  • color – hexadecimal da cor usada de forma geral em todo Sistema

Profile()
Namespace: CRMGT.UserConfig
  • userId – Guid do usuário logado
  • userName – Nome do usuário logado
  • userEmail – E-mail do usuário logado
  • orgName – Nome da Organização do usuário logado
  • userProfile – Json contendo uma lista com todas as informações do perfil do usuário (ids, nomes dos departamentos/funções nos departamentos)

Segue um exemplo de retorno das propriedades citadas acima no Console do browser:


Delay(ms)
Namespace: CRMGT.Env
  • Suspende a execução de um código até que o tempo limite seja alcançado (parâmetro passado, em milisegundos)

IsMobileDevice()
Namespace: CRMGT.Env
  • True/False

IsEdge()
Namespace: CRMGT.Env
  • True/False

IsFireFox()
Namespace: CRMGT.Env
  • True/False

IsSafari()
Namespace: CRMGT.Env
  • True/False

IsOpera()
Namespace: CRMGT.Env
  • True/False

OrganizationName()
Namespace: CRMGT.Env
  • Retorna o nome da organização corrente

Language()
Namespace: CRMGT.Env
  • Retorna o idioma corrente do site (ptBr, enUs, etc)

ResizeFrame(resize [True|False])
Namespace: CRMGT.Env
  • Ativa / Desativa o resize automático de uma página do site

CanResizeFrame()
Namespace: CRMGT.Env
  • True/false – Consulta se pode efetuar o resize de uma página do site

FormatDateStringToISO(strDate)
Namespace: CRMGT.Env
  • Retorna uma data passada por parâmetro no formato ISO (International Organization for Standardization), levando em consideração o idioma corrente (CRMGT.Env.Language()):
  • Exemplo: 2019-06-21T15:32:00

HasFormAttachment()
Namespace: CRMGT.Page.Util
  • Retorna True|False se existe pelo menos 1 anexo no formulário.

HasTimeLineAttachment()
Namespace: CRMGT.Page.Util
  • Retorna True|False se existe pelo menos 1 anexo no componente [Time Line Annotation] do formulário.

BreakLineAfterAttribute(id, fromParentRecord [True|False])
Namespace: CRMGT.Page.Util
  • Adiciona uma quebra de linha, no formulário, [após] o campo especificado por parâmetro
    Exemplo: Após o campo [endereço] reposicionar os próximos na próxima linha da tela:

SetAttributeEntireLine(id, entireLinePos [True|False], fromParentRecord [True|False])
Namespace: CRMGT.Page.Util
  • Mantém o campo (passado por parâmetro) como único na linha de campos do formulário
    Exemplo:

HideSection(id, hide [True|False])
Namespace: CRMGT.Page.Util
  • Permite esconder/mostrar uma seção do formulário

HideAttribute(id, hide [True|False], fromParentRecord [True|False])
Namespace: CRMGT.Page.Util
  • Permite esconder/mostrar um campo do formulário

SetRequiredAttribute(id, required [True|False], fromParentRecord [True|False])
Namespace: CRMGT.Page.Util
  • Altera o atributo [required] de um campo no formulário

DisableAttribute(id, disable [True|False], fromParentRecord [True|False])
Namespace: CRMGT.Page.Util
  • Desabilita um campo no formulário

SetAttributeLabel(id, label, fromParentRecord [True|False])
Namespace: CRMGT.Page.Util
  • Altera o Label de um campo no formulário

SetLookupValue(lookupId, lookupValue, lookupLabel)
Namespace: CRMGT.Page.Util
  • Preenche um lookup, com seu Guid/Texto
  • Exemplo:
    CRMGT.Page.Util.SetLookupValue("accountid", "4f0e7903-5e54-4a11-b596-816a4546fe54", "Conta LTDA");
        

SetLookupOnChange(lookupId, fnOnChange)
Namespace: CRMGT.Page.Util
  • Atribui um método para ser executado no OnChange do lookup
  • Exemplo:
    CRMGT.Page.Util.SetLookupOnChange("accountid", "onChangeAccount()");
    

SetTreeViewOnChange(treeviewId, fnOnChange)
Namespace: CRMGT.Page.Util
  • Atribui um método para ser executado no OnChange do lookup do tipo TreeView

ClearTreeViewLookup(treeviewId)
Namespace: CRMGT.Page.Util
  • Limpa o conteúdo do lookup do tipo TreeView

GetLookup(lookupId, fromParentRecord [True|False])
Namespace: CRMGT.Page.Util
  • Retorna todos os dados de um lookup (objetos Id, Label e Value)
  • Exemplo:
    var accountId = CRMGT.Page.Util.GetLookup("accountid", true).Value;
    

FilterLookupValue(lookupId, value)
Namespace: CRMGT.Page.Util
  • Permite filtrar o conteúdo do lookup, para restringir os dados que serão mostrados para o usuário
  • Exemplo:
    Filtra o lookup para mostrar somente as [Unidades] de uma determinada [Instituição]:
    var instituicaoId = CRMGT.Page.Util.GetLookupObject("instituicao_a52bd16faf87_id", true).ObjectValue.val();
    var aFilter = [];
    var filter = new Object();
    filter.field = "instituicoesid";
    filter.type = "nnrelationship|unidade_instituicoes";
    filter.value = instituicaoId;
    aFilter.push(filter);
    CRMGT.Page.Util.FilterLookupValue("unidade_874773c8a682_id", aFilter);
    

GetLookupObject(lookupId, fromParentRecord)
Namespace: CRMGT.Page.Util
  • Semelhante ao GetLookup, porém, retorna com mais informações para o desenvolvedor
  • Exemplo:
    var accountId = CRMGT.Page.Util.GetLookupObject("accountid", true).ObjectValue.val();
    

GetAttribute(id, fromParentRecord [True|False])
Namespace: CRMGT.Page.Util
  • Retorna, como objeto jQuery, um elemento do DOM especificado.

SetAttributeValue(id, value, fromParentRecord [True|False])
Namespace: CRMGT.Page.Util
  • Atualiza o valor de um elemento do DOM especificado.

SetRichTextAttributeValue(id, value, fromParentRecord [True|False])
Namespace: CRMGT.Page.Util
  • Atualiza o valor de um elemento [RichText] especificado.

GetRichTextAttributeValue(id, fromParentRecord [True|False])
Namespace: CRMGT.Page.Util
  • Obtém o valor de um elemento [RichText] especificado.

IsRichTextAttributeValueEmpty(id, fromParentRecord [True|False])
Namespace: CRMGT.Page.Util
  • True/False - Verifica se o conteúdo de um elemento [RichText] está vazio.

FetchData(entityName, sqlFields, objSearchValue)
Namespace: CRMGT.Page.Util
  • Retorna um json com os registros da tabela especificada no parâmetro
  • Exemplo:
    Faz um SELECT na tabela de [incident], retorna o campo [incidentStatusId]
    onde o campo [originatingrecordid] seja igual a variável [incidentId]:
    var incidentId = CRMGT.Page.Util.GetEntityRecordId();
    var aSearch = [];
    var search = new Object();
    search.field = "originatingrecordid";
    search.type = "uniqueidentifier";
    search.value = incidentId;
    aSearch.push(search);
    var data = CRMGT.Page.Util.FetchData('incident', 'incidentStatusId', aSearch);
    

GetEntityName()
Namespace: CRMGT.Page.Util
  • Retorna o nome da tabela do formulário corrente

GetEntityMetadataId()
Namespace: CRMGT.Page.Util
  • Retorna o Guid da tabela do formulário corrente (no metadados do sistema)

GetEntityRecordId()
Namespace: CRMGT.Page.Util
  • Retorna o Guid do Registro para a tabela corrente

GetIndexRecordId()
Namespace: CRMGT.Page.Util
  • Retorna o Guid do Registro para a tabela corrente, no formulário de LISTA de registros

GetCanSaveRecord()
Namespace: CRMGT.Page.Util
  • True/false – Verifica se pode salvar um registro corrente no formulário

SetCanSaveRecord(value [True|False])
Namespace: CRMGT.Page.Util
  • Determina se pode salvar um registro corrente no formulário

FormMode()
Namespace: CRMGT.Page.Util
  • Retorna o Modo corrente do formulário:
  • Create
  • Edit
  • Send

ShowDialog(action, _width, _height, _title, callFunc, closePreviousDialog, overflow, btns, fnCloseCallback)

  • action - URL para visualização na Dialog
  • _width, _height - valor númerico (em pixels)
  • _title - Título da janela
  • callFunc - Executa uma function quando a janela é Aberta. Passe o nome da function desejada neste parâmetro.
  • closePreviousDialog - True|False - Fecha uma janela aberta (via ShowDialog) se existir
  • overflow - Valores possíveis - visible, hidden, scroll e auto (valor padrão)
  • btns - Adiciona um conjunto de botões customizados.
    Exemplo:
    var btns = {};
    btns["OK"] = function () {
    	MyFunc();
    };
    btns["Cancelar"] = function () {
    	CloseDialog();
    };
    
  • fnCloseCallback - Executa uma function quando a tela é Fechada.
    Passe o nome da function (ou anônima) desejada neste parâmetro.
    Exemplo:
    ShowDialog("/MyWebSite/Index", 850, 650, null, null, null, null, null, function () {
    	// My JS code...
    });
    

ShowConfirmDialog(message, btnLabelYes, btnLabelNo, callbackFunc_Yes, callbackFunc_No)

  • message - Texto da mensagem
  • btnLabelYes - Label para o botão [yes]
  • btnLabelNo - Label para o botão [no]
  • callbackFunc_Yes - Executa uma function quando o usuário clica no botão [yes]. Passe o nome da function desejada (ou anônima) neste parâmetro.
  • callbackFunc_No - Executa uma function quando o usuário clica no botão [no]. Passe o nome da function desejada (ou anônima) neste parâmetro.
  • Exemplo:
    ShowConfirmDialog(
    	"Confirma a exclusão?",
    	"Sim",
    	"Não",
    	function () {
    		DeleteRecordById(_id);
    	},
    	function () {
    		CloseDialog();
    	}	
    );
    

ShowAlert(message, width, centerText, textFontSize, callbackFunc)

  • message - Texto da mensagem
  • width - largura da janela
  • centerText - True|False
  • textFontSize - Exemplo: font-size:12px; (O valor padrão é de 20px)
  • callbackFunc - Executa uma function quando a janela é Fechada. Passe o nome da function desejada (ou anônima) neste parâmetro.
  • Exemplo:
    ShowAlert("Processo concluído...", 500, false, "font-size:15px;", function () {
    	MyFunc();
    });
    

Nenhum comentário:

Postar um comentário

<< Ao enviar um comentário, favor clicar na opção [Enviar por e-mail comentários de acompanhamento para gtezini@gmail.com] >>