nassh: prefs: fix export with URI-special characters

When prefs contain URI special characters like # or %, inlining them
in the URI breaks the export as Chrome doesn't fully parse it.

Reported-by: TJ Molnar <tj.r3xx@gmail.com>
Change-Id: I2f3027b5ce120157ceebababe8a13c9de23f41ac
Reviewed-on: https://chromium-review.googlesource.com/c/apps/libapps/+/1506180
Reviewed-by: Vitaliy Shipitsyn <vsh@google.com>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/nassh/js/nassh_preferences_editor.js b/nassh/js/nassh_preferences_editor.js
index e33f5ea..c150c59 100644
--- a/nassh/js/nassh_preferences_editor.js
+++ b/nassh/js/nassh_preferences_editor.js
@@ -198,7 +198,7 @@
 nassh.PreferencesEditor.prototype.updateBackupLink = function(opt_onComplete) {
   nassh.exportPreferences(function(value) {
     var a = document.querySelector('#backup');
-    a.href = 'data:text/json,' + JSON.stringify(value);
+    a.href = `data:text/json,${encodeURIComponent(JSON.stringify(value))}`;
     if (opt_onComplete)
       opt_onComplete();
   });