Merge pull request 'Fix file upload' (#59) from BordedDev/snek:bugfix/file-upload into main

Reviewed-on: retoor/snek#59
This commit is contained in:
retoor 2025-06-23 00:43:32 +02:00
commit 05192a00cd
3 changed files with 7 additions and 16 deletions

View File

@ -179,27 +179,25 @@ class ChatInputComponent extends NjetComponent {
e.preventDefault();
this.fileUploadGrid.openFileDialog();
});
eventBus.subscribe("file-uploading", (e) => {
this.subscribe("file-uploading", (e) => {
this.fileUploadGrid.style.display = "block";
this.uploadButton.style.display = "none";
this.textarea.style.display = "none";
})
document.eventBus = eventBus;
this.appendChild(this.uploadButton);
this.textarea.addEventListener("blur", () => {
this.updateFromInput("");
});
eventBus.subscribe("file-uploads-done", (data)=>{
console.info("JEEJ", data)
this.textarea.style.display = "block";
this.subscribe("file-uploads-done", (data)=>{
this.textarea.style.display = "block";
this.uploadButton.style.display = "block";
this.fileUploadGrid.style.display = "none";
let message =data.reduce((file) => {
return `${message}[${file.filename}](/channel/attachment/${file.file})`;
let msg =data.reduce((message, file) => {
return `${message}[${file.filename || file.name || file.remoteFile}](/channel/attachment/${file.remoteFile})`;
}, '');
app.rpc.sendMessage(this.channelUid, message, true);
app.rpc.sendMessage(this.channelUid, msg, true);
});

View File

@ -151,25 +151,18 @@ class FileUploadGrid extends NjetComponent {
};
ws.onmessage = (event) => {
console.info(event.data)
const data = JSON.parse(event.data);
if (data.type === 'progress') {
const pct = Math.min(100, Math.round(100 * data.bytes / file.size));
progress.style.width = pct + '%';
this.publish('file-uploading', {file: file, tile: tile, progress: progress});
} else if (data.type === 'done') {
console.info("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH")
console.info("Done")
console.info(this.uploadResponses)
this.uploadsDone += 1;
this.publish('file-uploaded', {file: file, tile: tile, progress: progress});
progress.style.width = '100%';
tile.classList.add('fug-done');
console.info("Closed")
ws.close();
this.uploadResponses.push({file:file, remoteFile:data.file})
console.info(this.uploadsDone, this.uploadsStarted)
if(this.uploadsDone == this.uploadsStarted){
this.publish('file-uploads-done', this.uploadResponses);
}

View File

@ -206,7 +206,7 @@ class ChannelAttachmentUploadView(BaseView):
print(msg.json())
data = msg.json()
if data.get('type') == 'end':
relative_url = urllib.parse.quote(attachment_record["relative_url"])
relative_url = urllib.parse.quote(attachment["relative_url"])
await ws.send_json({"type": "done", "file": relative_url, "filename": filename})
elif msg.type == web.WSMsgType.ERROR:
break