Commit Graph

200 Commits

Author SHA1 Message Date
Alexandru Popovici ccd1c14e09 Threads Undead Patch (#2475)
* Fixed sandbox lint error

* Gave up with trying to enforce a standard basis across camera controller and applications. Now getPosition and getTarget will always be in whatever basis the camera controller is set to be

* No more pre-transformation to (0, 1, 0) for canonical and speckle views and when computin nearest point on geometry

* Reverted transformations from onboarding

* Updated comments

* Fixed the issue where if thread was active at stream load time, the camera position and orientation would be off. This specific issue occured only at startup and it was because the min.max radius for the orbit controls were not yet computed, the frontend calling setView before the orbit controls had a chance to update and compute it's min/max. Also fixed an issue where min distance computation was not using the correct camera positon, but rather the goal position
2024-07-05 10:28:56 +03:00
Kristaps Fabians Geikins e73c2c3d4f fix(fe2): panoramic previews not triggering on hover (#2457)
* fix(fe2): panoramic previews not triggering on hover

* undo dev change
2024-07-01 11:03:07 +03:00
Alexandru Popovici 15e9ad9462 Oboarding undead-patch (#2456)
* Fixed sandbox lint error

* Added back the polar view and setting it. Changed the onboarding hardoced vectors from Z up to Y up, since that's what the camera controller now requires when setting inline views
2024-06-28 21:05:08 +02:00
Kristaps Fabians Geikins 6bfffca0a9 fix: various invite flow fixes & improvements (#2451)
* fix(fe2): show signup CTA for non-registered invitees [web-1144]

* fix: server invite signup error

* WIP project error access block

* feat(fe2): better 'no project access' error screens

* CR fix
2024-06-28 17:26:11 +02:00
Kristaps Fabians Geikins 1da1c4e30a feat(fe2): redirects for legacy/fe1 embed routes (#2432) 2024-06-28 10:52:09 +03:00
Alexandru Popovici f844b6d22e Viewer Navigation (#2416)
* Added model-viewer's orbit camera control implementation. All the features from the old orbit controls are now functional with the new one

* Figured out the relation between radius and fov. Added zoom decelariting when getting closer to origin. This feature was present in the old controller but lacking in this one

* WIP

* Added infinite zooming

* First version of infinite zoom and zoom to cursor

* A few improvements on zoom to cursor. Inifite zoom and zoom to cursor now work together. Simplified the implementation

* Added orthographic camera functionality in the controller without hte special features

* Zoom to cursor now works with orthographic projections. Switching between perspective and orthographic while keeping all functionality correct now works

* Minor cleanup a ton more to come

* Added controls dampening in the sandbox

* Adapted frontend to the new controller plus some additional changes to the controller options in general

* Implemented setting inline and polar viewers. However mosts of the time spent was dedicated into understanding why the frontend checks for changes in the camera each frame, and if it finds one forces the camera viewer to the inline one. I haven't figured out why it's doing this and it seems very wasteful. There probably is a better way of achieving the same thing

* Orbit Controller now computes it;s cartesian value based on spherical in a function so it can be used in multiple places. Replaced getting the current camera position with the target camera position in frontend frame update callback as the old camera controller did

* Follow mode now works properly

* Sandbox fix

* Disabled debug spheres

* WIP on fly controls

* Correct basis transformations for fly controls

* Added QE up/down movement to fly controls

* Minimum radius is now dynamic and accounts for scene size

* Fixed an issue with zooming to cursor when infinetely zooming

* Fixed inconsistencies between zooming normally and infinetely for both zooming to cursors and otherwise

* Further fixing zooming to cursor when infinetely zooming

* Zoom radius modulation

* Fine tuning zooming radius and wheel modulation. I think I got to some defaults that seem good enough for all scene scales.

* Defaulted to 30ms decau time for dampers

* Added a 'tasOnly' argument in all 'intersect' variants. This will only intersect the TAS(es) and provide an intersection result. When requesting an intersection with 'firstOnly' set, onyl the first intersected TAS will be queried further and it's first intersected BAS will provide the intersection result. Conditioned zooming to cursors by needing to have any geometry under the cursor; Fixed some small issues with  functions in the acceleration structures.

* Restricted intersecting onyl when zooming

* Geometry intersection when zooming does not affect infinetely zoom anymore, only zoom to cursor

* Temporary disabled firstHitOnly

* raycastFirst now works correctly in the context of tasOnly param true or false

* Added dampers to the fly controls so we have consistency across various camera controller types.

* Added statinary function

* WIP on controls

* Debuging orbit controller issues on ipad

* More consolidation work on the interface for SpeckleControl and our current implementations for it

* Added controller toggle-ing

* Making the controllers work from immediate data

* There are no more spaces left I can transform from/to. Done them all. Works fine now essentially. Just need to clean stuff up

* SpeckleControls now provide an 'up' vector, and basis transformation is computed that way rather than requirig a mat4 directly. Fixed two issues with event locking on orbit and fly

* More cleanup, more fixes, more grind

* Controllers now have consistency in the basis they provide the position and target into. As well as the fromPositionAndTarget function. It will always be in a basis where (0,1,0) is up. This is required because certain parts of three.js assume that basis

* FlyController is now properly relative-itiez

* Sorted out options for both controls. Dampening is now done via options

* Small fixes for frontend integration

* Fixed the issue with quaternions misaligning around PI

* Added consistent orthographic resizing

* Fixed camera focusing when in orthographic mode

* Implemented disabling/enabling rotations with the new controls. Removed PolarView since it was never used. Canonical views WIP

* Made the HybridCameraController with the simplest implementation possible that seamslessly combines both camera controls. This is for testing to get an idea about how it feels. Removed zoomToCursors when not on geometry. Increased regular zoom speed

* Using constants since move speed is a modifier

* lock fix

* Removed HybridCameraController. Increased maximum zoom. Removed toggling camera controls with Space. New way to apply canonic views, this time a correct one
2024-06-25 15:21:47 +03:00
andrewwallacespeckle 67b778b926 feat: ensure consistent ordering of nodes to match ViewerLayoutPanel (#2279)
* feat: ensure consistent ordering of nodes to match ViewerLayoutPanel

* feat: Order rootNodes based on resourceItems

* Revert "feat: Order rootNodes based on resourceItems"

This reverts commit 5029e361e762c0a6d9245638f7b269f7beeb8f37.

* Revert "feat: ensure consistent ordering of nodes to match ViewerLayoutPanel"

This reverts commit e2f557bf319f21ab5c477929021de1d12236ade9.

* fix: change rawSpeckleData to computed. order scene explorer items.

* Fix to unnamed models after call with Fabians
2024-06-21 15:20:17 +01:00
andrewwallacespeckle 25c92ff840 Fixes from pairing with Fabs & Mike (#2420) 2024-06-21 15:19:44 +01:00
Kristaps Fabians Geikins d4f90a83e8 chore: cleaning up betaAutomations (#2413) 2024-06-20 15:35:39 +03:00
Kristaps Fabians Geikins f074be89aa fix(fe2): error msg templating + Filters undefined error fix (#2411)
* fix(fe2): error msg templating + Filters undefined error fix

* fixx

* fixx
2024-06-20 13:11:05 +03:00
Kristaps Fabians Geikins 689bb4e941 feat: function update flow re-introduced (#2410) 2024-06-20 12:24:15 +03:00
Mike 5f1b3846b3 Merge pull request #2387 from specklesystems/mike/WEB-1112-change-downloads-link
Fix: Change /downloads links to https://speckle.systems/features/connectors/
2024-06-19 16:54:11 +02:00
Kristaps Fabians Geikins a9266333b4 fix(fe2): preview images being cached for too long (#2399)
* fix(fe2): preview images being cached for too long

* allowing caching of error previews

* updating cachebust value earlier
2024-06-19 16:26:35 +02:00
Mike Tasset 8f4fcb912c Changed anchor back to nuxtlink, changed hardcoded string to variable 2024-06-18 13:33:30 +02:00
Kristaps Fabians Geikins c7fdc6acc2 chore: updating ws everywhere to resolve SNYK-JS-WS-7266574 (#2385)
* chore: updating ws in various ways

* puppeteer upgrade

* updating codegen deps

* workspaces cmd update

* various extra fixes

* minor preview-service troubleshooting improvements

* dockerfile fixes

* hopefully fixing docker build fe2

* try again

* try large again
2024-06-18 13:26:01 +03:00
Kristaps Fabians Geikins ef4bb520cf fix(fe2): ugly function card hydration issue (#2381)
* fix(fe2): ugly function card hydration issue

* comment adjustment

* minor optimization
2024-06-18 08:40:25 +03:00
Kristaps Fabians Geikins eff46485c4 feat(server): generalized automate auth code handshake mechanism (#2360)
* feat(server): generalized automate auth code handshake mechanism

* amend API requests to match with changes in https://github.com/specklesystems/speckle-automate/pull/758

* fix test

* integration fix

* deleting auth code on verification

---------

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2024-06-17 17:12:17 +03:00
Kristaps Fabians Geikins 4092d0c8ad chore(fe2): update to nuxt 3.12.2 (#2377) 2024-06-17 16:37:28 +03:00
Kristaps Fabians Geikins 83d8035dc2 chore: upgrade to eslint 9 (#2348)
* root + server

* frontend

* frontend-2

* dui3

* dui3

* tailwind theme

* ui-components

* preview service

* viewer

* viewer-sandbox

* fileimport-service

* webhook service

* objectloader

* shared

* ui-components-nuxt

* WIP full config

* WIP full linter

* eslint projectwide util

* minor fix

* removing redundant ci

* clean up test errors

* fixed prettier formatting

* CI improvements

* TSC lint fix

* 'buildBatch' needs to be async since some batch types (like Text) require it. Removed a disabled liniting rule from ObjLoader

* removed unnecessary void

---------

Co-authored-by: AlexandruPopovici <alexandrupopoviciioan@gmail.com>
2024-06-12 14:38:02 +03:00
Kristaps Fabians Geikins 2f8272b6ae feat(shared): modularized package & node16 support (#2336)
* feat(shared): modularized package & node16 support

* lockfile update

* various fixes

* moar fixes

* added znv and zod as devdeps of shared

* lockfile update
2024-06-11 14:12:13 +03:00
Benjamin Ottensten 6a524a704a Try to fix linting errors (#2353) 2024-06-10 16:54:30 +02:00
Benjamin Ottensten c29b4f2aac Fix automation creation form (#2349)
Bug: You couldn't proceed from step 2 if the function didn't have any parameters.
2024-06-10 15:43:00 +02:00
andrewwallacespeckle 899c0baf4e feat(fe2): Highlight objects on hover (#2322)
* WIP - Need to confirm with Benjamin & Alex

* feat(fe2): Models and Filters Highlighting

* feat(fe2): highlight object on hover of selection info

* refactor: use composable for object highlighting in Viewer components

* Remove from StringFilterItem.

* Update StringFilterItem.vue

* Fix for selection issue that happens when you select something from the tree explorer that is already being selected by it's parent and also highlighted with the mouse

---------

Co-authored-by: AlexandruPopovici <alexandrupopoviciioan@gmail.com>
2024-06-07 14:26:49 +02:00
andrewwallacespeckle fe97f27c0a Temp fix for hackathon (#2344) 2024-06-07 14:01:23 +02:00
Kristaps Fabians Geikins c12c470d13 feat(fe2): prevent automation param validation until submit (#2340)
* feat(fe2): prevent automation param validation until submit

* minor fix

* fix for empty string being accepted as a valid value
2024-06-07 13:17:20 +03:00
andrewwallacespeckle 242391bceb feat(fe2): Allow user to decide viewer zoom on addition of new model (#2337)
* feat - Add switch to toggle zoomToObject

* Remove switch, add Toast

* Formatting changes
2024-06-07 11:51:33 +02:00
Benjamin Ottensten ee4d91faf6 Remove various hover transitions around the viewer (#2342)
To make it feel more snappy
2024-06-07 11:37:42 +02:00
Kristaps Fabians Geikins bdf27f6218 feat: some mp analytics related to automate actions (#2299)
* fix(fe2): better resiliency for when mp cant be loaded

* WIP mixpanel track calls

* more resiliency improvements

* added all clientside tracking calls

* run finished event

* minor adjustment

* feat(automate): revert automationRunTriggerinAssociation

* feat(automate): track manual run triggers

* feat(automate): backend track automation run created events

* fix(automate): manual trigger type gql schema fix

* feat(automate): add source based filter to run trigger tracking

* fix(automate): fix trigger mock

* various minor adjustments

* remove comment

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
2024-06-07 10:21:24 +03:00
andrewwallacespeckle f5007daf89 feat(fe2): Cancel ongoing measurement with esc (#2282)
* Cancel ongoing measurement with esc

* Fix to make activeMeasurement reactive
2024-06-06 14:18:34 +02:00
Kristaps Fabians Geikins 92c89ec8d9 fix(fe2): json forms enum renderers not being picked up (#2329) 2024-06-06 13:04:40 +03:00
Kristaps Fabians Geikins 6410dd04b8 feat(fe2): disable New Automation CTA if no models available (#2327) 2024-06-05 15:35:07 +02:00
andrewwallacespeckle e6bde7aab3 fix(fe2): Uncomment code around model duplication (#2257)
* Uncomment code around model duplication

* Update comment around deduplication
2024-06-05 12:49:30 +02:00
Kristaps Fabians Geikins 73abba06cf feat(fe2): pagination for various automate UIs (#2324)
* WIP infinite load helper

* finished automations pagination

* runs pagination working

* fn pagination

* minor cleanup

* subscription cache mutation fixes

* filtered cache update fix

* minor changes
2024-06-05 12:18:13 +03:00
Chuck Driesler 2e71dd7b27 hide unused button for test automations (#2318) 2024-06-04 13:57:14 +02:00
Kristaps Fabians Geikins b54fea0a7c feat: various automate fe2 fixes (#2321)
* minor cleanup

* fix(web-982): hide Open View button if already on that view

* fix(web-1000): showing updated notification when creating automation

* fix(web-1014;web-1016): clearing model select when project changed + listing only valid projects
2024-06-04 13:21:49 +03:00
Kristaps Fabians Geikins 95aa58958f feat: authenticate user as function author (#2316)
* feat: check if user is fn author w/ exec engine

* WIP auth redirect

* finalized
2024-06-03 17:24:28 +03:00
Charles Driesler d202fd8803 remove flag for test automations 2024-06-01 14:41:05 +01:00
Charles Driesler 1960d2296a Merge branch 'main' into chuck/chuckTestAutomationRuns 2024-06-01 13:29:37 +01:00
Chuck Driesler 3be53f6db5 WEB-1052 Create test automations (#2302)
* fighting migrations

* test automation type

* fix type in tests and add test

* split `storeAutomation` and `storeAutomationToken`

* add `createTestAutomation`

* fix test usage of `storeAutomation`

* do not trigger functions if automation is a test automation

* whoops

* create test automations, almost

* encryption keys on autoamation revisions are NOT optional

* function selection in create test automation step

* update tests, lint

* Align input stylings

Also update the general select input component so the placeholder text aligns with other inputs

* Explain test automation and tweak copy

* Update form components on parameters step

To align with the form component updates I made in previous commits in this branch

* create dialog enhancements

* test automation badges

---------

Co-authored-by: Benjamin Ottensten <benjamin.ottensten@gmail.com>
2024-05-31 16:33:15 +02:00
Charles Driesler 26fa2d96ac connect service function to resolver 2024-05-31 11:24:48 +01:00
Alexandru Popovici cd5a8b9779 Flickerless Depth Texture Read (#2300)
* Added extension for readingfrom the depth framebuffer. So that when getting the depth for gendo the image doesn't flicker anymore

* Updated the fronetend to use the new PassReader extension

* Removed PassReader from sandbox. Catered to typescript
2024-05-31 11:13:27 +03:00
Charles Driesler 846665675a Merge branch 'main' into chuck/createTestAutomation 2024-05-30 13:26:26 +01:00
Dimitrie Stefanescu 3c15e888be adds a raw data viewer for advanced users (#2296)
* feat(gendo): scaffolding

* feat(gendo): wip

* feat(gendo): wip

* feat(gendo): wip

* feat(gendo): wip

* feat(gendo): wip

* feat(gendo): it's alive

* feat(gendo): wip

* feat(gendo): blobifies responses to make gergo happy

* feat(gendo): ratelimiting + lints

* feat(gendo): prettier fix

* feat(gendo): last fixes

* feat(gendo): clarifications

* feat(gendo): helm base

* feat(dataviewer): raw first pass

* feat(dataviewer): some styling

* feat(dataviewer): objects in new + fixes

* feat(dataviewer): resources support for object cards

* feat(dataviewer): adds selected object support

* feat(dataviewer): removes button from main sidebar, integrates with explorer

* feat(dataviewer): some value handling fixes

* feat(dataviewer): linting fixes

* feat(dataviewer): show raw viewer within Scene Explorer

* feat(dataviewer): Update copy and labels

* feat(dataviewer): Improve row borders and divider

* Apply suggestions from code review

* feat(dataviewer): Make sure arrow doesn't shrink

---------

Co-authored-by: andrewwallacespeckle <139135120+andrewwallacespeckle@users.noreply.github.com>
Co-authored-by: Benjamin Ottensten <benjamin.ottensten@gmail.com>
2024-05-30 14:12:49 +02:00
Charles Driesler d34bae6f5e update tests, lint 2024-05-30 13:03:23 +01:00
Kristaps Fabians Geikins bd7dd40d71 feat(server): posting origin to automate (#2301) 2024-05-30 14:14:44 +03:00
Charles Driesler 7232fd7a8a create test automations, almost 2024-05-29 16:20:35 +01:00
Kristaps Fabians Geikins 7f0b29db55 feat: retry + better handling of failing exec engine api calls (#2292) 2024-05-29 12:18:16 +02:00
Dimitrie Stefanescu 35ed179799 Dim/gendo (#2283)
* feat(gendo): scaffolding

* feat(gendo): wip

* feat(gendo): wip

* feat(gendo): wip

* feat(gendo): wip

* feat(gendo): wip

* feat(gendo): it's alive

* feat(gendo): wip

* feat(gendo): blobifies responses to make gergo happy

* feat(gendo): ratelimiting + lints

* feat(gendo): prettier fix

* feat(gendo): last fixes

* feat(gendo): clarifications

* feat(gendo): helm base

* update helm values and deployment to use secrets and allow them to be configured

* Allow the rate limiter to be configured

* Use valid Gendo AI api as default

* fix(helm chart): environment variables should be strings

---------

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
2024-05-29 11:48:17 +02:00
andrewwallacespeckle 4b0ac38ee4 feat(fe2): change submit logic for access settings before embedding (#2278)
* Starting on gergo/newAutomateModule

* regenerated gql

* minor gql optimizations

* various fixes for project tabs

* WIP featured functions

* composable for ez debounced inputs

* composable for ez debounced inputs

* WIP fn card

* TS error fixes

* WIP cardd

* WIP function cards

* empty state done

* WIP runs  table

* runs table looks good

* run info dialog works

* minor run dialog improvement

* feat: add automate module with feature flag

* added fautomate feature flag to fe2 as well

* link to beta implemented

* minor adjustment

* enabling dev to skip migrations

* Merge branch 'main' into fabians/fe2-automate-integration

* tabs set up for single automation page

* refactored editable title/description

* models title fix

* update title mutation

* title done

* WIP function card

* feat: feature flags implementation

* WIP runs

* feat: feature flags feedback

* Revert "feat: feature flags feedback"

This reverts commit 139065bcbf967af207c2e98896ff3aae8ff2fdb0.

* Revert "feat: feature flags implementation"

This reverts commit 0614debb330ab092e96c71b7eccfaa8b4a280a4f.

* minor row fix

* core automation page done

* wip automation fn settings

* function settings dialog

* apollo dev tools fix

* feat: automation run trigger logic

* functions page

* WIP function page

* fix FE2 lint issue

* testing library borked, just skip interactive tests

* tests fix

* enabling automate module for testing

* disabling module in test env

* WIP fn page

* parameters demo dialog

* added markdown rendering

* finished single function page

* faked markdown

* pkg json fix

* pkg json fix

* updated schema for triggers

* more schema adjustments

* adjusted FE to support triggers

* added model select to automate edit

* fixed up runs dialog & status icon

* migrated viewer to new components

* updated automate panel to fit designs in viewer

* cleaning up old shit

* mocks fix

* fn logo size fix

* runs table status fix

* feat: automate module, automation creation and trigger

* test: fix automate module tests

* test: fixt automate module tests

* feat: create function flow

* linting fixes

* test fix?

* functions page fixes

* WIP automation wizard

* parameters step done

* WIP details step

* automation wizard done for the most part

* triggering automation

* enabled switch

* create automation from fns page

* create automation from fn page

* details validation update

* disable capability for switch

* edit fn done

* functions empty state

* various empty states

* minor adjustment

* various minor fixes

* automation status dialog responsivity

* status icon responsivity fixes

* viewer panel

* empty state adjustments

* fns page responsivitiy

* fn page core responsivity

* automation wizard responsivity

* fn wizard responsity fixes

* minor fix ups

* fixed up existing backend stuff

* fixing eslint hopefully

* tryna fix eslint

* automate code validation mechanism added

* minor GQL schema change

* maybethis fixes eslint?

* more eslint debugging

* fix cross-env missing

* tryna fix eslint memory issues

* ci test fix

* error improvements

* migrations for fn tables

* Improve empty state

* Update button copy in edit function dialog

And remove unused icon

* Refine function page design

* WIP function create

* fn creation tests added

* Fix enable switch label text on Automation page

* Update design of function card

* Change tag to beta

* Fix selected ring not being rounded

* Minor copy changes here and there

* Add border and header column bg to Table component

* Update styling of Automations tab

* Update styling of individual Automation page

* Remove icon from button

* fn update w/ tests

* fn release creation w/ tests

* fixing tests

* GH auth endpoint

* minor cleanup

* WIP reporting function statuses

* automation update/delete w/ tests

* WIP automation revision & trigger tests

* revision creation tests done

* trigger tests

* function run reporting works

* report status tests WIP

* run status update tests done

* auth code handshake tests

* a couple of FE2 fixes

* WIP function retrieval queries & tests

* WIP automation queries

* removed all functions stuff

* implemented fn queries

* all kinds of queries & resolvers done

* more queries

* automations query

* automation status resolution core algo

* FE2 fixes

* fixed up mocks

* fix(fe2): disallow loading automations if non-owner

* chore: circleci extension config change

* fixing some benjamins changes

* hydration mismatch fix

* fixed tests

* preview service fix?

* env flag fix

* more form validation improvements

* proper automation status run ordering

* featured mock fix

* meta data fixed

* introduce outdated label

* log streaming mock moved to serverside

* encryption in create for FE

* fix: integration work

* core encryption stuff implemented

* fixing tests & linting

* improved revision input validation

* automation create works

* automations status fix

* fixed automation run queries

* minor cleanup

* implemented log streaming

* properly handing redacted props in update rev flow

* implemented subscriptions backend

* WIP subscriptions FE implementation

* subscriptions work?

* feat: add docker compose based reverse proxy for the server stack

* revert: restore docker compose ingress dockerfile

* chore: disable automate module feature flag by default

* fix: move nginx ingress file to the right place

* Implement `automateFunctionRunStatusReport` (#2262)

* untested implementation

* no more errors

* no more errors

* lint

* add all statuses to `AutomationRunStatusOrder`

* fix: status reporting now works

* park in the right place, grapple with tests

* update tests

* use correct run ids, adjust tests

---------

Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>

* fix: make tab selection robust by using dynamic ID lookup

* tests: fix authz module tests

* fix: frontend TS issue

* ci: add automate encryption keys path value

* Fix ts build errors from ui-components changes

* fix: frontend automation status colors

* add handling for all enum cases in useRunStatusMetadata

* Fix merge issue

* Use save button to update ProjectVisibility

* Update copy around private projects

* Use isPrivate

* Remove title from Alert

* Updates from PR

---------

Co-authored-by: Kristaps Fabians Geikins <fabis94@live.com>
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>
Co-authored-by: Benjamin Ottensten <benjamin.ottensten@gmail.com>
Co-authored-by: Chuck Driesler <cdriesler.iv@gmail.com>
2024-05-24 14:24:43 +02:00
andrewwallacespeckle 39c2202c24 Add sanitizeModelName to remove spaces before and after / in model names (#2264) 2024-05-23 14:09:54 +02:00