diff --git a/src/UI/UIItem.js b/src/UI/UIItem.js index d6bd660b9..f2c2c49a4 100644 --- a/src/UI/UIItem.js +++ b/src/UI/UIItem.js @@ -19,7 +19,6 @@ import UIWindowPublishWebsite from './UIWindowPublishWebsite.js'; import UIWindowItemProperties from './UIWindowItemProperties.js'; -import UIWindowGetCopyLink from './UIWindowGetCopyLink.js'; import UIWindowSaveAccount from './UIWindowSaveAccount.js'; import UIPopover from './UIPopover.js'; import UIWindowEmailConfirmationRequired from './UIWindowEmailConfirmationRequired.js'; @@ -1131,37 +1130,6 @@ function UIItem(options){ } }); } - - - // ------------------------------------------- - // Get Copy Link - // ------------------------------------------- - if(!is_trashed && !is_trash && (options.associated_app_name === null || options.associated_app_name === undefined)){ - menu_items.push({ - html: i18n('get_copy_link'), - onClick: async function(){ - if(window.user.is_temp && - !await UIWindowSaveAccount({ - message: i18n('save_account_to_get_copy_link'), - send_confirmation_code: true, - window_options: { - backdrop: true, - close_on_backdrop_click: false, - } - })) - return; - else if(!window.user.email_confirmed && !await UIWindowEmailConfirmationRequired()) - return; - - UIWindowGetCopyLink({ - name: $(el_item).attr('data-name'), - uid: $(el_item).attr('data-uid'), - path: $(el_item).attr('data-path'), - is_dir: options.is_dir, - }); - } - }); - } // ------------------------------------------- // Zip // ------------------------------------------- diff --git a/src/UI/UIWindowGetCopyLink.js b/src/UI/UIWindowGetCopyLink.js deleted file mode 100644 index 769383f28..000000000 --- a/src/UI/UIWindowGetCopyLink.js +++ /dev/null @@ -1,121 +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' -import UIPopover from './UIPopover.js' - -async function UIWindowGetCopyLink(options){ - let h = ''; - let copy_btn_text = 'Copy Link'; - let copied_btn_text = 'Copied!'; - const signature = await puter.fs.sign(null, {uid: options.uid, action: 'read'}) - const url = `${gui_origin}/?name=${encodeURIComponent(options.name)}&is_dir=${encodeURIComponent(options.is_dir)}&download=${encodeURIComponent(signature.items.read_url)}`; - - h += `
`; - h += `

Share the following link with anyone and they will be able to receive a copy of ${html_encode(options.name)}

`; - h += ``; - h += `` - h += ``; - h += `
`; - - const el_window = await UIWindow({ - title: `Get Copy Link`, - icon: null, - uid: null, - is_dir: false, - body_content: h, - has_head: true, - selectable_body: false, - draggable_body: false, - allow_context_menu: false, - is_resizable: false, - is_droppable: false, - init_center: true, - allow_native_ctxmenu: true, - allow_user_select: true, - onAppend: function(el_window){ - }, - width: 500, - dominant: true, - window_css: { - height: 'initial', - }, - body_css: { - width: 'initial', - 'max-height': 'calc(100vh - 200px)', - 'background-color': 'rgb(241 246 251)', - 'backdrop-filter': 'blur(3px)', - 'padding': '10px 20px 20px 20px', - 'height': 'initial', - } - }); - - $(el_window).find('.window-body .downloadable-link').val(url); - - $(el_window).find('.window-body .share-copy-link-on-social').on('click', function(e){ - const social_links = socialLink({ - url: url, - title: i18n('get_a_copy_of_on_puter', options.name, false), - description: i18n('get_a_copy_of_on_puter', options.name, false), - }); - - let social_links_html = ``; - social_links_html += `
`; - social_links_html += `

Share to

` - social_links_html += `` - social_links_html += `` - social_links_html += `` - social_links_html += `` - social_links_html += `` - social_links_html += `` - social_links_html += '
'; - - UIPopover({ - content: social_links_html, - snapToElement: this, - parent_element: this, - // width: 300, - height: 100, - position: 'bottom', - }); - }) - - $(el_window).find('.window-body .copy-downloadable-link').on('click', async function(e){ - var copy_btn = this; - if (navigator.clipboard) { - // Get link text - const selected_text = $(el_window).find('.window-body .downloadable-link').val(); - // copy selected text to clipboard - await navigator.clipboard.writeText(selected_text); - } - else{ - // Get the text field - $(el_window).find('.window-body .downloadable-link').select(); - // Copy the text inside the text field - document.execCommand('copy'); - } - - $(this).html(copied_btn_text); - setTimeout(function(){ - $(copy_btn).html(copy_btn_text); - }, 1000); - }); -} - -export default UIWindowGetCopyLink \ No newline at end of file diff --git a/src/UI/UIWindowItemProperties.js b/src/UI/UIWindowItemProperties.js index 0bbccae3b..2458341f1 100644 --- a/src/UI/UIWindowItemProperties.js +++ b/src/UI/UIWindowItemProperties.js @@ -117,19 +117,19 @@ async function UIWindowItemProperties(item_name, item_path, item_uid, left, top, $(el_window).find('[data-tab="versions"]').hide(); } // name - $(el_window).find('.item-prop-val-name').html(fsentry.name); + $(el_window).find('.item-prop-val-name').text(fsentry.name); // path - $(el_window).find('.item-prop-val-path').html(item_path); + $(el_window).find('.item-prop-val-path').text(item_path); // original name & path if(fsentry.metadata){ try{ let metadata = JSON.parse(fsentry.metadata); if(metadata.original_name){ - $(el_window).find('.item-prop-val-original-name').html(metadata.original_name); + $(el_window).find('.item-prop-val-original-name').text(metadata.original_name); $(el_window).find('.item-prop-original-name').show(); } if(metadata.original_path){ - $(el_window).find('.item-prop-val-original-path').html(metadata.original_path); + $(el_window).find('.item-prop-val-original-path').text(metadata.original_path); $(el_window).find('.item-prop-original-path').show(); } }catch(e){} @@ -137,7 +137,7 @@ async function UIWindowItemProperties(item_name, item_path, item_uid, left, top, // shortcut to if(fsentry.shortcut_to && fsentry.shortcut_to_path){ - $(el_window).find('.item-prop-val-shortcut-to').html(fsentry.shortcut_to_path); + $(el_window).find('.item-prop-val-shortcut-to').text(fsentry.shortcut_to_path); } // uid $(el_window).find('.item-prop-val-uid').html(fsentry.id); @@ -152,7 +152,7 @@ async function UIWindowItemProperties(item_name, item_path, item_uid, left, top, // subdomains if(fsentry.subdomains && fsentry.subdomains.length > 0 ){ fsentry.subdomains.forEach(subdomain => { - $(el_window).find('.item-prop-val-websites').append(`

${subdomain.address} (disassociate)

`); + $(el_window).find('.item-prop-val-websites').append(`

${html_encode(subdomain.address)} (disassociate)

`); }); } else{ diff --git a/src/UI/UIWindowMyWebsites.js b/src/UI/UIWindowMyWebsites.js index 8f4dd5ccf..d4e23fbe5 100644 --- a/src/UI/UIWindowMyWebsites.js +++ b/src/UI/UIWindowMyWebsites.js @@ -84,16 +84,16 @@ async function UIWindowMyWebsites(options){ h += ``; // there is a directory associated with this site if(sites[i].root_dir){ - h += `

`; + h += `

`; h+= ``; - h+= `${sites[i].root_dir.path}`; + h+= `${html_encode(sites[i].root_dir.path)}`; h += `

`; h += `

`; - h += ``; + h += ``; h += `${i18n('disassociate_dir')}`; h += `

`; } - h += `

${i18n('no_dir_associated_with_site')}

`; + h += `

${i18n('no_dir_associated_with_site')}

`; h += ``; } $(el_window).find('.window-body').html(h);