Commit Graph

333 Commits

Author SHA1 Message Date
Nariman Jelveh
c9e8207e4b Clean up the console warninf message 2024-04-23 23:53:15 -07:00
Nariman Jelveh
aef6df048c allow the <strong> tag in UIAlert 2024-04-23 23:06:04 -07:00
Nariman Jelveh
f8b2b18185 Update en.js 2024-04-23 22:49:16 -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
5538649125 Update UIAlert.js 2024-04-23 16:25:57 -07:00
Nariman Jelveh
ab5fee1562 deprecate UIWindowGetCopyLink as it's not supported by the backend 2024-04-23 15:43:55 -07:00
Nariman Jelveh
5066128c72
Merge pull request #329 from Eric-Lighthall/desktop-bg-revert
feat: add option to change desktop background to default
2024-04-22 20:26:39 -07:00
Eric Lighthall
03f05f316f feat: add option to change desktop background to default
users can now select 'default' as their desktop background
2024-04-22 18:26:15 -07:00
Eric Dubé
331d9e7542
feat: allow apps to add a menubar via puter.js
* Begin work on menubar and dropdowns

* Improve menubar

* Fix pointer event behavior

* Fix labels

* Fix active button

* Eliminate flicker

* Update _default.js

---------

Co-authored-by: Nariman Jelveh <n.jelveh@gmail.com>
2024-04-22 20:38:16 -04:00
Nariman Jelveh
fa60f66057 Update helpers.js 2024-04-22 13:13:49 -07:00
zinreq
14098b2ff2
Do not show the "Change Password" option when user is temporary 2024-04-20 19:42:30 -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
Nariman Jelveh
2ecea9a7b0 Prevent XSS by escaping user_set_url_params 2024-04-20 16:34:15 -07:00
Eric Dubé
dc2a620b4e
Merge pull request #304 from HeyPuter/eric/stdio-bridge/2
stdio-bridge 2
2024-04-20 19:29:15 -04:00
Nariman Jelveh
8648a303f1 use puter.js to retrieve server info 2024-04-20 15:29:33 -07:00
Eric Lighthall
338d925bcc Fetch server info from versionservice.js module
Instead of directly fetching for the version info in UITabAbout.js, the module is now used for it
2024-04-20 02:24:45 -07:00
Eric Lighthall
7e2c4a0a1c Add server/version info on login page
The server/version info is under the forgot password section of the login page
2024-04-20 02:22:13 -07:00
Eric Lighthall
9822be5df4 Add version service module for fetching server information
this centralizes the handling of requests to get the server information
2024-04-20 01:58:12 -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é
3a4858b83c
Merge pull request #286 from AtkinsSJ/background-settings
Settings: Organise code to be grouped by tab, and add desktop background picker
2024-04-15 17:55:09 -04:00
KernelDeimos
66fecf88ef Fix funny context menu on task manager 2024-04-15 15:58:07 -04:00
Sam Atkins
868202ba41 Settings: Add desktop-background setting to 'Personalization' tab 2024-04-15 17:41:19 +01:00
Sam Atkins
c6b0ed32bf Settings: Move 'Clock' tab into its own file 2024-04-15 17:41:19 +01:00
Sam Atkins
17adef11a6 Settings: Move 'Language' tab into its own file
Also implement an optional `on_show` callback for settings tabs, to
support the "select and clear the search field" behaviour we had before.
2024-04-15 17:41:19 +01:00
Sam Atkins
6d1c807879 Settings: Move 'Personalization' tab into its own file 2024-04-15 17:41:19 +01:00
Sam Atkins
0ed5b20627 Settings: Move 'Account' tab into its own file 2024-04-15 17:41:19 +01:00
Sam Atkins
f5175941d9 Settings: Move 'Usage' tab into its own file 2024-04-15 17:41:19 +01:00
Sam Atkins
e2f048ec2d Settings: Move 'About'-specific logic and data into UITabAbout.js
Keeping all the logic and data for the tab together should make it
easier to modify.
2024-04-15 17:41:19 +01:00
KernelDeimos
2717444c29 Oops 2024-04-15 12:17:09 -04:00
KernelDeimos
37ff97b52f Thanks minify 2024-04-15 03:59:39 -04: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
KernelDeimos
7c2a3b4612 Portal shows up as 'app' 2024-04-15 02:12:39 -04:00
Nariman Jelveh
dbf796d698 Update index.js 2024-04-14 21:27:25 -07:00
Nariman Jelveh
2dbde52338 live-update email address after change 2024-04-14 21:09:41 -07:00
KernelDeimos
61f1caa122 Add type column 2024-04-14 23:58:14 -04:00
Nariman Jelveh
695d7b8654 Update UIDesktop.js 2024-04-14 20:53:31 -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
KernelDeimos
be1bb6bc06 Improve task manager style 2024-04-14 23:52:53 -04:00
KernelDeimos
d39bb412f3 Begin work on task manager 2024-04-14 23:52:53 -04:00
Nariman Jelveh
49c3df2328 allow child windows to center relative to parent window 2024-04-14 20:04:27 -07:00
Nariman Jelveh
61a4b10adf add i18n text 2024-04-14 19:14:33 -07:00
Nariman Jelveh
aae1d194c7 wip 2024-04-14 17:43:20 -07:00
Nariman Jelveh
bfaaa914f1 wip 2024-04-14 17:30:22 -07:00
Nariman Jelveh
2f101c4a39 close #271 2024-04-14 17:10:46 -07:00
Nariman Jelveh
765eb43568 Disable manual arrangement in Explore 2024-04-14 12:50:28 -07:00
Nariman Jelveh
5b2e2b037b Update tr.js 2024-04-14 09:50:21 -07:00
Nariman Jelveh
bcfd685826 Update translations.js 2024-04-14 09:48:43 -07:00
hasanbeder
6679318207
Translated Turkish language file
This commit includes the Turkish language file with the translations. 🇹🇷
2024-04-14 13:12:56 +03: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
199b68a964 Highlight current session 2024-04-13 02:30:48 -04:00
Nariman Jelveh
be55e447bb fix issue with two session managers on top of each other 2024-04-12 20:43:15 -07:00
Eric Dubé
fbbc73308e
Merge pull request #274 from HeyPuter/eric/builtin-apps
Move terminal and phoenix into main repo
2024-04-12 21:54:47 -04:00
KernelDeimos
5fbbfb4c18 Enable background and builtin apps 2024-04-12 20:52:57 -04:00
Aya Moosa
b725c4c7b4 removed commented code causing translation error 2024-04-12 14:39:46 -07:00
Aya Moosa
24e3ec89f3 added white text to brodacast 2024-04-12 14:28:15 -07:00
Aya Moosa
f8d3fdbefb merge 2024-04-12 14:16:26 -07:00
Christian Neff
d06f856e46
Update German translation 2024-04-12 22:00:42 +02:00
KernelDeimos
1da3a769c4 Use localstorage instead of cookie for list-sessions 2024-04-12 00:19:07 -04:00
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
Aya Moosa
80aa87023e working white text, not perfect with all colors 2024-04-08 22:01:00 -07:00
Aya Moosa
626d63c91d working white text, not perfect with all colors 2024-04-08 22:00:12 -07:00
Aya Moosa
5bf0411015 got white text working, restets when other silders are used 2024-04-08 21:24:24 -07:00
Aya Moosa
b2fcb8d104 started light text for color 2024-04-08 15:59:12 -07: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