Bug 15684: Fix encoding issues with quote upload
authorMarc Véron <veron@veron.ch>
Thu, 28 Jan 2016 21:05:58 +0000 (22:05 +0100)
committerBrendan Gallagher <brendan@bywatersolutions.com>
Thu, 4 Feb 2016 00:14:43 +0000 (00:14 +0000)
To verify:
- Download attachment 'Goethe with umlaut' from Bug 15684
- Go to Tools > Quote Editor
- Click "Import quotes" and select the file
- The quotes display in a table. Click 'Sav quotes'
- Result: Nothing happens

To test:
- Apply patch
- Repeat steps above
- Verify that you get a message '2 quotes saved' and that the quotes
  are added in to the quotes table
- Test with attachment 'sample quotes' as well

Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Brendan Gallagher brendan@bywatersolutions.com
koha-tmpl/intranet-tmpl/prog/en/modules/tools/quotes-upload.tt
tools/quotes/quotes-upload_ajax.pl

index 21fa005..827cbd4 100644 (file)
             contentType : "application/x-www-form-urlencoded", // we must claim this mimetype or CGI will not decode the URL encoding
             dataType    : "json",
             data        : {
-                            "quote"     : JSON.stringify(oTable.fnGetData()),
+                            "quote"     : encodeURI ( JSON.stringify(oTable.fnGetData()) ),
                             "action"    : "add",
                           },
             success     : function(){
index 179c645..727280c 100755 (executable)
@@ -22,6 +22,7 @@ use warnings;
 
 use CGI qw ( -utf8 );
 use JSON;
+use URI::Escape;
 use autouse 'Data::Dumper' => qw(Dumper);
 
 use C4::Auth;
@@ -40,8 +41,9 @@ unless ($status eq "ok") {
 }
 
 my $success = 'true';
+my $quotes_tmp = uri_unescape( $cgi->param('quote' ) );
+my $quotes = decode_json( $quotes_tmp );
 
-my $quotes = decode_json($cgi->param('quote'));
 my $action = $cgi->param('action');
 
 my $sth = $dbh->prepare('INSERT INTO quotes (source, text) VALUES (?, ?);');