]> err.no Git - sope/commitdiff
extended WOKeyValueConditional
authorznek <znek@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Tue, 21 Dec 2004 17:50:08 +0000 (17:50 +0000)
committerznek <znek@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Tue, 21 Dec 2004 17:50:08 +0000 (17:50 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@456 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-appserver/WOExtensions/ChangeLog
sope-appserver/WOExtensions/Version
sope-appserver/WOExtensions/WOKeyValueConditional.api
sope-appserver/WOExtensions/WOKeyValueConditional.m

index 0f5fa1db28291e274b563e2c205af24b36f35d04..14b7a2d8c70873dd4fb6b2e1a7ef4abb0eada8fb 100644 (file)
@@ -1,3 +1,7 @@
+2004-12-21  Marcus Mueller  <znek@mulle-kybernetik.com>
+
+       * WOKeyValueConditional.[api,m]: added "negate" binding (v4.3.21)
+
 2004-12-14  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * WOExtensions.xcode: minor fixes and updated
index 7cb001acfe53aa2f6319d40435bdf0120783297d..49f242e531df55a4ec8619c8424bdc414d69e19a 100644 (file)
@@ -1,3 +1,3 @@
 # $Id$
 
-SUBMINOR_VERSION:=20
+SUBMINOR_VERSION:=21
index 836ca49a43981053aa622878f1a2e8abf1893a69..a84ae058598e8c8f4375b46188627e550ef4c723 100644 (file)
@@ -3,4 +3,5 @@
 <wo class="WOKeyValueConditional">
   <binding name="key" required="YES" />
   <binding name="value" required="YES" />
+  <binding name="negate" defaults="YES/NO"/>
 </wo>
\ No newline at end of file
index 86e7dcb41836402f803d1c4148fc5b10f7694c27..90cc8b3b070e278b56731154adbc3286323e26c1 100644 (file)
@@ -31,6 +31,9 @@
   WOAssociation *key;
   WOAssociation *value;
   WOElement     *template;
+
+  // non-WO
+  WOAssociation *negate;
 }
 
 @end /* WOKeyValueConditional */
@@ -44,9 +47,9 @@
   template:(WOElement *)_c
 {
   if ((self = [super initWithName:_name associations:_config template:_c])) {
-    self->key   = WOExtGetProperty(_config, @"key");
-    self->value = WOExtGetProperty(_config, @"value");
-    
+    self->key      = WOExtGetProperty(_config, @"key");
+    self->value    = WOExtGetProperty(_config, @"value");
+    self->negate   = WOExtGetProperty(_config, @"negate");
     self->template = RETAIN(_c);
   }
   return self;
 // state
 
 static inline BOOL _doShow(WOKeyValueConditional *self, WOContext *_ctx) {
-  WOComponent *c;
-  BOOL doShow   = NO;
-  BOOL doNegate = NO;
-  id   v, kv;
-  NSString *k;
-
-  c = [_ctx component];
+  WOComponent *c       = [_ctx component];
+  BOOL        doShow   = NO;
+  BOOL        doNegate = [self->negate boolValueInComponent:c];
+  id          v, kv;
+  NSString    *k;
 
   k  = [self->key   stringValueInComponent:c];
   v  = [self->value valueInComponent:c];
@@ -142,6 +143,7 @@ static inline BOOL _doShow(WOKeyValueConditional *self, WOContext *_ctx) {
 
   if (self->key)      [str appendFormat:@" key=%@",      self->key];
   if (self->value)    [str appendFormat:@" value=%@",    self->value];
+  if (self->negate)   [str appendFormat:@" negate=%@",   self->negate];
   if (self->template) [str appendFormat:@" template=%@", self->template];
   
   return AUTORELEASE(str);