function activityDetails( objEvent, decoded, path, isMail, repeat){ attendees = {}; if(path == undefined) path = ""; if( !decoded ) objEvent = DataLayer.decode( "schedulable:calendar", objEvent ); if(!isMail) objEvent = DataLayer.encode( "schedulable:preview", objEvent ); if(typeof(objEvent.id) == 'undefined'){ objEvent.alarms = Calendar.signatureOf[User.preferences.defaultCalendar || Calendar.calendarIds[0]].defaultAlarms || false; objEvent.useAlarmDefault = 1; //Código provisório ... Mockup objEvent.alarms.taskActivity = {}; } /** * canDiscardEventDialog deve ser true se não houver alterações no evento */ canDiscardEventDialog = true; /** * zebraDiscardEventDialog é uma flag indicando que uma janela de confirmação (Zebra_Dialog) * já está aberta na tela, uma vez que não é possivel acessar o evento ESC utilizado para fechá-la */ zebraDiscardEventDialog = false; /** ACLs do participant */ acl_names = { 'w': 'acl-white', 'i': 'acl-invite-guests', 'p': 'acl-participation-required' }; var callbackAttendee = function(){ //Cria qtip de permissões pelo click do checkbox var checked = false; blkAddAtendee.find("li.not-activity").addClass('hidden'); blkAddAtendee.find("li .button").filter(".close.new").button({ icons: { primary: "ui-icon-close" }, text: false }).click(function () { DataLayer.remove('participant', $(this).parents('li').find('[type=checkbox]').val()); if($(this).parent().find('.button.delegate').hasClass('activity-permissions-change-button')){ removeOthers(); blkAddAtendee.find('.request-update').addClass('hidden'); blkAddAtendee.find('.status option').toggleClass('hidden'); blkAddAtendee.find('option[value=1]').attr('selected','selected').trigger('change'); } $(this).parents('li').remove(); if(blkAddAtendee.find(".activity-list li").length == 1) blkAddAtendee.find("li.not-activity").removeClass('hidden'); }) .addClass('tiny disable ui-button-disabled ui-state-disabled') .removeClass('new').end() .filter(".delegate.new").button({ icons: { primary: "ui-icon-transferthick-e-w" }, text: false }).click(function () { var me = $(this).parents('li'); if($(this).hasClass('activity-permissions-change-button')){ $(this).removeClass('activity-permissions-change-button') .find('.ui-icon-transferthick-e-w').removeClass('activity-permissions-change').end(); me.find('input[name="delegatedFrom[]"]').val(''); dependsDelegate(me, true); blkAddAtendee.find('.request-update').addClass('hidden'); blkAddAtendee.find('.status option').toggleClass('hidden'); blkAddAtendee.find('option[value=1]').attr('selected','selected').trigger('change'); }else{ removeOthers(); $(this).addClass('activity-permissions-change-button') .find('.ui-icon-transferthick-e-w').addClass('activity-permissions-change').end(); me.find('input[name="delegatedFrom[]"]').val(blkAddAtendee.find('.me input[name="attendee[]"]').val()); dependsDelegate(me, false); blkAddAtendee.find('.request-update').removeClass('hidden'); if(blkAddAtendee.find('.status option.hidden').length == 1) blkAddAtendee.find('.status option').toggleClass('hidden'); blkAddAtendee.find('option[value=5]').attr('selected','selected').trigger('change'); } }) .addClass('tiny disable ui-button-disabled ui-state-disabled') .removeClass('new').end() .filter(".edit.new").button({ icons: { primary: "ui-icon-notice" }, text: false }).click(function() { console.log($(this).parents("li").position().top); var positionY = $(this).parents("li").offset().top; if(!!!checked) $(this).parents('li').find('[type=checkbox]').attr('checked', (!$(this).parent().find('[type=checkbox]').is(':checked'))).end(); var name = $(this).parents('li').find("div").find(".name").text(); var email = $(this).parents('li').find("div").find(".mail").text() //var aclsParticipant = $(this).parents('li') checked = false; if( $('.qtip.qtip-blue.qtip-active').val() !== ''){ $(this).qtip({ show: { ready: true, solo: true, when: { event: 'click' } }, hide: false, content: { text: $('
').html( DataLayer.render( path + 'templates/activity_information_task.ejs', { 'name' : name } ) ), title: { text:'Informações', button: 'close' } }, style: { name: 'blue', tip: { corner: 'leftMiddle' }, border: { width: 4, radius: 8 }, width: { min: 230, max:230 } }, position: { corner: { target: 'rightMiddle', tooltip: 'leftMiddle' }, adjust: { x: 30, y: 0 } } }) .qtip("api").onShow = function(arg0) { $('.qtip-active .button.close').button({ icons: { primary: "ui-icon-close" }, text: false }) .click(function(){ blkAddAtendee.find('dd.task-activity-list').qtip('destroy'); }); $('.qtip-active .button.save').button().click(function(){ var acl = ''; $('.qtip-active').find('[type=checkbox]:checked').each(function(i, obj) { acl+= obj.value; }); blkAddAtendee.find('dd.task-activity-list [type=checkbox]:checked').siblings('input[name="attendeeAcl[]"]').each(function(i, obj) { obj.value = 'r'+acl; }).parents('li').find('.button.edit').addClass('activity-permissions-change-button') .find('.ui-icon-key').addClass('activity-permissions-change'); blkAddAtendee.find('dd.task-activity-list [type=checkbox]').attr('checked', false); blkAddAtendee.find('dd.task-activity-list').qtip('destroy'); }); $('.qtip-active .button.cancel').button().click(function(){ blkAddAtendee.find('dd.activity-list [type=checkbox]').attr('checked', false); blkAddAtendee.find('dd.activity-list').qtip('destroy'); }); if(aclsParticipant) for(var i = 1; i < aclsParticipant.length; i++){ $('.qtip-active').find('input[name="'+acl_names[aclsParticipant.charAt(i)]+'"]').attr('checked', true); } $('.qtip .button').button(); }; }else{ if(!$('.new-activity-win dd.task-activity-list').find('[type=checkbox]:checked').length){ blkAddAtendee.find('dd.attendee-list').qtip('destroy'); }else{ $('.qtip-active .button.save .ui-button-text').html('Aplicar a todos') } }; }) .addClass('tiny disable ui-button-disabled ui-state-disabled') .removeClass('new').end() .filter(".open-delegate.new").click(function(){ if($(this).hasClass('ui-icon-triangle-1-e')){ $(this).removeClass('ui-icon-triangle-1-e').addClass('ui-icon-triangle-1-s'); $(this).parents('li').find('.list-delegates').removeClass('hidden'); }else{ $(this).removeClass('ui-icon-triangle-1-s').addClass('ui-icon-triangle-1-e'); $(this).parents('li').find('.list-delegates').addClass('hidden'); } }).removeClass('new'); blkAddAtendee.find("li input[type=checkbox].new").click(function(){ if(!$('.new-activity-win dd.task-activity-list').find('[type=checkbox]:checked').length){ blkAddAtendee.find('dd.task-activity-list').qtip('destroy'); }else{ checked = true; $(this).parents('li').find('.button.edit').click(); } }).removeClass('new'); UI.dialogs.addActivity.find('.task-activity-list li').hover( function () { $(this).addClass("hover-activity"); $(this).find('.button').removeClass('disable ui-button-disabled ui-state-disabled').end() .find('.activity-options').addClass('hover-activity'); }, function () { $(this).removeClass("hover-activity"); $(this).find('.button').addClass('disable ui-button-disabled ui-state-disabled').end() .find('.activity-options').removeClass('hover-activity');; } ); } var dependsDelegate = function(reference, inverse){ if(inverse){ if(reference.find('input[name="attendee[]"]').val() == blkAddAtendee.find('li.organizer input[name="attendee_organizer"]').val()) blkAddAtendee.find('li.organizer input[name="attendee_organizer"]').val(blkAddAtendee.find('.me input[name="attendee[]"]').val()); }else{ if(blkAddAtendee.find('.me input[name="attendee[]"]').val() == blkAddAtendee.find('li.organizer input[name="attendee_organizer"]').val()) blkAddAtendee.find('li.organizer input[name="attendee_organizer"]').val(reference.find('input[name="attendee[]"]').val()); } }; var removeOthers = function(){ var other = blkAddAtendee.find('.delegate.attendee-permissions-change-button'); if(other.lenght){ dependsDelegate(other.parents('li'), true); } blkAddAtendee.find('.delegate').removeClass('attendee-permissions-change-button'); blkAddAtendee.find('.ui-icon-transferthick-e-w').removeClass('attendee-permissions-change'); }; var html = DataLayer.render( path+'templates/activity_add.ejs', { event:objEvent }); if (!UI.dialogs.addActivity) { UI.dialogs.addActivity = jQuery('#sandbox').append('
').find('.new-activity-win.active').html(html).dialog({ resizable: false, modal:true, autoOpen: false, width:734, 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 (!canDiscardEventDialog && !zebraDiscardEventDialog) { zebraDiscardEventDialog = 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') { canDiscardEventDialog = 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{ zebraDiscardEventDialog = 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() { zebraDiscardEventDialog = false; }, 200); } } }); }, 300); } //DataLayer.rollback(); return canDiscardEventDialog; }, dragStart: function(event, ui) { if ($('.qtip.qtip-blue.qtip-active').length) $('.qtip.qtip-blue.qtip-active').qtip('destroy'); } }); } else { UI.dialogs.addActivity.html(html); } 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 calendar = DataLayer.get('calendar', objEvent.calendar); if (calendar.timezone != objEvent.timezone){ UI.dialogs.addActivity.find('.calendar_addactivity_details_lnk_timezone').find('option[value="'+objEvent.timezone+'"]').attr('selected','selected').trigger('change'); UI.dialogs.addActivity.find('.calendar_addactivity_details_lnk_timezone').addClass('hidden'); $('.calendar-addevent-details-txt-timezone').removeClass('hidden'); } UI.dialogs.addActivity.find('.calendar_addactivity_details_lnk_timezone').click(function(e){ $(this).addClass('hidden'); $('.calendar-addactivity-details-txt-timezone').removeClass('hidden'); e.preventDefault(); }); /*Seleciona a agenda padrão para visualização/edição de um evento*/ if(objEvent.id) UI.dialogs.addActivity.find('option[value="'+objEvent.calendar+'"]').attr('selected','selected').trigger('change'); /* 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'); updateMap(true); }); UI.dialogs.addActivity.find('.button').button(); UI.dialogs.addActivity.find('.button.add').button({ icons: { secondary: "ui-icon-plus" } }); // ==== validation events ==== UI.dialogs.addActivity.find(".input-group .h1").Watermark("Atividade sem título"); if(User.preferences.hourFormat.length == 5) { UI.dialogs.addActivity.find(".end-time, .start-time").mask("99:99", { completed: function(){ updateMap(); } }); } else { $.mask.definitions['{']='[ap]'; $.mask.definitions['}']='[m]'; UI.dialogs.addActivity.find(".end-time, .start-time").mask("99:99 {}", { completed:function(){ $(this).val(date.Calendar.defaultToAmPm($(this).val())); $(this).timepicker("refresh"); $(this).val($(this).val().replace(/[\.]/gi, "")); updateMap(); } }); } 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'){ canDiscardEventDialog = true; /* Remove por filtro */ DataLayer.removeFilter('schedulable', {filter: ['AND', ['=', 'id', objEvent.id], ['=', 'calendar', objEvent.calendar], ['=','user',(objEvent.me.user ? objEvent.me.user.id : objEvent.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; } canDiscardEventDialog = true; var exit = function(event){ if(event) DataLayer.remove('schedulable', event, false); UI.dialogs.addActivity.children().find('form.form-addevent').submit(); UI.dialogs.addActivity.dialog("close"); } if(repeat){ DataLayer.remove('repeat', false); DataLayer.put('repeat', repeat); DataLayer.commit('repeat', false, exit(repeat.schedulable)); }else exit(); }).end() .children(".export").click(function(){ UI.dialogs.addActivity.children().find(".form-export").submit(); }); var task_activityHtml = DataLayer.render( path+'templates/task_activity_add.ejs', { event:objEvent }); var blkAddAtendee = UI.dialogs.addActivity.find('#calendar_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(); } }); UI.dialogs.addActivity.find('input.time').timepicker({ closeText: 'Ok', hourGrid: 4, minuteGrid: 10, ampm : ((User.preferences.hourFormat.length > 5) ? true: false), timeFormat: "hh:mm tt", onSelect: function (selectedDateTime){ if(!(User.preferences.hourFormat.length == 5)) $(this).val(selectedDateTime.replace(/[\.]/gi, "")); updateMap(); }, onClose : function (selectedDateTime){ if(!(User.preferences.hourFormat.length == 5)) $(this).val(selectedDateTime.replace(/[\.]/gi, "")); } }); blkAddAtendee.find('.add-activity-search .ui-icon-search').click(function(event) { blkAddAtendee.find('.add-activity-search input').keydown(); }); blkAddAtendee.find('.add-activity-search input').keydown(function(event) { if(event.keyCode == '13' || typeof(event.keyCode) == 'undefined') { // Fazer get das tarefas var result = [ {'name': 'Tarefa 01'} , {'name': 'Tarefa 02'} , {'name' : 'Tarefa 03'} ]; //DataLayer.get('user', ["*", "name", $(this).val()], true); /** * TODO: trocar por template */ blkAddAtendee.find('ul.search-result-list').empty().css('overflow', 'hidden'); if (!result) { blkAddAtendee.find('ul.search-result-list').append('
  • '); } 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); }); if(objEvent.isShared){ var acls = Calendar.signatureOf[objEvent.calendar].permission.acl; if(!acls.write){ UI.dialogs.addActivity.find(':input').attr('disabled', 'disabled'); UI.dialogs.addActivity.find('.button').hide(); } if(acls.remove) UI.dialogs.addActivity.find('.button.remove').show(); UI.dialogs.addActivity.find('.button.cancel').show(); } disponibily(objEvent, path, attendees); UI.dialogs.addActivity.find('.button-add-alarms').click(function(){ var li_attach = DataLayer.render(path+'templates/alarms_add_itemlist.ejs', {type: 1}); jQuery('.activity-alarms-list').append(li_attach).find('.button.remove').button({ text:false, icons:{ primary:'ui-icon-close' } }).click(function(el) { $(this).parent().remove().find('li').is(':empty') }); // valicacao de campos numericos $('.number').numeric(); }); UI.dialogs.addActivity.dialog('open'); }