public static ContentViewControlElement DefineLocationsBackendContentView(ConfigElement parent)
{
// initialize the content view; this is the element that will be returned to the page and holds all views of the admin panel
var backendContentView = new ContentViewControlElement(parent)
{
ControlDefinitionName = BackendDefinitionName,
ContentType = typeof(LocationItem),
UseWorkflow = false
};
// GridView element serves as the "List View" for the item list. Grid columns are defined later
var locationsGridView = new MasterGridViewElement(backendContentView.ViewsConfig)
{
ViewName = LocationsDefinitions.BackendListViewName,
ViewType = typeof(MasterGridView),
AllowPaging = true,
DisplayMode = FieldDisplayMode.Read,
ItemsPerPage = 50,
SearchFields = "Title",
SortExpression = "Title ASC",
Title = "Locations",
WebServiceBaseUrl = "~/Sitefinity/Services/Content/Locations.svc/"
};
backendContentView.ViewsConfig.Add(locationsGridView);
#region Module Main Toolbar definition
// Toolbar is the top menu with action buttons such as Create, Delete, Search, etc.
var masterViewToolbarSection = new WidgetBarSectionElement(locationsGridView.ToolbarConfig.Sections)
{
Name = "Toolbar"
};
// "Create" Button for Toolbar
var createLocationsWidget = new CommandWidgetElement(masterViewToolbarSection.Items)
{
Name = "CreateLocationsCommandWidget",
ButtonType = CommandButtonType.Create,
CommandName = DefinitionsHelper.CreateCommandName,
Text = "Create Location",
CssClass = "sfMainAction",
WidgetType = typeof(CommandWidget)
};
masterViewToolbarSection.Items.Add(createLocationsWidget);
// "Delete" button for Toolbar
var deleteLocationsWidget = new CommandWidgetElement(masterViewToolbarSection.Items)
{
Name = "DeleteLocationsCommandWidget",
ButtonType = CommandButtonType.Standard,
CommandName = DefinitionsHelper.GroupDeleteCommandName,
Text = "Delete",
WidgetType = typeof(CommandWidget),
CssClass = "sfGroupBtn"
};
masterViewToolbarSection.Items.Add(deleteLocationsWidget);
// "Search" button for toolbar
masterViewToolbarSection.Items.Add(DefinitionsHelper.CreateSearchButtonWidget(masterViewToolbarSection.Items, typeof(LocationItem)));
locationsGridView.ToolbarConfig.Sections.Add(masterViewToolbarSection);
#endregion
#region Locations Grid (List View)
// Define GridView mode
var gridMode = new GridViewModeElement(locationsGridView.ViewModesConfig)
{
Name = "Grid"
};
locationsGridView.ViewModesConfig.Add(gridMode);
#region Locations Grid Columns
// Title column
DataColumnElement titleColumn = new DataColumnElement(gridMode.ColumnsConfig)
{
Name = "Title",
HeaderText = "Title",
HeaderCssClass = "sfTitleCol",
ItemCssClass = "sfTitleCol",
ClientTemplate = @"<a sys:href='javascript:void(0);' sys:class=""{{ 'sf_binderCommand_edit sfItemTitle sfpublished"">
<strong>{{Title}}</strong></a>"
};
gridMode.ColumnsConfig.Add(titleColumn);
ActionMenuColumnElement actionsColumn = new ActionMenuColumnElement(gridMode.ColumnsConfig)
{
Name = "Actions",
HeaderText = "Actions",
HeaderCssClass = "sfMoreActions",
ItemCssClass = "sfMoreActions"
};
actionsColumn.MenuItems.Add(DefinitionsHelper.CreateActionMenuCommand(actionsColumn.MenuItems, "View", HtmlTextWriterTag.Li, "preview", "View", string.Empty));
actionsColumn.MenuItems.Add(DefinitionsHelper.CreateActionMenuCommand(actionsColumn.MenuItems, "Delete", HtmlTextWriterTag.Li, "delete", "Delete", string.Empty));
gridMode.ColumnsConfig.Add(actionsColumn);
#endregion
#endregion
#region Dialog Window definitions
#region Insert Item Dialog
// Insert Item Parameters
var parameters = string.Concat(
"?ControlDefinitionName=",
LocationsDefinitions.BackendDefinitionName,
"&ViewName=",
LocationsDefinitions.BackendInsertViewName);
// Insert Item Dialog
DialogElement createDialogElement = DefinitionsHelper.CreateDialogElement(
locationsGridView.DialogsConfig,
DefinitionsHelper.CreateCommandName,
"ContentViewInsertDialog",
parameters);
// add dialog to Backend
locationsGridView.DialogsConfig.Add(createDialogElement);
#endregion
#region Edit Item Dialog
// "Edit Item" Parameters
parameters = string.Concat(
"?ControlDefinitionName=",
LocationsDefinitions.BackendDefinitionName,
"&ViewName=",
LocationsDefinitions.BackendEditViewName);
// "Edit Item" Dialog
DialogElement editDialogElement = DefinitionsHelper.CreateDialogElement(
locationsGridView.DialogsConfig,
DefinitionsHelper.EditCommandName,
"ContentViewEditDialog",
parameters);
// Add Dialog to Backend
locationsGridView.DialogsConfig.Add(editDialogElement);
#endregion
#region Preview Item Dialog
// "Preview Item" parameters
parameters = string.Concat(
"?ControlDefinitionName=",
LocationsDefinitions.BackendDefinitionName,
"&ViewName=",
LocationsDefinitions.BackendPreviewName,
"&backLabelText=", "BacktoItems", "&SuppressBackToButtonLabelModify=true");
// Preview Item Dialog
DialogElement previewDialogElement = DefinitionsHelper.CreateDialogElement(
locationsGridView.DialogsConfig,
DefinitionsHelper.PreviewCommandName,
"ContentViewEditDialog",
parameters);
// Add Dialog to Backend
locationsGridView.DialogsConfig.Add(previewDialogElement);
#endregion
#endregion
#region Admin Forms Views
#region Create Item Form View
// bind create item view to web service
var locationsInsertDetailView = new DetailFormViewElement(backendContentView.ViewsConfig)
{
Title = "Create Location",
ViewName = LocationsDefinitions.BackendInsertViewName,
ViewType = typeof(DetailFormView),
ShowSections = true,
DisplayMode = FieldDisplayMode.Write,
ShowTopToolbar = true,
WebServiceBaseUrl = "~/Sitefinity/Services/Content/locations.svc/",
IsToRenderTranslationView = false,
UseWorkflow = false
};
backendContentView.ViewsConfig.Add(locationsInsertDetailView);
#endregion
#region Edit Item Form View
// bind Edit item form to web service
var locationsEditDetailView = new DetailFormViewElement(backendContentView.ViewsConfig)
{
Title = "Edit Location",
ViewName = LocationsDefinitions.BackendEditViewName,
ViewType = typeof(DetailFormView),
ShowSections = true,
DisplayMode = FieldDisplayMode.Write,
ShowTopToolbar = true,
WebServiceBaseUrl = "~/Sitefinity/Services/Content/Locations.svc/",
IsToRenderTranslationView = false,
UseWorkflow = false
};
backendContentView.ViewsConfig.Add(locationsEditDetailView);
#endregion
#region Preview Item Form View
// bind Preview Form to web service
var locationsPreviewDetailView = new DetailFormViewElement(backendContentView.ViewsConfig)
{
Title = "Location Preview",
ViewName = LocationsDefinitions.BackendPreviewName,
ViewType = typeof(DetailFormView),
ShowSections = true,
DisplayMode = FieldDisplayMode.Read,
ShowTopToolbar = true,
ShowNavigation = true,
WebServiceBaseUrl = "~/Sitefinity/Services/Content/Locations.svc/",
UseWorkflow = false
};
backendContentView.ViewsConfig.Add(locationsPreviewDetailView);
#endregion
#endregion
#region Locations Backend Forms Definition
#region Insert Form
LocationsDefinitions.CreateBackendSections(locationsInsertDetailView, FieldDisplayMode.Write);
LocationsDefinitions.CreateBackendFormToolbar(locationsInsertDetailView, true, true);
#endregion
#region Edit Form
LocationsDefinitions.CreateBackendSections(locationsEditDetailView, FieldDisplayMode.Write);
LocationsDefinitions.CreateBackendFormToolbar(locationsEditDetailView, false, true);
#endregion
#region Preview Form
CreateBackendSections(locationsPreviewDetailView, FieldDisplayMode.Read);
#endregion
#endregion
return backendContentView;
}