Module Backend Views
Is it possible to push out any of the backend templates to be viewed by front end users.
For example Products module has revision history, Can I let a front user view this somehow?
Hi Kristian,
This is not supported. You will need to use a custom widget, say RadGrid or wrapper of the RadEditor which supports version comparison and bind the data by calling Telerik.Sitefinity.Versioning.VersionManager methods. There is a service
/Sitefinity/Services/Versioning/HistoryService.svc
that you can use to bind a RadGrid instance
sample
<
telerik:RadGrid
id
=
"historyGrid"
runat
=
"server"
AllowPaging
=
"false"
AllowMultiRowSelection
=
"true"
PageSize
=
"20"
Skin
=
"Sitefinity"
AllowSorting
=
"false"
>
<
PagerStyle
Mode
=
"NumericPages"
/>
<
ClientSettings
EnableRowHoverStyle
=
"true"
EnableAlternatingItems
=
"false"
>
<
Selecting
AllowRowSelect
=
"True"
/>
</
ClientSettings
>
<
MasterTableView
PageSize
=
"20"
>
<
Columns
>
<
telerik:GridClientSelectColumn
UniqueName
=
"ClientSelectColumn"
ItemStyle-CssClass
=
"sfCheckBoxCol"
HeaderStyle-CssClass
=
"sfCheckBoxCol"
/>
<
telerik:GridTemplateColumn
UniqueName
=
"BinderContainer0"
HeaderText="<%$ Resources:Labels, Version %>" HeaderStyle-CssClass="sfTitleCol" ItemStyle-CssClass="sfTitleCol"></
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"BinderContainer1"
HeaderText="<%$ Resources:Labels, LastEdited %>" HeaderStyle-CssClass="sfDateAndHour" ItemStyle-CssClass="sfDateAndHour"></
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"BinderContainer2"
HeaderText="<%$ Resources:Labels, By %>" HeaderStyle-CssClass="sfRegular" ItemStyle-CssClass="sfRegular"></
telerik:GridTemplateColumn
>
<
telerik:GridTemplateColumn
UniqueName
=
"BinderContainer3"
HeaderText="<%$ Resources:Labels, Notes %>" HeaderStyle-CssClass="sfRegular sfItemNote" ItemStyle-CssClass="sfRegular sfItemNote"></
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
<
sitefinity:RadGridBinder
id
=
"historyGridBinder"
runat
=
"server"
ServiceUrl
=
"~/Sitefinity/Services/Versioning/HistoryService.svc"
TargetId
=
"historyGrid"
BindOnLoad
=
"false"
OnClientItemEditCommand
=
"OpenItem"
OnClientItemDeleteCommand
=
"ClientBinderDeleting"
OnClientItemDataBound
=
"UsersBinder_ItemDataBound"
OnClientTargetCommand
=
"UsersBinder_TargetCommand"
OnClientError
=
"UsersBinder_Error"
DataKeyNames
=
"Id"
DataMembers
=
"Id, CreatedByUserName, LastModified, Version, Comments"
ContainerTag
=
"div"
LoadingPanelID
=
"usersGridLoadingPanel"
>
<
Containers
>
<
sitefinity:BinderContainer
runat
=
"server"
>
<
div
id
=
"iconDiv"
sys:class
=
"sfItemVersionStatus"
>
<
a
sys:href
=
"javascript:void(0);"
class
=
"editCommand sfItemTitle"
>Version</
a
>
<
div
>ChangeDescription</
div
>
</
div
>
</
sitefinity:BinderContainer
>
<
sitefinity:BinderContainer
runat
=
"server"
>
<
span
>LastModified.sitefinityLocaleFormat('dd MMM, yyyy; hh:mm tt')</
span
>
</
sitefinity:BinderContainer
>
<
sitefinity:BinderContainer
runat
=
"server"
>
<
span
>CreatedByUserName</
span
>
</
sitefinity:BinderContainer
>
<
sitefinity:BinderContainer
runat
=
"server"
>
<
span
id
=
"noteContent"
>Comment</
span
><
br
/>
<
a
sys:href
=
"javascript:void(0);"
id
=
"btnNoteWrite"
class
=
"sf_binderCommand_editNote sfEditItemNote"
>$VersionResources, WriteNoteLabel$</
a
>
<
a
sys:href
=
"javascript:void(0);"
id
=
"btnNoteEdit"
class
=
"sf_binderCommand_editNote sfEditItemNote"
>$VersionResources, EditNoteLabel$</
a
>
<
a
sys:href
=
"javascript:void(0);"
id
=
"btnNoteDelete"
class
=
"sf_binderCommand_deleteNote sfDeleteItemNote"
>$VersionResources, DeleteNoteLabel$</
a
>
</
sitefinity:BinderContainer
>
</
Containers
>
</
sitefinity:RadGridBinder
>
<
sfFields:FormManager
id
=
"formManager"
runat
=
"server"
/>
Cool. this gives me the template, how do I tie in the version manager to my custom module?
Hello Kristian,
RadGridBinder should perform the binding using the service.
All the best,
Ivan Dimitrov
the Telerik team
Ok, then I am not sure what I am missing if the service Url is in the radgridbinder
I put the code your provided in a template and dropped it on the page that had my frontend view for my custom module. Clicking on one of my module items I'd expect the versioning to show up for that specific item. Maybe I am not understanding how the binder works?