X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FWidgets%2FSelectionBox;h=b10d0dff79f7a2abff17413c8eda1c36fd096326;hp=979adc9276ec0e61278530e199d6f6b558e6cf92;hb=de9d037528895f7151a9aead6724ce2df95f9586;hpb=43a06151e47d2c59b833cbd8c26d97865ee850b6 diff --git a/rt/share/html/Widgets/SelectionBox b/rt/share/html/Widgets/SelectionBox index 979adc927..b10d0dff7 100644 --- a/rt/share/html/Widgets/SelectionBox +++ b/rt/share/html/Widgets/SelectionBox @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2017 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -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,27 +164,22 @@ $self => undef <%method show> -
+ <& SelectionBox:current, self => $self &> - <&|/l&>Available:
- % for (@{$self->{Available}}) { % } % unless ($self->{ReadOnly}) { - + % } - % for (@{$self->{Current}}) {
-% unless ($nojs) { - -% } <%ARGS> $self => undef $size => 10 -$nojs => 0 <%INIT> my $name = $self->{Name};