Árvore de páginas

       Uma página desenvolvida poderá ter a necessidade de manter (gravar, recuperar e eliminar) informações por usuário. Tais informações poderão ser utilizadas pela própria página ou reaproveitadas em outras execuções da mesma. Dentro do TOTVS  HTML Framework está informação é tratada como o perfil da página por usuário. 

       O perfil de uma página por usuário poderá manter informações importantes que poderão ser usadas pelo usuário na utilização da página (informações do usuário, do módulo, da empresa relacionado ao usuário, informações de filtros de campos, preferências do usuário, etc) ou ainda em funcionalidades da própria página, como cálculos e processamentos (informações de constantes por usuário, parâmetros de execução, etc). 

TOTVSProfile


       O módulo TotvsProfile é o responsável por tratar do gerenciamento do perfil da página por usuário, podendo gravar, recuperar ou eliminar informações junto a um serviço REST do produto (formato remoto) ou via cache do navegar (formato local). O mesmo é representado como provider $totvsprofile e utiliza o usuário corrente disponível em $rootScope.currentuser.login.

Configuração


        Cada produto deverá desenvolver um serviço REST que terá por objetivo prover informações do perfil da página por usuário quando solicitado (via formato remoto).

        A URL do serviço REST deverá ser informado no arquivo config-app.js, conforme exemplo:

var APP_REST_PROFILE = '/rest/resources/api/totvs-profile';

Importante: Este serviço REST deverá ser criado uma única vez pela equipe de foundation do produto e reutilizado por todos os desenvolvedores.

Adição do módulo


       Para utilização do módulo é necessária apenas a injeção da dependência no local onde o mesmo será utilizado, conforme exemplo abaixo:

// Injeção da dependência do módulo //
serviceFilterHelper.$inject = ['$rootScope', '$totvsprofile'];
 
// Utilização do provider //
function serviceFilterHelper($rootScope, $totvsprofile) {
     
};

Remoto


        Para utilização do formato de gravação, eliminação e recuperação remoto, via serviço REST oferecido pelo produto, é necessário a utilização da sintaxe $totvsprofile.remote. Neste formato, temos três métodos, um de set (para gravação de dados), um de get (para recuperação de dados) e um de remove (para remoção de dados).

$totvsprofile.remote.set

Parâmetros de entrada:

  • Página - Exemplo: /pagina1/pagina1
  • Objeto - Contendo uma coleção de valores a serem gravados (poderá ser um objeto simples ou um array de objetos contendo os atributos dataCode e dataValue).

  • Função de Callback - Recebendo o retorno do serviço REST.

// Definição de objeto simples contendo os atributos dataCode e dataValue //
var profileData = {dataCode:'EmpresaInicial', dataValue: '01' };

// Chamada do método SET remoto passando uma página, 
//   objeto contendo valores e a função de callback
$totvsprofile.remote.set('/pagina1/pagina1',profileData,
function(result)
{                
   console.log(result);
});
// Definição de objeto do tipo array contendo objetos com os atributos dataCode e dataValue //
var profileDataArray = [];
var profileData;
profileData = {dataCode:'EmpresaInicial', dataValue: '01' };
profileDataArray[0] = profileData;
profileData = {dataCode:'EmpresaFinal', dataValue: 'ZZ' };
profileDataArray[1] = profileData;
 
// Chamada do método SET remoto passando uma página, 
// objeto do tipo array contendo valores e a função de callback
$totvsprofile.remote.set('/pagina1/pagina1',profileDataArray,
function(result)
{                
   console.log(result);
});
$totvsprofile.remote.get

Parâmetros de entrada:

  • Página - Exemplo: /pagina1/pagina1
  • Filtro - Conteúdo texto, informando por qual informação deve ser feito um filtro de busca. Exemplo: "EmpresaInicial"

  • Função de Callback - Recebendo o retorno do serviço REST.

// Chamada do método GET remoto passando uma página, sem filtros e a função de callback //
$totvsprofile.remote.get('/pagina1/pagina1',undefined, function(result) {
    console.log(result);
});
// Chamada do método GET remoto passando uma página, valor de filtro e a função de callback //
$totvsprofile.remote.get('/pagina1/pagina1','EmpresaInicial', function(result) {
	console.log(result);
});
$totvsprofile.remote.remove

Parâmetros de entrada:

  • Página - Exemplo: /pagina1/pagina1

  • Filtro - Conteúdo texto, informando por qual informação deve ser feito um filtro de removação. Exemplo: "EmpresaInicial"
  • Função de Callback - Recebendo o retorno do serviço REST.

// Chamada do método REMOVE remoto passando uma página, sem filtros e a função de callback //
$totvsprofile.remote.remove('/pagina1/pagina1',undefined, function(result) {		
   console.log(result);
});
// Chamada do método REMOVE remoto passando uma página, filtro e a função de callback //
$totvsprofile.remote.remove('/pagina1/pagina1','EmpresaInicial', function(result) {		
   console.log(result);
});

Local


       Para utilização do formato de gravação, eliminação e recuperação local, via cache do navegador, é necessário a utilização da sintaxe $totvsprofile.local. Neste formato, temos três métodos, um de set (para gravação de dados), um de get (para recuperação de dados) e um de remove (para remoção de dados).

$totvsprofile.local.set

Parâmetros de entrada:

  • Página - Exemplo: /pagina1/pagina1
  • Objeto - Contendo uma coleção de valores a serem gravados (poderá ser um objeto simples ou um array de objetos contendo os atributos dataCode e dataValue).

  • Função de Callback - Recebendo o retorno do serviço REST.

// Definição de objeto simples contendo os atributos dataCode e dataValue //
var profileData = {dataCode:'EmpresaInicial', dataValue: '01' };

// Chamada do método SET local passando uma página, 
// objeto contendo valores e a função de callback
$totvsprofile.local.set('/pagina1/pagina1',profileData,
function(result)
{                
   console.log(result);
});
// Definição de objeto do tipo array contendo objetos com os atributos dataCode e dataValue //
var profileDataArray = [];
var profileData;
profileData = {dataCode:'EmpresaInicial', dataValue: '01' };
profileDataArray[0] = profileData;
profileData = {dataCode:'EmpresaFinal', dataValue: 'ZZ' };
profileDataArray[1] = profileData;
 
// Chamada do método SET local passando uma página, 
// objeto do tipo array contendo valores e a função de callback
$totvsprofile.local.set('/pagina1/pagina1',profileDataArray,
function(result)
{                
   console.log(result);
});
$totvsprofile.local.get

Parâmetros de entrada:

  • Página - Exemplo: /pagina1/pagina1

  • Filtro - Conteúdo texto, informando por qual informação deve ser feito um filtro de busca. Exemplo: "EmpresaInicial"
  • Função de Callback - Recebendo o retorno do serviço REST.

// Chamada do método GET local passando uma página, sem filtros e a função de callback //
$totvsprofile.local.get('/pagina1/pagina1',undefined, function(result) {
    console.log(result);
});
// Chamada do método GET local passando uma página, valor de filtro e a função de callback //
$totvsprofile.local.get('/pagina1/pagina1','EmpresaInicial', function(result) {
	console.log(result);
});
$totvsprofile.local.remove

Parâmetros de entrada:

  • Página - Exemplo: /pagina1/pagina1

  • Filtro - Conteúdo texto, informando por qual informação deve ser feito um filtro de removação. Exemplo: "EmpresaInicial"
  • Função de Callback - Recebendo o retorno do serviço REST.

// Chamada do método REMOVE local passando uma página, sem filtros e a função de callback //
$totvsprofile.local.remove('/pagina1/pagina1',undefined, function(result) {		
   console.log(result);
});
// Chamada do método REMOVE local passando uma página, filtro e a função de callback //
$totvsprofile.local.remove('/pagina1/pagina1','EmpresaInicial', function(result) {		
   console.log(result);
});

Actions


        O serviço de actions visa automatizar a aplicação de atributos em campos de tela (exemplo: habilitar / desabilitar, aplicar tamanho máximo, etc) , conforme um perfil de usuário e página. Sua utilização é através da sintaxe $totvsprofile.actions, sendo disponibilizado um método no qual efetiva em tela as informações recuperadas através do serviço remoto do TotvsProfile.

 

$totvsprofile.actions.effective

Parâmetros de entrada:

  • Retorno TOTVSProfile - Exemplo: JSon com o retorno padronizado do TOTVS Profile.

  • Função de Callback - Recebendo o retorno do serviço REST.

// Chamada do método ACTIONS EFFECTIVE passando o Json de retorno do TOTVS Profile e a função de callback //
$totvsprofile.actions.effective(resultProfile, function() {
	console.log('Callback');
});

 

Padronização do Json - TOTVS Profile para utilizaçãoi com o serviço de ACTIONS:

dataCode

Valor

totvsAction

Ações disponíveis a serem aplicadas em campos do tipo "field":

  • enableField: Habilita / Desabilita um campo
  • applyMaxLength: Aplica um limite de valor máximo a ser informado

fieldId

ID do campo na tela

 

Exemplo de um Json válido:

Json
{
  "fields": [
    {
      "dataCode": {
        "totvsAction": "enableField",
        "fieldId": "controller_ttmanualrequisition[nr-ord-prod]"
      },
      "dataValue": false
    },
    {
      "dataCode": {
        "totvsAction": "enableField",
        "fieldId": "controller_ttmanualrequisition[des-ord-prod]"
      },
      "dataValue": true
    },
    {
      "dataCode": {
        "totvsAction": "applyMaxLength",
        "fieldId": "controller_ttmanualrequisition[val-ord-prod]"
      },
      "dataValue": 14
    }
  ]
}
  • Sem rótulos