source: trunk/expressoAdmin1_2/js/jscode/shared_accounts.js @ 5804

Revision 5804, 33.0 KB checked in by acoutinho, 12 years ago (diff)

Ticket #2434 - Implementada funcionalidade de criacao de agenda para contas compartilhadas e imposicao de agendas

  • Property svn:mime-type set to text/plain
Line 
1countFiles = 1;
2
3function create_shared_accounts()
4{
5//      select_owners = Element('ea_select_owners');
6        hidden_owners_acl = Element('owners_acls');
7        hidden_owners_calendar_acl = Element('owners_calendar_acls');
8
9        select_owners = Element('ea_select_owners');
10        for(var i = 0;i < select_owners.options.length; i++)
11                select_owners.options[i].selected = true;
12               
13        hidden_owners_acl.value =  admin_connector.serialize(sharemailbox.ownersAcl);
14        hidden_owners_calendar_acl.value =  admin_connector.serialize(sharemailbox.ownersCalendarAcl);
15        cExecuteForm ("$this.shared_accounts.create", document.forms['shared_accounts_form'], handler_create_shared_accounts);
16        hidden_owners_acl.value = "";
17}
18
19function handler_create_shared_accounts(data_return)
20{
21        handler_create_shared_accounts2(data_return);
22        return;
23}
24
25function handler_create_shared_accounts2(data_return)
26{
27        if (data_return && !data_return.status)
28        {
29                write_msg(data_return.msg, 'error');
30        }
31        else
32        {
33                close_lightbox();
34                write_msg(get_lang('Shared account successful created') + '.', 'normal');
35        }
36        return;
37}
38
39function empty_inbox(uid)
40{
41var action = get_lang('Cleanned user mailbox');
42var handler_write_log = function(){}
43
44var handler_empty_inbox = function(data)
45{
46    if (!data.status)
47        alert(data.msg);
48    else{
49        cExecute ('$this.user.write_log_from_ajax&_action='+action+'&userinfo='+uid, handler_write_log);
50        alert(get_lang('Emptied') +' '+ data.inbox_size + ' ' + get_lang('MB from user inbox'));
51        document.getElementById('mailquota_used').value = data.mailquota_used;
52    }
53}
54    cExecute ('$this.shared_accounts.empty_inbox&uid='+Element('anchor').value, handler_empty_inbox);
55}
56function set_onload()
57{
58
59    if(sharemailbox.ownersAcl)
60        {
61            delete sharemailbox.ownersAcl;
62            sharemailbox.ownersAcl = new Array();
63                }
64
65    if(sharemailbox.ownersCalendarAcl)
66                {
67        delete sharemailbox.ownersAcl;
68        sharemailbox.ownersAcl = new Array();
69        }
70
71        get_associated_domain(Element('ea_combo_org').value);
72}
73
74function search_organization(key, element)
75{
76        var organizations = Element(element);
77        var RegExp_org = new RegExp("\\b"+key, "i");
78       
79        for(i = 0; i < organizations.length; i++)
80        {
81                if (RegExp_org.test(organizations[i].text))
82                {
83                        organizations[i].selected = true;
84                        return;
85                }
86        }
87}
88
89function sinc_combos_org(context)
90{
91        combo_org_available_users = Element('ea_combo_org_available_users');
92
93        for (i=0; i<combo_org_available_users.length; i++)
94        {
95                if (combo_org_available_users.options[i].value == context)
96                {
97                        combo_org_available_users.options[i].selected = true;
98//                      get_available_users(context);
99                        break;
100                }
101        }
102}
103
104function optionFinderTimeout(obj, event)
105{
106        if( event.keyCode === 13 )
107        {
108            limit = 0;
109            optionFinder(obj.id);
110        }
111}
112function optionFinder(id) {
113       
114        var sentence = Element(id).value;
115
116        var url = '$this.ldap_functions.get_available_users2&context=' +
117                            Element('ea_combo_org_available_users').value +
118                            ( sentence ? '&sentence=' + sentence: '' );
119
120        userFinder( sentence, 'ea_select_available_users', url, 'ea_span_searching' );
121}                       
122
123function add_user()
124{
125        select_available_users = Element('ea_select_available_users');
126        select_owners = Element('ea_select_owners');
127
128        var count_available_users = select_available_users.length;
129        var new_options = '';
130
131        for (i = 0 ; i < count_available_users ; i++)
132        {
133                if (select_available_users.options[i].selected)
134                {
135                        if(document.all)
136                        {
137                                if ( (select_owners.innerHTML.indexOf('value='+select_available_users.options[i].value)) == '-1' )
138                                {
139                                        new_options +=  "<option value="
140                                                                + select_available_users.options[i].value
141                                                                + ">"
142                                                                + select_available_users.options[i].text
143                                                                + "</options>";
144                                }
145                        }
146                        else
147                        {
148                                if ( (select_owners.innerHTML.indexOf('value="'+select_available_users.options[i].value+'"')) == '-1' )
149                                {
150                                        new_options +=  "<option value="
151                                                                + select_available_users.options[i].value
152                                                                + ">"
153                                                                + select_available_users.options[i].text
154                                                                + "</options>";
155                                }
156                        }
157                }
158        }
159
160        if (new_options != '')
161        {
162                select_owners.innerHTML = "&nbsp;" + new_options + select_owners.innerHTML;
163                select_owners.outerHTML = select_owners.outerHTML;             
164        Element('em_input_readAcl').checked = false;
165                Element('em_input_deleteAcl').checked = false;
166                Element('em_input_writeAcl').checked = false;
167                Element('em_input_sendAcl').checked = false;
168                Element('em_input_saveAcl').checked = false;
169                Element('em_input_folderAcl').checked = false;
170               
171                Element('em_input_readCalendar').checked = false;
172                Element('em_input_writeCalendar').checked = false;
173                Element('em_input_editCalendar').checked = false;
174                Element('em_input_deleteCalendar').checked = false;
175                Element('em_input_restrictCalendar').checked = false;
176               
177                Element('em_input_readExpressoCalendar').checked = false;
178                Element('em_input_writeExpressoCalendar').checked = false;
179                Element('em_input_freebusyExpressoCalendar').checked = false;
180                Element('em_input_deleteExpressoCalendar').checked = false;
181               
182               
183        Element('em_input_sendAcl').disabled = true;
184        select_owners = Element('ea_select_owners');
185        select_owners.options[0].selected = true;
186        }
187}
188
189function remove_user()
190{
191        select_owners = Element('ea_select_owners');
192       
193        var user = '';
194        for(var i = 0;i < select_owners.options.length; i++)
195                if(select_owners.options[i].selected){
196                        user = select_owners.options[i].value;
197                        delete sharemailbox.ownersAcl[user];
198                       sharemailbox.ownersCalendarAcl[user] = '';
199                        select_owners.options[i--] = null;
200                }
201                //Nova chamada a "Element" é Necessária devido a um bug do ie com select
202           select_owners = Element('ea_select_owners');
203       if(select_owners.options.length > 0 ){
204            select_owners.options[0].selected = true;
205            user = select_owners.options[0].value;
206            sharemailbox.getaclfromuser(user);
207       }
208       
209       if(sharemailbox.ownersExpressoCalendarAcl){
210
211            delete sharemailbox.ownersExpressoCalendarAcl[user];
212
213            var sharedUser = DataLayer.get('user', {filter: ['=','mail',$('#mail').val()]});
214            var signature = DataLayer.get('calendarSignature', {filter: ['=','user', sharedUser[0].id]});
215
216            var usuario = DataLayer.get('user', {filter: ['AND', ['=','uid',user], ['*','mail',user] ]});
217            var calendarPermission = DataLayer.get('calendarToPermission', {filter: ['AND', ['=','calendar',signature[0].calendar], ['=','user',usuario[0].id] ] });
218
219            var signatureUser = DataLayer.get('calendarSignature', {filter: ['AND', ['=','calendar', signature[0].calendar], ['=','user', usuario[0].id ] ]});
220
221            DataLayer.remove('calendarSignature', signatureUser[0].id);
222            DataLayer.remove('calendarToPermission', calendarPermission[0].id);
223
224        }
225       
226       
227       
228}
229
230function get_shared_accounts_timeOut(input, event)
231{
232        Element('shared_accounts_content').innerHTML = '<table border="0" width="90%"><tr bgcolor="#d3dce3"><td width="30%">'+get_lang("full name")+'</td><td width="30%">'+get_lang("display name")+'</td><td width="30%">'+get_lang("mail")+'</td><td width="5%" align="center">'+get_lang("remove")+'</td></tr></table>';
233       
234        if (event.keyCode === 13)
235        {
236            get_shared_accounts( input );
237        }
238}
239
240function get_shared_accounts(input, callback)
241{
242        var handler_get_shared_accounts = function(data)
243        {
244                if (data.status == 'true')
245                {
246                        var table = '<table border="0" width="90%"><tr bgcolor="#d3dce3"><td width="30%">'+get_lang("full name")+'</td><td width="30%">'+get_lang("display name")+'</td><td width="30%">'+get_lang("mail")+'</td><td width="5%" align="center">'+get_lang("remove")+'</td></tr>'+data.trs+'</table>';
247                        Element('shared_accounts_content').innerHTML = table;
248                }
249                else
250                        write_msg(data.msg, 'error');
251        }
252        cExecute ('$this.ldap_functions.get_shared_accounts&input='+input, handler_get_shared_accounts);
253}
254
255function edit_shared_account(uid)
256{
257        var handle_edit_shared_account = function(data)
258        {
259                if (data.status == 'true')
260                {
261                        modal('shared_accounts_modal','save');
262                       
263                        Element( 'lightboxCaption' ).innerHTML = get_lang( 'Edit Shared Accounts' );
264                        Element('shared_accounts_modal').value = data.mailquota;
265
266
267                        var combo_org = Element('ea_combo_org');
268                        for (i=0; i<combo_org.length; i++)
269                        {
270                                if (combo_org.options[i].value == data.user_context)
271                                {
272                                        combo_org.options[i].selected = true;
273                                        break;
274                                }
275                        }
276                       
277                        // anchor
278                        Element('anchor').value = "uid=" + uid + ',' + data.user_context;                       
279                       
280                        if (data.accountStatus != 'active')
281                                Element('accountStatus').checked = false;
282                               
283                        if (data.phpgwAccountVisible == '-1')
284                                Element('phpgwAccountVisible').checked = true;
285                         Element('uidnumber').value = data.uidnumber;
286                        Element('cn').value = data.cn;
287                        Element('mail').value = data.mail;
288            Element('mailquota').value = data.mailquota;
289            Element('mailquota_used').value = data.mailquota_used;
290            Element('quota_used_field').style.display = 'inline';
291            Element('desc').value = data.description;
292            //Necessario, pois o IE6 tem um bug que não exibe as novas opções se o innerHTML estava vazio
293           
294            if(data.owners_options){
295                Element('ea_select_owners').innerHTML = '&nbsp;' + data.owners_options;
296                Element('ea_select_owners').outerHTML = Element('ea_select_owners').outerHTML;
297            }
298            Element('display_empty_inbox').style.display = data.display_empty_inbox;
299            if( data.allow_edit_shared_account_acl == "0"){
300                Element('bt_add_user').disabled = true;
301                Element('bt_remove_user').disabled = true;
302                Element('em_input_readAcl').disabled = true;
303                Element('em_input_deleteAcl').disabled = true;
304                Element('em_input_writeAcl').disabled = true;
305                Element('em_input_sendAcl').disabled = true;
306                Element('em_input_saveAcl').disabled = true;
307                Element('em_input_folderAcl').disabled = true;
308            }
309
310            if( data.mailalternateaddress )
311                loadAppended( 'mailalternateaddress', data.mailalternateaddress );
312
313                        sinc_combos_org(data.user_context);
314                        sharemailbox.ownersAcl = new Array();
315                        sharemailbox.ownersCalendarAcl = new Array();
316            if( data.owners && data.owners != "undefined" && data.owners_acl != "undefined" ){
317                for (i=0; i<data.owners.length; i++){
318                                sharemailbox.ownersAcl[ data.owners[i] ] = data.owners_acl[i]; 
319                                sharemailbox.ownersCalendarAcl[ data.owners[i] ] = data.owners_calendar_acl[i];
320                }
321            }
322
323            //new API compatibility
324            var signature = DataLayer.get('calendarSignature', {filter: ['=','user', data.uidnumber]});
325            if(!!signature){
326                sharemailbox.currentPemissions[data.uidnumber] = true;
327                var calendarPermission = DataLayer.get('calendarToPermission:detail', {filter: ['=','calendar',signature[0].calendar], criteria:{deepness: 2}});
328                if(calendarPermission){
329                    var owners_options = '';
330                    for (i=0; i < calendarPermission.length; i++){
331                        sharemailbox.ownersExpressoCalendarAcl[ calendarPermission[i].user.uid ] = calendarPermission[i].aclValues;
332                        owners_options += '<option value='+calendarPermission[i].user.uid+'>'+calendarPermission[i].user.name+'</option>'
333                        sharemailbox.currentPemissions[calendarPermission[i].user.uid] = calendarPermission[i].id;
334                    }
335
336
337                    delete sharemailbox.currentPemissions[undefined];
338                    delete sharemailbox.currentPemissions[undefined];
339
340                    Element('ea_select_owners').innerHTML = '&nbsp;' + owners_options;
341                    Element('ea_select_owners').outerHTML = Element('ea_select_owners').outerHTML;
342                   
343                }
344       
345            }
346           
347           
348                }
349                else
350                        write_msg(data.msg, 'error');
351        }
352        cExecute ('$this.shared_accounts.get_data&uid='+uid, handle_edit_shared_account);
353}
354
355function save_shared_accounts()
356{
357        if (is_ie){
358                var i = 0;
359                while (document.forms(i).name != "shared_accounts_form"){i++}
360                form = document.forms(i);
361        }
362        else   form = document.forms["shared_accounts_form"];
363       
364        hidden_owners_calendar_acl = Element('owners_calendar_acls');
365        hidden_owners_acl = Element('owners_acls');
366        select_owners = Element('ea_select_owners');
367        for(var i = 0;i < select_owners.options.length; i++){           
368            var user = select_owners.options[i].value;               
369            select_owners.options[i].value = user;
370        }
371        hidden_owners_acl.value =  admin_connector.serialize(sharemailbox.ownersAcl);
372       
373        if(sharemailbox.ownersExpressoCalendarAcl){
374           
375            var calback = function(){
376                var sharedUser = DataLayer.get('user', {filter: ['=','mail',$('#mail').val()]});
377
378                if(!!sharedUser && $.isArray(sharedUser))
379                    sharedUser = sharedUser[0];
380
381                if(!!!sharemailbox.currentPemissions[sharedUser.id])
382                    DataLayer.put('calendarSignature', {
383                        user: sharedUser.id,
384                        calendar:  {
385                            timezone: 'America/Sao_Paulo',
386                            name: $('#cn').val(),
387                            location : $('#cn').val(),
388                            description : $('#cn').val()
389                            },
390                        isOwner:  '1',
391                        fontColor:  '000000',
392                        backgroundColor: 'f1efac',
393                        borderColor: 'eddb21'
394                    });
395
396                var returns = function(data){
397                   
398                   
399                    var calendar = '';
400                   
401                    if(data){
402                        for(var i in data)
403                            if(i.indexOf('calendar:') >= 0)
404                                calendar = data[i].id;
405                    }else{
406                        calendar = DataLayer.get('calendarSignature', {filter: ['=','user', sharedUser.id]});
407                        calendar = calendar[0].calendar;
408                    }
409                   
410                $.each(sharemailbox.ownersExpressoCalendarAcl, function(user, acl) {
411
412                        var usuario = DataLayer.get('user', {filter: ['AND', ['=','uid',user], ['*','mail',user] ]});
413
414                        if($.isArray(usuario))
415                            usuario = usuario[0];
416
417                       
418                        DataLayer.put('calendarToPermission', DataLayer.merge({
419                            user:  usuario.id,
420                            type: '0',
421                            acl: acl,
422                            calendar: calendar
423                        }, !!sharemailbox.currentPemissions[usuario.uid] ? {id: sharemailbox.currentPemissions[usuario.uid]} : {}));
424                       
425                        if(!!!sharemailbox.currentPemissions[usuario.uid])
426                            DataLayer.put('calendarSignature', {
427                                user: usuario.id,
428                                calendar:  calendar,
429                                isOwner:  '0',
430                                fontColor:  '000000',
431                                backgroundColor: 'f1efac',
432                                borderColor: 'eddb21'
433                            });
434
435                    })
436                    DataLayer.commit(); 
437                };
438                if(!!sharemailbox.currentPemissions[sharedUser.id])
439                    returns(false);
440                else
441                    DataLayer.commit(false, false, returns);
442            }
443        }
444        hidden_owners_calendar_acl.value =  admin_connector.serialize(sharemailbox.ownersCalendarAcl);
445        cExecuteForm ("$this.shared_accounts.save", form, handler_save_shared_accounts);
446        get_shared_accounts(Element('ea_shared_account_search').value);
447        calback();
448}
449
450function handler_save_shared_accounts(data_return)
451{
452        handler_save_shared_accounts2(data_return);
453        return;
454}
455function handler_save_shared_accounts2(data_return)
456{
457        if (!data_return.status)
458        {
459                write_msg(data_return.msg, 'error');
460        }
461        else
462        {
463               
464                hidden_owners_acl.value = "";
465                close_lightbox();
466                write_msg(get_lang('Shared account successful saved') + '.', 'normal');
467        }
468        return;
469}
470
471function delete_shared_accounts(uid)
472{
473        if (!confirm(get_lang('Are you sure that you want to delete this shared account') + "?"))
474                return;
475       
476        var handle_delete_shared_account = function(data_return)
477        {
478                if (!data_return.status)
479                {
480                        write_msg(data_return.msg, 'error');
481                }
482                else
483                {
484                        write_msg(get_lang('Shared account successful deleted') + '.', 'normal');
485                        get_shared_accounts(Element('ea_shared_account_search').value);
486                }
487                return;
488        }
489        cExecute ('$this.shared_accounts.delete&uid='+uid, handle_delete_shared_account);
490}function cShareMailbox()
491        {
492                this.arrayWin = new Array();
493                this.el;
494                this.alert = false;
495                this.ownersAcl = new Array();
496                this.ownersCalendarAcl = new Array();
497                this.ownersExpressoCalendarAcl = {};
498                this.currentPemissions = {};
499        }
500
501        cShareMailbox.prototype.get_available_users = function(context)
502        {
503                var handler_get_available_users = function(data)
504                {
505                        select_available_users = document.getElementById('em_select_available_users');
506               
507                        //Limpa o select
508                        for(var i=0; i<select_available_users.options.length; i++)
509                        {
510                                select_available_users.options[i] = null;
511                                i--;
512                        }
513
514                        if ((data) && (data.length > 0))
515                        {
516                                // Necessario, pois o IE6 tem um bug que retira o primeiro options se o innerHTML estiver vazio.
517                                select_available_users.innerHTML = '#' + data;
518                                select_available_users.outerHTML = select_available_users.outerHTML;
519                       
520                                select_available_users.disabled = false;
521                                select_available_users_clone = document.getElementById('em_select_available_users').cloneNode(true);
522                                document.getElementById('em_input_searchUser').value = '';
523                        }
524                }
525                cExecute ("$this.ldap_functions.get_available_users2&context="+context, handler_get_available_users);
526        }
527
528        cShareMailbox.prototype.getaclfromuser = function(user)
529        {
530       
531                Element('em_input_readAcl').checked = false;
532                Element('em_input_deleteAcl').checked = false;
533                Element('em_input_writeAcl').checked = false;
534                Element('em_input_sendAcl').checked = false;
535                Element('em_input_saveAcl').checked = false;
536                Element('em_input_saveAcl').disabled = true;
537                Element('em_input_folderAcl').checked = false;
538                Element('em_input_readCalendar').checked = false;
539                Element('em_input_writeCalendar').checked = false;
540                Element('em_input_editCalendar').checked = false;
541                Element('em_input_deleteCalendar').checked = false;
542                Element('em_input_restrictCalendar').checked = false;
543
544                Element('em_input_readExpressoCalendar').checked = false;
545                Element('em_input_writeExpressoCalendar').checked = false;
546                Element('em_input_freebusyExpressoCalendar').checked = false;
547                Element('em_input_deleteExpressoCalendar').checked = false;
548
549                Element('em_input_editCalendar').disabled = true;
550                Element('em_input_deleteCalendar').disabled = true;
551                Element('em_input_restrictCalendar').disabled = true;
552               
553               
554                if(this.ownersExpressoCalendarAcl[user])
555                {
556                    if (this.ownersExpressoCalendarAcl[user].indexOf('r') >= 0)
557                    {
558                            Element('em_input_readExpressoCalendar').checked = true;
559                            Element('em_input_writeExpressoCalendar').checked = false;
560                            Element('em_input_freebusyExpressoCalendar').checked = false;
561                            Element('em_input_deleteExpressoCalendar').checked = false;
562                           
563                    }
564                    if (this.ownersExpressoCalendarAcl[user].indexOf('w') >= 0)
565                    {
566                            Element('em_input_writeExpressoCalendar').checked = true;
567                    }
568                    if (this.ownersExpressoCalendarAcl[user].indexOf('d') >= 0)
569                    {
570                            Element('em_input_deleteExpressoCalendar').checked = true;
571                    }
572                    if (this.ownersExpressoCalendarAcl[user].indexOf('b') >= 0)
573                    {
574                            Element('em_input_freebusyExpressoCalendar').checked = true;
575                    }
576                }
577               
578               
579                if(this.ownersCalendarAcl[user])
580                {
581                    if (this.ownersCalendarAcl[user].indexOf('1-',0) >= 0)
582                    {
583                            Element('em_input_readCalendar').checked = true;
584                            Element('em_input_editCalendar').disabled = false;
585                            Element('em_input_deleteCalendar').disabled = false;
586                            Element('em_input_restrictCalendar').disabled = false;
587                           
588                            Element('em_input_readExpressoCalendar').checked = true;
589                            Element('em_input_writeExpressoCalendar').checked = false;
590                            Element('em_input_freebusyExpressoCalendar').checked = false;
591                            Element('em_input_deleteExpressoCalendar').checked = false;
592                           
593                    }
594                    if (this.ownersCalendarAcl[user].indexOf('2-',0) >= 0)
595                    {
596                            Element('em_input_writeCalendar').checked = true;
597                            Element('em_input_writeExpressoCalendar').checked = true;
598                    }
599                    if (this.ownersCalendarAcl[user].indexOf('4-',0) >= 0)
600                    {
601                            Element('em_input_editCalendar').checked = true;
602                            Element('em_input_writeExpressoCalendar').checked = true;
603                    }
604                    if (this.ownersCalendarAcl[user].indexOf('8-',0) >= 0)
605                    {
606                            Element('em_input_deleteCalendar').checked = true;
607                            Element('em_input_deleteExpressoCalendar').checked = true;
608                    }
609                    if (this.ownersCalendarAcl[user].indexOf('16-',0) >= 0)
610                    {
611                            Element('em_input_restrictCalendar').checked = true;
612                    }
613                }
614
615                if(this.ownersAcl[user])
616                {
617                    if ( this.ownersAcl[user].indexOf('lrs',0) >= 0)
618                {
619                        Element('em_input_sendAcl').disabled = false;
620                        Element('em_input_readAcl').checked = true;
621                }
622                else
623                        Element('em_input_sendAcl').disabled = true;
624                       
625                    if ( this.ownersAcl[user].indexOf('d',0) >= 0)
626                {
627                        Element('em_input_deleteAcl').checked = true;
628                }
629                    if ( this.ownersAcl[user].indexOf('wi',0) >= 0)
630                {
631                        Element('em_input_writeAcl').checked = true;
632                }               
633                    if (this.ownersAcl[user].indexOf('a',0) >= 0)
634                {
635                        Element('em_input_sendAcl').disabled = false;
636                        Element('em_input_sendAcl').checked = true;
637                }
638                    if ( this.ownersAcl[user].indexOf('p',0) >= 0)
639                {
640                        Element('em_input_saveAcl').disabled = false;
641                        Element('em_input_saveAcl').checked = true;
642                }
643                    if ( this.ownersAcl[user].indexOf('c',0) >= 0)
644                {
645                        Element('em_input_folderAcl').checked = true;
646                }
647                    if( Element('em_input_writeAcl').checked && Element('em_input_sendAcl').checked ){
648                        Element('em_input_saveAcl').disabled = false;
649                } else Element('em_input_saveAcl').disabled = true;
650        }
651        }
652       
653        cShareMailbox.prototype.setaclfromuser = function()
654        {
655                var acl         = '';
656                var select      = Element('ea_select_owners');
657
658                if(select.selectedIndex == "-1"){
659                        alert("Selecione antes um usuario!");
660                        return false;
661                }
662               
663                for(var k = 0; k < select.options.length; k ++ )
664                {
665                    if(select.options[k].selected !== true ) continue;
666                   
667                   
668                    acl = '';
669                    var user = select.options[k].value;
670               
671                if (Element('em_input_readAcl').checked) {
672                        Element('em_input_sendAcl').disabled = false;
673                        acl = 'lrs';
674                }
675                else{
676                        Element('em_input_sendAcl').disabled = true;
677                        Element('em_input_sendAcl').checked = false;
678                }
679                               
680                if (Element('em_input_deleteAcl').checked)
681                        acl += 'd';
682
683                if (Element('em_input_writeAcl').checked)
684                        acl += 'wi';
685
686                if (Element('em_input_sendAcl').checked)
687                        acl += 'a';
688               
689                if (Element('em_input_folderAcl').checked)
690                        acl += 'c';
691                               
692                if (Element('em_input_sendAcl').checked && Element('em_input_writeAcl').checked){
693                        Element('em_input_saveAcl').disabled = false;                           
694                } else {
695                        Element('em_input_saveAcl').disabled = true;
696                        Element('em_input_saveAcl').checked = false;
697                }
698                if (Element('em_input_saveAcl').checked)
699                        acl += 'p';
700                       
701                this.ownersAcl[user] = acl;             
702        }
703        }
704
705        cShareMailbox.prototype.setCalendaraclfromuser = function()
706        {
707                var acl         = '';
708                var select      = Element('ea_select_owners');
709               
710                sharemailbox.ownersExpressoCalendarAcl = false;
711
712                if(select.selectedIndex == "-1"){
713                        alert("Selecione antes um usuario!");
714                        return false;
715                }
716               
717                for(var k = 0; k < select.options.length; k ++ )
718                {
719                    if(select.options[k].selected !== true ) continue;
720                   
721                    acl = '';
722                    var user = select.options[k].value;
723
724                    if (Element('em_input_readCalendar').checked)
725                    {
726
727                        acl += '1-';
728
729                        Element('em_input_editCalendar').disabled = false;
730                        Element('em_input_deleteCalendar').disabled = false;
731                        Element('em_input_restrictCalendar').disabled = false;
732                       
733                        if (Element('em_input_editCalendar').checked)
734                                acl += '4-';
735
736                        if (Element('em_input_deleteCalendar').checked )
737                                acl += '8-';
738
739                        if (Element('em_input_restrictCalendar').checked)
740                                acl += '16-';
741                    }
742                    else
743                    {
744                        Element('em_input_editCalendar').disabled = true;
745                        Element('em_input_deleteCalendar').disabled = true;
746                        Element('em_input_restrictCalendar').disabled = true;
747                        Element('em_input_editCalendar').checked = false;
748                        Element('em_input_deleteCalendar').checked = false;
749                        Element('em_input_restrictCalendar').checked = false;
750                       
751                    }
752
753                    if (Element('em_input_writeCalendar').checked || Element('em_input_writeExpressoCalendar').checked)
754                            acl += '2-';
755
756
757                    this.ownersCalendarAcl[user] = acl;
758                }
759        }
760       
761        cShareMailbox.prototype.setExpressoCalendaraclfromuser = function()
762        {
763                var acl         = '';
764                var select      = Element('ea_select_owners');
765               
766                sharemailbox.ownersCalendarAcl = false;
767
768                if(select.selectedIndex == "-1"){
769                        alert("Selecione antes um usuario!");
770                        return false;
771                }
772               
773                for(var k = 0; k < select.options.length; k ++ )
774                {
775                    if(select.options[k].selected !== true ) continue;
776                   
777                    acl = '';
778                    var user = select.options[k].value;
779                   
780                    if(Element('em_input_freebusyExpressoCalendar').checked)
781                    {
782                        Element('em_input_writeExpressoCalendar').disabled = true;
783                        Element('em_input_deleteExpressoCalendar').disabled = true;
784                        Element('em_input_readExpressoCalendar').disabled = true;
785                        Element('em_input_writeExpressoCalendar').checked = false;
786                        Element('em_input_deleteExpressoCalendar').checked = false;
787                        Element('em_input_readExpressoCalendar').checked = false;
788                                             
789                       
790                        acl += 'b'
791                    }
792                    else
793                    {
794                        Element('em_input_readExpressoCalendar').disabled = false;
795                        if (Element('em_input_readExpressoCalendar').checked)
796                        {
797                            acl += 'r';
798
799                            Element('em_input_writeExpressoCalendar').disabled = false;
800                            Element('em_input_deleteExpressoCalendar').disabled = false;
801                            //Element('em_input_freebusyExpressoCalendar').disabled = false;
802
803                            if (Element('em_input_writeExpressoCalendar').checked)
804                                    acl += 'w';
805
806                            if (Element('em_input_deleteExpressoCalendar').checked)
807                                    acl += 'd';
808
809                        }
810                        else
811                        {
812                            Element('em_input_writeExpressoCalendar').disabled = true;
813                            Element('em_input_deleteExpressoCalendar').disabled = true;
814                            //Element('em_input_freebusyExpressoCalendar').disabled = true;
815                            Element('em_input_writeExpressoCalendar').checked = false;
816                            Element('em_input_deleteExpressoCalendar').checked = false;
817                           // Element('em_input_freebusyExpressoCalendar').checked = false;
818                        }
819
820                    }
821                   
822                    this.ownersExpressoCalendarAcl[user] = acl;
823                }
824        }
825               
826        cShareMailbox.prototype.add_user = function()
827        {
828                var select_available_users = document.getElementById('em_select_available_users');
829                var select_users = document.getElementById('ea_select_owners');
830
831                var count_available_users = select_available_users.length;
832                var count_users = select_users.options.length;
833                var new_options = '';
834       
835                for (i = 0 ; i < count_available_users ; i++)
836                {
837                        if (select_available_users.options[i].selected)
838                        {
839                                if(document.all)
840                                {
841                                        if ( (select_users.innerHTML.indexOf('value='+select_available_users.options[i].value)) == '-1' )
842                                        {
843                                                new_options +=  '<option value='
844                                                                        + select_available_users.options[i].value
845                                                                        + '>'
846                                                                        + select_available_users.options[i].text
847                                                                        + '</option>';
848                                        }
849                                }
850                                else
851                                {
852                                        if ( (select_users.innerHTML.indexOf('value="'+select_available_users.options[i].value+'"')) == '-1' )
853                                        {
854                                                new_options +=  '<option value='
855                                                                        + select_available_users.options[i].value
856                                                                        + '>'
857                                                                        + select_available_users.options[i].text
858                                                                        + '</option>';
859                                        }
860                                }
861                        }
862                }
863
864                if (new_options != '')
865                {
866                        select_users.innerHTML = '#' + new_options + select_users.innerHTML;
867                        select_users.outerHTML = select_users.outerHTML;
868                       
869                }
870        }
871
872        cShareMailbox.prototype.remove_user = function()
873        {
874                select_users = document.getElementById('ea_select_owners');
875       
876                for(var i = 0;i < select_users.options.length; i++)
877                        if(select_users.options[i].selected)
878                    {
879                       
880                        var user = select_users.options[i].value;
881                        this.ownersCalendarAcl[user] = '';
882                                select_users.options[i--] = null;
883                               
884                    }
885               
886                Element('em_input_readAcl').checked = false;           
887                Element('em_input_deleteAcl').checked = false;
888                Element('em_input_writeAcl').checked = false;
889                Element('em_input_sendAcl').checked = false;
890                Element('em_input_saveAcl').checked = false;
891                Element('em_input_folderAcl').checked = false;
892               
893                Element('em_input_readCalendar').checked = false;
894                Element('em_input_writeCalendar').checked = false;
895                Element('em_input_editCalendar').checked = false;
896                Element('em_input_deleteCalendar').checked = false;
897                Element('em_input_restrictCalendar').checked = false;
898               
899                Element('em_input_readExpressoCalendar').disabled = true;
900                Element('em_input_writeExpressoCalendar').disabled = true;
901                Element('em_input_deleteExpressoCalendar').disabled = true;
902                Element('em_input_readExpressoCalendar').disabled = true;
903        }
904       
905       
906/* Build the Object */
907        var sharemailbox;
908        sharemailbox = new cShareMailbox();
Note: See TracBrowser for help on using the repository browser.