@@ -, +, @@ AnonSuggestions and OPACViewOthersSuggestions. - A non logged in user is not able to purchase a suggestion. - A logged in user is not able to see suggestions made by someone else. - A non logged in user is not able to purchase a suggestion. - A logged in user is able to see suggestions made by someone else. - A non logged in user is able to purchase a suggestion. The suggestedby field will be filled with the AnonymousPatron pref value. He is not able to see suggestions, even the ones made by AnonymousPatron. - A logged in user is not able to see suggestions made by someone else. - A non logged in user is able to purchase a suggestion. He is able to see all suggestions. - A logged in user is able to see suggestions made by someone else. --- C4/Auth.pm | 1 - .../opac-tmpl/bootstrap/en/includes/usermenu.inc | 12 ++--- .../bootstrap/en/modules/opac-suggestions.tt | 57 +++++++++++++--------- opac/opac-suggestions.pl | 46 ++++++++++++----- 4 files changed, 72 insertions(+), 44 deletions(-) --- a/C4/Auth.pm +++ a/C4/Auth.pm @@ -475,7 +475,6 @@ sub get_template_and_user { OPACShelfBrowser => "" . C4::Context->preference("OPACShelfBrowser"), OPACURLOpenInNewWindow => "" . C4::Context->preference("OPACURLOpenInNewWindow"), OPACUserCSS => "" . C4::Context->preference("OPACUserCSS"), - OPACViewOthersSuggestions => "" . C4::Context->preference("OPACViewOthersSuggestions"), OpacAuthorities => C4::Context->preference("OpacAuthorities"), OPACBaseURL => ( $using_https ? "https://" : "http://" ) . $opac_base_url, opac_css_override => $ENV{'OPAC_CSS_OVERRIDE'}, --- a/koha-tmpl/opac-tmpl/bootstrap/en/includes/usermenu.inc +++ a/koha-tmpl/opac-tmpl/bootstrap/en/includes/usermenu.inc @@ -68,14 +68,12 @@ [% END # / opacreadinghistory %] [% IF Koha.Preference( 'suggestion' ) == 1 %] - [% UNLESS ( Koha.Preference( 'AnonSuggestions' ) == 1 ) %] - [% IF ( suggestionsview ) %] -
  • - [% ELSE %] -
  • - [% END %] - your purchase suggestions
  • + [% IF ( suggestionsview ) %] +
  • + [% ELSE %] +
  • [% END %] + your purchase suggestions
  • [% END %] [% IF ( EnhancedMessagingPreferences ) %] --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-suggestions.tt +++ a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-suggestions.tt @@ -92,7 +92,7 @@
    - + Cancel
    @@ -116,29 +116,36 @@ [% IF ( submitted ) %]
    Your suggestion has been submitted.
    [% END %] [% IF ( suggestions_loop ) %] - [% IF Koha.Preference( 'OPACViewOthersSuggestions' ) == 1 %] -
    -
    - - - -
    - - -
    -
    -
    - [% END %] +
    +
    + + + [% IF Koha.Preference( 'OPACViewOthersSuggestions' ) == 1 %] + [% IF loggedinusername %] + +
    + + +
    + [% END %] + [% END %] +
    +
    -
    - [% IF ( loggedinusername || ( Koha.Preference( 'AnonSuggestions' ) == 1 ) ) %] + [% IF ( loggedinusername || ( Koha.Preference( 'AnonSuggestions' ) == 1 ) ) %] +
    New purchase suggestion - [% END %] -
    +
    + [% END %] [% IF ( loggedinusername ) %]
    @@ -226,7 +233,11 @@ [% END %] [% ELSE %] -

    There are no pending purchase suggestions.

    + [% UNLESS Koha.Preference( 'OPACViewOthersSuggestions' ) or $loggedinusername %] +

    You are not authorized to see pending purchase suggestions.

    + [% ELSE %] +

    There are no pending purchase suggestions.

    + [% END %] [% IF ( loggedinusername || ( Koha.Preference( 'AnonSuggestions' ) == 1 ) ) %]

    New purchase suggestion

    [% END %] @@ -269,7 +280,7 @@ [% IF ( loggedinusername ) %]null,[% END %] { "sType": "anti-the" }, null, - [% IF ( OPACViewOthersSuggestions ) %]null,[% END %] + [% IF Koha.Preference( 'OPACViewOthersSuggestions' ) == 1 %]null,[% END %] [% IF Koha.Preference( 'OpacSuggestionManagedBy' ) %]null,[% END %] null ] --- a/opac/opac-suggestions.pl +++ a/opac/opac-suggestions.pl @@ -33,11 +33,11 @@ use C4::Scrubber; use Koha::DateUtils qw( dt_from_string ); my $input = new CGI; -my $allsuggestions = $input->param('showall'); my $op = $input->param('op'); my $suggestion = $input->Vars; delete $suggestion->{negcap}; my $negcaptcha = $input->param('negcap'); +my $suggested_by_anyone = $input->param('suggested_by_anyone') || 0; # If a spambot accidentally populates the 'negcap' field in the sugesstions form, then silently skip and return. if ($negcaptcha ) { @@ -51,14 +51,14 @@ if ( ! C4::Context->preference('suggestion') ) { exit; } -delete $$suggestion{$_} foreach qw; +delete $suggestion->{$_} foreach qw; $op = 'else' unless $op; my ( $template, $borrowernumber, $cookie ); my $deleted = $input->param('deleted'); my $submitted = $input->param('submitted'); -if ( C4::Context->preference("AnonSuggestions") ) { +if ( C4::Context->preference("AnonSuggestions") or ( C4::Context->preference("OPACViewOthersSuggestions") and $op eq 'else' ) ) { ( $template, $borrowernumber, $cookie ) = get_template_and_user( { template_name => "opac-suggestions.tt", @@ -67,9 +67,6 @@ if ( C4::Context->preference("AnonSuggestions") ) { authnotrequired => ( C4::Context->preference("OpacPublic") ? 1 : 0 ), } ); - if ( !$$suggestion{suggestedby} ) { - $$suggestion{suggestedby} = C4::Context->preference("AnonymousPatron"); - } } else { ( $template, $borrowernumber, $cookie ) = get_template_and_user( @@ -81,13 +78,36 @@ else { } ); } -if ($allsuggestions){ - delete $$suggestion{suggestedby}; -} -else { - $$suggestion{suggestedby} ||= $borrowernumber unless ($allsuggestions); + +if ( $op eq 'else' ) { + if ( C4::Context->preference("OPACViewOthersSuggestions") ) { + if ( $borrowernumber ) { + # A logged in user is able to see suggestions from others + $suggestion->{suggestedby} = $suggested_by_anyone + ? undef + : $borrowernumber; + } + else { + # Non logged in user is able to see all suggestions + $suggestion->{suggestedby} = undef; + } + } + else { + if ( $borrowernumber ) { + $suggestion->{suggestedby} = $borrowernumber; + } + else { + $suggestion->{suggestedby} = -1; + } + } +} else { + if ( $borrowernumber ) { + $suggestion->{suggestedby} = $borrowernumber; + } + else { + $suggestion->{suggestedby} = C4::Context->preference("AnonymousPatron"); + } } -# warn "bornum:",$borrowernumber; my $suggestions_loop = &SearchSuggestion( $suggestion); @@ -169,9 +189,9 @@ $template->param( itemtypeloop=> $supportlist, suggestions_loop => $suggestions_loop, patron_reason_loop => $patron_reason_loop, - showall => $allsuggestions, "op_$op" => 1, suggestionsview => 1, + suggested_by_anyone => $suggested_by_anyone, ); output_html_with_http_headers $input, $cookie, $template->output; --