Changeset 5358 for trunk/prototype
- Timestamp:
- 01/11/12 13:28:21 (12 years ago)
- Location:
- trunk/prototype/modules/calendar
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/prototype/modules/calendar/index.php
r5349 r5358 349 349 350 350 eventClick: function( evt, event, view ){ 351 eventDetails( DataLayer.get( "schedulable", evt.id ), true);351 eventDetails( DataLayer.get( "schedulable", evt.id), true); 352 352 } 353 353 }); -
trunk/prototype/modules/calendar/js/calendar.codecs.js
r5343 r5358 437 437 }; 438 438 439 var isOrganizer = !!evtObj[0].id ? 0 : 1; 440 439 441 var res = $.map(evtObj, function( objEvent ){ 440 442 … … 460 462 } 461 463 var temp = []; 462 464 var tempAlarm = []; 465 463 466 var typeAlarm = function(obj){ 467 var alarm = []; 464 468 for(var i = 0; i < obj.length; i++){ 469 if(tempAlarm[obj[i].id]) 470 continue; 471 tempAlarm[obj[i].id] = true; 472 465 473 if(obj[i].type == "1"){ 466 474 obj[i].type = 'alert'; … … 470 478 obj[i].type = 'sms'; 471 479 } 480 alarm.push(obj[i]); 472 481 } 473 return obj;482 return alarm; 474 483 } 475 484 return { … … 490 499 allDay: !!parseInt( objEvent.allDay ), 491 500 // attachments: this.decode( "attachment:detail", form ), 492 attendee: $.map(objEvent.participants || [], function( participant ){ 493 if(participant.indexOf('java') >= 0) 494 return (null); 495 if(temp[participant]) 496 return (null); 497 temp[participant] = true; 501 attendee: $.map(objEvent.participants || [], function( participant, i ){ 502 if(participant.indexOf('java') >= 0) 503 return (null); 504 if(temp[participant]) 505 return (null); 506 temp[participant] = true; 507 508 var attend = DataLayer.get('participant', participant); 509 attend.user = DataLayer.get('user', attend.user) 498 510 499 participant = DataLayer.get( "participant", participant); 500 501 statusParticipants[participant.status]++; 502 var user = DataLayer.get( "user", participant.user.id || participant.user ); 503 var getIdUser = function(user){ 504 if(user.owner) 505 return 'external:'+user.id; 506 else if(user.id == User.me.id) 507 return user.id; 508 else return 'internal:'+user.id; 509 }; 511 statusParticipants[attend.status]++; 510 512 511 var person = { uid: getIdUser(user), 512 name: user.name, 513 mail: user.mail 514 }; 515 516 if( person.uid === me.uid ) 513 var person = { uid: attend.id, 514 name: attend.user.name, 515 mail: attend.user.mail, 516 isExternal: attend.isExternal 517 }; 518 519 if( attend.user.id === me.uid ) 517 520 { 518 participantInfo.status = participant.status;521 participantInfo.status = attend.status; 519 522 participantInfo.alarms = typeAlarm(objEvent.alarms); 520 523 } 521 if( parseInt( participant.isOrganizer ) )524 if( parseInt( attend.isOrganizer ) ) 522 525 { 526 isOrganizer = ((attend.user.id == User.me.id) || (!!!attend.user)) ? 1 : 0; 523 527 participantInfo.organizer = person; 524 return( null);528 return(null); 525 529 } 526 530 … … 534 538 }; 535 539 }); 536 res[0].isOrganizer = res[0].organizer.uid == User.me.id ? 1 : 0;540 res[0].isOrganizer = isOrganizer; 537 541 res[0].statusParticipants = statusObject(statusParticipants); 538 542 if( !notArray ) … … 594 598 participants = []; 595 599 596 if( form.idEvent )597 participants = DataLayer.get( "participant:detail", [ "=", "schedulable", form.idEvent ] );600 //if( form.idEvent ) 601 // participants = DataLayer.get( "participant:detail", [ "=", "schedulable", form.idEvent ] ); 598 602 599 603 var spaces = function(hours){ … … 620 624 participants: $.map( form.attendee || [], function( attendee, i ){ 621 625 622 if( !attendee || attendee === "" )623 return( null );626 if( !attendee || attendee === "" ) 627 return( null ); 624 628 625 629 var participant = {}; 626 var isCurrentParticipant = function(user, event){ 627 var participant = DataLayer.get('participant', ['AND',['=', 'user', user],['=', 'schedulable', event]]); 628 if(participant != '') 629 return participant[0].id; 630 else 631 return false; 632 }; 630 participant.user = (attendee!= User.me.id) ? DataLayer.get('participant', attendee).user : attendee ; 633 631 634 if((attendee.indexOf('internal') >= 0) || (attendee.indexOf('external') >= 0)){ 635 participant.user = attendee.replace(/[a-z:]/g, ""), 632 if( participant.user === User.me.id ){ 633 if(!!form.idEvent ) 634 participant.id = attendee; 636 635 participant.isOrganizer = ( !i ? 1 : 0 ); 637 if(attendee.indexOf('external') >= 0)638 participant.isExternal = 1;639 var id = '';640 if(participant.user == User.me.id)641 participant.status = form.status;642 if((form.idEvent) && (id = isCurrentParticipant(participant.user, form.idEvent)))643 participant.id = id;644 return participant;645 }else if(attendee.indexOf('java') >= 0){646 participant.user = attendee;647 participant.isOrganizer = ( !i ? 1 : 0 );648 participant.isExternal= 1;649 }else{650 participant.user = attendee;651 participant.isOrganizer = ( !i ? 1 : 0 );652 }653 654 if( attendee === User.me.id ){655 636 var obj = form.alarmTime ? form : pref; 656 637 participant.alarms = $.map( obj.alarmTime || [], function( alarmTime, i ){ … … 659 640 return( null ); 660 641 661 662 642 if(obj.alarmId[i] === "") 663 643 return { type: obj.alarmType[i],unit: obj.alarmUnit[i], time: obj.alarmTime[i] }; … … 665 645 return { type: obj.alarmType[i], unit: obj.alarmUnit[i], time: obj.alarmTime[i], id: obj.alarmId[i] }; 666 646 }); 667 668 if( participants[ attendee ] ){669 participant.id = participants[ attendee ].id;670 }671 647 participant.status = form.status; 672 } 673 674 return( participant ); 648 }else{ 649 participant.id = attendee; 650 participant.isOrganizer = ( !i ? 1 : 0 ); 651 if(!!parseInt(form.attendeeType[i])) 652 participant.isExternal= 1; 653 } 654 if( participants[ attendee ] ){ 655 participant.id = participants[ attendee ].id; 656 } 657 return( participant ); 675 658 }) 676 659 }; … … 742 725 { 743 726 participantInfo.organizer = person; 744 return( null);727 return(null); 745 728 } 746 729 -
trunk/prototype/modules/calendar/js/helpers.js
r5354 r5358 432 432 433 433 blkAddAtendee.find('li.attendee .button').addClass('small').button({text:false, icons: {primary:'ui-icon-close'}}).click(function () { 434 var participant = DataLayer.get('participant', ['AND',['=', 'user', $(this).parent().find('[type=checkbox]').val().replace(/[a-z:]/g, "")],['=', 'schedulable', $(this).parents().find('.id-event').first().val()]]); 435 if(participant) 436 DataLayer.remove('participant', participant[0].id); 434 DataLayer.remove('participant', $(this).parent().find('[type=checkbox]').val()); 437 435 $(this).parent().remove(); 438 436 }); … … 600 598 lastEditAttendeeToolTip.qtip('destroy'); 601 599 600 var userId = ''; 602 601 var newAttendeeId = ''; 603 602 604 603 if (user){ 605 if(user[0].isExternal)606 newAttendeeId = 'external:'+user[0].id;607 else608 newAttendeeId = 'internal:'+user[0].id;609 610 604 if (!skipAddNewLine) { 611 605 blkAddAtendee.find('dd.attendee-list ul.attendee-list').append( 612 DataLayer.render('templates/participants_add_itemlist.ejs', [{id:newAttendeeId, name: user[0].name, mail: user[0].mail}])606 DataLayer.render('templates/participants_add_itemlist.ejs', {user: user[0]}) 613 607 ) 614 608 .find('.button.close').addClass('small').button({text:false, icons:{primary:'ui-icon-close'}}).click(function() { 615 var participant = DataLayer.get('participant', ['AND',['=', 'user', $(this).parent().find('[type=checkbox]').val().replace(/[a-z:]/g, "")],['=', 'schedulable',$(this).parents().find('.id-event').first().val()]]); 616 if(participant) 617 DataLayer.remove('participant', participant[0].id); 609 DataLayer.remove('participant', $(this).parent().find('[type=checkbox]').val()); 618 610 $(this).parent().remove(); 619 611 }).end() … … 629 621 */ 630 622 631 newAttendeeId = DataLayer.put('user', {name: newAttendeeName, mail: newAttendeeEmail, isExternal: isExternal}); 623 userId = DataLayer.put('user', {name: newAttendeeName, mail: newAttendeeEmail, isExternal: isExternal}); 624 newAttendeeId = DataLayer.put('participant', {user: userId, isExternal: isExternal}); 632 625 633 626 634 627 blkAddAtendee.find('dd.attendee-list ul.attendee-list').append( 635 DataLayer.render('templates/participants_add_itemlist.ejs', [{id:newAttendeeId, name: newAttendeeName, mail: newAttendeeEmail }])628 DataLayer.render('templates/participants_add_itemlist.ejs', [{id:newAttendeeId, name: newAttendeeName, mail: newAttendeeEmail, isExternal: 1}]) 636 629 ).find('.button.close').addClass('small').button({text:false, icons:{primary:'ui-icon-close'}}).click(function() { 637 var participant = DataLayer.get('participant', ['AND',['=', 'user', $(this).parent().find('[type=checkbox]').val().replace(/[a-z:]/g, "")],['=', 'schedulable', $(this).parents().find('.id-event').first().val()]]); 638 if(participant) 639 DataLayer.remove('participant', participant[0].id); 630 DataLayer.remove('participant', $(this).parent().find('[type=checkbox]').val()); 640 631 $(this).parent().remove(); 641 632 }).end() … … 671 662 lastEditAttendeeToolTip.qtip("api").onShow = onShowToolTip; 672 663 664 665 666 667 668 669 670 673 671 $(this).val(''); 674 672 … … 704 702 if ($(event.target).is('input')) { 705 703 old_item = $(event.target).parents('li'); 704 newAttendeeId = DataLayer.put('participant', {user: old_item.find('.id').html(), isExternal: 0}); 706 705 blkAddAtendee.find('dd.attendee-list ul.attendee-list') 707 .append(DataLayer.render('templates/participants_add_itemlist.ejs', [{id: 'internal:'+old_item.find('.id').text(), name: old_item.find('.name').html()}]))706 .append(DataLayer.render('templates/participants_add_itemlist.ejs', [{id: newAttendeeId, name: old_item.find('.name').html(), isExternal: 0}])) 708 707 .find('.button').addClass('small').button({text:false, icons: {primary:'ui-icon-close'}}).click(function () { 709 708 $(this).parent().remove(); -
trunk/prototype/modules/calendar/templates/attendee_add.ejs
r5353 r5358 21 21 <input type="checkbox" value="<%= data.event.organizer.uid %>" disabled="disabled"> 22 22 <input type="hidden" name="attendee[]" value="<%=data.event.organizer.uid%>"> 23 <input type="hidden" name="attendeeType[]" value="0"> 23 24 <input type="hidden" name="attendee_organizer[]" value="<%=data.event.organizer.uid%>"> 24 25 <label for="attendee_organizer" title="<%= data.event.organizer.name ? data.event.organizer.name: '' %>" class="name"><%= data.event.organizer.name ? data.event.organizer.name : '' %></label> … … 37 38 <input type="checkbox" value="<%= data.event.attendee[i].uid %>" disabled="disabled"> 38 39 <input type="hidden" name="attendee[]" value="<%=data.event.attendee[i].uid%>"> 40 <input type="hidden" name="attendeeType[]" value="<%=data.event.attendee[i].isExternal%>"> 39 41 <label title="<%= data.event.attendee[i].name ? data.event.attendee[i].name: '' %>" class="name"><%= data.event.attendee[i].name ? data.event.attendee[i].name : '' %></label> 40 42 <label title="<%= data.event.attendee[i].mail ? data.event.attendee[i].mail : '' %>" class="mail"><%= data.event.attendee[i].mail ? data.event.attendee[i].mail : '' %></label> … … 81 83 82 84 </dl> 83 <% if (data.event. me.uid == data.event.organizer.uid) { %>85 <% if (data.event.isOrganizer == 1) { %> 84 86 <dl class="block-add-attendee"> 85 87 <dt class="add-attendee">Adicionar convidados</dt> -
trunk/prototype/modules/calendar/templates/participants_add_itemlist.ejs
r5341 r5358 3 3 <input type="checkbox" value="<%= data[0].id %>" disabled="disabled"> 4 4 <input type="hidden" name="attendee[]" value="<%= data[0].id %>"> 5 <input type="hidden" name="attendeeType[]" value="<%=data[0].isExternal%>"> 5 6 <label title="<%= data[0].name ? data[0].name : '' %>" class="name"><%= data[0].name ? data[0].name : '' %></label> 6 7 <label title="<%= data[0].mail ? data[0].mail : '' %>" class="mail"><%= data[0].mail ? data[0].mail : '' %></label> -
trunk/prototype/modules/calendar/templates/participants_search_itemlist.ejs
r5341 r5358 2 2 <li class="ui-widget-content" style="width:6000px;" title="<%=data[i]['name']%>"> 3 3 <input type="checkbox" name="opcao"> 4 <input type="hidden" value=" internal:<%=data[i]['id']%>">4 <input type="hidden" value="<%=data[i]['id']%>"> 5 5 <label class="name"><%=data[i]['name']%></label> 6 6 <label class="email hidden"><%=data[i]['mail']%></label>
Note: See TracChangeset
for help on using the changeset viewer.