diff options
author | ivan <ivan> | 2003-03-11 11:36:51 +0000 |
---|---|---|
committer | ivan <ivan> | 2003-03-11 11:36:51 +0000 |
commit | c174642d32c139d1233597e3fa6a467586207023 (patch) | |
tree | a33e3967495b74f5bf7420152030fbd11b5dac93 | |
parent | 8df8fb820c0cd6559ee6fef3adffaf43df167353 (diff) |
minor meta import webUI updates
-rw-r--r-- | httemplate/misc/meta-import.cgi | 24 | ||||
-rw-r--r-- | httemplate/misc/process/meta-import.cgi | 82 |
2 files changed, 50 insertions, 56 deletions
diff --git a/httemplate/misc/meta-import.cgi b/httemplate/misc/meta-import.cgi index ebd2a7e2f..2f3b7380d 100644 --- a/httemplate/misc/meta-import.cgi +++ b/httemplate/misc/meta-import.cgi @@ -1,9 +1,7 @@ <!-- mason kludge --> <%= header('Import') %> <FORM ACTION="process/meta-import.cgi" METHOD="post" ENCTYPE="multipart/form-data"> -Import a CSV file containing customer records (zip tar etc).<BR><BR> - -##no##Default file format is CSV, with the following field order: <i>cust_pkg.setup, dayphone, first, last, address1, address2, city, state, zip, comments</i><BR><BR> +Import data from a DBI data source<BR><BR> <% #false laziness with edit/cust_main.cgi @@ -44,9 +42,23 @@ Import a CSV file containing customer records (zip tar etc).<BR><BR> <% } %> </SELECT><BR><BR> - CSV (zip, tar etc) Filename: <INPUT TYPE="file" NAME="csvfile"><BR><BR> - <INPUT TYPE="submit" VALUE="Import"> - </FORM> + <table> + <tr> + <td align="right">DBI data source: </td> + <td><INPUT TYPE="text" NAME="data_source"></td> + </tr> + <tr> + <td align="right">DBI username: </td> + <td><INPUT TYPE="text" NAME="username"></td> + </tr> + <tr> + <td align="right">DBI password: </td> + <td><INPUT TYPE="text" NAME="password"></td> + </tr> + </table> + <INPUT TYPE="submit" VALUE="Import"> + + </FORM> </BODY> <HTML> diff --git a/httemplate/misc/process/meta-import.cgi b/httemplate/misc/process/meta-import.cgi index 4c3c7d665..9e374b508 100644 --- a/httemplate/misc/process/meta-import.cgi +++ b/httemplate/misc/process/meta-import.cgi @@ -1,5 +1,6 @@ <!-- mason kludge --> <%= header('Map tables') %> + <SCRIPT> var gSafeOnload = new Array(); var gSafeOnsubmit = new Array(); @@ -19,65 +20,51 @@ function SafeOnsubmit() { gSafeOnsubmit[i](); } </SCRIPT> + <FORM NAME="OneTrueForm" METHOD="POST" ACTION="meta-import.cgi"> + <% - #one - unless ( $cgi->param('magic') ) { - - #oops, silly - #my $fh = $cgi->upload('csvfile'); - ##warn $cgi; - ##warn $fh; - # - #use Archive::Tar; - #$tar = Archive::Tar->new(); - #$tar->create_archive($fh); #or die $tar->error; - - #haha for now - my @files = qw( -authserv credtype dunprev invoice pmtdet product taxplan -ccdet customer genlog ledger pops pubvars -cchist discplan glacct origco prodcat recur users -credcode dundet invline payment prodclas repforms webserv - ); + #use DBIx::DBSchema; + my $schema = new_native DBIx::DBSchema + map { $cgi->param($_) } qw( data_source username password ); + foreach my $field (qw( data_source username password )) { %> + <INPUT TYPE="hidden" NAME=<%= $field %> VALUE="<%= $cgi->param($field) %>"> + <% } + + my %schema = (); + if ( $cgi->param('schema') ) { + my $schema_string = $cgi->param('schema'); + %> <INPUT TYPE="hidden" NAME="schema" VALUE="<%=$schema_string%>"> <% + %schema = map { /^\s*(\w+)\s*=>\s*(\w+)\s*$/ + or die "guru meditation #420: $_"; + ( $1 => $2 ); + } + split( /\n/, $schema_string ); + } + + #first page + unless ( $cgi->param('magic') ) { %> - %> <INPUT TYPE="hidden" NAME="magic" VALUE="process"> - <%= hashmaker('schema', \@files, [ grep { ! /^h_/ } dbdef->tables ] ) %> + <%= hashmaker('schema', [ $schema->tables ], + [ grep !/^h_/, dbdef->tables ], ) %> <br><INPUT TYPE="submit" VALUE="done"> <% - } elsif ( $cgi->param('magic') eq 'process' ) { + #second page + } elsif ( $cgi->param('magic') eq 'process' ) { %> - %> <INPUT TYPE="hidden" NAME="magic" VALUE="process2"> <% - my $schema_string = $cgi->param('schema'); - %><INPUT TYPE="hidden" NAME="schema" VALUE="<%=$schema_string%>"><% - my %schema = map { /^\s*(\w+)\s*=>\s*(\w+)\s*$/ - or die "guru meditation #420: $_"; - ( $1 => $2 ); - } - split( /\n/, $schema_string ); - - #*** should be in global.asa/handler.pl like the rest - eval 'use Text::CSV_XS;'; - foreach my $table ( keys %schema ) { - my $csv = Text::CSV_XS->new({ 'binary'=>1 }); - open(FILE,"</home/ivan/intergate/legacy/csvdir/$table") - or die "can't /home/ivan/intergate/legacy/csvdir/$table: $!"; - my $header = lc(<FILE>); - close FILE; - $csv->parse($header) or die; - my @from_columns = $csv->fields; - + 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, \@from_columns => \@fs_columns, + $table => $schema{$table}, ) %> <br><hr><br> <% @@ -87,16 +74,11 @@ credcode dundet invline payment prodclas repforms webserv <br><INPUT TYPE="submit" VALUE="done"> <% + #third (results) } elsif ( $cgi->param('magic') eq 'process2' ) { print "<pre>\n"; - #false laziness with above - my $schema_string = $cgi->param('schema'); - my %schema = map { /^\s*(\w+)\s*=>\s*(\w+)\s*$/ - or die "guru meditation #420: $_"; - ( $1 => $2 ); - } - split( /\n/, $schema_string ); + foreach my $table ( keys %schema ) { ( my $spaces = $table ) =~ s/./ /g; print "'$table' => { 'table' => '$schema{$table}',\n". |