feat(frontend): wip onboarding stepper
This commit is contained in:
@@ -94,15 +94,6 @@
|
||||
Whether you are writing new integrations, custom workflows or creating brand new
|
||||
apps on top of Speckle, we're here to support you!
|
||||
</p>
|
||||
<p>
|
||||
Get started sending data into Speckle by installing our connectos and setting up
|
||||
your accounts with our
|
||||
<b>Desktop Manager 👇</b>
|
||||
</p>
|
||||
<v-btn elevation="10" class="my-4" rounded color="primary" @click="downloadManager">
|
||||
<v-icon small class="mr-4">mdi-download</v-icon>
|
||||
Install connectors
|
||||
</v-btn>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</v-window-item>
|
||||
@@ -126,43 +117,6 @@
|
||||
<b>exchange</b>
|
||||
geometry and BIM data dirctly from the tools you use.
|
||||
</p>
|
||||
<p>
|
||||
Install all the connectors you need and manage your accounts with our
|
||||
<b>Desktop Manager 👇</b>
|
||||
</p>
|
||||
<v-btn elevation="10" class="my-4" rounded color="primary" @click="downloadManager">
|
||||
<v-icon small class="mr-4">mdi-download</v-icon>
|
||||
Install connectors
|
||||
</v-btn>
|
||||
|
||||
<v-expansion-panels flat class="mt-2 text-center">
|
||||
<v-expansion-panel>
|
||||
<v-expansion-panel-header class="text-center d-inline">
|
||||
<template #actions>
|
||||
<v-icon class="icon">$expand</v-icon>
|
||||
</template>
|
||||
<div class="text-center caption">Having problems?</div>
|
||||
</v-expansion-panel-header>
|
||||
<v-expansion-panel-content class="body-2">
|
||||
<p>
|
||||
Cannot set up your account? Try adding it from the web:
|
||||
<v-btn small text color="primary" @click="addAccount">Add Account</v-btn>
|
||||
</p>
|
||||
<p>
|
||||
Having issues installing the connectors? Check out our docs:
|
||||
<v-btn
|
||||
small
|
||||
text
|
||||
color="primary"
|
||||
href="https://speckle.guide/user/manager.html"
|
||||
target="_blank"
|
||||
>
|
||||
User Guide
|
||||
</v-btn>
|
||||
</p>
|
||||
</v-expansion-panel-content>
|
||||
</v-expansion-panel>
|
||||
</v-expansion-panels>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
</v-window-item>
|
||||
@@ -402,11 +356,7 @@ export default {
|
||||
}
|
||||
]
|
||||
}),
|
||||
computed: {
|
||||
rootUrl() {
|
||||
return window.location.origin
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
mounted() {
|
||||
this.$matomo && this.$matomo.trackEvent('onboarding', 'start')
|
||||
},
|
||||
@@ -436,18 +386,6 @@ export default {
|
||||
nextDev() {
|
||||
this.isDev = true
|
||||
this.next()
|
||||
},
|
||||
downloadManager() {
|
||||
this.hasClickedDownload = true
|
||||
this.$matomo && this.$matomo.trackPageView(`onboarding/managerdownload`)
|
||||
this.$matomo && this.$matomo.trackEvent('onboarding', 'managerdownload')
|
||||
window.open('https://releases.speckle.dev/manager/SpeckleManager%20Setup.exe', '_blank')
|
||||
},
|
||||
addAccount() {
|
||||
this.hasClickedAddAccount++
|
||||
this.$matomo && this.$matomo.trackPageView(`onboarding/accountadd`)
|
||||
this.$matomo && this.$matomo.trackEvent('onboarding', 'accountadd')
|
||||
window.open(`speckle://accounts?add_server_account=${this.rootUrl}`, '_blank')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -83,48 +83,162 @@
|
||||
</v-card>
|
||||
</v-col>
|
||||
<v-col cols="12" sm="12" md="8" lg="9" xl="10">
|
||||
<div v-if="!$apollo.loading && streams.totalCount === 0" class="pa-4">
|
||||
<no-data-placeholder
|
||||
:message="`Hello there! It seems like you don't have any streams yet. Here's a handful of useful links to help you get started:`"
|
||||
/>
|
||||
</div>
|
||||
<v-card v-if="user && user.streams.totalCount > 0" class="my-5" flat>
|
||||
<v-card-text class="body-1">
|
||||
<span>
|
||||
You have
|
||||
<v-icon small>mdi-compare-vertical</v-icon>
|
||||
<b>{{ user.streams.totalCount }}</b>
|
||||
streams and
|
||||
<v-icon small>mdi-source-commit</v-icon>
|
||||
<b>{{ user.commits.totalCount }}</b>
|
||||
commits.
|
||||
</span>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
<v-card elevation="0" color="transparent">
|
||||
<div v-if="$apollo.loading" class="my-5">
|
||||
<v-skeleton-loader type="list-item-three-line"></v-skeleton-loader>
|
||||
</div>
|
||||
</v-card>
|
||||
<v-row v-if="streams && streams.items">
|
||||
<v-col
|
||||
v-for="(stream, i) in streams.items"
|
||||
:key="i"
|
||||
cols="12"
|
||||
sm="12"
|
||||
md="12"
|
||||
lg="6"
|
||||
xl="4"
|
||||
>
|
||||
<list-item-stream :stream="stream"></list-item-stream>
|
||||
<v-row>
|
||||
<v-col v-if="$apollo.loading">
|
||||
<v-card elevation="0" color="transparent">
|
||||
<div v-if="$apollo.loading" class="my-5">
|
||||
<v-skeleton-loader type="list-item-three-line"></v-skeleton-loader>
|
||||
</div>
|
||||
</v-card>
|
||||
</v-col>
|
||||
|
||||
<v-col v-else-if="streams && streams.items && streams.items.length > 0">
|
||||
<!-- <div v-if="!$apollo.loading && streams.totalCount === 0" class="pa-4">
|
||||
<no-data-placeholder
|
||||
:message="`Hello there! It seems like you don't have any streams yet. Here's a handful of useful links to help you get started:`"
|
||||
/>
|
||||
</div> -->
|
||||
<v-card v-if="user" class="my-5" flat>
|
||||
<v-card-text class="body-1">
|
||||
<span>
|
||||
You have
|
||||
<v-icon small>mdi-compare-vertical</v-icon>
|
||||
<b>{{ user.streams.totalCount }}</b>
|
||||
streams and
|
||||
<v-icon small>mdi-source-commit</v-icon>
|
||||
<b>{{ user.commits.totalCount }}</b>
|
||||
commits.
|
||||
</span>
|
||||
</v-card-text>
|
||||
</v-card>
|
||||
|
||||
<v-row>
|
||||
<v-col
|
||||
v-for="(stream, i) in streams.items"
|
||||
:key="i"
|
||||
cols="12"
|
||||
sm="12"
|
||||
md="12"
|
||||
lg="6"
|
||||
xl="4"
|
||||
>
|
||||
<list-item-stream :stream="stream"></list-item-stream>
|
||||
</v-col>
|
||||
<infinite-loading
|
||||
v-if="streams.items.length < streams.totalCount"
|
||||
@infinite="infiniteHandler"
|
||||
>
|
||||
<div slot="no-more">These are all your streams!</div>
|
||||
<div slot="no-results">There are no streams to load</div>
|
||||
</infinite-loading>
|
||||
</v-row>
|
||||
</v-col>
|
||||
<v-col v-if="quickstart > 0">
|
||||
<div v-if="quickstart === 1" class="ma-5 headline">
|
||||
Hello 👋
|
||||
<br />
|
||||
It seems you're new here, let's get you set up:
|
||||
</div>
|
||||
<v-stepper
|
||||
v-model="quickstart"
|
||||
flat
|
||||
shaped
|
||||
vertical
|
||||
class="rounded-lg quickstart-stepper mt-5"
|
||||
>
|
||||
<v-stepper-step :complete="quickstart > 1" step="1">
|
||||
Create your first stream
|
||||
</v-stepper-step>
|
||||
|
||||
<v-stepper-content step="1" class="body-2">
|
||||
<p>
|
||||
Streams are the
|
||||
<b>primary way Speckle organizes data</b>
|
||||
. You can see them as a folder, a project or a repository.
|
||||
</p>
|
||||
<p>
|
||||
Streams
|
||||
<b>can be shared with others</b>
|
||||
and can be made publicly visible on the web. Only the owner of a stream can manage
|
||||
its permissions and visibility.
|
||||
</p>
|
||||
<p>
|
||||
In order to send data to Speckle you first need to create a stream, so
|
||||
<b>go ahead and create your first one</b>
|
||||
!
|
||||
</p>
|
||||
</v-stepper-content>
|
||||
|
||||
<v-stepper-step :complete="quickstart > 2" step="2">
|
||||
Install Speckle Manager
|
||||
</v-stepper-step>
|
||||
|
||||
<v-stepper-content step="2" class="body-2">
|
||||
<p>
|
||||
Speckle Manager is a
|
||||
<b>desktop application</b>
|
||||
that lets you install connectors for some of the most popular design and analysis
|
||||
software.
|
||||
</p>
|
||||
<p>
|
||||
The connectors
|
||||
<b>exchange</b>
|
||||
geometry and BIM data with Speckle, so that you can then access it wherever you
|
||||
want!
|
||||
</p>
|
||||
<v-btn elevation="10" class="my-5" rounded color="primary" @click="downloadManager">
|
||||
<v-icon small class="mr-4">mdi-download</v-icon>
|
||||
Download Manager
|
||||
</v-btn>
|
||||
</v-stepper-content>
|
||||
|
||||
<v-stepper-step :complete="quickstart > 3" step="3">
|
||||
Set up Speckle Manager
|
||||
</v-stepper-step>
|
||||
|
||||
<v-stepper-content step="3">
|
||||
<p>
|
||||
With Speckle Manager installed,
|
||||
<b>log into your account</b>
|
||||
and
|
||||
<b>add the connectors</b>
|
||||
for the software that you use.
|
||||
</p>
|
||||
<p>Having issues logging in or adding your account? Try with the button below:</p>
|
||||
<v-btn elevation="10" class="my-5" rounded color="primary" @click="addAccount">
|
||||
<v-icon small class="mr-4">mdi-account-plus</v-icon>
|
||||
Add account to manager
|
||||
</v-btn>
|
||||
</v-stepper-content>
|
||||
|
||||
<v-stepper-step step="4">Send data to Speckle</v-stepper-step>
|
||||
<v-stepper-content step="4">
|
||||
<p>Great progress 🥳!</p>
|
||||
<p>
|
||||
We're almost done here, and just need to send your first set of data to Speckle.
|
||||
By doing so you will also be creating your first
|
||||
<b>commit.</b>
|
||||
</p>
|
||||
<p>
|
||||
Commits are
|
||||
<b>snapshots or versions of your data in time.</b>
|
||||
Every time you send to Speckle, a new commit is created for you.
|
||||
</p>
|
||||
<p>Send data to Speckle now by using one of our connetors!</p>
|
||||
|
||||
<v-btn
|
||||
elevation="10"
|
||||
class="my-5"
|
||||
rounded
|
||||
color="primary"
|
||||
href="https://speckle.guide/user/connectors.html"
|
||||
target="_blank"
|
||||
>
|
||||
How to use connectors
|
||||
</v-btn>
|
||||
</v-stepper-content>
|
||||
</v-stepper>
|
||||
</v-col>
|
||||
<infinite-loading
|
||||
v-if="streams.items.length < streams.totalCount"
|
||||
@infinite="infiniteHandler"
|
||||
>
|
||||
<div slot="no-more">These are all your streams!</div>
|
||||
<div slot="no-results">There are no streams to load</div>
|
||||
</infinite-loading>
|
||||
</v-row>
|
||||
</v-col>
|
||||
</v-row>
|
||||
@@ -148,7 +262,6 @@ export default {
|
||||
StreamNewDialog,
|
||||
InfiniteLoading,
|
||||
UserAvatar,
|
||||
NoDataPlaceholder,
|
||||
ServerInviteDialog
|
||||
},
|
||||
apollo: {
|
||||
@@ -190,13 +303,40 @@ export default {
|
||||
return !this.loggedIn
|
||||
}
|
||||
}
|
||||
},
|
||||
authorizedApps: {
|
||||
query: gql`
|
||||
query {
|
||||
user {
|
||||
id
|
||||
authorizedApps {
|
||||
id
|
||||
}
|
||||
}
|
||||
}
|
||||
`,
|
||||
update: (data) => data.user.authorizedApps
|
||||
}
|
||||
},
|
||||
data: () => ({
|
||||
streams: [],
|
||||
newStreamDialog: false
|
||||
newStreamDialog: false,
|
||||
hasClickedDownload: false
|
||||
}),
|
||||
computed: {
|
||||
quickstart() {
|
||||
if (this.streams.totalCount === 0) return 1
|
||||
if (this.streams.totalCount > 0 && !this.hasManager && !this.hasClickedDownload) return 2
|
||||
if (this.streams.totalCount > 0 && !this.hasManager && this.hasClickedDownload) return 3
|
||||
if (this.hasManager && this.user.commits.totalCount === 0) return 4
|
||||
if (this.user.commits.totalCount > 0) return 0
|
||||
|
||||
return 0
|
||||
},
|
||||
hasManager() {
|
||||
if (!this.authorizedApps) return false
|
||||
return this.authorizedApps.findIndex((a) => a.id === 'sdm') !== -1
|
||||
},
|
||||
recentActivity() {
|
||||
let activity = []
|
||||
|
||||
@@ -216,6 +356,9 @@ export default {
|
||||
},
|
||||
loggedIn() {
|
||||
return localStorage.getItem('uuid') !== null
|
||||
},
|
||||
rootUrl() {
|
||||
return window.location.origin
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -226,6 +369,17 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
downloadManager() {
|
||||
this.hasClickedDownload = true
|
||||
this.$matomo && this.$matomo.trackPageView(`onboarding/managerdownload`)
|
||||
this.$matomo && this.$matomo.trackEvent('onboarding', 'managerdownload')
|
||||
window.open('https://releases.speckle.dev/manager/SpeckleManager%20Setup.exe', '_blank')
|
||||
},
|
||||
addAccount() {
|
||||
this.$matomo && this.$matomo.trackPageView(`onboarding/accountadd`)
|
||||
this.$matomo && this.$matomo.trackEvent('onboarding', 'accountadd')
|
||||
window.open(`speckle://accounts?add_server_account=${this.rootUrl}`, '_blank')
|
||||
},
|
||||
infiniteHandler($state) {
|
||||
this.$apollo.queries.streams.fetchMore({
|
||||
variables: {
|
||||
@@ -277,3 +431,8 @@ export default {
|
||||
text-decoration: underline;
|
||||
}
|
||||
</style>
|
||||
<style scoped>
|
||||
.quickstart-stepper {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user