Commit Graph

68 Commits

Author SHA1 Message Date
Nariman Jelveh
25eea41f60 Keep track of app_instance_ids 2024-04-24 17:57:30 -07:00
Nariman Jelveh
548e975cac remove unused imports, sanitization, and validation of input 2024-04-24 10:05:53 -07:00
Nariman Jelveh
ce411ed728 Perform more advanced input and string sanitization and validation for performance and security 2024-04-23 22:46:33 -07:00
Nariman Jelveh
9859a32e15 Deprecate and remove UIWindowConfirmDownload 2024-04-23 16:35:28 -07:00
Nariman Jelveh
fa60f66057 Update helpers.js 2024-04-22 13:13:49 -07:00
Nariman Jelveh
915152d3b9
Merge pull request #296 from Xiayucheng1212/keep_params
Keep the query params in the url started with '/app/*'
2024-04-20 16:45:05 -07:00
Sam Atkins
2f49c1c9b0 Remove a whole load of noisy log messages
These can be added back if and when we need them, but right now, it's
hard to follow console output with all this chatter. 😅
2024-04-19 17:29:26 +01:00
Sam Atkins
639653dac2 Report when a non-SDK app closes
puter.ui.launchApp() returns a Promise that needs to resolve whether the
app uses the Puter SDK or not. Non-SDK apps are tricky because they
don't send a READY message on startup, and we don't know in advance
whether an app will use the SDK or not.

This is a workaround to ensure that launchApp() always resolves. When an
app is closed, if it wasn't using the SDK, we send an artificial
notification that it launched, followed by an extra notification that
it has closed (because the original close notification was sent before
this point). This means any users of launchApp() can await it, and get
an AppConnection, and listen to the close event. They can't otherwise
interact with a non-SDK app because it will have closed already, but we
can improve this in the future without breaking the API.
2024-04-19 15:52:59 +01:00
Sam Atkins
0aa5543397 Let AppConnection know if its target app uses the Puter SDK
Apps are not required to use the Puter SDK. If they don't, then we can
still launch them, close them, and listen to their close event, but are
unable to send messages to them.
2024-04-19 15:52:59 +01:00
Sam Atkins
dfdda4f3b9 Extract some helper functions for accessing a window/iframe by uuid 2024-04-19 15:52:59 +01:00
Xiayucheng1212
8713db3d55 Fix params lost 2024-04-17 19:45:01 +08:00
Eric Dubé
b897598fac
Merge pull request #282 from HeyPuter/eric/task-manager
Add a task manager
2024-04-15 03:53:51 -04:00
KernelDeimos
5730dc642a Add process ending and i18n 2024-04-15 03:37:04 -04:00
Nariman Jelveh
2dbde52338 live-update email address after change 2024-04-14 21:09:41 -07:00
KernelDeimos
6e7fd2ca95 Add polling 2024-04-14 23:52:53 -04:00
KernelDeimos
79bfcf226b Integrate ProcessService with task manager 2024-04-14 23:52:53 -04:00
KernelDeimos
9d9e091a7a Add process management 2024-04-14 23:52:53 -04:00
Nariman Jelveh
3b65523da9 separate refresh_item_container into a module 2024-04-13 13:41:15 -07:00
Nariman Jelveh
3cfee32ae0 Update helpers.js 2024-04-13 12:28:28 -07:00
KernelDeimos
5fbbfb4c18 Enable background and builtin apps 2024-04-12 20:52:57 -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
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
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
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
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
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
4aaa44a487
Merge branch 'HeyPuter:main' into main 2024-03-30 10:54:14 +08:00
meetqy
514abf030c fix: Make showing/hiding the clock configurable #159 2024-03-30 10:53:39 +08:00
Nariman Jelveh
fe0cd891e1 Pass API origin to apps 2024-03-28 19:10:03 -07:00
Nariman Jelveh
3aab04a245 First version of Settings 2024-03-24 00:41:27 -07:00
Nariman Jelveh
1e3fcc8bdb Set default Python icon and improve logic for default app prompt dialog 2024-03-22 11:49:57 -07:00
Sondre Tungesvik Njåstad
b31c5a672d The user can now choose to always use a given app (when double clicking the icon) after rightclicking and clicking "open with" 2024-03-22 13:46:55 +01:00
Nariman Jelveh
51fb668b66
Merge pull request #132 from SondreNjaastad/main
More translation
2024-03-19 15:46:34 -07:00
Sondre Njåstad
ae335df11e Presist language user_preference 2024-03-19 06:13:39 +01:00
Sondre Njåstad
8e1dbc8189 Fix broken dialogboxes 2024-03-18 21:16:33 +01:00
Sondre Njåstad
592a30ca6d Translation WIP 2024-03-18 21:07:29 +01:00
Nariman Jelveh
3e2ad61189 Fix issue with detecting whether positions is an object or not 2024-03-17 21:16:15 -07:00
vineeth kumar
a2fedfcd97
Merge branch 'main' into #10 2024-03-18 09:17:34 +05:30
vineethvk11
ed663c0824 fixing issues in auto arrange while moving items 2024-03-18 09:14:51 +05:30
Nariman Jelveh
86080b0ccf Add i18n for English, Korean, and Chinese
This is WIP. Help make the translations better.
2024-03-17 16:01:06 -07:00
vineethvk11
c63e546a9c minor bug fix in desktop item positions arrangement 2024-03-17 09:52:02 +05:30
Nariman Jelveh
f3e4a12e57 Refactor helpers.js to reduce file size 2024-03-16 20:13:48 -07:00
Nariman Jelveh
ec984ac81d Remove redundant logic 2024-03-16 19:59:36 -07:00