2013 commitr
This commit is contained in:
parent
c76ce9b158
commit
882ac47dbc
47 changed files with 7475 additions and 0 deletions
|
@ -0,0 +1,207 @@
|
||||||
|
<?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="btnBackup.Text" xml:space="preserve">
|
||||||
|
<value>Backup Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCancel.Text" xml:space="preserve">
|
||||||
|
<value>Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnDelete.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Deleting SharePoint site collection...');</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnDelete.Text" xml:space="preserve">
|
||||||
|
<value>Delete</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnRestore.Text" xml:space="preserve">
|
||||||
|
<value>Restore Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnUpdate.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Updating SharePoint site collection...');</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnUpdate.Text" xml:space="preserve">
|
||||||
|
<value>Update</value>
|
||||||
|
</data>
|
||||||
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
|
<value><p>Here you can create new SharePoint site collection. Choose URL from the list of domains you already own. Site URL like team.yourcompany.com should be added as domain in “Domain names” organization’s menu before SharePoint site collection creation.</p>
|
||||||
|
|
||||||
|
<p><b>Site owner</b> is member of your organization who will be responsible for this SharePoint site collection administration: choosing site templates, adding other users, creating sub-sites.</p>
|
||||||
|
|
||||||
|
<p><b>Locale ID</b> defines your site language and can not be changed after site creation. However child sub sites can use another Locale IDs.</p>
|
||||||
|
|
||||||
|
<p>Title will be visible in site header.</p>
|
||||||
|
|
||||||
|
<p><b>Description</b> will be visible when you open site on the top of the main site page.</p>
|
||||||
|
|
||||||
|
<p>After you create this site open it using owner login, and do at least 2 main steps:
|
||||||
|
1. Choose site template
|
||||||
|
2. Define who will be able to access this site. To add user from your hosted organization to SharePoint site, please copy/paste his or her e-mail from user's properties in WebsitePanel to SharePoint site collection’s Users/Groups field.</p></value>
|
||||||
|
</data>
|
||||||
|
<data name="gvUserEmail.HeaderText" xml:space="preserve">
|
||||||
|
<value>Email</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvUserName.HeaderText" xml:space="preserve">
|
||||||
|
<value>User Name</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblDescription.Text" xml:space="preserve">
|
||||||
|
<value>Description:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblSiteCollectionLocaleID.Text" xml:space="preserve">
|
||||||
|
<value>Locale ID:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblSiteCollectionOwner.Text" xml:space="preserve">
|
||||||
|
<value>Owner:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblSiteCollectionUrl.Text" xml:space="preserve">
|
||||||
|
<value>Url:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblTitle.Text" xml:space="preserve">
|
||||||
|
<value>Title:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblWarningStorage.Text" xml:space="preserve">
|
||||||
|
<value>Send warning E-mail when site storage reaches (MB):</value>
|
||||||
|
</data>
|
||||||
|
<data name="localesList.Text" xml:space="preserve">
|
||||||
|
<value>Full list of locales</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>SharePoint Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="secMainTools.Text" xml:space="preserve">
|
||||||
|
<value>SharePoint Site Collection Tools</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.Add" xml:space="preserve">
|
||||||
|
<value>Add Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>Edit SharePoint Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.Update" xml:space="preserve">
|
||||||
|
<value>Update</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblMaxStorage.Text" xml:space="preserve">
|
||||||
|
<value>Maximum site storage size (MB):</value>
|
||||||
|
</data>
|
||||||
|
<data name="WarningUnlimitedValue" xml:space="preserve">
|
||||||
|
<value>Do not send</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCreate.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Creating SharePoint site collection...');</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,153 @@
|
||||||
|
<?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="btnBackup.Text" xml:space="preserve">
|
||||||
|
<value>Backup</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCancel.Text" xml:space="preserve">
|
||||||
|
<value>Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkZipBackup.Text" xml:space="preserve">
|
||||||
|
<value>ZIP Backup</value>
|
||||||
|
</data>
|
||||||
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
|
<value><p>The backup file that you create includes list or library content, security settings, user information, navigation, customizations, and personalizations (such as views, site templates, and content types). The backup file does not include workflows, alerts, and properties stored at the site collection level.</p></value>
|
||||||
|
</data>
|
||||||
|
<data name="lblBackupDestination.Text" xml:space="preserve">
|
||||||
|
<value>Backup Destination:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblBackupFileName.Text" xml:space="preserve">
|
||||||
|
<value>Backup File Name:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblBackupOptions.Text" xml:space="preserve">
|
||||||
|
<value>Backup Options:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Backup SharePoint Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="rbCopy.Text" xml:space="preserve">
|
||||||
|
<value>Copy to Folder</value>
|
||||||
|
</data>
|
||||||
|
<data name="rbDownload.Text" xml:space="preserve">
|
||||||
|
<value>Download via HTTP</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>Backup SharePoint Site Collection</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,207 @@
|
||||||
|
<?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="btnBackup.Text" xml:space="preserve">
|
||||||
|
<value>Backup Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCancel.Text" xml:space="preserve">
|
||||||
|
<value>Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnDelete.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Deleting SharePoint site collection...');</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnDelete.Text" xml:space="preserve">
|
||||||
|
<value>Delete</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnRestore.Text" xml:space="preserve">
|
||||||
|
<value>Restore Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnUpdate.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Updating SharePoint site collection...');</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnUpdate.Text" xml:space="preserve">
|
||||||
|
<value>Update</value>
|
||||||
|
</data>
|
||||||
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
|
<value><p>Here you can create new SharePoint site collection. Choose URL from the list of domains you already own. Site URL like team.yourcompany.com should be added as domain in “Domain names” organization’s menu before SharePoint site collection creation.</p>
|
||||||
|
|
||||||
|
<p><b>Site owner</b> is member of your organization who will be responsible for this SharePoint site collection administration: choosing site templates, adding other users, creating sub-sites.</p>
|
||||||
|
|
||||||
|
<p><b>Locale ID</b> defines your site language and can not be changed after site creation. However child sub sites can use another Locale IDs.</p>
|
||||||
|
|
||||||
|
<p>Title will be visible in site header.</p>
|
||||||
|
|
||||||
|
<p><b>Description</b> will be visible when you open site on the top of the main site page.</p>
|
||||||
|
|
||||||
|
<p>After you create this site open it using owner login, and do at least 2 main steps:
|
||||||
|
1. Choose site template
|
||||||
|
2. Define who will be able to access this site. To add user from your hosted organization to SharePoint site, please copy/paste his or her e-mail from user's properties in WebsitePanel to SharePoint site collection’s Users/Groups field.</p></value>
|
||||||
|
</data>
|
||||||
|
<data name="gvUserEmail.HeaderText" xml:space="preserve">
|
||||||
|
<value>Email</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvUserName.HeaderText" xml:space="preserve">
|
||||||
|
<value>User Name</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblDescription.Text" xml:space="preserve">
|
||||||
|
<value>Description:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblSiteCollectionLocaleID.Text" xml:space="preserve">
|
||||||
|
<value>Locale ID:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblSiteCollectionOwner.Text" xml:space="preserve">
|
||||||
|
<value>Owner:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblSiteCollectionUrl.Text" xml:space="preserve">
|
||||||
|
<value>Url:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblTitle.Text" xml:space="preserve">
|
||||||
|
<value>Title:</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblWarningStorage.Text" xml:space="preserve">
|
||||||
|
<value>Send warning E-mail when site storage reaches (MB):</value>
|
||||||
|
</data>
|
||||||
|
<data name="localesList.Text" xml:space="preserve">
|
||||||
|
<value>Full list of locales</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>SharePoint Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="secMainTools.Text" xml:space="preserve">
|
||||||
|
<value>SharePoint Site Collection Tools</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.Add" xml:space="preserve">
|
||||||
|
<value>Add Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>Edit SharePoint Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.Update" xml:space="preserve">
|
||||||
|
<value>Update</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblMaxStorage.Text" xml:space="preserve">
|
||||||
|
<value>Maximum site storage size (MB):</value>
|
||||||
|
</data>
|
||||||
|
<data name="WarningUnlimitedValue" xml:space="preserve">
|
||||||
|
<value>Do not send</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCreate.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Creating SharePoint site collection...');</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,150 @@
|
||||||
|
<?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="btnCancel.Text" xml:space="preserve">
|
||||||
|
<value>Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnRestore.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Restoring SharePoint site collection...');</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnRestore.Text" xml:space="preserve">
|
||||||
|
<value>Restore</value>
|
||||||
|
</data>
|
||||||
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
|
<value><p>After site collection is restored it will have primary administrator assigned to it as it was before restoration (primary administrator record from backup is ignored).</p></value>
|
||||||
|
</data>
|
||||||
|
<data name="lblAllowedFiles.Text" xml:space="preserve">
|
||||||
|
<value>.ZIP, .BAK files are allowed</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblRestoreFrom.Text" xml:space="preserve">
|
||||||
|
<value>Restore From:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Restore SharePoint Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="radioFile.Text" xml:space="preserve">
|
||||||
|
<value>Hosting Space File</value>
|
||||||
|
</data>
|
||||||
|
<data name="radioUpload.Text" xml:space="preserve">
|
||||||
|
<value>Uploaded File</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>Restore SharePoint Site Collection</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,153 @@
|
||||||
|
<?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="btnAddItem.Text" xml:space="preserve">
|
||||||
|
<value>Add SharePoint Enterprise Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCreateSiteCollection.Text" xml:space="preserve">
|
||||||
|
<value>Create New Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmdDelete.Text" xml:space="preserve">
|
||||||
|
<value>Delete</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlSearchColumnUrl.Text" xml:space="preserve">
|
||||||
|
<value>Url</value>
|
||||||
|
</data>
|
||||||
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
|
<value><p><b>SharePoint site collection</b> is a group of sites built on Microsoft Windows SharePoint Services that all exist under a top-level site. To make managing the sites and their content more convenient, you can assign users to be site collection administrators or site collection owners. These are permission levels to give to users who you want to have full administrative rights to all sites and content within a site collection.</p></value>
|
||||||
|
</data>
|
||||||
|
<data name="gvOwnerDisplayName.HeaderText" xml:space="preserve">
|
||||||
|
<value>Owner</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvSiteCollection.Empty" xml:space="preserve">
|
||||||
|
<value>No SharePoint site collections have been created. To create a SharePoint site collection click "Create New Site Collection" button.</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvSiteCollectionUrl.HeaderText" xml:space="preserve">
|
||||||
|
<value>Site Collection Url</value>
|
||||||
|
</data>
|
||||||
|
<data name="locQuota.Text" xml:space="preserve">
|
||||||
|
<value>Total Site Collections Created:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>SharePoint Enterprise Site Collections</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>SharePoint Enterprise Site Collections</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,154 @@
|
||||||
|
<?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="btnSave.Text" xml:space="preserve">
|
||||||
|
<value>Save</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnSaveApply.Text" xml:space="preserve">
|
||||||
|
<value>Save and Apply to All Site Collections</value>
|
||||||
|
</data>
|
||||||
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
|
<value><p>Storage settings are used to limit the amount of storage available on a SharePoint site collection, and they are used to send e-mail alerts to the site administrator when a specified value of space is used.</p>
|
||||||
|
|
||||||
|
<p>These settings will be applied to the new site collections only. By clicking "Save and Apply to All Site Collections" button you can override these settings for all existing site collections.</p>
|
||||||
|
|
||||||
|
<p>Please note, that you cannot specify storage settings higher than defined in the space hosting plan.</p></value>
|
||||||
|
</data>
|
||||||
|
<data name="locMaxStorage.Text" xml:space="preserve">
|
||||||
|
<value>Maximum site storage size (MB):</value>
|
||||||
|
</data>
|
||||||
|
<data name="locWarningStorage.Text" xml:space="preserve">
|
||||||
|
<value>Send warning E-mail when site storage reaches (MB):</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Storage Settings</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>Storage Settings</value>
|
||||||
|
</data>
|
||||||
|
<data name="secStorageLimits.Text" xml:space="preserve">
|
||||||
|
<value>Storage Settings</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkQuotaUnlimited.Text" xml:space="preserve">
|
||||||
|
<value>Don't use</value>
|
||||||
|
</data>
|
||||||
|
<data name="WarningUnlimitedValue" xml:space="preserve">
|
||||||
|
<value>Do not send</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,150 @@
|
||||||
|
<?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="btnRecalculateDiscSpace.Text" xml:space="preserve">
|
||||||
|
<value>Recalculate Disk Space</value>
|
||||||
|
</data>
|
||||||
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
|
<value><p>SharePoint disk space usage is calculated on timely basis (usually once a day). You can recalculate it right now by clicking "Recalculate Disk Space" button.</p></value>
|
||||||
|
</data>
|
||||||
|
<data name="gvSiteCollectionName.HeaderText" xml:space="preserve">
|
||||||
|
<value>Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvSiteCollectionSize.HeaderText" xml:space="preserve">
|
||||||
|
<value>Total Size, MB</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvStorageUsage.EmptyDataText" xml:space="preserve">
|
||||||
|
<value>There are no site collections</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Storage Usage</value>
|
||||||
|
</data>
|
||||||
|
<data name="secSiteCollectionsReport.Text" xml:space="preserve">
|
||||||
|
<value>Site Collections</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>Storage Usage</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTotalMailboxesSize.Text" xml:space="preserve">
|
||||||
|
<value>Total Size (MB):</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTotalMailboxItems.Text" xml:space="preserve">
|
||||||
|
<value>Total Items:</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,150 @@
|
||||||
|
<?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="btnCancel.Text" xml:space="preserve">
|
||||||
|
<value>Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnRestore.OnClientClick" xml:space="preserve">
|
||||||
|
<value>ShowProgressDialog('Restoring SharePoint site collection...');</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnRestore.Text" xml:space="preserve">
|
||||||
|
<value>Restore</value>
|
||||||
|
</data>
|
||||||
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
|
<value><p>After site collection is restored it will have primary administrator assigned to it as it was before restoration (primary administrator record from backup is ignored).</p></value>
|
||||||
|
</data>
|
||||||
|
<data name="lblAllowedFiles.Text" xml:space="preserve">
|
||||||
|
<value>.ZIP, .BAK files are allowed</value>
|
||||||
|
</data>
|
||||||
|
<data name="lblRestoreFrom.Text" xml:space="preserve">
|
||||||
|
<value>Restore From:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Restore SharePoint Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="radioFile.Text" xml:space="preserve">
|
||||||
|
<value>Hosting Space File</value>
|
||||||
|
</data>
|
||||||
|
<data name="radioUpload.Text" xml:space="preserve">
|
||||||
|
<value>Uploaded File</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>Restore SharePoint Site Collection</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,153 @@
|
||||||
|
<?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="btnAddItem.Text" xml:space="preserve">
|
||||||
|
<value>Add SharePoint Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnCreateSiteCollection.Text" xml:space="preserve">
|
||||||
|
<value>Create New Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmdDelete.Text" xml:space="preserve">
|
||||||
|
<value>Delete</value>
|
||||||
|
</data>
|
||||||
|
<data name="ddlSearchColumnUrl.Text" xml:space="preserve">
|
||||||
|
<value>Url</value>
|
||||||
|
</data>
|
||||||
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
|
<value><p><b>SharePoint site collection</b> is a group of sites built on Microsoft Windows SharePoint Services that all exist under a top-level site. To make managing the sites and their content more convenient, you can assign users to be site collection administrators or site collection owners. These are permission levels to give to users who you want to have full administrative rights to all sites and content within a site collection.</p></value>
|
||||||
|
</data>
|
||||||
|
<data name="gvOwnerDisplayName.HeaderText" xml:space="preserve">
|
||||||
|
<value>Owner</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvSiteCollection.Empty" xml:space="preserve">
|
||||||
|
<value>No SharePoint site collections have been created. To create a SharePoint site collection click "Create New Site Collection" button.</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvSiteCollectionUrl.HeaderText" xml:space="preserve">
|
||||||
|
<value>Site Collection Url</value>
|
||||||
|
</data>
|
||||||
|
<data name="locQuota.Text" xml:space="preserve">
|
||||||
|
<value>Total Site Collections Created:</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>SharePoint Site Collections</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>SharePoint Site Collections</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,154 @@
|
||||||
|
<?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="btnSave.Text" xml:space="preserve">
|
||||||
|
<value>Save</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnSaveApply.Text" xml:space="preserve">
|
||||||
|
<value>Save and Apply to All Site Collections</value>
|
||||||
|
</data>
|
||||||
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
|
<value><p>Storage settings are used to limit the amount of storage available on a SharePoint site collection, and they are used to send e-mail alerts to the site administrator when a specified value of space is used.</p>
|
||||||
|
|
||||||
|
<p>These settings will be applied to the new site collections only. By clicking "Save and Apply to All Site Collections" button you can override these settings for all existing site collections.</p>
|
||||||
|
|
||||||
|
<p>Please note, that you cannot specify storage settings higher than defined in the space hosting plan.</p></value>
|
||||||
|
</data>
|
||||||
|
<data name="locMaxStorage.Text" xml:space="preserve">
|
||||||
|
<value>Maximum site storage size (MB):</value>
|
||||||
|
</data>
|
||||||
|
<data name="locWarningStorage.Text" xml:space="preserve">
|
||||||
|
<value>Send warning E-mail when site storage reaches (MB):</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Storage Settings</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>Storage Settings</value>
|
||||||
|
</data>
|
||||||
|
<data name="secStorageLimits.Text" xml:space="preserve">
|
||||||
|
<value>Storage Settings</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkQuotaUnlimited.Text" xml:space="preserve">
|
||||||
|
<value>Don't use</value>
|
||||||
|
</data>
|
||||||
|
<data name="WarningUnlimitedValue" xml:space="preserve">
|
||||||
|
<value>Do not send</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,150 @@
|
||||||
|
<?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="btnRecalculateDiscSpace.Text" xml:space="preserve">
|
||||||
|
<value>Recalculate Disk Space</value>
|
||||||
|
</data>
|
||||||
|
<data name="FormComments.Text" xml:space="preserve">
|
||||||
|
<value><p>SharePoint disk space usage is calculated on timely basis (usually once a day). You can recalculate it right now by clicking "Recalculate Disk Space" button.</p></value>
|
||||||
|
</data>
|
||||||
|
<data name="gvSiteCollectionName.HeaderText" xml:space="preserve">
|
||||||
|
<value>Site Collection</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvSiteCollectionSize.HeaderText" xml:space="preserve">
|
||||||
|
<value>Total Size, MB</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvStorageUsage.EmptyDataText" xml:space="preserve">
|
||||||
|
<value>There are no site collections</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTitle.Text" xml:space="preserve">
|
||||||
|
<value>Storage Usage</value>
|
||||||
|
</data>
|
||||||
|
<data name="secSiteCollectionsReport.Text" xml:space="preserve">
|
||||||
|
<value>Site Collections</value>
|
||||||
|
</data>
|
||||||
|
<data name="Text.PageName" xml:space="preserve">
|
||||||
|
<value>Storage Usage</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTotalMailboxesSize.Text" xml:space="preserve">
|
||||||
|
<value>Total Size (MB):</value>
|
||||||
|
</data>
|
||||||
|
<data name="locTotalMailboxItems.Text" xml:space="preserve">
|
||||||
|
<value>Total Items:</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,80 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" Codebehind="HostedSharePointBackupSiteCollection.ascx.cs"
|
||||||
|
Inherits="WebsitePanel.Portal.HostedSharePointBackupSiteCollection" %>
|
||||||
|
<%@ Register Src="../UserControls/FileLookup.ascx" TagName="FileLookup" TagPrefix="uc1" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server" />
|
||||||
|
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="SharePointSiteCollection48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="SharePoint Site Collections"></asp:Localize>
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
<table cellspacing="0" cellpadding="5" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="Huge" colspan="2">
|
||||||
|
<asp:Literal ID="litSiteCollectionName" runat="server"></asp:Literal></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" valign="top">
|
||||||
|
<asp:Label ID="lblBackupFileName" runat="server" meta:resourcekey="lblBackupFileName"
|
||||||
|
Text="Backup File Name:"></asp:Label></td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:TextBox ID="txtBackupName" runat="server" CssClass="NormalTextBox" Width="200"></asp:TextBox><asp:RequiredFieldValidator
|
||||||
|
ID="validatorUserName" runat="server" ControlToValidate="txtBackupName" CssClass="NormalBold"
|
||||||
|
Display="Dynamic" ErrorMessage="*"></asp:RequiredFieldValidator></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" valign="top">
|
||||||
|
<asp:Label ID="lblBackupOptions" runat="server" meta:resourcekey="lblBackupOptions"
|
||||||
|
Text="Backup Options:"></asp:Label></td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:CheckBox ID="chkZipBackup" runat="server" meta:resourcekey="chkZipBackup" Checked="True"
|
||||||
|
Text="ZIP Backup" AutoPostBack="True" OnCheckedChanged="chkZipBackup_CheckedChanged">
|
||||||
|
</asp:CheckBox><br />
|
||||||
|
<br />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" valign="top">
|
||||||
|
<asp:Label ID="lblBackupDestination" runat="server" meta:resourcekey="lblBackupDestination"
|
||||||
|
Text="Backup Destination:"></asp:Label></td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:RadioButton ID="rbDownload" runat="server" meta:resourcekey="rbDownload" Checked="True"
|
||||||
|
Text="Download via HTTP" GroupName="action" AutoPostBack="True" OnCheckedChanged="rbDownload_CheckedChanged">
|
||||||
|
</asp:RadioButton><br />
|
||||||
|
<asp:RadioButton ID="rbCopy" runat="server" meta:resourcekey="rbCopy" Text="Copy to Folder"
|
||||||
|
GroupName="action" AutoPostBack="True" OnCheckedChanged="rbDownload_CheckedChanged">
|
||||||
|
</asp:RadioButton><br />
|
||||||
|
<uc1:FileLookup ID="fileLookup" runat="server" Width="300" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<asp:Button ID="btnBackup" runat="server" meta:resourcekey="btnBackup" CssClass="Button1"
|
||||||
|
Text="Backup" OnClick="btnBackup_Click"/>
|
||||||
|
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel" CssClass="Button1"
|
||||||
|
CausesValidation="false" Text="Cancel" OnClick="btnCancel_Click" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,189 @@
|
||||||
|
// Copyright (c) 2015, 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.IO;
|
||||||
|
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.Providers.SharePoint;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class HostedSharePointBackupSiteCollection : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
private const string BACKUP_EXTENSION = ".bsh";
|
||||||
|
|
||||||
|
private int OrganizationId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return PanelRequest.GetInt("ItemID");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int SiteCollectionId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return PanelRequest.GetInt("SiteCollectionID");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
BindSite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindSite()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SharePointSiteCollection siteCollection = ES.Services.HostedSharePointServers.GetSiteCollection(this.SiteCollectionId);
|
||||||
|
litSiteCollectionName.Text = siteCollection.PhysicalAddress;
|
||||||
|
txtBackupName.Text = siteCollection.Url + BACKUP_EXTENSION;
|
||||||
|
fileLookup.SelectedFile = "\\";
|
||||||
|
fileLookup.PackageId = siteCollection.PackageId;
|
||||||
|
|
||||||
|
BindBackupName();
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("SHAREPOINT_GET_SITE", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindBackupName()
|
||||||
|
{
|
||||||
|
string backupName = Path.GetFileNameWithoutExtension(txtBackupName.Text);
|
||||||
|
txtBackupName.Text = backupName + (chkZipBackup.Checked ? ".zip" : BACKUP_EXTENSION);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ToggleControls()
|
||||||
|
{
|
||||||
|
fileLookup.Visible = rbCopy.Checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BackupSiteCollection()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string bakFile = ES.Services.HostedSharePointServers.BackupSiteCollection(this.SiteCollectionId,
|
||||||
|
txtBackupName.Text, chkZipBackup.Checked, rbDownload.Checked, fileLookup.SelectedFile);
|
||||||
|
|
||||||
|
if (rbDownload.Checked && !String.IsNullOrEmpty(bakFile))
|
||||||
|
{
|
||||||
|
|
||||||
|
string fileName = bakFile;
|
||||||
|
|
||||||
|
//Response.Clear();
|
||||||
|
Response.AddHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(fileName));
|
||||||
|
Response.ContentType = "application/octet-stream";
|
||||||
|
|
||||||
|
int FILE_BUFFER_LENGTH = 5000000;
|
||||||
|
byte[] buffer = null;
|
||||||
|
int offset = 0;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
// Read remote content.
|
||||||
|
buffer = ES.Services.HostedSharePointServers.GetBackupBinaryChunk(this.SiteCollectionId, fileName, offset, FILE_BUFFER_LENGTH);
|
||||||
|
|
||||||
|
// Write to stream.
|
||||||
|
//Response.BinaryWrite(buffer);
|
||||||
|
Response.OutputStream.Write(buffer, 0, buffer.Length);
|
||||||
|
offset += FILE_BUFFER_LENGTH;
|
||||||
|
}
|
||||||
|
while (buffer.Length == FILE_BUFFER_LENGTH);
|
||||||
|
|
||||||
|
Response.Flush();
|
||||||
|
Response.End();
|
||||||
|
//Response.Close();
|
||||||
|
//HttpContext.Current.ApplicationInstance.CompleteRequest();
|
||||||
|
//Response.End();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("SHAREPOINT_BACKUP_SITE", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//Response.ClearContent();
|
||||||
|
Context.Response.Clear();
|
||||||
|
if (!rbDownload.Checked)
|
||||||
|
RedirectBack();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnBackup_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
BackupSiteCollection();
|
||||||
|
}
|
||||||
|
protected void btnCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
RedirectBack();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RedirectBack()
|
||||||
|
{
|
||||||
|
HttpContext.Current.Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "sharepoint_edit_sitecollection", "SiteCollectionID=" + this.SiteCollectionId, "ItemID=" + PanelRequest.ItemID.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void chkZipBackup_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
BindBackupName();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void rbDownload_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnPreRender(EventArgs e)
|
||||||
|
{
|
||||||
|
string str = string.Format("var rb = document.getElementById('{0}'); if (!rb.checked) ShowProgressDialog('Backing up site collection...');", rbDownload.ClientID);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
btnBackup.Attributes.Add("onclick", str);
|
||||||
|
base.OnPreRender(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,159 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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 HostedSharePointBackupSiteCollection {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// asyncTasks control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litSiteCollectionName 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.Literal litSiteCollectionName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblBackupFileName 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 lblBackupFileName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtBackupName 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.TextBox txtBackupName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// validatorUserName 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.RequiredFieldValidator validatorUserName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblBackupOptions 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 lblBackupOptions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkZipBackup 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.CheckBox chkZipBackup;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblBackupDestination 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 lblBackupDestination;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// rbDownload 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.RadioButton rbDownload;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// rbCopy 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.RadioButton rbCopy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// fileLookup control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.FileLookup fileLookup;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnBackup 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.Button btnBackup;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCancel 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.Button btnCancel;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,209 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" Codebehind="HostedSharePointEditSiteCollection.ascx.cs" Inherits="WebsitePanel.Portal.HostedSharePointEditSiteCollection" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/SizeBox.ascx" TagName="SizeBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/PopupHeader.ascx" TagName="PopupHeader" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/AllocatePackageIPAddresses.ascx" TagName="SiteUrlBuilder" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/UserSelector.ascx" TagName="UserSelector" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||||
|
<%@ Register src="../UserControls/QuotaEditor.ascx" tagname="QuotaEditor" tagprefix="uc1" %>
|
||||||
|
<%@ Register Src="../DomainsSelectDomainControl.ascx" TagName="DomainsSelectDomainControl" TagPrefix="uc1" %>
|
||||||
|
|
||||||
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server" />
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="SharePointSiteCollection48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="SharePoint Site Collection"></asp:Localize>
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:SimpleMessageBox id="localMessageBox" runat="server">
|
||||||
|
</wsp:SimpleMessageBox>
|
||||||
|
<table id="tblEditItem" runat="server" cellspacing="0" cellpadding="5" width="100%">
|
||||||
|
<tr id="rowUrl">
|
||||||
|
<td class="SubHead" nowrap width="200">
|
||||||
|
<asp:Label ID="lblSiteCollectionUrl" runat="server" meta:resourcekey="lblSiteCollectionUrl"
|
||||||
|
Text="Url:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td width="100%" class="NormalBold">
|
||||||
|
<asp:TextBox ID="txtHostName" runat="server" CssClass="TextBox100" MaxLength="64"></asp:TextBox>.<uc1:DomainsSelectDomainControl ID="domain" runat="server" HideWebSites="false" HideDomainPointers="true" HideInstantAlias="true"/>
|
||||||
|
<asp:RequiredFieldValidator ID="valRequireHostName" runat="server" meta:resourcekey="valRequireHostName" ControlToValidate="txtHostName"
|
||||||
|
ErrorMessage="Enter hostname" ValidationGroup="CreateSite" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
||||||
|
<asp:RegularExpressionValidator ID="valRequireCorrectHostName" runat="server"
|
||||||
|
ErrorMessage="Enter valid hostname" ControlToValidate="txtHostName" Display="Dynamic"
|
||||||
|
meta:resourcekey="valRequireCorrectHostName" ValidationExpression="^([0-9a-zA-Z])*[0-9a-zA-Z]+$" SetFocusOnError="True"></asp:RegularExpressionValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblSiteCollectionOwner" runat="server" meta:resourcekey="lblSiteCollectionOwner"
|
||||||
|
Text="Owner:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<wsp:UserSelector id="userSelector" IncludeMailboxes="true" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblSiteCollectionLocaleID" runat="server" meta:resourcekey="lblSiteCollectionLocaleID"
|
||||||
|
Text="Locale ID:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:DropDownList ID="ddlLocaleID" runat="server" DataTextField="DisplayName" DataValueField="LCID" ></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblMaxStorage" runat="server" meta:resourcekey="lblMaxStorage"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<uc1:QuotaEditor ID="maxStorage" runat="server" Width="200px" CssClass="NormalTextBox" QuotaTypeId="2" />
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblWarningStorage" runat="server" meta:resourcekey="lblWarningStorage"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<uc1:QuotaEditor ID="warningStorage" runat="server" Width="200px" QuotaTypeId="2" CssClass="NormalTextBox"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblTitle" runat="server" meta:resourcekey="lblTitle" Text="Title:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:TextBox ID="txtTitle" runat="server" Width="200px" CssClass="NormalTextBox" ></asp:TextBox>
|
||||||
|
<asp:RequiredFieldValidator ID="valRequireTitle" runat="server" ErrorMessage="*"
|
||||||
|
ControlToValidate="txtTitle" ValidationGroup="CreateSiteCollection"></asp:RequiredFieldValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblDescription" runat="server" meta:resourcekey="lblDescription" Text="Description:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:TextBox ID="txtDescription" runat="server" Width="200px" CssClass="NormalTextBox"
|
||||||
|
TextMode="MultiLine" Rows="5"></asp:TextBox>
|
||||||
|
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*"
|
||||||
|
ControlToValidate="txtDescription" ValidationGroup="CreateSiteCollection"></asp:RequiredFieldValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table id="tblViewItem" runat="server" cellspacing="0" cellpadding="5" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" nowrap width="200">
|
||||||
|
<asp:Label ID="lblSiteCollectionUrl2" runat="server" meta:resourcekey="lblSiteCollectionUrl"
|
||||||
|
Text="Url:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td width="100%" class="NormalBold">
|
||||||
|
<span class="Huge">
|
||||||
|
<asp:HyperLink runat="server" ID="lnkUrl" /> </span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblSiteCollectionOwner2" runat="server" meta:resourcekey="lblSiteCollectionOwner"
|
||||||
|
Text="Owner:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:Literal ID="litSiteCollectionOwner" runat="server"></asp:Literal>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblSiteCollectionLocaleID2" runat="server" meta:resourcekey="lblSiteCollectionLocaleID"
|
||||||
|
Text="Locale ID:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:Literal ID="litLocaleID" runat="server"></asp:Literal>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblMaxStorageView" runat="server" meta:resourcekey="lblMaxStorage"
|
||||||
|
Text="Limit site storage to a maximum of:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<uc1:QuotaEditor ID="editMaxStorage" runat="server" Width="200px" QuotaTypeId="2" CssClass="NormalTextBox"/>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblWarningStorageView" runat="server" meta:resourcekey="lblWarningStorage"
|
||||||
|
Text="Send warning E-mail when site storage reaches:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<uc1:QuotaEditor ID="editWarningStorage" runat="server" Width="200px" QuotaTypeId="2" CssClass="NormalTextBox"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblTitle2" runat="server" meta:resourcekey="lblTitle" Text="Title:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:Literal ID="litTitle" runat="server"></asp:Literal>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblDescription2" runat="server" meta:resourcekey="lblDescription"
|
||||||
|
Text="Description:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:Literal ID="litDescription" runat="server"></asp:Literal>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<wsp:CollapsiblePanel id="secMainTools" runat="server" IsCollapsed="true" TargetControlID="ToolsPanel"
|
||||||
|
meta:resourcekey="secMainTools" Text="SharePoint Site Collection Tools">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="ToolsPanel" runat="server" Height="0" Style="overflow: hidden;">
|
||||||
|
<table id="tblMaintenance" runat="server" cellpadding="10">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:Button ID="btnBackup" runat="server" meta:resourcekey="btnBackup" CausesValidation="false"
|
||||||
|
Text="Backup Site Collection" CssClass="Button3" OnClick="btnBackup_Click" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:Button ID="btnRestore" runat="server" meta:resourcekey="btnRestore" CausesValidation="false"
|
||||||
|
Text="Restore Site Collection" CssClass="Button3" OnClick="btnRestore_Click" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<asp:Button ID="btnUpdate" runat="server" CssClass="Button1"
|
||||||
|
Text="Update" OnClick="btnUpdate_Click" ValidationGroup="CreateSiteCollection" />
|
||||||
|
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel" CssClass="Button1"
|
||||||
|
CausesValidation="false" Text="Cancel" OnClick="btnCancel_Click" />
|
||||||
|
<asp:Button ID="btnDelete" runat="server" meta:resourcekey="btnDelete" CssClass="Button1"
|
||||||
|
CausesValidation="false" Text="Delete" OnClientClick="return confirm('Delete Site?');"
|
||||||
|
OnClick="btnDelete_Click" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,450 @@
|
||||||
|
// Copyright (c) 2015, 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.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
using WebsitePanel.Providers.DNS;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
using WebsitePanel.Providers.SharePoint;
|
||||||
|
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class HostedSharePointEditSiteCollection : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
SharePointSiteCollection item = null;
|
||||||
|
|
||||||
|
private int OrganizationId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return PanelRequest.GetInt("ItemID");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int SiteCollectionId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return PanelRequest.GetInt("SiteCollectionID");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
domain.PackageId = PanelSecurity.PackageId;
|
||||||
|
|
||||||
|
warningStorage.UnlimitedText = GetLocalizedString("WarningUnlimitedValue");
|
||||||
|
editWarningStorage.UnlimitedText = GetLocalizedString("WarningUnlimitedValue");
|
||||||
|
|
||||||
|
bool newItem = (this.SiteCollectionId == 0);
|
||||||
|
|
||||||
|
tblEditItem.Visible = newItem;
|
||||||
|
tblViewItem.Visible = !newItem;
|
||||||
|
|
||||||
|
//btnUpdate.Visible = newItem;
|
||||||
|
btnDelete.Visible = !newItem;
|
||||||
|
btnUpdate.Text = newItem ? GetLocalizedString("Text.Add") : GetLocalizedString("Text.Update");
|
||||||
|
btnUpdate.OnClientClick = newItem ? GetLocalizedString("btnCreate.OnClientClick") : GetLocalizedString("btnUpdate.OnClientClick");
|
||||||
|
|
||||||
|
btnBackup.Enabled = btnRestore.Enabled = !newItem;
|
||||||
|
|
||||||
|
// bind item
|
||||||
|
BindItem();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindItem()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
if (!this.IsDnsServiceAvailable())
|
||||||
|
{
|
||||||
|
localMessageBox.ShowWarningMessage("HOSTEDSHAREPOINT_NO_DNS");
|
||||||
|
}
|
||||||
|
|
||||||
|
// load item if required
|
||||||
|
if (this.SiteCollectionId > 0)
|
||||||
|
{
|
||||||
|
// existing item
|
||||||
|
item = ES.Services.HostedSharePointServers.GetSiteCollection(this.SiteCollectionId);
|
||||||
|
if (item != null)
|
||||||
|
{
|
||||||
|
// save package info
|
||||||
|
ViewState["PackageId"] = item.PackageId;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
RedirectToBrowsePage();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// new item
|
||||||
|
ViewState["PackageId"] = PanelSecurity.PackageId;
|
||||||
|
if (UseSharedSLL(PanelSecurity.PackageId))
|
||||||
|
{
|
||||||
|
|
||||||
|
rowUrl.Visible = false;
|
||||||
|
valRequireHostName.Enabled = false;
|
||||||
|
valRequireCorrectHostName.Enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//this.gvUsers.DataBind();
|
||||||
|
|
||||||
|
List<CultureInfo> cultures = new List<CultureInfo>();
|
||||||
|
foreach (int localeId in ES.Services.HostedSharePointServers.GetSupportedLanguages(PanelSecurity.PackageId))
|
||||||
|
{
|
||||||
|
cultures.Add(new CultureInfo(localeId, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
this.ddlLocaleID.DataSource = cultures;
|
||||||
|
this.ddlLocaleID.DataBind();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
// bind item to controls
|
||||||
|
if (item != null)
|
||||||
|
{
|
||||||
|
// bind item to controls
|
||||||
|
lnkUrl.Text = item.PhysicalAddress;
|
||||||
|
lnkUrl.NavigateUrl = item.PhysicalAddress;
|
||||||
|
litSiteCollectionOwner.Text = String.Format("{0} ({1})", item.OwnerName, item.OwnerEmail);
|
||||||
|
litLocaleID.Text = new CultureInfo(item.LocaleId, false).DisplayName;
|
||||||
|
litTitle.Text = item.Title;
|
||||||
|
litDescription.Text = item.Description;
|
||||||
|
editWarningStorage.QuotaValue = (int)item.WarningStorage;
|
||||||
|
editMaxStorage.QuotaValue = (int)item.MaxSiteStorage;
|
||||||
|
}
|
||||||
|
|
||||||
|
Organization org = ES.Services.Organizations.GetOrganization(OrganizationId);
|
||||||
|
|
||||||
|
if (org != null)
|
||||||
|
{
|
||||||
|
SetStorageQuotas(org, item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//OrganizationDomainName[] domains = ES.Services.Organizations.GetOrganizationDomains(PanelRequest.ItemID);
|
||||||
|
|
||||||
|
//DomainInfo[] domains = ES.Services.Servers.GetMyDomains(PanelSecurity.PackageId);
|
||||||
|
|
||||||
|
EnterpriseServer.DomainInfo[] domains = ES.Services.Servers.GetDomains(PanelSecurity.PackageId);
|
||||||
|
|
||||||
|
if (domains.Length == 0)
|
||||||
|
{
|
||||||
|
localMessageBox.ShowWarningMessage("HOSTEDSHAREPOINT_NO_DOMAINS");
|
||||||
|
DisableFormControls(this, btnCancel);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//if (this.gvUsers.Rows.Count == 0)
|
||||||
|
//{
|
||||||
|
// localMessageBox.ShowWarningMessage("HOSTEDSHAREPOINT_NO_USERS");
|
||||||
|
// DisableFormControls(this, btnCancel);
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
|
||||||
|
localMessageBox.ShowWarningMessage("INIT_SERVICE_ITEM_FORM");
|
||||||
|
|
||||||
|
DisableFormControls(this, btnCancel);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary> Checks and sets disk quotas values.</summary>
|
||||||
|
/// <param name="organization"> The organization.</param>
|
||||||
|
/// <param name="collection"> The site collection.</param>
|
||||||
|
private void SetStorageQuotas(Organization organization, SharePointSiteCollection collection)
|
||||||
|
{
|
||||||
|
var quotaValue = organization.MaxSharePointStorage;
|
||||||
|
|
||||||
|
if (quotaValue != -1)
|
||||||
|
{
|
||||||
|
var spaceResrved = GetReservedDiskStorageSpace();
|
||||||
|
|
||||||
|
if (spaceResrved > quotaValue)
|
||||||
|
{
|
||||||
|
quotaValue = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
quotaValue -= spaceResrved;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (collection != null)
|
||||||
|
{
|
||||||
|
quotaValue += (int)collection.MaxSiteStorage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
maxStorage.ParentQuotaValue = quotaValue;
|
||||||
|
maxStorage.QuotaValue = quotaValue;
|
||||||
|
editMaxStorage.ParentQuotaValue = quotaValue;
|
||||||
|
warningStorage.ParentQuotaValue = quotaValue;
|
||||||
|
warningStorage.QuotaValue = quotaValue;
|
||||||
|
editWarningStorage.ParentQuotaValue = quotaValue;
|
||||||
|
|
||||||
|
btnUpdate.Enabled = quotaValue != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary> Gets disk space reserved by existing site collections.</summary>
|
||||||
|
/// <returns> Reserved disk space vallue.</returns>
|
||||||
|
private int GetReservedDiskStorageSpace()
|
||||||
|
{
|
||||||
|
var existingCollections = ES.Services.HostedSharePointServers.GetSiteCollections(PanelSecurity.PackageId, false);
|
||||||
|
|
||||||
|
return (int)existingCollections.Sum(siteCollection => siteCollection.MaxSiteStorage);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SaveItem()
|
||||||
|
{
|
||||||
|
if (!Page.IsValid)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (this.SiteCollectionId == 0)
|
||||||
|
{
|
||||||
|
if (this.userSelector.GetAccount() == null)
|
||||||
|
{
|
||||||
|
localMessageBox.ShowWarningMessage("HOSTEDSHAREPOINT_NO_USERS");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// new item
|
||||||
|
try
|
||||||
|
{
|
||||||
|
item = new SharePointSiteCollection();
|
||||||
|
|
||||||
|
if (!UseSharedSLL(PanelSecurity.PackageId))
|
||||||
|
{
|
||||||
|
SharePointSiteCollectionListPaged existentSiteCollections = ES.Services.HostedSharePointServers.GetSiteCollectionsPaged(PanelSecurity.PackageId, this.OrganizationId, "ItemName", String.Format("%{0}", this.domain.DomainName), String.Empty, 0, Int32.MaxValue);
|
||||||
|
foreach (SharePointSiteCollection existentSiteCollection in existentSiteCollections.SiteCollections)
|
||||||
|
{
|
||||||
|
Uri existentSiteCollectionUri = new Uri(existentSiteCollection.Name);
|
||||||
|
if (existentSiteCollection.Name == String.Format("{0}://{1}", existentSiteCollectionUri.Scheme, this.txtHostName.Text.ToLower() + "." + this.domain.DomainName))
|
||||||
|
{
|
||||||
|
localMessageBox.ShowWarningMessage("HOSTEDSHAREPOINT_DOMAIN_IN_USE");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
item.Name = this.txtHostName.Text.ToLower() + "." + this.domain.DomainName;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
item.Name = string.Empty;
|
||||||
|
|
||||||
|
// get form data
|
||||||
|
|
||||||
|
item.OrganizationId = this.OrganizationId;
|
||||||
|
item.Id = this.SiteCollectionId;
|
||||||
|
item.PackageId = PanelSecurity.PackageId;
|
||||||
|
|
||||||
|
item.LocaleId = Int32.Parse(this.ddlLocaleID.SelectedValue);
|
||||||
|
item.OwnerLogin = this.userSelector.GetSAMAccountName();
|
||||||
|
item.OwnerEmail = this.userSelector.GetPrimaryEmailAddress();
|
||||||
|
item.OwnerName = this.userSelector.GetDisplayName();
|
||||||
|
item.Title = txtTitle.Text;
|
||||||
|
item.Description = txtDescription.Text;
|
||||||
|
|
||||||
|
|
||||||
|
item.MaxSiteStorage = maxStorage.QuotaValue;
|
||||||
|
item.WarningStorage = warningStorage.QuotaValue;
|
||||||
|
|
||||||
|
int result = ES.Services.HostedSharePointServers.AddSiteCollection(item);
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
localMessageBox.ShowResultMessage(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
localMessageBox.ShowErrorMessage("HOSTEDSHAREPOINT_ADD_SITECOLLECTION", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ES.Services.HostedSharePointServers.UpdateQuota(PanelRequest.ItemID, SiteCollectionId, editMaxStorage.QuotaValue, editWarningStorage.QuotaValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
// return
|
||||||
|
RedirectToSiteCollectionsList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddDnsRecord(int domainId, string recordName, string recordData)
|
||||||
|
{
|
||||||
|
int result = ES.Services.Servers.AddDnsZoneRecord(domainId, recordName, DnsRecordType.A, recordData, 0, 0, 0, 0);
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
ShowResultMessage(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool IsDnsServiceAvailable()
|
||||||
|
{
|
||||||
|
ProviderInfo dnsProvider = ES.Services.Servers.GetPackageServiceProvider(PanelSecurity.PackageId, ResourceGroups.Dns);
|
||||||
|
return dnsProvider != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DeleteItem()
|
||||||
|
{
|
||||||
|
// delete
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int result = ES.Services.HostedSharePointServers.DeleteSiteCollection(this.SiteCollectionId);
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
ShowResultMessage(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
localMessageBox.ShowErrorMessage("HOSTEDSHAREPOINT_DELETE_SITECOLLECTION", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// return
|
||||||
|
RedirectToSiteCollectionsList();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void odsAccountsPaged_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Exception != null)
|
||||||
|
{
|
||||||
|
localMessageBox.ShowErrorMessage("ORGANIZATION_GET_USERS", e.Exception);
|
||||||
|
e.ExceptionHandled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void btnCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// return
|
||||||
|
RedirectToSiteCollectionsList();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnDelete_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DeleteItem();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnUpdate_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SaveItem();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnBackup_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "sharepoint_backup_sitecollection", "SiteCollectionID=" + this.SiteCollectionId, "ItemID=" + PanelRequest.ItemID.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnRestore_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "sharepoint_restore_sitecollection", "SiteCollectionID=" + this.SiteCollectionId, "ItemID=" + PanelRequest.ItemID.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void RedirectToSiteCollectionsList()
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "sharepoint_sitecollections", "ItemID=" + PanelRequest.ItemID.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool UseSharedSLL(int packageID)
|
||||||
|
{
|
||||||
|
PackageContext cntx = ES.Services.Packages.GetPackageContext(PanelSecurity.PackageId);
|
||||||
|
if (cntx != null)
|
||||||
|
{
|
||||||
|
foreach (QuotaValueInfo quota in cntx.QuotasArray)
|
||||||
|
{
|
||||||
|
switch (quota.QuotaId)
|
||||||
|
{
|
||||||
|
case 400:
|
||||||
|
if (Convert.ToBoolean(quota.QuotaAllocatedValue))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//private void RegisterOwnerSelector()
|
||||||
|
//{
|
||||||
|
// // Define the name and type of the client scripts on the page.
|
||||||
|
// String csname = "OwnerSelectorScript";
|
||||||
|
// Type cstype = this.GetType();
|
||||||
|
|
||||||
|
// // Get a ClientScriptManager reference from the Page class.
|
||||||
|
// ClientScriptManager cs = Page.ClientScript;
|
||||||
|
|
||||||
|
// // Check to see if the client script is already registered.
|
||||||
|
// if (!cs.IsClientScriptBlockRegistered(cstype, csname))
|
||||||
|
// {
|
||||||
|
// StringBuilder ownerSelector = new StringBuilder();
|
||||||
|
// ownerSelector.Append("<script type=text/javascript> function DoSelectOwner(ownerId, ownerDisplayName, email) {");
|
||||||
|
// ownerSelector.AppendFormat("{0}.{1}.value=ownerId;", this.Page.Form.ID, this.hdnSiteCollectionOwner.ClientID);
|
||||||
|
// ownerSelector.AppendFormat("{0}.{1}.value=ownerDisplayName;", this.Page.Form.ID, this.txtSiteCollectionOwner.ClientID);
|
||||||
|
// ownerSelector.AppendFormat("{0}.{1}.value=email;", this.Page.Form.ID, this.hdnSiteCollectionOwnerEmail.ClientID);
|
||||||
|
// ownerSelector.Append("} </script>");
|
||||||
|
// cs.RegisterClientScriptBlock(cstype, csname, ownerSelector.ToString(), false);
|
||||||
|
// }
|
||||||
|
|
||||||
|
//}
|
||||||
|
|
||||||
|
//private StringDictionary ConvertArrayToDictionary(string[] settings)
|
||||||
|
//{
|
||||||
|
// StringDictionary r = new StringDictionary();
|
||||||
|
// foreach (string setting in settings)
|
||||||
|
// {
|
||||||
|
// int idx = setting.IndexOf('=');
|
||||||
|
// r.Add(setting.Substring(0, idx), setting.Substring(idx + 1));
|
||||||
|
// }
|
||||||
|
// return r;
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,447 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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 HostedSharePointEditSiteCollection {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// asyncTasks control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// localMessageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox localMessageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tblEditItem control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTable tblEditItem;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// rowUrl control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTableRow rowUrl;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSiteCollectionUrl 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 lblSiteCollectionUrl;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtHostName 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.TextBox txtHostName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// domain control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.DomainsSelectDomainControl domain;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRequireHostName 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.RequiredFieldValidator valRequireHostName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRequireCorrectHostName 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.RegularExpressionValidator valRequireCorrectHostName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSiteCollectionOwner 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 lblSiteCollectionOwner;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// userSelector control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.UserSelector userSelector;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSiteCollectionLocaleID 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 lblSiteCollectionLocaleID;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlLocaleID 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.DropDownList ddlLocaleID;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblMaxStorage 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 lblMaxStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// maxStorage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor maxStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblWarningStorage 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 lblWarningStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// warningStorage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor warningStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblTitle 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 lblTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtTitle 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.TextBox txtTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRequireTitle 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.RequiredFieldValidator valRequireTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblDescription 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 lblDescription;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtDescription 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.TextBox txtDescription;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RequiredFieldValidator1 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.RequiredFieldValidator RequiredFieldValidator1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tblViewItem control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTable tblViewItem;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSiteCollectionUrl2 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 lblSiteCollectionUrl2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lnkUrl 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.HyperLink lnkUrl;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSiteCollectionOwner2 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 lblSiteCollectionOwner2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litSiteCollectionOwner 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.Literal litSiteCollectionOwner;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSiteCollectionLocaleID2 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 lblSiteCollectionLocaleID2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litLocaleID 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.Literal litLocaleID;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblMaxStorageView 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 lblMaxStorageView;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// editMaxStorage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor editMaxStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblWarningStorageView 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 lblWarningStorageView;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// editWarningStorage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor editWarningStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblTitle2 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 lblTitle2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litTitle 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.Literal litTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblDescription2 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 lblDescription2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litDescription 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.Literal litDescription;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secMainTools control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secMainTools;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ToolsPanel 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 ToolsPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tblMaintenance control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTable tblMaintenance;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnBackup 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.Button btnBackup;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnRestore 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.Button btnRestore;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnUpdate 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.Button btnUpdate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCancel 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.Button btnCancel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnDelete 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.Button btnDelete;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,80 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" Codebehind="HostedSharePointEnterpriseBackupSiteCollection.ascx.cs"
|
||||||
|
Inherits="WebsitePanel.Portal.HostedSharePointEnterpriseBackupSiteCollection" %>
|
||||||
|
<%@ Register Src="../UserControls/FileLookup.ascx" TagName="FileLookup" TagPrefix="uc1" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server" />
|
||||||
|
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="SharePointSiteCollection48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="SharePoint Site Collections"></asp:Localize>
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
<table cellspacing="0" cellpadding="5" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="Huge" colspan="2">
|
||||||
|
<asp:Literal ID="litSiteCollectionName" runat="server"></asp:Literal></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" valign="top">
|
||||||
|
<asp:Label ID="lblBackupFileName" runat="server" meta:resourcekey="lblBackupFileName"
|
||||||
|
Text="Backup File Name:"></asp:Label></td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:TextBox ID="txtBackupName" runat="server" CssClass="NormalTextBox" Width="200"></asp:TextBox><asp:RequiredFieldValidator
|
||||||
|
ID="validatorUserName" runat="server" ControlToValidate="txtBackupName" CssClass="NormalBold"
|
||||||
|
Display="Dynamic" ErrorMessage="*"></asp:RequiredFieldValidator></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" valign="top">
|
||||||
|
<asp:Label ID="lblBackupOptions" runat="server" meta:resourcekey="lblBackupOptions"
|
||||||
|
Text="Backup Options:"></asp:Label></td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:CheckBox ID="chkZipBackup" runat="server" meta:resourcekey="chkZipBackup" Checked="True"
|
||||||
|
Text="ZIP Backup" AutoPostBack="True" OnCheckedChanged="chkZipBackup_CheckedChanged">
|
||||||
|
</asp:CheckBox><br />
|
||||||
|
<br />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" valign="top">
|
||||||
|
<asp:Label ID="lblBackupDestination" runat="server" meta:resourcekey="lblBackupDestination"
|
||||||
|
Text="Backup Destination:"></asp:Label></td>
|
||||||
|
<td class="normal">
|
||||||
|
<asp:RadioButton ID="rbDownload" runat="server" meta:resourcekey="rbDownload" Checked="True"
|
||||||
|
Text="Download via HTTP" GroupName="action" AutoPostBack="True" OnCheckedChanged="rbDownload_CheckedChanged">
|
||||||
|
</asp:RadioButton><br />
|
||||||
|
<asp:RadioButton ID="rbCopy" runat="server" meta:resourcekey="rbCopy" Text="Copy to Folder"
|
||||||
|
GroupName="action" AutoPostBack="True" OnCheckedChanged="rbDownload_CheckedChanged">
|
||||||
|
</asp:RadioButton><br />
|
||||||
|
<uc1:FileLookup ID="fileLookup" runat="server" Width="300" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<asp:Button ID="btnBackup" runat="server" meta:resourcekey="btnBackup" CssClass="Button1"
|
||||||
|
Text="Backup" OnClick="btnBackup_Click"/>
|
||||||
|
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel" CssClass="Button1"
|
||||||
|
CausesValidation="false" Text="Cancel" OnClick="btnCancel_Click" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,189 @@
|
||||||
|
// Copyright (c) 2015, 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.IO;
|
||||||
|
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.Providers.SharePoint;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class HostedSharePointEnterpriseBackupSiteCollection : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
private const string BACKUP_EXTENSION = ".bsh";
|
||||||
|
|
||||||
|
private int OrganizationId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return PanelRequest.GetInt("ItemID");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int SiteCollectionId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return PanelRequest.GetInt("SiteCollectionID");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
BindSite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindSite()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SharePointEnterpriseSiteCollection siteCollection = ES.Services.HostedSharePointServersEnt.Enterprise_GetSiteCollection(this.SiteCollectionId);
|
||||||
|
litSiteCollectionName.Text = siteCollection.PhysicalAddress;
|
||||||
|
txtBackupName.Text = siteCollection.Url + BACKUP_EXTENSION;
|
||||||
|
fileLookup.SelectedFile = "\\";
|
||||||
|
fileLookup.PackageId = siteCollection.PackageId;
|
||||||
|
|
||||||
|
BindBackupName();
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("SHAREPOINT_GET_SITE", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindBackupName()
|
||||||
|
{
|
||||||
|
string backupName = Path.GetFileNameWithoutExtension(txtBackupName.Text);
|
||||||
|
txtBackupName.Text = backupName + (chkZipBackup.Checked ? ".zip" : BACKUP_EXTENSION);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ToggleControls()
|
||||||
|
{
|
||||||
|
fileLookup.Visible = rbCopy.Checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BackupSiteCollection()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string bakFile = ES.Services.HostedSharePointServersEnt.Enterprise_BackupSiteCollection(this.SiteCollectionId,
|
||||||
|
txtBackupName.Text, chkZipBackup.Checked, rbDownload.Checked, fileLookup.SelectedFile);
|
||||||
|
|
||||||
|
if (rbDownload.Checked && !String.IsNullOrEmpty(bakFile))
|
||||||
|
{
|
||||||
|
|
||||||
|
string fileName = bakFile;
|
||||||
|
|
||||||
|
//Response.Clear();
|
||||||
|
Response.AddHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(fileName));
|
||||||
|
Response.ContentType = "application/octet-stream";
|
||||||
|
|
||||||
|
int FILE_BUFFER_LENGTH = 5000000;
|
||||||
|
byte[] buffer = null;
|
||||||
|
int offset = 0;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
// Read remote content.
|
||||||
|
buffer = ES.Services.HostedSharePointServersEnt.Enterprise_GetBackupBinaryChunk(this.SiteCollectionId, fileName, offset, FILE_BUFFER_LENGTH);
|
||||||
|
|
||||||
|
// Write to stream.
|
||||||
|
//Response.BinaryWrite(buffer);
|
||||||
|
Response.OutputStream.Write(buffer, 0, buffer.Length);
|
||||||
|
offset += FILE_BUFFER_LENGTH;
|
||||||
|
}
|
||||||
|
while (buffer.Length == FILE_BUFFER_LENGTH);
|
||||||
|
|
||||||
|
Response.Flush();
|
||||||
|
Response.End();
|
||||||
|
//Response.Close();
|
||||||
|
//HttpContext.Current.ApplicationInstance.CompleteRequest();
|
||||||
|
//Response.End();
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("SHAREPOINT_BACKUP_SITE", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//Response.ClearContent();
|
||||||
|
Context.Response.Clear();
|
||||||
|
if (!rbDownload.Checked)
|
||||||
|
RedirectBack();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnBackup_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
BackupSiteCollection();
|
||||||
|
}
|
||||||
|
protected void btnCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
RedirectBack();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RedirectBack()
|
||||||
|
{
|
||||||
|
HttpContext.Current.Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "sharepoint_enterprise_edit_sitecollection", "SiteCollectionID=" + this.SiteCollectionId, "ItemID=" + PanelRequest.ItemID.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void chkZipBackup_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
BindBackupName();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void rbDownload_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void OnPreRender(EventArgs e)
|
||||||
|
{
|
||||||
|
string str = string.Format("var rb = document.getElementById('{0}'); if (!rb.checked) ShowProgressDialog('Backing up site collection...');", rbDownload.ClientID);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
btnBackup.Attributes.Add("onclick", str);
|
||||||
|
base.OnPreRender(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,159 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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 HostedSharePointEnterpriseBackupSiteCollection {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// asyncTasks control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litSiteCollectionName 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.Literal litSiteCollectionName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblBackupFileName 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 lblBackupFileName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtBackupName 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.TextBox txtBackupName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// validatorUserName 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.RequiredFieldValidator validatorUserName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblBackupOptions 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 lblBackupOptions;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkZipBackup 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.CheckBox chkZipBackup;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblBackupDestination 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 lblBackupDestination;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// rbDownload 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.RadioButton rbDownload;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// rbCopy 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.RadioButton rbCopy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// fileLookup control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.FileLookup fileLookup;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnBackup 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.Button btnBackup;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCancel 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.Button btnCancel;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,209 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" Codebehind="HostedSharePointEnterpriseEditSiteCollection.ascx.cs" Inherits="WebsitePanel.Portal.HostedSharePointEnterpriseEditSiteCollection" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/SizeBox.ascx" TagName="SizeBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/PopupHeader.ascx" TagName="PopupHeader" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/AllocatePackageIPAddresses.ascx" TagName="SiteUrlBuilder" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/UserSelector.ascx" TagName="UserSelector" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
|
||||||
|
<%@ Register src="../UserControls/QuotaEditor.ascx" tagname="QuotaEditor" tagprefix="uc1" %>
|
||||||
|
<%@ Register Src="../DomainsSelectDomainControl.ascx" TagName="DomainsSelectDomainControl" TagPrefix="uc1" %>
|
||||||
|
|
||||||
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server" />
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="SharePointSiteCollection48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="SharePoint Site Collection"></asp:Localize>
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:SimpleMessageBox id="localMessageBox" runat="server">
|
||||||
|
</wsp:SimpleMessageBox>
|
||||||
|
<table id="tblEditItem" runat="server" cellspacing="0" cellpadding="5" width="100%">
|
||||||
|
<tr id="rowUrl">
|
||||||
|
<td class="SubHead" nowrap width="200">
|
||||||
|
<asp:Label ID="lblSiteCollectionUrl" runat="server" meta:resourcekey="lblSiteCollectionUrl"
|
||||||
|
Text="Url:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td width="100%" class="NormalBold">
|
||||||
|
<asp:TextBox ID="txtHostName" runat="server" CssClass="TextBox100" MaxLength="64"></asp:TextBox>.<uc1:DomainsSelectDomainControl ID="domain" runat="server" HideWebSites="false" HideDomainPointers="true" HideInstantAlias="true"/>
|
||||||
|
<asp:RequiredFieldValidator ID="valRequireHostName" runat="server" meta:resourcekey="valRequireHostName" ControlToValidate="txtHostName"
|
||||||
|
ErrorMessage="Enter hostname" ValidationGroup="CreateSite" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
||||||
|
<asp:RegularExpressionValidator ID="valRequireCorrectHostName" runat="server"
|
||||||
|
ErrorMessage="Enter valid hostname" ControlToValidate="txtHostName" Display="Dynamic"
|
||||||
|
meta:resourcekey="valRequireCorrectHostName" ValidationExpression="^([0-9a-zA-Z])*[0-9a-zA-Z]+$" SetFocusOnError="True"></asp:RegularExpressionValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblSiteCollectionOwner" runat="server" meta:resourcekey="lblSiteCollectionOwner"
|
||||||
|
Text="Owner:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<wsp:UserSelector id="userSelector" IncludeMailboxes="true" runat="server"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblSiteCollectionLocaleID" runat="server" meta:resourcekey="lblSiteCollectionLocaleID"
|
||||||
|
Text="Locale ID:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:DropDownList ID="ddlLocaleID" runat="server" DataTextField="DisplayName" DataValueField="LCID" ></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblMaxStorage" runat="server" meta:resourcekey="lblMaxStorage"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<uc1:QuotaEditor ID="maxStorage" runat="server" Width="200px" CssClass="NormalTextBox" QuotaTypeId="2" />
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblWarningStorage" runat="server" meta:resourcekey="lblWarningStorage"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<uc1:QuotaEditor ID="warningStorage" runat="server" Width="200px" QuotaTypeId="2" CssClass="NormalTextBox"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblTitle" runat="server" meta:resourcekey="lblTitle" Text="Title:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:TextBox ID="txtTitle" runat="server" Width="200px" CssClass="NormalTextBox" ></asp:TextBox>
|
||||||
|
<asp:RequiredFieldValidator ID="valRequireTitle" runat="server" ErrorMessage="*"
|
||||||
|
ControlToValidate="txtTitle" ValidationGroup="CreateSiteCollection"></asp:RequiredFieldValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblDescription" runat="server" meta:resourcekey="lblDescription" Text="Description:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:TextBox ID="txtDescription" runat="server" Width="200px" CssClass="NormalTextBox"
|
||||||
|
TextMode="MultiLine" Rows="5"></asp:TextBox>
|
||||||
|
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*"
|
||||||
|
ControlToValidate="txtDescription" ValidationGroup="CreateSiteCollection"></asp:RequiredFieldValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table id="tblViewItem" runat="server" cellspacing="0" cellpadding="5" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" nowrap width="200">
|
||||||
|
<asp:Label ID="lblSiteCollectionUrl2" runat="server" meta:resourcekey="lblSiteCollectionUrl"
|
||||||
|
Text="Url:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td width="100%" class="NormalBold">
|
||||||
|
<span class="Huge">
|
||||||
|
<asp:HyperLink runat="server" ID="lnkUrl" /> </span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblSiteCollectionOwner2" runat="server" meta:resourcekey="lblSiteCollectionOwner"
|
||||||
|
Text="Owner:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:Literal ID="litSiteCollectionOwner" runat="server"></asp:Literal>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblSiteCollectionLocaleID2" runat="server" meta:resourcekey="lblSiteCollectionLocaleID"
|
||||||
|
Text="Locale ID:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:Literal ID="litLocaleID" runat="server"></asp:Literal>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblMaxStorageView" runat="server" meta:resourcekey="lblMaxStorage"
|
||||||
|
Text="Limit site storage to a maximum of:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<uc1:QuotaEditor ID="editMaxStorage" runat="server" Width="200px" QuotaTypeId="2" CssClass="NormalTextBox"/>
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblWarningStorageView" runat="server" meta:resourcekey="lblWarningStorage"
|
||||||
|
Text="Send warning E-mail when site storage reaches:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<uc1:QuotaEditor ID="editWarningStorage" runat="server" Width="200px" QuotaTypeId="2" CssClass="NormalTextBox"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblTitle2" runat="server" meta:resourcekey="lblTitle" Text="Title:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:Literal ID="litTitle" runat="server"></asp:Literal>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead">
|
||||||
|
<asp:Label ID="lblDescription2" runat="server" meta:resourcekey="lblDescription"
|
||||||
|
Text="Description:"></asp:Label>
|
||||||
|
</td>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:Literal ID="litDescription" runat="server"></asp:Literal>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<wsp:CollapsiblePanel id="secMainTools" runat="server" IsCollapsed="true" TargetControlID="ToolsPanel"
|
||||||
|
meta:resourcekey="secMainTools" Text="SharePoint Site Collection Tools">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="ToolsPanel" runat="server" Height="0" Style="overflow: hidden;">
|
||||||
|
<table id="tblMaintenance" runat="server" cellpadding="10">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:Button ID="btnBackup" runat="server" meta:resourcekey="btnBackup" CausesValidation="false"
|
||||||
|
Text="Backup Site Collection" CssClass="Button3" OnClick="btnBackup_Click" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:Button ID="btnRestore" runat="server" meta:resourcekey="btnRestore" CausesValidation="false"
|
||||||
|
Text="Restore Site Collection" CssClass="Button3" OnClick="btnRestore_Click" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<asp:Button ID="btnUpdate" runat="server" CssClass="Button1"
|
||||||
|
Text="Update" OnClick="btnUpdate_Click" ValidationGroup="CreateSiteCollection" />
|
||||||
|
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel" CssClass="Button1"
|
||||||
|
CausesValidation="false" Text="Cancel" OnClick="btnCancel_Click" />
|
||||||
|
<asp:Button ID="btnDelete" runat="server" meta:resourcekey="btnDelete" CssClass="Button1"
|
||||||
|
CausesValidation="false" Text="Delete" OnClientClick="return confirm('Delete Site?');"
|
||||||
|
OnClick="btnDelete_Click" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,450 @@
|
||||||
|
// Copyright (c) 2015, 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.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
using WebsitePanel.Providers.DNS;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
using WebsitePanel.Providers.SharePoint;
|
||||||
|
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class HostedSharePointEnterpriseEditSiteCollection : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
SharePointEnterpriseSiteCollection item = null;
|
||||||
|
|
||||||
|
private int OrganizationId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return PanelRequest.GetInt("ItemID");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int SiteCollectionId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return PanelRequest.GetInt("SiteCollectionID");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
domain.PackageId = PanelSecurity.PackageId;
|
||||||
|
|
||||||
|
warningStorage.UnlimitedText = GetLocalizedString("WarningUnlimitedValue");
|
||||||
|
editWarningStorage.UnlimitedText = GetLocalizedString("WarningUnlimitedValue");
|
||||||
|
|
||||||
|
bool newItem = (this.SiteCollectionId == 0);
|
||||||
|
|
||||||
|
tblEditItem.Visible = newItem;
|
||||||
|
tblViewItem.Visible = !newItem;
|
||||||
|
|
||||||
|
//btnUpdate.Visible = newItem;
|
||||||
|
btnDelete.Visible = !newItem;
|
||||||
|
btnUpdate.Text = newItem ? GetLocalizedString("Text.Add") : GetLocalizedString("Text.Update");
|
||||||
|
btnUpdate.OnClientClick = newItem ? GetLocalizedString("btnCreate.OnClientClick") : GetLocalizedString("btnUpdate.OnClientClick");
|
||||||
|
|
||||||
|
btnBackup.Enabled = btnRestore.Enabled = !newItem;
|
||||||
|
|
||||||
|
// bind item
|
||||||
|
BindItem();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindItem()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
if (!this.IsDnsServiceAvailable())
|
||||||
|
{
|
||||||
|
localMessageBox.ShowWarningMessage("HOSTEDSHAREPOINT_NO_DNS");
|
||||||
|
}
|
||||||
|
|
||||||
|
// load item if required
|
||||||
|
if (this.SiteCollectionId > 0)
|
||||||
|
{
|
||||||
|
// existing item
|
||||||
|
item = ES.Services.HostedSharePointServersEnt.Enterprise_GetSiteCollection(this.SiteCollectionId);
|
||||||
|
if (item != null)
|
||||||
|
{
|
||||||
|
// save package info
|
||||||
|
ViewState["PackageId"] = item.PackageId;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
RedirectToBrowsePage();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// new item
|
||||||
|
ViewState["PackageId"] = PanelSecurity.PackageId;
|
||||||
|
if (UseSharedSLL(PanelSecurity.PackageId))
|
||||||
|
{
|
||||||
|
|
||||||
|
rowUrl.Visible = false;
|
||||||
|
valRequireHostName.Enabled = false;
|
||||||
|
valRequireCorrectHostName.Enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//this.gvUsers.DataBind();
|
||||||
|
|
||||||
|
List<CultureInfo> cultures = new List<CultureInfo>();
|
||||||
|
foreach (int localeId in ES.Services.HostedSharePointServersEnt.Enterprise_GetSupportedLanguages(PanelSecurity.PackageId))
|
||||||
|
{
|
||||||
|
cultures.Add(new CultureInfo(localeId, false));
|
||||||
|
}
|
||||||
|
|
||||||
|
this.ddlLocaleID.DataSource = cultures;
|
||||||
|
this.ddlLocaleID.DataBind();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
// bind item to controls
|
||||||
|
if (item != null)
|
||||||
|
{
|
||||||
|
// bind item to controls
|
||||||
|
lnkUrl.Text = item.PhysicalAddress;
|
||||||
|
lnkUrl.NavigateUrl = item.PhysicalAddress;
|
||||||
|
litSiteCollectionOwner.Text = String.Format("{0} ({1})", item.OwnerName, item.OwnerEmail);
|
||||||
|
litLocaleID.Text = new CultureInfo(item.LocaleId, false).DisplayName;
|
||||||
|
litTitle.Text = item.Title;
|
||||||
|
litDescription.Text = item.Description;
|
||||||
|
editWarningStorage.QuotaValue = (int)item.WarningStorage;
|
||||||
|
editMaxStorage.QuotaValue = (int)item.MaxSiteStorage;
|
||||||
|
}
|
||||||
|
|
||||||
|
Organization org = ES.Services.Organizations.GetOrganization(OrganizationId);
|
||||||
|
|
||||||
|
if (org != null)
|
||||||
|
{
|
||||||
|
SetStorageQuotas(org, item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//OrganizationDomainName[] domains = ES.Services.Organizations.GetOrganizationDomains(PanelRequest.ItemID);
|
||||||
|
|
||||||
|
//DomainInfo[] domains = ES.Services.Servers.GetMyDomains(PanelSecurity.PackageId);
|
||||||
|
|
||||||
|
EnterpriseServer.DomainInfo[] domains = ES.Services.Servers.GetDomains(PanelSecurity.PackageId);
|
||||||
|
|
||||||
|
if (domains.Length == 0)
|
||||||
|
{
|
||||||
|
localMessageBox.ShowWarningMessage("HOSTEDSHAREPOINT_NO_DOMAINS");
|
||||||
|
DisableFormControls(this, btnCancel);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//if (this.gvUsers.Rows.Count == 0)
|
||||||
|
//{
|
||||||
|
// localMessageBox.ShowWarningMessage("HOSTEDSHAREPOINT_NO_USERS");
|
||||||
|
// DisableFormControls(this, btnCancel);
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
|
||||||
|
localMessageBox.ShowWarningMessage("INIT_SERVICE_ITEM_FORM");
|
||||||
|
|
||||||
|
DisableFormControls(this, btnCancel);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary> Checks and sets disk quotas values.</summary>
|
||||||
|
/// <param name="organization"> The organization.</param>
|
||||||
|
/// <param name="collection"> The site collection.</param>
|
||||||
|
private void SetStorageQuotas(Organization organization, SharePointEnterpriseSiteCollection collection)
|
||||||
|
{
|
||||||
|
var quotaValue = organization.MaxSharePointEnterpriseStorage;
|
||||||
|
|
||||||
|
if (quotaValue != -1)
|
||||||
|
{
|
||||||
|
var spaceResrved = GetReservedDiskStorageSpace();
|
||||||
|
|
||||||
|
if (spaceResrved > quotaValue)
|
||||||
|
{
|
||||||
|
quotaValue = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
quotaValue -= spaceResrved;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (collection != null)
|
||||||
|
{
|
||||||
|
quotaValue += (int)collection.MaxSiteStorage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
maxStorage.ParentQuotaValue = quotaValue;
|
||||||
|
maxStorage.QuotaValue = quotaValue;
|
||||||
|
editMaxStorage.ParentQuotaValue = quotaValue;
|
||||||
|
warningStorage.ParentQuotaValue = quotaValue;
|
||||||
|
warningStorage.QuotaValue = quotaValue;
|
||||||
|
editWarningStorage.ParentQuotaValue = quotaValue;
|
||||||
|
|
||||||
|
btnUpdate.Enabled = quotaValue != 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary> Gets disk space reserved by existing site collections.</summary>
|
||||||
|
/// <returns> Reserved disk space vallue.</returns>
|
||||||
|
private int GetReservedDiskStorageSpace()
|
||||||
|
{
|
||||||
|
var existingCollections = ES.Services.HostedSharePointServersEnt.Enterprise_GetSiteCollections(PanelSecurity.PackageId, false);
|
||||||
|
|
||||||
|
return (int)existingCollections.Sum(siteCollection => siteCollection.MaxSiteStorage);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SaveItem()
|
||||||
|
{
|
||||||
|
if (!Page.IsValid)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (this.SiteCollectionId == 0)
|
||||||
|
{
|
||||||
|
if (this.userSelector.GetAccount() == null)
|
||||||
|
{
|
||||||
|
localMessageBox.ShowWarningMessage("HOSTEDSHAREPOINT_NO_USERS");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// new item
|
||||||
|
try
|
||||||
|
{
|
||||||
|
item = new SharePointEnterpriseSiteCollection();
|
||||||
|
|
||||||
|
if (!UseSharedSLL(PanelSecurity.PackageId))
|
||||||
|
{
|
||||||
|
SharePointEnterpriseSiteCollectionListPaged existentSiteCollections = ES.Services.HostedSharePointServersEnt.Enterprise_GetSiteCollectionsPaged(PanelSecurity.PackageId, this.OrganizationId, "ItemName", String.Format("%{0}", this.domain.DomainName), String.Empty, 0, Int32.MaxValue);
|
||||||
|
foreach (SharePointEnterpriseSiteCollection existentSiteCollection in existentSiteCollections.SiteCollections)
|
||||||
|
{
|
||||||
|
Uri existentSiteCollectionUri = new Uri(existentSiteCollection.Name);
|
||||||
|
if (existentSiteCollection.Name == String.Format("{0}://{1}", existentSiteCollectionUri.Scheme, this.txtHostName.Text.ToLower() + "." + this.domain.DomainName))
|
||||||
|
{
|
||||||
|
localMessageBox.ShowWarningMessage("HOSTEDSHAREPOINT_DOMAIN_IN_USE");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
item.Name = this.txtHostName.Text.ToLower() + "." + this.domain.DomainName;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
item.Name = string.Empty;
|
||||||
|
|
||||||
|
// get form data
|
||||||
|
|
||||||
|
item.OrganizationId = this.OrganizationId;
|
||||||
|
item.Id = this.SiteCollectionId;
|
||||||
|
item.PackageId = PanelSecurity.PackageId;
|
||||||
|
|
||||||
|
item.LocaleId = Int32.Parse(this.ddlLocaleID.SelectedValue);
|
||||||
|
item.OwnerLogin = this.userSelector.GetSAMAccountName();
|
||||||
|
item.OwnerEmail = this.userSelector.GetPrimaryEmailAddress();
|
||||||
|
item.OwnerName = this.userSelector.GetDisplayName();
|
||||||
|
item.Title = txtTitle.Text;
|
||||||
|
item.Description = txtDescription.Text;
|
||||||
|
|
||||||
|
|
||||||
|
item.MaxSiteStorage = maxStorage.QuotaValue;
|
||||||
|
item.WarningStorage = warningStorage.QuotaValue;
|
||||||
|
|
||||||
|
int result = ES.Services.HostedSharePointServersEnt.Enterprise_AddSiteCollection(item);
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
localMessageBox.ShowResultMessage(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
localMessageBox.ShowErrorMessage("HOSTEDSHAREPOINT_ADD_SITECOLLECTION", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ES.Services.HostedSharePointServersEnt.Enterprise_UpdateQuota(PanelRequest.ItemID, SiteCollectionId, editMaxStorage.QuotaValue, editWarningStorage.QuotaValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
// return
|
||||||
|
RedirectToSiteCollectionsList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AddDnsRecord(int domainId, string recordName, string recordData)
|
||||||
|
{
|
||||||
|
int result = ES.Services.Servers.AddDnsZoneRecord(domainId, recordName, DnsRecordType.A, recordData, 0, 0, 0, 0);
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
ShowResultMessage(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool IsDnsServiceAvailable()
|
||||||
|
{
|
||||||
|
ProviderInfo dnsProvider = ES.Services.Servers.GetPackageServiceProvider(PanelSecurity.PackageId, ResourceGroups.Dns);
|
||||||
|
return dnsProvider != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DeleteItem()
|
||||||
|
{
|
||||||
|
// delete
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int result = ES.Services.HostedSharePointServersEnt.Enterprise_DeleteSiteCollection(this.SiteCollectionId);
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
ShowResultMessage(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
localMessageBox.ShowErrorMessage("HOSTEDSHAREPOINT_DELETE_SITECOLLECTION", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// return
|
||||||
|
RedirectToSiteCollectionsList();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void odsAccountsPaged_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Exception != null)
|
||||||
|
{
|
||||||
|
localMessageBox.ShowErrorMessage("ORGANIZATION_GET_USERS", e.Exception);
|
||||||
|
e.ExceptionHandled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void btnCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// return
|
||||||
|
RedirectToSiteCollectionsList();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnDelete_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
DeleteItem();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnUpdate_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SaveItem();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnBackup_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "sharepoint_enterprise_backup_sitecollection", "SiteCollectionID=" + this.SiteCollectionId, "ItemID=" + PanelRequest.ItemID.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnRestore_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "sharepoint_enterprise_restore_sitecollection", "SiteCollectionID=" + this.SiteCollectionId, "ItemID=" + PanelRequest.ItemID.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private void RedirectToSiteCollectionsList()
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "sharepoint_enterprise_sitecollections", "ItemID=" + PanelRequest.ItemID.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool UseSharedSLL(int packageID)
|
||||||
|
{
|
||||||
|
PackageContext cntx = ES.Services.Packages.GetPackageContext(PanelSecurity.PackageId);
|
||||||
|
if (cntx != null)
|
||||||
|
{
|
||||||
|
foreach (QuotaValueInfo quota in cntx.QuotasArray)
|
||||||
|
{
|
||||||
|
switch (quota.QuotaId)
|
||||||
|
{
|
||||||
|
case 552:
|
||||||
|
if (Convert.ToBoolean(quota.QuotaAllocatedValue))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//private void RegisterOwnerSelector()
|
||||||
|
//{
|
||||||
|
// // Define the name and type of the client scripts on the page.
|
||||||
|
// String csname = "OwnerSelectorScript";
|
||||||
|
// Type cstype = this.GetType();
|
||||||
|
|
||||||
|
// // Get a ClientScriptManager reference from the Page class.
|
||||||
|
// ClientScriptManager cs = Page.ClientScript;
|
||||||
|
|
||||||
|
// // Check to see if the client script is already registered.
|
||||||
|
// if (!cs.IsClientScriptBlockRegistered(cstype, csname))
|
||||||
|
// {
|
||||||
|
// StringBuilder ownerSelector = new StringBuilder();
|
||||||
|
// ownerSelector.Append("<script type=text/javascript> function DoSelectOwner(ownerId, ownerDisplayName, email) {");
|
||||||
|
// ownerSelector.AppendFormat("{0}.{1}.value=ownerId;", this.Page.Form.ID, this.hdnSiteCollectionOwner.ClientID);
|
||||||
|
// ownerSelector.AppendFormat("{0}.{1}.value=ownerDisplayName;", this.Page.Form.ID, this.txtSiteCollectionOwner.ClientID);
|
||||||
|
// ownerSelector.AppendFormat("{0}.{1}.value=email;", this.Page.Form.ID, this.hdnSiteCollectionOwnerEmail.ClientID);
|
||||||
|
// ownerSelector.Append("} </script>");
|
||||||
|
// cs.RegisterClientScriptBlock(cstype, csname, ownerSelector.ToString(), false);
|
||||||
|
// }
|
||||||
|
|
||||||
|
//}
|
||||||
|
|
||||||
|
//private StringDictionary ConvertArrayToDictionary(string[] settings)
|
||||||
|
//{
|
||||||
|
// StringDictionary r = new StringDictionary();
|
||||||
|
// foreach (string setting in settings)
|
||||||
|
// {
|
||||||
|
// int idx = setting.IndexOf('=');
|
||||||
|
// r.Add(setting.Substring(0, idx), setting.Substring(idx + 1));
|
||||||
|
// }
|
||||||
|
// return r;
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,447 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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 HostedSharePointEnterpriseEditSiteCollection {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// asyncTasks control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// localMessageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox localMessageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tblEditItem control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTable tblEditItem;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// rowUrl control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTableRow rowUrl;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSiteCollectionUrl 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 lblSiteCollectionUrl;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtHostName 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.TextBox txtHostName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// domain control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.DomainsSelectDomainControl domain;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRequireHostName 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.RequiredFieldValidator valRequireHostName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRequireCorrectHostName 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.RegularExpressionValidator valRequireCorrectHostName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSiteCollectionOwner 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 lblSiteCollectionOwner;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// userSelector control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.ExchangeServer.UserControls.UserSelector userSelector;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSiteCollectionLocaleID 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 lblSiteCollectionLocaleID;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlLocaleID 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.DropDownList ddlLocaleID;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblMaxStorage 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 lblMaxStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// maxStorage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor maxStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblWarningStorage 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 lblWarningStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// warningStorage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor warningStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblTitle 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 lblTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtTitle 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.TextBox txtTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// valRequireTitle 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.RequiredFieldValidator valRequireTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblDescription 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 lblDescription;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtDescription 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.TextBox txtDescription;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// RequiredFieldValidator1 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.RequiredFieldValidator RequiredFieldValidator1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tblViewItem control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTable tblViewItem;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSiteCollectionUrl2 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 lblSiteCollectionUrl2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lnkUrl 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.HyperLink lnkUrl;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSiteCollectionOwner2 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 lblSiteCollectionOwner2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litSiteCollectionOwner 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.Literal litSiteCollectionOwner;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblSiteCollectionLocaleID2 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 lblSiteCollectionLocaleID2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litLocaleID 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.Literal litLocaleID;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblMaxStorageView 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 lblMaxStorageView;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// editMaxStorage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor editMaxStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblWarningStorageView 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 lblWarningStorageView;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// editWarningStorage control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor editWarningStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblTitle2 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 lblTitle2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litTitle 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.Literal litTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblDescription2 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 lblDescription2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litDescription 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.Literal litDescription;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secMainTools control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secMainTools;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ToolsPanel 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 ToolsPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tblMaintenance control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTable tblMaintenance;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnBackup 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.Button btnBackup;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnRestore 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.Button btnRestore;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnUpdate 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.Button btnUpdate;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCancel 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.Button btnCancel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnDelete 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.Button btnDelete;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,101 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" Codebehind="HostedSharePointEnterpriseRestoreSiteCollection.ascx.cs"
|
||||||
|
Inherits="WebsitePanel.Portal.HostedSharePointEnterpriseRestoreSiteCollection" %>
|
||||||
|
<%@ Register Src="../UserControls/FileLookup.ascx" TagName="FileLookup" TagPrefix="uc1" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
6
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="SharePointSiteCollection48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="SharePoint Site Collections"></asp:Localize>
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
<table cellspacing="0" cellpadding="5" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="Huge" colspan="2">
|
||||||
|
<asp:Literal ID="litSiteCollectionName" runat="server"></asp:Literal></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" valign="top" nowrap width="200">
|
||||||
|
<asp:Label ID="lblRestoreFrom" runat="server" meta:resourcekey="lblRestoreFrom" Text="Restore From:"></asp:Label></td>
|
||||||
|
<td class="normal" width="100%">
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:RadioButton ID="radioUpload" meta:resourcekey="radioUpload" Checked="True" GroupName="media"
|
||||||
|
Text="Uploaded File" runat="server" AutoPostBack="True" OnCheckedChanged="radioUpload_CheckedChanged">
|
||||||
|
</asp:RadioButton></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:RadioButton ID="radioFile" meta:resourcekey="radioFile" GroupName="media" Text="Hosting Space File"
|
||||||
|
runat="server" AutoPostBack="True" OnCheckedChanged="radioUpload_CheckedChanged">
|
||||||
|
</asp:RadioButton></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Normal" id="cellUploadFile" runat="server">
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:FileUpload ID="uploadFile" runat="server" Width="300px" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Small" nowrap>
|
||||||
|
<asp:Label ID="lblAllowedFiles1" runat="server" meta:resourcekey="lblAllowedFiles"
|
||||||
|
Text=".ZIP, .BAK files are allowed"></asp:Label></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Normal" id="cellFile" runat="server">
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<uc1:FileLookup ID="fileLookup" runat="server" Width="300" IncludeFiles="true" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Small" nowrap>
|
||||||
|
<asp:Label ID="lblAllowedFiles2" runat="server" meta:resourcekey="lblAllowedFiles"
|
||||||
|
Text=".ZIP, .BAK files are allowed"></asp:Label></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<asp:Button ID="btnRestore" runat="server" meta:resourcekey="btnRestore" CssClass="Button1"
|
||||||
|
Text="Restore" OnClick="btnRestore_Click" OnClientClick="ShowProgressDialog('Restoring site collection...');"/>
|
||||||
|
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel" CssClass="Button1"
|
||||||
|
CausesValidation="false" Text="Cancel" OnClick="btnCancel_Click" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,176 @@
|
||||||
|
// Copyright (c) 2015, 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.IO;
|
||||||
|
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.Providers.SharePoint;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class HostedSharePointEnterpriseRestoreSiteCollection : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
private int OrganizationId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return PanelRequest.GetInt("ItemID");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int SiteCollectionId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return PanelRequest.GetInt("SiteCollectionID");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
BindSite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindSite()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SharePointEnterpriseSiteCollection siteCollection = ES.Services.HostedSharePointServersEnt.Enterprise_GetSiteCollection(this.SiteCollectionId);
|
||||||
|
litSiteCollectionName.Text = siteCollection.PhysicalAddress;
|
||||||
|
fileLookup.SelectedFile = String.Empty;
|
||||||
|
fileLookup.PackageId = siteCollection.PackageId;
|
||||||
|
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("SHAREPOINT_GET_SITE", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ToggleControls()
|
||||||
|
{
|
||||||
|
cellFile.Visible = radioFile.Checked;
|
||||||
|
cellUploadFile.Visible = radioUpload.Checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RestoreSiteCollection()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string uploadedFile = null;
|
||||||
|
string packageFile = null;
|
||||||
|
|
||||||
|
if (radioUpload.Checked)
|
||||||
|
{
|
||||||
|
if (uploadFile.PostedFile.FileName != "")
|
||||||
|
{
|
||||||
|
Stream stream = uploadFile.PostedFile.InputStream;
|
||||||
|
|
||||||
|
// save uploaded file
|
||||||
|
int FILE_BUFFER_LENGTH = 5000000;
|
||||||
|
string path = null;
|
||||||
|
int readBytes = 0;
|
||||||
|
string fileName = Path.GetFileName(uploadFile.PostedFile.FileName);
|
||||||
|
|
||||||
|
int offset = 0;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
// read input stream
|
||||||
|
byte[] buffer = new byte[FILE_BUFFER_LENGTH];
|
||||||
|
readBytes = stream.Read(buffer, 0, FILE_BUFFER_LENGTH);
|
||||||
|
|
||||||
|
if (readBytes < FILE_BUFFER_LENGTH)
|
||||||
|
Array.Resize<byte>(ref buffer, readBytes);
|
||||||
|
|
||||||
|
// write remote backup file
|
||||||
|
string tempPath = ES.Services.HostedSharePointServersEnt.Enterprise_AppendBackupBinaryChunk(this.SiteCollectionId, fileName, path, buffer);
|
||||||
|
if (path == null)
|
||||||
|
path = tempPath;
|
||||||
|
|
||||||
|
offset += FILE_BUFFER_LENGTH;
|
||||||
|
}
|
||||||
|
while (readBytes == FILE_BUFFER_LENGTH);
|
||||||
|
|
||||||
|
uploadedFile = path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// package files
|
||||||
|
packageFile = fileLookup.SelectedFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
int result = ES.Services.HostedSharePointServersEnt.Enterprise_RestoreSiteCollection(this.SiteCollectionId, uploadedFile, packageFile);
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
ShowResultMessage(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("SHAREPOINT_RESTORE_SITE", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RedirectBack();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnRestore_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
RestoreSiteCollection();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
RedirectBack();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RedirectBack()
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "sharepoint_enterprise_edit_sitecollection", "SiteCollectionID=" + this.SiteCollectionId, "ItemID=" + PanelRequest.ItemID.ToString()));
|
||||||
|
}
|
||||||
|
protected void radioUpload_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,159 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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 HostedSharePointEnterpriseRestoreSiteCollection {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// asyncTasks control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litSiteCollectionName 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.Literal litSiteCollectionName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblRestoreFrom 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 lblRestoreFrom;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// radioUpload 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.RadioButton radioUpload;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// radioFile 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.RadioButton radioFile;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cellUploadFile control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTableCell cellUploadFile;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// uploadFile 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.FileUpload uploadFile;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblAllowedFiles1 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 lblAllowedFiles1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cellFile control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTableCell cellFile;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// fileLookup control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.FileLookup fileLookup;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblAllowedFiles2 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 lblAllowedFiles2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnRestore 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.Button btnRestore;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCancel 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.Button btnCancel;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,92 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" Codebehind="HostedSharePointEnterpriseSiteCollections.ascx.cs"
|
||||||
|
Inherits="WebsitePanel.Portal.HostedSharePointEnterpriseSiteCollections" %>
|
||||||
|
<%@ Register Src="../UserControls/SpaceServiceItems.ascx" TagName="SpaceServiceItems"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/QuotaViewer.ascx" TagName="QuotaViewer" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/Quota.ascx" TagName="Quota" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server" />
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
function confirmation()
|
||||||
|
{
|
||||||
|
if (!confirm("Are you sure you want to delete Site Collection?")) return false; else ShowProgressDialog('Deleting SharePoint site collection...');
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="SharePointSiteCollection48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="SharePoint Site Collections"></asp:Localize>
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
<div class="FormButtonsBarClean">
|
||||||
|
<div class="FormButtonsBarCleanLeft">
|
||||||
|
<asp:Button ID="btnCreateSiteCollection" runat="server" meta:resourcekey="btnCreateSiteCollection"
|
||||||
|
Text="Create New Site Collection" CssClass="Button1" OnClick="btnCreateSiteCollection_Click" />
|
||||||
|
</div>
|
||||||
|
<div class="FormButtonsBarCleanRight">
|
||||||
|
<asp:Panel ID="SearchPanel" runat="server" DefaultButton="cmdSearch">
|
||||||
|
<asp:Localize ID="locSearch" runat="server" meta:resourcekey="locSearch" Visible="false"></asp:Localize>
|
||||||
|
<asp:DropDownList ID="ddlSearchColumn" runat="server" CssClass="NormalTextBox">
|
||||||
|
<asp:ListItem Value="ItemName" meta:resourcekey="ddlSearchColumnUrl">Url</asp:ListItem>
|
||||||
|
</asp:DropDownList><asp:TextBox ID="txtSearchValue" runat="server" CssClass="NormalTextBox"
|
||||||
|
Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" runat="server" meta:resourcekey="cmdSearch"
|
||||||
|
SkinID="SearchButton" CausesValidation="false" />
|
||||||
|
</asp:Panel>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<asp:GridView ID="gvSiteCollections" runat="server" AutoGenerateColumns="False" EnableViewState="true"
|
||||||
|
Width="100%" EmptyDataText="gvSiteCollection" CssSelectorClass="NormalGridView" OnRowCommand="gvSiteCollections_RowCommand"
|
||||||
|
AllowPaging="True" AllowSorting="True" DataSourceID="odsSiteCollectionsPaged">
|
||||||
|
<Columns>
|
||||||
|
<asp:TemplateField meta:resourcekey="gvSiteCollectionUrl" SortExpression="ItemName">
|
||||||
|
<ItemStyle Width="50%"></ItemStyle>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:HyperLink ID="lnk1" runat="server" NavigateUrl='<%# GetSiteCollectionEditUrl(Eval("Id").ToString()) %>'>
|
||||||
|
<%# Eval("PhysicalAddress") %>
|
||||||
|
</asp:HyperLink>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:BoundField meta:resourcekey="gvOwnerDisplayName" DataField="OwnerName" ItemStyle-Width="50%" />
|
||||||
|
<asp:TemplateField>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:ImageButton ID="cmdDelete" runat="server" Text="Delete" SkinID="ExchangeDelete"
|
||||||
|
CommandName="DeleteItem" CommandArgument='<%# Eval("Id") %>'
|
||||||
|
OnClientClick="confirmation()"></asp:ImageButton>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
</Columns>
|
||||||
|
</asp:GridView>
|
||||||
|
<asp:ObjectDataSource ID="odsSiteCollectionsPaged" runat="server" EnablePaging="True" SelectCountMethod="GetSharePointEnterpriseSiteCollectionPagedCount"
|
||||||
|
SelectMethod="GetSharePointEnterpriseSiteCollectionPaged" SortParameterName="sortColumn" TypeName="WebsitePanel.Portal.HostedSharePointEnterpriseSiteCollectionsHelper"
|
||||||
|
OnSelected="odsSharePointEnterpriseSiteCollectionPaged_Selected">
|
||||||
|
<SelectParameters>
|
||||||
|
<asp:QueryStringParameter Name="packageId" QueryStringField="SpaceID" DefaultValue="-1" />
|
||||||
|
<asp:QueryStringParameter Name="organizationId" QueryStringField="ItemID" DefaultValue="0" />
|
||||||
|
<asp:ControlParameter Name="filterColumn" ControlID="ddlSearchColumn" PropertyName="SelectedValue" />
|
||||||
|
<asp:ControlParameter Name="filterValue" ControlID="txtSearchValue" PropertyName="Text" />
|
||||||
|
</SelectParameters>
|
||||||
|
</asp:ObjectDataSource>
|
||||||
|
<br />
|
||||||
|
<asp:Localize ID="locQuota" runat="server" meta:resourcekey="locQuota" Text="Total Site Collections Created:"></asp:Localize>
|
||||||
|
|
||||||
|
<%--<wsp:Quota ID="siteCollectionsQuota1" runat="server" QuotaName="HostedSharePoint.Sites" />--%>
|
||||||
|
<wsp:QuotaViewer ID="siteCollectionsQuota" runat="server" QuotaTypeId="2" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,110 @@
|
||||||
|
// Copyright (c) 2015, 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 System.Collections.Generic;
|
||||||
|
using WebsitePanel.Providers.SharePoint;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class HostedSharePointEnterpriseSiteCollections : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.BindStats();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindStats()
|
||||||
|
{
|
||||||
|
// quota values
|
||||||
|
OrganizationStatistics stats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID);
|
||||||
|
OrganizationStatistics tenantStats = ES.Services.Organizations.GetOrganizationStatistics(PanelRequest.ItemID);
|
||||||
|
|
||||||
|
siteCollectionsQuota.QuotaUsedValue = stats.CreatedSharePointEnterpriseSiteCollections;
|
||||||
|
siteCollectionsQuota.QuotaValue = stats.AllocatedSharePointEnterpriseSiteCollections;
|
||||||
|
if (stats.AllocatedSharePointEnterpriseSiteCollections != -1) siteCollectionsQuota.QuotaAvailable = tenantStats.AllocatedSharePointEnterpriseSiteCollections - tenantStats.CreatedSharePointEnterpriseSiteCollections;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnCreateSiteCollection_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "sharepoint_enterprise_edit_sitecollection", "SpaceID=" + PanelSecurity.PackageId.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetSiteCollectionEditUrl(string siteCollectionId)
|
||||||
|
{
|
||||||
|
return EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "sharepoint_enterprise_edit_sitecollection",
|
||||||
|
"SiteCollectionID=" + siteCollectionId,
|
||||||
|
"ItemID=" + PanelRequest.ItemID.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void odsSharePointEnterpriseSiteCollectionPaged_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Exception != null)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("HOSTEDSHAREPOINT_GET_SITECOLLECTIONS", e.Exception);
|
||||||
|
e.ExceptionHandled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void gvSiteCollections_RowCommand(object sender, GridViewCommandEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.CommandName == "DeleteItem")
|
||||||
|
{
|
||||||
|
int siteCollectionId = Utils.ParseInt(e.CommandArgument.ToString(), 0);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int result = ES.Services.HostedSharePointServersEnt.Enterprise_DeleteSiteCollection(siteCollectionId);
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
messageBox.ShowResultMessage(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
gvSiteCollections.DataBind();
|
||||||
|
this.BindStats();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("HOSTEDSHAREPOINT_DELETE_SITECOLLECTION", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,141 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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 HostedSharePointEnterpriseSiteCollections {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// asyncTasks control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCreateSiteCollection 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.Button btnCreateSiteCollection;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// SearchPanel 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 SearchPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locSearch 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.Localize locSearch;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlSearchColumn 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.DropDownList ddlSearchColumn;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtSearchValue 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.TextBox txtSearchValue;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cmdSearch 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.ImageButton cmdSearch;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// gvSiteCollections 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.GridView gvSiteCollections;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// odsSiteCollectionsPaged 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.ObjectDataSource odsSiteCollectionsPaged;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locQuota 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.Localize locQuota;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// siteCollectionsQuota control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaViewer siteCollectionsQuota;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="HostedSharePointEnterpriseStorageSettings.ascx.cs" Inherits="WebsitePanel.Portal.HostedSharePointEnterpriseStorageSettings" %>
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/SizeBox.ascx" TagName="SizeBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
||||||
|
<%@ Register src="../UserControls/QuotaEditor.ascx" tagname="QuotaEditor" tagprefix="uc1" %>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="ExchangeStorageConfig48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" ></asp:Localize>
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secStorageLimits" runat="server"
|
||||||
|
TargetControlID="StorageLimits" meta:resourcekey="secStorageLimits" >
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="StorageLimits" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel200" align="right"><asp:Localize ID="locMaxStorage" runat="server" meta:resourcekey="locMaxStorage" ></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<uc1:QuotaEditor QuotaTypeId="2" ID="maxStorageSettingsValue" runat="server" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel200" align="right"><asp:Localize ID="locWarningStorage" runat="server" meta:resourcekey="locWarningStorage" ></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<uc1:QuotaEditor QuotaTypeId="2" ID="warningValue" runat="server" />
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<asp:Button id="btnSave" runat="server" Text="Save Changes" CssClass="Button1" meta:resourcekey="btnSave"
|
||||||
|
ValidationGroup="EditStorageSettings" OnClick="btnSave_Click" ></asp:Button>
|
||||||
|
<asp:Button id="btnSaveApply" runat="server" Text="Save and Apply to All SiteCollections" CssClass="Button1" meta:resourcekey="btnSaveApply"
|
||||||
|
ValidationGroup="EditStorageSettings" OnClick="btnSaveApply_Click" ></asp:Button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,93 @@
|
||||||
|
// Copyright (c) 2015, 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 WebsitePanel.EnterpriseServer;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class HostedSharePointEnterpriseStorageSettings : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
warningValue.UnlimitedText = GetLocalizedString("WarningUnlimitedValue");
|
||||||
|
|
||||||
|
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
Organization org = ES.Services.Organizations.GetOrganization(PanelRequest.ItemID);
|
||||||
|
|
||||||
|
PackageContext cntx = ES.Services.Packages.GetPackageContext(PanelSecurity.PackageId);
|
||||||
|
foreach(QuotaValueInfo quota in cntx.QuotasArray)
|
||||||
|
{
|
||||||
|
if (quota.QuotaId == 551 /*Max storage quota*/)
|
||||||
|
{
|
||||||
|
maxStorageSettingsValue.ParentQuotaValue = quota.QuotaAllocatedValue;
|
||||||
|
warningValue.ParentQuotaValue = quota.QuotaAllocatedValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
maxStorageSettingsValue.QuotaValue = org.MaxSharePointEnterpriseStorage;
|
||||||
|
warningValue.QuotaValue = org.WarningSharePointEnterpriseStorage;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Save(bool apply)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int res = ES.Services.HostedSharePointServersEnt.Enterprise_SetStorageSettings(PanelRequest.ItemID, maxStorageSettingsValue.QuotaValue,
|
||||||
|
warningValue.QuotaValue,
|
||||||
|
apply);
|
||||||
|
if (res < 0)
|
||||||
|
{
|
||||||
|
messageBox.ShowResultMessage(res);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
messageBox.ShowSuccessMessage("HOSTED_SHAREPOINT_UPDATE_QUOTAS");
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("HOSTED_SHAREPOINT_UPDATE_QUOTAS");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnSave_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Save(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnSaveApply_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Save(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,114 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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 HostedSharePointEnterpriseStorageSettings {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secStorageLimits control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secStorageLimits;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// StorageLimits 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 StorageLimits;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locMaxStorage 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.Localize locMaxStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// maxStorageSettingsValue control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor maxStorageSettingsValue;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locWarningStorage 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.Localize locWarningStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// warningValue control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor warningValue;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnSave 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.Button btnSave;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnSaveApply 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.Button btnSaveApply;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="HostedSharePointEnterpriseStorageUsage.ascx.cs" Inherits="WebsitePanel.Portal.HostedSharePointEnterpriseStorageUsage" %>
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/SizeBox.ascx" TagName="SizeBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="ExchangeStorageConfig48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Storage Usage"></asp:Localize>
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secSiteCollectionsReport" runat="server"
|
||||||
|
TargetControlID="siteCollectionsReport" meta:resourcekey="secSiteCollectionsReport" Text="Site Collections">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="siteCollectionsReport" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<asp:GridView ID="gvStorageUsage" runat="server" AutoGenerateColumns="False" meta:resourcekey="gvStorageUsage"
|
||||||
|
Width="100%" EmptyDataText="gvSiteCollections" CssSelectorClass="NormalGridView">
|
||||||
|
<Columns>
|
||||||
|
<asp:BoundField meta:resourcekey="gvSiteCollectionName" DataField="Url" />
|
||||||
|
<asp:BoundField meta:resourcekey="gvSiteCollectionSize" DataField="DiskSpace" />
|
||||||
|
</Columns>
|
||||||
|
</asp:GridView>
|
||||||
|
<br />
|
||||||
|
<table cellpadding="2">
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150"><asp:Localize ID="locTotalboxItems" runat="server" meta:resourcekey="locTotalMailboxItems" ></asp:Localize></td>
|
||||||
|
<td><asp:Label ID="lblTotalItems" runat="server" CssClass="NormalBold">177</asp:Label></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150"><asp:Localize ID="locTotalMailboxesSize" runat="server" meta:resourcekey="locTotalMailboxesSize" ></asp:Localize></td>
|
||||||
|
<td><asp:Label ID="lblTotalSize" runat="server" CssClass="NormalBold">100</asp:Label></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<asp:Button id="btnRecalculateDiscSpace" runat="server" Text="Recalculate Disk Space" CssClass="Button1" meta:resourcekey="btnRecalculateDiscSpace" OnClick="btnRecalculateDiscSpace_Click" ></asp:Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,94 @@
|
||||||
|
// Copyright (c) 2015, 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 WebsitePanel.Providers.SharePoint;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class HostedSharePointEnterpriseStorageUsage : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
BindGrid();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnRecalculateDiscSpace_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
BindGrid();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindGrid()
|
||||||
|
{
|
||||||
|
int errorCode;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SharePointEnterpriseSiteDiskSpace[] sharePointEnterpriseSiteDiskSpace =
|
||||||
|
ES.Services.HostedSharePointServersEnt.Enterprise_CalculateSharePointSitesDiskSpace(PanelRequest.ItemID,
|
||||||
|
out errorCode);
|
||||||
|
|
||||||
|
|
||||||
|
if (errorCode < 0)
|
||||||
|
{
|
||||||
|
messageBox.ShowResultMessage(errorCode);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sharePointEnterpriseSiteDiskSpace != null && sharePointEnterpriseSiteDiskSpace.Length == 1 && string.IsNullOrEmpty(sharePointEnterpriseSiteDiskSpace[0].Url))
|
||||||
|
{
|
||||||
|
gvStorageUsage.DataSource = null;
|
||||||
|
gvStorageUsage.DataBind();
|
||||||
|
lblTotalItems.Text = "0";
|
||||||
|
lblTotalSize.Text = "0";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
gvStorageUsage.DataSource = sharePointEnterpriseSiteDiskSpace;
|
||||||
|
gvStorageUsage.DataBind();
|
||||||
|
|
||||||
|
if (sharePointEnterpriseSiteDiskSpace != null)
|
||||||
|
{
|
||||||
|
lblTotalItems.Text = sharePointEnterpriseSiteDiskSpace.Length.ToString();
|
||||||
|
|
||||||
|
long total = 0;
|
||||||
|
foreach (SharePointEnterpriseSiteDiskSpace current in sharePointEnterpriseSiteDiskSpace)
|
||||||
|
{
|
||||||
|
total += current.DiskSpace;
|
||||||
|
}
|
||||||
|
|
||||||
|
lblTotalSize.Text = total.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("HOSTED_SHAREPOINT_RECALCULATE_SIZE", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,114 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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 HostedSharePointEnterpriseStorageUsage {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secSiteCollectionsReport control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secSiteCollectionsReport;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// siteCollectionsReport 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 siteCollectionsReport;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// gvStorageUsage 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.GridView gvStorageUsage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTotalboxItems 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.Localize locTotalboxItems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblTotalItems 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 lblTotalItems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTotalMailboxesSize 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.Localize locTotalMailboxesSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblTotalSize 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 lblTotalSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnRecalculateDiscSpace 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.Button btnRecalculateDiscSpace;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,101 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" Codebehind="HostedSharePointRestoreSiteCollection.ascx.cs"
|
||||||
|
Inherits="WebsitePanel.Portal.HostedSharePointRestoreSiteCollection" %>
|
||||||
|
<%@ Register Src="../UserControls/FileLookup.ascx" TagName="FileLookup" TagPrefix="uc1" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
6
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="SharePointSiteCollection48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="SharePoint Site Collections"></asp:Localize>
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
<table cellspacing="0" cellpadding="5" width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="Huge" colspan="2">
|
||||||
|
<asp:Literal ID="litSiteCollectionName" runat="server"></asp:Literal></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="SubHead" valign="top" nowrap width="200">
|
||||||
|
<asp:Label ID="lblRestoreFrom" runat="server" meta:resourcekey="lblRestoreFrom" Text="Restore From:"></asp:Label></td>
|
||||||
|
<td class="normal" width="100%">
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:RadioButton ID="radioUpload" meta:resourcekey="radioUpload" Checked="True" GroupName="media"
|
||||||
|
Text="Uploaded File" runat="server" AutoPostBack="True" OnCheckedChanged="radioUpload_CheckedChanged">
|
||||||
|
</asp:RadioButton></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Normal">
|
||||||
|
<asp:RadioButton ID="radioFile" meta:resourcekey="radioFile" GroupName="media" Text="Hosting Space File"
|
||||||
|
runat="server" AutoPostBack="True" OnCheckedChanged="radioUpload_CheckedChanged">
|
||||||
|
</asp:RadioButton></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Normal" id="cellUploadFile" runat="server">
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:FileUpload ID="uploadFile" runat="server" Width="300px" /></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Small" nowrap>
|
||||||
|
<asp:Label ID="lblAllowedFiles1" runat="server" meta:resourcekey="lblAllowedFiles"
|
||||||
|
Text=".ZIP, .BAK files are allowed"></asp:Label></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Normal" id="cellFile" runat="server">
|
||||||
|
<table width="100%">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<uc1:FileLookup ID="fileLookup" runat="server" Width="300" IncludeFiles="true" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="Small" nowrap>
|
||||||
|
<asp:Label ID="lblAllowedFiles2" runat="server" meta:resourcekey="lblAllowedFiles"
|
||||||
|
Text=".ZIP, .BAK files are allowed"></asp:Label></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<asp:Button ID="btnRestore" runat="server" meta:resourcekey="btnRestore" CssClass="Button1"
|
||||||
|
Text="Restore" OnClick="btnRestore_Click" OnClientClick="ShowProgressDialog('Restoring site collection...');"/>
|
||||||
|
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel" CssClass="Button1"
|
||||||
|
CausesValidation="false" Text="Cancel" OnClick="btnCancel_Click" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,176 @@
|
||||||
|
// Copyright (c) 2015, 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.IO;
|
||||||
|
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.Providers.SharePoint;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class HostedSharePointRestoreSiteCollection : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
private int OrganizationId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return PanelRequest.GetInt("ItemID");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int SiteCollectionId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return PanelRequest.GetInt("SiteCollectionID");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
BindSite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindSite()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SharePointSiteCollection siteCollection = ES.Services.HostedSharePointServers.GetSiteCollection(this.SiteCollectionId);
|
||||||
|
litSiteCollectionName.Text = siteCollection.PhysicalAddress;
|
||||||
|
fileLookup.SelectedFile = String.Empty;
|
||||||
|
fileLookup.PackageId = siteCollection.PackageId;
|
||||||
|
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("SHAREPOINT_GET_SITE", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ToggleControls()
|
||||||
|
{
|
||||||
|
cellFile.Visible = radioFile.Checked;
|
||||||
|
cellUploadFile.Visible = radioUpload.Checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RestoreSiteCollection()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
string uploadedFile = null;
|
||||||
|
string packageFile = null;
|
||||||
|
|
||||||
|
if (radioUpload.Checked)
|
||||||
|
{
|
||||||
|
if (uploadFile.PostedFile.FileName != "")
|
||||||
|
{
|
||||||
|
Stream stream = uploadFile.PostedFile.InputStream;
|
||||||
|
|
||||||
|
// save uploaded file
|
||||||
|
int FILE_BUFFER_LENGTH = 5000000;
|
||||||
|
string path = null;
|
||||||
|
int readBytes = 0;
|
||||||
|
string fileName = Path.GetFileName(uploadFile.PostedFile.FileName);
|
||||||
|
|
||||||
|
int offset = 0;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
// read input stream
|
||||||
|
byte[] buffer = new byte[FILE_BUFFER_LENGTH];
|
||||||
|
readBytes = stream.Read(buffer, 0, FILE_BUFFER_LENGTH);
|
||||||
|
|
||||||
|
if (readBytes < FILE_BUFFER_LENGTH)
|
||||||
|
Array.Resize<byte>(ref buffer, readBytes);
|
||||||
|
|
||||||
|
// write remote backup file
|
||||||
|
string tempPath = ES.Services.HostedSharePointServers.AppendBackupBinaryChunk(this.SiteCollectionId, fileName, path, buffer);
|
||||||
|
if (path == null)
|
||||||
|
path = tempPath;
|
||||||
|
|
||||||
|
offset += FILE_BUFFER_LENGTH;
|
||||||
|
}
|
||||||
|
while (readBytes == FILE_BUFFER_LENGTH);
|
||||||
|
|
||||||
|
uploadedFile = path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// package files
|
||||||
|
packageFile = fileLookup.SelectedFile;
|
||||||
|
}
|
||||||
|
|
||||||
|
int result = ES.Services.HostedSharePointServers.RestoreSiteCollection(this.SiteCollectionId, uploadedFile, packageFile);
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
ShowResultMessage(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
ShowErrorMessage("SHAREPOINT_RESTORE_SITE", ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RedirectBack();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnRestore_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
RestoreSiteCollection();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnCancel_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
RedirectBack();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RedirectBack()
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "sharepoint_edit_sitecollection", "SiteCollectionID=" + this.SiteCollectionId, "ItemID=" + PanelRequest.ItemID.ToString()));
|
||||||
|
}
|
||||||
|
protected void radioUpload_CheckedChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ToggleControls();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,159 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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 HostedSharePointRestoreSiteCollection {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// asyncTasks control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// litSiteCollectionName 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.Literal litSiteCollectionName;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblRestoreFrom 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 lblRestoreFrom;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// radioUpload 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.RadioButton radioUpload;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// radioFile 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.RadioButton radioFile;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cellUploadFile control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTableCell cellUploadFile;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// uploadFile 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.FileUpload uploadFile;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblAllowedFiles1 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 lblAllowedFiles1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cellFile control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.HtmlControls.HtmlTableCell cellFile;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// fileLookup control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.FileLookup fileLookup;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblAllowedFiles2 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 lblAllowedFiles2;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnRestore 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.Button btnRestore;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCancel 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.Button btnCancel;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,92 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" Codebehind="HostedSharePointSiteCollections.ascx.cs"
|
||||||
|
Inherits="WebsitePanel.Portal.HostedSharePointSiteCollections" %>
|
||||||
|
<%@ Register Src="../UserControls/SpaceServiceItems.ascx" TagName="SpaceServiceItems"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/QuotaViewer.ascx" TagName="QuotaViewer" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/Quota.ascx" TagName="Quota" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server" />
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
function confirmation()
|
||||||
|
{
|
||||||
|
if (!confirm("Are you sure you want to delete Site Collection?")) return false; else ShowProgressDialog('Deleting SharePoint site collection...');
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="SharePointSiteCollection48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="SharePoint Site Collections"></asp:Localize>
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
<div class="FormButtonsBarClean">
|
||||||
|
<div class="FormButtonsBarCleanLeft">
|
||||||
|
<asp:Button ID="btnCreateSiteCollection" runat="server" meta:resourcekey="btnCreateSiteCollection"
|
||||||
|
Text="Create New Site Collection" CssClass="Button1" OnClick="btnCreateSiteCollection_Click" />
|
||||||
|
</div>
|
||||||
|
<div class="FormButtonsBarCleanRight">
|
||||||
|
<asp:Panel ID="SearchPanel" runat="server" DefaultButton="cmdSearch">
|
||||||
|
<asp:Localize ID="locSearch" runat="server" meta:resourcekey="locSearch" Visible="false"></asp:Localize>
|
||||||
|
<asp:DropDownList ID="ddlSearchColumn" runat="server" CssClass="NormalTextBox">
|
||||||
|
<asp:ListItem Value="ItemName" meta:resourcekey="ddlSearchColumnUrl">Url</asp:ListItem>
|
||||||
|
</asp:DropDownList><asp:TextBox ID="txtSearchValue" runat="server" CssClass="NormalTextBox"
|
||||||
|
Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" runat="server" meta:resourcekey="cmdSearch"
|
||||||
|
SkinID="SearchButton" CausesValidation="false" />
|
||||||
|
</asp:Panel>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<asp:GridView ID="gvSiteCollections" runat="server" AutoGenerateColumns="False" EnableViewState="true"
|
||||||
|
Width="100%" EmptyDataText="gvSiteCollection" CssSelectorClass="NormalGridView" OnRowCommand="gvSiteCollections_RowCommand"
|
||||||
|
AllowPaging="True" AllowSorting="True" DataSourceID="odsSiteCollectionsPaged">
|
||||||
|
<Columns>
|
||||||
|
<asp:TemplateField meta:resourcekey="gvSiteCollectionUrl" SortExpression="ItemName">
|
||||||
|
<ItemStyle Width="50%"></ItemStyle>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:HyperLink ID="lnk1" runat="server" NavigateUrl='<%# GetSiteCollectionEditUrl(Eval("Id").ToString()) %>'>
|
||||||
|
<%# Eval("PhysicalAddress") %>
|
||||||
|
</asp:HyperLink>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:BoundField meta:resourcekey="gvOwnerDisplayName" DataField="OwnerName" ItemStyle-Width="50%" />
|
||||||
|
<asp:TemplateField>
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:ImageButton ID="cmdDelete" runat="server" Text="Delete" SkinID="ExchangeDelete"
|
||||||
|
CommandName="DeleteItem" CommandArgument='<%# Eval("Id") %>'
|
||||||
|
OnClientClick="confirmation()"></asp:ImageButton>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
</Columns>
|
||||||
|
</asp:GridView>
|
||||||
|
<asp:ObjectDataSource ID="odsSiteCollectionsPaged" runat="server" EnablePaging="True" SelectCountMethod="GetSharePointSiteCollectionPagedCount"
|
||||||
|
SelectMethod="GetSharePointSiteCollectionPaged" SortParameterName="sortColumn" TypeName="WebsitePanel.Portal.HostedSharePointSiteCollectionsHelper"
|
||||||
|
OnSelected="odsSharePointSiteCollectionPaged_Selected">
|
||||||
|
<SelectParameters>
|
||||||
|
<asp:QueryStringParameter Name="packageId" QueryStringField="SpaceID" DefaultValue="-1" />
|
||||||
|
<asp:QueryStringParameter Name="organizationId" QueryStringField="ItemID" DefaultValue="0" />
|
||||||
|
<asp:ControlParameter Name="filterColumn" ControlID="ddlSearchColumn" PropertyName="SelectedValue" />
|
||||||
|
<asp:ControlParameter Name="filterValue" ControlID="txtSearchValue" PropertyName="Text" />
|
||||||
|
</SelectParameters>
|
||||||
|
</asp:ObjectDataSource>
|
||||||
|
<br />
|
||||||
|
<asp:Localize ID="locQuota" runat="server" meta:resourcekey="locQuota" Text="Total Site Collections Created:"></asp:Localize>
|
||||||
|
|
||||||
|
<%--<wsp:Quota ID="siteCollectionsQuota1" runat="server" QuotaName="HostedSharePoint.Sites" />--%>
|
||||||
|
<wsp:QuotaViewer ID="siteCollectionsQuota" runat="server" QuotaTypeId="2" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,110 @@
|
||||||
|
// Copyright (c) 2015, 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 System.Collections.Generic;
|
||||||
|
using WebsitePanel.Providers.SharePoint;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class HostedSharePointSiteCollections : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
this.BindStats();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindStats()
|
||||||
|
{
|
||||||
|
// quota values
|
||||||
|
OrganizationStatistics stats = ES.Services.Organizations.GetOrganizationStatisticsByOrganization(PanelRequest.ItemID);
|
||||||
|
OrganizationStatistics tenantStats = ES.Services.Organizations.GetOrganizationStatistics(PanelRequest.ItemID);
|
||||||
|
|
||||||
|
siteCollectionsQuota.QuotaUsedValue = stats.CreatedSharePointSiteCollections;
|
||||||
|
siteCollectionsQuota.QuotaValue = stats.AllocatedSharePointSiteCollections;
|
||||||
|
if (stats.AllocatedSharePointSiteCollections != -1) siteCollectionsQuota.QuotaAvailable = tenantStats.AllocatedSharePointSiteCollections - tenantStats.CreatedSharePointSiteCollections;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnCreateSiteCollection_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Response.Redirect(EditUrl("ItemID", PanelRequest.ItemID.ToString(), "sharepoint_edit_sitecollection", "SpaceID=" + PanelSecurity.PackageId.ToString()));
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetSiteCollectionEditUrl(string siteCollectionId)
|
||||||
|
{
|
||||||
|
return EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "sharepoint_edit_sitecollection",
|
||||||
|
"SiteCollectionID=" + siteCollectionId,
|
||||||
|
"ItemID=" + PanelRequest.ItemID.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void odsSharePointSiteCollectionPaged_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Exception != null)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("HOSTEDSHAREPOINT_GET_SITECOLLECTIONS", e.Exception);
|
||||||
|
e.ExceptionHandled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void gvSiteCollections_RowCommand(object sender, GridViewCommandEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.CommandName == "DeleteItem")
|
||||||
|
{
|
||||||
|
int siteCollectionId = Utils.ParseInt(e.CommandArgument.ToString(), 0);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int result = ES.Services.HostedSharePointServers.DeleteSiteCollection(siteCollectionId);
|
||||||
|
if (result < 0)
|
||||||
|
{
|
||||||
|
messageBox.ShowResultMessage(result);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
gvSiteCollections.DataBind();
|
||||||
|
this.BindStats();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("HOSTEDSHAREPOINT_DELETE_SITECOLLECTION", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,141 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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 HostedSharePointSiteCollections {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// asyncTasks control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.EnableAsyncTasksSupport asyncTasks;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnCreateSiteCollection 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.Button btnCreateSiteCollection;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// SearchPanel 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 SearchPanel;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locSearch 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.Localize locSearch;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddlSearchColumn 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.DropDownList ddlSearchColumn;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// txtSearchValue 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.TextBox txtSearchValue;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// cmdSearch 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.ImageButton cmdSearch;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// gvSiteCollections 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.GridView gvSiteCollections;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// odsSiteCollectionsPaged 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.ObjectDataSource odsSiteCollectionsPaged;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locQuota 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.Localize locQuota;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// siteCollectionsQuota control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaViewer siteCollectionsQuota;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="HostedSharePointStorageSettings.ascx.cs" Inherits="WebsitePanel.Portal.HostedSharePointStorageSettings" %>
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/SizeBox.ascx" TagName="SizeBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
||||||
|
<%@ Register src="../UserControls/QuotaEditor.ascx" tagname="QuotaEditor" tagprefix="uc1" %>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="ExchangeStorageConfig48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" ></asp:Localize>
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secStorageLimits" runat="server"
|
||||||
|
TargetControlID="StorageLimits" meta:resourcekey="secStorageLimits" >
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="StorageLimits" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel200" align="right"><asp:Localize ID="locMaxStorage" runat="server" meta:resourcekey="locMaxStorage" ></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<uc1:QuotaEditor QuotaTypeId="2" ID="maxStorageSettingsValue" runat="server" />
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel200" align="right"><asp:Localize ID="locWarningStorage" runat="server" meta:resourcekey="locWarningStorage" ></asp:Localize></td>
|
||||||
|
<td>
|
||||||
|
<uc1:QuotaEditor QuotaTypeId="2" ID="warningValue" runat="server" />
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<asp:Button id="btnSave" runat="server" Text="Save Changes" CssClass="Button1" meta:resourcekey="btnSave"
|
||||||
|
ValidationGroup="EditStorageSettings" OnClick="btnSave_Click" ></asp:Button>
|
||||||
|
<asp:Button id="btnSaveApply" runat="server" Text="Save and Apply to All SiteCollections" CssClass="Button1" meta:resourcekey="btnSaveApply"
|
||||||
|
ValidationGroup="EditStorageSettings" OnClick="btnSaveApply_Click" ></asp:Button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,93 @@
|
||||||
|
// Copyright (c) 2015, 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 WebsitePanel.EnterpriseServer;
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class HostedSharePointStorageSettings : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
warningValue.UnlimitedText = GetLocalizedString("WarningUnlimitedValue");
|
||||||
|
|
||||||
|
|
||||||
|
if (!IsPostBack)
|
||||||
|
{
|
||||||
|
Organization org = ES.Services.Organizations.GetOrganization(PanelRequest.ItemID);
|
||||||
|
|
||||||
|
PackageContext cntx = ES.Services.Packages.GetPackageContext(PanelSecurity.PackageId);
|
||||||
|
foreach(QuotaValueInfo quota in cntx.QuotasArray)
|
||||||
|
{
|
||||||
|
if (quota.QuotaId == 208 /*Max storage quota*/)
|
||||||
|
{
|
||||||
|
maxStorageSettingsValue.ParentQuotaValue = quota.QuotaAllocatedValue;
|
||||||
|
warningValue.ParentQuotaValue = quota.QuotaAllocatedValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
maxStorageSettingsValue.QuotaValue = org.MaxSharePointStorage;
|
||||||
|
warningValue.QuotaValue = org.WarningSharePointStorage;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Save(bool apply)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int res = ES.Services.HostedSharePointServers.SetStorageSettings(PanelRequest.ItemID, maxStorageSettingsValue.QuotaValue,
|
||||||
|
warningValue.QuotaValue,
|
||||||
|
apply);
|
||||||
|
if (res < 0)
|
||||||
|
{
|
||||||
|
messageBox.ShowResultMessage(res);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
messageBox.ShowSuccessMessage("HOSTED_SHAREPOINT_UPDATE_QUOTAS");
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("HOSTED_SHAREPOINT_UPDATE_QUOTAS");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnSave_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Save(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnSaveApply_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Save(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,114 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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 HostedSharePointStorageSettings {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secStorageLimits control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secStorageLimits;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// StorageLimits 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 StorageLimits;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locMaxStorage 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.Localize locMaxStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// maxStorageSettingsValue control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor maxStorageSettingsValue;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locWarningStorage 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.Localize locWarningStorage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// warningValue control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.QuotaEditor warningValue;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnSave 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.Button btnSave;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnSaveApply 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.Button btnSaveApply;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="HostedSharePointStorageUsage.ascx.cs" Inherits="WebsitePanel.Portal.HostedSharePointStorageUsage" %>
|
||||||
|
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/SizeBox.ascx" TagName="SizeBox" TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox"
|
||||||
|
TagPrefix="wsp" %>
|
||||||
|
<%@ Register Src="../ExchangeServer/UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<div id="ExchangeContainer">
|
||||||
|
<div class="Module">
|
||||||
|
<div class="Left">
|
||||||
|
</div>
|
||||||
|
<div class="Content">
|
||||||
|
<div class="Center">
|
||||||
|
<div class="Title">
|
||||||
|
<asp:Image ID="Image1" SkinID="ExchangeStorageConfig48" runat="server" />
|
||||||
|
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Storage Usage"></asp:Localize>
|
||||||
|
</div>
|
||||||
|
<div class="FormBody">
|
||||||
|
<wsp:SimpleMessageBox id="messageBox" runat="server" />
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secSiteCollectionsReport" runat="server"
|
||||||
|
TargetControlID="siteCollectionsReport" meta:resourcekey="secSiteCollectionsReport" Text="Site Collections">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="siteCollectionsReport" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<asp:GridView ID="gvStorageUsage" runat="server" AutoGenerateColumns="False" meta:resourcekey="gvStorageUsage"
|
||||||
|
Width="100%" EmptyDataText="gvSiteCollections" CssSelectorClass="NormalGridView">
|
||||||
|
<Columns>
|
||||||
|
<asp:BoundField meta:resourcekey="gvSiteCollectionName" DataField="Url" />
|
||||||
|
<asp:BoundField meta:resourcekey="gvSiteCollectionSize" DataField="DiskSpace" />
|
||||||
|
</Columns>
|
||||||
|
</asp:GridView>
|
||||||
|
<br />
|
||||||
|
<table cellpadding="2">
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150"><asp:Localize ID="locTotalboxItems" runat="server" meta:resourcekey="locTotalMailboxItems" ></asp:Localize></td>
|
||||||
|
<td><asp:Label ID="lblTotalItems" runat="server" CssClass="NormalBold">177</asp:Label></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150"><asp:Localize ID="locTotalMailboxesSize" runat="server" meta:resourcekey="locTotalMailboxesSize" ></asp:Localize></td>
|
||||||
|
<td><asp:Label ID="lblTotalSize" runat="server" CssClass="NormalBold">100</asp:Label></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="FormFooterClean">
|
||||||
|
<asp:Button id="btnRecalculateDiscSpace" runat="server" Text="Recalculate Disk Space" CssClass="Button1" meta:resourcekey="btnRecalculateDiscSpace" OnClick="btnRecalculateDiscSpace_Click" ></asp:Button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,94 @@
|
||||||
|
// Copyright (c) 2015, 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 WebsitePanel.Providers.SharePoint;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class HostedSharePointStorageUsage : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsPostBack)
|
||||||
|
BindGrid();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void btnRecalculateDiscSpace_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
BindGrid();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void BindGrid()
|
||||||
|
{
|
||||||
|
int errorCode;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
SharePointSiteDiskSpace[] sharePointSiteDiskSpace =
|
||||||
|
ES.Services.HostedSharePointServers.CalculateSharePointSitesDiskSpace(PanelRequest.ItemID,
|
||||||
|
out errorCode);
|
||||||
|
|
||||||
|
|
||||||
|
if (errorCode < 0)
|
||||||
|
{
|
||||||
|
messageBox.ShowResultMessage(errorCode);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sharePointSiteDiskSpace != null && sharePointSiteDiskSpace.Length == 1 && string.IsNullOrEmpty(sharePointSiteDiskSpace[0].Url))
|
||||||
|
{
|
||||||
|
gvStorageUsage.DataSource = null;
|
||||||
|
gvStorageUsage.DataBind();
|
||||||
|
lblTotalItems.Text = "0";
|
||||||
|
lblTotalSize.Text = "0";
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
gvStorageUsage.DataSource = sharePointSiteDiskSpace;
|
||||||
|
gvStorageUsage.DataBind();
|
||||||
|
|
||||||
|
if (sharePointSiteDiskSpace != null)
|
||||||
|
{
|
||||||
|
lblTotalItems.Text = sharePointSiteDiskSpace.Length.ToString();
|
||||||
|
|
||||||
|
long total = 0;
|
||||||
|
foreach (SharePointSiteDiskSpace current in sharePointSiteDiskSpace)
|
||||||
|
{
|
||||||
|
total += current.DiskSpace;
|
||||||
|
}
|
||||||
|
|
||||||
|
lblTotalSize.Text = total.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
messageBox.ShowErrorMessage("HOSTED_SHAREPOINT_RECALCULATE_SIZE", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,114 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <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 HostedSharePointStorageUsage {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Image1 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.Image Image1;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTitle 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.Localize locTitle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// messageBox control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.UserControls.SimpleMessageBox messageBox;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secSiteCollectionsReport control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secSiteCollectionsReport;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// siteCollectionsReport 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 siteCollectionsReport;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// gvStorageUsage 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.GridView gvStorageUsage;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTotalboxItems 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.Localize locTotalboxItems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblTotalItems 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 lblTotalItems;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTotalMailboxesSize 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.Localize locTotalMailboxesSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// lblTotalSize 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 lblTotalSize;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnRecalculateDiscSpace 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.Button btnRecalculateDiscSpace;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue