GitHub Actions
commited on
Commit
ยท
68e25b1
1
Parent(s):
35c5064
Auto-deploy from GitHub Actions - 2025-12-12 07:33:00
Browse files- templates/index.html +89 -83
templates/index.html
CHANGED
|
@@ -1553,9 +1553,9 @@
|
|
| 1553 |
<button class="modal-close" onclick="closeWebnovelsModal()">×</button>
|
| 1554 |
</div>
|
| 1555 |
<div class="modal-body" style="display: flex; flex-direction: column; height: calc(90vh - 120px);">
|
| 1556 |
-
<div style="margin-bottom: 16px;">
|
| 1557 |
<select id="webnovelModelFilter" onchange="loadWebnovels()" style="width: 100%; padding: 8px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-primary); color: var(--text-primary);">
|
| 1558 |
-
<option value=""
|
| 1559 |
</select>
|
| 1560 |
</div>
|
| 1561 |
<div id="webnovelsList" style="flex: 1; overflow-y: auto; border: 1px solid var(--border); border-radius: 8px; padding: 12px;">
|
|
@@ -1680,10 +1680,12 @@
|
|
| 1680 |
async function loadNovels() {
|
| 1681 |
try {
|
| 1682 |
// ๋ชจ๋ธ์ด ์ ํ๋์ด ์์ผ๋ฉด ํด๋น ๋ชจ๋ธ์ ํ์ผ๋ง, ์์ผ๋ฉด ๋ชจ๋ ํ์ผ
|
| 1683 |
-
//
|
| 1684 |
-
|
| 1685 |
-
|
| 1686 |
-
|
|
|
|
|
|
|
| 1687 |
|
| 1688 |
console.log('[์น์์ค ๋ชฉ๋ก] API ์์ฒญ:', url, '์ ํ๋ ๋ชจ๋ธ:', selectedModel || '์์ (์ ์ฒด)');
|
| 1689 |
|
|
@@ -1709,22 +1711,8 @@
|
|
| 1709 |
let files = data.files || [];
|
| 1710 |
console.log('[์น์์ค ๋ชฉ๋ก] ํ์ผ ๊ฐ์:', files.length);
|
| 1711 |
|
| 1712 |
-
//
|
| 1713 |
-
if (selectedModel && files.length === 0) {
|
| 1714 |
-
console.log('[์น์์ค ๋ชฉ๋ก] ์ ํํ ๋ชจ๋ธ์ ํ์ผ์ด ์์ด ์ ์ฒด ํ์ผ ์กฐํ ์ค...');
|
| 1715 |
-
try {
|
| 1716 |
-
const allFilesResponse = await fetch('/api/files?public_only=true', {
|
| 1717 |
-
credentials: 'include'
|
| 1718 |
-
});
|
| 1719 |
-
if (allFilesResponse.ok) {
|
| 1720 |
-
const allFilesData = await allFilesResponse.json();
|
| 1721 |
-
files = allFilesData.files || [];
|
| 1722 |
-
console.log('[์น์์ค ๋ชฉ๋ก] ์ ์ฒด ํ์ผ ๊ฐ์:', files.length);
|
| 1723 |
-
}
|
| 1724 |
-
} catch (e) {
|
| 1725 |
-
console.error('[์น์์ค ๋ชฉ๋ก] ์ ์ฒด ํ์ผ ์กฐํ ์ค๋ฅ:', e);
|
| 1726 |
-
}
|
| 1727 |
-
}
|
| 1728 |
|
| 1729 |
if (files.length > 0) {
|
| 1730 |
files.forEach(file => {
|
|
@@ -1755,8 +1743,8 @@
|
|
| 1755 |
});
|
| 1756 |
updateSelectedNovelsInfo();
|
| 1757 |
} else {
|
| 1758 |
-
//
|
| 1759 |
-
novelList.innerHTML = '<div class="novel-item-empty"
|
| 1760 |
selectedNovelsInfo.textContent = '';
|
| 1761 |
}
|
| 1762 |
} catch (error) {
|
|
@@ -1892,24 +1880,19 @@
|
|
| 1892 |
const response = await fetch('/api/ollama/models');
|
| 1893 |
const data = await response.json();
|
| 1894 |
|
| 1895 |
-
modelSelect.innerHTML = '
|
| 1896 |
|
| 1897 |
-
//
|
| 1898 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1899 |
if (!selectedModel) {
|
| 1900 |
-
|
| 1901 |
-
|
| 1902 |
-
if (defaultResponse.ok) {
|
| 1903 |
-
const defaultData = await defaultResponse.json();
|
| 1904 |
-
defaultAnalysisModel = defaultData.default_analysis_model || null;
|
| 1905 |
-
if (defaultAnalysisModel) {
|
| 1906 |
-
selectedModel = defaultAnalysisModel;
|
| 1907 |
-
localStorage.setItem('selectedModel', selectedModel);
|
| 1908 |
-
}
|
| 1909 |
-
}
|
| 1910 |
-
} catch (e) {
|
| 1911 |
-
console.log('๊ธฐ๋ณธ ๋ชจ๋ธ ์ค์ ๋ก๋ ์คํจ:', e);
|
| 1912 |
-
}
|
| 1913 |
}
|
| 1914 |
|
| 1915 |
if (data.models && data.models.length > 0) {
|
|
@@ -1925,15 +1908,18 @@
|
|
| 1925 |
}
|
| 1926 |
});
|
| 1927 |
|
| 1928 |
-
//
|
| 1929 |
-
|
| 1930 |
-
if (ollamaModels.length > 0) {
|
| 1931 |
const optgroup = document.createElement('optgroup');
|
| 1932 |
-
optgroup.label = '
|
| 1933 |
-
|
| 1934 |
const option = document.createElement('option');
|
| 1935 |
option.value = model.name;
|
| 1936 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1937 |
if (model.name === selectedModel) {
|
| 1938 |
option.selected = true;
|
| 1939 |
}
|
|
@@ -1942,18 +1928,14 @@
|
|
| 1942 |
modelSelect.appendChild(optgroup);
|
| 1943 |
}
|
| 1944 |
|
| 1945 |
-
//
|
| 1946 |
-
if (
|
| 1947 |
const optgroup = document.createElement('optgroup');
|
| 1948 |
-
optgroup.label = '
|
| 1949 |
-
|
| 1950 |
const option = document.createElement('option');
|
| 1951 |
option.value = model.name;
|
| 1952 |
-
|
| 1953 |
-
const displayName = model.name.startsWith('gemini:')
|
| 1954 |
-
? model.name.substring(7)
|
| 1955 |
-
: model.name;
|
| 1956 |
-
option.textContent = displayName;
|
| 1957 |
if (model.name === selectedModel) {
|
| 1958 |
option.selected = true;
|
| 1959 |
}
|
|
@@ -1962,18 +1944,29 @@
|
|
| 1962 |
modelSelect.appendChild(optgroup);
|
| 1963 |
}
|
| 1964 |
|
| 1965 |
-
//
|
| 1966 |
-
if (
|
| 1967 |
-
|
| 1968 |
}
|
| 1969 |
|
| 1970 |
updateModelStatus('connected');
|
| 1971 |
} else {
|
| 1972 |
-
|
|
|
|
| 1973 |
}
|
| 1974 |
} catch (error) {
|
| 1975 |
updateModelStatus('error', '๋ชจ๋ธ ๋ชฉ๋ก ๋ก๋ ์คํจ');
|
| 1976 |
console.error('๋ชจ๋ธ ๋ก๋ ์ค๋ฅ:', error);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1977 |
} finally {
|
| 1978 |
refreshModelsBtn.disabled = false;
|
| 1979 |
refreshModelsBtn.innerHTML = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M23 4v6h-6M1 20v-6h6M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/></svg> ๋ชจ๋ธ ์๋ก๊ณ ์นจ';
|
|
@@ -2759,44 +2752,57 @@
|
|
| 2759 |
async function showWebnovelsModal() {
|
| 2760 |
const modal = document.getElementById('webnovelsModal');
|
| 2761 |
modal.style.display = 'block';
|
| 2762 |
-
|
| 2763 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2764 |
}
|
| 2765 |
|
| 2766 |
function closeWebnovelsModal() {
|
| 2767 |
document.getElementById('webnovelsModal').style.display = 'none';
|
| 2768 |
}
|
| 2769 |
|
|
|
|
| 2770 |
async function loadWebnovelModelFilter() {
|
| 2771 |
-
|
| 2772 |
-
const response = await fetch('/api/ollama/models');
|
| 2773 |
-
if (!response.ok) throw new Error('๋ชจ๋ธ ๋ชฉ๋ก์ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.');
|
| 2774 |
-
const data = await response.json();
|
| 2775 |
-
const models = data.models || [];
|
| 2776 |
-
|
| 2777 |
-
const filter = document.getElementById('webnovelModelFilter');
|
| 2778 |
-
filter.innerHTML = '<option value="">๋ชจ๋ ๋ชจ๋ธ</option>';
|
| 2779 |
-
models.forEach(model => {
|
| 2780 |
-
const option = document.createElement('option');
|
| 2781 |
-
option.value = model.name;
|
| 2782 |
-
option.textContent = model.name;
|
| 2783 |
-
filter.appendChild(option);
|
| 2784 |
-
});
|
| 2785 |
-
} catch (error) {
|
| 2786 |
-
console.error('๋ชจ๋ธ ํํฐ ๋ก๋ ์ค๋ฅ:', error);
|
| 2787 |
-
}
|
| 2788 |
}
|
| 2789 |
|
| 2790 |
-
async function loadWebnovels() {
|
| 2791 |
const listContainer = document.getElementById('webnovelsList');
|
| 2792 |
-
|
| 2793 |
-
|
|
|
|
| 2794 |
|
| 2795 |
listContainer.innerHTML = '<div style="text-align: center; color: var(--text-secondary); padding: 24px;">์น์์ค ๋ชฉ๋ก์ ๋ถ๋ฌ์ค๋ ์ค...</div>';
|
| 2796 |
|
| 2797 |
try {
|
| 2798 |
-
//
|
| 2799 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2800 |
const response = await fetch(url);
|
| 2801 |
if (!response.ok) throw new Error('์น์์ค ๋ชฉ๋ก์ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.');
|
| 2802 |
|
|
|
|
| 1553 |
<button class="modal-close" onclick="closeWebnovelsModal()">×</button>
|
| 1554 |
</div>
|
| 1555 |
<div class="modal-body" style="display: flex; flex-direction: column; height: calc(90vh - 120px);">
|
| 1556 |
+
<div style="margin-bottom: 16px; display: none;">
|
| 1557 |
<select id="webnovelModelFilter" onchange="loadWebnovels()" style="width: 100%; padding: 8px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-primary); color: var(--text-primary);">
|
| 1558 |
+
<option value="">์ ์ฒด ๋ชจ๋ธ</option>
|
| 1559 |
</select>
|
| 1560 |
</div>
|
| 1561 |
<div id="webnovelsList" style="flex: 1; overflow-y: auto; border: 1px solid var(--border); border-radius: 8px; padding: 12px;">
|
|
|
|
| 1680 |
async function loadNovels() {
|
| 1681 |
try {
|
| 1682 |
// ๋ชจ๋ธ์ด ์ ํ๋์ด ์์ผ๋ฉด ํด๋น ๋ชจ๋ธ์ ํ์ผ๋ง, ์์ผ๋ฉด ๋ชจ๋ ํ์ผ
|
| 1683 |
+
// 'all'์ธ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ํ์ผ (public_only=true)
|
| 1684 |
+
let url = '/api/files?public_only=true';
|
| 1685 |
+
|
| 1686 |
+
if (selectedModel && selectedModel !== 'all') {
|
| 1687 |
+
url = `/api/files?model_name=${encodeURIComponent(selectedModel)}&public_only=true`;
|
| 1688 |
+
}
|
| 1689 |
|
| 1690 |
console.log('[์น์์ค ๋ชฉ๋ก] API ์์ฒญ:', url, '์ ํ๋ ๋ชจ๋ธ:', selectedModel || '์์ (์ ์ฒด)');
|
| 1691 |
|
|
|
|
| 1711 |
let files = data.files || [];
|
| 1712 |
console.log('[์น์์ค ๋ชฉ๋ก] ํ์ผ ๊ฐ์:', files.length);
|
| 1713 |
|
| 1714 |
+
// ํ์ผ์ด ์์ผ๋ฉด ์ ์ฒด ํ์ผ ์ฌ์กฐํ ๋ก์ง ์ ๊ฑฐ (์ฌ์ฉ์ ์์ฒญ์ ๋ฐ๋ผ)
|
| 1715 |
+
// if (selectedModel && files.length === 0) { ... } ์ ๊ฑฐ๋จ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1716 |
|
| 1717 |
if (files.length > 0) {
|
| 1718 |
files.forEach(file => {
|
|
|
|
| 1743 |
});
|
| 1744 |
updateSelectedNovelsInfo();
|
| 1745 |
} else {
|
| 1746 |
+
// ์ ํ๋ ๋ชจ๋ธ์ ํด๋นํ๋ ํ์ผ์ด ์๋ ๊ฒฝ์ฐ
|
| 1747 |
+
novelList.innerHTML = '<div class="novel-item-empty">ํด๋น ๋ชจ๋ธ๋ก ๋ถ์๋ ์น์์ค์ด ์์ต๋๋ค</div>';
|
| 1748 |
selectedNovelsInfo.textContent = '';
|
| 1749 |
}
|
| 1750 |
} catch (error) {
|
|
|
|
| 1880 |
const response = await fetch('/api/ollama/models');
|
| 1881 |
const data = await response.json();
|
| 1882 |
|
| 1883 |
+
modelSelect.innerHTML = '';
|
| 1884 |
|
| 1885 |
+
// ์ ์ฒด ๋ชจ๋ธ ์ต์
์ถ๊ฐ (๊ธฐ๋ณธ๊ฐ)
|
| 1886 |
+
const allOption = document.createElement('option');
|
| 1887 |
+
allOption.value = 'all';
|
| 1888 |
+
allOption.textContent = 'โจ ์ ์ฒด ๋ชจ๋ธ (๋ชจ๋ ๊ณต๊ฐ ์น์์ค)';
|
| 1889 |
+
modelSelect.appendChild(allOption);
|
| 1890 |
+
|
| 1891 |
+
// ๊ธฐ๋ณธ ๋ชจ๋ธ ์ค์ ๊ฐ์ ธ์ค๊ธฐ
|
| 1892 |
+
let defaultAnalysisModel = 'all'; // ๊ธฐ๋ณธ๊ฐ์ ์ ์ฒด ๋ชจ๋ธ
|
| 1893 |
if (!selectedModel) {
|
| 1894 |
+
selectedModel = defaultAnalysisModel;
|
| 1895 |
+
localStorage.setItem('selectedModel', selectedModel);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1896 |
}
|
| 1897 |
|
| 1898 |
if (data.models && data.models.length > 0) {
|
|
|
|
| 1908 |
}
|
| 1909 |
});
|
| 1910 |
|
| 1911 |
+
// Gemini ๋ชจ๋ธ ๊ทธ๋ฃน (์ฐ์ ํ์)
|
| 1912 |
+
if (geminiModels.length > 0) {
|
|
|
|
| 1913 |
const optgroup = document.createElement('optgroup');
|
| 1914 |
+
optgroup.label = 'โจ Gemini ๋ชจ๋ธ';
|
| 1915 |
+
geminiModels.forEach(model => {
|
| 1916 |
const option = document.createElement('option');
|
| 1917 |
option.value = model.name;
|
| 1918 |
+
// "gemini:" ์ ๋์ฌ ์ ๊ฑฐํ์ฌ ํ์
|
| 1919 |
+
const displayName = model.name.startsWith('gemini:')
|
| 1920 |
+
? model.name.substring(7)
|
| 1921 |
+
: model.name;
|
| 1922 |
+
option.textContent = displayName;
|
| 1923 |
if (model.name === selectedModel) {
|
| 1924 |
option.selected = true;
|
| 1925 |
}
|
|
|
|
| 1928 |
modelSelect.appendChild(optgroup);
|
| 1929 |
}
|
| 1930 |
|
| 1931 |
+
// Ollama ๋ชจ๋ธ ๊ทธ๋ฃน
|
| 1932 |
+
if (ollamaModels.length > 0) {
|
| 1933 |
const optgroup = document.createElement('optgroup');
|
| 1934 |
+
optgroup.label = '๐ค Ollama ๋ชจ๋ธ';
|
| 1935 |
+
ollamaModels.forEach(model => {
|
| 1936 |
const option = document.createElement('option');
|
| 1937 |
option.value = model.name;
|
| 1938 |
+
option.textContent = model.name;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1939 |
if (model.name === selectedModel) {
|
| 1940 |
option.selected = true;
|
| 1941 |
}
|
|
|
|
| 1944 |
modelSelect.appendChild(optgroup);
|
| 1945 |
}
|
| 1946 |
|
| 1947 |
+
// ์ด์ ์ ์ ํํ ๋ชจ๋ธ์ด 'all'์ธ ๊ฒฝ์ฐ ์ฒ๋ฆฌ
|
| 1948 |
+
if (selectedModel === 'all') {
|
| 1949 |
+
allOption.selected = true;
|
| 1950 |
}
|
| 1951 |
|
| 1952 |
updateModelStatus('connected');
|
| 1953 |
} else {
|
| 1954 |
+
// ๋ชจ๋ธ์ด ์์ด๋ ์ ์ฒด ๋ชจ๋ธ ์ต์
์ ์ ์ง
|
| 1955 |
+
updateModelStatus('connected');
|
| 1956 |
}
|
| 1957 |
} catch (error) {
|
| 1958 |
updateModelStatus('error', '๋ชจ๋ธ ๋ชฉ๋ก ๋ก๋ ์คํจ');
|
| 1959 |
console.error('๋ชจ๋ธ ๋ก๋ ์ค๋ฅ:', error);
|
| 1960 |
+
|
| 1961 |
+
// ์ค๋ฅ ๋ฐ์ ์์๋ ์ ์ฒด ๋ชจ๋ธ ์ต์
์ ํ์
|
| 1962 |
+
modelSelect.innerHTML = '';
|
| 1963 |
+
const allOption = document.createElement('option');
|
| 1964 |
+
allOption.value = 'all';
|
| 1965 |
+
allOption.textContent = 'โจ ์ ์ฒด ๋ชจ๋ธ (๋ชจ๋ ๊ณต๊ฐ ์น์์ค)';
|
| 1966 |
+
allOption.selected = true;
|
| 1967 |
+
modelSelect.appendChild(allOption);
|
| 1968 |
+
selectedModel = 'all';
|
| 1969 |
+
|
| 1970 |
} finally {
|
| 1971 |
refreshModelsBtn.disabled = false;
|
| 1972 |
refreshModelsBtn.innerHTML = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M23 4v6h-6M1 20v-6h6M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/></svg> ๋ชจ๋ธ ์๋ก๊ณ ์นจ';
|
|
|
|
| 2752 |
async function showWebnovelsModal() {
|
| 2753 |
const modal = document.getElementById('webnovelsModal');
|
| 2754 |
modal.style.display = 'block';
|
| 2755 |
+
|
| 2756 |
+
// ๋ฉ์ธ ํ๋ฉด์์ ์ ํ๋ ๋ชจ๋ธ ๊ฐ ๊ฐ์ ธ์ค๊ธฐ
|
| 2757 |
+
// 'all'์ด๋ฉด ์ ์ฒด ๋ชจ๋ธ, ์๋๋ฉด ํด๋น ๋ชจ๋ธ๋ก ํํฐ๋ง
|
| 2758 |
+
// ๋ด๋ถ ํํฐ๋ ์ ๊ฑฐํ๊ณ ๋ฉ์ธ ํ๋ฉด ์ ํ์ ๋ฐ๋ฆ
|
| 2759 |
+
const currentModel = selectedModel || 'all';
|
| 2760 |
+
|
| 2761 |
+
// ๋ชจ๋ฌ ์ ๋ชฉ์ ํ์ฌ ์ ํ๋ ๋ชจ๋ธ ํ์ (์ ํ์ฌํญ)
|
| 2762 |
+
const modalTitle = document.querySelector('#webnovelsModal .modal-header h2');
|
| 2763 |
+
if (modalTitle) {
|
| 2764 |
+
if (currentModel === 'all') {
|
| 2765 |
+
modalTitle.textContent = 'ํ์ตํ ์น์์ค ์ ํ (์ ์ฒด ๋ชจ๋ธ)';
|
| 2766 |
+
} else {
|
| 2767 |
+
const displayName = currentModel.startsWith('gemini:') ? currentModel.substring(7) : currentModel;
|
| 2768 |
+
modalTitle.textContent = `ํ์ตํ ์น์์ค ์ ํ (${displayName})`;
|
| 2769 |
+
}
|
| 2770 |
+
}
|
| 2771 |
+
|
| 2772 |
+
// ๋ด๋ถ ๋ชจ๋ธ ํํฐ ์จ๊ธฐ๊ธฐ (๋ฉ์ธ ํ๋ฉด ์ ํ์ ๋ฐ๋ฅด๋ฏ๋ก)
|
| 2773 |
+
const filterContainer = document.querySelector('#webnovelsModal .filter-container'); // ํํฐ ์ปจํ
์ด๋๊ฐ ์๋ค๋ฉด
|
| 2774 |
+
if (filterContainer) filterContainer.style.display = 'none';
|
| 2775 |
+
|
| 2776 |
+
await loadWebnovels(currentModel);
|
| 2777 |
}
|
| 2778 |
|
| 2779 |
function closeWebnovelsModal() {
|
| 2780 |
document.getElementById('webnovelsModal').style.display = 'none';
|
| 2781 |
}
|
| 2782 |
|
| 2783 |
+
// loadWebnovelModelFilter ํจ์๋ ์ด์ ํ์ ์์ง๋ง ํธํ์ฑ์ ์ํด ๋จ๊ฒจ๋๊ฑฐ๋ ์ญ์ ๊ฐ๋ฅ
|
| 2784 |
async function loadWebnovelModelFilter() {
|
| 2785 |
+
// ๋ ์ด์ ์ฌ์ฉํ์ง ์์
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2786 |
}
|
| 2787 |
|
| 2788 |
+
async function loadWebnovels(forcedModelName = null) {
|
| 2789 |
const listContainer = document.getElementById('webnovelsList');
|
| 2790 |
+
// forcedModelName์ด ์์ผ๋ฉด ๊ทธ๊ฒ์ ์ฌ์ฉ, ์์ผ๋ฉด ํํฐ(์ด์ ์จ๊น) ๊ฐ ์ฌ์ฉ
|
| 2791 |
+
// ํ์ง๋ง showWebnovelsModal์์ ํญ์ ๊ฐ์ ๋๊ฒจ์ฃผ๋ฏ๋ก forcedModelName ์ฌ์ฉ
|
| 2792 |
+
const modelName = forcedModelName !== null ? forcedModelName : (selectedModel || 'all');
|
| 2793 |
|
| 2794 |
listContainer.innerHTML = '<div style="text-align: center; color: var(--text-secondary); padding: 24px;">์น์์ค ๋ชฉ๋ก์ ๋ถ๋ฌ์ค๋ ์ค...</div>';
|
| 2795 |
|
| 2796 |
try {
|
| 2797 |
+
// modelName์ด 'all'์ด๋ฉด public_only=true๋ก ํธ์ถ
|
| 2798 |
+
// modelName์ด ์์ผ๋ฉด model_name ํ๋ผ๋ฏธํฐ๋ก ํธ์ถ
|
| 2799 |
+
let url = '/api/files';
|
| 2800 |
+
if (modelName === 'all') {
|
| 2801 |
+
url += '?public_only=true';
|
| 2802 |
+
} else {
|
| 2803 |
+
url += `?model_name=${encodeURIComponent(modelName)}`;
|
| 2804 |
+
}
|
| 2805 |
+
|
| 2806 |
const response = await fetch(url);
|
| 2807 |
if (!response.ok) throw new Error('์น์์ค ๋ชฉ๋ก์ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค.');
|
| 2808 |
|