From 837e1fec618645f0149918da8a2ca053b256d215 Mon Sep 17 00:00:00 2001 From: alexY Date: Mon, 27 Apr 2015 16:43:30 +0300 Subject: [PATCH] Searchbox controls replaced by JQuery autocomplete. --- WebsitePanel/Database/update_db.sql | 228 +++++++++++++++++- .../PackagesProxy.cs | 23 +- .../Data/DataProvider.cs | 21 ++ .../Packages/PackageController.cs | 9 + .../esPackages.asmx.cs | 10 + .../WebsitePanel.Server.csproj | 3 +- .../WebsitePanel.WebPortal/AjaxHandler.ashx | 1 + .../App_Data/SiteSettings.config | 3 + .../App_Data/WebsitePanel_Modules.config | 8 + .../App_Data/WebsitePanel_Pages.config | 8 + .../WebsitePanel_Modules.ascx.resx | 3 + .../WebsitePanel_Pages.ascx.resx | 6 + .../App_Themes/Default/Styles/Skin.css | 74 +++++- .../Code/PortalUtils.cs | 7 + .../App_LocalResources/SearchObject.ascx.resx | 110 +++++++++ .../WebsitePanel/Code/Helpers/AjaxHandler.cs | 68 ++++++ .../Code/Helpers/PackagesHelper.cs | 29 +++ .../WebsitePanel/SearchObject.ascx | 125 ++++++++++ .../WebsitePanel/SearchObject.ascx.cs | 86 +++++++ .../SearchObject.ascx.designer.cs | 51 ++++ .../WebsitePanel/SearchSpaces.ascx | 91 ++++++- .../WebsitePanel/SearchSpaces.ascx.cs | 6 +- .../SearchSpaces.ascx.designer.cs | 54 ++--- .../WebsitePanel/SearchUsers.ascx | 100 +++++++- .../WebsitePanel/SearchUsers.ascx.cs | 6 +- .../WebsitePanel/SearchUsers.ascx.designer.cs | 54 ++--- .../App_LocalResources/SearchObject.ascx.resx | 110 +++++++++ .../SkinControls/GlobalSearch.ascx | 129 ++++++---- .../SkinControls/GlobalSearch.ascx.cs | 81 ++++--- .../GlobalSearch.ascx.designer.cs | 111 +-------- .../WebsitePanel/UserControls/SearchBox.ascx | 96 +++++++- .../UserControls/SearchBox.ascx.cs | 24 +- .../UserControls/SearchBox.ascx.designer.cs | 53 ++-- .../UserCustomers.ascx.designer.cs | 28 --- .../WebsitePanel/UserCustomersSummary.ascx | 12 +- .../WebsitePanel/UserCustomersSummary.ascx.cs | 16 +- .../UserCustomersSummary.ascx.designer.cs | 50 +--- .../WebsitePanel/UserSpaces.ascx | 1 - .../WebsitePanel/UserSpaces.ascx.cs | 3 +- .../WebsitePanel/UserSpaces.ascx.designer.cs | 28 --- .../WebsitePanel.Portal.Modules.csproj | 10 + .../JavaScript/dlgutils.js | 29 +++ .../WebsitePanel.WebPortal.csproj | 5 + 43 files changed, 1545 insertions(+), 425 deletions(-) create mode 100644 WebsitePanel/Sources/WebsitePanel.WebPortal/AjaxHandler.ashx create mode 100644 WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SearchObject.ascx.resx create mode 100644 WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/AjaxHandler.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchObject.ascx create mode 100644 WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchObject.ascx.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchObject.ascx.designer.cs create mode 100644 WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/App_LocalResources/SearchObject.ascx.resx create mode 100644 WebsitePanel/Sources/WebsitePanel.WebPortal/JavaScript/dlgutils.js diff --git a/WebsitePanel/Database/update_db.sql b/WebsitePanel/Database/update_db.sql index f1180aeb..1e4c80fe 100644 --- a/WebsitePanel/Database/update_db.sql +++ b/WebsitePanel/Database/update_db.sql @@ -9797,4 +9797,230 @@ RETURN GO UPDATE [dbo].[ServiceItemTypes] SET TypeName ='WebsitePanel.Providers.SharePoint.SharePointEnterpriseSiteCollection, WebsitePanel.Providers.Base' WHERE DisplayName = 'SharePointEnterpriseSiteCollection' -GO \ No newline at end of file +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 diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/PackagesProxy.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/PackagesProxy.cs index 78136b51..54603503 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/PackagesProxy.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Client/PackagesProxy.cs @@ -906,7 +906,28 @@ namespace WebsitePanel.EnterpriseServer { object[] results = this.EndInvoke(asyncResult); return ((System.Data.DataSet)(results[0])); } - + + /// + /// //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 + /// public void SearchServiceItemsPagedAsync(int userId, int itemTypeId, string filterValue, string sortColumn, int startRow, int maximumRows) { this.SearchServiceItemsPagedAsync(userId, itemTypeId, filterValue, sortColumn, startRow, maximumRows, null); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs index d60b57fa..637e08bb 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Data/DataProvider.cs @@ -138,6 +138,27 @@ namespace WebsitePanel.EnterpriseServer 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) { return SqlHelper.ExecuteDataset(ConnectionString, CommandType.StoredProcedure, diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs index b47b2088..ccd2e736 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer.Code/Packages/PackageController.cs @@ -317,6 +317,15 @@ namespace WebsitePanel.EnterpriseServer 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) { return DataProvider.GetPackageQuotas(SecurityContext.User.UserId, packageId); diff --git a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esPackages.asmx.cs b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esPackages.asmx.cs index fa390663..9d9a6b52 100644 --- a/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esPackages.asmx.cs +++ b/WebsitePanel/Sources/WebsitePanel.EnterpriseServer/esPackages.asmx.cs @@ -134,6 +134,16 @@ namespace WebsitePanel.EnterpriseServer 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] public DataSet GetPackagesPaged(int userId, string filterColumn, string filterValue, string sortColumn, int startRow, int maximumRows) diff --git a/WebsitePanel/Sources/WebsitePanel.Server/WebsitePanel.Server.csproj b/WebsitePanel/Sources/WebsitePanel.Server/WebsitePanel.Server.csproj index 0af042ca..fc797ecc 100644 --- a/WebsitePanel/Sources/WebsitePanel.Server/WebsitePanel.Server.csproj +++ b/WebsitePanel/Sources/WebsitePanel.Server/WebsitePanel.Server.csproj @@ -17,7 +17,7 @@ 4.0 - v3.5 + v4.0 false @@ -80,6 +80,7 @@ + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/AjaxHandler.ashx b/WebsitePanel/Sources/WebsitePanel.WebPortal/AjaxHandler.ashx new file mode 100644 index 00000000..36339f6b --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/AjaxHandler.ashx @@ -0,0 +1 @@ +<%@ WebHandler Language="C#" Class="WebsitePanel.WebPortal.WebsitePanelAjaxHandler,WebsitePanel.Portal.Modules" %> diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/SiteSettings.config b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/SiteSettings.config index 4fc71ff6..99c5e5a3 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/SiteSettings.config +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/SiteSettings.config @@ -29,6 +29,9 @@ NestedSpaces SearchUsers SearchSpaces + + SearchObject + LoggedUserDetails Browse2.ascx diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Modules.config b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Modules.config index 827da994..be66be3e 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Modules.config +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Modules.config @@ -25,6 +25,14 @@ + + + + + + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Pages.config b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Pages.config index 23692e45..c7a3c9ff 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Pages.config +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Data/WebsitePanel_Pages.config @@ -32,6 +32,14 @@ + + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Modules.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Modules.ascx.resx index 08aa99a4..954c6823 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Modules.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Modules.ascx.resx @@ -711,6 +711,9 @@ Search Hosting Spaces + + Search Objects + Search User Accounts diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Pages.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Pages.ascx.resx index d5ee58d7..26ac231f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Pages.ascx.resx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_GlobalResources/WebsitePanel_Pages.ascx.resx @@ -141,6 +141,12 @@ {user} - Search Hosting Spaces + + Search Objects + + + {user} - Search Objects + Account Home diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css index bb2b9fb5..42b1c956 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/App_Themes/Default/Styles/Skin.css @@ -303,4 +303,76 @@ p.warningText {font-size:14px; color:Red; text-align:center;} .Hidden {display: none;} .LinkText {color:#428bca;} .WrapText { white-space: normal;} -.chosen-container { margin-top: -30px; } \ No newline at end of file +.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; +} \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/Code/PortalUtils.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/Code/PortalUtils.cs index e7a15ca3..fdb7e48b 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/Code/PortalUtils.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/Code/PortalUtils.cs @@ -842,6 +842,13 @@ namespace WebsitePanel.Portal return PortalConfiguration.SiteSettings["SpacesSearchPage"]; } + //TODO START + public static string GetObjectSearchPageId() + { + return PortalConfiguration.SiteSettings["SearchObjectPage"]; + } + //TODO END + public static string GetNestedSpacesPageId() { return PortalConfiguration.SiteSettings["NestedSpacesPage"]; diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SearchObject.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SearchObject.ascx.resx new file mode 100644 index 00000000..20f2eb29 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/App_LocalResources/SearchObject.ascx.resx @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Type + + + Search text + + + Full Type + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/AjaxHandler.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/AjaxHandler.cs new file mode 100644 index 00000000..ce3a6e51 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/AjaxHandler.cs @@ -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> dataList = new List>(); + for (int i = 0; i < dt.Rows.Count; ++i) + { + DataRow row = dt.Rows[i]; + Dictionary obj = new Dictionary(); + 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> dataList = new List>(); + for (int i = 0; i < dt.Rows.Count; ++i) + { + DataRow row = dt.Rows[i]; + Dictionary obj = new Dictionary(); + 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); + } + } + } +}; \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs index 0f9319b0..eac0381f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/Code/Helpers/PackagesHelper.cs @@ -36,6 +36,7 @@ using System.Web.Caching; using WebsitePanel.EnterpriseServer; using System.Collections; +using System.Collections.Generic; namespace WebsitePanel.Portal { @@ -244,5 +245,33 @@ namespace WebsitePanel.Portal return dsServiceItemsPaged.Tables[1]; } #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 } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchObject.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchObject.ascx new file mode 100644 index 00000000..5defa1d4 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchObject.ascx @@ -0,0 +1,125 @@ +<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SearchObject.ascx.cs" Inherits="WebsitePanel.Portal.SearchObject" %> +<%@ Import Namespace="WebsitePanel.Portal" %> + + + + + + + + Type + + + <%# Eval("ColumnType") %> + + + + + + <%# Eval("TextSearch") %> + + + + + + + + + + + + + + + + + + + + + + + +
+
Select filter
+
+ + + + + + <%# Eval("ColumnType") %> + + + + +
+
+ Apply + Close +
+
+ +
\ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchObject.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchObject.ascx.cs new file mode 100644 index 00000000..20642283 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchObject.ascx.cs @@ -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(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; + } + + } +} \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchObject.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchObject.ascx.designer.cs new file mode 100644 index 00000000..59908f0a --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchObject.ascx.designer.cs @@ -0,0 +1,51 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace WebsitePanel.Portal { + + + public partial class SearchObject { + + /// + /// gvObjects control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.GridView gvObjects; + + /// + /// odsObjectsPaged control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.ObjectDataSource odsObjectsPaged; + + /// + /// odsObjectTypes control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.ObjectDataSource odsObjectTypes; + + /// + /// tbFilters control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox tbFilters; + } +} diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx index 6286574d..0f2d5da8 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx @@ -3,13 +3,94 @@ <%@ Register Src="UserControls/ServerDetails.ascx" TagName="ServerDetails" TagPrefix="uc3" %> <%@ Register Src="UserControls/Comments.ascx" TagName="Comments" TagPrefix="uc4" %> +
- - - - + + +
+ + + + + diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.cs index a0b9fd24..b9443ecb 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.cs @@ -77,7 +77,7 @@ namespace WebsitePanel.Portal // bind filter 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) { - string query = txtFilterValue.Text.Trim().Replace("%", ""); + string query = tbSearchText.Text.Trim().Replace("%", ""); + if (query.Length == 0) + query = tbSearch.Text.Trim().Replace("%", ""); Response.Redirect(NavigateURL( PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(), diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.designer.cs index 7e77a82e..cc1456fd 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchSpaces.ascx.designer.cs @@ -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. - //------------------------------------------------------------------------------ // // This code was generated by a tool. @@ -68,22 +40,40 @@ namespace WebsitePanel.Portal { protected global::System.Web.UI.WebControls.DropDownList ddlItemType; /// - /// txtFilterValue control. + /// tbSearch control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.TextBox txtFilterValue; + protected global::System.Web.UI.WebControls.TextBox tbSearch; /// - /// cmdSearch control. + /// tbSearchFullType control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.ImageButton cmdSearch; + protected global::System.Web.UI.WebControls.TextBox tbSearchFullType; + + /// + /// tbSearchText control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox tbSearchText; + + /// + /// ImageButton1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.ImageButton ImageButton1; /// /// gvPackages control. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchUsers.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchUsers.ascx index 915679be..2ed999ef 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchUsers.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchUsers.ascx @@ -5,16 +5,100 @@ <%@ Register Src="UserControls/UserDetails.ascx" TagName="UserDetails" TagPrefix="uc2" %> <%@ Register Src="UserControls/CollapsiblePanel.ascx" TagName="CollapsiblePanel" TagPrefix="wsp" %> + +
- + - - Username - Email - FullName - CompanyName - +
+
+ + + + + + + +
+
+ + + + + + + + +
+
+
+ + + + +
+ + Username + Email + FullName + CompanyName + + + + + + +
+
+ + + + + + + + +
+
+
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchUsers.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchUsers.ascx.cs index 7561d0d4..724f3dab 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchUsers.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchUsers.ascx.cs @@ -46,7 +46,7 @@ namespace WebsitePanel.Portal if (!IsPostBack) { 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) { - string query = txtFilterValue.Text.Trim().Replace("%", ""); + string query = tbSearchText.Text.Trim().Replace("%", ""); + if (query.Length == 0) + query = tbSearch.Text.Trim().Replace("%", ""); Response.Redirect(NavigateURL( PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(), diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchUsers.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchUsers.ascx.designer.cs index ee0edd68..e613d945 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchUsers.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SearchUsers.ascx.designer.cs @@ -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. - //------------------------------------------------------------------------------ // // This code was generated by a tool. @@ -68,22 +40,40 @@ namespace WebsitePanel.Portal { protected global::System.Web.UI.WebControls.DropDownList ddlFilterColumn; /// - /// txtFilterValue control. + /// tbSearch control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.TextBox txtFilterValue; + protected global::System.Web.UI.WebControls.TextBox tbSearch; /// - /// cmdSearch control. + /// tbSearchFullType control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.ImageButton cmdSearch; + protected global::System.Web.UI.WebControls.TextBox tbSearchFullType; + + /// + /// tbSearchText control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox tbSearchText; + + /// + /// ImageButton1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.ImageButton ImageButton1; /// /// gvUsers control. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/App_LocalResources/SearchObject.ascx.resx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/App_LocalResources/SearchObject.ascx.resx new file mode 100644 index 00000000..20f2eb29 --- /dev/null +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/App_LocalResources/SearchObject.ascx.resx @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Type + + + Search text + + + Full Type + + \ No newline at end of file diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/GlobalSearch.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/GlobalSearch.ascx index ae8ad6f1..51e3e0af 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/GlobalSearch.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/GlobalSearch.ascx @@ -1,54 +1,87 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="GlobalSearch.ascx.cs" Inherits="WebsitePanel.Portal.SkinControls.GlobalSearch" %> + + + + + - - - - - - - -
- - - - - <%# Eval("Name") %> - - - - - - - - - - -
<%# Eval("Name")%>
-
-
-
- - - - - Username - Email - FullName - CompanyName - - - - - - - - - - -
+ + + + +
+
+ + + + + + + + + +
+
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/GlobalSearch.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/GlobalSearch.ascx.cs index 96668f33..db40d03c 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/GlobalSearch.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/GlobalSearch.ascx.cs @@ -70,32 +70,20 @@ namespace WebsitePanel.Portal.SkinControls 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", +// ""); + if (!IsPostBack) { - BindTabs(); BindItemTypes(); } } - private void BindTabs() - { - List tabsList = new List(); - 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() { - // bind item types +/* // bind item types DataTable dtItemTypes = ES.Services.Packages.GetSearchableServiceItemTypes().Tables[0]; foreach (DataRow dr in dtItemTypes.Rows) { @@ -108,28 +96,63 @@ namespace WebsitePanel.Portal.SkinControls } // 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) { - Response.Redirect(PortalUtils.NavigatePageURL(PortalUtils.GetUsersSearchPageId(), +/* Response.Redirect(PortalUtils.NavigatePageURL(PortalUtils.GetUsersSearchPageId(), PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(), "Query=" + Server.UrlEncode(txtUsersQuery.Text), - "Criteria=" + ddlUserFields.SelectedValue)); + "Criteria=" + ddlUserFields.SelectedValue)); */ } 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(), "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 } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/GlobalSearch.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/GlobalSearch.ascx.designer.cs index 5221e908..1fc6e519 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/GlobalSearch.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/SkinControls/GlobalSearch.ascx.designer.cs @@ -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. - //------------------------------------------------------------------------------ // // This code was generated by a tool. @@ -50,111 +22,48 @@ namespace WebsitePanel.Portal.SkinControls { protected global::System.Web.UI.UpdatePanel updatePanelUsers; /// - /// dlTabs control. + /// tbSearch control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.DataList dlTabs; + protected global::System.Web.UI.WebControls.TextBox tbSearch; /// - /// tabs control. + /// tbSearchColumnType control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.MultiView tabs; + protected global::System.Web.UI.WebControls.TextBox tbSearchColumnType; /// - /// tabSearchUsers control. + /// tbSearchFullType control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.View tabSearchUsers; + protected global::System.Web.UI.WebControls.TextBox tbSearchFullType; /// - /// pnlSearchUsers control. + /// tbSearchText control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.Panel pnlSearchUsers; + protected global::System.Web.UI.WebControls.TextBox tbSearchText; /// - /// ddlUserFields control. + /// ImageButton1 control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.DropDownList ddlUserFields; - - /// - /// txtUsersQuery control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.TextBox txtUsersQuery; - - /// - /// btnSearchUsers control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.ImageButton btnSearchUsers; - - /// - /// tabSearchSpaces control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.View tabSearchSpaces; - - /// - /// pnlSearchSpaces control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.Panel pnlSearchSpaces; - - /// - /// ddlItemType control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.DropDownList ddlItemType; - - /// - /// txtSpacesQuery control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.TextBox txtSpacesQuery; - - /// - /// btnSearchSpaces control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.ImageButton btnSearchSpaces; + protected global::System.Web.UI.WebControls.ImageButton ImageButton1; } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx index bb53c82a..f6e0b76f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx @@ -1,7 +1,95 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SearchBox.ascx.cs" Inherits="WebsitePanel.Portal.SearchBox" %> + + + - - - \ No newline at end of file + + + + + + +
+ + + + + + + +
+
+ + + + + + + + +
+
+
+ diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx.cs index b482e575..8b98b4f5 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx.cs @@ -60,13 +60,23 @@ namespace WebsitePanel.Portal { 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("%", ""); return "%" + val + "%"; } 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() { 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))); } } } diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx.designer.cs index 8ce9892c..4ecdb2e4 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserControls/SearchBox.ascx.designer.cs @@ -1,38 +1,9 @@ -// 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. - //------------------------------------------------------------------------------ // // This code was generated by a tool. -// Runtime Version:2.0.50727.3053 // // Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. +// the code is regenerated. // //------------------------------------------------------------------------------ @@ -69,13 +40,31 @@ namespace WebsitePanel.Portal { protected global::System.Web.UI.WebControls.DropDownList ddlFilterColumn; /// - /// txtFilterValue control. + /// tbSearch control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.TextBox txtFilterValue; + protected global::System.Web.UI.WebControls.TextBox tbSearch; + + /// + /// tbSearchFullType control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox tbSearchFullType; + + /// + /// tbSearchText control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.TextBox tbSearchText; /// /// cmdSearch control. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomers.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomers.ascx.designer.cs index cf4a2f26..e1f95257 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomers.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomers.ascx.designer.cs @@ -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. - //------------------------------------------------------------------------------ // // This code was generated by a tool. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx index fe1a5b17..6e1cfa8f 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx @@ -1,5 +1,7 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="UserCustomersSummary.ascx.cs" Inherits="WebsitePanel.Portal.UserCustomersSummary" %> <%@ Register TagPrefix="wsp" TagName="CollapsiblePanel" Src="UserControls/CollapsiblePanel.ascx" %> +<%@ Register Src="UserControls/SearchBox.ascx" TagName="SearchBox" TagPrefix="uc1" %> + <%@ Import Namespace="WebsitePanel.Portal" %>
@@ -7,14 +9,8 @@ runat="server" CssClass="Button1">
- - - Username - E-mail - FullName - CompanyName - + +
diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx.cs index bbe6f115..ba879d62 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx.cs @@ -46,7 +46,13 @@ namespace WebsitePanel.Portal PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString()); 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() @@ -73,14 +79,6 @@ namespace WebsitePanel.Portal 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) { Response.Redirect(EditUrl(PortalUtils.USER_ID_PARAM, PanelSecurity.SelectedUserId.ToString(), "create_user")); diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx.designer.cs b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx.designer.cs index dc1717d2..bb552025 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx.designer.cs +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserCustomersSummary.ascx.designer.cs @@ -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. - //------------------------------------------------------------------------------ // // This code was generated by a tool. @@ -59,31 +31,13 @@ namespace WebsitePanel.Portal { protected global::System.Web.UI.WebControls.Panel tblSearch; /// - /// ddlFilterColumn control. + /// searchBox control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.DropDownList ddlFilterColumn; - - /// - /// txtFilterValue control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.TextBox txtFilterValue; - - /// - /// cmdSearch control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.ImageButton cmdSearch; + protected global::WebsitePanel.Portal.SearchBox searchBox; /// /// allCustomers control. diff --git a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx index 4802f422..9c5c056d 100644 --- a/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx +++ b/WebsitePanel/Sources/WebsitePanel.WebPortal/DesktopModules/WebsitePanel/UserSpaces.ascx @@ -5,7 +5,6 @@ <%@ Register Src="UserOrganization.ascx" TagName="UserOrganization" TagPrefix="wsp" %> <%@ Import Namespace="WebsitePanel.Portal" %> -