bibimbap/src/main/webapp/WEB-INF/views/theme-init.jsp

33 lines
1.0 KiB
Plaintext

<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="com.pandoli365.bibimbap.security.CsrfTokens" %>
<%@ page import="org.springframework.web.util.HtmlUtils" %>
<%
String themeCsrfToken = CsrfTokens.getOrCreate(request.getSession());
%>
<meta name="csrf-token" content="<%= HtmlUtils.htmlEscape(themeCsrfToken) %>">
<script>
(function () {
try {
var k = 'bibimbap-theme';
var t = localStorage.getItem(k);
if (t !== 'light' && t !== 'dark') {
t = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
}
document.documentElement.setAttribute('data-theme', t);
} catch (e) {}
window.BibimbapCsrf = {
token: function () {
var meta = document.querySelector('meta[name="csrf-token"]');
return meta ? meta.getAttribute('content') || '' : '';
},
headers: function (extra) {
var headers = extra || {};
var token = this.token();
if (token) headers['X-CSRF-Token'] = token;
return headers;
}
};
})();
</script>