summaryrefslogtreecommitdiff
path: root/httemplate/misc
diff options
context:
space:
mode:
authorivan <ivan>2003-03-11 11:36:51 +0000
committerivan <ivan>2003-03-11 11:36:51 +0000
commitc174642d32c139d1233597e3fa6a467586207023 (patch)
treea33e3967495b74f5bf7420152030fbd11b5dac93 /httemplate/misc
parent8df8fb820c0cd6559ee6fef3adffaf43df167353 (diff)
minor meta import webUI updates
Diffstat (limited to 'httemplate/misc')
-rw-r--r--httemplate/misc/meta-import.cgi24
-rw-r--r--httemplate/misc/process/meta-import.cgi82
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".