Add HF model auto-download with configurable AI env, and share link visibility toggles
This commit is contained in:
+17
-3
@@ -10,6 +10,15 @@ let searchTimer = null;
|
||||
let view = localStorage.getItem('journalView') === 'cards' ? 'cards' : 'list';
|
||||
let aiCorrecting = false;
|
||||
let editDeletePhoto = false;
|
||||
let linkSettings = null;
|
||||
|
||||
async function loadLinkSettings() {
|
||||
if (!linkSettings) {
|
||||
const res = await fetch(`${API}/api/settings`, { headers: hdr() });
|
||||
linkSettings = await res.json().catch(() => ({}));
|
||||
}
|
||||
return linkSettings;
|
||||
}
|
||||
|
||||
function isImageFile(name) {
|
||||
return /\.(jpe?g|png|gif|webp|bmp|avif|svg|ico)$/i.test(name || '');
|
||||
@@ -531,10 +540,15 @@ async function openLinkCreate() {
|
||||
document.getElementById('linkNameInput').value = `${g ? g.name : ''} ${dfl}`;
|
||||
document.getElementById('linkStudent').value = currentStudent;
|
||||
document.getElementById('linkExpiresDays').value = '7';
|
||||
document.getElementById('linkAnonymizeNames').checked = false;
|
||||
document.getElementById('linkShowNames').checked = false;
|
||||
document.getElementById('linkPassword').value = '';
|
||||
document.getElementById('linkMessage').value = '';
|
||||
document.getElementById('linkUrl').value = '';
|
||||
const s = await loadLinkSettings();
|
||||
document.getElementById('linkShowNames').checked = s.share_show_student_names !== 'false';
|
||||
document.getElementById('linkShowMessage').checked = s.share_show_student_message === 'true';
|
||||
document.getElementById('linkShowDate').checked = s.share_show_entry_date === 'true';
|
||||
document.getElementById('linkShowPhotos').checked = s.share_show_group_photos !== 'false';
|
||||
document.getElementById('linkCreateView').style.display = '';
|
||||
document.getElementById('linkResultView').style.display = 'none';
|
||||
document.getElementById('linkModal').classList.add('open');
|
||||
@@ -551,7 +565,7 @@ async function createLink() {
|
||||
const date_from = document.getElementById('dateFrom').value;
|
||||
const date_to = document.getElementById('dateTo').value;
|
||||
const expires_days = parseInt(document.getElementById('linkExpiresDays').value, 10);
|
||||
const anonymize_names = document.getElementById('linkAnonymizeNames').checked;
|
||||
const show_student_names = document.getElementById('linkShowNames').checked;
|
||||
const access_password = document.getElementById('linkPassword').value;
|
||||
const message = document.getElementById('linkMessage').value.trim();
|
||||
const link_url = document.getElementById('linkUrl').value.trim();
|
||||
@@ -561,7 +575,7 @@ async function createLink() {
|
||||
const res = await fetch(`${API}/api/links`, {
|
||||
method: 'POST',
|
||||
headers: hdrJson(),
|
||||
body: JSON.stringify({ name, group_id, student_name: student_name || null, date_from: date_from || null, date_to: date_to || null, anonymize_names, expires_at, access_password: access_password || null, message: message || null, link_url: link_url || null })
|
||||
body: JSON.stringify({ name, group_id, student_name: student_name || null, date_from: date_from || null, date_to: date_to || null, show_student_names, expires_at, access_password: access_password || null, message: message || null, link_url: link_url || null, show_student_message: document.getElementById('linkShowMessage').checked, show_entry_date: document.getElementById('linkShowDate').checked, show_group_photos: document.getElementById('linkShowPhotos').checked })
|
||||
});
|
||||
if (!res.ok) { const err = await res.json(); alert(err.error || 'Ошибка'); return; }
|
||||
const link = await res.json();
|
||||
|
||||
Reference in New Issue
Block a user