Also look at bug #117294 for the problematic behavior with preview showing master language instead of current language for content in the project with state Ready to Publish.
Hi Fredrik and thanks for your feedback!
Im going to go through your points briefly just to let you know where we stand on them currently.
More work will be put into the language part of the gadget. A language filter would be a good start.
Drag and drop is one of the most commonly used interaction patterns in the CMS today and we wanted to make sure to support this in the first version. There are however two more ways of adding items to a project in the current backlog. Either through the publish button (a menu option similar to “new draft from here”) or through the context menu (“Add to project”).
We did not want to integrate projects into the header of the UI at this stage mostly to keep it easy for the editors to decide if it is a tool that they wish to use or not. Based on the usage pattern we see for projects this might change in the future.
The reason why we did not want to mark pages in the page tree with a “ part of a project” icon is that on a site with alot of editors it might not take that long before most of the pages are part of some project (depending on work approach), which would then just make the icon annoying/redundant. But we are keeping this option open for the future.
As to the active project, we are working with a concept of this. Together with publishing rights and private projects. When this will be done though is not certain.
We are gathering feedback on all of the above of course, and yours is definitely noted. Please keep us updated as you try the later versions.
/Jonas
Hi Fredrik,
Yes there is a API that you could use to work with the Projects in your code. This API is (as the gadget) in Beta mode and can change without any notice.
E.g. You can use the EPiServer.DataAbstraction.ProjectRepository to interact with the projects and its item. There is also a ProjectPublisher class that you can use to publish projects. These classes are located in the EPiServer.CMS.Core nuget package.
/Magnus
To be able to integrate with the project feature I think you should consider the following for the API:
Strange behavior in preview
First, a bug not related to Projects itselfs but to how content is previewed. When a page is Ready to Publish it does only show published content. If you have a block in an content area that is also in state ready to publish it is not shown so you do not know how it will look like.
If you are working with at draft page and it includes a block in a content area that is not published in the current language it will show the master language instead of the draft version or the version that is ready to publish. The block is displayed as striped and it correctly states that the block is not displayed since it is in state ready to publish but the preview is for the master language which is quite confusing for the editors.
Languages
It must be possible to work with more language branches with projects in an easy way. I can both think of scenarios where you have one project per language but also that you can select to publish all or one language branch at a time for a project.
You need a language filter in the gadget or some sort of grouping of content per language in the user interface.
An option when you create a project if it is for a specific language or allows multiple languages whould help if you use projects for a step in a translation flow having more than one language might cause confusion.
API
Is there an API to create projects and add items?
UX
From a UX perspective I think drag and drop of pages to this Gadget is a nightmare!
If you pre install it as a forth tab next to Pages/Sites/Tasks it will not work well to do D&D. If you place the gadget below you will enter the resize & scroll nightmare. Especially since Recent and Versions gadgets also is added to the navigation pane.
I think projects is something that should be part of editing area header and integrated next to the publish button and not hidden in a gadget.
Help editors to see when a page/block/media is a part of a project. I think it should be indicated with an icon in the ordinary page tree similar to when you use Tools>Permanently Marked as Being Edited.
Active Project
I think there should be a concept of an active project. If a project is active, the big green publish button in the options drop down should be replaced with “Ready to Publish” button that adds it to the project.
If you do not have an active project (or have the wrong project active) you should get a similar warning that you can not edit the page, as you get when another editor works with a page, when is is part of a project. Of course with the possibility to override.
Just a text that it is part of a project makes it to easy for another editor to publish stuff that belongs to a project by misstake.
Meta Data
Making it possible to extend the project itself with more metadata is something I think is needed. Maybe a project should be “contentish” and be a subclass of ContentData to make it possible to have different kinds of projects and use the existing UI for editing all properties to edit the project.