| Lines 33-40
          use Koha::Reviews;
      
      
        Link Here | 
        
          | 33 |  | 33 |  | 
        
          | 34 | my $query        = new CGI; | 34 | my $query        = new CGI; | 
        
          | 35 | my $biblionumber = $query->param('biblionumber'); | 35 | my $biblionumber = $query->param('biblionumber'); | 
          
            
              | 36 | my $review       = $query->param('review'); | 36 | my $review       = $query->param('review');   # if defined submit | 
            
              | 37 | my $reviewid     = $query->param('reviewid'); | 37 | my $reviewid     = $query->param('reviewid'); # if defined edit | 
        
          | 38 | my ( $template, $borrowernumber, $cookie ) = get_template_and_user( | 38 | my ( $template, $borrowernumber, $cookie ) = get_template_and_user( | 
        
          | 39 |     { | 39 |     { | 
        
          | 40 |         template_name   => "opac-review.tt", | 40 |         template_name   => "opac-review.tt", | 
  
    | Lines 46-52
          my ( $template, $borrowernumber, $cookie ) = get_template_and_user(
      
      
        Link Here | 
        
          | 46 |  | 46 |  | 
        
          | 47 | # FIXME: need to allow user to delete their own comment(s) | 47 | # FIXME: need to allow user to delete their own comment(s) | 
        
          | 48 |  | 48 |  | 
          
            
              | 49 | my ( $clean, @errors, $savedreview ); | 49 | my ( $clean, @errors, $savedreview, $affectedreview ); | 
            
              |  |  | 50 |  | 
            
              | 51 | my $submitting = ( defined $review && $review ne q{} ) ? 1 : 0; | 
            
              | 52 | my $editing    = ( defined $reviewid ) ? 1 : 0; | 
            
              | 53 |  | 
        
          | 50 | my $biblio = Koha::Biblios->find( $biblionumber ); | 54 | my $biblio = Koha::Biblios->find( $biblionumber ); | 
        
          | 51 |  | 55 |  | 
        
          | 52 | if( !$biblio ) { | 56 | if( !$biblio ) { | 
  
    | Lines 60-99
          if( !$biblio ) {
      
      
        Link Here | 
        
          | 60 |     $review = $savedreview? $savedreview->review: $review; | 64 |     $review = $savedreview? $savedreview->review: $review; | 
        
          | 61 | } | 65 | } | 
        
          | 62 |  | 66 |  | 
          
            
              | 63 | if( !@errors && defined $review ) { | 67 | if( !@errors && $submitting ) { | 
            
              | 64 |     if ($review !~ /\S/) { | 68 | 	if ($review !~ /\S/) { | 
            
              | 65 |         push @errors, {empty=>1}; | 69 | 		push @errors, {empty=>1}; | 
            
              | 66 |     } else { | 70 | 	} else { | 
            
              | 67 |         $clean = C4::Scrubber->new('comment')->scrub($review); | 71 | 		$clean = C4::Scrubber->new('comment')->scrub($review); | 
            
              | 68 |         if ($clean !~ /\S/) { | 72 | 		if ($clean !~ /\S/) { | 
            
              | 69 |             push @errors, {scrubbed_all=>1}; | 73 | 			push @errors, {scrubbed_all=>1}; | 
            
              | 70 |         } else { | 74 | 		} else { | 
            
              | 71 |             if ($clean ne $review) { | 75 | 			if ($clean ne $review) { | 
            
              | 72 |                 push @errors, {scrubbed=>$clean}; | 76 | 				push @errors, {scrubbed=>$clean}; | 
            
              | 73 |             } | 77 | 			} | 
            
              | 74 |             my $js_ok_review = $clean; | 78 | 			my $js_ok_review = $clean; | 
            
              | 75 |             $js_ok_review =~ s/"/"/g;    # probably redundant w/ TMPL ESCAPE=JS | 79 | 			$js_ok_review =~ s/"/"/g;    # probably redundant w/ TMPL ESCAPE=JS | 
            
              | 76 |             $template->param(clean_review=>$js_ok_review); | 80 | 			$template->param(clean_review=>$js_ok_review); | 
            
              | 77 |             if ($savedreview) { | 81 |             if ($editing) { | 
            
              | 78 |                 $savedreview->set( | 82 |                 my $updatedreview = $savedreview->set( | 
        
          | 79 |                     { | 83 |                     { | 
        
          | 80 |                         review        => $clean, | 84 |                         review        => $clean, | 
        
          | 81 |                         approved      => 0, | 85 |                         approved      => 0, | 
        
          | 82 |                         datereviewed  => dt_from_string | 86 |                         datereviewed  => dt_from_string | 
        
          | 83 |                     } | 87 |                     } | 
        
          | 84 |                 )->store; | 88 |                 )->store; | 
            
              |  |  | 89 |                 $affectedreview = $updatedreview; | 
        
          | 85 |             } else { | 90 |             } else { | 
          
            
              | 86 |                 $reviewid = Koha::Review->new( | 91 |                 my $newreview = Koha::Review->new( | 
        
          | 87 |                     {   biblionumber   => $biblionumber, | 92 |                     {   biblionumber   => $biblionumber, | 
        
          | 88 |                         borrowernumber => $borrowernumber, | 93 |                         borrowernumber => $borrowernumber, | 
        
          | 89 |                         review         => $clean, | 94 |                         review         => $clean, | 
        
          | 90 |                         datereviewed   => dt_from_string | 95 |                         datereviewed   => dt_from_string | 
        
          | 91 |                     } | 96 |                     } | 
          
            
              | 92 |                 )->store->reviewid; | 97 |                 )->store; | 
            
              |  |  | 98 |                 $reviewid = $newreview ? $newreview->reviewid : 0; | 
            
              | 99 |                 $affectedreview = $newreview; | 
        
          | 93 |             } | 100 |             } | 
          
            
              | 94 |             unless (@errors){ $template->param(WINDOW_CLOSE=>1); } | 101 |             if ($reviewid) { | 
            
              | 95 |         } | 102 |                 $affectedreview->SendReviewAlert({ | 
            
              | 96 |     } | 103 |                     'borrowernumber' => $borrowernumber, | 
            
              |  |  | 104 |                     'reviewid'       => $reviewid, | 
            
              | 105 |                     'biblionumber'   => $biblionumber | 
            
              | 106 |                 }); | 
            
              | 107 |             } | 
            
              | 108 |  | 
            
              | 109 | 			unless (@errors){ $template->param(WINDOW_CLOSE=>1); } | 
            
              | 110 | 		} | 
            
              | 111 | 	} | 
        
          | 97 | } | 112 | } | 
        
          | 98 | (@errors   ) and $template->param(   ERRORS=>\@errors); | 113 | (@errors   ) and $template->param(   ERRORS=>\@errors); | 
        
          | 99 | ($cgi_debug) and $template->param(cgi_debug=>1       ); | 114 | ($cgi_debug) and $template->param(cgi_debug=>1       ); |