Initial project's source code check-in.

This commit is contained in:
ptsurbeleu 2011-07-13 16:07:32 -07:00
commit b03b0b373f
4573 changed files with 981205 additions and 0 deletions

View file

@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="VLanIDValidatorRange.ErrorMessage" xml:space="preserve">
<value>VLAN Network ID must be in range between 0 and 65535</value>
</data>
</root>

View file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 1.3
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">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the .NET Framework object]
</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.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:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<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" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</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>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View file

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;The form allows allocating of additional External IP addresses to this hosting space. These IP addresses are used to configure VM network adapter connected to External network.&lt;/p&gt;&lt;p&gt;VPS module is looking for free external IP addresses in "VM External Network" pool, so WebsitePanel administrator must make sure there are sufficient number of unallotted IP addresses in that pool.&lt;/p&gt;</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Allocate IP Addresses</value>
</data>
</root>

View file

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;Audit log displays the chronology of events for all VM located in the hosting space.&lt;/p&gt;&lt;p&gt;By default audit log displays all today's events. You may filter the log by date (day, week, month), severity, task and item name (VM host name).&lt;/p&gt;&lt;p&gt;To see task details click the link with task name in "Task" column.&lt;/p&gt;&lt;p&gt;To export log in CSV format click "Export Log" button.&lt;/p&gt;</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Audit Log</value>
</data>
</root>

View file

@ -0,0 +1,384 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnFinish.Text" xml:space="preserve">
<value>Create</value>
</data>
<data name="btnNext.Text" xml:space="preserve">
<value>Next &gt;</value>
</data>
<data name="btnPrevious.Text" xml:space="preserve">
<value>&lt; Back</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;&lt;b&gt;Welcome to VM Creation Wizard!&lt;/b&gt;&lt;/p&gt;&lt;p&gt;The wizard allows specifying parameters of new VM such as host name, operating system template, administrator password, External and Private (if allowed in the hosting plan) network parameters.&lt;/p&gt;&lt;p&gt;If e-mail address is specified in "Send summary letter to" then VPS summary information will be sent on that e-mail upon provisioning process completion.&lt;/p&gt;&lt;p&gt;After clicking "Create" button on the last step of the wizard the process of provisioning a new VM will be started. The process is asynchronous, so it's not necessary to wait until it's finished.&lt;/p&gt;</value>
</data>
<data name="stepConfig.Title" xml:space="preserve">
<value>Configuration</value>
</data>
<data name="stepExternalNetwork.Title" xml:space="preserve">
<value>External Network</value>
</data>
<data name="stepName.Title" xml:space="preserve">
<value>Name &amp; OS</value>
</data>
<data name="stepPrivateNetwork.Title" xml:space="preserve">
<value>Private Network</value>
</data>
<data name="stepSummary.Title" xml:space="preserve">
<value>Summary</value>
</data>
<data name="DomainValidator.ErrorMessage" xml:space="preserve">
<value>Enter domain name</value>
</data>
<data name="ExternalAddressesValidator.ErrorMessage" xml:space="preserve">
<value>Enter the number of external IP addresses</value>
</data>
<data name="HostnameValidator.ErrorMessage" xml:space="preserve">
<value>Enter host name</value>
</data>
<data name="PrivateAddressesValidator.ErrorMessage" xml:space="preserve">
<value>Enter the number of private IP addresses</value>
</data>
<data name="RequireHddValidator.ErrorMessage" xml:space="preserve">
<value>Enter the size of hard disk drive</value>
</data>
<data name="RequireRamValidator.ErrorMessage" xml:space="preserve">
<value>Enter amount of RAM allocated to new VPS</value>
</data>
<data name="SnapshotsValidator.ErrorMessage" xml:space="preserve">
<value>Enter the maximum number of snapshots</value>
</data>
<data name="SummaryEmailValidator.ErrorMessage" xml:space="preserve">
<value>Enter e-mail address to send summary letter</value>
</data>
<data name="chkBootFromCd.Text" xml:space="preserve">
<value>Boot from CD</value>
</data>
<data name="chkDvdInstalled.Text" xml:space="preserve">
<value>DVD drive installed</value>
</data>
<data name="chkExternalNetworkEnabled.Text" xml:space="preserve">
<value>External network enabled</value>
</data>
<data name="chkNumLock.Text" xml:space="preserve">
<value>"Num Lock" enabled</value>
</data>
<data name="chkPauseResume.Text" xml:space="preserve">
<value>Pause, Resume</value>
</data>
<data name="chkPrivateNetworkEnabled.Text" xml:space="preserve">
<value>Private network enabled</value>
</data>
<data name="chkReboot.Text" xml:space="preserve">
<value>Reboot</value>
</data>
<data name="chkReinstall.Text" xml:space="preserve">
<value>Re-install</value>
</data>
<data name="chkReset.Text" xml:space="preserve">
<value>Reset</value>
</data>
<data name="chkSendSummary.Text" xml:space="preserve">
<value>Send summary e-mail to:</value>
</data>
<data name="chkStartShutdown.Text" xml:space="preserve">
<value>Start, Turn off and Shutdown</value>
</data>
<data name="lblCpu.Text" xml:space="preserve">
<value>CPU:</value>
</data>
<data name="lblHdd.Text" xml:space="preserve">
<value>HDD:</value>
</data>
<data name="lblRam.Text" xml:space="preserve">
<value>RAM:</value>
</data>
<data name="locAdminPassword.Text" xml:space="preserve">
<value>Administrator password:</value>
</data>
<data name="locBootFromCd.Text" xml:space="preserve">
<value>Boot from CD:</value>
</data>
<data name="locConfigStepTitle.Text" xml:space="preserve">
<value>Configuration</value>
</data>
<data name="locCores.Text" xml:space="preserve">
<value>cores</value>
</data>
<data name="locCpu.Text" xml:space="preserve">
<value>CPU cores:</value>
</data>
<data name="locDvdInstalled.Text" xml:space="preserve">
<value>DVD Drive installed:</value>
</data>
<data name="locExternalAddresses.Text" xml:space="preserve">
<value>Number of IP addresses:</value>
</data>
<data name="locExternalAddressesList.Text" xml:space="preserve">
<value>IP addresses list:</value>
</data>
<data name="locExternalAddressesNumber.Text" xml:space="preserve">
<value>Number of IP addresses:</value>
</data>
<data name="locExternalNetwork.Text" xml:space="preserve">
<value>External Network</value>
</data>
<data name="locExternalNetworkEnabled.Text" xml:space="preserve">
<value>External network enabled:</value>
</data>
<data name="locGB.Text" xml:space="preserve">
<value>GB</value>
</data>
<data name="locHdd.Text" xml:space="preserve">
<value>Hard disk size, GB:</value>
</data>
<data name="locHoldCtrl.Text" xml:space="preserve">
<value>* Hold CTRL key to select multiple addresses</value>
</data>
<data name="locHostname.Text" xml:space="preserve">
<value>Host name:</value>
</data>
<data name="locMB.Text" xml:space="preserve">
<value>MB</value>
</data>
<data name="locNameStepTitle.Text" xml:space="preserve">
<value>Name and Operating System</value>
</data>
<data name="locNumLock.Text" xml:space="preserve">
<value>"Num Lock" enabled:</value>
</data>
<data name="locOnePerLine.Text" xml:space="preserve">
<value>* Type one IP address per line</value>
</data>
<data name="locOperatingSystem.Text" xml:space="preserve">
<value>Operating system:</value>
</data>
<data name="locPauseResumeAllowed.Text" xml:space="preserve">
<value>Pause, resume allowed:</value>
</data>
<data name="locPrivateAddresses.Text" xml:space="preserve">
<value>Number of IP addresses:</value>
</data>
<data name="locPrivateAddressesList.Text" xml:space="preserve">
<value>IP addresses list:</value>
</data>
<data name="locPrivateAddressesNumber.Text" xml:space="preserve">
<value>Number of IP addresses:</value>
</data>
<data name="locPrivateNetwork.Text" xml:space="preserve">
<value>Private Network</value>
</data>
<data name="locPrivateNetworkEnabled.Text" xml:space="preserve">
<value>Private network enabled:</value>
</data>
<data name="locPrivateNetworkFormat.Text" xml:space="preserve">
<value>Network addresses format:</value>
</data>
<data name="locPrivateSubnetMask.Text" xml:space="preserve">
<value>Subnet mask:</value>
</data>
<data name="locRam.Text" xml:space="preserve">
<value>RAM, MB:</value>
</data>
<data name="locRebootAllowed.Text" xml:space="preserve">
<value>Reboot allowed:</value>
</data>
<data name="locReinstallAllowed.Text" xml:space="preserve">
<value>Re-install allowed:</value>
</data>
<data name="locResetAllowed.Text" xml:space="preserve">
<value>Reset allowed:</value>
</data>
<data name="locSnapshots.Text" xml:space="preserve">
<value>Number of snapshots:</value>
</data>
<data name="locStartShutdownAllowed.Text" xml:space="preserve">
<value>Start, turn off and shutdown allowed:</value>
</data>
<data name="locSummary.Text" xml:space="preserve">
<value>Summary</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Create New VM</value>
</data>
<data name="radioExternalRandom.Text" xml:space="preserve">
<value>Randomly select IP addresses from the pool</value>
</data>
<data name="radioExternalSelected.Text" xml:space="preserve">
<value>Select IP addresses from the list</value>
</data>
<data name="radioPrivateRandom.Text" xml:space="preserve">
<value>Randomly select next available IP addresses to the addresses format</value>
</data>
<data name="radioPrivateSelected.Text" xml:space="preserve">
<value>Assign specified IP addresses</value>
</data>
<data name="secActions.Text" xml:space="preserve">
<value>Allowed actions</value>
</data>
<data name="secBios.Text" xml:space="preserve">
<value>BIOS</value>
</data>
<data name="secDvd.Text" xml:space="preserve">
<value>DVD</value>
</data>
<data name="secResources.Text" xml:space="preserve">
<value>Resources</value>
</data>
<data name="secSnapshots.Text" xml:space="preserve">
<value>Snapshots</value>
</data>
<data name="OperatingSystemValidator.ErrorMessage" xml:space="preserve">
<value>Select operating system template</value>
</data>
<data name="SelectOsTemplate.Text" xml:space="preserve">
<value>&lt;Select OS template&gt;</value>
</data>
<data name="btnFinish.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Creating Virtual Server...');</value>
</data>
<data name="litMaxExternalAddresses.Text" xml:space="preserve">
<value>({0} max)</value>
</data>
<data name="litMaxPrivateAddresses.Text" xml:space="preserve">
<value>({0} max)</value>
</data>
<data name="locNotEnoughExternalAddresses.Text" xml:space="preserve">
<value>The pool of available external IP addresses is empty. All IP addresses allocated to the current hosting space are assigned to existing virtual servers. More external IP addresses could be allocated by the host.</value>
</data>
<data name="valCorrectHostname.ErrorMessage" xml:space="preserve">
<value>Enter correct host name, for example "vps01"</value>
</data>
<data name="valNewDomainFormat.ErrorMessage" xml:space="preserve">
<value>Enter correct domain name, for example "mydomain.com"</value>
</data>
<data name="VMName" xml:space="preserve">
<value>VM Name:</value>
</data>
<data name="vmNameValidator" xml:space="preserve">
<value>Please enter VM Name</value>
</data>
<data name="ExternalNetworkValidator.ErrorMessage" xml:space="preserve">
<value>Please choice the external virtual network name</value>
</data>
<data name="PrivateNetworkValidator.ErrorMessage" xml:space="preserve">
<value>Please choice the private virtual network name</value>
</data>
</root>

View file

@ -0,0 +1,135 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;The form displays the list of IP addresses from "VM External Network" pool allocated to the hosting space. Alternatively, this form could be considered as a "map" of external IP addresses and their assignments to virtual machines.&lt;/p&gt;&lt;p&gt;If any IP has already assigned to some VM then there will be VM host name in the "Item name" column.&lt;/p&gt;&lt;p&gt;If there are lot of VPS in the hosting space you can easily search them by their external IP.&lt;/p&gt;&lt;p&gt;"Number of IP addresses" quota shows the maximum number of external IP addresses that could be allocated to this space.&lt;/p&gt;</value>
</data>
<data name="locBandwidthQuota.Text" xml:space="preserve">
<value>Bandwidth, GB:</value>
</data>
<data name="locIPQuota.Text" xml:space="preserve">
<value>Number of IP Addresses:</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>External Network</value>
</data>
<data name="secQuotas.Text" xml:space="preserve">
<value>Quotas</value>
</data>
</root>

View file

@ -0,0 +1,159 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnCancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="btnCreate.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Creating Virtual Machine...');</value>
</data>
<data name="btnCreate.Text" xml:space="preserve">
<value>Create</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;This form allows сreation of VM based on existing VM.&lt;/p&gt;</value>
</data>
<data name="locDescription.Text" xml:space="preserve">
<value>This wizard will create new VM.</value>
</data>
<data name="locSubTitle.Text" xml:space="preserve">
<value>Create VM</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Create VM</value>
</data>
<data name="locOperatingSystem.Text" xml:space="preserve">
<value>Virtual Machine:</value>
</data>
<data name="OperatingSystemValidator" xml:space="preserve">
<value>Please select VM</value>
</data>
<data name="SelectVM.Text" xml:space="preserve">
<value>Please select VM</value>
</data>
<data name="VMName.Text" xml:space="preserve">
<value>VM Name:</value>
</data>
<data name="vmNameValidator" xml:space="preserve">
<value>Please Enter new VM name</value>
</data>
<data name="locWarningCloning.Text" xml:space="preserve">
<value>VM will be stopped before cloning, are you Ok with this?</value>
</data>
</root>

View file

@ -0,0 +1,189 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnCreate.Text" xml:space="preserve">
<value>Create VM</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;The form displays the list of Virtual Mashines created in the hosting space.&lt;/p&gt;&lt;p&gt;In terms of WebsitePanel VM module hosting space could be compared to the Virtual Dedicated Center (VDC). You can see VPS bindings to external and private IP addresses as well as search VM by these fields.&lt;/p&gt;&lt;p&gt;Quotas in the bottom of the forms show the total amount of computer resources available for VPS.&lt;/p&gt;</value>
</data>
<data name="gvServers.Empty" xml:space="preserve">
<value>No VM have been created. To create a new VPS click "Create VM" button.</value>
</data>
<data name="gvServersExternalIP.HeaderText" xml:space="preserve">
<value>External IP</value>
</data>
<data name="gvServersName.HeaderText" xml:space="preserve">
<value>Host name</value>
</data>
<data name="gvServersPrivateIP.HeaderText" xml:space="preserve">
<value>Private IP</value>
</data>
<data name="gvServersSpace.HeaderText" xml:space="preserve">
<value>Space</value>
</data>
<data name="gvServersUser.HeaderText" xml:space="preserve">
<value>User</value>
</data>
<data name="SearchField.ExternalIP" xml:space="preserve">
<value>External IP</value>
</data>
<data name="SearchField.IPAddress" xml:space="preserve">
<value>Private IP</value>
</data>
<data name="SearchField.ItemName" xml:space="preserve">
<value>VM Name</value>
</data>
<data name="SearchField.Username" xml:space="preserve">
<value>User Name</value>
</data>
<data name="cmdDelete.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="locHddQuota.Text" xml:space="preserve">
<value>HDD, GB:</value>
</data>
<data name="locRamQuota.Text" xml:space="preserve">
<value>RAM, MB:</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Virtual Private Cloud</value>
</data>
<data name="locVpsQuota.Text" xml:space="preserve">
<value>Number of VM:</value>
</data>
<data name="secQuotas.Text" xml:space="preserve">
<value>Quotas</value>
</data>
<data name="btnImport.Text" xml:space="preserve">
<value>Import VM</value>
</data>
<data name="btnFastCreate.Text" xml:space="preserve">
<value>Clone VM</value>
</data>
<data name="cmdDetach.OnClientClick" xml:space="preserve">
<value>return confirm('Remove this VM from meta-base?');</value>
</data>
<data name="cmdDetach.Text" xml:space="preserve">
<value>Detach</value>
</data>
<data name="cmdMove.Text" xml:space="preserve">
<value>Move</value>
</data>
</root>

View file

@ -0,0 +1,243 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="AllowPause.Text" xml:space="preserve">
<value>Pause, Resume</value>
</data>
<data name="AllowReboot.Text" xml:space="preserve">
<value>Reboot</value>
</data>
<data name="AllowReset.Text" xml:space="preserve">
<value>Reset</value>
</data>
<data name="AllowStartShutdown.Text" xml:space="preserve">
<value>Start, Turn off and Shutdown</value>
</data>
<data name="btnCancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="btnImport.Text" xml:space="preserve">
<value>Import</value>
</data>
<data name="EnableRemoteDesktop.Text" xml:space="preserve">
<value>Enable Remote Desktop Web Connection</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;This wizard allows you to import existing Virtual Machine to control panel meta-base to provide its owner self-service functions.&lt;/p&gt;&lt;p&gt;Importing is absolutely safe for VM as nor VM configuration, nor its state are changing during the process.&lt;/p&gt;&lt;p&gt;To import VM, first, select registered in control panel Hyper-V service where VM is located. Then select VM, specify its allowed actions and select network adapter bindings.&lt;/p&gt;&lt;p&gt;External and management networks are determined on appropriate Hyper-V service properties page.&lt;/p&gt;&lt;p&gt;To enable Remote Desktop Web connections you have to provide real guest OS administrator password (for automatic sign-on).&lt;/p&gt;</value>
</data>
<data name="locAdminPassword.Text" xml:space="preserve">
<value>Administrator password:</value>
</data>
<data name="locBootFromCd.Text" xml:space="preserve">
<value>Boot from CD</value>
</data>
<data name="locCPU.Text" xml:space="preserve">
<value>CPU, cores:</value>
</data>
<data name="locDvdInstalled.Text" xml:space="preserve">
<value>DVD drive is installed</value>
</data>
<data name="locExternalAdapter.Text" xml:space="preserve">
<value>Connected NIC:</value>
</data>
<data name="locExternalAddresses.Text" xml:space="preserve">
<value>Assign IP addresses:</value>
</data>
<data name="locHDD.Text" xml:space="preserve">
<value>HDD, Gb:</value>
</data>
<data name="locHyperVService.Text" xml:space="preserve">
<value>Hyper-V Service:</value>
</data>
<data name="locManagementAdapter.Text" xml:space="preserve">
<value>Connected NIC:</value>
</data>
<data name="locManagementAddresses.Text" xml:space="preserve">
<value>Assign IP addresses:</value>
</data>
<data name="locNumLockEnabled.Text" xml:space="preserve">
<value>Num Lock</value>
</data>
<data name="locRAM.Text" xml:space="preserve">
<value>RAM, Mb:</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Import Existing VM</value>
</data>
<data name="locVhdPath.Text" xml:space="preserve">
<value>VHD location:</value>
</data>
<data name="locVirtualMachine.Text" xml:space="preserve">
<value>Virtual Machine:</value>
</data>
<data name="secAllowedActions.Text" xml:space="preserve">
<value>Allowed Actions</value>
</data>
<data name="secBios.Text" xml:space="preserve">
<value>BIOS</value>
</data>
<data name="secConfiguration.Text" xml:space="preserve">
<value>Configuration</value>
</data>
<data name="secDvd.Text" xml:space="preserve">
<value>DVD</value>
</data>
<data name="secExternalNetwork.Text" xml:space="preserve">
<value>External Network</value>
</data>
<data name="secManagementNetwork.Text" xml:space="preserve">
<value>Management Network</value>
</data>
<data name="secOsTemplate.Text" xml:space="preserve">
<value>OS Template:</value>
</data>
<data name="SelectHyperVService.Text" xml:space="preserve">
<value>&lt;Select Hyper-V service&gt;</value>
</data>
<data name="SelectVirtualMachine.Text" xml:space="preserve">
<value>&lt;Select virtual machine&gt;</value>
</data>
<data name="RequiredOsTemplate.ErrorMessage" xml:space="preserve">
<value>Please select OS template</value>
</data>
<data name="RequiredVirtualMachine.ErrorMessage" xml:space="preserve">
<value>Please select virtual machine to import</value>
</data>
<data name="RequireHyperVService.ErrorMessage" xml:space="preserve">
<value>Please select DDT service to import VM from</value>
</data>
<data name="SelectOsTemplate.Text" xml:space="preserve">
<value>&lt;Select Operating System template&gt;</value>
</data>
<data name="btnImport.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Importing Virtual Machines...');</value>
</data>
<data name="RequiredAdminPassword.ErrorMessage" xml:space="preserve">
<value>Please enter guest OS administrator password</value>
</data>
<data name="RequiredExternalAddresses.ErrorMessage" xml:space="preserve">
<value>Select at least one External IP address</value>
</data>
<data name="RequiredManagementAddresses.ErrorMessage" xml:space="preserve">
<value>Select at least one Management IP address</value>
</data>
<data name="SelectNetworkAdapter.Text" xml:space="preserve">
<value>&lt;Not connected&gt;</value>
</data>
</root>

View file

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;&lt;b&gt;This form is visible to administrators only.&lt;/b&gt;&lt;/p&gt;&lt;p&gt; Management network is not available to resellers and users and it's being managed by WebsitePanel on their behalf.&lt;/p&gt;&lt;p&gt;Management network is a back-end company network used by system administrators to manage customers' VM. This network is also used by VM to access various utility resources and services such as DNS, KMS, backups, etc.&lt;/p&gt;&lt;p&gt;If Management network is enabled on Hyper-V service properties then every created VPS will be assigned one IP address from "VM Management Network" pool, so WebsitePanel administrator must make sure there are sufficient number of IP addresses in that pool.&lt;/p&gt;</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Management Network</value>
</data>
</root>

View file

@ -0,0 +1,138 @@
<?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="btnUpdateVdcPermissions.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Updating permissions...');</value>
</data>
<data name="btnUpdateVpsPermissions.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Updating permissions...');</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>User permissions allow...</value>
</data>
<data name="gvVdcPermissions.Empty" xml:space="preserve">
<value>No peers exist under your user account.</value>
</data>
<data name="gvVpsPermissions.Empty" xml:space="preserve">
<value>No peers exist under your user account.</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>User Permissions</value>
</data>
</root>

View file

@ -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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;If this form is available in the hosting space then it means that all VPS in this hosting space are connected to dedicated private network available only to this hosting space.&lt;/p&gt; &lt;p&gt;Private network is a very powerful mechanizm that allows additional increase of network security. For example, you might have only one front-end server (e.g. server with Exchange CAS and HUB roles installed) connected to External network and all the rest of servers connected to private (internal) network only (e.g. one server with Exchange MB role and second one with DC).&lt;/p&gt;&lt;p&gt;Quota in the bottom of the form displays the maximum number of private IP addresses that could be assigned to every VPS.&lt;/p&gt;</value>
</data>
<data name="gvAddresses.Empty" xml:space="preserve">
<value>No private IP addresses have been used in this hosting space.</value>
</data>
<data name="SearchField.IPAddress" xml:space="preserve">
<value>IP Address</value>
</data>
<data name="SearchField.ItemName" xml:space="preserve">
<value>VPS Name</value>
</data>
<data name="gvAddressesIPAddress.HeaderText" xml:space="preserve">
<value>IP</value>
</data>
<data name="gvAddressesItemName.HeaderText" xml:space="preserve">
<value>VPS</value>
</data>
<data name="gvAddressesPrimary.HeaderText" xml:space="preserve">
<value>Primary</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Private Network</value>
</data>
<data name="locVpsAddressesQuota.Text" xml:space="preserve">
<value>IP addresses per VM:</value>
</data>
<data name="secQuotas.Text" xml:space="preserve">
<value>Quotas</value>
</data>
</root>

View file

@ -0,0 +1,144 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;Alerts log displays the chronology of alerts for selected VM.&lt;/p&gt;</value>
</data>
<data name="gvEntriesCreated.Header" xml:space="preserve">
<value>Created</value>
</data>
<data name="gvEntriesDescription.Header" xml:space="preserve">
<value>Description</value>
</data>
<data name="gvEntriesName.Header" xml:space="preserve">
<value>Name</value>
</data>
<data name="gvEntriesResolutionState.Header" xml:space="preserve">
<value>State</value>
</data>
<data name="gvEntriesSeverity.Header" xml:space="preserve">
<value>Severity</value>
</data>
<data name="gvEntriesSource.Header" xml:space="preserve">
<value>Source</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Alerts</value>
</data>
</root>

View file

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnCreate.Text" xml:space="preserve">
<value>Create Snapshot</value>
</data>
<data name="btnRestore.Text" xml:space="preserve">
<value>Restore Snapshot</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;Snapshots of selected Virtual Machine.&lt;/p&gt;</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Snapshots</value>
</data>
</root>

View file

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnAdd.Text" xml:space="preserve">
<value>Add</value>
</data>
<data name="btnCancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="ExternalAddressesValidator.ErrorMessage" xml:space="preserve">
<value>Enter the number of IP addresses</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;This form allows assigning of new IP addresses to VM "External" network adapter.&lt;/p&gt;&lt;p&gt;Additional IP addresses could be assigned to the VPS if only there is enough number of free (unassigned) external IP addresses allocated to this hosting space.&lt;/p&gt;&lt;p&gt;After clicking "Add" button special configuration instructions will be sent to VM, so it may take some time (up to few minutes) until network adapter parameters are changed.&lt;/p&gt;</value>
</data>
<data name="locExternalAddresses.Text" xml:space="preserve">
<value>Number of IP addresses:</value>
</data>
<data name="locHoldCtrl.Text" xml:space="preserve">
<value>* Hold CTRL key to select multiple addresses</value>
</data>
<data name="locSubTitle.Text" xml:space="preserve">
<value>Add External IP Addresses</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Network</value>
</data>
<data name="radioExternalRandom.Text" xml:space="preserve">
<value>Randomly select IP addresses from the pool</value>
</data>
<data name="radioExternalSelected.Text" xml:space="preserve">
<value>Select IP addresses from the list</value>
</data>
<data name="litMaxExternalAddresses.Text" xml:space="preserve">
<value>({0} max)</value>
</data>
<data name="locNotEnoughExternalAddresses.Text" xml:space="preserve">
<value>The pool of available external IP addresses is empty. All IP addresses allocated to the current hosting space are assigned to existing virtual servers. More external IP addresses could be allocated by the host.</value>
</data>
</root>

View file

@ -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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnAdd.Text" xml:space="preserve">
<value>Add</value>
</data>
<data name="btnCancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;This form allows assigning of new IP addresses to VM "Private" network adapter.&lt;/p&gt;&lt;p&gt;In the private network you could assign any IP addresses to VM, however if you decide to leave this job for WebsitePanel then it will generate private IP addresses for you by the algorithm set on the service level and make sure IPs are not duplicated.&lt;/p&gt;&lt;p&gt;After clicking "Add" button special configuration instructions will be sent to VM, so it may take some time (up to few minutes) until network adapter parameters are changed.&lt;/p&gt;</value>
</data>
<data name="locOnePerLine.Text" xml:space="preserve">
<value>* Type one IP address per line</value>
</data>
<data name="locPrivateAddresses.Text" xml:space="preserve">
<value>Number of IP addresses:</value>
</data>
<data name="locSubTitle.Text" xml:space="preserve">
<value>Add Private IP Addresses</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Network</value>
</data>
<data name="PrivateAddressesValidator.ErrorMessage" xml:space="preserve">
<value>Enter the number of private IP addresses</value>
</data>
<data name="radioPrivateRandom.Text" xml:space="preserve">
<value>Randomly select next available IP addresses to the addresses format</value>
</data>
<data name="radioPrivateSelected.Text" xml:space="preserve">
<value>Assign specified IP addresses</value>
</data>
<data name="litMaxPrivateAddresses.Text" xml:space="preserve">
<value>({0} max)</value>
</data>
</root>

View file

@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;Audit log displays the chronology of events for this VM.&lt;/p&gt;&lt;p&gt;By default audit log displays all today's events. You may filter the log by date (day, week, month), severity, task and item name (VM host name).&lt;/p&gt;&lt;p&gt;To see task details click the link with task name in "Task" column.&lt;/p&gt;&lt;p&gt;To export log in CSV format click "Export Log" button.&lt;/p&gt;</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Audit Log</value>
</data>
</root>

View file

@ -0,0 +1,222 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnChangePassword.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Changing password...', 'PasswordModal');</value>
</data>
<data name="CpuCores.Text" xml:space="preserve">
<value>{0} cores</value>
</data>
<data name="Hdd.Text" xml:space="preserve">
<value>{0} GB</value>
</data>
<data name="Ram.Text" xml:space="preserve">
<value>{0} MB</value>
</data>
<data name="secNetwork.Text" xml:space="preserve">
<value>Network</value>
</data>
<data name="btnCancelChangePassword.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="btnChangePassword.Text" xml:space="preserve">
<value>Change password</value>
</data>
<data name="btnChangePasswordPopup.Text" xml:space="preserve">
<value>Change</value>
</data>
<data name="btnEdit.Text" xml:space="preserve">
<value>Edit configuration</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;This form shows VM configuration.&lt;/p&gt;&lt;p&gt;To change VPS Administrator account password click "Change" link in "Software" section.&lt;br/&gt;To change password special configuration instructions will be sent to VM, so it may take some time (up to few minutes) until it is changed.&lt;/p&gt;&lt;p&gt;To change VM configuration (if allowed in the hosting plan) click "Edit configuration" button.&lt;/p&gt;</value>
</data>
<data name="lblCpu.Text" xml:space="preserve">
<value>CPU:</value>
</data>
<data name="lblHdd.Text" xml:space="preserve">
<value>HDD:</value>
</data>
<data name="lblRam.Text" xml:space="preserve">
<value>RAM:</value>
</data>
<data name="locAdministratorPassword.Text" xml:space="preserve">
<value>Administrator password:</value>
</data>
<data name="locChangePassword.Text" xml:space="preserve">
<value>Change Administrator Password</value>
</data>
<data name="locNewPassword.Text" xml:space="preserve">
<value>Enter new password:</value>
</data>
<data name="locOperatingSystem.Text" xml:space="preserve">
<value>Operating system:</value>
</data>
<data name="locSnapshots.Text" xml:space="preserve">
<value>Number of snapshots:</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Configuration</value>
</data>
<data name="optionBootFromCd.Text" xml:space="preserve">
<value>Boot from CD</value>
</data>
<data name="optionDvdInstalled.Text" xml:space="preserve">
<value>DVD drive installed</value>
</data>
<data name="optionExternalNetwork.Text" xml:space="preserve">
<value>External network enabled</value>
</data>
<data name="optionNumLock.Text" xml:space="preserve">
<value>Num Lock enabled</value>
</data>
<data name="optionPauseResume.Text" xml:space="preserve">
<value>Pause, Resume</value>
</data>
<data name="optionPrivateNetwork.Text" xml:space="preserve">
<value>Private network enabled</value>
</data>
<data name="optionReboot.Text" xml:space="preserve">
<value>Reboot</value>
</data>
<data name="optionReinstall.Text" xml:space="preserve">
<value>Re-Install</value>
</data>
<data name="optionReset.Text" xml:space="preserve">
<value>Reset</value>
</data>
<data name="optionStartShutdown.Text" xml:space="preserve">
<value>Start, Turn off and Shutdown</value>
</data>
<data name="secActions.Text" xml:space="preserve">
<value>Server Actions</value>
</data>
<data name="secBios.Text" xml:space="preserve">
<value>BIOS</value>
</data>
<data name="secDvd.Text" xml:space="preserve">
<value>DVD</value>
</data>
<data name="secResources.Text" xml:space="preserve">
<value>Resources</value>
</data>
<data name="secSnapshots.Text" xml:space="preserve">
<value>Snapshots</value>
</data>
</root>

View file

@ -0,0 +1,141 @@
<?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="btnEjectDisk.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Ejecting disk...');</value>
</data>
<data name="NoDisk.Text" xml:space="preserve">
<value>&lt;empty&gt;</value>
</data>
<data name="btnEjectDisk.Text" xml:space="preserve">
<value>Eject</value>
</data>
<data name="btnInsertDisk.Text" xml:space="preserve">
<value>Insert Disk...</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;The form shows the status of DVD drive. If there is &lt;b&gt;&amp;lt;empty&amp;gt;&lt;/b&gt; then there is no disk in the drive.&lt;/p&gt;&lt;p&gt;Click &lt;b&gt;"Insert Disk..."&lt;/b&gt; button to browse Media Library.&lt;/p&gt;&lt;p&gt;Click &lt;b&gt;"Eject"&lt;/b&gt; button to remove disk from DVD drive.&lt;/p&gt;</value>
</data>
<data name="locDvdDrive.Text" xml:space="preserve">
<value>DVD Drive:</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>DVD</value>
</data>
</root>

View file

@ -0,0 +1,216 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnCancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="btnUpdate.OnClientClick" xml:space="preserve">
<value>if(!confirm('Before applying new configuration VM will be stopped.\n\nAfter the configuration is changed it will be started again automatically.\n\nDo you want to proceed?')) return false; ShowProgressDialog('Updating configuration...');</value>
</data>
<data name="btnUpdate.Text" xml:space="preserve">
<value>Update</value>
</data>
<data name="chkBootFromCd.Text" xml:space="preserve">
<value>Boot from CD</value>
</data>
<data name="chkDvdInstalled.Text" xml:space="preserve">
<value>DVD drive installed</value>
</data>
<data name="chkExternalNetworkEnabled.Text" xml:space="preserve">
<value>External network enabled</value>
</data>
<data name="chkNumLock.Text" xml:space="preserve">
<value>Num Lock enabled</value>
</data>
<data name="chkPauseResume.Text" xml:space="preserve">
<value>Pause, Resume</value>
</data>
<data name="chkPrivateNetworkEnabled.Text" xml:space="preserve">
<value>Private network enabled</value>
</data>
<data name="chkReboot.Text" xml:space="preserve">
<value>Reboot</value>
</data>
<data name="chkReinstall.Text" xml:space="preserve">
<value>Re-Install</value>
</data>
<data name="chkReset.Text" xml:space="preserve">
<value>Reset</value>
</data>
<data name="chkStartShutdown.Text" xml:space="preserve">
<value>Start, Turn off and Shutdown</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;Change VM configuration and click "Update" button.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Before applying new configuration settings VM will be stopped. After new configuration is applied it will be started again.&lt;/b&gt;&lt;/p&gt;</value>
</data>
<data name="lblCpu.Text" xml:space="preserve">
<value>CPU:</value>
</data>
<data name="lblHdd.Text" xml:space="preserve">
<value>HDD:</value>
</data>
<data name="lblRam.Text" xml:space="preserve">
<value>RAM:</value>
</data>
<data name="locCores.Text" xml:space="preserve">
<value>cores</value>
</data>
<data name="locGB.Text" xml:space="preserve">
<value>GB</value>
</data>
<data name="locMB.Text" xml:space="preserve">
<value>MB</value>
</data>
<data name="locSnapshots.Text" xml:space="preserve">
<value>Number of snapshots:</value>
</data>
<data name="locSubTitle.Text" xml:space="preserve">
<value>Edit Configuration</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Edit Configuration</value>
</data>
<data name="RequireHddValidator.ErrorMessage" xml:space="preserve">
<value>Please specify HDD size</value>
</data>
<data name="RequireRamValidator.ErrorMessage" xml:space="preserve">
<value>Please specify RAM size</value>
</data>
<data name="secActions.Text" xml:space="preserve">
<value>Server Actions</value>
</data>
<data name="secBios.Text" xml:space="preserve">
<value>BIOS</value>
</data>
<data name="secDvd.Text" xml:space="preserve">
<value>DVD</value>
</data>
<data name="secNetwork.Text" xml:space="preserve">
<value>Network</value>
</data>
<data name="secResources.Text" xml:space="preserve">
<value>Resources</value>
</data>
<data name="secSnapshots.Text" xml:space="preserve">
<value>Snapshots</value>
</data>
<data name="SnapshotsValidator.ErrorMessage" xml:space="preserve">
<value>Please enter the number of snapshots</value>
</data>
</root>

View file

@ -0,0 +1,375 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnChangeHostname.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Changing host name...', 'ChangeHostnameModal');</value>
</data>
<data name="btnDelete.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="Command.Pause" xml:space="preserve">
<value>Pause</value>
</data>
<data name="Command.Reboot" xml:space="preserve">
<value>Reboot</value>
</data>
<data name="Command.Reset" xml:space="preserve">
<value>Reset</value>
</data>
<data name="Command.Resume" xml:space="preserve">
<value>Resume</value>
</data>
<data name="Command.ShutDown" xml:space="preserve">
<value>Shut&amp;nbsp;Down</value>
</data>
<data name="Command.Snapshot" xml:space="preserve">
<value>Snapshot</value>
</data>
<data name="Command.Start" xml:space="preserve">
<value>Start</value>
</data>
<data name="Command.TurnOff" xml:space="preserve">
<value>Turn&amp;nbsp;Off</value>
</data>
<data name="CpuPercentage.Text" xml:space="preserve">
<value>{0}%</value>
</data>
<data name="MemoryPercentage.Text" xml:space="preserve">
<value>{0}%</value>
</data>
<data name="MemoryUsage.Text" xml:space="preserve">
<value>Used: {0} MB, Total: {1} MB</value>
</data>
<data name="OnClientClick.Pause" xml:space="preserve">
<value>if(!confirm('Pause VM?')) return false; ShowProgressDialog('Pausing...');</value>
</data>
<data name="OnClientClick.Reboot" xml:space="preserve">
<value>if(!confirm('Reboot VM?')) return false; ShowProgressDialog('Rebooting...');</value>
</data>
<data name="OnClientClick.Reset" xml:space="preserve">
<value>if(!confirm('Reset VM?')) return false; ShowProgressDialog('Resetting...');</value>
</data>
<data name="OnClientClick.Resume" xml:space="preserve">
<value>ShowProgressDialog('Resuming...');</value>
</data>
<data name="OnClientClick.ShutDown" xml:space="preserve">
<value>if(!confirm('Shut down VM?')) return false; ShowProgressDialog('Shutting down...');</value>
</data>
<data name="OnClientClick.Snapshot" xml:space="preserve">
<value>ShowProgressDialog('Taking snapshot...');</value>
</data>
<data name="OnClientClick.Start" xml:space="preserve">
<value>ShowProgressDialog('Starting...');</value>
</data>
<data name="OnClientClick.TurnOff" xml:space="preserve">
<value>if(!confirm('Turn off VM?')) return false; ShowProgressDialog('Turning off...');</value>
</data>
<data name="locHostname.Text" xml:space="preserve">
<value>Host&amp;nbsp;name:</value>
</data>
<data name="btnCancelHostname.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="btnChangeHostname.Text" xml:space="preserve">
<value>Change</value>
</data>
<data name="btnChangeHostnamePopup.Text" xml:space="preserve">
<value>Edit</value>
</data>
<data name="chkUpdateComputerName.Text" xml:space="preserve">
<value>Update computer network name</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;&lt;b&gt;Status&lt;/b&gt; shows the current state of VM. The list of available VM action buttons on the right depends on the current status.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Uptime&lt;/b&gt; is the time since the last VM start.&lt;/p&gt;&lt;b&gt;Heartbeat&lt;/b&gt; is a very useful indicator as it shows whether VM operating system is active and respond. If there is "No contact" then it means the system is not started yet, but if there is an "Error" then it means OS does not respond to the host machine.&lt;/p&gt;&lt;p&gt;&lt;b&gt;CPU&lt;/b&gt; meter displays VM processor utilization.&lt;/p&gt;&lt;p&gt;&lt;b&gt;RAM&lt;/b&gt; and &lt;b&gt;HDD&lt;/b&gt; meters show real-time data provided by VM operating system.&lt;/p&gt;</value>
</data>
<data name="Heartbeat.Error" xml:space="preserve">
<value>Error</value>
</data>
<data name="Heartbeat.LostCommunication" xml:space="preserve">
<value>Lost communication</value>
</data>
<data name="Heartbeat.NoContact" xml:space="preserve">
<value>No contact</value>
</data>
<data name="Heartbeat.None" xml:space="preserve">
<value>None</value>
</data>
<data name="Heartbeat.OK" xml:space="preserve">
<value>OK</value>
</data>
<data name="locChangeHostname.Text" xml:space="preserve">
<value>Change VM Host Name</value>
</data>
<data name="locCpu.Text" xml:space="preserve">
<value>CPU:</value>
</data>
<data name="locCreated.Text" xml:space="preserve">
<value>Created:</value>
</data>
<data name="locDomain.Text" xml:space="preserve">
<value>Domain:</value>
</data>
<data name="locHeartbeat.Text" xml:space="preserve">
<value>Heartbeat:</value>
</data>
<data name="locHostname1.Text" xml:space="preserve">
<value>Host name:</value>
</data>
<data name="locRam.Text" xml:space="preserve">
<value>RAM:</value>
</data>
<data name="locStatus.Text" xml:space="preserve">
<value>Status:</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>General</value>
</data>
<data name="State.CheckpointFailed" xml:space="preserve">
<value>CheckpointFailed</value>
</data>
<data name="State.CreationFailed" xml:space="preserve">
<value>CreationFailed</value>
</data>
<data name="State.CreatingCheckpoint" xml:space="preserve">
<value>CreatingCheckpoint</value>
</data>
<data name="State.CustomizationFailed" xml:space="preserve">
<value>CustomizationFailed</value>
</data>
<data name="State.Deleting" xml:space="preserve">
<value>Deleting</value>
</data>
<data name="State.DeletingCheckpoint" xml:space="preserve">
<value>DeletingCheckpoint</value>
</data>
<data name="State.DiscardingDrives" xml:space="preserve">
<value>DiscardingDrives</value>
</data>
<data name="State.Snapshotting" xml:space="preserve">
<value>Taking Snapshot</value>
</data>
<data name="State.DiscardSavedState" xml:space="preserve">
<value>DiscardSavedState</value>
</data>
<data name="State.FinishingCheckpointOperation" xml:space="preserve">
<value>FinishingCheckpointOperation</value>
</data>
<data name="State.HostNotResponding" xml:space="preserve">
<value>HostNotResponding</value>
</data>
<data name="valCorrectHostname.ErrorMessage" xml:space="preserve">
<value>Enter correct host name, for example "vm01"</value>
</data>
<data name="valNewDomainFormat.ErrorMessage" xml:space="preserve">
<value>Enter correct domain name, for example "mydomain.com"</value>
</data>
<data name="HddPercentage.Text" xml:space="preserve">
<value>{0}%</value>
</data>
<data name="HddUsage.Text" xml:space="preserve">
<value>Free: {0} GB, Total: {1} GB on {2} drive(s)</value>
</data>
<data name="locHdd.Text" xml:space="preserve">
<value>HDD:</value>
</data>
<data name="locDomainTop.Text" xml:space="preserve">
<value>Domain:</value>
</data>
<data name="State.IncompleteVMConfig" xml:space="preserve">
<value>IncompleteVMConfig</value>
</data>
<data name="State.InitializingCheckpointOperation" xml:space="preserve">
<value>InitializingCheckpointOperation</value>
</data>
<data name="State.MergingDrives" xml:space="preserve">
<value>MergingDrives</value>
</data>
<data name="State.MigrationFailed" xml:space="preserve">
<value>MigrationFailed</value>
</data>
<data name="State.Missing" xml:space="preserve">
<value>Missing</value>
</data>
<data name="State.P2VCreationFailed" xml:space="preserve">
<value>P2VCreationFailed</value>
</data>
<data name="State.Paused" xml:space="preserve">
<value>Paused</value>
</data>
<data name="State.Pausing" xml:space="preserve">
<value>Pausing</value>
</data>
<data name="State.PoweringOff" xml:space="preserve">
<value>PoweringOff</value>
</data>
<data name="State.PowerOff" xml:space="preserve">
<value>PowerOff</value>
</data>
<data name="State.RecoveringCheckpoint" xml:space="preserve">
<value>RecoveringCheckpoint</value>
</data>
<data name="State.Restoring" xml:space="preserve">
<value>Restoring</value>
</data>
<data name="State.Running" xml:space="preserve">
<value>Running</value>
</data>
<data name="State.Saved" xml:space="preserve">
<value>Saved</value>
</data>
<data name="State.Saving" xml:space="preserve">
<value>Saving</value>
</data>
<data name="State.Starting" xml:space="preserve">
<value>Starting</value>
</data>
<data name="State.Stored" xml:space="preserve">
<value>Stored</value>
</data>
<data name="State.TemplateCreationFailed" xml:space="preserve">
<value>TemplateCreationFailed</value>
</data>
<data name="State.UnderCreation" xml:space="preserve">
<value>UnderCreation</value>
</data>
<data name="State.UnderMigration" xml:space="preserve">
<value>UnderMigration</value>
</data>
<data name="State.UnderTemplateCreation" xml:space="preserve">
<value>UnderTemplateCreation</value>
</data>
<data name="State.UnderUpdate" xml:space="preserve">
<value>UnderUpdate</value>
</data>
<data name="State.Unsupported" xml:space="preserve">
<value>Unsupported</value>
</data>
<data name="State.UnsupportedCluster" xml:space="preserve">
<value>UnsupportedCluster</value>
</data>
<data name="State.UnsupportedSharedFiles" xml:space="preserve">
<value>UnsupportedSharedFiles</value>
</data>
<data name="State.UpdateFailed" xml:space="preserve">
<value>UpdateFailed</value>
</data>
<data name="State.V2VCreationFailed" xml:space="preserve">
<value>V2VCreationFailed</value>
</data>
</root>

View file

@ -0,0 +1,144 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnSend.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Sending e-mail...');</value>
</data>
<data name="btnSend.Text" xml:space="preserve">
<value>Send</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;This form displays VM summary information prepared by the host.&lt;/p&gt;&lt;p&gt;This information could be re-send to any e-mail address specified in "Send instructions by e-mail" section. This section is collapsed by default.&lt;/p&gt;</value>
</data>
<data name="lblBCC.Text" xml:space="preserve">
<value>BCC:</value>
</data>
<data name="lblTo.Text" xml:space="preserve">
<value>To:</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Help</value>
</data>
<data name="secEmail.Text" xml:space="preserve">
<value>Send instructions by e-mail</value>
</data>
<data name="valRequireEmail.ErrorMessage" xml:space="preserve">
<value>Please enter e-mail address</value>
</data>
</root>

View file

@ -0,0 +1,144 @@
<?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="btnInsert.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Inserting disk...');</value>
</data>
<data name="btnInsert.Text" xml:space="preserve">
<value>Insert</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;Browse Media Library and click &lt;b&gt;"Insert"&lt;/b&gt; button in the row with DVD you want to insert into drive.&lt;/p&gt;&lt;p&gt;Click &lt;b&gt;"Cancel"&lt;/b&gt; button to return to DVD drive properties screen.&lt;/p&gt;</value>
</data>
<data name="gvDisks.Empty" xml:space="preserve">
<value>No disks found in the media library.</value>
</data>
<data name="gvTitle.HeaderText" xml:space="preserve">
<value>Title</value>
</data>
<data name="locSubTitle.Text" xml:space="preserve">
<value>Browse Media Library</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>DVD</value>
</data>
</root>

View file

@ -0,0 +1,195 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnAddExternalAddress.Text" xml:space="preserve">
<value>Add IP...</value>
</data>
<data name="btnAddPrivateAddress.Text" xml:space="preserve">
<value>Add IP...</value>
</data>
<data name="btnDeleteExternal.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="btnDeletePrivate.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="btnSetPrimaryExternal.Text" xml:space="preserve">
<value>Set As Primary</value>
</data>
<data name="btnSetPrimaryPrivate.Text" xml:space="preserve">
<value>Set As Primary</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;This form shows VM network configuration.&lt;/p&gt;&lt;p&gt;To assign additional IP addresses to "External" or "Private" adapter click "Add" button in the appropriate section.&lt;/p&gt;&lt;p&gt;When you delete external or private IP or change network adapter primary IP address the system sends special configuration instructions to VM operating system, so it may take some time (up to few minutes) until network adapter parameters are changed.&lt;/p&gt;</value>
</data>
<data name="gvExternalAddresses.Empty" xml:space="preserve">
<value>No IP addresses are assigned to external network adapter.</value>
</data>
<data name="gvIpAddress.HeaderText" xml:space="preserve">
<value>IP Address</value>
</data>
<data name="gvPrimary.HeaderText" xml:space="preserve">
<value>Primary</value>
</data>
<data name="gvPrivateAddresses.Empty" xml:space="preserve">
<value>No IP addresses are assigned to private network adapter.</value>
</data>
<data name="locExtAddress.Text" xml:space="preserve">
<value>Server address:</value>
</data>
<data name="locExtGateway.Text" xml:space="preserve">
<value>Default gateway:</value>
</data>
<data name="locExtSubnet.Text" xml:space="preserve">
<value>Subnet mask:</value>
</data>
<data name="locPrivAddress.Text" xml:space="preserve">
<value>Server address:</value>
</data>
<data name="locPrivFormat.Text" xml:space="preserve">
<value>Network format:</value>
</data>
<data name="locPrivSubnet.Text" xml:space="preserve">
<value>Subnet mask:</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Network</value>
</data>
<data name="locTotalExternal.Text" xml:space="preserve">
<value>IP addresses:</value>
</data>
<data name="locTotalPrivate.Text" xml:space="preserve">
<value>IP addresses:</value>
</data>
<data name="secExternalNetwork.Text" xml:space="preserve">
<value>External Network</value>
</data>
<data name="secPrivateNetwork.Text" xml:space="preserve">
<value>Private Network</value>
</data>
<data name="Automatic.Text" xml:space="preserve">
<value>&amp;lt;auto&amp;gt;</value>
</data>
<data name="gvDefaultGateway.HeaderText" xml:space="preserve">
<value>Gateway</value>
</data>
<data name="gvSubnetMask.HeaderText" xml:space="preserve">
<value>Subnet Mask</value>
</data>
</root>

View file

@ -0,0 +1,132 @@
<?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="btnUpdateVpsPermissions.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Updating permissions...');</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>User permissions allow...</value>
</data>
<data name="gvVpsPermissions.Empty" xml:space="preserve">
<value>No peers exist under your user account.</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Permissions</value>
</data>
</root>

View file

@ -0,0 +1,174 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnApply.OnClientClick" xml:space="preserve">
<value>if(this.disabled) return false;if(!confirm('Do you want to apply selected snapshot to VPS?')) return false;ShowProgressDialog('Applying snapshot...');</value>
</data>
<data name="btnDelete.OnClientClick" xml:space="preserve">
<value>if(this.disabled) return false;if(!confirm('Do you want to completely delete selected snapshot?')) return false;ShowProgressDialog('Deleting snapshot...');</value>
</data>
<data name="btnDeleteSubtree.OnClientClick" xml:space="preserve">
<value>if(!confirm('Do you want to completely delete selected snapshot and all its sub-tree?')) return false;ShowProgressDialog('Deleting snapshot sub-tree...');</value>
</data>
<data name="btnRenameSnapshot.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Renaming snapshot...', 'RenameSnapshotModal');</value>
</data>
<data name="btnTakeSnapshot.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Taking snapshot...');</value>
</data>
<data name="Now.Text" xml:space="preserve">
<value>Now</value>
</data>
<data name="locNoSnapshots.Text" xml:space="preserve">
<value>This virtual server has no snapshots.</value>
</data>
<data name="btnApply.Text" xml:space="preserve">
<value>Apply</value>
</data>
<data name="btnCancelRename.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="btnDelete.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="btnDeleteSubtree.Text" xml:space="preserve">
<value>Delete Subtree</value>
</data>
<data name="btnRename.Text" xml:space="preserve">
<value>Rename</value>
</data>
<data name="btnRenameSnapshot.Text" xml:space="preserve">
<value>Rename</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;To take a &lt;b&gt;snapshot&lt;/b&gt; is much like to take a picture of current VM state: its configuration, memory and hard disk.&lt;/p&gt;&lt;p&gt;Snapshots maybe used as backup/restore points when installing new software or using VM for development or testing purposes. If something has gone wrong there is an ability to roll-back and &lt;b&gt;"Apply"&lt;/b&gt; a snapshot with good configuration.&lt;/p&gt;&lt;p&gt;&lt;b&gt;"Rename"&lt;/b&gt; button allows renaming snapshot and giving it some informative name, for example "Before applying service pack".&lt;/p&gt;</value>
</data>
<data name="locCreated.Text" xml:space="preserve">
<value>Created:</value>
</data>
<data name="locQuota.Text" xml:space="preserve">
<value>Number of Snapshots:</value>
</data>
<data name="locRenameSnapshot.Text" xml:space="preserve">
<value>Rename Snapshot</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Snapshots</value>
</data>
</root>

View file

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnDelete.Text" xml:space="preserve">
<value>Delete VM</value>
</data>
<data name="btnReinstall.Text" xml:space="preserve">
<value>Re-install VM</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value />
</data>
<data name="locDelete.Text" xml:space="preserve">
<value>Completely removes VM and all its data.</value>
</data>
<data name="locReinstall.Text" xml:space="preserve">
<value>Re-creates VM with the same configuration settings and operating system template. The wizard allows to preserve existing virtual disk data.</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Tools</value>
</data>
</root>

View file

@ -0,0 +1,144 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;Event log displays the chronology of events for selected VM.&lt;/p&gt;</value>
</data>
<data name="gvEntriesCategory.Header" xml:space="preserve">
<value>Category</value>
</data>
<data name="gvEntriesDecription.Header" xml:space="preserve">
<value>Decription</value>
</data>
<data name="gvEntriesEventData.Header" xml:space="preserve">
<value>Event Data</value>
</data>
<data name="gvEntriesLevel.Header" xml:space="preserve">
<value>Level</value>
</data>
<data name="gvEntriesNumber.Header" xml:space="preserve">
<value>Number</value>
</data>
<data name="gvEntriesTimeGenerated.Header" xml:space="preserve">
<value>Time Generated</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Events</value>
</data>
</root>

View file

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;Monitoring of selected Virtual Machine.&lt;/p&gt;</value>
</data>
<data name="lblEndPeriod.Text" xml:space="preserve">
<value>End day</value>
</data>
<data name="lblStartPeriod.Text" xml:space="preserve">
<value>Start day</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Monitoring</value>
</data>
</root>

View file

@ -0,0 +1,147 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnCancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;This wizard allows you to change DDT service binding for existing Virtual Machine meta-item.&lt;/p&gt;&lt;p&gt;The wizard &lt;b&gt;DOES NOT PERFORM&lt;/b&gt; physical virtual machine migration, but it could be used to point control panel to the right DDT service AFTER virtual machine was moved with some external management tool like DDT manager or SCVMM.&lt;/p&gt;</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Move VM</value>
</data>
<data name="btnMove.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Moving Virtual Machine...');</value>
</data>
<data name="btnMove.Text" xml:space="preserve">
<value>Move</value>
</data>
<data name="locDestinationService.Text" xml:space="preserve">
<value>Destination DDT Service:</value>
</data>
<data name="RequiredHyperVService.ErrorMessage" xml:space="preserve">
<value>Please select DDT where VM has been moved</value>
</data>
<data name="locSourceService.Text" xml:space="preserve">
<value>Source DDT service:</value>
</data>
<data name="SelectHyperVService.Text" xml:space="preserve">
<value>&lt;Select DDT service&gt;</value>
</data>
</root>

View file

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnCancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="btnDelete.OnClientClick" xml:space="preserve">
<value>ShowProgressDialog('Deleting Virtual Machine...');</value>
</data>
<data name="btnDelete.Text" xml:space="preserve">
<value>Delete</value>
</data>
<data name="chkConfirmDelete.Text" xml:space="preserve">
<value>Delete this Virtual Machine</value>
</data>
<data name="chkExport.Text" xml:space="preserve">
<value>Export VM before deletion to the following folder:</value>
</data>
<data name="chkSaveFiles.Text" xml:space="preserve">
<value>Do not delete VM files (virtual hard disk, snapshots)</value>
</data>
<data name="ExportPathValidator.ErrorMessage" xml:space="preserve">
<value>Please enter export path</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value>&lt;p&gt;This form confirms deletion of VM.&lt;/p&gt;&lt;p&gt;In order to confirm "Delete this virtual machine" checkbox must be checked.&lt;/p&gt;</value>
</data>
<data name="locAdminOptions.Text" xml:space="preserve">
<value>Administrator options</value>
</data>
<data name="locDescription.Text" xml:space="preserve">
<value>This wizard will delete VM and all its contents from the virtualization server.</value>
</data>
<data name="locSubTitle.Text" xml:space="preserve">
<value>Delete VM</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Delete machine</value>
</data>
</root>

View file

@ -0,0 +1,159 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnCancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="btnReinstall.Text" xml:space="preserve">
<value>Re-install</value>
</data>
<data name="chkConfirmReinstall.Text" xml:space="preserve">
<value>Yes, I confirm re-installation of this VM</value>
</data>
<data name="chkExport.Text" xml:space="preserve">
<value>Export VPS before re-installation to the following folder:</value>
</data>
<data name="chkPreserveExistingFiles.Text" xml:space="preserve">
<value>Save existing VM hard drive files</value>
</data>
<data name="chkSaveVhd.Text" xml:space="preserve">
<value>Do not delete VM virtual hard drive file</value>
</data>
<data name="ExportPathValidator.ErrorMessage" xml:space="preserve">
<value>Enter export path</value>
</data>
<data name="FormComments.Text" xml:space="preserve">
<value />
</data>
<data name="locDescription.Text" xml:space="preserve">
<value>This wizard will re-create VM with the same configuration settings from scratch and then apply current OS template.</value>
</data>
<data name="locPassword.Text" xml:space="preserve">
<value>New administrator password:</value>
</data>
<data name="locPreserveHelp.Text" xml:space="preserve">
<value>All files from existing hard drive will be copied to &amp;quot;old&amp;quot; disk folder on hard drive of new VM.</value>
</data>
<data name="locSubTitle.Text" xml:space="preserve">
<value>Re-install VM</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Re-install VM</value>
</data>
</root>

View file

@ -0,0 +1,86 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MonitoringPage.aspx.cs"
Inherits="WebsitePanel.Portal.VPSForPC.MonitoringPage" %>
<%@ Register Assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %>
<%@ Register Src="../UserControls/MessageBox.ascx" TagName="MessageBox" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox"
TagPrefix="uc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="/JavaScript/jquery-1.4.4.min.js" type="text/javascript"></script>
<script src="/JavaScript/jquery-ui-1.8.9.min.js" type="text/javascript"></script>
<link href="/App_Themes/Default/Styles/jquery-ui-1.8.9.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server" style="width: 590px; height: 700px">
<asp:ScriptManager ID="scriptManager" runat="server" EnablePartialRendering="true"
EnableScriptGlobalization="true" EnableScriptLocalization="true">
</asp:ScriptManager>
<asp:Timer runat="server" Interval="10000" ID="operationTimer" OnTick="operationTimer_Tick" />
<div id="testClass" style="width: 590px; height: 700px">
<table cellpadding="3" width="100%">
<tr>
<td>
<asp:Label ID="lblStartPeriod" runat="server" AssociatedControlID="txtStartPeriod"
meta:resourcekey="lblStartPeriod" Text="Start day" CssClass="MediumBold" />
</td>
<td>
<asp:TextBox ID="txtStartPeriod" runat="server" CssClass="HugeTextBox txtDateTimePeriod"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblEndPeriod" runat="server" AssociatedControlID="txtEndPeriod" meta:resourcekey="lblEndPeriod"
Text="End day" CssClass="MediumBold" />
</td>
<td>
<asp:TextBox ID="txtEndPeriod" runat="server" CssClass="HugeTextBox txtDateTimePeriod"></asp:TextBox>
</td>
</tr>
</table>
<asp:UpdatePanel runat="server" ID="UpdatePanelCharts" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="operationTimer" EventName="Tick" />
</Triggers>
<ContentTemplate>
<div id="monitoringWrapper">
<asp:Chart ID="ChartCounter" runat="server" ImageLocation="TempImages/ChartPic_#SEQ(300,3)"
Width="584px" Height="296px" BorderlineDashStyle="Solid" BackGradientStyle="TopBottom"
BorderWidth="2px" BorderColor="#B54001" IsSoftShadows="False">
<Series>
<asp:Series MarkerSize="8" BorderWidth="3" XValueType="DateTime" Name="series" ChartType="StackedArea"
MarkerStyle="Circle" ShadowColor="Black" BorderColor="180, 26, 59, 105" Color="#33CC33"
ShadowOffset="2" YValueType="Double">
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="chartArea" BorderColor="64, 64, 64, 64" BorderDashStyle="Solid"
BackSecondaryColor="White" BackColor="OldLace" ShadowColor="Transparent" BackGradientStyle="TopBottom">
<Area3DStyle Rotation="25" Perspective="9" LightStyle="Realistic" Inclination="40"
IsRightAngleAxes="False" WallWidth="3" IsClustered="False" />
<AxisY LineColor="64, 64, 64, 64">
<LabelStyle Font="Trebuchet MS, 8.25pt, style=Bold" />
<MajorGrid LineColor="64, 64, 64, 64" />
</AxisY>
<AxisX LineColor="64, 64, 64, 64">
<LabelStyle Font="Trebuchet MS, 8.25pt, style=Bold" />
<MajorGrid LineColor="64, 64, 64, 64" />
</AxisX>
</asp:ChartArea>
</ChartAreas>
</asp:Chart>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
<script type="text/javascript">
$(document).ready(function () {
$(".txtDateTimePeriod").datepicker();
});
</script>
</body>
</html>

View file

@ -0,0 +1,96 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.DataVisualization.Charting;
using WebsitePanel.Providers.Virtualization;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class MonitoringPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
SetDefaultMonitoringTimeFrame();
BindPerformanceValues();
}
}
private void SetDefaultMonitoringTimeFrame()
{
if (String.IsNullOrEmpty(txtStartPeriod.Text))
{
txtStartPeriod.Text = DateTime.Now.AddDays(-1).ToShortDateString();
}
//
if (String.IsNullOrEmpty(txtEndPeriod.Text))
{
txtEndPeriod.Text = DateTime.Now.ToShortDateString();
}
}
private void BindPerformanceValues()
{
DateTime StartP = Convert.ToDateTime(txtStartPeriod.Text);
DateTime EndP = Convert.ToDateTime(txtEndPeriod.Text);
EndP = (EndP.CompareTo(DateTime.Now.Date) == 0 ? DateTime.Now : EndP);
PerformanceType pt = PerformanceType.Processor;
string charType = Page.Request.QueryString["chartType"];
InitControls(charType, StartP, EndP);
switch (charType)
{
case "Processor":
pt = PerformanceType.Processor;
break;
case "Network":
pt = PerformanceType.Network;
break;
case "Memory":
pt = PerformanceType.Memory;
break;
}
LoadChartData(ChartCounter, pt, StartP, EndP);
}
protected void operationTimer_Tick(object sender, EventArgs e)
{
BindPerformanceValues();
}
private void LoadChartData(Chart control, PerformanceType perfType, DateTime startPeriod, DateTime endPeriod)
{
PerformanceDataValue[] perfValues = ES.Services.VPSPC.GetPerfomanceValue(PanelRequest.ItemID, perfType, startPeriod, endPeriod);
if (perfValues != null)
{
foreach (PerformanceDataValue item in perfValues)
{
//
control.Series["series"].Points.AddXY(item.TimeSampled.ToString(), item.SampleValue);
}
}
}
private void InitControls(string charType, DateTime startPeriod, DateTime endPeriod)
{
ChartCounter.Titles.Add(charType);
ChartCounter.Series["series"].ChartType = (charType.Equals("Processor") ? SeriesChartType.Line : SeriesChartType.SplineArea);
//ChartCounter.Series["series"].IsValueShownAsLabel = true;
ChartCounter.Series["series"].Color = (!charType.Equals("Memory") ? System.Drawing.Color.FromArgb(220, 65, 140, 240) : ChartCounter.Series["series"].Color);
ChartCounter.Series["series"]["ShowMarkerLines"] = "True";
ChartCounter.ChartAreas["chartArea"].AxisX.IsMarginVisible = true;
}
}
}

View file

@ -0,0 +1,96 @@
//------------------------------------------------------------------------------
// <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.VPSForPC {
public partial class MonitoringPage {
/// <summary>
/// form1 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.HtmlForm form1;
/// <summary>
/// scriptManager control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.ScriptManager scriptManager;
/// <summary>
/// operationTimer control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.Timer operationTimer;
/// <summary>
/// lblStartPeriod 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 lblStartPeriod;
/// <summary>
/// txtStartPeriod 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 txtStartPeriod;
/// <summary>
/// lblEndPeriod 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 lblEndPeriod;
/// <summary>
/// txtEndPeriod 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 txtEndPeriod;
/// <summary>
/// UpdatePanelCharts control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.UpdatePanel UpdatePanelCharts;
/// <summary>
/// ChartCounter control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.DataVisualization.Charting.Chart ChartCounter;
}
}

View file

@ -0,0 +1,123 @@
<?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="locTitle.Text" xml:space="preserve">
<value>Remote Desktop Connection</value>
</data>
</root>

View file

@ -0,0 +1,232 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Connect.aspx.cs" Inherits="WebsitePanel.Portal.VPSForPC.RemoteDesktop.Connect" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>
<asp:Literal ID="litServerName" runat="server"></asp:Literal>
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Remote Desktop Web Connection"></asp:Localize></title>
</head>
<body style="margin:0;">
<script language="vbscript" type="text/vbscript">
<!--
const L_FullScreenWarn1_Text = "Your current security settings do not allow automatically switching to fullscreen mode."
const L_FullScreenWarn2_Text = "You can use ctrl-alt-pause to toggle your remote desktop session to fullscreen mode"
const L_FullScreenTitle_Text = "Remote Desktop Web Connection "
const L_ErrMsg_Text = "Error connecting to remote computer: "
const L_PlatformCheck_ErrorMessage = "The Remote Desktop Web connection ActiveX control can only run in the 32-bit version of Internet Explorer."
' error messages
const L_DisconnectedCaption_ErrorMessage = "Remote Desktop Disconnected"
const L_ErrConnectCallFailed_ErrorMessage = "An error occurred when the client attempted to connect to the remote computer. Check your system memory and then try the connection again."
const L_DisconnectRemoteByServer_ErrorMessage = "The remote computer has ended the connection."
const L_LowMemory_ErrorMessage = "The local computer is low on memory. Close some programs, and then connect to the remote computer again."
const L_SecurityErr_ErrorMessage = "Because of a security error, the client could not connect to the remote computer. Verify that you are logged on to the network, and then try connecting again."
const L_BadServerName_ErrorMessage = "The specified remote computer could not be found. Verify that you have typed the correct computer name or IP address, and then try connecting again."
const L_ConnectFailedProtocol_ErrorMessage = "Because of a protocol error, the client could not connect to the remote computer. Please try connecting to the remote computer again. If the client still fails to connect, contact your network administrator."
const L_CannotLoopBackConnect_ErrorMessage = "The client could not connect. You cannot connect to the console from a console session of the same computer."
const L_NetworkErr_ErrorMessage = "The connection was ended because of a network error. Please try connecting to the remote computer again."
const L_InternalErr_ErrorMessage = "An internal error has occurred."
const L_NotResponding_ErrorMessage = "The client could not connect to the remote computer. Remote connections might not be enabled or the computer might be too busy to accept new connections.It is also possible that network problems are preventing your connection.Please try connecting again later. If the problem continues to occur, contact your administrator."
const L_VersionMismatch_ErrorMessage = "Client and server versions do not match. Please upgrade your client software and then try connecting again."
const L_EncryptionError_ErrorMessage = "Because of an error in data encryption, this session will end. Please try connecting to the remote computer again."
const L_ProtocolErr_ErrorMessage = "Because of a protocol error, this session will be disconnected. Please try connecting to the remote computer again."
const L_IllegalServerName_ErrorMessage = "The specified computer name contains invalid characters. Please verify the name and try again."
const L_ConnectionTimeout_ErrorMessage = "The remote connection has timed out. Please try connecting to the remote computer again."
const L_DisconnectIdleTimeout_ErrorMessage = "The remote session was ended because the idle timeout limit was reached. This limit is set by the server administrator or by network policies."
const L_DisconnectLogonTimeout_ErrorMessage ="The remote session ended because the total logon time limit was reached. This limit is set by the server administrator or by network policies."
const L_ProtocolErrWITHCODE_ErrorMessage = "Client disconnected due to internal protocol error: "
const L_LicensingTimeout_ErrorMessage = "A licensing error occurred while the client was attempting to connect (Licensing timed out).Please try connecting to the remote computer again."
const L_LicensingNegotFailed_ErrorMessage = "The remote computer disconnected the session because of an error in the licensing protocol.Please try connecting to the remote computer again or contact your server administrator."
const L_DisconnectRemoteByServerTool_ErrorMessage = "The remote session to the remote computer was ended by means of an administration tool.Your administrator might have ended your connection."
const L_LogoffRemoteByServer_ErrorMessage = "The remote session was disconnected because your session was logged off at the remote computer.Your administrator or another user might have ended your connection."
const L_DisconnectByOtherConnection_ErrorMessage = "The remote session was disconnected because another user has connected to the session."
const L_ConnectionBroken_ErrorMessage = "The connection to the remote computer was broken. This may have been caused by a network error.Please try connecting to the remote computer again."
const L_ServerOutOfMemory_ErrorMessage = "The connection was disconnected because the remote computer is low on memory."
const L_LicenseInternal_ErrorMessage = "The remote session was disconnected because there was an internal error in the remote computer's licensing protocol."
const L_NoLicenseServer_ErrorMessage = "The remote session was disconnected because there are no Terminal Server License Servers available to provide a license.Please contact the server administrator."
const L_NoLicense_ErrorMessage = "The remote session was disconnected because there are no Terminal Server client access licenses available for this computer.Please contact the server administrator."
const L_LicenseBadClientMsg_ErrorMessage = "The remote session was disconnected because the remote computer received an invalid licensing message from this computer."
const L_LicenseHwidDoesntMatch_ErrorMessage = "The remote session was disconnected because the Terminal Server client access license stored on this computer has been modified."
const L_BadClientLicense_ErrorMessage = "The remote session was disconnected because the Terminal Server client access license stored on this computer is in an invalid format."
const L_LicenseCantFinishProtocol_ErrorMessage = "The remote session was disconnected because there were network problems during the licensing protocol.Please try connecting to the remote computer again."
const L_LicenseClientEndedProtocol_ErrorMessage = "The remote session was disconnected because the client prematurely ended the licensing protocol."
const L_LicenseBadClientEncryption_ErrorMessage = "The remote session was disconnected because a licensing message was incorrectly encrypted."
const L_CantUpgradeLicense_ErrorMessage = "The remote session was disconnected because the local computer's client access license could not be upgraded or renewed.Please contact the server administrator."
const L_LicenseNoRemoteConnections_ErrorMessage = "The remote session was disconnected because the remote computer is not licensed to accept remote connections.Please contact the server administrator."
const L_DecompressionFailed_ErrorMessage = "The remote session was disconnected because of a decompression failure at the client side. Please try connecting to the remote computer again."
const L_ServerDeniedConnection_ErrorMessage ="The client could not establish a connection to the remote computer.The most likely causes for this error are:1) Remote connections might not be enabled at the remote computer.2) The maximum number of connections was exceeded at the remote computer.3) A network error occurred while establishing the connection."
resWidth = 0
resHeight = 0
resolution = "<asp:Literal id="resolution" runat="server"/>"
serverName = "<asp:Literal id="serverName" runat="server"/>"
username = "<asp:Literal id="username" runat="server"/>"
domain = ""
password = "<asp:Literal id="password" runat="server"/>"
sub OnControlLoad
set Control = Document.getElementById("MsRdpClient")
if Not Control is Nothing then
if Control.readyState = 4 then
BtnConnect()
end if
end if
end sub
sub BtnConnect
if not LCase(Navigator.CpuClass) = "x86" then
msgbox L_PlatformCheck_ErrorMessage
end if
'Resolution
MsRdpClient.FullScreen = FALSE
select case resolution
case "1"
MsRdpClient.FullScreen = TRUE
resWidth = screen.width
resHeight = screen.height
case "2"
resWidth = "800"
resHeight = "600"
case "3"
resWidth = "1024"
resHeight = "768"
case "4"
resWidth = "1280"
resHeight = "1024"
end select
'ResizeWindow resWidth, resHeight
MsRdpClient.server = serverName
MsRdpClient.UserName = username
MsRdpClient.Domain = domain
MsRdpClient.AdvancedSettings2.ClearTextPassword = password
MsRdpClient.DesktopWidth = resWidth
MsRdpClient.DesktopHeight = resHeight
MsRdpClient.Width = resWidth
MsRdpClient.Height = resHeight
'Device redirection options
MsRdpClient.AdvancedSettings2.RedirectDrives = FALSE
MsRdpClient.AdvancedSettings2.RedirectPrinters = FALSE
MsRdpClient.AdvancedSettings2.RedirectPorts = FALSE
MsRdpClient.AdvancedSettings2.RedirectSmartCards = FALSE
'FullScreen title
MsRdpClient.FullScreenTitle = L_FullScreenTitle_Text & "(" & serverName & ")"
'Connect
MsRdpClient.Connect
end sub
sub MsRdpClient_OnConnected()
' nothing to do
end sub
sub MsRdpClient_OnDisconnected(disconnectCode)
extendedDiscReason = MsRdpClient.ExtendedDisconnectReason
majorDiscReason = disconnectCode And &hFF
if (disconnectCode = &hB08 or majorDiscReason = 2 or majorDiscReason = 1) and not (extendedDiscReason = 5) then
window.close()
exit sub
end if
errMsgText = L_DisconnectRemoteByServer_ErrorMessage
if not extendedDiscReason = 0 then
'Use the extended disconnect code
select case extendedDiscReason
case 0 errMsgText = ""
case 1 errMsgText = L_DisconnectRemoteByServerTool_ErrorMessage
case 2 errMsgText = L_LogoffRemoteByServer_ErrorMessage
case 3 errMsgText = L_DisconnectIdleTimeout_ErrorMessage
case 4 errMsgText = L_DisconnectLogonTimeout_ErrorMessage
case 5 errMsgText = L_DisconnectByOtherConnection_ErrorMessage
case 6 errMsgText = L_ServerOutOfMemory_ErrorMessage
case 7 errMsgText = L_ServerDeniedConnection_ErrorMessage
case 256 errMsgText = L_LicenseInternal_ErrorMessage
case 257 errMsgText = L_NoLicenseServer_ErrorMessage
case 258 errMsgText = L_NoLicense_ErrorMessage
case 259 errMsgText = L_LicenseBadClientMsg_ErrorMessage
case 260 errMsgText = L_LicenseHwidDoesntMatch_ErrorMessage
case 261 errMsgText = L_BadClientLicense_ErrorMessage
case 262 errMsgText = L_LicenseCantFinishProtocol_ErrorMessage
case 263 errMsgText = L_LicenseClientEndedProtocol_ErrorMessage
case 264 errMsgText = L_LicenseBadClientEncryption_ErrorMessage
case 265 errMsgText = L_CantUpgradeLicense_ErrorMessage
case 266 errMsgText = L_LicenseNoRemoteConnections_ErrorMessage
case else errMsgText = L_ErrMsg_Text
end select
if extendedDiscReason > 4096 then
errMsgText = L_ProtocolErrWITHCODE_ErrorMessage & errMsgText
end if
else
' no extended error information, use the disconnect code
select case disconnectCode
case 0 errMsgText = L_ErrMsg_Text
case 1 errMsgText = L_ErrMsg_Text
case 2 errMsgText = L_ErrMsg_Text
case 260 errMsgText = L_BadServerName_ErrorMessage
case 262 errMsgText = L_LowMemory_ErrorMessage
case 264 errMsgText = L_ConnectionTimeout_ErrorMessage
case 516 errMsgText = L_NotResponding_ErrorMessage
case 518 errMsgText = L_LowMemory_ErrorMessage
case 520 errMsgText = L_BadServerName_ErrorMessage
case 772 errMsgText = L_NetworkErr_ErrorMessage
case 774 errMsgText = L_LowMemory_ErrorMessage
case 776 errMsgText = L_BadServerName_ErrorMessage
case 1028 errMsgText = L_NetworkErr_ErrorMessage
case 1030 errMsgText = L_SecurityErr_ErrorMessage
case 1032 errMsgText = L_IllegalServerName_ErrorMessage
case 1286 errMsgText = L_EncryptionError_ErrorMessage
case 1288 errMsgText = L_BadServerName_ErrorMessage
case 1540 errMsgText = L_BadServerName_ErrorMessage
case 1542 errMsgText = L_SecurityErr_ErrorMessage
case 1544 errMsgText = L_LowMemory_ErrorMessage
case 1796 errMsgText = L_NotResponding_ErrorMessage
case 1798 errMsgText = L_SecurityErr_ErrorMessage
case 1800 errMsgText = L_CannotLoopBackConnect_ErrorMessage
case 2052 errMsgText = L_BadServerName_ErrorMessage
case 2056 errMsgText = L_LicensingNegotFailed_ErrorMessage
case 2310 errMsgText = L_SecurityErr_ErrorMessage
case 2566 errMsgText = L_SecurityErr_ErrorMessage
case 2822 errMsgText = L_EncryptionError_ErrorMessage
case 3078 errMsgText = L_EncryptionError_ErrorMessage
case 3080 errMsgText = L_DecompressionFailed_ErrorMessage
case 3334 errMsgText = L_ProtocolErr_ErrorMessage
case 10500 errMsgText = L_ProtocolErr_ErrorMessage
case else errMsgText = L_InternalErr_ErrorMessage
end select
end if
msgbox errMsgText,0,L_DisconnectedCaption_ErrorMessage
window.close()
end sub
-->
</script>
<object language="vbscript" id="MsRdpClient"
onreadystatechange="OnControlLoad"
classid="CLSID:9059f30f-4eb1-4bd2-9fdc-36f43a218f4a"
codebase="msrdp.cab#version=5,1,2600,2180"
width="100" height="100">
</object>
<form id="AspForm" runat="server">
</form>
</body>
</html>

View file

@ -0,0 +1,57 @@
// Copyright (c) 2011, 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.Virtualization;
using WebsitePanel.EnterpriseServer;
using Microsoft.Security.Application;
namespace WebsitePanel.Portal.VPSForPC.RemoteDesktop
{
public partial class Connect : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
resolution.Text = Request["Resolution"];
// load server info
VirtualMachine vm = VirtualMachinesHelper.GetCachedVirtualMachine(PanelRequest.ItemID);
litServerName.Text = vm.Name + " - ";
username.Text = "Administrator";
password.Text = vm.AdministratorPassword;
// load external network parameters
NetworkAdapterDetails nic = ES.Services.VPS.GetExternalNetworkAdapterDetails(PanelRequest.ItemID);
if (nic.IPAddresses.Length > 0)
{
NetworkAdapterIPAddress ip = nic.IPAddresses[0];
serverName.Text = !String.IsNullOrEmpty(ip.NATAddress) ? ip.NATAddress : ip.IPAddress;
}
}
}
}

View file

@ -0,0 +1,78 @@
//------------------------------------------------------------------------------
// <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.VPSForPC.RemoteDesktop {
public partial class Connect {
/// <summary>
/// litServerName 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 litServerName;
/// <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>
/// resolution 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 resolution;
/// <summary>
/// serverName 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 serverName;
/// <summary>
/// username 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 username;
/// <summary>
/// password 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 password;
/// <summary>
/// AspForm 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.HtmlForm AspForm;
}
}

View file

@ -0,0 +1,47 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestVirtualMachineTemplate.aspx.cs" Inherits="WebsitePanel.Portal.VPSForPC.TestVirtualMachineTemplate" %>
<%@ Register src="../UserControls/MessageBox.ascx" tagname="MessageBox" tagprefix="wsp" %>
<%@ Register src="../UserControls/SimpleMessageBox.ascx" tagname="SimpleMessageBox" tagprefix="uc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Test VPS Summary Template</title>
<style type="text/css">
BODY
{
background-color: #ffffff!important;
margin: 5px!important;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<h1>Test VPS Summary Template
</h1>
<uc1:SimpleMessageBox ID="messageBox" runat="server" />
<p>
Item ID: <br />
<asp:TextBox ID="txtItemId" runat="server" Width="50"></asp:TextBox>
</p>
<p>
Template:<br />
<asp:TextBox ID="txtTemplate" runat="server" Width="100%" Rows="20" TextMode="MultiLine"></asp:TextBox>
<br />
<asp:Button ID="btnEvaluate" runat="server" onclick="btnEvaluate_Click"
Text="Evaluate" />
</p>
<p>
Results:
<br />
<pre><asp:Literal ID="litResults" runat="server"></asp:Literal></pre>
</p>
</div>
</form>
</body>
</html>

View file

@ -0,0 +1,55 @@
// Copyright (c) 2011, 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.Web;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class TestVirtualMachineTemplate : System.Web.UI.Page
{
public const string EVALUATE_VIRTUAL_MACHINE_TEMPLATE = "EVALUATE_VIRTUAL_MACHINE_TEMPLATE";
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnEvaluate_Click(object sender, EventArgs e)
{
try
{
litResults.Text = HttpUtility.HtmlEncode(ES.Services.VPS.EvaluateVirtualMachineTemplate(Utils.ParseInt(txtItemId.Text.Trim(), 0), txtTemplate.Text));
}
catch (Exception ex)
{
messageBox.ShowErrorMessage(EVALUATE_VIRTUAL_MACHINE_TEMPLATE, ex);
}
}
}
}

View file

@ -0,0 +1,69 @@
//------------------------------------------------------------------------------
// <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.VPSForPC {
public partial class TestVirtualMachineTemplate {
/// <summary>
/// form1 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.HtmlForm form1;
/// <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>
/// txtItemId 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 txtItemId;
/// <summary>
/// txtTemplate 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 txtTemplate;
/// <summary>
/// btnEvaluate 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 btnEvaluate;
/// <summary>
/// litResults 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 litResults;
}
}

View file

@ -0,0 +1,120 @@
<?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>
</root>

View file

@ -0,0 +1,141 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Text.AccountVLanNetwork" xml:space="preserve">
<value>Available VLans</value>
</data>
<data name="Text.AuditLog" xml:space="preserve">
<value>Audit Log</value>
</data>
<data name="Text.ExternalNetwork" xml:space="preserve">
<value>External Network</value>
</data>
<data name="Text.ManagementNetwork" xml:space="preserve">
<value>Management Network</value>
</data>
<data name="Text.PrivateNetwork" xml:space="preserve">
<value>Private Network</value>
</data>
<data name="Text.UserPermissions" xml:space="preserve">
<value>User Permissions</value>
</data>
<data name="Text.Vps" xml:space="preserve">
<value>Virtual Private Servers</value>
</data>
</root>

View file

@ -0,0 +1,168 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="btnCancelOperation.OnClientClick" xml:space="preserve">
<value>return CancelOperation('Cancel current operation?', 'Cancelling operation...');</value>
</data>
<data name="Tab.AuditLog" xml:space="preserve">
<value>Audit Log</value>
</data>
<data name="Tab.Configuration" xml:space="preserve">
<value>Configuration</value>
</data>
<data name="Tab.DVD" xml:space="preserve">
<value>DVD</value>
</data>
<data name="Tab.General" xml:space="preserve">
<value>General</value>
</data>
<data name="Tab.Help" xml:space="preserve">
<value>Help</value>
</data>
<data name="Tab.Network" xml:space="preserve">
<value>Network</value>
</data>
<data name="Tab.Permissions" xml:space="preserve">
<value>Permissions</value>
</data>
<data name="Tab.Snapshots" xml:space="preserve">
<value>Snapshots</value>
</data>
<data name="Tab.Tools" xml:space="preserve">
<value>Tools</value>
</data>
<data name="locElapsed.Text" xml:space="preserve">
<value>Elapsed:</value>
</data>
<data name="locStarted.Text" xml:space="preserve">
<value>Started:</value>
</data>
<data name="Tab.EventsLog" xml:space="preserve">
<value>Events</value>
</data>
<data name="Tab.VpsMonitoring" xml:space="preserve">
<value>Monitoring</value>
</data>
<data name="Tab.AlertsLog" xml:space="preserve">
<value>Alerts</value>
</data>
<data name="Tab.VpsCheckPoints" xml:space="preserve">
<value>Check Points</value>
</data>
</root>

View file

@ -0,0 +1,4 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Breadcrumb.ascx.cs" Inherits="WebsitePanel.Portal.VPSForPC.UserControls.Breadcrumb" %>
<div class="Breadcrumb">
<asp:Literal ID="litSpaceName" runat="server"></asp:Literal>
</div>

View file

@ -0,0 +1,54 @@
// Copyright (c) 2011, 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.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal.VPSForPC.UserControls
{
public partial class Breadcrumb : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// bind package name
PackageInfo package = ES.Services.Packages.GetPackage(PanelSecurity.PackageId);
if (package != null)
{
litSpaceName.Text = package.PackageName;
}
}
}
}
}

View file

@ -0,0 +1,24 @@
//------------------------------------------------------------------------------
// <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.VPSForPC.UserControls {
public partial class Breadcrumb {
/// <summary>
/// litSpaceName 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 litSpaceName;
}
}

View file

@ -0,0 +1,4 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="FormTitle.ascx.cs" Inherits="WebsitePanel.Portal.VPSForPC.UserControls.FormTitle" %>
<asp:Literal ID="litTitle" runat="server" />
-
<asp:Literal ID="litServerName" runat="server" />

View file

@ -0,0 +1,53 @@
// Copyright (c) 2011, 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.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.Providers.Virtualization;
namespace WebsitePanel.Portal.VPSForPC.UserControls
{
public partial class FormTitle : WebsitePanelControlBase
{
public string Text
{
get { return litTitle.Text; }
set { litTitle.Text = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
VMInfo vm = VirtualMachinesForPCHelper.GetCachedVirtualMachineForPC(PanelRequest.ItemID);
if (vm != null && !String.IsNullOrWhiteSpace(vm.Name))
litServerName.Text = vm.Name;
}
}
}

View file

@ -0,0 +1,33 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.VPSForPC.UserControls {
public partial class FormTitle {
/// <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>
/// litServerName 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 litServerName;
}
}

View file

@ -0,0 +1,18 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Menu.ascx.cs" Inherits="WebsitePanel.Portal.VPSForPC.UserControls.Menu" %>
<div class="Menu">
<asp:DataList runat="server" ID="MenuItems" EnableViewState="false" RepeatDirection="Horizontal" RepeatLayout="Flow">
<ItemTemplate>
<div class="MenuItem">
<asp:HyperLink ID="lnkItem" runat="server" NavigateUrl='<%# Eval("Url") %>' Text='<%# Eval("Text") %>'/>
</div>
</ItemTemplate>
<SelectedItemTemplate>
<div class="SelectedMenuItem">
<asp:HyperLink ID="lnkItem" runat="server"
NavigateUrl='<%# Eval("Url") %>'
Text='<%# Eval("Text") %>'/>
</div>
</SelectedItemTemplate>
</asp:DataList>
</div>

View file

@ -0,0 +1,131 @@
// Copyright (c) 2011, 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.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal.VPSForPC.UserControls
{
public partial class Menu : WebsitePanelControlBase
{
public class MenuItem
{
private string url;
private string text;
private string key;
public string Url
{
get { return url; }
set { url = value; }
}
public string Text
{
get { return text; }
set { text = value; }
}
public string Key
{
get { return key; }
set { key = value; }
}
}
private string selectedItem;
public string SelectedItem
{
get { return selectedItem; }
set { selectedItem = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
BindMenu();
}
private void BindMenu()
{
bool isAdmin = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator);
// build the list of menu items
List<MenuItem> items = new List<MenuItem>();
// load package context
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
// add items
items.Add(CreateMenuItem("Vps", ""));
if(cntx.Quotas.ContainsKey(Quotas.VPS_EXTERNAL_NETWORK_ENABLED)
&& !cntx.Quotas[Quotas.VPS_EXTERNAL_NETWORK_ENABLED].QuotaExhausted
|| (PanelSecurity.PackageId == 1 && isAdmin))
items.Add(CreateMenuItem("ExternalNetwork", "vdc_external_network"));
if (isAdmin)
items.Add(CreateMenuItem("ManagementNetwork", "vdc_management_network"));
if (cntx.Quotas.ContainsKey(Quotas.VPS_PRIVATE_NETWORK_ENABLED)
&& !cntx.Quotas[Quotas.VPS_PRIVATE_NETWORK_ENABLED].QuotaExhausted)
items.Add(CreateMenuItem("PrivateNetwork", "vdc_private_network"));
items.Add(CreateMenuItem("AccountVLanNetwork", "vdc_account_vlan_network"));
//items.Add(CreateMenuItem("UserPermissions", "vdc_permissions"));
items.Add(CreateMenuItem("AuditLog", "vdc_audit_log"));
// selected menu item
for (int i = 0; i < items.Count; i++)
{
if (String.Compare(items[i].Key, SelectedItem, true) == 0)
{
MenuItems.SelectedIndex = i;
break;
}
}
// bind items
MenuItems.DataSource = items;
MenuItems.DataBind();
}
private MenuItem CreateMenuItem(string text, string key)
{
MenuItem item = new MenuItem();
item.Key = key;
item.Text = GetLocalizedString("Text." + text);
item.Url = HostModule.EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), key);
return item;
}
}
}

View file

@ -0,0 +1,24 @@
//------------------------------------------------------------------------------
// <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.VPSForPC.UserControls {
public partial class Menu {
/// <summary>
/// MenuItems control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DataList MenuItems;
}
}

View file

@ -0,0 +1,75 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ServerTabs.ascx.cs"
Inherits="WebsitePanel.Portal.VPSForPC.UserControls.ServerTabs" %>
<%@ Register Src="../../UserControls/Gauge.ascx" TagName="Gauge" TagPrefix="wsp" %>
<%@ Register Src="../../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<asp:Timer runat="server" Interval="3000" ID="refreshTimer" />
<asp:UpdatePanel ID="TabsPanel" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="refreshTimer" EventName="Tick" />
</Triggers>
<ContentTemplate>
<table id="TaskTable" runat="server" visible="false">
<tr>
<td>
<asp:Literal ID="litTaskName" runat="server"></asp:Literal>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td>
<asp:Localize ID="locStarted" runat="server" Text="Started:" meta:resourcekey="locStarted"></asp:Localize>
<asp:Literal ID="litStarted" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locElapsed" runat="server" Text="Elapsed:" meta:resourcekey="locElapsed"></asp:Localize>
<asp:Literal ID="litElapsed" runat="server"></asp:Literal>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td>
<asp:Repeater ID="repRecords" runat="server"
onitemdatabound="repRecords_ItemDataBound">
<ItemTemplate>
<div style="padding: 2px;">
<asp:Literal ID="litRecord" runat="server"></asp:Literal>
<wsp:Gauge id="gauge" runat="server" OneColour="true" />
</div>
</ItemTemplate>
</asp:Repeater>
</td>
</tr>
</table>
<table id="TabsTable" runat="server" width="100%" cellpadding="0" cellspacing="1" visible="false">
<tr>
<td class="Tabs">
&nbsp;&nbsp;
<asp:DataList ID="dlTabs" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow"
EnableViewState="false">
<ItemStyle Wrap="False" />
<ItemTemplate>
<asp:HyperLink ID="lnkTab" runat="server" CssClass="Tab" NavigateUrl='<%# Eval("Url") %>'>
<%# Eval("Name") %>
</asp:HyperLink>
</ItemTemplate>
<SelectedItemStyle Wrap="False" />
<SelectedItemTemplate>
<asp:HyperLink ID="lnkSelTab" runat="server" CssClass="ActiveTab" NavigateUrl='<%# Eval("Url") %>'>
<%# Eval("Name") %>
</asp:HyperLink>
</SelectedItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
<br />
<wsp:SimpleMessageBox id="messageBox" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>

View file

@ -0,0 +1,240 @@
// Copyright (c) 2011, 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.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.Providers.ResultObjects;
using WebsitePanel.Providers.Virtualization;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal.VPSForPC.UserControls
{
public partial class ServerTabs : WebsitePanelControlBase
{
class Tab
{
string id;
string name;
string url;
public Tab(string id, string name, string url)
{
this.id = id;
this.name = name;
this.url = url;
}
public string Id
{
get { return this.id; }
set { this.id = value; }
}
public string Name
{
get { return this.name; }
set { this.name = value; }
}
public string Url
{
get { return this.url; }
set { this.url = value; }
}
}
private string selectedTab;
public string SelectedTab
{
get { return selectedTab; }
set { selectedTab = value; }
}
private BackgroundTask task = null;
protected void Page_Load(object sender, EventArgs e)
{
BindTabs();
}
private void BindTabs()
{
// load item
VMInfo vm = VirtualMachinesForPCHelper.GetCachedVirtualMachineForPC(PanelRequest.ItemID);
if (!String.IsNullOrEmpty(vm.CurrentTaskId))
{
// show panel
TaskTable.Visible = true;
// bind task details
BindTask(vm);
return;
}
if (TaskTable.Visible)
Response.Redirect(Request.Url.ToString()); // refresh screen
// show tabs
TabsTable.Visible = true;
// disable timer
refreshTimer.Enabled = false;
// check if VPS created with error
bool createError = ((vm.ProvisioningStatus == VirtualMachineProvisioningStatus.Error) || (vm.State == VMComputerSystemStateInfo.CreationFailed));
// load package context
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
// build tabs list
List<Tab> tabsList = new List<Tab>();
tabsList.Add(CreateTab("vps_general", "Tab.General"));
if (!createError)
tabsList.Add(CreateTab("vps_config", "Tab.Configuration"));
if (vm.DvdDriver && !createError)
tabsList.Add(CreateTab("vps_dvd", "Tab.DVD"));
//if (vm.SnapshotsNumber > 0 && !createError)
// tabsList.Add(CreateTab("vps_snapshots", "Tab.Snapshots"));
//if ((vm.ExternalNetworkEnabled || vm.PrivateNetworkEnabled) && !createError)
// tabsList.Add(CreateTab("vps_network", "Tab.Network"));
//tabsList.Add(CreateTab("vps_permissions", "Tab.Permissions"));
//tabsList.Add(CreateTab("vps_tools", "Tab.Tools"));
tabsList.Add(CreateTab("vps_audit_log", "Tab.AuditLog"));
tabsList.Add(CreateTab("vps_events_log", "Tab.EventsLog"));
tabsList.Add(CreateTab("vps_alerts_log", "Tab.AlertsLog"));
tabsList.Add(CreateTab("vps_monitoring", "Tab.VpsMonitoring"));
if (vm.SnapshotsNumber > 0 && !createError)
tabsList.Add(CreateTab("vps_checkpoints", "Tab.VpsCheckPoints"));
//if (!createError)
// tabsList.Add(CreateTab("vps_help", "Tab.Help"));
// find selected menu item
int idx = 0;
foreach (Tab tab in tabsList)
{
if (String.Compare(tab.Id, SelectedTab, true) == 0)
break;
idx++;
}
dlTabs.SelectedIndex = idx;
dlTabs.DataSource = tabsList;
dlTabs.DataBind();
// show provision error message
if(createError && idx == 0)
messageBox.ShowErrorMessage("VPS_PROVISION_ERROR");
}
private void BindTask(VMInfo vm)
{
task = ES.Services.Tasks.GetTaskWithLogRecords(vm.CurrentTaskId, DateTime.MinValue);
if (task == null)
return;
// bind task details
litTaskName.Text = String.Format("{0} &quot;{1}&quot;",
GetAuditLogTaskName(task.Source, task.TaskName),
task.ItemName);
// time
litStarted.Text = task.StartDate.ToString("T");
TimeSpan d = (TimeSpan)(DateTime.Now - task.StartDate);
litElapsed.Text = new TimeSpan(d.Hours, d.Minutes, d.Seconds).ToString();
// bind records
repRecords.DataSource = task.LastLogRecords;
repRecords.DataBind();
}
private Tab CreateTab(string id, string text)
{
return new Tab(id, GetLocalizedString(text),
HostModule.EditUrl("ItemID", PanelRequest.ItemID.ToString(), id,
"SpaceID=" + PanelSecurity.PackageId.ToString()));
}
private Tab CreateTab(string id, string text, bool disabled)
{
return new Tab(id, GetLocalizedString(text), (disabled ? String.Empty :
HostModule.EditUrl("ItemID", PanelRequest.ItemID.ToString(), id,
"SpaceID=" + PanelSecurity.PackageId.ToString())));
}
protected void repRecords_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
BackgroundTaskLogRecord record = (BackgroundTaskLogRecord)e.Item.DataItem;
Literal litRecord = (Literal)e.Item.FindControl("litRecord");
Gauge gauge = (Gauge)e.Item.FindControl("gauge");
if (litRecord != null)
{
string text = record.Text;
// localize text
string locText = GetSharedLocalizedString("TaskActivity." + text);
if (locText != null)
text = locText;
// format parameters
if (record.TextParameters != null
&& record.TextParameters.Length > 0
&& record.Severity == 0)
text = String.Format(text, record.TextParameters);
litRecord.Text = text;
// gauge
gauge.Visible = false;
if (e.Item.ItemIndex == task.LastLogRecords.Count - 1)
{
gauge.Visible = true;
gauge.Total = task.IndicatorMaximum;
gauge.Progress = task.IndicatorCurrent;
}
}
}
}
}

View file

@ -0,0 +1,123 @@
//------------------------------------------------------------------------------
// <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.VPSForPC.UserControls {
public partial class ServerTabs {
/// <summary>
/// refreshTimer control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.Timer refreshTimer;
/// <summary>
/// TabsPanel control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.UpdatePanel TabsPanel;
/// <summary>
/// TaskTable 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 TaskTable;
/// <summary>
/// litTaskName 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 litTaskName;
/// <summary>
/// locStarted 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 locStarted;
/// <summary>
/// litStarted 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 litStarted;
/// <summary>
/// locElapsed 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 locElapsed;
/// <summary>
/// litElapsed 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 litElapsed;
/// <summary>
/// repRecords 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.Repeater repRecords;
/// <summary>
/// TabsTable 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 TabsTable;
/// <summary>
/// dlTabs control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.DataList dlTabs;
/// <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;
}
}

View file

@ -0,0 +1,63 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VdcAccountVLanAdd.ascx.cs"
Inherits="WebsitePanel.Portal.VdcAccountVLanAdd" %>
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
<div id="VpsContainer">
<div class="Module">
<div class="Header">
<wsp:breadcrumb id="breadcrumb" runat="server" />
</div>
<div class="Left">
<wsp:menu id="menu" runat="server" selecteditem="vdc_account_vlan_network" />
</div>
<div class="Content">
<div class="Center">
<div class="Title">
<asp:Image ID="imgIcon" SkinID="VLanNetwork" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Add VLan to user"></asp:Localize>
</div>
<div class="FormBody">
<table cellspacing="0" cellpadding="2" width="100%">
<tr>
<td class="SubHead" style="width: 150px;">
<asp:Label ID="lblUsername2" runat="server" meta:resourcekey="lblUsername" Text="Username:"></asp:Label>
</td>
<td class="Huge">
<asp:Literal ID="lblUsername" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="SubHead" valign="top">
<asp:Label ID="lblVLanID" runat="server" meta:resourcekey="lblVLanID" Text="VLan:" />
</td>
<td>
<asp:TextBox ID="tbVLanID" runat="server" CssClass="NormalTextBox" />
<asp:RequiredFieldValidator ID="VLanIDValidator" runat="server" ErrorMessage="*"
Display="Dynamic" ControlToValidate="tbVLanID" />
<asp:RegularExpressionValidator ID="VLanIDRegExpValidator" runat="server" ErrorMessage="*"
Display="Dynamic" ControlToValidate="tbVLanID" ValidationExpression="^\d+$" />
</td>
</tr>
<tr>
<td class="SubHead" valign="top">
<asp:Label ID="lblComment" runat="server" meta:resourcekey="lblComment" Text="Comment:" />
</td>
<td class="NormalBold">
<asp:TextBox ID="tbComment" runat="server" TextMode="MultiLine" />
</td>
</tr>
</table>
<div class="FormFooter">
<asp:Button ID="btAddVLan" runat="server" meta:resourcekey="btAddVLan" CssClass="Button3"
Text="Add" OnClick="btAddVLan_Click" />
<asp:Button ID="btnCancel" CssClass="Button1" runat="server" meta:resourcekey="btnCancel"
CausesValidation="False" Text="Cancel" OnClick="btnCancel_Click" />
</div>
</div>
</div>
<div class="Right">
<asp:Localize ID="FormComments" runat="server" meta:resourcekey="FormComments"></asp:Localize>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,93 @@
// Copyright (c) 2011, Outercurve Foundation.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// - Neither the name of the Outercurve Foundation nor the names of its
// contributors may be used to endorse or promote products derived from this
// software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal
{
public partial class VdcAccountVLanAdd : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindUser();
}
}
private void BindUser()
{
try
{
UserInfo user = UsersHelper.GetUser(PanelSecurity.SelectedUserId);
if (user != null)
{
// account info
lblUsername.Text = user.Username;
}
}
catch (Exception ex)
{
ShowErrorMessage("USER_GET_USER", ex);
return;
}
}
protected void btAddVLan_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
return;
UsersHelper.AddUserVLan(PanelSecurity.SelectedUserId, new UserVlan { VLanID = ushort.Parse(tbVLanID.Text), Comment = tbComment.Text });
RedirectBack();
}
protected void btnCancel_Click(object sender, EventArgs e)
{
RedirectBack();
}
private void RedirectBack()
{
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "vdc_account_vlan_network"));
}
}
}

View file

@ -0,0 +1,150 @@
//------------------------------------------------------------------------------
// <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 VdcAccountVLanAdd {
/// <summary>
/// breadcrumb control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Breadcrumb breadcrumb;
/// <summary>
/// menu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Menu menu;
/// <summary>
/// imgIcon 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 imgIcon;
/// <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>
/// lblUsername2 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 lblUsername2;
/// <summary>
/// lblUsername 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 lblUsername;
/// <summary>
/// lblVLanID 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 lblVLanID;
/// <summary>
/// tbVLanID 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 tbVLanID;
/// <summary>
/// VLanIDValidator 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 VLanIDValidator;
/// <summary>
/// VLanIDRegExpValidator 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 VLanIDRegExpValidator;
/// <summary>
/// lblComment 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 lblComment;
/// <summary>
/// tbComment 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 tbComment;
/// <summary>
/// btAddVLan 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 btAddVLan;
/// <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>
/// FormComments 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 FormComments;
}
}

View file

@ -0,0 +1,43 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VdcAccountVLanNetwork.ascx.cs"
Inherits="WebsitePanel.Portal.VPSForPC.VdcAccountVLanNetwork" %>
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
<div id="VpsContainer">
<div class="Module">
<div class="Header">
<wsp:Breadcrumb id="breadcrumb" runat="server" />
</div>
<div class="Left">
<wsp:Menu id="menu" runat="server" SelectedItem="vdc_account_vlan_network" />
</div>
<div class="Content">
<div class="Center">
<div class="Title">
<asp:Image ID="Image1" SkinID="VLanNetwork" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Available VLans"></asp:Localize>
</div>
<div class="FormBody">
<asp:Button ID="btnAddVlan" runat="server" meta:resourcekey="btnAddVlan" Text="Add"
CssClass="Button1" OnClick="btnAddVlan_Click" />
<br />
<asp:GridView ID="gvVlans" runat="server" AutoGenerateColumns="false" CssSelectorClass="NormalGridView"
EmptyDataText="User has no VLANs" OnRowCommand="gvVlans_RowCommand">
<Columns>
<asp:BoundField DataField="VLanID" HeaderText="VLan" />
<asp:BoundField DataField="Comment" HeaderText="Comment" ItemStyle-Wrap="true" />
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="cmdDelete" runat="server" Text="Delete" SkinID="VpsDelete" CommandName="DeleteItem"
CommandArgument='<%# Eval("VLanID") %>' meta:resourcekey="cmdDelete" OnClientClick="return confirm('Remove this item?');" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
<div class="Right">
<asp:Localize ID="FormComments" runat="server" meta:resourcekey="FormComments"></asp:Localize>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,74 @@
// Copyright (c) 2011, 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.Web.UI.WebControls;
using WebsitePanel.Providers.Common;
using WebsitePanel.EnterpriseServer;
using WebsitePanel.WebPortal;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class VdcAccountVLanNetwork : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindAccount();
}
private void BindAccount()
{
// load user
UserInfo user = UsersHelper.GetUser(PanelSecurity.SelectedUserId);
if (user != null)
{
// Allow edit
gvVlans.Columns[2].Visible = btnAddVlan.Visible = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator);
gvVlans.DataSource = user.Vlans;
gvVlans.DataBind();
}
}
protected void gvVlans_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "DeleteItem")
{
UsersHelper.DeleteUserVlan(PanelSecurity.SelectedUserId, ushort.Parse(e.CommandArgument.ToString(), 0));
BindAccount();
}
}
protected void btnAddVlan_Click(object sender, EventArgs e)
{
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "vdc_account_vLan_add"));
}
}
}

View file

@ -0,0 +1,78 @@
//------------------------------------------------------------------------------
// <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.VPSForPC {
public partial class VdcAccountVLanNetwork {
/// <summary>
/// breadcrumb control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Breadcrumb breadcrumb;
/// <summary>
/// menu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Menu menu;
/// <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>
/// btnAddVlan 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 btnAddVlan;
/// <summary>
/// gvVlans 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 gvVlans;
/// <summary>
/// FormComments 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 FormComments;
}
}

View file

@ -0,0 +1,42 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VdcAddExternalAddress.ascx.cs" Inherits="WebsitePanel.Portal.VPSForPC.VdcAddExternalAddress" %>
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/AllocatePackageIPAddresses.ascx" TagName="AllocatePackageIPAddresses" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
<div id="VpsContainer">
<div class="Module">
<div class="Header">
<wsp:Breadcrumb id="breadcrumb" runat="server" />
</div>
<div class="Left">
<wsp:Menu id="menu" runat="server" SelectedItem="vdc_external_network" />
</div>
<div class="Content">
<div class="Center">
<div class="Title">
<asp:Image ID="imgIcon" SkinID="Network48" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Allocate IP Addresses"></asp:Localize>
</div>
<div class="FormBody">
<wsp:AllocatePackageIPAddresses id="allocateAddresses" runat="server"
Pool="VpsExternalNetwork"
ResourceGroup="VPS"
ListAddressesControl="vdc_external_network" />
</div>
</div>
<div class="Right">
<asp:Localize ID="FormComments" runat="server" meta:resourcekey="FormComments"></asp:Localize>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,43 @@
// Copyright (c) 2011, 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.Web.UI.WebControls;
using WebsitePanel.Providers.Common;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class VdcAddExternalAddress : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

View file

@ -0,0 +1,78 @@
//------------------------------------------------------------------------------
// <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.VPSForPC {
public partial class VdcAddExternalAddress {
/// <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>
/// breadcrumb control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Breadcrumb breadcrumb;
/// <summary>
/// menu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Menu menu;
/// <summary>
/// imgIcon 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 imgIcon;
/// <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>
/// allocateAddresses control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.AllocatePackageIPAddresses allocateAddresses;
/// <summary>
/// FormComments 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 FormComments;
}
}

View file

@ -0,0 +1,37 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VdcAuditLog.ascx.cs" Inherits="WebsitePanel.Portal.VPSForPC.VdcAuditLog" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/PopupHeader.ascx" TagName="PopupHeader" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/AuditLogControl.ascx" TagName="AuditLogControl" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
<div id="VpsContainer">
<div class="Module">
<div class="Header">
<wsp:Breadcrumb id="breadcrumb" runat="server" />
</div>
<div class="Left">
<wsp:Menu id="menu" runat="server" SelectedItem="vdc_audit_log" />
</div>
<div class="Content">
<div class="Center">
<div class="Title">
<asp:Image ID="imgIcon" SkinID="AuditLog48" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Audit Log"></asp:Localize>
</div>
<div class="FormBody">
<wsp:AuditLogControl id="auditLog" runat="server" LogSource="VPSForPC" />
</div>
</div>
<div class="Right">
<asp:Localize ID="FormComments" runat="server" meta:resourcekey="FormComments"></asp:Localize>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,44 @@
// Copyright (c) 2011, 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.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class VdcAuditLog : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

View file

@ -0,0 +1,69 @@
//------------------------------------------------------------------------------
// <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.VPSForPC {
public partial class VdcAuditLog {
/// <summary>
/// breadcrumb control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Breadcrumb breadcrumb;
/// <summary>
/// menu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Menu menu;
/// <summary>
/// imgIcon 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 imgIcon;
/// <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>
/// auditLog control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.AuditLogControl auditLog;
/// <summary>
/// FormComments 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 FormComments;
}
}

View file

@ -0,0 +1,476 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VdcCreateServer.ascx.cs"
Inherits="WebsitePanel.Portal.VPSForPC.VdcCreate" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox"
TagPrefix="wsp" %>
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/PasswordControl.ascx" TagName="PasswordControl"
TagPrefix="wsp" %>
<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel"
TagPrefix="wsp" %>
<%@ Register Src="../UserControls/CheckBoxOption.ascx" TagName="CheckBoxOption" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport"
TagPrefix="wsp" %>
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server" />
<div id="VpsContainer">
<div class="Module">
<div class="Header">
<wsp:Breadcrumb id="breadcrumb" runat="server" />
</div>
<div class="Left">
<wsp:Menu id="menu" runat="server" SelectedItem="" />
</div>
<div class="Content">
<div class="Center">
<div class="Title">
<asp:Image ID="imgIcon" SkinID="AddServer48" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Create New VM"></asp:Localize>
</div>
<div class="FormBody">
<wsp:SimpleMessageBox id="messageBox" runat="server" />
<asp:ValidationSummary ID="validatorsSummary" runat="server" ValidationGroup="VpsWizard"
ShowMessageBox="True" ShowSummary="False" />
<asp:Wizard ID="wizard" runat="server" meta:resourcekey="wizard" CellSpacing="5"
OnFinishButtonClick="wizard_FinishButtonClick" OnSideBarButtonClick="wizard_SideBarButtonClick"
OnActiveStepChanged="wizard_ActiveStepChanged" OnNextButtonClick="wizard_NextButtonClick">
<SideBarStyle CssClass="SideBar" VerticalAlign="Top" />
<StepStyle VerticalAlign="Top" />
<StartNavigationTemplate>
<asp:Button ID="btnNext" runat="server" CommandName="MoveNext" ValidationGroup="VpsWizard"
CssClass="Button1" Text="Next" meta:resourcekey="btnNext" />
</StartNavigationTemplate>
<StepNavigationTemplate>
<asp:Button ID="btnPrevious" runat="server" CommandName="MovePrevious" ValidationGroup="VpsWizard"
CssClass="Button1" Text="Previous" meta:resourcekey="btnPrevious" />
<asp:Button ID="btnNext" runat="server" CommandName="MoveNext" ValidationGroup="VpsWizard"
CssClass="Button1" Text="Next" meta:resourcekey="btnNext" />
</StepNavigationTemplate>
<FinishNavigationTemplate>
<asp:Button ID="btnPrevious" runat="server" CommandName="MovePrevious" ValidationGroup="VpsWizard"
CssClass="Button1" Text="Previous" meta:resourcekey="btnPrevious" />
<asp:Button ID="btnFinish" runat="server" CommandName="MoveComplete" ValidationGroup="VpsWizard"
CssClass="Button1" Text="Finish" meta:resourcekey="btnFinish" />
</FinishNavigationTemplate>
<WizardSteps>
<asp:WizardStep ID="stepName" runat="server" meta:resourcekey="stepName" Title="Name and OS">
<p class="SubTitle">
<asp:Localize ID="locNameStepTitle" runat="server" meta:resourcekey="locNameStepTitle"
Text="Name and Operating System" /></p>
<br />
<table>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td class="FormLabel150">
<asp:Localize ID="locOperatingSystem" runat="server" meta:resourcekey="locOperatingSystem"
Text="Operating system:"></asp:Localize>
</td>
<td>
<asp:DropDownList ID="listOperatingSystems" runat="server" DataValueField="Path"
DataTextField="Name">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="OperatingSystemValidator" runat="server" Text="*"
Display="Dynamic" ControlToValidate="listOperatingSystems" meta:resourcekey="OperatingSystemValidator"
SetFocusOnError="true" ValidationGroup="VpsWizard">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td class="FormLabel150" valign="top">
<asp:Localize ID="Localize3" runat="server" meta:resourcekey="VMName" Text="VM Name:"></asp:Localize>
</td>
<td>
<asp:TextBox ID="txtVmName" runat="server" ValidationGroup="VpsWizard">
</asp:TextBox>
<asp:RequiredFieldValidator ID="vmNameValidator" runat="server" Text="*" Display="Dynamic"
ControlToValidate="txtVmName" meta:resourcekey="vmNameValidator" SetFocusOnError="true"
ValidationGroup="VpsWizard">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td class="FormLabel150">
<asp:CheckBox ID="chkSendSummary" runat="server" AutoPostBack="true" Checked="true"
meta:resourcekey="chkSendSummary" Text="Send summary letter to:" />
</td>
<td>
<asp:TextBox ID="txtSummaryEmail" runat="server" CssClass="NormalTextBox" AutoPostBack="true"></asp:TextBox>
<asp:RequiredFieldValidator ID="SummaryEmailValidator" runat="server" Text="*" Display="Dynamic"
ControlToValidate="txtSummaryEmail" meta:resourcekey="SummaryEmailValidator"
SetFocusOnError="true" ValidationGroup="VpsWizard">*</asp:RequiredFieldValidator>
</td>
</tr>
</table>
<br />
</asp:WizardStep>
<asp:WizardStep ID="stepConfig" runat="server" meta:resourcekey="stepConfig" Title="Configuration">
<p class="SubTitle">
<asp:Localize ID="locConfigStepTitle" runat="server" meta:resourcekey="locConfigStepTitle"
Text="Configuration" /></p>
<br />
<wsp:CollapsiblePanel id="secResources" runat="server" TargetControlID="ResourcesPanel"
meta:resourcekey="secResources" Text="Resources">
</wsp:CollapsiblePanel>
<asp:Panel ID="ResourcesPanel" runat="server" Height="0" Style="overflow: hidden;
padding: 10px; width: 400px;">
<table cellpadding="3">
<tr>
<td style="width: 60px;">
<asp:Label ID="lblCpu" runat="server" AssociatedControlID="ddlCpu" meta:resourcekey="lblCpu"
Text="CPU:" CssClass="MediumBold" />
</td>
<td>
<asp:DropDownList ID="ddlCpu" runat="server" CssClass="HugeTextBox" Width="70">
</asp:DropDownList>
</td>
<td>
<asp:Localize ID="locCores" runat="server" meta:resourcekey="locCores" Text="cores" />
</td>
</tr>
</table>
<table cellpadding="3">
<tr>
<td style="width: 60px;">
<asp:Label ID="lblRam" runat="server" AssociatedControlID="txtRam" meta:resourcekey="lblRam"
Text="RAM:" CssClass="MediumBold" />
</td>
<td>
<asp:TextBox ID="txtRam" runat="server" CssClass="HugeTextBox" Width="70" Text="0"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequireRamValidator" runat="server" Text="*" Display="Dynamic"
ControlToValidate="txtRam" meta:resourcekey="RequireRamValidator" SetFocusOnError="true"
ValidationGroup="VpsWizard">*</asp:RequiredFieldValidator>
</td>
<td>
<asp:Localize ID="locMB" runat="server" meta:resourcekey="locMB" Text="MB" />
</td>
</tr>
</table>
<table cellpadding="3">
<tr>
<td style="width: 60px;">
<asp:Label ID="lblHdd" runat="server" AssociatedControlID="txtHdd" meta:resourcekey="lblHdd"
Text="HDD:" CssClass="MediumBold" />
</td>
<td>
<asp:TextBox ID="txtHdd" runat="server" CssClass="HugeTextBox" Width="70" Text="0"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequireHddValidator" runat="server" Text="*" Display="Dynamic"
ControlToValidate="txtHdd" meta:resourcekey="RequireHddValidator" SetFocusOnError="true"
ValidationGroup="VpsWizard">*</asp:RequiredFieldValidator>
</td>
<td>
<asp:Localize ID="locGB" runat="server" meta:resourcekey="locGB" Text="GB" />
</td>
</tr>
</table>
</asp:Panel>
<%-- <wsp:CollapsiblePanel id="secSnapshots" runat="server" TargetControlID="SnapshotsPanel"
meta:resourcekey="secSnapshots" Text="Snapshots">
</wsp:CollapsiblePanel>
<asp:Panel ID="SnapshotsPanel" runat="server" Height="0" Style="overflow: hidden;
padding: 5px;">
<table>
<tr>
<td class="FormLabel150">
<asp:Localize ID="locSnapshots" runat="server" meta:resourcekey="locSnapshots" Text="Number of snapshots:"></asp:Localize>
</td>
<td>
<asp:TextBox ID="txtSnapshots" runat="server" CssClass="NormalTextBox" Width="50"
Text="0"></asp:TextBox>
<asp:RequiredFieldValidator ID="SnapshotsValidator" runat="server" Text="*" Display="Dynamic"
ControlToValidate="txtSnapshots" meta:resourcekey="SnapshotsValidator" SetFocusOnError="true"
ValidationGroup="VpsWizard">*</asp:RequiredFieldValidator>
</td>
</tr>
</table>
</asp:Panel>
<wsp:CollapsiblePanel id="secDvd" runat="server" TargetControlID="DvdPanel" meta:resourcekey="secDvd"
Text="DVD">
</wsp:CollapsiblePanel>
<asp:Panel ID="DvdPanel" runat="server" Height="0" Style="overflow: hidden; padding: 5px;">
<table>
<tr>
<td>
<asp:CheckBox ID="chkDvdInstalled" runat="server" Text="DVD drive installed" meta:resourcekey="chkDvdInstalled" />
</td>
</tr>
</table>
</asp:Panel>
<wsp:CollapsiblePanel id="secBios" runat="server" TargetControlID="BiosPanel" meta:resourcekey="secBios"
Text="BIOS">
</wsp:CollapsiblePanel>
<asp:Panel ID="BiosPanel" runat="server" Height="0" Style="overflow: hidden; padding: 5px;">
<table>
<tr>
<td style="width: 200px;">
<asp:CheckBox ID="chkBootFromCd" runat="server" Text="Boot from CD" meta:resourcekey="chkBootFromCd" />
</td>
<td>
<asp:CheckBox ID="chkNumLock" runat="server" Text="Num Lock enabled" meta:resourcekey="chkNumLock" />
</td>
</tr>
</table>
</asp:Panel> --%>
<wsp:CollapsiblePanel id="secActions" runat="server" TargetControlID="ActionsPanel"
meta:resourcekey="secActions" Text="Allowed actions">
</wsp:CollapsiblePanel>
<asp:Panel ID="ActionsPanel" runat="server" Height="0" Style="overflow: hidden; padding: 5px;">
<table style="width: 400px;">
<tr>
<td style="width: 200px;">
<asp:CheckBox ID="chkStartShutdown" runat="server" Text="Start, Turn off and Shutdown"
meta:resourcekey="chkStartShutdown" />
</td>
<td>
<asp:CheckBox ID="chkReset" runat="server" Text="Reset" meta:resourcekey="chkReset" />
</td>
</tr>
<tr>
<td>
<asp:CheckBox ID="chkPauseResume" runat="server" Text="Pause, Resume" meta:resourcekey="chkPauseResume" />
</td>
<td>
<asp:CheckBox ID="chkReinstall" runat="server" Text="Re-install" meta:resourcekey="chkReinstall" />
</td>
</tr>
<tr>
<td>
<asp:CheckBox ID="chkReboot" runat="server" Text="Reboot" meta:resourcekey="chkReboot" />
</td>
<td>
</td>
</tr>
</table>
</asp:Panel>
<br />
</asp:WizardStep>
<asp:WizardStep ID="stepPrivateNetwork" runat="server" meta:resourcekey="stepPrivateNetwork"
Title="Private network">
<p class="SubTitle">
<asp:Localize ID="locPrivateNetwork" runat="server" meta:resourcekey="locPrivateNetwork"
Text="Private Network" /></p>
<br />
<p>
<asp:CheckBox ID="chkPrivateNetworkEnabled" runat="server" AutoPostBack="true" Checked="true"
meta:resourcekey="chkPrivateNetworkEnabled" Text="Private network enabled" />
</p>
<p runat="server" id="pVLanListIsEmptyMessage">User account does not have available VLans</p>
<table id="tablePrivateNetwork" runat="server" cellspacing="5" style="width: 100%;">
<tr>
<td>
<asp:Localize ID="lvPrivateVLanID" Text="VLanID" runat="server" />
</td>
<td>
<asp:DropDownList ID="ddlPrivateVLanID" runat="server" DataTextField="VLanID" DataValueField="VLanID" EnableViewState="true" />
</td>
</tr>
</table>
<br />
</asp:WizardStep>
<asp:WizardStep ID="stepExternalNetwork" runat="server" meta:resourcekey="stepExternalNetwork"
Title="External network" >
<p class="SubTitle">
<asp:Localize ID="locExternalNetwork" runat="server" meta:resourcekey="locExternalNetwork"
Text="External Network" /></p>
<br />
<p>
<asp:CheckBox ID="chkExternalNetworkEnabled" runat="server" AutoPostBack="true" Checked="true"
meta:resourcekey="chkExternalNetworkEnabled" Text="External network enabled" />
</p>
<div runat="server" id="EmptyExternalAddressesMessage" style="padding: 5px;" visible="false">
<asp:Localize ID="locNotEnoughExternalAddresses" runat="server" Text="Not enough..."
meta:resourcekey="locNotEnoughExternalAddresses"></asp:Localize>
</div>
<br />
</asp:WizardStep>
<asp:WizardStep ID="stepSummary" runat="server" meta:resourcekey="stepSummary" Title="Summary">
<p class="SubTitle">
<asp:Localize ID="locSummary" runat="server" meta:resourcekey="locSummary" Text="Summary" /></p>
<br />
<table cellspacing="6">
<tr>
<td colspan="2" class="NormalBold">
<asp:Localize ID="locNameStepTitle2" runat="server" meta:resourcekey="locNameStepTitle"
Text="Name and Operating System" />
</td>
</tr>
<tr>
<td>
<asp:Localize ID="Localize1" runat="server" meta:resourcekey="locHostname" Text="Host name"></asp:Localize>
</td>
<td>
<asp:Literal ID="litHostname" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td>
<asp:Localize ID="Localize2" runat="server" meta:resourcekey="locOperatingSystem"
Text="Operating system"></asp:Localize>
</td>
<td>
<asp:Literal ID="litOperatingSystem" runat="server"></asp:Literal>
</td>
</tr>
<tr id="SummSummaryEmailRow" runat="server">
<td>
<asp:Localize ID="locSendSummary" runat="server" meta:resourcekey="chkSendSummary"
Text="Send summary letter to"></asp:Localize>
</td>
<td>
<asp:Literal ID="litSummaryEmail" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td colspan="2" class="NormalBold">
<asp:Localize ID="locConfig2" runat="server" meta:resourcekey="locConfigStepTitle"
Text="Configuration" />
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locCpu" runat="server" meta:resourcekey="locCpu" Text="CPU cores:" />
</td>
<td>
<asp:Literal ID="litCpu" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locRam" runat="server" meta:resourcekey="locRam" Text="RAM, MB:" />
</td>
<td>
<asp:Literal ID="litRam" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locHdd" runat="server" meta:resourcekey="locHdd" Text="Hard disk size, GB:" />
</td>
<td>
<asp:Literal ID="litHdd" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locStartShutdownAllowed" runat="server" meta:resourcekey="locStartShutdownAllowed"
Text="Start, turn off and shutdown allowed:" />
</td>
<td>
<wsp:CheckBoxOption id="optionStartShutdown" runat="server" Value="True" />
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locPauseResumeAllowed" runat="server" meta:resourcekey="locPauseResumeAllowed"
Text="Pause, resume allowed:" />
</td>
<td>
<wsp:CheckBoxOption id="optionPauseResume" runat="server" Value="True" />
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locRebootAllowed" runat="server" meta:resourcekey="locRebootAllowed"
Text="Reboot allowed:" />
</td>
<td>
<wsp:CheckBoxOption id="optionReboot" runat="server" Value="True" />
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locResetAllowed" runat="server" meta:resourcekey="locResetAllowed"
Text="Reset allowed:" />
</td>
<td>
<wsp:CheckBoxOption id="optionReset" runat="server" Value="True" />
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locReinstallAllowed" runat="server" meta:resourcekey="locReinstallAllowed"
Text="Re-install allowed:" />
</td>
<td>
<wsp:CheckBoxOption id="optionReinstall" runat="server" Value="True" />
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td colspan="2" class="NormalBold">
<asp:Localize ID="locExternalNetwork2" runat="server" meta:resourcekey="locExternalNetwork"
Text="External Network" />
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locExternalNetworkEnabled" runat="server" meta:resourcekey="locExternalNetworkEnabled"
Text="External network enabled:" />
</td>
<td>
<wsp:CheckBoxOption id="optionExternalNetwork" runat="server" Value="True" />
</td>
</tr>
<tr>
<td>
&nbsp;
</td>
</tr>
<tr>
<td colspan="2" class="NormalBold">
<asp:Localize ID="locPrivateNetwork2" runat="server" meta:resourcekey="locPrivateNetwork"
Text="Private Network" />
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locPrivateNetworkEnabled" runat="server" meta:resourcekey="locPrivateNetworkEnabled"
Text="Private network enabled:" />
</td>
<td>
<wsp:CheckBoxOption id="optionPrivateNetwork" runat="server" Value="True" />
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locPrivateNetworkVLanID" runat="server" meta:resourcekey="locPrivateNetworkVLanID"
Text="Private VLan:" />
</td>
<td>
<asp:Literal ID="litPrivateNetworkVLanID" runat="server" />
</td>
</tr>
</table>
<br />
</asp:WizardStep>
</WizardSteps>
<StepPreviousButtonStyle CssClass="Button1" />
<CancelButtonStyle CssClass="Button1" />
</asp:Wizard>
</div>
</div>
<div class="Right">
<asp:Localize ID="FormComments" runat="server" meta:resourcekey="FormComments"></asp:Localize>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,394 @@
// Copyright (c) 2011, 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.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.EnterpriseServer;
using WebsitePanel.Providers.Virtualization;
using WebsitePanel.Providers.Common;
using WebsitePanel.Providers.ResultObjects;
using Microsoft.Security.Application;
using System.Resources;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class VdcCreate : WebsitePanelModuleBase
{
protected PackageContext cntx = null;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindFormControls();
}
// remove non-required steps
ToggleWizardSteps();
// toggle
ToggleControls();
}
private void ToggleWizardSteps()
{
//CPU Core
if (cntx == null)
cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId); //Load package context
if (ddlCpu.Items.Count == 0 || String.IsNullOrWhiteSpace(ddlCpu.SelectedValue))
{
int maxCores = 0;
if (!String.IsNullOrWhiteSpace(listOperatingSystems.SelectedValue))
{
maxCores = ES.Services.VPSPC.GetMaximumCpuCoresNumber(PanelSecurity.PackageId, listOperatingSystems.SelectedItem.Value);
}
if (cntx.Quotas.ContainsKey(Quotas.VPSForPC_CPU_NUMBER))
{
QuotaValueInfo cpuQuota = cntx.Quotas[Quotas.VPSForPC_CPU_NUMBER];
if (cpuQuota.QuotaAllocatedValue != -1
&& maxCores > cpuQuota.QuotaAllocatedValue)
maxCores = cpuQuota.QuotaAllocatedValue;
}
for (int i = 1; i < maxCores + 1; i++)
ddlCpu.Items.Add(i.ToString());
ddlCpu.SelectedIndex = (ddlCpu.Items.Count > 0 ? 0 : -1); // select last (maximum) item
}
// external network
if (!PackagesHelper.IsQuotaEnabled(PanelSecurity.PackageId, Quotas.VPSForPC_EXTERNAL_NETWORK_ENABLED))
{
wizard.WizardSteps.Remove(stepExternalNetwork);
chkExternalNetworkEnabled.Checked = false;
}
// private network
if (!PackagesHelper.IsQuotaEnabled(PanelSecurity.PackageId, Quotas.VPSForPC_PRIVATE_NETWORK_ENABLED))
{
wizard.WizardSteps.Remove(stepPrivateNetwork);
chkPrivateNetworkEnabled.Checked = false;
}
}
private void BindFormControls()
{
try
{
// OS templates
listOperatingSystems.DataSource = ES.Services.VPSPC.GetOperatingSystemTemplatesPC(PanelSecurity.PackageId);
listOperatingSystems.DataBind();
}
catch (Exception ex)
{
listOperatingSystems.Items.Add(new ListItem(GetLocalizedString("SelectOsTemplate.Text"), ""));
listOperatingSystems.Enabled = false;
txtVmName.Enabled = false;
Button btn;
btn = ((Button)wizard.FindControl("StepNavigationTemplateContainerID").FindControl("btnNext"));
if (btn != null)
{
btn.Enabled = false;
}
btn = ((Button)wizard.FindControl("StartNavigationTemplateContainerID").FindControl("btnNext"));
if (btn != null)
{
btn.Enabled = false;
}
messageBox.ShowErrorMessage("VPS_ERROR_CREATE", new Exception("no templates"));
}
// summary letter e-mail
PackageInfo package = ES.Services.Packages.GetPackage(PanelSecurity.PackageId);
if (package != null)
{
UserInfo user = ES.Services.Users.GetUserById(package.UserId);
if (user != null)
{
chkSendSummary.Checked = true;
txtSummaryEmail.Text = user.Email;
}
}
// load package context
if (cntx == null)
cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
// bind CPU cores
int maxCores = 0;
if (!String.IsNullOrWhiteSpace(listOperatingSystems.SelectedValue))
{
maxCores = ES.Services.VPSPC.GetMaximumCpuCoresNumber(PanelSecurity.PackageId, listOperatingSystems.SelectedValue);
}
if (cntx.Quotas.ContainsKey(Quotas.VPSForPC_CPU_NUMBER))
{
QuotaValueInfo cpuQuota = cntx.Quotas[Quotas.VPSForPC_CPU_NUMBER];
if (cpuQuota.QuotaAllocatedValue != -1
&& maxCores > cpuQuota.QuotaAllocatedValue)
maxCores = cpuQuota.QuotaAllocatedValue;
}
for (int i = 1; i < maxCores + 1; i++)
ddlCpu.Items.Add(i.ToString());
ddlCpu.SelectedIndex = (ddlCpu.Items.Count > 0 ? 0 : -1); // select last (maximum) item
#region Network
// external network details
if (PackagesHelper.IsQuotaEnabled(PanelSecurity.PackageId, Quotas.VPSForPC_EXTERNAL_NETWORK_ENABLED))
{
}
// private network
if (PackagesHelper.IsQuotaEnabled(PanelSecurity.PackageId, Quotas.VPSForPC_PRIVATE_NETWORK_ENABLED))
{
//Fill VLanID list
UserInfo user = UsersHelper.GetUser(PanelSecurity.SelectedUserId);
chkPrivateNetworkEnabled.Checked = chkPrivateNetworkEnabled.Enabled = tablePrivateNetwork.Visible = user.Vlans.Count > 0;
pVLanListIsEmptyMessage.Visible = user.Vlans.Count == 0;
ddlPrivateVLanID.DataSource = user.Vlans;
ddlPrivateVLanID.DataBind();
}
#endregion
// RAM size
if (cntx.Quotas.ContainsKey(Quotas.VPSForPC_RAM))
{
QuotaValueInfo ramQuota = cntx.Quotas[Quotas.VPSForPC_RAM];
if (ramQuota.QuotaAllocatedValue == -1)
{
// unlimited RAM
txtRam.Text = "";
}
else
{
int availSize = ramQuota.QuotaAllocatedValue - ramQuota.QuotaUsedValue;
txtRam.Text = availSize < 0 ? "" : availSize.ToString();
}
txtRam.Text = "";
}
// HDD size
if (cntx.Quotas.ContainsKey(Quotas.VPSForPC_HDD))
{
QuotaValueInfo hddQuota = cntx.Quotas[Quotas.VPSForPC_HDD];
if (hddQuota.QuotaAllocatedValue == -1)
{
// unlimited HDD
txtHdd.Text = "";
}
else
{
int availSize = hddQuota.QuotaAllocatedValue - hddQuota.QuotaUsedValue;
txtHdd.Text = availSize < 0 ? "" : availSize.ToString();
}
txtHdd.Text = "";
}
// snapshots number
if (cntx.Quotas.ContainsKey(Quotas.VPSForPC_SNAPSHOTS_NUMBER))
{
int snapsNumber = cntx.Quotas[Quotas.VPSForPC_SNAPSHOTS_NUMBER].QuotaAllocatedValue;
//txtSnapshots.Text = (snapsNumber != -1) ? snapsNumber.ToString() : "";
//txtSnapshots.Enabled = (snapsNumber != 0);
}
// toggle controls
//BindCheckboxOption(chkDvdInstalled, Quotas.VPS_DVD_ENABLED);
//chkBootFromCd.Enabled = PackagesHelper.IsQuotaEnabled(PanelSecurity.PackageId, Quotas.VPSForPC_BOOT_CD_ALLOWED);
BindCheckboxOption(chkStartShutdown, Quotas.VPSForPC_START_SHUTDOWN_ALLOWED);
BindCheckboxOption(chkPauseResume, Quotas.VPSForPC_PAUSE_RESUME_ALLOWED);
BindCheckboxOption(chkReset, Quotas.VPSForPC_RESET_ALOWED);
BindCheckboxOption(chkReboot, Quotas.VPSForPC_REBOOT_ALLOWED);
BindCheckboxOption(chkReinstall, Quotas.VPSForPC_REINSTALL_ALLOWED);
}
private void BindCheckboxOption(CheckBox chk, string quotaName)
{
chk.Enabled = PackagesHelper.IsQuotaEnabled(PanelSecurity.PackageId, quotaName);
chk.Checked = chk.Enabled;
}
private void ToggleControls()
{
// send letter
txtSummaryEmail.Enabled = chkSendSummary.Checked;
SummaryEmailValidator.Enabled = chkSendSummary.Checked;
// private network
tablePrivateNetwork.Visible = chkPrivateNetworkEnabled.Checked;
}
private void BindSummary()
{
// general
litHostname.Text = txtVmName.Text.Trim();
// litHostname.Text = AntiXss.HtmlEncode(String.Format("{0}.{1}", txtHostname.Text.Trim(), txtDomain.Text.Trim()));
litOperatingSystem.Text = listOperatingSystems.SelectedItem.Text;
litSummaryEmail.Text = AntiXss.HtmlEncode(txtSummaryEmail.Text.Trim());
SummSummaryEmailRow.Visible = chkSendSummary.Checked;
// config
litCpu.Text = AntiXss.HtmlEncode(ddlCpu.SelectedValue);
litRam.Text = AntiXss.HtmlEncode(txtRam.Text.Trim());
litHdd.Text = AntiXss.HtmlEncode(txtHdd.Text.Trim());
//litSnapshots.Text = AntiXss.HtmlEncode(txtSnapshots.Text.Trim());
//optionDvdInstalled.Value = chkDvdInstalled.Checked;
//optionBootFromCd.Value = chkBootFromCd.Checked;
//optionNumLock.Value = chkNumLock.Checked;
optionStartShutdown.Value = chkStartShutdown.Checked;
optionPauseResume.Value = chkPauseResume.Checked;
optionReboot.Value = chkReboot.Checked;
optionReset.Value = chkReset.Checked;
optionReinstall.Value = chkReinstall.Checked;
// external network
optionExternalNetwork.Value = chkExternalNetworkEnabled.Checked;
// private network
optionPrivateNetwork.Value = chkPrivateNetworkEnabled.Checked;
litPrivateNetworkVLanID.Text = ddlPrivateVLanID.SelectedValue;
}
protected void wizard_FinishButtonClick(object sender, WizardNavigationEventArgs e)
{
if (!Page.IsValid)
return;
IntResult res = null;
try
{
string adminPassword = (string)ViewState["Password"];
string summaryEmail = chkSendSummary.Checked ? txtSummaryEmail.Text.Trim() : null;
res = ES.Services.VPSPC.CreateVirtualMachine(PanelSecurity.PackageId,
String.Empty, String.Empty, listOperatingSystems.SelectedValue, txtVmName.Text.Trim(), adminPassword, summaryEmail,
Utils.ParseInt(ddlCpu.SelectedValue), Utils.ParseInt(txtRam.Text.Trim()),
Utils.ParseInt(txtHdd.Text.Trim()), 0,
false, false, false,
chkStartShutdown.Checked, chkPauseResume.Checked, chkReboot.Checked, chkReset.Checked, chkReinstall.Checked,
chkExternalNetworkEnabled.Checked, null, null, string.Empty,
chkPrivateNetworkEnabled.Checked, null, null, string.Empty, (String.IsNullOrEmpty(ddlPrivateVLanID.SelectedValue) ? ((ushort)0) : ushort.Parse(ddlPrivateVLanID.SelectedValue)));
if (res.IsSuccess == false)
{
messageBox.ShowMessage(res, "VPS_ERROR_CREATE", "VPS");
//
return;
}
//
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), String.Empty));
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("VPS_ERROR_CREATE", ex);
//Response.Redirect(EditUrl("SpaceID",PanelSecurity.PackageId.ToString(), null));
}
}
protected void wizard_SideBarButtonClick(object sender, WizardNavigationEventArgs e)
{
if (e.NextStepIndex < e.CurrentStepIndex)
return;
Page.Validate("VpsWizard");
if (!Page.IsValid)
e.Cancel = true;
}
protected void wizard_ActiveStepChanged(object sender, EventArgs e)
{
if (cntx == null)
cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
if ((wizard.ActiveStepIndex == 1)
&& (cntx.Quotas.ContainsKey(Quotas.VPSForPC_HDD)))
{
QuotaValueInfo hddQuota = cntx.Quotas[Quotas.VPSForPC_HDD];
if (hddQuota.QuotaAllocatedValue == -1)
{
// unlimited HDD
txtHdd.Text = "";
}
else
{
int availSize = hddQuota.QuotaAllocatedValue - hddQuota.QuotaUsedValue;
if (availSize <= 0)
{
txtHdd.Text = "0";
txtHdd.Enabled = false;
Button btn = ((Button)wizard.FindControl("StepNavigationTemplateContainerID").FindControl("btnNext"));
if (btn != null)
{
btn.Enabled = false;
}
messageBox.ShowErrorMessage("VPS_ERROR_CREATE", new Exception("The HDD quota has been exhausted."));
return;
}
else
{
txtHdd.Text = availSize.ToString();
}
txtHdd.Text = "";
}
}
BindSummary();
}
protected void wizard_NextButtonClick(object sender, WizardNavigationEventArgs e)
{
}
}
}

View file

@ -0,0 +1,816 @@
//------------------------------------------------------------------------------
// <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.VPSForPC {
public partial class VdcCreate {
/// <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>
/// breadcrumb control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Breadcrumb breadcrumb;
/// <summary>
/// menu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Menu menu;
/// <summary>
/// imgIcon 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 imgIcon;
/// <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>
/// validatorsSummary 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.ValidationSummary validatorsSummary;
/// <summary>
/// wizard 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.Wizard wizard;
/// <summary>
/// stepName 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.WizardStep stepName;
/// <summary>
/// locNameStepTitle 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 locNameStepTitle;
/// <summary>
/// locOperatingSystem 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 locOperatingSystem;
/// <summary>
/// listOperatingSystems 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 listOperatingSystems;
/// <summary>
/// OperatingSystemValidator 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 OperatingSystemValidator;
/// <summary>
/// Localize3 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 Localize3;
/// <summary>
/// txtVmName 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 txtVmName;
/// <summary>
/// vmNameValidator 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 vmNameValidator;
/// <summary>
/// chkSendSummary 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 chkSendSummary;
/// <summary>
/// txtSummaryEmail 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 txtSummaryEmail;
/// <summary>
/// SummaryEmailValidator 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 SummaryEmailValidator;
/// <summary>
/// stepConfig 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.WizardStep stepConfig;
/// <summary>
/// locConfigStepTitle 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 locConfigStepTitle;
/// <summary>
/// secResources control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secResources;
/// <summary>
/// ResourcesPanel 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 ResourcesPanel;
/// <summary>
/// lblCpu 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 lblCpu;
/// <summary>
/// ddlCpu 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 ddlCpu;
/// <summary>
/// locCores 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 locCores;
/// <summary>
/// lblRam 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 lblRam;
/// <summary>
/// txtRam 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 txtRam;
/// <summary>
/// RequireRamValidator 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 RequireRamValidator;
/// <summary>
/// locMB 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 locMB;
/// <summary>
/// lblHdd 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 lblHdd;
/// <summary>
/// txtHdd 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 txtHdd;
/// <summary>
/// RequireHddValidator 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 RequireHddValidator;
/// <summary>
/// locGB 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 locGB;
/// <summary>
/// secActions control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secActions;
/// <summary>
/// ActionsPanel 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 ActionsPanel;
/// <summary>
/// chkStartShutdown 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 chkStartShutdown;
/// <summary>
/// chkReset 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 chkReset;
/// <summary>
/// chkPauseResume 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 chkPauseResume;
/// <summary>
/// chkReinstall 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 chkReinstall;
/// <summary>
/// chkReboot 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 chkReboot;
/// <summary>
/// stepPrivateNetwork 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.WizardStep stepPrivateNetwork;
/// <summary>
/// locPrivateNetwork 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 locPrivateNetwork;
/// <summary>
/// chkPrivateNetworkEnabled 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 chkPrivateNetworkEnabled;
/// <summary>
/// pVLanListIsEmptyMessage 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.HtmlGenericControl pVLanListIsEmptyMessage;
/// <summary>
/// tablePrivateNetwork 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 tablePrivateNetwork;
/// <summary>
/// lvPrivateVLanID 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 lvPrivateVLanID;
/// <summary>
/// ddlPrivateVLanID 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 ddlPrivateVLanID;
/// <summary>
/// stepExternalNetwork 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.WizardStep stepExternalNetwork;
/// <summary>
/// locExternalNetwork 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 locExternalNetwork;
/// <summary>
/// chkExternalNetworkEnabled 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 chkExternalNetworkEnabled;
/// <summary>
/// EmptyExternalAddressesMessage 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.HtmlGenericControl EmptyExternalAddressesMessage;
/// <summary>
/// locNotEnoughExternalAddresses 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 locNotEnoughExternalAddresses;
/// <summary>
/// stepSummary 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.WizardStep stepSummary;
/// <summary>
/// locSummary 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 locSummary;
/// <summary>
/// locNameStepTitle2 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 locNameStepTitle2;
/// <summary>
/// Localize1 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 Localize1;
/// <summary>
/// litHostname 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 litHostname;
/// <summary>
/// Localize2 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 Localize2;
/// <summary>
/// litOperatingSystem 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 litOperatingSystem;
/// <summary>
/// SummSummaryEmailRow 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 SummSummaryEmailRow;
/// <summary>
/// locSendSummary 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 locSendSummary;
/// <summary>
/// litSummaryEmail 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 litSummaryEmail;
/// <summary>
/// locConfig2 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 locConfig2;
/// <summary>
/// locCpu 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 locCpu;
/// <summary>
/// litCpu 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 litCpu;
/// <summary>
/// locRam 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 locRam;
/// <summary>
/// litRam 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 litRam;
/// <summary>
/// locHdd 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 locHdd;
/// <summary>
/// litHdd 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 litHdd;
/// <summary>
/// locStartShutdownAllowed 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 locStartShutdownAllowed;
/// <summary>
/// optionStartShutdown control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.CheckBoxOption optionStartShutdown;
/// <summary>
/// locPauseResumeAllowed 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 locPauseResumeAllowed;
/// <summary>
/// optionPauseResume control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.CheckBoxOption optionPauseResume;
/// <summary>
/// locRebootAllowed 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 locRebootAllowed;
/// <summary>
/// optionReboot control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.CheckBoxOption optionReboot;
/// <summary>
/// locResetAllowed 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 locResetAllowed;
/// <summary>
/// optionReset control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.CheckBoxOption optionReset;
/// <summary>
/// locReinstallAllowed 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 locReinstallAllowed;
/// <summary>
/// optionReinstall control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.CheckBoxOption optionReinstall;
/// <summary>
/// locExternalNetwork2 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 locExternalNetwork2;
/// <summary>
/// locExternalNetworkEnabled 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 locExternalNetworkEnabled;
/// <summary>
/// optionExternalNetwork control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.CheckBoxOption optionExternalNetwork;
/// <summary>
/// locPrivateNetwork2 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 locPrivateNetwork2;
/// <summary>
/// locPrivateNetworkEnabled 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 locPrivateNetworkEnabled;
/// <summary>
/// optionPrivateNetwork control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.CheckBoxOption optionPrivateNetwork;
/// <summary>
/// locPrivateNetworkVLanID 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 locPrivateNetworkVLanID;
/// <summary>
/// litPrivateNetworkVLanID 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 litPrivateNetworkVLanID;
/// <summary>
/// FormComments 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 FormComments;
}
}

View file

@ -0,0 +1,64 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VdcExternalNetwork.ascx.cs" Inherits="WebsitePanel.Portal.VPSForPC.VdcExternalNetwork" %>
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/Quota.ascx" TagName="Quota" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/PackageIPAddresses.ascx" TagName="PackageIPAddresses" TagPrefix="wsp" %>
<div id="VpsContainer">
<div class="Module">
<div class="Header">
<wsp:Breadcrumb id="breadcrumb" runat="server" />
</div>
<div class="Left">
<wsp:Menu id="menu" runat="server" SelectedItem="vdc_external_network" />
</div>
<div class="Content">
<div class="Center">
<div class="Title">
<asp:Image ID="Image1" SkinID="Network48" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="External Network"></asp:Localize>
</div>
<div class="FormBody">
<wsp:PackageIPAddresses id="packageAddresses" runat="server"
Pool="VpsExternalNetwork"
EditItemControl="vps_general"
SpaceHomeControl="vdc_external_network"
AllocateAddressesControl="vdc_allocate_external_ip" />
<br />
<wsp:CollapsiblePanel id="secQuotas" runat="server"
TargetControlID="QuotasPanel" meta:resourcekey="secQuotas" Text="Quotas">
</wsp:CollapsiblePanel>
<asp:Panel ID="QuotasPanel" runat="server" Height="0" style="overflow:hidden;">
<table cellspacing="6">
<tr>
<td><asp:Localize ID="locIPQuota" runat="server" meta:resourcekey="locIPQuota" Text="Number of IP Addresses:"></asp:Localize></td>
<td><wsp:Quota ID="addressesQuota" runat="server" QuotaName="VPS.ExternalIPAddressesNumber" /></td>
</tr>
<tr>
<td><asp:Localize ID="locBandwidthQuota" runat="server" meta:resourcekey="locBandwidthQuota" Text="Bandwidth, GB:"></asp:Localize></td>
<td><wsp:Quota ID="bandwidthQuota" runat="server" QuotaName="VPS.Bandwidth" /></td>
</tr>
</table>
</asp:Panel>
</div>
</div>
<div class="Right">
<asp:Localize ID="FormComments" runat="server" meta:resourcekey="FormComments"></asp:Localize>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,45 @@
// Copyright (c) 2011, 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.Web.UI.WebControls;
using WebsitePanel.Providers.Common;
using WebsitePanel.EnterpriseServer;
using WebsitePanel.WebPortal;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class VdcExternalNetwork : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
packageAddresses.ManageAllowed = VirtualMachinesForPCHelper.IsVirtualMachineManagementAllowed(PanelSecurity.PackageId);
}
}
}

View file

@ -0,0 +1,123 @@
//------------------------------------------------------------------------------
// <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.VPSForPC {
public partial class VdcExternalNetwork {
/// <summary>
/// breadcrumb control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Breadcrumb breadcrumb;
/// <summary>
/// menu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Menu menu;
/// <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>
/// packageAddresses control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.PackageIPAddresses packageAddresses;
/// <summary>
/// secQuotas control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secQuotas;
/// <summary>
/// QuotasPanel 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 QuotasPanel;
/// <summary>
/// locIPQuota 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 locIPQuota;
/// <summary>
/// addressesQuota control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.Quota addressesQuota;
/// <summary>
/// locBandwidthQuota 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 locBandwidthQuota;
/// <summary>
/// bandwidthQuota control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.Quota bandwidthQuota;
/// <summary>
/// FormComments 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 FormComments;
}
}

View file

@ -0,0 +1,94 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VdcFastCreateServer.ascx.cs" Inherits="WebsitePanel.Portal.VPSForPC.VdcFastCreateServer" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="UserControls/ServerTabs.ascx" TagName="ServerTabs" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
<%@ Register Src="UserControls/FormTitle.ascx" TagName="FormTitle" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
<div id="VpsContainer">
<div class="Module">
<div class="Header">
<wsp:Breadcrumb id="breadcrumb" runat="server" />
</div>
<div class="Left">
<wsp:Menu id="menu" runat="server" SelectedItem="" />
</div>
<div class="Content">
<div class="Center">
<div class="Title">
<asp:Image ID="imgIcon" SkinID="AddServer48" runat="server" />
<asp:Localize ID="Localize1" runat="server" meta:resourcekey="locTitle" Text="Create New VM"></asp:Localize>
</div>
<div class="FormBody">
<%-- <wsp:ServerTabs id="tabs" runat="server" />
--%> <wsp:SimpleMessageBox id="messageBox" runat="server" />
<asp:ValidationSummary ID="validatorsSummary" runat="server"
ValidationGroup="Tools" ShowMessageBox="True" ShowSummary="False" />
<p class="SubTitle">
<asp:Localize ID="locSubTitle" runat="server"
meta:resourcekey="locSubTitle" Text="Fast Create VM" />
</p>
<p>
<asp:Localize ID="locDescription" runat="server"
meta:resourcekey="locDescription" Text="This wizard will Create new VM." />
</p>
<p class="warningText">
<asp:Localize ID="Localize2" runat="server"
meta:resourcekey="locWarningCloning" Text="VM will be stopped before cloning, are you Ok with this?" />
</p>
<asp:ValidationSummary ID="ValidationSummary1" runat="server"
ValidationGroup="VpsWizard" ShowMessageBox="True" ShowSummary="False" />
<table cellspacing="5">
<tr>
<td class="FormLabel150"><asp:Localize ID="locOperatingSystem" runat="server"
meta:resourcekey="locOperatingSystem" Text="Virtual Machine:"></asp:Localize></td>
<td>
<asp:DropDownList ID="listOperatingSystems" runat="server"
DataValueField="Path" DataTextField="Name">
</asp:DropDownList>
<asp:RequiredFieldValidator ID="OperatingSystemValidator" runat="server" Text="*" Display="Dynamic"
ControlToValidate="listOperatingSystems" meta:resourcekey="OperatingSystemValidator" SetFocusOnError="true"
ValidationGroup="VpsWizard">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td class="FormLabel150" valign="top"><asp:Localize ID="Localize3" runat="server"
meta:resourcekey="VMName" Text="VM Name:"></asp:Localize></td>
<td>
<asp:TextBox id="txtVmName" runat="server" ValidationGroup="VpsWizard">
</asp:TextBox>
<asp:RequiredFieldValidator ID="vmNameValidator" runat="server" Text="*" Display="Dynamic"
ControlToValidate="txtVmName" meta:resourcekey="vmNameValidator" SetFocusOnError="true"
ValidationGroup="VpsWizard">*</asp:RequiredFieldValidator>
</td>
</tr>
</table>
<p>
<asp:Button ID="btnCreate" runat="server" meta:resourcekey="btnCreate"
ValidationGroup="Tools" Text="Create" CssClass="Button1"
onclick="btnCreate_Click" />
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel"
CausesValidation="false" Text="Cancel" CssClass="Button1"
onclick="btnCancel_Click" />
</p>
</div>
</div>
<div class="Right">
<asp:Localize ID="FormComments" runat="server" meta:resourcekey="FormComments"></asp:Localize>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,124 @@
// Copyright (c) 2011, 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.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.Providers.Common;
using WebsitePanel.Providers.Virtualization;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class VdcFastCreateServer : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindFormDetails();
}
ToogleControls();
}
private void ToogleControls()
{
}
private void BindFormDetails()
{
VirtualMachinesForPCHelper helper = new VirtualMachinesForPCHelper();
int count = helper.GetVirtualMachinesCount(PanelSecurity.PackageId, "ItemName", "%%");
listOperatingSystems.Items.Clear();
try
{
VirtualMachineMetaItem[] items = helper.GetVirtualMachines(PanelSecurity.PackageId, "ItemName", "%%", String.Empty, count, 0);
if (items != null && items.Length > 0)
{
listOperatingSystems.Items.Add(new ListItem(GetLocalizedString("SelectVM.Text"), ""));
for (int i = 0; i < items.Length; i++)
{
listOperatingSystems.Items.Add(new ListItem(items[i].ItemName, items[i].ItemID.ToString()));
}
}
else
{
throw new Exception("no VM");
}
}
catch (Exception ex)
{
listOperatingSystems.Items.Add(new ListItem(GetLocalizedString("SelectVM.Text"), ""));
listOperatingSystems.Enabled = false;
txtVmName.Enabled = false;
btnCreate.Enabled = false;
messageBox.ShowErrorMessage("VPS_ERROR_CREATE", new Exception("no VM"));
}
}
protected void btnCancel_Click(object sender, EventArgs e)
{
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), ""));
}
protected void btnCreate_Click(object sender, EventArgs e)
{
try
{
VMInfo selectedVM = VirtualMachinesForPCHelper.GetCachedVirtualMachineForPC(Convert.ToInt32(listOperatingSystems.SelectedValue.Trim()));
ResultObject res = ES.Services.VPSPC.CreateVMFromVM(PanelSecurity.PackageId
, selectedVM, txtVmName.Text.Trim());
if (res.IsSuccess)
{
// return to the list
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), ""));
return;
}
else
{
// show error
messageBox.ShowMessage(res, "VPS_ERROR_CREATE", "VPS");
}
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("VPS_ERROR_CREATE", ex);
}
}
}
}

View file

@ -0,0 +1,195 @@
//------------------------------------------------------------------------------
// <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.VPSForPC {
public partial class VdcFastCreateServer {
/// <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>
/// breadcrumb control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Breadcrumb breadcrumb;
/// <summary>
/// menu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Menu menu;
/// <summary>
/// imgIcon 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 imgIcon;
/// <summary>
/// Localize1 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 Localize1;
/// <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>
/// validatorsSummary 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.ValidationSummary validatorsSummary;
/// <summary>
/// locSubTitle 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 locSubTitle;
/// <summary>
/// locDescription 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 locDescription;
/// <summary>
/// Localize2 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 Localize2;
/// <summary>
/// ValidationSummary1 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.ValidationSummary ValidationSummary1;
/// <summary>
/// locOperatingSystem 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 locOperatingSystem;
/// <summary>
/// listOperatingSystems 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 listOperatingSystems;
/// <summary>
/// OperatingSystemValidator 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 OperatingSystemValidator;
/// <summary>
/// Localize3 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 Localize3;
/// <summary>
/// txtVmName 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 txtVmName;
/// <summary>
/// vmNameValidator 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 vmNameValidator;
/// <summary>
/// btnCreate 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 btnCreate;
/// <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>
/// FormComments 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 FormComments;
}
}

View file

@ -0,0 +1,139 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VdcHome.ascx.cs" Inherits="WebsitePanel.Portal.VPSForPC.VdcHome" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/Quota.ascx" TagName="Quota" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/SearchBox.ascx" TagName="SearchBox" TagPrefix="wsp" %>
<div id="VpsContainer">
<div class="Module">
<div class="Header">
<wsp:Breadcrumb id="breadcrumb" runat="server" />
</div>
<div class="Left">
<wsp:Menu id="menu" runat="server" SelectedItem="" />
</div>
<div class="Content">
<div class="Center">
<div class="Title">
<asp:Image ID="imgIcon" SkinID="PCServers48" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Virtual Private Servers"></asp:Localize>
</div>
<div class="FormBody">
<wsp:SimpleMessageBox id="messageBox" runat="server" />
<div class="FormButtonsBarClean">
<div class="FormButtonsBarCleanLeft">
<asp:Button ID="btnCreate" runat="server" meta:resourcekey="btnCreate"
Text="Create VPS" CssClass="Button1" CausesValidation="False"
onclick="btnCreate_Click" />
</div>
<div class="FormButtonsBarCleanRight">
<wsp:SearchBox ID="searchBox" runat="server" />
</div>
</div>
<asp:GridView ID="gvServers" runat="server" AutoGenerateColumns="False" EnableViewState="true"
Width="100%" EmptyDataText="gvServers" CssSelectorClass="NormalGridView"
AllowPaging="True" AllowSorting="True" DataSourceID="odsServersPaged"
onrowcommand="gvServers_RowCommand">
<Columns>
<asp:TemplateField HeaderText="gvServersName" SortExpression="ItemName" meta:resourcekey="gvServersName">
<ItemStyle></ItemStyle>
<ItemTemplate>
<asp:Image runat="server" SkinID="Vps16" />
<asp:hyperlink id="lnk1" runat="server"
NavigateUrl='<%# GetServerEditUrl(Eval("ItemID").ToString()) %>'>
<%# Eval("ItemName") %>
</asp:hyperlink>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="gvServersExternalIP" meta:resourcekey="gvServersExternalIP"
DataField="ExternalIP" SortExpression="ExternalIP" />
<asp:BoundField HeaderText="gvServersPrivateIP" meta:resourcekey="gvServersPrivateIP"
DataField="IPAddress" SortExpression="IPAddress" />
<asp:TemplateField HeaderText="gvServersSpace" meta:resourcekey="gvServersSpace" SortExpression="PackageName" >
<ItemTemplate>
<asp:hyperlink id="lnkSpace" runat="server" NavigateUrl='<%# GetSpaceHomeUrl(Eval("PackageID").ToString()) %>'>
<%# Eval("PackageName") %>
</asp:hyperlink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="gvServersUser" meta:resourcekey="gvServersUser" SortExpression="Username" >
<ItemTemplate>
<asp:hyperlink id="lnkUser" runat="server" NavigateUrl='<%# GetUserHomeUrl((int)Eval("UserID")) %>'>
<%# Eval("UserName") %>
</asp:hyperlink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="cmdDelete" runat="server" Text="Delete" SkinID="VpsDelete"
CommandName="DeleteItem" CommandArgument='<%# Eval("ItemID") %>'
meta:resourcekey="cmdDelete"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="cmdMove" runat="server" Text="Move"
CommandName="Move" CommandArgument='<%# Eval("ItemID") %>'
meta:resourcekey="cmdMove" Visible="false"></asp:LinkButton>
&nbsp;
<asp:LinkButton ID="cmdDetach" runat="server" Text="Detach"
CommandName="Detach" CommandArgument='<%# Eval("ItemID") %>'
meta:resourcekey="cmdDetach" OnClientClick="return confirm('Remove this item?');"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="odsServersPaged" runat="server" EnablePaging="True"
SelectCountMethod="GetVirtualMachinesCount"
SelectMethod="GetVirtualMachines"
SortParameterName="sortColumn"
TypeName="WebsitePanel.Portal.VirtualMachinesForPCHelper"
OnSelected="odsServersPaged_Selected">
<SelectParameters>
<asp:QueryStringParameter Name="packageId" QueryStringField="SpaceID" DefaultValue="0" />
<asp:ControlParameter Name="filterColumn" ControlID="searchBox" PropertyName="FilterColumn" />
<asp:ControlParameter Name="filterValue" ControlID="searchBox" PropertyName="FilterValue" />
</SelectParameters>
</asp:ObjectDataSource>
<br />
<wsp:CollapsiblePanel id="secQuotas" runat="server"
TargetControlID="QuotasPanel" meta:resourcekey="secQuotas" Text="Quotas">
</wsp:CollapsiblePanel>
<asp:Panel ID="QuotasPanel" runat="server" Height="0" style="overflow:hidden;">
<table cellspacing="6">
<tr>
<td><asp:Localize ID="locVpsQuota" runat="server" meta:resourcekey="locVpsQuota" Text="Number of VPS:"></asp:Localize></td>
<td><wsp:Quota ID="vpsQuota" runat="server" QuotaName="VPSForPC.ServersNumber" /></td>
</tr>
<tr>
<td><asp:Localize ID="locRamQuota" runat="server" meta:resourcekey="locRamQuota" Text="RAM, MB:"></asp:Localize></td>
<td><wsp:Quota ID="ramQuota" runat="server" QuotaName="VPSForPC.Ram" /></td>
</tr>
<tr>
<td><asp:Localize ID="locHddQuota" runat="server" meta:resourcekey="locHddQuota" Text="HDD, GB:"></asp:Localize></td>
<td><wsp:Quota ID="hddQuota" runat="server" QuotaName="VPSForPC.Hdd" /></td>
</tr>
</table>
</asp:Panel>
</div>
</div>
<div class="Right">
<asp:Localize ID="FormComments" runat="server" meta:resourcekey="FormComments"></asp:Localize>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,142 @@
// Copyright (c) 2011, 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.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class VdcHome : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
searchBox.AddCriteria("ItemName", GetLocalizedString("SearchField.ItemName"));
searchBox.AddCriteria("Username", GetLocalizedString("SearchField.Username"));
searchBox.AddCriteria("ExternalIP", GetLocalizedString("SearchField.ExternalIP"));
searchBox.AddCriteria("IPAddress", GetLocalizedString("SearchField.IPAddress"));
}
// toggle columns
bool isUserSelected = PanelSecurity.SelectedUser.Role == WebsitePanel.EnterpriseServer.UserRole.User;
gvServers.Columns[3].Visible = !isUserSelected;
gvServers.Columns[4].Visible = !isUserSelected;
// check package quotas
bool manageAllowed = VirtualMachinesForPCHelper.IsVirtualMachineManagementAllowed(PanelSecurity.PackageId);
btnCreate.Visible = manageAllowed;
gvServers.Columns[5].Visible = manageAllowed; // delete column
// admin operations column
gvServers.Columns[6].Visible = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator);
}
public string GetServerEditUrl(string itemID)
{
return EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "vps_general",
"ItemID=" + itemID);
}
public string GetSpaceHomeUrl(string spaceId)
{
return EditUrl("SpaceID", spaceId, "");
}
public string GetUserHomeUrl(int userId)
{
return PortalUtils.GetUserHomePageUrl(userId);
}
protected void odsServersPaged_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
if (e.Exception != null)
{
messageBox.ShowErrorMessage("EXCHANGE_GET_MAILBOXES", e.Exception);
e.ExceptionHandled = true;
}
}
protected void btnCreate_Click(object sender, EventArgs e)
{
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "vdc_create_server"));
}
protected void btnImport_Click(object sender, EventArgs e)
{
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "vdc_import_server"));
}
protected void btnFastCreate_Click(object sender, EventArgs e)
{
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "vdc_FastCreate_server"));
}
protected void gvServers_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "DeleteItem")
{
// get server ID
int itemId = Utils.ParseInt(e.CommandArgument.ToString(), 0);
// go to delete page
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "vps_tools_delete",
"ItemID=" + itemId));
}
else if (e.CommandName == "Detach")
{
// remove item from meta base
int itemId = Utils.ParseInt(e.CommandArgument.ToString(), 0);
int result = ES.Services.Packages.DetachPackageItem(itemId);
if (result < 0)
{
ShowResultMessage(result);
return;
}
// refresh the list
gvServers.DataBind();
}
else if (e.CommandName == "Move")
{
// get server ID
int itemId = Utils.ParseInt(e.CommandArgument.ToString(), 0);
// go to delete page
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "vps_tools_move",
"ItemID=" + itemId));
}
}
}
}

View file

@ -0,0 +1,177 @@
//------------------------------------------------------------------------------
// <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.VPSForPC {
public partial class VdcHome {
/// <summary>
/// breadcrumb control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Breadcrumb breadcrumb;
/// <summary>
/// menu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Menu menu;
/// <summary>
/// imgIcon 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 imgIcon;
/// <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>
/// btnCreate 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 btnCreate;
/// <summary>
/// searchBox control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.SearchBox searchBox;
/// <summary>
/// gvServers 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 gvServers;
/// <summary>
/// odsServersPaged 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 odsServersPaged;
/// <summary>
/// secQuotas control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secQuotas;
/// <summary>
/// QuotasPanel 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 QuotasPanel;
/// <summary>
/// locVpsQuota 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 locVpsQuota;
/// <summary>
/// vpsQuota control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.Quota vpsQuota;
/// <summary>
/// locRamQuota 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 locRamQuota;
/// <summary>
/// ramQuota control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.Quota ramQuota;
/// <summary>
/// locHddQuota 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 locHddQuota;
/// <summary>
/// hddQuota control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.Quota hddQuota;
/// <summary>
/// FormComments 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 FormComments;
}
}

View file

@ -0,0 +1,286 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VdcImportServer.ascx.cs" Inherits="WebsitePanel.Portal.VPSForPC.VdcImportServer" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/PasswordControl.ascx" TagName="PasswordControl" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/CheckBoxOption.ascx" TagName="CheckBoxOption" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
<div id="VpsContainer">
<div class="Module">
<div class="Header">
<wsp:Breadcrumb id="breadcrumb" runat="server" />
</div>
<div class="Left">
<wsp:Menu id="menu" runat="server" SelectedItem="" />
</div>
<div class="Content">
<div class="Center">
<div class="Title">
<asp:Image ID="imgIcon" SkinID="AddServer48" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Import VPS"></asp:Localize>
</div>
<div class="FormBody">
<wsp:SimpleMessageBox id="messageBox" runat="server" />
<asp:ValidationSummary ID="validatorsSummary" runat="server"
ValidationGroup="ImportWizard" ShowMessageBox="True" ShowSummary="False" />
<table cellpadding="3">
<tr>
<td class="FormLabel150">
<asp:Localize ID="locHyperVService" runat="server" meta:resourcekey="locHyperVService" Text="Hyper-V Service:"></asp:Localize>
</td>
<td>
<asp:DropDownList ID="HyperVServices" runat="server" CssClass="NormalTextBox"
DataValueField="ServiceID" DataTextField="FullServiceName" AutoPostBack="true"
onselectedindexchanged="HyperVServices_SelectedIndexChanged"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RequireHyperVService" runat="server"
ControlToValidate="HyperVServices" ValidationGroup="ImportWizard" meta:resourcekey="RequireHyperVService"
Display="Dynamic" SetFocusOnError="true" Text="*">
</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="FormLabel150">
<asp:Localize ID="locVirtualMachine" runat="server" meta:resourcekey="locVirtualMachine" Text="Virtual machine:"></asp:Localize>
</td>
<td>
<asp:DropDownList ID="VirtualMachines" runat="server" CssClass="NormalTextBox"
DataValueField="VirtualMachineId" DataTextField="Name" AutoPostBack="true"
onselectedindexchanged="VirtualMachines_SelectedIndexChanged"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredVirtualMachine" runat="server"
ControlToValidate="VirtualMachines" ValidationGroup="ImportWizard" meta:resourcekey="RequiredVirtualMachine"
Display="Dynamic" SetFocusOnError="true" Text="*">
</asp:RequiredFieldValidator>
</td>
</tr>
</table>
<wsp:CollapsiblePanel id="secOsTemplate" runat="server"
TargetControlID="OsTemplatePanel" meta:resourcekey="secOsTemplate" Text="OS Template">
</wsp:CollapsiblePanel>
<asp:Panel ID="OsTemplatePanel" runat="server" Height="0" style="overflow:hidden;padding:5px;">
<table>
<tr>
<td class="FormLabel150">
<asp:Localize ID="locOsTemplate" runat="server" meta:resourcekey="locOsTemplate" Text="OS Template:"></asp:Localize>
</td>
<td>
<asp:DropDownList ID="OsTemplates" runat="server" CssClass="NormalTextBox"
DataValueField="Path" DataTextField="Name"></asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredOsTemplate" runat="server"
ControlToValidate="OsTemplates" ValidationGroup="ImportWizard" meta:resourcekey="RequiredOsTemplate"
Display="Dynamic" SetFocusOnError="true" Text="*">
</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>
<asp:CheckBox ID="EnableRemoteDesktop" runat="server" AutoPostBack="true"
meta:resourcekey="EnableRemoteDesktop" Text="Enable Remote Desktop Web Connection" />
</td>
</tr>
<tr id="AdminPasswordPanel" runat="server" visible="false">
<td class="FormLabel150" valign="top">
<asp:Localize ID="locAdminPassword" runat="server" meta:resourcekey="locAdminPassword" Text="Administrator password:"></asp:Localize>
</td>
<td>
<asp:TextBox ID="adminPassword" runat="server" TextMode="Password" CssClass="NormalTextBox"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredAdminPassword" runat="server"
ControlToValidate="adminPassword" ValidationGroup="ImportWizard" meta:resourcekey="RequiredAdminPassword"
Display="Dynamic" SetFocusOnError="true" Text="*">
</asp:RequiredFieldValidator>
</td>
</tr>
</table>
</asp:Panel>
<asp:Panel ID="VirtualMachinePanel" runat="server">
<wsp:CollapsiblePanel id="secConfiguration" runat="server"
TargetControlID="ConfigurationPanel" meta:resourcekey="secConfiguration" Text="Configuration">
</wsp:CollapsiblePanel>
<asp:Panel ID="ConfigurationPanel" runat="server" Height="0" style="overflow:hidden;padding:5px;">
<table cellpadding="4">
<tr>
<td class="FormLabel150">
<asp:Localize ID="locCPU" runat="server" meta:resourcekey="locCPU" Text="CPU:"></asp:Localize>
</td>
<td class="NormalBold">
<asp:Literal ID="CpuCores" runat="server" Text="0"></asp:Literal>
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locRAM" runat="server" meta:resourcekey="locRAM" Text="RAM:"></asp:Localize>
</td>
<td class="NormalBold">
<asp:Literal ID="RamSize" runat="server" Text="0"></asp:Literal>
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locHDD" runat="server" meta:resourcekey="locHDD" Text="HDD:"></asp:Localize>
</td>
<td class="NormalBold">
<asp:Literal ID="HddSize" runat="server" Text="0"></asp:Literal>
</td>
</tr>
<tr>
<td>
<asp:Localize ID="locVhdPath" runat="server" meta:resourcekey="locVhdPath" Text="VHD location:"></asp:Localize>
</td>
<td class="NormalBold">
<asp:Literal ID="VhdPath" runat="server" Text="0"></asp:Literal>
</td>
</tr>
</table>
</asp:Panel>
<wsp:CollapsiblePanel id="secBios" runat="server"
TargetControlID="BiosPanel" meta:resourcekey="secBios" Text="BIOS">
</wsp:CollapsiblePanel>
<asp:Panel ID="BiosPanel" runat="server" Height="0" style="overflow:hidden;padding:5px;">
<table cellpadding="4" width="100%">
<tr>
<td style="width:30%;">
<wsp:CheckBoxOption id="BootFromCd" runat="server" Value="False" />
<asp:Localize ID="locBootFromCd" runat="server" meta:resourcekey="locBootFromCd"></asp:Localize>
</td>
<td>
<wsp:CheckBoxOption id="NumLockEnabled" runat="server" Value="False" />
<asp:Localize ID="locNumLockEnabled" runat="server" meta:resourcekey="locNumLockEnabled"></asp:Localize>
</td>
</tr>
</table>
</asp:Panel>
<wsp:CollapsiblePanel id="secDvd" runat="server"
TargetControlID="DvdPanel" meta:resourcekey="secDvd" Text="DVD">
</wsp:CollapsiblePanel>
<asp:Panel ID="DvdPanel" runat="server" Height="0" style="overflow:hidden;padding:5px;">
<table cellpadding="4">
<tr>
<td>
<wsp:CheckBoxOption id="DvdInstalled" runat="server" Value="False" />
<asp:Localize ID="locDvdInstalled" runat="server" meta:resourcekey="locDvdInstalled"></asp:Localize>
</td>
</tr>
</table>
</asp:Panel>
<wsp:CollapsiblePanel id="secAllowedActions" runat="server"
TargetControlID="AllowedActionsPanel" meta:resourcekey="secAllowedActions" Text="Allowed Actions">
</wsp:CollapsiblePanel>
<asp:Panel ID="AllowedActionsPanel" runat="server" Height="0" style="overflow:hidden;padding:5px;">
<table cellpadding="4" width="100%">
<tr>
<td style="width:30%;">
<asp:CheckBox ID="AllowStartShutdown" runat="server" meta:resourcekey="AllowStartShutdown" />
</td>
<td>
<asp:CheckBox ID="AllowReboot" runat="server" meta:resourcekey="AllowReboot" />
</td>
</tr>
<tr>
<td>
<asp:CheckBox ID="AllowPause" runat="server" meta:resourcekey="AllowPause" />
</td>
<td>
<asp:CheckBox ID="AllowReset" runat="server" meta:resourcekey="AllowReset" />
</td>
</tr>
</table>
</asp:Panel>
<wsp:CollapsiblePanel id="secExternalNetwork" runat="server"
TargetControlID="ExternalNetworkPanel" meta:resourcekey="secExternalNetwork" Text="External Network">
</wsp:CollapsiblePanel>
<asp:Panel ID="ExternalNetworkPanel" runat="server" Height="0" style="overflow:hidden;padding:5px;">
<table width="100%">
<tr>
<td class="FormLabel150">
<asp:Localize ID="locExternalAdapter" runat="server" meta:resourcekey="locExternalAdapter" Text="Connected NIC:"></asp:Localize>
</td>
<td>
<asp:DropDownList ID="ExternalAdapters" runat="server" CssClass="NormalTextBox"
DataValueField="MacAddress" DataTextField="Name" AutoPostBack="true"></asp:DropDownList>
</td>
</tr>
<tr id="ExternalAddressesRow" runat="server">
<td valign="top">
<asp:Localize ID="locExternalAddresses" runat="server" meta:resourcekey="locExternalAddresses" Text="Assign IP addresses:"></asp:Localize>
</td>
<td>
<asp:ListBox ID="ExternalAddresses" runat="server" Rows="5"
Width="220" SelectionMode="Multiple"></asp:ListBox>
<asp:RequiredFieldValidator ID="RequiredExternalAddresses" runat="server"
ControlToValidate="ExternalAddresses" ValidationGroup="ImportWizard" meta:resourcekey="RequiredExternalAddresses"
Display="Dynamic" SetFocusOnError="true" Text="*">
</asp:RequiredFieldValidator>
</td>
</tr>
</table>
</asp:Panel>
<wsp:CollapsiblePanel id="secManagementNetwork" runat="server"
TargetControlID="ManagementNetworkPanel" meta:resourcekey="secManagementNetwork" Text="Management Network">
</wsp:CollapsiblePanel>
<asp:Panel ID="ManagementNetworkPanel" runat="server" Height="0" style="overflow:hidden;padding:5px;">
<table width="100%">
<tr>
<td class="FormLabel150">
<asp:Localize ID="locManagementAdapter" runat="server" meta:resourcekey="locManagementAdapter" Text="Connected NIC:"></asp:Localize>
</td>
<td>
<asp:DropDownList ID="ManagementAdapters" runat="server" CssClass="NormalTextBox"
DataValueField="MacAddress" DataTextField="Name" AutoPostBack="true"></asp:DropDownList>
</td>
</tr>
<tr id="ManagementAddressesRow" runat="server">
<td valign="top">
<asp:Localize ID="locManagementAddresses" runat="server" meta:resourcekey="locManagementAddresses" Text="Assign IP addresses:"></asp:Localize>
</td>
<td>
<asp:ListBox ID="ManagementAddresses" runat="server" Rows="5"
Width="220" SelectionMode="Single"></asp:ListBox>
<asp:RequiredFieldValidator ID="RequiredManagementAddresses" runat="server"
ControlToValidate="ManagementAddresses" ValidationGroup="ImportWizard" meta:resourcekey="RequiredManagementAddresses"
Display="Dynamic" SetFocusOnError="true" Text="*">
</asp:RequiredFieldValidator>
</td>
</tr>
</table>
</asp:Panel>
</asp:Panel>
<p>
<asp:Button ID="btnImport" runat="server" meta:resourcekey="btnImport"
ValidationGroup="ImportWizard" Text="Import" CssClass="Button1"
onclick="btnImport_Click" />
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel"
CausesValidation="false" Text="Cancel" CssClass="Button1"
onclick="btnCancel_Click" />
</p>
</div>
</div>
<div class="Right">
<asp:Localize ID="FormComments" runat="server" meta:resourcekey="FormComments"></asp:Localize>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,231 @@
// Copyright (c) 2011, 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.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using WebsitePanel.EnterpriseServer;
using WebsitePanel.Providers.Virtualization;
using WebsitePanel.Providers.ResultObjects;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class VdcImportServer : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// bind hyper-V services
BindHyperVServices();
// bind virtual machines
BindVirtualMachines();
// bind OS templates
BindOsTemplates();
// bind IP addresses
BindExternalAddresses();
BindManagementAddresses();
}
ToggleControls();
}
private void ToggleControls()
{
AdminPasswordPanel.Visible = EnableRemoteDesktop.Checked;
RequiredAdminPassword.Enabled = EnableRemoteDesktop.Checked;
VirtualMachinePanel.Visible = (VirtualMachines.SelectedValue != "");
ExternalAddressesRow.Visible = (ExternalAdapters.SelectedIndex != 0);
ManagementAddressesRow.Visible = (ManagementAdapters.SelectedIndex != 0);
}
public void BindHyperVServices()
{
// bind
HyperVServices.DataSource = ES.Services.Servers.GetRawServicesByGroupName(ResourceGroups.VPS).Tables[0].DefaultView;
HyperVServices.DataBind();
// add select value
HyperVServices.Items.Insert(0, new ListItem(GetLocalizedString("SelectHyperVService.Text"), ""));
}
public void BindVirtualMachines()
{
// clear list
VirtualMachines.Items.Clear();
// bind
int serviceId = Utils.ParseInt(HyperVServices.SelectedValue, 0);
if (serviceId > 0)
{
VirtualMachines.DataSource = ES.Services.VPS.GetVirtualMachinesByServiceId(serviceId);
VirtualMachines.DataBind();
}
// add select value
VirtualMachines.Items.Insert(0, new ListItem(GetLocalizedString("SelectVirtualMachine.Text"), ""));
}
public void BindOsTemplates()
{
// clear list
OsTemplates.Items.Clear();
int serviceId = Utils.ParseInt(HyperVServices.SelectedValue, 0);
if (serviceId > 0)
{
OsTemplates.DataSource = ES.Services.VPS.GetOperatingSystemTemplatesByServiceId(serviceId);
OsTemplates.DataBind();
}
OsTemplates.Items.Insert(0, new ListItem(GetLocalizedString("SelectOsTemplate.Text"), ""));
}
public void BindVirtualMachineDetails()
{
int serviceId = Utils.ParseInt(HyperVServices.SelectedValue, 0);
string vmId = VirtualMachines.SelectedValue;
if (serviceId > 0 && vmId != "")
{
VirtualMachine vm = ES.Services.VPS.GetVirtualMachineExtendedInfo(serviceId, vmId);
if (vm != null)
{
// bind VM
CpuCores.Text = vm.CpuCores.ToString();
RamSize.Text = vm.RamSize.ToString();
HddSize.Text = vm.HddSize.ToString();
VhdPath.Text = vm.VirtualHardDrivePath;
// other settings
NumLockEnabled.Value = vm.NumLockEnabled;
BootFromCd.Value = vm.BootFromCD;
DvdInstalled.Value = vm.DvdDriveInstalled;
// network adapters
ExternalAdapters.DataSource = vm.Adapters;
ExternalAdapters.DataBind();
ExternalAdapters.Items.Insert(0, new ListItem(GetLocalizedString("SelectNetworkAdapter.Text"), ""));
ManagementAdapters.DataSource = vm.Adapters;
ManagementAdapters.DataBind();
ManagementAdapters.Items.Insert(0, new ListItem(GetLocalizedString("SelectNetworkAdapter.Text"), ""));
}
}
}
public void BindExternalAddresses()
{
BindAddresses(ExternalAddresses, IPAddressPool.VpsExternalNetwork);
}
public void BindManagementAddresses()
{
BindAddresses(ManagementAddresses, IPAddressPool.VpsManagementNetwork);
}
public void BindAddresses(ListBox list, IPAddressPool pool)
{
IPAddressInfo[] ips = ES.Services.Servers.GetUnallottedIPAddresses(PanelSecurity.PackageId, ResourceGroups.VPS, pool);
foreach (IPAddressInfo ip in ips)
{
string txt = ip.ExternalIP;
if (!String.IsNullOrEmpty(ip.DefaultGateway))
txt += "/" + ip.DefaultGateway;
list.Items.Add(new ListItem(txt, ip.AddressId.ToString()));
}
}
protected void btnImport_Click(object sender, EventArgs e)
{
try
{
// external IPs
List<int> extIps = new List<int>();
foreach (ListItem li in ExternalAddresses.Items)
if (li.Selected) extIps.Add(Utils.ParseInt(li.Value));
// management IPs
int manIp = 0;
foreach (ListItem li in ManagementAddresses.Items)
if (li.Selected)
{
manIp = Utils.ParseInt(li.Value);
break;
}
// create virtual machine
IntResult res = ES.Services.VPS.ImportVirtualMachine(PanelSecurity.PackageId,
Utils.ParseInt(HyperVServices.SelectedValue),
VirtualMachines.SelectedValue,
OsTemplates.SelectedValue, adminPassword.Text,
AllowStartShutdown.Checked, AllowPause.Checked, AllowReboot.Checked, AllowReset.Checked, false,
ExternalAdapters.SelectedValue, extIps.ToArray(),
ManagementAdapters.SelectedValue, manIp);
if (res.IsSuccess)
{
Response.Redirect(EditUrl("ItemID", res.Value.ToString(), "vps_general",
"SpaceID=" + PanelSecurity.PackageId.ToString()));
}
else
{
messageBox.ShowMessage(res, "VPS_ERROR_IMPORT", "VPS");
}
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("VPS_ERROR_IMPORT", ex);
}
}
protected void btnCancel_Click(object sender, EventArgs e)
{
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), ""));
}
protected void HyperVServices_SelectedIndexChanged(object sender, EventArgs e)
{
// bind VMs
BindVirtualMachines();
// bind OS templates
BindOsTemplates();
}
protected void VirtualMachines_SelectedIndexChanged(object sender, EventArgs e)
{
BindVirtualMachineDetails();
ToggleControls();
}
}
}

View file

@ -0,0 +1,636 @@
//------------------------------------------------------------------------------
// <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.VPSForPC {
public partial class VdcImportServer {
/// <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>
/// breadcrumb control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Breadcrumb breadcrumb;
/// <summary>
/// menu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Menu menu;
/// <summary>
/// imgIcon 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 imgIcon;
/// <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>
/// validatorsSummary 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.ValidationSummary validatorsSummary;
/// <summary>
/// locHyperVService 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 locHyperVService;
/// <summary>
/// HyperVServices 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 HyperVServices;
/// <summary>
/// RequireHyperVService 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 RequireHyperVService;
/// <summary>
/// locVirtualMachine 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 locVirtualMachine;
/// <summary>
/// VirtualMachines 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 VirtualMachines;
/// <summary>
/// RequiredVirtualMachine 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 RequiredVirtualMachine;
/// <summary>
/// secOsTemplate control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secOsTemplate;
/// <summary>
/// OsTemplatePanel 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 OsTemplatePanel;
/// <summary>
/// locOsTemplate 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 locOsTemplate;
/// <summary>
/// OsTemplates 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 OsTemplates;
/// <summary>
/// RequiredOsTemplate 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 RequiredOsTemplate;
/// <summary>
/// EnableRemoteDesktop 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 EnableRemoteDesktop;
/// <summary>
/// AdminPasswordPanel 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 AdminPasswordPanel;
/// <summary>
/// locAdminPassword 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 locAdminPassword;
/// <summary>
/// adminPassword 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 adminPassword;
/// <summary>
/// RequiredAdminPassword 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 RequiredAdminPassword;
/// <summary>
/// VirtualMachinePanel 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 VirtualMachinePanel;
/// <summary>
/// secConfiguration control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secConfiguration;
/// <summary>
/// ConfigurationPanel 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 ConfigurationPanel;
/// <summary>
/// locCPU 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 locCPU;
/// <summary>
/// CpuCores 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 CpuCores;
/// <summary>
/// locRAM 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 locRAM;
/// <summary>
/// RamSize 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 RamSize;
/// <summary>
/// locHDD 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 locHDD;
/// <summary>
/// HddSize 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 HddSize;
/// <summary>
/// locVhdPath 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 locVhdPath;
/// <summary>
/// VhdPath 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 VhdPath;
/// <summary>
/// secBios control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secBios;
/// <summary>
/// BiosPanel 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 BiosPanel;
/// <summary>
/// BootFromCd control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.CheckBoxOption BootFromCd;
/// <summary>
/// locBootFromCd 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 locBootFromCd;
/// <summary>
/// NumLockEnabled control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.CheckBoxOption NumLockEnabled;
/// <summary>
/// locNumLockEnabled 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 locNumLockEnabled;
/// <summary>
/// secDvd control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secDvd;
/// <summary>
/// DvdPanel 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 DvdPanel;
/// <summary>
/// DvdInstalled control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.CheckBoxOption DvdInstalled;
/// <summary>
/// locDvdInstalled 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 locDvdInstalled;
/// <summary>
/// secAllowedActions control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secAllowedActions;
/// <summary>
/// AllowedActionsPanel 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 AllowedActionsPanel;
/// <summary>
/// AllowStartShutdown 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 AllowStartShutdown;
/// <summary>
/// AllowReboot 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 AllowReboot;
/// <summary>
/// AllowPause 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 AllowPause;
/// <summary>
/// AllowReset 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 AllowReset;
/// <summary>
/// secExternalNetwork control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secExternalNetwork;
/// <summary>
/// ExternalNetworkPanel 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 ExternalNetworkPanel;
/// <summary>
/// locExternalAdapter 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 locExternalAdapter;
/// <summary>
/// ExternalAdapters 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 ExternalAdapters;
/// <summary>
/// ExternalAddressesRow 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 ExternalAddressesRow;
/// <summary>
/// locExternalAddresses 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 locExternalAddresses;
/// <summary>
/// ExternalAddresses 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.ListBox ExternalAddresses;
/// <summary>
/// RequiredExternalAddresses 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 RequiredExternalAddresses;
/// <summary>
/// secManagementNetwork control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secManagementNetwork;
/// <summary>
/// ManagementNetworkPanel 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 ManagementNetworkPanel;
/// <summary>
/// locManagementAdapter 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 locManagementAdapter;
/// <summary>
/// ManagementAdapters 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 ManagementAdapters;
/// <summary>
/// ManagementAddressesRow 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 ManagementAddressesRow;
/// <summary>
/// locManagementAddresses 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 locManagementAddresses;
/// <summary>
/// ManagementAddresses 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.ListBox ManagementAddresses;
/// <summary>
/// RequiredManagementAddresses 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 RequiredManagementAddresses;
/// <summary>
/// btnImport 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 btnImport;
/// <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>
/// FormComments 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 FormComments;
}
}

View file

@ -0,0 +1,59 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VdcManagementNetwork.ascx.cs" Inherits="WebsitePanel.Portal.VPSForPC.VdcManagementNetwork" %>
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/PackageIPAddresses.ascx" TagName="PackageIPAddresses" TagPrefix="wsp" %>
<div id="VpsContainer">
<div class="Module">
<div class="Header">
<wsp:Breadcrumb id="breadcrumb" runat="server" />
</div>
<div class="Left">
<wsp:Menu id="menu" runat="server" SelectedItem="vdc_management_network" />
</div>
<div class="Center">
<div class="Title">
<asp:Image ID="imgIcon" SkinID="Network48" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Management Network"></asp:Localize>
</div>
<div class="FormBody">
<asp:Button ID="btnAddVlan" runat="server" meta:resourcekey="btnAddVlan" Text="Add"
CssClass="Button1" OnClick="btnAddVlan_Click" />
<br />
<asp:GridView ID="gvVlans" runat="server" AutoGenerateColumns="false" CssSelectorClass="NormalGridView"
EmptyDataText="User has no VLANs" OnRowCommand="gvVlans_RowCommand">
<Columns>
<asp:BoundField DataField="VLanID" HeaderText="VLan" />
<asp:BoundField DataField="Comment" HeaderText="Comment" ItemStyle-Wrap="true" />
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="cmdDelete" runat="server" Text="Delete" SkinID="VpsDelete" CommandName="DeleteItem"
CommandArgument='<%# Eval("VLanID") %>' meta:resourcekey="cmdDelete" OnClientClick="return confirm('Remove this item?');" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
<div class="FormBody">
<wsp:PackageIPAddresses id="packageAddresses" runat="server"
Pool="VpsManagementNetwork"
EditItemControl="vps_general"
SpaceHomeControl="vdc_management_network"
AllocateAddressesControl=""
ManageAllowed="true" />
</div>
</div>
<div class="Right">
<asp:Localize ID="FormComments" runat="server" meta:resourcekey="FormComments"></asp:Localize>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,76 @@
// Copyright (c) 2011, 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.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class VdcManagementNetwork : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
BindAccount();
}
private void BindAccount()
{
// load user
UserInfo user = UsersHelper.GetUser(PanelSecurity.SelectedUserId);
if (user != null)
{
// Allow edit
gvVlans.Columns[2].Visible = btnAddVlan.Visible = (PanelSecurity.EffectiveUser.Role == UserRole.Administrator);
gvVlans.DataSource = user.Vlans;
gvVlans.DataBind();
}
}
protected void gvVlans_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "DeleteItem")
{
UsersHelper.DeleteUserVlan(PanelSecurity.SelectedUserId, ushort.Parse(e.CommandArgument.ToString(), 0));
BindAccount();
}
}
protected void btnAddVlan_Click(object sender, EventArgs e)
{
Response.Redirect(EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "vdc_account_vLan_add"));
}
}
}

View file

@ -0,0 +1,87 @@
//------------------------------------------------------------------------------
// <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.VPSForPC {
public partial class VdcManagementNetwork {
/// <summary>
/// breadcrumb control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Breadcrumb breadcrumb;
/// <summary>
/// menu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Menu menu;
/// <summary>
/// imgIcon 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 imgIcon;
/// <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>
/// btnAddVlan 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 btnAddVlan;
/// <summary>
/// gvVlans 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 gvVlans;
/// <summary>
/// packageAddresses control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.UserControls.PackageIPAddresses packageAddresses;
/// <summary>
/// FormComments 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 FormComments;
}
}

View file

@ -0,0 +1,124 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VdcPermissions.ascx.cs" Inherits="WebsitePanel.Portal.VPSForPC.VdcPermissions" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/EnableAsyncTasksSupport.ascx" TagName="EnableAsyncTasksSupport" TagPrefix="wsp" %>
<wsp:EnableAsyncTasksSupport id="asyncTasks" runat="server"/>
<div id="VpsContainer">
<div class="Module">
<div class="Header">
<wsp:Breadcrumb id="breadcrumb" runat="server" />
</div>
<div class="Left">
<wsp:Menu id="menu" runat="server" SelectedItem="vdc_permissions" />
</div>
<div class="Content">
<div class="Center">
<div class="Title">
<asp:Image ID="imgIcon" SkinID="Server48" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="User Permissions"></asp:Localize>
</div>
<div class="FormBody">
<wsp:SimpleMessageBox id="messageBox" runat="server" />
<wsp:CollapsiblePanel id="secVdcPermissions" runat="server"
TargetControlID="VdcPermissionsPanel" meta:resourcekey="secVdcPermissions" Text="Virtual Data Center Permissions">
</wsp:CollapsiblePanel>
<asp:Panel ID="VdcPermissionsPanel" runat="server" Height="0" style="overflow:hidden;">
<asp:GridView ID="gvVdcPermissions" runat="server" AutoGenerateColumns="False"
EmptyDataText="gvVdcPermissions" CssSelectorClass="NormalGridView">
<Columns>
<asp:BoundField HeaderText="columnUsername" DataField="Username" />
<asp:TemplateField HeaderText="columnCreateVps" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="chkCreateVps" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="columnExternalNetwork" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="chkExternalNetwork" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="columnPrivateNetwork" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="chkPrivateNetwork" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="columnManagePermissions" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="chkManagePermissions" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<asp:Button ID="btnUpdateVdcPermissions" runat="server" meta:resourcekey="btnUpdateVdcPermissions"
CssClass="Button1" Text="Update" CausesValidation="false"
onclick="btnUpdateVdcPermissions_Click" />
<br />
<br />
</asp:Panel>
<wsp:CollapsiblePanel id="secVpsPermissions" runat="server"
TargetControlID="VpsPermissionsPanel" meta:resourcekey="secVpsPermissions" Text="Virtual Private Server Permissions">
</wsp:CollapsiblePanel>
<asp:Panel ID="VpsPermissionsPanel" runat="server" Height="0" style="overflow:hidden;">
<asp:GridView ID="gvVpsPermissions" runat="server" AutoGenerateColumns="False"
EmptyDataText="gvVpsPermissions" CssSelectorClass="NormalGridView">
<Columns>
<asp:BoundField HeaderText="columnUsername" DataField="Username" />
<asp:TemplateField HeaderText="columnChangeState" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="chkChangeState" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="columnChangeConfig" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="chkChangeConfig" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="columnManageSnapshots" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="chkManageSnapshots" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="columnDeleteVps" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="chkDeleteVps" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="columnReinstallVps" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="chkReinstallVps" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<asp:Button ID="btnUpdateVpsPermissions" runat="server" meta:resourcekey="btnUpdateVdcPermissions"
CssClass="Button1" Text="Update" CausesValidation="false"
onclick="btnUpdateVpsPermissions_Click" />
<br />
</asp:Panel>
</div>
</div>
<div class="Right">
<asp:Localize ID="FormComments" runat="server" meta:resourcekey="FormComments"></asp:Localize>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,56 @@
// Copyright (c) 2011, 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.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class VdcPermissions : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUpdateVdcPermissions_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(5000);
messageBox.ShowSuccessMessage("VDC_PERMISSIONS_VDC_UPDATED");
}
protected void btnUpdateVpsPermissions_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(5000);
messageBox.ShowSuccessMessage("VDC_PERMISSIONS_VPS_UPDATED");
}
}
}

View file

@ -0,0 +1,150 @@
//------------------------------------------------------------------------------
// <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.VPSForPC {
public partial class VdcPermissions {
/// <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>
/// breadcrumb control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Breadcrumb breadcrumb;
/// <summary>
/// menu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Menu menu;
/// <summary>
/// imgIcon 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 imgIcon;
/// <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>
/// secVdcPermissions control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secVdcPermissions;
/// <summary>
/// VdcPermissionsPanel 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 VdcPermissionsPanel;
/// <summary>
/// gvVdcPermissions 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 gvVdcPermissions;
/// <summary>
/// btnUpdateVdcPermissions 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 btnUpdateVdcPermissions;
/// <summary>
/// secVpsPermissions control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secVpsPermissions;
/// <summary>
/// VpsPermissionsPanel 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 VpsPermissionsPanel;
/// <summary>
/// gvVpsPermissions 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 gvVpsPermissions;
/// <summary>
/// btnUpdateVpsPermissions 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 btnUpdateVpsPermissions;
/// <summary>
/// FormComments 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 FormComments;
}
}

View file

@ -0,0 +1,101 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VdcPrivateNetwork.ascx.cs" Inherits="WebsitePanel.Portal.VPSForPC.VdcPrivateNetwork" %>
<%@ Import Namespace="WebsitePanel.Portal" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/SearchBox.ascx" TagName="SearchBox" TagPrefix="wsp" %>
<%@ Register Src="../UserControls/Quota.ascx" TagName="Quota" TagPrefix="wsp" %>
<div id="VpsContainer">
<div class="Module">
<div class="Header">
<wsp:Breadcrumb id="breadcrumb" runat="server" />
</div>
<div class="Left">
<wsp:Menu id="menu" runat="server" SelectedItem="vdc_private_network" />
</div>
<div class="Content">
<div class="Center">
<div class="Title">
<asp:Image ID="imgIcon" SkinID="Network48" runat="server" />
<asp:Localize ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Private Network"></asp:Localize>
</div>
<div class="FormBody">
<wsp:SimpleMessageBox id="messageBox" runat="server" />
<div class="FormButtonsBarClean">
<div class="FormButtonsBarCleanLeft">
</div>
<div class="FormButtonsBarCleanRight">
<wsp:SearchBox ID="searchBox" runat="server" />
</div>
</div>
<asp:GridView ID="gvAddresses" runat="server" AutoGenerateColumns="False" EnableViewState="false"
Width="100%" EmptyDataText="gvAddresses" CssSelectorClass="NormalGridView"
AllowPaging="True" AllowSorting="True" DataKeyNames="PrivateAddressId" DataSourceID="odsPrivateAddressesPaged">
<Columns>
<asp:BoundField HeaderText="gvAddressesIPAddress" meta:resourcekey="gvAddressesIPAddress"
DataField="IPAddress" SortExpression="IPAddress" />
<asp:TemplateField HeaderText="gvAddressesItemName" meta:resourcekey="gvAddressesItemName" SortExpression="ItemName">
<ItemTemplate>
<asp:hyperlink id="lnkEdit" runat="server" NavigateUrl='<%# GetServerEditUrl(Eval("ItemID").ToString()) %>'>
<%# Eval("ItemName") %>
</asp:hyperlink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="gvAddressesPrimary" meta:resourcekey="gvAddressesPrimary" SortExpression="IsPrimary">
<ItemTemplate>
<asp:Image runat="server" ID="imgPrimary" ImageUrl='<%# PortalUtils.GetThemedImage("Exchange/checkbox.png")%>'
Visible='<%# Eval("IsPrimary") %>' ImageAlign="AbsMiddle" />&nbsp;
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="odsPrivateAddressesPaged" runat="server" EnablePaging="True"
SelectCountMethod="GetPackagePrivateIPAddressesCount"
SelectMethod="GetPackagePrivateIPAddresses"
SortParameterName="sortColumn"
TypeName="WebsitePanel.Portal.VirtualMachinesHelper"
OnSelected="odsPrivateAddressesPaged_Selected">
<SelectParameters>
<asp:QueryStringParameter Name="packageId" QueryStringField="SpaceID" DefaultValue="0" />
<asp:ControlParameter Name="filterColumn" ControlID="searchBox" PropertyName="FilterColumn" />
<asp:ControlParameter Name="filterValue" ControlID="searchBox" PropertyName="FilterValue" />
</SelectParameters>
</asp:ObjectDataSource>
<br />
<wsp:CollapsiblePanel id="secQuotas" runat="server"
TargetControlID="QuotasPanel" meta:resourcekey="secQuotas" Text="Quotas">
</wsp:CollapsiblePanel>
<asp:Panel ID="QuotasPanel" runat="server" Height="0" style="overflow:hidden;">
<table cellspacing="6">
<tr>
<td><asp:Localize ID="locVpsAddressesQuota" runat="server" meta:resourcekey="locVpsAddressesQuota" Text="IP addresses per VPS:"></asp:Localize></td>
<td><wsp:Quota ID="addressesPerVps" runat="server" QuotaName="VPS.PrivateIPAddressesNumber" /></td>
</tr>
</table>
</asp:Panel>
</div>
</div>
<div class="Right">
<asp:Localize ID="FormComments" runat="server" meta:resourcekey="FormComments"></asp:Localize>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,66 @@
// Copyright (c) 2011, 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.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebsitePanel.Providers.Virtualization;
using WebsitePanel.WebPortal;
using WebsitePanel.EnterpriseServer;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class VdcPrivateNetwork : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
searchBox.AddCriteria("IPAddress", GetLocalizedString("SearchField.IPAddress"));
searchBox.AddCriteria("ItemName", GetLocalizedString("SearchField.ItemName"));
}
}
public string GetServerEditUrl(string itemID)
{
return EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), "vps_general",
"ItemID=" + itemID);
}
protected void odsPrivateAddressesPaged_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
if (e.Exception != null)
{
messageBox.ShowErrorMessage("EXCHANGE_GET_MAILBOXES", e.Exception);
e.ExceptionHandled = true;
}
}
}
}

View file

@ -0,0 +1,132 @@
//------------------------------------------------------------------------------
// <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.VPSForPC {
public partial class VdcPrivateNetwork {
/// <summary>
/// breadcrumb control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Breadcrumb breadcrumb;
/// <summary>
/// menu control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.VPSForPC.UserControls.Menu menu;
/// <summary>
/// imgIcon 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 imgIcon;
/// <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>
/// searchBox control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.SearchBox searchBox;
/// <summary>
/// gvAddresses 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 gvAddresses;
/// <summary>
/// odsPrivateAddressesPaged 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 odsPrivateAddressesPaged;
/// <summary>
/// secQuotas control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secQuotas;
/// <summary>
/// QuotasPanel 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 QuotasPanel;
/// <summary>
/// locVpsAddressesQuota 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 locVpsAddressesQuota;
/// <summary>
/// addressesPerVps control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.Quota addressesPerVps;
/// <summary>
/// FormComments 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 FormComments;
}
}

View file

@ -0,0 +1 @@
<%@ WebHandler Language="C#" CodeBehind="VirtualMachineImage.ashx.cs" Class="WebsitePanel.Portal.VPSForPC.VirtualMachineImage" %>

View file

@ -0,0 +1,66 @@
// Copyright (c) 2011, 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.Text;
using System.Web;
using System.Web.Services;
using WebsitePanel.Providers.ResultObjects;
namespace WebsitePanel.Portal.VPSForPC
{
/// <summary>
/// Summary description for $codebehindclassname$
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class VirtualMachineImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.Clear();
context.Response.ContentType = "image/png";
int itemId = Utils.ParseInt(context.Request.QueryString["ItemID"]);
byte[] buffer = ES.Services.VPSPC.GetVirtualMachineThumbnail(itemId,
WebsitePanel.Providers.Virtualization.ThumbnailSize.Medium160x120);
if (buffer != null)
{
context.Response.OutputStream.Write(buffer, 0, buffer.Length);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}

View file

@ -0,0 +1 @@
<%@ WebHandler Language="C#" CodeBehind="VirtualMachineSnapshotImage.ashx.cs" Class="WebsitePanel.Portal.VPSForPC.VirtualMachineSnapshotImage" %>

View file

@ -0,0 +1,71 @@
// Copyright (c) 2011, 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.Web;
using System.Web.Services;
using WebsitePanel.Providers.ResultObjects;
namespace WebsitePanel.Portal.VPSForPC
{
/// <summary>
/// Summary description for $codebehindclassname$
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class VirtualMachineSnapshotImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.Clear();
context.Response.ContentType = "image/png";
HttpRequest req = context.Request;
int itemId = Utils.ParseInt(req["ItemID"]);
string snapshotId = req["SnapshotID"];
byte[] res = ES.Services.VPS.GetSnapshotThumbnail(itemId, snapshotId,
WebsitePanel.Providers.Virtualization.ThumbnailSize.Medium160x120);
if (res != null)
{
context.Response.OutputStream.Write(res, 0, res.Length);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}

View file

@ -0,0 +1,51 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VpsAlertsLog.ascx.cs" Inherits="WebsitePanel.Portal.VPSForPC.VpsAlertsLog" %>
<%@ Register Src="../UserControls/SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="UserControls/ServerTabs.ascx" TagName="ServerTabs" TagPrefix="wsp" %>
<%@ Register Src="UserControls/FormTitle.ascx" TagName="FormTitle" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Menu.ascx" TagName="Menu" TagPrefix="wsp" %>
<%@ Register Src="UserControls/Breadcrumb.ascx" TagName="Breadcrumb" TagPrefix="wsp" %>
<div id="VpsContainer">
<div class="Module">
<div class="Header">
<wsp:Breadcrumb id="breadcrumb" runat="server" />
</div>
<div class="Left">
<wsp:Menu id="menu" runat="server" SelectedItem="" />
</div>
<div class="Content">
<div class="Center">
<div class="Title">
<asp:Image ID="imgIcon" SkinID="AlertLog48" runat="server" />
<wsp:FormTitle ID="locTitle" runat="server" meta:resourcekey="locTitle" Text="Alerts Log" />
</div>
<div class="FormBody">
<wsp:ServerTabs id="tabs" runat="server" SelectedTab="vps_alerts_log" />
<wsp:SimpleMessageBox id="messageBox" runat="server" />
<asp:GridView ID="gvEntries" runat="server" AutoGenerateColumns="False"
EmptyDataText="Alarms Log is empty." AllowPaging="true" DataSourceID="odsLogEntries" PageSize="20"
CssSelectorClass="NormalGridView" EnableViewState="false">
<Columns>
<asp:BoundField DataField="Severity" HeaderText="gvEntriesSeverity" />
<asp:BoundField DataField="ResolutionState" HeaderText="gvEntriesResolutionState" />
<asp:BoundField DataField="Name" HeaderText="gvEntriesName" />
<asp:BoundField DataField="Description" HeaderText="gvEntriesDescription" />
<asp:BoundField DataField="Source" HeaderText="gvEntriesSource" Visible="false" />
<asp:BoundField DataField="Created" HeaderText="gvEntriesCreated" />
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="odsLogEntries" runat="server"
SelectMethod="GetMonitoringAlerts"
TypeName="WebsitePanel.Portal.VirtualMachinesForPCHelper">
</asp:ObjectDataSource>
</div>
</div>
<div class="Right">
<asp:Localize ID="FormComments" runat="server" meta:resourcekey="FormComments"></asp:Localize>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebsitePanel.Portal.VPSForPC
{
public partial class VpsAlertsLog : WebsitePanelModuleBase
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

Some files were not shown because too many files have changed in this diff Show more