Commit Graph

1443 Commits

Author SHA1 Message Date
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
marthasharkey
32a1894b04
only show filter/sort node button if node is a table (#10957) 2024-09-06 10:16:45 +00:00
marthasharkey
836953289e
Wip/mk/scatter plot visual improvements (#10959)
* add mutliseries support to d3

* fix types

* fix scales when multiseries

* fix tests

* fix all tests

* basic hardcoded legend working, on only one plot at a time

* basic legend

* legend populating correctly with wrong label names

* legend with tooltip for full length names

* remove unused variale

* key on all nodes

* tooltips on points and labels

* turn on/off d3 'brush' so tool tip is availible to the user

* use colourScale

* fix type problems

* use default colour

* rename variables and remove unneeded code

* fix label

* sort labels in legend

* is multiseries show legend and dont show y label

* address comments

* fix type problem

* Update distribution/lib/Standard/Visualization/0.0.0-dev/src/Scatter_Plot.enso

Co-authored-by: James Dunkerley <jdunkerley@users.noreply.github.com>

---------

Co-authored-by: James Dunkerley <jdunkerley@users.noreply.github.com>
2024-09-06 10:12:55 +01:00
Ilya Bogdanov
ab246539d1
Move component browser help (#10900)
Closes: #10592

https://github.com/user-attachments/assets/12f3d155-b4ea-4c78-a8a5-fb771c80f3f2
2024-09-06 09:00:25 +00:00
AdRiley
2819b42fd5
Add select icon (#10986)
![image](https://github.com/user-attachments/assets/dd30a11b-f2d0-4164-a5e7-228f349c9626)
2024-09-06 07:38:15 +00:00
Sergei Garin
3be8770a0a
Setup Screen Improvements (#10844) 2024-09-05 16:11:02 +00:00
James Dunkerley
e6ea3b2607
Default Project, Templates and Docs (#10980)
- Linting updates.
- Add an `Examples.welcome` and adjust the start up project to use it.
- Merge all of Cass's work into the source code.
- Make example render in mono space font.
2024-09-05 14:36:08 +00:00
Kaz Wesley
ecaee13056
Fix small-plus alignment when visualization is open (#10965) 2024-09-05 09:11:36 -04:00
Paweł Grabarz
cab161a602
Prevent node name collisions when drag-and-dropping multiple files (#10979)
# Important Notes
Fixed a few warnings in dashboard caused by missing or misplaced key attributes.
2024-09-05 12:27:18 +00:00
Sergei Garin
77183e50e9
Adjust Refresh Interval in Assets table (#10775) 2024-09-04 16:22:50 +00:00
James Dunkerley
26678f3e71
Couple of small fixes for vizzes. (#10963)
- Improve logic for white space rendering (render leading/trailing in partial, change the tab rendering).
- Escape HTML characters.
- Fix for the geo viz starting zoom and center.

![image](https://github.com/user-attachments/assets/ac8c8893-14b5-4242-ba82-b821797546a1)

![image](https://github.com/user-attachments/assets/a179b4ad-d295-4783-97d9-803b6958cb95)

![image](https://github.com/user-attachments/assets/e4be7a81-28ff-4e79-b6e0-9aadae059270)
2024-09-03 20:17:08 +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
Ilya Bogdanov
da3490ebb7
Disable record button temporarily (#10953)
Related: https://github.com/enso-org/enso/issues/10949
2024-09-02 19:51:35 +00:00
Ilya Bogdanov
3442a3a086
Ignore port updates on removed nodes (#10950)
Fixes #10888, #10925
2024-09-02 19:43:15 +00:00
Ilya Bogdanov
3a310dce87
Fix component list scrolling (#10937)
Fixes https://github.com/enso-org/enso/issues/10927
2024-09-02 17:09:43 +00:00
marthasharkey
9e5773a865
text format selection bug (#10940)
* re introduce dropdown functionality

* on change re draw row heights
2024-09-02 17:24:01 +01: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
Ilya Bogdanov
de5ef92e36
fix viewport jumping when adding new nodes (#10920)
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
2024-08-31 09:42:19 +03: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
50d919d952
Simplify button variants (#10828)
- Remove "cancel" variant in favor of "outline" variant
- Remove "bar" variant in favor of "outline" variant
- Buttons in the Drive Bar have been switched to a new "outline-light" variant that is the same as the "outline" variant except with the border color of the "bar" variant
- Rename "tertiary" variant to "accent"
- Remove `components/Input` and `components/ControlledInput` which are no longer used

# Important Notes
None
2024-08-28 17:05:20 +00:00
somebody1234
2c1fe33f3f
Update launch.json and flake.nix (#10854)
- Update `launch.json` to use PNPM-compatible commands
- `launch.json` is currently used for "Run and Debug" configurations in VS Code
- Update hash of rust-toolchain in `flake.nix`
- `flake.nix` is used in combination with direnv to download and add the appropriate tooling binaries to `$PATH`, on systems with direnv (and Nix) installed

# Important Notes
None
2024-08-28 16:17:48 +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
Kaz Wesley
92995d191f
Fix deletion-failure bug (#10888) (#10889)
Fix intermittent deletion failures (#10888)

- Fix bug in deletion logic (the `syncModule` itself was passed to a function that tried to commit it as an edit)
- Refactor APIs to avoid similar bugs (remove `direct` edit option)

# Important Notes
- `graphStore.getMutable` provides safer access to some of the functionality that was exposed by `direct` editing.
- `graphStore.transact` has been eliminated; it was redundant with `graphStore.batchEdits`.
2024-08-28 14:28:43 +00:00
Kaz Wesley
bd5ab43cf6
Improve component comment positioning (#10885)
Implement #10691
- Comment moves out of way of menu as needed.
- Animate comment and error shifting when menu is toggled.
- Match comment/component spacing to component/error spacing.

https://github.com/user-attachments/assets/7daa342d-a7f1-4f63-b934-1519724a59a5
2024-08-28 14:10:25 +00:00
Kaz Wesley
27f7d14140
Fix collapsed function renaming (#10884)
Fix #10763 and related issues:
- Fix bug preventing `WidgetFunctionName` from matching
- Fix missing icon when `WidgetFunctionName` matches
- Add testing for `WidgetFunctionName`
- Fix `WidgetFunctionName` padding
2024-08-28 11:05:19 +00:00
somebody1234
bd3ebc5000
Fix "Missing queryFn" error when reloading with project openn (#10894)
- Fix https://github.com/enso-org/cloud-v2/issues/1451
- Fix "Missing queryFn" error due to
- This is done by providing a default value to the query. A more ideal solution may be to use the full query with the `queryFn`, but this is not an option here as the full query for this query requires a lot more info, some of which we don't have.

# Important Notes
- Test opening a top-level project and then refreshing
- Test opening a project in a nested directory and then refreshing (to make sure the query is not being executed just because the corresponding row is visible)
2024-08-27 07:40:27 +00:00
Kaz Wesley
582b7f9a2e
Fullscreen improvements (#10876)
Implements #10686.
- Add fullscreen modes to doc editor and code editor
- Contain fullscreen view within graph editor tab
- Prevent persisting or synchronizing fullscreen state
- Animate transition

https://github.com/user-attachments/assets/e88801c2-8c56-494b-8500-95fbd76c4322
2024-08-23 13:00:44 +00:00
Paweł Grabarz
7653280e33
Remove all usages of unstable rust features (#10813)
Removed all `#![feature]` flags, except for `#![feature(test)]`. Once parser benchmarks are ported to something that is compatible with stable rust, we will be able to switch to it.
2024-08-22 14:09:17 +00:00
somebody1234
60ae6f9bdb
Hotfix opening links in browser (#10869)
Fix regression causing the link to user registration to not be opened in browser.

# Important Notes
None
2024-08-22 12:41:06 +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
Kaz Wesley
6261018591
Fix circular menu z-index and position (#10867)
Dropdown now covers circular menu (fixes issue from #10666).

<img width="295" alt="Screenshot 2024-08-21 at 07 59 24" src="https://github.com/user-attachments/assets/9793b185-a575-4a05-8964-da35c26fecc9">
2024-08-21 20:48:53 +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
Adam Obuchowicz
c294e05fd7
Do not propagate arrow events from Table Widget (#10859)
A trivial fix for bug reported in https://github.com/enso-org/enso/issues/10856

Without it, navigating selection in table widget is also displacing node.
2024-08-21 13:19:52 +00:00
Adam Obuchowicz
a9198c8d06
Make tab accept the text input (#10857)
Fixes #10855

Added handler for `tab` key. We cannot accept input on blur, as sometimes it should not be accepted (as when user clicks at drop-down option where text widget was providing filtering pattern).
2024-08-21 13:08:23 +00:00
Kaz Wesley
45a54b93cd
Dropdown improvements (#10853)
Implement changes requested in #10666.

#### Align left edge with widget

Top-level argument (edge aligned to TLA boundary):

<img width="639" alt="Screenshot 2024-08-20 at 10 10 27" src="https://github.com/user-attachments/assets/eb1712bf-1cbc-4a5d-bdb6-7458f94a27f4">

Nested (edge aligned to start of widget text):

<img width="519" alt="Screenshot 2024-08-20 at 10 11 47" src="https://github.com/user-attachments/assets/477ffe6e-ac00-41fb-bfb0-4d22c25c0f8b">

#### Adjust height

<img width="134" alt="Screenshot 2024-08-20 at 10 06 20" src="https://github.com/user-attachments/assets/17ac485e-deeb-4afd-973b-fc8c182ffb1d">

# Important Notes
- Also some HTML/CSS simplification in `CircularMenu`.
2024-08-21 12:53:11 +00:00
Adam Obuchowicz
2919e5833c
Update filtering in new CB (#10847)
Fixes #10604

Removed many parts of `filtering.ts` and `input.ts` - now our filtering is not "context aware", in the component browsing mode we just take entire input as filtering pattern.

[Screencast from 2024-08-20 11-49-20.webm](https://github.com/user-attachments/assets/23137036-5f46-4982-bac7-9196461e7c9c)

# Important Notes
As we agreed during refinement, I did not focus on exact unit testing - we need to first try the new design out.
2024-08-21 10:59:45 +00:00
Adam Obuchowicz
22263e8ff9
Y-docs: Fix write capability recovery (#10851)
When receiving no write capability in `text/openFile` response, the method returned error without synchronizing, but session state stayed at 'Opening' - this resulted in automatic success on the next retry without actually trying.

Added additional state to handle recovery from missing write capability errors.

# Important Notes
tested by applying the patch below (which simulates problem reported by James):

```diff
diff --git a/app/ydoc-shared/src/languageServer.ts b/app/ydoc-shared/src/languageServer.ts
index e1403f50420247575b437df8c603e5f1701b5e1d..753bbf9f9f449f6130c79040e44607ce0c308f7f 100644
--- a/app/ydoc-shared/src/languageServer.ts
+++ b/app/ydoc-shared/src/languageServer.ts
@@ -3,6 +3,7 @@ import { bytesToHex } from '@noble/hashes/utils'
import { Client, RequestManager } from '@open-rpc/client-js'
import debug from 'debug'
import { ObservableV2 } from 'lib0/observable'
+import { wait } from 'lib0/promise.js'
import { uuidv4 } from 'lib0/random'
import { z } from 'zod'
import { walkFs } from './languageServer/files'
@@ -268,9 +269,25 @@ export class LanguageServer extends ObservableV2<Notifications & TransportEvents
return this.request('session/initProtocolConnection', { clientId }, false)
}

+  private openCalls = 0
/** [Documentation](https://github.com/enso-org/enso/blob/develop/docs/language-server/protocol-language-server.md#textopenfile) */
openTextFile(path: Path): Promise<LsRpcResult<response.OpenTextFile>> {
-    return this.request<response.OpenTextFile>('text/openFile', { path })
+    if (this.openCalls === 0) {
+      this.openCalls = 1
+      return wait(1000).then(() =>
+        Err(new LsRpcError('Simluated timeout', 'text/openFile', { path })),
+      )
+    } else if (this.openCalls === 1) {
+      this.openCalls = 2
+      return this.request<response.OpenTextFile>('text/openFile', { path }).then(value => {
+        if (value.ok) {
+          value.value.writeCapability = null
+        }
+        return value
+      })
+    } else {
+      return this.request<response.OpenTextFile>('text/openFile', { path })
+    }
}

/** [Documentation](https://github.com/enso-org/enso/blob/develop/docs/language-server/protocol-language-server.md#textclosefile) */
```
2024-08-20 14:42:25 +00:00
Kaz Wesley
95e50f48c9
Fix multiselect stability (#10838)
Fix #10543.
2024-08-20 12:45:35 +00:00
Adam Obuchowicz
921632e38d
New design of CB: two modes (#10814)
Fixes #10603

[Screencast from 2024-08-14 12-10-51.webm](https://github.com/user-attachments/assets/fcd5bfa4-b128-4a84-a19f-c14e78dae8c9)

What is not yet implemented: the filtering. That means that spaces keep their special meaning, and we still display modules and types.

The component list itself was refactored to a separate vue component.

The logic of default visualization type in preview changed a bit: as now there is no selected component, we remember with what suggestion have we switched to code edit mode.
2024-08-19 13:28:38 +00:00
Kaz Wesley
2cfd6fa672
Don't select node when output port is clicked. (#10834)
* Don't select node when output port is clicked.

If we select a node on any click, it is not possible to connect from a node's
output port to a hidden-by-default port.

Reverts one commit from #10800.
2024-08-19 08:52:47 -04:00
marthasharkey
b2237f77c7
Add drilldown to XML (#10824)
This adds the drilldown behaviour to XML_Elements.

![10557-xml-drilldown](https://github.com/user-attachments/assets/062d7de9-c157-4ea2-8a9b-a39f91c26581)
2024-08-19 10:12:42 +00:00
Kaz Wesley
b442a38894
Reactive Asts (#10777)
Reactively track reads of fields of all `Ast` objects residing in the `graphStore`'s `syncModule` (i.e. the committed module state). Tracking includes reading the `parent` field of a node.

Note that non-`Ast` structured fields (e.g. `ArgumentDefinition`) are not themselves reactive--an access is tracked when obtaining the object from the `Ast`, not when accessing the inner object's fields. Structured fields are low-level, and mostly not exposed outside `Ast`, so I don't think transitively proxying them would be worth the overhead.

Implements #10697.
2024-08-16 16:35:48 +00:00
marthasharkey
ca396f5d15
Sort toolbar rendering for narrow nodes (#10831) 2024-08-16 15:04:01 +00:00
Paweł Grabarz
4d2cc04e17
More robust ydoc server watch (#10817)
Fixed occasional issues with ydoc server starting in dev mode, which were caused by missing dist file, then nodemon failing to trigger a file watch event after esbuild completion. Now esbuild is directly responsible for managing a child process, without needing an additional layer of file watchers.
2024-08-14 13:17:53 +00:00