diff --git a/src/gui/src/UI/UIWindowRequestPermission.js b/src/gui/src/UI/UIWindowRequestPermission.js index 95a6e9b22..adf143181 100644 --- a/src/gui/src/UI/UIWindowRequestPermission.js +++ b/src/gui/src/UI/UIWindowRequestPermission.js @@ -41,7 +41,17 @@ async function UIWindowRequestPermission (options) { * Creates the permission dialog */ async function create_permission_window (options, permission_description, resolve) { - const requestingEntity = options.app_name ?? options.origin; + const user_apps = await puter.apps.list(); + const app_data = user_apps.find(a => a.name === options.app_name); + const app_icon = app_data.icon; + + const requestingEntity = { + name: options.app_name || '', + origin: options.origin || '', + title: app_data.title, + icon: app_icon.image, + }; + const h = create_window_content(requestingEntity, permission_description); return await UIWindow({ @@ -89,10 +99,10 @@ function create_window_content (requestingEntity, permission_description) { h += '
${html_encode(requestingEntity)} is requesting permission to ${permission_description}
`; + h += `${html_encode(requestingEntity.title)} is requesting permission to ${permission_description}
`; // Allow/Don't Allow h += ``; @@ -255,12 +265,12 @@ async function get_standard_folder_description (resource_id, action) { const whoami = await puter.auth.whoami(); const directories = whoami.directories || {}; - // Standard folder names we recognize - maps to i18n keys + // Standard folder names we recognize - maps to i18n keys per action const folder_i18n_keys = { - 'Desktop': 'perm_folder_desktop', - 'Documents': 'perm_folder_documents', - 'Pictures': 'perm_folder_pictures', - 'Videos': 'perm_folder_videos', + 'Desktop': { read: 'perm_folder_read_desktop', write: 'perm_folder_write_desktop' }, + 'Documents': { read: 'perm_folder_read_documents', write: 'perm_folder_write_documents' }, + 'Pictures': { read: 'perm_folder_read_pictures', write: 'perm_folder_write_pictures' }, + 'Videos': { read: 'perm_folder_read_videos', write: 'perm_folder_write_videos' }, }; // Check if resource_id matches any of the user's standard directories @@ -274,14 +284,13 @@ async function get_standard_folder_description (resource_id, action) { if ( path_parts.length !== 2 ) continue; const folder_name = path_parts[1]; - const folder_i18n_key = folder_i18n_keys[folder_name]; + const folder_actions = folder_i18n_keys[folder_name]; + if ( ! folder_actions ) continue; + + const folder_i18n_key = folder_actions[action]; if ( ! folder_i18n_key ) continue; - const folder_desc = i18n(folder_i18n_key); - return i18n('perm_folder_access', { - access: `${html_encode(action)}`, - folder: folder_desc, - }, false); + return i18n(folder_i18n_key); } return null; diff --git a/src/gui/src/css/style.css b/src/gui/src/css/style.css index 8b2e6423c..162b1aa70 100644 --- a/src/gui/src/css/style.css +++ b/src/gui/src/css/style.css @@ -3619,7 +3619,10 @@ fieldset[name=number-code] { } .perm-title { - text-align: center; + display: flex; + justify-content: center; + align-items: center; + gap: 10px; margin-top: 0; padding-bottom: 15px; font-size: 20px; diff --git a/src/gui/src/i18n/translations/en.js b/src/gui/src/i18n/translations/en.js index 65b51d006..5512e352b 100644 --- a/src/gui/src/i18n/translations/en.js +++ b/src/gui/src/i18n/translations/en.js @@ -565,15 +565,18 @@ const en = { // Permission Descriptions 'perm_fs_file_access': 'use {{name}} located at {{path}} with {{access}} access.', 'perm_fs_resource_access': 'access {{resource_id}} with {{access}} access.', - 'perm_folder_access': '{{access}} {{folder}}.', 'perm_thread_post': 'post to thread {{thread}}.', 'perm_service_invoke': 'use {{service}} to invoke {{interface}}.', 'perm_driver_use': 'use {{driver}} to {{action}}.', 'perm_email_read': 'see your email address', - 'perm_folder_desktop': 'your Desktop folder', - 'perm_folder_documents': 'your Documents folder', - 'perm_folder_pictures': 'your Pictures folder', - 'perm_folder_videos': 'your Videos folder', + 'perm_folder_read_desktop': 'read files from your Desktop', + 'perm_folder_write_desktop': 'save and modify files on your Desktop', + 'perm_folder_read_documents': 'read files in your Documents folder', + 'perm_folder_write_documents': 'save and modify files in your Documents folder', + 'perm_folder_read_pictures': 'view files in your Pictures folder', + 'perm_folder_write_pictures': 'save and modify files in your Pictures folder', + 'perm_folder_read_videos': 'access files in your Videos folder', + 'perm_folder_write_videos': 'save and modify files in your Videos folder', 'perm_apps_read': 'see your apps', 'perm_apps_write': 'manage your apps', 'perm_subdomains_read': 'see your subdomains', diff --git a/src/gui/src/i18n/translations/fr.js b/src/gui/src/i18n/translations/fr.js index 130f6412d..2be2e9aa4 100644 --- a/src/gui/src/i18n/translations/fr.js +++ b/src/gui/src/i18n/translations/fr.js @@ -534,15 +534,18 @@ const fr = { // Permission Descriptions 'perm_fs_file_access': 'utiliser {{name}} situé à {{path}} avec un accès {{access}}.', 'perm_fs_resource_access': 'accéder à {{resource_id}} avec un accès {{access}}.', - 'perm_folder_access': '{{access}} {{folder}}.', 'perm_thread_post': 'publier sur le fil {{thread}}.', 'perm_service_invoke': 'utiliser {{service}} pour invoquer {{interface}}.', 'perm_driver_use': 'utiliser {{driver}} pour {{action}}.', 'perm_email_read': 'voir votre adresse e-mail', - 'perm_folder_desktop': 'votre dossier Bureau', - 'perm_folder_documents': 'votre dossier Documents', - 'perm_folder_pictures': 'votre dossier Images', - 'perm_folder_videos': 'votre dossier Vidéos', + 'perm_folder_read_desktop': 'lire les fichiers de votre Bureau, afin de pouvoir accéder à vos fichiers et les ouvrir', + 'perm_folder_write_desktop': 'enregistrer et modifier des fichiers sur votre Bureau, afin de pouvoir stocker des fichiers pour vous', + 'perm_folder_read_documents': 'lire les fichiers de votre dossier Documents, afin de pouvoir ouvrir vos documents', + 'perm_folder_write_documents': 'enregistrer et modifier des fichiers dans votre dossier Documents, afin de pouvoir sauvegarder votre travail', + 'perm_folder_read_pictures': 'consulter les fichiers de votre dossier Images, afin de pouvoir afficher vos images', + 'perm_folder_write_pictures': 'enregistrer et modifier des fichiers dans votre dossier Images, afin de pouvoir stocker vos images', + 'perm_folder_read_videos': 'accéder aux fichiers de votre dossier Vidéos, afin de pouvoir lire vos vidéos', + 'perm_folder_write_videos': 'enregistrer et modifier des fichiers dans votre dossier Vidéos, afin de pouvoir stocker vos vidéos', 'perm_apps_read': 'voir vos applications', 'perm_apps_write': 'gérer vos applications', 'perm_subdomains_read': 'voir vos sous-domaines',