Merge
This commit is contained in:
commit
1697ec88d0
273 changed files with 69048 additions and 2718 deletions
|
@ -3,7 +3,7 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||||
<ProductVersion>3.7</ProductVersion>
|
<ProductVersion>3.9</ProductVersion>
|
||||||
<ProjectGuid>{ead7c528-ea3d-40e8-9688-9f1d8dc8d758}</ProjectGuid>
|
<ProjectGuid>{ead7c528-ea3d-40e8-9688-9f1d8dc8d758}</ProjectGuid>
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
<OutputName>Websitepanel-SchedulerService</OutputName>
|
<OutputName>Websitepanel-SchedulerService</OutputName>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||||
<ProductVersion>3.7</ProductVersion>
|
<ProductVersion>3.9</ProductVersion>
|
||||||
<ProjectGuid>f963a4af-cc72-4512-b636-829345c35318</ProjectGuid>
|
<ProjectGuid>f963a4af-cc72-4512-b636-829345c35318</ProjectGuid>
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
<OutputName>WebsitePanelInstaller</OutputName>
|
<OutputName>WebsitePanelInstaller</OutputName>
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
|
|
||||||
"%WIX%\bin\heat.exe" dir ..\..\WebsitePanel\Build\Release\EnterpriseServer -o Setup.WIXInstaller\EnterpriseServerFiles.wxs -gg -sreg -srd -var wix.BUILDESPATH -cg EnterpriseServerFiles -dr INSTALLENTERPRISESERVERFOLDER
|
"%WIX%\bin\heat.exe" dir ..\..\WebsitePanel\Build\debug\EnterpriseServer -o Setup.WIXInstaller\EnterpriseServerFiles.wxs -gg -sreg -srd -var wix.BUILDESPATH -cg EnterpriseServerFiles -dr INSTALLENTERPRISESERVERFOLDER
|
||||||
|
|
||||||
"%WIX%\bin\heat.exe" dir ..\..\WebsitePanel\Build\Release\Server -o Setup.WIXInstaller\ServerFiles.wxs -gg -sreg -srd -var wix.BUILDSPATH -cg ServerFiles -dr INSTALLSERVERFOLDER
|
"%WIX%\bin\heat.exe" dir ..\..\WebsitePanel\Build\debug\Server -o Setup.WIXInstaller\ServerFiles.wxs -gg -sreg -srd -var wix.BUILDSPATH -cg ServerFiles -dr INSTALLSERVERFOLDER
|
||||||
|
|
||||||
"%WIX%\bin\heat.exe" dir ..\..\WebsitePanel\Build\Release\Portal -o Setup.WIXInstaller\PortalFiles.wxs -gg -sreg -srd -var wix.BUILDPPATH -cg PortalFiles -dr INSTALLPORTALFOLDER
|
"%WIX%\bin\heat.exe" dir ..\..\WebsitePanel\Build\debug\Portal -o Setup.WIXInstaller\PortalFiles.wxs -gg -sreg -srd -var wix.BUILDPPATH -cg PortalFiles -dr INSTALLPORTALFOLDER
|
||||||
|
|
||||||
|
"%WIX%\bin\heat.exe" dir ..\..\WebsitePanel\Build\debug\WebDavPortal -o Setup.WIXInstaller\WebDavPortalFiles.wxs -gg -sreg -srd -var wix.BUILDWDPPATH -cg WebDavPortalFiles -dr INSTALLWEBDAVPORTALFOLDER
|
||||||
|
|
|
@ -1,5 +1,14 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Include>
|
<Include>
|
||||||
<?define PROJECTPATH = "..\..\..\WebsitePanel"?>
|
<?define PROJECTPATH = "..\..\..\WebsitePanel"?>
|
||||||
<?define VERSION="2.1"?>
|
<?define NAME="WebsitePanel"?>
|
||||||
|
<?define ServerTitle="Server"?>
|
||||||
|
<?define ServerDescription="WebsitePanel Server is a set of services running on the remote server to be controlled. Server application should be reachable from Enterprise Server one."?>
|
||||||
|
<?define EServerTitle="Enterprise Server"?>
|
||||||
|
<?define EServerDescription="Enterprise Server is the heart of WebsitePanel system. It includes all business logic of the application. Enterprise Server should have access to Server and be accessible from Portal applications."?>
|
||||||
|
<?define PortalTitle="Portal"?>
|
||||||
|
<?define PortalDescription="WebsitePanel Portal is a control panel itself with user interface which allows managing user accounts, hosting spaces, web sites, FTP accounts, files, etc."?>
|
||||||
|
<?define VERSION="$(var.Version)"?>
|
||||||
|
<?define sql_release_version = "$(var.Version)"?> <!--N'${release.version}'-->
|
||||||
|
<?define sql_build_date = "$(var.BuildDate)"?> <!-- '${release.date}T00:00:00' - ISO 8601 Format (YYYY-MM-DDTHH:MM:SS) -->
|
||||||
</Include>
|
</Include>
|
||||||
|
|
|
@ -0,0 +1,148 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--
|
||||||
|
<copyright file="VerifyReadyDlg.wxs" company="Outercurve Foundation">
|
||||||
|
Copyright (c) 2004, Outercurve Foundation.
|
||||||
|
This software is released under Microsoft Reciprocal License (MS-RL).
|
||||||
|
The license and further copyright text can be found in the file
|
||||||
|
LICENSE.TXT at the root directory of the distribution.
|
||||||
|
</copyright>
|
||||||
|
-->
|
||||||
|
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||||
|
<Fragment>
|
||||||
|
<UI>
|
||||||
|
<Dialog Id="CustomVerifyReadyDlg" Width="370" Height="270" Title="!(loc.VerifyReadyDlg_Title)" TrackDiskSpace="yes">
|
||||||
|
<Control Id="Install" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Default="yes" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgInstall)">
|
||||||
|
<Condition Action="show">NOT Installed AND ALLUSERS</Condition>
|
||||||
|
<Condition Action="enable">NOT Installed</Condition>
|
||||||
|
<Condition Action="default">NOT Installed</Condition>
|
||||||
|
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
|
||||||
|
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
|
||||||
|
</Control>
|
||||||
|
<Control Id="InstallNoShield" Type="PushButton" ElevationShield="no" X="212" Y="243" Width="80" Height="17" Default="yes" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgInstall)">
|
||||||
|
<Condition Action="show">NOT Installed AND NOT ALLUSERS</Condition>
|
||||||
|
<Condition Action="enable">NOT Installed</Condition>
|
||||||
|
<Condition Action="default">NOT Installed</Condition>
|
||||||
|
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
|
||||||
|
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
|
||||||
|
</Control>
|
||||||
|
<Control Id="Change" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Default="yes" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgChange)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Change" AND ALLUSERS AND (ADDLOCAL OR REMOVE)</Condition>
|
||||||
|
<Condition Action="enable">WixUI_InstallMode = "Change"</Condition>
|
||||||
|
<Condition Action="default">WixUI_InstallMode = "Change"</Condition>
|
||||||
|
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
|
||||||
|
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
|
||||||
|
</Control>
|
||||||
|
<Control Id="ChangeNoShield" Type="PushButton" ElevationShield="no" X="212" Y="243" Width="80" Height="17" Default="yes" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgChange)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Change" AND (NOT ALLUSERS OR (NOT ADDLOCAL AND NOT REMOVE))</Condition>
|
||||||
|
<Condition Action="enable">WixUI_InstallMode = "Change"</Condition>
|
||||||
|
<Condition Action="default">WixUI_InstallMode = "Change"</Condition>
|
||||||
|
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
|
||||||
|
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
|
||||||
|
</Control>
|
||||||
|
<Control Id="Repair" Type="PushButton" X="212" Y="243" Width="80" Height="17" Default="yes" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgRepair)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Repair"</Condition>
|
||||||
|
<Condition Action="enable">WixUI_InstallMode = "Repair"</Condition>
|
||||||
|
<Condition Action="default">WixUI_InstallMode = "Repair"</Condition>
|
||||||
|
<Publish Event="ReinstallMode" Value="ecmus"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||||
|
<Publish Event="Reinstall" Value="All"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||||
|
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
|
||||||
|
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
|
||||||
|
</Control>
|
||||||
|
<Control Id="Remove" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgRemove)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Remove" AND ALLUSERS</Condition>
|
||||||
|
<Condition Action="enable">WixUI_InstallMode = "Remove"</Condition>
|
||||||
|
<Publish Event="Remove" Value="All"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||||
|
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
|
||||||
|
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
|
||||||
|
</Control>
|
||||||
|
<Control Id="RemoveNoShield" Type="PushButton" ElevationShield="no" X="212" Y="243" Width="80" Height="17" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgRemove)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Remove" AND NOT ALLUSERS</Condition>
|
||||||
|
<Condition Action="enable">WixUI_InstallMode = "Remove"</Condition>
|
||||||
|
<Publish Event="Remove" Value="All"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||||
|
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
|
||||||
|
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
|
||||||
|
</Control>
|
||||||
|
<Control Id="Update" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgUpdate)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Update" AND ALLUSERS</Condition>
|
||||||
|
<Condition Action="enable">WixUI_InstallMode = "Update"</Condition>
|
||||||
|
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
|
||||||
|
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
|
||||||
|
</Control>
|
||||||
|
<Control Id="UpdateNoShield" Type="PushButton" ElevationShield="no" X="212" Y="243" Width="80" Height="17" Hidden="yes" Disabled="yes" Text="!(loc.VerifyReadyDlgUpdate)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Update" AND NOT ALLUSERS</Condition>
|
||||||
|
<Condition Action="enable">WixUI_InstallMode = "Update"</Condition>
|
||||||
|
<Publish Event="EndDialog" Value="Return"><![CDATA[OutOfDiskSpace <> 1]]></Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfRbDiskDlg">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND (PROMPTROLLBACKCOST="P" OR NOT PROMPTROLLBACKCOST)</Publish>
|
||||||
|
<Publish Event="EndDialog" Value="Return">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="EnableRollback" Value="False">OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 0 AND PROMPTROLLBACKCOST="D"</Publish>
|
||||||
|
<Publish Event="SpawnDialog" Value="OutOfDiskDlg">(OutOfDiskSpace = 1 AND OutOfNoRbDiskSpace = 1) OR (OutOfDiskSpace = 1 AND PROMPTROLLBACKCOST="F")</Publish>
|
||||||
|
</Control>
|
||||||
|
|
||||||
|
<Control Id="InstallTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.VerifyReadyDlgInstallTitle)">
|
||||||
|
<Condition Action="show">NOT Installed</Condition>
|
||||||
|
</Control>
|
||||||
|
<Control Id="InstallText" Type="Text" X="25" Y="70" Width="320" Height="160" Hidden="yes" Text="!(loc.VerifyReadyDlgInstallText) [CUSTOM_INSTALL_TEXT]" Transparent="yes">
|
||||||
|
<Condition Action="show">NOT Installed</Condition>
|
||||||
|
</Control>
|
||||||
|
<Control Id="ChangeTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.VerifyReadyDlgChangeTitle)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Change"</Condition>
|
||||||
|
</Control>
|
||||||
|
<Control Id="ChangeText" Type="Text" X="25" Y="70" Width="320" Height="80" Hidden="yes" Text="!(loc.VerifyReadyDlgChangeText)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Change"</Condition>
|
||||||
|
</Control>
|
||||||
|
<Control Id="RepairTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.VerifyReadyDlgRepairTitle)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Repair"</Condition>
|
||||||
|
</Control>
|
||||||
|
<Control Id="RepairText" Type="Text" X="25" Y="70" Width="320" Height="80" Hidden="yes" NoPrefix="yes" Text="!(loc.VerifyReadyDlgRepairText)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Repair"</Condition>
|
||||||
|
</Control>
|
||||||
|
<Control Id="RemoveTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.VerifyReadyDlgRemoveTitle)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Remove"</Condition>
|
||||||
|
</Control>
|
||||||
|
<Control Id="RemoveText" Type="Text" X="25" Y="70" Width="320" Height="80" Hidden="yes" NoPrefix="yes" Text="!(loc.VerifyReadyDlgRemoveText)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Remove"</Condition>
|
||||||
|
</Control>
|
||||||
|
<Control Id="UpdateTitle" Type="Text" X="15" Y="15" Width="300" Height="15" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.VerifyReadyDlgUpdateTitle)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Update"</Condition>
|
||||||
|
</Control>
|
||||||
|
<Control Id="UpdateText" Type="Text" X="25" Y="70" Width="320" Height="80" Hidden="yes" NoPrefix="yes" Text="!(loc.VerifyReadyDlgUpdateText)">
|
||||||
|
<Condition Action="show">WixUI_InstallMode = "Update"</Condition>
|
||||||
|
</Control>
|
||||||
|
|
||||||
|
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
|
||||||
|
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
|
||||||
|
</Control>
|
||||||
|
<Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)">
|
||||||
|
<Condition Action="default">WixUI_InstallMode = "Remove"</Condition>
|
||||||
|
</Control>
|
||||||
|
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.VerifyReadyDlgBannerBitmap)" />
|
||||||
|
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
|
||||||
|
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
|
||||||
|
</Dialog>
|
||||||
|
</UI>
|
||||||
|
</Fragment>
|
||||||
|
</Wix>
|
File diff suppressed because it is too large
Load diff
|
@ -3,7 +3,7 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||||
<ProductVersion>3.7</ProductVersion>
|
<ProductVersion>3.9</ProductVersion>
|
||||||
<ProjectGuid>{978f0a18-7c81-4561-8f6d-5a165484ad0a}</ProjectGuid>
|
<ProjectGuid>{978f0a18-7c81-4561-8f6d-5a165484ad0a}</ProjectGuid>
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
<OutputName>Websitepanel</OutputName>
|
<OutputName>Websitepanel</OutputName>
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||||
<OutputPath>bin\</OutputPath>
|
<OutputPath>bin\</OutputPath>
|
||||||
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
|
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
|
||||||
<DefineConstants>Debug;BUILD=debug</DefineConstants>
|
<DefineConstants>Debug;BUILD=debug;Version=$(Version);BuildDate=$(ReleaseDate)</DefineConstants>
|
||||||
<SuppressValidation>False</SuppressValidation>
|
<SuppressValidation>False</SuppressValidation>
|
||||||
<SuppressIces>
|
<SuppressIces>
|
||||||
</SuppressIces>
|
</SuppressIces>
|
||||||
|
@ -26,23 +26,38 @@
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||||
<OutputPath>bin\$(Configuration)\</OutputPath>
|
<OutputPath>bin\$(Configuration)\</OutputPath>
|
||||||
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
|
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
|
||||||
<DefineConstants>BUILD=release</DefineConstants>
|
<DefineConstants>BUILD=release;Version=$(Version);BuildDate=$(ReleaseDate)</DefineConstants>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="EnterpriseServerFiles.wxs" />
|
<Compile Include="CustomVerifyReadyDlg.wxs" />
|
||||||
<Compile Include="PortalFiles.wxs" />
|
|
||||||
<Compile Include="Product.wxs" />
|
<Compile Include="Product.wxs" />
|
||||||
<Compile Include="SchedulerServiceFiles.wxs" />
|
<Compile Include="SchedulerServiceFiles.wxs" />
|
||||||
<Compile Include="ServerFiles.wxs" />
|
<Compile Include="..\..\..\WebsitePanel\Build\$(Configuration)\WiXInstaller\ComponentsFiles\ServerFiles.wxs" />
|
||||||
|
<Compile Include="..\..\..\WebsitePanel\Build\$(Configuration)\WiXInstaller\ComponentsFiles\EnterpriseServerFiles.wxs" />
|
||||||
|
<Compile Include="..\..\..\WebsitePanel\Build\$(Configuration)\WiXInstaller\ComponentsFiles\PortalFiles.wxs" />
|
||||||
|
<Compile Include="..\..\..\WebsitePanel\Build\$(Configuration)\WiXInstaller\ComponentsFiles\WebDavPortalFiles.wxs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="Config.wxi" />
|
<Content Include="Config.wxi" />
|
||||||
|
<Content Include="WebsitePanel.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<WixExtension Include="WixUIExtension">
|
<WixExtension Include="WixUIExtension">
|
||||||
<HintPath>..\..\..\tools\WIX\WixUIExtension.dll</HintPath>
|
<HintPath>..\..\..\tools\WIX\WixUIExtension.dll</HintPath>
|
||||||
<Name>WixUIExtension</Name>
|
<Name>WixUIExtension</Name>
|
||||||
</WixExtension>
|
</WixExtension>
|
||||||
|
<WixExtension Include="WixIIsExtension">
|
||||||
|
<HintPath>..\..\..\tools\WIX\WixIIsExtension.dll</HintPath>
|
||||||
|
<Name>WixIIsExtension</Name>
|
||||||
|
</WixExtension>
|
||||||
|
<WixExtension Include="WixSqlExtension">
|
||||||
|
<HintPath>..\..\..\tools\WIX\WixSqlExtension.dll</HintPath>
|
||||||
|
<Name>WixSqlExtension</Name>
|
||||||
|
</WixExtension>
|
||||||
|
<WixExtension Include="WixUtilExtension">
|
||||||
|
<HintPath>..\..\..\tools\WIX\WixUtilExtension.dll</HintPath>
|
||||||
|
<Name>WixUtilExtension</Name>
|
||||||
|
</WixExtension>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(WixTargetsPath)" />
|
<Import Project="$(WixTargetsPath)" />
|
||||||
<!--
|
<!--
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<configSections>
|
||||||
|
<section name="installer" type="WebsitePanel.Installer.Configuration.InstallerSection, WebsitePanel.Installer.Core"/>
|
||||||
|
</configSections>
|
||||||
|
<installer>
|
||||||
|
<!-- Installed components -->
|
||||||
|
<components/>
|
||||||
|
<!-- Studio settings -->
|
||||||
|
<settings>
|
||||||
|
<add key="Log.FileName" value="WebsitePanel.Installer.log" />
|
||||||
|
<add key="Web.Service" value="" />
|
||||||
|
<add key="Web.AutoCheck" value="False" />
|
||||||
|
<add key="Web.Proxy.UseProxy" value="false" />
|
||||||
|
<add key="Web.Proxy.Address" value="" />
|
||||||
|
<add key="Web.Proxy.UserName" value="" />
|
||||||
|
<add key="Web.Proxy.Password" value="" />
|
||||||
|
</settings>
|
||||||
|
</installer>
|
||||||
|
</configuration>
|
BIN
WebsitePanel.Installer/Sources/Setup.WIXInstaller/failmark.ico
Normal file
BIN
WebsitePanel.Installer/Sources/Setup.WIXInstaller/failmark.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
BIN
WebsitePanel.Installer/Sources/Setup.WIXInstaller/passmark.ico
Normal file
BIN
WebsitePanel.Installer/Sources/Setup.WIXInstaller/passmark.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
|
@ -1,7 +1,7 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:4.0.30319.18051
|
// Runtime Version:4.0.30319.34209
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 2013
|
# Visual Studio 2013
|
||||||
VisualStudioVersion = 12.0.30723.0
|
VisualStudioVersion = 12.0.31101.0
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{129305D5-A9E6-4DCE-BFF6-41809E13EEEE}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{129305D5-A9E6-4DCE-BFF6-41809E13EEEE}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
@ -33,6 +33,13 @@ Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup.SchedulerService", "S
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.SchedulerServiceInstaller", "WebsitePanel.SchedulerServiceInstaller\WebsitePanel.SchedulerServiceInstaller.csproj", "{24A4C231-73A9-4F03-ABAD-9A8FE5324495}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.SchedulerServiceInstaller", "WebsitePanel.SchedulerServiceInstaller\WebsitePanel.SchedulerServiceInstaller.csproj", "{24A4C231-73A9-4F03-ABAD-9A8FE5324495}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebsitePanel.WIXInstaller", "WebsitePanel.WIXInstaller\WebsitePanel.WIXInstaller.csproj", "{3343FFD8-7CCE-451B-95AE-3D97244313A2}"
|
||||||
|
EndProject
|
||||||
|
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup.WIXInstaller", "Setup.WIXInstaller\Setup.WIXInstaller.wixproj", "{978F0A18-7C81-4561-8F6D-5A165484AD0A}"
|
||||||
|
ProjectSection(ProjectDependencies) = postProject
|
||||||
|
{3343FFD8-7CCE-451B-95AE-3D97244313A2} = {3343FFD8-7CCE-451B-95AE-3D97244313A2}
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
@ -125,6 +132,26 @@ Global
|
||||||
{24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Release|Mixed Platforms.Build.0 = Release|x86
|
{24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||||
{24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Release|x86.ActiveCfg = Release|x86
|
{24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Release|x86.ActiveCfg = Release|x86
|
||||||
{24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Release|x86.Build.0 = Release|x86
|
{24A4C231-73A9-4F03-ABAD-9A8FE5324495}.Release|x86.Build.0 = Release|x86
|
||||||
|
{3343FFD8-7CCE-451B-95AE-3D97244313A2}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||||
|
{3343FFD8-7CCE-451B-95AE-3D97244313A2}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||||
|
{3343FFD8-7CCE-451B-95AE-3D97244313A2}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||||
|
{3343FFD8-7CCE-451B-95AE-3D97244313A2}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
|
{3343FFD8-7CCE-451B-95AE-3D97244313A2}.Debug|x86.Build.0 = Debug|x86
|
||||||
|
{3343FFD8-7CCE-451B-95AE-3D97244313A2}.Release|Any CPU.ActiveCfg = Release|x86
|
||||||
|
{3343FFD8-7CCE-451B-95AE-3D97244313A2}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||||
|
{3343FFD8-7CCE-451B-95AE-3D97244313A2}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||||
|
{3343FFD8-7CCE-451B-95AE-3D97244313A2}.Release|x86.ActiveCfg = Release|x86
|
||||||
|
{3343FFD8-7CCE-451B-95AE-3D97244313A2}.Release|x86.Build.0 = Release|x86
|
||||||
|
{978F0A18-7C81-4561-8F6D-5A165484AD0A}.Debug|Any CPU.ActiveCfg = Debug|x86
|
||||||
|
{978F0A18-7C81-4561-8F6D-5A165484AD0A}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
|
||||||
|
{978F0A18-7C81-4561-8F6D-5A165484AD0A}.Debug|Mixed Platforms.Build.0 = Debug|x86
|
||||||
|
{978F0A18-7C81-4561-8F6D-5A165484AD0A}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
|
{978F0A18-7C81-4561-8F6D-5A165484AD0A}.Debug|x86.Build.0 = Debug|x86
|
||||||
|
{978F0A18-7C81-4561-8F6D-5A165484AD0A}.Release|Any CPU.ActiveCfg = Release|x86
|
||||||
|
{978F0A18-7C81-4561-8F6D-5A165484AD0A}.Release|Mixed Platforms.ActiveCfg = Release|x86
|
||||||
|
{978F0A18-7C81-4561-8F6D-5A165484AD0A}.Release|Mixed Platforms.Build.0 = Release|x86
|
||||||
|
{978F0A18-7C81-4561-8F6D-5A165484AD0A}.Release|x86.ActiveCfg = Release|x86
|
||||||
|
{978F0A18-7C81-4561-8F6D-5A165484AD0A}.Release|x86.Build.0 = Release|x86
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|
Binary file not shown.
|
@ -67,37 +67,21 @@ namespace WebsitePanel.Setup.Actions
|
||||||
{
|
{
|
||||||
OnInstallProgressChanged(LogStartInstallMessage, 0);
|
OnInstallProgressChanged(LogStartInstallMessage, 0);
|
||||||
Log.WriteStart(LogStartInstallMessage);
|
Log.WriteStart(LogStartInstallMessage);
|
||||||
|
var file = Path.Combine(vars.InstallationFolder, vars.ConfigurationFile);
|
||||||
var file = Path.Combine(vars.InstallationFolder, vars.ConfigurationFile);
|
vars.CryptoKey = Utils.GetRandomString(20);
|
||||||
vars.CryptoKey = Utils.GetRandomString(20);
|
var Xml = new XmlDocument();
|
||||||
|
Xml.Load(file);
|
||||||
// load file
|
var CryptoNode = Xml.SelectSingleNode("configuration/appSettings/add[@key='WebsitePanel.CryptoKey']") as XmlElement;
|
||||||
string content = string.Empty;
|
if (CryptoNode != null)
|
||||||
using (StreamReader reader = new StreamReader(file))
|
CryptoNode.SetAttribute("value", vars.CryptoKey);
|
||||||
{
|
Xml.Save(file);
|
||||||
content = reader.ReadToEnd();
|
|
||||||
}
|
|
||||||
|
|
||||||
// expand variables
|
|
||||||
content = Utils.ReplaceScriptVariable(content, "installer.cryptokey", vars.CryptoKey);
|
|
||||||
//
|
|
||||||
Log.WriteInfo(String.Format("The following cryptographic key has been generated: '{0}'", vars.CryptoKey));
|
|
||||||
|
|
||||||
// save file
|
|
||||||
using (StreamWriter writer = new StreamWriter(file))
|
|
||||||
{
|
|
||||||
writer.Write(content);
|
|
||||||
}
|
|
||||||
//update log
|
|
||||||
Log.WriteEnd(LogEndInstallMessage);
|
Log.WriteEnd(LogEndInstallMessage);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
if (Utils.IsThreadAbortException(ex))
|
if (Utils.IsThreadAbortException(ex))
|
||||||
return;
|
return;
|
||||||
//
|
|
||||||
Log.WriteError("Update web.config error", ex);
|
Log.WriteError("Update web.config error", ex);
|
||||||
//
|
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -116,6 +100,10 @@ namespace WebsitePanel.Setup.Actions
|
||||||
Begin(LogStartInstallMessage);
|
Begin(LogStartInstallMessage);
|
||||||
|
|
||||||
Log.WriteStart(LogStartInstallMessage);
|
Log.WriteStart(LogStartInstallMessage);
|
||||||
|
|
||||||
|
var ServiceName = Global.Parameters.SchedulerServiceName;
|
||||||
|
var ServiceFile = Path.Combine(vars.InstallationFolder, "bin", Global.Parameters.SchedulerServiceFileName);
|
||||||
|
|
||||||
Log.WriteInfo(String.Format("Scheduler Service Name: \"{0}\"", Global.Parameters.SchedulerServiceName));
|
Log.WriteInfo(String.Format("Scheduler Service Name: \"{0}\"", Global.Parameters.SchedulerServiceName));
|
||||||
|
|
||||||
if (ServiceController.GetServices().Any(s => s.DisplayName.Equals(Global.Parameters.SchedulerServiceName, StringComparison.CurrentCultureIgnoreCase)))
|
if (ServiceController.GetServices().Any(s => s.DisplayName.Equals(Global.Parameters.SchedulerServiceName, StringComparison.CurrentCultureIgnoreCase)))
|
||||||
|
@ -125,8 +113,13 @@ namespace WebsitePanel.Setup.Actions
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ManagedInstallerClass.InstallHelper(new[] { "/i", Path.Combine(vars.InstallationFolder, "bin", Global.Parameters.SchedulerServiceFileName) });
|
ManagedInstallerClass.InstallHelper(new[] { "/i /LogFile=\"\" ", ServiceFile });
|
||||||
Utils.StartService(Global.Parameters.SchedulerServiceName);
|
Utils.StartService(Global.Parameters.SchedulerServiceName);
|
||||||
|
|
||||||
|
AppConfig.EnsureComponentConfig(vars.ComponentId);
|
||||||
|
AppConfig.SetComponentSettingStringValue(vars.ComponentId, "ServiceName", ServiceName);
|
||||||
|
AppConfig.SetComponentSettingStringValue(vars.ComponentId, "ServiceFile", ServiceFile);
|
||||||
|
AppConfig.SaveConfiguration();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -166,7 +159,7 @@ namespace WebsitePanel.Setup.Actions
|
||||||
{
|
{
|
||||||
if (ServiceController.GetServices().Any(s => s.ServiceName.Equals(Global.Parameters.SchedulerServiceName, StringComparison.CurrentCultureIgnoreCase)))
|
if (ServiceController.GetServices().Any(s => s.ServiceName.Equals(Global.Parameters.SchedulerServiceName, StringComparison.CurrentCultureIgnoreCase)))
|
||||||
{
|
{
|
||||||
ManagedInstallerClass.InstallHelper(new[] { "/u", Path.Combine(vars.InstallationFolder, "bin", Global.Parameters.SchedulerServiceFileName) });
|
ManagedInstallerClass.InstallHelper(new[] { "/u /LogFile=\"\" ", Path.Combine(vars.InstallationFolder, "bin", Global.Parameters.SchedulerServiceFileName) });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -397,25 +390,14 @@ namespace WebsitePanel.Setup.Actions
|
||||||
void IInstallAction.Run(SetupVariables vars)
|
void IInstallAction.Run(SetupVariables vars)
|
||||||
{
|
{
|
||||||
Log.WriteStart("Updating web.config file (connection string)");
|
Log.WriteStart("Updating web.config file (connection string)");
|
||||||
//
|
|
||||||
var file = Path.Combine(vars.InstallationFolder, vars.ConfigurationFile);
|
var file = Path.Combine(vars.InstallationFolder, vars.ConfigurationFile);
|
||||||
//
|
|
||||||
var content = String.Empty;
|
|
||||||
// load file
|
|
||||||
using (StreamReader reader = new StreamReader(file))
|
|
||||||
{
|
|
||||||
content = reader.ReadToEnd();
|
|
||||||
}
|
|
||||||
// Build connection string
|
|
||||||
vars.ConnectionString = String.Format(vars.ConnectionString, vars.DatabaseServer, vars.Database, vars.Database, vars.DatabaseUserPassword);
|
vars.ConnectionString = String.Format(vars.ConnectionString, vars.DatabaseServer, vars.Database, vars.Database, vars.DatabaseUserPassword);
|
||||||
// Expand variables
|
var Xml = new XmlDocument();
|
||||||
content = Utils.ReplaceScriptVariable(content, "installer.connectionstring", vars.ConnectionString);
|
Xml.Load(file);
|
||||||
// Save file
|
var ConnNode = Xml.SelectSingleNode("configuration/connectionStrings/add[@name='EnterpriseServer']") as XmlElement;
|
||||||
using (StreamWriter writer = new StreamWriter(file))
|
if(ConnNode != null)
|
||||||
{
|
ConnNode.SetAttribute("connectionString", vars.ConnectionString);
|
||||||
writer.Write(content);
|
Xml.Save(file);
|
||||||
}
|
|
||||||
//
|
|
||||||
Log.WriteEnd(String.Format("Updated {0} file", vars.ConfigurationFile));
|
Log.WriteEnd(String.Format("Updated {0} file", vars.ConfigurationFile));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -509,10 +491,11 @@ namespace WebsitePanel.Setup.Actions
|
||||||
{
|
{
|
||||||
void IInstallAction.Run(SetupVariables vars)
|
void IInstallAction.Run(SetupVariables vars)
|
||||||
{
|
{
|
||||||
|
Log.WriteStart("SaveEntServerConfigSettingsAction");
|
||||||
AppConfig.EnsureComponentConfig(vars.ComponentId);
|
AppConfig.EnsureComponentConfig(vars.ComponentId);
|
||||||
//
|
//
|
||||||
AppConfig.SetComponentSettingStringValue(vars.ComponentId, "Database", vars.Database);
|
AppConfig.SetComponentSettingStringValue(vars.ComponentId, "Database", vars.Database);
|
||||||
AppConfig.SetComponentSettingBooleanValue(vars.ComponentId, "NewDatabase", true);
|
AppConfig.SetComponentSettingBooleanValue(vars.ComponentId, "NewDatabase", vars.CreateDatabase);
|
||||||
//
|
//
|
||||||
AppConfig.SetComponentSettingStringValue(vars.ComponentId, "DatabaseUser", vars.Database);
|
AppConfig.SetComponentSettingStringValue(vars.ComponentId, "DatabaseUser", vars.Database);
|
||||||
AppConfig.SetComponentSettingBooleanValue(vars.ComponentId, "NewDatabaseUser", vars.NewDatabaseUser);
|
AppConfig.SetComponentSettingBooleanValue(vars.ComponentId, "NewDatabaseUser", vars.NewDatabaseUser);
|
||||||
|
@ -523,6 +506,7 @@ namespace WebsitePanel.Setup.Actions
|
||||||
AppConfig.SetComponentSettingStringValue(vars.ComponentId, Global.Parameters.CryptoKey, vars.CryptoKey);
|
AppConfig.SetComponentSettingStringValue(vars.ComponentId, Global.Parameters.CryptoKey, vars.CryptoKey);
|
||||||
//
|
//
|
||||||
AppConfig.SaveConfiguration();
|
AppConfig.SaveConfiguration();
|
||||||
|
Log.WriteEnd("SaveEntServerConfigSettingsAction");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -38,25 +38,27 @@ namespace WebsitePanel.Setup
|
||||||
public sealed class AppConfig
|
public sealed class AppConfig
|
||||||
{
|
{
|
||||||
public const string AppConfigFileNameWithoutExtension = "WebsitePanel.Installer.exe";
|
public const string AppConfigFileNameWithoutExtension = "WebsitePanel.Installer.exe";
|
||||||
|
static AppConfig()
|
||||||
|
{
|
||||||
|
ConfigurationPath = DefaultConfigurationPath;
|
||||||
|
}
|
||||||
private AppConfig()
|
private AppConfig()
|
||||||
{
|
{
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
private static Configuration appConfig = null;
|
private static Configuration appConfig = null;
|
||||||
private static XmlDocument xmlConfig = null;
|
private static XmlDocument xmlConfig = null;
|
||||||
|
public static string ConfigurationPath { get; set; }
|
||||||
public static void LoadConfiguration()
|
public static string DefaultConfigurationPath { get { return Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AppConfigFileNameWithoutExtension); } }
|
||||||
|
public static void LoadConfiguration(ExeConfigurationFileMap FnMap = null, ConfigurationUserLevel CuLevel = ConfigurationUserLevel.None)
|
||||||
{
|
{
|
||||||
//
|
if (FnMap == null)
|
||||||
var exePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AppConfigFileNameWithoutExtension);
|
appConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationPath);
|
||||||
//
|
else
|
||||||
appConfig = ConfigurationManager.OpenExeConfiguration(exePath);
|
appConfig = ConfigurationManager.OpenMappedExeConfiguration(FnMap, CuLevel);
|
||||||
//
|
|
||||||
ConfigurationSection section = appConfig.Sections["installer"];
|
ConfigurationSection section = appConfig.Sections["installer"];
|
||||||
if (section == null)
|
if (section == null)
|
||||||
throw new ConfigurationErrorsException("instalelr section not found");
|
throw new ConfigurationErrorsException("installer section not found in " + appConfig.FilePath);
|
||||||
|
|
||||||
string strXml = section.SectionInformation.GetRawXml();
|
string strXml = section.SectionInformation.GetRawXml();
|
||||||
xmlConfig = new XmlDocument();
|
xmlConfig = new XmlDocument();
|
||||||
xmlConfig.LoadXml(strXml);
|
xmlConfig.LoadXml(strXml);
|
||||||
|
|
|
@ -48,9 +48,9 @@ namespace WebsitePanel.Setup
|
||||||
/// <param name="bar">Progress bar.</param>
|
/// <param name="bar">Progress bar.</param>
|
||||||
/// <param name="source">Source folder.</param>
|
/// <param name="source">Source folder.</param>
|
||||||
/// <param name="destination">Destination folder.</param>
|
/// <param name="destination">Destination folder.</param>
|
||||||
public CopyProcess(ProgressBar bar, string source, string destination)
|
public CopyProcess(object bar, string source, string destination)
|
||||||
{
|
{
|
||||||
this.progressBar = bar;
|
this.progressBar = bar as ProgressBar;
|
||||||
this.sourceFolder = new DirectoryInfo(source);
|
this.sourceFolder = new DirectoryInfo(source);
|
||||||
this.destFolder = new DirectoryInfo(destination);
|
this.destFolder = new DirectoryInfo(destination);
|
||||||
}
|
}
|
||||||
|
@ -63,9 +63,13 @@ namespace WebsitePanel.Setup
|
||||||
// unzip
|
// unzip
|
||||||
long totalSize = FileUtils.CalculateFolderSize(sourceFolder.FullName);
|
long totalSize = FileUtils.CalculateFolderSize(sourceFolder.FullName);
|
||||||
long copied = 0;
|
long copied = 0;
|
||||||
progressBar.Minimum = 0;
|
|
||||||
progressBar.Maximum = 100;
|
if (progressBar != null)
|
||||||
progressBar.Value = 0;
|
{
|
||||||
|
progressBar.Minimum = 0;
|
||||||
|
progressBar.Maximum = 100;
|
||||||
|
progressBar.Value = 0;
|
||||||
|
}
|
||||||
|
|
||||||
int i = 0;
|
int i = 0;
|
||||||
List<DirectoryInfo> folders = new List<DirectoryInfo>();
|
List<DirectoryInfo> folders = new List<DirectoryInfo>();
|
||||||
|
@ -122,7 +126,10 @@ namespace WebsitePanel.Setup
|
||||||
copied += files[i].Length;
|
copied += files[i].Length;
|
||||||
if (totalSize != 0)
|
if (totalSize != 0)
|
||||||
{
|
{
|
||||||
progressBar.Value = Convert.ToInt32(copied * 100 / totalSize);
|
if (progressBar != null)
|
||||||
|
{
|
||||||
|
progressBar.Value = Convert.ToInt32(copied * 100 / totalSize);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,5 +170,7 @@ namespace WebsitePanel.Setup
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static TraceListenerCollection Listeners { get { return Trace.Listeners; } }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -286,7 +286,8 @@ namespace WebsitePanel.Setup
|
||||||
Windows7,
|
Windows7,
|
||||||
WindowsServer2008R2,
|
WindowsServer2008R2,
|
||||||
Windows8,
|
Windows8,
|
||||||
WindowsServer2012
|
WindowsServer2012,
|
||||||
|
WindowsServer2012R2
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetName(WindowsVersion version)
|
public static string GetName(WindowsVersion version)
|
||||||
|
@ -428,6 +429,9 @@ namespace WebsitePanel.Setup
|
||||||
else
|
else
|
||||||
ret = WindowsVersion.WindowsServer2012;
|
ret = WindowsVersion.WindowsServer2012;
|
||||||
break;
|
break;
|
||||||
|
case 3:
|
||||||
|
ret = WindowsVersion.WindowsServer2012R2;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -339,7 +339,7 @@ namespace WebsitePanel.Setup
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
internal static string GetSid(string userAccount, string domain)
|
internal static string GetSid(string userAccount, string domain)
|
||||||
{
|
{
|
||||||
if(domain == null)
|
if(string.IsNullOrWhiteSpace(domain))
|
||||||
domain = Environment.MachineName;
|
domain = Environment.MachineName;
|
||||||
|
|
||||||
// try to get user account
|
// try to get user account
|
||||||
|
|
|
@ -481,11 +481,11 @@ namespace WebsitePanel.Setup
|
||||||
public static void StopService(string serviceName)
|
public static void StopService(string serviceName)
|
||||||
{
|
{
|
||||||
ServiceController sc = new ServiceController(serviceName);
|
ServiceController sc = new ServiceController(serviceName);
|
||||||
// Start the service if the current status is stopped.
|
// Stop the service if the current status is not stopped.
|
||||||
if (sc.Status != ServiceControllerStatus.Stopped &&
|
if (sc.Status != ServiceControllerStatus.Stopped &&
|
||||||
sc.Status != ServiceControllerStatus.StopPending)
|
sc.Status != ServiceControllerStatus.StopPending)
|
||||||
{
|
{
|
||||||
// Start the service, and wait until its status is "Running".
|
// Stop the service, and wait until its status is "Running".
|
||||||
sc.Stop();
|
sc.Stop();
|
||||||
sc.WaitForStatus(ServiceControllerStatus.Stopped);
|
sc.WaitForStatus(ServiceControllerStatus.Stopped);
|
||||||
}
|
}
|
||||||
|
|
|
@ -150,7 +150,7 @@ namespace WebsitePanel.Setup
|
||||||
FileUtils.CreateDirectory(path);
|
FileUtils.CreateDirectory(path);
|
||||||
|
|
||||||
SecurityUtils.GrantNtfsPermissions(path, userDomain, userAccount, NtfsPermission.Modify, true, true);
|
SecurityUtils.GrantNtfsPermissions(path, userDomain, userAccount, NtfsPermission.Modify, true, true);
|
||||||
SecurityUtils.GrantNtfsPermissionsBySid(path, SystemSID.NETWORK_SERVICE, NtfsPermission.Modify, true, true);
|
SecurityUtils.GrantNtfsPermissionsBySid(path, SystemSID.NETWORK_SERVICE, NtfsPermission.Modify, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -46,9 +46,9 @@ namespace WebsitePanel.Setup.Common
|
||||||
int totalFiles = 0;
|
int totalFiles = 0;
|
||||||
int files = 0;
|
int files = 0;
|
||||||
|
|
||||||
public ZipIndicator(ProgressBar progressBar, string sourcePath, string zipFile)
|
public ZipIndicator(object progressBar, string sourcePath, string zipFile)
|
||||||
{
|
{
|
||||||
this.progressBar = progressBar;
|
this.progressBar = progressBar as ProgressBar;
|
||||||
this.sourcePath = sourcePath;
|
this.sourcePath = sourcePath;
|
||||||
this.zipFile = zipFile;
|
this.zipFile = zipFile;
|
||||||
}
|
}
|
||||||
|
@ -71,8 +71,11 @@ namespace WebsitePanel.Setup.Common
|
||||||
{
|
{
|
||||||
string fileName = e.CurrentEntry.FileName;
|
string fileName = e.CurrentEntry.FileName;
|
||||||
files++;
|
files++;
|
||||||
this.progressBar.Value = Convert.ToInt32(files * 100 / totalFiles);
|
if (this.progressBar != null)
|
||||||
this.progressBar.Update();
|
{
|
||||||
|
this.progressBar.Value = Convert.ToInt32(files * 100 / totalFiles);
|
||||||
|
this.progressBar.Update();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -143,6 +143,7 @@
|
||||||
<Compile Include="Common\ZipIndicator.cs" />
|
<Compile Include="Common\ZipIndicator.cs" />
|
||||||
<Compile Include="EnterpriseServer10.cs" />
|
<Compile Include="EnterpriseServer10.cs" />
|
||||||
<Compile Include="EnterpriseServer20.cs" />
|
<Compile Include="EnterpriseServer20.cs" />
|
||||||
|
<Compile Include="Internal\Adapter.cs" />
|
||||||
<Compile Include="Portal10.cs" />
|
<Compile Include="Portal10.cs" />
|
||||||
<Compile Include="Portal20.cs" />
|
<Compile Include="Portal20.cs" />
|
||||||
<Compile Include="Server10.cs" />
|
<Compile Include="Server10.cs" />
|
||||||
|
|
|
@ -127,13 +127,13 @@ namespace WebsitePanel.Setup
|
||||||
switch (check.CheckType)
|
switch (check.CheckType)
|
||||||
{
|
{
|
||||||
case CheckTypes.OperationSystem:
|
case CheckTypes.OperationSystem:
|
||||||
status = CheckOS(out details);
|
status = CheckOS(check.SetupVariables, out details);
|
||||||
break;
|
break;
|
||||||
case CheckTypes.IISVersion:
|
case CheckTypes.IISVersion:
|
||||||
status = CheckIISVersion(out details);
|
status = CheckIISVersion(check.SetupVariables, out details);
|
||||||
break;
|
break;
|
||||||
case CheckTypes.ASPNET:
|
case CheckTypes.ASPNET:
|
||||||
status = CheckASPNET(out details);
|
status = CheckASPNET(check.SetupVariables, out details);
|
||||||
break;
|
break;
|
||||||
case CheckTypes.WPServer:
|
case CheckTypes.WPServer:
|
||||||
status = CheckWPServer(check.SetupVariables, out details);
|
status = CheckWPServer(check.SetupVariables, out details);
|
||||||
|
@ -221,7 +221,7 @@ namespace WebsitePanel.Setup
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private CheckStatuses CheckOS(out string details)
|
internal static CheckStatuses CheckOS(SetupVariables setupVariables, out string details)
|
||||||
{
|
{
|
||||||
details = string.Empty;
|
details = string.Empty;
|
||||||
try
|
try
|
||||||
|
@ -237,6 +237,7 @@ namespace WebsitePanel.Setup
|
||||||
version == OS.WindowsVersion.WindowsServer2008 ||
|
version == OS.WindowsVersion.WindowsServer2008 ||
|
||||||
version == OS.WindowsVersion.WindowsServer2008R2 ||
|
version == OS.WindowsVersion.WindowsServer2008R2 ||
|
||||||
version == OS.WindowsVersion.WindowsServer2012 ||
|
version == OS.WindowsVersion.WindowsServer2012 ||
|
||||||
|
version == OS.WindowsVersion.WindowsServer2012R2 ||
|
||||||
version == OS.WindowsVersion.WindowsVista ||
|
version == OS.WindowsVersion.WindowsVista ||
|
||||||
version == OS.WindowsVersion.Windows7 ||
|
version == OS.WindowsVersion.Windows7 ||
|
||||||
version == OS.WindowsVersion.Windows8 ))
|
version == OS.WindowsVersion.Windows8 ))
|
||||||
|
@ -260,20 +261,20 @@ namespace WebsitePanel.Setup
|
||||||
return CheckStatuses.Error;
|
return CheckStatuses.Error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private CheckStatuses CheckIISVersion(out string details)
|
internal static CheckStatuses CheckIISVersion(SetupVariables setupVariables, out string details)
|
||||||
{
|
{
|
||||||
details = string.Empty;
|
details = string.Empty;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
details = string.Format("IIS {0}", SetupVariables.IISVersion.ToString(2));
|
details = string.Format("IIS {0}", setupVariables.IISVersion.ToString(2));
|
||||||
if (SetupVariables.IISVersion.Major == 6 &&
|
if (setupVariables.IISVersion.Major == 6 &&
|
||||||
Utils.IsWin64() && Utils.IIS32Enabled())
|
Utils.IsWin64() && Utils.IIS32Enabled())
|
||||||
{
|
{
|
||||||
details += " (32-bit mode)";
|
details += " (32-bit mode)";
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.WriteInfo(string.Format("IIS check: {0}", details));
|
Log.WriteInfo(string.Format("IIS check: {0}", details));
|
||||||
if (SetupVariables.IISVersion.Major < 6)
|
if (setupVariables.IISVersion.Major < 6)
|
||||||
{
|
{
|
||||||
details = "IIS 6.0 or greater required.";
|
details = "IIS 6.0 or greater required.";
|
||||||
Log.WriteError(string.Format("IIS check: {0}", details), null);
|
Log.WriteError(string.Format("IIS check: {0}", details), null);
|
||||||
|
@ -291,26 +292,26 @@ namespace WebsitePanel.Setup
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private CheckStatuses CheckASPNET(out string details)
|
internal static CheckStatuses CheckASPNET(SetupVariables setupVariables, out string details)
|
||||||
{
|
{
|
||||||
details = "ASP.NET 4.0 is installed.";
|
details = "ASP.NET 4.0 is installed.";
|
||||||
CheckStatuses ret = CheckStatuses.Success;
|
CheckStatuses ret = CheckStatuses.Success;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// IIS 6
|
// IIS 6
|
||||||
if (SetupVariables.IISVersion.Major == 6)
|
if (setupVariables.IISVersion.Major == 6)
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
if (Utils.CheckAspNet40Registered(SetupVariables) == false)
|
if (Utils.CheckAspNet40Registered(setupVariables) == false)
|
||||||
{
|
{
|
||||||
// Register ASP.NET 4.0
|
// Register ASP.NET 4.0
|
||||||
Utils.RegisterAspNet40(SetupVariables);
|
Utils.RegisterAspNet40(setupVariables);
|
||||||
//
|
//
|
||||||
ret = CheckStatuses.Warning;
|
ret = CheckStatuses.Warning;
|
||||||
details = AspNet40HasBeenInstalledMessage;
|
details = AspNet40HasBeenInstalledMessage;
|
||||||
}
|
}
|
||||||
// Enable ASP.NET 4.0 Web Server Extension if it is prohibited
|
// Enable ASP.NET 4.0 Web Server Extension if it is prohibited
|
||||||
if (Utils.GetAspNetWebExtensionStatus_Iis6(SetupVariables) == WebExtensionStatus.Prohibited)
|
if (Utils.GetAspNetWebExtensionStatus_Iis6(setupVariables) == WebExtensionStatus.Prohibited)
|
||||||
{
|
{
|
||||||
Utils.EnableAspNetWebExtension_Iis6();
|
Utils.EnableAspNetWebExtension_Iis6();
|
||||||
}
|
}
|
||||||
|
@ -331,10 +332,10 @@ namespace WebsitePanel.Setup
|
||||||
return CheckStatuses.Error;
|
return CheckStatuses.Error;
|
||||||
}
|
}
|
||||||
// Register ASP.NET 4.0
|
// Register ASP.NET 4.0
|
||||||
if (Utils.CheckAspNet40Registered(SetupVariables) == false)
|
if (Utils.CheckAspNet40Registered(setupVariables) == false)
|
||||||
{
|
{
|
||||||
// Register ASP.NET 4.0
|
// Register ASP.NET 4.0
|
||||||
Utils.RegisterAspNet40(SetupVariables);
|
Utils.RegisterAspNet40(setupVariables);
|
||||||
//
|
//
|
||||||
ret = CheckStatuses.Warning;
|
ret = CheckStatuses.Warning;
|
||||||
details = AspNet40HasBeenInstalledMessage;
|
details = AspNet40HasBeenInstalledMessage;
|
||||||
|
@ -359,17 +360,17 @@ namespace WebsitePanel.Setup
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private CheckStatuses CheckIIS32Mode(out string details)
|
internal static CheckStatuses CheckIIS32Mode(SetupVariables setupVariables, out string details)
|
||||||
{
|
{
|
||||||
details = string.Empty;
|
details = string.Empty;
|
||||||
CheckStatuses ret = CheckIISVersion(out details);
|
CheckStatuses ret = CheckIISVersion(setupVariables, out details);
|
||||||
if (ret == CheckStatuses.Error)
|
if (ret == CheckStatuses.Error)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
//IIS 6
|
//IIS 6
|
||||||
if (SetupVariables.IISVersion.Major == 6)
|
if (setupVariables.IISVersion.Major == 6)
|
||||||
{
|
{
|
||||||
//x64
|
//x64
|
||||||
if (Utils.IsWin64())
|
if (Utils.IsWin64())
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WIXInstaller.Common
|
||||||
|
{
|
||||||
|
class InMemoryStringLogListener : TraceListener
|
||||||
|
{
|
||||||
|
private const string Format = "[{0}] Message: {1}";
|
||||||
|
static private StringBuilder m_Ctx;
|
||||||
|
string m_id;
|
||||||
|
static InMemoryStringLogListener()
|
||||||
|
{
|
||||||
|
m_Ctx = new StringBuilder();
|
||||||
|
}
|
||||||
|
public InMemoryStringLogListener(string InstanceID)
|
||||||
|
: base(InstanceID)
|
||||||
|
{
|
||||||
|
m_id = InstanceID;
|
||||||
|
}
|
||||||
|
public override void Write(string Value)
|
||||||
|
{
|
||||||
|
WriteLog(Value);
|
||||||
|
}
|
||||||
|
public override void WriteLine(string Value)
|
||||||
|
{
|
||||||
|
WriteLog(Value + Environment.NewLine);
|
||||||
|
}
|
||||||
|
[Conditional("DEBUG")]
|
||||||
|
private void WriteLog(string Value)
|
||||||
|
{
|
||||||
|
m_Ctx.Append(string.Format(Format, m_id, Value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WIXInstaller.Common
|
||||||
|
{
|
||||||
|
internal struct Prop
|
||||||
|
{
|
||||||
|
public const int REQ_IIS_MINIMUM = 6;
|
||||||
|
public const string REQ_LOG = "PI_PREREQ_LOG";
|
||||||
|
public const string REQ_OS = "PI_PREREQ_OS";
|
||||||
|
public const string REQ_IIS = "PI_PREREQ_IIS";
|
||||||
|
public const string REQ_IIS_MAJOR = "PI_PREREQ_IIS_MAJOR";
|
||||||
|
public const string REQ_IIS_MINOR = "PI_PREREQ_IIS_MINOR";
|
||||||
|
public const string REQ_ASPNET = "PI_PREREQ_ASPNET";
|
||||||
|
public const string REQ_SERVER = "PI_PREREQ_WP_SERVER";
|
||||||
|
public const string REQ_ESERVER = "PI_PREREQ_WP_ESERVER";
|
||||||
|
public const string REQ_PORTAL = "PI_PREREQ_WP_PORTAL";
|
||||||
|
public const string REQ_WDPORTAL = "PI_PREREQ_WP_WDPORTAL";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,36 @@
|
||||||
|
using Microsoft.Deployment.WindowsInstaller;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using WebsitePanel.Setup;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WIXInstaller.Common
|
||||||
|
{
|
||||||
|
internal static class Tool
|
||||||
|
{
|
||||||
|
public static SetupVariables GetSetupVars(Session Ctx)
|
||||||
|
{
|
||||||
|
return new SetupVariables
|
||||||
|
{
|
||||||
|
SetupAction = SetupActions.Install,
|
||||||
|
IISVersion = Global.IISVersion
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void FillServerVariables(SetupVariables Vars)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void FillEServerVariables(SetupVariables Vars)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void FillPortalVariables(SetupVariables Vars)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,79 @@
|
||||||
|
using System;
|
||||||
|
using Microsoft.Deployment.WindowsInstaller;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WIXInstaller.Common.Util
|
||||||
|
{
|
||||||
|
internal interface IListCtrl
|
||||||
|
{
|
||||||
|
ulong Count { get; }
|
||||||
|
string Id { get; }
|
||||||
|
void AddItem(Record Item);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal abstract class ListCtrlBase : IListCtrl
|
||||||
|
{
|
||||||
|
private Session m_Ctx;
|
||||||
|
private string m_CtrlType;
|
||||||
|
private string m_CtrlId;
|
||||||
|
private View m_View;
|
||||||
|
private ulong m_Count;
|
||||||
|
|
||||||
|
public ListCtrlBase(Session session, string CtrlType, string CtrlId)
|
||||||
|
{
|
||||||
|
m_Ctx = session;
|
||||||
|
m_CtrlType = CtrlType;
|
||||||
|
m_CtrlId = CtrlId;
|
||||||
|
m_View = null;
|
||||||
|
m_Count = 0;
|
||||||
|
Initialize();
|
||||||
|
}
|
||||||
|
|
||||||
|
~ListCtrlBase()
|
||||||
|
{
|
||||||
|
if (m_View != null)
|
||||||
|
m_View.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual ulong Count { get { return m_Count; } }
|
||||||
|
|
||||||
|
public virtual string Id { get { return m_CtrlId; } }
|
||||||
|
|
||||||
|
public virtual void AddItem(Record Item)
|
||||||
|
{
|
||||||
|
m_View.Execute(Item);
|
||||||
|
++m_Count;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Initialize()
|
||||||
|
{
|
||||||
|
m_Ctx.Database.Execute(string.Format("DELETE FROM `{0}` WHERE `Property`='{1}'", m_CtrlType, m_CtrlId));
|
||||||
|
m_View = m_Ctx.Database.OpenView(m_Ctx.Database.Tables[m_CtrlType].SqlInsertString + " TEMPORARY");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class ListViewCtrl : ListCtrlBase
|
||||||
|
{
|
||||||
|
public ListViewCtrl(Session session, string WiXListID) : base(session, "ListView", WiXListID)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddItem(bool Checked, string Value)
|
||||||
|
{
|
||||||
|
AddItem(new Record(new object[] { Id, Count, Value, Value, Checked ? "passmark" : "failmark" }));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class ComboBoxCtrl : ListCtrlBase
|
||||||
|
{
|
||||||
|
public ComboBoxCtrl(Session session, string WiXComboID): base(session, "ComboBox", WiXComboID)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddItem(string Value)
|
||||||
|
{
|
||||||
|
AddItem(new Record(new object[] { Id, Count, Value, Value }));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using Microsoft.Deployment.WindowsInstaller;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WIXInstaller.Common
|
||||||
|
{
|
||||||
|
public class WiXLogListener : TraceListener
|
||||||
|
{
|
||||||
|
private Session m_Ctx;
|
||||||
|
public WiXLogListener(Session Ctx)
|
||||||
|
: base("WiXLogListener")
|
||||||
|
{
|
||||||
|
m_Ctx = Ctx;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Write(string Value)
|
||||||
|
{
|
||||||
|
m_Ctx.Log(Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void WriteLine(string Value)
|
||||||
|
{
|
||||||
|
m_Ctx.Log(Value + Environment.NewLine);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WIXInstaller.Common
|
||||||
|
{
|
||||||
|
internal struct YesNo
|
||||||
|
{
|
||||||
|
public static string Yes { get { return "1"; } }
|
||||||
|
|
||||||
|
public static string No { get { return "0"; } }
|
||||||
|
}
|
||||||
|
}
|
|
@ -25,51 +25,244 @@
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
// 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
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Configuration.Install;
|
using System.Configuration.Install;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
|
using System.Data.Sql;
|
||||||
using System.Data.SqlClient;
|
using System.Data.SqlClient;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Net.NetworkInformation;
|
||||||
|
using System.Net.Sockets;
|
||||||
using System.ServiceProcess;
|
using System.ServiceProcess;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading;
|
|
||||||
using System.Windows.Forms;
|
|
||||||
using System.Windows.Forms.VisualStyles;
|
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
using Microsoft.Deployment.WindowsInstaller;
|
using Microsoft.Deployment.WindowsInstaller;
|
||||||
using WebsitePanel.Setup;
|
using WebsitePanel.Setup;
|
||||||
|
using WebsitePanel.Setup.Internal;
|
||||||
|
using WebsitePanel.WIXInstaller.Common;
|
||||||
|
using WebsitePanel.WIXInstaller.Common.Util;
|
||||||
|
|
||||||
namespace WebsitePanel.WIXInstaller
|
namespace WebsitePanel.WIXInstaller
|
||||||
{
|
{
|
||||||
public class CustomActions
|
public class CustomActions
|
||||||
{
|
{
|
||||||
|
public static List<string> SysDb = new List<string> { "tempdb", "master", "model", "msdb" };
|
||||||
public const string CustomDataDelimiter = "-=del=-";
|
public const string CustomDataDelimiter = "-=del=-";
|
||||||
|
|
||||||
|
#region CustomActions
|
||||||
|
// Install.
|
||||||
[CustomAction]
|
[CustomAction]
|
||||||
public static ActionResult CheckConnection(Session session)
|
public static ActionResult OnServerInstall(Session session)
|
||||||
{
|
{
|
||||||
string testConnectionString = session["AUTHENTICATIONTYPE"].Equals("Windows Authentication") ? GetConnectionString(session["SERVERNAME"], "master") : GetConnectionString(session["SERVERNAME"], "master", session["LOGIN"], session["PASSWORD"]);
|
PopUpDebugger();
|
||||||
|
return ProcessInstall(session, WiXInstallType.InstallServer);
|
||||||
if (CheckConnection(testConnectionString))
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult OnEServerInstall(Session session)
|
||||||
|
{
|
||||||
|
PopUpDebugger();
|
||||||
|
return ProcessInstall(session, WiXInstallType.InstallEnterpriseServer);
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult OnPortalInstall(Session session)
|
||||||
|
{
|
||||||
|
PopUpDebugger();
|
||||||
|
return ProcessInstall(session, WiXInstallType.InstallPortal);
|
||||||
|
}
|
||||||
|
// Remove.
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult OnServerRemove(Session session)
|
||||||
|
{
|
||||||
|
PopUpDebugger();
|
||||||
|
return ProcessInstall(session, WiXInstallType.RemoveServer);
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult OnEServerRemove(Session session)
|
||||||
|
{
|
||||||
|
PopUpDebugger();
|
||||||
|
return ProcessInstall(session, WiXInstallType.RemoveEnterpriseServer);
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult OnPortalRemove(Session session)
|
||||||
|
{
|
||||||
|
PopUpDebugger();
|
||||||
|
return ProcessInstall(session, WiXInstallType.RemovePortal);
|
||||||
|
}
|
||||||
|
// Other.
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult SetEServerUrlUI(Session session)
|
||||||
|
{
|
||||||
|
var Ctx = session;
|
||||||
|
Ctx["PI_ESERVER_URL"] = string.Format("http://{0}:{1}/", Ctx["PI_ESERVER_IP"], Ctx["PI_ESERVER_PORT"]);
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult RecapListUI(Session session)
|
||||||
|
{
|
||||||
|
const string F_WSP = "WebsitePanel";
|
||||||
|
const string F_Server = "ServerFeature";
|
||||||
|
const string F_EServer = "EnterpriseServerFeature";
|
||||||
|
const string F_Portal = "PortalFeature";
|
||||||
|
const string F_Scheduler = "SchedulerServiceFeature";
|
||||||
|
const string F_WDPosrtal = "WDPortalFeature";
|
||||||
|
var S_Install = new List<string> { "Copy WebsitePanel Server files", "Add WebsitePanel Server website" };
|
||||||
|
var ES_Install = new List<string> { "Copy WebsitePanel Enterprise Server files", "Install WebsitePanel database and updates", "Add WebsitePanel Enterprise Server website" };
|
||||||
|
var P_Install = new List<string> { "Copy WebsitePanel Portal files", "Add WebsitePanel Enterprise Portal website" };
|
||||||
|
var SCH_Install = new List<string> { "Copy WebsitePanel Scheduler Service files", "Install Scheduler Service Windows Service" };
|
||||||
|
var WDP_Install = new List<string> { "Copy WebsitePanel WebDav Portal files" };
|
||||||
|
var S_Uninstall = new List<string> { "Delete WebsitePanel Server files", "Remove WebsitePanel Server website" };
|
||||||
|
var ES_Uninstall = new List<string> { "Delete WebsitePanel Enterprise Server files", "Keep WebsitePanel database and updates", "Remove WebsitePanel Enterprise Server website" };
|
||||||
|
var P_Uninstall = new List<string> { "Delete WebsitePanel Portal files", "Remove WebsitePanel Enterprise Portal website" };
|
||||||
|
var SCH_Uninstall = new List<string> { "Delete WebsitePanel Scheduler Service files", "Remove Scheduler Service Windows Service" };
|
||||||
|
var WDP_Uninstall = new List<string> { "Delete WebsitePanel WebDav Portal files" };
|
||||||
|
var RecapList = new List<string>();
|
||||||
|
var EmptyList = new List<string>();
|
||||||
|
var Ctx = session;
|
||||||
|
RecapListReset(Ctx);
|
||||||
|
foreach (var Feature in Ctx.Features)
|
||||||
{
|
{
|
||||||
session["CORRECTCONNECTION"] = "1";
|
switch (Feature.Name)
|
||||||
session["CONNECTIONSTRING"] = session["AUTHENTICATIONTYPE"].Equals("Windows Authentication") ? GetConnectionString(session["SERVERNAME"], session["DATABASENAME"]) : GetConnectionString(session["SERVERNAME"], session["DATABASENAME"], session["LOGIN"], session["PASSWORD"]);
|
{
|
||||||
|
case F_WSP:
|
||||||
|
break;
|
||||||
|
case F_Server:
|
||||||
|
RecapList.AddRange(Feature.RequestState == InstallState.Local ? S_Install : /*S_Uninstall*/ EmptyList);
|
||||||
|
break;
|
||||||
|
case F_EServer:
|
||||||
|
RecapList.AddRange(Feature.RequestState == InstallState.Local ? ES_Install : /*ES_Uninstall*/ EmptyList);
|
||||||
|
break;
|
||||||
|
case F_Portal:
|
||||||
|
RecapList.AddRange(Feature.RequestState == InstallState.Local ? P_Install : /*P_Uninstall*/ EmptyList);
|
||||||
|
break;
|
||||||
|
case F_Scheduler:
|
||||||
|
RecapList.AddRange(Feature.RequestState == InstallState.Local ? SCH_Install : /*SCH_Uninstall*/ EmptyList);
|
||||||
|
break;
|
||||||
|
case F_WDPosrtal:
|
||||||
|
RecapList.AddRange(Feature.RequestState == InstallState.Local ? WDP_Install : /*WDP_Uninstall*/ EmptyList);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
RecapListAdd(Ctx, RecapList.ToArray());
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult DatabaseConnectionValidateUI(Session session)
|
||||||
|
{
|
||||||
|
var Ctx = session;
|
||||||
|
bool Valid = true;
|
||||||
|
string Msg;
|
||||||
|
ValidationReset(Ctx);
|
||||||
|
Valid = ValidateDbNameUI(Ctx, out Msg);
|
||||||
|
ValidationMsg(Ctx, Msg);
|
||||||
|
ValidationStatus(Ctx, Valid);
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult ServerAdminValidateUI(Session session)
|
||||||
|
{
|
||||||
|
var Ctx = session;
|
||||||
|
bool Valid = true;
|
||||||
|
string Msg;
|
||||||
|
ValidationReset(Ctx);
|
||||||
|
Valid = ValidatePasswordUI(Ctx, "SERVERADMIN", out Msg);
|
||||||
|
ValidationMsg(Ctx, Msg);
|
||||||
|
ValidationStatus(Ctx, Valid);
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult ServerValidateADUI(Session session)
|
||||||
|
{
|
||||||
|
var Ctx = session;
|
||||||
|
bool Valid = true;
|
||||||
|
string Msg;
|
||||||
|
ValidationReset(Ctx);
|
||||||
|
Valid = ValidateADUI(Ctx, "PI_SERVER", out Msg);
|
||||||
|
ValidationMsg(Ctx, Msg);
|
||||||
|
ValidationStatus(Ctx, Valid);
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult EServerValidateADUI(Session session)
|
||||||
|
{
|
||||||
|
var Ctx = session;
|
||||||
|
bool Valid = true;
|
||||||
|
string Msg;
|
||||||
|
ValidationReset(Ctx);
|
||||||
|
Valid = ValidateADUI(Ctx, "PI_ESERVER", out Msg);
|
||||||
|
ValidationMsg(Ctx, Msg);
|
||||||
|
ValidationStatus(Ctx, Valid);
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult PortalValidateADUI(Session session)
|
||||||
|
{
|
||||||
|
var Ctx = session;
|
||||||
|
bool Valid = true;
|
||||||
|
string Msg;
|
||||||
|
ValidationReset(Ctx);
|
||||||
|
Valid = ValidateADUI(Ctx, "PI_PORTAL", out Msg);
|
||||||
|
ValidationMsg(Ctx, Msg);
|
||||||
|
ValidationStatus(Ctx, Valid);
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult ServerAccessValidateUI(Session session)
|
||||||
|
{
|
||||||
|
var Ctx = session;
|
||||||
|
bool Valid = true;
|
||||||
|
string Msg;
|
||||||
|
ValidationReset(Ctx);
|
||||||
|
Valid = ValidatePasswordUI(Ctx, "SERVER_ACCESS", out Msg);
|
||||||
|
ValidationMsg(Ctx, Msg);
|
||||||
|
ValidationStatus(Ctx, Valid);
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult SqlServerListUI(Session session)
|
||||||
|
{
|
||||||
|
var Ctx = session;
|
||||||
|
var SrvList = new ComboBoxCtrl(Ctx, "DB_SERVER");
|
||||||
|
foreach (var Srv in GetSqlInstances())
|
||||||
|
SrvList.AddItem(Srv);
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult DbListUI(Session session)
|
||||||
|
{
|
||||||
|
string tmp;
|
||||||
|
var Ctrl = new ComboBoxCtrl(session, "DB_SELECT");
|
||||||
|
if (CheckConnection(session["DB_CONN"], out tmp))
|
||||||
|
foreach (var Db in GetDbList(ConnStr: session["DB_CONN"], ForbiddenNames: SysDb))
|
||||||
|
{
|
||||||
|
Ctrl.AddItem(Db);
|
||||||
|
session["DB_SELECT"] = Db; // Adds available DBs to installer log.
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
session["DB_SELECT"] = "";
|
||||||
session["CORRECTCONNECTION"] = "0";
|
return ActionResult.Success;
|
||||||
}
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult CheckConnectionUI(Session session)
|
||||||
|
{
|
||||||
|
string ConnStr = session["DB_AUTH"].Equals("Windows Authentication") ? GetConnectionString(session["DB_SERVER"], "master") :
|
||||||
|
GetConnectionString(session["DB_SERVER"], "master", session["DB_LOGIN"], session["DB_PASSWORD"]);
|
||||||
|
string msg;
|
||||||
|
bool Result = CheckConnection(ConnStr, out msg);
|
||||||
|
session["DB_CONN_CORRECT"] = Result ? "1" : "0";
|
||||||
|
session["DB_CONN"] = Result ? ConnStr : "";
|
||||||
|
session["DB_CONN_MSG"] = msg;
|
||||||
return ActionResult.Success;
|
return ActionResult.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
[CustomAction]
|
[CustomAction]
|
||||||
public static ActionResult FinalizeInstall(Session session)
|
public static ActionResult FinalizeInstall(Session session)
|
||||||
{
|
{
|
||||||
var connectionString = GetCustomActionProperty(session, "ConnectionString").Replace(CustomDataDelimiter, ";");
|
/*var connectionString = GetCustomActionProperty(session, "ConnectionString").Replace(CustomDataDelimiter, ";");
|
||||||
var serviceFolder = GetCustomActionProperty(session, "ServiceFolder");
|
var serviceFolder = GetCustomActionProperty(session, "ServiceFolder");
|
||||||
var previousConnectionString = GetCustomActionProperty(session, "PreviousConnectionString").Replace(CustomDataDelimiter, ";");
|
var previousConnectionString = GetCustomActionProperty(session, "PreviousConnectionString").Replace(CustomDataDelimiter, ";");
|
||||||
var previousCryptoKey = GetCustomActionProperty(session, "PreviousCryptoKey");
|
var previousCryptoKey = GetCustomActionProperty(session, "PreviousCryptoKey");
|
||||||
|
@ -85,7 +278,7 @@ namespace WebsitePanel.WIXInstaller
|
||||||
|
|
||||||
ChangeConfigString("/configuration/connectionStrings/add[@name='EnterpriseServer']", "connectionString", connectionString, serviceFolder);
|
ChangeConfigString("/configuration/connectionStrings/add[@name='EnterpriseServer']", "connectionString", connectionString, serviceFolder);
|
||||||
ChangeConfigString("/configuration/appSettings/add[@key='WebsitePanel.CryptoKey']", "value", previousCryptoKey, serviceFolder);
|
ChangeConfigString("/configuration/appSettings/add[@key='WebsitePanel.CryptoKey']", "value", previousCryptoKey, serviceFolder);
|
||||||
InstallService(serviceFolder);
|
InstallService(serviceFolder);*/
|
||||||
|
|
||||||
return ActionResult.Success;
|
return ActionResult.Success;
|
||||||
}
|
}
|
||||||
|
@ -93,7 +286,7 @@ namespace WebsitePanel.WIXInstaller
|
||||||
[CustomAction]
|
[CustomAction]
|
||||||
public static ActionResult FinalizeUnInstall(Session session)
|
public static ActionResult FinalizeUnInstall(Session session)
|
||||||
{
|
{
|
||||||
UnInstallService();
|
// UnInstallService();
|
||||||
|
|
||||||
return ActionResult.Success;
|
return ActionResult.Success;
|
||||||
}
|
}
|
||||||
|
@ -105,7 +298,7 @@ namespace WebsitePanel.WIXInstaller
|
||||||
|
|
||||||
session["SERVICEFOLDER"] = session["INSTALLFOLDER"];
|
session["SERVICEFOLDER"] = session["INSTALLFOLDER"];
|
||||||
|
|
||||||
var servicePath = SecurityUtils.GetServicePath("WebsitePanel Scheduler");
|
var servicePath = /*SecurityUtils.GetServicePath("WebsitePanel Scheduler")*/"";
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(servicePath))
|
if (!string.IsNullOrEmpty(servicePath))
|
||||||
{
|
{
|
||||||
|
@ -138,6 +331,52 @@ namespace WebsitePanel.WIXInstaller
|
||||||
return ActionResult.Success;
|
return ActionResult.Success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult PrereqCheck(Session session)
|
||||||
|
{
|
||||||
|
string Msg;
|
||||||
|
var Ctx = Tool.GetSetupVars(session);
|
||||||
|
var ros = Adapter.CheckOS(Ctx, out Msg);
|
||||||
|
AddLog(session, Msg);
|
||||||
|
var riis = Adapter.CheckIIS(Ctx, out Msg);
|
||||||
|
AddLog(session, Msg);
|
||||||
|
var raspnet = Adapter.CheckASPNET(Ctx, out Msg);
|
||||||
|
AddLog(session, Msg);
|
||||||
|
session[Prop.REQ_OS] = ros == CheckStatuses.Success ? YesNo.Yes : YesNo.No;
|
||||||
|
session[Prop.REQ_IIS] = riis == CheckStatuses.Success ? YesNo.Yes : YesNo.No; ;
|
||||||
|
session[Prop.REQ_ASPNET] = raspnet == CheckStatuses.Success ? YesNo.Yes : YesNo.No; ;
|
||||||
|
session[Prop.REQ_SERVER] = YesNo.Yes;
|
||||||
|
session[Prop.REQ_ESERVER] = YesNo.Yes;
|
||||||
|
session[Prop.REQ_PORTAL] = YesNo.Yes;
|
||||||
|
session[Prop.REQ_WDPORTAL] = YesNo.Yes;
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult PrereqCheckUI(Session session)
|
||||||
|
{
|
||||||
|
var ListView = new ListViewCtrl(session, "REQCHECKLIST");
|
||||||
|
AddCheck(ListView, session, Prop.REQ_OS);
|
||||||
|
AddCheck(ListView, session, Prop.REQ_IIS);
|
||||||
|
AddCheck(ListView, session, Prop.REQ_ASPNET);
|
||||||
|
AddCheck(ListView, session, Prop.REQ_SERVER);
|
||||||
|
AddCheck(ListView, session, Prop.REQ_ESERVER);
|
||||||
|
AddCheck(ListView, session, Prop.REQ_PORTAL);
|
||||||
|
AddCheck(ListView, session, Prop.REQ_WDPORTAL);
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult FillIpListUI(Session session)
|
||||||
|
{
|
||||||
|
var Ctrls = new[]{ new ComboBoxCtrl(session, "PI_SERVER_IP"),
|
||||||
|
new ComboBoxCtrl(session, "PI_ESERVER_IP"),
|
||||||
|
new ComboBoxCtrl(session, "PI_PORTAL_IP") };
|
||||||
|
foreach (var Ip in GetIpList())
|
||||||
|
foreach (var Ctrl in Ctrls)
|
||||||
|
Ctrl.AddItem(Ip);
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
private static void InstallService(string installFolder)
|
private static void InstallService(string installFolder)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -204,7 +443,6 @@ namespace WebsitePanel.WIXInstaller
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void StopService(string serviceName)
|
private static void StopService(string serviceName)
|
||||||
{
|
{
|
||||||
var sc = new ServiceController(serviceName);
|
var sc = new ServiceController(serviceName);
|
||||||
|
@ -229,36 +467,30 @@ namespace WebsitePanel.WIXInstaller
|
||||||
|
|
||||||
private static string GetConnectionString(string serverName, string databaseName)
|
private static string GetConnectionString(string serverName, string databaseName)
|
||||||
{
|
{
|
||||||
return string.Format("Server={0};database={1};Trusted_Connection=true;", serverName, databaseName).Replace(";", CustomDataDelimiter);
|
return string.Format("Server={0};database={1};Trusted_Connection=true;", serverName, databaseName)/*.Replace(";", CustomDataDelimiter)*/;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetConnectionString(string serverName, string databaseName, string login, string password)
|
private static string GetConnectionString(string serverName, string databaseName, string login, string password)
|
||||||
{
|
{
|
||||||
return string.Format("Server={0};database={1};uid={2};password={3};", serverName, databaseName, login, password).Replace(";", CustomDataDelimiter);
|
return string.Format("Server={0};database={1};uid={2};password={3};", serverName, databaseName, login, password)/*.Replace(";", CustomDataDelimiter)*/;
|
||||||
}
|
}
|
||||||
|
static bool CheckConnection(string ConnStr, out string Info)
|
||||||
private static bool CheckConnection(string connectionString)
|
|
||||||
{
|
{
|
||||||
var connection = new SqlConnection(connectionString);
|
Info = string.Empty;
|
||||||
bool result = true;
|
bool Result = false;
|
||||||
|
using (var Conn = new SqlConnection(ConnStr))
|
||||||
try
|
|
||||||
{
|
{
|
||||||
connection.Open();
|
try
|
||||||
}
|
|
||||||
catch (Exception)
|
|
||||||
{
|
|
||||||
result = false;
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (connection != null && connection.State == ConnectionState.Open)
|
|
||||||
{
|
{
|
||||||
connection.Close();
|
Conn.Open();
|
||||||
|
Result = true;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Info = ex.Message;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return Result;
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetCustomActionProperty(Session session, string key)
|
private static string GetCustomActionProperty(Session session, string key)
|
||||||
|
@ -270,5 +502,235 @@ namespace WebsitePanel.WIXInstaller
|
||||||
|
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
|
private static void AddCheck(ListViewCtrl view, Session session, string PropertyID)
|
||||||
|
{
|
||||||
|
view.AddItem(session[PropertyID] == YesNo.Yes, session[PropertyID + "_TITLE"]);
|
||||||
|
}
|
||||||
|
static IList<string> GetSqlInstances()
|
||||||
|
{
|
||||||
|
var Result = new List<string>();
|
||||||
|
using (var Src = SqlDataSourceEnumerator.Instance.GetDataSources())
|
||||||
|
{
|
||||||
|
foreach (DataRow Row in Src.Rows)
|
||||||
|
{
|
||||||
|
var Instance = Row["InstanceName"].ToString();
|
||||||
|
Result.Add((string.IsNullOrWhiteSpace(Instance) ? "" : (Instance + "\\")) + Row["ServerName"].ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
static IEnumerable<string> GetDbList(string ConnStr, IList<string> ForbiddenNames = null)
|
||||||
|
{
|
||||||
|
using (var Conn = new SqlConnection(ConnStr))
|
||||||
|
{
|
||||||
|
Conn.Open();
|
||||||
|
var Cmd = Conn.CreateCommand();
|
||||||
|
Cmd.CommandText = "SELECT name FROM master..sysdatabases";
|
||||||
|
if (ForbiddenNames != null && ForbiddenNames.Count > 0)
|
||||||
|
Cmd.CommandText += string.Format(" WHERE name NOT IN ({0})", string.Join(", ", ForbiddenNames.Select(x => string.Format("'{0}'", x))));
|
||||||
|
var Result = Cmd.ExecuteReader();
|
||||||
|
while (Result.Read())
|
||||||
|
yield return Result["name"].ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
static IEnumerable<string> GetIpList()
|
||||||
|
{
|
||||||
|
foreach (var Ni in NetworkInterface.GetAllNetworkInterfaces())
|
||||||
|
if (Ni.OperationalStatus == OperationalStatus.Up && (Ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet ||
|
||||||
|
Ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 ||
|
||||||
|
Ni.NetworkInterfaceType == NetworkInterfaceType.Loopback))
|
||||||
|
foreach (var IpInfo in Ni.GetIPProperties().UnicastAddresses)
|
||||||
|
if (IpInfo.Address.AddressFamily == AddressFamily.InterNetwork)
|
||||||
|
yield return IpInfo.Address.ToString();
|
||||||
|
}
|
||||||
|
internal static void AddLog(Session Ctx, string Msg)
|
||||||
|
{
|
||||||
|
AddTo(Ctx, "PI_PREREQ_LOG", Msg);
|
||||||
|
}
|
||||||
|
internal static void AddTo(Session Ctx, string TextProp, string Msg)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrWhiteSpace(Msg))
|
||||||
|
{
|
||||||
|
string tmp = Ctx[TextProp];
|
||||||
|
if (string.IsNullOrWhiteSpace(tmp))
|
||||||
|
Ctx[TextProp] = Msg;
|
||||||
|
else
|
||||||
|
Ctx[TextProp] = tmp + Environment.NewLine + Msg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
internal static void ValidationReset(Session Ctx)
|
||||||
|
{
|
||||||
|
Ctx["VALIDATE_OK"] = "0";
|
||||||
|
Ctx["VALIDATE_MSG"] = "Error occurred.";
|
||||||
|
}
|
||||||
|
internal static void ValidationStatus(Session Ctx, bool Value)
|
||||||
|
{
|
||||||
|
Ctx["VALIDATE_OK"] = Value ? YesNo.Yes : YesNo.No;
|
||||||
|
}
|
||||||
|
internal static void ValidationMsg(Session Ctx, string Msg)
|
||||||
|
{
|
||||||
|
AddTo(Ctx, "VALIDATE_MSG", Msg);
|
||||||
|
}
|
||||||
|
internal static bool PasswordValidate(string Password, string Confirm, out string Msg)
|
||||||
|
{
|
||||||
|
Msg = string.Empty;
|
||||||
|
bool Result = false;
|
||||||
|
if (string.IsNullOrWhiteSpace(Password))
|
||||||
|
Msg = "Empty password.";
|
||||||
|
else if (Password != Confirm)
|
||||||
|
Msg = "Password does not match the confirm password. Type both passwords again.";
|
||||||
|
else
|
||||||
|
Result = true;
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
internal static bool ValidatePasswordUI(Session Ctx, string Ns, out string Msg)
|
||||||
|
{
|
||||||
|
string p1 = Ctx[Ns + "_PASSWORD"];
|
||||||
|
string p2 = Ctx[Ns + "_PASSWORD_CONFIRM"];
|
||||||
|
return PasswordValidate(p1, p2, out Msg);
|
||||||
|
}
|
||||||
|
internal static bool ValidateADDomainUI(Session Ctx, string Ns, out string Msg)
|
||||||
|
{
|
||||||
|
bool Result = default(bool);
|
||||||
|
bool check = Ctx[Ns + "_CREATE_AD"] == YesNo.Yes;
|
||||||
|
string name = Ctx[Ns + "_DOMAIN"];
|
||||||
|
if (check && string.IsNullOrWhiteSpace(name))
|
||||||
|
{
|
||||||
|
Result = false;
|
||||||
|
Msg = "The domain can't be empty.";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Result = true;
|
||||||
|
Msg = string.Empty;
|
||||||
|
}
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
internal static bool ValidateADLoginUI(Session Ctx, string Ns, out string Msg)
|
||||||
|
{
|
||||||
|
bool Result = default(bool);
|
||||||
|
string name = Ctx[Ns + "_LOGIN"];
|
||||||
|
if (string.IsNullOrWhiteSpace(name))
|
||||||
|
{
|
||||||
|
Result = false;
|
||||||
|
Msg = "The login can't be empty.";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Result = true;
|
||||||
|
Msg = string.Empty;
|
||||||
|
}
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
internal static bool ValidateADUI(Session Ctx, string Ns, out string Msg)
|
||||||
|
{
|
||||||
|
bool Result = true;
|
||||||
|
if (!ValidateADDomainUI(Ctx, Ns, out Msg))
|
||||||
|
Result = false;
|
||||||
|
else if (!ValidateADLoginUI(Ctx, Ns, out Msg))
|
||||||
|
Result = false;
|
||||||
|
else if (!ValidatePasswordUI(Ctx, Ns, out Msg))
|
||||||
|
Result = false;
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
internal static bool ValidateDbNameUI(Session Ctx, out string Msg)
|
||||||
|
{
|
||||||
|
Msg = string.Empty;
|
||||||
|
var Result = true;
|
||||||
|
string DbName = Ctx["DB_DATABASE"];
|
||||||
|
if (string.IsNullOrWhiteSpace(DbName))
|
||||||
|
{
|
||||||
|
Result = false;
|
||||||
|
Msg = "The database name can't be empty.";
|
||||||
|
|
||||||
|
}
|
||||||
|
return Result;
|
||||||
|
}
|
||||||
|
internal static void RecapListReset(Session Ctx)
|
||||||
|
{
|
||||||
|
Ctx["CUSTOM_INSTALL_TEXT"] = string.Empty;
|
||||||
|
}
|
||||||
|
internal static void RecapListAdd(Session Ctx, params string[] Msgs)
|
||||||
|
{
|
||||||
|
foreach (var Msg in Msgs)
|
||||||
|
AddTo(Ctx, "CUSTOM_INSTALL_TEXT", Msg); ;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static string GetProperty(Session Ctx, string Property)
|
||||||
|
{
|
||||||
|
if (Ctx.CustomActionData.ContainsKey(Property))
|
||||||
|
return Ctx[Property];
|
||||||
|
else
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ActionResult ProcessInstall(Session Ctx, WiXInstallType InstallType)
|
||||||
|
{
|
||||||
|
IWiXSetup Install = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Ctx.AttachToSetupLog();
|
||||||
|
switch (InstallType)
|
||||||
|
{
|
||||||
|
case WiXInstallType.InstallServer:
|
||||||
|
Install = ServerSetup.Create(Ctx.CustomActionData, SetupActions.Install);
|
||||||
|
break;
|
||||||
|
case WiXInstallType.RemoveServer:
|
||||||
|
Install = ServerSetup.Create(Ctx.CustomActionData, SetupActions.Uninstall);
|
||||||
|
break;
|
||||||
|
case WiXInstallType.InstallEnterpriseServer:
|
||||||
|
Install = EServerSetup.Create(Ctx.CustomActionData, SetupActions.Install);
|
||||||
|
break;
|
||||||
|
case WiXInstallType.RemoveEnterpriseServer:
|
||||||
|
Install = EServerSetup.Create(Ctx.CustomActionData, SetupActions.Uninstall);
|
||||||
|
break;
|
||||||
|
case WiXInstallType.InstallPortal:
|
||||||
|
Install = PortalSetup.Create(Ctx.CustomActionData, SetupActions.Install);
|
||||||
|
break;
|
||||||
|
case WiXInstallType.RemovePortal:
|
||||||
|
Install = PortalSetup.Create(Ctx.CustomActionData, SetupActions.Uninstall);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
Install.Run();
|
||||||
|
}
|
||||||
|
catch (WiXSetupException we)
|
||||||
|
{
|
||||||
|
Ctx.Log("Expected exception: " + we.ToString());
|
||||||
|
return ActionResult.Failure;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Ctx.Log(ex.ToString());
|
||||||
|
return ActionResult.Failure;
|
||||||
|
}
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
[Conditional("DEBUG")]
|
||||||
|
private static void PopUpDebugger()
|
||||||
|
{
|
||||||
|
Debugger.Launch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public static class SessionExtension
|
||||||
|
{
|
||||||
|
public static void AttachToSetupLog(this Session Ctx)
|
||||||
|
{
|
||||||
|
WiXSetup.InstallLogListener(new WiXLogListener(Ctx));
|
||||||
|
WiXSetup.InstallLogListener(new InMemoryStringLogListener("WIX CA IN MEMORY"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal enum WiXInstallType: byte
|
||||||
|
{
|
||||||
|
InstallServer,
|
||||||
|
InstallEnterpriseServer,
|
||||||
|
InstallPortal,
|
||||||
|
RemoveServer,
|
||||||
|
RemoveEnterpriseServer,
|
||||||
|
RemovePortal,
|
||||||
|
RemoveUpdate,
|
||||||
|
RestoreUpdate
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,10 +32,25 @@
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<AddPdb Include="$(OutputPath)*.pdb" />
|
||||||
|
</ItemGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<IntermediateOutputPath Condition=" '$(PlatformName)' == 'AnyCPU' ">$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
|
||||||
|
<IntermediateOutputPath Condition=" '$(PlatformName)' != 'AnyCPU' ">$(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\</IntermediateOutputPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||||
|
<CustomActionContents>$(IntermediateOutputPath)$(AssemblyName).pdb;@(AddPdb)</CustomActionContents>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Microsoft.Web.Administration, Version=7.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\..\Lib\Microsoft.Web.Administration.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Configuration.Install" />
|
<Reference Include="System.Configuration.Install" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.DirectoryServices" />
|
||||||
<Reference Include="System.ServiceProcess" />
|
<Reference Include="System.ServiceProcess" />
|
||||||
<Reference Include="System.Windows.Forms" />
|
<Reference Include="System.Windows.Forms" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
@ -44,6 +59,12 @@
|
||||||
<Reference Include="Microsoft.Deployment.WindowsInstaller" />
|
<Reference Include="Microsoft.Deployment.WindowsInstaller" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<Compile Include="Common\InMemoryStringLogListener.cs" />
|
||||||
|
<Compile Include="Common\Tool.cs" />
|
||||||
|
<Compile Include="Common\Prop.cs" />
|
||||||
|
<Compile Include="Common\Util\IListCtrl.cs" />
|
||||||
|
<Compile Include="Common\WiXLogListener.cs" />
|
||||||
|
<Compile Include="Common\YesNo.cs" />
|
||||||
<Compile Include="CustomAction.cs" />
|
<Compile Include="CustomAction.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Content Include="CustomAction.config" />
|
<Content Include="CustomAction.config" />
|
||||||
|
@ -53,6 +74,10 @@
|
||||||
<Project>{3951C0EC-BD98-450E-B228-CDBE5BD4AD49}</Project>
|
<Project>{3951C0EC-BD98-450E-B228-CDBE5BD4AD49}</Project>
|
||||||
<Name>WebsitePanel.Setup</Name>
|
<Name>WebsitePanel.Setup</Name>
|
||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\WebsitePanel.Installer.Core\WebsitePanel.Installer.Core.csproj">
|
||||||
|
<Project>{0E4A3F5B-0BB1-4F63-863D-7B0182B378CF}</Project>
|
||||||
|
<Name>WebsitePanel.Installer.Core</Name>
|
||||||
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<Import Project="$(WixCATargetsPath)" />
|
<Import Project="$(WixCATargetsPath)" />
|
||||||
|
|
|
@ -10716,3 +10716,229 @@ SET ANSI_NULLS ON
|
||||||
GO
|
GO
|
||||||
SET QUOTED_IDENTIFIER OFF
|
SET QUOTED_IDENTIFIER OFF
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
IF EXISTS (SELECT * FROM SYS.OBJECTS WHERE type = 'P' AND name = 'GetSearchObject')
|
||||||
|
DROP PROCEDURE GetSearchObject
|
||||||
|
|
||||||
|
CREATE PROCEDURE [dbo].[GetSearchObject]
|
||||||
|
(
|
||||||
|
@ActorID int,
|
||||||
|
@UserID int,
|
||||||
|
@FilterColumn nvarchar(50) = '',
|
||||||
|
@FilterValue nvarchar(50) = '',
|
||||||
|
@StatusID int,
|
||||||
|
@RoleID int,
|
||||||
|
@SortColumn nvarchar(50),
|
||||||
|
@StartRow int,
|
||||||
|
@MaximumRows int = 0,
|
||||||
|
@Recursive bit,
|
||||||
|
@ColType nvarchar(50) = ''
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
IF dbo.CheckActorUserRights(@ActorID, @UserID) = 0
|
||||||
|
RAISERROR('You are not allowed to access this account', 16, 1)
|
||||||
|
|
||||||
|
DECLARE @columnUsername nvarchar(20)
|
||||||
|
SET @columnUsername = 'Username'
|
||||||
|
|
||||||
|
DECLARE @columnEmail nvarchar(20)
|
||||||
|
SET @columnEmail = 'Email'
|
||||||
|
|
||||||
|
DECLARE @columnCompanyName nvarchar(20)
|
||||||
|
SET @columnCompanyName = 'CompanyName'
|
||||||
|
|
||||||
|
DECLARE @columnFullName nvarchar(20)
|
||||||
|
SET @columnFullName = 'FullName'
|
||||||
|
|
||||||
|
DECLARE @curUsers cursor
|
||||||
|
DECLARE @curSpace cursor
|
||||||
|
|
||||||
|
DECLARE @sqlSpace nvarchar(2000)
|
||||||
|
DECLARE @sqlUsers nvarchar(2000)
|
||||||
|
DECLARE @sqlReturn nvarchar(2000)
|
||||||
|
|
||||||
|
IF @FilterColumn = '' AND @FilterValue <> ''
|
||||||
|
SET @FilterColumn = 'TextSearch'
|
||||||
|
|
||||||
|
SET @sqlUsers = '
|
||||||
|
DECLARE @HasUserRights bit
|
||||||
|
SET @HasUserRights = dbo.CheckActorUserRights(@ActorID, @UserID)
|
||||||
|
DECLARE @Users TABLE
|
||||||
|
(
|
||||||
|
ItemPosition int IDENTITY(0,1),
|
||||||
|
UserID int
|
||||||
|
)
|
||||||
|
INSERT INTO @Users (UserID)
|
||||||
|
SELECT
|
||||||
|
U.UserID
|
||||||
|
FROM UsersDetailed AS U
|
||||||
|
WHERE
|
||||||
|
U.UserID <> @UserID AND U.IsPeer = 0 AND
|
||||||
|
(
|
||||||
|
(@Recursive = 0 AND OwnerID = @UserID) OR
|
||||||
|
(@Recursive = 1 AND dbo.CheckUserParent(@UserID, U.UserID) = 1)
|
||||||
|
)
|
||||||
|
AND ((@StatusID = 0) OR (@StatusID > 0 AND U.StatusID = @StatusID))
|
||||||
|
AND ((@RoleID = 0) OR (@RoleID > 0 AND U.RoleID = @RoleID))
|
||||||
|
AND @HasUserRights = 1
|
||||||
|
SET @curValue = cursor local for
|
||||||
|
SELECT
|
||||||
|
U.ItemID,
|
||||||
|
U.TextSearch,
|
||||||
|
U.ColumnType,
|
||||||
|
''Users'' as FullType,
|
||||||
|
0 as PackageID
|
||||||
|
FROM @Users AS TU
|
||||||
|
INNER JOIN
|
||||||
|
(
|
||||||
|
SELECT ItemID, TextSearch, ColumnType
|
||||||
|
FROM(
|
||||||
|
SELECT U0.UserID as ItemID, U0.Username as TextSearch, @columnUsername as ColumnType
|
||||||
|
FROM dbo.Users AS U0
|
||||||
|
UNION
|
||||||
|
SELECT U1.UserID as ItemID, U1.Email as TextSearch, @columnEmail as ColumnType
|
||||||
|
FROM dbo.Users AS U1
|
||||||
|
UNION
|
||||||
|
SELECT U2.UserID as ItemID, U2.CompanyName as TextSearch, @columnCompanyName as ColumnType
|
||||||
|
FROM dbo.Users AS U2
|
||||||
|
UNION
|
||||||
|
SELECT U3.UserID as ItemID, U3.FirstName + '' '' + U3.LastName as TextSearch, @columnFullName as ColumnType
|
||||||
|
FROM dbo.Users AS U3) as U
|
||||||
|
WHERE TextSearch<>'' '' OR ISNULL(TextSearch, 0) > 0
|
||||||
|
)
|
||||||
|
AS U ON TU.UserID = U.ItemID'
|
||||||
|
|
||||||
|
SET @sqlUsers = @sqlUsers + ' open @curValue'
|
||||||
|
|
||||||
|
exec sp_executesql @sqlUsers, N'@UserID int, @FilterValue nvarchar(50), @ActorID int, @Recursive bit, @StatusID int, @RoleID int, @columnUsername nvarchar(20), @columnEmail nvarchar(20), @columnCompanyName nvarchar(20), @columnFullName nvarchar(20), @curValue cursor output',
|
||||||
|
@UserID, @FilterValue, @ActorID, @Recursive, @StatusID, @RoleID, @columnUsername, @columnEmail, @columnCompanyName, @columnFullName, @curValue=@curUsers output
|
||||||
|
|
||||||
|
SET @sqlSpace = '
|
||||||
|
DECLARE @ItemsService TABLE
|
||||||
|
(
|
||||||
|
ItemID int
|
||||||
|
)
|
||||||
|
INSERT INTO @ItemsService (ItemID)
|
||||||
|
SELECT
|
||||||
|
SI.ItemID
|
||||||
|
FROM ServiceItems AS SI
|
||||||
|
INNER JOIN Packages AS P ON P.PackageID = SI.PackageID
|
||||||
|
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
|
||||||
|
WHERE
|
||||||
|
dbo.CheckUserParent(@UserID, P.UserID) = 1
|
||||||
|
DECLARE @ItemsDomain TABLE
|
||||||
|
(
|
||||||
|
ItemID int
|
||||||
|
)
|
||||||
|
INSERT INTO @ItemsDomain (ItemID)
|
||||||
|
SELECT
|
||||||
|
D.DomainID
|
||||||
|
FROM Domains AS D
|
||||||
|
INNER JOIN Packages AS P ON P.PackageID = D.PackageID
|
||||||
|
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
|
||||||
|
WHERE
|
||||||
|
dbo.CheckUserParent(@UserID, P.UserID) = 1
|
||||||
|
|
||||||
|
SET @curValue = cursor local for
|
||||||
|
SELECT
|
||||||
|
|
||||||
|
SI.ItemID as ItemID,
|
||||||
|
SI.ItemName as TextSearch,
|
||||||
|
STYPE.DisplayName as ColumnType,
|
||||||
|
SI.ItemName as FullType,
|
||||||
|
SI.PackageID as PackageID
|
||||||
|
FROM @ItemsService AS I
|
||||||
|
INNER JOIN ServiceItems AS SI ON I.ItemID = SI.ItemID
|
||||||
|
INNER JOIN ServiceItemTypes AS STYPE ON SI.ItemTypeID = STYPE.ItemTypeID
|
||||||
|
WHERE STYPE.Searchable = 1
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
D.DomainID AS ItemID,
|
||||||
|
D.DomainName as TextSearch,
|
||||||
|
''Domain'' as ColumnType,
|
||||||
|
''Domain'' as FullType,
|
||||||
|
D.PackageID as PackageID
|
||||||
|
FROM @ItemsDomain AS I
|
||||||
|
INNER JOIN Domains AS D ON I.ItemID = D.DomainID
|
||||||
|
WHERE D.IsDomainPointer=0'
|
||||||
|
|
||||||
|
SET @sqlSpace = @sqlSpace + ' open @curValue'
|
||||||
|
|
||||||
|
exec sp_executesql @sqlSpace, N'@UserID int, @FilterValue nvarchar(50), @ActorID int, @curValue cursor output',
|
||||||
|
@UserID, @FilterValue, @ActorID, @curValue=@curSpace output
|
||||||
|
|
||||||
|
SET @sqlReturn = '
|
||||||
|
DECLARE @ItemID int
|
||||||
|
DECLARE @TextSearch nvarchar(500)
|
||||||
|
DECLARE @ColumnType nvarchar(50)
|
||||||
|
DECLARE @FullType nvarchar(50)
|
||||||
|
DECLARE @PackageID int
|
||||||
|
DECLARE @EndRow int
|
||||||
|
SET @EndRow = @StartRow + @MaximumRows
|
||||||
|
DECLARE @ItemsAll TABLE
|
||||||
|
(
|
||||||
|
ItemPosition int IDENTITY(1,1),
|
||||||
|
ItemID int,
|
||||||
|
TextSearch nvarchar(500),
|
||||||
|
ColumnType nvarchar(50),
|
||||||
|
FullType nvarchar(50),
|
||||||
|
PackageID int
|
||||||
|
)
|
||||||
|
|
||||||
|
FETCH NEXT FROM @curSpaceValue INTO @ItemID, @TextSearch, @ColumnType, @FullType, @PackageID
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO @ItemsAll(ItemID, TextSearch, ColumnType, FullType, PackageID)
|
||||||
|
VALUES(@ItemID, @TextSearch, @ColumnType, @FullType, @PackageID)
|
||||||
|
FETCH NEXT FROM @curSpaceValue INTO @ItemID, @TextSearch, @ColumnType, @FullType, @PackageID
|
||||||
|
END
|
||||||
|
|
||||||
|
FETCH NEXT FROM @curUsersValue INTO @ItemID, @TextSearch, @ColumnType, @FullType, @PackageID
|
||||||
|
WHILE @@FETCH_STATUS = 0
|
||||||
|
BEGIN
|
||||||
|
INSERT INTO @ItemsAll(ItemID, TextSearch, ColumnType, FullType, PackageID)
|
||||||
|
VALUES(@ItemID, @TextSearch, @ColumnType, @FullType, @PackageID)
|
||||||
|
FETCH NEXT FROM @curUsersValue INTO @ItemID, @TextSearch, @ColumnType, @FullType, @PackageID
|
||||||
|
END
|
||||||
|
|
||||||
|
DECLARE @ItemsReturn TABLE
|
||||||
|
(
|
||||||
|
ItemPosition int IDENTITY(1,1),
|
||||||
|
ItemID int,
|
||||||
|
TextSearch nvarchar(500),
|
||||||
|
ColumnType nvarchar(50),
|
||||||
|
FullType nvarchar(50),
|
||||||
|
PackageID int
|
||||||
|
)
|
||||||
|
INSERT INTO @ItemsReturn(ItemID, TextSearch, ColumnType, FullType, PackageID)
|
||||||
|
SELECT ItemID, TextSearch, ColumnType, FullType, PackageID
|
||||||
|
FROM @ItemsAll AS IA'
|
||||||
|
|
||||||
|
IF @FilterValue <> ''
|
||||||
|
SET @sqlReturn = @sqlReturn + ' WHERE IA.' + @FilterColumn + ' LIKE @FilterValue '
|
||||||
|
|
||||||
|
IF @SortColumn <> '' AND @SortColumn IS NOT NULL
|
||||||
|
SET @sqlReturn = @sqlReturn + ' ORDER BY ' + @SortColumn + ' '
|
||||||
|
SET @sqlReturn = @sqlReturn + '
|
||||||
|
SELECT COUNT(ItemID) FROM @ItemsReturn;
|
||||||
|
SELECT DISTINCT(ColumnType) FROM @ItemsReturn;
|
||||||
|
SELECT ItemPosition, ItemID, TextSearch, ColumnType, FullType, PackageID
|
||||||
|
FROM @ItemsReturn AS IR WHERE (1 = 1)
|
||||||
|
'
|
||||||
|
|
||||||
|
IF @MaximumRows > 0
|
||||||
|
SET @sqlReturn = @sqlReturn + ' AND IR.ItemPosition BETWEEN @StartRow AND @EndRow';
|
||||||
|
|
||||||
|
IF @ColType <> ''
|
||||||
|
SET @sqlReturn = @sqlReturn + ' AND ColumnType in ( ' + @ColType + ' ) ';
|
||||||
|
|
||||||
|
exec sp_executesql @sqlReturn, N'@StartRow int, @MaximumRows int, @FilterValue nvarchar(50), @curSpaceValue cursor, @curUsersValue cursor',
|
||||||
|
@StartRow, @MaximumRows, @FilterValue, @curSpace, @curUsers
|
||||||
|
|
||||||
|
CLOSE @curSpace
|
||||||
|
DEALLOCATE @curSpace
|
||||||
|
CLOSE @curUsers
|
||||||
|
DEALLOCATE @curUsers
|
||||||
|
RETURN
|
||||||
|
|
45307
WebsitePanel/Database/wix_install_db.sql
Normal file
45307
WebsitePanel/Database/wix_install_db.sql
Normal file
File diff suppressed because it is too large
Load diff
10676
WebsitePanel/Database/wix_update_db.sql
Normal file
10676
WebsitePanel/Database/wix_update_db.sql
Normal file
File diff suppressed because it is too large
Load diff
|
@ -3,7 +3,7 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||||
<ProductVersion>3.7</ProductVersion>
|
<ProductVersion>3.9</ProductVersion>
|
||||||
<ProjectGuid>3f3f1c39-6719-4862-bb45-4c227f13b821</ProjectGuid>
|
<ProjectGuid>3f3f1c39-6719-4862-bb45-4c227f13b821</ProjectGuid>
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
<OutputName>WebsitePanel.LocalizationToolkit</OutputName>
|
<OutputName>WebsitePanel.LocalizationToolkit</OutputName>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:4.0.30319.34014
|
// Runtime Version:4.0.30319.34209
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
'------------------------------------------------------------------------------
|
'------------------------------------------------------------------------------
|
||||||
' <auto-generated>
|
' <auto-generated>
|
||||||
' This code was generated by a tool.
|
' This code was generated by a tool.
|
||||||
' Runtime Version:4.0.30319.34014
|
' Runtime Version:4.0.30319.34209
|
||||||
'
|
'
|
||||||
' Changes to this file may cause incorrect behavior and will be lost if
|
' Changes to this file may cause incorrect behavior and will be lost if
|
||||||
' the code is regenerated.
|
' the code is regenerated.
|
||||||
|
|
|
@ -907,6 +907,27 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
return ((System.Data.DataSet)(results[0]));
|
return ((System.Data.DataSet)(results[0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
/// //TODO START
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/enterpriseserver/GetSearchObject", RequestNamespace = "http://smbsaas/websitepanel/enterpriseserver", ResponseNamespace = "http://smbsaas/websitepanel/enterpriseserver", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public System.Data.DataSet GetSearchObject(int userId, string filterColumn, string filterValue, int statusId, int roleId, string sortColumn, int startRow, int maximumRows, string colType)
|
||||||
|
{
|
||||||
|
object[] results = this.Invoke("GetSearchObject", new object[] {
|
||||||
|
userId,
|
||||||
|
filterColumn,
|
||||||
|
filterValue,
|
||||||
|
statusId,
|
||||||
|
roleId,
|
||||||
|
sortColumn,
|
||||||
|
startRow,
|
||||||
|
maximumRows,
|
||||||
|
colType
|
||||||
|
});
|
||||||
|
return ((System.Data.DataSet)(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO END
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public void SearchServiceItemsPagedAsync(int userId, int itemTypeId, string filterValue, string sortColumn, int startRow, int maximumRows) {
|
public void SearchServiceItemsPagedAsync(int userId, int itemTypeId, string filterValue, string sortColumn, int startRow, int maximumRows) {
|
||||||
this.SearchServiceItemsPagedAsync(userId, itemTypeId, filterValue, sortColumn, startRow, maximumRows, null);
|
this.SearchServiceItemsPagedAsync(userId, itemTypeId, filterValue, sortColumn, startRow, maximumRows, null);
|
||||||
|
|
|
@ -139,6 +139,27 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@recursive", recursive));
|
new SqlParameter("@recursive", recursive));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO START
|
||||||
|
public static DataSet GetSearchObject(int actorId, int userId, string filterColumn, string filterValue,
|
||||||
|
int statusId, int roleId, string sortColumn, int startRow, int maximumRows, string colType, bool recursive)
|
||||||
|
{
|
||||||
|
return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure,
|
||||||
|
ObjectQualifier + "GetSearchObject",
|
||||||
|
new SqlParameter("@actorId", actorId),
|
||||||
|
new SqlParameter("@UserID", userId),
|
||||||
|
new SqlParameter("@FilterColumn", VerifyColumnName(filterColumn)),
|
||||||
|
new SqlParameter("@FilterValue", VerifyColumnValue(filterValue)),
|
||||||
|
new SqlParameter("@statusId", statusId),
|
||||||
|
new SqlParameter("@roleId", roleId),
|
||||||
|
new SqlParameter("@SortColumn", VerifyColumnName(sortColumn)),
|
||||||
|
new SqlParameter("@startRow", startRow),
|
||||||
|
new SqlParameter("@maximumRows", maximumRows),
|
||||||
|
new SqlParameter("@recursive", recursive),
|
||||||
|
new SqlParameter("@ColType", colType));
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO END
|
||||||
|
|
||||||
public static DataSet GetUsersSummary(int actorId, int userId)
|
public static DataSet GetUsersSummary(int actorId, int userId)
|
||||||
{
|
{
|
||||||
return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure,
|
return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure,
|
||||||
|
|
|
@ -317,6 +317,15 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
sortColumn, startRow, maximumRows);
|
sortColumn, startRow, maximumRows);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO START
|
||||||
|
public static DataSet GetSearchObject(int userId, string filterColumn, string filterValue,
|
||||||
|
int statusId, int roleId, string sortColumn, int startRow, int maximumRows, string colType)
|
||||||
|
{
|
||||||
|
return DataProvider.GetSearchObject(SecurityContext.User.UserId, userId,
|
||||||
|
filterColumn, filterValue, statusId, roleId, sortColumn, startRow, maximumRows, colType, false);
|
||||||
|
}
|
||||||
|
//TODO END
|
||||||
|
|
||||||
public static DataSet GetPackageQuotas(int packageId)
|
public static DataSet GetPackageQuotas(int packageId)
|
||||||
{
|
{
|
||||||
return DataProvider.GetPackageQuotas(SecurityContext.User.UserId, packageId);
|
return DataProvider.GetPackageQuotas(SecurityContext.User.UserId, packageId);
|
||||||
|
|
|
@ -134,6 +134,16 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
sortColumn, startRow, maximumRows);
|
sortColumn, startRow, maximumRows);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO START
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public DataSet GetSearchObject(int userId, string filterColumn, string filterValue,
|
||||||
|
int statusId, int roleId, string sortColumn, int startRow, int maximumRows, string colType)
|
||||||
|
{
|
||||||
|
return PackageController.GetSearchObject(userId, filterColumn, filterValue, statusId, roleId, sortColumn, startRow, maximumRows, colType);
|
||||||
|
}
|
||||||
|
//TODO END
|
||||||
|
|
||||||
[WebMethod]
|
[WebMethod]
|
||||||
public DataSet GetPackagesPaged(int userId, string filterColumn, string filterValue,
|
public DataSet GetPackagesPaged(int userId, string filterColumn, string filterValue,
|
||||||
string sortColumn, int startRow, int maximumRows)
|
string sortColumn, int startRow, int maximumRows)
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<!-- Custom configuration sections -->
|
<!-- Custom configuration sections -->
|
||||||
<configSections>
|
<configSections>
|
||||||
|
@ -7,34 +7,34 @@
|
||||||
<section name="cachingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerSettings,Microsoft.Practices.EnterpriseLibrary.Caching"/>
|
<section name="cachingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Caching.Configuration.CacheManagerSettings,Microsoft.Practices.EnterpriseLibrary.Caching"/>
|
||||||
</configSections>
|
</configSections>
|
||||||
<appSettings>
|
<appSettings>
|
||||||
<add key="WebsitePanel.HyperV.UseDiskPartClearReadOnlyFlag" value="false" />
|
<add key="WebsitePanel.HyperV.UseDiskPartClearReadOnlyFlag" value="false"/>
|
||||||
<add key="WebsitePanel.Exchange.ClearQueryBaseDN" value="false" />
|
<add key="WebsitePanel.Exchange.ClearQueryBaseDN" value="false"/>
|
||||||
<add key="WebsitePanel.Exchange.enableSP2abp" value="false" />
|
<add key="WebsitePanel.Exchange.enableSP2abp" value="false"/>
|
||||||
<add key="SCVMMServerName" value="" />
|
<add key="SCVMMServerName" value=""/>
|
||||||
<add key="SCVMMServerPort" value="" />
|
<add key="SCVMMServerPort" value=""/>
|
||||||
</appSettings>
|
</appSettings>
|
||||||
<system.diagnostics>
|
<system.diagnostics>
|
||||||
<switches>
|
<switches>
|
||||||
<add name="Log" value="2" />
|
<add name="Log" value="2"/>
|
||||||
<!-- 0 - Off, 1 - Error, 2 - Warning, 3 - Info, 4 - Verbose -->
|
<!-- 0 - Off, 1 - Error, 2 - Warning, 3 - Info, 4 - Verbose -->
|
||||||
</switches>
|
</switches>
|
||||||
<trace autoflush="true">
|
<trace autoflush="true">
|
||||||
<listeners>
|
<listeners>
|
||||||
<add name="DefaultListener" type="WebsitePanel.Server.Utils.EventLogTraceListener, WebsitePanel.Server.Utils" initializeData="WebsitePanel" />
|
<add name="DefaultListener" type="WebsitePanel.Server.Utils.EventLogTraceListener, WebsitePanel.Server.Utils" initializeData="WebsitePanel"/>
|
||||||
<!-- Writes log to the file
|
<!-- Writes log to the file
|
||||||
<add name="DefaultListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="WebsitePanel.Server.log" />
|
<add name="DefaultListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="WebsitePanel.Server.log" />
|
||||||
-->
|
-->
|
||||||
<remove name="Default" />
|
<remove name="Default"/>
|
||||||
</listeners>
|
</listeners>
|
||||||
</trace>
|
</trace>
|
||||||
</system.diagnostics>
|
</system.diagnostics>
|
||||||
<!-- Caching Configuration -->
|
<!-- Caching Configuration -->
|
||||||
<cachingConfiguration defaultCacheManager="Default Cache Manager">
|
<cachingConfiguration defaultCacheManager="Default Cache Manager">
|
||||||
<backingStores>
|
<backingStores>
|
||||||
<add name="inMemory" type="Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.NullBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching" />
|
<add name="inMemory" type="Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.NullBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching"/>
|
||||||
</backingStores>
|
</backingStores>
|
||||||
<cacheManagers>
|
<cacheManagers>
|
||||||
<add name="Default Cache Manager" expirationPollFrequencyInSeconds="43200" maximumElementsInCacheBeforeScavenging="1000" numberToRemoveWhenScavenging="10" backingStoreName="inMemory" />
|
<add name="Default Cache Manager" expirationPollFrequencyInSeconds="43200" maximumElementsInCacheBeforeScavenging="1000" numberToRemoveWhenScavenging="10" backingStoreName="inMemory"/>
|
||||||
</cacheManagers>
|
</cacheManagers>
|
||||||
</cachingConfiguration>
|
</cachingConfiguration>
|
||||||
<!-- WebsitePanel Configuration -->
|
<!-- WebsitePanel Configuration -->
|
||||||
|
@ -42,127 +42,72 @@
|
||||||
<!-- Security settings -->
|
<!-- Security settings -->
|
||||||
<security>
|
<security>
|
||||||
<!-- Perform security check -->
|
<!-- Perform security check -->
|
||||||
<enabled value="true" />
|
<enabled value="true"/>
|
||||||
<!-- Server password -->
|
<!-- Server password -->
|
||||||
<password value="+uxnDOdf55yuH6iZYXgYAxsfIBw=" />
|
<password value="+uxnDOdf55yuH6iZYXgYAxsfIBw="/>
|
||||||
</security>
|
</security>
|
||||||
</websitepanel.server>
|
</websitepanel.server>
|
||||||
<system.web>
|
<system.web>
|
||||||
<!-- Disable any authentication -->
|
<!-- Disable any authentication -->
|
||||||
<authentication mode="None" />
|
<authentication mode="None"/>
|
||||||
<!-- Correct HTTP runtime settings -->
|
<!-- Correct HTTP runtime settings -->
|
||||||
<httpRuntime executionTimeout="3600" maxRequestLength="16384" />
|
<httpRuntime executionTimeout="3600" maxRequestLength="16384"/>
|
||||||
<!-- Set globalization settings -->
|
<!-- Set globalization settings -->
|
||||||
<globalization culture="en-US" uiCulture="en" requestEncoding="UTF-8" responseEncoding="UTF-8" fileEncoding="UTF-8" />
|
<globalization culture="en-US" uiCulture="en" requestEncoding="UTF-8" responseEncoding="UTF-8" fileEncoding="UTF-8"/>
|
||||||
<!-- Web Services settings -->
|
<!-- Web Services settings -->
|
||||||
<webServices>
|
<webServices>
|
||||||
<protocols>
|
<protocols>
|
||||||
<remove name="HttpPost" />
|
<remove name="HttpPost"/>
|
||||||
<remove name="HttpPostLocalhost" />
|
<remove name="HttpPostLocalhost"/>
|
||||||
<remove name="HttpGet" />
|
<remove name="HttpGet"/>
|
||||||
</protocols>
|
</protocols>
|
||||||
<soapServerProtocolFactory type="Microsoft.Web.Services3.WseProtocolFactory, Microsoft.Web.Services3" />
|
<soapServerProtocolFactory type="Microsoft.Web.Services3.WseProtocolFactory, Microsoft.Web.Services3"/>
|
||||||
</webServices>
|
</webServices>
|
||||||
<compilation debug="true">
|
<compilation debug="true" targetFramework="4.0"/>
|
||||||
<assemblies>
|
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
|
||||||
<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
|
||||||
<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
|
||||||
<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
|
||||||
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
|
|
||||||
</assemblies>
|
|
||||||
</compilation>
|
|
||||||
<pages>
|
|
||||||
<controls>
|
|
||||||
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
|
||||||
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
|
||||||
</controls>
|
|
||||||
</pages>
|
|
||||||
<httpHandlers>
|
|
||||||
<remove verb="*" path="*.asmx" />
|
|
||||||
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
|
||||||
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
|
||||||
<add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
|
||||||
</httpHandlers>
|
|
||||||
<httpModules>
|
|
||||||
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
|
||||||
</httpModules>
|
|
||||||
</system.web>
|
</system.web>
|
||||||
<!-- WSE 3.0 settings -->
|
<!-- WSE 3.0 settings -->
|
||||||
<microsoft.web.services3>
|
<microsoft.web.services3>
|
||||||
<diagnostics>
|
<diagnostics>
|
||||||
<trace enabled="false" input="InputTrace.webinfo" output="OutputTrace.webinfo" />
|
<trace enabled="false" input="InputTrace.webinfo" output="OutputTrace.webinfo"/>
|
||||||
</diagnostics>
|
</diagnostics>
|
||||||
<messaging>
|
<messaging>
|
||||||
<maxMessageLength value="-1" />
|
<maxMessageLength value="-1"/>
|
||||||
<mtom serverMode="optional" clientMode="On" />
|
<mtom serverMode="optional" clientMode="On"/>
|
||||||
</messaging>
|
</messaging>
|
||||||
<security>
|
<security>
|
||||||
<securityTokenManager>
|
<securityTokenManager>
|
||||||
<add type="WebsitePanel.Server.ServerUsernameTokenManager, WebsitePanel.Server" namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" localName="UsernameToken" />
|
<add type="WebsitePanel.Server.ServerUsernameTokenManager, WebsitePanel.Server" namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" localName="UsernameToken"/>
|
||||||
</securityTokenManager>
|
</securityTokenManager>
|
||||||
<timeToleranceInSeconds value="86400" />
|
<timeToleranceInSeconds value="86400"/>
|
||||||
</security>
|
</security>
|
||||||
<policy fileName="WsePolicyCache.Config" />
|
<policy fileName="WsePolicyCache.Config"/>
|
||||||
</microsoft.web.services3>
|
</microsoft.web.services3>
|
||||||
<system.serviceModel>
|
<system.serviceModel>
|
||||||
<bindings>
|
<bindings>
|
||||||
<wsHttpBinding>
|
<wsHttpBinding>
|
||||||
<binding name="WSHttpBinding_IVirtualMachineManagementService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="10485760" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
|
<binding name="WSHttpBinding_IVirtualMachineManagementService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="10485760" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
|
||||||
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
|
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
|
||||||
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
|
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/>
|
||||||
<security mode="Message">
|
<security mode="Message">
|
||||||
<transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
|
<transport clientCredentialType="Windows" proxyCredentialType="None" realm=""/>
|
||||||
<message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" />
|
<message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default"/>
|
||||||
</security>
|
</security>
|
||||||
</binding>
|
</binding>
|
||||||
<binding name="WSHttpBinding_IMonitoringService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="10485760" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
|
<binding name="WSHttpBinding_IMonitoringService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="10485760" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
|
||||||
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
|
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
|
||||||
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
|
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/>
|
||||||
<security mode="Message">
|
<security mode="Message">
|
||||||
<transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
|
<transport clientCredentialType="Windows" proxyCredentialType="None" realm=""/>
|
||||||
<message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" />
|
<message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default"/>
|
||||||
</security>
|
</security>
|
||||||
</binding>
|
</binding>
|
||||||
</wsHttpBinding>
|
</wsHttpBinding>
|
||||||
</bindings>
|
</bindings>
|
||||||
</system.serviceModel>
|
</system.serviceModel>
|
||||||
<system.codedom>
|
|
||||||
<compilers>
|
|
||||||
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
|
|
||||||
<providerOption name="CompilerVersion" value="v3.5" />
|
|
||||||
<providerOption name="WarnAsError" value="false" />
|
|
||||||
</compiler>
|
|
||||||
</compilers>
|
|
||||||
</system.codedom>
|
|
||||||
<system.webServer>
|
|
||||||
<validation validateIntegratedModeConfiguration="false" />
|
|
||||||
<modules>
|
|
||||||
<remove name="ScriptModule" />
|
|
||||||
<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
|
||||||
</modules>
|
|
||||||
<handlers>
|
|
||||||
<remove name="WebServiceHandlerFactory-Integrated" />
|
|
||||||
<remove name="ScriptHandlerFactory" />
|
|
||||||
<remove name="ScriptHandlerFactoryAppServices" />
|
|
||||||
<remove name="ScriptResource" />
|
|
||||||
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
|
||||||
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
|
||||||
<add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
|
||||||
</handlers>
|
|
||||||
</system.webServer>
|
|
||||||
<runtime>
|
<runtime>
|
||||||
<assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
|
|
||||||
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" />
|
|
||||||
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
<probing privatePath="bin/Crm2011;bin/Crm2013;bin/Exchange2013;bin/Sharepoint2013;bin/Lync2013;bin/Lync2013HP;bin/Dns2012;bin/IceWarp;bin/IIs80;bin/HyperV2012R2;bin/Crm2015" />
|
<probing privatePath="bin/Crm2011;bin/Crm2013;bin/Exchange2013;bin/Sharepoint2013;bin/Lync2013;bin/Lync2013HP;bin/Dns2012;bin/IceWarp;bin/IIs80;bin/HyperV2012R2;bin/Crm2015"/>
|
||||||
</assemblyBinding>
|
</assemblyBinding>
|
||||||
</runtime>
|
</runtime>
|
||||||
</configuration>
|
</configuration>
|
|
@ -17,7 +17,7 @@
|
||||||
<OldToolsVersion>4.0</OldToolsVersion>
|
<OldToolsVersion>4.0</OldToolsVersion>
|
||||||
<UpgradeBackupLocation>
|
<UpgradeBackupLocation>
|
||||||
</UpgradeBackupLocation>
|
</UpgradeBackupLocation>
|
||||||
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
|
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
<UseIISExpress>false</UseIISExpress>
|
<UseIISExpress>false</UseIISExpress>
|
||||||
<IISExpressSSLPort />
|
<IISExpressSSLPort />
|
||||||
|
@ -80,6 +80,7 @@
|
||||||
<Reference Include="System.ServiceModel" />
|
<Reference Include="System.ServiceModel" />
|
||||||
<Reference Include="System.ServiceProcess" />
|
<Reference Include="System.ServiceProcess" />
|
||||||
<Reference Include="System.Web" />
|
<Reference Include="System.Web" />
|
||||||
|
<Reference Include="System.Web.ApplicationServices" />
|
||||||
<Reference Include="System.Web.DynamicData" />
|
<Reference Include="System.Web.DynamicData" />
|
||||||
<Reference Include="System.Web.Entity" />
|
<Reference Include="System.Web.Entity" />
|
||||||
<Reference Include="System.Web.Extensions" />
|
<Reference Include="System.Web.Extensions" />
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
<%@ WebHandler Language="C#" Class="WebsitePanel.WebPortal.WebsitePanelAjaxHandler,WebsitePanel.Portal.Modules" %>
|
|
@ -29,6 +29,9 @@
|
||||||
<NestedSpacesPage>NestedSpaces</NestedSpacesPage>
|
<NestedSpacesPage>NestedSpaces</NestedSpacesPage>
|
||||||
<UsersSearchPage>SearchUsers</UsersSearchPage>
|
<UsersSearchPage>SearchUsers</UsersSearchPage>
|
||||||
<SpacesSearchPage>SearchSpaces</SpacesSearchPage>
|
<SpacesSearchPage>SearchSpaces</SpacesSearchPage>
|
||||||
|
<!--TODO START-->
|
||||||
|
<SearchObjectPage>SearchObject</SearchObjectPage>
|
||||||
|
<!--TODO END-->
|
||||||
<LoggedUserAccountPage>LoggedUserDetails</LoggedUserAccountPage>
|
<LoggedUserAccountPage>LoggedUserDetails</LoggedUserAccountPage>
|
||||||
<!-- Skins and Containers -->
|
<!-- Skins and Containers -->
|
||||||
<PortalSkin>Browse2.ascx</PortalSkin>
|
<PortalSkin>Browse2.ascx</PortalSkin>
|
||||||
|
|
|
@ -25,6 +25,14 @@
|
||||||
</Controls>
|
</Controls>
|
||||||
</ModuleDefinition>
|
</ModuleDefinition>
|
||||||
|
|
||||||
|
<!--TODO START-->
|
||||||
|
<ModuleDefinition id="SearchObject">
|
||||||
|
<Controls>
|
||||||
|
<Control key="" src="WebsitePanel/SearchObject.ascx" title="SearchObject" type="View" />
|
||||||
|
</Controls>
|
||||||
|
</ModuleDefinition>
|
||||||
|
<!--TODO END-->
|
||||||
|
|
||||||
<!-- User Account -->
|
<!-- User Account -->
|
||||||
<ModuleDefinition id="LoggedUserDetails">
|
<ModuleDefinition id="LoggedUserDetails">
|
||||||
<Controls>
|
<Controls>
|
||||||
|
|
|
@ -32,6 +32,14 @@
|
||||||
</Content>
|
</Content>
|
||||||
</Page>
|
</Page>
|
||||||
|
|
||||||
|
<!--TODO START-->
|
||||||
|
<Page name="SearchObject" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" hidden="True" skin="Browse1.ascx">
|
||||||
|
<Content id="ContentPane">
|
||||||
|
<Module moduleDefinitionID="SearchObject" title="SearchObject" icon="sphere_zoom_48.png" container="Edit.ascx" />
|
||||||
|
</Content>
|
||||||
|
</Page>
|
||||||
|
<!--TODO END-->
|
||||||
|
|
||||||
<Page name="Home" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" skin="Browse3.ascx" align="right">
|
<Page name="Home" roles="Administrator,Reseller,PlatformCSR,ResellerCSR,PlatformHelpdesk,ResellerHelpdesk,User" skin="Browse3.ascx" align="right">
|
||||||
<Content id="LeftPane">
|
<Content id="LeftPane">
|
||||||
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
|
<Module moduleDefinitionID="UserAccountMenu" title="UserMenu" container="Clear.ascx">
|
||||||
|
|
|
@ -711,6 +711,9 @@
|
||||||
<data name="ModuleTitle.SearchSpaces" xml:space="preserve">
|
<data name="ModuleTitle.SearchSpaces" xml:space="preserve">
|
||||||
<value>Search Hosting Spaces</value>
|
<value>Search Hosting Spaces</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ModuleTitle.SearchObject" xml:space="preserve">
|
||||||
|
<value>Search Objects</value>
|
||||||
|
</data>
|
||||||
<data name="ModuleTitle.SearchUsers" xml:space="preserve">
|
<data name="ModuleTitle.SearchUsers" xml:space="preserve">
|
||||||
<value>Search User Accounts</value>
|
<value>Search User Accounts</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -141,6 +141,12 @@
|
||||||
<data name="PageTitle.SearchSpaces" xml:space="preserve">
|
<data name="PageTitle.SearchSpaces" xml:space="preserve">
|
||||||
<value>{user} - Search Hosting Spaces</value>
|
<value>{user} - Search Hosting Spaces</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="PageName.SearchObject" xml:space="preserve">
|
||||||
|
<value>Search Objects</value>
|
||||||
|
</data>
|
||||||
|
<data name="PageTitle.SearchObject" xml:space="preserve">
|
||||||
|
<value>{user} - Search Objects</value>
|
||||||
|
</data>
|
||||||
<data name="PageName.Home" xml:space="preserve">
|
<data name="PageName.Home" xml:space="preserve">
|
||||||
<value>Account Home</value>
|
<value>Account Home</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -304,3 +304,75 @@ p.warningText {font-size:14px; color:Red; text-align:center;}
|
||||||
.LinkText {color:#428bca;}
|
.LinkText {color:#428bca;}
|
||||||
.WrapText { white-space: normal;}
|
.WrapText { white-space: normal;}
|
||||||
.chosen-container { margin-top: -30px; }
|
.chosen-container { margin-top: -30px; }
|
||||||
|
|
||||||
|
.ui-autocomplete {z-index: 200 !important; }
|
||||||
|
|
||||||
|
.ui-button {
|
||||||
|
padding: 5px 5px;
|
||||||
|
margin: 3px;
|
||||||
|
background: #20A0D0;
|
||||||
|
color: white;
|
||||||
|
border: 1px solid #2080A0;
|
||||||
|
float: left;
|
||||||
|
cursor: pointer;
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-button:hover {
|
||||||
|
background: #20B0E0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-popupdialog {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
background-color: #FFF;
|
||||||
|
border: 1px solid #C0C0C0;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.15);
|
||||||
|
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
|
||||||
|
background-clip: padding-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-popupdialog .title {
|
||||||
|
padding: 5px;
|
||||||
|
background: #F8F8F8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-popupdialog .content {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-popupdialog .actions {
|
||||||
|
padding: 5px;
|
||||||
|
border-top: 1px solid #C0C0C0;
|
||||||
|
background: #F0F0F0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-menu {
|
||||||
|
background-color: #FFF;
|
||||||
|
border: 1px solid #C0C0C0;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.15);
|
||||||
|
box-shadow: 0px 6px 12px rgba(0, 0, 0, 0.176);
|
||||||
|
background-clip: padding-box;
|
||||||
|
}
|
||||||
|
.ui-menu-item {
|
||||||
|
}
|
||||||
|
.ui-widget-content {
|
||||||
|
background: #FFF;
|
||||||
|
}
|
||||||
|
.ui-corner-all {
|
||||||
|
border-radius: 0px;
|
||||||
|
-moz-border-radius: 0px;
|
||||||
|
-webkit-border-radius: 0px;
|
||||||
|
}
|
||||||
|
.ui-menu-item .ui-state-hover
|
||||||
|
{
|
||||||
|
background: #f0f0f0;
|
||||||
|
border-radius: 0px;
|
||||||
|
-moz-border-radius: 0px;
|
||||||
|
-webkit-border-radius: 0px;
|
||||||
|
border-color: #f0f0f0;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
.ui-menu-item:hover {
|
||||||
|
background-color: #f0f0f0;
|
||||||
|
}
|
|
@ -842,6 +842,13 @@ namespace WebsitePanel.Portal
|
||||||
return PortalConfiguration.SiteSettings["SpacesSearchPage"];
|
return PortalConfiguration.SiteSettings["SpacesSearchPage"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO START
|
||||||
|
public static string GetObjectSearchPageId()
|
||||||
|
{
|
||||||
|
return PortalConfiguration.SiteSettings["SearchObjectPage"];
|
||||||
|
}
|
||||||
|
//TODO END
|
||||||
|
|
||||||
public static string GetNestedSpacesPageId()
|
public static string GetNestedSpacesPageId()
|
||||||
{
|
{
|
||||||
return PortalConfiguration.SiteSettings["NestedSpacesPage"];
|
return PortalConfiguration.SiteSettings["NestedSpacesPage"];
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 1.3
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">1.3</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1">this is my long string</data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
[base64 mime encoded serialized .NET Framework object]
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
[base64 mime encoded string representing a byte array form of the .NET Framework object]
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>1.3</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="gvType.Header" xml:space="preserve">
|
||||||
|
<value>Type</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvText.Header" xml:space="preserve">
|
||||||
|
<value>Search text</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvFullType.Header" xml:space="preserve">
|
||||||
|
<value>Full Type</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -0,0 +1,68 @@
|
||||||
|
using System;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Script.Serialization;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Data;
|
||||||
|
using WebsitePanel.Portal;
|
||||||
|
|
||||||
|
namespace WebsitePanel.WebPortal
|
||||||
|
{
|
||||||
|
public class WebsitePanelAjaxHandler : IHttpHandler
|
||||||
|
{
|
||||||
|
public bool IsReusable { get { return true; } }
|
||||||
|
|
||||||
|
public void ProcessRequest(HttpContext context)
|
||||||
|
{
|
||||||
|
String filterValue = context.Request.Params["term"];
|
||||||
|
String fullType = context.Request.Params["fullType"];
|
||||||
|
String columnType = context.Request.Params["columnType"];
|
||||||
|
|
||||||
|
if (fullType == "Spaces")
|
||||||
|
{
|
||||||
|
String strItemType = context.Request.Params["itemType"];
|
||||||
|
int itemType = Int32.Parse(strItemType);
|
||||||
|
DataSet dsObjectItems = ES.Services.Packages.SearchServiceItemsPaged(PanelSecurity.EffectiveUserId, itemType,
|
||||||
|
String.Format("%{0}%", filterValue),
|
||||||
|
"",0, 100);
|
||||||
|
DataTable dt = dsObjectItems.Tables[1];
|
||||||
|
List<Dictionary<string, string>> dataList = new List<Dictionary<string, string>>();
|
||||||
|
for (int i = 0; i < dt.Rows.Count; ++i)
|
||||||
|
{
|
||||||
|
DataRow row = dt.Rows[i];
|
||||||
|
Dictionary<string, string> obj = new Dictionary<string, string>();
|
||||||
|
obj["ColumnType"] = "PackageName";
|
||||||
|
obj["TextSearch"] = row["PackageName"].ToString();
|
||||||
|
obj["FullType"] = "Space";
|
||||||
|
dataList.Add(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
var jsonSerialiser = new JavaScriptSerializer();
|
||||||
|
var json = jsonSerialiser.Serialize(dataList);
|
||||||
|
context.Response.ContentType = "text/plain";
|
||||||
|
context.Response.Write(json);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
DataSet dsObjectItems = ES.Services.Packages.GetSearchObject(PanelSecurity.EffectiveUserId, null,
|
||||||
|
String.Format("%{0}%", filterValue),
|
||||||
|
0, 0, "", 0, 100, columnType);
|
||||||
|
DataTable dt = dsObjectItems.Tables[2];
|
||||||
|
List<Dictionary<string, string>> dataList = new List<Dictionary<string, string>>();
|
||||||
|
for (int i = 0; i < dt.Rows.Count; ++i)
|
||||||
|
{
|
||||||
|
DataRow row = dt.Rows[i];
|
||||||
|
Dictionary<string, string> obj = new Dictionary<string, string>();
|
||||||
|
obj["ColumnType"] = row["ColumnType"].ToString();
|
||||||
|
obj["TextSearch"] = row["TextSearch"].ToString();
|
||||||
|
obj["FullType"] = row["FullType"].ToString();
|
||||||
|
dataList.Add(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
var jsonSerialiser = new JavaScriptSerializer();
|
||||||
|
var json = jsonSerialiser.Serialize(dataList);
|
||||||
|
context.Response.ContentType = "text/plain";
|
||||||
|
context.Response.Write(json);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
|
@ -36,6 +36,7 @@ using System.Web.Caching;
|
||||||
|
|
||||||
using WebsitePanel.EnterpriseServer;
|
using WebsitePanel.EnterpriseServer;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace WebsitePanel.Portal
|
namespace WebsitePanel.Portal
|
||||||
{
|
{
|
||||||
|
@ -244,5 +245,33 @@ namespace WebsitePanel.Portal
|
||||||
return dsServiceItemsPaged.Tables[1];
|
return dsServiceItemsPaged.Tables[1];
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
//TODO START
|
||||||
|
#region Service Items Paged Search
|
||||||
|
DataSet dsObjectItemsPaged;
|
||||||
|
|
||||||
|
public int SearchObjectItemsPagedCount(string filterColumn, string filterValue, string colType)
|
||||||
|
{
|
||||||
|
return (int)dsObjectItemsPaged.Tables[0].Rows[0][0];
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable SearchObjectItemsPaged(int maximumRows, int startRowIndex, string sortColumn,
|
||||||
|
string filterColumn, string filterValue, string colType)
|
||||||
|
{
|
||||||
|
dsObjectItemsPaged = ES.Services.Packages.GetSearchObject(PanelSecurity.EffectiveUserId, filterColumn,
|
||||||
|
String.Format("%{0}%", filterValue),
|
||||||
|
0, 0, sortColumn, startRowIndex, maximumRows, colType);
|
||||||
|
return dsObjectItemsPaged.Tables[2];
|
||||||
|
}
|
||||||
|
|
||||||
|
public DataTable SearchObjectTypes(string filterColumn, string filterValue, string sortColumn)
|
||||||
|
{
|
||||||
|
dsObjectItemsPaged = ES.Services.Packages.GetSearchObject(PanelSecurity.EffectiveUserId, filterColumn,
|
||||||
|
String.Format("%{0}%", filterValue),
|
||||||
|
0, 0, sortColumn, 0, 0, "");
|
||||||
|
return dsObjectItemsPaged.Tables[1];
|
||||||
|
}
|
||||||
|
//TODO END
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,125 @@
|
||||||
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SearchObject.ascx.cs" Inherits="WebsitePanel.Portal.SearchObject" %>
|
||||||
|
<%@ Import Namespace="WebsitePanel.Portal" %>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var estop = function (e) {
|
||||||
|
if (!e) e = window.event;
|
||||||
|
e.cancelBubble = true;
|
||||||
|
if (e.stopPropagation) e.stopPropagation();
|
||||||
|
return e;
|
||||||
|
}
|
||||||
|
|
||||||
|
var CPopupDialog = function (el, e) {
|
||||||
|
if (typeof el == 'string')
|
||||||
|
el = document.getElementById(el);
|
||||||
|
e = estop(e);
|
||||||
|
|
||||||
|
var oldclick = document.body.onclick;
|
||||||
|
el.onclick = estop;
|
||||||
|
|
||||||
|
function close() {
|
||||||
|
el.style.display = "none";
|
||||||
|
document.body.onclick = oldclick;
|
||||||
|
}
|
||||||
|
|
||||||
|
function show(x, y) {
|
||||||
|
el.style.left = x ? x : e.clientX + document.documentElement.scrollLeft + "px";
|
||||||
|
el.style.top = y ? y : e.clientY + document.documentElement.scrollTop + "px";
|
||||||
|
el.style.display = "block";
|
||||||
|
document.body.onclick = close;
|
||||||
|
}
|
||||||
|
|
||||||
|
show();
|
||||||
|
};
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
var loadFilters = function()
|
||||||
|
{
|
||||||
|
var typesSelected = JSON.parse($("#tbFilters").val());
|
||||||
|
$("#mydialog input[rel]").each(function () {
|
||||||
|
var rel = $(this).attr('rel');
|
||||||
|
if (typesSelected.indexOf(rel) >= 0)
|
||||||
|
$(this).val("1");
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#btnSelectFilter").click(function(e)
|
||||||
|
{
|
||||||
|
var typesSelected = [];
|
||||||
|
$("#mydialog input[rel]").each(function () {
|
||||||
|
var val = $(this).attr("checked");
|
||||||
|
if (val) typesSelected.push($(this).attr('rel'));
|
||||||
|
});
|
||||||
|
$("#tbFilters").val(JSON.stringify(typesSelected));
|
||||||
|
document.forms[0].submit();
|
||||||
|
})
|
||||||
|
|
||||||
|
loadFilters();
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<asp:GridView id="gvObjects" runat="server" AutoGenerateColumns="False"
|
||||||
|
AllowPaging="True" AllowSorting="True"
|
||||||
|
CssSelectorClass="NormalGridView"
|
||||||
|
DataSourceID="odsObjectsPaged" EnableViewState="False"
|
||||||
|
EmptyDataText="gvObjects">
|
||||||
|
<Columns>
|
||||||
|
<asp:TemplateField HeaderText="gvType" SortExpression="ColumnType">
|
||||||
|
<HeaderTemplate>
|
||||||
|
<a href="javascript: void(0)" onclick="CPopupDialog('mydialog',event)">Type</a>
|
||||||
|
</HeaderTemplate>
|
||||||
|
<ItemTemplate>
|
||||||
|
<%# Eval("ColumnType") %>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:TemplateField SortExpression="TextSearch" HeaderText="gvText" HeaderStyle-Wrap="false">
|
||||||
|
<ItemTemplate>
|
||||||
|
<asp:hyperlink id=lnkUser runat="server" NavigateUrl='<%# GetItemPageUrl((string)Eval("FullType"), (string)Eval("ColumnType"), (int)Eval("ItemID"), (int)Eval("PackageID")) %>'>
|
||||||
|
<%# Eval("TextSearch") %>
|
||||||
|
</asp:hyperlink>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
<asp:BoundField DataField="FullType" HtmlEncode="false" SortExpression="FullType" HeaderText="gvFullType">
|
||||||
|
<HeaderStyle Wrap="false" />
|
||||||
|
</asp:BoundField>
|
||||||
|
</Columns>
|
||||||
|
</asp:GridView>
|
||||||
|
|
||||||
|
<asp:ObjectDataSource ID="odsObjectsPaged" runat="server" EnablePaging="True" SelectCountMethod="SearchObjectItemsPagedCount"
|
||||||
|
SelectMethod="SearchObjectItemsPaged" SortParameterName="sortColumn" TypeName="WebsitePanel.Portal.PackagesHelper" OnSelected="odsObjectPaged_Selected" OnSelecting="odsObjectPaged_Selecting">
|
||||||
|
<SelectParameters>
|
||||||
|
<asp:QueryStringParameter Name="filterColumn" QueryStringField="Criteria" />
|
||||||
|
<asp:QueryStringParameter Name="filterValue" QueryStringField="Query" />
|
||||||
|
</SelectParameters>
|
||||||
|
</asp:ObjectDataSource>
|
||||||
|
|
||||||
|
<asp:ObjectDataSource ID="odsObjectTypes" runat="server" EnablePaging="false"
|
||||||
|
SelectMethod="SearchObjectTypes" SortParameterName="sortColumn" TypeName="WebsitePanel.Portal.PackagesHelper">
|
||||||
|
<SelectParameters>
|
||||||
|
<asp:QueryStringParameter Name="filterColumn" QueryStringField="Criteria" />
|
||||||
|
<asp:QueryStringParameter Name="filterValue" QueryStringField="Query" />
|
||||||
|
</SelectParameters>
|
||||||
|
</asp:ObjectDataSource>
|
||||||
|
|
||||||
|
<div id="mydialog" class="ui-popupdialog">
|
||||||
|
<div class="title">Select filter</div>
|
||||||
|
<div class="content">
|
||||||
|
<asp:GridView runat="server" DataSourceID="odsObjectTypes" SortParameterName="sortColumn" ShowHeader="false" AutoGenerateColumns="false">
|
||||||
|
<Columns>
|
||||||
|
<asp:TemplateField>
|
||||||
|
<ItemTemplate>
|
||||||
|
<input type="checkbox" runat="server" rel='<%# Eval("ColumnType") %>'></input>
|
||||||
|
<%# Eval("ColumnType") %>
|
||||||
|
</ItemTemplate>
|
||||||
|
</asp:TemplateField>
|
||||||
|
</Columns>
|
||||||
|
</asp:GridView>
|
||||||
|
</div>
|
||||||
|
<div class="actions">
|
||||||
|
<a id="btnSelectFilter" href="javascript: void(0)" class="ui-button">Apply</a>
|
||||||
|
<a onclick="document.body.onclick.apply(event)" href="javascript: void(0)" class="ui-button">Close</a>
|
||||||
|
<div style="clear:both"></div>
|
||||||
|
</div>
|
||||||
|
<asp:TextBox ClientIDMode="Static" ID="tbFilters" type="hidden" runat="server"></asp:TextBox>
|
||||||
|
</div>
|
|
@ -0,0 +1,86 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.UI.WebControls;
|
||||||
|
using System.Web.Script.Serialization;
|
||||||
|
using WebsitePanel.WebPortal;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Portal
|
||||||
|
{
|
||||||
|
public partial class SearchObject : WebsitePanelModuleBase
|
||||||
|
{
|
||||||
|
const string TYPE_WEBSITE = "WebSite";
|
||||||
|
const string TYPE_DOMAIN = "Domain";
|
||||||
|
const string TYPE_ORGANIZATION = "Organization";
|
||||||
|
const string PID_SPACE_WEBSITES = "SpaceWebSites";
|
||||||
|
const string PID_SPACE_DIMAINS = "SpaceDomains";
|
||||||
|
const string PID_SPACE_EXCHANGESERVER = "SpaceExchangeServer";
|
||||||
|
|
||||||
|
String m_strColTypes = "";
|
||||||
|
|
||||||
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (IsPostBack)
|
||||||
|
{
|
||||||
|
var jsonSerialiser = new JavaScriptSerializer();
|
||||||
|
String[] aTypes = jsonSerialiser.Deserialize<String[]>(tbFilters.Text);
|
||||||
|
if ((aTypes != null) && (aTypes.Length > 0))
|
||||||
|
m_strColTypes = "'" + String.Join("','", aTypes) + "'";
|
||||||
|
else
|
||||||
|
m_strColTypes = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void odsObjectPaged_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
|
||||||
|
{
|
||||||
|
e.InputParameters["colType"] = m_strColTypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void odsObjectPaged_Selected(object sender, ObjectDataSourceStatusEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Exception != null)
|
||||||
|
{
|
||||||
|
ProcessException(e.Exception.InnerException);
|
||||||
|
e.ExceptionHandled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetItemPageUrl(string fullType, string itemType, int itemId, int spaceId)
|
||||||
|
{
|
||||||
|
string res = "";
|
||||||
|
if (fullType.Equals("Users"))
|
||||||
|
{
|
||||||
|
res = PortalUtils.GetUserHomePageUrl(itemId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch (itemType)
|
||||||
|
{
|
||||||
|
case TYPE_WEBSITE:
|
||||||
|
res = PortalUtils.NavigatePageURL(PID_SPACE_WEBSITES, "ItemID", itemId.ToString(),
|
||||||
|
PortalUtils.SPACE_ID_PARAM + "=" + spaceId, DefaultPage.CONTROL_ID_PARAM + "=" + "edit_item",
|
||||||
|
"moduleDefId=websites");
|
||||||
|
break;
|
||||||
|
case TYPE_DOMAIN:
|
||||||
|
res = PortalUtils.NavigatePageURL(PID_SPACE_DIMAINS, "DomainID", itemId.ToString(),
|
||||||
|
PortalUtils.SPACE_ID_PARAM + "=" + spaceId, DefaultPage.CONTROL_ID_PARAM + "=" + "edit_item",
|
||||||
|
"moduleDefId=domains");
|
||||||
|
break;
|
||||||
|
case TYPE_ORGANIZATION:
|
||||||
|
res = PortalUtils.NavigatePageURL(PID_SPACE_EXCHANGESERVER, "ItemID", itemId.ToString(),
|
||||||
|
PortalUtils.SPACE_ID_PARAM + "=" + spaceId, DefaultPage.CONTROL_ID_PARAM + "=" + "organization_home",
|
||||||
|
"moduleDefId=ExchangeServer");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
res = PortalUtils.GetSpaceHomePageUrl(itemId);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -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 SearchObject {
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// gvObjects control.
|
||||||
|
/// </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 gvObjects;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// odsObjectsPaged control.
|
||||||
|
/// </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 odsObjectsPaged;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// odsObjectTypes control.
|
||||||
|
/// </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 odsObjectTypes;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbFilters control.
|
||||||
|
/// </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 tbFilters;
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,13 +3,94 @@
|
||||||
<%@ Register Src="UserControls/ServerDetails.ascx" TagName="ServerDetails" TagPrefix="uc3" %>
|
<%@ Register Src="UserControls/ServerDetails.ascx" TagName="ServerDetails" TagPrefix="uc3" %>
|
||||||
<%@ Register Src="UserControls/Comments.ascx" TagName="Comments" TagPrefix="uc4" %>
|
<%@ Register Src="UserControls/Comments.ascx" TagName="Comments" TagPrefix="uc4" %>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
//<![CDATA[
|
||||||
|
$(document).ready(function () {
|
||||||
|
$("#tbSearch").autocomplete({
|
||||||
|
zIndex: 100,
|
||||||
|
source: function (request, response) {
|
||||||
|
$.ajax({
|
||||||
|
type: "post",
|
||||||
|
dataType: "json",
|
||||||
|
data: {
|
||||||
|
term: request.term,
|
||||||
|
fullType: 'Spaces',
|
||||||
|
itemType: $("#ddlItemType").val()
|
||||||
|
},
|
||||||
|
url: "AjaxHandler.ashx",
|
||||||
|
success: function (data) {
|
||||||
|
response($.map(data, function (item) {
|
||||||
|
return {
|
||||||
|
label: item.TextSearch,
|
||||||
|
code: item
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
select: function (event, ui) {
|
||||||
|
var item = ui.item;
|
||||||
|
$("#ddlItemType").val(item.code.ColumnType);
|
||||||
|
$("#tbSearchFullType").val(item.code.FullType);
|
||||||
|
$("#tbSearchText").val(item.code.TextSearch);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});//]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
<div class="FormButtonsBar">
|
<div class="FormButtonsBar">
|
||||||
<asp:Panel ID="tblSearch" runat="server" DefaultButton="cmdSearch" CssClass="NormalBold">
|
<asp:Panel ID="tblSearch" runat="server" DefaultButton="ImageButton1" CssClass="NormalBold">
|
||||||
<asp:Label ID="lblSearch" runat="server" meta:resourcekey="lblSearch"></asp:Label>
|
<asp:Label ID="lblSearch" runat="server" meta:resourcekey="lblSearch"></asp:Label>
|
||||||
<asp:DropDownList ID="ddlItemType" runat="server" CssClass="NormalTextBox">
|
<div align="center">
|
||||||
</asp:DropDownList><asp:TextBox ID="txtFilterValue" runat="server" CssClass="NormalTextBox" Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" Runat="server" SkinID="SearchButton" meta:resourcekey="cmdSearch"
|
<table>
|
||||||
CausesValidation="false" OnClick="cmdSearch_Click" />
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ClientIDMode="Static" ID="ddlItemType" runat="server" CssClass="NormalTextBox">
|
||||||
|
</asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<table cellpadding="0" cellspacing="0" align="right">
|
||||||
|
<tr>
|
||||||
|
<td align="left" class="SearchQuery">
|
||||||
|
<div class="ui-widget">
|
||||||
|
<asp:TextBox
|
||||||
|
ID="tbSearch"
|
||||||
|
ClientIDMode="Static"
|
||||||
|
runat="server"
|
||||||
|
CssClass="NormalTextBox"
|
||||||
|
Width="120px"
|
||||||
|
style="vertical-align: middle; z-index: 100;"
|
||||||
|
>
|
||||||
|
</asp:TextBox>
|
||||||
|
<asp:TextBox
|
||||||
|
ID="tbSearchFullType"
|
||||||
|
ClientIDMode="Static"
|
||||||
|
runat="server"
|
||||||
|
type="hidden"
|
||||||
|
>
|
||||||
|
</asp:TextBox>
|
||||||
|
<asp:TextBox
|
||||||
|
ID="tbSearchText"
|
||||||
|
ClientIDMode="Static"
|
||||||
|
runat="server"
|
||||||
|
type="hidden"
|
||||||
|
>
|
||||||
|
</asp:TextBox>
|
||||||
|
|
||||||
|
<asp:ImageButton
|
||||||
|
ID="ImageButton1"
|
||||||
|
runat="server"
|
||||||
|
SkinID="SearchButton"
|
||||||
|
OnClick="cmdSearch_Click"
|
||||||
|
CausesValidation="false"
|
||||||
|
style="vertical-align: middle;"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ namespace WebsitePanel.Portal
|
||||||
|
|
||||||
// bind filter
|
// bind filter
|
||||||
Utils.SelectListItem(ddlItemType, Request["ItemTypeID"]);
|
Utils.SelectListItem(ddlItemType, Request["ItemTypeID"]);
|
||||||
txtFilterValue.Text = Request["Query"];
|
tbSearch.Text = Request["Query"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +119,9 @@ namespace WebsitePanel.Portal
|
||||||
|
|
||||||
protected void cmdSearch_Click(object sender, ImageClickEventArgs e)
|
protected void cmdSearch_Click(object sender, ImageClickEventArgs e)
|
||||||
{
|
{
|
||||||
string query = txtFilterValue.Text.Trim().Replace("%", "");
|
string query = tbSearchText.Text.Trim().Replace("%", "");
|
||||||
|
if (query.Length == 0)
|
||||||
|
query = tbSearch.Text.Trim().Replace("%", "");
|
||||||
|
|
||||||
Response.Redirect(NavigateURL(
|
Response.Redirect(NavigateURL(
|
||||||
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
||||||
|
|
|
@ -1,31 +1,3 @@
|
||||||
// Copyright (c) 2015, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -68,22 +40,40 @@ namespace WebsitePanel.Portal {
|
||||||
protected global::System.Web.UI.WebControls.DropDownList ddlItemType;
|
protected global::System.Web.UI.WebControls.DropDownList ddlItemType;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// txtFilterValue control.
|
/// tbSearch control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtFilterValue;
|
protected global::System.Web.UI.WebControls.TextBox tbSearch;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// cmdSearch control.
|
/// tbSearchFullType control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.ImageButton cmdSearch;
|
protected global::System.Web.UI.WebControls.TextBox tbSearchFullType;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbSearchText control.
|
||||||
|
/// </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 tbSearchText;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ImageButton1 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.ImageButton ImageButton1;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// gvPackages control.
|
/// gvPackages control.
|
||||||
|
|
|
@ -5,16 +5,100 @@
|
||||||
<%@ Register Src="UserControls/UserDetails.ascx" TagName="UserDetails" TagPrefix="uc2" %>
|
<%@ Register Src="UserControls/UserDetails.ascx" TagName="UserDetails" TagPrefix="uc2" %>
|
||||||
<%@ Register Src="UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %>
|
<%@ Register Src="UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
//<![CDATA[
|
||||||
|
$(document).ready(function () {
|
||||||
|
$("#tbSearch").autocomplete({
|
||||||
|
zIndex: 100,
|
||||||
|
source: function (request, response) {
|
||||||
|
$.ajax({
|
||||||
|
type: "post",
|
||||||
|
dataType: "json",
|
||||||
|
data: {
|
||||||
|
term: request.term,
|
||||||
|
fullType: 'Users',
|
||||||
|
columnType: "'" + $("#ddlFilterColumn").val() + "'"
|
||||||
|
},
|
||||||
|
url: "AjaxHandler.ashx",
|
||||||
|
success: function (data) {
|
||||||
|
response($.map(data, function (item) {
|
||||||
|
return {
|
||||||
|
label: item.TextSearch,
|
||||||
|
code: item
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
select: function (event, ui) {
|
||||||
|
var item = ui.item;
|
||||||
|
$("#ddlFilterColumn").val(item.code.ColumnType);
|
||||||
|
$("#tbSearchFullType").val(item.code.FullType);
|
||||||
|
$("#tbSearchText").val(item.code.TextSearch);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});//]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
<div class="FormButtonsBar">
|
<div class="FormButtonsBar">
|
||||||
<asp:Panel ID="tblSearch" runat="server" DefaultButton="cmdSearch" CssClass="NormalBold">
|
<asp:Panel ID="tblSearch" runat="server" CssClass="NormalBold" DefaultButton="ImageButton1">
|
||||||
<asp:Label ID="lblSearch" runat="server" meta:resourcekey="lblSearch"></asp:Label>
|
<asp:Label ID="lblSearch" runat="server" meta:resourcekey="lblSearch"></asp:Label>
|
||||||
<asp:DropDownList ID="ddlFilterColumn" runat="server" CssClass="NormalTextBox" resourcekey="ddlFilterColumn">
|
<div align="center">
|
||||||
<asp:ListItem Value="Username">Username</asp:ListItem>
|
<table>
|
||||||
<asp:ListItem Value="Email">Email</asp:ListItem>
|
<tr>
|
||||||
<asp:ListItem Value="FullName">FullName</asp:ListItem>
|
<td>
|
||||||
<asp:ListItem Value="CompanyName">CompanyName</asp:ListItem>
|
<asp:DropDownList ClientIDMode="Static" ID="ddlFilterColumn" runat="server" CssClass="NormalTextBox" resourcekey="ddlFilterColumn">
|
||||||
</asp:DropDownList><asp:TextBox ID="txtFilterValue" runat="server" CssClass="NormalTextBox" Width="100"></asp:TextBox><asp:ImageButton ID="cmdSearch" Runat="server" SkinID="SearchButton" meta:resourcekey="cmdSearch"
|
<asp:ListItem Value="Username">Username</asp:ListItem>
|
||||||
CausesValidation="false" OnClick="cmdSearch_Click" />
|
<asp:ListItem Value="Email">Email</asp:ListItem>
|
||||||
|
<asp:ListItem Value="FullName">FullName</asp:ListItem>
|
||||||
|
<asp:ListItem Value="CompanyName">CompanyName</asp:ListItem>
|
||||||
|
</asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<table cellpadding="0" cellspacing="0" align="right">
|
||||||
|
<tr>
|
||||||
|
<td align="left" class="SearchQuery">
|
||||||
|
<div class="ui-widget">
|
||||||
|
<asp:TextBox
|
||||||
|
ID="tbSearch"
|
||||||
|
ClientIDMode="Static"
|
||||||
|
runat="server"
|
||||||
|
CssClass="NormalTextBox"
|
||||||
|
Width="120px"
|
||||||
|
style="vertical-align: middle; z-index: 100;"
|
||||||
|
>
|
||||||
|
</asp:TextBox>
|
||||||
|
<asp:TextBox
|
||||||
|
ID="tbSearchFullType"
|
||||||
|
ClientIDMode="Static"
|
||||||
|
runat="server"
|
||||||
|
type="hidden"
|
||||||
|
>
|
||||||
|
</asp:TextBox>
|
||||||
|
<asp:TextBox
|
||||||
|
ID="tbSearchText"
|
||||||
|
ClientIDMode="Static"
|
||||||
|
runat="server"
|
||||||
|
type="hidden"
|
||||||
|
>
|
||||||
|
</asp:TextBox>
|
||||||
|
|
||||||
|
<asp:ImageButton
|
||||||
|
ID="ImageButton1"
|
||||||
|
runat="server"
|
||||||
|
SkinID="SearchButton"
|
||||||
|
OnClick="cmdSearch_Click"
|
||||||
|
CausesValidation="false"
|
||||||
|
style="vertical-align: middle;"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ namespace WebsitePanel.Portal
|
||||||
if (!IsPostBack)
|
if (!IsPostBack)
|
||||||
{
|
{
|
||||||
Utils.SelectListItem(ddlFilterColumn, Request["Criteria"]);
|
Utils.SelectListItem(ddlFilterColumn, Request["Criteria"]);
|
||||||
txtFilterValue.Text = Request["Query"];
|
tbSearch.Text = Request["Query"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,7 +57,9 @@ namespace WebsitePanel.Portal
|
||||||
|
|
||||||
protected void cmdSearch_Click(object sender, ImageClickEventArgs e)
|
protected void cmdSearch_Click(object sender, ImageClickEventArgs e)
|
||||||
{
|
{
|
||||||
string query = txtFilterValue.Text.Trim().Replace("%", "");
|
string query = tbSearchText.Text.Trim().Replace("%", "");
|
||||||
|
if (query.Length == 0)
|
||||||
|
query = tbSearch.Text.Trim().Replace("%", "");
|
||||||
|
|
||||||
Response.Redirect(NavigateURL(
|
Response.Redirect(NavigateURL(
|
||||||
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
||||||
|
|
|
@ -1,31 +1,3 @@
|
||||||
// Copyright (c) 2015, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -68,22 +40,40 @@ namespace WebsitePanel.Portal {
|
||||||
protected global::System.Web.UI.WebControls.DropDownList ddlFilterColumn;
|
protected global::System.Web.UI.WebControls.DropDownList ddlFilterColumn;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// txtFilterValue control.
|
/// tbSearch control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtFilterValue;
|
protected global::System.Web.UI.WebControls.TextBox tbSearch;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// cmdSearch control.
|
/// tbSearchFullType control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.ImageButton cmdSearch;
|
protected global::System.Web.UI.WebControls.TextBox tbSearchFullType;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbSearchText control.
|
||||||
|
/// </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 tbSearchText;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ImageButton1 control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.ImageButton ImageButton1;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// gvUsers control.
|
/// gvUsers control.
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 1.3
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">1.3</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1">this is my long string</data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
[base64 mime encoded serialized .NET Framework object]
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
[base64 mime encoded string representing a byte array form of the .NET Framework object]
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>1.3</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="gvType.Header" xml:space="preserve">
|
||||||
|
<value>Type</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvText.Header" xml:space="preserve">
|
||||||
|
<value>Search text</value>
|
||||||
|
</data>
|
||||||
|
<data name="gvFullType.Header" xml:space="preserve">
|
||||||
|
<value>Full Type</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
|
@ -1,54 +1,87 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="GlobalSearch.ascx.cs" Inherits="WebsitePanel.Portal.SkinControls.GlobalSearch" %>
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="GlobalSearch.ascx.cs" Inherits="WebsitePanel.Portal.SkinControls.GlobalSearch" %>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.ui-menu-item a {white-space: nowrap; }
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
//<![CDATA[
|
||||||
|
$(document).ready(function () {
|
||||||
|
$("#<%= tbSearch.ClientID %>").autocomplete({
|
||||||
|
zIndex: 100,
|
||||||
|
source: function(request, response) {
|
||||||
|
$.ajax({
|
||||||
|
type: "post",
|
||||||
|
dataType: "json",
|
||||||
|
data: {
|
||||||
|
term: request.term
|
||||||
|
},
|
||||||
|
url: "AjaxHandler.ashx",
|
||||||
|
success: function(data)
|
||||||
|
{
|
||||||
|
response($.map(data, function (item) {
|
||||||
|
return {
|
||||||
|
label: item.TextSearch + " [" + item.FullType + "]",
|
||||||
|
code: item
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
select: function (event, ui) {
|
||||||
|
var item = ui.item;
|
||||||
|
$("#<%= tbSearchColumnType.ClientID %>").val(item.code.ColumnType);
|
||||||
|
$("#<%= tbSearchFullType.ClientID %>").val(item.code.FullType);
|
||||||
|
$("#<%= tbSearchText.ClientID %>").val(item.code.TextSearch);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});//]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
<asp:UpdatePanel runat="server" ID="updatePanelUsers" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
<asp:UpdatePanel runat="server" ID="updatePanelUsers" UpdateMode="Conditional" ChildrenAsTriggers="true">
|
||||||
<ContentTemplate>
|
<ContentTemplate>
|
||||||
<table cellpadding="0" cellspacing="0" align="right">
|
<table cellpadding="0" cellspacing="0" align="right">
|
||||||
<tr>
|
<tr>
|
||||||
<td align="left">
|
<td align="left" class="SearchQuery">
|
||||||
<asp:DataList ID="dlTabs" runat="server" RepeatDirection="Horizontal"
|
<div class="ui-widget">
|
||||||
OnSelectedIndexChanged="dlTabs_SelectedIndexChanged" RepeatLayout="Table">
|
<asp:TextBox
|
||||||
<ItemStyle Wrap="false" VerticalAlign="Top" />
|
ID="tbSearch"
|
||||||
<ItemTemplate>
|
runat="server"
|
||||||
<asp:LinkButton ID="lnkTab" runat="server" CommandName="select"
|
CssClass="NormalTextBox"
|
||||||
CausesValidation="false" CssClass="SearchMethod">
|
Width="120px"
|
||||||
<%# Eval("Name") %>
|
style="vertical-align: middle; z-index: 100;"
|
||||||
</asp:LinkButton>
|
>
|
||||||
</ItemTemplate>
|
</asp:TextBox>
|
||||||
<SelectedItemStyle Wrap="false" />
|
<asp:TextBox
|
||||||
<SelectedItemTemplate>
|
ID="tbSearchColumnType"
|
||||||
<table cellpadding="0" cellspacing="0">
|
runat="server"
|
||||||
<tr>
|
type="hidden"
|
||||||
<td class="SearchMethodSide" valign="top"></td>
|
>
|
||||||
<td class="SearchMethodSelected" valign="top"><%# Eval("Name")%></td>
|
</asp:TextBox>
|
||||||
<td class="SearchMethodSide" valign="top"></td>
|
<asp:TextBox
|
||||||
</tr>
|
ID="tbSearchFullType"
|
||||||
</table>
|
runat="server"
|
||||||
</SelectedItemTemplate>
|
type="hidden"
|
||||||
</asp:DataList>
|
>
|
||||||
</td>
|
</asp:TextBox>
|
||||||
</tr>
|
<asp:TextBox
|
||||||
<tr>
|
ID="tbSearchText"
|
||||||
<td align="left" class="SearchQuery">
|
runat="server"
|
||||||
<asp:MultiView ID="tabs" runat="server" ActiveViewIndex="0">
|
type="hidden"
|
||||||
<asp:View ID="tabSearchUsers" runat="server">
|
>
|
||||||
<asp:Panel ID="pnlSearchUsers" runat="server" DefaultButton="btnSearchUsers">
|
</asp:TextBox>
|
||||||
<asp:DropDownList ID="ddlUserFields" runat="server" resourcekey="ddlUserFields" CssClass="NormalTextBox" Width="150px" style="vertical-align: middle;">
|
|
||||||
<asp:ListItem Value="Username">Username</asp:ListItem>
|
|
||||||
<asp:ListItem Value="Email">Email</asp:ListItem>
|
|
||||||
<asp:ListItem Value="FullName">FullName</asp:ListItem>
|
|
||||||
<asp:ListItem Value="CompanyName">CompanyName</asp:ListItem>
|
|
||||||
</asp:DropDownList><asp:TextBox ID="txtUsersQuery" runat="server" CssClass="NormalTextBox" Width="120px" style="vertical-align: middle;"></asp:TextBox><asp:ImageButton ID="btnSearchUsers" runat="server" SkinID="SearchButton" OnClick="btnSearchUsers_Click" CausesValidation="false" style="vertical-align: middle;" />
|
|
||||||
</asp:Panel>
|
|
||||||
</asp:View>
|
|
||||||
<asp:View ID="tabSearchSpaces" runat="server">
|
|
||||||
<asp:Panel ID="pnlSearchSpaces" runat="server" DefaultButton="btnSearchSpaces">
|
|
||||||
<asp:DropDownList ID="ddlItemType" runat="server" Width="150px" CssClass="NormalTextBox" style="vertical-align: middle;">
|
|
||||||
</asp:DropDownList><asp:TextBox ID="txtSpacesQuery" runat="server" CssClass="NormalTextBox" Width="120px" style="vertical-align: middle;"></asp:TextBox><asp:ImageButton ID="btnSearchSpaces" runat="server" SkinID="SearchButton" OnClick="btnSearchSpaces_Click" CausesValidation="false" style="vertical-align: middle;" />
|
|
||||||
</asp:Panel>
|
|
||||||
</asp:View>
|
|
||||||
</asp:MultiView>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
|
<asp:ImageButton
|
||||||
|
ID="ImageButton1"
|
||||||
|
runat="server"
|
||||||
|
SkinID="SearchButton"
|
||||||
|
OnClick="btnSearchObject_Click"
|
||||||
|
CausesValidation="false"
|
||||||
|
style="vertical-align: middle;"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
</ContentTemplate>
|
</ContentTemplate>
|
||||||
</asp:UpdatePanel>
|
</asp:UpdatePanel>
|
||||||
|
|
|
@ -70,32 +70,20 @@ namespace WebsitePanel.Portal.SkinControls
|
||||||
|
|
||||||
protected void Page_Load(object sender, EventArgs e)
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if(!IsPostBack)
|
ClientScriptManager cs = Page.ClientScript;
|
||||||
|
cs.RegisterClientScriptInclude("jquery",ResolveUrl("~/JavaScript/jquery-1.4.4.min.js"));
|
||||||
|
cs.RegisterClientScriptInclude("jqueryui",ResolveUrl("~/JavaScript/jquery-ui-1.8.9.min.js"));
|
||||||
|
// cs.RegisterClientScriptBlock(this.GetType(), "jquerycss",
|
||||||
|
// "<link rel='stylesheet' type='text/css' href='" + ResolveUrl("~/App_Themes/Default/Styles/jquery-ui-1.8.9.css") + "' />");
|
||||||
|
if (!IsPostBack)
|
||||||
{
|
{
|
||||||
BindTabs();
|
|
||||||
BindItemTypes();
|
BindItemTypes();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BindTabs()
|
|
||||||
{
|
|
||||||
List<Tab> tabsList = new List<Tab>();
|
|
||||||
if (PanelSecurity.EffectiveUser.Role != UserRole.User)
|
|
||||||
tabsList.Add(new Tab(0, GetLocalizedString("Users.Text")));
|
|
||||||
|
|
||||||
tabsList.Add(new Tab(1, GetLocalizedString("Spaces.Text")));
|
|
||||||
|
|
||||||
if(dlTabs.SelectedIndex == -1)
|
|
||||||
dlTabs.SelectedIndex = 0;
|
|
||||||
dlTabs.DataSource = tabsList.ToArray();
|
|
||||||
dlTabs.DataBind();
|
|
||||||
|
|
||||||
tabs.ActiveViewIndex = tabsList[dlTabs.SelectedIndex].Index;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void BindItemTypes()
|
private void BindItemTypes()
|
||||||
{
|
{
|
||||||
// bind item types
|
/* // bind item types
|
||||||
DataTable dtItemTypes = ES.Services.Packages.GetSearchableServiceItemTypes().Tables[0];
|
DataTable dtItemTypes = ES.Services.Packages.GetSearchableServiceItemTypes().Tables[0];
|
||||||
foreach (DataRow dr in dtItemTypes.Rows)
|
foreach (DataRow dr in dtItemTypes.Rows)
|
||||||
{
|
{
|
||||||
|
@ -108,28 +96,63 @@ namespace WebsitePanel.Portal.SkinControls
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
ddlItemType.Items.Add(new ListItem(localizedStr, dr["ItemTypeID"].ToString()));
|
ddlItemType.Items.Add(new ListItem(localizedStr, dr["ItemTypeID"].ToString()));
|
||||||
}
|
} */
|
||||||
}
|
|
||||||
|
|
||||||
protected void dlTabs_SelectedIndexChanged(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
BindTabs();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void btnSearchUsers_Click(object sender, EventArgs e)
|
protected void btnSearchUsers_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Response.Redirect(PortalUtils.NavigatePageURL(PortalUtils.GetUsersSearchPageId(),
|
/* Response.Redirect(PortalUtils.NavigatePageURL(PortalUtils.GetUsersSearchPageId(),
|
||||||
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
||||||
"Query=" + Server.UrlEncode(txtUsersQuery.Text),
|
"Query=" + Server.UrlEncode(txtUsersQuery.Text),
|
||||||
"Criteria=" + ddlUserFields.SelectedValue));
|
"Criteria=" + ddlUserFields.SelectedValue)); */
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void btnSearchSpaces_Click(object sender, EventArgs e)
|
protected void btnSearchSpaces_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Response.Redirect(PortalUtils.NavigatePageURL(PortalUtils.GetSpacesSearchPageId(),
|
/* Response.Redirect(PortalUtils.NavigatePageURL(PortalUtils.GetSpacesSearchPageId(),
|
||||||
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
||||||
"Query=" + Server.UrlEncode(txtSpacesQuery.Text),
|
"Query=" + Server.UrlEncode(txtSpacesQuery.Text),
|
||||||
"ItemTypeID=" + ddlItemType.SelectedValue));
|
"ItemTypeID=" + ddlItemType.SelectedValue)); */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO START
|
||||||
|
protected void btnSearchObject_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
String strColumnType = tbSearchColumnType.Text;
|
||||||
|
String strFullType = tbSearchFullType.Text;
|
||||||
|
String strText = tbSearchText.Text;
|
||||||
|
if (strText.Length > 0)
|
||||||
|
{
|
||||||
|
if (strFullType == "Users")
|
||||||
|
{
|
||||||
|
Response.Redirect(PortalUtils.NavigatePageURL(PortalUtils.GetUsersSearchPageId(),
|
||||||
|
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
||||||
|
"Query=" + Server.UrlEncode(strText),
|
||||||
|
"Criteria=" + Server.UrlEncode(strColumnType)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
else if (strFullType == "Space")
|
||||||
|
{
|
||||||
|
Response.Redirect(PortalUtils.NavigatePageURL(PortalUtils.GetSpacesSearchPageId(),
|
||||||
|
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
||||||
|
"Query=" + Server.UrlEncode(strText),
|
||||||
|
"Criteria=" + Server.UrlEncode(strColumnType)
|
||||||
|
));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Response.Redirect(PortalUtils.NavigatePageURL(PortalUtils.GetObjectSearchPageId(),
|
||||||
|
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
||||||
|
"Query=" + Server.UrlEncode(strText)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Response.Redirect(PortalUtils.NavigatePageURL(PortalUtils.GetObjectSearchPageId(),
|
||||||
|
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
||||||
|
"Query=" + Server.UrlEncode(tbSearch.Text)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//TODO END
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,31 +1,3 @@
|
||||||
// Copyright (c) 2015, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -50,111 +22,48 @@ namespace WebsitePanel.Portal.SkinControls {
|
||||||
protected global::System.Web.UI.UpdatePanel updatePanelUsers;
|
protected global::System.Web.UI.UpdatePanel updatePanelUsers;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// dlTabs control.
|
/// tbSearch control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.DataList dlTabs;
|
protected global::System.Web.UI.WebControls.TextBox tbSearch;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// tabs control.
|
/// tbSearchColumnType control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.MultiView tabs;
|
protected global::System.Web.UI.WebControls.TextBox tbSearchColumnType;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// tabSearchUsers control.
|
/// tbSearchFullType control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.View tabSearchUsers;
|
protected global::System.Web.UI.WebControls.TextBox tbSearchFullType;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// pnlSearchUsers control.
|
/// tbSearchText control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Panel pnlSearchUsers;
|
protected global::System.Web.UI.WebControls.TextBox tbSearchText;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ddlUserFields control.
|
/// ImageButton1 control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.DropDownList ddlUserFields;
|
protected global::System.Web.UI.WebControls.ImageButton ImageButton1;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// txtUsersQuery control.
|
|
||||||
/// </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 txtUsersQuery;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// btnSearchUsers control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.ImageButton btnSearchUsers;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// tabSearchSpaces control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.View tabSearchSpaces;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// pnlSearchSpaces control.
|
|
||||||
/// </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 pnlSearchSpaces;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// ddlItemType control.
|
|
||||||
/// </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 ddlItemType;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// txtSpacesQuery control.
|
|
||||||
/// </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 txtSpacesQuery;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// btnSearchSpaces control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.ImageButton btnSearchSpaces;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,95 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SearchBox.ascx.cs" Inherits="WebsitePanel.Portal.SearchBox" %>
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SearchBox.ascx.cs" Inherits="WebsitePanel.Portal.SearchBox" %>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
//<![CDATA[
|
||||||
|
$(document).ready(function () {
|
||||||
|
$("#tbSearch").keypress(function () {
|
||||||
|
$("#tbSearchText").val('');
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#tbSearch").autocomplete({
|
||||||
|
zIndex: 100,
|
||||||
|
source: function (request, response) {
|
||||||
|
$.ajax({
|
||||||
|
type: "post",
|
||||||
|
dataType: "json",
|
||||||
|
data: {
|
||||||
|
term: request.term,
|
||||||
|
fullType: '',
|
||||||
|
columnType: "'" + $("#ddlFilterColumn").val() + "'"
|
||||||
|
},
|
||||||
|
url: "AjaxHandler.ashx",
|
||||||
|
success: function (data) {
|
||||||
|
response($.map(data, function (item) {
|
||||||
|
return {
|
||||||
|
label: item.TextSearch,
|
||||||
|
code: item
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
select: function (event, ui) {
|
||||||
|
var item = ui.item;
|
||||||
|
$("#ddlFilterColumn").val(item.code.ColumnType);
|
||||||
|
$("#tbSearchFullType").val(item.code.FullType);
|
||||||
|
$("#tbSearchText").val(item.code.TextSearch);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});//]]>
|
||||||
|
</script>
|
||||||
|
|
||||||
<asp:Panel ID="tblSearch" runat="server" DefaultButton="cmdSearch" CssClass="NormalBold">
|
<asp:Panel ID="tblSearch" runat="server" DefaultButton="cmdSearch" CssClass="NormalBold">
|
||||||
<asp:Label ID="lblSearch" runat="server" meta:resourcekey="lblSearch" Visible="false"></asp:Label>
|
<asp:Label ID="lblSearch" runat="server" meta:resourcekey="lblSearch" Visible="false"></asp:Label>
|
||||||
<asp:DropDownList ID="ddlFilterColumn" runat="server" CssClass="NormalTextBox" style="vertical-align: middle;">
|
|
||||||
</asp:DropDownList><asp:TextBox ID="txtFilterValue" runat="server" CssClass="NormalTextBox" Width="100" style="vertical-align: middle;"></asp:TextBox><asp:ImageButton ID="cmdSearch" Runat="server" meta:resourcekey="cmdSearch" SkinID="SearchButton"
|
<table>
|
||||||
CausesValidation="false" style="vertical-align: middle;"/>
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ClientIDMode="Static" ID="ddlFilterColumn" runat="server" CssClass="NormalTextBox" resourcekey="ddlFilterColumn">
|
||||||
|
</asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<table cellpadding="0" cellspacing="0" align="right">
|
||||||
|
<tr>
|
||||||
|
<td align="left" class="SearchQuery">
|
||||||
|
<div class="ui-widget">
|
||||||
|
<asp:TextBox
|
||||||
|
ID="tbSearch"
|
||||||
|
ClientIDMode="Static"
|
||||||
|
runat="server"
|
||||||
|
CssClass="NormalTextBox"
|
||||||
|
Width="120px"
|
||||||
|
style="vertical-align: middle; z-index: 100;"
|
||||||
|
>
|
||||||
|
</asp:TextBox>
|
||||||
|
<asp:TextBox
|
||||||
|
ID="tbSearchFullType"
|
||||||
|
ClientIDMode="Static"
|
||||||
|
runat="server"
|
||||||
|
type="hidden"
|
||||||
|
>
|
||||||
|
</asp:TextBox>
|
||||||
|
<asp:TextBox
|
||||||
|
ID="tbSearchText"
|
||||||
|
ClientIDMode="Static"
|
||||||
|
runat="server"
|
||||||
|
type="hidden"
|
||||||
|
>
|
||||||
|
</asp:TextBox>
|
||||||
|
|
||||||
|
<asp:ImageButton
|
||||||
|
ID="cmdSearch"
|
||||||
|
runat="server"
|
||||||
|
SkinID="SearchButton"
|
||||||
|
CausesValidation="false"
|
||||||
|
OnClick="cmdSearch_Click"
|
||||||
|
style="vertical-align: middle;"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
</asp:Panel>
|
</asp:Panel>
|
|
@ -60,13 +60,23 @@ namespace WebsitePanel.Portal
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
string val = txtFilterValue.Text.Trim();
|
string val = tbSearchText.Text.Trim();
|
||||||
|
string valText = tbSearch.Text.Trim();
|
||||||
|
if (valText.Length == 0)
|
||||||
|
val = valText;
|
||||||
|
if (val.Length == 0)
|
||||||
|
val = tbSearch.Text.Trim();
|
||||||
val = val.Replace("%", "");
|
val = val.Replace("%", "");
|
||||||
return "%" + val + "%";
|
return "%" + val + "%";
|
||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
txtFilterValue.Text = value;
|
if (value != null)
|
||||||
|
{
|
||||||
|
value = value.Replace("%", "");
|
||||||
|
tbSearch.Text = value;
|
||||||
|
tbSearchText.Text = value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,7 +93,15 @@ namespace WebsitePanel.Portal
|
||||||
public override void Focus()
|
public override void Focus()
|
||||||
{
|
{
|
||||||
base.Focus();
|
base.Focus();
|
||||||
txtFilterValue.Focus();
|
tbSearch.Focus();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void cmdSearch_Click(object sender, ImageClickEventArgs e)
|
||||||
|
{
|
||||||
|
Response.Redirect(NavigatePageURL(PortalUtils.GetUserCustomersPageId(),
|
||||||
|
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
||||||
|
"FilterColumn=" + ddlFilterColumn.SelectedValue,
|
||||||
|
"FilterValue=" + Server.UrlEncode(FilterValue)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,35 +1,6 @@
|
||||||
// Copyright (c) 2015, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// 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
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
|
@ -69,13 +40,31 @@ namespace WebsitePanel.Portal {
|
||||||
protected global::System.Web.UI.WebControls.DropDownList ddlFilterColumn;
|
protected global::System.Web.UI.WebControls.DropDownList ddlFilterColumn;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// txtFilterValue control.
|
/// tbSearch control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.TextBox txtFilterValue;
|
protected global::System.Web.UI.WebControls.TextBox tbSearch;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbSearchFullType control.
|
||||||
|
/// </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 tbSearchFullType;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbSearchText control.
|
||||||
|
/// </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 tbSearchText;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// cmdSearch control.
|
/// cmdSearch control.
|
||||||
|
|
|
@ -1,31 +1,3 @@
|
||||||
// Copyright (c) 2015, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UserCustomersSummary.ascx.cs" Inherits="WebsitePanel.Portal.UserCustomersSummary" %>
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UserCustomersSummary.ascx.cs" Inherits="WebsitePanel.Portal.UserCustomersSummary" %>
|
||||||
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="UserControls/CollapsiblePanel.ascx" %>
|
<%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="UserControls/CollapsiblePanel.ascx" %>
|
||||||
|
<%@ Register Src="UserControls/SearchBox.ascx" TagName="SearchBox" TagPrefix="uc1" %>
|
||||||
|
|
||||||
<%@ Import Namespace="WebsitePanel.Portal" %>
|
<%@ Import Namespace="WebsitePanel.Portal" %>
|
||||||
<div class="FormButtonsBar">
|
<div class="FormButtonsBar">
|
||||||
<div class="Left">
|
<div class="Left">
|
||||||
|
@ -7,14 +9,8 @@
|
||||||
runat="server" CssClass="Button1"></asp:Button>
|
runat="server" CssClass="Button1"></asp:Button>
|
||||||
</div>
|
</div>
|
||||||
<div class="Right">
|
<div class="Right">
|
||||||
<asp:Panel ID="tblSearch" runat="server" DefaultButton="cmdSearch" CssClass="NormalBold">
|
<asp:Panel ID="tblSearch" runat="server" CssClass="NormalBold">
|
||||||
<asp:DropDownList ID="ddlFilterColumn" runat="server" resourcekey="ddlFilterColumn" CssClass="NormalTextBox" style="vertical-align: middle;">
|
<uc1:SearchBox ID="searchBox" runat="server" />
|
||||||
<asp:ListItem Value="Username">Username</asp:ListItem>
|
|
||||||
<asp:ListItem Value="Email">E-mail</asp:ListItem>
|
|
||||||
<asp:ListItem Value="FullName">FullName</asp:ListItem>
|
|
||||||
<asp:ListItem Value="CompanyName">CompanyName</asp:ListItem>
|
|
||||||
</asp:DropDownList><asp:TextBox ID="txtFilterValue" runat="server" CssClass="NormalTextBox" Width="100" style="vertical-align: middle;"></asp:TextBox><asp:ImageButton ID="cmdSearch" Runat="server" meta:resourcekey="cmdSearch" SkinID="SearchButton"
|
|
||||||
CausesValidation="false" OnClick="cmdSearch_Click" style="vertical-align: middle;"/>
|
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -46,7 +46,13 @@ namespace WebsitePanel.Portal
|
||||||
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString());
|
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString());
|
||||||
|
|
||||||
if (!IsPostBack)
|
if (!IsPostBack)
|
||||||
txtFilterValue.Focus();
|
{
|
||||||
|
searchBox.AddCriteria("Username", GetLocalizedString("SearchField.Username"));
|
||||||
|
searchBox.AddCriteria("FullName", GetLocalizedString("SearchField.Name"));
|
||||||
|
searchBox.AddCriteria("Email", GetLocalizedString("SearchField.EMail"));
|
||||||
|
searchBox.AddCriteria("CompanyName", GetLocalizedString("SearchField.CompanyName"));
|
||||||
|
searchBox.Focus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BindGroupings()
|
private void BindGroupings()
|
||||||
|
@ -73,14 +79,6 @@ namespace WebsitePanel.Portal
|
||||||
parameterName + "=" + parameterValue);
|
parameterName + "=" + parameterValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void cmdSearch_Click(object sender, ImageClickEventArgs e)
|
|
||||||
{
|
|
||||||
Response.Redirect(NavigatePageURL(PortalUtils.GetUserCustomersPageId(),
|
|
||||||
PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(),
|
|
||||||
"FilterColumn=" + ddlFilterColumn.SelectedValue,
|
|
||||||
"FilterValue=" + Server.UrlEncode(txtFilterValue.Text)));
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void btnCreate_Click(object sender, EventArgs e)
|
protected void btnCreate_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Response.Redirect(EditUrl(PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(), "create_user"));
|
Response.Redirect(EditUrl(PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(), "create_user"));
|
||||||
|
|
|
@ -1,31 +1,3 @@
|
||||||
// Copyright (c) 2015, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
@ -59,31 +31,13 @@ namespace WebsitePanel.Portal {
|
||||||
protected global::System.Web.UI.WebControls.Panel tblSearch;
|
protected global::System.Web.UI.WebControls.Panel tblSearch;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ddlFilterColumn control.
|
/// searchBox control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.DropDownList ddlFilterColumn;
|
protected global::WebsitePanel.Portal.SearchBox searchBox;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// txtFilterValue control.
|
|
||||||
/// </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 txtFilterValue;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// cmdSearch control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.ImageButton cmdSearch;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// allCustomers control.
|
/// allCustomers control.
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
<%@ Register Src="UserOrganization.ascx" TagName="UserOrganization" TagPrefix="wsp" %>
|
<%@ Register Src="UserOrganization.ascx" TagName="UserOrganization" TagPrefix="wsp" %>
|
||||||
<%@ Import Namespace="WebsitePanel.Portal" %>
|
<%@ Import Namespace="WebsitePanel.Portal" %>
|
||||||
|
|
||||||
<script src="/JavaScript/jquery-1.4.4.min.js" type="text/javascript"></script>
|
|
||||||
<script src="/JavaScript/chosen.min.js" type="text/javascript"></script>
|
<script src="/JavaScript/chosen.min.js" type="text/javascript"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
|
@ -53,7 +53,8 @@ namespace WebsitePanel.Portal
|
||||||
|
|
||||||
protected void Page_Load(object sender, EventArgs e)
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
ClientScriptManager cs = Page.ClientScript;
|
||||||
|
cs.RegisterClientScriptInclude("jquery", ResolveUrl("~/JavaScript/jquery-1.4.4.min.js"));
|
||||||
// check for user
|
// check for user
|
||||||
bool isUser = PanelSecurity.SelectedUser.Role == UserRole.User;
|
bool isUser = PanelSecurity.SelectedUser.Role == UserRole.User;
|
||||||
|
|
||||||
|
|
|
@ -1,31 +1,3 @@
|
||||||
// Copyright (c) 2015, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
|
|
|
@ -153,6 +153,7 @@
|
||||||
<Compile Include="Code\Framework\ISchedulerTaskView.cs" />
|
<Compile Include="Code\Framework\ISchedulerTaskView.cs" />
|
||||||
<Compile Include="Code\Framework\WebPortalPageTitleProvider.cs" />
|
<Compile Include="Code\Framework\WebPortalPageTitleProvider.cs" />
|
||||||
<Compile Include="Code\Framework\WebPortalThemeProvider.cs" />
|
<Compile Include="Code\Framework\WebPortalThemeProvider.cs" />
|
||||||
|
<Compile Include="Code\Helpers\AjaxHandler.cs" />
|
||||||
<Compile Include="Code\Helpers\AppInstallerHelpers.cs" />
|
<Compile Include="Code\Helpers\AppInstallerHelpers.cs" />
|
||||||
<Compile Include="Code\Framework\WebsitePanelControlBase.cs">
|
<Compile Include="Code\Framework\WebsitePanelControlBase.cs">
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
@ -342,6 +343,13 @@
|
||||||
<DependentUpon>UserPasswordExpirationNotificationView.ascx</DependentUpon>
|
<DependentUpon>UserPasswordExpirationNotificationView.ascx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="SearchObject.ascx.cs">
|
||||||
|
<DependentUpon>SearchObject.ascx</DependentUpon>
|
||||||
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="SearchObject.ascx.designer.cs">
|
||||||
|
<DependentUpon>SearchObject.ascx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="VPS2012\RemoteDesktop\Connect.aspx.cs">
|
<Compile Include="VPS2012\RemoteDesktop\Connect.aspx.cs">
|
||||||
<DependentUpon>Connect.aspx</DependentUpon>
|
<DependentUpon>Connect.aspx</DependentUpon>
|
||||||
<SubType>ASPXCodeBehind</SubType>
|
<SubType>ASPXCodeBehind</SubType>
|
||||||
|
@ -4880,7 +4888,9 @@
|
||||||
<Content Include="HostedSharePoint\HostedSharePointEnterpriseStorageSettings.ascx" />
|
<Content Include="HostedSharePoint\HostedSharePointEnterpriseStorageSettings.ascx" />
|
||||||
<Content Include="HostedSharePoint\HostedSharePointEnterpriseStorageUsage.ascx" />
|
<Content Include="HostedSharePoint\HostedSharePointEnterpriseStorageUsage.ascx" />
|
||||||
<Content Include="ProviderControls\HyperV2012R2_Settings.ascx" />
|
<Content Include="ProviderControls\HyperV2012R2_Settings.ascx" />
|
||||||
|
<Content Include="SearchObject.ascx" />
|
||||||
<Content Include="ScheduleTaskControls\UserPasswordExpirationNotificationView.ascx" />
|
<Content Include="ScheduleTaskControls\UserPasswordExpirationNotificationView.ascx" />
|
||||||
|
<Content Include="SearchObject.ascx" />
|
||||||
<Content Include="SettingsUserPasswordExpirationLetter.ascx" />
|
<Content Include="SettingsUserPasswordExpirationLetter.ascx" />
|
||||||
<Content Include="SettingsUserPasswordResetLetter.ascx" />
|
<Content Include="SettingsUserPasswordResetLetter.ascx" />
|
||||||
<Content Include="VPS2012\RemoteDesktop\Connect.aspx" />
|
<Content Include="VPS2012\RemoteDesktop\Connect.aspx" />
|
||||||
|
@ -5195,6 +5205,7 @@
|
||||||
</Content>
|
</Content>
|
||||||
<Content Include="UserControls\App_LocalResources\MailAccountActions.ascx.resx" />
|
<Content Include="UserControls\App_LocalResources\MailAccountActions.ascx.resx" />
|
||||||
<Content Include="ScheduleTaskControls\App_LocalResources\UserPasswordExpirationNotificationView.ascx.resx" />
|
<Content Include="ScheduleTaskControls\App_LocalResources\UserPasswordExpirationNotificationView.ascx.resx" />
|
||||||
|
<Content Include="SkinControls\App_LocalResources\SearchObject.ascx.resx" />
|
||||||
<EmbeddedResource Include="UserControls\App_LocalResources\WebsiteActions.ascx.resx" />
|
<EmbeddedResource Include="UserControls\App_LocalResources\WebsiteActions.ascx.resx" />
|
||||||
<Content Include="VPS\UserControls\App_LocalResources\Generation.ascx.resx">
|
<Content Include="VPS\UserControls\App_LocalResources\Generation.ascx.resx">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
var estop = function (e) {
|
||||||
|
if (!e) e = window.event;
|
||||||
|
e.cancelBubble = true;
|
||||||
|
if (e.stopPropagation) e.stopPropagation();
|
||||||
|
return e;
|
||||||
|
}
|
||||||
|
|
||||||
|
var CPopupDialog = function (el, e) {
|
||||||
|
if (typeof el == 'string')
|
||||||
|
el = document.getElementById(el);
|
||||||
|
e = estop(e);
|
||||||
|
|
||||||
|
var oldclick = document.body.onclick;
|
||||||
|
el.onclick = estop;
|
||||||
|
|
||||||
|
function close() {
|
||||||
|
el.style.display = "none";
|
||||||
|
document.body.onclick = oldclick;
|
||||||
|
}
|
||||||
|
|
||||||
|
function show(x, y) {
|
||||||
|
el.style.left = x ? x : e.clientX + document.documentElement.scrollLeft + "px";
|
||||||
|
el.style.top = y ? y : e.clientY + document.documentElement.scrollTop + "px";
|
||||||
|
el.style.display = "block";
|
||||||
|
document.body.onclick = close;
|
||||||
|
}
|
||||||
|
|
||||||
|
show();
|
||||||
|
}
|
|
@ -26,6 +26,7 @@
|
||||||
-->
|
-->
|
||||||
<httpHandlers>
|
<httpHandlers>
|
||||||
<add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" />
|
<add verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" />
|
||||||
|
<add verb="*" path="AjaxHandler.ashx" type="WebsitePanel.WebPortal.WebsitePanelAjaxHandler, WebsitePanel.WebPortal" />
|
||||||
</httpHandlers>
|
</httpHandlers>
|
||||||
<!-- Authentication -->
|
<!-- Authentication -->
|
||||||
<authentication mode="Forms">
|
<authentication mode="Forms">
|
||||||
|
|
|
@ -79,6 +79,10 @@
|
||||||
<HintPath>..\..\Lib\Microsoft.Web.Services3.dll</HintPath>
|
<HintPath>..\..\Lib\Microsoft.Web.Services3.dll</HintPath>
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\packages\Newtonsoft.Json.6.0.6\lib\net35\Newtonsoft.Json.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
@ -317,6 +321,7 @@
|
||||||
<Content Include="App_Data\ESModule_ControlsHierarchy.config">
|
<Content Include="App_Data\ESModule_ControlsHierarchy.config">
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Include="AjaxHandler.ashx" />
|
||||||
<None Include="App_Data\SupportedThemes.config" />
|
<None Include="App_Data\SupportedThemes.config" />
|
||||||
<None Include="App_Data\Countries.config" />
|
<None Include="App_Data\Countries.config" />
|
||||||
<None Include="App_Data\CountryStates.config" />
|
<None Include="App_Data\CountryStates.config" />
|
||||||
|
|
|
@ -53,6 +53,7 @@
|
||||||
<LocalizationToolkitBuild>$(BuildFolder)\LocalizationToolkit</LocalizationToolkitBuild>
|
<LocalizationToolkitBuild>$(BuildFolder)\LocalizationToolkit</LocalizationToolkitBuild>
|
||||||
<InstallerBuild>$(BuildFolder)\Installer</InstallerBuild>
|
<InstallerBuild>$(BuildFolder)\Installer</InstallerBuild>
|
||||||
<FixDefaultPublicFolderMailboxBuild>$(BuildFolder)\FixDefaultPublicFolderMailbox</FixDefaultPublicFolderMailboxBuild>
|
<FixDefaultPublicFolderMailboxBuild>$(BuildFolder)\FixDefaultPublicFolderMailbox</FixDefaultPublicFolderMailboxBuild>
|
||||||
|
<WiXInstallerBuild>$(BuildFolder)\WiXInstaller</WiXInstallerBuild>
|
||||||
|
|
||||||
<ftphost></ftphost>
|
<ftphost></ftphost>
|
||||||
<ftpUsername></ftpUsername>
|
<ftpUsername></ftpUsername>
|
||||||
|
@ -362,7 +363,16 @@
|
||||||
<Copy SourceFiles="@(FixDefaultPublicFolderMailboxBuildFiles)" DestinationFolder="$(FixDefaultPublicFolderMailboxBuild)\%(RecursiveDir)" />
|
<Copy SourceFiles="@(FixDefaultPublicFolderMailboxBuildFiles)" DestinationFolder="$(FixDefaultPublicFolderMailboxBuild)\%(RecursiveDir)" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
<Target Name="Build" DependsOnTargets="CreateFixDefaultPublicFolderMailboxBuild">
|
<Target Name="WiXCreateRedistFileListBuild" DependsOnTargets="CreateFixDefaultPublicFolderMailboxBuild" >
|
||||||
|
<RemoveDir Directories="$(WiXInstallerBuild)\ComponentsFiles" />
|
||||||
|
<MakeDir Directories="$(WiXInstallerBuild)\ComponentsFiles" />
|
||||||
|
<Exec Command='"$(WIX)bin\heat.exe" dir $(EnterpriseServerBuild) -o $(WiXInstallerBuild)\ComponentsFiles\EnterpriseServerFiles.wxs -gg -sreg -srd -var wix.BUILDESPATH -cg EnterpriseServerFiles -dr INSTALLENTERPRISESERVERFOLDER' />
|
||||||
|
<Exec Command='"$(WIX)bin\heat.exe" dir $(ServerBuild) -o $(WiXInstallerBuild)\ComponentsFiles\ServerFiles.wxs -gg -sreg -srd -var wix.BUILDSPATH -cg ServerFiles -dr INSTALLSERVERFOLDER' />
|
||||||
|
<Exec Command='"$(WIX)bin\heat.exe" dir $(PortalBuild) -o $(WiXInstallerBuild)\ComponentsFiles\PortalFiles.wxs -gg -sreg -srd -var wix.BUILDPPATH -cg PortalFiles -dr INSTALLPORTALFOLDER' />
|
||||||
|
<Exec Command='"$(WIX)bin\heat.exe" dir $(WebDavPortalBuild) -o $(WiXInstallerBuild)\ComponentsFiles\WebDavPortalFiles.wxs -gg -sreg -srd -var wix.BUILDWDPPATH -cg WebDavPortalFiles -dr INSTALLWEBDAVPORTALFOLDER' />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="Build" DependsOnTargets="WiXCreateRedistFileListBuild">
|
||||||
<!-- Do nothing -->
|
<!-- Do nothing -->
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
|
@ -385,7 +395,6 @@
|
||||||
<AWStatsViewerInstall>$(ToolsFolder)\AWStats.Viewer</AWStatsViewerInstall>
|
<AWStatsViewerInstall>$(ToolsFolder)\AWStats.Viewer</AWStatsViewerInstall>
|
||||||
<WSPTransportAgentInstall>$(ToolsFolder)\WSPTransportAgent</WSPTransportAgentInstall>
|
<WSPTransportAgentInstall>$(ToolsFolder)\WSPTransportAgent</WSPTransportAgentInstall>
|
||||||
<FixDefaultPublicFolderMailboxInstall>$(ToolsFolder)\FixDefaultPublicFolderMailbox</FixDefaultPublicFolderMailboxInstall>
|
<FixDefaultPublicFolderMailboxInstall>$(ToolsFolder)\FixDefaultPublicFolderMailbox</FixDefaultPublicFolderMailboxInstall>
|
||||||
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<Target Name="PrepareInstalls" DependsOnTargets="Build">
|
<Target Name="PrepareInstalls" DependsOnTargets="Build">
|
||||||
|
@ -641,8 +650,15 @@
|
||||||
<Copy SourceFiles="$(SetupBuildFolder)\setup.pdb" DestinationFolder="$(StandaloneInstall)\Setup" Condition="'$(BuildConfiguration)' == 'Debug'" />
|
<Copy SourceFiles="$(SetupBuildFolder)\setup.pdb" DestinationFolder="$(StandaloneInstall)\Setup" Condition="'$(BuildConfiguration)' == 'Debug'" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="CreateStandaloneFullMsi" DependsOnTargets="CreateSetupDLL">
|
||||||
|
<MSBuild Projects='$(RootFolder)\WebsitePanel.Installer\Sources\Setup.WIXInstaller\Setup.WIXInstaller.wixproj' Properties='Configuration=$(BuildConfiguration)' Targets='Build'>
|
||||||
|
<Output TaskParameter="TargetOutputs" ItemName="StandaloneFullMsi" />
|
||||||
|
</MSBuild>
|
||||||
|
<Copy SourceFiles="@(StandaloneFullMsi)" DestinationFolder="$(DeployFolder)\%(RecursiveDir)" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
<!-- Deploy -->
|
<!-- Deploy -->
|
||||||
<Target Name="Deploy" DependsOnTargets="CreateSetupDLL" >
|
<Target Name="Deploy" DependsOnTargets="CreateStandaloneFullMsi" >
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PortalInstallFiles Include="$(PortalInstall)\**\*.*" />
|
<PortalInstallFiles Include="$(PortalInstall)\**\*.*" />
|
||||||
<WebDavPortalInstallFiles Include="$(WebDavPortalInstall)\**\*.*" />
|
<WebDavPortalInstallFiles Include="$(WebDavPortalInstall)\**\*.*" />
|
||||||
|
@ -815,10 +831,11 @@
|
||||||
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanel-WSPTransportAgent-$(Version).zip" LocalFile="$(ToolsFolder)\WebsitePanel-WSPTransportAgent-$(Version).zip" />
|
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanel-WSPTransportAgent-$(Version).zip" LocalFile="$(ToolsFolder)\WebsitePanel-WSPTransportAgent-$(Version).zip" />
|
||||||
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanel.LocalizationToolkit-$(Version).msi" LocalFile="$(ToolsFolder)\WebsitePanel.LocalizationToolkit.msi" />
|
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanel.LocalizationToolkit-$(Version).msi" LocalFile="$(ToolsFolder)\WebsitePanel.LocalizationToolkit.msi" />
|
||||||
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanelInstaller-$(Version).msi" LocalFile="$(DeployFolder)\WebsitePanelInstaller.msi" />
|
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanelInstaller-$(Version).msi" LocalFile="$(DeployFolder)\WebsitePanelInstaller.msi" />
|
||||||
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanelInstaller-$(Version)-webpi.msi" LocalFile="$(DeployFolder)\WebsitePanelInstaller.msi" />
|
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanelInstaller-$(Version)-webpi.msi" LocalFile="$(DeployFolder)\WebsitePanelInstaller.msi" />
|
||||||
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanel-HyperVUtils-$(Version).zip" LocalFile="$(ToolsFolder)\WebsitePanel-HyperVUtils-$(Version).zip" />
|
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanel-HyperVUtils-$(Version).zip" LocalFile="$(ToolsFolder)\WebsitePanel-HyperVUtils-$(Version).zip" />
|
||||||
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanel-VMConfig-$(Version).zip" LocalFile="$(ToolsFolder)\WebsitePanel-VMConfig-$(Version).zip" />
|
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanel-VMConfig-$(Version).zip" LocalFile="$(ToolsFolder)\WebsitePanel-VMConfig-$(Version).zip" />
|
||||||
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/Websitepanel-SchedulerService-$(Version).msi" LocalFile="$(DeployFolder)\Websitepanel-SchedulerService.msi" />
|
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/Websitepanel-SchedulerService-$(Version).msi" LocalFile="$(DeployFolder)\Websitepanel-SchedulerService.msi" />
|
||||||
|
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanel-Full-$(Version).msi" LocalFile="$(DeployFolder)\Websitepanel.msi" />
|
||||||
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/Manual-Update-$(Version).zip" LocalFile="$(DeployFolder)\Manual-Update.zip" />
|
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/Manual-Update-$(Version).zip" LocalFile="$(DeployFolder)\Manual-Update.zip" />
|
||||||
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanel-FixDefaultPublicFolderMailbox-$(Version).zip" LocalFile="$(ToolsFolder)\WebsitePanel-FixDefaultPublicFolderMailbox-$(Version).zip" />
|
<FtpUpload Username="$(ftpUsername)" password="$(ftpPassword)" RemoteUri="ftp://$(ftphost)/WebsitePanel-FixDefaultPublicFolderMailbox-$(Version).zip" LocalFile="$(ToolsFolder)\WebsitePanel-FixDefaultPublicFolderMailbox-$(Version).zip" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
BIN
tools/WIX/LuxTasks.dll
Normal file
BIN
tools/WIX/LuxTasks.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
tools/WIX/ThmViewer.exe
Normal file
BIN
tools/WIX/ThmViewer.exe
Normal file
Binary file not shown.
Binary file not shown.
BIN
tools/WIX/WixComPlusExtension.dll
Normal file
BIN
tools/WIX/WixComPlusExtension.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue