Activity Stream & Frontend updates

Hello community & @Insiders !

Our team has been doing quite a bit of server&frontend work in the last sprint, and we’d like to share it with you before it’s publicly released so you can help us tailor it even more to your needs.

NOTE: want to play with these new features? Just :point_right: https://speckle.community/t/become-a-speckle-tester/1570/

Activity Stream

We’re introducing an activity stream to help you stay on top of what your team and coworkers are doing on the streams you have access to.

image

It will replace the current homepage when you visit Speckle Web and it’ll return activity on streams, branches and commits.

This functionality is also available in our GraphQl API, so just peek in the explorer. We added an activity endpoint, that returns events for the current user and a timeline endpoint, that returns events for all the resources the current user has access to:

image

Stream Navigation

We’ve also improved a lot the user experience when navigating a Stream, we added a side menu containing all the things you might want to access and improved various pages.

image

Feedback

We’d :heart: to hear what you think! Are these improvements or a step back?
Are we displaying all the information you’d like to see? How can it be improved and made even better?

Here’s a few of the outstanding items we’ll tackle soon:
https://github.com/specklesystems/speckle-server/issues/366

3 Likes

Nice improvements! I really like the navigation with the side menu.

Some small improvement suggestions:

Side menu
Sometimes the highlighted in the side menu disappears. For example, when you click on Globals from the side menu, Globals is highlighted. When you then select a commit on the bottom (from the Global History) the highlight disappears.
The same happens when you click on Branches in the side menu and then click on a branch, the highlight disappears.
I think it would be good to keep it highlighted so it’s more clear where you are, or if you send someone a link they jump straight in and can quickly see where they are.

Globals
If you save or create the globals, you get a pop-up on the top right (see first screenshot below) with an URL that is referring to the globals branch (see second screenshot below). Is it intended like this because, as far as I could see, only this pop-up gets you to the globals branch URL?

Globals:

Globals branch:

API
In V1 it was possible to view all objects in a stream in json format with the correct URL (/api/streams/[stream_id]/objects). What is the best way to do this in V2?

I was messing around with the very nice GraphQL Explorer and managed to retrieve the data. Is this the way to go, or are there other / better ways to do this? Maybe good to add this basic query to the docs just as the Advanced queries?

{
  stream(id:"[stream_id]")
  {
    object(id:"[commit_id]")
    {
      children
      {
        objects {
          data
        }
      }
    }
  }
}

Two minor things about the GraphQL explorer:

  1. On the dev server, the URL to the explorer is set to local host. I can go to the explorer URL manually so the explorer is working.
    image

  2. The error popup has the same text and background colour so you can’t see it. You do see the error in the output when you run it so it’s not a big issue.
    image

2 Likes

Thanks @JdB that’s good feedback!

On the UI quirks, @dimitrie is already working on a much improved version - expect to see it on latest soon :slight_smile:

Regarding the GQL API, this is not possible anymore because of various changes in the backend architecture, you need to make multiple calls to get all objects (they can be detached, chunked etc).

We do have a javascript NPM package that does it automatically though.
Were you looking to achieve anything specific?

1 Like

Sounds good, thank you!

Regarding the API, I was just thinking about the process in V1. Next to the V1 3D viewer not all data was shown but with /api/streams/ you were able to scroll through all the data of all objects in json format. With the new V2 viewer it is probably not needed because all data is already there and accessible.