Commit Graph

517 Commits

Author SHA1 Message Date
Hubert Plociniczak
0c55ee50cf
Debug Ydoc/LS interaction without making code changes (#10687)
* Debug Ydoc without making code changes

Previously the log statements were guarded by a constant. Now log
statements are printed if YDOC_DEBUG=true env var is set during launch.

* debug LS RPCs

* bump vite to 5.3.5

* s/YDOC_DEBUG/YDOC_LS_DEBUG

* Address PR comment

* nit

* nit

* fix tests

* yet another linting problem
2024-08-06 19:53:36 +02:00
Sergei Garin
c179701a00
Fix Subscribe form UX (#10744) 2024-08-05 16:57:48 +03:00
somebody1234
1fda574656
Keep subscription payment form open until plan is successful (#10732)
- Keep payment form open until `plan` on `users/me` matches the new plan being upgraded to
- 3 second delay between fetches on `users/me`
- 30 second timeout after which an error message is displayed
- Note that currently this just keeps the form submit button spinning for longer, rather than having an extra dedicated full-page loading spinner.

# Important Notes
None
2024-08-01 11:58:55 +00:00
somebody1234
d9fc3a0fb6
Dashboard improvements (#10715)
- Frontend part of https://github.com/enso-org/cloud-v2/issues/1397
- Show organization details to everyone (behavior unchanged)
- ⚠️ Allow editing only for admins
- ⚠️ Currently there is no backend endpoint to get organization permissions
- Stop (incorrectly) submitting *all* settings inputs twice
- Frontend part of https://github.com/enso-org/cloud-v2/issues/1396
- Fix "remove invitation" sending wrong request
- Stop sending `organizationId` in "create invitation" request
- Not adding `email` autocomplete to `/registration`
- Currently already exists
- but it will need to be revisited after the new sign up flow PR is merged.
- Fix https://github.com/enso-org/cloud-v2/issues/1407
- Fix project open request being sent multiple times
- Address https://github.com/enso-org/enso/issues/10633#issuecomment-2252540802
- Fix path to local projects (previously gave the path to their containing folder

Other fixes:
- Various fixes for autocomplete:
- Fix autocomplete appearance (dropdown is no longer detached from main input)
- Add tooltips for overflowing autocomplete entries
- Add tooltips for overflowing usernames in "manage permissions" modal
- Animate height of "asset search bar" dropdown and "autocomplete" dropdown
- Auto-size names of object keys in Datalink input

Other changes:
- Avoid gap with missing background on right side of tab bar when resizing window due to the clip path being animated
- Add <kbd>Cmd</kbd>+<kbd>W</kbd> and <kbd>Cmd</kbd>+<kbd>Option</kbd>+<kbd>W</kbd> to close tab
- Make <kbd>Escape</kbd> only close tab if it is the Settings tab (a temporary tab)

# Important Notes
None
2024-08-01 11:29:05 +00:00
Sergei Garin
a5922e0844
New Signup flow (#10616) 2024-08-01 09:35:41 +00:00
Adam Obuchowicz
a64b2c0a08
Remove unnecessary chrome flags (#10619)
Fixes #10487

During my tests, these flags were not needed; without them, electron app displays exactly the same cert warnings as with them:
```
Loading the window address 'https://localhost:8080/?engine.projectManagerUrl=ws%3A%2F%2F127.0.0.1%3A30535'.
[30750:0722/121629.281911:ERROR:cert_verify_proc_builtin.cc(1051)] CertVerifyProcBuiltin for localhost failed:
----- Certificate i=0 (CN=127.0.0.1) -----
ERROR: No matching issuer found
```
in CLI and
![Screenshot from 2024-07-22 10-13-12](https://github.com/user-attachments/assets/82a73c9a-ca46-4880-b94e-e979d30ae97c)

in web console.
2024-07-29 15:00:50 +00:00
somebody1234
eb0796c837
Change text under profile picture input (#10694)
- See https://github.com/enso-org/cloud-v2/issues/1408
- Change text under profile picture input

# Important Notes
None
2024-07-29 08:19:51 +00:00
somebody1234
fde2f71419
Restructure app/ide-desktop/client/ for consistency with other modules (#10649)
- Change paths from `foo-bar` to `@/fooBar` to be consistent with GUI module naming

# Important Notes
None
2024-07-26 15:14:31 +00:00
somebody1234
c46262dfb5 Format TS code (#10648) 2024-07-26 17:47:59 +10:00
somebody1234
d0b67bc50d
Reenable "Local" settings tab (#10659)
- Re-enable the "Local" settings tab
- It contains a single input to change the root directory of
- Add settings icon to jump to "Local" settings tab, next to "Local" category

# Important Notes
None
2024-07-25 08:54:51 +00:00
somebody1234
7a26334519
Check version (#10646)
- Close https://github.com/enso-org/cloud-v2/issues/1299
- Add component that checks whether the current version of the desktop app is out of date
- Add Devtools toggle so that the functionality is testable in dev servers

# Important Notes
- This functionality is disabled when it is not applicable:
- On the Electron watch mode (as development branches do not need to be the latest version)
- Note however that built apps (`./run ide build`) do still have the check enabled.
- On the cloud dashboard without Electron (as it cannot be updated)
2024-07-24 08:52:14 +00:00
Sergei Garin
db669a67fb
Billing Page iteration one (#10497)
#### Tl;dr
Closes: enso-org/cloud-v2#1158
This PR adds a redirect to the stripe page where the user can manage his subscription

<details><summary>Demo Presentation</summary>
<p>

https://github.com/enso-org/enso/assets/61194245/360fdc7e-46ff-49fa-9936-e5c61fe6f917

</p>
</details>

---

#### Context:
Our first iteration was to add our billing page but after a few iterations, we decided to postpone it in favor of more important features.

#### This Change:
1. creates a link for a private user session
2. redirect the user to that page (open in a new tab) when the user clicks on the billing tab

#### Test Plan:
Go over how you plan to test it. Your test plan should be more thorough the riskier the change is. For major changes, I like to describe how I E2E tested it and will monitor the rollout.

---
2024-07-23 19:10:21 +00:00
Sergei Garin
c11f5aeed2
Fix the OAuth redirect on windows (#10629) 2024-07-23 10:27:27 +00:00
somebody1234
7e4c25c167
Use correct URL for YDoc server on Cloud (#10566)
- Fix https://github.com/enso-org/cloud-v2/issues/1314
- Use correct URL for YDoc server on Cloud

# Important Notes
- Note that Cloud Projects should also be checked on the desktop app.
2024-07-23 07:46:02 +00:00
somebody1234
5bc873178a
Fixes (including downloading Local projects from nested directories) (#10585)
- Address part of https://github.com/enso-org/cloud-v2/issues/1350
- Turns out the reason downloads were broken were (I assume) the query string was getting lost - so the Electron server never passed the correct parent directory to the backend.
- Fix "Escape" key using old project ID and navigating to a nonexistent tab
- Fix validation for tab names (previously all strings were passing validation due to an incorrect custom predicate being passed to `zod`)
- Add clip path to entire tab bar so that the bottoms of tabs are cut off on hover if they are next to the currently selected tab.
- Add s-shaped curve to hovered tabs, so that their edges match the edges of the currently selected tab.
- Avoid navigating back to "Data Catalog" page when closing a project tab, when the project tab is not the currently open page.
- Fix size of paywall icons in "Shared With" column (16px to be consistent with all other icons)

# Important Notes
None
2024-07-22 09:40:14 +00:00
somebody1234
836a7e1272
Still more dashboard fixes (#10573)
- Close https://github.com/enso-org/cloud-v2/issues/1369
- Add button to refresh project logs
- Fix https://github.com/enso-org/cloud-v2/issues/1385
- Fix issues related to Data Links
- Fix freeze when closing tab (e.g. project tab) (regression introduced when switching to `react-aria` Tabs, oops...)

# Important Notes
None
2024-07-17 23:52:27 +00:00
somebody1234
ebf4cd5c1f
Inline modules in app/ide-desktop/ (#10305)
- Remove unnecessary modules
- Remove `ts-plugin-namespace-auto-import` as it was a workaround to use the non-conventional `import *` convention
- Remove `esbuild-plugin-copy-directories` as it is unuse
- Inline modules that are only ever used once
- Inline `project-manager-shim` into `gui2` - it is only used during `gui2`'s dev mode
- Inline `content-config` into `client`
- Flatten `app/ide-desktop/lib/` to `app/ide-desktop/`
- Flatten `app/ide-desktop/lib/dashboard/` to `app/dashboard/`

# Important Notes
- As mentioned above, all remaining modules have been moved up from `app/ide-desktop/lib/` to `app/ide-desktop/`. It's not ideal but I'd rather hold off on moving them anywhere else before we have a consensus on what should go where.
- (That is to say, this may not be the final directory structure - but I figure it's fine to get *something* done so that hopefully the rest of the restructuring is simpler.)
2024-07-17 09:10:42 +00:00
somebody1234
418a6b5372
Single instance (#10552)
- Close #10169
- Open files in the existing instance of the IDE when double clicked.

# Important Notes
None
2024-07-16 17:51:38 +00:00
somebody1234
06274a2c5b
Fix React warnings (#10404)
Fix some React warnings:
- Fix warning about nested `button`s when close button is in tab button
- The fix for now is to change the outer `button` to a link without a `href`. It's not ideal but we still want to use the CSS that comes with buttons, we just can't have nested `button` elements in HTML.
- Fix warning about setting state outside of a `useEffect` when deciding to show Local category when user is not enabled
- Fix passing invalid `isInvalid` prop to plain HTML element in ToS modal

# Important Notes
None
2024-07-16 15:52:00 +00:00
somebody1234
cf9d757457
Even more dashboard fixes (#10541)
- Fix https://github.com/enso-org/cloud-v2/issues/1383
- Fix file download - both on Electron, and in browser
- Refresh versions list when uploading neww file version
- Fix app crashing when asset is opened in asset panel while switching to Local Backend
- Don't show asset id when asset is opened in asset panel, but user is on the Local backend, resulting in the internal Asset ID being shown
- Fix drag-n-drop
- ⚠️ `npm run dev` is NOT fixed in this PR - however it should already be fixed in another PR which has already been merged. This needs testing to confirm whether it is fixed though.

Other changes:
- Add support for "duplicate project" endpoint on Local Backend
- Fix downloading project from nested directory on Local Backend (not working)
- Refactor more E2E tests to use the "new" architecture
- Simplify "new" E2E architecture to minimize boilerplate

# Important Notes
- When testing downloads, both Electron and browser should be tested as they use completely separate implementations for how files are downloaded.
2024-07-16 09:55:45 +00:00
Kaz Wesley
11d2a44792
Cloud file browser (#10513)
https://github.com/user-attachments/assets/54cc375d-2a77-431c-af85-75fc872e2bcc

Closes #10167.
2024-07-15 15:22:51 +00:00
somebody1234
151438157e
Optimize assets table (#10522)
- Fix https://github.com/enso-org/cloud-v2/issues/1379
- Stop re-rendering the entire `AssetsTable` on every `AssetEvent`
- This is achieved by using `zustand` for fine-grained reactivity.

Other misc fixes:
- Fix "unique key prop" error in sidebar
- Vertically center asset panel toggle icon in top bar
- Limit width of asset names (show tooltip when asset name is too wide)

# Important Notes
None
2024-07-15 10:06:15 +00:00
Sergei Garin
9e19092288
Fix devtools (#10540)
Merging as requested bypassing a few checks to let stuff progress.
2024-07-12 12:41:34 +01:00
Kaz Wesley
017cf4f98e
Fix permissions style (#10534) 2024-07-11 11:14:03 -07:00
Sergei Garin
70887ea30c
Fix logout (#10524) 2024-07-11 14:34:33 +03:00
Kaz Wesley
32e843c614
Expose backend API to IDE (#10442)
Move `Backend` and supporting APIs from `dashboard` to `enso-common`.

Closes #10400.

# Important Notes
- The utility modules required by `Backend` have been moved to `enso-common`. Those defining general-purpose helpers for working with standard types are now in a submodule `utilities/data` to match the IDE organization; in the future we can merge them with the `util/data` gui2 subtree. Moved utilities are reexported from their dashboard locations, so that moved and not-yet-moved modules can be imported consistently.
- The `text` module has been moved to `enso-common`; the IDE doesn't have any localization mechanism yet, so we can share this one.
2024-07-10 21:04:37 +00:00
Sergei Garin
09521f9a39
Fix opening local projects (#10511)
Related #10510

Await in the middle of the `getProjectDetails` leads to a non-deterministic result (in case if project opens during the await we get placeholder data with status = 'opened'
2024-07-10 18:03:02 +00:00
Sergei Garin
4ce557b3d8
Add ability to choose a plan in enso devtools (#10499)
* Add ability to choose user plan in devtools

* move devtools into a dedicated folder

* use enterprize in mocks

* try fix issues
2024-07-10 20:46:54 +03:00
Sergei Garin
590526a7a6
Rename Organization -> Enterprise (#10502) 2024-07-10 12:47:28 +03:00
somebody1234
b55086de75
More dashboard fixes (#10494)
- Fix context menu floating some distance away from the right side when clicking near right edge
- Add a line beside nested categories to make it clearer that it's not a UI glitch
- Fix watch mode for electron app

# Important Notes
None
2024-07-10 09:04:20 +00:00
Kaz Wesley
bc92035683
Share tanstack QueryClient between dashboard and IDE (#10431)
* Share tanstack QueryClient between dashboard and IDE

Part of #10400.

* Lint

* Review: Use enso-common

* Remove outdated README

* Naming

* Fix

* Lint

* enso-common CODEOWNERS: GUI+Dashboard

* Review: Prepare for GUI to be run from cloud entry point

* Lint

* Lint

* Fix e2e tests

* Fix e2e tests in CI?

* Clean CI build

* Revert "Clean CI build"

This reverts commit 73f2fb7972.

* Fix redundant dependency

* Work around a vue-query bug

* Lint

* fmt
2024-07-09 11:01:10 -04:00
Sergei Garin
e4da96e943
Fix opening projects (#10433)
#### Tl;dr
- Closes: enso-org/cloud-v2#1338
This PR fixes bugs with opened projects. Now all projects close/open properly and list of opened projects stored in the single place

---

#### Context:
Few sentences on the high level context for the change. Link to relevant design docs or discussion.

#### This Change:
What this change does in the larger context. Specific details to highlight for review:
1. Removes a bunch of useEffects across the Dashboard page
2. Project status now a react-query state, can be reused across the app
3. Eliminated the need of `waitIntilProjectIsOpened`

---
2024-07-09 14:47:46 +00:00
somebody1234
9229010cb6
Dashboard fixes (#10423)
- Fix some of https://github.com/enso-org/cloud-v2/issues/1350
- Move close icon back to right hand side of tabs
- Change icon for Local category to a computer
- Fix rendering of buttons in the delete pop up
- Remove "Versions" and "Sessions" buttons in Local mode from properties sidebar
- Also remove "Shared with" and "Labels" in Local mode
- Show real path of all assets in properties sidebar when in Local mode
- Opening Settings properly closes the user menu again
- "Export" tooltip changed to "Download"
- "Open help chat" button removed for now

Notes:
- re: Download within a folder doesn't work - this is due to the frontend using a PM endpoint that doesn't support specifying the parent directory
2024-07-09 12:54:09 +00:00
somebody1234
30d97750bf
Replace Button variant="custom" with appropriate variant whenever possible (#10315)
Buttons were switched to `variant="custom"` as low hanging fruit in order to remove `UnstyledButton` (which was strictly inferior UX wise).

- Switch buttons to use `variant="submit"` or `variant="cancel"` as appropriate
- Replace both `ButtonBar` and `HorizontalMenuBar` with `ButtonGroup`

# Important Notes
None
2024-07-08 14:32:24 +00:00
Paweł Grabarz
d9972d547a
Migrate to pnpm (#10422)
Fixes #10197

# Important Notes
From now on, package installation will be using `pnpm install`. Installing it globally is fine for convenience, but it can also be used as `corepack pnpm install` without having to install anything other than node. For now, all other scripts are still invoked using `npm`, so we can still invoke them with usual `--workspace` setting. As far as I can tell that doesn't really have any other side effects and is identical as running the script through `pnpm run` in respective workspace project subdirectory.
2024-07-05 11:13:04 +00:00
James Dunkerley
891f176e9c
Auto create the root folder if not present. (#10444)
Adds `filesystem-exists` to Project Manager CLI.
If the root folder isn't present will add it at start up.
2024-07-04 14:58:47 +00:00
somebody1234
d5a04a767e
Fix errors in GUI WebSockets (#10421)
- Fix https://github.com/enso-org/cloud-v2/issues/1337
- Fix #10381 (same issue)
- This was caused by queued execution context tasks delaying the disposal of the WebSocket connections - I guess because the WebSocket is closed, either the queue never reaches that point, or retries take too long to reach that point?
- There was also another issue caused by the Dashboard incorrectly caching the `project`, causing the endpoint URLs to become outdated.

Misc changes:
- Change `Editor.tsx` to not return two different component trees. This avoids React unmounting and re-mounting the GUI app.

# Important Notes
None
2024-07-04 12:48:57 +00:00
Sergei Garin
3de873f97c
Fix searchbar visuals (#10436)
https://github.com/enso-org/enso/assets/61194245/27ea6c4a-e8cb-4e03-8932-f5d75918af0c
2024-07-03 18:20:17 +00:00
James Dunkerley
08ec3acdd4
Fade the background and darken text. (#10424)
Another go at getting colours right...

![image](https://github.com/enso-org/enso/assets/4699705/68bced90-fca5-41c9-a1c9-6ea0c29f274a)

Mute the background colour and darken text.

![image](https://github.com/enso-org/enso/assets/4699705/e0c4d5f1-82c9-4838-b7ff-a3887a59885b)
2024-07-02 17:21:20 +00:00
James Dunkerley
69b5f719e8
Adjust Colours. (#10417)
- Change the lightness of the component colours to match Figma.
- Remove the background image from tailwind.css.
- Alter the code editor background to be white.
- Make the selection colour much brighter in the dashboard.

![image](https://github.com/enso-org/enso/assets/4699705/4ae8f03a-bdeb-48cf-86eb-aa058a2a1b01)

![image](https://github.com/enso-org/enso/assets/4699705/eb5d4cf8-d275-4c0d-b876-4a29ce7768bf)

![image](https://github.com/enso-org/enso/assets/4699705/0df64403-75e5-4e44-a818-58cedbbcd3c9)

# Important Notes
Removed the `is-hidden-file` package from the project manager shim. It seems to be unreliable in Win11 and as just for local testing made just do dot file logic.
2024-07-01 20:01:18 +00:00
somebody1234
5b5279b896
Fix background color (#10397)
- Fix #10393
- Use correct background color
- Make background of Asset Panel white to match Figma design

# Important Notes
None
2024-06-28 12:54:57 +00:00
Sergei Garin
201eec3b84
Fix infinite callstack while opening a popover (#10391) 2024-06-27 20:48:03 +00:00
somebody1234
19d5bdb9da
Fix importing .enso-project files (#10379)
- Fix #10282

# Important Notes
None
2024-06-27 17:48:51 +00:00
Dmitry Bushev
dc7aa94348
Hide dotfiles on Windows (#10376)
related #10071

Request from @jdunkerley to hide all dotfiles on Windows.
2024-06-27 17:27:08 +00:00
Paweł Grabarz
2f7adb9deb
Fix missing dropdowns in constructor subexpressions (#10382)
Fixes #10341

<img width="487" alt="image" src="https://github.com/enso-org/enso/assets/919491/af946c1c-a27f-4ed8-8346-b5098e7d5f08">

Also added a new version of vue devtools that is embedded into the dev app itself, and has much better performance than the browser plugin.
2024-06-27 15:11:28 +00:00
Paweł Grabarz
410298e173
Implement markdown link syntax and "follow link" popup. (#10353)
Fixes #9907

Implements link support in the comment markdown editor. Supports both markdown-style links and auto-detection for raw URLs.

https://github.com/enso-org/enso/assets/919491/b38f860a-ee4a-41a8-b936-41e9ef1602b9


https://github.com/enso-org/enso/assets/919491/059beca2-7737-41a1-a136-31a42ef9ee48
2024-06-27 14:18:33 +00:00
Sergei Garin
d95ebd4836
Fix horizontal scrolling in settings (#10384) 2024-06-27 12:33:54 +00:00
Sergei Garin
88eeacf78b
Fix project manager overfetching issue (#10373)
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2024-06-27 12:04:31 +03:00
somebody1234
5dd10e1780
Search bar for settings (#9887)
- Close https://github.com/enso-org/cloud-v2/issues/1198
- Add search bar for settings
- Note that, *unlike* the asset search bar, it has neither suggestions nor tags (name:, description:) - I don't think those add any value here (and definitely would complicate the implementation by a lot)
- Convert settings objects to JS so that they can be filtered by search

UX changes required for this PR:
- Switched `MembersSettingsSection` to use `react-query` to avoid loading the members list every time a user types into the search bar

Incidental changes added to make this PR simpler:
- Refactor search bar to be provided by a React Context so that state no longer needs to be hoisted all the way up into `Dashboard` and back down to `TopBar`

# Important Notes
- While I think highlighting the tab of the currently visible section would be a nice UX upgrade, I think it might be a bit complex for at least this initial PR.
- It's definitely possible, but almost certainly requires Intersection Observers, plus a new constant to map each Settings Section ID back to its parent Settings Tab ID
2024-06-27 07:24:07 +00:00
Sergei Garin
2fde378b15
Fix close button being shown off the tab (#10375) 2024-06-27 06:10:19 +00:00