quick search: autocomplete fix

This commit is contained in:
doctogonzo 2015-05-21 11:16:30 +02:00
parent 6e4437f8b0
commit 013a9c16d7

View file

@ -12232,12 +12232,8 @@ DECLARE @Users TABLE
UserID int UserID int
) )
INSERT INTO @Users (UserID) INSERT INTO @Users (UserID)
SELECT ' SELECT
U.UserID
IF @OnlyFind = 1
SET @sqlUsers = @sqlUsers + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlUsers = @sqlUsers + 'U.UserID
FROM UsersDetailed AS U FROM UsersDetailed AS U
WHERE WHERE
U.UserID <> @UserID AND U.IsPeer = 0 AND U.UserID <> @UserID AND U.IsPeer = 0 AND
@ -12249,8 +12245,12 @@ WHERE
AND ((@RoleID = 0) OR (@RoleID > 0 AND U.RoleID = @RoleID)) AND ((@RoleID = 0) OR (@RoleID > 0 AND U.RoleID = @RoleID))
AND @HasUserRights = 1 AND @HasUserRights = 1
SET @curValue = cursor local for SET @curValue = cursor local for
SELECT SELECT '
U.ItemID,
IF @OnlyFind = 1
SET @sqlUsers = @sqlUsers + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlUsers = @sqlUsers + 'U.ItemID,
U.TextSearch, U.TextSearch,
U.ColumnType, U.ColumnType,
''Users'' as FullType, ''Users'' as FullType,
@ -12274,8 +12274,10 @@ SELECT U3.UserID as ItemID, U3.FirstName + '' '' + U3.LastName as TextSearch, @c
FROM dbo.Users AS U3) as U FROM dbo.Users AS U3) as U
WHERE TextSearch<>'' '' OR ISNULL(TextSearch, 0) > 0 WHERE TextSearch<>'' '' OR ISNULL(TextSearch, 0) > 0
) )
AS U ON TU.UserID = U.ItemID AS U ON TU.UserID = U.ItemID'
ORDER BY TextSearch' IF @FilterValue <> ''
SET @sqlUsers = @sqlUsers + ' WHERE TextSearch LIKE ''' + @FilterValue + ''''
SET @sqlUsers = @sqlUsers + ' ORDER BY TextSearch'
SET @sqlUsers = @sqlUsers + ' open @curValue' SET @sqlUsers = @sqlUsers + ' open @curValue'
@ -12288,12 +12290,8 @@ SET @sqlSpace = '
ItemID int ItemID int
) )
INSERT INTO @ItemsService (ItemID) INSERT INTO @ItemsService (ItemID)
SELECT ' SELECT
SI.ItemID
IF @OnlyFind = 1
SET @sqlSpace = @sqlSpace + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlSpace = @sqlSpace + 'SI.ItemID
FROM ServiceItems AS SI FROM ServiceItems AS SI
INNER JOIN Packages AS P ON P.PackageID = SI.PackageID INNER JOIN Packages AS P ON P.PackageID = SI.PackageID
INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID INNER JOIN UsersDetailed AS U ON P.UserID = U.UserID
@ -12313,8 +12311,12 @@ SET @sqlSpace = @sqlSpace + 'SI.ItemID
dbo.CheckUserParent(@UserID, P.UserID) = 1 dbo.CheckUserParent(@UserID, P.UserID) = 1
SET @curValue = cursor local for SET @curValue = cursor local for
SELECT SELECT '
IF @OnlyFind = 1
SET @sqlSpace = @sqlSpace + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlSpace = @sqlSpace + '
SI.ItemID as ItemID, SI.ItemID as ItemID,
SI.ItemName as TextSearch, SI.ItemName as TextSearch,
STYPE.DisplayName as ColumnType, STYPE.DisplayName as ColumnType,
@ -12324,9 +12326,17 @@ SET @sqlSpace = @sqlSpace + 'SI.ItemID
FROM @ItemsService AS I FROM @ItemsService AS I
INNER JOIN ServiceItems AS SI ON I.ItemID = SI.ItemID INNER JOIN ServiceItems AS SI ON I.ItemID = SI.ItemID
INNER JOIN ServiceItemTypes AS STYPE ON SI.ItemTypeID = STYPE.ItemTypeID INNER JOIN ServiceItemTypes AS STYPE ON SI.ItemTypeID = STYPE.ItemTypeID
WHERE STYPE.Searchable = 1 WHERE (STYPE.Searchable = 1)'
IF @FilterValue <> ''
SET @sqlSpace = @sqlSpace + ' AND (SI.ItemName LIKE ''' + @FilterValue + ''')'
SET @sqlSpace = @sqlSpace + '
UNION ( UNION (
SELECT SELECT '
IF @OnlyFind = 1
SET @sqlSpace = @sqlSpace + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlSpace = @sqlSpace + '
D.DomainID AS ItemID, D.DomainID AS ItemID,
D.DomainName as TextSearch, D.DomainName as TextSearch,
''Domain'' as ColumnType, ''Domain'' as ColumnType,
@ -12335,9 +12345,17 @@ SET @sqlSpace = @sqlSpace + 'SI.ItemID
0 as AccountID 0 as AccountID
FROM @ItemsDomain AS I FROM @ItemsDomain AS I
INNER JOIN Domains AS D ON I.ItemID = D.DomainID INNER JOIN Domains AS D ON I.ItemID = D.DomainID
WHERE D.IsDomainPointer=0 WHERE (D.IsDomainPointer=0)'
IF @FilterValue <> ''
SET @sqlSpace = @sqlSpace + ' AND (D.DomainName LIKE ''' + @FilterValue + ''')'
SET @sqlSpace = @sqlSpace + '
UNION UNION
SELECT SELECT '
IF @OnlyFind = 1
SET @sqlSpace = @sqlSpace + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlSpace = @sqlSpace + '
EA.ItemID AS ItemID, EA.ItemID AS ItemID,
EA.DisplayName as TextSearch, EA.DisplayName as TextSearch,
''ExchangeAccount'' as ColumnType, ''ExchangeAccount'' as ColumnType,
@ -12346,9 +12364,17 @@ SET @sqlSpace = @sqlSpace + 'SI.ItemID
EA.AccountID as AccountID EA.AccountID as AccountID
FROM @ItemsService AS I2 FROM @ItemsService AS I2
INNER JOIN ServiceItems AS SI2 ON I2.ItemID = SI2.ItemID INNER JOIN ServiceItems AS SI2 ON I2.ItemID = SI2.ItemID
INNER JOIN ExchangeAccounts AS EA ON I2.ItemID = EA.ItemID INNER JOIN ExchangeAccounts AS EA ON I2.ItemID = EA.ItemID'
IF @FilterValue <> ''
SET @sqlSpace = @sqlSpace + ' WHERE (EA.DisplayName LIKE ''' + @FilterValue + ''')'
SET @sqlSpace = @sqlSpace + '
UNION UNION
SELECT SELECT '
IF @OnlyFind = 1
SET @sqlSpace = @sqlSpace + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlSpace = @sqlSpace + '
EA4.ItemID AS ItemID, EA4.ItemID AS ItemID,
EA4.PrimaryEmailAddress as TextSearch, EA4.PrimaryEmailAddress as TextSearch,
''ExchangeAccount'' as ColumnType, ''ExchangeAccount'' as ColumnType,
@ -12357,9 +12383,17 @@ SET @sqlSpace = @sqlSpace + 'SI.ItemID
EA4.AccountID as AccountID EA4.AccountID as AccountID
FROM @ItemsService AS I4 FROM @ItemsService AS I4
INNER JOIN ServiceItems AS SI4 ON I4.ItemID = SI4.ItemID INNER JOIN ServiceItems AS SI4 ON I4.ItemID = SI4.ItemID
INNER JOIN ExchangeAccounts AS EA4 ON I4.ItemID = EA4.ItemID INNER JOIN ExchangeAccounts AS EA4 ON I4.ItemID = EA4.ItemID'
IF @FilterValue <> ''
SET @sqlSpace = @sqlSpace + ' WHERE (EA4.PrimaryEmailAddress LIKE ''' + @FilterValue + ''')'
SET @sqlSpace = @sqlSpace + '
UNION UNION
SELECT SELECT '
IF @OnlyFind = 1
SET @sqlSpace = @sqlSpace + 'TOP ' + CAST(@MaximumRows AS varchar(12)) + ' '
SET @sqlSpace = @sqlSpace + '
EA3.ItemID AS ItemID, EA3.ItemID AS ItemID,
EAEA.EmailAddress as TextSearch, EAEA.EmailAddress as TextSearch,
''ExchangeAccount'' as ColumnType, ''ExchangeAccount'' as ColumnType,
@ -12369,8 +12403,10 @@ SET @sqlSpace = @sqlSpace + 'SI.ItemID
FROM @ItemsService AS I3 FROM @ItemsService AS I3
INNER JOIN ServiceItems AS SI3 ON I3.ItemID = SI3.ItemID INNER JOIN ServiceItems AS SI3 ON I3.ItemID = SI3.ItemID
INNER JOIN ExchangeAccounts AS EA3 ON I3.ItemID = EA3.ItemID INNER JOIN ExchangeAccounts AS EA3 ON I3.ItemID = EA3.ItemID
INNER JOIN ExchangeAccountEmailAddresses AS EAEA ON I3.ItemID = EAEA.AccountID) INNER JOIN ExchangeAccountEmailAddresses AS EAEA ON I3.ItemID = EAEA.AccountID'
ORDER BY TextSearch'; IF @FilterValue <> ''
SET @sqlSpace = @sqlSpace + ' WHERE (EAEA.EmailAddress LIKE ''' + @FilterValue + ''')'
SET @sqlSpace = @sqlSpace + ') ORDER BY TextSearch';
SET @sqlSpace = @sqlSpace + ' open @curValue' SET @sqlSpace = @sqlSpace + ' open @curValue'
@ -12434,9 +12470,6 @@ SET @sqlReturn = @sqlReturn + ' AND IA.ColumnType in ( ' + @ColType + ' ) ';
IF @FullType <> '' IF @FullType <> ''
SET @sqlReturn = @sqlReturn + ' AND IA.FullType = ''' + @FullType + ''''; SET @sqlReturn = @sqlReturn + ' AND IA.FullType = ''' + @FullType + '''';
IF @FilterValue <> ''
SET @sqlReturn = @sqlReturn + ' AND IA.' + @FilterColumn + ' LIKE @FilterValue '
SET @sqlReturn = @sqlReturn + ' SET @sqlReturn = @sqlReturn + '
SELECT COUNT(ItemID) FROM @ItemsReturn; SELECT COUNT(ItemID) FROM @ItemsReturn;
SELECT DISTINCT(ColumnType) FROM @ItemsReturn WHERE (1 = 1) '; SELECT DISTINCT(ColumnType) FROM @ItemsReturn WHERE (1 = 1) ';