Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Bloco de código
languagejs
openAnswerFormAction: function(el, ev) {
	var $el = $(el),
		documentId = $el.data('timeline-form-id')
	;
	
	SOCIALBC.openAnswerForm(documentId);
},

Na linha 967 da versão 1.5.0 copiar o bloco abaixo e substituir na versão 1.4.x:

Bloco de código
languagejs
shareAction: function(el, ev, id) {
	var $el = $(el),
		preview = this.processPreview($el),
		loggedUserAlias = WCMAPI.getUserLogin(),
		id = $el.parents('[data-comment-id]').data('comment-id') || $el.parents('[data-post-id]').data('post-id'),
		onlyLink = $el.parents('[data-post-community-hidden]').data('post-community-hidden'),
		url = WCMAPI.getServerURL() + WCMAPI.getProtectedContextPath() + "/" + WCMAPI.getTenantCode() + '/post/' + loggedUserAlias + '/' + id
	;
	SOCIALBC.share($el, {
		showOnlyLink: onlyLink,
		shareType: 'SOCIABLE',
        type: 'POST',
        preview: preview,
        link: url,
        paramId: id,
        widthNoFlash: '200px'
    });
},

 

Na linha 987 da versão 1.5.0 copiar o bloco abaixo e substituir na versão 1.4.x:

Bloco de código
languagejs
processPreview: function($el) {
	var $previewVideo = $el.parents('.timeline-list-posts-item').find('[data-url-media]'),
		imgEl, miniature, preview
	;
	
	if($previewVideo.length) {
		imgEl = $('<img>');
		imgEl.attr('src', $previewVideo.data('url-media'));
		imgEl.addClass('media-photo');
		return imgEl.wrap('<p>').parent().html();
	} else {
		miniature = $el.parents('.timeline-list-posts-item').find('.panel-body');
		preview = $(miniature).find('.timeline-recommendation-content');
		if(preview.length) {
			preview = preview.clone().wrap('<p>').parent().html();
			preview = preview.replace(/well+/, '');
			return preview;
		}
		return miniature.clone().wrap('<p>').parent().html();
	}
},

 

Na linha 1009 da versão 1.5.0 copiar o bloco abaixo e substituir na versão 1.4.x:

Bloco de código
languagejs
controlInteractionActions: function($el, interactionType) {
	var numberInteraction = +$el.text();
	
	if(interactionType === 'add') {
		++numberInteraction;
	}
	else {
		--numberInteraction;
	}
	
	if(numberInteraction > 0) {
		$el
		.text(numberInteraction)
		.removeClass('hidden')
		.addClass('fs-display-inline-block');
	}
	else {
		$el
		.text(numberInteraction)
		.removeClass('fs-display-inline-block')
		.addClass('hidden');
	}
},

 

Na linha 1033 da versão 1.5.0 copiar o bloco abaixo e adicionar na versão 1.4.x:

Bloco de código
languagejs
returnOthersOrderTypes: function() {
	var index, allOrderTypes; 
	
	allOrderTypes = ['CREATION_DATE', 'LAST_UPDATE', 'MY_PUBLICATIONS', 'MORE_LIKE'];		
	index = allOrderTypes.indexOf(this.orderType);
	allOrderTypes.splice(index,1);
	return allOrderTypes;
	
},

 

Na linha 1044 da versão 1.5.0 copiar o bloco abaixo e substituir na versão 1.4.x:

Bloco de código
languagejs
generateOrderAction: function() {
	var orderType = this.orderType,
		otherOrderType = this.returnOthersOrderTypes(),
		permissionOrder = this.permissionOrder,
		actions = []
	;
	
	switch(orderType) {
		case 'MY_PUBLICATIONS':
			if(permissionOrder) {
				for (var i = 0; i < otherOrderType.length; i++) {
					var optionOrderType = otherOrderType[i];
					actions.push({
						orderType: optionOrderType,
						orderName: this.i18n.labels[optionOrderType]
					});	
				}
			} else {
				actions.push({
					orderType: this.configOrderType,
					orderName: this.i18n.labels[this.configOrderType]
				});	
			}
			
		break;
		
		case 'CREATION_DATE':
			if(permissionOrder) {
				for (var i = 0; i < otherOrderType.length; i++) {
					var optionOrderType = otherOrderType[i];
					actions.push({
						orderType: optionOrderType,
						orderName: this.i18n.labels[optionOrderType]
					});	
				}
			} else {
				actions.push({
					orderType: 'MY_PUBLICATIONS',
					orderName: this.i18n.labels['MY_PUBLICATIONS']
				});	
			}
			
		break;
		
		case 'LAST_UPDATE':
			if(permissionOrder) {
				for (var i = 0; i < otherOrderType.length; i++) {
					var optionOrderType = otherOrderType[i]; 
					actions.push({
						orderType: optionOrderType,
						orderName: this.i18n.labels[optionOrderType]
					});	
				}
			} else {
				actions.push({
					orderType: 'MY_PUBLICATIONS',
					orderName: this.i18n.labels['MY_PUBLICATIONS']
				});	
			}
		break;
		case 'MORE_LIKE':
			if(permissionOrder) {
				for (var i = 0; i < otherOrderType.length; i++) {
					var optionOrderType = otherOrderType[i]; 
					actions.push({
						orderType: optionOrderType,
						orderName: this.i18n.labels[optionOrderType]
					});	
				}
			} else {
				actions.push({
					orderType: 'MY_PUBLICATIONS',
					orderName: this.i18n.labels['MY_PUBLICATIONS']
				});	
			}
		break;
	}
	return actions;
},

 

Na linha 1125 da versão 1.5.0 copiar o bloco abaixo e substituir na versão 1.4.x:

Bloco de código
languagejs
generatePostHeader: function(data) {
	var obj = {};
	
	obj.person = {
		personName: data.user.name,
		personAlias: data.user.alias,
		personPage: data.user.page
	};
	
	if(data.type === 'RECOMMENDATION') {
		obj.verb = this.i18n.labels['recommended'];
		
		if(!data.linkedObject || !data.linkedObject.objectClass || data.linkedObject.objectClass === 'POST') {
			obj.object = {
				objectType: this.i18n.labels['this.publication'],
				objectUrl: data.linkedObject.url || data.url
			};
		}
		else if(data.linkedObject && data.linkedObject.objectClass) {				
			if(data.linkedObject.objectClass.indexOf('com.totvs.technology.social.relation.entity.Social') !== -1) {
				obj.object = {
					objectType: this.i18n.labels['this.connection'],
					objectUrl: data.linkedObject.url || data.url
				};
			}
			else if(data.linkedObject.objectClass.indexOf('com.totvs.technology.social.article') !== -1) {
				obj.object = {
					objectType: this.i18n.labels['this.article'],
					objectUrl: data.linkedObject.url || data.url
				};
			}
			else if(data.linkedObject.objectClass.indexOf('com.totvs.technology.social.form') !== -1) {
				obj.object = {
					objectType: this.i18n.labels['this.form'],
					objectUrl: data.linkedObject.url || data.url
				};
			}
			else {
				obj.object = {
					objectType: this.i18n.labels['this.document'],
					objectUrl: data.linkedObject.url || data.url
				};
			}
		}
		else {
			obj.object = {
				objectType: this.i18n.labels['this.content'],
				objectUrl: data.linkedObject.url || data.url
			};
		}
		
		if(data.originShare && data.originShare.type === 'COMMUNITY') {
			obj.viaThe = {
				viaTheName: data.originShare.name,
				viaTheAlias: data.originShare.alias,
				viaThePage: data.originShare.page
			};
		}
	}
	
	if(data.social.type === 'COMMUNITY') {
		obj.place = {
			placeName: data.social.name,
			placeAlias: data.social.alias,
			placePage: data.social.page
		};
	}
	else if(data.originShare && data.originShare.type === "COMMUNITY") {
		obj.place = {
			placeName: data.originShare.name,
			placeAlias: data.originShare.alias,
			placePage: data.originShare.page
		};
	}
	
	return obj;
},

 

Na linha 1203 da versão 1.5.0 copiar o bloco abaixo e substituir na versão 1.4.x:

Bloco de código
languagejs
generateListClass: function(numberActions) {
	if(+numberActions > 0) {
		return 'fs-display-inline-block';
	}
	else {
		return 'hidden';
	}
},

 

Na linha 1203 da versão 1.5.0 copiar o bloco abaixo e substituir na versão 1.4.x:

Bloco de código
languagejs
generateListClass: function(numberActions) {
	if(+numberActions > 0) {
		return 'fs-display-inline-block';
	}
	else {
		return 'hidden';
	}
},

 

Na linha 1212 da versão 1.5.0 copiar o bloco abaixo e substituir na versão 1.4.x:

Bloco de código
languagejs
generateTemplateVariableContent: function(data) {
	var obj = {},
		documentId,
		shareMentionVO,
		that = this
	;
	
	obj.thumbEnum = this.thumbEnum;
	
	if(data.type === 'RECOMMENDATION') {
		obj.isRecommendation = true;
	}
	else {
		obj.isRecommendation = false;
	}
	
	// Diferencia se o conteúdo compartilhado é um post ou não.
	if(data.type === 'RECOMMENDATION' &&
			(!data.linkedObject || !data.linkedObject.objectClass || data.linkedObject.objectClass === 'POST')) {
		obj.linkedObject = data.linkedObject.linkedObject;
		
		// Se o post compartilhado possui texto, o mesmo precisa ser formatado.
		if(data.linkedObject && data.linkedObject.text) {
			shareMentionVO = data.shareMentionVO || {};
			obj.originalText = this.generateContentTextFormatted(data.linkedObject.text, shareMentionVO.mentions);
		}
		
		// Se possui linkedObject e o mesmo foi removido retorna.
		if(data.linkedObject && data.linkedObject.removed) {
			// Template para exibição de conteúdo removido.
			obj.tlpName = 'social-timeline-content-removed-template';
			return obj;
		}
		// Se o post compartilhado tiver um link do youtube, retorna.
		else if(obj.linkedObject && obj.linkedObject.youtubeLink) {
			// Template para exibição de vídeo do youtube
			obj.tlpName = 'social-timeline-content-youtube-template';
			return obj;
		}
		// Se o post compartilhado não tiver anexado nenhuma media retorna o template genérico.
		else if(!obj.linkedObject) {
			// Template para exibição de conteúdo genérico.
			obj.tlpName = 'social-timeline-content-generic-template';
			return obj;
		}
	}
	else {
		obj.linkedObject = data.linkedObject;
		// Se possui linkedObject e o mesmo foi removido retorna.
		if(obj.linkedObject && obj.linkedObject.removed) {
			// Template para exibição de conteúdo removido.
			obj.tlpName = 'social-timeline-content-removed-template';
			return obj;
		}
		// Se for vídeo do youtube retorna.
		else if(data.youtubeLink) {
			// Template para exibição de vídeo do youtube.
			obj.tlpName = 'social-timeline-content-youtube-template';
			return obj;
		}
	}
	
	if(obj.linkedObject && (obj.linkedObject.url || data.urlOrigin) && obj.linkedObject.objectId) {
		if(!obj.linkedObject.removed) {
			// Necessário para buscar a url correta do conteúdo.
			obj.linkedObject.url = obj.linkedObject.url || data.urlOrigin;
			
			// Necessário para buscar o id do documento se existir.
			obj.documentId = obj.linkedObject.objectClass ? obj.linkedObject.objectClass.match(/(?:.*)\.(.+)/)[1] : '';
			
			if(obj.linkedObject.objectClass.indexOf('com.totvs.technology.social.document') !== -1) {
				// Template para exibição de imagens.
				if(obj.linkedObject.thumbURL &&
						this.validateFilesTypes(obj.linkedObject.thumbURL.toLowerCase(), 'validImagesFilesTypes')) {
					if(data.linkedObject.sociableType == "SocialObject"){
						obj.removeText = true;
					}
					obj.tlpName = 'social-timeline-content-media-image-template';
					return obj;
				}
				// Template para exibição de vídeos.
				else if(obj.linkedObject.thumbURL &&
						obj.linkedObject.description &&
						this.validateFilesTypes(obj.linkedObject.thumbURL.toLowerCase(), 'validVideosFilesTypes') ||
						this.validateFilesTypes(obj.linkedObject.description.trim().toLowerCase(), 'validVideosFilesTypes')) {
					obj.tlpName = 'social-timeline-content-media-video-template';
					return obj;
				}
				// Template para exibição de documentos.
				else {
					// Se tiver uma url de origem
					if(data.urlOrigin){
						// Template para exibição de categoria e galeria da comunidade.
						obj.tlpName = 'social-timeline-content-gallery-template';
						return obj;
					}
					// isFolder (atribuído nesse momento baseando-se com 'contains' no
					// 			 atributo thumbUrl pois o objectType sempre vem como documento).
					obj.isFolder = obj.linkedObject.thumbURL.toLowerCase().indexOf("folder") > -1;
					obj.documentVersion = FLUIGC.utilities.parseVersion(obj.linkedObject.objectId || 1000);
					obj.tlpName = 'social-timeline-content-media-document-template';
					return obj;
				}
			}
			// Template para exibição de socials.
			else if(obj.linkedObject.objectClass.indexOf('com.totvs.technology.social.relation.entity.Social') !== -1) {
				if(obj.linkedObject.thumbURL) {
					obj.tlpName = 'social-timeline-content-social-template';
					return obj;
				}
			}
			// Template para exibição de artigos.
			else if(obj.linkedObject.objectClass.indexOf('com.totvs.technology.social.article') !== -1) {
				if(obj.linkedObject.thumbURL) {
					obj.tlpName = 'social-timeline-content-article-template';
					return obj;
				}
			} 
			// Template para resposta de formulários.
			else if(obj.linkedObject.objectClass.indexOf('com.totvs.technology.social.form') !== -1) {
				obj.tlpName = 'social-timeline-content-form-template';
				return obj;
			}
			// Template para exibição de documentos genéricos não tratados.
			if(obj.linkedObject.thumbURL) {
				obj.tlpName = 'social-timeline-content-generic-media-template';
				return obj;
			}
		}
		// Template para exibição de conteúdo removido.
		else {
			obj.tlpName = 'social-timeline-content-removed-template';
			return obj;
		}
	}
	
	obj.tlpName = false;
	
	return obj;
},

 

Na linha 1391 da versão 1.5.0 copiar o bloco abaixo e substituir na versão 1.4.x:

Bloco de código
languagejs
formatLink: function(text) {
	var html = Mustache.render(this.templates['social-timeline-link-template']);
	var htmlResult = text.replace(/((((https?|ftp|file):\/\/)|(www))[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, html);
	htmlResult = htmlResult.replaceAll('href="www','href="http://www');
	return htmlResult;
},

Na linha 1592 da versão 1.5.0 copiar o bloco abaixo e substituir na versão 1.4.x:

Bloco de código
languagejs
textComplaintValidate: function(text) {
	var listWords = text.match(/(\w+){3,}/g) || [];
	if(text === '') {
		socialGlobal.alert(this.i18n.messages['denounce.reason.empty']);
		return true;
	}
	if(listWords.length < 4) {
		socialGlobal.alert(this.i18n.messages['denounce.content.invalid']);
		return true;
	}
	return false;
}

 

socialtimelineedit.js

Arquivo na 1.4.x

...