]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1366 d1b88da0-ebda-0310...
authorwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Fri, 8 Feb 2008 22:00:25 +0000 (22:00 +0000)
committerwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Fri, 8 Feb 2008 22:00:25 +0000 (22:00 +0000)
ChangeLog
NEWS
UI/MailPartViewers/UIxMailPartICalViewer.m
UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox
UI/WebServerResources/SchedulerUI.js

index 8cd7fe1ac24f7439d190499cc94252dbefd5c2c6..f41a82719511a79ed80ab3fabc6394d370288ec9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2008-02-08  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
 
+       * UI/MailPartViewers/UIxMailPartICalViewer.m
+       ([UIxMailPartICalViewer -currentUserAttendee]): new method that
+       returns the current user as an attendee representation in the
+       displayed event, if found.
+
        * SoObjects/Mailer/SOGoMailAccount.m ([SOGoMailAccount
        -_urlHostString]): replace "@" with %40 AFTER invoking
        stringByEscapingURL.
diff --git a/NEWS b/NEWS
index ad2a25971c2f09f91e463a310444b204fde23c0c..10f9d8f0b2a301831a6366c76e0291e1461cef3a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,21 @@
-0.9.0-2008MMDD (1.0 rc4)
+0.9.0-20080208 (1.0 rc5)
+------------------------
+- improved validation in the custom recurrence window
+- improved resiliance when parsing buggy recurrence rules
+- added the ability to authenticate users and to identify their resources with
+  an LDAP field other than the username
+- the monthly view would not switch to the next or previous month if the
+  current day of the new month was already displayed in the current view
+- enabled the instant-messaging entry in the addressbook
+- prevent the user from selecting disabled menu entries
+- added the ability to add/remove and renamed calendars in DAV
+- no longer require a default domain name/imap server to work properly
+- the position of the splitters is now remembered across user sessions
+- improved the email notifications when creating and removing a folder
+- fixed the tab handling in IE7
+- dramatic improvement in the overall stability of SOGo
+
+0.9.0-20080116 (1.0 rc4)
 ------------------------
 - improved the attendees window;
 - added the attendees pulldown menu in the event editor (like in Lightning);
index 737e17d27b5a0e8f9ed7872f784ba1b8c7298eb0..66df01d209ffa584d3c424052a7f68d1197628f9 100644 (file)
@@ -39,6 +39,7 @@
 
 #import <SoObjects/SOGo/SOGoDateFormatter.h>
 #import <SoObjects/SOGo/SOGoUser.h>
+#import <SoObjects/SOGo/iCalEntityObject+Utilities.h>
 #import <SoObjects/Appointments/iCalEntityObject+SOGo.h>
 #import <SoObjects/Appointments/SOGoAppointmentFolder.h>
 #import <SoObjects/Appointments/SOGoAppointmentObject.h>
   return [attendees objectAtIndex:0];
 }
 
+- (iCalPerson *) currentUserAttendee
+{
+  iCalPerson *currentUser;
+
+  currentUser = [[self storedEvent] findParticipant: [context activeUser]];
+
+  return currentUser;
+}
+
 - (iCalPerson *) storedReplyAttendee
 {
   /*
index e6a9771d0f4707a7bfa4e5d723fa71ba30f9d70e..d4f58af6e92a7535fcd4b11a199582fa9caf240f 100644 (file)
       <var:if condition="inCalendar.method.uppercaseString" const:value="REQUEST">
        <!-- sent to attendees to propose or update a meeting -->
        <var:if condition="isLoggedInUserAnAttendee">
-         <var:if condition="$storedReplyAttendee.partStatWithDefault"
-           const:value="NEEDS-ACTION" const:negate="YES">
-           <p class="uix_ical_toolbar" id="iCalendarToolbar">
+         <p class="uix_ical_toolbar" id="iCalendarToolbar">
+           <var:if condition="currentUserAttendee.partStatWithDefault"
+             const:value="ACCEPTED" const:negate="YES">
              <input id="iCalendarAccept" class="button"
                type="button" label:value="Accept"/>
+           </var:if>
+           <var:if condition="currentUserAttendee.partStatWithDefault"
+             const:value="DECLINED" const:negate="YES">
              <input id="iCalendarDecline" class="button"
                type="button" label:value="Decline"/>
-             <!-- <input id="iCalendarTentative" class="button"
-             type="button" label:value="Tentative"/> -->
-             <var:if condition="isEventStoredInCalendar" const:negate="YES">
-               | <input id="iCalendarAddToCalendar" class="button"
-                 type="button" label:value="Add to calendar"/>
-             </var:if>
-           </p>
-         </var:if>
+           </var:if>
+           <!-- <input id="iCalendarTentative" class="button"
+           type="button" label:value="Tentative"/> -->
+           <var:if condition="isEventStoredInCalendar" const:negate="YES">
+             | <input id="iCalendarAddToCalendar" class="button"
+               type="button" label:value="Add to calendar"/>
+           </var:if>
+         </p>
 
          <p>
            <var:string label:value="Organizer" />
index c459dc4005c4181d49e4e3a10781ea6c3ae675fd..d2ccc42b8927f15078506bb1ef5ee2c2cc7145d2 100644 (file)
@@ -292,12 +292,12 @@ function onCalendarGotoDay(node) {
   var day = node.getAttribute("date");
   var needRefresh = (listFilter == 'view_selectedday'
                      && day != currentDay);
-   
+
   changeDateSelectorDisplay(day);
   changeCalendarDisplay( { "day": day } );
   if (needRefresh)
     refreshEvents();
-  
+
   return false;
 }
 
@@ -510,7 +510,8 @@ function changeDateSelectorDisplay(day, keepCurrentDay) {
 }
 
 function changeCalendarDisplay(data, newView) {
-  var url = ApplicationBaseURL + ((newView) ? newView : currentView);
+  newView = ((newView) ? newView : currentView);
+  var url = ApplicationBaseURL + newView;
   var day = null;
   var scrollEvent = null;
 
@@ -523,17 +524,17 @@ function changeCalendarDisplay(data, newView) {
     day = currentDay;
 
   if (day) {
-    if (data) {
+    if (data && newView != "monthview") {
       var divs = $$('div.day[day='+day+']');
       if (divs.length) {
        // Don't reload the view if the event is present in current view
-       
+
        // Deselect previous day
        var selectedDivs = $$('div.day.selectedDay');
        selectedDivs.each(function(div) {
            div.removeClassName('selectedDay');
          });
-       
+
        // Select new day
        divs.each(function(div) {
            div.addClassName('selectedDay');