Layout Editor Evolution in v4

Since our v1 release in 2009, Xibo’s layout editor has continued to evolve to better suit the needs of our users. We have continued to do this with v4, presenting what we believe to be our easiest to use editor to date.

editor

We’ve added a lot of tools between v1 and v4, such as draft/publish, playlists, interactive, etc, but this topic will focus solely on the editing experience and our design decisions.

What is the overall goal?

The overall goal is to simplify the design experience, make it easier to visualise playback, encourage users to create shorter layouts, and to remove much of the technical knowledge required (HTML/CSS).

Users need intuitive, simple, yet effective and comprehensive tools to build content quickly.

Key decisions

This effort comes down to some key decisions:

  • A user should be able to drag/drop/resize and position with real time feedback of how that will look.
  • A list of items which play in sequence is a playlist, and if a user wants that they should add a playlist.
  • Most users are not developers and seeing HTML/CSS in the editor is confusing. These things should be available via developer tools instead.
  • A user should be able to create a layout which uses data and updates automatically.

What are “Elements”?

Elements look simple, but are the keystone for our improvements in v4. There are global elements which can be used anywhere on the canvas, such as text, shapes, lines, etc. There are also elements that can be used in data widgets. They can be joined together into groups, and we have provided some example groups as Stencils.

When you use Elements alongside a data widget, you can have multiple of the same element on the canvas at the same time. These become “data slots” that you can use to show data side by side.

Finally using our new developer tools, you can add new elements and stencils for your users to take advantage of. This will lead to an expansion of our “Xibo Exchange” in future releases, where developers can showcase and share their creations.

Developer Experience

We sat down and asked ourselves “why aren’t more developers creating cool things for Xibo?” and quickly realised that our Developer Experience or DX as its commonly known could be improved upon. So, in v4 we set out to make it easier to create new widgets.

Our ethos was that simple things should be super simple, complicated things should be possible and documented, and unnecessary things should be removed. I do not recall where I heard it, but the principle of having a “low floor, high ceiling and white walls”.

The hardest part of this is to remove unnecessary things. By this we mean that the internal workings of the CMS shouldn’t ever be a consideration for someone making a new module/widget. We think we’ve done it by:

  • Separating a Widget into a Module and optional Templates
  • Designing an XML document to define how a widget should operation, including to collect widget properties, show form fields and generate HTML
  • Building concrete, documented interfaces for returning data

Our developer documentation will be ready for the release, and we will continue to evolve these tools as we use them ourselves to make the widgets/elements/stencils that come with the CMS.

Where is feature X?

We have removed things not functionality. Xibo is still the super flexible, turn to any use case tool, that you’ve been used to using all this time.

However to make way for the improved user experience, there are things which you need to do differently, particularly if you’re a power user.

Timelines

In v2 we introduced a panel in the editor to show each region on the layout and its content. This panel became the “region timeline” or “timeline” panel and evolved through v2 and v3 to contain detailed information on each region, its contents, and a convenient way to select regions on different layers.

When released in v2, this new way of working received a lot of negative feedback from users of 1.8, and we still have 1.8 instances today waiting for a version of Xibo that works for them.

We didn’t realise it at the time, but the timeline encourages users to make very intensive layouts with a lot of regions, a lot of content inside each region, and implies that these things will play in synchronised in time. Conversely Xibo has always considered a layout to be more like a slide in a presentation, and that is why our scheduling capability focuses on scheduling layouts and not things inside a region.

If you want a timeline in v4, you add a playlist which you can edit using the playlist editor. The playlist editor has a vertical timeline which you can see fixed height per widget or height per duration.

If you only use the layout mechanism to show a logo or ticker across the bottom of your images/videos/HTML content, then you could consider using an overlay schedule instead.

Note: based on your feedback, before final release we will have a layer panel to easily select elements which are behind other elements. This will also show you duration.

Regions

In Xibo you create your regions first, put them where you want and then put content inside them, right? Well for v4 we asked ourselves why this was necessary, and it turns out we don’t think it is.

In v4 you simply drag the media/widget you want from the toolbar, and then position/resize it as you want on the editor.

If you want to restrict your users to editing only a specific region, you can add a playlist and set sharing on that. If you want to provide a template for your users to position things in a predetermined manner, you can add a “Zone” widget in the template editor.

HTML/CSS

Embedded/HTML package widgets are the only way users can add HTML/CSS/JS directly into the editor.

For everyone else we have a new set of developer tools which comprise of XML definitions and a clear set of PHP interfaces for data retrieval. These tools represent a huge simplification over the module/widget system we had previously and we’re really excited to see what gets made with them.

Sub Playlists

This is a widget which is used to join together one or more playlists according to criteria specified in the widget properties.

In v4 you can add a “Playlist” to your canvas and then inside the Playlist editor add another Playlist to access this functionality.

Wrapping up

The Xibo community is as diverse as the places Xibo is used, and Xibo is built on feedback. v4 is our vision for making Xibo even more powerful and flexible than it already is, and at the same time making it easier to use!

The layout editor is a big part of that, and we’re looking forward to all the feedback which will allow us to improve further through 4.1 and beyond.

3 Likes

Great news :slight_smile:

one question:
Is it a problem to migrate the Data vom v3 to v4? (Custom HTML an CSS)

Great question! v3 widgets which use custom html/css will convert into v4 cleanly and still function as before. You’ll be able to edit them, but not create new.

Our developer docs will have a guide for how you would achieve the same in v4 (hopefully much more easily!)

5 posts were split to a new topic: V4 Layout Editor feedback

Dear Dan,
thanks for the update. Everything is fine, but I’ve issues with the lack of sub playlists. I miss the options. In my case, I have a dynamic playlist with a couple of items. This playlist is part of another playlist. Each time this playlist will be played, one item from the playlist should be playedv everytime another one. Either in order or randomly choosen. How to deal with it in the new structure?
Thanks in advance.

The options for a sub playlist are still there, you add a playlist from the toolbox, open the playlist and then add another playlist from the toolbox. This second playlist has the cycle options, etc that you’re looking for.

Dan, thanks for the reply. I do not have the same options in the subplaylist. I cannot arrange it like before. Either XIBO will play all items from the subplaylist or the first one. I need that each time the subplaylist is played, one item from it will play, but each time another one. That was possible before.

I have double checked on my CMS and I still see those options when following the steps Dan has mentioned above. To combine the play order of multiple Playlists we recommend that you should only add one Playlist to the timeline and then use the Playlists drop down to select the Playlists you want to combine from the Properties Panel.

That flow should be:

  • Add/Edit Layout

  • Drag a New Playlist from the Toolbox onto the Canvas:

  • Click the menu in the top right of the Playlist to edit.

  • Drag a New Playlist to the Timeline.

  • Use the Playlists drop down to select a Playlist in the Properties Panel.

  • Tick Enable Cycle Based playback to see options:

If you don’t see those options following the above steps then please do let us know.

2 Likes

Dear @natasha, following your instruction, everything is working fine. Thanks a lot.

1 Like

Fantastic, great to hear that it is working for you :+1: