Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DUI3 Sync To Main #2423

Draft
wants to merge 366 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
366 commits
Select commit Hold shift + click to select a range
8e0add7
Set os 'unknown' as fallback
oguzhankoral Apr 3, 2024
5231167
Remove mixpanel nuxt plugin
oguzhankoral Apr 8, 2024
930dbc5
Chore (dui3): wizard title for project and model + emit close dialog …
oguzhankoral Apr 8, 2024
8fe8e6f
Fix server_id source
oguzhankoral Apr 9, 2024
32e32e4
Add DUI3 events
oguzhankoral Apr 10, 2024
cb71924
Merge branch 'dui3' into oguzhan/mixpanel
oguzhankoral Apr 10, 2024
3697fa0
feat(dui3): some quick config changes/simplifying things
didimitrie Apr 16, 2024
172ce02
Merge pull request #2209 from specklesystems/dim/dui3-config-changes
didimitrie Apr 16, 2024
885f71d
Remove double call on refresh account
oguzhankoral Apr 17, 2024
c2d184b
Remove it
oguzhankoral Apr 17, 2024
e9c5815
Remove logger
oguzhankoral Apr 17, 2024
981e23f
Merge pull request #2213 from specklesystems/oguzhan/dui3/remove-doub…
didimitrie Apr 18, 2024
fbc9c4f
Merge branch 'main' into dui3
didimitrie Apr 19, 2024
91eba5d
feat(dui3): updates send wizard dialog
didimitrie Apr 21, 2024
c93fed6
feat(dui3): send wizard updates + split by components; persists last …
didimitrie Apr 21, 2024
94d1692
feat(dui3): adds dayjs for nicer dates and fixes other things
didimitrie Apr 21, 2024
13e73cd
feat(dui3): wraps up most publish dialog flows and fixes
didimitrie Apr 22, 2024
b4bcee3
feat(dui3): receive dialog + better create new buttons in send
didimitrie Apr 22, 2024
45cdd2f
feat(dui3): actions dialog
didimitrie Apr 22, 2024
9b5aa78
feat(dui3): creates version card + small fixes in the actions dialog
didimitrie Apr 22, 2024
64d7e32
feat(dui3): adds missing emit event
didimitrie Apr 22, 2024
0a26328
Merge pull request #2224 from specklesystems/dim/dui3/updates-and-fixes
didimitrie Apr 22, 2024
73fc44a
fix(dui3): hotfix project/model name creation
didimitrie Apr 24, 2024
445c793
chore(dui3): adds comments to not forget this is a potentially very a…
didimitrie Apr 24, 2024
c17c0b6
Fix (dui3): refetch projects models (#2228)
oguzhankoral Apr 24, 2024
9df22e7
Fix (dui3): Null check id of documentInfo instead itself (#2231)
oguzhankoral Apr 25, 2024
c31c95d
fix(dui3/ui-components): optinal css fiddles for ancient chrome versions
didimitrie Apr 29, 2024
f2766b4
Merge pull request #2232 from specklesystems/dim/cef-65-compat-dialogs
didimitrie Apr 29, 2024
c4900c6
fix(dui3): correctly returns the fallback style
didimitrie Apr 29, 2024
5da1aa0
Merge pull request #2233 from specklesystems/dim/cef-65-compat-dialogs
didimitrie Apr 29, 2024
4d83d83
fix(dui3): scrollable dialogs in old chromium (revit)
didimitrie Apr 29, 2024
02792ef
Merge pull request #2234 from specklesystems/dim/cef-65-compat-dialogs
didimitrie Apr 29, 2024
80d4df6
Merge branch 'dui3' into oguzhan/mixpanel
didimitrie Apr 29, 2024
02330f0
feat(dui3): tracking improvements
didimitrie Apr 29, 2024
d52a6d0
feat(dui3): tracking improvements, part 2
didimitrie Apr 29, 2024
75d7446
feat(dui3): fixes up load version section + version selector
didimitrie Apr 29, 2024
35ad072
Merge pull request #2107 from specklesystems/oguzhan/mixpanel
didimitrie Apr 29, 2024
e9cf44d
feat(dui3): handles some account states (no accounts, invalid account…
didimitrie Apr 30, 2024
6aa343b
Merge pull request #2235 from specklesystems/dim/dui3/quick-fixes
didimitrie Apr 30, 2024
59e9ded
feat(dui3): fresh update on file open re expired receiver theoretical…
didimitrie Apr 30, 2024
f978deb
Merge pull request #2236 from specklesystems/dim/dui3/quick-fixes
didimitrie May 1, 2024
82b64e1
Chore(dui3): Enable highlighting received sketchup models (#2244)
oguzhankoral May 6, 2024
730c844
Feat(dui3): Enable rendering custom message from DocumentInfo (#2245)
oguzhankoral May 7, 2024
ed5f5f3
Fix emit for upload in sketchup bridge (#2247)
oguzhankoral May 8, 2024
f34b38e
Fix (dui3): close dialogs on doc switch (#2248)
oguzhankoral May 8, 2024
8679285
feat(dui3): adds tooltips to model names on cards
didimitrie May 10, 2024
3e17ab8
feat(dui3): adds warning when sending to non-empty models
didimitrie May 10, 2024
4160b5d
feat(dui3): removes the warning from receive wizard
didimitrie May 10, 2024
3e6e4a6
feat(dui3): improves sender/receiver card readability
didimitrie May 10, 2024
1c23e08
feat(dui3): works around button limitation to ensure buttons stay on …
didimitrie May 10, 2024
09ce5bc
feat(dui3): adds bottom margin for scrolling properly re fixed bottom…
didimitrie May 10, 2024
03e0bdf
feat(dui3): adds warning when selecting a model that is already prese…
didimitrie May 10, 2024
0b462cc
Merge pull request #2252 from specklesystems/CNX-9454-dui-3-ui-ux-imp…
didimitrie May 10, 2024
f826d06
fix(dui3): receive update shennanigans fixed
didimitrie May 14, 2024
09f6ccc
Merge pull request #2258 from specklesystems/dim/dui3/fixes-CNX-9505
didimitrie May 14, 2024
52d6b10
feat(dui3): adds source host app in model cards
didimitrie May 14, 2024
7f2c5be
Merge pull request #2259 from specklesystems/dim/dui3/CNX-9513
didimitrie May 14, 2024
eacddc5
Prevent re-receive regardless modelCard.progress (#2274)
oguzhankoral May 20, 2024
62287bf
Error on response - host app error
oguzhankoral May 23, 2024
6fef340
Toast notification
oguzhankoral May 26, 2024
8e5203f
Error handler for every bridge
oguzhankoral May 27, 2024
ffd70ca
Show/hide stack trace
oguzhankoral May 27, 2024
d3efed4
cleanup
oguzhankoral May 27, 2024
6421476
more cleanup
oguzhankoral May 27, 2024
5a8cdad
Remove unnecessary getter setter
oguzhankoral May 27, 2024
70dc7a7
Send receive reports
oguzhankoral May 28, 2024
41ce054
Put POC explanation on highlighting non-received objects on viewer
oguzhankoral May 28, 2024
6f31d6b
Hightlight multiple objects
oguzhankoral May 29, 2024
7dbf567
Fix serialization on emitted events
oguzhankoral May 30, 2024
335a264
Merge pull request #2305 from specklesystems/oguzhan/dui3/fix-seriali…
didimitrie May 30, 2024
1c84cdf
Merge remote-tracking branch 'origin/dui3' into oguzhan/dui3/reportin…
oguzhankoral May 30, 2024
324534f
Correct argument with plural version
oguzhankoral May 30, 2024
5aa14e9
Add send conversion results to sketchup bridge
oguzhankoral Jun 3, 2024
a33f67d
wip
didimitrie Jun 5, 2024
9150810
Merge pull request #2325 from specklesystems/dim/dui3/reporting-and-e…
didimitrie Jun 5, 2024
69f7cc7
wip
didimitrie Jun 5, 2024
f507ccb
Fix types on sketchup bridge
oguzhankoral Jun 5, 2024
a9297df
some refactoring
didimitrie Jun 5, 2024
cd2a96a
refreshes created ago in receivers
didimitrie Jun 5, 2024
29f9461
refreshes created ago in receivers
didimitrie Jun 5, 2024
683d51c
Merge pull request #2330 from specklesystems/dim/dui3/reporting-refac…
didimitrie Jun 5, 2024
28b8dca
Fix tooltip on CardBase button
oguzhankoral Jun 5, 2024
ed55e53
Move details from tooltip to expandable item (#2331)
oguzhankoral Jun 5, 2024
64ae426
Merge pull request #2288 from specklesystems/oguzhan/dui3/reporting-a…
didimitrie Jun 6, 2024
07a65f5
wip input expiration
didimitrie Jun 6, 2024
32b2bea
Merge pull request #2338 from specklesystems/dim/selection-exp
didimitrie Jun 6, 2024
de6bb13
Chore (dui3): disable fe1 accounts (#2339)
oguzhankoral Jun 6, 2024
423df89
Set global notification from bindings (#2363)
oguzhankoral Jun 12, 2024
dbc3a2e
Fix (dui3): Do not highlight on progress (#2367)
oguzhankoral Jun 13, 2024
210dc31
feat(dui3): keeps report alive post notification dismissal + adds it …
didimitrie Jun 14, 2024
5ae1504
Merge pull request #2371 from specklesystems/dim/report-fix
didimitrie Jun 14, 2024
e083644
feat(dui3): catches receive
didimitrie Jun 14, 2024
a7eac74
Merge pull request #2373 from specklesystems/dim/report-fix
didimitrie Jun 14, 2024
4b6c790
Include test binding for notification
oguzhankoral Jun 18, 2024
31b9d2c
Merge pull request #2397 from specklesystems/oguzhan/dui3/include-tes…
didimitrie Jun 18, 2024
dc73323
fix(dui3): second time fixing this... lucky?
didimitrie Jun 19, 2024
1ed9db5
Merge branch 'main' into dui3
didimitrie Jun 23, 2024
2f31da4
fix(dui3): redoing merge + fixes
didimitrie Jun 23, 2024
0348a65
fix(dui3): redoing merge + fixes part 2
didimitrie Jun 24, 2024
6e01e5e
fix(dui3): redoing merge + fixes part 3
didimitrie Jun 24, 2024
b3536a7
fix(dui3): local trigger
didimitrie Jun 24, 2024
85cdd40
fix(dui3): deletes unused file
didimitrie Jun 24, 2024
117a08c
Merge branch 'main' into dui3
fabis94 Jun 25, 2024
dcdbfc4
potential eslint fix?
fabis94 Jun 25, 2024
7bc2d8d
fix(server): removes offending markup (even though it was correct)
didimitrie Jun 25, 2024
ed53d48
fix(server): adds story for the indet/fixed progress bar component
didimitrie Jun 25, 2024
029d901
chore(dui3): removes unused prop and updates story
didimitrie Jun 25, 2024
b195e3f
Revert back await for object loader in sketchup bridge
oguzhankoral Jun 26, 2024
e36ee3f
Merge pull request #2439 from specklesystems/oguzhan/dui3/await-fix-s…
didimitrie Jun 26, 2024
ac6f7aa
Fix (dui3): Do not trigger highlight if baked object ids undefined (#…
oguzhankoral Jun 27, 2024
f75647a
Feat (dui3): shared files (#2459)
oguzhankoral Jul 9, 2024
0a227bc
Add 'see object on web' button for failed conversions
oguzhankoral Jul 22, 2024
bdcaa35
Merge pull request #2525 from specklesystems/oguzhan/dui3/add-button-…
didimitrie Jul 23, 2024
cb19847
Fix(dui3): Top level exception binding (#2529)
oguzhankoral Jul 25, 2024
6c35e5a
Fix failed send report item (#2531)
oguzhankoral Jul 25, 2024
31b4c76
Feat(dui3): conversion report filters (#2532)
oguzhankoral Jul 26, 2024
f04b0a2
Merge branch 'main' into dui3
didimitrie Jul 29, 2024
81967f4
Merge branch 'main' into dui3
didimitrie Jul 29, 2024
8d834a1
feat(dui3): refactors dialogs to be ok
didimitrie Jul 29, 2024
1569bda
Feat(dui3): Support new mutations for version create & markReceived (…
oguzhankoral Jul 30, 2024
d33559d
Feat(dui3): Action on project error to remove cards or hide (#2543)
oguzhankoral Jul 30, 2024
2231e98
Feat(dui3): archicad bridge (#2571)
oguzhankoral Aug 5, 2024
815ac46
feat(dui3): clarifies intent of main receive button, and adds some mi…
didimitrie Aug 5, 2024
9c518af
fix(dui3): align naming
didimitrie Aug 5, 2024
ccd83ed
Merge pull request #2575 from specklesystems/dimitrie/cnx-168-ui-horr…
didimitrie Aug 5, 2024
e1d92e2
Live viewers & comments integration in dui3 (#2579)
didimitrie Aug 6, 2024
6fe9bd5
Load archicad object properly (#2583)
oguzhankoral Aug 6, 2024
df6da6e
Fix(dui3): download infinity because of totalChildrenCount (#2603)
oguzhankoral Aug 7, 2024
696d512
Do not recreate model cards for latter operations
oguzhankoral Aug 7, 2024
c5eb360
Merge pull request #2607 from specklesystems/oguzhan/dui3/use-existin…
didimitrie Aug 8, 2024
9e4ce3c
Show model path at the top of model name
oguzhankoral Aug 8, 2024
71807b4
Remove title for model name
oguzhankoral Aug 8, 2024
94cf04f
Truncate the long text
oguzhankoral Aug 8, 2024
b102a3f
Merge pull request #2609 from specklesystems/oguzhan/dui3/show-model-…
didimitrie Aug 8, 2024
32d8755
Update sketchup pre-conversion progress text (#2614)
oguzhankoral Aug 8, 2024
01999ca
Set 500 ms timeout for autocad send
oguzhankoral Aug 8, 2024
1b79514
Move footer publish load buttons to z-20
oguzhankoral Aug 8, 2024
d7f55a7
Truncate model path on model list item of selector wizard
oguzhankoral Aug 8, 2024
f87ff23
Merge pull request #2624 from specklesystems/oguzhan/dui3/acad-escape…
didimitrie Aug 9, 2024
4953357
Merge pull request #2625 from specklesystems/oguzhan/dui3/z-index-of-…
didimitrie Aug 9, 2024
c90f2ef
Merge pull request #2626 from specklesystems/oguzhan/dui3/truncate-mo…
didimitrie Aug 9, 2024
db12a53
Feat(dui3) card settings (#2653)
oguzhankoral Aug 13, 2024
98ad2fa
Handle host app error
oguzhankoral Aug 14, 2024
cedbd86
Add report filter for warning status (#2679)
oguzhankoral Aug 19, 2024
ce9f579
feat: adds beta banner in nav & densification
didimitrie Aug 20, 2024
baa0872
Merge pull request #2717 from specklesystems/dimitrie/cnx-295-ui-add-…
didimitrie Aug 20, 2024
cf80961
Consider fail/success rate for model card notification
oguzhankoral Aug 21, 2024
9f11799
feat(dui3): allows model cards to be added by url (CNX-235) (#2724)
didimitrie Aug 21, 2024
28b20ee
Merge remote-tracking branch 'origin/dui3' into oguzhan/dui3/less-hap…
oguzhankoral Aug 22, 2024
804c667
Disable coloring background by conditions
oguzhankoral Aug 26, 2024
6b6d99b
Use same logic in Receiver too
oguzhankoral Aug 26, 2024
1b4650f
Correct the var names for receiver
oguzhankoral Aug 26, 2024
41ba4ee
Merge pull request #2725 from specklesystems/oguzhan/dui3/less-happy-…
didimitrie Aug 26, 2024
2484cad
Decrease padding y 2 to 1 for model notification (#2760)
oguzhankoral Aug 26, 2024
5d1135c
fix(dui3): various other fixes (#2761)
didimitrie Aug 26, 2024
9ba2851
Disable allow-unset of dropdown for settings (#2786)
oguzhankoral Aug 28, 2024
e84c3e0
Get is dev mode info from connector
oguzhankoral Aug 29, 2024
4e7631c
Merge pull request #2816 from specklesystems/oguzhan/dui3/dev-build-e…
didimitrie Aug 29, 2024
7fea0be
Merge remote-tracking branch 'origin/main' into dui3
oguzhankoral Sep 16, 2024
1641144
Merge pull request #2938 from specklesystems/oguzhan/cnx-437-styling-…
didimitrie Sep 11, 2024
c2d3492
Merge pull request #2940 from specklesystems/oguzhan/cnx-416-add-miss…
didimitrie Sep 11, 2024
53c0bb9
Merge pull request #2997 from specklesystems/oguzhan/fix-metrics
didimitrie Sep 13, 2024
2da3beb
Create project in selected workspace if any (#3006)
oguzhankoral Sep 16, 2024
1212a71
Add workspace_id to send and receive events (#3008)
oguzhankoral Sep 16, 2024
d4c0325
Feat(dui3): CNX-434 allow users to update individual connectors based…
oguzhankoral Sep 17, 2024
1f372fb
Show update toast notification only on production
oguzhankoral Sep 19, 2024
568a34b
Add send settings dialog to model card actions
oguzhankoral Sep 19, 2024
603d06f
Expandable settings at init
oguzhankoral Sep 19, 2024
a128c50
Bring save filter button back
oguzhankoral Sep 19, 2024
a00a13f
fix(dui3): stops settings from showing up in the actions dialog if no…
didimitrie Sep 20, 2024
991ae35
fix(dui3): minor copy edits
didimitrie Sep 20, 2024
2185e9d
feat(dui3): minor styling changes
didimitrie Sep 20, 2024
01f71dc
Merge pull request #3050 from specklesystems/oguzhan/cnx-401-bad-ux-s…
didimitrie Sep 20, 2024
39d69e4
Feat(dui3): CNX-548 card settings backward and forward compatible (#3…
oguzhankoral Sep 25, 2024
289dc78
Rename title and button
Sep 25, 2024
9af2049
Merge pull request #3126 from specklesystems/oguzhan/dui3/modificatio…
didimitrie Sep 26, 2024
6b4b922
Fix(dui3): CNX-578 revit blank UI when opening a cloud model acc (#3145)
oguzhankoral Sep 26, 2024
6cc5382
Remember the latest selected account id for next sessions
oguzhankoral Sep 30, 2024
ae30e21
Feat(dui3): CNX-589 handle graphql and network errors as toast notifi…
oguzhankoral Oct 1, 2024
3f71d9d
Fix bridges for archicad
oguzhankoral Oct 2, 2024
3099fcd
Remove unnecessary as statement
oguzhankoral Oct 2, 2024
9f186cd
Replace fetch post with object sender
oguzhankoral Oct 2, 2024
32031e9
Remove console log
oguzhankoral Oct 2, 2024
c05f4d5
fix(dui3): corrects import and package ref/fixes build
didimitrie Oct 3, 2024
387cab4
fix(dui3): relies on object sender id
didimitrie Oct 3, 2024
d19d02d
Merge pull request #3163 from specklesystems/oguzhan/cnx-549-set-sele…
didimitrie Oct 7, 2024
e778038
Merge pull request #3180 from specklesystems/oguzhan/cnx-601-archicad…
didimitrie Oct 8, 2024
f2c3230
POC revit view filters
oguzhankoral Oct 23, 2024
059c706
Single dropdown for views
oguzhankoral Oct 23, 2024
d02249a
Backward compatible adjustment. Temporary
oguzhankoral Oct 24, 2024
fdad60c
Blacklist revit as shitty apps
oguzhankoral Oct 24, 2024
4be1c43
Views selection
oguzhankoral Oct 25, 2024
cbc779e
merge conflicts
oguzhankoral Oct 25, 2024
10c590d
POC implementation
oguzhankoral Oct 25, 2024
902995c
Set available filters on refreshSendFilter
oguzhankoral Oct 28, 2024
c159fa2
Remove revit views selection
oguzhankoral Oct 28, 2024
c72f341
fix: removes revit from the evil apps
didimitrie Oct 28, 2024
7fffa18
Undefined check for revit views
oguzhankoral Oct 29, 2024
c806e0d
Merge pull request #3385 from specklesystems/oguzhan/cnx-544-view-filter
didimitrie Oct 29, 2024
23605e6
fix(dui3): force getting fresh send filters
didimitrie Oct 30, 2024
8748d15
Merge pull request #3417 from specklesystems/dim/dui3/filters-force-get
didimitrie Oct 30, 2024
3ccb383
POC revit categories
oguzhankoral Oct 30, 2024
9000a6f
Merge branch 'main' into dui3
didimitrie Oct 31, 2024
5a2717c
fix: adds gen file
didimitrie Oct 31, 2024
472da98
feat(dui3): clearer project groups when collapsed (#3427)
didimitrie Oct 31, 2024
3a93e34
Merge remote-tracking branch 'origin/dui3' into oguzhan/cnx-543-categ…
oguzhankoral Nov 1, 2024
1bb49db
Merge branch 'dui3' into oguzhan/cnx-680-warn-users-on-receiving-v2-c…
didimitrie Nov 5, 2024
677350f
feat: css + messaging
didimitrie Nov 5, 2024
59679b6
Merge branch 'dui3' into oguzhan/cnx-680-warn-users-on-receiving-v2-c…
didimitrie Nov 5, 2024
4a9c990
Merge pull request #3440 from specklesystems/oguzhan/cnx-680-warn-use…
didimitrie Nov 5, 2024
fed2eba
WIP
oguzhankoral Nov 5, 2024
79ba2ce
feat: css
didimitrie Nov 5, 2024
27e2f8a
Make it work
oguzhankoral Nov 5, 2024
6a1dfc3
feat: css
didimitrie Nov 5, 2024
ddcda1b
feat: css
didimitrie Nov 5, 2024
390673b
Sort the categories by name
oguzhankoral Nov 5, 2024
a28647d
fix: init of category filter
didimitrie Nov 5, 2024
789b46b
WIP
oguzhankoral Nov 6, 2024
2b7d72c
fix(sso): toast on expired sso session (#3448)
cdriesler Nov 6, 2024
687d1bd
Implement RevitSenderModelCard
oguzhankoral Nov 7, 2024
f192de4
Remove unnessary logging
oguzhankoral Nov 7, 2024
3467059
Fix object type
oguzhankoral Nov 7, 2024
2f7d357
Remove RevitSenderModelCard
oguzhankoral Nov 7, 2024
5c5bab2
Init empty object for IdMap from the beginning
oguzhankoral Nov 7, 2024
6267d6e
Remove plus icon
oguzhankoral Nov 8, 2024
419d93d
Add comment why we changed FormButton to div
oguzhankoral Nov 8, 2024
77313ef
Merge pull request #3462 from specklesystems/oguzhan/cnx-543-category…
didimitrie Nov 8, 2024
72a43c6
Chore(dui3): cnx 543 category filter extra (#3466)
oguzhankoral Nov 8, 2024
cec9209
fix: do not reset idMap on recreation of selection filter
oguzhankoral Nov 8, 2024
9accdc4
Do not reset selectedObjectIds from IdMap (#3479)
oguzhankoral Nov 11, 2024
6fb1e3b
Merge remote-tracking branch 'origin/main' into dui3-merge-test
Nov 11, 2024
80a19ad
Merge pull request #3482 from specklesystems/dui3-merge-test
oguzhankoral Nov 11, 2024
cf2cfa2
Fix(diu3): align new graphql schema for workspaces (#3485)
oguzhankoral Nov 11, 2024
e9d1e63
Feat(dui3): automate (#3475)
oguzhankoral Nov 12, 2024
269e7ff
Fix the reactivity on automate results between cardbase and report di…
oguzhankoral Nov 13, 2024
496fd94
Fix confusion on model selector warning dialog (#3489)
oguzhankoral Nov 13, 2024
3302d71
Fix: show more versions by disabling version check on version card
Nov 20, 2024
e76ccb3
Merge pull request #3530 from specklesystems/oguzhan/dui3/disable-ver…
didimitrie Nov 20, 2024
7c90133
Feat(dui3): send batches sequentially from server bridges (#3549)
oguzhankoral Nov 26, 2024
52b795e
fix(dui3): send batches from server bridge (#3648)
oguzhankoral Dec 11, 2024
a4c23d5
Merge branch 'main' into dim/dui3-main-merge-jan
didimitrie Jan 9, 2025
d789d4e
Merge branch 'main' into dim/dui3-main-merge-jan
didimitrie Jan 9, 2025
e13be36
fix: removed unused file
didimitrie Jan 9, 2025
b25e8b0
Merge pull request #3785 from specklesystems/dim/dui3-main-merge-jan
didimitrie Jan 9, 2025
af33991
Feat(dui3): readonly workspaces (#3789)
oguzhankoral Jan 9, 2025
7799cfd
Capture workspaces enabled and use it on selector conditionally (#3792)
oguzhankoral Jan 10, 2025
1ff0887
Feat(dui3): CNX-837 cancel send from host app (#3793)
oguzhankoral Jan 10, 2025
19e1e75
Add comments for triggerCancel
Jan 10, 2025
070fa3f
Fix(dui3): catch apollo error on initial workspaces enabled query (#3…
oguzhankoral Jan 15, 2025
9168afd
Do not query on accounts (#3835)
oguzhankoral Jan 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions packages/dui3/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,10 @@ PORT=8082

NUXT_PUBLIC_MIXPANEL_TOKEN_ID=acd87c5a50b56df91a795e999812a3a4
NUXT_PUBLIC_MIXPANEL_API_HOST=https://analytics.speckle.systems

SPECKLE_ACCOUNT_ID=undefined
SPECKLE_TOKEN=undefined
SPECKLE_USER_ID=undefined
SPECKLE_URL=undefined
SPECKLE_SAMPLE_PROJECT_ID=undefined
SPECKLE_SAMPLE_MODEL_ID=undefined
43 changes: 35 additions & 8 deletions packages/dui3/app.vue
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
<template>
<div id="speckle" class="bg-foundation-page text-foreground">
<div id="speckle" class="bg-foundation-page text-foreground overflow-auto">
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
<SingletonToastManager />
</div>
</template>
<script setup lang="ts">
import { useMixpanel } from '~/lib/core/composables/mixpanel'
import { useConfigStore } from '~/store/config'
import { useAccountStore } from '~/store/accounts'
import { storeToRefs } from 'pinia'
import { useAccountsSetup } from '~/lib/accounts/composables/setup'
import { useDocumentInfoStore } from '~/store/uiConfig'
import { useUpdateConnector } from '~/lib/core/composables/updateConnector'

const uiConfigStore = useDocumentInfoStore()
const uiConfigStore = useConfigStore()
const { isDarkTheme } = storeToRefs(uiConfigStore)

useAccountsSetup()

useHead({
// Title suffix
titleTemplate: (titleChunk) =>
Expand All @@ -24,7 +25,33 @@ useHead({
class: computed(() => (isDarkTheme.value ? `dark` : ``))
},
bodyAttrs: {
class: 'simple-scrollbar bg-foundation-page text-foreground'
}
class: 'simple-scrollbar bg-foundation-page text-foreground '
},
// For standalone vue devtools see: https://devtools.vuejs.org/guide/installation.html#standalone
script: import.meta.dev ? ['http://localhost:8098'] : []
})

onMounted(async () => {
const { trackEvent, addConnectorToProfile, identifyProfile } = useMixpanel()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

const { checkUpdate } = useUpdateConnector()
// TODO: some host apps can open DUI3 automatically, with this case we shouldn't mark track event as `"type": "action"`,
// we need to get this info from source app. (TBD which apps: Rhino opens automatically, not sure acad, sketchup and revit needs trigger button to init)
trackEvent('DUI3 Action', { name: 'Launch' })

// Checks whether new version available for the connector or not and throws a toast notification if any.
await checkUpdate()

const { accounts } = useAccountStore()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ditto regarding composables


const uniqueEmails = new Set<string>()
accounts.forEach((account) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be a watcher activity that is re-invoked every time the accounts list changes?

const email = account?.accountInfo.userInfo.email
if (email && !uniqueEmails.has(email)) {
addConnectorToProfile(email)
identifyProfile(email)
uniqueEmails.add(email)
}
})
})
</script>
store/config
54 changes: 54 additions & 0 deletions packages/dui3/components/accounts/Item.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<template>
<button
v-tippy="tip"
:class="`group block w-full p-2 text-left items-center space-x-2 select-none group transition hover:bg-primary-muted hover:cursor-pointer hover:text-primary ${
!account.isValid
? 'text-danger bg-rose-500/10 cursor-not-allowed'
: 'cursor-pointer'
} ${
currentSelectedAccountId === account.accountInfo.id
? 'bg-blue-500/5 text-primary'
: ''
}`"
:disabled="!account.isValid"
@click="$emit('select', account)"
>
<div class="flex items-center space-x-2">
<UserAvatar :user="userAvatar" :active="account.accountInfo.isDefault" />
<div class="min-w-0 grow">
<div class="truncate overflow-hidden min-w-0 flex items-center space-x-2">
<span>{{ account.accountInfo.serverInfo.name }}</span>
<span class="text-foreground-2 truncate min-w-0 caption">
{{ account.accountInfo.serverInfo.url.split('//')[1] }}
</span>
</div>
</div>
</div>
</button>
</template>
<script setup lang="ts">
import type { DUIAccount } from '~~/store/accounts'

const props = defineProps<{
account: DUIAccount
currentSelectedAccountId?: string
}>()

defineEmits<{
(e: 'select', account: DUIAccount): void
}>()

const userAvatar = computed(() => {
return {
name: props.account.accountInfo.userInfo.name,
avatar: props.account.accountInfo.userInfo.avatar
}
})

const tip = computed(() => {
let value = ''
if (props.account.accountInfo.isDefault) value += 'This is your default account. '
if (!props.account.isValid) value += 'This account is not reachable.'
return value === '' ? null : value
})
</script>
84 changes: 84 additions & 0 deletions packages/dui3/components/accounts/Menu.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
<template>
<div>
<button v-tippy="`Click to change the account.`" @click="showAccountsDialog = true">
<UserAvatar v-if="!showAccountsDialog" :user="user" hover-effect />
<UserAvatar v-else hover-effect>
<XMarkIcon class="w-6 h-6" />
</UserAvatar>
</button>
<LayoutDialog
v-model:open="showAccountsDialog"
title="Select account"
fullscreen="none"
>
<CommonLoadingBar :loading="isLoading" class="my-0" />
<AccountsItem
v-for="acc in accounts"
:key="acc.accountInfo.id"
:current-selected-account-id="currentSelectedAccountId"
:account="(acc as DUIAccount)"
class="rounded-lg mb-2"
@select="selectAccount(acc as DUIAccount)"
/>
<FormButton text size="xs" @click="accountStore.refreshAccounts()">
Refresh accounts
</FormButton>
</LayoutDialog>
</div>
</template>
<script setup lang="ts">
import { storeToRefs } from 'pinia'
import { XMarkIcon } from '@heroicons/vue/20/solid'
import type { DUIAccount } from '~/store/accounts'
import { useAccountStore } from '~/store/accounts'
import { useMixpanel } from '~/lib/core/composables/mixpanel'

const { trackEvent } = useMixpanel()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

const app = useNuxtApp()

const props = defineProps<{
currentSelectedAccountId?: string
}>()

defineEmits<{
(e: 'select', account: DUIAccount): void
}>()

const showAccountsDialog = ref(false)

app.$baseBinding.on('documentChanged', () => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally these event handlers should be typed: You can only subscribe to existing events and payloads are typed appropriately

showAccountsDialog.value = false
})

watch(showAccountsDialog, (newVal) => {
if (newVal) {
void accountStore.refreshAccounts()
void trackEvent('DUI3 Action', { name: 'Account menu open' })
}
})

const accountStore = useAccountStore()
const { accounts, defaultAccount, userSelectedAccount, isLoading } =
storeToRefs(accountStore)

const selectAccount = (acc: DUIAccount) => {
userSelectedAccount.value = acc
accountStore.setUserSelectedAccount(acc) // saves the selected account id into DUI3Config.db for later use
showAccountsDialog.value = false
void trackEvent('DUI3 Action', { name: 'Account change' })
}

const user = computed(() => {
if (!defaultAccount.value) return undefined
let acc = defaultAccount.value
if (props.currentSelectedAccountId) {
acc = accounts.value.find(
(acc) => acc.accountInfo.id === props.currentSelectedAccountId
) as DUIAccount
}
return {
name: acc.accountInfo.userInfo.name,
avatar: acc.accountInfo.userInfo.avatar
}
})
</script>
158 changes: 158 additions & 0 deletions packages/dui3/components/automate/CreateDialog.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
<!-- NOT WILL BE USED SINCE WE ENABLE AUTOMATION CREATION FROM DUI3 -->
<template>
<div class="p-0">
<slot name="activator" :toggle="toggleDialog"></slot>
<LayoutDialog
v-model:open="showAutomateDialog"
:title="`Settings`"
fullscreen="none"
>
<div v-if="hasFunctions">
<FormSelectBase
key="name"
v-model="selectedFunction"
clearable
label="Automate functions"
placeholder="Nothing selected"
name="Functions"
show-label
:items="functions"
mount-menu-on-body
>
<template #something-selected="{ value }">
<span>{{ value.name }}</span>
</template>
<template #option="{ item }">
<div class="flex items-center">
<span class="truncate">{{ item.name }}</span>
</div>
</template>
</FormSelectBase>
</div>
<div v-if="selectedFunction && finalParams && step === 0">
<FormJsonForm
ref="jsonForm"
:data="data"
:schema="finalParams"
class="space-y-4"
:validate-on-mount="false"
@change="handler"
/>
</div>
<div v-if="step === 1">
<FormTextInput
v-model="automationName"
name="automationName"
label="Automation name"
color="foundation"
show-label
help="Give your automation a name"
placeholder="Name"
show-required
validate-on-value-update
/>
</div>
<FormButton
v-if="selectedFunction && step === 0"
size="sm"
class="mt-4"
@click="step++"
>
Next
</FormButton>
<FormButton
v-if="selectedFunction && step === 1"
size="sm"
class="mt-4"
@click="createAutomationHandler"
>
Create
</FormButton>
</LayoutDialog>
</div>
</template>

<script setup lang="ts">
import { storeToRefs } from 'pinia'
import type { AutomateFunctionItemFragment } from '~/lib/common/generated/gql/graphql'
import {
automateFunctionsQuery,
createAutomationMutation
} from '~/lib/graphql/mutationsAndQueries'
import { provideApolloClient, useMutation, useQuery } from '@vue/apollo-composable'
import { useAccountStore } from '~/store/accounts'
import type { ApolloError } from '@apollo/client/errors'
import { formatVersionParams } from '~/lib/common/helpers/jsonSchema'
import { useJsonFormsChangeHandler } from '~/lib/core/composables/jsonSchema'

const props = defineProps<{
projectId: string
modelId: string
}>()

const step = ref<number>(0)

const automationName = ref<string>('')

const accountStore = useAccountStore()
const { activeAccount } = storeToRefs(accountStore)
const accountId = computed(() => activeAccount.value?.accountInfo.id) // NOTE: none of the tokens here has read, write access to automate, only frontend tokens have. Keep in mind after first pass!

const selectedFunction = ref<AutomateFunctionItemFragment>()

const showAutomateDialog = ref(false)

const toggleDialog = () => {
showAutomateDialog.value = !showAutomateDialog.value
}

const { mutate } = provideApolloClient(activeAccount.value.client)(() =>
useMutation(createAutomationMutation)
)

const createAutomationHandler = async () => {
const _res = await mutate({
projectId: props.projectId,
input: { name: automationName.value, enabled: false }
})
showAutomateDialog.value = false
}

const { result: functionsResult, onError } = useQuery(
automateFunctionsQuery,
() => ({}),
() => ({ clientId: accountId.value, debounce: 500, fetchPolicy: 'network-only' })
)

onError((err: ApolloError) => {
console.warn(err.message)
})

const functions = computed(() => functionsResult.value?.automateFunctions.items)
const hasFunctions = computed(() => functions.value?.length !== 0)

const release = computed(() =>
selectedFunction.value?.releases.items.length
? selectedFunction.value?.releases.items[0]
: undefined
)

const finalParams = computed(() => formatVersionParams(release.value?.inputSchema))

const { handler } = useJsonFormsChangeHandler({
schema: finalParams
})

console.log(finalParams)

type DataType = Record<string, unknown>
const data = computed(() => {
const kvp = {} as DataType
if (finalParams.value) {
Object.entries(finalParams.value).forEach((k, _) => {
kvp[k as unknown as string] = undefined
})
}
return kvp
})
</script>
Loading