[interchange] * Modify table editor to prevent double-increment of counter file

Greg Hanson <[email protected]>
Newsgroups gmane.comp.web.interchange.cvs
Message-ID <[email protected]>
commit b7637291d9e1991e6e56ce72f4cbf9dacae87577
Author: Greg Hanson <[email protected]>
Date:   Tue Apr 6 14:33:02 2010 -0400

    * Modify table editor to prevent double-increment of counter file
      when using IC AUTO_NUMBER.
    
    * Provide reliable return routes after adding item.

 dist/lib/UI/pages/admin/flex_editor.html |    5 -----
 lib/Vend/Table/Editor.pm                 |   28 +++++++++++++++++++++++++++-
 2 files changed, 27 insertions(+), 6 deletions(-)
---
diff --git a/dist/lib/UI/pages/admin/flex_editor.html b/dist/lib/UI/pages/admin/flex_editor.html
index c88041c..1897b15 100644
--- a/dist/lib/UI/pages/admin/flex_editor.html
+++ b/dist/lib/UI/pages/admin/flex_editor.html
@@ -55,11 +55,6 @@
 	[/loop]
 	[perl tables="[cgi mv_data_table]"]
 		my $db = $Db{$CGI->{mv_data_table}} or return;
-		unless ($db->config('AUTO_SEQUENCE')) {
-			$db->config('AUTO_NUMBER', '000001')
-				unless $db->config('AUTO_NUMBER');
-			$CGI->{item_id} = $db->autonumber();
-		}
 		if ($CGI->{ui_clone_id}) {
 			$CGI->{ui_clone_tables} = '__UI_CLONE_TABLES__' || '__UI_ITEM_TABLES__';
 			my $db = $Db{$CGI->{mv_data_table}} or return;
diff --git a/lib/Vend/Table/Editor.pm b/lib/Vend/Table/Editor.pm
index 09470b9..f97a298 100644
--- a/lib/Vend/Table/Editor.pm
+++ b/lib/Vend/Table/Editor.pm
@@ -2944,6 +2944,7 @@ EOF
 
 	$Vend::Session->{ui_return_stack} ||= [];
 
+
 	if($opt->{cgi} and ! $pass_return_to) {
 		my $r_ary = $Vend::Session->{ui_return_stack};
 
@@ -2962,8 +2963,18 @@ EOF
 	if(ref $opt->{hidden} or ref $opt->{hidden_all}) {
 		my ($hk, $hv);
 		my @o;
+
 		while ( ($hk, $hv) = each %$hidden ) {
-			push @o, produce_hidden($hk, $hv);
+
+##if new item, get mv_nextpage from radio buttons
+
+			if($opt->{ui_new_item}){
+				next if $hk =~ /mv_nextpage/;
+				push @o, produce_hidden($hk, $hv);
+			}
+			else {
+				push @o, produce_hidden($hk, $hv);
+			}
 		}
 		while ( ($hk, $hv) = each %$hidden_all ) {
 			push @o, produce_hidden($hk, $hv);
@@ -4215,6 +4226,20 @@ EOF
 
 	}
 
+	if($opt->{ui_new_item}) {
+		my $aa_msg = l('Add another item');
+		my $rt_msg = l('Return to table select');
+		chunk 'DO_ANOTHER', 'OUTPUT_MAP', <<EOF;
+<small>
+&nbsp;
+	<input type="radio" class="$opt->{widget_class}" name="mv_nextpage" value="admin/flex_select" CHECKED>
+	$rt_msg
+	<input type="radio" class="$opt->{widget_class}" name="mv_nextpage" value="admin/flex_editor">
+	$aa_msg
+EOF
+
+	}
+
 	chunk_alias 'HIDDEN_FIELDS', qw/
 										HIDDEN_ALWAYS
 										HIDDEN_EXTRA
@@ -4227,6 +4252,7 @@ EOF
 										OK_BOTTOM
 										CANCEL_BOTTOM
 										RESET_BOTTOM
+										DO_ANOTHER
 										/;
 	chunk_alias 'EXTRA_BUTTONS', qw/
 										AUTO_EXPORT
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.