%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/assets/c612d4ee/js/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/assets/c612d4ee/js/humhub.content.container.Header.js |
/**
* Profile logic as Profile Image uploads
*
* @namespace humhub.modules.ui.profile
**/
humhub.module('content.container.Header', function (module, require, $) {
var Widget = require('ui.widget').Widget;
var client = require('client');
var Header = Widget.extend();
Header.prototype.init = function () {
this.$.find('.image-upload-container').on('mouseover', function () {
$(this).find('.image-upload-buttons').show();
}).on('mouseout', function () {
$(this).find('.image-upload-buttons').hide();
});
this.$.find('.fileinput-button').each(function() {
var $this = $(this);
var upload = Widget.instance($this.find('input[type="file"]'));
var profileImage = new ProfileImage($this.closest('.image-upload-container'));
upload.on('uploadStart', function() {
profileImage.getLoader().show();
}).on('uploadEnd', function(evt, response) {
profileImage.getLoader().hide();
var file = response.result.files[0];
if(!file.error) {
profileImage.replaceImage(file);
}
upload.progress.reset();
});
});
};
Header.prototype.delete = function(evt) {
var profileImage = new ProfileImage(evt.$trigger.closest('.image-upload-container'));
client.post(evt).then(function(response) {
if(response.defaultUrl) {
profileImage.reset(response.defaultUrl, response.type);
}
}).catch(function(ex) {
module.log.error(ex, true);
});
};
ProfileImage = function($root) {
this.$ = $root;
};
ProfileImage.prototype.replaceImage = function(file) {
this.getAcronym().addClass('hidden'); //only for spaces
var $image = this.getImage();
// required for retriggering the animation
$image.removeClass('animated bounceIn')[0].offsetWidth;
var random = Math.random();
$image.attr('src', file.url + '&c=' + random)
.addClass('animated bounceIn').removeClass('hidden');
this.getEditButtons().show();
if(file.type === 'image') { // Only replace profile images
var containerId = this.getContainerId();
$('div[data-contentcontainer-id="'+containerId+'"].space-acronym').addClass('hidden');
$('img[data-contentcontainer-id="'+containerId+'"]').attr('src', file.url + '&c=' + random).removeClass('hidden');
}
};
ProfileImage.prototype.reset = function(defaultUrl, type) {
var $image = this.getImage();
var $acronym = this.getAcronym();
var containerId = this.getContainerId();
$image.addClass('hidden').attr('src', defaultUrl);
if($acronym.length) { // Space only
// required for retriggering the animation
$acronym.removeClass('animated bounceIn')[0].offsetWidth;
$acronym.addClass('animated bounceIn').removeClass('hidden');
$('div[data-contentcontainer-id="'+containerId+'"].space-acronym').removeClass('hidden');
$('img[data-contentcontainer-id="'+containerId+'"]').attr('src', defaultUrl).addClass('hidden');
} else {
$image.removeClass('hidden');
$('img[data-contentcontainer-id="'+containerId+'"]').attr('src', defaultUrl).removeClass('hidden');
}
this.getEditButtons().hide();
};
ProfileImage.prototype.getContainerId = function() {
return this.getImage().data('contentcontainer-id');
};
ProfileImage.prototype.getImage = function() {
return this.$.find('img.img-profile-header-background');
};
ProfileImage.prototype.getLoader = function() {
return this.$.find('.image-upload-loader');
};
ProfileImage.prototype.getAcronym = function() {
return this.$.find('.space-acronym');
};
ProfileImage.prototype.getEditButtons = function() {
return this.$.find('.profile-image-edit');
};
module.export = Header;
});