Ignore:
Timestamp:
03/01/12 03:35:01 (12 years ago)
Author:
acoutinho
Message:

Ticket #2434 - Implementacao de compartilhamento de agendas (agendas usuario e agendas publicas)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/calendar/js/helpers.js

    r5530 r5592  
    5959*/ 
    6060 
    61 function eventDetails( objEvent, decoded, path) 
     61function eventDetails( objEvent, decoded, path, isMail) 
    6262{ 
    6363        if(path == undefined) 
     
    6767            objEvent = DataLayer.decode( "schedulable:calendar", objEvent ); 
    6868 
     69        if(!isMail) 
    6970        objEvent = DataLayer.encode( "schedulable:preview", objEvent ); 
    7071         
     
    730731                                        if (user){ 
    731732                                                if (!skipAddNewLine) { 
    732                                                         user[0].id =  DataLayer.put('participant', {user: user[0].id, isExternal: isExternal}); 
     733                                                        user[0].id =  DataLayer.put('participant', {user: user[0].id, isExternal: isExternal, acl: 'r'}); 
     734                                                        user[0].acl = objEvent.acl 
     735 
    733736                                                        blkAddAtendee.find('dd.attendee-list ul.attendee-list').append( 
    734                                                                 DataLayer.render(path+'templates/participants_add_itemlist.ejs', {user:user, acl: objEvent.acl}) 
     737                                                                DataLayer.render(path+'templates/participants_add_itemlist.ejs', user) 
    735738                                                        ) 
    736739                                                        .scrollTo('max'); 
     
    794797                        * Trata a busca de usuários para adição de participantes 
    795798                        */ 
     799                        blkAddAtendee.find('.add-attendee-search .ui-icon-search').click(function(event) { 
     800                                blkAddAtendee.find('.add-attendee-search input').keydown(); 
     801                        }); 
     802                         
     803                         
    796804                        blkAddAtendee.find('.add-attendee-search input').keydown(function(event) { 
    797805 
    798                                 if(event.keyCode == '13') {                      
     806                                if(event.keyCode == '13' || typeof(event.keyCode) == 'undefined') {                      
    799807                                        var result = DataLayer.get('user', ["*", "name", $(this).val()], true); 
    800808 
     
    899907                sequentialUploads: true, 
    900908                add: function (e, data) { 
    901                         if(data.files[0].size < 30000000) 
     909                        if(data.files[0].size < 2000000) 
    902910                                data.submit(); 
    903911                }, 
     
    909917                                        attach.fileName = file.name.substr(0, 6) + file.name.substr(file.name.length-4, file.name.length); 
    910918                                attach.fileSize = formatBytes(file.size); 
    911                                 if(file.size > 30000000) 
     919                                if(file.size > 2000000) 
    912920                                        attach.error = 'Tamanho de arquivo nao permitido!!' 
    913921                                 
    914922                                $('.attachments-list').append(DataLayer.render(path+'templates/attachment_add_itemlist.ejs', {file : attach})); 
    915923                                 
    916                                 if(file.size < 30000000){ 
     924                                if(file.size < 2000000){ 
    917925                                        $('.fileinput-button.new').append(data.fileInput[0]).removeClass('new'); 
    918926                                        $('.attachments-list').find('[type=file]').addClass('hidden'); 
     
    10341042                        canDiscardEventDialog = false; 
    10351043        });      
    1036                  
    1037                  
    1038                 UI.dialogs.addEvent.dialog('open'); 
     1044         
     1045        if(objEvent.isShared){ 
     1046                 
     1047                var acls = Calendar.signatureOf[objEvent.calendar].permission.acl; 
     1048                 
     1049                if(!acls.write){ 
     1050                        UI.dialogs.addEvent.find(':input').attr('disabled', 'disabled'); 
     1051                        UI.dialogs.addEvent.find('.button').hide(); 
     1052                } 
     1053                 
     1054                if(acls.remove) 
     1055                        UI.dialogs.addEvent.find('.button.remove').show(); 
     1056                 
     1057                UI.dialogs.addEvent.find('.button.cancel').show(); 
     1058                 
     1059         
     1060        } 
     1061         
     1062                 
     1063        UI.dialogs.addEvent.dialog('open'); 
    10391064} 
    10401065 
     
    13681393} 
    13691394 
     1395function remove_event(eventId){ 
     1396        $.Zebra_Dialog('Tem certeza que deseja excluir o evento?', { 
     1397                'type':     'question', 
     1398                'overlay_opacity': '0.5', 
     1399                'buttons':  ['Sim', 'Não'], 
     1400                'onClose':  function(clicked) { 
     1401                        if(clicked == 'Sim'){ 
     1402                                DataLayer.remove('schedulable', ''+eventId); 
     1403                                window.setTimeout(function() {DataLayer.commit();}, 500); 
     1404                        } 
     1405                } 
     1406        });      
     1407} 
     1408 
     1409 
    13701410function remove_calendar(){ 
    13711411        /* Pode ser assim $('.cal-list-options-btn.ui-state-active').attr('class').replace(/[a-zA-Z-]+/g, ''); */ 
     
    13771417                        if(clicked == 'Sim'){ 
    13781418                                var idCalendar =  $('.cal-list-options-btn.ui-state-active').attr('class').match(/[0-9]+/g); 
    1379                                 var signature = ''; 
    1380                                 for(var i =0; i < Calendar.signatures.length; i++){ 
    1381                                         if(idCalendar[0] == Calendar.signatures[i].calendar.id){ 
    1382                                                 signature = Calendar.signatures[i].id; 
    1383                                                 break; 
    1384                                         } 
    1385                                 } 
    1386                                 DataLayer.remove('calendarSignature', signature); 
     1419                                 
     1420                                DataLayer.remove('calendarSignature', Calendar.signatureOf[idCalendar[0]].id ); 
     1421                                 
    13871422                                if(idCalendar == User.preferences.defaultCalendar) 
    13881423                                        DataLayer.remove( 'modulePreference', User.preferenceIds['defaultCalendar']); 
     
    14281463        });          
    14291464         
    1430          
    1431         meu_container.find(".button.new").button({ 
     1465        meu_container.find(".button.new-calendar").button({ 
    14321466                icons: { 
    14331467            primary: "ui-icon-plus" 
     
    14621496                        }) 
    14631497                        .click(function(){ 
    1464                                 meu_container.find(".button.new").qtip('destroy'); 
     1498                                meu_container.find(".button.new-calendar").qtip('destroy'); 
    14651499                        }); 
    14661500                        //TODO emplementar tratamento de duplicação de valores no location 
     
    15431577            });    
    15441578         
     1579                meu_container.find(".button.new-calendar-shared").button({ 
     1580                icons: { 
     1581            primary: "ui-icon-plus" 
     1582        }, 
     1583        text: false 
     1584                }).click(function (event) { 
     1585                        show_modal_search_shared(); 
     1586                }); 
     1587                 
     1588                 
     1589                //TODO Implementar ocultar agendas. 
     1590                meu_container.find('.title-signed-calendars').click(function(evt){ 
     1591                        var status = $(this).parent().find('.status-list-shared'); 
     1592                         
     1593                        if(status.hasClass('ui-icon-triangle-1-s')) 
     1594                                status.removeClass('ui-icon-triangle-1-s').addClass('ui-icon-triangle-1-e'); 
     1595                        else 
     1596                                status.removeClass('ui-icon-triangle-1-e').addClass('ui-icon-triangle-1-s'); 
     1597                }); 
     1598                 
    15451599            $('.calendar-view').click(function(evt){ 
    15461600                        if($tabs.tabs('option' ,'selected') == 1){ 
     
    17151769                case 'basicDay': 
    17161770                case 'day': 
    1717                         rangeStart = new Date().add({days: page_index}).toString("yyyy-MM-dd"); 
     1771                        rangeStart = new Date().add({days: page_index}).getTime(); 
    17181772                        rangeEnd = rangeStart; 
    17191773                         break; 
     
    17221776                        var dateStart = new Date().moveToDayOfWeek(dateCalendar.dayOfWeek[User.preferences.weekStart]);  
    17231777                        var dateEnd = new Date().moveToDayOfWeek(dateCalendar.dayOfWeek[User.preferences.weekStart]);  
    1724                         rangeStart = dateStart.add({days: (7 * page_index)}).toString("yyyy-MM-dd"); 
    1725                         rangeEnd = dateEnd.add({days: (7 * page_index)+7}).toString("yyyy-MM-dd"); 
     1778                        rangeStart = dateStart.add({days: (7 * page_index)}).getTime(); 
     1779                        rangeEnd = dateEnd.add({days: (7 * page_index)+7}).getTime(); 
    17261780                        break; 
    17271781                case 'month': 
    1728                         var date = new Date().add({months: page_index})  
    1729                         rangeStart = date.moveToFirstDayOfMonth().toString("yyyy-MM-dd"); 
    1730                         rangeEnd = date.moveToLastDayOfMonth().toString("yyyy-MM-dd"); 
     1782                        var date = Date.today().add({months: page_index})  
     1783                        rangeStart = date.moveToFirstDayOfMonth().getTime(); 
     1784                        rangeEnd = date.moveToLastDayOfMonth().getTime(); 
    17311785                         break; 
    17321786                case 'year': 
     
    17371791                        if(dateEnd.getMonth() != 11) 
    17381792                                dateEnd.moveToMonth(11)  
    1739                          rangeStart =    dateStart.moveToFirstDayOfMonth().toString("yyyy-MM-dd"); 
    1740                          rangeEnd = dateEnd.moveToLastDayOfMonth().toString("yyyy-MM-dd"); 
     1793                         rangeStart =    dateStart.moveToFirstDayOfMonth().getTime(); 
     1794                         rangeEnd = dateEnd.moveToLastDayOfMonth().getTime(); 
    17411795                           break;   
    17421796                        } 
     
    18721926    }); 
    18731927} 
     1928 
     1929function copyAndMoveTo(calendar, eventId){ 
     1930 
     1931    var type = $('.calendar-copy-move input[name="typeEvent"]').val(); 
     1932 
     1933        var schedulable = DataLayer.get('schedulable' , ''+eventId); 
     1934         
     1935        if(typeof(schedulable) == "array") 
     1936                schedulable = schedulable[0]; 
     1937         
     1938        //Move eventos entre agendas 
     1939        if(!!parseInt(type)){ 
     1940                 
     1941                schedulable.calendar = calendar;         
     1942                DataLayer.put('schedulable', schedulable); 
     1943         
     1944                DataLayer.commit(); 
     1945        //copia eventos entre agendas 
     1946        }else{ 
     1947         
     1948                var newSchedulable = schedulable; 
     1949         
     1950                delete newSchedulable.id; 
     1951                delete newSchedulable.uid; 
     1952                delete newSchedulable.sequence; 
     1953                delete newSchedulable.dtstamp; 
     1954                delete schedulable.calendar; 
     1955                 
     1956                schedulable.calendar = calendar;         
     1957         
     1958                newSchedulable.endTime = new Date(parseInt(newSchedulable.endTime) - (newSchedulable.allDay ? 86400000 : 0)).toString('yyyy-MM-dd hh:mm:00'); 
     1959                newSchedulable.startTime = new Date(parseInt(newSchedulable.startTime)).toString('yyyy-MM-dd hh:mm:00');  
     1960                 
     1961                var participants = DataLayer.copy(schedulable.participants); 
     1962                delete schedulable.participants; 
     1963                 
     1964                schedulable.participants =  $.map( participants, function( attendee, i ){ 
     1965                         
     1966                        var participant = DataLayer.get('participant', attendee); 
     1967                         
     1968                        if(typeof(participant) == 'array') 
     1969                                participant = participant[0]; 
     1970         
     1971                        delete participant.id; 
     1972                         
     1973                        return participant ; 
     1974        }); 
     1975         
     1976         
     1977         
     1978                DataLayer.put('schedulable', newSchedulable); 
     1979 
     1980        } 
     1981         
     1982 
     1983} 
Note: See TracChangeset for help on using the changeset viewer.