Commit Graph

569 Commits

Author SHA1 Message Date
Adam Obuchowicz
736134e491
Add traces to integration tests + suppress one flaky assertion. (#11595)
Fixes #11604

Most issues were caused by a problem with Project List flooding the network with its requests - this was fixed on develop.
But one assertion was flaky - it assumed we will see the "real" run result on `write` node, but sometimes it is immediately overwritten by dry run.

But the most important part of this PR is adding traces to Electron packages - it's should be much easier now to debug E2E test failures.

Also renamed the previously misnamed "E2E tests" to "[GUI] integration tests".
2024-11-27 14:09:59 +00:00
Sergei Garin
8e9e7650a3
Add storybook support (#11522) 2024-11-21 10:52:20 +00:00
Sergei Garin
58512e701e
Show docs on Dashboard (#11391)
Closes: https://github.com/enso-org/cloud-v2/issues/1445

PR is more or less ready for feedback,CR, and QA.

# Read before looking into:

**Known issues:**
- [x] Need to adjust timings for the animations (they're a bit out of sync).
- [x] After the latest rebase, the side panel might expand while clicking on the sidebar toggle.
- [ ] Images no longer display. 🤦
- [x] Need to restore the functionality around spotlighting a component


Demo:

https://github.com/user-attachments/assets/8cec9ec0-4753-482e-8637-f3857b4396a5
2024-11-15 12:12:55 +00:00
Sergei Garin
9dc4e9b090
Redesign versions checker dialog (#11540)
* fix versions checker dialog

* Adress the issues

* Fixes

* Fix integration tests

* fix prettier

* Fix dialog

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2024-11-15 10:49:30 +03:00
Ilya Bogdanov
3d38b7174f
Add Write button to component menu (#11523)
Closes #10486

https://github.com/user-attachments/assets/df492946-0c54-481e-8499-992b3ae9e35d
2024-11-13 19:45:32 +00:00
Paweł Grabarz
a83297b7db
Drop git dependency on enso-bot repository (#11539) 2024-11-12 18:25:19 +00:00
Adam Obuchowicz
86c59469d0
Increase timeout and vite version (#11492)
1. The electron test hit timeouts from time to time, probably because of slow response from the engine: increased timeout.
2. Unify vite version across packages.
2024-11-08 08:43:02 +00:00
Paweł Grabarz
9703cb1dd0
Align esbuild versions across packages (#11459)
Part of #11458

Should get rid of the "magical" CI failure: https://github.com/enso-org/enso/actions/runs/11576387008/job/32225209090#step:7:254
2024-11-05 23:43:27 +00:00
Adam Obuchowicz
908f426cac
A set of little improvements. (#11386)
1. Bumped eslint and its plugins versions, and autofix new errors (mostly eslint disables which were no longer neccessary)
2. ~~Replace eslint with eslint-p which speed up linter a bit (at least on my machine)~~ - CI machines don't like it.
3. Fixed/worked around one problem with flacky selection _unit_ tests.
2024-10-24 07:38:08 +00:00
somebody1234
5faddf52f0
Fix ESLint errors, add some docs (#11339)
- Fix ESLint errors
- Add documentation for *some* functions with blank documentation

# Important Notes
None
2024-10-21 12:56:39 +00:00
Sergei Garin
3711b25fa7
Allow updating local assets (#11314)
* Allow updating local assets

* Update shim

* Fix duplicate upload

* Manually invalidate once we upload file

* Fix queryKey

* upd prettier ignore

* revert prettier ignore
2024-10-15 14:32:52 +03:00
Adam Obuchowicz
4a249688e8
Unify Frontend App (#11287)
Fixes #10668
Fixes #8484

Summary of changes:
* `gui2` and `dashboard` are merged to `gui` directory. Various configs were merged (package.json, playwrigth, TS...). The src and e2e directories are split to `dashboard` and `project-view` for now.
* E2E tests run two servers on different ports. The tests are organized in projects. This is also to be changed soon, as we plan to [use better mocking in GUI/ProjectView](#9726)
* ESlint configs were merged to central `eslint.config.mjs`, and that file was moved to repository root. We kept the dashboard lints, but they can be relaxed. The dashboard code was changed to meet GUI lints.
* Also, the versions of linter plugins were bumped, and code fixed.
* The ide-desktop/client no longer has `dashboard` dependency - the only type used there was moved to common package.
* `common` package moved to `app`.
2024-10-11 18:23:02 +00:00
somebody1234
7a00e6ef26
Dashboard improvements (from 24 September 2024 + 30 September 2024) (#11219)
- Close https://github.com/enso-org/cloud-v2/issues/1508
- ⚠️ Labels modal - add selection indicator where user can (de)select multiple labels
- Checkboxes currently still cause the dialog to (incorrectly) close
- Edit datalink -> select enso secret -> options are too narrow for enso path. Strip enso://Users(Teams), if possible make the options list longer on the left side
- Added (or rather, re-enabled via CSS) horizontal scroll instead
- Make Versions, Sessions, Settings as tabs similar to documentation panel in graph editor
- Edit description in context menu should open asset panel with description input active
- Edit secret should be moved to asset panel (same like datalink)
- Dim background when "edit description", "edit secret", or "edit datalink" are clicked/triggered via shortcut to highlight input
- Hide unused (= no backend support) columns and icons: accessed by projects and accessed data
- *Partial* frontend fixes for https://github.com/enso-org/cloud-v2/issues/1529
- (1) Fix settings title being horizontally centered and split on multiple lines
- (2)  backend issue
- (3)  out of scope
- (4)  backend issue
- (5)  out of scope
- (6)  out of scope
- (7)  backend issue
- (8)  already fixed in #11126
- (9)  out of scope (potentially requires a way to trigger a tooltip on a disabled button)
- (10)  out of scope
- (11)  out of scope
- (12)  out of scope
- (13) URL encode `enso://` URLs in "copy as path"
- (14) Double click on datalink make asset open and close (not sure if this has already been fixed)
- (15) Clicking anywhere on Asset Panel no longer deselects assets (not sure if this has already been fixed)
- (16)  addressed in #11268
- (17) Make list of labels in Asset Panel (right sidebar) horizontal instead of (incorrectly) vertical
- (18) Only show "Billing" settings tab for organization admins
- Use "workspace" instead of "network" icon for project tabs
- Other fixes:
- Fix Asset Panel (right sidebar) not being able to be toggled off if it is temporarily open (when triggered from editing description, or editing secret, or editing datalink)
- Make "cancel" and "reset" buttons default to outline variant, instead of ghost variant
- Fix style of dropdown
- Change Datalink editor dialog so that object keys are above inputs, not beside them. This gives inputs much more horizontal space for children of deeply nested objects.

Issues left to fix:
- Checkboxes currently still cause the dialog to (incorrectly) close
- "Edit description" actions etc. do not properly focus inputs

Issues left to do (out of scope):
- Show username of user currently using a project (possibly as tooltip?) if the project is currently disabled.
- Dropdown and autocomplete entries should be in their own dialog, so that they can escape the parent dialog if they are too long

# Important Notes
None
2024-10-09 09:10:49 +00:00
Adam Obuchowicz
c7cc5f0be0
Run integration in CI. (#11198)
Added a step for packaging IDE which runs integration tests.

This is an additional step, not a job, because here I'm sure the package will exist and won't be built unnecessarily twice. Technically I could make a job downloading it from GH action, but didn't want to invest time to rust scripts. Once Bazel will be fully introduced, the integration test will be improved.

# Important Notes
Fixes #8487
2024-10-03 13:41:22 +00:00
James Dunkerley
41000b88f1
Fix signing yet again. (#11206)
- Add a new file to list of things to sign...
2024-09-27 20:58:17 +00:00
Adam Obuchowicz
e6b904d012
Integration Tests (#11186)
A stub for integration tests to be run locally; part of #8487

To run tests, you need to:
1. Build IDE package: `./run ide build`
2. set ENSO_TEST_USER and ENSO_TEST_USER_PASSWORD to some working credentials (I used my personal account, but there will be also test user soon)
3. run `corepack pnpm -r --filter enso exec playwright test`

The tests are run with a separate projects directory set up in tmpdir, so any local workspace dir is not affected.

The only test so far just checks if it's possible to log in and create a new project.
2024-09-27 15:11:13 +00:00
Hubert Plociniczak
d4ecac5b68
Don't coerce arg passed to electron (#11200)
Approving to trigger a nightly,

Apparently argument was already a bool.
:fingers-crossed: this is the last fix.
2024-09-27 14:06:59 +01:00
somebody1234
5afcb15ff2
Use color Google and GitHub icons in Login screen (#11194)
- Make Google and GitHub icons full color again

# Important Notes
None
2024-09-27 11:19:10 +00:00
somebody1234
f0d02de5c8
E2E tests for setup flow (#11148)
- Add E2E tests for setup flow
- Remove `styled.Checkbox` in favor of `ariaComponents.Checkbox`
- Remove `styled.Input` in favor of `ariaComponents.Input`
- Remove `styled.Button` in favor of `ariaComponents.Button`
- Rename unnecessary `Settings` prefix from components in `Settings/`

# Important Notes
None
2024-09-27 07:05:10 +00:00
somebody1234
c18d581c3e
Fix rest of user/team permissions checks and "new label" dialog (#11126)
- Fix remaining permissions checks to check for team permissions as well, not just user permissions
- Fix https://github.com/enso-org/cloud-v2/issues/1498
- Switch "new label" dialog from `Modal` (old) to `Popover` (new)
- Fix https://github.com/enso-org/cloud-v2/issues/1500
- Show correct project state even for projects not opened as tabs
- Unconditionally show project play icon instead of network (graph) icon, even when user lacks access (no exec permissions, or in the trash category)
- Disable (attempting to) open project in trash via double click

# Important Notes
None
2024-09-25 13:15:52 +00:00
James Dunkerley
3f748fdf5c
Change new project text (#11152)
Following feedback from @NedHarding and @AdRiley
![image](https://github.com/user-attachments/assets/820f53e6-70ef-4355-a8a3-52dda1fce6ab)

![image](https://github.com/user-attachments/assets/aa474c2c-73d3-4355-a4aa-ef3990ff6207)
2024-09-23 16:51:32 +00:00
Hubert Plociniczak
c4ace00a4d
Disable signing artifacts for PRs and develop (#11094)
* Disable signing artifacts for PRs and develop

Added `*-sign-artifacts` to disable/enable signing. By default it is
true, except for PRs and develop.

* nit

* typo

* lint

* linting
2024-09-23 10:00:27 +02:00
somebody1234
cad50a5b63
Dashboard fixes (#11059)
- Fix https://github.com/enso-org/cloud-v2/issues/1482
- Fix "clear trash" not doing anything
- Show "shared with" column as "root folder", but only owners (TODO: actually it should only show the first item in the permissions list)
- Fix https://github.com/enso-org/cloud-v2/issues/1480
- Fix importing .enso-projects not doing anything
- Could not repro crash. Also note that we do want to be able to upload files
- Partly address https://github.com/enso-org/cloud-v2/issues/1479
- Remove "invite" and "share" buttons on top right
- Hide "upgrade" button on top right if on Team or Enterprise plan
- Warn when deleting folder (for now warns for all folders otherwise we may need to expand the folder to know whether it is empty)
- Fix importing projects via upload button
- Fix importing projects via drag
- Hide cut on running projects
- Partly address https://github.com/enso-org/cloud-v2/issues/1481
- Fix "edit secret" not showing dialog
- Fix multiple selection context menu in Team space

# Important Notes
None
2024-09-16 09:03:49 +00:00
Hubert Plociniczak
8fab4f5ea6
Workaround for Electron sanbox issues on Ubuntu (#11038)
* Workaround for Electron sanbox issues on Ubuntu

Disabling sanbox, while a non-secure option, appears to be currently the
only option to workaround Electron issues on latest Ubuntu (24.04).
When passed to Enso it is treated as a regular argument, preventing the
start of the product.
This change treats `--no-sandbox` specially by ignoring all arguments
that precede it (and including itself).

* address review
2024-09-13 23:25:32 +02:00
somebody1234
066d4ea609
Local dashboard fixes (#11066)
- Fix https://github.com/enso-org/cloud-v2/issues/1479
- See #11059 for rest of fixes.
- When you add a new folder it is now selected and in rename mode
- Double click opening no longer adds (2) to the name when there are no duplicates
- When dragging a file to upload, the "Drop here to upload box" now properly disappears after dropping
- Fix removing folder from favorites list

Other changes:
- Switch "delete user" modal to new "Dialog" and "Form" components instead of old "Modal" and HTML "form" components

# Important Notes
None
2024-09-13 16:49:14 +00:00
Sergei Garin
b5122348da
MFA (#10875)
* Draft checkbox component

* Fixes in Setup Page

* Invite Users

* Add usergroup setup after subscription

* Fix comments

* Refetch Interval + Feature Toggles

* Fix lint

* Address issues

* Fix Dialog

* Assign users to the user group

* Use transitions to navigate between steps

* Small fixes

* Improve styling for scrollbars

* Fix typescript

* OTP input

* Fix setup logic

* Show Setup dialog only for admins

* Add otp

* OTP input

* 2FA settings section

* Small improvements

* Fixes

* Small fixes

* Remove w-full

* TOTP at login

* Fixes in 2FA

* Fixes in types

* Fix totp

* Merge fixes

* Merge fixes x2

* Merge fixes x2

* Fix types

* Fix types

* Fix cancel button

* Fix reset button

* Fix types

* Fix prettier

* Fix prettier

* Fix lint

* Fix lint

* Fix control

* Address prettier

* Fix MFA mock

* Fix sign in message

* Fix tests

* Address CR

* Fix types
2024-09-13 16:00:31 +03:00
James Dunkerley
8eb9e21e40
Updated feature list (#11061)
Update the list of what is in what...
![image](https://github.com/user-attachments/assets/65abca35-9e39-4a7c-a001-230923ff04d3)
2024-09-12 20:09:00 +00:00
Adam Obuchowicz
497da82b10
Fix file associations on Windows + opening project bug (#11030)
* Fixes [#10983](https://github.com/enso-org/enso/issues/10983) The `ext` field was not set according to the documentation in rust
* Also discovered a regression in opening project by passing argument/clicking the file: we store the file location as `file://` URL, but without caution, it made a havoc with windows paths.

# Important Notes
- [x] **Need to confirm that everything works on macOS** (installation with file associations + opening project when process is running and when not)
2024-09-11 10:44:52 +00:00
Kaz Wesley
1bcbc00004
Update Vue (#11016)
See: https://blog.vuejs.org/posts/vue-3-5
2024-09-10 13:18:35 -04:00
James Dunkerley
7b4b635fa8
Add Row Number starts at 0 and other tweaks. (#11017)
- Change default to be from 0.
- Alter widgets so always shown.
- Tweaks to the Welcome screen following review with Product Team.
- Use 0 for default seed option in `Index_Sub_Range.Sample`.
- Add ALIASES for aggregate and running.
- Add more imports for `Widgets.enso` to fix extension methods not working.
2024-09-09 20:26:59 +00:00
James Dunkerley
7556d8f794
Add file to be signed. (#11010) 2024-09-09 11:49:16 +01:00
James Dunkerley
a86e37b36f
Expand Templates (#10994)
- Update all the templates to the newest versions.
- Fix any defects in the templates.
- Update the rust and scala code to package and download the templates.
- Update the front end to have images for every template (with some Gemini assists).

https://github.com/user-attachments/assets/59a1f845-f409-45bb-9c77-fe3a2d1262b1
2024-09-09 10:27:04 +00:00
Sergei Garin
f418f49ea5
Fix edge cut off in plan select at first (#11007)
- Closes: enso-org/cloud-v2#1454

This PR fixes the Plan selector grid. Also it aligns cards vertically
2024-09-09 08:38:42 +00:00
somebody1234
9ec60299e4
Local Dashboard fixes (#10958)
- Fix most of https://github.com/enso-org/cloud-v2/issues/1459
- Prevent click + click from triggering rename on Windows and Linux. Behavior is preserved on macOS.
- Fix text in Drive when root folder is empty
- Properly remove the "Drop here to upload box" after a file is dropped
- "Copy as path" now unconditionally uses `/` for path delimiters, even on Windows
- Duplicating a project in the root folder on Windows no longer errors
- Extra folders in the sidebar now (correctly) show folder name, rather than path, on Windows
- Mouse pointer when dragging to a folder is now move, not copy

Not addressed:
- [no-repro] Tooltips should have some latency before showing up
- This should already be the case, although it may work weirdly (once the tooltip opens, there is no delay on subsequent tooltips opening until the last tooltip closes.)
- [no-repro] Ctrl-click should add to selection
- Column width should be resizable
- This requires a refactor and therefore is considered out of scope for this PR
- [no-repro] Choosing root folder needs a file browser
- [no-repro] Choosing root folder doesn't do anything get the same list as we had before
- [no-repro] Open in explorer didn't work in a file but did on project - possibly fixed by path changes.
- [no-repro] Opening an enso-project by double clicking resulted on it being renamed with a (2)

Related changes:
- Make "root directory" picker's file browser default to the current root directory

# Important Notes
None
2024-09-08 06:54:41 +00:00
somebody1234
3420a05a84
Dashboard improvements 08/26/2024 (#10946)
- Address part of https://github.com/enso-org/cloud-v2/issues/1453
- Many of the other issues are addressed in other PRs.
- Username in "Set username" dialog defaults to user email
- Hide "Share with" column for Free and Solo plans
- Reorder categories in left sidebar
- Previous: Cloud, My Files, Recent, Trash, ...Users, ...Teams
- New: Cloud, Me (formerly My Files), ...Users, Teams, Recent, Trash

- Fix #10968
- Show column toggles on Local category too (previously was explicitly specialcased to only be visible on Cloud categories as a remnant of the old design with the backend switcher at the top)
- Added to this PR as this PR already touches the column toggles

# Important Notes
None
2024-09-06 15:13:56 +00:00
somebody1234
3bcc694af9
Settings improvements (#10924)
- Address https://github.com/enso-org/cloud-v2/issues/1457
- Show x instead of a circle for close tab icon on Windows and Linux
- Free / Solo no longer shows Organization, Members, User Groups, and Activity Log
- Invite button should only be there for the admin in Team or above (should already be present)
- Should list the required symbols in the password change.
- Changing headshot appeared briefly and then disappeared.
- Fix https://github.com/enso-org/cloud-v2/issues/1455
- The `Alert` component no longer focuses itself on every keystroke.
- Fix #10988
- Same issue as above.

Other related changes:
- Fix word wrapping in tooltips when a word is wider than the entire tooltip
- Add word wrapping to "members" table in members tab
- Limit length of "email" column of members table in "user groups" tab
- Hide empty sections
- Add text to empty "user groups" table in "user groups" tab
- ~~Close "set organization name" modal when organization name is set~~
- Already fixed by another PR

# Important Notes
None
2024-09-06 14:29:26 +00:00
somebody1234
c87053d600
Compute correct root path for Solo users (#10993)
- Change paths for cloud assets for users on Solo plan to be `enso://User/<username>/<path>` instead of the legacy `enso://<username>/<path>`

# Important Notes
None
2024-09-06 13:58:12 +00:00
Sergei Garin
d242ed18bb
Mark cloud as beta (#10992) 2024-09-06 14:17:57 +01:00
somebody1234
fa1e14945a
Fix permissions for Asset Panel for Team-owned assets (#10929)
- Fix https://github.com/enso-org/cloud-v2/issues/1452
- Previously, the team's permission was not being detected as the user's own permission

# Important Notes
None
2024-09-06 11:18:14 +00:00
Sergei Garin
3be8770a0a
Setup Screen Improvements (#10844) 2024-09-05 16:11:02 +00:00
Sergei Garin
77183e50e9
Adjust Refresh Interval in Assets table (#10775) 2024-09-04 16:22:50 +00:00
somebody1234
dc5fb1554a
Remove optimistic query hooks (#10907)
- One of many PRs that should improve Dashboard performance.
- `useMutationState` seems to be taking quite a bit of time (224ms out of 1199ms) in this trace on Firefox:
- However, I haven't really noticed any real difference, although I haven't tried too hard to find a differene
- That said, this also vastly simplifies the code in `backendHooks.ts` (by removing the vast majority of the methods)
- As a downside, well, we will no longer have optimistic updates - but I guess we are preferring a stale-while-revalidate approach anyway (React Query) when it doesn't degrade UX

![image](https://github.com/user-attachments/assets/61899313-7aaf-4158-b382-0a293a97bb71)

![image](https://github.com/user-attachments/assets/f025dd7d-7755-4000-81cd-f57efce4c4bc)

# Important Notes
None
2024-09-03 11:17:30 +00:00
Sergei Garin
4709076061
Improve the Signup experience (#10926)
Closes: enso-org/cloud-v2#1460

This PR refactors the signup experience.
1. The confirmation page is redesigned. Now it shows instructions on what user should do next
2. Once user sign up, we navigate him to the next page, where user can either open a email client and follow the link or enter the code manually.
2024-09-02 15:56:16 +00:00
James Dunkerley
018b676607
Update what needs to be re-signed. (#10922) 2024-08-29 20:25:36 +02:00
somebody1234
848e8699d7
Dashboard UX improvements (#10868)
- Fix dropdown focus issues
- Keyboard navigation to/from dropdowns and between options
- Mouse focus to/from dropdowns (there is no mouse navigation between options)
- Use new inputs in "new secret" modal
- Simplify form types
- Switch activity log date filters to use `DatePicker` which is a wrapper around a `react-aria-components` input
- Update `react-aria-components`
- Prevent Navigator2D from handling event if it has already been `defaultPrevented`
- Switch from `*` imports to `{}` imports for various files
- Switch assets table row headings to use new components

# Important Notes
None
2024-08-29 05:54:21 +00:00
somebody1234
0ef074b8e9
Require accepting Terms of Service and Privacy Policy when registering (#10772)
- Frontend part of https://github.com/enso-org/cloud-v2/issues/1427
- Show ToS immediately, before login screen
- Add entries to devtools to be able to clear ToS

# Important Notes
None
2024-08-28 17:51:31 +00:00
somebody1234
01c49ce7a2
Support multiple local directories (#10664)
- Add support for multiple local directories
- Save primary local root directory in `localStorage`
- Fix primary local root directory not updating in some conditions
- Save additional local root directories in `localStorage`
- Add buttons to browse for and reset primary local root directory

# Important Notes
None
2024-08-28 16:06:29 +00:00
somebody1234
1c76ad50d1
Accept/decline invite to new organization (#10822)
- Frontend part of https://github.com/enso-org/cloud-v2/issues/1403
- Add a new dialog (like the Version dialog) that appears over the Drive view (unlike the ToS dialog which appears in place of the Drive view)

# Important Notes
None
2024-08-22 11:49:12 +00:00
somebody1234
8d7b684019
User & Team spaces (#10477)
- Depends on https://github.com/enso-org/cloud-v2/pull/1344
- Implement https://github.com/enso-org/cloud-v2/issues/1342
- Refactor `Category` type to allow for extra metadata (user/team id and home directory path)
- Show list of users and teams in sidebar
- Add "My Files" category for users with team/enterprise plan - because in that case, the directory opened by the "Cloud" category is the organization's root directory, not the user's root directory

# Important Notes
None
2024-08-21 18:10:56 +00:00
somebody1234
0fc09f8723
Show errors in forms in authentication flow (#10739)
- Fix https://github.com/enso-org/cloud-v2/issues/1422
- Show errors on "login" page by switching to custom Form component
- Also convert "registration", "reset password" and "forgot password" pages to use the new component
- Preserve email when navigating between auth pages

# Important Notes
None
2024-08-13 11:50:07 +00:00