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