In page overview there is now a my stuff filter where users can filter the pages according to their roles.
Customization
You can edit this filter by inheriting either from AxPageOverviewHelper (the new class must be in Extras project then) or you create a new overview helper. This helper must either implement IMyStuffOverviewHelper or you can inherit from our sample AxOverviewMyStuffBaseHelper class.
Then you can override following methods:
public interface IMyStuffOverviewHelper
{
/// <summary>
/// Returns ListItems that should be displayed in radiobutton list.
/// </summary>
ListItemCollection GetMyStuffOptions(AxUser user);
/// <summary>
/// Read ListItems and sets according filter properties.
/// </summary>
MessageCollection ReadMyStuffFilter(ListItemCollection listItemCollection, IMyStuffFilterParameters filterParameters, AxUser user);
/// <summary>
/// Read filterparameters and sets according ListItem selected in collection.
/// </summary>
void BindMyStuffFilter(ListItemCollection listItemCollection, IMyStuffFilterParameters filterParameters);
}
Customization in custom overview pages
If you want to use sort of my stuff filter at your custom overview page, you have to do following (you can use any part of it also to customize page overview filter):
Register MyStuff-Control in your filter and inherit filter from IMyStuffFilter.
<%@ Register TagPrefix="AxCMS" TagName="MyStuff" src="~/admin/controls/MyStuff.ascx" %>
<AxCMS:MyStuff id="myStuffControl" runat="server" />
public interface IMyStuffFilter
{
event EventHandler Refresh;
event MessagesEventHandler MessagesOccured;
void SetMyStuffFilter(AxUser currentUser, IMyStuffOverviewHelper helper);
}
Your filterparameters must implement IMyStuffFilterParameters.
public interface IMyStuffFilterParameters
{
bool OnlyMyStuff {get; set;}
bool OnlyToPublish { get; set;}
bool OnlyToApprove { get; set;}
bool OnlyToRequestPublishing { get; set;}
int? CurrentUserID { get; set;}
}
In filter, you have to set in SetMyStuffFilter the properties CurrentUser and Helper with the given parameters and call function "myStuffControl.Bind(filterParameters);" in DataBind-function of filter and "myStuffControl.Read(filterParameters);" in ReadParameter-function.
You must also listen to following events of MyStuff control:
this.myStuffControl.Refresh += new EventHandler(myStuffControl_Refresh);
this.myStuffControl.MessagesOccured += new MessagesEventHandler(myStuffControl_MessagesOccured);
and pass them to your overviewpage
private void myStuffControl_MessagesOccured(object sender, MessagesEventArgs e)
{
if (MessagesOccured != null)
{
MessagesOccured(this, new MessagesEventArgs(e.Messages));
}
}
private void myStuffControl_Refresh(object sender, EventArgs e)
{
if (Refresh != null)
{
Refresh(sender, e);
}
}
In overview page those events get listen by default. On Refresh the filter reads its parameter and refreshed the grid, on MessagesOccured the given messagens are added to messagecollection of the page. You can override those actions by overriding function FilterRefresh and FilterMessagesOccured in your overview page.