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.