]> err.no Git - sope/commitdiff
disabled assoc-push in takeValues of submit button (#1568)
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Wed, 5 Oct 2005 12:02:09 +0000 (12:02 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Wed, 5 Oct 2005 12:02:09 +0000 (12:02 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@1156 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-appserver/NGObjWeb/ChangeLog
sope-appserver/NGObjWeb/Defaults.plist
sope-appserver/NGObjWeb/DynamicElements/WOSubmitButton.m
sope-appserver/NGObjWeb/Version

index af6c14302e6bd073070c38e6c830f2866d67df4b..e9547aba6884766d3fe1c838f074b5e2087b6d39 100644 (file)
@@ -1,3 +1,11 @@
+2005-10-05  Helge Hess  <helge.hess@skyrix.com>
+
+       * DynamicElements/WOSubmitButton.m: disable KVC push for 'value'
+         binding in -takeValuesFromRequest:inContext:. This is usually not
+         required but results in issue #1568 on OSX. The old behaviour can
+         be reenabled by settin ghte WOSubmitButtonEnableValueSync default to
+         YES (v4.5.205)
+
 2005-10-03  Helge Hess  <helge.hess@opengroupware.org>
 
        * WODisplayGroup.m: added -qualifyDataSourceAndReturnDisplayCount
index 8ee9a0963ad0b81714e544f1b8365d6c5d1a315d..7e5f05ccb11aa2f1cc3ea5762d9b6f6c19587d91 100644 (file)
   WOSimpleHTTPParserHeavyDebugEnabled   = NO;
   WOSimpleHTTPParserMaxUploadSizeInKB   = 262144;
   WOStatsStylesheetName                 = "WOStats.xsl";
+  WOSubmitButtonEnableValueSync         = NO;
   WOUseRelativeURLs                     = YES;
   WOUseGlobalCookiePath                 = YES;
   WOValueAssociationsCacheSize          = 200;
index 840a2d35dc3f59c58483c9676e6d8c7e26296a6d..fe06a93745c3746e44de5056e151caff26d8dbd7 100644 (file)
 
 @implementation WOSubmitButton
 
+static BOOL WOSubmitButtonEnableValueSync = NO;
+
 + (int)version {
   return 2;
 }
++ (void)initialize {
+  NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
+  
+  WOSubmitButtonEnableValueSync = 
+    [ud boolForKey:@"WOSubmitButtonEnableValueSync"];
+}
 
 - (id)initWithName:(NSString *)_name
   associations:(NSDictionary *)_config
       return;
   }
   
-  if ((formValue = [_rq formValueForKey:OWFormElementName(self, _ctx)])) {
-    //NSLog(@"%@: value=%@ ..", [self elementID], formValue);
+  if ((formValue = [_rq formValueForKey:OWFormElementName(self, _ctx)])!=nil) {
+    // [self debugWithFormat:@"%@: value=%@ ..", [self elementID], formValue];
     
-    if ([self->value isValueSettable]) {
-      [self->value setStringValue:formValue
-           inComponent:[_ctx component]];
+    if (WOSubmitButtonEnableValueSync) {
+      /*
+        We need this because some associations (eg
+        WOKeyPathAssociationSystemKVC) report "isValueSettable" as YES,
+        but raise an exception afterwards.
+
+        This section is disabled per default since its usually not required.
+        
+        See OGo bug #1568 for details.
+      */
+      if ([self->value isValueSettable])
+        [self->value setStringValue:formValue inComponent:[_ctx component]];
     }
+    
     if ((self->action != nil) || (self->pageName != nil))
       [_ctx addActiveFormElement:self];
   }
index 46ce5de7f64c105fb7f06c4d0aa226171ee844ff..9efa18fac147d4760c7433548ef08386537be991 100644 (file)
@@ -1,6 +1,6 @@
 # version file
 
-SUBMINOR_VERSION:=204
+SUBMINOR_VERSION:=205
 
 # v4.5.122 requires libNGExtensions v4.5.153
 # v4.5.91  requires libNGExtensions v4.5.134