diff options
| author | David Siegfried <david.siegfried@uni-vechta.de> | 2023-12-20 10:33:51 +0000 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2023-12-20 10:33:51 +0000 |
| commit | f3b5e1d4adbe7f6299be23f65d8b8ecd66e7d87f (patch) | |
| tree | d7dc0500f52bd14204c64ff0b1e78d2d0f806b22 /resources/assets/javascripts/studip-jquery.multi-select.tweaks.js | |
| parent | 9c4378adefaa953554bf5e919e33761e4a8df05c (diff) | |
make multipersonsearch safe, re #3572
Closes #3585 and #3583
Merge request studip/studip!2468
Diffstat (limited to 'resources/assets/javascripts/studip-jquery.multi-select.tweaks.js')
| -rw-r--r-- | resources/assets/javascripts/studip-jquery.multi-select.tweaks.js | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/resources/assets/javascripts/studip-jquery.multi-select.tweaks.js b/resources/assets/javascripts/studip-jquery.multi-select.tweaks.js index dd6fc2d..f68d248 100644 --- a/resources/assets/javascripts/studip-jquery.multi-select.tweaks.js +++ b/resources/assets/javascripts/studip-jquery.multi-select.tweaks.js @@ -29,7 +29,7 @@ import { $gettext } from './lib/gettext.js'; (function ($, MultiSelect) { 'use strict'; - var originals = { + const originals = { generateLisFromOption: MultiSelect.prototype.generateLisFromOption, addOption: MultiSelect.prototype.addOption, escapeHTML: MultiSelect.prototype.escapeHTML, @@ -37,16 +37,15 @@ import { $gettext } from './lib/gettext.js'; }; MultiSelect.prototype.generateLisFromOption = function (option, index, $container) { - var $option = $(option), - chunks = $option.text().split('--'); - + let $option = $(option), + chunks = $option.html().split(/\s--\s/); if (index === -1) { $option.prop('disabled', true); index = undefined; } if (chunks.length > 1) { - $option.attr('style', 'background-image: url(' + chunks.shift() + ')'); + $option.attr('style', 'background-image: url(' + encodeURI(chunks.shift().trim()) + ')'); $option.text(chunks.join("\n")); @@ -68,7 +67,7 @@ import { $gettext } from './lib/gettext.js'; }; MultiSelect.prototype.escapeHTML = function (text) { - var result = originals.escapeHTML.call(this, text); + const result = originals.escapeHTML.call(this, text); return result.replace("\n", '<br>'); }; |
