diff --git a/src/UI/UIWindowUploadProgress.js b/src/UI/UIWindowUploadProgress.js deleted file mode 100644 index 23c5d5ec..00000000 --- a/src/UI/UIWindowUploadProgress.js +++ /dev/null @@ -1,75 +0,0 @@ -/** - * Copyright (C) 2024 Puter Technologies Inc. - * - * This file is part of Puter. - * - * Puter is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published - * by the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -import UIWindow from './UIWindow.js' - -// todo do this using uid rather than item_path, since item_path is way mroe expensive on the DB -async function UIWindowUploadProgress(options){ - let h = ''; - h += `
`; - h += `
`; - // spinner - h +=`circle anim`; - // Progress report - h +=`
`; - // msg - h += `${i18n('preparing_for_upload')}`; - h += `
`; - // progress - h += `
`; - h += `
`; - h += `
`; - // cancel - h += ``; - h +=`
`; - h += `
`; - - const el_window = await UIWindow({ - title: i18n('upload'), - icon: window.icons[`app-icon-uploader.svg`], - uid: null, - is_dir: false, - body_content: h, - has_head: false, - selectable_body: false, - draggable_body: true, - allow_context_menu: false, - is_resizable: false, - is_droppable: false, - init_center: true, - allow_native_ctxmenu: false, - allow_user_select: false, - window_class: 'window-upload-progress', - width: 450, - dominant: true, - window_css:{ - height: 'initial', - }, - body_css: { - padding: '22px', - width: 'initial', - 'background-color': 'rgba(231, 238, 245, .95)', - 'backdrop-filter': 'blur(3px)', - } - }); - - return el_window; -} - -export default UIWindowUploadProgress \ No newline at end of file diff --git a/src/css/style.css b/src/css/style.css index 69a19e30..dbecf56b 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -2708,7 +2708,7 @@ fieldset[name=number-code] { } } -.progress-bar-container, .upload-progress-bar-container, .download-progress-bar-container { +.progress-bar-container, .download-progress-bar-container { box-sizing: border-box; width: 100%; height: 17px; @@ -2718,7 +2718,7 @@ fieldset[name=number-code] { box-shadow: inset -1px 3px 4px #dfdfdf; } -.progress-bar, .upload-progress-bar, .download-progress-bar { +.progress-bar, .download-progress-bar { width: 0; height: 100%; background-color: rgb(0 137 255); diff --git a/src/helpers.js b/src/helpers.js index 4a9d2128..680f4e76 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -27,13 +27,13 @@ import UIWindowSaveAccount from './UI/UIWindowSaveAccount.js'; import UIWindowCopyProgress from './UI/UIWindowCopyProgress.js'; import UIWindowMoveProgress from './UI/UIWindowMoveProgress.js'; import UIWindowNewFolderProgress from './UI/UIWindowNewFolderProgress.js'; -import UIWindowUploadProgress from './UI/UIWindowUploadProgress.js'; import UIWindowProgressEmptyTrash from './UI/UIWindowProgressEmptyTrash.js'; import update_username_in_gui from './helpers/update_username_in_gui.js'; import update_title_based_on_uploads from './helpers/update_title_based_on_uploads.js'; import content_type_to_icon from './helpers/content_type_to_icon.js'; import UIWindowDownloadDirProg from './UI/UIWindowDownloadDirProg.js'; import { PROCESS_RUNNING, PortalProcess, PseudoProcess } from "./definitions.js"; +import UIWindowProgress from './UI/UIWindowProgress.js'; window.is_auth = ()=>{ if(localStorage.getItem("auth_token") === null || window.auth_token === null) @@ -2685,25 +2685,28 @@ window.upload_items = async function(items, dest_path){ init: async(operation_id, xhr)=>{ opid = operation_id; // create upload progress window - upload_progress_window = await UIWindowUploadProgress({operation_id: operation_id}); - // cancel btn - $(upload_progress_window).find('.upload-cancel-btn').on('click', function(e){ - $(upload_progress_window).close(); - window.show_save_account_notice_if_needed(); - xhr.abort(); - }) + upload_progress_window = await UIWindowProgress({ + title: i18n('upload'), + icon: window.icons[`app-icon-uploader.svg`], + operation_id: operation_id, + show_progress: true, + on_cancel: () => { + window.show_save_account_notice_if_needed(); + xhr.abort(); + }, + }); // add to active_uploads window.active_uploads[opid] = 0; }, // start start: async function(){ // change upload progress window message to uploading - $(upload_progress_window).find('.upload-progress-msg').html(`Uploading (0%)`); + upload_progress_window.set_status('Uploading'); + upload_progress_window.set_progress(0); }, // progress progress: async function(operation_id, op_progress){ - $(`[data-upload-operation-id="${operation_id}"]`).find('.upload-progress-bar').css( 'width', op_progress+'%'); - $(`[data-upload-operation-id="${operation_id}"]`).find('.upload-progress-percent').html(op_progress+'%'); + upload_progress_window.set_progress(op_progress); // update active_uploads window.active_uploads[opid] = op_progress; // update title if window is not visible @@ -2731,7 +2734,7 @@ window.upload_items = async function(items, dest_path){ // close progress window after a bit of delay for a better UX setTimeout(() => { setTimeout(() => { - $(upload_progress_window).close(); + upload_progress_window.close(); window.show_save_account_notice_if_needed(); }, Math.abs(window.upload_progress_hide_delay)); }) @@ -2740,7 +2743,8 @@ window.upload_items = async function(items, dest_path){ }, // error error: async function(err){ - $(upload_progress_window).close(); + // TODO: Display error in progress dialog + upload_progress_window.close(); // UIAlert(err?.message ?? 'An error occurred while uploading.'); // remove from active_uploads delete window.active_uploads[opid];