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:
|
// 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:
|
// 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:
|
// 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:
|
// 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:
|
// 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:
|
// 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:
| ||||||
// 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:
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 } ] } |