Commit Graph

212 Commits

Author SHA1 Message Date
Eric Dubé
8135e076c2 Merge pull request #266 from HeyPuter/eric/session-updates
session management
2024-04-11 22:04:07 -04:00
KernelDeimos
5effca4bbc Add missing i18n key 2024-04-11 21:57:26 -04:00
KernelDeimos
bb9edc4f65 Add automatic token migration 2024-04-11 21:33:44 -04:00
KernelDeimos
b8e66cada9 Add puter.js 2024-04-11 19:07:00 -04:00
Nariman Jelveh
9ab3e3ccd8 Merge pull request #244 from HeyPuter/eric/host-storage
Display storage use of host/puter separately
2024-04-11 10:14:45 -07:00
Nariman Jelveh
7abf5faa3c fix missing translations 2024-04-11 10:13:52 -07:00
Nariman Jelveh
4052c7995c Merge pull request #260 from AtkinsSJ/fix-silly-mistakes
Fix permission check for closeApp message
2024-04-11 09:48:02 -07:00
Sam Atkins
776b6831f3 Fix permission check for closeApp message
Firstly, I was missing an `async` here, which somehow still worked for
me then, but produced errors for me when I tried it today.

Then, actually await the promise.

Finally, actually check the target's parent is us, and not just that it
has the attribute!

I don't know what was going on in my head that day. 🤦‍♂️
2024-04-11 17:21:23 +01:00
Peter Dave Hello
1aeedd8696 Add a simple Traditional Chinese translation 2024-04-11 20:03:13 +08:00
KernelDeimos
09bf422686 Add session manager ui 2024-04-11 00:29:39 -04: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
KernelDeimos
8018a607a8 Add CSS 2024-04-07 00:05:54 -04:00
KernelDeimos
dc5a7ca431 Display storage use of host/puter separately 2024-04-06 23:26:18 -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