[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;