source: branches/2.4/prototype/modules/calendar/js/load.js @ 7228

Revision 7228, 3.6 KB checked in by douglas, 12 years ago (diff)

Ticket #0000 - Copiadas as alterações do Trunk. Versão final da 2.4.2.

Line 
1Refresh = {
2    //Tempo em que após a ultima sincronização será verificado atualizações
3    timeRefresh : 180,
4    clookRefresh: false,
5
6    init: function(){
7
8        delete DataLayer.tasks[this.clookRefresh];
9       
10        //Realiza agendamentos de atualização de view somente se o módulo aberto for expressoCalendar
11        if(User.moduleName == "expressoCalendar"){
12            this.clookRefresh = (parseInt(($.now()) / 1000) + this.timeRefresh);
13
14            DataLayer.task( this.clookRefresh , function(){
15                Calendar.rerenderView(true);
16            });
17        }
18    }
19}
20
21Calendar = {
22 
23    load: function(){
24        this.lastView = 0;
25        var filter = ['=', 'user', User.me.id];
26        if(!!User.me.gidNumber){
27            if(!$.isArray(User.me.gidNumber))
28                User.me.gidNumber = [User.me.gidNumber];
29
30            filter = ['OR', filter, ['IN', 'user', User.me.gidNumber]];
31        }
32
33        //var descart = DataLayer.get("calendarSignature", {filter: filter, criteria: {deepness: 2}});
34        this.signatures  = DataLayer.get("calendarSignature", {
35            filter: filter,
36            criteria: {
37                deepness: 2
38            }
39        });
40         
41    var prevSources = this.sources;
42   
43    this.sources = DataLayer.encode( "calendarSignature:calendar", this.signatures );
44
45     if( prevSources )
46    {
47        var newSources = this.sources.slice();
48
49        for( var i = 0; i < newSources.length; i++ )
50            $('#calendar').fullCalendar( 'addEventSource', newSources[i] );
51
52        for( var i = 0; i < prevSources.length; i++ )
53            $('#calendar').fullCalendar( 'removeEventSource', prevSources[i] );
54    }
55
56    this.calendarIds = [], this.groupIds = [], this.signatureOf = {}, this.calendars = [], this.groups = [], this.calendarOf = {}, this.groupOf= {};
57
58    for( var i = 0; i < this.signatures.length; i++ ){
59        if(this.signatures[i].isOwner == "0")
60            this.signatures[i].permission =  DataLayer.encode('calendarToPermission:detail', this.signatures[i].permission);
61
62        if(this.signatures[i].calendar.type == '1')
63           this.signatureOf[ this.groupIds[this.groupIds.length] = ( this.groups[ this.groups.length ] = this.groupOf[ this.signatures[i].id ] = this.signatures[i].calendar ).id ] = this.signatures[i];
64        else
65           this.signatureOf[ this.calendarIds[ this.calendarIds.length] = ( this.calendars[ this.calendars.length ] = this.calendarOf[ this.signatures[i].id ] = this.signatures[i].calendar ).id ] = this.signatures[i];
66    }
67
68    delete Calendar.currentViewKey;
69    Refresh.init();
70    },
71
72    rerenderView: function(force){
73        //TODO - Remover if quando centralizar o objeto User que contem as informações do usuário logado em um local acessível a todos módulos
74        if(User.moduleName == "expressoCalendar"){
75            if((typeof($tabs) != "undefined") && $tabs.tabs('option' ,'selected') == 0){
76                if(force){
77                    delete Calendar.currentViewKey;
78                    $('#calendar').fullCalendar( 'refetchEvents' );
79
80                    //Recarrega os alarmes de eventos   
81                    Alarms.load();
82
83                    Refresh.init();
84                }
85
86                var calendarNotSelected = getSelectedCalendars( true );
87                for(var i = 0; i < calendarNotSelected.length; i++)
88                        if(!!Calendar.currentView[ calendarNotSelected[i] ])
89                        Calendar.currentView[ calendarNotSelected[i] ].hidden = true;
90
91                $('#calendar').fullCalendar( 'refetchEvents' );
92
93                contentMenu();
94            }else if((typeof($tabs) != "undefined") && $tabs.tabs('option' ,'selected') != 0)
95                               
96                pageselectCallback($('.events-list-win.active [name=keyword]').val(), 0, false, ($tabs.tabs('option' ,'selected') > 2) ? 2 : ($tabs.tabs('option' ,'selected') == 1) ? 0 : 1);
97        }
98    }
99}
100
101Calendar.load();
Note: See TracBrowser for help on using the repository browser.