Índice
Índice |
---|
outline | true |
---|
exclude | .*ndice |
---|
style | none |
---|
|
Objetivo
Este guia é destinado aos desenvolvedores internos e externos do fluig. O objetivo é identificar e mapear todas as diferenças da Timeline personalizada entre as versões 1.5.3 e 1.5.4.
Dica |
---|
|
Sugerimos que ao seguir este guia seja utilizado um programa de comparação (diff), que permita visualizadas as diferenças entre as versões 1.5.3 e 1.5.4. |
application.info
Na versão 1.5.4 foi adicionado o novo componente de visualização de artigo, sendo necessário adicionar esta dependência para widget.
A linha abaixo, deve ser ADICIONADA para a versão 1.5.3:
Bloco de código |
---|
|
application.resource.component.X=social/socialarticleview |
Aviso |
---|
|
Não esquecer de substituir o 'X' pela sequência dos componentes já configurados. |
socialtimeline.properties
Na versão 1.5.4 foi adicionada uma chave de tradução e alterada outra, e devem ser ADICIONADA/ALTERADA para versão 1.5.3.
Não esquecer de replicar as alterações para os arquivos: socialtimeline_en_US.properties, socialtimeline_es.properties, socialtimeline_pt_BR.properties.
Veja abaixo:
Alterar:
Bloco de código |
---|
|
details=Ver mais |
Adicionar:
Bloco de código |
---|
|
error.loading.article=Erro ao carregar artigo. |
view.ftl
Na linha 40 da versão 1.5.4, copiar o código abaixo e SUBSTITUIR na versão 1.5.3:
Bloco de código |
---|
|
<li data-post-id="{{postId}}" data-post-community-hidden="{{social.hidden}}" data-post-permissions="{{permissions}}" class="timeline-list-posts-item"> |
Na linha 94 da versão 1.5.4, copiar o bloco abaixo e SUBSTITUIR na versão 1.5.3:
Bloco de código |
---|
|
{{#canLike}}
<li class="timeline-list-actions-item">
<span class="counter-group">
{{#supported}}
<a href="#" class="fluigicon fluigicon-thumbs-up-on fs-no-text-underline" title="{{i18n.dislike}}" data-request-running="false" data-timeline-action="support"></a>
{{/supported}}
{{^supported}}
<a href="#" class="fluigicon fluigicon-thumbs-up fs-no-text-underline" title="{{i18n.like}}" data-request-running="false" data-timeline-action="support"></a>
{{/supported}}
<a href="#" class="counter counter-warning pos-right-bottom {{existsNumberLikes}}" title="{{i18n.manylike}}" data-request-running="false" data-timeline-action="listLikes">{{numberLikes}}</a>
</span>
</li>
{{/canLike}}
{{#canComment}}
<li class="timeline-list-actions-item">
<span class="counter-group">
<a href="#" class="fluigicon fluigicon-comment fs-no-text-underline" title="{{i18n.comment}}" data-timeline-action="comment"></a>
<a href="{{tenantURI}}{{url}}" class="counter counter-warning pos-right-bottom {{existsNumberComments}}" title="{{i18n.manycomment}}">{{numberComments}}</a>
</span>
</li>
{{/canComment}}
{{#canNotify}}
<li class="timeline-list-actions-item">
<span class="counter-group">
{{#watching}}
<a href="#" class="fluigicon fluigicon-bell fs-no-text-underline" title="{{i18n.stopwatching}}" data-request-running="false" data-timeline-action="watch"></a>
{{/watching}}
{{^watching}}
<a href="#" class="fluigicon fluigicon-bell-empty fs-no-text-underline" title="{{i18n.startwatching}}" data-request-running="false" data-timeline-action="watch"></a>
{{/watching}}
<a href="#" class="counter counter-warning pos-right-bottom {{existsNumberWatchers}}" title="{{i18n.manywatch}}" data-request-running="false" data-timeline-action="listWatchers">{{numberWatchers}}</a>
</span>
</li>
{{/canNotify}}
{{#canShare}}
<li class="timeline-list-actions-item">
<span class="counter-group">
{{#shared}}
<a href="#" title="${i18n.getTranslation('recommend')}" data-clipboard-text="link to copy" data-timeline-action="share" class="fluigicon fluigicon-share-on fs-no-text-underline"></a>
{{/shared}}
{{^shared}}
<a href="#" title="${i18n.getTranslation('recommend')}" data-clipboard-text="link to copy" data-timeline-action="share" class="fluigicon fluigicon-share fs-no-text-underline"></a>
{{/shared}}
<a href="#" class="counter counter-warning pos-right-bottom {{existsNumberShares}}" title="{{i18n.manywatch}}" data-request-running="false" data-timeline-action="listShares">{{numberShares}}</a>
</span>
</li>
{{/canShare}}
{{#canDenounce}}
<li class="timeline-list-actions-item">
<span class="counter-group">
<a href="#" class="fluigicon fluigicon-flag fs-no-text-underline" title="{{i18n.denounce}}" data-request-running="false" data-timeline-action="denounce"></a>
</span>
</li>
{{/canDenounce}}
|
Na linha 196 da versão 1.5.4, copiar o bloco abaixo e SUBSTITUIR na versão 1.5.3:
Bloco de código |
---|
|
{{#canLike}}
<li class="timeline-list-actions-item">
<span class="counter-group">
{{#supported}}
<a href="#" class="fluigicon fluigicon-thumbs-up-on fs-no-text-underline" title="{{i18n.dislike}}" data-request-running="false" data-timeline-action="support"></a>
{{/supported}}
{{^supported}}
<a href="#" class="fluigicon fluigicon-thumbs-up fs-no-text-underline" title="{{i18n.like}}" data-request-running="false" data-timeline-action="support"></a>
{{/supported}}
<a href="#" class="counter counter-warning pos-right-bottom {{existsNumberLikes}}" title="{{i18n.manylike}}" data-request-running="false" data-timeline-action="listLikes">{{numberLikes}}</a>
</span>
</li>
{{/canLike}}
{{#canDenounce}}
<li class="timeline-list-actions-item">
<span class="counter-group">
<a href="#" class="fluigicon fluigicon-flag fs-no-text-underline" title="{{i18n.denounce}}" data-request-running="false" data-timeline-action="denounce"></a>
</span>
</li>
{{/canDenounce}} |
Na linha 419 da versão 1.5.4, copiar o código abaixo e SUBSTITUIR na versão 1.5.3:
Bloco de código |
---|
|
<script type="text/template" class="social-timeline-content-article-template">
<#--ARTIGOS NOVOS, COM IMAGEM DE CAPA-->
<div class="container-fluid row fs-cursor-pointer" data-timeline-action="articleLink" data-href="{{tenantURI}}{{linkedObject.url}}" data-articleId="{{documentId}}" data-articleTitle="{{linkedObject.description}}">
{{#hasShareText}}
<div class="panel panel-default"><div class="panel-body">
{{/hasShareText}}
{{#linkedObject.thumbURL}}
<div class="col-xs-12">
{{^hasShareText}} {{/hasShareText}}
<div class="row embed-responsive embed-responsive-5by1 img-rounded">
<a data-timeline-action="articleLink" href="{{tenantURI}}{{linkedObject.url}}" data-href="{{tenantURI}}{{linkedObject.url}}" data-articleId="{{documentId}}" data-articleTitle="{{linkedObject.description}}">
<img class="embed-responsive-item" src="{{linkedObject.thumbURL}}">
</a>
</div>
</div>
{{/linkedObject.thumbURL}}
<h2 {{#hasShareText}}{{^linkedObject.thumbURL}}class="fs-no-margin-top"{{/linkedObject.thumbURL}}{{/hasShareText}}>
<a data-timeline-action="articleLink" href="{{tenantURI}}{{linkedObject.url}}" data-href="{{tenantURI}}{{linkedObject.url}}" data-articleId="{{documentId}}" data-articleTitle="{{linkedObject.description}}">{{linkedObject.description}}</a>
</h2>
<p>
{{linkedObject.text}}
<a data-timeline-action="articleLink" href="{{tenantURI}}{{linkedObject.url}}" data-href="{{tenantURI}}{{linkedObject.url}}" data-articleId="{{documentId}}" data-articleTitle="{{linkedObject.description}}">{{i18n.details}}</a>
</p>
{{#hasShareText}}
</div></div>
{{/hasShareText}}
</div>
</script> |
socialtimeline.js
Na linha 24 da versão 1.5.4, copiar o conteúdo abaixo e ADICIONAR na versão 1.5.3:
Bloco de código |
---|
|
commandKey: false, |
Copiar a linha 88 da versão 1.5.4 e ADICIONAR na versão 1.5.3:
Bloco de código |
---|
|
'errorLoadingArticle': '${i18n.getTranslation("error.loading.article")}' |
Copiar as linhas 165 até 189 da versão 1.5.4 e ADICIONAR na versão 1.5.3:
Bloco de código |
---|
|
articleLinkAction: function(el, ev) {
var $el = $(el), that = this;
if (FLUIGC.utilities.ctrlIsPressed(ev)) {
var articleHref = $(el).data('href');
window.open(articleHref, '_blank');
} else {
var articleId = $el.attr('data-articleId'), articleTitle = $el.attr('data-articleTitle'), communityAlias = this.socialAlias;
SOCIALBC.viewArticle({
'title': articleTitle,
'articleId': articleId,
'alias': communityAlias,
'instanceId': that.instanceId
}, function(error, data) {
if (error) {
FLUIGC.toast({
message: that.i18n.labels['errorLoadingArticle'],
type: 'danger'
});
}
$('[data-close-articleview]').on('click', function() {
$('#articleview-modal-' + that.instanceId).modal('hide');
});
});
}
}, |
Copiar as linhas a partir da linha 294 da versão 1.5.4 e ADICIONAR na versão 1.5.3:
Bloco de código |
---|
|
posts[i].canLike = this.hasPermission(posts[i].permissions,'LIKE');
posts[i].canComment = this.hasPermission(posts[i].permissions,'COMMENT');
posts[i].canNotify = this.hasPermission(posts[i].permissions,'NOTIFY_POST');
posts[i].canShare = this.hasPermission(posts[i].permissions,'SHARE');
posts[i].canDenounce = this.hasPermission(posts[i].permissions,'DENOUNCE'); |
Na a partir da linha 354 da versão 1.5.4, copiar o bloco abaixo e ADICIONAR na versão 1.5.3:
Bloco de código |
---|
|
hasPermission: function(permissions, permission){
return permissions && permissions.indexOf(permission) > - 1;
}, |
Copiar a partir da linha 358 da versão 1.5.4 e SUBSTITUIR na versão 1.5.3:
Bloco de código |
---|
|
showComments: function(data, $post, isNew) {
var len = data.length, i = 0, html = '';
for (i; i < len; i++) {
try {
data[i].tenantURI = this.tenantURI;
data[i].comment = this.generateContentTextFormatted(data[i].comment, data[i].mentions);
data[i].i18n = this.i18n['labels'];
data[i].allowsRemoveActions = this.loggedUserAlias === data[i].user.alias;
data[i].existsNumberLikes = this.generateListClass(data[i].numberLikes);
//novos comentários não tem o permissionamento do post
if(isNew){
if($post.data("post-permissions")){
permissions = $post.data("post-permissions").split(",");
data[i].canLike = this.hasPermission(permissions,'LIKE');
data[i].canDenounce = this.hasPermission(permissions,'DENOUNCE');
}
}
html += Mustache.render(this.templates['social-timeline-comment-template'], data[i]);
} catch (err) {
if (console) {
console.log(data[i] || '', err);
}
}
}
// Validar se é um novo comentário ou listagem/paginação.
if (isNew) {
$post.find('[data-timeline-container-comment]').after(html);
} else {
$post.find('[data-comment-id]:last').after(html);
}
this.showVideos();
this.showCardPopover();
this.instanceTimeInteraction();
}, |
Copiar a partir da linha 851 da versão 1.5.4, copiar o bloco abaixo e SUBSTITUIR na versão 1.5.3:
Bloco de código |
---|
|
openAnswerFormAction: function(el, ev) {
var $el = $(el), documentId = $el.data('timeline-form-id');
if (FLUIGC.utilities.ctrlIsPressed(ev)) {
var articleHref = $el.attr('href');
window.open(articleHref, '_blank');
} else {
SOCIALBC.openAnswerForm(documentId);
}
}, |
Copiar a partir da linha 1271 da versão 1.5.4, copiar o bloco abaixo e SUBSTITUIR na versão 1.5.3:
Bloco de código |
---|
|
// Template para exibição de artigos.
else if (obj.linkedObject.objectClass.indexOf('com.totvs.technology.social.article') !== -1) {
if (data.formattedText !== "") {
obj.hasShareText = true;
}
obj.tlpName = 'social-timeline-content-article-template';
return obj;
} |