[interchange-cvs] interchange - heins modified lib/Vend/Table/Editor.pm
interchange-core@icdevgroup.org
interchange-core@icdevgroup.org
Mon May 5 10:19:00 2003
User: heins
Date: 2003-05-05 14:18:54 GMT
Modified: lib/Vend/Table Editor.pm
Log:
Various changes to Vend::Table::Editor.
* Fix bug found by Jon where extra queries were done by Vend::Form due
to table and column parameters being passed when not necessary.
TODO: Investigate use of table and column at all for Vend::Form --
I think that code is only needed to support the old, old, static
option/modifier type of IC, i.e. [item-accessories].
* Add "hidden_all" parameter that allows passing of parameters in links
generated by [table-editor].
* Add --none-- option to storage book select, so that you can save
the main data without adding to storage book.
* Minor language change clarifying "save here only".
* Probably final address editing changes prior to hoped-for new address
capability Kevin Old is working on.
Revision Changes Path
1.30 +46 -17 interchange/lib/Vend/Table/Editor.pm
rev 1.30, prev_rev 1.29
Index: Editor.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Table/Editor.pm,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- Editor.pm 9 Apr 2003 15:08:50 -0000 1.29
+++ Editor.pm 5 May 2003 14:18:53 -0000 1.30
@@ -1,6 +1,6 @@
# Vend::Table::Editor - Swiss-army-knife table editor for Interchange
#
-# $Id: Editor.pm,v 1.29 2003/04/09 15:08:50 mheins Exp $
+# $Id: Editor.pm,v 1.30 2003/05/05 14:18:53 mheins Exp $
#
# Copyright (C) 2002 ICDEVGROUP <interchange@icdevgroup.org>
# Copyright (C) 2002 Mike Heins <mike@perusion.net>
@@ -26,7 +26,7 @@
package Vend::Table::Editor;
use vars qw($VERSION);
-$VERSION = substr(q$Revision: 1.29 $, 10);
+$VERSION = substr(q$Revision: 1.30 $, 10);
use Vend::Util;
use Vend::Interpolate;
@@ -175,7 +175,7 @@
my $mkey = $view ? "${view}::$item" : $item;
- if(! $mtable) {
+ if( ref ($mdb) eq 'HASH') {
$record = $mdb;
}
else {
@@ -292,7 +292,7 @@
for my $metakey (@tries) {
## In case we were passed a meta record
last if $record = $sess->{$metakey} and ref $record;
- $record = UI::Primitive::meta_record($metakey, $view, $meta)
+ $record = meta_record($metakey, $view, $meta)
and last;
}
}
@@ -428,10 +428,8 @@
my %things = (
attribute => $column,
cols => $opt->{cols} || $record->{width},
- column => $column,
passed => $record->{options},
rows => $opt->{rows} || $record->{height},
- table => $table,
value => $opt->{value},
);
@@ -1762,7 +1760,8 @@
my $elabel = $opt->{elabel};
my $mlabel = '';
my $hidden = $opt->{hidden} ||= {};
-
+ my $hidden_all = $opt->{hidden_all} ||= {};
+#::logDebug("hidden_all=" . ::uneval($hidden_all));
my $ntext;
my $btext;
my $ctext;
@@ -2080,28 +2079,54 @@
my %wid_data;
my %url_data;
my @labels = keys %$blob;
+ unshift @labels, '';
+
+ my $extra = '';
+ for my $k (keys %$hidden_all) {
+ my $v = $hidden_all->{$k};
+ if(ref($v) eq 'ARRAY') {
+ for(@$v) {
+ $extra .= "\n$k=$_";
+ }
+ }
+ else {
+ $extra .= "\n$k=$v";
+ }
+ }
+
for my $key (@labels) {
- my $ref = $blob->{$_};
- my $lab = $ref->{$opt->{mv_blob_label} || 'name'};
+ my $ref;
+ my $lab;
+ if($key) {
+ $ref = $blob->{$key};
+ $lab = $ref->{$opt->{mv_blob_label} || 'name'};
+ }
+ else {
+ $key = '';
+ $lab = '--' . errmsg('none') . '--';
+ $ref = {};
+ }
if($lab) {
$lab =~ s/,/,/g;
- $wid_data{$lab} = "$key=$key - $lab";
- $url_data{$lab} = $Tag->page( {
+ $wid_data{$key} = "$key=$key - $lab";
+ next unless $key;
+ $url_data{$key} = $Tag->page( {
href => $Global::Variable->{MV_PAGE},
form => "
item_id=$opt->{item_id}
- mv_blob_nick=$key
+ mv_blob_nick=$key$extra
",
});
- $url_data{$lab} .= "$key - $lab</A>";
+ $url_data{$key} .= "$key - $lab</A><br>";
}
else {
$wid_data{$key} = $key;
+ next unless $key;
$url_data{$key} = $Tag->page( {
href => $Global::Variable->{MV_PAGE},
form => "
item_id=$opt->{item_id}
- mv_blob_nick=$key
+ mv_blob_nick=$key$extra
",
});
$url_data{$key} .= "$key</A>";
@@ -2154,7 +2179,7 @@
passed => join (",", @wid_data{ sort keys %wid_data }) || 'default',
});
my $msg1 = errmsg('Save to');
- my $msg2 = errmsg('Save here only');
+ my $msg2 = errmsg('Save to book only');
for (\$msg1, \$msg2) {
$$_ =~ s/ / /g;
}
@@ -2181,6 +2206,7 @@
EOF
if($opt->{mv_blob_nick}) {
+ delete $opt->{force_defaults};
my @keys = split /::/, $opt->{mv_blob_nick};
my $ref = $blob->{shift @keys};
for(@keys) {
@@ -2302,10 +2328,13 @@
#::logDebug("return-to stack = " . ::uneval($r_ary));
}
- if(ref $opt->{hidden}) {
+ if(ref $opt->{hidden} or ref $opt->{hidden_all}) {
my ($hk, $hv);
my @o;
- while ( ($hk, $hv) = each %{$opt->{hidden}} ) {
+ while ( ($hk, $hv) = each %$hidden ) {
+ push @o, produce_hidden($hk, $hv);
+ }
+ while ( ($hk, $hv) = each %$hidden_all ) {
push @o, produce_hidden($hk, $hv);
}
chunk 'HIDDEN_USER', 'OUTPUT_MAP', join("", @o); # unless $wo;