From 5198081c2b11d13f9348fc1a6df4d06f4e9ea335 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Thu, 2 May 2024 17:23:20 +0100 Subject: [PATCH] chore: Fix eslint issues in initgui.js Almost entirely clarifying use of window fields /puter/src/initgui.js 82:28 error 'api_origin' is not defined no-undef 118:34 error 'url_query_params' is not defined no-undef 120:17 error 'app_query_params' is not defined no-undef 136:8 error 'url_query_params' is not defined no-undef 136:51 error 'url_query_params' is not defined no-undef 136:105 error 'url_query_params' is not defined no-undef 138:14 error 'url_query_params' is not defined no-undef 138:57 error 'url_query_params' is not defined no-undef 138:110 error 'url_query_params' is not defined no-undef 154:8 error 'url_query_params' is not defined no-undef 154:54 error 'url_query_params' is not defined no-undef 154:110 error 'url_query_params' is not defined no-undef 164:17 error 'openerOrigin' is not defined no-undef 171:30 error 'openerOrigin' is not defined no-undef 173:37 error 'is_auth' is not defined no-undef 184:23 error 'getUserAppToken' is not defined no-undef 184:39 error 'openerOrigin' is not defined no-undef 186:41 error 'is_auth' is not defined no-undef 195:23 error 'getUserAppToken' is not defined no-undef 195:39 error 'openerOrigin' is not defined no-undef 205:8 error 'url_query_params' is not defined no-undef 206:32 error 'url_query_params' is not defined no-undef 218:23 error 'url_query_params' is not defined no-undef 219:22 error 'openerOrigin' is not defined no-undef 219:38 error 'url_query_params' is not defined no-undef 220:26 error 'url_query_params' is not defined no-undef 228:29 error 'embedded_in_popup' is not defined no-undef 238:20 error 'url_query_params' is not defined no-undef 239:21 error 'url_query_params' is not defined no-undef 270:36 error 'openerOrigin' is not defined no-undef 271:30 error 'checkUserSiteRelationship' is not defined no-undef 271:56 error 'openerOrigin' is not defined no-undef 274:44 error 'logged_in_users' is not defined no-undef 274:76 error 'userAppToken' is not defined no-undef 274:92 error 'url_query_params' is not defined no-undef 284:17 error 'userAppToken' is not defined no-undef 288:25 error 'is_auth' is not defined no-undef 302:13 error 'url_query_params' is not defined no-undef 303:38 error 'url_query_params' is not defined no-undef 309:17 error 'logout' is not defined no-undef 331:13 error 'update_auth_data' is not defined no-undef 363:8 error 'is_auth' is not defined no-undef 388:13 error 'update_auth_data' is not defined no-undef 394:23 error 'get_auto_arrange_data' is not defined no-undef 395:31 error 'desktop_path' is not defined no-undef 403:30 error 'url_query_params' is not defined no-undef 405:38 error 'getUserAppToken' is not defined no-undef 405:62 error 'openerOrigin' is not defined no-undef 415:35 error 'user' is not defined no-undef 417:24 error 'openerOrigin' is not defined no-undef 430:24 error 'openerOrigin' is not defined no-undef 438:20 error 'openerOrigin' is not defined no-undef 439:37 error 'getAppUIDFromOrigin' is not defined no-undef 439:57 error 'openerOrigin' is not defined no-undef 444:35 error 'url_query_params' is not defined no-undef 508:46 error 'url_query_params' is not defined no-undef 630:54 error 'busy_indicator_hide_delay' is not defined no-undef 636:49 error 'busy_indicator_hide_delay' is not defined no-undef 647:13 error 'update_sites_cache' is not defined no-undef 656:9 error 'refresh_desktop_background' is not defined no-undef 661:9 error 'is_auth' is not defined no-undef 661:23 error 'first_visit_ever' is not defined no-undef 662:12 error 'logged_in_users' is not defined no-undef 679:14 error 'is_auth' is not defined no-undef 679:27 error 'first_visit_ever' is not defined no-undef 693:12 error 'url_query_params' is not defined no-undef 696:47 error 'url_query_params' is not defined no-undef 704:18 error 'gui_origin' is not defined no-undef 715:17 error 'update_auth_data' is not defined no-undef 728:8 error 'feature_flags' is not defined no-undef 746:19 error 'get_auto_arrange_data' is not defined no-undef 747:27 error 'desktop_path' is not defined no-undef 755:26 error 'url_query_params' is not defined no-undef 758:34 error 'getUserAppToken' is not defined no-undef 758:58 error 'openerOrigin' is not defined no-undef 768:31 error 'user' is not defined no-undef 770:20 error 'openerOrigin' is not defined no-undef 783:20 error 'openerOrigin' is not defined no-undef 792:16 error 'openerOrigin' is not defined no-undef 793:33 error 'getAppUIDFromOrigin' is not defined no-undef 793:53 error 'openerOrigin' is not defined no-undef 801:31 error 'url_query_params' is not defined no-undef 864:42 error 'url_query_params' is not defined no-undef 987:50 error 'busy_indicator_hide_delay' is not defined no-undef 993:45 error 'busy_indicator_hide_delay' is not defined no-undef 1021:13 error 'update_explorer_footer_selected_items_count' is not defined no-undef 1057:13 error 'active_item_container' is not defined no-undef 1061:17 error 'active_item_container' is not defined no-undef 1065:21 error 'active_item_container' is not defined no-undef 1071:9 error 'active_element' is not defined no-undef 1179:21 error 'select_ctxmenu_item' is not defined no-undef 1185:21 error 'select_ctxmenu_item' is not defined no-undef 1198:21 error 'select_ctxmenu_item' is not defined no-undef 1211:21 error 'select_ctxmenu_item' is not defined no-undef 1222:25 error 'select_ctxmenu_item' is not defined no-undef 1255:22 error 'active_item_container' is not defined no-undef 1256:39 error 'active_item_container' is not defined no-undef 1257:21 error 'active_element' is not defined no-undef 1258:23 error 'active_item_container' is not defined no-undef 1263:27 error 'active_item_container' is not defined no-undef 1264:39 error 'active_item_container' is not defined no-undef 1267:27 error 'active_item_container' is not defined no-undef 1268:39 error 'active_element' is not defined no-undef 1268:74 error 'active_element' is not defined no-undef 1268:93 error 'active_element' is not defined no-undef 1271:27 error 'active_item_container' is not defined no-undef 1272:39 error 'active_item_container' is not defined no-undef 1275:39 error 'active_element' is not defined no-undef 1275:74 error 'active_element' is not defined no-undef 1275:93 error 'active_element' is not defined no-undef 1323:114 error 'active_item_container' is not defined no-undef 1331:21 error 'active_element' is not defined no-undef 1334:27 error 'active_item_container' is not defined no-undef 1390:37 error 'active_element' is not defined no-undef 1407:31 error 'delete_item' is not defined no-undef 1419:37 error 'active_element' is not defined no-undef 1419:115 error 'trash_path' is not defined no-undef 1436:31 error 'delete_item' is not defined no-undef 1438:55 error 'trash_path' is not defined no-undef 1445:59 error 'trash_path' is not defined no-undef 1446:61 error 'trash_path' is not defined no-undef 1452:37 error 'active_element' is not defined no-undef 1456:25 error 'move_items' is not defined no-undef 1456:53 error 'trash_path' is not defined no-undef 1467:16 error 'keypress_item_seach_term' is not defined no-undef 1468:30 error 'keypress_item_seach_buffer_timeout' is not defined no-undef 1470:13 error 'keypress_item_seach_buffer_timeout' is not defined no-undef 1471:17 error 'keypress_item_seach_term' is not defined no-undef 1474:13 error 'keypress_item_seach_term' is not defined no-undef 1477:38 error 'active_item_container' is not defined no-undef 1480:108 error 'keypress_item_seach_term' is not defined no-undef 1485:30 error 'active_item_container' is not defined no-undef 1487:78 error 'keypress_item_seach_term' is not defined no-undef 1505:19 error 'active_item_container' is not defined no-undef 1509:17 error 'update_explorer_footer_selected_items_count' is not defined no-undef 1509:63 error 'active_element' is not defined no-undef 1518:16 error 'keypress_item_seach_term' is not defined no-undef 1519:30 error 'keypress_item_seach_buffer_timeout' is not defined no-undef 1521:13 error 'keypress_item_seach_buffer_timeout' is not defined no-undef 1522:17 error 'keypress_item_seach_term' is not defined no-undef 1525:13 error 'keypress_item_seach_term' is not defined no-undef 1531:97 error 'keypress_item_seach_term' is not defined no-undef 1538:67 error 'keypress_item_seach_term' is not defined no-undef 1581:39 error 'active_element' is not defined no-undef 1583:39 error 'active_element' is not defined no-undef 1590:17 error 'update_explorer_footer_selected_items_count' is not defined no-undef 1600:36 error 'active_element' is not defined no-undef 1602:36 error 'active_element' is not defined no-undef 1615:15 error 'mouseover_window' is not defined no-undef 1616:15 error 'mouseover_window' is not defined no-undef 1616:55 error 'trash_path' is not defined no-undef 1621:38 error 'active_element' is not defined no-undef 1623:38 error 'active_element' is not defined no-undef 1628:21 error 'clipboard' is not defined no-undef 1629:21 error 'clipboard_op' is not defined no-undef 1632:58 error 'trash_path' is not defined no-undef 1636:25 error 'clipboard' is not defined no-undef 1648:38 error 'active_element' is not defined no-undef 1650:38 error 'active_element' is not defined no-undef 1655:21 error 'clipboard' is not defined no-undef 1656:21 error 'clipboard_op' is not defined no-undef 1658:25 error 'clipboard' is not defined no-undef 1668:107 error 'last_enter_pressed_to_rename_ts' is not defined no-undef 1682:21 error 'launch_app' is not defined no-undef 1705:21 error 'select_ctxmenu_item' is not defined no-undef 1713:21 error 'active_item_container' is not defined no-undef 1714:37 error 'active_item_container' is not defined no-undef 1717:25 error 'open_item' is not defined no-undef 1736:16 error 'clipboard' is not defined no-undef 1745:37 error 'trash_path' is not defined no-undef 1745:74 error 'trash_path' is not defined no-undef 1745:96 error 'clipboard_op' is not defined no-undef 1748:20 error 'clipboard_op' is not defined no-undef 1749:21 error 'copy_clipboard_items' is not defined no-undef 1750:25 error 'clipboard_op' is not defined no-undef 1751:21 error 'move_clipboard_items' is not defined no-undef 1760:13 error 'undo_last_action' is not defined no-undef 1767:9 error 'mouseX' is not defined no-undef 1768:9 error 'mouseY' is not defined no-undef 1771:13 error 'mouseX' is not defined no-undef 1771:29 error 'mouseY' is not defined no-undef 1771:38 error 'toolbar_height' is not defined no-undef 1771:63 error 'mouseX' is not defined no-undef 1771:78 error 'mouseY' is not defined no-undef 1772:13 error 'current_active_snap_zone' is not defined no-undef 1774:17 error 'mouseX' is not defined no-undef 1774:32 error 'mouseY' is not defined no-undef 1774:49 error 'mouseY' is not defined no-undef 1774:58 error 'desktop_height' is not defined no-undef 1775:13 error 'current_active_snap_zone' is not defined no-undef 1777:17 error 'mouseX' is not defined no-undef 1777:32 error 'mouseY' is not defined no-undef 1777:41 error 'desktop_height' is not defined no-undef 1778:13 error 'current_active_snap_zone' is not defined no-undef 1780:17 error 'mouseX' is not defined no-undef 1780:26 error 'desktop_width' is not defined no-undef 1780:48 error 'mouseY' is not defined no-undef 1780:65 error 'mouseY' is not defined no-undef 1780:74 error 'desktop_height' is not defined no-undef 1781:13 error 'current_active_snap_zone' is not defined no-undef 1783:18 error 'mouseX' is not defined no-undef 1783:27 error 'desktop_width' is not defined no-undef 1783:50 error 'mouseY' is not defined no-undef 1783:59 error 'toolbar_height' is not defined no-undef 1783:84 error 'mouseX' is not defined no-undef 1783:93 error 'desktop_width' is not defined no-undef 1783:115 error 'mouseY' is not defined no-undef 1784:13 error 'current_active_snap_zone' is not defined no-undef 1786:17 error 'mouseX' is not defined no-undef 1786:26 error 'desktop_width' is not defined no-undef 1786:48 error 'mouseY' is not defined no-undef 1786:58 error 'desktop_height' is not defined no-undef 1787:13 error 'current_active_snap_zone' is not defined no-undef 1789:17 error 'mouseY' is not defined no-undef 1789:26 error 'toolbar_height' is not defined no-undef 1789:49 error 'mouseX' is not defined no-undef 1789:66 error 'mouseX' is not defined no-undef 1789:75 error 'desktop_width' is not defined no-undef 1790:13 error 'current_active_snap_zone' is not defined no-undef 1793:13 error 'current_active_snap_zone' is not defined no-undef 1802:21 error 'mouseX' is not defined no-undef 1802:41 error 'mouseX' is not defined no-undef 1802:75 error 'mouseY' is not defined no-undef 1802:95 error 'mouseY' is not defined no-undef 1819:21 error 'mouseX' is not defined no-undef 1819:41 error 'mouseX' is not defined no-undef 1819:75 error 'mouseY' is not defined no-undef 1819:95 error 'mouseY' is not defined no-undef 1840:12 error 'mouseover_window' is not defined no-undef 1841:15 error 'mouseover_window' is not defined no-undef 1876:17 error 'upload_items' is not defined no-undef 1934:21 error 'logout' is not defined no-undef 1936:17 error 'logout' is not defined no-undef 1946:22 error 'gui_origin' is not defined no-undef 1951:50 error 'auth_token' is not defined no-undef 1958:18 error Empty block statement no-empty --- src/initgui.js | 354 ++++++++++++++++++++++++------------------------- 1 file changed, 177 insertions(+), 177 deletions(-) diff --git a/src/initgui.js b/src/initgui.js index 459c06549..c752eaca7 100644 --- a/src/initgui.js +++ b/src/initgui.js @@ -79,7 +79,7 @@ window.initgui = async function(){ puter.setAuthToken(window.auth_token); // update SDK if api_origin is different from the one in the SDK if(window.api_origin && puter.APIOrigin !== window.api_origin) - puter.setAPIOrigin(api_origin); + puter.setAPIOrigin(window.api_origin); // Checks the type of device the user is on (phone, tablet, or desktop). // Depending on the device type, it sets a class attribute on the body tag @@ -115,9 +115,9 @@ window.initgui = async function(){ // get query params, any param that doesn't start with 'puter.' will be passed to the app window.app_query_params = {}; - for (let [key, value] of url_query_params) { + for (let [key, value] of window.url_query_params) { if(!key.startsWith('puter.')) - app_query_params[key] = value; + window.app_query_params[key] = value; } } @@ -133,9 +133,9 @@ window.initgui = async function(){ // Determine if we are in full-page mode // i.e. https://puter.com/app//?puter.fullpage=true //-------------------------------------------------------------------------------------- - if(url_query_params.has('puter.fullpage') && (url_query_params.get('puter.fullpage') === 'false' || url_query_params.get('puter.fullpage') === '0')){ + if(window.url_query_params.has('puter.fullpage') && (window.url_query_params.get('puter.fullpage') === 'false' || window.url_query_params.get('puter.fullpage') === '0')){ window.is_fullpage_mode = false; - }else if(url_query_params.has('puter.fullpage') && (url_query_params.get('puter.fullpage') === 'true' || url_query_params.get('puter.fullpage') === '1')){ + }else if(window.url_query_params.has('puter.fullpage') && (window.url_query_params.get('puter.fullpage') === 'true' || window.url_query_params.get('puter.fullpage') === '1')){ // In fullpage mode, we want to hide the taskbar for better UX window.taskbar_height = 0; @@ -151,7 +151,7 @@ window.initgui = async function(){ // Is GUI embedded in a popup? // i.e. https://puter.com/?embedded_in_popup=true //-------------------------------------------------------------------------------------- - if(url_query_params.has('embedded_in_popup') && (url_query_params.get('embedded_in_popup') === 'true' || url_query_params.get('embedded_in_popup') === '1')){ + if(window.url_query_params.has('embedded_in_popup') && (window.url_query_params.get('embedded_in_popup') === 'true' || window.url_query_params.get('embedded_in_popup') === '1')){ window.embedded_in_popup = true; $('body').addClass('embedded-in-popup'); @@ -161,16 +161,16 @@ window.initgui = async function(){ // if no referrer, request it from the opener via messaging if(!document.referrer){ try{ - openerOrigin = await requestOpenerOrigin(); + window.openerOrigin = await requestOpenerOrigin(); }catch(e){ throw new Error('No referrer found'); } } // this is the referrer in terms of user acquisition - window.referrerStr = openerOrigin; + window.referrerStr = window.openerOrigin; - if(action === 'sign-in' && !is_auth()){ + if(action === 'sign-in' && !window.is_auth()){ // show signup window if(await UIWindowSignup({ reload_on_success: false, @@ -181,9 +181,9 @@ window.initgui = async function(){ cover_page: true, } })) - await getUserAppToken(openerOrigin); + await window.getUserAppToken(window.openerOrigin); } - else if(action === 'sign-in' && is_auth()){ + else if(action === 'sign-in' && window.is_auth()){ picked_a_user_for_sdk_login = await UIWindowSessionList({ reload_on_success: false, draggable_body: false, @@ -192,7 +192,7 @@ window.initgui = async function(){ }); if(picked_a_user_for_sdk_login){ - await getUserAppToken(openerOrigin); + await window.getUserAppToken(window.openerOrigin); } } @@ -202,8 +202,8 @@ window.initgui = async function(){ // Get user referral code from URL query params // i.e. https://puter.com/?r=123456 //-------------------------------------------------------------------------------------- - if(url_query_params.has('r')){ - window.referral_code = url_query_params.get('r'); + if(window.url_query_params.has('r')){ + window.referral_code = window.url_query_params.get('r'); // remove 'r' from URL window.history.pushState(null, document.title, '/'); // show referral notice, this will be used later if Desktop is loaded @@ -215,9 +215,9 @@ window.initgui = async function(){ // Action: Request Permission //-------------------------------------------------------------------------------------- if(action === 'request-permission'){ - let app_uid = url_query_params.get('app_uid'); - let origin = openerOrigin ?? url_query_params.get('origin'); - let permission = url_query_params.get('permission'); + let app_uid = window.url_query_params.get('app_uid'); + let origin = window.openerOrigin ?? window.url_query_params.get('origin'); + let permission = window.url_query_params.get('permission'); let granted = await UIWindowRequestPermission({ app_uid: app_uid, @@ -225,7 +225,7 @@ window.initgui = async function(){ permission: permission, }); - let messageTarget = embedded_in_popup ? window.opener : window.parent; + let messageTarget = window.embedded_in_popup ? window.opener : window.parent; messageTarget.postMessage({ msg: "permissionGranted", granted: granted, @@ -235,8 +235,8 @@ window.initgui = async function(){ // Action: Password recovery //-------------------------------------------------------------------------------------- else if(action === 'set-new-password'){ - let user = url_query_params.get('user'); - let token = url_query_params.get('token'); + let user = window.url_query_params.get('user'); + let token = window.url_query_params.get('token'); await UIWindowNewPassword({ user: user, @@ -267,11 +267,11 @@ window.initgui = async function(){ // if yes, we need to get the user app token and send it to the opener // if not, we need to ask the user for confirmation before proceeding BUT only if the action is a file-picker action // ------------------------------------------------------------------------------------- - if(window.embedded_in_popup && openerOrigin){ - let response = await checkUserSiteRelationship(openerOrigin); + if(window.embedded_in_popup && window.openerOrigin){ + let response = await window.checkUserSiteRelationship(window.openerOrigin); window.userAppToken = response.token; - if(!picked_a_user_for_sdk_login && logged_in_users.length > 0 && (!userAppToken || url_query_params.get('request_auth') )){ + if(!picked_a_user_for_sdk_login && window.logged_in_users.length > 0 && (!window.userAppToken || window.url_query_params.get('request_auth') )){ await UIWindowSessionList({ reload_on_success: false, draggable_body: false, @@ -281,11 +281,11 @@ window.initgui = async function(){ } // if not and action is show-open-file-picker, we need confirmation before proceeding if(action === 'show-open-file-picker' || action === 'show-save-file-picker' || action === 'show-directory-picker'){ - if(!userAppToken){ + if(!window.userAppToken){ let is_confirmed = await PuterDialog(); if(is_confirmed === false){ - if(!is_auth()){ + if(!window.is_auth()){ window.first_visit_ever = false; localStorage.removeItem("has_visited_before", true); } @@ -299,14 +299,14 @@ window.initgui = async function(){ // ------------------------------------------------------------------------------------- // `auth_token` provided in URL, use it to log in // ------------------------------------------------------------------------------------- - else if(url_query_params.has('auth_token')){ - let query_param_auth_token = url_query_params.get('auth_token'); + else if(window.url_query_params.has('auth_token')){ + let query_param_auth_token = window.url_query_params.get('auth_token'); try{ whoami = await puter.os.user(); }catch(e){ if(e.status === 401){ - logout(); + window.logout(); return; } } @@ -328,7 +328,7 @@ window.initgui = async function(){ // show login progress window UIWindowLoginInProgress({user_info: whoami}); // update auth data - update_auth_data(query_param_auth_token, whoami); + window.update_auth_data(query_param_auth_token, whoami); } // remove auth_token from URL window.history.pushState(null, document.title, '/'); @@ -360,7 +360,7 @@ window.initgui = async function(){ // ------------------------------------------------------------------------------------- // Authed // ------------------------------------------------------------------------------------- - if(is_auth()){ + if(window.is_auth()){ // try to get user data using /whoami, only if that data is missing if(!whoami){ try{ @@ -385,14 +385,14 @@ window.initgui = async function(){ } while(!is_verified) } - update_auth_data(whoami.token || window.auth_token, whoami); + window.update_auth_data(whoami.token || window.auth_token, whoami); // ------------------------------------------------------------------------------------- // Load desktop, only if we're not embedded in a popup // ------------------------------------------------------------------------------------- if(!window.embedded_in_popup){ - await get_auto_arrange_data() - puter.fs.stat(desktop_path, async function(desktop_fsentry){ + await window.get_auto_arrange_data() + puter.fs.stat(window.desktop_path, async function(desktop_fsentry){ UIDesktop({desktop_fsentry: desktop_fsentry}); }) } @@ -400,9 +400,9 @@ window.initgui = async function(){ // If embedded in a popup, send the token to the opener and close the popup // ------------------------------------------------------------------------------------- else{ - let msg_id = url_query_params.get('msg_id'); + let msg_id = window.url_query_params.get('msg_id'); try{ - let data = await getUserAppToken(new URL(openerOrigin).origin); + let data = await window.getUserAppToken(new URL(window.openerOrigin).origin); // This is an implicit app and the app_uid is sent back from the server // we cache it here so that we can use it later window.host_app_uid = data.app_uid; @@ -412,9 +412,9 @@ window.initgui = async function(){ success: true, token: data.token, app_uid: data.app_uid, - username: user.username, + username: window.user.username, msg_id: msg_id, - }, openerOrigin); + }, window.openerOrigin); // close popup if(!action || action==='sign-in'){ window.close(); @@ -427,7 +427,7 @@ window.initgui = async function(){ success: false, token: null, msg_id: msg_id, - }, openerOrigin); + }, window.openerOrigin); // close popup window.close(); window.open('','_self').close(); @@ -435,13 +435,13 @@ window.initgui = async function(){ let app_uid; - if(openerOrigin){ - app_uid = await getAppUIDFromOrigin(openerOrigin); + if(window.openerOrigin){ + app_uid = await window.getAppUIDFromOrigin(window.openerOrigin); window.host_app_uid = app_uid; } if(action === 'show-open-file-picker'){ - let options = url_query_params.get('options'); + let options = window.url_query_params.get('options'); options = JSON.parse(options ?? '{}'); // Open dialog @@ -505,7 +505,7 @@ window.initgui = async function(){ // Action: Show Save File Dialog //-------------------------------------------------------------------------------------- else if(action === 'show-save-file-picker'){ - let allowed_file_types = url_query_params.get('allowed_file_types'); + let allowed_file_types = window.url_query_params.get('allowed_file_types'); // send 'sendMeFileData' event to parent window.opener.postMessage({ @@ -627,13 +627,13 @@ window.initgui = async function(){ // done let busy_duration = (Date.now() - busy_init_ts); - if( busy_duration >= busy_indicator_hide_delay){ + if( busy_duration >= window.busy_indicator_hide_delay){ $(el_filedialog_window).close(); }else{ setTimeout(() => { // close this dialog $(el_filedialog_window).close(); - }, Math.abs(busy_indicator_hide_delay - busy_duration)); + }, Math.abs(window.busy_indicator_hide_delay - busy_duration)); } } }); @@ -644,7 +644,7 @@ window.initgui = async function(){ // ---------------------------------------------------------- // Get user's sites // ---------------------------------------------------------- - update_sites_cache(); + window.update_sites_cache(); } } // ------------------------------------------------------------------------------------- @@ -653,13 +653,13 @@ window.initgui = async function(){ // because it's not visible anyway and it's a waste of bandwidth // ------------------------------------------------------------------------------------- if(!window.is_fullpage_mode && !window.embedded_in_popup){ - refresh_desktop_background(); + window.refresh_desktop_background(); } // ------------------------------------------------------------------------------------- // Un-authed but not first visit -> try to log in/sign up // ------------------------------------------------------------------------------------- - if(!is_auth() && !first_visit_ever){ - if(logged_in_users.length > 0){ + if(!window.is_auth() && !window.first_visit_ever){ + if(window.logged_in_users.length > 0){ UIWindowSessionList(); } else{ @@ -676,7 +676,7 @@ window.initgui = async function(){ // ------------------------------------------------------------------------------------- // Un-authed and first visit ever -> create temp user // ------------------------------------------------------------------------------------- - else if(!is_auth() && first_visit_ever){ + else if(!window.is_auth() && window.first_visit_ever){ let referrer; try{ referrer = new URL(window.location.href).pathname; @@ -690,10 +690,10 @@ window.initgui = async function(){ window.referrerStr = referrer; // in case there is also a referrer query param, add it to the referrer URL - if(url_query_params.has('ref')){ + if(window.url_query_params.has('ref')){ if(!referrer) referrer = '/'; - referrer += '?ref=' + html_encode(url_query_params.get('ref')); + referrer += '?ref=' + html_encode(window.url_query_params.get('ref')); } @@ -701,7 +701,7 @@ window.initgui = async function(){ if(window.custom_headers) headers = window.custom_headers; $.ajax({ - url: gui_origin + "/signup", + url: window.gui_origin + "/signup", type: 'POST', async: true, headers: headers, @@ -712,7 +712,7 @@ window.initgui = async function(){ is_temp: true, }), success: async function (data){ - update_auth_data(data.token, data.user); + window.update_auth_data(data.token, data.user); document.dispatchEvent(new Event("login", { bubbles: true})); }, error: function (err){ @@ -725,7 +725,7 @@ window.initgui = async function(){ } // if there is at least one window open (only non-Explorer windows), ask user for confirmation when navigating away - if(feature_flags.prompt_user_when_navigation_away_from_puter){ + if(window.feature_flags.prompt_user_when_navigation_away_from_puter){ window.onbeforeunload = function(){ if($(`.window:not(.window[data-app="explorer"])`).length > 0) return true; @@ -743,8 +743,8 @@ window.initgui = async function(){ // Load desktop, if not embedded in a popup // ------------------------------------------------------------------------------------- if(!window.embedded_in_popup){ - await get_auto_arrange_data(); - puter.fs.stat(desktop_path, function (desktop_fsentry) { + await window.get_auto_arrange_data(); + puter.fs.stat(window.desktop_path, function (desktop_fsentry) { UIDesktop({ desktop_fsentry: desktop_fsentry }); }) } @@ -752,10 +752,10 @@ window.initgui = async function(){ // If embedded in a popup, send the 'ready' event to referrer and close the popup // ------------------------------------------------------------------------------------- else{ - let msg_id = url_query_params.get('msg_id'); + let msg_id = window.url_query_params.get('msg_id'); try{ - let data = await getUserAppToken(new URL(openerOrigin).origin); + let data = await window.getUserAppToken(new URL(window.openerOrigin).origin); // This is an implicit app and the app_uid is sent back from the server // we cache it here so that we can use it later window.host_app_uid = data.app_uid; @@ -765,9 +765,9 @@ window.initgui = async function(){ success: true, msg_id: msg_id, token: data.token, - username: user.username, + username: window.user.username, app_uid: data.app_uid, - }, openerOrigin); + }, window.openerOrigin); // close popup if(!action || action==='sign-in'){ window.close(); @@ -780,7 +780,7 @@ window.initgui = async function(){ msg_id: msg_id, success: false, token: null, - }, openerOrigin); + }, window.openerOrigin); // close popup window.close(); window.open('','_self').close(); @@ -789,8 +789,8 @@ window.initgui = async function(){ let app_uid; - if(openerOrigin){ - app_uid = await getAppUIDFromOrigin(openerOrigin); + if(window.openerOrigin){ + app_uid = await window.getAppUIDFromOrigin(window.openerOrigin); window.host_app_uid = app_uid; } @@ -798,7 +798,7 @@ window.initgui = async function(){ // Action: Show Open File Picker //-------------------------------------------------------------------------------------- if(action === 'show-open-file-picker'){ - let options = url_query_params.get('options'); + let options = window.url_query_params.get('options'); options = JSON.parse(options ?? '{}'); // Open dialog @@ -861,7 +861,7 @@ window.initgui = async function(){ // Action: Show Save File Dialog //-------------------------------------------------------------------------------------- else if(action === 'show-save-file-picker'){ - let allowed_file_types = url_query_params.get('allowed_file_types'); + let allowed_file_types = window.url_query_params.get('allowed_file_types'); // send 'sendMeFileData' event to parent window.opener.postMessage({ @@ -984,13 +984,13 @@ window.initgui = async function(){ // done let busy_duration = (Date.now() - busy_init_ts); - if( busy_duration >= busy_indicator_hide_delay){ + if( busy_duration >= window.busy_indicator_hide_delay){ $(el_filedialog_window).close(); }else{ setTimeout(() => { // close this dialog $(el_filedialog_window).close(); - }, Math.abs(busy_indicator_hide_delay - busy_duration)); + }, Math.abs(window.busy_indicator_hide_delay - busy_duration)); } } @@ -1018,7 +1018,7 @@ window.initgui = async function(){ // If .item-container clicked, unselect all its item children if($(e.target).hasClass('item-container') && !e.ctrlKey && !e.metaKey){ $(e.target).children('.item-selected').removeClass('item-selected'); - update_explorer_footer_selected_items_count(e.target); + window.update_explorer_footer_selected_items_count(e.target); } // If the clicked element is not a context menu, remove all context menus @@ -1054,21 +1054,21 @@ window.initgui = async function(){ // update active_item_container if($(e.target).hasClass('item-container')){ - active_item_container = e.target; + window.active_item_container = e.target; }else{ let ic = $(e.target).closest('.item-container') if(ic.length > 0){ - active_item_container = ic.get(0); + window.active_item_container = ic.get(0); }else{ let pp = $(e.target).find('.item-container') if(pp.length > 0){ - active_item_container = pp.get(0); + window.active_item_container = pp.get(0); } } } //active element - active_element = e.target; + window.active_element = e.target; }); $(document).bind('keydown', async function(e){ @@ -1176,13 +1176,13 @@ window.initgui = async function(){ // if no item is selected and down arrow is pressed, select the first item if($('.context-menu-active .context-menu-item-active').length === 0 && (e.which === 40)){ let selected_item = $('.context-menu-active .context-menu-item').get(0); - select_ctxmenu_item(selected_item); + window.select_ctxmenu_item(selected_item); return false; } // if no item is selected and up arrow is pressed, select the last item else if($('.context-menu-active .context-menu-item-active').length === 0 && (e.which === 38)){ let selected_item = $('.context-menu .context-menu-item').get($('.context-menu .context-menu-item').length - 1); - select_ctxmenu_item(selected_item); + window.select_ctxmenu_item(selected_item); return false; } // if an item is selected and down arrow is pressed, select the next enabled item @@ -1195,7 +1195,7 @@ window.initgui = async function(){ new_selected_item_index = new_selected_item_index + 1; new_selected_item = $('.context-menu-active .context-menu-item').get(new_selected_item_index); } - select_ctxmenu_item(new_selected_item); + window.select_ctxmenu_item(new_selected_item); return false; } // if an item is selected and up arrow is pressed, select the previous enabled item @@ -1208,7 +1208,7 @@ window.initgui = async function(){ new_selected_item_index = new_selected_item_index - 1; new_selected_item = $('.context-menu-active .context-menu-item').get(new_selected_item_index); } - select_ctxmenu_item(new_selected_item); + window.select_ctxmenu_item(new_selected_item); return false; } // if right arrow is pressed, open the submenu by triggering a mouseover event @@ -1219,7 +1219,7 @@ window.initgui = async function(){ if($(selected_item).hasClass('context-menu-item-submenu') === true){ $(selected_item).removeClass('context-menu-item-active'); $(selected_item).addClass('context-menu-item-active-blurred'); - select_ctxmenu_item($('.context-menu[data-is-submenu="true"] .context-menu-item').get(0)); + window.select_ctxmenu_item($('.context-menu[data-is-submenu="true"] .context-menu-item').get(0)); } return false; } @@ -1252,27 +1252,27 @@ window.initgui = async function(){ else if(!$(focused_el).is('input') && !$(focused_el).is('textarea') && (e.which === 37 || e.which === 38 || e.which === 39 || e.which === 40)){ let item_width = 110, item_height = 110, selected_item; // select first item in container if none is selected - if($(active_item_container).find('.item-selected').length === 0){ - selected_item = $(active_item_container).find('.item').get(0); - active_element = selected_item; - $(active_item_container).find('.item-selected').removeClass('item-selected'); + if($(window.active_item_container).find('.item-selected').length === 0){ + selected_item = $(window.active_item_container).find('.item').get(0); + window.active_element = selected_item; + $(window.active_item_container).find('.item-selected').removeClass('item-selected'); $(selected_item).addClass('item-selected'); return false; } // if Shift key is pressed and ONE item is already selected, pick that item - else if($(active_item_container).find('.item-selected').length === 1 && e.shiftKey){ - selected_item = $(active_item_container).find('.item-selected').get(0); + else if($(window.active_item_container).find('.item-selected').length === 1 && e.shiftKey){ + selected_item = $(window.active_item_container).find('.item-selected').get(0); } // if Shift key is pressed and MORE THAN ONE item is selected, pick the latest active item - else if($(active_item_container).find('.item-selected').length > 1 && e.shiftKey){ - selected_item = $(active_element).hasClass('item') ? active_element : $(active_element).closest('.item').get(0); + else if($(window.active_item_container).find('.item-selected').length > 1 && e.shiftKey){ + selected_item = $(window.active_element).hasClass('item') ? window.active_element : $(window.active_element).closest('.item').get(0); } // otherwise if an item is selected, pick that item - else if($(active_item_container).find('.item-selected').length === 1){ - selected_item = $(active_item_container).find('.item-selected').get(0); + else if($(window.active_item_container).find('.item-selected').length === 1){ + selected_item = $(window.active_item_container).find('.item-selected').get(0); } else{ - selected_item = $(active_element).hasClass('item') ? active_element : $(active_element).closest('.item').get(0); + selected_item = $(window.active_element).hasClass('item') ? window.active_element : $(window.active_element).closest('.item').get(0); } // override the default behavior of ctrl/meta key @@ -1320,7 +1320,7 @@ window.initgui = async function(){ let next_item; for (let index = 0; index < elements_at_next_pos.length; index++) { const elem_at_next_pos = elements_at_next_pos[index]; - if($(elem_at_next_pos).hasClass('item') && $(elem_at_next_pos).closest('.item-container').is(active_item_container)){ + if($(elem_at_next_pos).hasClass('item') && $(elem_at_next_pos).closest('.item-container').is(window.active_item_container)){ next_item = elem_at_next_pos; break; } @@ -1328,10 +1328,10 @@ window.initgui = async function(){ if(next_item){ selected_item = next_item; - active_element = next_item; + window.active_element = next_item; // if ctrl or meta key is not pressed, unselect all items if(!e.shiftKey){ - $(active_item_container).find('.item').removeClass('item-selected'); + $(window.active_item_container).find('.item').removeClass('item-selected'); } $(next_item).addClass('item-selected'); window.latest_selected_item = next_item; @@ -1387,7 +1387,7 @@ window.initgui = async function(){ // Permanent delete bypassing trash after alert //----------------------------------------------------------------------- if((e.keyCode === 46 && e.shiftKey) || (e.altKey && e.metaKey && e.keyCode === 8)) { - let $selected_items = $(active_element).closest(`.item-container`).find(`.item-selected`); + let $selected_items = $(window.active_element).closest(`.item-container`).find(`.item-selected`); if($selected_items.length > 0){ const alert_resp = await UIAlert({ message: i18n('confirm_delete_multiple_items'), @@ -1404,7 +1404,7 @@ window.initgui = async function(){ if((alert_resp) === 'Delete'){ for (let index = 0; index < $selected_items.length; index++) { const element = $selected_items[index]; - await delete_item(element); + await window.delete_item(element); } } } @@ -1416,7 +1416,7 @@ window.initgui = async function(){ //----------------------------------------------------------------------- if(e.keyCode === 46 || (e.keyCode === 8 && (e.ctrlKey || e.metaKey))) { // permanent delete? - let $selected_items = $(active_element).closest(`.item-container`).find(`.item-selected[data-path^="${trash_path + '/'}"]`); + let $selected_items = $(window.active_element).closest(`.item-container`).find(`.item-selected[data-path^="${window.trash_path + '/'}"]`); if($selected_items.length > 0){ const alert_resp = await UIAlert({ message: i18n('confirm_delete_multiple_items'), @@ -1433,27 +1433,27 @@ window.initgui = async function(){ if((alert_resp) === 'Delete'){ for (let index = 0; index < $selected_items.length; index++) { const element = $selected_items[index]; - await delete_item(element); + await window.delete_item(element); } - const trash = await puter.fs.stat(trash_path); + const trash = await puter.fs.stat(window.trash_path); if(window.socket){ window.socket.emit('trash.is_empty', {is_empty: trash.is_empty}); } if(trash.is_empty){ $(`[data-app="trash"]`).find('.taskbar-icon > img').attr('src', window.icons['trash.svg']); - $(`.item[data-path="${html_encode(trash_path)}" i]`).find('.item-icon > img').attr('src', window.icons['trash.svg']); - $(`.window[data-path="${html_encode(trash_path)}"]`).find('.window-head-icon').attr('src', window.icons['trash.svg']); + $(`.item[data-path="${html_encode(window.trash_path)}" i]`).find('.item-icon > img').attr('src', window.icons['trash.svg']); + $(`.window[data-path="${html_encode(window.trash_path)}"]`).find('.window-head-icon').attr('src', window.icons['trash.svg']); } } } // regular delete? else{ - $selected_items = $(active_element).closest('.item-container').find('.item-selected'); + $selected_items = $(window.active_element).closest('.item-container').find('.item-selected'); if($selected_items.length > 0){ // Only delete the items if we're not renaming one. if ($selected_items.children('.item-name-editor-active').length === 0) { - move_items($selected_items, trash_path); + window.move_items($selected_items, window.trash_path); } } } @@ -1464,27 +1464,27 @@ window.initgui = async function(){ // A letter or number is pressed and there is no context menu open: search items by name //----------------------------------------------------------------------- if(!e.ctrlKey && !e.metaKey && !$(focused_el).is('input') && !$(focused_el).is('textarea') && $('.context-menu').length === 0){ - if(keypress_item_seach_term !== '') - clearTimeout(keypress_item_seach_buffer_timeout); + if(window.keypress_item_seach_term !== '') + clearTimeout(window.keypress_item_seach_buffer_timeout); - keypress_item_seach_buffer_timeout = setTimeout(()=>{ - keypress_item_seach_term = ''; + window.keypress_item_seach_buffer_timeout = setTimeout(()=>{ + window.keypress_item_seach_term = ''; }, 700); - keypress_item_seach_term += e.key.toLocaleLowerCase(); + window.keypress_item_seach_term += e.key.toLocaleLowerCase(); let matches= []; - const selected_items = $(active_item_container).find(`.item-selected`).not('.item-disabled').first(); + const selected_items = $(window.active_item_container).find(`.item-selected`).not('.item-disabled').first(); // if one item is selected and the selected item matches the search term, don't continue search and select this item again - if(selected_items.length === 1 && $(selected_items).attr('data-name').toLowerCase().startsWith(keypress_item_seach_term)){ + if(selected_items.length === 1 && $(selected_items).attr('data-name').toLowerCase().startsWith(window.keypress_item_seach_term)){ return false; } // search for matches - let haystack = $(active_item_container).find(`.item`).not('.item-disabled'); + let haystack = $(window.active_item_container).find(`.item`).not('.item-disabled'); for(let j=0; j < haystack.length; j++){ - if($(haystack[j]).attr('data-name').toLowerCase().startsWith(keypress_item_seach_term)){ + if($(haystack[j]).attr('data-name').toLowerCase().startsWith(window.keypress_item_seach_term)){ matches.push(haystack[j]) } } @@ -1502,11 +1502,11 @@ window.initgui = async function(){ matches.splice(0, match_index+1); } // deselect all selected sibling items - $(active_item_container).find(`.item-selected`).removeClass('item-selected'); + $(window.active_item_container).find(`.item-selected`).removeClass('item-selected'); // select matching item $(matches[0]).not('.item-disabled').addClass('item-selected'); matches[0].scrollIntoView(false); - update_explorer_footer_selected_items_count($(active_element).closest('.window')); + window.update_explorer_footer_selected_items_count($(window.active_element).closest('.window')); } return false; @@ -1515,27 +1515,27 @@ window.initgui = async function(){ // A letter or number is pressed and there is a context menu open: search items by name //----------------------------------------------------------------------- else if(!e.ctrlKey && !e.metaKey && !$(focused_el).is('input') && !$(focused_el).is('textarea') && $('.context-menu').length > 0){ - if(keypress_item_seach_term !== '') - clearTimeout(keypress_item_seach_buffer_timeout); + if(window.keypress_item_seach_term !== '') + clearTimeout(window.keypress_item_seach_buffer_timeout); - keypress_item_seach_buffer_timeout = setTimeout(()=>{ - keypress_item_seach_term = ''; + window.keypress_item_seach_buffer_timeout = setTimeout(()=>{ + window.keypress_item_seach_term = ''; }, 700); - keypress_item_seach_term += e.key.toLocaleLowerCase(); + window.keypress_item_seach_term += e.key.toLocaleLowerCase(); let matches= []; const selected_items = $('.context-menu').find(`.context-menu-item-active`).first(); // if one item is selected and the selected item matches the search term, don't continue search and select this item again - if(selected_items.length === 1 && $(selected_items).text().toLowerCase().startsWith(keypress_item_seach_term)){ + if(selected_items.length === 1 && $(selected_items).text().toLowerCase().startsWith(window.keypress_item_seach_term)){ return false; } // search for matches let haystack = $('.context-menu-active').find(`.context-menu-item`); for(let j=0; j < haystack.length; j++){ - if($(haystack[j]).text().toLowerCase().startsWith(keypress_item_seach_term)){ + if($(haystack[j]).text().toLowerCase().startsWith(window.keypress_item_seach_term)){ matches.push(haystack[j]) } } @@ -1557,7 +1557,7 @@ window.initgui = async function(){ // select matching item $(matches[0]).addClass('context-menu-item-active'); // matches[0].scrollIntoView(false); - // update_explorer_footer_selected_items_count($(active_element).closest('.window')); + // update_explorer_footer_selected_items_count($(window.active_element).closest('.window')); } return false; @@ -1578,16 +1578,16 @@ window.initgui = async function(){ // ctrl/command + a, will select all items on desktop and windows //----------------------------------------------------------------------------- if((e.ctrlKey || e.metaKey) && e.which === 65 && !$(focused_el).is('input') && !$(focused_el).is('textarea')){ - let $parent_container = $(active_element).closest('.item-container'); + let $parent_container = $(window.active_element).closest('.item-container'); if($parent_container.length === 0) - $parent_container = $(active_element).find('.item-container'); + $parent_container = $(window.active_element).find('.item-container'); if($parent_container.attr('data-multiselectable') === 'false') return false; if($parent_container){ $($parent_container).find('.item').not('.item-disabled').addClass('item-selected'); - update_explorer_footer_selected_items_count($parent_container.closest('.window')); + window.update_explorer_footer_selected_items_count($parent_container.closest('.window')); } return false; @@ -1597,9 +1597,9 @@ window.initgui = async function(){ // ctrl + w, will close the active window //----------------------------------------------------------------------------- if(e.ctrlKey && e.which === 87){ - let $parent_window = $(active_element).closest('.window'); + let $parent_window = $(window.active_element).closest('.window'); if($parent_window.length === 0) - $parent_window = $(active_element).find('.window'); + $parent_window = $(window.active_element).find('.window'); if($parent_window !== null){ @@ -1612,28 +1612,28 @@ window.initgui = async function(){ // ctrl/command + c, will copy selected items on the active element to the clipboard //----------------------------------------------------------------------------- if((e.ctrlKey || e.metaKey) && e.which === 67 && - $(mouseover_window).attr('data-is_dir') !== 'false' && - $(mouseover_window).attr('data-path') !== trash_path && + $(window.mouseover_window).attr('data-is_dir') !== 'false' && + $(window.mouseover_window).attr('data-path') !== window.trash_path && !$(focused_el).is('input') && !$(focused_el).is('textarea')){ let $selected_items; - let parent_container = $(active_element).closest('.item-container'); + let parent_container = $(window.active_element).closest('.item-container'); if(parent_container.length === 0) - parent_container = $(active_element).find('.item-container'); + parent_container = $(window.active_element).find('.item-container'); if(parent_container !== null){ $selected_items = $(parent_container).find('.item-selected'); if($selected_items.length > 0){ - clipboard = []; - clipboard_op = 'copy'; + window.clipboard = []; + window.clipboard_op = 'copy'; $selected_items.each(function() { // error if trash is being copied - if($(this).attr('data-path') === trash_path){ + if($(this).attr('data-path') === window.trash_path){ return; } // add to clipboard - clipboard.push({path: $(this).attr('data-path'), uid: $(this).attr('data-uid'), metadata: $(this).attr('data-metadata')}); + window.clipboard.push({path: $(this).attr('data-path'), uid: $(this).attr('data-uid'), metadata: $(this).attr('data-metadata')}); }) } } @@ -1645,17 +1645,17 @@ window.initgui = async function(){ //----------------------------------------------------------------------------- if((e.ctrlKey || e.metaKey) && e.which === 88 && !$(focused_el).is('input') && !$(focused_el).is('textarea')){ let $selected_items; - let parent_container = $(active_element).closest('.item-container'); + let parent_container = $(window.active_element).closest('.item-container'); if(parent_container.length === 0) - parent_container = $(active_element).find('.item-container'); + parent_container = $(window.active_element).find('.item-container'); if(parent_container !== null){ $selected_items = $(parent_container).find('.item-selected'); if($selected_items.length > 0){ - clipboard = []; - clipboard_op = 'move'; + window.clipboard = []; + window.clipboard_op = 'move'; $selected_items.each(function() { - clipboard.push($(this).attr('data-path')); + window.clipboard.push($(this).attr('data-path')); }) } } @@ -1665,7 +1665,7 @@ window.initgui = async function(){ // Open // Enter key on a selected item will open it //----------------------------------------------------------------------- - if(e.which === 13 && !$(focused_el).is('input') && !$(focused_el).is('textarea') && (Date.now() - last_enter_pressed_to_rename_ts) >200 + if(e.which === 13 && !$(focused_el).is('input') && !$(focused_el).is('textarea') && (Date.now() - window.last_enter_pressed_to_rename_ts) >200 // prevent firing twice, because this will be fired on both keyup and keydown && e.type === 'keydown'){ let $selected_items; @@ -1679,7 +1679,7 @@ window.initgui = async function(){ if($('.launch-app-selected').length > 0){ // close launch menu $(".launch-popover").fadeOut(200, function(){ - launch_app({ + window.launch_app({ name: $('.launch-app-selected').attr('data-name'), }) $(".launch-popover").remove(); @@ -1702,7 +1702,7 @@ window.initgui = async function(){ $(selected_item).trigger('click'); if($('.context-menu[data-is-submenu="true"]').length > 0){ let selected_item = $('.context-menu[data-is-submenu="true"] .context-menu-item').get(0); - select_ctxmenu_item(selected_item); + window.select_ctxmenu_item(selected_item); } return false; @@ -1710,11 +1710,11 @@ window.initgui = async function(){ // --------------------------------------------- // if this is a selected item, open it // --------------------------------------------- - else if(active_item_container){ - $selected_items = $(active_item_container).find('.item-selected'); + else if(window.active_item_container){ + $selected_items = $(window.active_item_container).find('.item-selected'); if($selected_items.length > 0){ $selected_items.each(function() { - open_item({ + window.open_item({ item: this, new_window: e.metaKey || e.ctrlKey, }); @@ -1733,7 +1733,7 @@ window.initgui = async function(){ let target_path, target_el; // continue only if there is something in the clipboard - if(clipboard.length === 0) + if(window.clipboard.length === 0) return; let parent_container = determine_active_container_parent(); @@ -1742,13 +1742,13 @@ window.initgui = async function(){ target_el = parent_container; target_path = $(parent_container).attr('data-path'); // don't allow pasting in Trash - if((target_path === trash_path || target_path.startsWith(trash_path + '/')) && clipboard_op !== 'move') + if((target_path === window.trash_path || target_path.startsWith(window.trash_path + '/')) && window.clipboard_op !== 'move') return; // execute clipboard operation - if(clipboard_op === 'copy') - copy_clipboard_items(target_path); - else if(clipboard_op === 'move') - move_clipboard_items(target_el, target_path); + if(window.clipboard_op === 'copy') + window.copy_clipboard_items(target_path); + else if(window.clipboard_op === 'move') + window.move_clipboard_items(target_el, target_path); } return false; } @@ -1757,40 +1757,40 @@ window.initgui = async function(){ // ctrl/command + z, will undo last action //----------------------------------------------------------------------------- if((e.ctrlKey || e.metaKey) && e.which === 90){ - undo_last_action(); + window.undo_last_action(); return false; } }); // update mouse position coordinates $(document).mousemove(function(event){ - mouseX = event.clientX; - mouseY = event.clientY; + window.mouseX = event.clientX; + window.mouseY = event.clientY; // mouse in top-left corner of screen - if((mouseX < 150 && mouseY < toolbar_height + 20) || (mouseX < 20 && mouseY < 150)) - current_active_snap_zone = 'nw'; + if((window.mouseX < 150 && window.mouseY < window.toolbar_height + 20) || (window.mouseX < 20 && window.mouseY < 150)) + window.current_active_snap_zone = 'nw'; // mouse in left edge of screen - else if(mouseX < 20 && mouseY >= 150 && mouseY < desktop_height - 150) - current_active_snap_zone = 'w'; + else if(window.mouseX < 20 && window.mouseY >= 150 && window.mouseY < window.desktop_height - 150) + window.current_active_snap_zone = 'w'; // mouse in bottom-left corner of screen - else if(mouseX < 20 && mouseY > desktop_height - 150) - current_active_snap_zone = 'sw'; + else if(window.mouseX < 20 && window.mouseY > window.desktop_height - 150) + window.current_active_snap_zone = 'sw'; // mouse in right edge of screen - else if(mouseX > desktop_width - 20 && mouseY >= 150 && mouseY < desktop_height - 150) - current_active_snap_zone = 'e'; + else if(window.mouseX > window.desktop_width - 20 && window.mouseY >= 150 && window.mouseY < window.desktop_height - 150) + window.current_active_snap_zone = 'e'; // mouse in top-right corner of screen - else if((mouseX > desktop_width - 150 && mouseY < toolbar_height + 20) || (mouseX > desktop_width - 20 && mouseY < 150)) - current_active_snap_zone = 'ne'; + else if((window.mouseX > window.desktop_width - 150 && window.mouseY < window.toolbar_height + 20) || (window.mouseX > window.desktop_width - 20 && window.mouseY < 150)) + window.current_active_snap_zone = 'ne'; // mouse in bottom-right corner of screen - else if(mouseX > desktop_width - 20 && mouseY >= desktop_height - 150) - current_active_snap_zone = 'se'; + else if(window.mouseX > window.desktop_width - 20 && window.mouseY >= window.desktop_height - 150) + window.current_active_snap_zone = 'se'; // mouse in top edge of screen - else if(mouseY < toolbar_height + 20 && mouseX >= 150 && mouseX < desktop_width - 150) - current_active_snap_zone = 'n'; + else if(window.mouseY < window.toolbar_height + 20 && window.mouseX >= 150 && window.mouseX < window.desktop_width - 150) + window.current_active_snap_zone = 'n'; // not in any snap zone else - current_active_snap_zone = undefined; + window.current_active_snap_zone = undefined; // mouseover_window var windows = document.getElementsByClassName("window"); @@ -1799,7 +1799,7 @@ window.initgui = async function(){ let highest_window_zindex = 0; for(let i=0; i rect.x && mouseX < (rect.x + rect.width) && mouseY > rect.y && mouseY < (rect.y + rect.height)){ + if( window.mouseX > rect.x && window.mouseX < (rect.x + rect.width) && window.mouseY > rect.y && window.mouseY < (rect.y + rect.height)){ if(parseInt($(windows[i]).css('z-index')) >= highest_window_zindex){ active_win = windows[i]; highest_window_zindex = parseInt($(windows[i]).css('z-index')); @@ -1816,7 +1816,7 @@ window.initgui = async function(){ let highest_window_zindex = 0; for(let i=0; i rect.x && mouseX < (rect.x + rect.width) && mouseY > rect.y && mouseY < (rect.y + rect.height)){ + if( window.mouseX > rect.x && window.mouseX < (rect.x + rect.width) && window.mouseY > rect.y && window.mouseY < (rect.y + rect.height)){ let active_container_zindex = parseInt($(item_containers[i]).closest('.window').css('z-index')); if( !isNaN(active_container_zindex) && active_container_zindex >= highest_window_zindex){ active_ic = item_containers[i]; @@ -1837,8 +1837,8 @@ window.initgui = async function(){ return; // if mouse is clicked on a window, activate it - if(mouseover_window !== undefined){ - $(mouseover_window).focusWindow(e); + if(window.mouseover_window !== undefined){ + $(window.mouseover_window).focusWindow(e); } }) @@ -1873,7 +1873,7 @@ window.initgui = async function(){ if(items?.length>0){ let parent_container = determine_active_container_parent(); if(parent_container){ - upload_items(items, $(parent_container).attr('data-path')); + window.upload_items(items, $(parent_container).attr('data-path')); } } @@ -1931,9 +1931,9 @@ window.initgui = async function(){ default_username: window.user.username }); if(saved) - logout(); + window.logout(); }else if (alert_resp === 'log_out'){ - logout(); + window.logout(); } else{ return; @@ -1943,12 +1943,12 @@ window.initgui = async function(){ // logout try{ await $.ajax({ - url: gui_origin + "/logout", + url: window.gui_origin + "/logout", type: 'POST', async: true, contentType: "application/json", headers: { - "Authorization": "Bearer " + auth_token + "Authorization": "Bearer " + window.auth_token }, statusCode: { 401: function () { @@ -1956,7 +1956,7 @@ window.initgui = async function(){ }, }) }catch(e){ - + // Ignored } // remove this user from the array of logged_in_users