[otrs-cvs] ITSMConfigItem/Kernel/System ITSMConfigItem.pm, 1.45, 1.46
CVS commits notifications of OTRS.org
cvs-log at otrs.org
Sat May 3 13:10:29 GMT 2008
Comments:
Update of /home/cvs/ITSMConfigItem/Kernel/System
In directory lancelot:/tmp/cvs-serv23234/Kernel/System
Modified Files:
ITSMConfigItem.pm
Log Message:
Fixed bug# 2728 - The CI search function ignore some search criteria.
Author: mh
Index: ITSMConfigItem.pm
===================================================================
RCS file: /home/cvs/ITSMConfigItem/Kernel/System/ITSMConfigItem.pm,v
retrieving revision 1.45
retrieving revision 1.46
diff -C2 -d -r1.45 -r1.46
*** ITSMConfigItem.pm 2 May 2008 19:39:31 -0000 1.45
--- ITSMConfigItem.pm 3 May 2008 13:10:24 -0000 1.46
***************
*** 585,593 ****
my $ConfigItemIDs = $ConfigItemObject->ConfigItemSearchExtended(
! ClassIDs => [9, 8, 7, 6], # (optional)
! CurDeplStateIDs => [1, 2, 3, 4], # (optional)
! CurInciStateIDs => [1, 2, 3, 4], # (optional)
! Number => 'The ConfigItem Number', # (optional)
! Name => 'The Name', # (optional)
# config items with created time after ...
--- 585,593 ----
my $ConfigItemIDs = $ConfigItemObject->ConfigItemSearchExtended(
! Number => 'The ConfigItem Number', # (optional)
! Name => 'The Name', # (optional)
! ClassIDs => [9, 8, 7, 6], # (optional)
! DeplStateIDs => [1, 2, 3, 4], # (optional)
! InciStateIDs => [1, 2, 3, 4], # (optional)
# config items with created time after ...
***************
*** 620,624 ****
PreviousVersionSearch => 1, # (optional) default 0 (0|1)
! Limit => 122, # (optional)
);
--- 620,630 ----
PreviousVersionSearch => 1, # (optional) default 0 (0|1)
!
! OrderBy => 'Number', # (optional) default ConfigItemID
! # (ConfigItemID, Number, ClassID, DeplStateID, InciStateID,
! # CreateTime, CreateBy, ChangeTime, ChangeBy)
!
! Limit => 122, # (optional)
! UsingWildcards => 0, # (optional) default 1
);
***************
*** 628,635 ****
my ( $Self, %Param ) = @_;
# config item search is required if one of this params are given
my @ConfigItemSearchParams = (
! 'Number', 'ConfigItemCreateTimeNewerDate',
! 'ConfigItemCreateTimeOlderDate', 'ConfigItemCreateTimeOlderDate',
'ConfigItemChangeTimeOlderDate'
);
--- 634,647 ----
my ( $Self, %Param ) = @_;
+ # set limit
+ my $Limit = $Param{Limit};
+ $Param{Limit} = undef;
+
# config item search is required if one of this params are given
my @ConfigItemSearchParams = (
! 'Number',
! 'ConfigItemCreateTimeNewerDate',
! 'ConfigItemCreateTimeOlderDate',
! 'ConfigItemChangeTimeNewerDate',
'ConfigItemChangeTimeOlderDate'
);
***************
*** 645,672 ****
}
! # version search is required if 'Name' is given
! if ( $Param{Name} || $Param{PreviousVersionSearch} ) {
$RequiredSearch{Version} = 1;
}
! # xml version search is required if 'What' is given
if ( $Param{What} ) {
- if (
- !$Param{ClassIDs}
- || ref $Param{ClassIDs} ne 'ARRAY'
- || !@{ $Param{ClassIDs} }
- )
- {
- $Self->{LogObject}->Log(
- Priority => 'error',
- Message => "Need one value in ClassIDs if 'What' is given!"
- );
- return;
- }
-
$RequiredSearch{XMLVersion} = 1;
}
! # config item search is required as fallback
if ( !%RequiredSearch ) {
$RequiredSearch{ConfigItem} = 1;
--- 657,671 ----
}
! # version search is required if Name, What or PreviousVersionSearch is given
! if ( $Param{Name} || $Param{What} || $Param{PreviousVersionSearch} ) {
$RequiredSearch{Version} = 1;
}
! # xml version search is required if What is given
if ( $Param{What} ) {
$RequiredSearch{XMLVersion} = 1;
}
! # use config item search as fallback
if ( !%RequiredSearch ) {
$RequiredSearch{ConfigItem} = 1;
***************
*** 674,690 ****
# start config item search
! my %ConfigItemList;
if ( $RequiredSearch{ConfigItem} ) {
# search config items
! my $ConfigItemIDs = $Self->ConfigItemSearch(%Param);
!
! return [] if !@{$ConfigItemIDs};
! return $ConfigItemIDs if !$RequiredSearch{Version} && !$RequiredSearch{XMLVersion};
! # add ids to config item list
! for my $ConfigItemID ( @{$ConfigItemIDs} ) {
! $ConfigItemList{$ConfigItemID}++;
! }
}
--- 673,685 ----
# start config item search
! my %ConfigItemLists;
if ( $RequiredSearch{ConfigItem} ) {
# search config items
! $ConfigItemLists{ConfigItem} = $Self->ConfigItemSearch(%Param);
! return if !$ConfigItemLists{ConfigItem};
! return if ref $ConfigItemLists{ConfigItem} ne 'ARRAY';
! return [] if !@{ $ConfigItemLists{ConfigItem} };
}
***************
*** 693,727 ****
# search versions
! my $VersionIDs = $Self->VersionSearch(%Param);
!
! return [] if !@{$VersionIDs};
!
! # get config item ids
! my %ConfigItemListTmp;
! for my $VersionID ( @{$VersionIDs} ) {
! my $ConfigItemID = $Self->VersionConfigItemIDGet(
! VersionID => $VersionID,
! );
! $ConfigItemListTmp{$ConfigItemID} = 1;
! }
! # add ids to config item list
! for my $ConfigItemID ( keys %ConfigItemListTmp ) {
! $ConfigItemList{$ConfigItemID}++;
! }
}
# start xml version search
- my $XMLVersionIDs = {};
if ( $RequiredSearch{XMLVersion} ) {
# search xml versions
! $XMLVersionIDs = $Self->XMLVersionSearch(%Param);
! return [] if !%{$XMLVersionIDs};
# get config item ids
my %ConfigItemListTmp;
! for my $VersionID ( keys %{$XMLVersionIDs} ) {
my $ConfigItemID = $Self->VersionConfigItemIDGet(
VersionID => $VersionID,
--- 688,711 ----
# search versions
! $ConfigItemLists{Version} = $Self->VersionSearch(%Param);
! return if !$ConfigItemLists{Version};
! return if ref $ConfigItemLists{Version} ne 'ARRAY';
! return [] if !@{ $ConfigItemLists{Version} };
}
# start xml version search
if ( $RequiredSearch{XMLVersion} ) {
# search xml versions
! my $XMLVersionList = $Self->_XMLVersionSearch(%Param);
! return if !$XMLVersionList;
! return if ref $XMLVersionList ne 'HASH';
! return [] if !%{$XMLVersionList};
# get config item ids
my %ConfigItemListTmp;
! for my $VersionID ( keys %{$XMLVersionList} ) {
my $ConfigItemID = $Self->VersionConfigItemIDGet(
VersionID => $VersionID,
***************
*** 731,744 ****
# add ids to config item list
! for my $ConfigItemID ( keys %ConfigItemListTmp ) {
! $ConfigItemList{$ConfigItemID}++;
}
}
! # find out number of required search methods
! my $SearchNumber = keys %RequiredSearch;
! # extract all ids with number of required search methods
! my @ResultList = grep { $ConfigItemList{$_} eq $SearchNumber } keys %ConfigItemList;
return \@ResultList;
--- 715,757 ----
# add ids to config item list
! $ConfigItemLists{XMLVersion} = \%ConfigItemListTmp;
! }
!
! # create the result list
! my @ResultList;
! if ( $RequiredSearch{ConfigItem} && $RequiredSearch{Version} ) {
!
! my %VersionTempList;
! for my $ConfigItemID ( @{ $ConfigItemLists{Version} } ) {
! $VersionTempList{$ConfigItemID} = 1;
! }
!
! CONFIGITEMID:
! for my $ConfigItemID ( @{ $ConfigItemLists{ConfigItem} } ) {
!
! next CONFIGITEMID if !$VersionTempList{$ConfigItemID};
!
! push @ResultList, $ConfigItemID;
}
}
+ elsif ( $RequiredSearch{ConfigItem} ) {
+ @ResultList = @{ $ConfigItemLists{ConfigItem} };
+ }
+ elsif ( $RequiredSearch{Version} ) {
+ @ResultList = @{ $ConfigItemLists{Version} };
+ }
! # consider the XML result
! if ( $RequiredSearch{XMLVersion} ) {
! @ResultList = grep { $ConfigItemLists{XMLVersion}->{$_} } @ResultList;
! }
! # consider limit
! if ( $Limit && $Limit < scalar @ResultList ) {
!
! # extract the limited ids
! $Limit--;
! @ResultList = @ResultList[ 0 .. $Limit ];
! }
return \@ResultList;
***************
*** 750,759 ****
my $ConfigItemIDs = $ConfigItemObject->ConfigItemSearch(
! Number => 'The ConfigItem Number', # (optional)
! ClassIDs => [9, 8, 7, 6], # (optional)
! CurDeplStateIDs => [1, 2, 3, 4], # (optional)
! CurInciStateIDs => [1, 2, 3, 4], # (optional)
! CreateBy => [1, 2, 3], # (optional)
! ChangeBy => [3, 2, 1], # (optional)
# config items with created time after ...
--- 763,772 ----
my $ConfigItemIDs = $ConfigItemObject->ConfigItemSearch(
! Number => 'The ConfigItem Number', # (optional)
! ClassIDs => [9, 8, 7, 6], # (optional)
! DeplStateIDs => [1, 2, 3, 4], # (optional)
! InciStateIDs => [1, 2, 3, 4], # (optional)
! CreateBy => [1, 2, 3], # (optional)
! ChangeBy => [3, 2, 1], # (optional)
# config items with created time after ...
***************
*** 768,772 ****
OrderBy => 'Number', # (optional) default ConfigItemID
! # (ConfigItemID, Number, ClassID, CurDeplStateID, CurInciStateID,
# CreateTime, CreateBy, ChangeTime, ChangeBy)
--- 781,785 ----
OrderBy => 'Number', # (optional) default ConfigItemID
! # (ConfigItemID, Number, ClassID, DeplStateID, InciStateID,
# CreateTime, CreateBy, ChangeTime, ChangeBy)
***************
*** 807,815 ****
# set array params
my %ArrayParams = (
! ClassIDs => 'class_id',
! CurDeplStateIDs => 'cur_depl_state_id',
! CurInciStateIDs => 'cur_inci_state_id',
! CreateBy => 'create_by',
! ChangeBy => 'change_by',
);
--- 820,828 ----
# set array params
my %ArrayParams = (
! ClassIDs => 'class_id',
! DeplStateIDs => 'cur_depl_state_id',
! InciStateIDs => 'cur_inci_state_id',
! CreateBy => 'create_by',
! ChangeBy => 'change_by',
);
***************
*** 872,884 ****
# define order table
my %OrderByTable = (
! ConfigItemID => 'id',
! Number => 'configitem_number',
! ClassID => 'class_id',
! CurDeplStateID => 'cur_depl_state_id',
! CurInciStateID => 'cur_inci_state_id',
! CreateTime => 'create_time',
! CreateBy => 'create_by',
! ChangeTime => 'change_time',
! ChangeBy => 'change_by',
);
--- 885,897 ----
# define order table
my %OrderByTable = (
! ConfigItemID => 'id',
! Number => 'configitem_number',
! ClassID => 'class_id',
! DeplStateID => 'cur_depl_state_id',
! InciStateID => 'cur_inci_state_id',
! CreateTime => 'create_time',
! CreateBy => 'create_by',
! ChangeTime => 'change_time',
! ChangeBy => 'change_by',
);
More information about the cvs-log
mailing list