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,71 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AllocatePackageIPAddresses.ascx.cs" Inherits="WebsitePanel.Portal.UserControls.AllocatePackageIPAddresses" %>
<%@ Register Src="SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<wsp:SimpleMessageBox id="messageBox" runat="server" />
<asp:ValidationSummary ID="validatorsSummary" runat="server"
ValidationGroup="AddAddress" ShowMessageBox="True" ShowSummary="False" />
<ul id="ErrorMessagesList" runat="server" visible="false">
<li id="EmptyAddressesMessage" runat="server">
<asp:Localize ID="locNotEnoughAddresses" runat="server" Text="Not enough..." meta:resourcekey="locNotEnoughAddresses"></asp:Localize>
</li>
<li id="QuotaReachedMessage" runat="server">
<asp:Localize ID="locQuotaReached" runat="server" Text="Quota reached..." meta:resourcekey="locQuotaReached"></asp:Localize>
</li>
</ul>
<asp:UpdatePanel runat="server" ID="AddressesTable" UpdateMode="Conditional">
<ContentTemplate>
<table cellspacing="5" style="width: 100%;">
<tr>
<td>
<asp:RadioButton ID="radioExternalRandom" runat="server" AutoPostBack="true"
meta:resourcekey="radioExternalRandom" Text="Randomly select IP addresses from the pool"
Checked="True" GroupName="ExternalAddress"
oncheckedchanged="radioExternalRandom_CheckedChanged" />
</td>
</tr>
<tr id="AddressesNumberRow" runat="server">
<td style="padding-left: 30px;">
<asp:Localize ID="locExternalAddresses" runat="server"
meta:resourcekey="locExternalAddresses" Text="Number of IP addresses:"></asp:Localize>
<asp:TextBox ID="txtExternalAddressesNumber" runat="server" CssClass="NormalTextBox" Width="50"></asp:TextBox>
<asp:RequiredFieldValidator ID="ExternalAddressesValidator" runat="server" Text="*" Display="Dynamic"
ControlToValidate="txtExternalAddressesNumber" meta:resourcekey="ExternalAddressesValidator" SetFocusOnError="true"
ValidationGroup="AddAddress">*</asp:RequiredFieldValidator>
<asp:Literal ID="litMaxAddresses" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td>
<asp:RadioButton ID="radioExternalSelected" runat="server" AutoPostBack="true"
meta:resourcekey="radioExternalSelected" Text="Select IP addresses from the list"
GroupName="ExternalAddress"
oncheckedchanged="radioExternalSelected_CheckedChanged" />
</td>
</tr>
<tr id="AddressesListRow" runat="server">
<td style="padding-left: 30px;">
<asp:ListBox ID="listExternalAddresses" SelectionMode="Multiple" runat="server" Rows="8"
CssClass="NormalTextBox" Width="220" style="height:100px;" ></asp:ListBox>
<br />
<asp:Localize ID="locHoldCtrl" runat="server"
meta:resourcekey="locHoldCtrl" Text="* Hold CTRL key to select multiple addresses" ></asp:Localize>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
<p>
<asp:Button ID="btnAdd" runat="server" meta:resourcekey="btnAdd"
ValidationGroup="AddAddress" Text="Add" CssClass="Button1"
onclick="btnAdd_Click" />
<asp:Button ID="btnCancel" runat="server" meta:resourcekey="btnCancel"
CausesValidation="false" Text="Cancel" CssClass="Button1"
onclick="btnCancel_Click" />
</p>

View file

@ -0,0 +1,174 @@
// 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.Common;
namespace WebsitePanel.Portal.UserControls
{
public partial class AllocatePackageIPAddresses : WebsitePanelControlBase
{
private IPAddressPool pool;
public IPAddressPool Pool
{
get { return pool; }
set { pool = value; }
}
private string listAddressesControl;
public string ListAddressesControl
{
get { return listAddressesControl; }
set { listAddressesControl = value; }
}
private string resourceGroup;
public string ResourceGroup
{
get { return resourceGroup; }
set { resourceGroup = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindIPAddresses();
ToggleControls();
}
}
private void BindIPAddresses()
{
bool vps = (Pool == IPAddressPool.VpsExternalNetwork || Pool == IPAddressPool.VpsManagementNetwork);
// bind list
IPAddressInfo[] ips = ES.Services.Servers.GetUnallottedIPAddresses(PanelSecurity.PackageId, ResourceGroup, Pool);
foreach (IPAddressInfo ip in ips)
{
string txt = ip.ExternalIP;
// web sites - NAT Address
if (!vps && !String.IsNullOrEmpty(ip.InternalIP))
txt += "/" + ip.InternalIP;
// VPS - Gateway Address
else if (vps && !String.IsNullOrEmpty(ip.DefaultGateway))
txt += "/" + ip.DefaultGateway;
listExternalAddresses.Items.Add(new ListItem(txt, ip.AddressId.ToString()));
}
int quotaAllowed = -1;
string quotaName = (String.Compare(ResourceGroup, ResourceGroups.VPS, true) == 0) ? Quotas.VPS_EXTERNAL_IP_ADDRESSES_NUMBER : Quotas.WEB_IP_ADDRESSES;
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
if (cntx.Quotas.ContainsKey(quotaName))
{
int quotaAllocated = cntx.Quotas[quotaName].QuotaAllocatedValue;
int quotaUsed = cntx.Quotas[quotaName].QuotaUsedValue;
if (quotaAllocated != -1)
quotaAllowed = quotaAllocated - quotaUsed;
}
// bind controls
int max = quotaAllowed == -1 ? listExternalAddresses.Items.Count : quotaAllowed;
txtExternalAddressesNumber.Text = max.ToString();
litMaxAddresses.Text = String.Format(GetLocalizedString("litMaxAddresses.Text"), max);
if (max == 0)
{
AddressesTable.Visible = false;
ErrorMessagesList.Visible = true;
EmptyAddressesMessage.Visible = (listExternalAddresses.Items.Count == 0);
QuotaReachedMessage.Visible = (quotaAllowed == 0);
btnAdd.Enabled = false;
}
}
protected void btnAdd_Click(object sender, EventArgs e)
{
try
{
List<int> ids = new List<int>();
foreach (ListItem item in listExternalAddresses.Items)
{
if (item.Selected)
ids.Add(Utils.ParseInt(item.Value));
}
ResultObject res = ES.Services.Servers.AllocatePackageIPAddresses(PanelSecurity.PackageId,
ResourceGroup, Pool,
radioExternalRandom.Checked,
Utils.ParseInt(txtExternalAddressesNumber.Text),
ids.ToArray());
if (res.IsSuccess)
{
// return back
Response.Redirect(HostModule.EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), ListAddressesControl));
}
else
{
// show message
messageBox.ShowMessage(res, "VPS_ALLOCATE_EXTERNAL_ADDRESSES_ERROR", "VPS");
}
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("VPS_ALLOCATE_EXTERNAL_ADDRESSES_ERROR", ex);
}
}
protected void btnCancel_Click(object sender, EventArgs e)
{
Response.Redirect(HostModule.EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), ListAddressesControl));
}
protected void radioExternalSelected_CheckedChanged(object sender, EventArgs e)
{
ToggleControls();
}
private void ToggleControls()
{
AddressesNumberRow.Visible = radioExternalRandom.Checked;
AddressesListRow.Visible = radioExternalSelected.Checked;
}
protected void radioExternalRandom_CheckedChanged(object sender, EventArgs e)
{
ToggleControls();
}
}
}

View file

@ -0,0 +1,196 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3074
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.UserControls {
public partial class AllocatePackageIPAddresses {
/// <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>
/// ErrorMessagesList 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 ErrorMessagesList;
/// <summary>
/// EmptyAddressesMessage 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 EmptyAddressesMessage;
/// <summary>
/// locNotEnoughAddresses control.
/// </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 locNotEnoughAddresses;
/// <summary>
/// QuotaReachedMessage 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 QuotaReachedMessage;
/// <summary>
/// locQuotaReached control.
/// </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 locQuotaReached;
/// <summary>
/// AddressesTable 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 AddressesTable;
/// <summary>
/// radioExternalRandom control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RadioButton radioExternalRandom;
/// <summary>
/// AddressesNumberRow 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 AddressesNumberRow;
/// <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>
/// txtExternalAddressesNumber control.
/// </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 txtExternalAddressesNumber;
/// <summary>
/// ExternalAddressesValidator control.
/// </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 ExternalAddressesValidator;
/// <summary>
/// litMaxAddresses control.
/// </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 litMaxAddresses;
/// <summary>
/// radioExternalSelected control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.RadioButton radioExternalSelected;
/// <summary>
/// AddressesListRow 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 AddressesListRow;
/// <summary>
/// listExternalAddresses control.
/// </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 listExternalAddresses;
/// <summary>
/// locHoldCtrl control.
/// </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 locHoldCtrl;
/// <summary>
/// btnAdd control.
/// </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 btnAdd;
/// <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;
}
}

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=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="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="litMaxAddresses.Text" xml:space="preserve">
<value>({0} max)</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="locNotEnoughAddresses.Text" xml:space="preserve">
<value>The pool of IP addresses is empty.&lt;br/&gt;Allocate more IP addresses on reseller level. If the current hosting space is nested within "System" space then add more server IP addresses to the appropriate pool on "Configuration -&gt; IP Addresses" page.</value>
</data>
<data name="locTitle.Text" xml:space="preserve">
<value>Allocate IP Addresses</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="locQuotaReached.Text" xml:space="preserve">
<value>IP addresses quota has been reached.</value>
</data>
</root>

View file

@ -0,0 +1,225 @@
<?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="All.Text" xml:space="preserve">
<value>&lt;All&gt;</value>
</data>
<data name="btnClearLog.OnClientClick" xml:space="preserve">
<value>return confirm('Clear Audit Log?');</value>
</data>
<data name="btnClearLog.Text" xml:space="preserve">
<value>Clear Log</value>
</data>
<data name="btnCloseTaskDetails.Text" xml:space="preserve">
<value>Close</value>
</data>
<data name="btnDisplay.Text" xml:space="preserve">
<value>Display Records</value>
</data>
<data name="btnExportLog.Text" xml:space="preserve">
<value>Export Log</value>
</data>
<data name="ddlSeverityItem.All" xml:space="preserve">
<value>&lt;All&gt;</value>
</data>
<data name="ddlSeverityItem.Error" xml:space="preserve">
<value>Error</value>
</data>
<data name="ddlSeverityItem.Information" xml:space="preserve">
<value>Information</value>
</data>
<data name="ddlSeverityItem.Warning" xml:space="preserve">
<value>Warning</value>
</data>
<data name="gvLog.Empty" xml:space="preserve">
<value>Audit Log is empty.</value>
</data>
<data name="gvLogFinishTime.Header" xml:space="preserve">
<value>Finished</value>
</data>
<data name="gvLogItemName.Header" xml:space="preserve">
<value>Item</value>
</data>
<data name="gvLogSeverity.Header" xml:space="preserve">
<value>Severity</value>
</data>
<data name="gvLogSource.Header" xml:space="preserve">
<value>Source</value>
</data>
<data name="gvLogStartDate.Header" xml:space="preserve">
<value>Date</value>
</data>
<data name="gvLogStartTime.Header" xml:space="preserve">
<value>Started</value>
</data>
<data name="gvLogTask.Header" xml:space="preserve">
<value>Task</value>
</data>
<data name="gvLogUser.Header" xml:space="preserve">
<value>User</value>
</data>
<data name="lblAction.Text" xml:space="preserve">
<value>Action</value>
</data>
<data name="lblDuration.Text" xml:space="preserve">
<value>Duration:</value>
</data>
<data name="lblExecutionLog.Text" xml:space="preserve">
<value>Execution Log:</value>
</data>
<data name="lblFinished.Text" xml:space="preserve">
<value>Finished:</value>
</data>
<data name="lblItemName.Text" xml:space="preserve">
<value>Item Name</value>
</data>
<data name="lblItemName1.Text" xml:space="preserve">
<value>Item Name:</value>
</data>
<data name="lblRecordUser.Text" xml:space="preserve">
<value>User:</value>
</data>
<data name="lblResultSeverity.Text" xml:space="preserve">
<value>Severity:</value>
</data>
<data name="lblSeverity.Text" xml:space="preserve">
<value>Severity</value>
</data>
<data name="lblSource.Text" xml:space="preserve">
<value>Source</value>
</data>
<data name="lblSourceName.Text" xml:space="preserve">
<value>Source:</value>
</data>
<data name="lblStarted.Text" xml:space="preserve">
<value>Started:</value>
</data>
<data name="lblTask.Text" xml:space="preserve">
<value>Task</value>
</data>
<data name="lblTaskName.Text" xml:space="preserve">
<value>Task Name:</value>
</data>
<data name="lblType.Text" xml:space="preserve">
<value>Type</value>
</data>
<data name="lblUser.Text" xml:space="preserve">
<value>User</value>
</data>
</root>

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="cmdSelect.AlternateText" xml:space="preserve">
<value>Select Date</value>
</data>
</root>

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,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="Text.WindowCaption" xml:space="preserve">
<value></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=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="lblAddress.Text" xml:space="preserve">
<value>Address:</value>
</data>
<data name="lblCity.Text" xml:space="preserve">
<value>City:</value>
</data>
<data name="lblCompanyName.Text" xml:space="preserve">
<value>Company Name:</value>
</data>
<data name="lblCountry.Text" xml:space="preserve">
<value>Country:</value>
</data>
<data name="lblFax.Text" xml:space="preserve">
<value>Fax:</value>
</data>
<data name="lblIM.Text" xml:space="preserve">
<value>Instant Messenger ID:</value>
</data>
<data name="lblPrimaryPhone.Text" xml:space="preserve">
<value>Primary Phone:</value>
</data>
<data name="lblSecPhone.Text" xml:space="preserve">
<value>Secondary Phone:</value>
</data>
<data name="lblState.Text" xml:space="preserve">
<value>State:</value>
</data>
<data name="lblZip.Text" xml:space="preserve">
<value>Zip Code:</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="btnAddDomain.Text" xml:space="preserve">
<value>Add</value>
</data>
<data name="cmdDeleteDomain.AlternateText" xml:space="preserve">
<value>Delete</value>
</data>
<data name="cmdDeleteDomain.OnClientClick" xml:space="preserve">
<value>return confirm('Delete item?');</value>
</data>
<data name="gvDomains.Empty" xml:space="preserve">
<value>The list is empty.</value>
</data>
<data name="Item.Text" xml:space="preserve">
<value>Additional Name Server:</value>
</data>
<data name="Item0.Text" xml:space="preserve">
<value>Primary Name Server:</value>
</data>
<data name="Item1.Text" xml:space="preserve">
<value>Secondary Name Server:</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=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="addressValidator.ErrorMessage" xml:space="preserve">
<value>Please enter correct IP address</value>
</data>
<data name="requireAddressValidator.ErrorMessage" xml:space="preserve">
<value>Enter IP address</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=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="btnAdd.Text" xml:space="preserve">
<value>Add Notes</value>
</data>
<data name="btnDelete.AlternateText" xml:space="preserve">
<value>Delete Comment</value>
</data>
<data name="btnDelete.OnClientClick" xml:space="preserve">
<value>return confirm('Delete Comment?');</value>
</data>
<data name="ddlSeverityItem.High" xml:space="preserve">
<value>High</value>
</data>
<data name="ddlSeverityItem.Low" xml:space="preserve">
<value>Low</value>
</data>
<data name="ddlSeverityItem.Normal" xml:space="preserve">
<value>Normal</value>
</data>
<data name="gvComments.Empty" xml:space="preserve">
<value>No comments added</value>
</data>
<data name="lblCommented.Text" xml:space="preserve">
<value> on </value>
</data>
<data name="lblComments.Text" xml:space="preserve">
<value>Comments:</value>
</data>
<data name="lblSeverity.Text" xml:space="preserve">
<value>Severity:</value>
</data>
<data name="secComments.Text" xml:space="preserve">
<value>Comments</value>
</data>
<data name="valRequireComment.Text" xml:space="preserve">
<value>*</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=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="valCorrectEmail.Text" xml:space="preserve">
<value>Wrong E-mail</value>
</data>
<data name="valRequireEmail.Text" xml:space="preserve">
<value>*</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="btnCancelProgressDialog.Text" xml:space="preserve">
<value>Run in Background</value>
</data>
<data name="btnCloseProgressDialog.Text" xml:space="preserve">
<value> Close </value>
</data>
<data name="lblDuration.Text" xml:space="preserve">
<value>Duration:</value>
</data>
<data name="lblStarted.Text" xml:space="preserve">
<value>Started:</value>
</data>
<data name="lblTitle.Text" xml:space="preserve">
<value>Please Wait...</value>
</data>
<data name="Text.CompleteMessage" xml:space="preserve">
<value>Task has been finished</value>
</data>
<data name="Text.GenericTitle" xml:space="preserve">
<value>Running...</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="btnCancel.Text" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="btnLookup.AlternateText" xml:space="preserve">
<value>Find File/Folder</value>
</data>
<data name="Text.Root" xml:space="preserve">
<value>Root Folder</value>
</data>
<data name="valRequireFile.Text" xml:space="preserve">
<value>*</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=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="valCorrectNewName.Text" xml:space="preserve">
<value>Invalid file name.</value>
</data>
<data name="valRequireNewName.Text" xml:space="preserve">
<value>*</value>
</data>
</root>

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="Text.ProgressFormat" xml:space="preserve">
<value>{0} of {1}</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=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="btnSend.Text" xml:space="preserve">
<value>Send Report</value>
</data>
<data name="lblCC.Text" xml:space="preserve">
<value>CC:</value>
</data>
<data name="lblComments.Text" xml:space="preserve">
<value>Personal Comments:</value>
</data>
<data name="lblFrom.Text" xml:space="preserve">
<value>From:</value>
</data>
<data name="lblLoggedUser.Text" xml:space="preserve">
<value>Logged User:</value>
</data>
<data name="lblPageUrl.Text" xml:space="preserve">
<value>Page URL:</value>
</data>
<data name="lblSpace.Text" xml:space="preserve">
<value>Hosting Space:</value>
</data>
<data name="lblStackTrace.Text" xml:space="preserve">
<value>Stack Trace:</value>
</data>
<data name="lblSubject.Text" xml:space="preserve">
<value>Subject:</value>
</data>
<data name="lblTo.Text" xml:space="preserve">
<value>To:</value>
</data>
<data name="lblWorkOnBehalf.Text" xml:space="preserve">
<value>Work on Behalf:</value>
</data>
<data name="secSendReport.Text" xml:space="preserve">
<value>Send Report to Host</value>
</data>
<data name="secTechnicalDetails.Text" xml:space="preserve">
<value>Technical Details</value>
</data>
<data name="Text.MessageSent" xml:space="preserve">
<value>Message has been successfully sent</value>
</data>
<data name="Text.MessageSentError" xml:space="preserve">
<value>Error while sending message</value>
</data>
<data name="Text.Subject" xml:space="preserve">
<value>WebsitePanel Error Report</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=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="lblSpace.Text" xml:space="preserve">
<value>Hosting Space:</value>
</data>
<data name="lblUser.Text" xml:space="preserve">
<value>User:</value>
</data>
</root>

View file

@ -0,0 +1,171 @@
<?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="btnAllocateAddress.Text" xml:space="preserve">
<value>Allocate...</value>
</data>
<data name="btnDeallocateAddresses.Text" xml:space="preserve">
<value>Deallocate Selected</value>
</data>
<data name="gvAddresses.Empty" xml:space="preserve">
<value>No IP addresses have been allocated to this hosting space.</value>
</data>
<data name="gvAddressesDefaultGateway.HeaderText" xml:space="preserve">
<value>Gateway</value>
</data>
<data name="gvAddressesIPAddress.HeaderText" xml:space="preserve">
<value>IP</value>
</data>
<data name="gvAddressesItemName.HeaderText" xml:space="preserve">
<value>Item Name</value>
</data>
<data name="gvAddressesNATAddress.HeaderText" xml:space="preserve">
<value>NAT Address</value>
</data>
<data name="gvAddressesPrimary.HeaderText" xml:space="preserve">
<value>Primary</value>
</data>
<data name="gvAddressesSpace.HeaderText" xml:space="preserve">
<value>Space</value>
</data>
<data name="gvAddressesSubnetMask.HeaderText" xml:space="preserve">
<value>Subnet Mask</value>
</data>
<data name="gvAddressesUser.HeaderText" xml:space="preserve">
<value>User</value>
</data>
<data name="SearchField.DefaultGateway" xml:space="preserve">
<value>Default Gateway</value>
</data>
<data name="SearchField.InternalIP" xml:space="preserve">
<value>NAT Address</value>
</data>
<data name="SearchField.IPAddress" xml:space="preserve">
<value>IP Address</value>
</data>
<data name="SearchField.ItemName" xml:space="preserve">
<value>Item Name</value>
</data>
<data name="SearchField.Username" xml:space="preserve">
<value>User Name</value>
</data>
<data name="btnDeallocateAddresses.OnClientClick" xml:space="preserve">
<value>return confirm('Deallocate selected IP addresses from hosting space?');</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=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="CorrectLength.Text" xml:space="preserve">
<value>&lt;br&gt;Password should be at least {0} characters</value>
</data>
<data name="lblConfirmPassword.Text" xml:space="preserve">
<value>Confirm password:</value>
</data>
<data name="lnkGenerate.Text" xml:space="preserve">
<value>Generate random</value>
</data>
<data name="RequireNumbers.Text" xml:space="preserve">
<value>&lt;br&gt;Password should contain at least {0} numbers</value>
</data>
<data name="RequireSymbols.Text" xml:space="preserve">
<value>&lt;br&gt;Password should contain at least {0} non-alphanumeric symbols</value>
</data>
<data name="RequireUppercase.Text" xml:space="preserve">
<value>&lt;br&gt;Password should contain at least {0} UPPERCASE characters</value>
</data>
<data name="valRequireConfirmPassword.ErrorMessage" xml:space="preserve">
<value>Confirm password</value>
</data>
<data name="valRequireConfirmPassword.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="valRequireEqualPassword.ErrorMessage" xml:space="preserve">
<value>Both passwords should be identical</value>
</data>
<data name="valRequireEqualPassword.Text" xml:space="preserve">
<value>&lt;br&gt;Both passwords should be identical</value>
</data>
<data name="valRequirePassword.ErrorMessage" xml:space="preserve">
<value>Enter password</value>
</data>
<data name="valRequirePassword.Text" xml:space="preserve">
<value>*</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=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="chkEnabled.Text" xml:space="preserve">
<value>Enable Policy</value>
</data>
<data name="chkNotEqualUsername.Text" xml:space="preserve">
<value>Should not be equal to username</value>
</data>
<data name="lblMaximumLength.Text" xml:space="preserve">
<value>Maximum length:</value>
</data>
<data name="lblMinimumLength.Text" xml:space="preserve">
<value>Minimum length:</value>
</data>
<data name="lblMinimumNumbers.Text" xml:space="preserve">
<value>Numbers:</value>
</data>
<data name="lblMinimumSymbols.Text" xml:space="preserve">
<value>Non-alphanumeric symbols:</value>
</data>
<data name="lblMinimumUppercase.Text" xml:space="preserve">
<value>Uppercase letters:</value>
</data>
<data name="lblShouldContain.Text" xml:space="preserve">
<value>Password should contain at least:</value>
</data>
<data name="valCorrectMaxLength.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="valCorrectMinLength.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="valCorrectNumbers.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="valCorrectSymbols.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="valCorrectUppercase.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="valRequireMaxLength.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="valRequireMinLength.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="valRequireNumbers.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="valRequireSymbols.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="valRequireUppercase.Text" xml:space="preserve">
<value>*</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=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="chkQuotaEnabled.Text" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="chkQuotaUnlimited.Text" xml:space="preserve">
<value>Unlimited</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="Text.Disabled" xml:space="preserve">
<value>Disabled</value>
</data>
<data name="Text.Enabled" xml:space="preserve">
<value>Enabled</value>
</data>
<data name="Text.Of" xml:space="preserve">
<value>of</value>
</data>
<data name="Text.Unlimited" xml:space="preserve">
<value>Unlimited</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="ddlUnitsItem.Days" xml:space="preserve">
<value>Days</value>
</data>
<data name="ddlUnitsItem.Hours" xml:space="preserve">
<value>Hours</value>
</data>
<data name="ddlUnitsItem.Minutes" xml:space="preserve">
<value>Minutes</value>
</data>
<data name="ddlUnitsItem.Seconds" xml:space="preserve">
<value>Seconds</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=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="cmdSearch.AlternateText" xml:space="preserve">
<value>Search</value>
</data>
<data name="lblSearch.Text" xml:space="preserve">
<value>Search:</value>
</data>
</root>

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="Text.SelectAddress" xml:space="preserve">
<value>&lt;Select IP Address&gt;</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=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="Text.Comments" xml:space="preserve">
<value>Comments:</value>
</data>
<data name="Text.Name" xml:space="preserve">
<value>Name:</value>
</data>
<data name="Text.Unknown" xml:space="preserve">
<value>Unknown</value>
</data>
<data name="Text.Virtual" xml:space="preserve">
<value>Is Virtual:</value>
</data>
<data name="Text.WindowCaption" xml:space="preserve">
<value>Server Details</value>
</data>
</root>

View file

@ -0,0 +1,162 @@
<?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="chkRecursive.Text" xml:space="preserve">
<value>Show Nested Spaces Items</value>
</data>
<data name="cmdDetach.OnClientClick" xml:space="preserve">
<value>return confirm('Remove this service item from meta base?');</value>
</data>
<data name="cmdDetach.Text" xml:space="preserve">
<value>Detach</value>
</data>
<data name="cmdDetach.ToolTip" xml:space="preserve">
<value>Remove service item from meta base</value>
</data>
<data name="gvItems.Empty" xml:space="preserve">
<value>No items found.</value>
</data>
<data name="gvItemsName.Header" xml:space="preserve">
<value>Name</value>
</data>
<data name="gvItemsServer.Header" xml:space="preserve">
<value>Server</value>
</data>
<data name="gvItemsSpace.Header" xml:space="preserve">
<value>Space</value>
</data>
<data name="gvItemsUser.Header" xml:space="preserve">
<value>User</value>
</data>
<data name="gvItemsView.Header" xml:space="preserve">
<value>View</value>
</data>
<data name="SearchField.EMail" xml:space="preserve">
<value>E-Mail</value>
</data>
<data name="SearchField.FullName" xml:space="preserve">
<value>Full Name</value>
</data>
<data name="SearchField.ItemName" xml:space="preserve">
<value>Item Name</value>
</data>
<data name="SearchField.Username" xml:space="preserve">
<value>Username</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="Text.Email" xml:space="preserve">
<value>E-Mail:</value>
</data>
<data name="Text.FullName" xml:space="preserve">
<value>Full Name:</value>
</data>
<data name="Text.NotSelected" xml:space="preserve">
<value>None</value>
</data>
<data name="Text.Role" xml:space="preserve">
<value>Role:</value>
</data>
<data name="Text.Username" xml:space="preserve">
<value>Username:</value>
</data>
<data name="Text.WindowsCaption" xml:space="preserve">
<value>Account Details</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=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="gvUsers.Empty" xml:space="preserve">
<value>No User Accounts found.</value>
</data>
<data name="gvUsersEmail.Header" xml:space="preserve">
<value>E-Mail</value>
</data>
<data name="gvUsersName.Header" xml:space="preserve">
<value>Full Name</value>
</data>
<data name="gvUsersRole.Header" xml:space="preserve">
<value>Role</value>
</data>
<data name="gvUsersUsername.Header" xml:space="preserve">
<value>Username</value>
</data>
<data name="mnuActions.ResetUser" xml:space="preserve">
<value>Clear Field</value>
</data>
<data name="mnuActions.Select" xml:space="preserve">
<value>Select...</value>
</data>
<data name="mnuActions.SwitchLogged" xml:space="preserve">
<value>Switch to Logged User</value>
</data>
<data name="mnuActions.SwitchWorkFor" xml:space="preserve">
<value>Switch to "Work For" User</value>
</data>
<data name="SearchField.Email" xml:space="preserve">
<value>E-Mail</value>
</data>
<data name="SearchField.Name" xml:space="preserve">
<value>Full Name</value>
</data>
<data name="SearchField.Username" xml:space="preserve">
<value>Username</value>
</data>
</root>

View file

@ -0,0 +1,129 @@
<?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="AllowedSymbols.Text" xml:space="preserve">
<value>&lt;br&gt;Allowed symbols: {0}</value>
</data>
<data name="CantBeBlank.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="MinLength.Text" xml:space="preserve">
<value>&lt;br&gt;Minimum length is {0} symbols</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=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="chkEnabled.Text" xml:space="preserve">
<value>Enable Policy</value>
</data>
<data name="lblAllowedSymbols.Text" xml:space="preserve">
<value>Allowed symbols:</value>
</data>
<data name="lblDefaultAllowedSymbols.Text" xml:space="preserve">
<value>* a-z&amp;nbsp;&amp;nbsp;A-Z&amp;nbsp;&amp;nbsp;0-9&amp;nbsp;&amp;nbsp;.&amp;nbsp;&amp;nbsp;_ by default allowed</value>
</data>
<data name="lblMaximumLength.Text" xml:space="preserve">
<value>Maximum length:</value>
</data>
<data name="lblMinimumLength.Text" xml:space="preserve">
<value>Minimum length:</value>
</data>
<data name="lblPrefix.Text" xml:space="preserve">
<value>Prefix:</value>
</data>
<data name="lblSuffix.Text" xml:space="preserve">
<value>Suffix:</value>
</data>
<data name="lblSuffixVars.Text" xml:space="preserve">
<value>* [USER_NAME], [USER_ID] variables are allowed</value>
</data>
<data name="valCorrectMaxLength.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="valCorrectMinLength.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="valRequireMaxLength.Text" xml:space="preserve">
<value>*</value>
</data>
<data name="valRequireMinLength.Text" xml:space="preserve">
<value>*</value>
</data>
</root>

View file

@ -0,0 +1,290 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="AuditLogControl.ascx.cs" Inherits="WebsitePanel.Portal.UserControls.AuditLogControl" %>
<%@ Register Src="PopupHeader.ascx" TagName="PopupHeader" TagPrefix="wsp" %>
<table cellpadding="5" width="100%">
<tr>
<td valign="top">
<asp:Calendar ID="calPeriod" runat="server"
SelectionMode="DayWeekMonth"
DayNameFormat="Shortest"
Height="180px" Width="200px" OnSelectionChanged="calPeriod_SelectionChanged">
</asp:Calendar></td>
<td width="100%" valign="top" align="left">
<table width="300">
<tr>
<td class="Big" colspan="2">
<asp:Literal ID="litPeriod" runat="server"></asp:Literal>
<asp:Literal ID="litStartDate" runat="server" Visible="false"></asp:Literal>
<asp:Literal ID="litEndDate" runat="server" Visible="false"></asp:Literal>
</td>
</tr>
<tr>
<td class="SubHead" nowrap>
<asp:Label id="lblSeverity" runat="server" meta:resourcekey="lblSeverity" Text="Severity"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList ID="ddlSeverity" runat="server" CssClass="NormalTextBox" resourcekey="ddlSeverity" AutoPostBack="true">
<asp:ListItem Value="-1">All</asp:ListItem>
<asp:ListItem Value="0">Information</asp:ListItem>
<asp:ListItem Value="1">Warning</asp:ListItem>
<asp:ListItem Value="2">Error</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr id="SourceRow" runat="server">
<td class="SubHead" nowrap>
<asp:Label id="lblSource" runat="server" meta:resourcekey="lblSource" Text="Source"></asp:Label>
</td>
<td class="Normal">
<asp:DropDownList ID="ddlSource" runat="server" CssClass="NormalTextBox"
AutoPostBack="True" OnSelectedIndexChanged="ddlSource_SelectedIndexChanged">
</asp:DropDownList></td>
</tr>
<tr>
<td class="SubHead" nowrap style="height: 24px">
<asp:Label id="lblTask" runat="server" meta:resourcekey="lblTask" Text="Task"></asp:Label>
</td>
<td class="Normal" style="height: 24px">
<asp:DropDownList ID="ddlTask" runat="server" CssClass="NormalTextBox" AutoPostBack="true">
</asp:DropDownList></td>
</tr>
<tr id="ItemNameRow" runat="server">
<td class="SubHead" nowrap style="height: 24px">
<asp:Label id="lblItemName" runat="server" meta:resourcekey="lblItemName" Text="Item Name"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtItemName" runat="server" CssClass="NormalTextBox"></asp:TextBox>
</td>
</tr>
<tr id="FilterButtonsRow" runat="server">
<td colspan="2">
<asp:Button ID="btnDisplay" runat="server" Text="Display Records" meta:resourcekey="btnDisplay"
CssClass="Button2" OnClick="btnDisplay_Click" />
</td>
</tr>
</table>
</td>
</tr>
</table>
<div class="FormButtonsBar">
<div class="FormButtonsBarCleanLeft">
<asp:Button ID="btnExportLog" runat="server" Text="Export Log" meta:resourcekey="btnExportLog"
CssClass="Button2" OnClick="btnExportLog_Click" />
<asp:Button ID="btnClearLog" runat="server" Text="Clear Log" meta:resourcekey="btnClearLog"
CssClass="Button2" OnClick="btnClearLog_Click" OnClientClick="return confirm('Clear Log?');" />
</div>
<div class="FormButtonsBarCleanRight">
<asp:UpdateProgress ID="recordsProgress" runat="server"
AssociatedUpdatePanelID="updatePanelLog" DynamicLayout="false">
<ProgressTemplate>
<asp:Image ID="imgSep" runat="server" SkinID="AjaxIndicator" vspace="4" />
</ProgressTemplate>
</asp:UpdateProgress>
</div>
</div>
<asp:UpdatePanel runat="server" ID="updatePanelLog" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<div style="clear: both;">
<asp:GridView ID="gvLog" runat="server" AutoGenerateColumns="False"
EmptyDataText="gvLog" CssSelectorClass="NormalGridView" EnableViewState="false"
AllowSorting="True" DataSourceID="odsLog" AllowPaging="True"
DataKeyNames="RecordID" OnRowCommand="gvLog_RowCommand">
<Columns>
<asp:TemplateField SortExpression="SeverityID" HeaderText="gvLogSeverity">
<ItemStyle Wrap="False" />
<ItemTemplate>
<asp:Image ID="imgIcon" runat="server" hspace="2" ImageUrl='<%# GetIconUrl((int)Eval("SeverityID")) %>' ImageAlign="AbsMiddle" />
<%# GetAuditLogRecordSeverityName((int)Eval("SeverityID")) %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="StartDate" HeaderText="gvLogStartDate">
<ItemStyle Wrap="False" />
<ItemTemplate>
<%# ((DateTime)Eval("StartDate")).ToShortDateString() %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="gvLogStartTime">
<ItemStyle Wrap="False" />
<ItemTemplate>
<%# ((DateTime)Eval("StartDate")).ToShortTimeString() %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="gvLogFinishTime">
<ItemStyle Wrap="False" />
<ItemTemplate>
<%# ((DateTime)Eval("FinishDate")).ToShortTimeString() %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="SourceName" HeaderText="gvLogSource">
<ItemStyle Wrap="False" />
<ItemTemplate>
<%# GetAuditLogSourceName((string)Eval("SourceName")) %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="TaskName" HeaderText="gvLogTask">
<ItemStyle Width="100%" />
<ItemTemplate>
<asp:LinkButton ID="cmdShowLog" runat="server"
CommandName="ViewDetails" CommandArgument='<%# Eval("RecordID") %>'>
<%# GetAuditLogTaskName((string)Eval("SourceName"), (string)Eval("TaskName"))%>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="ItemName" HeaderText="gvLogItemName">
<ItemStyle Wrap="false" />
<ItemTemplate>
<%# Eval("ItemName")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField SortExpression="Username" HeaderText="gvLogUser">
<ItemStyle Wrap="False" />
<ItemTemplate>
<asp:HyperLink ID="lnkUser" runat="server" NavigateUrl='<%# NavigateURL("UserID", Eval("EffectiveUserID").ToString())%>'>
<%# Eval("Username")%>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="odsLog" runat="server" EnablePaging="True" SelectCountMethod="GetAuditLogRecordsPagedCount"
SelectMethod="GetAuditLogRecordsPaged" SortParameterName="sortColumn" TypeName="WebsitePanel.Portal.AuditLogHelper" OnSelected="odsLog_Selected">
<SelectParameters>
<asp:ControlParameter Name="sStartDate" ControlID="litStartDate" PropertyName="Text" />
<asp:ControlParameter Name="sEndDate" ControlID="litEndDate" PropertyName="Text" />
<asp:QueryStringParameter Name="packageId" QueryStringField="SpaceID" Type="int32" DefaultValue="0" />
<asp:QueryStringParameter Name="itemId" QueryStringField="ItemId" Type="int32" DefaultValue="0" />
<asp:ControlParameter Name="itemName" ControlID="txtItemName" PropertyName="Text" />
<asp:ControlParameter Name="severityId" ControlID="ddlSeverity" PropertyName="SelectedValue" Type="Int32" />
<asp:ControlParameter Name="sourceName" ControlID="ddlSource" PropertyName="SelectedValue" />
<asp:ControlParameter Name="taskName" ControlID="ddlTask" PropertyName="SelectedValue" />
</SelectParameters>
</asp:ObjectDataSource>
</div>
<asp:Panel ID="pnlTaskDetails" runat="server" CssClass="PopupContainer" style="display:none;">
<table class="Popup-Header" cellpadding="0" cellspacing="0">
<tr>
<td class="Popup-HeaderLeft"></td>
<td class="Popup-HeaderTitle">
<asp:Localize ID="TaskDetailsHeader" runat="server" Text="Task Details"
meta:resourcekey="TaskDetailsHeader"></asp:Localize>
</td>
<td class="Popup-HeaderRight"></td>
</tr>
</table>
<div class="Popup-Content">
<table cellpadding="5">
<tr>
<td valign="top">
<table cellpadding="3">
<tr>
<td class="SubHead">
<asp:Label ID="lblSourceName" runat="server" meta:resourcekey="lblSourceName" Text="Source:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litSourceName" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblTaskName" runat="server" meta:resourcekey="lblTaskName" Text="Task Name:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litTaskName" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblItemName1" runat="server" meta:resourcekey="lblItemName1" Text="Item Name:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litItemName" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblRecordUser" runat="server" meta:resourcekey="lblRecordUser" Text="User:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litUsername" runat="server"></asp:Literal>
</td>
</tr>
</table>
</td>
<td>&nbsp;</td>
<td valign="top">
<table cellpadding="3">
<tr>
<td class="SubHead">
<asp:Label ID="lblStarted" runat="server" meta:resourcekey="lblStarted" Text="Started:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litStarted" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblFinished" runat="server" meta:resourcekey="lblFinished" Text="Finished:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litFinished" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblDuration" runat="server" meta:resourcekey="lblDuration" Text="Duration:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litDuration" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblResultSeverity" runat="server" meta:resourcekey="lblResultSeverity" Text="Severity:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litSeverity" runat="server"></asp:Literal>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="3" class="SubHead">
<asp:Label ID="lblExecutionLog" runat="server" meta:resourcekey="lblExecutionLog" Text="Execution Log:"></asp:Label>
</td>
</tr>
<tr>
<td colspan="3" class="Normal">
<asp:Panel ID="pnlExecutionLog" runat="server" style="border: solid 1px #e0e0e0; width:430px; height: 175px; overflow: auto; white-space: nowrap; background-color: #ffffff;padding:3px;">
<asp:Literal ID="litLog" runat="server"></asp:Literal>
</asp:Panel>
</td>
</tr>
</table>
<div class="FormFooter">
<asp:Button ID="btnCloseTaskDetails" runat="server" Text="Close" CssClass="Button1" meta:resourcekey="btnCloseTaskDetails" />
</div>
</div>
</asp:Panel>
<ajaxToolkit:ModalPopupExtender ID="modalTaskDetailsProperties" runat="server"
BackgroundCssClass="modalBackground"
TargetControlID="btnShowTaskDetails"
PopupControlID="pnlTaskDetails"
OkControlID="btnCloseTaskDetails" />
<asp:Button ID="btnShowTaskDetails" runat="server" Text="11" style="display:none;" />
</ContentTemplate>
</asp:UpdatePanel>

View file

@ -0,0 +1,480 @@
// 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.Text;
using System.Web.UI.WebControls;
using System.Xml;
using WebsitePanel.EnterpriseServer;
using Microsoft.Security.Application;
namespace WebsitePanel.Portal.UserControls
{
public partial class AuditLogControl : WebsitePanelControlBase
{
private string logSource;
public string LogSource
{
get { return logSource; }
set { logSource = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
//modalTaskDetailsProperties.Hide();
// set display preferences
gvLog.PageSize = UsersHelper.GetDisplayItemsPerPage();
// grid columns
gvLog.Columns[4].Visible = String.IsNullOrEmpty(logSource);
gvLog.Columns[6].Visible = PanelRequest.ItemID == 0;
if (!IsPostBack)
{
try
{
btnClearLog.Visible
= (PanelSecurity.EffectiveUser.Role == UserRole.Administrator);
// bind
BindPeriod();
BindSources();
// hide source if required
if (!String.IsNullOrEmpty(logSource))
{
ddlSource.SelectedValue = logSource;
SourceRow.Visible = false;
}
// tasks
BindSourceTasks();
// hide item name if required
if (PanelRequest.ItemID > 0)
{
ItemNameRow.Visible = false;
FilterButtonsRow.Visible = false;
}
}
catch (Exception ex)
{
//ShowErrorMessage("AUDIT_INIT_FORM", ex);
HostModule.ProcessException(ex);
//this.DisableControls = true;
return;
}
}
}
public string GetIconUrl(int severityID)
{
if (severityID == 1)
return PortalUtils.GetThemedImage("warning_icon_small.gif");
else if (severityID == 2)
return PortalUtils.GetThemedImage("error_icon_small.gif");
else
return PortalUtils.GetThemedImage("information_icon_small.gif");
}
private void BindSources()
{
ddlSource.Items.Clear();
ddlSource.Items.Add(new ListItem(GetLocalizedString("All.Text"), ""));
DataTable dt = ES.Services.AuditLog.GetAuditLogSources().Tables[0];
foreach (DataRow dr in dt.Rows)
{
string sourceName = dr["SourceName"].ToString();
ddlSource.Items.Add(new ListItem(GetAuditLogSourceName(sourceName), sourceName));
}
}
private void BindSourceTasks()
{
string sourceName = ddlSource.SelectedValue;
ddlTask.Items.Clear();
ddlTask.Items.Add(new ListItem(GetLocalizedString("All.Text"), ""));
DataTable dt = ES.Services.AuditLog.GetAuditLogTasks(sourceName).Tables[0];
foreach (DataRow dr in dt.Rows)
{
string taskName = dr["TaskName"].ToString();
ddlTask.Items.Add(new ListItem(GetAuditLogTaskName(sourceName, taskName), taskName));
}
}
protected void ddlSource_SelectedIndexChanged(object sender, EventArgs e)
{
BindSourceTasks();
}
private void BindPeriod()
{
if (calPeriod.SelectedDates.Count == 0)
calPeriod.SelectedDate = DateTime.Now;
DateTime startDate = calPeriod.SelectedDates[0];
DateTime endDate = calPeriod.SelectedDates[calPeriod.SelectedDates.Count - 1];
litPeriod.Text = startDate.ToString("MMM dd, yyyy") +
" - " + endDate.ToString("MMM dd, yyyy");
litStartDate.Text = startDate.ToString();
litEndDate.Text = endDate.ToString();
}
private void ExportLog()
{
// build HTML
DataTable dtRecords = ES.Services.AuditLog.GetAuditLogRecordsPaged(PanelSecurity.SelectedUserId,
PanelSecurity.PackageId, PanelRequest.ItemID, txtItemName.Text.Trim(),
DateTime.Parse(litStartDate.Text),
DateTime.Parse(litEndDate.Text),
Utils.ParseInt(ddlSeverity.SelectedValue, 0),
ddlSource.SelectedValue, ddlTask.SelectedValue,
"StartDate ASC", 0, Int32.MaxValue).Tables[1];
StringBuilder sb = new StringBuilder();
// header
sb.AppendLine("Started,Finished,Severity,User-ID,Username,Source,Task,Item-Name,Execution-Log");
foreach (DataRow dr in dtRecords.Rows)
{
// Started
sb.AppendFormat("\"{0}\",", dr["StartDate"].ToString());
// Finished
sb.AppendFormat("\"{0}\",", dr["FinishDate"].ToString());
// Severity
sb.AppendFormat("\"{0}\",",
GetAuditLogRecordSeverityName((int)dr["SeverityID"]));
// User-ID
sb.AppendFormat("\"{0}\",", dr["UserID"]);
// Username
sb.AppendFormat("\"{0}\",", dr["Username"]);
// Source
sb.AppendFormat("\"{0}\",",
GetAuditLogSourceName((string)dr["SourceName"]));
// Task
sb.AppendFormat("\"{0}\",",
AntiXss.HtmlEncode(GetAuditLogTaskName((string)dr["SourceName"], (string)dr["TaskName"])));
// Item-Name
sb.AppendFormat("\"{0}\",", AntiXss.HtmlEncode(dr["ItemName"].ToString()));
// Execution-Log
string executionLog = FormatPlainTextExecutionLog(
dr["ExecutionLog"].ToString(), DateTime.Parse(dr["StartDate"].ToString()));
//
executionLog = executionLog.Replace("\"", "\"\"");
//
sb.AppendFormat("\"{0}\"", executionLog);
sb.AppendLine();
}
string cleanedPeriod = litPeriod.Text.Replace(" ", "").Replace("/", "-").Replace(",", "-");
string fileName = "WSP-AuditLog-" + cleanedPeriod + ".csv";
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName);
Response.ContentType = "application/ms-excel";
Response.Write(sb.ToString());
Response.End();
}
private void ClearLog()
{
try
{
int result = ES.Services.AuditLog.DeleteAuditLogRecords(PanelSecurity.SelectedUserId,
0, txtItemName.Text.Trim(),
DateTime.Parse(litStartDate.Text),
DateTime.Parse(litEndDate.Text),
Utils.ParseInt(ddlSeverity.SelectedValue, 0),
ddlSource.SelectedValue, ddlTask.SelectedValue);
if (result < 0)
{
HostModule.ShowResultMessage(result);
return;
}
}
catch (Exception ex)
{
HostModule.ShowErrorMessage("AUDIT_CLEAR", ex);
return;
}
}
private void BindRecordDetails(string recordId)
{
// load task
LogRecord record = ES.Services.AuditLog.GetAuditLogRecord(recordId);
litUsername.Text = record.Username;
litTaskName.Text = GetAuditLogTaskName(record.SourceName, record.TaskName);
litSourceName.Text = GetAuditLogSourceName(record.SourceName);
litItemName.Text = record.ItemName;
litStarted.Text = record.StartDate.ToString();
litFinished.Text = record.FinishDate.ToString();
litDuration.Text = GetDurationText(record.StartDate, record.FinishDate);
litSeverity.Text = GetAuditLogRecordSeverityName(record.SeverityID);
litLog.Text = FormatExecutionLog(record.ExecutionLog, record.StartDate);
}
private string FormatPlainTextExecutionLog(string xmlLog, DateTime startDate)
{
StringBuilder sb = new StringBuilder();
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlLog);
XmlNodeList nodeRecords = doc.SelectNodes("/log/records/record");
foreach (XmlNode nodeRecord in nodeRecords)
{
// read attributes
DateTime date = DateTime.MinValue;
int severity = 0;
int ident = 0;
if (nodeRecord.Attributes["date"] != null)
date = DateTime.Parse(nodeRecord.Attributes["date"].Value,
System.Globalization.CultureInfo.InvariantCulture);
if (nodeRecord.Attributes["severity"] != null)
severity = Int32.Parse(nodeRecord.Attributes["severity"].Value);
if (nodeRecord.Attributes["ident"] != null)
ident = Int32.Parse(nodeRecord.Attributes["ident"].Value);
// Begin audit record
sb.Append('\t', ident);
sb.Append("......................");
sb.AppendLine();
// Timestamp
sb.Append('\t', ident);
sb.AppendFormat("Timestamp: {0}", GetDurationText(startDate, date));
sb.AppendLine();
// text
XmlNode nodeText = nodeRecord.SelectSingleNode("text");
// text parameters
string[] prms = new string[0];
XmlNodeList nodePrms = nodeRecord.SelectNodes("textParameters/value");
if (nodePrms != null)
{
prms = new string[nodePrms.Count];
for (int i = 0; i < nodePrms.Count; i++)
prms[i] = nodePrms[i].InnerText;
}
// write text
string recordClass = "Information";
if (severity == 1)
recordClass = "Warning";
else if (severity == 2)
recordClass = "Error";
string text = nodeText.InnerText;
// localize text
string locText = GetSharedLocalizedString("TaskActivity." + text);
if (locText != null)
text = locText;
// format parameters
if (prms.Length > 0)
text = String.Format(text, prms);
// Severity
sb.Append('\t', ident);
sb.AppendFormat(String.Format("Severity: {0}", recordClass));
sb.AppendLine();
// Record text
if (!String.IsNullOrEmpty(text))
{
sb.Append('\t', ident);
sb.Append(text);
sb.AppendLine();
}
//
XmlNode nodeStackTrace = nodeRecord.SelectSingleNode("stackTrace");
// Record stack trace
if (!String.IsNullOrEmpty(nodeStackTrace.InnerText))
{
sb.Append('\t', ident);
sb.Append(nodeStackTrace.InnerText);
sb.AppendLine();
}
// End audit record
sb.Append('\t', ident);
sb.AppendLine();
}
// Replace each double-quote with 2*double-quote as per CSV specification.
// See "http://en.wikipedia.org/wiki/Comma-separated_values#Basic_Rules" for further reference
return sb.ToString();
}
private string FormatExecutionLog(string xmlLog, DateTime startDate)
{
StringBuilder sb = new StringBuilder();
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlLog);
XmlNodeList nodeRecords = doc.SelectNodes("/log/records/record");
foreach (XmlNode nodeRecord in nodeRecords)
{
sb.Append("<div class=\"LogRecord\">");
// read attributes
DateTime date = DateTime.MinValue;
int severity = 0;
int ident = 0;
if (nodeRecord.Attributes["date"] != null)
date = DateTime.Parse(nodeRecord.Attributes["date"].Value,
System.Globalization.CultureInfo.InvariantCulture);
if (nodeRecord.Attributes["severity"] != null)
severity = Int32.Parse(nodeRecord.Attributes["severity"].Value);
if (nodeRecord.Attributes["ident"] != null)
ident = Int32.Parse(nodeRecord.Attributes["ident"].Value);
// date div
sb.Append("<div class=\"Time\">");
sb.Append(GetDurationText(startDate, date));
sb.Append("</div>");
// text
XmlNode nodeText = nodeRecord.SelectSingleNode("text");
// text parameters
string[] prms = new string[0];
XmlNodeList nodePrms = nodeRecord.SelectNodes("textParameters/value");
if (nodePrms != null)
{
prms = new string[nodePrms.Count];
for (int i = 0; i < nodePrms.Count; i++)
prms[i] = nodePrms[i].InnerText;
}
// write text
int padding = 80 + ident * 20;
string recordClass = "Information";
if (severity == 1)
recordClass = "Warning";
else if (severity == 2)
recordClass = "Error";
string text = nodeText.InnerText;
// localize text
string locText = GetSharedLocalizedString("TaskActivity." + text);
if (locText != null)
text = locText;
if (!String.IsNullOrEmpty(text))
text = text.Replace("\n", "<br/>");
// format parameters
if (prms.Length > 0)
text = String.Format(text, prms);
sb.Append("<div class=\"").Append(recordClass).Append("\" style=\"padding-left:");
sb.Append(padding).Append("px;\">").Append(text);
XmlNode nodeStackTrace = nodeRecord.SelectSingleNode("stackTrace");
sb.Append("<br/>");
sb.Append(nodeStackTrace.InnerText.Replace("\n", "<br>"));
sb.Append("</div></div>");
}
return sb.ToString();
}
private string GetDurationText(DateTime startDate, DateTime endDate)
{
TimeSpan duration = endDate - startDate;
return String.Format("{0}:{1}:{2}",
duration.Hours.ToString().PadLeft(2, '0'),
duration.Minutes.ToString().PadLeft(2, '0'),
duration.Seconds.ToString().PadLeft(2, '0'));
}
protected void calPeriod_SelectionChanged(object sender, EventArgs e)
{
BindPeriod();
}
protected void odsLog_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
if (e.Exception != null)
{
//ShowError(e.Exception.ToString());
HostModule.ProcessException(e.Exception);
//this.DisableControls = true;
e.ExceptionHandled = true;
}
}
protected void btnExportLog_Click(object sender, EventArgs e)
{
ExportLog();
}
protected void btnClearLog_Click(object sender, EventArgs e)
{
ClearLog();
// rebind grid
gvLog.DataBind();
}
protected void btnDisplay_Click(object sender, EventArgs e)
{
gvLog.DataBind();
}
protected void gvLog_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "ViewDetails")
{
string recordId = (string)e.CommandArgument;
modalTaskDetailsProperties.Show();
BindRecordDetails(recordId);
}
}
}
}

View file

@ -0,0 +1,430 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3053
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.UserControls {
public partial class AuditLogControl {
/// <summary>
/// calPeriod control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Calendar calPeriod;
/// <summary>
/// litPeriod control.
/// </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 litPeriod;
/// <summary>
/// litStartDate control.
/// </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 litStartDate;
/// <summary>
/// litEndDate control.
/// </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 litEndDate;
/// <summary>
/// lblSeverity control.
/// </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 lblSeverity;
/// <summary>
/// ddlSeverity control.
/// </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 ddlSeverity;
/// <summary>
/// SourceRow 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 SourceRow;
/// <summary>
/// lblSource control.
/// </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 lblSource;
/// <summary>
/// ddlSource control.
/// </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 ddlSource;
/// <summary>
/// lblTask control.
/// </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 lblTask;
/// <summary>
/// ddlTask control.
/// </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 ddlTask;
/// <summary>
/// ItemNameRow 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 ItemNameRow;
/// <summary>
/// lblItemName control.
/// </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 lblItemName;
/// <summary>
/// txtItemName control.
/// </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 txtItemName;
/// <summary>
/// FilterButtonsRow 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 FilterButtonsRow;
/// <summary>
/// btnDisplay control.
/// </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 btnDisplay;
/// <summary>
/// btnExportLog control.
/// </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 btnExportLog;
/// <summary>
/// btnClearLog control.
/// </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 btnClearLog;
/// <summary>
/// recordsProgress control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.UpdateProgress recordsProgress;
/// <summary>
/// updatePanelLog 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 updatePanelLog;
/// <summary>
/// gvLog control.
/// </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 gvLog;
/// <summary>
/// odsLog control.
/// </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 odsLog;
/// <summary>
/// pnlTaskDetails control.
/// </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 pnlTaskDetails;
/// <summary>
/// TaskDetailsHeader control.
/// </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 TaskDetailsHeader;
/// <summary>
/// lblSourceName control.
/// </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 lblSourceName;
/// <summary>
/// litSourceName control.
/// </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 litSourceName;
/// <summary>
/// lblTaskName control.
/// </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 lblTaskName;
/// <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>
/// lblItemName1 control.
/// </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 lblItemName1;
/// <summary>
/// litItemName control.
/// </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 litItemName;
/// <summary>
/// lblRecordUser control.
/// </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 lblRecordUser;
/// <summary>
/// litUsername control.
/// </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 litUsername;
/// <summary>
/// lblStarted control.
/// </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 lblStarted;
/// <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>
/// lblFinished control.
/// </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 lblFinished;
/// <summary>
/// litFinished control.
/// </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 litFinished;
/// <summary>
/// lblDuration control.
/// </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 lblDuration;
/// <summary>
/// litDuration control.
/// </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 litDuration;
/// <summary>
/// lblResultSeverity control.
/// </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 lblResultSeverity;
/// <summary>
/// litSeverity control.
/// </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 litSeverity;
/// <summary>
/// lblExecutionLog control.
/// </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 lblExecutionLog;
/// <summary>
/// pnlExecutionLog control.
/// </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 pnlExecutionLog;
/// <summary>
/// litLog control.
/// </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 litLog;
/// <summary>
/// btnCloseTaskDetails control.
/// </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 btnCloseTaskDetails;
/// <summary>
/// modalTaskDetailsProperties control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::AjaxControlToolkit.ModalPopupExtender modalTaskDetailsProperties;
/// <summary>
/// btnShowTaskDetails control.
/// </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 btnShowTaskDetails;
}
}

View file

@ -0,0 +1,13 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CalendarControl.ascx.cs" Inherits="WebsitePanel.Portal.CalendarControl" %>
<asp:TextBox ID="txtDate" runat="server" CssClass="NormalTextBox" Width="100px">22/22/2006</asp:TextBox>
<asp:RequiredFieldValidator id="dateValidator" CssClass="NormalBold" runat="server" ControlToValidate="txtDate"
Display="Dynamic" ErrorMessage="*" Enabled="false"></asp:RequiredFieldValidator>
<ajaxToolkit:CalendarExtender runat="server" ID ="Calendar"
TargetControlID="txtDate" />
<asp:CompareValidator ID = "CompareValidator" runat = "server" ControlToValidate = "txtDate" EnableClientScript = "true" Type = "Date" Operator = "DataTypeCheck" Display = "Dynamic" ErrorMessage = "Invalid date">
</asp:CompareValidator>

View file

@ -0,0 +1,91 @@
// 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 AjaxControlToolkit;
namespace WebsitePanel.Portal
{
public partial class CalendarControl : WebsitePanelControlBase
{
public DateTime SelectedDate
{
get
{
DateTime dt = DateTime.Now;
try
{
dt = DateTime.Parse(txtDate.Text);
}
catch
{
}
return dt;
}
set
{
txtDate.Text = value.ToString("d");
}
}
public string CalendarCtrlClientID
{
get
{
this.EnsureChildControls();
return Calendar.ClientID;
}
}
public bool ValidationEnabled
{
get { return dateValidator.Enabled; }
set { dateValidator.Enabled = value; }
}
public string ValidationGroup
{
get { return dateValidator.ValidationGroup; }
set { dateValidator.ValidationGroup = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

View file

@ -0,0 +1,52 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.1434
//
// 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 CalendarControl {
/// <summary>
/// txtDate control.
/// </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 txtDate;
/// <summary>
/// dateValidator control.
/// </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 dateValidator;
/// <summary>
/// Calendar control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::AjaxControlToolkit.CalendarExtender Calendar;
/// <summary>
/// CompareValidator control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CompareValidator CompareValidator;
}
}

View file

@ -0,0 +1,4 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CheckBoxOption.ascx.cs" Inherits="WebsitePanel.Portal.UserControls.CheckBoxOption" %>
<asp:Image ID="imgEnabled" runat="server" SkinID="OptionEnabled" />
<asp:Image ID="imgDisabled" runat="server" SkinID="OptionDisabled" />
<asp:Literal ID="litText" runat="server"></asp:Literal>

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.UserControls
{
public partial class CheckBoxOption : System.Web.UI.UserControl
{
public bool Value
{
get { return imgEnabled.Visible; }
set { imgEnabled.Visible = value; imgDisabled.Visible = !value; }
}
public string Text
{
get { return litText.Text; }
set { litText.Text = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

View file

@ -0,0 +1,43 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3053
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.UserControls {
public partial class CheckBoxOption {
/// <summary>
/// imgEnabled control.
/// </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 imgEnabled;
/// <summary>
/// imgDisabled control.
/// </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 imgDisabled;
/// <summary>
/// litText control.
/// </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 litText;
}
}

View file

@ -0,0 +1,23 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CollapsiblePanel.ascx.cs" Inherits="WebsitePanel.Portal.CollapsiblePanel" %>
<asp:Panel ID="HeaderPanel" runat="server" style="cursor: pointer;">
<table class="Shevron" cellpadding="0" cellspacing="0"
onmouseout="this.className='Shevron';" onmouseover="this.className='ShevronActive';">
<tr>
<td style="white-space: nowrap;padding-right:5px;"><asp:Label ID="lblTitle" runat="server"></asp:Label></td>
<td class="ShevronLine"></td>
<td style="padding-left:5px;"><asp:Image ID="ToggleImage" runat="server" Width="7" Height="4" ImageUrl="~/images/shevron_collapse.gif" /></td>
</tr>
</table>
</asp:Panel>
<ajaxToolkit:CollapsiblePanelExtender ID="cpe" runat="Server" OnResolveControlID="cpe_ResolveControlID"
TargetControlID="CpeContentPanel"
ExpandControlID="HeaderPanel"
CollapseControlID="HeaderPanel"
Collapsed="False"
ExpandDirection="Vertical"
ImageControlID="ToggleImage"
ExpandedImage="~/images/shevron_collapse.gif"
ExpandedText="Collapse"
CollapsedImage="~/images/shevron_expand.gif"
CollapsedText="Expand"
SuppressPostBack="true" />

View file

@ -0,0 +1,123 @@
// 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;
namespace WebsitePanel.Portal
{
public partial class CollapsiblePanel : WebsitePanelControlBase
{
public const string DEFAULT_EXPAND_IMAGE = "shevron_expand.gif";
public const string DEFAULT_COLLAPSE_IMAGE = "shevron_collapse.gif";
public string CssClass
{
get { return HeaderPanel.CssClass; }
set { HeaderPanel.CssClass = value; }
}
private string _resourceKey;
public string ResourceKey
{
get { return _resourceKey; }
set { _resourceKey = value; }
}
bool _isCollapsed = false;
public bool IsCollapsed
{
get { return _isCollapsed; }
set { _isCollapsed = value; }
}
string _expandImage;
public string ExpandImage
{
get { return _expandImage; }
set { _expandImage = value; }
}
string _collapseImage;
public string CollapseImage
{
get { return _collapseImage; }
set { _collapseImage = value; }
}
public string TargetControlID
{
get { return cpe.TargetControlID; }
set { cpe.TargetControlID = value; }
}
public string Text
{
get { return lblTitle.Text; }
set { lblTitle.Text = value; }
}
protected void cpe_ResolveControlID(object sender, AjaxControlToolkit.ResolveControlEventArgs e)
{
e.Control = this.Parent.FindControl(e.ControlID);
}
protected void Page_Load(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(_collapseImage))
_collapseImage = DEFAULT_COLLAPSE_IMAGE;
if (String.IsNullOrEmpty(_expandImage))
_expandImage = DEFAULT_EXPAND_IMAGE;
// Initialize the ContentPanel to be either expanded or collapsed depending on the flag
// Due to the fact that this control can loaded dynamically we need to setup images every time.
cpe.Collapsed = _isCollapsed;
cpe.CollapsedImage = GetThemedImage(_expandImage);
cpe.ExpandedImage = GetThemedImage(_collapseImage);
// get localized title
if (!String.IsNullOrEmpty(ResourceKey))
{
WebsitePanelControlBase parentControl = this.Parent as WebsitePanelControlBase;
if(parentControl != null)
lblTitle.Text = parentControl.GetLocalizedString(ResourceKey + ".Text");
}
ToggleImage.ImageUrl = GetThemedImage(_isCollapsed ? _expandImage : _collapseImage);
}
}
}

View file

@ -0,0 +1,51 @@
//------------------------------------------------------------------------------
// <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 CollapsiblePanel {
/// <summary>
/// HeaderPanel control.
/// </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 HeaderPanel;
/// <summary>
/// lblTitle control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblTitle;
/// <summary>
/// ToggleImage control.
/// </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 ToggleImage;
/// <summary>
/// cpe control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::AjaxControlToolkit.CollapsiblePanelExtender cpe;
}
}

View file

@ -0,0 +1,2 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Comments.ascx.cs" Inherits="WebsitePanel.Portal.CommentsControl" %>
<asp:Image ID="imgView" runat="server" SkinID="Notes" />

View file

@ -0,0 +1,79 @@
// 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;
namespace WebsitePanel.Portal
{
public partial class CommentsControl : WebsitePanelControlBase
{
public string Comments
{
get { return (string)ViewState["Comments"]; }
set { ViewState["Comments"] = value; }
}
public string ImageUrl
{
get { return (string)ViewState["ImageUrl"]; }
set { ViewState["ImageUrl"] = value; }
}
protected override void OnPreRender(EventArgs e)
{
BindComments();
}
private void BindComments()
{
//imgView.ImageUrl = ImageUrl;
// load user details
if (!String.IsNullOrEmpty(Comments))
{
// escape symbols
imgView.AlternateText = Comments;// Comments.Replace("\n", "<br/>").Replace("\r", "");//.Replace(" ", "&nbsp;");
imgView.ToolTip = Comments;
//.Replace("\n", "<br/>");
}
else
{
this.Visible = false;
}
}
}
}

View file

@ -0,0 +1,16 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.42
//
// 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 CommentsControl {
protected System.Web.UI.WebControls.Image imgView;
}
}

View file

@ -0,0 +1,88 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ContactDetails.ascx.cs" Inherits="WebsitePanel.Portal.ContactDetails" %>
<table>
<tr>
<td class="SubHead" style="width:200px;">
<asp:Label ID="lblCompanyName" runat="server" meta:resourcekey="lblCompanyName" Text="Company Name:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtCompanyName" runat="server" Columns="40" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblAddress" runat="server" meta:resourcekey="lblAddress" Text="Address:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtAddress" runat="server" Columns="40" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblCity" runat="server" meta:resourcekey="lblCity" Text="City:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtCity" runat="server" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblCountry" runat="server" meta:resourcekey="lblCountry" Text="Country:"></asp:Label>
</td>
<td class="Normal">
<asp:dropdownlist runat="server" id="ddlCountry" cssclass="NormalTextBox" autopostback="True" width="200px" onselectedindexchanged="ddlCountry_SelectedIndexChanged" />
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblState" runat="server" meta:resourcekey="lblState" Text="State:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtState" runat="server" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
<asp:DropDownList ID="ddlStates" Runat="server" DataTextField="Text" DataValueField="Value" CssClass="NormalTextBox"
Width="200px"></asp:DropDownList>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblZip" runat="server" meta:resourcekey="lblZip" Text="Zip:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtZip" runat="server" Columns="10" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="normal">&nbsp;</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblPrimaryPhone" runat="server" meta:resourcekey="lblPrimaryPhone" Text="Primary phone:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtPrimaryPhone" runat="server" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblSecPhone" runat="server" meta:resourcekey="lblSecPhone" Text="Secondary phone:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtSecondaryPhone" runat="server" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblFax" runat="server" meta:resourcekey="lblFax" Text="Fax:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtFax" runat="server" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblIM" runat="server" meta:resourcekey="lblIM" Text="Instant messenger ID:"></asp:Label>
</td>
<td class="Normal">
<asp:TextBox id="txtMessengerId" runat="server" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
</td>
</tr>
</table>

View file

@ -0,0 +1,227 @@
// 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;
namespace WebsitePanel.Portal
{
public partial class ContactDetails : WebsitePanelControlBase
{
private string companyName;
public string CompanyName
{
get { return txtCompanyName.Text; }
set { companyName = value; }
}
private string address;
public string Address
{
get { return txtAddress.Text; }
set { address = value; }
}
private string country;
public string Country
{
get
{
return ddlCountry.SelectedItem.Value;
}
set
{
country = value;
}
}
private string city;
public string City
{
get { return txtCity.Text; }
set { city = value; }
}
private string zip;
public string Zip
{
get { return txtZip.Text; }
set { zip = value; }
}
private string primaryPhone;
public string PrimaryPhone
{
get { return txtPrimaryPhone.Text; }
set { primaryPhone = value; }
}
private string secondaryPhone;
public string SecondaryPhone
{
get { return txtSecondaryPhone.Text; }
set { secondaryPhone = value; }
}
private string state;
public string State
{
get
{
if (ddlStates.Visible)
return ddlStates.SelectedItem.Text;
else
return txtState.Text;
}
set
{
state = value;
}
}
private string fax;
public string Fax
{
get { return txtFax.Text; }
set { fax = value; }
}
private string messengerId;
public string MessengerId
{
get { return txtMessengerId.Text; }
set { messengerId = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindCountries();
BindContact();
}
}
private void BindContact()
{
txtCompanyName.Text = companyName;
txtAddress.Text = address;
txtCity.Text = city;
SetCountry(country);
BindStates();
SetState(state);
txtZip.Text = zip;
txtPrimaryPhone.Text = primaryPhone;
txtSecondaryPhone.Text = secondaryPhone;
txtFax.Text = fax;
txtMessengerId.Text = messengerId;
}
private void BindCountries()
{
/*DotNetNuke.Common.Lists.ListController lists = new DotNetNuke.Common.Lists.ListController();
DotNetNuke.Common.Lists.ListEntryInfoCollection countries = lists.GetListEntryInfoCollection("Country");*/
//ddlCountry.DataSource = countries;
/*ddlCountry.DataSource = new object();
ddlCountry.DataBind();*/
PortalUtils.LoadCountriesDropDownList(ddlCountry, null);
ddlCountry.Items.Insert(0, new ListItem("<Not specified>", ""));
}
private void SetCountry(string val)
{
SetDropdown(ddlCountry, val);
}
private void SetState(string val)
{
if (ddlStates.Visible)
SetDropdown(ddlStates, val);
else
txtState.Text = val;
}
private void SetDropdown(DropDownList dropdown, string val)
{
dropdown.SelectedItem.Selected = false;
ListItem item = dropdown.Items.FindByValue(val);
if (item == null)
item = dropdown.Items.FindByText(val);
if (item != null)
item.Selected = true;
}
private void BindStates()
{
ddlStates.Visible = false;
txtState.Visible = true;
if (ddlCountry.SelectedValue != "")
{
/*DotNetNuke.Common.Lists.ListController lists = new DotNetNuke.Common.Lists.ListController();
DotNetNuke.Common.Lists.ListEntryInfoCollection states = lists.GetListEntryInfoCollection("Region", "", "Country." + ddlCountry.SelectedValue);
if (states.Count > 0)
{
ddlStates.DataSource = states;
ddlStates.DataBind();
ddlStates.Items.Insert(0, new ListItem("<Not specified>", ""));
ddlStates.Visible = true;
txtState.Visible = false;
}*/
PortalUtils.LoadStatesDropDownList(ddlStates, ddlCountry.SelectedValue);
if (ddlStates.Items.Count > 0)
{
ddlStates.Items.Insert(0, new ListItem("<Not specified>", ""));
ddlStates.Visible = true;
txtState.Visible = false;
}
}
}
protected void ddlCountry_SelectedIndexChanged(object sender, EventArgs e)
{
BindStates();
}
}
}

View file

@ -0,0 +1,205 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3053
//
// 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 ContactDetails {
/// <summary>
/// lblCompanyName control.
/// </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 lblCompanyName;
/// <summary>
/// txtCompanyName control.
/// </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 txtCompanyName;
/// <summary>
/// lblAddress control.
/// </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 lblAddress;
/// <summary>
/// txtAddress control.
/// </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 txtAddress;
/// <summary>
/// lblCity control.
/// </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 lblCity;
/// <summary>
/// txtCity control.
/// </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 txtCity;
/// <summary>
/// lblCountry control.
/// </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 lblCountry;
/// <summary>
/// ddlCountry control.
/// </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 ddlCountry;
/// <summary>
/// lblState control.
/// </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 lblState;
/// <summary>
/// txtState control.
/// </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 txtState;
/// <summary>
/// ddlStates control.
/// </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 ddlStates;
/// <summary>
/// lblZip control.
/// </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 lblZip;
/// <summary>
/// txtZip control.
/// </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 txtZip;
/// <summary>
/// lblPrimaryPhone control.
/// </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 lblPrimaryPhone;
/// <summary>
/// txtPrimaryPhone control.
/// </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 txtPrimaryPhone;
/// <summary>
/// lblSecPhone control.
/// </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 lblSecPhone;
/// <summary>
/// txtSecondaryPhone control.
/// </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 txtSecondaryPhone;
/// <summary>
/// lblFax control.
/// </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 lblFax;
/// <summary>
/// txtFax control.
/// </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 txtFax;
/// <summary>
/// lblIM control.
/// </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 lblIM;
/// <summary>
/// txtMessengerId control.
/// </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 txtMessengerId;
}
}

View file

@ -0,0 +1,38 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="EditDomainsList.ascx.cs" Inherits="WebsitePanel.Portal.UserControls.EditDomainsList" %>
<div style="width:400px;">
<div class="FormButtonsBar">
<asp:Button id="btnAddDomain" runat="server" meta:resourcekey="btnAddDomain" Text="Add"
CssClass="Button2" CausesValidation="false" OnClick="btnAddDomain_Click"/>
</div>
<asp:GridView id="gvDomains" Runat="server" AutoGenerateColumns="False"
CssSelectorClass="NormalGridView"
OnRowCommand="gvDomains_RowCommand" OnRowDataBound="gvDomains_RowDataBound"
EmptyDataText="gvDomains" ShowHeader="False">
<columns>
<asp:TemplateField HeaderText="gvDomainsLabel" ItemStyle-Wrap="false">
<itemtemplate>
<asp:Label id="lblDomainName" Runat="server"></asp:Label>
</itemtemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="gvDomainsName" ItemStyle-Width="100%">
<itemtemplate>
<asp:TextBox id="txtDomainName" Runat="server" Width="200px" CssClass="NormalTextBox">
</asp:TextBox>
<asp:RegularExpressionValidator id="valCorrectDomainName" runat="server" CssClass="NormalBold"
ValidationExpression="^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.){1,10}[a-zA-Z]{2,6}$"
ErrorMessage="&nbsp;*" ControlToValidate="txtDomainName" Display="Dynamic"></asp:RegularExpressionValidator>
</itemtemplate>
</asp:TemplateField>
<asp:TemplateField>
<itemtemplate>
<asp:ImageButton ID="cmdDeleteDomain" runat="server" SkinID="DeleteSmall"
CommandName="delete_item" CausesValidation="false"
meta:resourcekey="cmdDeleteDomain"></asp:ImageButton>
</itemtemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
</columns>
</asp:GridView>
</div>

View file

@ -0,0 +1,159 @@
// 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.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace WebsitePanel.Portal.UserControls
{
public partial class EditDomainsList : WebsitePanelControlBase
{
public bool DisplayNames
{
get { return gvDomains.Columns[0].Visible; }
set { gvDomains.Columns[0].Visible = value; }
}
public string Value
{
get { return GetDomainsValue(); }
set { SetDomainsValue(value); }
}
private string GetDomainsValue()
{
List<string> items = CollectFormData(false);
return String.Join(";", items.ToArray());
}
private void SetDomainsValue(string s)
{
List<string> items = new List<string>();
if (!String.IsNullOrEmpty(s))
{
string[] parts = s.Split(';');
foreach (string part in parts)
{
if (part.Trim() != "")
items.Add(part.Trim());
}
}
// save items
loadItems = items.ToArray();
if (IsPostBack)
{
BindItems(loadItems);
}
}
private string[] loadItems = new string[] { };
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindItems(loadItems); // empty list
}
}
private void BindItems(string[] items)
{
gvDomains.DataSource = items;
gvDomains.DataBind();
}
public List<string> CollectFormData(bool includeEmpty)
{
List<string> items = new List<string>();
foreach (GridViewRow row in gvDomains.Rows)
{
TextBox txtDomainName = (TextBox)row.FindControl("txtDomainName");
string val = txtDomainName.Text.Trim();
if (includeEmpty || val != "")
items.Add(val);
}
return items;
}
protected void btnAddDomain_Click(object sender, EventArgs e)
{
List<string> items = CollectFormData(true);
// add empty string
items.Add("");
// bind items
BindItems(items.ToArray());
}
protected void gvDomains_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "delete_item")
{
List<string> items = CollectFormData(true);
// remove error
items.RemoveAt(Utils.ParseInt((string)e.CommandArgument, 0));
// bind items
BindItems(items.ToArray());
}
}
protected void gvDomains_RowDataBound(object sender, GridViewRowEventArgs e)
{
Label lblDomainName = (Label)e.Row.FindControl("lblDomainName");
TextBox txtDomainName = (TextBox)e.Row.FindControl("txtDomainName");
ImageButton cmdDeleteDomain = (ImageButton)e.Row.FindControl("cmdDeleteDomain");
if (lblDomainName != null)
{
string val = (string)e.Row.DataItem;
txtDomainName.Text = val;
string pos = (e.Row.RowIndex < 2) ? e.Row.RowIndex.ToString() : "";
lblDomainName.Text = GetLocalizedString("Item" + pos + ".Text");
cmdDeleteDomain.CommandArgument = e.Row.RowIndex.ToString();
}
}
}
}

View file

@ -0,0 +1,17 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.42
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.UserControls {
public partial class EditDomainsList {
protected System.Web.UI.WebControls.Button btnAddDomain;
protected System.Web.UI.WebControls.GridView gvDomains;
}
}

View file

@ -0,0 +1,8 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="EditIPAddressControl.ascx.cs" Inherits="WebsitePanel.Portal.UserControls.EditIPAddressControl" %>
<asp:TextBox ID="txtAddress" runat="server" Width="110px" MaxLength="15" CssClass="NormalTextBox"></asp:TextBox>
<asp:RequiredFieldValidator ID="requireAddressValidator" runat="server" meta:resourcekey="requireAddressValidator"
ControlToValidate="txtAddress" SetFocusOnError="true" Text="*" Enabled="false" Display="Dynamic">
</asp:RequiredFieldValidator><asp:RegularExpressionValidator id="addressValidator" runat="server"
ValidationExpression="^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$"
Display="Dynamic" SetFocusOnError="true" ControlToValidate="txtAddress" Text="*" meta:resourcekey="addressValidator">
</asp:RegularExpressionValidator>

View file

@ -0,0 +1,90 @@
// 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.UserControls
{
public partial class EditIPAddressControl : WebsitePanelControlBase
{
public bool Required
{
get { return requireAddressValidator.Enabled; }
set { requireAddressValidator.Enabled = value; }
}
public string ValidationGroup
{
get { return requireAddressValidator.ValidationGroup; }
set
{
requireAddressValidator.ValidationGroup = value;
addressValidator.ValidationGroup = value;
}
}
public string CssClass
{
get { return txtAddress.CssClass; }
set { txtAddress.CssClass = value; }
}
public Unit Width
{
get { return txtAddress.Width; }
set { txtAddress.Width = value; }
}
public string Text
{
get { return txtAddress.Text.Trim(); }
set { txtAddress.Text = value; }
}
public string RequiredErrorMessage
{
get { return requireAddressValidator.ErrorMessage; }
set { requireAddressValidator.ErrorMessage = value; }
}
public string FormatErrorMessage
{
get { return addressValidator.ErrorMessage; }
set { addressValidator.ErrorMessage = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

View file

@ -0,0 +1,43 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.1434
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.UserControls {
public partial class EditIPAddressControl {
/// <summary>
/// txtAddress control.
/// </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 txtAddress;
/// <summary>
/// requireAddressValidator control.
/// </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 requireAddressValidator;
/// <summary>
/// addressValidator control.
/// </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 addressValidator;
}
}

View file

@ -0,0 +1,45 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="EditItemComments.ascx.cs" Inherits="WebsitePanel.Portal.EditItemComments" %>
<%@ Register TagPrefix="uc2" TagName="UserDetails" Src="UserDetails.ascx" %>
<asp:UpdatePanel runat="server" ID="commentsUpdatePanel" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:GridView ID="gvComments" runat="server" AutoGenerateColumns="False"
ShowHeader="false" DataKeyNames="CommentID"
CssSelectorClass="NormalGridView"
EmptyDataText="gvComments" OnRowDeleting="gvComments_RowDeleting">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<div style="float:right">
<asp:ImageButton ID="btnDelete" SkinID="DeleteSmall" CommandName="delete" runat="server" Text="Delete" meta:resourcekey="btnDelete" />
</div>
<div class="Small">
<uc2:UserDetails ID="userDetails" runat="server"
UserID='<%# Eval("UserID") %>'
Username='<%# Eval("Username") %>' />
<asp:Label ID="lblCommented" runat="server" meta:resourcekey="lblCommented"></asp:Label>
<%# Eval("CreatedDate") %>
</div>
<div class="FormRow">
<%# WrapComment((string)Eval("CommentText")) %>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Panel id="AddCommentPanel" runat="server" style="padding: 5px 5px 0px 5px;">
<asp:TextBox ID="txtComments" runat="server" CssClass="LogArea" Rows="3"
TextMode="MultiLine" Width="520px"></asp:TextBox>
<div class="FormRow">
<asp:Button ID="btnAdd" runat="server" Text="Add" meta:resourcekey="btnAdd" CssClass="Button3" OnClick="btnAdd_Click" ValidationGroup="AddItemComment" />
<asp:RequiredFieldValidator ID="valRequireComment" runat="server" ControlToValidate="txtComments"
ErrorMessage="*" ValidationGroup="AddItemComment" meta:resourcekey="valRequireComment"></asp:RequiredFieldValidator>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>

View file

@ -0,0 +1,155 @@
// 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;
namespace WebsitePanel.Portal
{
public partial class EditItemComments : WebsitePanelControlBase
{
public int ItemId
{
get
{
// get item id from view state
int itemId = (ViewState["ItemId"] != null) ? (int)ViewState["ItemId"] : -1;
if (itemId == -1)
{
// lookup in the request
if (RequestItemId != null)
itemId = Utils.ParseInt(Request[RequestItemId], -1);
}
return itemId;
}
set { ViewState["ItemId"] = value; }
}
public string ItemTypeId
{
get { return (ViewState["ItemTypeId"] != null) ? (string)ViewState["ItemTypeId"] : ""; }
set { ViewState["ItemTypeId"] = value; }
}
public string RequestItemId
{
get { return (ViewState["RequestItemId"] != null) ? (string)ViewState["RequestItemId"] : null; }
set { ViewState["RequestItemId"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindComments();
btnAdd.Enabled = (ItemId > 0);
AddCommentPanel.Visible = (ItemId > 0);
}
}
private void BindComments()
{
try
{
gvComments.DataSource = ES.Services.Comments.GetComments(PanelSecurity.EffectiveUserId, ItemTypeId, ItemId);
gvComments.DataBind();
}
catch (Exception ex)
{
HostModule.ShowErrorMessage("COMMENT_GET", ex);
return;
}
}
protected void btnAdd_Click(object sender, EventArgs e)
{
if (txtComments.Text.Trim() == "")
return;
try
{
int result = ES.Services.Comments.AddComment(ItemTypeId, ItemId, Server.HtmlEncode(txtComments.Text), 2);
if (result < 0)
{
HostModule.ShowResultMessage(result);
return;
}
}
catch (Exception ex)
{
HostModule.ShowErrorMessage("COMMENT_ADD", ex);
return;
}
// clear fields
txtComments.Text = "";
// rebind list
BindComments();
}
public string WrapComment(string text)
{
return (text != null) ? text.Replace("\n", "<br/>") : text;
}
protected void gvComments_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
int commentId = (int)gvComments.DataKeys[e.RowIndex][0];
// delete comment
try
{
int result = ES.Services.Comments.DeleteComment(commentId);
if (result < 0)
{
HostModule.ShowResultMessage(result);
return;
}
}
catch (Exception ex)
{
HostModule.ShowErrorMessage("COMMENT_DELETE", ex);
return;
}
// rebind list
BindComments();
}
}
}

View file

@ -0,0 +1,21 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.42
//
// 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 EditItemComments {
protected System.Web.UI.UpdatePanel commentsUpdatePanel;
protected System.Web.UI.WebControls.GridView gvComments;
protected System.Web.UI.WebControls.Panel AddCommentPanel;
protected System.Web.UI.WebControls.TextBox txtComments;
protected System.Web.UI.WebControls.Button btnAdd;
protected System.Web.UI.WebControls.RequiredFieldValidator valRequireComment;
}
}

View file

@ -0,0 +1,7 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="EmailControl.ascx.cs" Inherits="WebsitePanel.Portal.UserControls.EmailControl" %>
<asp:TextBox ID="txtEmail" runat="server" CssClass="NormalTextBox" Width="200px"></asp:TextBox>
<asp:RequiredFieldValidator ID="valRequireEmail" runat="server" ErrorMessage="*" meta:resourcekey="valRequireEmail"
ControlToValidate="txtEmail" Display="Dynamic"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="valCorrectEmail" runat="server"
ErrorMessage="Wrong e-mail" ControlToValidate="txtEmail" Display="Dynamic" meta:resourcekey="valCorrectEmail"
ValidationExpression="^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$"></asp:RegularExpressionValidator>

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.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;
namespace WebsitePanel.Portal.UserControls
{
public partial class EmailControl : WebsitePanelControlBase
{
public Unit Width
{
get { return txtEmail.Width; }
set { txtEmail.Width = value; }
}
public bool RequiredEnabled
{
get { return valRequireEmail.Enabled; }
set { valRequireEmail.Enabled = value; }
}
public string Text
{
get { return txtEmail.Text.Trim(); }
set { txtEmail.Text = value; }
}
public string ValidationGroup
{
get { return valRequireEmail.ValidationGroup; }
set { valRequireEmail.ValidationGroup = value; valCorrectEmail.ValidationGroup = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

View file

@ -0,0 +1,18 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.42
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.UserControls {
public partial class EmailControl {
protected System.Web.UI.WebControls.TextBox txtEmail;
protected System.Web.UI.WebControls.RequiredFieldValidator valRequireEmail;
protected System.Web.UI.WebControls.RegularExpressionValidator valCorrectEmail;
}
}

View file

@ -0,0 +1,84 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="EnableAsyncTasksSupport.ascx.cs" Inherits="WebsitePanel.Portal.EnableAsyncTasksSupport" %>
<%@ Import Namespace="WebsitePanel.Portal" %>
<input type="hidden" id="taskID" runat="server" />
<script type="text/javascript" language="javascript" type="text/javascript">
var _ctrlTaskID = "<%= taskID.ClientID %>";
var _completeMessage = "<%= GetLocalizedString("Text.CompleteMessage") %>";
</script>
<script src="<%= GetAjaxUtilsUrl() %>" language="javascript" type="text/javascript"></script>
<asp:Panel id="pnlModal" runat="server" CssClass="PopupContainer" style="display:none">
<table class="Header" cellpadding="0" cellspacing="0">
<tr>
<td class="HeaderLeft"></td>
<td class="HeaderTitle">
<asp:Label ID="lblTitle" runat="server" meta:resourcekey="lblTitle" Text="Running"></asp:Label>
</td>
<td class="HeaderRight"></td>
</tr>
</table>
<div class="Content">
<div class="FormBody">
<div class="ProgressPanelArea">
<div class="MediumBold">
<img id="imgAjaxIndicator" src='<%= PortalUtils.GetThemedImage("indicator_medium.gif") %>' align="absmiddle" />&nbsp;
<span id="objProgressDialogTitle"></span>
</div>
</div>
<div id="ProgressPanelArea" class="ProgressPanelArea">
<fieldset>
<table width="100%" cellpadding="3">
<tr>
<td class="SubHead" colspan="2">
<span id="objProgressDialogStep">Step</span>
</td>
</tr>
<tr>
<td colspan="2">
<div class="ProgressBarContainer">
<div id="objProgressDialogProgressBar" class="ProgressBarIndicator" style="width:0px;"></div>
</div>
</td>
</tr>
<tr>
<td class="SubHead" width="100" nowrap>
<asp:Label ID="lblStarted" runat="server" meta:resourcekey="lblStarted" Text="Started"></asp:Label>
</td>
<td class="Normal" width="100%">
<span id="progressStartTime"></span>
</td>
</tr>
<tr>
<td class="SubHead">
<asp:Label ID="lblDuration" runat="server" meta:resourcekey="lblDuration" Text="Duration"></asp:Label>
</td>
<td class="Normal">
<span id="progressDuration"></span>
</td>
</tr>
</table>
</fieldset>
</div>
</div>
<div id="PopupFormFooter" class="FormFooter" style="text-align: center;">
<div id="objProgressDialogCommandButtons">
<asp:Button id="btnCancelProgressDialog" Text=" Close " CssClass="Button1" meta:resourcekey="btnCancelProgressDialog" runat="server" />
</div>
<div id="objProgressDialogCloseButton" style="display: none;">
<asp:Button id="btnCloseProgressDialog" Text=" OK " CssClass="Button1" meta:resourcekey="btnCloseProgressDialog" runat="server" />
</div>
</div>
</div>
</asp:Panel>
<ajaxToolkit:ModalPopupExtender ID="ModalPopupProperties" runat="server"
BehaviorID="ModalPopupProperties"
TargetControlID="btnShowProgressDialog" PopupControlID="pnlModal"
BackgroundCssClass="modalBackground" DropShadow="false"
OkControlID="btnCloseProgressDialog" OnCancelScript="OnCancelProgressDialog()"
CancelControlID="btnCancelProgressDialog" />
<asp:Button id="btnShowProgressDialog" runat="server" Text="Progress" style="display:none;" />

View file

@ -0,0 +1,97 @@
// 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;
namespace WebsitePanel.Portal
{
public partial class EnableAsyncTasksSupport : WebsitePanelControlBase
{
protected void Page_Load(object sender, EventArgs e)
{
Page.Form.Attributes["onsubmit"] += "return ShowProgressDialogInternal();";
// get task ID from request and place it to context
Context.Items["WebsitePanelAtlasTaskID"] = taskID.Value;
}
public string GetAjaxUtilsUrl()
{
return Page.ClientScript.GetWebResourceUrl(
typeof(EnableAsyncTasksSupport), "WebsitePanel.Portal.Scripts.AjaxUtils.js");
}
protected override void OnPreRender(EventArgs e)
{
// call base handler
base.OnPreRender(e);
// check if async task was runned
string asyncScript = "";
string asyncTaskID = (string)Context.Items["WebsitePanelAtlasAsyncTaskID"];
if (!String.IsNullOrEmpty(asyncTaskID))
{
string taskTitle = (string)Context.Items["WebsitePanelAtlasAsyncTaskTitle"];
if (String.IsNullOrEmpty(taskTitle))
taskTitle = GetLocalizedString("Text.GenericTitle");
asyncScript = "ShowProgressDialogAsync('" + asyncTaskID + "', '" + taskTitle + "');";
}
else
{
string url = (string)Context.Items["RedirectUrl"];
if (!String.IsNullOrWhiteSpace(url))
{
Response.Redirect(url);
}
}
Page.ClientScript.RegisterStartupScript(this.GetType(), "Atlas", @"<script>
function pageLoad()
{
" + asyncScript + @"
ShowProgressDialogInternal();
}
</script>
");
// generate new task ID
taskID.Value = Guid.NewGuid().ToString("N");
}
}
}

View file

@ -0,0 +1,97 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3074
//
// 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 EnableAsyncTasksSupport {
/// <summary>
/// taskID 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.HtmlInputHidden taskID;
/// <summary>
/// pnlModal control.
/// </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 pnlModal;
/// <summary>
/// lblTitle control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Label lblTitle;
/// <summary>
/// lblStarted control.
/// </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 lblStarted;
/// <summary>
/// lblDuration control.
/// </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 lblDuration;
/// <summary>
/// btnCancelProgressDialog control.
/// </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 btnCancelProgressDialog;
/// <summary>
/// btnCloseProgressDialog control.
/// </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 btnCloseProgressDialog;
/// <summary>
/// ModalPopupProperties control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::AjaxControlToolkit.ModalPopupExtender ModalPopupProperties;
/// <summary>
/// btnShowProgressDialog control.
/// </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 btnShowProgressDialog;
}
}

View file

@ -0,0 +1,33 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="FileLookup.ascx.cs" Inherits="WebsitePanel.Portal.FileLookup" %>
<asp:TextBox ID="txtFile" runat="server" CssClass="NormalTextBox" Width="300px"></asp:TextBox>
<asp:RequiredFieldValidator ID="valRequireFile" runat="server" meta:resourcekey="valRequireFile" ControlToValidate="txtFile"
ErrorMessage="*"></asp:RequiredFieldValidator>
<br />
<asp:Panel ID="pnlLookup" runat="server" class="Toolbox" style="display: none;">
<div style="width: auto; height: 175px; overflow: auto; white-space: nowrap; background-color: #ffffff;padding:3px;border:solid 1px #909090;">
<div style="float:right;">
<asp:UpdateProgress ID="treeProgress" runat="server"
AssociatedUpdatePanelID="TreeUpdatePanel" DynamicLayout="true">
<ProgressTemplate>
<asp:Image ID="imgIndicator" runat="server" SkinID="AjaxIndicator" />
</ProgressTemplate>
</asp:UpdateProgress>
</div>
<asp:UpdatePanel ID="TreeUpdatePanel" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:treeview runat="server" id="DNNTree" populatenodesfromclient="true"
showexpandcollapse="true" expanddepth="0" ontreenodepopulate="DNNTree_TreeNodePopulate"
onselectednodechanged="DNNTree_SelectedNodeChanged" NodeIndent="10">
<rootnodestyle cssclass="FileManagerTreeNode" />
<nodestyle cssclass="FileManagerTreeNode" />
<leafnodestyle cssclass="FileManagerTreeNode" />
<parentnodestyle cssclass="FileManagerTreeNode" />
<selectednodestyle cssclass="FileManagerTreeNodeSelected" />
</asp:treeview>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Panel>
<ajaxToolkit:PopupControlExtender ID="PopupControlExtender1" runat="server" TargetControlID="txtFile" PopupControlID="pnlLookup" Position="Bottom" />
<ajaxToolkit:DropShadowExtender ID="DropShadowExtender1" runat="server" TargetControlID="pnlLookup" TrackPosition="true" Opacity="0.4" />

View file

@ -0,0 +1,200 @@
// 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 AjaxControlToolkit;
//using DNNTV = DotNetNuke.UI.WebControls;
using WebsitePanel.Providers.OS;
namespace WebsitePanel.Portal
{
public partial class FileLookup : WebsitePanelControlBase
{
public bool Enabled
{
get { return txtFile.Enabled; }
set { txtFile.Enabled = value; }
}
public int PackageId
{
get { return (ViewState["PackageId"] != null) ? (int)ViewState["PackageId"] : PanelSecurity.PackageId; }
set { ViewState["PackageId"] = value; InitTree(); }
}
public bool IncludeFiles
{
get { return (ViewState["IncludeFiles"] != null) ? (bool)ViewState["IncludeFiles"] : false; }
set { ViewState["IncludeFiles"] = value; }
}
public string RootFolder
{
get { return (ViewState["RootFolder"] != null) ? (string)ViewState["RootFolder"] : ""; }
set { ViewState["RootFolder"] = value; }
}
public string SelectedFile
{
get { return txtFile.Text; }
set { txtFile.Text = value; }
}
public Unit Width
{
get { return txtFile.Width; }
set { txtFile.Width = value; pnlLookup.Width = value; }
}
public string ValidationGroup
{
get { return valRequireFile.ValidationGroup; }
set { valRequireFile.ValidationGroup = value; }
}
public bool ValidationEnabled
{
get { return valRequireFile.Enabled; }
set { valRequireFile.Enabled = value; }
}
public bool DropShadow
{
get { return DropShadowExtender1.Opacity > 0.0F; }
set { DropShadowExtender1.Opacity = value ? 0.6F : 0.0F; }
}
private bool treeInitialized = false;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if(!treeInitialized)
InitTree();
}
}
private void InitTree()
{
pnlLookup.Width = Width;
// prepare tree
DNNTree.CollapseImageUrl = ResolveUrl(String.Concat("~/App_Themes/", Page.Theme, "/images/min.gif"));
DNNTree.ExpandImageUrl = ResolveUrl(String.Concat("~/App_Themes/", Page.Theme, "/images/max.gif"));
DNNTree.NoExpandImageUrl = ResolveUrl(String.Concat("~/App_Themes/", Page.Theme, "/images/empty.gif"));
DNNTree.Nodes.Clear();
TreeNode node = new TreeNode();
node.ImageUrl = ResolveUrl(String.Concat("~/App_Themes/", Page.Theme, "/images/folder.png"));
node.Value = PackageId.ToString() + "," + RootFolder + "\\";
node.Text = GetLocalizedString("Text.Root");
node.PopulateOnDemand = true;
DNNTree.Nodes.Add(node);
// set flag
treeInitialized = true;
}
protected void DNNTree_SelectedNodeChanged(object sender, EventArgs e)
{
if (DNNTree.SelectedNode != null)
{
string[] key = DNNTree.SelectedNode.Value.Split(',');
string path = key[1];
if (path.Length > 1 && path.EndsWith("\\"))
path = path.Substring(0, path.Length - 1);
path = path.Substring(RootFolder.Length);
if (!String.IsNullOrEmpty(RootFolder) &&
!path.StartsWith("\\"))
path = "\\" + path;
PopupControlExtender1.Commit(path);
}
}
protected void DNNTree_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
if (e.Node.ChildNodes.Count > 0)
return;
string[] key = e.Node.Value.Split(',');
int packageId = Utils.ParseInt(key[0], 0);
string path = key[1];
// read child folders
SystemFile[] files = null;
try
{
files = ES.Services.Files.GetFiles(packageId, path, IncludeFiles);
}
catch (Exception ex)
{
// add error node
TreeNode node = new TreeNode();
node.Text = "Error: " + ex.Message;
e.Node.ChildNodes.Add(node);
return;
}
foreach (SystemFile file in files)
{
string fullPath = path + file.Name;
if (file.IsDirectory)
fullPath += "\\";
TreeNode node = new TreeNode();
node.Value = packageId.ToString() + "," + fullPath;
node.Text = file.Name;
node.PopulateOnDemand = (file.IsDirectory && !file.IsEmpty);
node.ImageUrl = file.IsDirectory? ResolveUrl(String.Concat("~/App_Themes/", Page.Theme, "/images/folder.png")) :
ResolveUrl(String.Concat("~/App_Themes/", Page.Theme, "/images/file.png"));
e.Node.ChildNodes.Add(node);
}
}
}
}

View file

@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.42
//
// 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 FileLookup {
protected System.Web.UI.WebControls.TextBox txtFile;
protected System.Web.UI.WebControls.RequiredFieldValidator valRequireFile;
protected System.Web.UI.WebControls.Panel pnlLookup;
protected System.Web.UI.UpdateProgress treeProgress;
protected System.Web.UI.UpdatePanel TreeUpdatePanel;
protected System.Web.UI.WebControls.TreeView DNNTree;
protected AjaxControlToolkit.PopupControlExtender PopupControlExtender1;
protected AjaxControlToolkit.DropShadowExtender DropShadowExtender1;
}
}

View file

@ -0,0 +1,8 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="FileNameControl.ascx.cs" Inherits="WebsitePanel.Portal.FileNameControl" %>
<asp:TextBox ID="txtFileName" runat="server" Width="200"></asp:TextBox>
<asp:RequiredFieldValidator ID="valRequireNewName" runat="server" meta:resourcekey="valRequireNewName" ControlToValidate="txtFileName"
CssClass="NormalBold" Display="Dynamic" ErrorMessage="*" ValidationGroup="NewFileName"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="valCorrectNewName" runat="server" meta:resourcekey="valCorrectNewName" ControlToValidate="txtFileName"
CssClass="NormalBold" Display="Dynamic" EnableClientScript="False" ErrorMessage="Invalid file name."
ValidationExpression='(?i)^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\x00-\x1f\\?*:\";|/]+$'
ValidationGroup="NewFileName"></asp:RegularExpressionValidator>

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.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;
namespace WebsitePanel.Portal
{
public partial class FileNameControl : WebsitePanelControlBase
{
public string ValidationGroup
{
get
{
return valCorrectNewName.ValidationGroup;
}
set
{
valCorrectNewName.ValidationGroup = value;
valRequireNewName.ValidationGroup = value;
}
}
public string Text
{
get { return txtFileName.Text.Trim(); }
set { txtFileName.Text = value; }
}
public Unit Width
{
get { return txtFileName.Width; }
set { txtFileName.Width = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

View file

@ -0,0 +1,43 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.4927
//
// 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 FileNameControl {
/// <summary>
/// txtFileName control.
/// </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 txtFileName;
/// <summary>
/// valRequireNewName control.
/// </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 valRequireNewName;
/// <summary>
/// valCorrectNewName control.
/// </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 valCorrectNewName;
}
}

View file

@ -0,0 +1,3 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Gauge.ascx.cs" Inherits="WebsitePanel.Portal.Gauge" %>
<asp:Literal id="GaugeContent" runat="server">
</asp:Literal>

View file

@ -0,0 +1,127 @@
// 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;
namespace WebsitePanel.Portal
{
public partial class Gauge : WebsitePanelControlBase
{
private int width = 100;
private bool oneColour = false;
public bool DisplayGauge
{
get { return (ViewState["DisplayGauge"] != null) ? (bool)ViewState["DisplayGauge"] : true; }
set { ViewState["DisplayGauge"] = value; }
}
public bool DisplayText
{
get { return (ViewState["DisplayText"] != null) ? (bool)ViewState["DisplayText"] : true; }
set { ViewState["DisplayText"] = value; }
}
public int Progress
{
get { return (ViewState["Progress"] != null) ? (int)ViewState["Progress"] : 0; }
set { ViewState["Progress"] = value; }
}
public int Total
{
get { return (ViewState["Total"] != null) ? (int)ViewState["Total"] : 0; }
set { ViewState["Total"] = value; }
}
public int Width
{
get { return this.width; }
set { this.width = value; }
}
public bool OneColour
{
get { return this.oneColour; }
set { this.oneColour = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected override void OnPreRender(EventArgs e)
{
if (!DisplayGauge)
return;
string leftSideSrc = Page.ResolveUrl(PortalUtils.GetThemedImage("gauge_left.gif"));
string rightSideSrc = Page.ResolveUrl(PortalUtils.GetThemedImage("gauge_right.gif"));
string bkgSrc = Page.ResolveUrl(PortalUtils.GetThemedImage("gauge_bkg.gif"));
// calculate the width of the gauge
int fTotal = Total;
int percent = (fTotal > 0) ? Convert.ToInt32(Math.Round((double)Progress / (double)fTotal * 100)) : 0;
double fFilledWidth = (fTotal > 0) ? ((double)Progress / (double)fTotal * Width) : 0;
int filledWidth = Convert.ToInt32(fFilledWidth);
if (filledWidth > Width)
filledWidth = Width;
string fillSrc = "gauge_green.gif";
if(percent > 60 && percent < 90 && !oneColour)
fillSrc = "gauge_yellow.gif";
else if (percent >= 90 && !oneColour)
fillSrc = "gauge_red.gif";
fillSrc = Page.ResolveUrl(PortalUtils.GetThemedImage(fillSrc));
GaugeContent.Text = DrawImage(leftSideSrc, 1);
GaugeContent.Text += DrawImage(fillSrc, filledWidth);
GaugeContent.Text += DrawImage(bkgSrc, width - filledWidth);
GaugeContent.Text += DrawImage(rightSideSrc, 1);
}
private string DrawImage(string src, int width)
{
return String.Format("<img src=\"{0}\" width=\"{1}\" height=\"11\" align=\"absmiddle\"/>",
src, width);
}
}
}

View file

@ -0,0 +1,16 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.42
//
// 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 Gauge {
protected System.Web.UI.WebControls.Literal GaugeContent;
}
}

View file

@ -0,0 +1,119 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MessageBox.ascx.cs" EnableViewState="false" Inherits="WebsitePanel.Portal.MessageBox" %>
<%@ Register Src="CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %>
<div style="height:3px;"></div>
<div id="tblMessageBox" runat="server" class="MessageBox">
<asp:Literal ID="litMessage" runat="server"></asp:Literal>
<asp:Literal ID="litDescription" runat="server"></asp:Literal>
<div id="rowTechnicalDetails" runat="server" class="TechnicalDetails">
<wsp:CollapsiblePanel id="secTechnicalDetails" runat="server" IsCollapsed="true"
TargetControlID="TechnicalDetailsPanel" resourcekey="secTechnicalDetails" Text="Technical Details">
</wsp:CollapsiblePanel>
<asp:Panel ID="TechnicalDetailsPanel" runat="server" Height="0" style="overflow:hidden;">
<table id="tblTechnicalDetails" runat="server" style="background-color: #FFFFFF;" cellpadding="0" cellspacing="0">
<tr>
<td>
<table cellspacing="0" cellpadding="3">
<tr>
<td class="NormalBold" width="150" nowrap>
<asp:Label ID="lblPageUrl" runat="server" meta:resourcekey="lblPageUrl" Text="Page URL:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litPageUrl" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="NormalBold">
<asp:Label ID="lblLoggedUser" runat="server" meta:resourcekey="lblLoggedUser" Text="Logged User:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litLoggedUser" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="NormalBold">
<asp:Label ID="lblWorkOnBehalf" runat="server" meta:resourcekey="lblWorkOnBehalf" Text="Work On Behalf:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litSelectedUser" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="NormalBold">
<asp:Label ID="lblSpace" runat="server" meta:resourcekey="lblSpace" Text="Active Space:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litPackageName" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="NormalBold" valign="top">
<asp:Label ID="lblStackTrace" runat="server" meta:resourcekey="lblStackTrace" Text="Stack Trace:"></asp:Label>
</td>
<td class="Normal" valign="top">
<asp:Literal ID="litStackTrace" runat="server"></asp:Literal>
</td>
</tr>
</table>
</td>
</tr>
</table>
</asp:Panel>
<wsp:CollapsiblePanel id="secSendReport" runat="server" IsCollapsed="true"
TargetControlID="SendReportPanel" resourcekey="secSendReport" Text="Send Report to Host">
</wsp:CollapsiblePanel>
<asp:Panel ID="SendReportPanel" runat="server" Height="0" style="overflow:hidden;">
<table cellspacing="0" cellpadding="3">
<tr>
<td class="NormalBold" width="150" nowrap>
<asp:Label ID="lblFrom" runat="server" meta:resourcekey="lblFrom" Text="From:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litSendFrom" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="NormalBold">
<asp:Label ID="lblTo" runat="server" meta:resourcekey="lblTo" Text="To:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litSendTo" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="NormalBold">
<asp:Label ID="lblCC" runat="server" meta:resourcekey="lblCC" Text="CC:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litSendCC" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="NormalBold">
<asp:Label ID="lblSubject" runat="server" meta:resourcekey="lblSubject" Text="Subject:"></asp:Label>
</td>
<td class="Normal">
<asp:Literal ID="litSendSubject" runat="server"></asp:Literal>
</td>
</tr>
<tr>
<td class="NormalBold" valign="top">
<asp:Label ID="lblComments" runat="server" meta:resourcekey="lblComments" Text="Personal Comments:"></asp:Label>
</td>
<td class="Normal" valign="top">
<asp:TextBox ID="txtSendComments" runat="server" CssClass="LogArea" Rows="5" TextMode="MultiLine"
Width="400px"></asp:TextBox></td>
</tr>
<tr>
<td colspan="2">
<asp:Button ID="btnSend" runat="server" meta:resourcekey="btnSend" Text="Send Report" CssClass="Button2" CausesValidation="false" OnClick="btnSend_Click" />
<asp:Label ID="lblSentMessage" runat="server" meta:resourcekey="lblSentMessage"
Text="Message has been sent" CssClass="NormalBold" Visible="false"></asp:Label>
</td>
</tr>
</table>
</asp:Panel>
</div>
</div>

View file

@ -0,0 +1,139 @@
// 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.Text;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Web.Services.Protocols;
using Microsoft.Security.Application;
namespace WebsitePanel.Portal
{
public partial class MessageBox : WebsitePanelControlBase, IMessageBoxControl, INamingContainer
{
protected void Page_Load(object sender, EventArgs e)
{
//this.Visible = false;
if (ViewState["ShowNextTime"] != null)
{
this.Visible = true;
ViewState["ShowNextTime"] = null;
}
}
public void RenderMessage(MessageBoxType messageType, string message, string description,
Exception ex, params string[] additionalParameters)
{
this.Visible = true; // show message
// set icon and styles
string boxStyle = "MessageBox Green";
if (messageType == MessageBoxType.Warning)
boxStyle = "MessageBox Yellow";
else if (messageType == MessageBoxType.Error)
boxStyle = "MessageBox Red";
tblMessageBox.Attributes["class"] = boxStyle;
// set texts
litMessage.Text = message;
litDescription.Text = !String.IsNullOrEmpty(description)
? String.Format("<br/><span class=\"description\">{0}</span>", description) : "";
// show exception
if (ex != null)
{
// show error
try
{
// technical details
litPageUrl.Text = AntiXss.HtmlEncode(Request.Url.ToString());
litLoggedUser.Text = PanelSecurity.LoggedUser.Username;
litSelectedUser.Text = PanelSecurity.SelectedUser.Username;
litPackageName.Text = PanelSecurity.PackageId.ToString();
litStackTrace.Text = ex.ToString().Replace("\n", "<br/>");
// send form
litSendFrom.Text = PanelSecurity.LoggedUser.Email;
if (!String.IsNullOrEmpty(PortalUtils.FromEmail))
litSendFrom.Text = PortalUtils.FromEmail;
//litSendTo.Text = this.PortalSettings.Email;
litSendTo.Text = PortalUtils.AdminEmail;
litSendCC.Text = PanelSecurity.LoggedUser.Email;
litSendSubject.Text = GetLocalizedString("Text.Subject");
}
catch { /* skip */ }
}
else
{
rowTechnicalDetails.Visible = false;
}
}
protected void btnSend_Click(object sender, EventArgs e)
{
EnableViewState = true;
ViewState["ShowNextTime"] = true;
StringBuilder sb = new StringBuilder();
sb.Append("Page URL: ").Append(litPageUrl.Text).Append("\n\n");
sb.Append("Logged User: ").Append(litLoggedUser.Text).Append("\n\n");
sb.Append("Selected User: ").Append(litSelectedUser.Text).Append("\n\n");
sb.Append("Package ID: ").Append(litPackageName.Text).Append("\n\n");
sb.Append("Stack Trace: ").Append(litStackTrace.Text.Replace("<br/>", "\n")).Append("\n\n");
sb.Append("Personal Comments: ").Append(txtSendComments.Text).Append("\n\n");
try
{
btnSend.Visible = false;
lblSentMessage.Visible = true;
// send mail
PortalUtils.SendMail(litSendFrom.Text, litSendTo.Text, litSendFrom.Text,
litSendSubject.Text, sb.ToString());
lblSentMessage.Text = GetLocalizedString("Text.MessageSent");
}
catch
{
lblSentMessage.Text = GetLocalizedString("Text.MessageSentError");
}
}
}
}

View file

@ -0,0 +1,295 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3074
//
// 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 MessageBox {
/// <summary>
/// tblMessageBox 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 tblMessageBox;
/// <summary>
/// litMessage control.
/// </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 litMessage;
/// <summary>
/// litDescription control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.Literal litDescription;
/// <summary>
/// rowTechnicalDetails 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 rowTechnicalDetails;
/// <summary>
/// secTechnicalDetails control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secTechnicalDetails;
/// <summary>
/// TechnicalDetailsPanel control.
/// </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 TechnicalDetailsPanel;
/// <summary>
/// tblTechnicalDetails 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 tblTechnicalDetails;
/// <summary>
/// lblPageUrl control.
/// </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 lblPageUrl;
/// <summary>
/// litPageUrl control.
/// </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 litPageUrl;
/// <summary>
/// lblLoggedUser control.
/// </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 lblLoggedUser;
/// <summary>
/// litLoggedUser control.
/// </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 litLoggedUser;
/// <summary>
/// lblWorkOnBehalf control.
/// </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 lblWorkOnBehalf;
/// <summary>
/// litSelectedUser control.
/// </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 litSelectedUser;
/// <summary>
/// lblSpace control.
/// </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 lblSpace;
/// <summary>
/// litPackageName control.
/// </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 litPackageName;
/// <summary>
/// lblStackTrace control.
/// </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 lblStackTrace;
/// <summary>
/// litStackTrace control.
/// </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 litStackTrace;
/// <summary>
/// secSendReport control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::WebsitePanel.Portal.CollapsiblePanel secSendReport;
/// <summary>
/// SendReportPanel control.
/// </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 SendReportPanel;
/// <summary>
/// lblFrom control.
/// </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 lblFrom;
/// <summary>
/// litSendFrom control.
/// </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 litSendFrom;
/// <summary>
/// lblTo control.
/// </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 lblTo;
/// <summary>
/// litSendTo control.
/// </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 litSendTo;
/// <summary>
/// lblCC control.
/// </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 lblCC;
/// <summary>
/// litSendCC control.
/// </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 litSendCC;
/// <summary>
/// lblSubject control.
/// </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 lblSubject;
/// <summary>
/// litSendSubject control.
/// </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 litSendSubject;
/// <summary>
/// lblComments control.
/// </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 lblComments;
/// <summary>
/// txtSendComments control.
/// </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 txtSendComments;
/// <summary>
/// btnSend control.
/// </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 btnSend;
/// <summary>
/// lblSentMessage control.
/// </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 lblSentMessage;
}
}

View file

@ -0,0 +1,97 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PackageIPAddresses.ascx.cs" Inherits="WebsitePanel.Portal.UserControls.PackageIPAddresses" %>
<%@ Register Src="SimpleMessageBox.ascx" TagName="SimpleMessageBox" TagPrefix="wsp" %>
<%@ Register Src="SearchBox.ascx" TagName="SearchBox" TagPrefix="wsp" %>
<script language="javascript">
function SelectAllCheckboxes(box) {
var state = box.checked;
var elm = box.parentElement.parentElement.parentElement.parentElement.getElementsByTagName("INPUT");
for (i = 0; i < elm.length; i++)
if (elm[i].type == "checkbox" && elm[i].id != box.id && elm[i].checked != state && !elm[i].disabled)
elm[i].checked = state;
}
</script>
<wsp:SimpleMessageBox id="messageBox" runat="server" />
<div class="FormButtonsBarClean">
<div class="FormButtonsBarCleanLeft">
<asp:Button ID="btnAllocateAddress" runat="server" meta:resourcekey="btnAllocateAddress"
Text="Allocate IP Addresses" CssClass="Button1" CausesValidation="False"
onclick="btnAllocateAddress_Click" />
</div>
<div class="FormButtonsBarCleanRight">
<wsp:SearchBox ID="searchBox" runat="server" />
</div>
</div>
<asp:GridView ID="gvAddresses" runat="server" AutoGenerateColumns="False"
Width="100%" EmptyDataText="gvAddresses" CssSelectorClass="NormalGridView"
AllowPaging="True" AllowSorting="True" DataSourceID="odsExternalAddressesPaged"
onrowdatabound="gvAddresses_RowDataBound" DataKeyNames="PackageAddressID" >
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="chkSelectAll" runat="server" onclick="javascript:SelectAllCheckboxes(this);" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" />&nbsp;
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="gvAddressesIPAddress" meta:resourcekey="gvAddressesIPAddress"
DataField="ExternalIP" SortExpression="ExternalIP" />
<asp:BoundField HeaderText="gvAddressesNATAddress" meta:resourcekey="gvAddressesNATAddress"
DataField="InternalIP" SortExpression="InternalIP" />
<asp:BoundField HeaderText="gvAddressesDefaultGateway" meta:resourcekey="gvAddressesDefaultGateway"
DataField="DefaultGateway" SortExpression="DefaultGateway" />
<asp:TemplateField HeaderText="gvAddressesItemName" meta:resourcekey="gvAddressesItemName" SortExpression="ItemName">
<ItemTemplate>
<asp:hyperlink id="lnkEdit" runat="server" NavigateUrl='<%# GetItemEditUrl(Eval("ItemID").ToString()) %>'>
<%# Eval("ItemName") %>
</asp:hyperlink>&nbsp;
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="gvAddressesPrimary" meta:resourcekey="gvAddressesPrimary" SortExpression="IsPrimary">
<ItemTemplate>
<asp:Image ID="imgPrimary" runat="server" SkinID="Checkbox16" Visible='<%# Eval("IsPrimary") %>' />&nbsp;
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="gvAddressesSpace" meta:resourcekey="gvAddressesSpace" SortExpression="PackageName" >
<ItemTemplate>
<asp:hyperlink id="lnkSpace" runat="server" NavigateUrl='<%# GetSpaceHomeUrl(Eval("PackageID").ToString()) %>'>
<%# Eval("PackageName") %>
</asp:hyperlink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="gvAddressesUser" meta:resourcekey="gvAddressesUser" SortExpression="Username" >
<ItemTemplate>
<%# Eval("UserName") %>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="odsExternalAddressesPaged" runat="server" EnablePaging="True"
SelectCountMethod="GetPackageIPAddressesCount"
SelectMethod="GetPackageIPAddresses"
SortParameterName="sortColumn"
TypeName="WebsitePanel.Portal.VirtualMachinesHelper"
OnSelected="odsExternalAddressesPaged_Selected"
onselecting="odsExternalAddressesPaged_Selecting">
<SelectParameters>
<asp:QueryStringParameter Name="packageId" QueryStringField="SpaceID" DefaultValue="0" />
<asp:Parameter Name="pool" DefaultValue="0" />
<asp:ControlParameter Name="filterColumn" ControlID="searchBox" PropertyName="FilterColumn" />
<asp:ControlParameter Name="filterValue" ControlID="searchBox" PropertyName="FilterValue" />
</SelectParameters>
</asp:ObjectDataSource>
<div style="margin-top:4px;">
<asp:Button ID="btnDeallocateAddresses" runat="server" meta:resourcekey="btnDeallocateAddresses"
Text="Deallocate selected" CssClass="SmallButton" CausesValidation="False"
onclick="btnDeallocateAddresses_Click" />
</div>

View file

@ -0,0 +1,181 @@
// 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.Common;
namespace WebsitePanel.Portal.UserControls
{
public partial class PackageIPAddresses : WebsitePanelControlBase
{
private bool spaceOwner;
private IPAddressPool pool;
public IPAddressPool Pool
{
get { return pool; }
set { pool = value; }
}
private string editItemControl;
public string EditItemControl
{
get { return editItemControl; }
set { editItemControl = value; }
}
private string spaceHomeControl;
public string SpaceHomeControl
{
get { return spaceHomeControl; }
set { spaceHomeControl = value; }
}
private string allocateAddressesControl;
public string AllocateAddressesControl
{
get { return allocateAddressesControl; }
set { allocateAddressesControl = value; }
}
public bool ManageAllowed
{
get { return ViewState["ManageAllowed"] != null ? (bool)ViewState["ManageAllowed"] : false; }
set { ViewState["ManageAllowed"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
bool vps = (Pool == IPAddressPool.VpsExternalNetwork || Pool == IPAddressPool.VpsManagementNetwork);
if (!IsPostBack)
{
searchBox.AddCriteria("ExternalIP", GetLocalizedString("SearchField.IPAddress"));
searchBox.AddCriteria("InternalIP", GetLocalizedString("SearchField.InternalIP"));
if (vps)
searchBox.AddCriteria("DefaultGateway", GetLocalizedString("SearchField.DefaultGateway"));
searchBox.AddCriteria("ItemName", GetLocalizedString("SearchField.ItemName"));
searchBox.AddCriteria("Username", GetLocalizedString("SearchField.Username"));
}
bool isUserSelected = PanelSecurity.SelectedUser.Role == WebsitePanel.EnterpriseServer.UserRole.User;
bool isUserLogged = PanelSecurity.EffectiveUser.Role == WebsitePanel.EnterpriseServer.UserRole.User;
spaceOwner = PanelSecurity.EffectiveUserId == PanelSecurity.SelectedUserId;
gvAddresses.Columns[6].Visible = !isUserSelected; // space
gvAddresses.Columns[7].Visible = !isUserSelected; // user
// managing external network permissions
gvAddresses.Columns[0].Visible = !isUserLogged && ManageAllowed;
btnAllocateAddress.Visible = !isUserLogged && !spaceOwner && ManageAllowed && !String.IsNullOrEmpty(AllocateAddressesControl);
btnDeallocateAddresses.Visible = !isUserLogged && ManageAllowed;
//gvAddresses.Columns[2].Visible = !vps; // NAT address
gvAddresses.Columns[3].Visible = vps; // gateway
gvAddresses.Columns[5].Visible = vps; // is primary
}
public string GetItemEditUrl(string itemID)
{
return HostModule.EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), EditItemControl,
"ItemID=" + itemID);
}
public string GetSpaceHomeUrl(string spaceId)
{
return HostModule.EditUrl("SpaceID", spaceId, SpaceHomeControl);
}
protected void odsExternalAddressesPaged_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
if (e.Exception != null)
{
messageBox.ShowErrorMessage("EXCHANGE_GET_MAILBOXES", e.Exception);
e.ExceptionHandled = true;
}
}
protected void btnAllocateAddress_Click(object sender, EventArgs e)
{
Response.Redirect(HostModule.EditUrl("SpaceID", PanelSecurity.PackageId.ToString(), AllocateAddressesControl));
}
protected void gvAddresses_RowDataBound(object sender, GridViewRowEventArgs e)
{
PackageIPAddress item = e.Row.DataItem as PackageIPAddress;
if (item != null)
{
// checkbox
CheckBox chkSelect = e.Row.FindControl("chkSelect") as CheckBox;
chkSelect.Enabled = (!spaceOwner || (PanelSecurity.PackageId != item.PackageId)) && item.ItemId == 0;
}
}
protected void btnDeallocateAddresses_Click(object sender, EventArgs e)
{
List<int> ids = new List<int>();
try
{
List<int> items = new List<int>();
for (int i = 0; i < gvAddresses.Rows.Count; i++)
{
GridViewRow row = gvAddresses.Rows[i];
CheckBox chkSelect = (CheckBox)row.FindControl("chkSelect");
if (chkSelect.Checked)
items.Add((int)gvAddresses.DataKeys[i].Value);
}
// check if at least one is selected
if (items.Count == 0)
{
messageBox.ShowWarningMessage("IP_EDIT_LIST_EMPTY_ERROR");
return;
}
ResultObject res = ES.Services.Servers.DeallocatePackageIPAddresses(PanelSecurity.PackageId, items.ToArray());
messageBox.ShowMessage(res, "DEALLOCATE_SPACE_IP_ADDRESSES", "VPS");
gvAddresses.DataBind();
}
catch (Exception ex)
{
messageBox.ShowErrorMessage("DEALLOCATE_SPACE_IP_ADDRESSES", ex);
}
}
protected void odsExternalAddressesPaged_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
e.InputParameters["pool"] = Pool;
}
}
}

View file

@ -0,0 +1,70 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.1434
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.UserControls {
public partial class PackageIPAddresses {
/// <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>
/// btnAllocateAddress control.
/// </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 btnAllocateAddress;
/// <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>
/// odsExternalAddressesPaged control.
/// </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 odsExternalAddressesPaged;
/// <summary>
/// btnDeallocateAddresses control.
/// </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 btnDeallocateAddresses;
}
}

View file

@ -0,0 +1,4 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ParameterEditor.ascx.cs" Inherits="WebsitePanel.Portal.ParameterEditor" %>
<asp:TextBox ID="txtValue" runat="server" Width="100%" Visible="false"></asp:TextBox>
<asp:TextBox ID="txtMultiValue" runat="server" Width="100%" TextMode="MultiLine" Rows="5" Visible="false"></asp:TextBox>
<asp:DropDownList ID="ddlValue" runat="server" Visible="false"></asp:DropDownList>

View file

@ -0,0 +1,130 @@
// 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;
namespace WebsitePanel.Portal
{
public partial class ParameterEditor : System.Web.UI.UserControl
{
public string DataType
{
get { return (string)ViewState["DataType"]; }
set { ViewState["DataType"] = value; }
}
public string Value
{
get { return GetValue(); }
set
{
ViewState["Value"] = value;
SetValue();
}
}
public string DefaultValue
{
get { return (string)ViewState["DefaultValue"]; }
set { ViewState["DefaultValue"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
SetValue();
}
private void SetValue()
{
string val = (string)ViewState["Value"];
if (String.Compare(DataType, "string", true) == 0)
{
txtValue.Text = (val != null) ? val : DefaultValue;
txtValue.Visible = true;
}
else if (String.Compare(DataType, "multistring", true) == 0)
{
txtMultiValue.Text = (val != null) ? val : DefaultValue;
txtMultiValue.Visible = true;
}
else if (String.Compare(DataType, "list", true) == 0)
{
try
{
ddlValue.Items.Clear();
string[] vals = DefaultValue.Split(';');
foreach (string v in vals)
{
string itemValue = v;
string itemText = v;
int eqIdx = v.IndexOf("=");
if (eqIdx != -1)
{
itemValue = v.Substring(0, eqIdx);
itemText = v.Substring(eqIdx + 1);
}
ddlValue.Items.Add(new ListItem(itemText, itemValue));
}
}
catch { /* skip */ }
Utils.SelectListItem(ddlValue, val);
ddlValue.Visible = true;
}
}
private string GetValue()
{
if (String.Compare(DataType, "string", true) == 0)
{
return txtValue.Text.Trim();
}
else if (String.Compare(DataType, "multistring", true) == 0)
{
return txtMultiValue.Text.Trim();
}
else
{
return ddlValue.SelectedValue;
}
}
}
}

View file

@ -0,0 +1,18 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.42
//
// 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 ParameterEditor {
protected System.Web.UI.WebControls.TextBox txtValue;
protected System.Web.UI.WebControls.TextBox txtMultiValue;
protected System.Web.UI.WebControls.DropDownList ddlValue;
}
}

View file

@ -0,0 +1,36 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PasswordControl.ascx.cs" Inherits="WebsitePanel.Portal.PasswordControl" %>
<script src="<%= GetRandomPasswordUrl() %>" language="javascript" type="text/javascript"></script>
<table cellpadding="0" cellspacing="0">
<tr>
<td class="Normal">
<asp:TextBox ID="txtPassword" runat="server" CssClass="NormalTextBox" Width="150px" TextMode="Password" MaxLength="50"></asp:TextBox>
<asp:RequiredFieldValidator ID="valRequirePassword" runat="server" meta:resourcekey="valRequirePassword"
ErrorMessage="*" ControlToValidate="txtPassword" SetFocusOnError="True"></asp:RequiredFieldValidator>
<asp:HyperLink ID="lnkGenerate" runat="server" NavigateUrl="#" meta:resourcekey="lnkGenerate" Visible="false">Generate random</asp:HyperLink></td>
</tr>
<tr>
<td class="SubHead"><asp:Label id="lblConfirmPassword" runat="server" meta:resourcekey="lblConfirmPassword"></asp:Label></td>
</tr>
<tr>
<td class="Normal">
<asp:TextBox ID="txtConfirmPassword" runat="server" CssClass="NormalTextBox" Width="150px" TextMode="Password" MaxLength="50"></asp:TextBox>
<asp:RequiredFieldValidator ID="valRequireConfirmPassword" runat="server"
meta:resourcekey="valRequireConfirmPassword" ErrorMessage="*" ControlToValidate="txtConfirmPassword" SetFocusOnError="True"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="valRequireEqualPassword" runat="server" ControlToCompare="txtPassword"
ControlToValidate="txtConfirmPassword" meta:resourcekey="valRequireEqualPassword" Display="Dynamic" ErrorMessage="*"></asp:CompareValidator>
<asp:CustomValidator ID="valCorrectLength" runat="server"
ControlToValidate="txtPassword" ErrorMessage="len" Display="Dynamic" Enabled="false"
ClientValidationFunction="wspValidatePasswordLength" OnServerValidate="valCorrectLength_ServerValidate"></asp:CustomValidator>
<asp:CustomValidator ID="valRequireNumbers" runat="server"
ControlToValidate="txtPassword" ErrorMessage="num" Display="Dynamic" Enabled="false"
ClientValidationFunction="wspValidatePasswordNumbers" OnServerValidate="valRequireNumbers_ServerValidate"></asp:CustomValidator>
<asp:CustomValidator ID="valRequireUppercase" runat="server"
ControlToValidate="txtPassword" ErrorMessage="upp" Display="Dynamic" Enabled="false"
ClientValidationFunction="wspValidatePasswordUppercase" OnServerValidate="valRequireUppercase_ServerValidate"></asp:CustomValidator>
<asp:CustomValidator ID="valRequireSymbols" runat="server"
ControlToValidate="txtPassword" ErrorMessage="sym" Display="Dynamic" Enabled="false"
ClientValidationFunction="wspValidatePasswordSymbols" OnServerValidate="valRequireSymbols_ServerValidate"></asp:CustomValidator>
</td>
</tr>
</table>

View file

@ -0,0 +1,369 @@
// 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.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using WebsitePanel.EnterpriseServer;
using Microsoft.Security.Application;
namespace WebsitePanel.Portal
{
public partial class PasswordControl : WebsitePanelControlBase
{
public const string EMPTY_PASSWORD = "D)n!_Pr$";
public const int MIN_PASSWORD_LENGTH = 1;
public bool ValidationEnabled
{
get { return (ViewState["ValidationEnabled"] != null) ? (bool)ViewState["ValidationEnabled"] : true; }
set { ViewState["ValidationEnabled"] = value; ToggleControls(); }
}
public bool AllowGeneratePassword
{
get { return lnkGenerate.Visible; }
set { lnkGenerate.Visible = value; }
}
public string GetRandomPasswordUrl()
{
return Page.ClientScript.GetWebResourceUrl(
typeof(PasswordControl), "WebsitePanel.Portal.Scripts.RandomPassword.js");
}
public string ValidationGroup
{
get
{
return valRequirePassword.ValidationGroup;
}
set
{
valRequirePassword.ValidationGroup = value;
valRequireConfirmPassword.ValidationGroup = value;
valRequireEqualPassword.ValidationGroup = value;
valCorrectLength.ValidationGroup = value;
valRequireNumbers.ValidationGroup = value;
valRequireUppercase.ValidationGroup = value;
valRequireSymbols.ValidationGroup = value;
}
}
public bool EditMode
{
get { return (ViewState["EditMode"] != null) ? (bool)ViewState["EditMode"] : false; }
set { ViewState["EditMode"] = value; ToggleControls(); }
}
public string Password
{
get { return (txtPassword.Text == EMPTY_PASSWORD) ? "" : txtPassword.Text; }
set { txtPassword.Text = value; }
}
public bool CheckPasswordLength
{
get { return (ViewState["CheckPasswordLength"] != null) ? (bool)ViewState["CheckPasswordLength"] : true; }
set { ViewState["CheckPasswordLength"] = value; ToggleControls(); }
}
public int MinimumLength
{
get { return (ViewState["MinimumLength"] != null) ? (int)ViewState["MinimumLength"] : 0; }
set { ViewState["MinimumLength"] = value; }
}
public int MaximumLength
{
get { return (ViewState["MaximumLength"] != null) ? (int)ViewState["MaximumLength"] : 0; }
set { ViewState["MaximumLength"] = value; }
}
public int MinimumNumbers
{
get { return (ViewState["MinimumNumbers"] != null) ? (int)ViewState["MinimumNumbers"] : 0; }
set { ViewState["MinimumNumbers"] = value; }
}
public int MinimumUppercase
{
get { return (ViewState["MinimumUppercase"] != null) ? (int)ViewState["MinimumUppercase"] : 0; }
set { ViewState["MinimumUppercase"] = value; }
}
public int MinimumSymbols
{
get { return (ViewState["MinimumSymbols"] != null) ? (int)ViewState["MinimumSymbols"] : 0; }
set { ViewState["MinimumSymbols"] = value; }
}
private UserInfo PolicyUser
{
get { return (ViewState["PolicyUser"] != null) ? (UserInfo)ViewState["PolicyUser"] : null; }
set { ViewState["PolicyUser"] = value; }
}
private string PolicyValue
{
get { return (ViewState["PolicyValue"] != null) ? (string)ViewState["PolicyValue"] : null; }
set { ViewState["PolicyValue"] = value; }
}
public void SetPackagePolicy(int packageId, string settingsName, string key)
{
// load package
PackageInfo package = PackagesHelper.GetCachedPackage(packageId);
if (package != null)
{
// init by user
SetUserPolicy(package.UserId, settingsName, key);
}
}
public void SetUserPolicy(int userId, string settingsName, string key)
{
// load user profile
UserInfo user = UsersHelper.GetCachedUser(userId);
if (user != null)
{
PolicyUser = user;
// load settings
//UserSettings settings = UsersHelper.GetCachedUserSettings(userId, settingsName);
//EP 2009/09/15: Removed caching for user policy as it was confusing users
UserSettings settings = ES.Services.Users.GetUserSettings(userId, settingsName);
if (settings != null)
{
string policyValue = settings[key];
if (policyValue != null)
PolicyValue = policyValue;
}
}
// toggle controls
ToggleControls();
}
protected void Page_Load(object sender, EventArgs e)
{
txtPassword.Attributes["value"] = txtPassword.Text;
txtConfirmPassword.Attributes["value"] = txtConfirmPassword.Text;
ToggleControls();
}
protected override void OnPreRender(EventArgs e)
{
RenderValidationJavaScript();
}
private void RenderValidationJavaScript()
{
if (!Page.ClientScript.IsClientScriptIncludeRegistered("wspValidationFunctions"))
{
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "wspValidationFunctions", @"
function wspValidatePasswordNumbers(source, args)
{
if(args.Value == source.getAttribute('dpsw')) return true;
args.IsValid = wspValidatePattern(/(\d)/g, args.Value,
parseInt(source.getAttribute('minimumNumber')));
}
function wspValidatePasswordUppercase(source, args)
{
if(args.Value == source.getAttribute('dpsw')) return true;
args.IsValid = wspValidatePattern(/([A-Z])/g, args.Value,
parseInt(source.getAttribute('minimumNumber')));
}
function wspValidatePasswordSymbols(source, args)
{
if(args.Value == source.getAttribute('dpsw')) return true;
args.IsValid = wspValidatePattern(/(\W)/g, args.Value,
parseInt(source.getAttribute('minimumNumber')));
}
function wspValidatePasswordLength(source, args)
{
if(args.Value == source.getAttribute('dpsw')) return true;
args.IsValid = (args.Value.length >= parseInt(source.getAttribute('minimumLength')));
}
function wspValidatePattern(re, val, minMatches)
{
var matches = val.match(re);
return ((matches != null) && matches.length >= minMatches);
}
", true);
}
}
private void ToggleControls()
{
valCorrectLength.Attributes["dpsw"] = EMPTY_PASSWORD;
valRequireNumbers.Attributes["dpsw"] = EMPTY_PASSWORD;
valRequireUppercase.Attributes["dpsw"] = EMPTY_PASSWORD;
valRequireSymbols.Attributes["dpsw"] = EMPTY_PASSWORD;
// set empty password
if (txtPassword.Text == "" && EditMode)
{
txtPassword.Attributes["value"] = EMPTY_PASSWORD;
txtConfirmPassword.Attributes["value"] = EMPTY_PASSWORD;
}
// enable/disable require validators
valRequirePassword.Enabled = ValidationEnabled;
valRequireConfirmPassword.Enabled = ValidationEnabled;
// require default length
MinimumLength = Math.Max(MIN_PASSWORD_LENGTH, MinimumLength);
// parse and enforce policy
if (PolicyValue != null)
{
bool enabled = false;
int minLength = -1;
int maxLength = -1;
bool notEqualToUsername = false;
try
{
// parse settings
string[] parts = PolicyValue.Split(';');
enabled = Utils.ParseBool(parts[0], false);
minLength = Math.Max(Utils.ParseInt(parts[1], 0), MinimumLength);
maxLength = Math.Max(Utils.ParseInt(parts[2], 0), MaximumLength);
MinimumUppercase = Math.Max(Utils.ParseInt(parts[3], 0), MinimumUppercase);
MinimumNumbers = Math.Max(Utils.ParseInt(parts[4], 0), MinimumNumbers);
MinimumSymbols = Math.Max(Utils.ParseInt(parts[5], 0), MinimumSymbols);
notEqualToUsername = Utils.ParseBool(parts[6], false);
}
catch { /* skip */ }
// apply policy
if (enabled)
{
// min length
if (minLength > 0)
{
MinimumLength = minLength;
valCorrectLength.Enabled = true;
valCorrectLength.Attributes["minimumLength"] = MinimumLength.ToString();
valCorrectLength.ErrorMessage = String.Format(GetLocalizedString("CorrectLength.Text"), MinimumLength);
}
// max length
if (maxLength > 0)
{
MaximumLength = maxLength;
txtPassword.MaxLength = maxLength;
txtConfirmPassword.MaxLength = maxLength;
}
// numbers
if (MinimumNumbers > 0)
{
valRequireNumbers.Enabled = true;
valRequireNumbers.Attributes["minimumNumber"] = MinimumNumbers.ToString();
valRequireNumbers.ErrorMessage = String.Format(
GetLocalizedString("RequireNumbers.Text"), MinimumNumbers);
}
// UPPERCASE
if (MinimumUppercase > 0)
{
valRequireUppercase.Enabled = true;
valRequireUppercase.Attributes["minimumNumber"] = MinimumUppercase.ToString();
valRequireUppercase.ErrorMessage = String.Format(
GetLocalizedString("RequireUppercase.Text"), MinimumUppercase);
}
// symbols
if (MinimumSymbols > 0)
{
valRequireSymbols.Enabled = true;
valRequireSymbols.Attributes["minimumNumber"] = MinimumSymbols.ToString();
valRequireSymbols.ErrorMessage = String.Format(
GetLocalizedString("RequireSymbols.Text"), MinimumSymbols);
}
} // if(enabled)
} // if (PolicyValue != null)
// set min password generator
lnkGenerate.NavigateUrl = String.Format("javascript:GeneratePassword('{0}', '{1}', '{2}', '{3}', '{4}', '{5}');",
MaximumLength, MinimumUppercase, MinimumNumbers, MinimumSymbols, txtPassword.ClientID, txtConfirmPassword.ClientID);
}
protected void valCorrectLength_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = ((args.Value == EMPTY_PASSWORD) || (args.Value.Length >= MinimumLength));
}
protected void valRequireNumbers_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = ((args.Value == EMPTY_PASSWORD) || ValidatePattern("(\\d)", args.Value, MinimumNumbers));
}
protected void valRequireUppercase_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = ((args.Value == EMPTY_PASSWORD) || ValidatePattern("([A-Z])", args.Value, MinimumUppercase));
}
protected void valRequireSymbols_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = ((args.Value == EMPTY_PASSWORD) || ValidatePattern("(\\W)", args.Value, MinimumSymbols));
}
private bool ValidatePattern(string regexp, string val, int minimumNumber)
{
return (Regex.Matches(val, regexp).Count >= minimumNumber);
}
}
}

View file

@ -0,0 +1,115 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.1873
//
// 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 PasswordControl {
/// <summary>
/// txtPassword control.
/// </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 txtPassword;
/// <summary>
/// valRequirePassword control.
/// </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 valRequirePassword;
/// <summary>
/// lnkGenerate control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.HyperLink lnkGenerate;
/// <summary>
/// lblConfirmPassword control.
/// </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 lblConfirmPassword;
/// <summary>
/// txtConfirmPassword control.
/// </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 txtConfirmPassword;
/// <summary>
/// valRequireConfirmPassword control.
/// </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 valRequireConfirmPassword;
/// <summary>
/// valRequireEqualPassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CompareValidator valRequireEqualPassword;
/// <summary>
/// valCorrectLength control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CustomValidator valCorrectLength;
/// <summary>
/// valRequireNumbers control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CustomValidator valRequireNumbers;
/// <summary>
/// valRequireUppercase control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CustomValidator valRequireUppercase;
/// <summary>
/// valRequireSymbols control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CustomValidator valRequireSymbols;
}
}

View file

@ -0,0 +1,78 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PasswordPolicyEditor.ascx.cs" Inherits="WebsitePanel.Portal.PasswordPolicyEditor" %>
<asp:UpdatePanel runat="server" ID="PasswordPolicyPanel" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:CheckBox id="chkEnabled" runat="server" meta:resourcekey="chkEnabled"
Text="Enable Policy" CssClass="NormalBold" AutoPostBack="true" OnCheckedChanged="chkEnabled_CheckedChanged" />
<table id="PolicyTable" runat="server" cellpadding="2">
<tr>
<td class="Normal" style="width:150px;"><asp:Label ID="lblMinimumLength" runat="server"
meta:resourcekey="lblMinimumLength" Text="Minimum length:"></asp:Label></td>
<td class="Normal">
<asp:TextBox ID="txtMinimumLength" runat="server" CssClass="NormalTextBox" Width="40px"></asp:TextBox>
<asp:RequiredFieldValidator ID="valRequireMinLength" runat="server" ControlToValidate="txtMinimumLength" meta:resourcekey="valRequireMinLength"
ErrorMessage="*" ValidationGroup="SettingsEditor" Display="Dynamic"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="valCorrectMinLength" runat="server" ControlToValidate="txtMinimumLength" meta:resourcekey="valCorrectMinLength"
Display="Dynamic" ErrorMessage="*" ValidationExpression="\d{1,3}" ValidationGroup="SettingsEditor"></asp:RegularExpressionValidator></td>
</tr>
<tr>
<td class="Normal"><asp:Label ID="lblMaximumLength" runat="server"
meta:resourcekey="lblMaximumLength" Text="Maximum length:"></asp:Label></td>
<td class="Normal">
<asp:TextBox ID="txtMaximumLength" runat="server" CssClass="NormalTextBox" Width="40px"></asp:TextBox>
<asp:RequiredFieldValidator ID="valRequireMaxLength" runat="server" ControlToValidate="txtMaximumLength" meta:resourcekey="valRequireMaxLength"
ErrorMessage="*" ValidationGroup="SettingsEditor" Display="Dynamic"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="valCorrectMaxLength" runat="server" ControlToValidate="txtMaximumLength" meta:resourcekey="valCorrectMaxLength"
Display="Dynamic" ErrorMessage="*" ValidationExpression="\d{1,3}" ValidationGroup="SettingsEditor"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td colspan="2" class="NormalBold"><asp:Label ID="lblShouldContain" runat="server"
meta:resourcekey="lblShouldContain" Text="Password should contain at least:"></asp:Label></td>
</tr>
<tr>
<td class="Normal">
<asp:Label ID="lblMinimumUppercase" runat="server"
meta:resourcekey="lblMinimumUppercase" Text="Uppercase letters:"></asp:Label>
</td>
<td class="Normal"><asp:TextBox ID="txtMinimumUppercase" runat="server" CssClass="NormalTextBox" Width="40px"></asp:TextBox>
<asp:RequiredFieldValidator ID="valRequireUppercase" runat="server" ControlToValidate="txtMinimumUppercase" meta:resourcekey="valRequireUppercase"
ErrorMessage="*" ValidationGroup="SettingsEditor" Display="Dynamic"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="valCorrectUppercase" runat="server" ControlToValidate="txtMinimumUppercase" meta:resourcekey="valCorrectUppercase"
Display="Dynamic" ErrorMessage="*" ValidationExpression="\d{1,3}" ValidationGroup="SettingsEditor"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="Normal">
<asp:Label ID="lblMinimumNumbers" runat="server"
meta:resourcekey="lblMinimumNumbers" Text="Numbers:"></asp:Label>
</td>
<td class="Normal"><asp:TextBox ID="txtMinimumNumbers" runat="server" CssClass="NormalTextBox" Width="40px"></asp:TextBox>
<asp:RequiredFieldValidator ID="valRequireNumbers" runat="server" ControlToValidate="txtMinimumNumbers" meta:resourcekey="valRequireNumbers"
ErrorMessage="*" ValidationGroup="SettingsEditor" Display="Dynamic"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="valCorrectNumbers" runat="server" ControlToValidate="txtMinimumNumbers" meta:resourcekey="valCorrectNumbers"
Display="Dynamic" ErrorMessage="*" ValidationExpression="\d{1,3}" ValidationGroup="SettingsEditor"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="Normal">
<asp:Label ID="lblMinimumSymbols" runat="server"
meta:resourcekey="lblMinimumSymbols" Text="Non-alphanumeric symbols:"></asp:Label>
</td>
<td class="Normal"><asp:TextBox ID="txtMinimumSymbols" runat="server" CssClass="NormalTextBox" Width="40px"></asp:TextBox>
<asp:RequiredFieldValidator ID="valRequireSymbols" runat="server" ControlToValidate="txtMinimumSymbols" meta:resourcekey="valRequireSymbols"
ErrorMessage="*" ValidationGroup="SettingsEditor" Display="Dynamic"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="valCorrectSymbols" runat="server" ControlToValidate="txtMinimumSymbols" meta:resourcekey="valCorrectSymbols"
Display="Dynamic" ErrorMessage="*" ValidationExpression="\d{1,3}" ValidationGroup="SettingsEditor"></asp:RegularExpressionValidator>
</td>
</tr>
<tr id="rowEqualUsername" runat="server" visible="false">
<td class="Normal" colspan="2">
<asp:CheckBox id="chkNotEqualUsername" runat="server" meta:resourcekey="chkNotEqualUsername" Text="Should not be equal to username" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>

View file

@ -0,0 +1,105 @@
// 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.Text;
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;
namespace WebsitePanel.Portal
{
public partial class PasswordPolicyEditor : WebsitePanelControlBase
{
public string Value
{
get
{
StringBuilder sb = new StringBuilder();
sb.Append(chkEnabled.Checked.ToString()).Append(";");
sb.Append(txtMinimumLength.Text).Append(";");
sb.Append(txtMaximumLength.Text).Append(";");
sb.Append(txtMinimumUppercase.Text).Append(";");
sb.Append(txtMinimumNumbers.Text).Append(";");
sb.Append(txtMinimumSymbols.Text).Append(";");
sb.Append(chkNotEqualUsername.Checked.ToString());
return sb.ToString();
}
set
{
if (String.IsNullOrEmpty(value))
{
// bind default settings
chkEnabled.Checked = false;
txtMinimumLength.Text = "3";
txtMaximumLength.Text = "10";
txtMinimumUppercase.Text = "0";
txtMinimumNumbers.Text = "0";
txtMinimumSymbols.Text = "0";
}
else
{
try
{
// parse settings
string[] parts = value.Split(';');
chkEnabled.Checked = Utils.ParseBool(parts[0], false);
txtMinimumLength.Text = parts[1];
txtMaximumLength.Text = parts[2];
txtMinimumUppercase.Text = parts[3];
txtMinimumNumbers.Text = parts[4];
txtMinimumSymbols.Text = parts[5];
chkNotEqualUsername.Checked = Utils.ParseBool(parts[6], false);
}
catch { /* skip */ }
}
ToggleControls();
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
private void ToggleControls()
{
PolicyTable.Visible = chkEnabled.Checked;
}
protected void chkEnabled_CheckedChanged(object sender, EventArgs e)
{
ToggleControls();
}
}
}

View file

@ -0,0 +1,41 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.42
//
// 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 PasswordPolicyEditor {
protected System.Web.UI.UpdatePanel PasswordPolicyPanel;
protected System.Web.UI.WebControls.CheckBox chkEnabled;
protected System.Web.UI.HtmlControls.HtmlTable PolicyTable;
protected System.Web.UI.WebControls.Label lblMinimumLength;
protected System.Web.UI.WebControls.TextBox txtMinimumLength;
protected System.Web.UI.WebControls.RequiredFieldValidator valRequireMinLength;
protected System.Web.UI.WebControls.RegularExpressionValidator valCorrectMinLength;
protected System.Web.UI.WebControls.Label lblMaximumLength;
protected System.Web.UI.WebControls.TextBox txtMaximumLength;
protected System.Web.UI.WebControls.RequiredFieldValidator valRequireMaxLength;
protected System.Web.UI.WebControls.RegularExpressionValidator valCorrectMaxLength;
protected System.Web.UI.WebControls.Label lblShouldContain;
protected System.Web.UI.WebControls.Label lblMinimumUppercase;
protected System.Web.UI.WebControls.TextBox txtMinimumUppercase;
protected System.Web.UI.WebControls.RequiredFieldValidator valRequireUppercase;
protected System.Web.UI.WebControls.RegularExpressionValidator valCorrectUppercase;
protected System.Web.UI.WebControls.Label lblMinimumNumbers;
protected System.Web.UI.WebControls.TextBox txtMinimumNumbers;
protected System.Web.UI.WebControls.RequiredFieldValidator valRequireNumbers;
protected System.Web.UI.WebControls.RegularExpressionValidator valCorrectNumbers;
protected System.Web.UI.WebControls.Label lblMinimumSymbols;
protected System.Web.UI.WebControls.TextBox txtMinimumSymbols;
protected System.Web.UI.WebControls.RequiredFieldValidator valRequireSymbols;
protected System.Web.UI.WebControls.RegularExpressionValidator valCorrectSymbols;
protected System.Web.UI.HtmlControls.HtmlTableRow rowEqualUsername;
protected System.Web.UI.WebControls.CheckBox chkNotEqualUsername;
}
}

View file

@ -0,0 +1,10 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PopupHeader.ascx.cs" Inherits="WebsitePanel.Portal.UserControls.PopupHeader" %>
<table class="Header" cellpadding="0" cellspacing="0">
<tr>
<td class="HeaderLeft"></td>
<td class="HeaderTitle">
<asp:Literal ID="PopupTitle" runat="server"></asp:Literal>
</td>
<td class="HeaderRight"></td>
</tr>
</table>

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.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;
namespace WebsitePanel.Portal.UserControls
{
public partial class PopupHeader : System.Web.UI.UserControl
{
public string Text
{
get { return PopupTitle.Text; }
set { PopupTitle.Text = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
}
}
}

View file

@ -0,0 +1,16 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.42
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace WebsitePanel.Portal.UserControls {
public partial class PopupHeader {
protected System.Web.UI.WebControls.Literal PopupTitle;
}
}

View file

@ -0,0 +1,4 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Quota.ascx.cs" Inherits="WebsitePanel.Portal.Quota" %>
<%@ Register Src="QuotaViewer.ascx" TagName="QuotaViewer" TagPrefix="uc1" %>
<uc1:QuotaViewer id="quotaViewer" runat="server">
</uc1:QuotaViewer>

View file

@ -0,0 +1,96 @@
// 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 Quota : WebsitePanelControlBase
{
public string QuotaName
{
get { return (ViewState["QuotaName"] != null) ? (string)ViewState["QuotaName"] : ""; }
set { ViewState["QuotaName"] = value; }
}
public bool DisplayGauge
{
get { return quotaViewer.DisplayGauge; }
set { quotaViewer.DisplayGauge = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindQuota();
}
}
public void BindQuota()
{
try
{
// load package context
PackageContext cntx = PackagesHelper.GetCachedPackageContext(PanelSecurity.PackageId);
// get quota
if (cntx.Quotas.ContainsKey(QuotaName))
{
QuotaValueInfo quota = cntx.Quotas[QuotaName];
quotaViewer.QuotaTypeId = quota.QuotaTypeId;
quotaViewer.QuotaUsedValue = quota.QuotaUsedValue;
quotaViewer.QuotaValue = quota.QuotaAllocatedValue;
//this.Visible = quota.QuotaAllocatedValue != 0;
}
else
{
this.Visible = false;
quotaViewer.QuotaTypeId = 1; // bool
quotaViewer.QuotaUsedValue = 0;
quotaViewer.QuotaValue = 0;
}
}
catch
{
/* do nothing */
}
}
}
}

View file

@ -0,0 +1,16 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.42
//
// 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 Quota {
protected WebsitePanel.Portal.QuotaViewer quotaViewer;
}
}

View file

@ -0,0 +1,2 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="QuotaEditor.ascx.cs" Inherits="WebsitePanel.Portal.QuotaEditor" %>
<asp:TextBox ID="txtQuotaValue" runat="server" CssClass="NormalTextBox" Width="80px"></asp:TextBox><asp:CheckBox ID="chkQuotaEnabled" runat="server" Text="Enabled" meta:resourcekey="chkQuotaEnabled" /><asp:CheckBox ID="chkQuotaUnlimited" runat="server" Text="Unlimited" meta:resourcekey="chkQuotaUnlimited" />

View file

@ -0,0 +1,152 @@
// 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;
namespace WebsitePanel.Portal
{
public partial class QuotaEditor : WebsitePanelControlBase
{
public int QuotaId
{
get { return (int)ViewState["QuotaId"]; }
set { ViewState["QuotaId"] = value; }
}
public int QuotaTypeId
{
get { return (int)ViewState["QuotaTypeId"]; }
set
{
ViewState["QuotaTypeId"] = value;
// toggle controls
txtQuotaValue.Visible = (value > 1);
chkQuotaUnlimited.Visible = (value > 1);
chkQuotaEnabled.Visible = (value == 1);
}
}
public string UnlimitedText
{
get { return chkQuotaUnlimited.Text; }
set { chkQuotaUnlimited.Text = value; }
}
public int QuotaValue
{
get
{
if (QuotaTypeId == 1)
// bool quota
return chkQuotaEnabled.Checked ? 1 : 0;
else
{
if (ParentQuotaValue == -1)
{
// numeric quota
return chkQuotaUnlimited.Checked ? -1 : Utils.ParseInt(txtQuotaValue.Text, 0);
}
else
{
return
chkQuotaUnlimited.Checked
? ParentQuotaValue
: Math.Min(Utils.ParseInt(txtQuotaValue.Text, 0), ParentQuotaValue);
}
}
}
set
{
txtQuotaValue.Text = value.ToString();
chkQuotaEnabled.Checked = (value > 0);
chkQuotaUnlimited.Checked = (value == -1);
}
}
public int ParentQuotaValue
{
set
{
ViewState["ParentQuotaValue"] = value;
if (value == 0)
{
txtQuotaValue.Enabled = false;
chkQuotaEnabled.Enabled = false;
chkQuotaUnlimited.Visible = false;
chkQuotaEnabled.Checked = false;
}
if (value != -1)
chkQuotaUnlimited.Visible = false;
}
get
{
return ViewState["ParentQuotaValue"] != null ? (int) ViewState["ParentQuotaValue"] : 0;
}
}
protected void Page_Load(object sender, EventArgs e)
{
WriteScriptBlock();
}
protected override void OnPreRender(EventArgs e)
{
// set textbox attributes
txtQuotaValue.Style["display"] = (txtQuotaValue.Text == "-1") ? "none" : "inline";
chkQuotaUnlimited.Attributes["onclick"] = String.Format("ToggleQuota('{0}', '{1}');",
txtQuotaValue.ClientID, chkQuotaUnlimited.ClientID);
// call base handler
base.OnPreRender(e);
}
private void WriteScriptBlock()
{
string scriptKey = "QuataScript";
if (!Page.ClientScript.IsClientScriptBlockRegistered(scriptKey))
{
Page.ClientScript.RegisterClientScriptBlock(GetType(), scriptKey, @"<script language='javascript' type='text/javascript'>
function ToggleQuota(txtId, chkId)
{
var unlimited = document.getElementById(chkId).checked;
document.getElementById(txtId).style.display = unlimited ? 'none' : 'inline';
document.getElementById(txtId).value = unlimited ? '-1' : '0';
}
</script>");
}
}
}
}

View file

@ -0,0 +1,43 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.3053
//
// 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 QuotaEditor {
/// <summary>
/// txtQuotaValue control.
/// </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 txtQuotaValue;
/// <summary>
/// chkQuotaEnabled control.
/// </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 chkQuotaEnabled;
/// <summary>
/// chkQuotaUnlimited control.
/// </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 chkQuotaUnlimited;
}
}

View file

@ -0,0 +1,6 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="QuotaViewer.ascx.cs" Inherits="WebsitePanel.Portal.QuotaViewer" %>
<%@ Register Src="Gauge.ascx" TagName="Gauge" TagPrefix="uc1" %>
<uc1:Gauge ID="gauge" runat="server"
Progress='<%# Eval("QuotaUsedValue") %>'
Total='<%# Eval("QuotaValue") %>' />
<asp:Label ID="litValue" runat="server"></asp:Label>

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