function activityDetails( objActivity, decoded, path, isMail, repeat){
tasks = {length: 0};
if(path == undefined)
path = "";
if( !decoded )
objActivity = DataLayer.decode( "schedulable:group", objActivity );
if(!isMail)
objActivity = DataLayer.encode( "schedulable:activity", objActivity );
var registerStatus = function(){
var blkAuto = UI.dialogs.addActivity.find('#group_addactivity_details1');
var startDate = false;
var endDate = new Date;
var dueDate = new Date;
var percentage = 0;
var statusTasks = {1: 0, 2: 0, 3: 0, 4: 0};
var allDay = true;
var formatString = User.preferences.dateFormat + " " + User.preferences.hourFormat;
if(tasks.length == 0){
startDate = new Date();
var configData = (startDate.toString('mm') < 30) ? {minutes: (30 - parseInt(startDate.toString('mm')))} : {hours: 1, minutes: '-'+startDate.toString('mm')};
startDate.add(configData);
endDate = new Date(dateCalendar.decodeRange(startDate, (!!User.preferences.defaultCalendar ? ( !!Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration ? (Calendar.signatureOf[User.preferences.defaultCalendar].calendar.defaultDuration) : (User.preferences.defaultDuration)) : (User.preferences.defaultDuration))));
blkAuto.find('input[name="startDate"]').val(startDate.toString(User.preferences.dateFormat ));
blkAuto.find('input[name="startHour"]').val(startDate.toString(User.preferences.hourFormat ));
blkAuto.find('input[name="endDate"]').val(endDate.toString(User.preferences.dateFormat ));
blkAuto.find('input[name="endHour"]').val(endDate.toString(User.preferences.hourFormat ));
blkAuto.find('input[name="dueDate"]').val('');
blkAuto.find('input[name="dueHour"]').val('');
blkAuto.find('input[name="percentage"]').val(percentage);
todoStatus('addActivity', 1);
UI.dialogs.addActivity.find('select[name="activityStatus"] option[value="'+1+'"]').attr('selected','selected');
blkAuto.find('input[name="allDay"]').attr('checked', false);
return true;
}
for (var i in tasks){
if(i == 'length')
continue;
statusTasks[tasks[i].status]++;
stTime = Date.parseExact( tasks[i].startDate + " "+$.trim( tasks[i].startHour) , formatString);
enTime = Date.parseExact( tasks[i].endDate + " "+$.trim( tasks[i].endHour), formatString );
startDate = (startDate && startDate.compareTo(stTime) == -1) ? startDate : stTime;
endDate = endDate.compareTo(enTime) == -1 ? enTime : endDate;
if(tasks[i].dueDate != ''){
pvTime = Date.parseExact( tasks[i].dueDate + " "+$.trim( tasks[i].dueTime), formatString );
dueDate = dueDate.compareTo(pvTime) == -1 ? pvTime : dueDate;
}
if(parseInt(tasks[i].percentage) > 0)
percentage += parseInt((100 / tasks.length)) * ( parseInt(tasks[i].percentage) / 100);
}
var statusActivity = 1;
if(statusTasks[4] != 0)
statusActivity = 4;
else if(statusTasks[2] != 0)
statusActivity = 2;
else if(statusTasks[3] == tasks.length)
statusActivity = 3;
else if(statusTasks[1] == tasks.length)
statusActivity = 1;
else
statusActivity = 2;
todoStatus('addActivity', statusActivity);
UI.dialogs.addActivity.find('select[name="activityStatus"] option[value="'+statusActivity+'"]').attr('selected','selected');
dueDate = dueDate.compareTo(endDate) == -1 ? endDate : dueDate;
blkAuto.find('input[name="startDate"]').val(startDate.toString(User.preferences.dateFormat ));
blkAuto.find('input[name="startHour"]').val(startDate.toString(User.preferences.hourFormat ));
blkAuto.find('input[name="endDate"]').val(endDate.toString(User.preferences.dateFormat ));
blkAuto.find('input[name="endHour"]').val(endDate.toString(User.preferences.hourFormat ));
blkAuto.find('input[name="dueDate"]').val(dueDate.toString(User.preferences.dateFormat ));
blkAuto.find('input[name="dueHour"]').val(dueDate.toString(User.preferences.hourFormat ));
blkAuto.find('input[name="percentage"]').val(percentage);
blkAuto.find('input[name="allDay"]').attr('checked', (!!(startDate.compareTo(endDate) == 0) || (startDate.toString('HH:mm') == endDate.toString('HH:mm')) ? true : false));
}
var callbackTask = function(){
blkAddTask.find("li .button").filter(".close.new").button({
icons: {
primary: "ui-icon-close"
},
text: false
}).click(function () {
delete tasks[$(this).parents('li').find('input[name="idtask[]"]').val()]
tasks.length += -1;
idTaskToActivity = $(this).parents('li').find('input[name="idTaskToActivity[]"]').val()
if(idTaskToActivity != '')
DataLayer.remove('taskToActivity', idTaskToActivity);
$(this).parents('li').remove();
if(blkAddTask.find(".task-activity-list li").length == 1)
blkAddTask.find("li.not-activity ").removeClass('hidden');
registerStatus();
})
.addClass('tiny disable ui-button-disabled ui-state-disabled')
.removeClass('new').end()
.filter(".info.new").button({
icons: {
primary: "ui-icon-notice"
},
text: false
}).click(function () {
var positionY = $(this).parents("li").offset().top;
var name = $(this).parents('li').find("div").find(".name").text();
var email = $(this).parents('li').find("div").find(".mail").text()
if( $('.qtip.qtip-blue.qtip-active').val() !== ''){
$(this).qtip({
show: {
ready: true,
solo: true,
when: {
event: 'click'
}
},
hide: false,
content: {
text: $('
').find('.new-activity-win.active').html(html).dialog({
resizable: false,
modal:true,
autoOpen: false,
width:735,
position: 'center',
close: function(event, ui) {
/**
* Remove tooltip possivelmente existente
*/
if ($('.qtip.qtip-blue.qtip-active').length)
$('.qtip.qtip-blue.qtip-active').qtip('destroy');
attendees = {};
},
beforeClose: function(event, ui) {
if (!canDiscardActivityDialog && !zebraDiscardActivityDialog) {
zebraDiscardActivityDialog = true;
window.setTimeout(function() {
$.Zebra_Dialog('Suas alterações na atividade não foram salvas. Deseja descartar as alterações?', {
'type': 'question',
'overlay_opacity': '0.5',
'buttons': ['Descartar alterações', 'Continuar editando'],
'onClose': function(clicked) {
if(clicked == 'Descartar alterações') {
canDiscardActivityDialog = true;
/**
*Remoção dos anexos do eventos caso seja cancelado a edição
*/
DataLayer.rollback();
var ids = false;
$.each($('.attachment-list input'), function (i, input) {
DataLayer.put('attachment', {id: ''+input.value});
DataLayer.remove('attachment', ''+input.value);
ids = true;
});
if(ids)
DataLayer.commit();
UI.dialogs.addActivity.dialog('close');
}else{
zebraDiscardActivityDialog = false;
}
/**
* Uma vez aberta uma janela de confirmação (Zebra_Dialog), ao fechá-la
* com ESC, para que o evento ESC não seja propagado para fechamento da
* janela de edição de eventos, deve ser setada uma flag indicando que
* já existe uma janela de confirmação aberta.
*/
if (!clicked) {
window.setTimeout(function() {
zebraDiscardActivityDialog = false;
}, 200);
}
}
});
}, 300);
}
//DataLayer.rollback();
return canDiscardActivityDialog;
},
dragStart: function(event, ui) {
if ($('.qtip.qtip-blue.qtip-active').length)
$('.qtip.qtip-blue.qtip-active').qtip('destroy');
}
});
} else {
UI.dialogs.addActivity.html(html);
}
/* Checkbox allday */
UI.dialogs.addActivity.find('input[name="allDay"]').click(function(){
$(this).attr("checked") ?
UI.dialogs.addActivity.find('.start-time, .end-time').addClass('hidden') :
UI.dialogs.addActivity.find('.start-time, .end-time').removeClass('hidden');
});
var tabs = UI.dialogs.addActivity.children('.content').tabs({
select: function(event, ui) {
if ($('.qtip.qtip-blue.qtip-active').length)
$('.qtip.qtip-blue.qtip-active').qtip('destroy');
}
});
var group = DataLayer.get('calendar', objActivity.group);
if (group.timezone != objActivity.timezone){
UI.dialogs.addActivity.find('.group_addactivity_details_lnk_timezone').find('option[value="'+objActivity.timezone+'"]').attr('selected','selected').trigger('change');
UI.dialogs.addActivity.find('.group_addactivity_details_lnk_timezone').addClass('hidden');
$('.group-addevent-details-txt-timezone').removeClass('hidden');
}
UI.dialogs.addActivity.find('.group_addactivity_details_lnk_timezone').click(function(e){
$(this).addClass('hidden');
$('.group-addactivity-details-txt-timezone').removeClass('hidden');
e.preventDefault();
});
UI.dialogs.addActivity.find('.button.remove').button({
text:false,
icons:{
primary:'ui-icon-close'
}
}).click(function(el){
var id;
if( id = $(this).parent().find('input[name="alarmId[]"]').val())
DataLayer.remove('alarm', id);
$(this).parent().remove().find('li').is(':empty');
});
UI.dialogs.addActivity.find('.button-add-alarms').click(function(){
DataLayer.render( 'templates/alarms_add_itemlist.ejs', {type: 0}, function( template ){
jQuery('.activity-alarms-list').append(template)
.find('li:last label:eq(0)').remove().end()
.find('.number').numeric().end()
.find('.button.remove').button({
text:false,
icons:{
primary:'ui-icon-close'
}
}).click(function(el) {
$(this).parent().remove();
});
});
});
/*Seleciona a agenda padrão para visualização/edição de um evento*/
if(objActivity.id)
UI.dialogs.addActivity.find('select[name="group"] option[value="'+objActivity.group+'"]').attr('selected','selected').trigger('change');
UI.dialogs.addActivity.find('.button').button();
UI.dialogs.addActivity.find('.button.add').button({
icons: {
secondary: "ui-icon-plus"
}
});
todoStatus('addActivity', (objActivity.activityStatus != undefined) ? objActivity.activityStatus : 1);
UI.dialogs.addActivity.find('select[name="activityStatus"]').attr('disabled', 'disabled');
// ==== validation events ====
UI.dialogs.addActivity.find(".input-group .h1").Watermark("Atividade sem título");
UI.dialogs.addActivity.find(".number").numeric();
User.preferences.dateFormat.indexOf('-') > 0 ?
UI.dialogs.addActivity.find(".date").mask("99-99-9999", {
completed:function(){
updateMap();
}
}) :
UI.dialogs.addActivity.find(".date").mask("99/99/9999", {
completed:function(){
updateMap();
}
});
UI.dialogs.addActivity.find(".menu-addactivity")
.children(".delete").click(function(){
$.Zebra_Dialog('Tem certeza que deseja excluir a atividade?', {
'type': 'question',
'overlay_opacity': '0.5',
'buttons': ['Sim', 'Não'],
'onClose': function(clicked) {
if(clicked == 'Sim'){
canDiscardActivityDialog = true;
/* Remove por filtro */
DataLayer.removeFilter('schedulable', {filter: ['AND', ['=', 'id', objActivity.id], ['=', 'group', objActivity.group], ['=','user',(objActivity.me.user ? objActivity.me.user.id : objActivity.me.id)]]});
Calendar.rerenderView(true);
/********************/
UI.dialogs.addActivity.dialog("close");
}
}
});
}).end()
.children(".cancel").click(function(){
UI.dialogs.addActivity.dialog("close");
}).end()
.children(".save").click(function(){
/* Validação
var msg = false;
if(msg = validDateEvent()){
$(".new-activity-win.active").find('.messages-validation').removeClass('hidden').find('.message label').html(msg);
return false;
}
*/
UI.dialogs.addActivity.find('select[name="activityStatus"]').removeAttr('disabled');
canDiscardActivityDialog = true;
UI.dialogs.addActivity.children().find('form.form-addactivity').submit();
UI.dialogs.addActivity.dialog("close");
}).end()
.children(".export").click(function(){
UI.dialogs.addActivity.children().find(".form-export").submit();
});
var task_activityHtml = DataLayer.render( path+'templates/task_activity_add.ejs', { activity: objActivity});
var blkAddTask = UI.dialogs.addActivity.find('#group_addactivity_details8').append(task_activityHtml);
var dates = UI.dialogs.addActivity.find('input.date').datepicker({
dateFormat: User.preferences.dateFormat.replace(/M/g, 'm').replace(/yyyy/g, 'yy'),
onSelect : function( selectedDate ){
updateMap();
}
});
blkAddTask.find('.add-activity-search .ui-icon-search').click(function(event) {
blkAddTask.find('.add-activity-search input').keydown();
});
blkAddTask.find('.add-activity-search input').keydown(function(event) {
if(event.keyCode == '13' || typeof(event.keyCode) == 'undefined') {
// Fazer get das tarefas
var filter =
{
filter:
['AND',
['=', 'type', '2'],
['>=','startTime', $.now()],
['in', 'calendar',
[$('div.new-activity-win.active select[name="groupFilter"]').val()]
]
], criteria: {'filterTasks': true}
};
if($(this).val() != ''){
filter['filter'].push(['OR',
["i*", "summary", $(this).val()],
["i*", "description", $(this).val()]
]);
}
var result = DataLayer.get('schedulable:taskSearch', filter, true)
/**
* TODO: trocar por template
*/
blkAddTask.find('ul.search-result-list').empty().css('overflow', 'hidden');
if (!result) {
blkAddTask.find('ul.search-result-list').append('
');
}else{
for(i=0; i 10)
attach.fileName = ext.length == 1 ? file.name.substr(0, 10) : file.name.substr(0, 6) + '.' + ext[ext.length -1];
attach.fileSize = formatBytes(file.size);
if(file.size > maxSizeFile)
attach.error = 'Tamanho de arquivo nao permitido!!'
$('.attachments-list').append(DataLayer.render(path+'templates/attachment_add_itemlist.ejs', {
file : attach
}));
if(file.size < maxSizeFile){
$('.fileinput-button.new').append(data.fileInput[0]).removeClass('new');
$('.attachments-list').find('[type=file]').addClass('hidden');
}else
$('.fileinput-button.new').removeClass('new');
$('.attachments-list').find('.button.close').button({
icons: {
primary: "ui-icon-close"
},
text: false
}).click(function(){
var idAttach = $(this).parent().find('input[name="fileId[]"]').val();
$('.attachment-list').find('input[value="'+idAttach+'"]')
$(this).parent().remove();
});
})
},
done: function(e, data){
var currentUpload = $('.progress.after-upload:first').removeClass('after-upload').addClass('on-complete').hide();
if(!!data.result && data.result != "[]"){
var newAttach = (attch = jQuery.parseJSON(data.result)) ? attch : jQuery.parseJSON(data.result[0].activeElement.childNodes[0].data);
$('.attachment-list').append('');
currentUpload.removeClass('on-complete').parents('p')
.append('')
.find('.status-upload').addClass('ui-icon ui-icon-check');
}else
currentUpload.removeClass('on-complete').parents('p').find('.status-upload').addClass('ui-icon ui-icon-cancel');
}
});
$('.attachments-list .button').button();
if(!!window.FormData)
$('#fileupload').bind('fileuploadstart', function () {
var widget = $(this),
progressElement = $('#fileupload-progress').fadeIn(),
interval = 500,
total = 0,
loaded = 0,
loadedBefore = 0,
progressTimer,
progressHandler = function (e, data) {
loaded = data.loaded;
total = data.total;
},
stopHandler = function () {
widget
.unbind('fileuploadprogressall', progressHandler)
.unbind('fileuploadstop', stopHandler);
window.clearInterval(progressTimer);
progressElement.fadeOut(function () {
progressElement.html('');
});
},
formatTime = function (seconds) {
var date = new Date(seconds * 1000);
return ('0' + date.getUTCHours()).slice(-2) + ':' +
('0' + date.getUTCMinutes()).slice(-2) + ':' +
('0' + date.getUTCSeconds()).slice(-2);
},
/* formatBytes = function (bytes) {
if (bytes >= 1000000000) {
return (bytes / 1000000000).toFixed(2) + ' GB';
}
if (bytes >= 1000000) {
return (bytes / 1000000).toFixed(2) + ' MB';
}
if (bytes >= 1000) {
return (bytes / 1000).toFixed(2) + ' KB';
}
return bytes + ' B';
},*/
formatPercentage = function (floatValue) {
return (floatValue * 100).toFixed(2) + ' %';
},
updateProgressElement = function (loaded, total, bps) {
progressElement.html(
formatBytes(bps) + 'ps | ' +
formatTime((total - loaded) / bps) + ' | ' +
formatPercentage(loaded / total) + ' | ' +
formatBytes(loaded) + ' / ' + formatBytes(total)
);
},
intervalHandler = function () {
var diff = loaded - loadedBefore;
if (!diff) {
return;
}
loadedBefore = loaded;
updateProgressElement(
loaded,
total,
diff * (1000 / interval)
);
};
widget
.bind('fileuploadprogressall', progressHandler)
.bind('fileuploadstop', stopHandler);
progressTimer = window.setInterval(intervalHandler, interval);
});
UI.dialogs.addActivity.find(':input').change(function(event){
if (event.keyCode != '27' && event.keyCode != '13')
canDiscardActivityDialog = false;
}).keydown(function(event){
if (event.keyCode != '27' && event.keyCode != '13')
canDiscardActivityDialog = false;
});
UI.dialogs.addActivity.dialog('open');
}