More field types and the "excerpt" tab
After we have implemented the SEO tab in the second alpha we wanted to add the next tab in our content mangement section, the excerpt. This is useful if you are using pages in some kind of overview. Adding the tab was super easy (check out the PR which contains a little bit more than 200 lines of code including a new controller for handling excerpts).
However, for the excerpt we also need the field types for categories and tags which were missing until now. So we've decided to add this functionality to the already existing selection field type, explained in the blog post for the first alpha. Therefore the configuration explained in the first blog post changed a bit to allow easy configuration of multiple types for each entity.
Introducing toolbar actions
Until now we have built some very common toolbar buttons in our form view which worked quite well so far. However, with the introduction of multiple tabs, which are sharing some of the buttons, this got a little cumbersome to handle. So we decided to refactor that approach and introduced a new ToolbarActionRegistry. In this registry multiple ToolbarActions can be registered and in the configuration of the routes a new toolbarActions option was introduced describing which of the available buttons should be used. It is also quite easy to add these buttons on your own but this will be explained in a separate blog post (series?) showing the different ways of extending the Sulu 2.0 UI.
Apart from these actions we also introduced the already existing PublishIndicator in the toolbar so that the content manager can also easily see whether the page currently being edited has already been published or not.
Copying page locales
We already had a "Copy locale" functionality in the old UI so it's also a must-have in the new one. It's practically in the same place and works quite similar except for the fact that it has been stripped down a bit. Previously you had to choose the locale of the page you are copying from again and now we just assume you are copying from the locale you have currently opened.