Files
gerrit/polygerrit-ui/app/behaviors/gr-url-encoding-behavior.html
Kasper Nilsson 50e9023658 ES6ify /gr-url-encoding-behavior/*
Bug: Issue 6179
Change-Id: I52761e224602ccd53da781de7633f0447ff8b2b3
2017-05-14 18:11:29 -07:00

43 lines
1.4 KiB
HTML

<!--
Copyright (C) 2016 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<script>
(function(window) {
'use strict';
/** @polymerBehavior Gerrit.URLEncodingBehavior */
const URLEncodingBehavior = {
/**
* Pretty-encodes a URL. Double-encodes the string, and then replaces
* benevolent characters for legibility.
*/
encodeURL(url, replaceSlashes) {
// @see Issue 4255 regarding double-encoding.
let output = encodeURIComponent(encodeURIComponent(url));
// @see Issue 4577 regarding more readable URLs.
output = output.replace(/%253A/g, ':');
output = output.replace(/%2520/g, '+');
if (replaceSlashes) {
output = output.replace(/%252F/g, '/');
}
return output;
},
};
window.Gerrit = window.Gerrit || {};
window.Gerrit.URLEncodingBehavior = URLEncodingBehavior;
})(window);
</script>