Commit Graph

201 Commits

Author SHA1 Message Date
Peter Dave Hello 1aeedd8696 Add a simple Traditional Chinese translation 2024-04-11 20:03:13 +08:00
Eric Dubé 92dc0a7671 Merge pull request #255 from AtkinsSJ/appconnection-close
Notify apps when a child app closes, and let them close their children manually
2024-04-09 21:31:48 -04:00
Sam Atkins 21c64e827b Add closeApp message
Sending a 'closeApp' message allows an app to close a target app, if it
has permission to do so. Currently, permission is granted if the
requesting app is the parent of the target app, or has godmode set.
2024-04-09 16:09:12 +01:00
Sam Atkins c69a0abfa9 Extract a window_for_app_instance() helper function 2024-04-09 15:55:14 +01:00
Sam Atkins cce6531d45 Notify parents/children when an app closes
Send an appClosed message with the instance ID of the app that was
closed. This will be picked up by Puter.js's AppConnection and reported
as a 'close' event.

To make this work, a `data-parent_instance_id` attribute is set on child
app windows. This is very similar to the `data-parent_uuid` attribute,
which tracks parent windows instead of parent app instances. (Dialogs
have a parent window, but are not apps, so don't have a parent app
instance.) The difference is subtle, and we may want to combine these in
the future, but currently closing an app will close any child windows,
which is not behaviour we want for child apps.
2024-04-09 15:55:14 +01:00
Sam Atkins 84a31b3520 Broadcast when the language changes
This is left open to future additions, by naming it 'locale', and having
the language just be an object field.

Side note, maybe we should have a LocaleService for this?
2024-04-09 10:44:51 +01:00
Sam Atkins 59cdb6e8c6 Broadcast when theme changes 2024-04-09 10:44:51 +01:00
Sam Atkins 068e620249 Add a message broadcasting service
A broadcast is a message sent to every running app that uses Puter.js.
Broadcasts have a name and a data payload, and are sent as a 'broadcast'
message.

Send a broadcast using:
`globalThis.services.get('broadcast').sendBroadcast(...)`

When doing so, you have the option to keep the broadcast message around,
so that it can be sent to any newly-launched apps. Sending another
broadcast with the same name will overwrite the previous one, so you
don't have to worry about flooding a new app with duplicates.
2024-04-09 10:44:51 +01:00
Eric Dubé 24ad365047 Merge pull request #253 from AtkinsSJ/bad-config-login-error
Add an error message when login fails because of domain misconfiguration
2024-04-08 12:23:31 -04:00
Sam Atkins b1f2750cdb Add an error message when login fails because of domain misconfiguration
Previously, we just output whatever err.responseText was. However, that
has some downsides:

- If there's no responseText (as for when we can't find the domain) then
  the user gets a blank message.
- If it's a 404 error, the responseText includes the full HTML for
  Puter's 404 page, which we don't want to dump in the error box! This
  is unlikely to happen in practice, but was easy enough to cater for.

So, add a nicer message in those cases.

The misconfiguration message is taken from here:
https://github.com/HeyPuter/puter/issues/185#issuecomment-2037977592

Resolves #235.
2024-04-08 15:49:00 +01:00
Sam Atkins 8aee3f8174 Add some missing copyright notices 2024-04-08 11:10:39 +01:00
Nariman Jelveh ea61799b3d Merge pull request #240 from HeyPuter/eric/gui-personalization
Puter Theme Color Setting
2024-04-07 14:35:24 -07:00
KernelDeimos b1e6e0c25a Fix i18n 2024-04-07 17:27:09 -04:00
KernelDeimos f7916cfa74 Add option to reset colors 2024-04-07 17:19:47 -04:00
KernelDeimos 3f37ef2fad Fix i18n 2024-04-07 16:18:59 -04:00
KernelDeimos 3297940bab Improve dialog 2024-04-07 04:53:49 -04:00
KernelDeimos 821d33b8d8 Make opacity differences match prod 2024-04-07 04:39:08 -04:00
KernelDeimos 72129ca16f Make defaults consistent with original 2024-04-07 03:21:32 -04:00
KernelDeimos 12fa88b149 Save color settings 2024-04-07 03:15:45 -04:00
KernelDeimos c83069bd03 Add i18n items 2024-04-07 02:53:33 -04:00
KernelDeimos 5661605884 Add ui colors to settings window 2024-04-07 02:53:05 -04:00
KernelDeimos d1bbbb8e93 Use CSS variables 2024-04-07 02:34:04 -04:00
KernelDeimos 178f851684 Fix previous fix 2024-04-07 00:28:23 -04:00
Eric Dubé 95d33eab94 Merge pull request #238 from AtkinsSJ/app-ipc
Implement support for launching child apps, and IPC between a parent and its children
2024-04-06 07:51:17 -04:00
Sam Atkins 725cbf2e20 Add support for launching child apps
Calling `puter.ui.launchApp()` now treats the new app as a child of the
one that launched it.

A child app is given a `puter.parent_instance_id` URL param, containing
its parent's instance ID.

Previously, `launchApp()` would resolve as soon as the app was launched.
This commit changes that, so that it is notified after the child app
sends its READY event to Puter. This means that as soon as `launchApp()`
has completed, the child app is ready to receive messages. The downside
is that launching an app that does not include Puter.js will now not
cause a notification, so `await puter.ui.launchApp()` will not resolve
in that case.
2024-04-06 12:27:36 +01:00
KernelDeimos beeeb7bcbf Tiny fix 2024-04-06 05:08:38 -04:00
KernelDeimos b99534ebdf Add WIP color sliders 2024-04-06 02:35:06 -04:00
Sam Atkins c78927d5db Add messageToApp message
This lets apps communicate with each other, via Puter.

We probably want to limit this in some way, but for now, all apps are
allowed to send messages to any other apps.

The message is:
- `targetAppInstanceID`: The instance ID to send the message to
- `targetAppOrigin`: targetOrigin passed to postMessage(), in case we
  want to restrict which URL can receive the message
- `contents`: The message to send to the target
2024-04-05 16:38:12 +01:00
Ikko Eltociear Ashimine 26e9822344 Update download.js
minor fix
2024-04-06 00:22:22 +09:00
vineethvk11 6006767a9f fixing issues in copy while overwriting 2024-04-05 09:11:39 +05:30
KernelDeimos 08838c989e Fix fragmented if..else seq (fix app tokens) 2024-04-04 17:44:54 -04:00
KernelDeimos 6cd77384a5 Update default text for explorer-error-message 2024-04-02 16:50:22 -04:00
KernelDeimos 5290d78e20 Display error in directory when readdir fails 2024-04-02 16:46:34 -04:00
KernelDeimos 6f7264b60b Fix logout for invalid sessions 2024-04-02 04:19:12 -04:00
Nariman Jelveh 0049c9ef00 Merge pull request #205 from AtkinsSJ/fix-i18n-typo
Fix issues with translation keys, and check these in CI
2024-04-01 11:18:43 -07:00
Nariman Jelveh 4009f4f331 Merge branch 'main' into #141 2024-04-01 11:02:37 -07:00
Sam Atkins 29b3b4ecba Add or correct missing i18n keys
'save_account_to_publish' isn't used anywhere, so I assume that
'save_account_to_publish_website' is supposed to use that.
2024-04-01 12:10:31 +01:00
Sam Atkins b111e05ef7 Fix typo in 'change_always_open_with' i18n key 2024-04-01 12:00:58 +01:00
Sam Atkins c2f73c37c5 Correct capitalisation of i18n() keys
Found by searching for `i18n\(\'[^\']*[A-Z]+[^\']*\'\)`
2024-04-01 11:26:07 +01:00
Humberto 14996439a0 Update pt.js
Correct many instances of PT-BR to PT-PT. The original had some typos too. Kept “Password” as “Password” instead of a mix of “Senha” and “Palavra Chave”.
2024-03-31 20:06:03 +01:00
vineeth kumar 5da46a15fb Merge branch 'main' into #141 2024-03-31 13:02:11 +05:30
vineethvk11 9438355a36 removing html inside translation strings 2024-03-31 12:53:53 +05:30
Zac0511 3a0f913d9f Update fr.js
Integrating @ambr0sial 's modifications to the french file.
Source :  https://github.com/HeyPuter/puter/commit/b3935da823ed3128b0ff54fe2b6ada4c87ed23c3
2024-03-30 23:03:19 +01:00
Nariman Jelveh 51bb41863e remove more calls to deprecated endpoints 2024-03-30 09:05:54 -07:00
Nariman Jelveh 0094e2e2cf Merge pull request #191 from meetqy/main
Make showing/hiding the clock configurable
2024-03-29 21:34:52 -07:00
Nariman Jelveh 8883c892ed Fix auto not being triggered when changing visibility 2024-03-29 21:25:03 -07:00
Nariman Jelveh db245f9ba2 Fix spelling mistake 2024-03-29 20:59:50 -07:00
Nariman Jelveh b4be6aa4a6 remove deprecated sharing endpoints and event handlers 2024-03-29 20:49:53 -07:00
meetqy 9fd32468ad fix: Make showing/hiding the clock configurable #159 2024-03-30 10:57:57 +08:00
meetqy 4aaa44a487 Merge branch 'HeyPuter:main' into main 2024-03-30 10:54:14 +08:00