[svn:p5ee] r13473 - p5ee/trunk/App-Widget-ExtJS/cgi-bin/App
[email protected] Thu, 5 Nov 2009 09:21:26 -0800 (PST)
| Newsgroups | perl.cvs.p5ee |
|---|---|
| Message-ID | <[email protected]> |
Author: spadkins
Date: Thu Nov 5 09:21:25 2009
New Revision: 13473
Modified:
p5ee/trunk/App-Widget-ExtJS/cgi-bin/App/app-ext-repository
Log:
added delete and add records
Modified: p5ee/trunk/App-Widget-ExtJS/cgi-bin/App/app-ext-repository
==============================================================================
--- p5ee/trunk/App-Widget-ExtJS/cgi-bin/App/app-ext-repository (original)
+++ p5ee/trunk/App-Widget-ExtJS/cgi-bin/App/app-ext-repository Thu Nov 5 09:21:25 2009
@@ -13,8 +13,7 @@
my $request = $context->request();
my $cgi = $request->{cgi};
- #$App::options{verbose}
- if (1) {
+ if ($App::options{verbose}) {
print STDERR "app-ext-repository: CGI=$cgi\n";
foreach my $p ($cgi->param()) {
print STDERR " $p : ", $cgi->param($p), "\n";
@@ -58,7 +57,7 @@
my $params = {};
my $filter_params = {};
- my ($value, $modified_record, $record);
+ my ($value, $modified_record, $record, $delete_record, $add_record);
foreach my $cgi_param (@cgi_params) {
if (!$cgi_param_ignored{$cgi_param}) {
$value = $cgi->param($cgi_param);
@@ -76,13 +75,19 @@
elsif ($cgi_param eq "record") {
$record = decode_json $value;
}
+ elsif ($cgi_param eq "deleteRec") {
+ $delete_record = decode_json $value;
+ }
+ elsif ($cgi_param eq "add") {
+ $add_record = decode_json $value;
+ }
else {
$params->{$cgi_param} = $value if (defined $value && $value !~ /^\s*$/);
}
}
}
- # filter params
+ # filter
foreach my $key (keys %$filter_params) {
my $field = $filter_params->{$key}{field};
my $type = $filter_params->{$key}{type};
@@ -99,7 +104,7 @@
}
}
- #edit parms/cols/rows
+ #edit
if ($#$modified_record > -1 && $primary_key ne "") {
my ($mod_record, $mod_record_value);
my (@row, @col);
@@ -129,8 +134,40 @@
}
}
my $nrows = $rep->update($table, $params, \@col, \@row);
+ return;
+ }
+
+ #delete
+ if (ref $delete_record eq 'HASH' && $primary_key ne "") {
+ foreach my $pk_value (keys %$delete_record) {
+ my $pk_col = $delete_record->{$pk_value};
+ if ($pk_col eq $primary_key) {
+ $rep->delete($table, { $pk_col => $pk_value });
+ }
+ }
+ return;
}
+ #add
+ if ($#$add_record > -1) {
+ my $columns = $rep->get_column_names($table);
+ my %cl;
+ foreach my $column (@$columns) {
+ $cl{$column} = 1;
+ }
+ foreach my $record (@$add_record) {
+ my (@rows, @cols);
+ foreach my $key (keys %$record) {
+ if ($cl{$key}) {
+ push(@cols, $key);
+ push(@rows, $record->{$key});
+ }
+ }
+ $rep->insert_row($table, \@cols, \@rows);
+ }
+ return;
+ }
+
my $options = {};
my $startrow = ($cgi->param("start") || 0) + 1;