announce: URL encode/decode template labels

Fixes #340, allowing slashes (/) in label names which would break the
URL otherwise.
This commit is contained in:
Harvey Tindall
2024-07-21 17:45:36 +01:00
parent 7c989fda08
commit 6b576f2ffe
2 changed files with 11 additions and 4 deletions
+3 -2
View File
@@ -1275,8 +1275,9 @@ export class accountsList {
el.innerHTML = `
<span class="button ~neutral sm full-width accounts-announce-template-button">${name}</span><span class="button ~critical fr ml-4 accounts-announce-template-delete">&times;</span>
`;
let urlSafeName = encodeURIComponent(encodeURIComponent(name));
(el.querySelector("span.accounts-announce-template-button") as HTMLSpanElement).onclick = () => {
_get("/users/announce/" + name, null, (req: XMLHttpRequest) => {
_get("/users/announce/" + urlSafeName, null, (req: XMLHttpRequest) => {
if (req.readyState == 4) {
let template: announcementTemplate;
if (req.status != 200) {
@@ -1289,7 +1290,7 @@ export class accountsList {
});
};
(el.querySelector("span.accounts-announce-template-delete") as HTMLSpanElement).onclick = () => {
_delete("/users/announce/" + name, null, (req: XMLHttpRequest) => {
_delete("/users/announce/" + urlSafeName, null, (req: XMLHttpRequest) => {
if (req.readyState == 4) {
if (req.status != 200) {
window.notifications.customError("deleteTemplateError", window.lang.notif("errorFailureCheckLogs"));