X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Fprocess%2Fmeta-import.cgi;h=59d236f64dd6596fe09ab5d311ca67606265aabe;hb=4594b30617c2759dc38a51a1ea23a336abbeb24a;hp=9e374b5081ee874f62b054f8716691bfa7697193;hpb=c174642d32c139d1233597e3fa6a467586207023;p=freeside.git
diff --git a/httemplate/misc/process/meta-import.cgi b/httemplate/misc/process/meta-import.cgi
index 9e374b508..59d236f64 100644
--- a/httemplate/misc/process/meta-import.cgi
+++ b/httemplate/misc/process/meta-import.cgi
@@ -31,7 +31,9 @@ function SafeOnsubmit() {
VALUE="<%= $cgi->param($field) %>">
<% }
- my %schema = ();
+ my %schema;
+ use Tie::DxHash;
+ tie %schema, 'Tie::DxHash';
if ( $cgi->param('schema') ) {
my $schema_string = $cgi->param('schema');
%> <%
@@ -57,14 +59,16 @@ function SafeOnsubmit() {
<%
+ my %unique;
foreach my $table ( keys %schema ) {
my @from_columns = $schema->table($table)->columns;
my @fs_columns = dbdef->table($schema{$table})->columns;
%>
- <%= hashmaker($table, \@from_columns => \@fs_columns,
- $table => $schema{$table}, ) %>
+ <%= hashmaker( $table.'__'.$unique{$table}++,
+ \@from_columns => \@fs_columns,
+ $table => $schema{$table}, ) %>
\n"; + my %unique; foreach my $table ( keys %schema ) { ( my $spaces = $table ) =~ s/./ /g; print "'$table' => { 'table' => '$schema{$table}',\n". @@ -88,7 +93,7 @@ function SafeOnsubmit() { or die "guru meditation #420: $_"; ( $1 => $2 ); } - split( /\n/, $cgi->param($table) ); + split( /\n/, $cgi->param($table.'__'.$unique{$table}++) ); foreach ( keys %map ) { print "$spaces '$_' => '$map{$_}',\n"; } @@ -111,16 +116,18 @@ function SafeOnsubmit() { #hashmaker widget sub hashmaker { my($name, $from, $to, $labelfrom, $labelto) = @_; - $fromsize = scalar(@$from); - $tosize = scalar(@$to); + my $fromsize = scalar(@$from); + my $tosize = scalar(@$to); "
$labelfrom | $labelto |
---|---|
".
qq!\n".
+ "\n ". + qq!!. ' | '.
qq!\n".
+ "\n ". + qq!!. ' |
'. qq!!. @@ -146,6 +153,24 @@ function SafeOnsubmit() { object.options[index] = null; return value; } + function repack_${name}_from() { + var object = document.OneTrueForm.${name}_from; + object.options.length = 0; + ". join("\n", + map { "addOption_$name(object, '$_');\n" } + ( sort { $a cmp $b } @$from ) ). " + } + function repack_${name}_to() { + var object = document.OneTrueForm.${name}_to; + object.options.length = 0; + ". join("\n", + map { "addOption_$name(object, '$_');\n" } + ( sort { $a cmp $b } @$to ) ). " + } + function addOption_$name(object,value) { + var length = object.length; + object.options[length] = new Option(value, value, false, false); + } ". ''; } |