+1

This would obviously work only for non-terminal/nested pages.

You might also want to think about handling excludes (i.e. all parent types
*except* this and that), and probably the case when you have both includes
and excludes.

Also, the create UI (among others) would need to change a bit on the parent
selector (once you select a template provider with such restrictions),
probably by filtering the tree modal to show only pages of the restricted
type.

Thanks,
Eduard

On Tue, Nov 29, 2016 at 12:24 PM, Vincent Massol <[email protected]> wrote:

>
> > On 29 Nov 2016, at 10:23, Marius Dumitru Florea <
> [email protected]> wrote:
> >
> > Hi devs,
> >
> > I have an XWiki application that creates two types of pages. Let's call
> > them Category and Procedure. The application has two template providers
> > that allow the users to create Categories and Procedures anywhere on the
> > wiki using the Create Page menu. I would like to restrict the creation
> like
> > this:
> >
> > * You can create a new Category page either as a top level page or as a
> > child of an existing Category page
> > * You can create a new Procedure page only as a child of an existing
> > Category or Procedure page
> >
> > Category -> ... Category -> Procedure -> ... -> Procedure
> >
> > One solution to achieve this is to add a new property to the template
> > provider, e.g. "parentType", that specifies the type of pages (XClass
> > references) that are allowed as parent. We would use a Database List with
> > multiple selection and relational storage. We can use the empty string to
> > represent "no parent" (i.e. top level page). An empty list would mean no
> > parent type restriction.
> >
> > Category template provider: {parentType: ["CategoryClass", ""]}
> > Procedure template provider: {parentType: ["CategoryClass",
> > "ProcedureClass"]}
> >
> > Do you think this is useful? Do you see any problem with this solution?
> Is
> > it worth implementing?
>
> If you need it then it means there’s a need (even though possibly not a
> very common one). The only downside I see is the complexity it adds for the
> user. We may want to think about an Advanced section in the template
> provide UI screen and move advanced options there.
>
> Thanks
> -Vincent
>
> > Thanks,
> > Marius
>
>

Reply via email to