diff --git a/template/functions.go b/template/functions.go index d4ca80edb4056229c2aa421a0d8d5be707732c36..b86b059e2be99ad72b2b959ca6bb413825fba17b 100644 --- a/template/functions.go +++ b/template/functions.go @@ -75,7 +75,7 @@ func (f *funcMap) Map() template.FuncMap { "contains": func(str, substr string) bool { return strings.Contains(str, substr) }, - "replace": func(str, old string, new string) string { + "replace": func(str, old, new string) string { return strings.Replace(str, old, new, 1) }, "isodate": func(ts time.Time) string { @@ -86,7 +86,7 @@ func (f *funcMap) Map() template.FuncMap { }, "icon": func(iconName string) template.HTML { return template.HTML(fmt.Sprintf( - `<svg class="icon" aria-hidden="true"><use xlink:href="%s#icon-%s"></svg>`, + `<svg class="icon" aria-hidden="true"><use xlink:href="%s#icon-%s"/></svg>`, route.Path(f.router, "appIcon", "filename", "sprite.svg"), iconName, )) diff --git a/template/templates/common/layout.html b/template/templates/common/layout.html index efdedbb55bf4d2c7919869d8fedafa1318ff5560..eb171d6d1ca08fef8074397506c05f6de2e3e3ee 100644 --- a/template/templates/common/layout.html +++ b/template/templates/common/layout.html @@ -29,20 +29,17 @@ <link rel="apple-touch-icon" sizes="167x167" href="{{ route "appIcon" "filename" "icon-167.png" }}"> <link rel="apple-touch-icon" sizes="180x180" href="{{ route "appIcon" "filename" "icon-180.png" }}"> - {{ if .csrf }} - <meta name="X-CSRF-Token" value="{{ .csrf }}"> - {{ end }} - <meta name="theme-color" content="{{ theme_color .theme }}"> <link rel="stylesheet" type="text/css" href="{{ route "stylesheet" "name" .theme }}?{{ .theme_checksum }}"> {{ if and .user .user.Stylesheet }} <link rel="stylesheet" type="text/css" href="{{ route "stylesheet" "name" "custom_css" }}?{{ rand }}"> {{ end }} - <script type="text/javascript" src="{{ route "javascript" "name" "app" }}?{{ .app_js_checksum }}" defer></script> - <script type="text/javascript" src="{{ route "javascript" "name" "service-worker" }}?{{ .sw_js_checksum }}" defer id="service-worker-script"></script> + <script src="{{ route "javascript" "name" "app" }}?{{ .app_js_checksum }}" defer></script> + <script src="{{ route "javascript" "name" "service-worker" }}?{{ .sw_js_checksum }}" defer id="service-worker-script"></script> </head> <body + {{ if .csrf }}data-csrf-token="{{ .csrf }}"{{ end }} data-entries-status-url="{{ route "updateEntriesStatus" }}" data-refresh-all-feeds-url="{{ route "refreshAllFeeds" }}" {{ if .user }}{{ if not .user.KeyboardShortcuts }}data-disable-keyboard-shortcuts="true"{{ end }}{{ end }}> diff --git a/ui/static/js/request_builder.js b/ui/static/js/request_builder.js index 4a41f6477b831779394013ef32707ba17282aace..140d6bca229b3ad19f2faede454368bb843a2683 100644 --- a/ui/static/js/request_builder.js +++ b/ui/static/js/request_builder.js @@ -30,9 +30,9 @@ class RequestBuilder { } getCsrfToken() { - let element = document.querySelector("meta[name=X-CSRF-Token]"); + let element = document.querySelector("body[data-csrf-token"); if (element !== null) { - return element.getAttribute("value"); + return element.dataset.csrfToken; } return "";