X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FWidgets%2FSelectionBox;fp=rt%2Fshare%2Fhtml%2FWidgets%2FSelectionBox;h=01ca6687fd6fec5844075ba1ba10d0bf6bebfb55;hb=1c538bfabc2cd31f27067505f0c3d1a46cba6ef0;hp=4ac178b69739ce50f442930d2c89f3dcb574f780;hpb=4f5619288413a185e9933088d9dd8c5afbc55dfa;p=freeside.git diff --git a/rt/share/html/Widgets/SelectionBox b/rt/share/html/Widgets/SelectionBox index 4ac178b69..01ca6687f 100644 --- a/rt/share/html/Widgets/SelectionBox +++ b/rt/share/html/Widgets/SelectionBox @@ -49,18 +49,15 @@ %# %# SYNOPSIS %# -%# include javascript: -%# <& /Widgets/SelectionBox:header &> -%# %# <%init>: %# my $sel = $m->comp ('/Widgets/SelectionBox:new', -%# Action => me.html', -%# Name => 'my-selection', -%# Available => \@items, +%# Action => me.html', +%# Name => 'my-selection', +%# Available => \@items, %# # you can do things with @{$sel->{Current}} in the %# # OnSubmit callback -%# OnSubmit => sub { my $sel = shift; }, -%# Selected => \@selected); +%# OnSubmit => sub { my $sel = shift; }, +%# Selected => \@selected); %# %# $m->comp ('/Widgets/SelectionBox:process', %ARGS, self => $sel) %# @@ -71,17 +68,7 @@ %# <& /Widgets/SelectionBox:show, self => $sel &> %# %# if the SelectionBox is created with AutoSave option, OnSubmit will be called -%# on every button clicked in non-js mode. -<%method header> -% unless ($nojs) { - - -% } -<%ARGS> -$nojs => 0 - - - +%# on every button clicked <%method new> <%init> $ARGS{_item_map} = {map {$_->[0] => $_->[1]} @{$ARGS{Available}}}; @@ -103,56 +90,51 @@ if ($self->{Selected} && !ref($self->{Selected})) { $self->{Selected} = [$self->{Selected}]; } -if ($ARGS{fromjs}) { - $self->{Current} = $self->{Selected}; +my $current = $self->{Current} = $ARGS{$self->{Name}.'-Current'}; +if ($current && !ref ($current)) { + $current = [$current]; } -else { - my $current = $self->{Current} = $ARGS{$self->{Name}.'-Current'}; - if ($current && !ref ($current)) { - $current = [$current]; - } - unless ($self->{ReadOnly}) { - ++$self->{Modified}; - if ($ARGS{add}) { - my $choosed = $ARGS{$self->{Name}.'-Available'}; - for my $add (ref($choosed) ? @$choosed : $choosed) { - next if grep { $_ eq $add } @$current; - push @$current, $add; - } +unless ($self->{ReadOnly}) { + ++$self->{Modified}; + if ($ARGS{add}) { + my $choosed = $ARGS{$self->{Name}.'-Available'}; + for my $add (ref($choosed) ? @$choosed : $choosed) { + next if grep { $_ eq $add } @$current; + push @$current, $add; } + } - if ($ARGS{remove}) { - my $choosed = $ARGS{$self->{Name}.'-Selected'}; - for my $del (ref($choosed) ? @$choosed : $choosed) { - @$current = map { $_ eq $del ? () : $_ } @$current; - } + if ($ARGS{remove}) { + my $choosed = $ARGS{$self->{Name}.'-Selected'}; + for my $del (ref($choosed) ? @$choosed : $choosed) { + @$current = map { $_ eq $del ? () : $_ } @$current; } + } - if ($ARGS{moveup} or $ARGS{movedown}) { - my $offset = $ARGS{moveup} ? 1 : 0; - my $choosed = $ARGS{$self->{Name}.'-Selected'}; - $choosed = [$choosed] unless ref ($choosed); - my $canmove = 0; # not in the cornor - for my $i ($ARGS{moveup} ? 0..$#{$current} : reverse 0..$#{$current}) { - if (grep {$_ eq $current->[$i]} @$choosed) { - if ($canmove) { - splice (@$current, $i-$offset, 2, - @{$current}[$i+1-$offset,$i-$offset]); - } - } - else { - ++$canmove; - } + if ($ARGS{moveup} or $ARGS{movedown}) { + my $offset = $ARGS{moveup} ? 1 : 0; + my $choosed = $ARGS{$self->{Name}.'-Selected'}; + $choosed = [$choosed] unless ref ($choosed); + my $canmove = 0; # not in the cornor + for my $i ($ARGS{moveup} ? 0..$#{$current} : reverse 0..$#{$current}) { + if (grep {$_ eq $current->[$i]} @$choosed) { + if ($canmove) { + splice (@$current, $i-$offset, 2, + @{$current}[$i+1-$offset,$i-$offset]); + } + } + else { + ++$canmove; } } + } - if ($ARGS{clear}) { - $current = []; - } - - $self->{Current} = $current; + if ($ARGS{clear}) { + $current = []; } + + $self->{Current} = $current; } @{$self->{Current}} = grep { exists $self->{_item_map}{$_} } @{$self->{Current}}; @@ -182,14 +164,9 @@ $self => undef <%method show> -
+ <& SelectionBox:current, self => $self &> - <&|/l&>Available:
% unless ($self->{ReadOnly}) { - + % } % unless ($self->{'ReadOnly'}) { % unless ($ARGS{'NoArrows'}) { - - + + % } % if ($ARGS{'Clear'}) { @@ -234,17 +211,9 @@ selected="selected" % }
-% unless ($nojs) { - -% } <%ARGS> $self => undef $size => 10 -$nojs => 0 <%INIT> my $name = $self->{Name};