A Timeline é um feed de posts realizados por usuários que o usuário segue ou comunidades que ele participa.
Através dela é possível interagir com os posts, seja comentando-os, curtindo-os ou os compartilhando.
Bem como todos os componentes da camada social do Fluig, a Timeline utiliza o facilitador SuperWidget na camada de Javascript.
Para saber mais sobre o funcionamento da SuperWidget consulte o manual em http://tdn.totvs.com/display/fluig/Super+Widget.
Para associar um evento a um elemento HTML, é preciso seguir o formato abaixo.
O componente HTML deve possuir um atributo data- o qual receberá o bind de funções da widget.
<button data-salvar-dados>Salvar dados</button> |
bindings: {
local: {
'salvar-dados': ['click_salvarDados']
}
},
//implementação da função salvar
salvarDados: function(el, ev) {
//escreva a ação do botão salvar-dados aqui
}, ... |
A função atribuida a um elemento HTML possui 2 parâmetros:
Note que não é necessário adicionar o prefixo data-.
O array atribuido é uma string no padrão EVENTO_FUNÇÃO. Várias combinações de evento x função podem ser atribuidos a um único elemento.
Os bindings feitos no objeto local são referentes a elementos HTML dentro do div da widget. E os binds feitos no objeto global são para elementos fora do div da widget, ou retirados do div da widget por outro script, como é o caso das modais do jQueryUI.
Para ficar padronizado, é de boa prática que todas a literais que exigem internacionalização sejam adicionadas em um objeto global para que possam ser reutilizadas posteriormente.
i18n: {
'titles': {
'denounce': '${i18n.getTranslation("denounce")}',
'publication': '${i18n.getTranslation("publication")}',
...
},
'labels': {
'version': '${i18n.getTranslation("version")}',
'revision': '${i18n.getTranslation("revision")}',
...
},
...
}, |
Segue abaixo o detlhamento das funções da Timeline.
Este método é responsável por renderizar e exibir o container principal da timeline na página.
Este é um método de controle de listagem de publicação. Ela interage com um outro método "serviceListPosts" e com o resultado dos registros da mesma (publicações), delega o conteúdo retornado para outra função para ser renderizado e exibido na página (listagem de posts).
Responsável por pelo controle de busca de uma publicação. Ele interage com outro método "serviceListFind" e com o resultado do registro da mesma (publicação), delega o conteúdo retornado para outra função para ser renderizado e exibido na página (listagem de posts). Ele recebe o id da publicação e um segundo argumento que identifica se é uma nova publicação ou uma publicação existente.
postId: Number
isNew: Boolean
Responsável por formatar e exibir as publicações na página. Ele recebe um array de registros (publicações) e se é uma nova publicação ou não.
postId: Object / Array
isNew: Boolean
Responsável por formatar e exibir os comentários páginados. Ele recebe um array de registros (comentários), o selector em jQuery da publicação em questão e se é um novo comentário ou não.
data: Object / Array
$post: Object / Selector jQuery
isNew: Boolean
Esta função escuta (listener) a criação de uma nova publicação do usuário, e delega a renderização dele informando o id da mesma. Recebe o nome evento disparado (fireEvent) e o id da publicação.
evName: String
data: Number
Responsável por exibir novas publicações.
el: Object //elemento que disparou o evento...
ev: Object //evento disparado...
Responsável por exibir novos comentários em uma publicação.
el: Object //elemento que disparou o evento...
ev: Object //evento disparado...
Responsável por exibir uma mensagem informativa ou de erro na timeline.
err: Object //quando for erro, envia o objeto do erro...
Responsável por exibir uma mensagem (toast) com o erro ocorrido.
err: Object //objeto do erro...
Responsável por exibir uma mensagem genérica (toast).
message: String //mensagem para ser exibida...
type: String //tipo de mensagem (success, danger, warning, etc)...
Responsável por exibir o botão de exibir mais publicações (show more) na timeline.
Responsável por instanciar o plugin de vídeo (videojs) nas publicações com vídeo.
Responsável por instanciar o popover de informações de usuários e comunidades.