]> err.no Git - scalable-opengroupware.org/commitdiff
simple navigation
authorhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Tue, 5 Oct 2004 13:32:31 +0000 (13:32 +0000)
committerhelge <helge@d1b88da0-ebda-0310-925b-ed51d893ca5b>
Tue, 5 Oct 2004 13:32:31 +0000 (13:32 +0000)
git-svn-id: http://svn.opengroupware.org/SOGo/trunk@358 d1b88da0-ebda-0310-925b-ed51d893ca5b

SOGo/UI/Mailer/ChangeLog
SOGo/UI/Mailer/UIxMailListView.m
SOGo/UI/Mailer/UIxMailListView.wox
SOGo/UI/Mailer/Version

index 12789f638735b5a9449b4b922c85ec8e8faecc90..6504db88615f91fba53d0b4d235e0a2708bcd7ff 100644 (file)
@@ -1,5 +1,7 @@
 2004-10-05  Helge Hess  <helge.hess@opengroupware.org>
 
+       * UIxMailListView: added simple navigation (v0.9.20)
+
        * v0.9.19
 
        * UIxMailPartViewer.m: added content decoding for QP, base64 and 7bit,
index 9e48347b9d3bbaf12e396159aaa3da46fd8b78bf..c597fbd0fceb4535240ad81a388bfbca65e0034b 100644 (file)
 
 @interface UIxMailListView : UIxComponent
 {
-  NSArray *sortedUIDs; /* we always need to retrieve all anyway! */
-  NSArray *messages;
-  id message;
+  NSArray  *sortedUIDs; /* we always need to retrieve all anyway! */
+  NSArray  *messages;
+  unsigned firstMessageNumber;
+  id       message;
 }
 
 @end
 }
 
 - (NSRange)fetchRange {
-  return NSMakeRange(0, 50);
+  if (self->firstMessageNumber == 0)
+    return NSMakeRange(0, 50);
+  return NSMakeRange(self->firstMessageNumber - 1, 50);
 }
 
 - (NSArray *)sortedUIDs {
   
   r    = [self fetchRange];
   uids = [self sortedUIDs];
-
+  
   /* only need to restrict if we have a lot */
   if ((len = [uids count]) <= r.length) {
     r.location = 0;
   return r.location + r.length >= [[self sortedUIDs] count] ? NO : YES;
 }
 
+- (unsigned int)nextFirstMessageNumber {
+  return [self firstMessageNumber] + [self fetchRange].length;
+}
+- (unsigned int)prevFirstMessageNumber {
+  NSRange  r;
+  unsigned idx;
+  
+  idx = [self firstMessageNumber];
+  r   = [self fetchRange];
+  if (idx > r.length)
+    return (idx - r.length);
+  return 1;
+}
+
 - (NSArray *)messages {
   NSArray  *uids;
   NSArray  *msgs;
 
 - (id)defaultAction {
   [self logWithFormat:@"default action ..."];
+  self->firstMessageNumber = 
+    [[[[self context] request] formValueForKey:@"idx"] intValue];
   return self;
 }
 
index b00431541294cc37da8f084da7a05f68eb64ceae..adee279d574b437e30bc190fdf2d3fc571d34fd3 100644 (file)
@@ -55,7 +55,8 @@
             
             <var:if condition="showsAllMessages" const:negate="YES">
               <var:if condition="hasPrevious">
-                <a href="prevBlock">prev</a> |
+                <a href="view" _idx="1">first</a> |
+                <a href="view" var:_idx="prevFirstMessageNumber">prev</a> |
               </var:if>
   
               <var:string value="firstMessageNumber"/>
@@ -65,7 +66,7 @@
               <var:string value="sortedUIDs.count" />
   
               <var:if condition="hasNext">
-                | <a href="nextBlock">next</a>
+                | <a href="view" var:_idx="nextFirstMessageNumber">next</a>
               </var:if>
             </var:if>
           </td>
index 93c8cd1ddfe4862984d2fe8dffb82de3a02d010b..7cb001acfe53aa2f6319d40435bdf0120783297d 100644 (file)
@@ -1,3 +1,3 @@
 # $Id$
 
-SUBMINOR_VERSION:=19
+SUBMINOR_VERSION:=20