X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=acqui%2Ffetch_sort_dropbox.pl;h=ce47fb792620a5023ebac82be139dd990eb6f03f;hb=08e594f149a120d0b43e2c5795f1342290231e13;hp=3a04621418a131b796f23dd5d539c9d95dfad9e0;hpb=5f69c342de9c3914633c6f10dd04028b0f7e2e67;p=koha.git diff --git a/acqui/fetch_sort_dropbox.pl b/acqui/fetch_sort_dropbox.pl index 3a04621418..ce47fb7926 100755 --- a/acqui/fetch_sort_dropbox.pl +++ b/acqui/fetch_sort_dropbox.pl @@ -18,47 +18,90 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. use strict; +use warnings; use CGI; use C4::Context; use C4::Output; use C4::Auth; use C4::Budgets; -=head1 +=head1 NAME -fetch_sort_dropbox : +fetch_sort_dropbox.pl + +=head1 DESCRIPTION + + This script fetches sort values for a given budget id. Currently it is used to dynamically fill + 'Statistic 1' and 'Statistic 2' comboboxes in neworderempty page. Values retrieved depend on + categories of authorized values defined in funds configuration. + +=head1 CGI PARAMETERS + +=over 4 + +=item budget_id + +Budget identifier + +=item sort + +Sort number. 1 or 2 for the moment. + +=back =cut my $input = new CGI; my $budget_id = $input->param('budget_id'); -my $sort_id = $input->param('sort'); +my $sort_nb = $input->param('sort'); +die "sort parameter can only be 1 or 2" unless ($sort_nb == 1 || $sort_nb == 2); my ( $template, $loggedinuser, $cookie ) = get_template_and_user( - { template_name => "acqui/ajax.tmpl", # FIXME: REMOVE TMPL DEP? + { template_name => "acqui/ajax.tmpl", query => $input, type => "intranet", authnotrequired => 0, - flagsrequired => {editcatalogue => 'edit_catalogue'}, + flagsrequired => {acquisition => 'order_manage'}, debug => 0, } ); -my $sort_dropbox; +my $ret_html; +my $name = 'sort'.$sort_nb; +my $authcat_field = 'sort'.$sort_nb.'_authcat'; + my $budget = GetBudget($budget_id); -if ( $sort_id == 1 ) { - $sort_dropbox = GetAuthvalueDropbox( 'sort1', $budget->{'sort1_authcat'}, '' ); -} elsif ( $sort_id == 2 ) { - $sort_dropbox = GetAuthvalueDropbox( 'sort2', $budget->{'sort2_authcat'}, '' ); -} +if ( $budget && $budget->{$authcat_field} ) { + # with custom Asort* planning values + my $dropbox_values = GetAuthvalueDropbox( $budget->{$authcat_field}, '' ); + + my @authorised_values; + my %authorised_lib; + my $default_value; -#strip off select tags ;/ -$sort_dropbox =~ s/^\//; -$sort_dropbox =~ s/\<\/select\>$//; -chomp $sort_dropbox; + foreach ( @$dropbox_values) { + push @authorised_values, $_->{value}; + $authorised_lib{$_->{value}} = $_->{label}; + $default_value = $_->{value} if $_->{'default'}; + } + + $ret_html = CGI::scrolling_list( + -values => \@authorised_values, + -labels => \%authorised_lib, + -default => $default_value, + -override => 1, + -size => 1, + -multiple => 0, + -name => $name, + -id => $name, + ); + +} else { + # free input + $ret_html = ''; +} -$template->param( return => $sort_dropbox ); +$template->param( 'return' => $ret_html ); output_html_with_http_headers $input, $cookie, $template->output; -1;