diff --git a/static/js/app.js b/static/js/app.js
index 877b347..2dbccde 100644
--- a/static/js/app.js
+++ b/static/js/app.js
@@ -109,7 +109,7 @@ document.addEventListener('DOMContentLoaded', () => {
checkAuth();
function logUiEvent(action, details = {}) {
- fetch(appUrl('/api/settings/log-ui-event'), {
+ fetch(appUrl(`/api/settings/log-ui-event`), {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ action, details })
@@ -120,7 +120,7 @@ document.addEventListener('DOMContentLoaded', () => {
if (!dbSizeBadge) return;
dbSizeBadge.textContent = '용량 확인 중';
- const targetUrl = appUrl('/api/settings/database-size');
+ const targetUrl = appUrl(`/api/settings/database-size`);
try {
const response = await fetch(targetUrl);
if (!response.ok) {
@@ -198,7 +198,7 @@ document.addEventListener('DOMContentLoaded', () => {
// 여기서는 is_admin 확인 + 세션 만료 시 다시 dbx-main 으로 보내는 역할만 한다.
async function checkAuth() {
try {
- const res = await fetch(appUrl('/api/users/me'));
+ const res = await fetch(appUrl(`/api/users/me`));
if (res.ok) {
currentUser = await res.json();
if (btnDataManagement) {
@@ -207,7 +207,7 @@ document.addEventListener('DOMContentLoaded', () => {
} else if (res.status === 401) {
// 세션 만료 — dbx-main 로그인으로 위임 (next 로 현재 위치 보존)
const next = encodeURIComponent((APP_BASE_PATH || '') + '/');
- window.location.href = appUrl('/login') + '?next=' + next;
+ window.location.href = appUrl(`/login`) + '?next=' + next;
}
} catch (error) {
console.error('Auth check error', error);
@@ -313,7 +313,7 @@ document.addEventListener('DOMContentLoaded', () => {
};
try {
- const res = await fetch(appUrl('/api/orders/upload'), {
+ const res = await fetch(appUrl(`/api/orders/upload`), {
method: 'POST',
body: formData
});
@@ -970,7 +970,7 @@ document.addEventListener('DOMContentLoaded', () => {
}, 500);
try {
- const res = await fetch(appUrl('/api/settings/optimize'), {
+ const res = await fetch(appUrl(`/api/settings/optimize`), {
method: 'POST'
});
const data = await res.json();
@@ -1049,7 +1049,7 @@ document.addEventListener('DOMContentLoaded', () => {
btnBackupDb.innerHTML = ' 백업 생성 중...';
try {
- const res = await fetch(appUrl('/api/settings/backup-db'));
+ const res = await fetch(appUrl(`/api/settings/backup-db`));
if (res.ok) {
await downloadFileFromResponse(res, 'OMS_DB_backup.db');
showToast('DB 백업 다운로드가 완료되었습니다.', 'success');
@@ -1074,7 +1074,7 @@ document.addEventListener('DOMContentLoaded', () => {
btnDownloadEventLog.innerHTML = ' 로그 생성 중...';
try {
- const res = await fetch(appUrl('/api/settings/download-log'));
+ const res = await fetch(appUrl(`/api/settings/download-log`));
if (res.ok) {
await downloadFileFromResponse(res, 'OMS_event_log.csv');
showToast('이벤트 로그 다운로드가 완료되었습니다.', 'success');
@@ -1174,7 +1174,7 @@ document.addEventListener('DOMContentLoaded', () => {
}
try {
- const res = await fetch(appUrl('/api/settings/restore-db'), {
+ const res = await fetch(appUrl(`/api/settings/restore-db`), {
method: 'POST',
body: formData
});
@@ -1297,7 +1297,7 @@ document.addEventListener('DOMContentLoaded', () => {
if (deleteEventSource) deleteEventSource.close();
};
- const res = await fetch(appUrl('/api/settings/delete-orders-by-date-range'), {
+ const res = await fetch(appUrl(`/api/settings/delete-orders-by-date-range`), {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
@@ -1355,7 +1355,7 @@ document.addEventListener('DOMContentLoaded', () => {
btnDeleteAllOrders.innerHTML = ' 전체 삭제 중...';
try {
- const res = await fetch(appUrl('/api/settings/delete-all-orders'), {
+ const res = await fetch(appUrl(`/api/settings/delete-all-orders`), {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ password: deletePassword })