merge commit
This commit is contained in:
commit
bf5faf6f06
72 changed files with 1569 additions and 701 deletions
|
@ -0,0 +1,255 @@
|
|||
<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="gvPackagesCreationDate.Header" xml:space="preserve">
|
||||
<value>Creation Date</value>
|
||||
</data>
|
||||
<data name="gvPackagesHostingPlan.Header" xml:space="preserve">
|
||||
<value>Hosting Plan</value>
|
||||
</data>
|
||||
<data name="gvPackagesName.Header" xml:space="preserve">
|
||||
<value>Name</value>
|
||||
</data>
|
||||
<data name="gvPackagesPricing.Header" xml:space="preserve">
|
||||
<value>Pricing</value>
|
||||
</data>
|
||||
<data name="gvPackagesServer.Header" xml:space="preserve">
|
||||
<value>Server</value>
|
||||
</data>
|
||||
<data name="gvPackagesStatus.Header" xml:space="preserve">
|
||||
<value>Status</value>
|
||||
</data>
|
||||
<data name="selPackage.AlternateText" xml:space="preserve">
|
||||
<value>Switch to this Space</value>
|
||||
</data>
|
||||
<data name="Text.ActiveSyncPolicy" xml:space="preserve">
|
||||
<value>ActiveSync Policy</value>
|
||||
</data>
|
||||
<data name="Text.BlackBerryGroup" xml:space="preserve">
|
||||
<value>BlackBerry</value>
|
||||
</data>
|
||||
<data name="Text.BlackBerryUsers" xml:space="preserve">
|
||||
<value>BlackBerry Users</value>
|
||||
</data>
|
||||
<data name="Text.Contacts" xml:space="preserve">
|
||||
<value>Contacts</value>
|
||||
</data>
|
||||
<data name="Text.CRM2013Group" xml:space="preserve">
|
||||
<value>CRM 2013</value>
|
||||
</data>
|
||||
<data name="Text.CRMGroup" xml:space="preserve">
|
||||
<value>CRM</value>
|
||||
</data>
|
||||
<data name="Text.CRMOrganization" xml:space="preserve">
|
||||
<value>CRM Organization</value>
|
||||
</data>
|
||||
<data name="Text.CRMUsers" xml:space="preserve">
|
||||
<value>CRM Users</value>
|
||||
</data>
|
||||
<data name="Text.Disclaimers" xml:space="preserve">
|
||||
<value>Disclaimers</value>
|
||||
</data>
|
||||
<data name="Text.DistributionLists" xml:space="preserve">
|
||||
<value>Distribution Lists</value>
|
||||
</data>
|
||||
<data name="Text.DomainNames" xml:space="preserve">
|
||||
<value>Domains</value>
|
||||
</data>
|
||||
<data name="Text.EnterpriseStorageDriveMaps" xml:space="preserve">
|
||||
<value>Drive Maps</value>
|
||||
</data>
|
||||
<data name="Text.EnterpriseStorageFolders" xml:space="preserve">
|
||||
<value>Online Folders</value>
|
||||
</data>
|
||||
<data name="Text.EnterpriseStorageGroup" xml:space="preserve">
|
||||
<value>Enterprise Storage</value>
|
||||
</data>
|
||||
<data name="Text.ExchangeDomainNames" xml:space="preserve">
|
||||
<value>Accepted Domains</value>
|
||||
</data>
|
||||
<data name="Text.ExchangeGroup" xml:space="preserve">
|
||||
<value>Exchange</value>
|
||||
</data>
|
||||
<data name="Text.LyncFederationDomains" xml:space="preserve">
|
||||
<value>Lync Federation Domains</value>
|
||||
</data>
|
||||
<data name="Text.LyncGroup" xml:space="preserve">
|
||||
<value>Lync</value>
|
||||
</data>
|
||||
<data name="Text.LyncPhoneNumbers" xml:space="preserve">
|
||||
<value>Phone Numbers</value>
|
||||
</data>
|
||||
<data name="Text.LyncUserPlans" xml:space="preserve">
|
||||
<value>Lync User Plans</value>
|
||||
</data>
|
||||
<data name="Text.LyncUsers" xml:space="preserve">
|
||||
<value>Lync Users</value>
|
||||
</data>
|
||||
<data name="Text.Mailboxes" xml:space="preserve">
|
||||
<value>Mailboxes</value>
|
||||
</data>
|
||||
<data name="Text.MailboxPlans" xml:space="preserve">
|
||||
<value>Mailbox Plans</value>
|
||||
</data>
|
||||
<data name="Text.OCSGroup" xml:space="preserve">
|
||||
<value>OCS</value>
|
||||
</data>
|
||||
<data name="Text.OCSUsers" xml:space="preserve">
|
||||
<value>OCS Users</value>
|
||||
</data>
|
||||
<data name="Text.OrganizationGroup" xml:space="preserve">
|
||||
<value>Organization</value>
|
||||
</data>
|
||||
<data name="Text.OrganizationHome" xml:space="preserve">
|
||||
<value>Organization Statistics</value>
|
||||
</data>
|
||||
<data name="Text.PublicFolders" xml:space="preserve">
|
||||
<value>Public Folders</value>
|
||||
</data>
|
||||
<data name="Text.RetentionPolicy" xml:space="preserve">
|
||||
<value>Retention Policy</value>
|
||||
</data>
|
||||
<data name="Text.RetentionPolicyTag" xml:space="preserve">
|
||||
<value>Retention Policy Tag</value>
|
||||
</data>
|
||||
<data name="Text.SecurityGroups" xml:space="preserve">
|
||||
<value>Groups</value>
|
||||
</data>
|
||||
<data name="Text.Setup" xml:space="preserve">
|
||||
<value>Setup</value>
|
||||
</data>
|
||||
<data name="Text.SharePointGroup" xml:space="preserve">
|
||||
<value>SharePoint</value>
|
||||
</data>
|
||||
<data name="Text.SiteCollections" xml:space="preserve">
|
||||
<value>Sharepoint Sites</value>
|
||||
</data>
|
||||
<data name="Text.StorageLimits" xml:space="preserve">
|
||||
<value>Storage Settings</value>
|
||||
</data>
|
||||
<data name="Text.StorageUsage" xml:space="preserve">
|
||||
<value>Storage Usage</value>
|
||||
</data>
|
||||
<data name="Text.Users" xml:space="preserve">
|
||||
<value>Users</value>
|
||||
</data>
|
||||
<data name="Text.CreateOrganization" xml:space="preserve">
|
||||
<value>Create Organization</value>
|
||||
</data>
|
||||
</root>
|
|
@ -112,14 +112,20 @@
|
|||
<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>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.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>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="btnAddItem.Text" xml:space="preserve">
|
||||
<value>Create Hosting Space</value>
|
||||
</data>
|
||||
<data name="Databases.Text" xml:space="preserve">
|
||||
<value>Databases</value>
|
||||
</data>
|
||||
<data name="Email.Text" xml:space="preserve">
|
||||
<value>Email</value>
|
||||
</data>
|
||||
<data name="gvPackages.Empty" xml:space="preserve">
|
||||
<value>This account has just been created and doesn't have Hosting Spaces. To create web sites, FTP, mail accounts, databases, etc. a new Hosting Space should be created for this customer.<br><br>To create a new Hosting Space click "Create Hosting Space" button.</value>
|
||||
</data>
|
||||
|
@ -144,4 +150,16 @@
|
|||
<data name="selPackage.AlternateText" xml:space="preserve">
|
||||
<value>Switch to this Space</value>
|
||||
</data>
|
||||
<data name="System.Text" xml:space="preserve">
|
||||
<value>System</value>
|
||||
</data>
|
||||
<data name="VPS.Text" xml:space="preserve">
|
||||
<value>VPS</value>
|
||||
</data>
|
||||
<data name="Web.Text" xml:space="preserve">
|
||||
<value>Web & Applications</value>
|
||||
</data>
|
||||
<data name="SpaceStatistics.Text" xml:space="preserve">
|
||||
<value>Space Statistics</value>
|
||||
</data>
|
||||
</root>
|
|
@ -19,11 +19,12 @@
|
|||
<asp:Button ID="btnAdd" runat="server" meta:resourcekey="btnAdd" Text="Add record" CssClass="Button2" OnClick="btnAdd_Click" CausesValidation="False" />
|
||||
</div>
|
||||
<asp:GridView ID="gvRecords" runat="server" AutoGenerateColumns="False" EmptyDataText="gvRecords"
|
||||
CssSelectorClass="NormalGridView"
|
||||
CssSelectorClass="NormalGridView FixedGrid"
|
||||
OnRowEditing="gvRecords_RowEditing" OnRowDeleting="gvRecords_RowDeleting"
|
||||
AllowSorting="True" DataSourceID="odsDnsRecords">
|
||||
<Columns>
|
||||
<asp:TemplateField>
|
||||
<ItemStyle Width="3%" />
|
||||
<ItemTemplate>
|
||||
<asp:ImageButton ID="cmdEdit" runat="server" SkinID="EditSmall" CommandName="edit" AlternateText="Edit record">
|
||||
</asp:ImageButton>
|
||||
|
@ -37,15 +38,16 @@
|
|||
</ItemTemplate>
|
||||
<ItemStyle CssClass="NormalBold" Wrap="False" />
|
||||
</asp:TemplateField>
|
||||
<asp:BoundField DataField="RecordName" SortExpression="RecordName" HeaderText="gvRecordsName" />
|
||||
<asp:BoundField DataField="RecordType" SortExpression="RecordType" HeaderText="gvRecordsType" />
|
||||
<asp:BoundField DataField="RecordName" SortExpression="RecordName" HeaderText="gvRecordsName" ItemStyle-Width="20%" />
|
||||
<asp:BoundField DataField="RecordType" SortExpression="RecordType" HeaderText="gvRecordsType" ItemStyle-Width="5%" />
|
||||
<asp:TemplateField SortExpression="RecordData" HeaderText="gvRecordsData" >
|
||||
<ItemStyle Width="100%" />
|
||||
<ItemStyle Width="69%" />
|
||||
<ItemTemplate>
|
||||
<%# GetRecordFullData((string)Eval("RecordType"), (string)Eval("RecordData"), (int)Eval("MxPriority"), (int)Eval("SrvPort"))%>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField>
|
||||
<ItemStyle Width="3%" />
|
||||
<ItemTemplate>
|
||||
<asp:ImageButton ID="cmdDelete" runat="server" SkinID="DeleteSmall" CommandName="delete"
|
||||
AlternateText="Delete record" OnClientClick="return confirmation();">
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
|
|
@ -78,7 +78,6 @@ namespace WebsitePanel.Portal.ExchangeServer
|
|||
chkDisable.Visible = false;
|
||||
}
|
||||
|
||||
secLitigationHoldSettings.Visible = (Utils.CheckQouta(Quotas.EXCHANGE2007_ALLOWLITIGATIONHOLD, Cntx));
|
||||
}
|
||||
|
||||
secRetentionPolicy.Visible = Utils.CheckQouta(Quotas.EXCHANGE2013_ALLOWRETENTIONPOLICY, Cntx);
|
||||
|
@ -89,6 +88,7 @@ namespace WebsitePanel.Portal.ExchangeServer
|
|||
ExchangeMailboxPlan plan = ES.Services.ExchangeServer.GetExchangeMailboxPlan(PanelRequest.ItemID, planId);
|
||||
|
||||
secArchiving.Visible = plan.EnableArchiving;
|
||||
secLitigationHoldSettings.Visible = plan.AllowLitigationHold && Utils.CheckQouta(Quotas.EXCHANGE2007_ALLOWLITIGATIONHOLD, Cntx);
|
||||
}
|
||||
|
||||
private void BindSettings()
|
||||
|
|
|
@ -138,4 +138,7 @@
|
|||
<data name="Text.PageName" xml:space="preserve">
|
||||
<value>Lync Add Federation Domain</value>
|
||||
</data>
|
||||
<data name="locTitle.Text" xml:space="preserve">
|
||||
<value>Lync Add Federation Domain</value>
|
||||
</data>
|
||||
</root>
|
|
@ -126,4 +126,7 @@
|
|||
<data name="Text.PageName" xml:space="preserve">
|
||||
<value>Phone Numbers</value>
|
||||
</data>
|
||||
<data name="locTitle.Text" xml:space="preserve">
|
||||
<value>Lync Allocate Phone Numbers</value>
|
||||
</data>
|
||||
</root>
|
|
@ -124,6 +124,9 @@
|
|||
<value>Quotas</value>
|
||||
</data>
|
||||
<data name="Text.PageName" xml:space="preserve">
|
||||
<value>Phone Numbers</value>
|
||||
<value>Lync Phone Numbers</value>
|
||||
</data>
|
||||
<data name="locTitle.Text" xml:space="preserve">
|
||||
<value>Lync Phone Numbers</value>
|
||||
</data>
|
||||
</root>
|
|
@ -153,4 +153,7 @@
|
|||
<data name="gvUsersLogin.Header" xml:space="preserve">
|
||||
<value>Login</value>
|
||||
</data>
|
||||
<data name="Text.PageName" xml:space="preserve">
|
||||
<value>Lync Users</value>
|
||||
</data>
|
||||
</root>
|
|
@ -149,7 +149,8 @@ namespace WebsitePanel.Portal.UserControls
|
|||
|
||||
protected void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
Response.Redirect(HostModule.EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), ListAddressesControl));
|
||||
Response.Redirect(HostModule.EditUrl("ItemID", PanelRequest.ItemID.ToString(), ListAddressesControl,
|
||||
PortalUtils.SPACE_ID_PARAM + "=" + PanelSecurity.PackageId));
|
||||
}
|
||||
|
||||
protected void radioExternalSelected_CheckedChanged(object sender, EventArgs e)
|
||||
|
|
|
@ -31,16 +31,20 @@ using System.Web.UI.WebControls;
|
|||
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.WebPortal;
|
||||
using WebsitePanel.Portal.UserControls;
|
||||
|
||||
|
||||
namespace WebsitePanel.Portal
|
||||
{
|
||||
public partial class OrganizationMenu : WebsitePanelModuleBase
|
||||
public partial class OrganizationMenu : OrganizationMenuControl
|
||||
{
|
||||
private const string PID_SPACE_EXCHANGE_SERVER = "SpaceExchangeServer";
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
ShortMenu = false;
|
||||
ShowImg = false;
|
||||
|
||||
// organization
|
||||
bool orgVisible = (PanelRequest.ItemID > 0 && Request[DefaultPage.PAGE_ID_PARAM].Equals(PID_SPACE_EXCHANGE_SERVER, StringComparison.InvariantCultureIgnoreCase));
|
||||
|
||||
|
@ -53,331 +57,18 @@ namespace WebsitePanel.Portal
|
|||
|
||||
menu.Items.Add(rootItem);
|
||||
|
||||
//Add "Organization Home" menu item
|
||||
MenuItem item = new MenuItem(
|
||||
GetLocalizedString("Text.OrganizationHome"),
|
||||
"",
|
||||
"",
|
||||
PortalUtils.EditUrl("ItemID", PanelRequest.ItemID.ToString(), "organization_home", "SpaceID=" + PanelSecurity.PackageId));
|
||||
|
||||
rootItem.ChildItems.Add(item);
|
||||
|
||||
BindMenu(rootItem.ChildItems);
|
||||
}
|
||||
}
|
||||
|
||||
private void BindMenu(MenuItemCollection items)
|
||||
{
|
||||
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
|
||||
|
||||
string imagePath = String.Concat("~/", DefaultPage.THEMES_FOLDER, "/", Page.Theme, "/", "Images/Exchange", "/");
|
||||
|
||||
//Add "Organization Home" menu item
|
||||
MenuItem item = new MenuItem(
|
||||
GetLocalizedString("Text.OrganizationHome"),
|
||||
"",
|
||||
"",
|
||||
PortalUtils.EditUrl("ItemID", PanelRequest.ItemID.ToString(), "organization_home", "SpaceID=" + PanelSecurity.PackageId));
|
||||
|
||||
items.Add(item);
|
||||
|
||||
//Organization menu group;
|
||||
if (cntx.Groups.ContainsKey(ResourceGroups.HostedOrganizations))
|
||||
PrepareOrganizationMenuRoot(cntx, items, imagePath);
|
||||
|
||||
//Exchange menu group;
|
||||
if (cntx.Groups.ContainsKey(ResourceGroups.Exchange))
|
||||
PrepareExchangeMenuRoot(cntx, items, imagePath);
|
||||
|
||||
//BlackBerry Menu
|
||||
if (cntx.Groups.ContainsKey(ResourceGroups.BlackBerry))
|
||||
PrepareBlackBerryMenuRoot(cntx, items, imagePath);
|
||||
|
||||
//SharePoint menu group;
|
||||
if (cntx.Groups.ContainsKey(ResourceGroups.HostedSharePoint))
|
||||
PrepareSharePointMenuRoot(cntx, items, imagePath);
|
||||
|
||||
//CRM Menu
|
||||
if (cntx.Groups.ContainsKey(ResourceGroups.HostedCRM2013))
|
||||
PrepareCRM2013MenuRoot(cntx, items, imagePath);
|
||||
else if (cntx.Groups.ContainsKey(ResourceGroups.HostedCRM))
|
||||
PrepareCRMMenuRoot(cntx, items, imagePath);
|
||||
|
||||
//OCS Menu
|
||||
if (cntx.Groups.ContainsKey(ResourceGroups.OCS))
|
||||
PrepareOCSMenuRoot(cntx, items, imagePath);
|
||||
|
||||
//Lync Menu
|
||||
if (cntx.Groups.ContainsKey(ResourceGroups.Lync))
|
||||
PrepareLyncMenuRoot(cntx, items, imagePath);
|
||||
|
||||
//EnterpriseStorage Menu
|
||||
if (cntx.Groups.ContainsKey(ResourceGroups.EnterpriseStorage))
|
||||
PrepareEnterpriseStorageMenuRoot(cntx, items, imagePath);
|
||||
}
|
||||
|
||||
private void PrepareOrganizationMenuRoot(PackageContext cntx, MenuItemCollection items, string imagePath)
|
||||
{
|
||||
bool hideItems = false;
|
||||
|
||||
UserInfo user = UsersHelper.GetUser(PanelSecurity.EffectiveUserId);
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
if ((user.Role == UserRole.User) & (Utils.CheckQouta(Quotas.EXCHANGE2007_ISCONSUMER, cntx)))
|
||||
hideItems = true;
|
||||
}
|
||||
|
||||
if (!hideItems)
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.OrganizationGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareOrganizationMenu(cntx, item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareOrganizationMenu(PackageContext cntx, MenuItemCollection items)
|
||||
{
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_MAILBOXES, cntx) == false)
|
||||
{
|
||||
if (Utils.CheckQouta(Quotas.ORGANIZATION_DOMAINS, cntx))
|
||||
items.Add(CreateMenuItem("DomainNames", "org_domains"));
|
||||
}
|
||||
if (Utils.CheckQouta(Quotas.ORGANIZATION_USERS, cntx))
|
||||
items.Add(CreateMenuItem("Users", "users"));
|
||||
|
||||
if (Utils.CheckQouta(Quotas.ORGANIZATION_SECURITYGROUPS, cntx))
|
||||
items.Add(CreateMenuItem("SecurityGroups", "secur_groups"));
|
||||
}
|
||||
|
||||
private void PrepareExchangeMenuRoot(PackageContext cntx, MenuItemCollection items, string imagePath)
|
||||
{
|
||||
bool hideItems = false;
|
||||
|
||||
UserInfo user = UsersHelper.GetUser(PanelSecurity.EffectiveUserId);
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
if ((user.Role == UserRole.User) & (Utils.CheckQouta(Quotas.EXCHANGE2007_ISCONSUMER, cntx)))
|
||||
hideItems = true;
|
||||
}
|
||||
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.ExchangeGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareExchangeMenu(cntx, item.ChildItems, hideItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareExchangeMenu(PackageContext cntx, MenuItemCollection exchangeItems, bool hideItems)
|
||||
{
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_MAILBOXES, cntx))
|
||||
exchangeItems.Add(CreateMenuItem("Mailboxes", "mailboxes"));
|
||||
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_CONTACTS, cntx))
|
||||
exchangeItems.Add(CreateMenuItem("Contacts", "contacts"));
|
||||
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_DISTRIBUTIONLISTS, cntx))
|
||||
exchangeItems.Add(CreateMenuItem("DistributionLists", "dlists"));
|
||||
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_PUBLICFOLDERS, cntx))
|
||||
exchangeItems.Add(CreateMenuItem("PublicFolders", "public_folders"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_ACTIVESYNCALLOWED, cntx))
|
||||
exchangeItems.Add(CreateMenuItem("ActiveSyncPolicy", "activesync_policy"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_MAILBOXES, cntx))
|
||||
exchangeItems.Add(CreateMenuItem("MailboxPlans", "mailboxplans"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2013_ALLOWRETENTIONPOLICY, cntx))
|
||||
exchangeItems.Add(CreateMenuItem("RetentionPolicy", "retentionpolicy"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2013_ALLOWRETENTIONPOLICY, cntx))
|
||||
exchangeItems.Add(CreateMenuItem("RetentionPolicyTag", "retentionpolicytag"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_MAILBOXES, cntx))
|
||||
exchangeItems.Add(CreateMenuItem("ExchangeDomainNames", "domains"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_MAILBOXES, cntx))
|
||||
exchangeItems.Add(CreateMenuItem("StorageUsage", "storage_usage"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_DISCLAIMERSALLOWED, cntx))
|
||||
exchangeItems.Add(CreateMenuItem("Disclaimers", "disclaimers"));
|
||||
|
||||
}
|
||||
|
||||
private void PrepareCRMMenuRoot(PackageContext cntx, MenuItemCollection items, string imagePath)
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.CRMGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareCRMMenu(cntx, item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareCRMMenu(PackageContext cntx, MenuItemCollection crmItems)
|
||||
{
|
||||
crmItems.Add(CreateMenuItem("CRMOrganization", "CRMOrganizationDetails"));
|
||||
crmItems.Add(CreateMenuItem("CRMUsers", "CRMUsers"));
|
||||
crmItems.Add(CreateMenuItem("StorageLimits", "crm_storage_settings"));
|
||||
}
|
||||
|
||||
private void PrepareCRM2013MenuRoot(PackageContext cntx, MenuItemCollection items, string imagePath)
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.CRM2013Group"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareCRM2013Menu(cntx, item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareCRM2013Menu(PackageContext cntx, MenuItemCollection crmItems)
|
||||
{
|
||||
crmItems.Add(CreateMenuItem("CRMOrganization", "CRMOrganizationDetails"));
|
||||
crmItems.Add(CreateMenuItem("CRMUsers", "CRMUsers"));
|
||||
crmItems.Add(CreateMenuItem("StorageLimits", "crm_storage_settings"));
|
||||
}
|
||||
|
||||
private void PrepareBlackBerryMenuRoot(PackageContext cntx, MenuItemCollection items, string imagePath)
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.BlackBerryGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareBlackBerryMenu(cntx, item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void PrepareBlackBerryMenu(PackageContext cntx, MenuItemCollection bbItems)
|
||||
{
|
||||
bbItems.Add(CreateMenuItem("BlackBerryUsers", "blackberry_users"));
|
||||
}
|
||||
|
||||
private void PrepareSharePointMenuRoot(PackageContext cntx, MenuItemCollection items, string imagePath)
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.SharePointGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareSharePointMenu(cntx, item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareSharePointMenu(PackageContext cntx, MenuItemCollection spItems)
|
||||
{
|
||||
spItems.Add(CreateMenuItem("SiteCollections", "sharepoint_sitecollections"));
|
||||
spItems.Add(CreateMenuItem("StorageUsage", "sharepoint_storage_usage"));
|
||||
spItems.Add(CreateMenuItem("StorageLimits", "sharepoint_storage_settings"));
|
||||
}
|
||||
|
||||
private void PrepareOCSMenuRoot(PackageContext cntx, MenuItemCollection items, string imagePath)
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.OCSGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareOCSMenu(cntx, item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareOCSMenu(PackageContext cntx, MenuItemCollection osItems)
|
||||
{
|
||||
osItems.Add(CreateMenuItem("OCSUsers", "ocs_users"));
|
||||
}
|
||||
|
||||
private void PrepareLyncMenuRoot(PackageContext cntx, MenuItemCollection items, string imagePath)
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.LyncGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareLyncMenu(cntx, item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareLyncMenu(PackageContext cntx, MenuItemCollection lyncItems)
|
||||
{
|
||||
lyncItems.Add(CreateMenuItem("LyncUsers", "lync_users"));
|
||||
|
||||
lyncItems.Add(CreateMenuItem("LyncUserPlans", "lync_userplans"));
|
||||
|
||||
|
||||
if (Utils.CheckQouta(Quotas.LYNC_FEDERATION, cntx))
|
||||
lyncItems.Add(CreateMenuItem("LyncFederationDomains", "lync_federationdomains"));
|
||||
|
||||
if (Utils.CheckQouta(Quotas.LYNC_PHONE, cntx))
|
||||
lyncItems.Add(CreateMenuItem("LyncPhoneNumbers", "lync_phonenumbers"));
|
||||
}
|
||||
|
||||
private void PrepareEnterpriseStorageMenuRoot(PackageContext cntx, MenuItemCollection items, string imagePath)
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.EnterpriseStorageGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareEnterpriseStorageMenu(cntx, item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareEnterpriseStorageMenu(PackageContext cntx, MenuItemCollection enterpriseStorageItems)
|
||||
{
|
||||
enterpriseStorageItems.Add(CreateMenuItem("EnterpriseStorageFolders", "enterprisestorage_folders"));
|
||||
|
||||
if(Utils.CheckQouta(Quotas.ENTERPRICESTORAGE_DRIVEMAPS, cntx))
|
||||
enterpriseStorageItems.Add(CreateMenuItem("EnterpriseStorageDriveMaps", "enterprisestorage_drive_maps"));
|
||||
|
||||
}
|
||||
|
||||
private MenuItem CreateMenuItem(string text, string key)
|
||||
{
|
||||
MenuItem item = new MenuItem();
|
||||
|
||||
item.Text = GetLocalizedString("Text." + text);
|
||||
item.NavigateUrl = PortalUtils.EditUrl("ItemID", PanelRequest.ItemID.ToString(), key,
|
||||
"SpaceID=" + PanelSecurity.PackageId);
|
||||
|
||||
return item;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -18,11 +18,11 @@
|
|||
|
||||
<asp:Image ID="imgSep2" runat="server" SkinID="PathSeparatorWhite" /> <asp:HyperLink ID="lnkCurrentPage" runat="server"></asp:HyperLink>
|
||||
|
||||
<span id="spanOrgn" runat="server">
|
||||
<span id="spanOrgn" class="OrgSpan" runat="server">
|
||||
<asp:Image ID="imgSep3" runat="server" SkinID="PathSeparatorWhite" />
|
||||
<asp:HyperLink ID="lnkOrgn" runat="server">Organization</asp:HyperLink>
|
||||
<asp:Image ID="imgSep4" runat="server" SkinID="PathSeparatorWhite" />
|
||||
<asp:Label ID="lbOrgCurPage" runat="server" ForeColor="#000000">Home</asp:Label>
|
||||
<asp:HyperLink ID="lnkOrgCurPage" runat="server">Home</asp:HyperLink>
|
||||
</span>
|
||||
|
||||
<wsp:SpaceOrgsSelector ID="SpaceOrgs" runat="server" />
|
||||
|
|
|
@ -127,7 +127,10 @@ namespace WebsitePanel.Portal.SkinControls
|
|||
"SpaceID=" + PanelSecurity.PackageId.ToString());
|
||||
lnkOrgn.Text = org.Name;
|
||||
|
||||
string ctrlKey = Request[DefaultPage.CONTROL_ID_PARAM].ToLower(System.Globalization.CultureInfo.InvariantCulture);
|
||||
string curCtrlKey = PanelRequest.Ctl.ToLower();
|
||||
string ctrlKey = PortalUtils.GetGeneralESControlKey(Request[DefaultPage.CONTROL_ID_PARAM].ToLower(System.Globalization.CultureInfo.InvariantCulture));
|
||||
|
||||
if (curCtrlKey == "edit_user") ctrlKey = PanelRequest.Context.ToLower() == "user" ? "users" : "mailboxes";
|
||||
|
||||
ModuleDefinition definition = PortalConfiguration.ModuleDefinitions[EXCHANGE_SERVER_MODULE_DEFINTION_ID];
|
||||
ModuleControl control = null;
|
||||
|
@ -136,7 +139,10 @@ namespace WebsitePanel.Portal.SkinControls
|
|||
|
||||
if (!String.IsNullOrEmpty(control.Src))
|
||||
{
|
||||
lbOrgCurPage.Text = PortalUtils.GetLocalizedString(DM_FOLDER_VIRTUAL_PATH + control.Src, PAGE_NANE_KEY);
|
||||
lnkOrgCurPage.Text = PortalUtils.GetLocalizedString(DM_FOLDER_VIRTUAL_PATH + control.Src, PAGE_NANE_KEY);
|
||||
lnkOrgCurPage.NavigateUrl = PortalUtils.EditUrl(
|
||||
"ItemID", PanelRequest.ItemID.ToString(), ctrlKey,
|
||||
"SpaceID=" + PanelSecurity.PackageId.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2014, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
@ -140,13 +112,13 @@ namespace WebsitePanel.Portal.SkinControls {
|
|||
protected global::System.Web.UI.WebControls.Image imgSep4;
|
||||
|
||||
/// <summary>
|
||||
/// lbOrgCurPage control.
|
||||
/// lnkOrgCurPage control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Label lbOrgCurPage;
|
||||
protected global::System.Web.UI.WebControls.HyperLink lnkOrgCurPage;
|
||||
|
||||
/// <summary>
|
||||
/// SpaceOrgs control.
|
||||
|
|
|
@ -0,0 +1,480 @@
|
|||
// Copyright (c) 2014, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using System.Xml;
|
||||
using System.Collections.Generic;
|
||||
using WebsitePanel.WebPortal;
|
||||
|
||||
namespace WebsitePanel.Portal.UserControls
|
||||
{
|
||||
public class OrganizationMenuControl : WebsitePanelModuleBase
|
||||
{
|
||||
|
||||
virtual public int PackageId
|
||||
{
|
||||
get { return PanelSecurity.PackageId; }
|
||||
set { }
|
||||
}
|
||||
|
||||
virtual public int ItemID
|
||||
{
|
||||
get { return PanelRequest.ItemID; }
|
||||
set { }
|
||||
}
|
||||
|
||||
|
||||
private PackageContext cntx = null;
|
||||
virtual public PackageContext Cntx
|
||||
{
|
||||
get
|
||||
{
|
||||
if (cntx == null) cntx = PackagesHelper.GetCachedPackageContext(PackageId);
|
||||
return cntx;
|
||||
}
|
||||
}
|
||||
|
||||
public bool ShortMenu = false;
|
||||
public bool ShowImg = false;
|
||||
|
||||
public void BindMenu(MenuItemCollection items)
|
||||
{
|
||||
if ((PackageId <= 0) || (ItemID <= 0))
|
||||
return;
|
||||
|
||||
//Organization menu group;
|
||||
if (Cntx.Groups.ContainsKey(ResourceGroups.HostedOrganizations))
|
||||
PrepareOrganizationMenuRoot(items);
|
||||
|
||||
//Exchange menu group;
|
||||
if (Cntx.Groups.ContainsKey(ResourceGroups.Exchange))
|
||||
PrepareExchangeMenuRoot(items);
|
||||
|
||||
//BlackBerry Menu
|
||||
if (Cntx.Groups.ContainsKey(ResourceGroups.BlackBerry))
|
||||
PrepareBlackBerryMenuRoot(items);
|
||||
|
||||
//SharePoint menu group;
|
||||
if (Cntx.Groups.ContainsKey(ResourceGroups.HostedSharePoint))
|
||||
PrepareSharePointMenuRoot(items);
|
||||
|
||||
//CRM Menu
|
||||
if (Cntx.Groups.ContainsKey(ResourceGroups.HostedCRM2013))
|
||||
PrepareCRM2013MenuRoot(items);
|
||||
else if (Cntx.Groups.ContainsKey(ResourceGroups.HostedCRM))
|
||||
PrepareCRMMenuRoot(items);
|
||||
|
||||
//OCS Menu
|
||||
if (Cntx.Groups.ContainsKey(ResourceGroups.OCS))
|
||||
PrepareOCSMenuRoot(items);
|
||||
|
||||
//Lync Menu
|
||||
if (Cntx.Groups.ContainsKey(ResourceGroups.Lync))
|
||||
PrepareLyncMenuRoot(items);
|
||||
|
||||
//EnterpriseStorage Menu
|
||||
if (Cntx.Groups.ContainsKey(ResourceGroups.EnterpriseStorage))
|
||||
PrepareEnterpriseStorageMenuRoot(items);
|
||||
}
|
||||
|
||||
private void PrepareOrganizationMenuRoot(MenuItemCollection items)
|
||||
{
|
||||
bool hideItems = false;
|
||||
|
||||
UserInfo user = UsersHelper.GetUser(PanelSecurity.EffectiveUserId);
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
if ((user.Role == UserRole.User) & (Utils.CheckQouta(Quotas.EXCHANGE2007_ISCONSUMER, Cntx)))
|
||||
hideItems = true;
|
||||
}
|
||||
|
||||
if (!hideItems)
|
||||
{
|
||||
if (ShortMenu)
|
||||
{
|
||||
PrepareOrganizationMenu(items);
|
||||
}
|
||||
else
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.OrganizationGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareOrganizationMenu(item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareOrganizationMenu(MenuItemCollection items)
|
||||
{
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_MAILBOXES, Cntx) == false)
|
||||
{
|
||||
if (Utils.CheckQouta(Quotas.ORGANIZATION_DOMAINS, Cntx))
|
||||
items.Add(CreateMenuItem("DomainNames", "org_domains"));
|
||||
}
|
||||
if (Utils.CheckQouta(Quotas.ORGANIZATION_USERS, Cntx))
|
||||
items.Add(CreateMenuItem("Users", "users", @"Icons/user_48.png"));
|
||||
|
||||
if (Utils.CheckQouta(Quotas.ORGANIZATION_SECURITYGROUPS, Cntx))
|
||||
items.Add(CreateMenuItem("SecurityGroups", "secur_groups", @"Icons/group_48.png"));
|
||||
}
|
||||
|
||||
private void PrepareExchangeMenuRoot(MenuItemCollection items)
|
||||
{
|
||||
bool hideItems = false;
|
||||
|
||||
UserInfo user = UsersHelper.GetUser(PanelSecurity.EffectiveUserId);
|
||||
|
||||
if (user != null)
|
||||
{
|
||||
if ((user.Role == UserRole.User) & (Utils.CheckQouta(Quotas.EXCHANGE2007_ISCONSUMER, Cntx)))
|
||||
hideItems = true;
|
||||
}
|
||||
|
||||
if (ShortMenu)
|
||||
{
|
||||
PrepareExchangeMenu(items, hideItems);
|
||||
}
|
||||
else
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.ExchangeGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareExchangeMenu(item.ChildItems, hideItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareExchangeMenu(MenuItemCollection exchangeItems, bool hideItems)
|
||||
{
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_MAILBOXES, Cntx))
|
||||
exchangeItems.Add(CreateMenuItem("Mailboxes", "mailboxes", @"Icons/mailboxes_48.png"));
|
||||
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_CONTACTS, Cntx))
|
||||
exchangeItems.Add(CreateMenuItem("Contacts", "contacts", @"Icons/exchange_contacts_48.png"));
|
||||
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_DISTRIBUTIONLISTS, Cntx))
|
||||
exchangeItems.Add(CreateMenuItem("DistributionLists", "dlists", @"Icons/exchange_dlists_48.png"));
|
||||
|
||||
if (ShortMenu) return;
|
||||
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_PUBLICFOLDERS, Cntx))
|
||||
exchangeItems.Add(CreateMenuItem("PublicFolders", "public_folders"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_ACTIVESYNCALLOWED, Cntx))
|
||||
exchangeItems.Add(CreateMenuItem("ActiveSyncPolicy", "activesync_policy"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_MAILBOXES, Cntx))
|
||||
exchangeItems.Add(CreateMenuItem("MailboxPlans", "mailboxplans"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2013_ALLOWRETENTIONPOLICY, Cntx))
|
||||
exchangeItems.Add(CreateMenuItem("RetentionPolicy", "retentionpolicy"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2013_ALLOWRETENTIONPOLICY, Cntx))
|
||||
exchangeItems.Add(CreateMenuItem("RetentionPolicyTag", "retentionpolicytag"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_MAILBOXES, Cntx))
|
||||
exchangeItems.Add(CreateMenuItem("ExchangeDomainNames", "domains"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_MAILBOXES, Cntx))
|
||||
exchangeItems.Add(CreateMenuItem("StorageUsage", "storage_usage"));
|
||||
|
||||
if (!hideItems)
|
||||
if (Utils.CheckQouta(Quotas.EXCHANGE2007_DISCLAIMERSALLOWED, Cntx))
|
||||
exchangeItems.Add(CreateMenuItem("Disclaimers", "disclaimers"));
|
||||
|
||||
}
|
||||
|
||||
private void PrepareCRMMenuRoot(MenuItemCollection items)
|
||||
{
|
||||
if (ShortMenu)
|
||||
{
|
||||
PrepareCRMMenu(items);
|
||||
}
|
||||
else
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.CRMGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareCRMMenu(item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareCRMMenu(MenuItemCollection crmItems)
|
||||
{
|
||||
crmItems.Add(CreateMenuItem("CRMOrganization", "CRMOrganizationDetails", @"Icons/crm_orgs_48.png"));
|
||||
crmItems.Add(CreateMenuItem("CRMUsers", "CRMUsers", @"Icons/crm_users_48.png"));
|
||||
|
||||
if (ShortMenu) return;
|
||||
|
||||
crmItems.Add(CreateMenuItem("StorageLimits", "crm_storage_settings"));
|
||||
}
|
||||
|
||||
private void PrepareCRM2013MenuRoot(MenuItemCollection items)
|
||||
{
|
||||
if (ShortMenu)
|
||||
{
|
||||
PrepareCRM2013Menu(items);
|
||||
}
|
||||
else
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.CRM2013Group"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareCRM2013Menu(item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareCRM2013Menu(MenuItemCollection crmItems)
|
||||
{
|
||||
crmItems.Add(CreateMenuItem("CRMOrganization", "CRMOrganizationDetails", @"Icons/crm_orgs_48.png"));
|
||||
crmItems.Add(CreateMenuItem("CRMUsers", "CRMUsers", @"Icons/crm_users_48.png"));
|
||||
|
||||
if (ShortMenu) return;
|
||||
|
||||
crmItems.Add(CreateMenuItem("StorageLimits", "crm_storage_settings"));
|
||||
}
|
||||
|
||||
private void PrepareBlackBerryMenuRoot(MenuItemCollection items)
|
||||
{
|
||||
if (ShortMenu)
|
||||
{
|
||||
PrepareBlackBerryMenu(items);
|
||||
}
|
||||
else
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.BlackBerryGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareBlackBerryMenu(item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void PrepareBlackBerryMenu(MenuItemCollection bbItems)
|
||||
{
|
||||
bbItems.Add(CreateMenuItem("BlackBerryUsers", "blackberry_users", @"Icons/blackberry_users_48.png"));
|
||||
}
|
||||
|
||||
private void PrepareSharePointMenuRoot(MenuItemCollection items)
|
||||
{
|
||||
if (ShortMenu)
|
||||
{
|
||||
PrepareSharePointMenu(items);
|
||||
}
|
||||
else
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.SharePointGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareSharePointMenu(item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareSharePointMenu(MenuItemCollection spItems)
|
||||
{
|
||||
spItems.Add(CreateMenuItem("SiteCollections", "sharepoint_sitecollections", @"Icons/sharepoint_sitecollections_48.png"));
|
||||
|
||||
if (ShortMenu) return;
|
||||
|
||||
spItems.Add(CreateMenuItem("StorageUsage", "sharepoint_storage_usage"));
|
||||
spItems.Add(CreateMenuItem("StorageLimits", "sharepoint_storage_settings"));
|
||||
}
|
||||
|
||||
private void PrepareOCSMenuRoot(MenuItemCollection items)
|
||||
{
|
||||
if (ShortMenu)
|
||||
{
|
||||
PrepareOCSMenu(items);
|
||||
}
|
||||
else
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.OCSGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareOCSMenu(item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareOCSMenu(MenuItemCollection osItems)
|
||||
{
|
||||
osItems.Add(CreateMenuItem("OCSUsers", "ocs_users"));
|
||||
}
|
||||
|
||||
private void PrepareLyncMenuRoot(MenuItemCollection items)
|
||||
{
|
||||
if (ShortMenu)
|
||||
{
|
||||
PrepareLyncMenu(items);
|
||||
}
|
||||
else
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.LyncGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareLyncMenu(item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareLyncMenu(MenuItemCollection lyncItems)
|
||||
{
|
||||
lyncItems.Add(CreateMenuItem("LyncUsers", "lync_users", @"Icons/lync_users_48.png"));
|
||||
|
||||
if (ShortMenu) return;
|
||||
|
||||
lyncItems.Add(CreateMenuItem("LyncUserPlans", "lync_userplans"));
|
||||
|
||||
|
||||
if (Utils.CheckQouta(Quotas.LYNC_FEDERATION, Cntx))
|
||||
lyncItems.Add(CreateMenuItem("LyncFederationDomains", "lync_federationdomains"));
|
||||
|
||||
if (Utils.CheckQouta(Quotas.LYNC_PHONE, Cntx))
|
||||
lyncItems.Add(CreateMenuItem("LyncPhoneNumbers", "lync_phonenumbers"));
|
||||
}
|
||||
|
||||
private void PrepareEnterpriseStorageMenuRoot(MenuItemCollection items)
|
||||
{
|
||||
if (ShortMenu)
|
||||
{
|
||||
PrepareEnterpriseStorageMenu(items);
|
||||
}
|
||||
else
|
||||
{
|
||||
MenuItem item = new MenuItem(GetLocalizedString("Text.EnterpriseStorageGroup"), "", "", null);
|
||||
|
||||
item.Selectable = false;
|
||||
|
||||
PrepareEnterpriseStorageMenu(item.ChildItems);
|
||||
|
||||
if (item.ChildItems.Count > 0)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void PrepareEnterpriseStorageMenu(MenuItemCollection enterpriseStorageItems)
|
||||
{
|
||||
enterpriseStorageItems.Add(CreateMenuItem("EnterpriseStorageFolders", "enterprisestorage_folders", @"Icons/enterprisestorage_folders_48.png"));
|
||||
|
||||
if (ShortMenu) return;
|
||||
|
||||
if (Utils.CheckQouta(Quotas.ENTERPRICESTORAGE_DRIVEMAPS, Cntx))
|
||||
enterpriseStorageItems.Add(CreateMenuItem("EnterpriseStorageDriveMaps", "enterprisestorage_drive_maps"));
|
||||
|
||||
}
|
||||
|
||||
private MenuItem CreateMenuItem(string text, string key)
|
||||
{
|
||||
return CreateMenuItem(text, key, null);
|
||||
}
|
||||
|
||||
virtual protected MenuItem CreateMenuItem(string text, string key, string img)
|
||||
{
|
||||
MenuItem item = new MenuItem();
|
||||
|
||||
item.Text = GetLocalizedString("Text." + text);
|
||||
item.NavigateUrl = PortalUtils.EditUrl("ItemID", ItemID.ToString(), key,
|
||||
"SpaceID=" + PackageId);
|
||||
|
||||
if (ShowImg)
|
||||
{
|
||||
if (img==null)
|
||||
item.ImageUrl = PortalUtils.GetThemedIcon("Icons/tool_48.png");
|
||||
else
|
||||
item.ImageUrl = PortalUtils.GetThemedIcon(img);
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UserOrganization.ascx.cs" Inherits="WebsitePanel.Portal.UserOrganization" %>
|
||||
<%@ Import Namespace="WebsitePanel.Portal" %>
|
||||
<%@ Register Src="UserControls/ServerDetails.ascx" TagName="ServerDetails" TagPrefix="uc3" %>
|
||||
<%@ Register Src="UserControls/Comments.ascx" TagName="Comments" TagPrefix="uc4" %>
|
||||
<%@ Import Namespace="WebsitePanel.Portal" %>
|
||||
|
||||
|
||||
<asp:Panel ID="UserOrgPanel" runat="server" Visible="false">
|
||||
<div class="IconsBlock">
|
||||
<asp:DataList ID="OrgIcons" runat="server"
|
||||
CellSpacing="1" RepeatColumns="5" RepeatDirection="Horizontal">
|
||||
<ItemTemplate>
|
||||
<asp:Panel ID="IconPanel" runat="server" CssClass="Icon">
|
||||
<asp:HyperLink ID="imgLink" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><asp:Image ID="imgIcon" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' /></asp:HyperLink>
|
||||
<br />
|
||||
<asp:HyperLink ID="lnkIcon" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><%# Eval("Text") %></asp:HyperLink>
|
||||
</asp:Panel>
|
||||
<asp:Panel ID="IconMenu" runat="server" CssClass="IconMenu" Visible='<%# IsIconMenuVisible(Eval("ChildItems")) %>'>
|
||||
<ul>
|
||||
<asp:Repeater ID="MenuItems" runat="server" DataSource='<%# GetIconMenuItems(Eval("ChildItems")) %>'>
|
||||
<ItemTemplate>
|
||||
<li><asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><%# Eval("Text") %></asp:HyperLink></li>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</ul>
|
||||
</asp:Panel>
|
||||
<ajaxToolkit:HoverMenuExtender TargetControlID="IconPanel" PopupControlID="IconMenu" runat="server"
|
||||
PopupPosition="Right" HoverCssClass="Icon Hover"></ajaxToolkit:HoverMenuExtender>
|
||||
</ItemTemplate>
|
||||
</asp:DataList>
|
||||
</div>
|
||||
</asp:Panel>
|
||||
|
|
@ -0,0 +1,164 @@
|
|||
// Copyright (c) 2014, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Configuration;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Web;
|
||||
using System.Web.Security;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using System.Web.UI.WebControls.WebParts;
|
||||
using System.Web.UI.HtmlControls;
|
||||
using System.Xml;
|
||||
|
||||
using WebsitePanel.EnterpriseServer;
|
||||
using WebsitePanel.WebPortal;
|
||||
using WebsitePanel.Portal.UserControls;
|
||||
|
||||
|
||||
namespace WebsitePanel.Portal
|
||||
{
|
||||
public partial class UserOrganization : OrganizationMenuControl
|
||||
{
|
||||
|
||||
int packageId = 0;
|
||||
override public int PackageId
|
||||
{
|
||||
get
|
||||
{
|
||||
// test
|
||||
//return 1;
|
||||
return packageId;
|
||||
}
|
||||
set
|
||||
{
|
||||
packageId = value;
|
||||
}
|
||||
}
|
||||
|
||||
int itemID = 0;
|
||||
override public int ItemID
|
||||
{
|
||||
get
|
||||
{
|
||||
// test
|
||||
//return 1;
|
||||
if (itemID != 0) return itemID;
|
||||
if (PackageId == 0) return 0;
|
||||
|
||||
DataTable orgs = new OrganizationsHelper().GetOrganizations(PackageId, false);
|
||||
|
||||
for (int j = 0; j < orgs.Rows.Count; j++)
|
||||
{
|
||||
DataRow org = orgs.Rows[j];
|
||||
int iId = (int)org["ItemID"];
|
||||
|
||||
if (itemID == 0)
|
||||
itemID = iId;
|
||||
|
||||
object isDefault = org["IsDefault"];
|
||||
if (isDefault is bool)
|
||||
{
|
||||
if ((bool)isDefault)
|
||||
{
|
||||
itemID = iId;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return itemID;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
ShortMenu = true;
|
||||
ShowImg = true;
|
||||
|
||||
|
||||
if ((PackageId > 0) && (Cntx.Groups.ContainsKey(ResourceGroups.HostedOrganizations)))
|
||||
{
|
||||
MenuItemCollection items = new MenuItemCollection();
|
||||
|
||||
if (ItemID > 0)
|
||||
{
|
||||
items.Add(CreateMenuItem("OrganizationHome", "organization_home", @"Icons/organization_home_48.png"));
|
||||
BindMenu(items);
|
||||
}
|
||||
else
|
||||
{
|
||||
items.Add(CreateMenuItem("CreateOrganization", "create_organization", @"Icons/create_organization_48.png"));
|
||||
}
|
||||
|
||||
|
||||
UserOrgPanel.Visible = true;
|
||||
|
||||
OrgIcons.DataSource = items;
|
||||
OrgIcons.DataBind();
|
||||
}
|
||||
else
|
||||
UserOrgPanel.Visible = false;
|
||||
|
||||
}
|
||||
|
||||
protected override MenuItem CreateMenuItem(string text, string key, string img)
|
||||
{
|
||||
string PID_SPACE_EXCHANGE_SERVER = "SpaceExchangeServer";
|
||||
|
||||
MenuItem item = new MenuItem();
|
||||
|
||||
item.Text = GetLocalizedString("Text." + text);
|
||||
item.NavigateUrl = PortalUtils.NavigatePageURL( PID_SPACE_EXCHANGE_SERVER, "ItemID", ItemID.ToString(),
|
||||
PortalUtils.SPACE_ID_PARAM + "=" + PackageId, DefaultPage.CONTROL_ID_PARAM + "=" + key,
|
||||
"moduleDefId=exchangeserver");
|
||||
|
||||
if (img == null)
|
||||
item.ImageUrl = PortalUtils.GetThemedIcon("Icons/tool_48.png");
|
||||
else
|
||||
item.ImageUrl = PortalUtils.GetThemedIcon(img);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
public MenuItemCollection GetIconMenuItems(object menuItems)
|
||||
{
|
||||
return (MenuItemCollection)menuItems;
|
||||
}
|
||||
|
||||
public bool IsIconMenuVisible(object menuItems)
|
||||
{
|
||||
return ((MenuItemCollection)menuItems).Count > 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace WebsitePanel.Portal {
|
||||
|
||||
|
||||
public partial class UserOrganization {
|
||||
|
||||
/// <summary>
|
||||
/// UserOrgPanel control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.Panel UserOrgPanel;
|
||||
|
||||
/// <summary>
|
||||
/// OrgIcons control.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Auto-generated field.
|
||||
/// To modify move field declaration from designer file to code-behind file.
|
||||
/// </remarks>
|
||||
protected global::System.Web.UI.WebControls.DataList OrgIcons;
|
||||
}
|
||||
}
|
|
@ -2,10 +2,11 @@
|
|||
<%@ Import Namespace="WebsitePanel.Portal" %>
|
||||
<%@ Register Src="UserControls/ServerDetails.ascx" TagName="ServerDetails" TagPrefix="uc3" %>
|
||||
<%@ Register Src="UserControls/Comments.ascx" TagName="Comments" TagPrefix="uc4" %>
|
||||
<%@ Register Src="UserOrganization.ascx" TagName="UserOrganization" TagPrefix="wsp" %>
|
||||
<%@ Import Namespace="WebsitePanel.Portal" %>
|
||||
|
||||
|
||||
<asp:Panel id="ButtonsPanel" runat="server" class="FormButtonsBar">
|
||||
<asp:Panel id="ButtonsPanel" runat="server" class="FormButtonsBar UserSpaces">
|
||||
<asp:Button ID="btnAddItem" runat="server" meta:resourcekey="btnAddItem" Text="Create Hosting Space" CssClass="Button3" OnClick="btnAddItem_Click" />
|
||||
</asp:Panel>
|
||||
|
||||
|
@ -16,34 +17,48 @@
|
|||
<ItemTemplate>
|
||||
<div class="IconsBlock">
|
||||
<div class="IconsTitle">
|
||||
<asp:hyperlink id=lnkEdit runat="server" NavigateUrl='<%# GetSpaceHomePageUrl((int)Eval("PackageID")) %>'>
|
||||
<asp:hyperlink id="lnkEdit" runat="server" NavigateUrl='<%# GetSpaceHomePageUrl((int)Eval("PackageID")) %>'>
|
||||
<%# Eval("PackageName") %>
|
||||
</asp:hyperlink>
|
||||
</div>
|
||||
<div>
|
||||
<asp:DataList ID="PackageIcons" runat="server" DataSource='<%# GetIconsDataSource((int)Eval("PackageID")) %>'
|
||||
CellSpacing="1" RepeatColumns="5" RepeatDirection="Horizontal">
|
||||
|
||||
<asp:Repeater ID="PackageGroups" runat="server" DataSource='<%# GetIconsDataSource((int)Eval("PackageID")) %>' >
|
||||
<ItemTemplate>
|
||||
<asp:Panel ID="IconPanel" runat="server" CssClass="Icon">
|
||||
<asp:HyperLink ID="imgLink" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><asp:Image ID="imgIcon" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' /></asp:HyperLink>
|
||||
<br />
|
||||
<asp:HyperLink ID="lnkIcon" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><%# Eval("Text") %></asp:HyperLink>
|
||||
</asp:Panel>
|
||||
<asp:Panel ID="IconMenu" runat="server" CssClass="IconMenu" Visible='<%# IsIconMenuVisible(Eval("ChildItems")) %>'>
|
||||
<ul>
|
||||
<asp:Repeater ID="MenuItems" runat="server" DataSource='<%# GetIconMenuItems(Eval("ChildItems")) %>'>
|
||||
<ItemTemplate>
|
||||
<li><asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><%# Eval("Text") %></asp:HyperLink></li>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</ul>
|
||||
</asp:Panel>
|
||||
<ajaxToolkit:HoverMenuExtender TargetControlID="IconPanel" PopupControlID="IconMenu" runat="server"
|
||||
PopupPosition="Right" HoverCssClass="Icon Hover"></ajaxToolkit:HoverMenuExtender>
|
||||
|
||||
<asp:Label ID="lblGroup" runat="server" CssClass="LinkText" Text='<%# Eval("Text") %>' />
|
||||
|
||||
<asp:DataList ID="PackageIcons" runat="server" DataSource='<%# GetIconMenuItems(Eval("ChildItems")) %>'
|
||||
CellSpacing="1" RepeatColumns="5" RepeatDirection="Horizontal">
|
||||
<ItemTemplate>
|
||||
<asp:Panel ID="IconPanel" runat="server" CssClass="Icon">
|
||||
<asp:HyperLink ID="imgLink" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><asp:Image ID="imgIcon" runat="server" ImageUrl='<%# Eval("ImageUrl") %>' /></asp:HyperLink>
|
||||
<br />
|
||||
<asp:HyperLink ID="lnkIcon" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><%# Eval("Text") %></asp:HyperLink>
|
||||
</asp:Panel>
|
||||
<asp:Panel ID="IconMenu" runat="server" CssClass="IconMenu" Visible='<%# IsIconMenuVisible(Eval("ChildItems")) %>'>
|
||||
<ul>
|
||||
<asp:Repeater ID="MenuItems" runat="server" DataSource='<%# GetIconMenuItems(Eval("ChildItems")) %>'>
|
||||
<ItemTemplate>
|
||||
<li><asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("NavigateURL") %>'><%# Eval("Text") %></asp:HyperLink></li>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
</ul>
|
||||
</asp:Panel>
|
||||
<ajaxToolkit:HoverMenuExtender TargetControlID="IconPanel" PopupControlID="IconMenu" runat="server"
|
||||
PopupPosition="Right" HoverCssClass="Icon Hover"></ajaxToolkit:HoverMenuExtender>
|
||||
</ItemTemplate>
|
||||
</asp:DataList>
|
||||
|
||||
</ItemTemplate>
|
||||
</asp:DataList>
|
||||
</asp:Repeater>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<asp:Panel ID="OrgPanel" runat="server" Visible='<%# IsOrgPanelVisible((int)Eval("PackageID")) %>'>
|
||||
<asp:Label ID="lblOrg" runat="server" CssClass="LinkText" meta:resourcekey="lblOrg" Text="Hosted Organization" />
|
||||
<wsp:UserOrganization ID="UserOrganization" runat="server" PackageId='<%# (int)Eval("PackageID") %>' />
|
||||
</asp:Panel>
|
||||
</ItemTemplate>
|
||||
</asp:Repeater>
|
||||
<asp:Panel ID="EmptyPackagesList" runat="server" Visible="false" CssClass="FormBody">
|
||||
|
|
|
@ -53,7 +53,7 @@ namespace WebsitePanel.Portal
|
|||
bool isUser = PanelSecurity.SelectedUser.Role == UserRole.User;
|
||||
|
||||
// load icons data
|
||||
xmlIcons = this.Module.SelectNodes("Icon");
|
||||
xmlIcons = this.Module.SelectNodes("Group");
|
||||
|
||||
if (isUser && xmlIcons != null)
|
||||
{
|
||||
|
@ -84,6 +84,12 @@ namespace WebsitePanel.Portal
|
|||
{
|
||||
return PortalUtils.GetSpaceHomePageUrl(spaceId);
|
||||
}
|
||||
public string GetOrgPageUrl(int spaceId)
|
||||
{
|
||||
string PID_SPACE_EXCHANGE_SERVER = "SpaceExchangeServer";
|
||||
return NavigatePageURL(PID_SPACE_EXCHANGE_SERVER, PortalUtils.SPACE_ID_PARAM, spaceId.ToString());
|
||||
}
|
||||
|
||||
|
||||
protected void odsPackages_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||
{
|
||||
|
@ -124,6 +130,8 @@ namespace WebsitePanel.Portal
|
|||
return items;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public MenuItemCollection GetIconMenuItems(object menuItems)
|
||||
{
|
||||
return (MenuItemCollection)menuItems;
|
||||
|
@ -134,6 +142,13 @@ namespace WebsitePanel.Portal
|
|||
return ((MenuItemCollection)menuItems).Count > 0;
|
||||
}
|
||||
|
||||
public bool IsOrgPanelVisible(int packageId)
|
||||
{
|
||||
PackageContext cntx = PackagesHelper.GetCachedPackageContext(packageId);
|
||||
return cntx.Groups.ContainsKey(ResourceGroups.HostedOrganizations);
|
||||
}
|
||||
|
||||
|
||||
private MenuItem CreateMenuItem(PackageContext cntx, XmlNode xmlNode)
|
||||
{
|
||||
string pageId = GetXmlAttribute(xmlNode, "pageID");
|
||||
|
@ -149,6 +164,10 @@ namespace WebsitePanel.Portal
|
|||
string quota = GetXmlAttribute(xmlNode, "quota");
|
||||
bool disabled = Utils.ParseBool(GetXmlAttribute(xmlNode, "disabled"), false);
|
||||
|
||||
string titleresourcekey = GetXmlAttribute(xmlNode, "titleresourcekey");
|
||||
if (!String.IsNullOrEmpty(titleresourcekey))
|
||||
title = GetLocalizedString(titleresourcekey + ".Text");
|
||||
|
||||
// get custom page parameters
|
||||
XmlNodeList xmlParameters = xmlNode.SelectNodes("Parameters/Add");
|
||||
List<string> parameters = new List<string>();
|
||||
|
@ -181,7 +200,9 @@ namespace WebsitePanel.Portal
|
|||
}
|
||||
|
||||
// process nested menu items
|
||||
XmlNodeList xmlMenuNodes = xmlNode.SelectNodes("MenuItems/MenuItem");
|
||||
XmlNodeList xmlMenuNodes = xmlNode.SelectNodes("Icon");
|
||||
if (xmlMenuNodes.Count==0)
|
||||
xmlMenuNodes = xmlNode.SelectNodes("MenuItems/MenuItem");
|
||||
foreach (XmlNode xmlMenuNode in xmlMenuNodes)
|
||||
{
|
||||
MenuItem menuItem = CreateMenuItem(cntx, xmlMenuNode);
|
||||
|
@ -189,6 +210,9 @@ namespace WebsitePanel.Portal
|
|||
item.ChildItems.Add(menuItem);
|
||||
}
|
||||
|
||||
// test
|
||||
//return item;
|
||||
|
||||
if (display && !(disabled && item.ChildItems.Count == 0))
|
||||
return item;
|
||||
|
||||
|
|
|
@ -1,31 +1,3 @@
|
|||
// Copyright (c) 2014, Outercurve Foundation.
|
||||
// All rights reserved.
|
||||
//
|
||||
// Redistribution and use in source and binary forms, with or without modification,
|
||||
// are permitted provided that the following conditions are met:
|
||||
//
|
||||
// - Redistributions of source code must retain the above copyright notice, this
|
||||
// list of conditions and the following disclaimer.
|
||||
//
|
||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
||||
// this list of conditions and the following disclaimer in the documentation
|
||||
// and/or other materials provided with the distribution.
|
||||
//
|
||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
||||
// contributors may be used to endorse or promote products derived from this
|
||||
// software without specific prior written permission.
|
||||
//
|
||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
|
|
|
@ -602,6 +602,9 @@
|
|||
<Compile Include="UserControls\EditFeedsList.ascx.designer.cs">
|
||||
<DependentUpon>EditFeedsList.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControls\OrganizationMenuControl.cs">
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UserControls\OrgIdPolicyEditor.ascx.cs">
|
||||
<DependentUpon>OrgIdPolicyEditor.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
|
@ -630,6 +633,13 @@
|
|||
<Compile Include="Lync\UserControls\AllocatePackagePhoneNumbers.ascx.designer.cs">
|
||||
<DependentUpon>AllocatePackagePhoneNumbers.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserOrganization.ascx.cs">
|
||||
<DependentUpon>UserOrganization.ascx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UserOrganization.ascx.designer.cs">
|
||||
<DependentUpon>UserOrganization.ascx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="VPSForPC\MonitoringPage.aspx.cs">
|
||||
<DependentUpon>MonitoringPage.aspx</DependentUpon>
|
||||
<SubType>ASPXCodeBehind</SubType>
|
||||
|
@ -4147,6 +4157,7 @@
|
|||
<Content Include="UserControls\OrgPolicyEditor.ascx" />
|
||||
<Content Include="UserControls\PackagePhoneNumbers.ascx" />
|
||||
<Content Include="Lync\UserControls\AllocatePackagePhoneNumbers.ascx" />
|
||||
<Content Include="UserOrganization.ascx" />
|
||||
<Content Include="VPSForPC\MonitoringPage.aspx" />
|
||||
<Content Include="VPSForPC\VdcAccountVLanAdd.ascx" />
|
||||
<Content Include="VPSForPC\VdcAccountVLanNetwork.ascx" />
|
||||
|
@ -5355,6 +5366,9 @@
|
|||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<Content Include="ExchangeServer\App_LocalResources\EnterpriseStorageCreateDriveMap.ascx.resx" />
|
||||
<Content Include="App_LocalResources\UserOrganization.ascx.resx">
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<EmbeddedResource Include="UserControls\App_LocalResources\EditDomainsList.ascx.resx">
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue