Per Bjurström
Feb 11, 2015
  15706
(9 votes)

Typed tabs/groups

Currently in the typed model you are limited to defining sort order on individual content types and properties. The order defined then indirectly defines in which order groups are displayed when creating new content, and in which order the tabs are shown when editing content in the forms view. Normally you define groups as a list of constants that you use in the DisplayAttribute:

[ContentType(GroupName=GroupNames.News, Order=1)]
public class ArticlePage : PageData
{
  [Display(GroupName = GroupNames.Contact)]
  public virtual ContentReference Image { get; set; }
}

public static class GroupNames
{
   public const string News = "News";
   public const string Contact= "Contact";
}

In CMS 8 we are adding support for defining order and required access on the groups themselves. Just decorate the class:

 [GroupDefinitions]
public static class GroupNames
{
   [Display(GroupName="MyNews", Order=1)]
   public const string News = "News";
   [RequiredAccess(AccessLevel.Publish)]
   public const string Contact= "Contact";
}

Groups that do not have any order defined will fallback to the indirect sorting and will have sort index set to -1. It is also possible to override built-in groups to change sort order, for example:

[GroupDefinitions]
public static class GroupNames
{
    [Display(Order = 1000)]
    public const string Content = SystemTabNames.Content;
}


See SDK article Grouping content types and properties for more details.

Feb 11, 2015

Comments

Feb 11, 2015 02:17 PM

Nice!

Eric
Eric Feb 11, 2015 02:29 PM

Nice feature. So when is the release of CMS 8? :)

Feb 11, 2015 02:47 PM

@Eric Before Tết I hope :)

Eric
Eric Feb 11, 2015 03:24 PM

Ah good to know :)

Johan Book
Johan Book Feb 11, 2015 10:14 PM

+1

Henrik Fransas
Henrik Fransas Feb 24, 2015 10:46 AM

Great, a feature I've been waiting for a long time :)

Josef
Josef Apr 4, 2015 12:17 PM

Really nice!

Sriram raja
Sriram raja Jun 3, 2020 07:56 AM

how to restrict user access to all tabs above highlited one. There are many tabs. We need to have separate access for each tab access based on user group like admin editor etc. can you please post a code for it:)

Please login to comment.
Latest blogs
PageCriteriaQueryService builder with Blazor and MudBlazor

This might be a stupid idea but my new years resolution was to do / test more stuff so here goes. This razor component allows users to build and...

Per Nergård (MVP) | Feb 10, 2025

Enhancing Optimizely CMS Multi-Site Architecture with Structured Isolation

The main challenge of building an Optimizely CMS website is to think about its multi site capabilities up front. Making adjustment after the fact c...

David Drouin-Prince | Feb 9, 2025 | Syndicated blog

How to: set access right to folders

Today I stumped upon this question Solution for Handling File Upload Permissions in Episerver CMS 12, and there is a simple solution for that Using...

Quan Mai | Feb 7, 2025 | Syndicated blog

Poking around in the new Visual Builder and the SaaS CMS

Early findings from using a SaaS CMS instance and the new Visual Builder grids.

Johan Kronberg | Feb 7, 2025 | Syndicated blog

Be careful with your (order) notes

This happened a quite ago but only now I have had time to write about it. Once upon a time, I was asked to look into a customer database (in a big...

Quan Mai | Feb 5, 2025 | Syndicated blog

Imagevault download picker

This open source extension enables you to download images as ImageData with ContentReference from the ImageVault picker. It serves as an alternativ...

Luc Gosso (MVP) | Feb 4, 2025 | Syndicated blog