Changeset 2951

Show
Ignore:
Timestamp:
07/13/10 10:25:15
Author:
johnsa
Message:

user client: repair scheduling grid to correctly display freebusy again

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/deployment/webuser/webapp/resources/demoskins/themes/bedeworkTheme/css/bwScheduling.css

    r2950 r2951  
    7878#bwScheduleTable td.needsaction { 
    7979  font-family: Paladino, Times, serif; 
     80  color: #999; 
     81  background-color: transparent; 
    8082} 
    8183#bwScheduleTable #bwAddAttendee { 
  • trunk/deployment/webuser/webapp/resources/demoskins/themes/bedeworkTheme/javascript/bedeworkScheduling.js

    r2950 r2951  
    238238  // initialize the grid 
    239239  this.init = function() { 
    240     // initialize any incoming attendees on first load 
     240    // initialize all incoming attendees on first load 
    241241    for (var i = 0; i < attendees.length; i++) { 
    242       var newAttendee = new bwAttendee(attendees[i].name, attendees[i].uid, attendees[i].role, attendees[i].status, attendees[i].type); 
    243       this.attendees.push(newAttendee);  
     242      // strip off "mailto:" if present 
     243      var attUri = attendees[i].uid; 
     244      if (attUri.indexOf("mailto:") != -1) { 
     245        attUri = attUri.substr(7);  
     246      } 
     247      var newAttendee = new bwAttendee(attendees[i].name, attUri, attendees[i].role, attendees[i].status, attendees[i].type); 
     248      bwGrid.attendees.push(newAttendee);  
    244249    } 
    245250     
    246251    // now go get the freebusy information for the attendees 
    247252    if (this.attendees.length > 0) { 
    248       this.requestFreeBusy(); 
     253      bwGrid.requestFreeBusy(); 
    249254    } else { 
    250255      // no attendees - just display the widget 
    251       this.display(); 
     256      bwGrid.display(); 
    252257    } 
    253258  }; 
    254259   
    255   // update attendees when loading an event - data comes from event XML 
     260  // add attendee in the bwGrid 
    256261  /* examples: 
    257      bwGrid.updateAttendee("Venerable Bede", "vbede@mysite.edu", "CHAIR", "ACCEPTED", "person"); 
    258      bwGrid.updateAttendee("Samual Clemens", "sclemens@mysite.edu", "REQ-PARTICIPANT", "NEEDS-ACTION"); 
    259      bwGrid.updateAttendee("", "noname@mysite.edu", "OPT-PARTICIPANT", "DECLINED"); 
    260    */ 
    261   this.updateAttendee = function(name, uid, role, status, type) { 
    262     var newAttendee = new bwAttendee(name, uid, role, status, type); 
     262    bwGrid.addAttendee("Venerable Bede", "vbede@mysite.edu", "CHAIR", "ACCEPTED", "person"); 
     263    bwGrid.addAttendee("Samual Clemens", "sclemens@mysite.edu", "REQ-PARTICIPANT", "NEEDS-ACTION"); 
     264    bwGrid.addAttendee("", "noname@mysite.edu", "OPT-PARTICIPANT", "DECLINED"); 
     265  */ 
     266  this.addAttendee = function(name, uid, role, status, type) { 
    263267    var attendeeIsNew = true; 
    264268     
     269    // display the processing message 
     270    $("#bwSchedProcessingMsg").show(); 
     271     
     272    //var showAtts = ""; 
    265273    // check to see if attendee already exists 
    266274    for (var i=0; i < bwGrid.attendees.length; i++) { 
    267       if (newAttendee.uid == bwGrid.attendees[i].uid) { 
    268         attendeeIsNew = false; 
    269         break; 
    270       }  
    271     } 
    272      
    273     if (attendeeIsNew) { 
    274       // add the attendee to the local array 
    275       bwGrid.attendees.push(newAttendee);  
    276       bwGrid.requestFreeBusy();       
    277     } 
    278   }; 
    279    
    280   // add attendee in the bwGrid 
    281   this.addAttendee = function(name, uid, role, status, type) { 
    282     var attendeeIsNew = true; 
    283      
    284     // display the processing message 
    285     $("#bwSchedProcessingMsg").show(); 
    286      
    287     // check to see if attendee already exists 
    288     for (var i=0; i < bwGrid.attendees.length; i++) { 
     275      //showAtts += bwGrid.attendees[i].uid + "\n"; 
    289276      if (uid == bwGrid.attendees[i].uid) { 
    290277        attendeeIsNew = false; 
     
    295282      }  
    296283    } 
     284    //alert(showAtts); 
    297285     
    298286    if (attendeeIsNew) { 
     
    318306  }; 
    319307   
     308  this.addAttendeeFromGrid = function() { 
     309    var uid = $("#bwAddAttendee").val(); 
     310    var role = $("#bwAddAttendeeRole").val(); 
     311    var partstat = $("#bwAddAttendeePartstat").val(); 
     312    // these are preliminary values - will get more from server after ajax call 
     313    bwGrid.addAttendee("",uid,role,partstat,"person"); 
     314  }; 
     315   
    320316  this.removeAttendee = function(index) { 
    321317    var uid = bwGrid.attendees[index].uid; 
     
    344340    }); 
    345341     
    346      
    347342  }; 
    348343   
    349344  this.requestFreeBusy = function() { 
    350345    // set up the freebusy URL based on current parameters 
    351     // e.g. http://localhost:8080/ucal/event/requestFreeBusy.gdo?b=de&start=20100510T050000Z&end=20100517T050000Z&organizerUri=douglm@mysite.edu&attendeeUri=douglm@mysite.edu&attendeeUri=johnsa@mysite.edu 
     346    // e.g. http://localhost:8080/ucal/event/requestFreeBusy.gdo?b=de&start=20100510T050000Z&end=20100517T050000Z&organizerUri=mailto:douglm@mysite.edu&attendeeUri=douglm@mysite.edu&attendeeUri=johnsa@mysite.edu 
    352347    var fbUrlStart = "&start=" + this.startRange.getUTCFullYear() + this.startRange.getUTCMonthFull() + this.startRange.getUTCDateFull() + "T" + this.startRange.getUTCHoursFull() + this.startRange.getUTCMinutesFull() + "00Z"; 
    353348    var fbUrlEnd = "&end=" + this.endRange.getUTCFullYear() + this.endRange.getUTCMonthFull() + this.endRange.getUTCDateFull() + "T" + this.endRange.getUTCHoursFull() + this.endRange.getUTCMinutesFull() + "00Z";; 
     
    702697         
    703698        // output the attendee name or address (depending on which we have available) 
    704         // and add attendee functions 
     699        // and output attendee functions 
    705700        var attendeeAddress = curAttendee.uid; 
    706701        var attendeeNameHtml = '<td class="name"><span class="bwAttendee" id="' + attendeeAddress + '">'; 
     
    773768      addAttendeeHtml += '<input type="text" value="' + bwAddAttendeeDisp +'" name="attendee" id="bwAddAttendee" class="pending" size="30"/>'; 
    774769      addAttendeeHtml += '<span id="bwAddAttendeeAdd" class="invisible">' + bwAddDisp +'</span>'; 
    775       addAttendeeHtml += '<span id="bwAddAttendeeAdvanced">advanced</span>'; 
     770      //addAttendeeHtml += '<span id="bwAddAttendeeAdvanced">advanced</span>'; 
    776771      addAttendeeHtml += '<div id="bwAddAttendeeFields" class="invisible">'; 
    777772      addAttendeeHtml += '<select name="role" id="bwAddAttendeeRole">'; 
     
    843838      this.setFreeTime(); 
    844839       
     840      // **** OUTPUT ***** 
    845841      // write the table back to the display 
    846842      $("#" + displayId).html(fbDisplay); 
    847843       
    848844       
     845      // **** ACTIONS **** 
    849846      // now add some rollovers and onclick actions  
    850847      // to the elements of the freebusy grid 
     
    10041001           
    10051002          // hide advanced switch, show add button 
    1006           $("#bwAddAttendeeAdvanced").hide(); 
     1003          // $("#bwAddAttendeeAdvanced").hide(); 
    10071004          changeClass("bwAddAttendeeAdd","visible"); 
    10081005          changeClass("bwAddAttendeeFields", "visible"); 
     
    10101007      ); 
    10111008       
     1009      // capture the enter key when entering an attendee; 
     1010      // do not submit the form; add the attendee. 
     1011      $("#bwScheduleTable #bwAddAttendee").keyup( 
     1012          function (e) { 
     1013            if(e.keyCode == 13) { 
     1014              bwGrid.addAttendeeFromGrid(); 
     1015            } 
     1016          } 
     1017        ); 
     1018       
    10121019      $("#bwScheduleTable #bwAddAttendeeAdd").click ( 
    10131020        function () { 
    1014           var uid = $("#bwAddAttendee").val(); 
    1015           var role = $("#bwAddAttendeeRole").val(); 
    1016           var partstat = $("#bwAddAttendeePartstat").val(); 
    1017           // these are preliminary values - will get more from backend after ajax call 
    1018           bwGrid.addAttendee("",uid,role,partstat,"person"); 
     1021          bwGrid.addAttendeeFromGrid(); 
    10191022        } 
    10201023      ); 
     1024       
    10211025       
    10221026      $("#bwScheduleTable .removeAttendee").click (