124 </label>
125 <label class="flex items-center text-sm">
126 <input type="radio" name="privacy-mode" value="database" class="mr-2">
127 <span>โ๏ธ Save to server (shareable, persistent)</span>
128 </label>
300 </label>
301 <label class="flex items-start text-sm">
302 <input type="radio" name="modal-privacy-mode" value="database" class="mr-2 mt-0.5">
303 <div>
304 <span class="font-medium">โ๏ธ Save to server</span>
552 statusText = 'Local mode - data saved in browser only';
553 break;
554 case 'database':
555 statusText = 'Server mode - data saved on server';
556 break;
567 statusText = `${localCount} session(s) in browser`;
568 clearLocalDataBtn.style.display = localCount > 0 ? 'block' : 'none';
569 } else if (state.privacyMode === 'database') {
570 statusText = `${serverCount} session(s) on server`;
571 clearServerDataBtn.style.display = serverCount > 0 ? 'block' : 'none';
580 clearLocalDataBtn.style.display = 'none';
581 }
582 if (state.privacyMode !== 'database') {
583 clearServerDataBtn.style.display = 'none';
584 }
652 async function loadSessions() {
653 try {
654 if (state.privacyMode === 'database') {
655 // Load from server database
656 const response = await fetch('/chat-api', {
657 method: 'POST',
719 if (state.privacyMode === 'local') {
720 privacyIndicator = '<span class="text-xs text-blue-500">๐พ</span>';
721 } else if (state.privacyMode === 'database') {
722 privacyIndicator = '<span class="text-xs text-green-500">โ๏ธ</span>';
723 }
756 if (confirm('Are you sure you want to delete this session?')) {
757 try {
758 if (state.privacyMode === 'database') {
759 await fetch('/chat-api', {
760 method: 'POST',
792 let sessionData = null;
793
794 if (state.privacyMode === 'database') {
795 // Load from server
796 const response = await fetch('/chat-api', {
840 indicator = '<span class="text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded">๐พ Local</span>';
841 break;
842 case 'database':
843 indicator = '<span class="text-xs bg-green-100 text-green-800 px-2 py-1 rounded">โ๏ธ Server</span>';
844 break;
883
884 try {
885 if (state.privacyMode === 'database') {
886 await fetch('/chat-api', {
887 method: 'POST',
1011 let newSession = null;
1012
1013 if (selectedMode === 'database') {
1014 // Create on server
1015 const response = await fetch('/chat-api', {
1080 indicator = '<span class="text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded">๐พ Local</span>';
1081 break;
1082 case 'database':
1083 indicator = '<span class="text-xs bg-green-100 text-green-800 px-2 py-1 rounded">โ๏ธ Server</span>';
1084 break;
1101 privacyMessage = '๐พ This session is saved locally in your browser only.';
1102 break;
1103 case 'database':
1104 privacyMessage = 'โ๏ธ This session is saved on the server and can be accessed from any device.';
1105 break;
1146
1147 try {
1148 if (state.privacyMode === 'database') {
1149 await fetch('/chat-api', {
1150 method: 'POST',
1209 if (!text) return;
1210
1211 // Check if we need to create a session first (only for database mode)
1212 if (!state.currentSession && state.privacyMode === 'database') {
1213 showNewSessionModal();
1214 return;
1275 let messageResponse = null;
1276
1277 if (state.privacyMode === 'database') {
1278 // Send to server for processing
1279 const response = await fetch('/chat-api', {