Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

A partir da versão x é possível criar notificações por usuário, será sempre mostra quando o usuário logar no sistema e depois pode ser vista clicando no menu de mensagem.

Como usar

Configuração

Verifica se existem as tabelas nfs_messages e nfs_usuario_messages, caso não execute:

CREATE TABLE `nfs_messages` (
  `INS_DH` timestamp NULL DEFAULT NULL,
  `DESCRIPTION` text NOT NULL,
  `SUBJECT` varchar(100) NOT NULL,
  `SEQ_DB` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `OPTIONS` text,
  `ICON` varchar(100) DEFAULT NULL,
  `LABEL_ICON` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`SEQ_DB`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

CREATE TABLE `nfs_usuario_messages` (
  `SEQ_DB` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `READED` tinyint(1) DEFAULT NULL,
  `MESSAGE_SEQ_DB` bigint(20) unsigned DEFAULT NULL,
  `USUARIO_SEQ_DB` bigint(20) unsigned DEFAULT NULL,
  `ENABLED` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`SEQ_DB`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

Lembrando que um usuário pode ter várias mensagem.

Existindo essas tabelas, primeiro deve-se configurar a nfs_messages e depois nfs_usuario_messages

NFS_MESSAGES

  • SEQ_DB: Gerado automaticamente.
  • DESCRIPTION: Descrição da Mensagem.
  • SUBJECT: Assunto/título da mensagem.
  • OPTIONS: Um json com as configurações da notificação, no site code seven ou Metronic toastr é possível fazer um preview/demo das configurações abaixo:
{
  "positionClass": "toast-bottom-right",
  "progressBar": true,
  "timeOut": 0,
  "type": "warning",
  "extendedTimeOut": 0,
  "preventDuplicates": false
}

positionClass: Posição onde é exibida a noticação, as configurações podem ser as seguintes:

  • toast-bottom-right (Fundo direito)
  • toast-top-right (Topo direito)
  • toast-bottom-left (Fundo esquerdo)
  • toast-top-left (Topo esquerdo)
  • toast-top-full-width (Todo topo)
  • toast-bottom-full-width (Todo fundo)
  • toast-top-center (Topo centro)
  • toast-bottom-center (Fundo centro)

progressBar: Caso timeOut ou extendedTimeOut esteja configurados mostra uma barra de progresso até terminar a exibição da notificação. timeOut: Tempo em milissegundos para exibir a notificação, caso esteja 0 a notificação só será fechada após o clique. extendedTimeOut: Tempo em milissegundos que acontece depois da interação com a notificação.

type: Os tipos são:

  • success
  • info
  • warning
  • error

preventDuplicates: Evita duplicidade de notificações, deve-se tomar cuidado, pois, se ter notificações de dias difentes com mesmo tipo e descrição iguals, os mesmos não serão mostrados.

  • ICON: Ícone da notificação quando clica no menu para ser visualizar Metronic Icons
  • LABEL_ICON: Irá configurar a cor de fundo do ícone, são eles:
    • label-success
    • label-danger
    • label-info
    • label-warning

NFS_USUARIO _MESSAGES

  • SEQ_DB: Gerado automaticamente.
  • READED: Uma das mais importantes colunas, o seu valor pode ser 0, onde o usuário ainda não leu a mensagem e 1 quando o usuário já leu a mensagem, com isso a mesma não será exibida mais.
  • MESSAGE_SEQ _DB: Seq db da mensagem que deseja-se ser exibida para o usuário.
  • USUARIO_SEQ _DB: Seq db do usuário para quem será enviada a mensagem.
  • ENABLED: Se 1 ativo caso 0 desativo.

Exemplo de Uso

Para adicionar uma nova notificação é necessário primeiro inserir a mensagem na tabela nfs_messages:

INSERT INTO nfs_messages
(INS_DH, DESCRIPTION, SUBJECT, `OPTIONS`, ICON, LABEL_ICON)
VALUES('2018-03-22 14:02:39.000', '<h1>My Message</h1>', 'First message', '{
  "positionClass": "toast-bottom-right",
  "progressBar": true,
  "timeOut": 0,
  "type": "success",
"extendedTimeOut" : 0,
  "preventDuplicates": false
}', 'fa-plus', 'label-success');

E depois obter seu SEQ_DB e inserir na nfs_usuario_message ao SEQ_DB do usuário destino.

INSERT INTO nfs_homol_padrao_smartos.nfs_usuario_messages
(READED, MESSAGE_SEQ_DB, USUARIO_SEQ_DB, ENABLED)
VALUES(0, 1, 1, 1);

Assim quando o usuário entrar no sistema ela será exibida até que o Usuário leia.