]> err.no Git - scalable-opengroupware.org/commitdiff
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1391 d1b88da0-ebda-0310...
authorwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 26 Mar 2008 21:49:08 +0000 (21:49 +0000)
committerwolfgang <wolfgang@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Wed, 26 Mar 2008 21:49:08 +0000 (21:49 +0000)
14 files changed:
NEWS
SOPE/NGCards/ChangeLog
SOPE/NGCards/NGCardsSaxHandler.m
SOPE/NGCards/iCalMonthlyRecurrenceCalculator.m
SOPE/NGCards/iCalRecurrenceCalculator.m
SOPE/NGCards/iCalRecurrenceRule.m
SOPE/NGCards/iCalWeeklyRecurrenceCalculator.m
UI/Templates/MailerUI/UIxMailView.wox
UI/Templates/SchedulerUI/UIxAttendeesEditor.wox
UI/WebServerResources/MailerUI.css
UI/WebServerResources/MailerUI.js
UI/WebServerResources/SOGoRootPage.js
UI/WebServerResources/dtree.js
UI/WebServerResources/generic.js

diff --git a/NEWS b/NEWS
index 0dceb933e14fe2108493709e78d1d5534c9d0fa1..a2ed8f1da4e71fd02c0afce3da7a182617e50de2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -8,6 +8,9 @@
 - improved restoration of drag handles state
 - improved contextual menu handling of Address Book module
 - fixed various bugs occuring with Safari 3.1
+- monthly events would not be returned properly
+- bi-weekly events would appear every week instead
+- weekly events with specified days of week would not appear on the correct days
 
 0.9.0-20080208 (1.0 rc5)
 ------------------------
index 7abe74abe60431628c769e157ea528402b141cfe..434420f921c3d46e56511d0a10d1bd28e43b8ae3 100644 (file)
@@ -1,3 +1,13 @@
+2008-03-26  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
+
+       * iCalRecurrenceRule.m ([iCalRecurrenceRule -byMonthDay]): check
+       whether the "bymonthday" value is empty and returns an array only if
+       not, otherwise returns nil.
+
+       * iCalRecurrenceCalculator.m ([iCalRecurrenceCalculator
+       +recurrenceRangesWithinCalendarDateRange:_rfirstInstanceCalendarDateRange:_firrecurrenceRules:_rRulesexceptionRules:_exRulesexceptionDates:_exDates]):
+       split method in many submethods for clarity.
+
 2008-03-10  Wolfgang Sourdeau  <wsourdeau@inverse.ca>
 
        * iCalTimeZonePeriod.m ([iCalTimeZonePeriod
index f010973947ffd6510731f80e84c654ccc25f8af5..22aedebc34c353dc3a3e9fe9aad2e131ca8c26a8 100644 (file)
@@ -23,6 +23,7 @@
 #import <Foundation/NSArray.h>
 #import <Foundation/NSString.h>
 
+#import "NSString+NGCards.h"
 #import "NGCardsSaxHandler.h"
 
 #import "CardGroup.h"
index 63cfeb97962f2760aa2ee5fa4f39a1c89686774c..913fbf6da1d0759a3aafa824b951b5af7af5e773 100644 (file)
@@ -268,7 +268,7 @@ static void NGMonthDaySet_fillWithByDayX(NGMonthDaySet *daySet,
 
 
   /* check whether the range to be processed is beyond the 'until' date */  
-  if (until != nil) {
+  if (until) {
     if ([until compare:rStart] == NSOrderedAscending) /* until before start */
       return nil;
     if ([until compare:rEnd] == NSOrderedDescending) /* end before until */
@@ -278,7 +278,7 @@ static void NGMonthDaySet_fillWithByDayX(NGMonthDaySet *daySet,
   
   /* precalculate month days (same for all instances) */
 
-  if (byMonthDay != nil) {
+  if (byMonthDay) {
 #if HEAVY_DEBUG
     NSLog(@"byMonthDay: %@", byMonthDay);
 #endif
@@ -346,7 +346,7 @@ static void NGMonthDaySet_fillWithByDayX(NGMonthDaySet *daySet,
     
     didByFill = NO;
     
-    if (byMonthDay != nil) { /* list of days in the month */
+    if (byMonthDay) { /* list of days in the month */
       NGMonthDaySet_copyOrUnion(&monthDays, &byMonthDaySet, !didByFill);
       didByFill = YES;
     }
index b5ef7441069530d34b3db2fbd7029a9f3c1364a3..c3e9b8ed320ceea3d27b991393cac9800feebce5 100644 (file)
 @implementation iCalRecurrenceCalculator
 
 static Class NSCalendarDateClass     = Nil;
+static Class NSStringClass     = Nil;
 static Class iCalRecurrenceRuleClass = Nil;
 static Class dailyCalcClass   = Nil;
 static Class weeklyCalcClass  = Nil;
 static Class monthlyCalcClass = Nil;
 static Class yearlyCalcClass  = Nil;
 
-+ (void)initialize {
++ (void) initialize
+{
   static BOOL didInit = NO;
   
   if (didInit) return;
   didInit = YES;
 
   NSCalendarDateClass     = [NSCalendarDate class];
+  NSStringClass = [NSString class];
   iCalRecurrenceRuleClass = [iCalRecurrenceRule class];
 
   dailyCalcClass   = NSClassFromString(@"iCalDailyRecurrenceCalculator");
@@ -107,98 +110,122 @@ static Class yearlyCalcClass  = Nil;
 
 /* complex calculation convenience */
 
-+ (NSArray *)recurrenceRangesWithinCalendarDateRange:(NGCalendarDateRange *)_r
-  firstInstanceCalendarDateRange:(NGCalendarDateRange *)_fir
-  recurrenceRules:(NSArray *)_rRules
-  exceptionRules:(NSArray *)_exRules
-  exceptionDates:(NSArray *)_exDates
++ (void)    _fillRanges: (NSMutableArray *) ranges
+              fromRules: (NSArray *) rrules
+           withinRange: (NGCalendarDateRange *) limits
+       startingWithDate: (NGCalendarDateRange *) first
 {
-  id                       rule;
+  NSEnumerator *rules;
+  iCalRecurrenceRule *currentRule;
   iCalRecurrenceCalculator *calc;
-  NSMutableArray           *ranges;
-  NSMutableArray           *exDates;
-  unsigned                 i, count, rCount;
-  
-  ranges = [NSMutableArray arrayWithCapacity:64];
-  
-  for (i = 0, count  = [_rRules count]; i < count; i++) {
-    NSArray *rs;
-
-    rule = [_rRules objectAtIndex:i];
-    if (![rule isKindOfClass:iCalRecurrenceRuleClass])
-      rule = [iCalRecurrenceRule recurrenceRuleWithICalRepresentation:rule];
-        
-    calc = [self recurrenceCalculatorForRecurrenceRule:rule
-                 withFirstInstanceCalendarDateRange:_fir];
-
-    rs   = [calc recurrenceRangesWithinCalendarDateRange:_r];
-    [ranges addObjectsFromArray:rs];
-  }
-  
-  if ([ranges count] == 0)
-    return nil;
-  
-  /* test if any exceptions do match */
-  
-  for (i = 0, count = [_exRules count]; i < count; i++) {
-    NSArray *rs;
-
-    rule = [_exRules objectAtIndex:i];
-    if (![rule isKindOfClass:iCalRecurrenceRuleClass])
-      rule = [iCalRecurrenceRule recurrenceRuleWithICalRepresentation:rule];
-
-    calc = [self recurrenceCalculatorForRecurrenceRule:rule
-                 withFirstInstanceCalendarDateRange:_fir];
-    rs   = [calc recurrenceRangesWithinCalendarDateRange:_r];
-    [ranges removeObjectsInArray:rs];
-  }
-  
-  if (![ranges isNotEmpty])
-    return nil;
-  
-  /* exception dates */
 
-  if ((count = [_exDates count]) == 0)
-    return ranges;
-  
-  /* sort out exDates not within range */
+  rules = [rrules objectEnumerator];
+  while ((currentRule = [rules nextObject]))
+    {
+      if ([currentRule isKindOfClass: NSStringClass])
+       currentRule =
+         [iCalRecurrenceRule
+           recurrenceRuleWithICalRepresentation: (NSString *) currentRule];
+
+      calc = [self recurrenceCalculatorForRecurrenceRule: currentRule
+                  withFirstInstanceCalendarDateRange: first];
+      [ranges addObjectsFromArray:
+               [calc recurrenceRangesWithinCalendarDateRange: limits]];
+    }
+}
 
-  exDates = [NSMutableArray arrayWithCapacity:count];
-  for (i = 0; i < count; i++) {
-    id exDate;
++ (void) _removeExceptionsFromRanges: (NSMutableArray *) ranges
+                          withRules: (NSArray *) exrules
+                        withinRange: (NGCalendarDateRange *) limits
+                   startingWithDate: (NGCalendarDateRange *) first
+{
+  NSEnumerator *rules;
+  iCalRecurrenceRule *currentRule;
+  iCalRecurrenceCalculator *calc;
 
-    exDate = [_exDates objectAtIndex:i];
-    if (![exDate isKindOfClass:NSCalendarDateClass])
-      exDate = [NSCalendarDate calendarDateWithICalRepresentation:exDate];
-    
-    if ([_r containsDate:exDate])
-      [exDates addObject:exDate];
-  }
+  rules = [exrules objectEnumerator];
+  while ((currentRule = [rules nextObject]))
+    {
+      if ([currentRule isKindOfClass: NSStringClass])
+       currentRule =
+         [iCalRecurrenceRule
+           recurrenceRuleWithICalRepresentation: (NSString *) currentRule];
+         
+      calc = [self recurrenceCalculatorForRecurrenceRule: currentRule
+                  withFirstInstanceCalendarDateRange: first];
+      [ranges removeObjectsInArray:
+               [calc recurrenceRangesWithinCalendarDateRange: limits]];
+    }
+}
 
-  /* remove matching exDates from ranges */
++ (NSArray *) _dates: (NSArray *) dateList
+        withinRange: (NGCalendarDateRange *) limits
+{
+  NSMutableArray *newDates;
+  NSEnumerator *dates;
+  NSCalendarDate *currentDate;
 
-  if ((count = [exDates count]) == 0)
-    return ranges;
-  
-  for (i = 0, rCount = [ranges count]; i < count; i++) {
-    NSCalendarDate      *exDate;
-    NGCalendarDateRange *r;
-    unsigned            k;
-
-    exDate = [exDates objectAtIndex:i];
-    
-    for (k = 0; k < rCount; k++) {
-      unsigned rIdx;
-      
-      rIdx = (rCount - k) - 1;
-      r    = [ranges objectAtIndex:rIdx];
-      if ([r containsDate:exDate]) {
-        [ranges removeObjectAtIndex:rIdx];
-        rCount--;
-        break; /* this is safe because we know that ranges don't overlap */
+  newDates = [NSMutableArray array];
+
+  dates = [dateList objectEnumerator];
+  while ((currentDate = [dates nextObject]))
+    {
+      if ([currentDate isKindOfClass: NSStringClass])
+       currentDate
+         = [NSCalendarDate
+             calendarDateWithICalRepresentation: (NSString *) currentDate];
+      if ([limits containsDate: currentDate])
+       [newDates addObject: currentDate];
+    }
+
+  return newDates;
+}
+
++ (void) _removeExceptionDatesFromRanges: (NSMutableArray *) ranges
+                              withDates: (NSArray *) exdates
+                            withinRange: (NGCalendarDateRange *) limits
+                       startingWithDate: (NGCalendarDateRange *) first
+{
+  NSEnumerator *dates;
+  NSCalendarDate *currentDate;
+  NGCalendarDateRange *currentRange;
+  int count, maxRanges;
+
+  maxRanges = [ranges count];
+  dates = [[self _dates: exdates withinRange: limits] objectEnumerator];
+  while ((currentDate = [dates nextObject]))
+    for (count = (maxRanges - 1); count > -1; count++)
+      {
+       currentRange = [ranges objectAtIndex: count];
+       if ([currentRange containsDate: currentDate])
+         {
+           [ranges removeObjectAtIndex: count];
+           maxRanges--;
+         }
       }
+}
+
++ (NSArray *)
+ recurrenceRangesWithinCalendarDateRange: (NGCalendarDateRange *) _r
+         firstInstanceCalendarDateRange: (NGCalendarDateRange *) _fir
+                        recurrenceRules: (NSArray *) _rRules
+                         exceptionRules: (NSArray *) _exRules
+                         exceptionDates: (NSArray *) _exDates
+{
+  NSMutableArray *ranges;
+
+  ranges = [NSMutableArray arrayWithCapacity: 64];
+
+  if ([_rRules count] > 0)
+    {
+      [self _fillRanges: ranges fromRules: _rRules
+           withinRange: _r startingWithDate: _fir];
+      [self _removeExceptionsFromRanges: ranges withRules: _exRules
+           withinRange: _r startingWithDate: _fir];
+      [self _removeExceptionDatesFromRanges: ranges withDates: _exDates
+           withinRange: _r startingWithDate: _fir];
     }
-  }
+
   return ranges;
 }
 
@@ -265,23 +292,12 @@ static Class yearlyCalcClass  = Nil;
 
 - (iCalWeekDay) weekDayForJulianNumber: (long)_jn
 {
-  unsigned int day;
-  iCalWeekDay weekDay;
   iCalWeekDay weekDays[] = {iCalWeekDaySunday, iCalWeekDayMonday,
                            iCalWeekDayTuesday, iCalWeekDayWednesday,
                            iCalWeekDayThursday, iCalWeekDayFriday,
                            iCalWeekDaySaturday};
 
-  if (day < 7)
-    weekDay = weekDays[day];
-  else
-    {
-      [self errorWithFormat:
-             @"got unexpected weekday: %d (falling back on sunday)", day];
-      weekDay = iCalWeekDaySunday;
-    }
-
-  return weekDay;
+  return weekDays[[self offsetFromSundayForJulianNumber: _jn]];
 }
 
 /* calculation */
index 3ce38f1a68f00b01820656e2ee1527cabc3bf4e6..53f9939abcd7fdf80e6b383f37161d20629463ea 100644 (file)
 
 - (NSArray *) byMonthDay
 {
-  return [[self namedValue: @"bymonthday"] componentsSeparatedByString: @","];
+  NSArray *byMonthDay;
+  NSString *byMonthDayStr;
+
+  byMonthDayStr = [self namedValue: @"bymonthday"];
+  if ([byMonthDayStr length])
+    byMonthDay = [byMonthDayStr componentsSeparatedByString: @","];
+  else
+    byMonthDay = nil;
+
+  return byMonthDay;
 }
 
 - (BOOL) isInfinite
            foundDay = iCalWeekDayTuesday;
          else if (chars[1] == 'H')
            foundDay = iCalWeekDayThursday;
+         break;
        case 'S':
          if (chars[1] == 'A')
            foundDay = iCalWeekDaySaturday;
          else if (chars[1] == 'U')
            foundDay = iCalWeekDaySunday;
+         break;
        }
     }
 
index eade01969b7d9d1a9ed036054330c16fd5e6a06a..4c2dd0b3e3c170661d049eaa6dbb62790bfbfedd 100644 (file)
 
 @interface iCalRecurrenceCalculator (PrivateAPI)
 
-- (NSCalendarDate *)lastInstanceStartDate;
+- (NSCalendarDate *) lastInstanceStartDate;
 
-- (unsigned)offsetFromSundayForJulianNumber:(long)_jn;
-- (unsigned)offsetFromSundayForWeekDay:(iCalWeekDay)_weekDay;
-- (unsigned)offsetFromSundayForCurrentWeekStart;
+- (unsigned) offsetFromSundayForJulianNumber:(long)_jn;
+- (unsigned) offsetFromSundayForWeekDay:(iCalWeekDay)_weekDay;
+- (unsigned) offsetFromSundayForCurrentWeekStart;
   
-- (iCalWeekDay)weekDayForJulianNumber:(long)_jn;
+- (iCalWeekDay) weekDayForJulianNumber:(long)_jn;
 
 @end
 
@@ -48,7 +48,9 @@
 */
 @implementation iCalWeeklyRecurrenceCalculator
 
-- (NSArray *)recurrenceRangesWithinCalendarDateRange:(NGCalendarDateRange *)_r {
+- (NSArray *)
+ recurrenceRangesWithinCalendarDateRange: (NGCalendarDateRange *) _r
+{
   NSMutableArray *ranges;
   NSCalendarDate *firStart;
   long           i, jnFirst, jnStart, jnEnd, startEndCount;
index a91268aea3e8d9c60ef016ffbab74dd351f08898..e211cd6443cc11ce9471cd4a24092b4fec6b57d3 100644 (file)
       </tr>
 
       <tr class="mailer_fieldrow">
-        <td class="mailer_fieldname"><var:string label:value="To"/>:</td>
+        <td class="mailer_fieldname"><img rsrc:src="plus.png" class="collapse" style="display: none;" /><var:string label:value="To"/>:</td>
         <td class="mailer_fieldvalue">
-          <var:foreach list="clientObject.toEnvelopeAddresses"
+          <span class="collapse"><var:foreach list="clientObject.toEnvelopeAddresses"
             item="currentAddress"
             ><a var:href="currentAddressLink">
               <var:string value="currentAddress"
                 formatter="context.mailEnvelopeFullAddressFormatter"
                 /></a>
-          </var:foreach>
+          </var:foreach></span>
         </td>
       </tr>
       <var:if condition="hasCC">
         <tr class="mailer_fieldrow">
-          <td class="mailer_fieldname"><var:string label:value="CC"/>:</td>
+          <td class="mailer_fieldname"><img rsrc:src="plus.png" class="collapse" style="display: none;" /><var:string label:value="CC"/>:</td>
           <td class="mailer_fieldvalue">
-            <var:foreach list="clientObject.ccEnvelopeAddresses" 
+            <span class="collapse"><var:foreach list="clientObject.ccEnvelopeAddresses" 
               item="currentAddress">
               <a var:href="currentAddressLink"
                ><var:string value="currentAddress"
                   formatter="context.mailEnvelopeFullAddressFormatter"
                   /></a>
               <!-- TODO: better to use li+CSS -->
-            </var:foreach>
+            </var:foreach></span>
           </td>
         </tr>
       </var:if>
index 540fd2660f9b6b0b4ad33d97bdd1aadcd1bc0751..1302971bfcb787a0d54b940aae03cea586e858b5 100644 (file)
          ><var:string label:value="Next hour" /></a>
       </div>
       <div id="freeBusyReplicas">
-       <div><var:string label:value="From"
+       <div><var:string label:value="Start:"
             /><var:component className="UIxTimeDateControl"
             const:controlID="startTime"
             const:dayStartHour="0"
             const:dayEndHour="23"
             /></div>
-       <div><var:string label:value="To"
+       <div><var:string label:value="End:"
             /><var:component className="UIxTimeDateControl"
             const:controlID="endTime"
             const:dayStartHour="0"
index 443e5c9fc615867242ba51cd6fe84ab2b64872eb..56973864febaa177ab599f94b85bbaefa5e3517a 100644 (file)
@@ -384,6 +384,15 @@ DIV.mailer_mailcontent TABLE
   table-layout: auto;
 }
 
+/* collapsable header */
+TD.mailer_fieldname IMG
+{ cursor: pointer;
+  padding-right: 5px; }
+TD.mailer_fieldvalue SPAN.collapse
+{ white-space: nowrap; }
+TD.mailer_fieldvalue SPAN.expand
+{ white-space: normal; }
+
 TD.mailer_fieldname
 {
   white-space: nowrap;
@@ -395,9 +404,7 @@ TD.mailer_fieldname
 }
 
 TD.mailer_fieldvalue
-{
-  vertical-align: top;
-}
+{ vertical-align: top; }
 
 TD.mailer_subjectfieldvalue
 {
index 5bee22dca7023be989d221f5cdc66fcbfaea8886..42ea0f2297cac9767535e5829579741ae3bd96fc 100644 (file)
@@ -850,6 +850,38 @@ function resizeMailContent() {
   
   contentDiv.setStyle({ 'top':
        (Element.getHeight(headerTable) + headerTable.offsetTop) + 'px' });
+
+  // Show expand buttons if necessary
+  var spans = $$("TABLE TR.mailer_fieldrow TD.mailer_fieldvalue SPAN");
+  spans.each(function(span) {
+        var row = span.up("TR");
+        if (span.getWidth() > row.getWidth()) {
+           var cell = row.select("TD.mailer_fieldname").first();
+           var link = cell.down("img");
+           link.show();
+           link.observe("click", toggleDisplayHeader);
+        }
+     });
+}
+
+function toggleDisplayHeader(event) {
+   var row = this.up("TR");
+   var span = row.down("SPAN");
+   
+   if (this.hasClassName("collapse")) {
+      this.writeAttribute("src", ResourcesURL + '/minus.png');
+      this.writeAttribute("class", "expand");
+      span.writeAttribute("class", "expand");
+   }
+   else {
+      this.writeAttribute("src", ResourcesURL + '/plus.png');
+      this.writeAttribute("class", "collapse");
+      span.writeAttribute("class", "collapse");
+   }
+   resizeMailContent();
+
+   preventDefault(event);
+   return false;
 }
 
 function onMessageContentMenu(event) {
@@ -1030,8 +1062,8 @@ function expandUpperTree(node) {
       var id = currentNode.getAttribute("id");
       var number = parseInt(id.substr(2));
       if (number > 0) {
-       var cn = mailboxTree.aNodes[number];
-       mailboxTree.nodeStatus(1, number, cn._ls);
+         var cn = mailboxTree.aNodes[number];
+         mailboxTree.nodeStatus(1, number, cn._ls);
       }
     }
     currentNode = currentNode.parentNode;
@@ -1168,8 +1200,8 @@ function configureMessageListBodyEvents(table) {
     if ($(cell).hasClassName("tbtv_navcell")) {
       var anchors = $(cell).childNodesWithTag("a");
       for (var i = 0; i < anchors.length; i++)
-       Event.observe(anchors[i], "click",
-                     openMailboxAtIndex.bindAsEventListener(anchors[i]));
+         Event.observe(anchors[i], "click",
+                       openMailboxAtIndex.bindAsEventListener(anchors[i]));
     }
 
     rows = table.tBodies[0].rows;
index d59076ffe056fdde12483c7ac190371f01bdf22e..582a91d90d418fbce6bc9bdafb4c330ed58f6200 100644 (file)
@@ -21,7 +21,7 @@ function onLoginClick(event) {
 
   if (userName.length > 0) {
     var url = $("connectForm").getAttribute("action");
-    var parameters = ("userName=" + userName + "&password=" + password);
+    var parameters = ("userName=" + encodeURI(userName) + "&password=" + encodeURI(password));
     document.cookie = "";
     triggerAjaxRequest(url, onLoginCallback, null, parameters,
                       { "Content-type": "application/x-www-form-urlencoded",
@@ -37,7 +37,7 @@ function onLoginCallback(http) {
     if (isHttpStatus204(http.status)) {
       var userName = $("userName").value;
       var address = "" + window.location.href;
-      var baseAddress = ApplicationBaseURL + $("userName").value;
+      var baseAddress = ApplicationBaseURL + encodeURI(userName);
       var altBaseAddress;
       if (baseAddress[0] == "/") {
        var parts = address.split("/");
index 8167ce9ac50305c00ba8335289c711ce76c17e12..8e5b6274d0a1ffb9e29dc19809d29d7b95436f14 100644 (file)
@@ -294,15 +294,17 @@ dTree.prototype.closeAllChildren = function(node) {
 // Change the status of a node(open or closed)
 dTree.prototype.nodeStatus = function(status, id, bottom) {
   eDiv = document.getElementById('d' + this.obj + id);
-  eJoin = document.getElementById('j' + this.obj + id);
-  if (this.config.useIcons) {
-    eIcon = document.getElementById('i' + this.obj + id);
-    eIcon.src = (status) ? this.aNodes[id].iconOpen : this.aNodes[id].icon;
+  if (eDiv) {
+    eJoin = document.getElementById('j' + this.obj + id);
+    if (this.config.useIcons) {
+      eIcon = document.getElementById('i' + this.obj + id);
+      eIcon.src = (status) ? this.aNodes[id].iconOpen : this.aNodes[id].icon;
+    }
+    eJoin.src = (this.config.useLines)?
+      ((status)?((bottom)?this.icon.minusBottom:this.icon.minus):((bottom)?this.icon.plusBottom:this.icon.plus)):
+      ((status)?this.icon.nlMinus:this.icon.nlPlus);
+    eDiv.style.display = (status) ? 'block': 'none';
   }
-  eJoin.src = (this.config.useLines)?
-  ((status)?((bottom)?this.icon.minusBottom:this.icon.minus):((bottom)?this.icon.plusBottom:this.icon.plus)):
-  ((status)?this.icon.nlMinus:this.icon.nlPlus);
-  eDiv.style.display = (status) ? 'block': 'none';
 };
 
 
index 6002554cc62a7dcb564f0da15d2281ca2c75e4e3..832d5cacfb332a44ff39b7d55bcd0ca7cf12b0ad 100644 (file)
@@ -505,9 +505,9 @@ function onRowClick(event) {
     var list = node.parentNode;
     var items = list.childNodesWithTag("li");
     for (var i = 0; i < items.length; i++) {
-      if (items[i] == node) {
-       rowIndex = i;
-       break;
+       if (items[i] == node) {
+          rowIndex = i;
+          break;
       }
     }
   }