[interchange-cvs] interchange - pajamian modified 8 files
interchange-cvs at icdevgroup.org
interchange-cvs at icdevgroup.org
Tue Nov 13 23:50:20 EST 2007
User: pajamian
Date: 2007-11-14 04:50:19 GMT
Modified: . MANIFEST WHATSNEW-5.5
Modified: code/Widget checkbox.widget movecombo.widget multiple.widget
Modified: dist/lib/UI/pages/include/Options Matrix
Modified: lib/Vend Config.pm
Added: code/UI_Tag widget_info.coretag
Log:
* New Multiple CodeDef flag to indicate that a widget can return multiple
selections. Usage example:
CodeDef checkbox Multiple 1
* Set new Multiple flag for checkbox, movecombo, check_nbsp and multiple
widgets.
* Option editor will now correctly generate variants for options that use
widgets capable of multiple selections (ie, multiple or checkout widgets).
* New [widget-info] UI tag:
[widget-info name attribute]
name: Name of widget to fetch info on, eg: checkbox, if not specified
then a hashref of hashrefs will be returned with all attributes for all
defined widgets.
attribute: Info to get for widget, eg: Multiple. If not specified then
all attributes will be returned for the named widget in a hashref.
Revision Changes Path
2.214 +1 -0 interchange/MANIFEST
rev 2.214, prev_rev 2.213
Index: MANIFEST
===================================================================
RCS file: /var/cvs/interchange/MANIFEST,v
retrieving revision 2.213
retrieving revision 2.214
diff -u -r2.213 -r2.214
--- MANIFEST 2 Sep 2007 19:21:04 -0000 2.213
+++ MANIFEST 14 Nov 2007 04:50:19 -0000 2.214
@@ -264,6 +264,7 @@
code/UI_Tag/user_merge.tag
code/UI_Tag/version.coretag
code/UI_Tag/widget.coretag
+code/UI_Tag/widget_info.coretag
code/UI_Tag/widget_meta.coretag
code/UI_Tag/write_relative_file.coretag
code/UI_Tag/write_shipping.coretag
1.73 +12 -0 interchange/WHATSNEW-5.5
rev 1.73, prev_rev 1.72
Index: WHATSNEW-5.5
===================================================================
RCS file: /var/cvs/interchange/WHATSNEW-5.5,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -r1.72 -r1.73
--- WHATSNEW-5.5 10 Nov 2007 10:44:10 -0000 1.72
+++ WHATSNEW-5.5 14 Nov 2007 04:50:19 -0000 1.73
@@ -61,6 +61,13 @@
in catalog.cfg like this:
Options Matrix display_type separate
+* New Multiple CodeDef flag to indicate that a widget can return multiple
+ selections. Usage example:
+ CodeDef checkbox Multiple 1
+
+* Set new Multiple flag for checkbox, movecombo, check_nbsp and multiple
+ widgets.
+
UI
--
@@ -76,6 +83,11 @@
want to use a text or textarea widget (which is not possible with matrix
options). Requires the addition of an o_simple column to the options table
for existing catalogs.
+
+* New [widget-info] UI tag.
+
+* Option editor will now correctly generate variants for options that use
+ widgets capable of multiple selections (ie, multiple or checkout widgets).
Interchange 5.5.1 released on 2007-08-21.
1.1 interchange/code/UI_Tag/widget_info.coretag
rev 1.1, prev_rev 1.0
Index: widget_info.coretag
===================================================================
UserTag widget-info Order name attribute
UserTag widget-info Version $Revision: 1.1 $
UserTag widget-info Routine <<EOR
my %wi_attr = ((map { (lc $_, $_) } qw(
Widget
Documentation
Visibility
Description
Help
Multiple
Version
)), qw(
exists Widget
));
sub {
my ($name, $attr) = @_;
if (length $name) {
# Global or Local?
my $repo = $Global::CodeDef->{Widget};
$repo = $Vend::Cfg->{CodeDef}{Widget} if $Vend::Cfg->{CodeDef}{Widget}{Widget}{$name};
return unless $repo->{Widget}{$name};
if (length $attr) {
# return just one attribute for the given name.
$attr = $wi_attr{lc $attr} or return;
return $repo->{$attr}{$name};
}
else {
# return a hashref with all the available attributes for a given name.
my %build = reverse %wi_attr;
while (my $key = each %build) {
if (exists $repo->{$key}{$name}) {
$build{$key} = $repo->{$key}{$name};
}
else {
delete $build{$key};
}
}
return \%build;
}
}
else {
# return a hashref of hashrefs for all the widgets and their attributes.
my %build = %{$Global::CodeDef->{Widget}{Widget}};
@build{keys %build} = ($Global::CodeDef->{Widget}) x scalar keys %build;
@build{keys %{$Vend::Cfg->{CodeDef}{Widget}{Widget}}} = ($Vend::Cfg->{CodeDef}{Widget}) x scalar keys %{$Vend::Cfg->{CodeDef}{Widget}{Widget}};
foreach my $name (keys %build) {
my $repo = $build{$name};
$build{$name} = {reverse %wi_attr};
while (my $key = each %{$build{$name}}) {
if (exists $repo->{$key}{$name}) {
$build{$name}{$key} = $repo->{$key}{$name};
}
else {
delete $build{$name}{$key};
}
}
}
return \%build;
}
}
EOR
1.4 +3 -1 interchange/code/Widget/checkbox.widget
rev 1.4, prev_rev 1.3
Index: checkbox.widget
===================================================================
RCS file: /var/cvs/interchange/code/Widget/checkbox.widget,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- checkbox.widget 30 Mar 2007 23:40:58 -0000 1.3
+++ checkbox.widget 14 Nov 2007 04:50:19 -0000 1.4
@@ -5,12 +5,14 @@
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version. See the LICENSE file for details.
#
-# $Id: checkbox.widget,v 1.3 2007/03/30 23:40:58 pajamian Exp $
+# $Id: checkbox.widget,v 1.4 2007/11/14 04:50:19 pajamian Exp $
CodeDef checkbox Widget 1
CodeDef checkbox Description Checkbox
CodeDef checkbox Help Selection of single/multiple values
+CodeDef checkbox Multiple 1
CodeDef checkbox MapRoutine Vend::Form::box
CodeDef check_nbsp Widget 1
CodeDef check_nbsp Description Checkbox (nbsp)
+CodeDef checkbox Multiple 1
CodeDef check_nbsp Help Selection of single/multiple values, for spaces
1.4 +2 -1 interchange/code/Widget/movecombo.widget
rev 1.4, prev_rev 1.3
Index: movecombo.widget
===================================================================
RCS file: /var/cvs/interchange/code/Widget/movecombo.widget,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- movecombo.widget 30 Mar 2007 23:40:58 -0000 1.3
+++ movecombo.widget 14 Nov 2007 04:50:19 -0000 1.4
@@ -5,11 +5,12 @@
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version. See the LICENSE file for details.
#
-# $Id: movecombo.widget,v 1.3 2007/03/30 23:40:58 pajamian Exp $
+# $Id: movecombo.widget,v 1.4 2007/11/14 04:50:19 pajamian Exp $
CodeDef movecombo Widget 1
CodeDef movecombo Description Combo move
CodeDef movecombo Help Selects any/all of many options, puts in text box
+CodeDef movecombo Multiple 1
CodeDef movecombo MapRoutine Vend::Form::movecombo
CodeDef movecombo_replace Widget 1
CodeDef movecombo_replace Description Combo move (one value)
1.4 +2 -1 interchange/code/Widget/multiple.widget
rev 1.4, prev_rev 1.3
Index: multiple.widget
===================================================================
RCS file: /var/cvs/interchange/code/Widget/multiple.widget,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- multiple.widget 30 Mar 2007 23:40:58 -0000 1.3
+++ multiple.widget 14 Nov 2007 04:50:19 -0000 1.4
@@ -5,9 +5,10 @@
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version. See the LICENSE file for details.
#
-# $Id: multiple.widget,v 1.3 2007/03/30 23:40:58 pajamian Exp $
+# $Id: multiple.widget,v 1.4 2007/11/14 04:50:19 pajamian Exp $
CodeDef multiple Widget 1
CodeDef multiple Description Select multiple
CodeDef multiple Help Dropdown list with all options shown
+CodeDef multiple Multiple 1
CodeDef multiple MapRoutine Vend::Form::dropdown
1.7 +18 -12 interchange/dist/lib/UI/pages/include/Options/Matrix
rev 1.7, prev_rev 1.6
Index: Matrix
===================================================================
RCS file: /var/cvs/interchange/dist/lib/UI/pages/include/Options/Matrix,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Matrix 10 Nov 2007 10:32:26 -0000 1.6
+++ Matrix 14 Nov 2007 04:50:19 -0000 1.7
@@ -85,8 +85,8 @@
tf=[calcn]$Config->{Options_repository}{$Scratch->{setting}}{o_sort}[/calcn]
- rf=o_group,o_value,price
- "][loop-param o_group] [loop-param o_value] [loop-param price]
+ rf=o_group,o_value,price,o_widget
+ "][loop-param o_group] [loop-param o_value] [loop-param price] [loop-param o_widget]
[/loop][/tmp]
[tmp tmp_price][price noformat=1 code="[cgi item_id]"][/tmp]
@@ -111,12 +111,13 @@
my @dimensions;
for(@opts) {
- my($g, $o, $p) = split /\t/, $_;
+ my($g, $o, $p, $w) = split /\t/, $_;
push @optnames, $g;
my @ary;
my (@o) = grep /\S/, split /\s*,\s*/, $o;
my (@p) = grep /\S/, split /\s*,\s*/, $p;
my %p;
+ my $multi = $Tag->widget_info($w, 'Multiple');
for(@p) {
my ($k, $v) = split /\s*=\s*/, $_;
next unless $k;
@@ -134,9 +135,14 @@
my ($k, $v) = split /\s*=\s*/, $_;
$k = '__MV_VARIANT_JOINER__' || '0' if ! length($k);
$v =~ s/\*$//;
- push @ary, [ $k, $v, $p{$k} ];
+ if ($multi) {
+ push @dimensions, [[undef, undef, 0], [$k, $v, $p{$k}]];
+ }
+ else {
+ push @ary, [ $k, $v, $p{$k} ];
+ }
}
- push @dimensions, \@ary;
+ push @dimensions, \@ary unless $multi;
}
#Debug( "dimensions: " . $Tag->uneval( { ref => \@dimensions } ) );
@@ -163,14 +169,13 @@
$pointers[$dim] = $_;
if ($dim == $#dimensions) {
+ my $o = join( '-',
+ grep { defined $_ } map { $dimensions[$_]->[$pointers[$_]]->[0] } (0..$#dimensions));
+ next unless length $o;
+ push @options, $o;
push @descriptions,
join( ', ',
- map { $dimensions[$_]->[$pointers[$_]]->[1] } (0..$#dimensions)
- )
- ;
- push @options,
- join( '-',
- map { $dimensions[$_]->[$pointers[$_]]->[0] } (0..$#dimensions)
+ grep { defined $_ } map { $dimensions[$_]->[$pointers[$_]]->[1] } (0..$#dimensions)
)
;
push @prices,
@@ -186,7 +191,8 @@
}
push @hashes, \%opthash;
- } else {
+ }
+ else {
recurse_dim($dim + 1);
}
}
2.225 +6 -4 interchange/lib/Vend/Config.pm
rev 2.225, prev_rev 2.224
Index: Config.pm
===================================================================
RCS file: /var/cvs/interchange/lib/Vend/Config.pm,v
retrieving revision 2.224
retrieving revision 2.225
diff -u -r2.224 -r2.225
--- Config.pm 27 Sep 2007 21:43:30 -0000 2.224
+++ Config.pm 14 Nov 2007 04:50:19 -0000 2.225
@@ -1,6 +1,6 @@
# Vend::Config - Configure Interchange
#
-# $Id: Config.pm,v 2.224 2007/09/27 21:43:30 kwalsh Exp $
+# $Id: Config.pm,v 2.225 2007/11/14 04:50:19 pajamian Exp $
#
# Copyright (C) 2002-2007 Interchange Development Group
# Copyright (C) 1996-2002 Red Hat, Inc.
@@ -54,7 +54,7 @@
use Vend::Data;
use Vend::Cron;
-$VERSION = substr(q$Revision: 2.224 $, 10);
+$VERSION = substr(q$Revision: 2.225 $, 10);
my %CDname;
my %CPname;
@@ -265,6 +265,7 @@
interpolate Interpolate
invalidatecache InvalidateCache
isendanchor isEndAnchor
+ multiple Multiple
norearrange noRearrange
order Order
posnumber PosNumber
@@ -294,9 +295,10 @@
Interpolate 1
isEndAnchor 1
isOperator 1
+ Multiple 1
ItemAction 1
- noRearrange 1
- NoReparse 1
+ noRearrange 1
+ NoReparse 1
OrderCheck 1
UserTag 1
! );
More information about the interchange-cvs
mailing list