i had the same problem, with some changes in the console i added a extra checkbox for grand chidlren
just goto the the {DotNetNukeFolder}\DekstopModules\Admin\Console and open the following files and replace the the text.
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="Settings.ascx.vb" Inherits="DotNetNuke.Modules.Admin.Console.Settings" %>
<%@ Register TagPrefix="dnn" TagName="Label" Src="~/controls/LabelControl.ascx" %>
<dnn:label id="lblParentTab" runat="server" ControlName="ParentTab" ResourceKey="ParentTab" Suffix=":" />
<dnn:label id="lblDefaultSize" runat="server" ControlName="DefaultSize" ResourceKey="DefaultSize" Suffix=":" />
<dnn:label id="lblAllowResize" runat="server" ControlName="AllowResize" ResourceKey="AllowResize" Suffix=":" />
<dnn:label id="lblDefaultView" runat="server" ControlName="DefaultView" ResourceKey="DefaultView" Suffix=":" />
<dnn:label id="lblAllowViewChange" runat="server" ControlName="AllowViewChange" ResourceKey="AllowViewChange" Suffix=":" />
<dnn:label id="lblShowTooltip" runat="server" ControlName="ShowTooltip" ResourceKey="ShowTooltip" Suffix=":" />
<dnn:label id="lblConsoleWidth" runat="server" ControlName="ConsoleWidth" ResourceKey="ConsoleWidth" Suffix=":" />
<dnn:label id="lblConsoleShowChildren" runat="server" ControlName="ConsoleShowChildren" ResourceKey="ConsoleShowChildren" Suffix=":" />
Settings.ascx.vb
'
' DotNetNuke® - http://www.dotnetnuke.com
' Copyright (c) 2002-2010
' by DotNetNuke Corporation
'
' Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
' documentation files (the "Software"), to deal in the Software without restriction, including without limitation
' the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
' to permit persons to whom the Software is furnished to do so, subject to the following conditions:
'
' The above copyright notice and this permission notice shall be included in all copies or substantial portions
' of the Software.
'
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
' TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
' THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
' CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
' DEALINGS IN THE SOFTWARE.
'
Imports System.Web.UI
Imports DotNetNuke
Imports System.Collections.Generic
Imports DotNetNuke.Services.Exceptions
Imports DotNetNuke.Modules.Console.Components
Imports DotNetNuke.Entities.Tabs
Namespace DotNetNuke.Modules.Admin.Console
''' -----------------------------------------------------------------------------
''' <summary>
''' The Settings class manages Module Settings
''' </summary>
''' <remarks>
''' </remarks>
''' <history>
''' </history>
''' -----------------------------------------------------------------------------
Partial Class Settings
Inherits Entities.Modules.ModuleSettingsBase
#Region "Base Method Implementations"
Public Overrides Sub LoadSettings()
Try
If Page.IsPostBack = False Then
Dim portalTabs As List(Of TabInfo) = TabController.GetPortalTabs(PortalId, DotNetNuke.Common.Utilities.Null.NullInteger, False, True)
' Add host tabs
If UserInfo IsNot Nothing AndAlso UserInfo.IsSuperUser Then
Dim hostTabs As TabCollection = New TabController().GetTabsByPortal(Null.NullInteger)
portalTabs.AddRange(hostTabs.Values)
End If
ParentTab.Items.Clear()
For Each t As TabInfo In portalTabs
If (Security.Permissions.TabPermissionController.CanViewPage(t)) Then
ParentTab.Items.Add(New ListItem(t.IndentedTabName, t.TabID))
End If
Next
ParentTab.Items.Insert(0, "")
SelectDropDownListItem(ParentTab, "ParentTabID")
For Each val As String In ConsoleController.GetSizeValues()
DefaultSize.Items.Add(New ListItem(Localization.GetString(val, MyBase.LocalResourceFile), val))
Next
SelectDropDownListItem(DefaultSize, "DefaultSize")
If Settings.ContainsKey("AllowSizeChange") Then
AllowResize.Checked = CType(Settings("AllowSizeChange"), Boolean)
End If
For Each val As String In ConsoleController.GetViewValues()
DefaultView.Items.Add(New ListItem(Localization.GetString(val, MyBase.LocalResourceFile), val))
Next
SelectDropDownListItem(DefaultView, "DefaultView")
If Settings.ContainsKey("AllowViewChange") Then
AllowViewChange.Checked = CType(Settings("AllowViewChange"), Boolean)
End If
If Settings.ContainsKey("ShowTooltip") Then
ShowTooltip.Checked = CType(Settings("ShowTooltip"), Boolean)
End If
If Settings.ContainsKey("ConsoleWidth") Then
ConsoleWidth.Text = CType(Settings("ConsoleWidth"), String)
End If
If Settings.ContainsKey("ConsoleShowChildren") Then
ConsoleShowChildren.Checked = CType(Settings("ConsoleShowChildren"), Boolean)
End If
End If
Catch exc As Exception 'Module failed to load
ProcessModuleLoadException(Me, exc)
End Try
End Sub
Public Overrides Sub UpdateSettings()
Try
Dim objModules As New Entities.Modules.ModuleController
'validate console width value
Dim wdth As String = String.Empty
If (ConsoleWidth.Text.Trim().Length > 0) Then
Try
wdth = Unit.Parse(ConsoleWidth.Text.Trim()).ToString()
Catch ex As Exception
Throw New Exception("ConsoleWidth value is invalid. Value must be numeric.")
End Try
End If
If (ParentTab.SelectedValue = String.Empty) Then
objModules.DeleteModuleSetting(ModuleId, "ParentTabID")
Else
objModules.UpdateModuleSetting(ModuleId, "ParentTabID", ParentTab.SelectedValue)
End If
objModules.UpdateModuleSetting(ModuleId, "DefaultSize", DefaultSize.SelectedValue)
objModules.UpdateModuleSetting(ModuleId, "AllowSizeChange", AllowResize.Checked.ToString())
objModules.UpdateModuleSetting(ModuleId, "DefaultView", DefaultView.SelectedValue)
objModules.UpdateModuleSetting(ModuleId, "AllowViewChange", AllowViewChange.Checked.ToString())
objModules.UpdateModuleSetting(ModuleId, "ShowTooltip", ShowTooltip.Checked.ToString())
objModules.UpdateModuleSetting(ModuleId, "ConsoleWidth", wdth)
objModules.UpdateModuleSetting(ModuleId, "ConsoleShowChildren", ConsoleShowChildren.Checked.ToString())
Catch exc As Exception 'Module failed to load
ProcessModuleLoadException(Me, exc)
End Try
End Sub
Private Sub SelectDropDownListItem(ByRef ddl As DropDownList, ByVal key As String)
If Settings.ContainsKey(key) Then
ddl.ClearSelection()
Dim selItem As ListItem
selItem = ddl.Items.FindByValue(CType(Settings(key), String))
If Not selItem Is Nothing Then
selItem.Selected = True
End If
End If
End Sub
#End Region
End Class
End Namespace
ViewConsole.ascx
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="ViewConsole.ascx.vb" Inherits="DotNetNuke.Modules.Admin.Console.ViewConsole" %>
<script type="text/javascript">
jQuery(document).ready(function($) {
$("#<%=Console.ClientID %>").dnnConsole({<%=GetClientSideSettings() %>});
});
</script>
<div id="Console" runat="server" class="console">
<asp:DropDownList ID="IconSize" runat="server" />
<asp:DropDownList ID="View" runat="server" />
<br id="SettingsBreak" runat="server" style="clear:both" />
<div>
<asp:Repeater ID="DetailView" runat="server">
<ItemTemplate><%#GetHtml(Container.DataItem)%></ItemTemplate>
</asp:Repeater>
</div>
<br style="clear:both" />
</div>
ViewConsole.ascx.vb
'
' DotNetNuke® - http://www.dotnetnuke.com
' Copyright (c) 2002-2010
' by DotNetNuke Corporation
'
' Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
' documentation files (the "Software"), to deal in the Software without restriction, including without limitation
' the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
' to permit persons to whom the Software is furnished to do so, subject to the following conditions:
'
' The above copyright notice and this permission notice shall be included in all copies or substantial portions
' of the Software.
'
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
' TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
' THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
' CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
' DEALINGS IN THE SOFTWARE.
'
Imports System.Web.UI
Imports System.Collections.Generic
Imports System.Collections
Imports System.Reflection
Imports DotNetNuke
Imports DotNetNuke.Services.Exceptions
Imports DotNetNuke.Services.Localization
Imports DotNetNuke.Security.Permissions
Imports DotNetNuke.Entities.Tabs
Imports DotNetNuke.UI.Navigation
Imports DotNetNuke.UI.WebControls
Imports DotNetNuke.Modules.Console.Components
Namespace DotNetNuke.Modules.Admin.Console
''' -----------------------------------------------------------------------------
''' <summary>
''' The ViewConsole class displays the content
''' </summary>
''' <remarks>
''' </remarks>
''' <history>
''' </history>
''' -----------------------------------------------------------------------------
Partial Class ViewConsole
Inherits Entities.Modules.PortalModuleBase
#Region "Event Handlers"
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
jQuery.RequestRegistration()
Dim consoleJs As String = ResolveUrl("~/desktopmodules/admin/console/jquery.console.js")
Page.ClientScript.RegisterClientScriptInclude("ConsoleJS", consoleJs)
'Save User Preferences
SavePersonalizedSettings()
Catch exc As Exception
ProcessModuleLoadException(Me, exc)
End Try
End Sub
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
If (Not IsPostBack) Then
IconSize.Visible = AllowSizeChange
View.Visible = AllowViewChange
For Each val As String In ConsoleController.GetSizeValues()
IconSize.Items.Add(New ListItem(Localization.GetString(val + ".Text", MyBase.LocalResourceFile), val))
Next
For Each val As String In ConsoleController.GetViewValues()
View.Items.Add(New ListItem(Localization.GetString(val + ".Text", MyBase.LocalResourceFile), val))
Next
IconSize.SelectedValue = DefaultSize
View.SelectedValue = DefaultView
SettingsBreak.Visible = (IconSize.Visible And View.Visible)
Dim tempTabs As List(Of TabInfo) = Nothing
If (IsHostTab()) Then
tempTabs = TabController.GetTabsBySortOrder(Null.NullInteger)
Else
tempTabs = TabController.GetTabsBySortOrder(PortalId)
End If
Dim tabs As IList(Of Entities.Tabs.TabInfo) = New List(Of Entities.Tabs.TabInfo)()
Dim parentIDList As IList(Of Integer) = New List(Of Integer)()
parentIDList.Add(ConsoleTabID)
For Each tab As TabInfo In tempTabs
If (Not CanShowTab(tab)) Then
Continue For
End If
If (parentIDList.Contains(tab.ParentId)) Then
If (Not parentIDList.Contains(tab.TabID)) And (ConsoleShowChildren) Then
parentIDList.Add(tab.TabID)
End If
tabs.Add(tab)
End If
Next
DetailView.DataSource = tabs
DetailView.DataBind()
End If
If (ConsoleWidth <> String.Empty) Then
Console.Attributes.Add("style", "width:" & ConsoleWidth)
End If
Catch exc As Exception 'Module failed to load
ProcessModuleLoadException(Me, exc)
End Try
End Sub
#End Region
#Region "Methods"
Private _groupTabID As Integer = -1
Protected Function GetHtml(ByVal dataItem As Object) As String
Dim tab As TabInfo = CType(dataItem, TabInfo)
Dim returnValue As String = String.Empty
If (_groupTabID > -1 AndAlso _groupTabID <> tab.ParentId) Then
_groupTabID = -1
If (Not tab.DisableLink) Then
returnValue = "<br clear:both;"" /><br />"
End If
End If
If (tab.DisableLink) Then
Dim headerHtml As String = "<br clear:both;"" /><br /><h1><span TitleHead"">{0}</span></h1><br clear:both"" />"
returnValue += String.Format(headerHtml, _
DataBinder.Eval(dataItem, "TabName"))
_groupTabID = Integer.Parse(DataBinder.Eval(dataItem, "TabID"))
Else
Dim contentHtml As String = "<div>" _
+ "<a href=""{0}""><img src=""{1}"" /><img src=""{2}"" /></a>" _
+ "<h3 SubHead"">{3}</h3>" _
+ "<div>{4}</div>" _
+ "</div>"
returnValue += String.Format(contentHtml, _
DataBinder.Eval(dataItem, "FullUrl"), _
GetIconUrl(dataItem, "IconFile"), _
GetIconUrl(dataItem, "IconFileLarge"), _
DataBinder.Eval(dataItem, "LocalizedTabName"), _
DataBinder.Eval(dataItem, "Description"))
End If
Return returnValue
End Function
Private Function CanShowTab(ByVal tab As TabInfo) As Boolean
Return (Not tab.IsDeleted AndAlso (tab.StartDate < DateTime.Now OrElse tab.StartDate = Null.NullDate)) _
AndAlso TabPermissionController.CanViewPage(tab)
End Function
Protected Function GetIconUrl(ByVal dataItem As Object, ByVal size As String) As String
Dim iconURL As String = Convert.ToString(DataBinder.Eval(dataItem, size))
If (iconURL = String.Empty) Then
If (size = "IconFile") Then
iconURL = "~/images/icon_unknown_16px.gif"
Else
iconURL = "~/images/icon_unknown_32px.gif"
End If
End If
If iconURL.Contains("~") = False Then
iconURL = System.IO.Path.Combine(PortalSettings.HomeDirectory, iconURL)
End If
Return ResolveUrl(iconURL)
End Function
Protected Function GetClientSideSettings() As String
Dim tmid As String = "-1"
If (UserId > -1) Then
tmid = TabModuleId.ToString()
End If
Return String.Format("allowIconSizeChange: {0}, allowDetailChange: {1}, selectedSize: '{2}', showDetails: '{3}', tabModuleID: {4}, showTooltip: {5}, consoleShowChildren: {6}" _
, AllowSizeChange.ToString().ToLower() _
, AllowViewChange.ToString().ToLower() _
, DefaultSize _
, DefaultView _
, tmid _
, ShowTooltip.ToString().ToLower() _
, ConsoleShowChildren.ToString().ToLower())
End Function
Protected Sub SavePersonalizedSettings()
If (UserId > -1) Then
Dim consoleModuleID As Integer = -1
Try
If Not Request.QueryString("CTMID") Is Nothing Then
consoleModuleID = CInt(Request.QueryString("CTMID"))
End If
Catch ex As Exception
consoleModuleID = -1
End Try
If (consoleModuleID = TabModuleId) Then
Dim consoleSize As String = String.Empty
If Not Request.QueryString("CS") Is Nothing Then
consoleSize = Request.QueryString("CS").ToString()
End If
Dim consoleView As String = String.Empty
If Not Request.QueryString("CV") Is Nothing Then
consoleView = Request.QueryString("CV").ToString()
End If
If (Not consoleSize = String.Empty AndAlso ConsoleController.GetSizeValues().Contains(consoleSize)) Then
SaveUserSetting("DefaultSize", consoleSize)
End If
If (Not consoleView = String.Empty AndAlso ConsoleController.GetViewValues().Contains(consoleView)) Then
SaveUserSetting("DefaultView", consoleView)
End If
End If
End If
End Sub
Public Function GetUserSetting(ByVal key As String) As Object
Return Personalization.Personalization.GetProfile(ModuleConfiguration.ModuleDefinition.FriendlyName, PersonalizationKey(key))
End Function
Public Sub SaveUserSetting(ByVal key As String, ByVal val As Object)
Personalization.Personalization.SetProfile(ModuleConfiguration.ModuleDefinition.FriendlyName, PersonalizationKey(key), val)
End Sub
Public Function PersonalizationKey(ByVal key As String) As String
Return String.Format("{0}_{1}_{2}", PortalId.ToString(), TabModuleId.ToString(), key)
End Function
#End Region
#Region "Properties"
Private _ConsoleCtrl As ConsoleController
Public ReadOnly Property ConsoleCtrl() As ConsoleController
Get
If (_ConsoleCtrl Is Nothing) Then
_ConsoleCtrl = New ConsoleController()
End If
Return _ConsoleCtrl
End Get
End Property
Private _ConsoleTabID As Integer = Null.NullInteger
Public ReadOnly Property ConsoleTabID() As Integer
Get
If (_ConsoleTabID = Null.NullInteger) Then
If Settings.ContainsKey("ParentTabID") Then
_ConsoleTabID = Integer.Parse(Settings("ParentTabID").ToString())
Else
_ConsoleTabID = TabId
End If
End If
Return _ConsoleTabID
End Get
End Property
Public Function IsHostTab() As Boolean
Dim returnValue As Boolean = False
If ConsoleTabID <> TabId Then
If Not MyBase.UserInfo Is Nothing And MyBase.UserInfo.IsSuperUser Then
Dim hostTabs As TabCollection = New TabController().GetTabsByPortal(Null.NullInteger)
For Each key As Integer In hostTabs.Keys
If key = ConsoleTabID Then
returnValue = True
Exit For
End If
Next
End If
Else
returnValue = PortalSettings.ActiveTab.IsSuperTab
End If
Return returnValue
End Function
Private _AllowSizeChange As Object
Public ReadOnly Property AllowSizeChange() As Boolean
Get
If (_AllowSizeChange Is Nothing) Then
If Settings.ContainsKey("AllowSizeChange") Then
Try
_AllowSizeChange = Boolean.Parse(Settings("AllowSizeChange"))
Catch ex As Exception
_AllowSizeChange = True
End Try
Else
_AllowSizeChange = True
End If
End If
Return CBool(_AllowSizeChange)
End Get
End Property
Private _AllowViewChange As Object
Public ReadOnly Property AllowViewChange() As Boolean
Get
If (_AllowViewChange Is Nothing) Then
If Settings.ContainsKey("AllowViewChange") Then
Try
_AllowViewChange = Boolean.Parse(Settings("AllowViewChange"))
Catch ex As Exception
_AllowViewChange = True
End Try
Else
_AllowViewChange = True
End If
End If
Return CBool(_AllowViewChange)
End Get
End Property
Private _ShowTooltip As Object
Public ReadOnly Property ShowTooltip() As Boolean
Get
If (_ShowTooltip Is Nothing) Then
If Settings.ContainsKey("ShowTooltip") Then
Try
_ShowTooltip = Boolean.Parse(Settings("ShowTooltip"))
Catch ex As Exception
_ShowTooltip = True
End Try
Else
_ShowTooltip = True
End If
End If
Return CBool(_ShowTooltip)
End Get
End Property
Private _DefaultSize As String = String.Empty
Public ReadOnly Property DefaultSize() As String
Get
If (_DefaultSize = String.Empty AndAlso AllowSizeChange AndAlso UserId > Null.NullInteger) Then
Dim personalizedValue As Object = GetUserSetting("DefaultSize")
If (Not personalizedValue Is Nothing) Then
_DefaultSize = CStr(personalizedValue)
End If
End If
If (_DefaultSize = String.Empty) Then
If Settings.ContainsKey("DefaultSize") Then
_DefaultSize = CStr(Settings("DefaultSize"))
Else
_DefaultSize = "IconFile"
End If
End If
Return _DefaultSize
End Get
End Property
Private _DefaultView As String = String.Empty
Public ReadOnly Property DefaultView() As String
Get
If (_DefaultView = String.Empty AndAlso AllowViewChange AndAlso UserId > Null.NullInteger) Then
Dim personalizedValue As Object = GetUserSetting("DefaultView")
If (Not personalizedValue Is Nothing) Then
_DefaultView = CStr(personalizedValue)
End If
End If
If (_DefaultView = String.Empty) Then
If Settings.ContainsKey("DefaultView") Then
_DefaultView = CStr(Settings("DefaultView"))
Else
_DefaultView = "Hide"
End If
End If
Return _DefaultView
End Get
End Property
Private _ConsoleWidth As Object = Nothing
Public ReadOnly Property ConsoleWidth() As String
Get
If (_ConsoleWidth = Nothing) Then
If Settings.ContainsKey("ConsoleWidth") Then
Try
_ConsoleWidth = Unit.Parse(Settings("ConsoleWidth")).ToString()
Catch ex As Exception
_ConsoleWidth = ""
End Try
Else
_ConsoleWidth = ""
End If
End If
Return CStr(_ConsoleWidth)
End Get
End Property
Private _ConsoleShowChildren As Object
Public ReadOnly Property ConsoleShowChildren() As Boolean
Get
If (_ConsoleShowChildren Is Nothing) Then
If Settings.ContainsKey("ConsoleShowChildren") Then
Try
_ConsoleShowChildren = Boolean.Parse(Settings("ConsoleShowChildren"))
Catch ex As Exception
_ConsoleShowChildren = True
End Try
Else
_ConsoleShowChildren = True
End If
End If
Return CBool(_ConsoleShowChildren)
End Get
End Property
#End Region
End Class
End Namespace
App_LocalResources\Settings.ascx.resx
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ControlTitle_settings.Text" xml:space="preserve">
<value>Console Settings</value>
</data>
<data name="ModuleHelp.Text" xml:space="preserve">
<value><p>The console module displays child pages as icons and links, or categories to assist in navigation. The console module has 4 different display modes:
<ul><li>small icons with details as tooltip (Small Icons, Simple View)</li>
<li>large icons details as tooltips (Large Icons, Simple View)</li>
<li>small icons list with details (Small Icons, Detailed View)</li>
<li>large icon list with details (Large Icons, Detailed View)</li>
</ul>
</P>
<h3>Page Settings the console module depends on:</h3>
<table cellpadding="4" border="1" style="border:solid 1px #dcdcdc;border-collapse:collapse;">
<tr><td nowrap="nowrap">Page Name</td><td>The Page Name is shown as the link title.</td></tr>
<tr><td nowrap="nowrap">Page Description</td><td>The Page Description is shown as the tooltip or detail.</td></tr>
<tr><td nowrap="nowrap">Disabled</td><td>Category titles are shown if the page has 'Disabled' checked. Child pages of the disabled page will be shown under the title.</td></tr>
<tr><td nowrap="nowrap">Icon File</td><td>This icon is used in small icon views.</td></tr>
<tr><td nowrap="nowrap">Large Icon File</td><td>This icon is used in large icon views.</td></tr>
</table>
<i>Tip: 'Include in menu' setting will hide pages from the menu but not the console.</i>
<br /><br />
<h3>Console Module Settings</h3>
<table cellpadding="4" border="1" style="border:solid 1px #dcdcdc;border-collapse:collapse;">
<tr><td nowrap="nowrap">Show children of</td><td>Selecting a page will display all child pages of that page. Leave this field blank to display all child pages for the current page.</td></tr>
<tr><td nowrap="nowrap">Default icon size</td><td>Determines the icon size.</td></tr>
<tr><td nowrap="nowrap">Allow icon resize</td><td>Allow the user to resize the icons.</td></tr>
<tr><td nowrap="nowrap">Default view</td><td>Determines the default view. Simple view will show icons with page descriptions as tooltips. Detailed view will show a list with descriptions for each item.</td></tr>
<tr><td nowrap="nowrap">Allow view change</td><td>Allow the user to switch between detailed and simple views.</td></tr>
<tr><td nowrap="nowrap">Show tooltip</td><td>Show a tooltip with detailed description when hovering over icons in Simple View.</td></tr>
<tr><td nowrap="nowrap">Width</td><td>Leave this value empty to allow the icons to expand horizontally. Set this value to minimize the width of the console. For example, set this value to 400 for 2 columns of icons.</td></tr>
<tr><td nowrap="nowrap">Show all child pages</td><td>Show all child pages.</td></tr>
</table>
<i>Tip: You can prevent users from changing the layout of the page by un-checking 'Allow icon resize' and 'Allow view change'.</i></value>
</data>
<data name="AllowResize.Help" xml:space="preserve">
<value>Allow the icons to be resized.</value>
</data>
<data name="AllowResize.Text" xml:space="preserve">
<value>Allow icon resize</value>
</data>
<data name="AllowViewChange.Help" xml:space="preserve">
<value>Allow switching between detailed and simple views.</value>
</data>
<data name="AllowViewChange.Text" xml:space="preserve">
<value>Allow view change</value>
</data>
<data name="DefaultSize.Help" xml:space="preserve">
<value>Determines the icon size.</value>
</data>
<data name="DefaultSize.Text" xml:space="preserve">
<value>Default icon size</value>
</data>
<data name="DefaultView.Help" xml:space="preserve">
<value>Determines the default view. Simple view will show icons with page descriptions as tooltips. Detailed view will show a list with descriptions for each item.</value>
</data>
<data name="DefaultView.Text" xml:space="preserve">
<value>Default view</value>
</data>
<data name="ParentTab.Help" xml:space="preserve">
<value>Selecting a page will display all child pages for that page. Leave this field blank to display all child pages for the current page.</value>
</data>
<data name="ParentTab.Text" xml:space="preserve">
<value>Show children of</value>
</data>
<data name="Hide.Text" xml:space="preserve">
<value>Simple View</value>
</data>
<data name="IconFile.Text" xml:space="preserve">
<value>Small Icons (16px)</value>
</data>
<data name="IconFileLarge.Text" xml:space="preserve">
<value>Large Icons (32px)</value>
</data>
<data name="Show.Text" xml:space="preserve">
<value>Detailed View</value>
</data>
<data name="ShowTooltip.Help" xml:space="preserve">
<value>Show a tooltip with detailed description when hovering over icons in Simple View.</value>
</data>
<data name="ShowTooltip.Text" xml:space="preserve">
<value>Show tooltip</value>
</data>
<data name="ConsoleWidth.Help" xml:space="preserve">
<value>Leave this value empty to allow the icons to expand horizontally. Set this value to minimize the width of the console. For example, set this value to 400 for 2 columns of icons.</value>
</data>
<data name="ConsoleWidth.Text" xml:space="preserve">
<value>Width</value>
</data>
<data name="ConsoleShowChildren.Help" xml:space="preserve">
<value>Show all child pages.</value>
</data>
<data name="ConsoleShowChildren.Text" xml:space="preserve">
<value>Show Grand-Children</value>
</data>
</root>
App_LocalResources\ViewConsole.ascx.resx
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="ModuleHelp.Text" xml:space="preserve">
<value><p>Click on an item to navigate to that page.</p></value>
</data>
<data name="Hide.Text" xml:space="preserve">
<value>Simple View</value>
</data>
<data name="IconFile.Text" xml:space="preserve">
<value>Small Icons</value>
</data>
<data name="IconFileLarge.Text" xml:space="preserve">
<value>Large Icons</value>
</data>
<data name="Show.Text" xml:space="preserve">
<value>Detailed View</value>
</data>
</root>