[ic] Passing options to widgets via table-editor

Mike Heins mike at perusion.com
Thu Mar 13 09:40:52 EST 2008


User:      heins
Date:      2008-03-13 14:17:28 GMT
Modified:  lib/Vend/Table Editor.pm
Log:
* Add ability to set arbitrary options from table editor callouts.
  Sparked by:

    http://www.icdevgroup.org/pipermail/interchange-users/2008-March/048740.html

  Now allows an option to be set with the opts callout, for example the "ampm"
  option for the time widget.

	  [table-editor
	  	label.starttime='Start Time'
		filter.starttime=date_change
		widget.starttime=time
		opts.starttime="ampm=1"
	   ]

  Options are specified in Interchange string option format as interpreted
  by get_option_hash() routine.

Revision  Changes    Path
1.90      +13 -3     interchange/lib/Vend/Table/Editor.pm


rev 1.90, prev_rev 1.89
Index: Editor.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Table/Editor.pm,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -r1.89 -r1.90
--- Editor.pm	18 Sep 2007 18:51:19 -0000	1.89
+++ Editor.pm	13 Mar 2008 14:17:28 -0000	1.90
@@ -1,6 +1,6 @@
 # Vend::Table::Editor - Swiss-army-knife table editor for Interchange
 #
-# $Id: Editor.pm,v 1.89 2007/09/18 18:51:19 racke Exp $
+# $Id: Editor.pm,v 1.90 2008/03/13 14:17:28 mheins Exp $
 #
 # Copyright (C) 2002-2007 Interchange Development Group
 # Copyright (C) 2002 Mike Heins <mike at perusion.net>
@@ -26,7 +26,7 @@
 package Vend::Table::Editor;
 
 use vars qw($VERSION);
-$VERSION = substr(q$Revision: 1.89 $, 10);
+$VERSION = substr(q$Revision: 1.90 $, 10);
 
 use Vend::Util;
 use Vend::Interpolate;
@@ -940,6 +940,14 @@
 			$record->{$_} =~ s/_UI_KEY_/$key/g;
 		}
 
+		if($opt->{opts}) {
+			my $r = get_option_hash(delete $opt->{opts});
+			for my $k (keys %$r) {
+				$record->{$k} = $r->{$k};
+			}
+		}
+
+
 #::logDebug("overriding defaults");
 #::logDebug("passed=$record->{passed}") if $record->{debug};
 		my %things = (
@@ -957,7 +965,7 @@
 			$record->{$k} = $v;
 		}
 
-#::logDebug("calling Vend::Form");
+#::logDebug("calling Vend::Form with record=" . ::uneval($record));
 		if($record->{save_defaults}) {
 			my $sd = $Vend::Session->{meta_defaults} ||= {};
 			$sd = $sd->{"${table}::$column"} ||= {}; 
@@ -2336,6 +2344,7 @@
 	my $meta         = $opt->{meta};
 	my $js_check     = $opt->{js_check};
 	my $maxlength    = $opt->{maxlength};
+	my $opts         = $opt->{opts};
 	my $options      = $opt->{options};
 	my $outboard     = $opt->{outboard};
 	my $override     = $opt->{override};
@@ -3966,6 +3975,7 @@
 							options				=> $options->{$c},
 							outboard			=> $outboard->{$c},
 							override			=> $overridden,
+							opts				=> $opts->{$c},
 							passed				=> $passed->{$c},
 							pre_filter			=> $pre_filter->{$c},
 							prepend				=> $prepend->{$c},






_______________________________________________
interchange-cvs mailing list
interchange-cvs at icdevgroup.org
http://www.icdevgroup.org/mailman/listinfo/interchange-cvs


----- End forwarded message -----

-- 
Mike Heins
Perusion -- Expert Interchange Consulting    http://www.perusion.com/
phone +1.765.647.1295  tollfree 800-949-1889 <mike at perusion.com>

Fast, reliable, cheap.  Pick two and we'll talk.  -- unknown


More information about the interchange-users mailing list