Mercurial Hosting > chat
comparison src/chat.js @ 63:afd5ab5b02a2
file upload
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 05 Mar 2025 18:43:06 -0700 |
parents | d4d154b404f8 |
children | 6cfef9850520 |
comparison
equal
deleted
inserted
replaced
62:ad9772fc588a | 63:afd5ab5b02a2 |
---|---|
3 let title = document.title; | 3 let title = document.title; |
4 let currentChatId = null; | 4 let currentChatId = null; |
5 let eventSource; | 5 let eventSource; |
6 let lastUpdate; | 6 let lastUpdate; |
7 let userId; | 7 let userId; |
8 let filebinUrl; | |
8 | 9 |
9 function evalEvent(event) { | 10 function evalEvent(event) { |
10 // console.log(event); | 11 // console.log(event); |
11 eval(event.data); | 12 eval(event.data); |
12 } | 13 } |
286 let email = document.querySelector('dialog[invite] span[email]').textContent; | 287 let email = document.querySelector('dialog[invite] span[email]').textContent; |
287 closeModal(el); | 288 closeModal(el); |
288 location = `chat?with=${email}`; | 289 location = `chat?with=${email}`; |
289 ajax(`save_post.js?post=${currentPostId}`,`content=${encodeURIComponent(text)}`); | 290 ajax(`save_post.js?post=${currentPostId}`,`content=${encodeURIComponent(text)}`); |
290 } | 291 } |
292 | |
293 function uploadFile() { | |
294 document.querySelector('input[type="file"]').click(); | |
295 } | |
296 | |
297 function addFileUrl(url) { | |
298 let textarea = document.querySelector('div[input] textarea'); | |
299 let text = textarea.value; | |
300 if( /\S$/.test(text) ) | |
301 text += ' '; | |
302 text += url; | |
303 textarea.value = text; | |
304 } | |
305 | |
306 function uploadToFilebin(fileName,fileContent) { | |
307 //console.log(fileContent.byteLength); | |
308 let request = new XMLHttpRequest(); | |
309 let url = filebinUrl + fileName; | |
310 request.open( 'POST', url ); | |
311 request.onload = function() { | |
312 if( request.status !== 201 ) { | |
313 let err = 'upload failed: ' + request.status; | |
314 if( request.responseText ) { | |
315 err += '\n' + request.responseText; | |
316 } | |
317 console.log(err); | |
318 ajax( '/error_log.js', 'err='+encodeURIComponent(err) ); | |
319 return; | |
320 } | |
321 addFileUrl(url); | |
322 }; | |
323 request.send(fileContent); | |
324 } | |
325 | |
326 function loadedFile(input) { | |
327 let file = input.files[0]; | |
328 input.value = null; | |
329 console.log(file); | |
330 let reader = new FileReader(); | |
331 reader.onload = function() { | |
332 uploadToFilebin(file.name,reader.result); | |
333 }; | |
334 reader.readAsArrayBuffer(file); | |
335 } |