From a0dae8bf92f8a1815b497a4c44a07e22b67f86f7 Mon Sep 17 00:00:00 2001
From: Fridolyn SOMERS <fridolyn.somers@biblibre.com>
Date: Wed, 26 Jun 2013 17:52:40 +0200
Subject: [PATCH] Bug 9113 - batch modification removes +

If you're using the batch modification tool and entering a call number like "E+ 123 ABC", the tool removes the + and puts a space in it's place "E  123 ABC"

This is because form is posted via Ajax by background-job-progressbar.js.
Values are URI-encoded using escape() javascript but this method does not escape some caracters : * @ - _ + . /
And a + is considered as a space in a URI.

This patch replaces escape() by encodeURIComponent() which encodes every character.

Test plan :
Perform an items batch modification by setting '* @ - _ + . /' in a field (notes for example) and see that all caracters are well saved.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
---
 koha-tmpl/intranet-tmpl/prog/en/js/background-job-progressbar.js |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/background-job-progressbar.js b/koha-tmpl/intranet-tmpl/prog/en/js/background-job-progressbar.js
index 2804182..f8640c9 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/js/background-job-progressbar.js
+++ b/koha-tmpl/intranet-tmpl/prog/en/js/background-job-progressbar.js
@@ -45,12 +45,12 @@ function submitBackgroundJob(f) {
         $(':input', f).each(function() {
             if (this.type == 'radio' || this.type == 'checkbox') {
                 if (this.checked) {
-                    inputs.push(this.name + '=' + escape(this.value));
+                    inputs.push(this.name + '=' + encodeURIComponent(this.value));
                 }
             } else if (this.type == 'button') {
                 ; // do nothing
             } else {
-                inputs.push(this.name + '=' + escape(this.value));
+                inputs.push(this.name + '=' + encodeURIComponent(this.value));
             }
 
         });
-- 
1.7.10.4