[otrs-cvs] Advisory/Kernel/System Advisory.pm,1.40,1.41
cvs-log at otrs.org
cvs-log at otrs.org
Sat Mar 1 22:13:21 GMT 2008
Comments:
Update of /home/cvs/Advisory/Kernel/System
In directory lancelot:/tmp/cvs-serv11470/Kernel/System
Modified Files:
Advisory.pm
Log Message:
Simplify the advisory search function.
Author: tr
Index: Advisory.pm
===================================================================
RCS file: /home/cvs/Advisory/Kernel/System/Advisory.pm,v
retrieving revision 1.40
retrieving revision 1.41
diff -C2 -d -r1.40 -r1.41
*** Advisory.pm 1 Mar 2008 21:12:55 -0000 1.40
--- Advisory.pm 1 Mar 2008 22:13:16 -0000 1.41
***************
*** 761,767 ****
my @SearchArray = @{ $Param{SearchArray} };
my %TicketOptions = %{ $Param{TicketOptions} };
! my %SearchResultList = ();
my @SortedSearchResultList = ();
! my %OrderByHash = ();
my @SearchResult = $Self->{XMLObject}->XMLHashSearch(
--- 761,767 ----
my @SearchArray = @{ $Param{SearchArray} };
my %TicketOptions = %{ $Param{TicketOptions} };
!
my @SortedSearchResultList = ();
! my @SearchResultList = ();
my @SearchResult = $Self->{XMLObject}->XMLHashSearch(
***************
*** 773,867 ****
$Param{UserID} = $Self->{UserID};
}
- for my $Key (@SearchResult) {
- my %Option = $Self->AdvisoryGet( TicketID => $Key, UserID => $Param{UserID} );
- if ( !$TicketOptions{Title}
- || $TicketOptions{Title} eq ''
- || $Option{'EISPP-Advisory'}[1]{Id_Data}[1]{title}[1]{FreeText}[1]{Content}
- =~ /$TicketOptions{Title}/i )
- {
- if ( !$TicketOptions{Queue}
- || $TicketOptions{Queue} eq ''
- || $Option{'EISPP-Advisory'}[1]{MetaTag}[1]{QueueID} eq $TicketOptions{Queue} )
- {
- my $CreateTime = $Self->{TimeObject}->TimeStamp2SystemTime(
- String => $Option{'EISPP-Advisory'}[1]{MetaTag}[1]{Created} );
- if ( ( !$Param{StartTime} && !$Param{StopTime} )
- || ( $CreateTime > $Param{StartTime} && $CreateTime < $Param{StopTime} ) )
- {
- $SearchResultList{$Key}{Title}
- = $Option{'EISPP-Advisory'}[1]{Id_Data}[1]{title}[1]{FreeText}[1]{Content};
- $SearchResultList{$Key}{PriorityID}
- = $Option{'EISPP-Advisory'}[1]{MetaTag}[1]{PriorityID};
- $SearchResultList{$Key}{Priority}
- = $Option{'EISPP-Advisory'}[1]{MetaTag}[1]{Priority};
- $SearchResultList{$Key}{StateType}
- = $Option{'EISPP-Advisory'}[1]{MetaTag}[1]{StateType};
- $SearchResultList{$Key}{TicketNumber}
- = $Option{'EISPP-Advisory'}[1]{MetaTag}[1]{TicketNumber};
- $SearchResultList{$Key}{Queue}
- = $Option{'EISPP-Advisory'}[1]{MetaTag}[1]{Queue};
- $SearchResultList{$Key}{Created}
- = $Option{'EISPP-Advisory'}[1]{MetaTag}[1]{Created};
- $SearchResultList{$Key}{TicketID}
- = $Option{'EISPP-Advisory'}[1]{MetaTag}[1]{TicketID};
- $SearchResultList{$Key}{LockID}
- = $Option{'EISPP-Advisory'}[1]{MetaTag}[1]{LockID};
- $SearchResultList{$Key}{Ref_Num}
- = $Option{'EISPP-Advisory'}[1]{Id_Data}[1]{ref_num}[1]{Content};
- $SearchResultList{$Key}{CreatedTimeStamp} = $CreateTime;
- }
- }
- }
- }
! if ( $Param{OrderBy} && $Param{OrderBy} eq 'TicketNumber' ) {
! for my $Key ( keys %SearchResultList ) {
! $OrderByHash{$Key} = $SearchResultList{$Key}{TicketNumber};
! }
! for my $Key ( sort { $OrderByHash{$a} cmp $OrderByHash{$b} } keys %OrderByHash ) {
! push( @SortedSearchResultList, $SearchResultList{$Key} );
! }
! }
! elsif ( $Param{OrderBy} && $Param{OrderBy} eq 'Priority' ) {
! for my $Key ( keys %SearchResultList ) {
! $OrderByHash{$Key} = $SearchResultList{$Key}{Priority};
! }
! for my $Key ( sort { $OrderByHash{$a} cmp $OrderByHash{$b} } keys %OrderByHash ) {
! push( @SortedSearchResultList, $SearchResultList{$Key} );
! }
! }
! elsif ( $Param{OrderBy} && $Param{OrderBy} eq 'Ref_Num' ) {
! for my $Key ( keys %SearchResultList ) {
! $OrderByHash{$Key} = $SearchResultList{$Key}{Ref_Num};
! }
! for my $Key ( sort { $OrderByHash{$a} cmp $OrderByHash{$b} } keys %OrderByHash ) {
! push( @SortedSearchResultList, $SearchResultList{$Key} );
! }
! }
! elsif ( $Param{OrderBy} && $Param{OrderBy} eq 'Title' ) {
! for my $Key ( keys %SearchResultList ) {
! $OrderByHash{$Key} = $SearchResultList{$Key}{Title};
! }
! for my $Key ( sort { $OrderByHash{$a} cmp $OrderByHash{$b} } keys %OrderByHash ) {
! push( @SortedSearchResultList, $SearchResultList{$Key} );
! }
}
! elsif ( $Param{OrderBy} && $Param{OrderBy} eq 'Queue' ) {
! for my $Key ( keys %SearchResultList ) {
! $OrderByHash{$Key} = $SearchResultList{$Key}{Queue};
! }
! for my $Key ( sort { $OrderByHash{$a} cmp $OrderByHash{$b} } keys %OrderByHash ) {
! push( @SortedSearchResultList, $SearchResultList{$Key} );
! }
}
else {
! for my $Key ( keys %SearchResultList ) {
! $OrderByHash{ $SearchResultList{$Key}{CreatedTimeStamp} } = $Key;
! }
! for my $Key ( sort { $OrderByHash{$a} <=> $OrderByHash{$b} } keys %OrderByHash ) {
! push( @SortedSearchResultList, $SearchResultList{ $OrderByHash{$Key} } );
! }
}
if ( $Param{Direction} && $Param{Direction} eq 'DESC' ) {
@SortedSearchResultList = reverse @SortedSearchResultList;
--- 773,822 ----
$Param{UserID} = $Self->{UserID};
}
! TICKETID:
! for my $TicketID (@SearchResult) {
! my %Option = $Self->AdvisoryGet( TicketID => $TicketID, UserID => $Param{UserID} );
! %Option = %{$Option{'EISPP-Advisory'}[1]};
!
! # check if the title match
! next TICKETID if $TicketOptions{Title}
! && $Option{Id_Data}[1]{title}[1]{FreeText}[1]{Content} !~ m{$TicketOptions{Title}}smxi;
!
! # check if the queue match
! next TICKETID if $TicketOptions{Queue} && $Option{MetaTag}[1]{QueueID} ne $TicketOptions{Queue};
!
! # check if the start and end time match
! my $CreateTime = $Self->{TimeObject}->TimeStamp2SystemTime(
! String => $Option{MetaTag}[1]{Created} );
! next TICKETID if $Param{StartTime} && $Param{StopTime}
! && ($CreateTime < $Param{StartTime} || $CreateTime > $Param{StopTime});
!
! # catch the data for the search result
! my %AdvisoryData = (
! Title => $Option{Id_Data}[1]{title}[1]{FreeText}[1]{Content},
! PriorityID => $Option{MetaTag}[1]{PriorityID},
! Priority => $Option{MetaTag}[1]{Priority},
! StateType => $Option{MetaTag}[1]{StateType},
! TicketNumber => $Option{MetaTag}[1]{TicketNumber},
! Queue => $Option{MetaTag}[1]{Queue},
! Created => $Option{MetaTag}[1]{Created},
! TicketID => $Option{MetaTag}[1]{TicketID},
! LockID => $Option{MetaTag}[1]{LockID},
! Ref_Num => $Option{Id_Data}[1]{ref_num}[1]{Content},
! CreatedTimeStamp => $CreateTime,
! );
!
! push @SearchResultList, \%AdvisoryData;
}
!
! # order the result
! if ( !$Param{OrderBy} || $Param{OrderBy} eq 'Time' ) {
! @SortedSearchResultList = sort { $b->{CreatedTimeStamp} <=> $a->{CreatedTimeStamp} } @SearchResultList;
}
else {
! @SortedSearchResultList = sort { $b->{$Param{OrderBy}} cmp $a->{$Param{OrderBy}} } @SearchResultList;
}
+ # create the needed direction
if ( $Param{Direction} && $Param{Direction} eq 'DESC' ) {
@SortedSearchResultList = reverse @SortedSearchResultList;
***************
*** 877,881 ****
$AdvisoryObject->XMLHash2AdvisoryHash(
TicketID => 123,
! Content => $XMLString,
);
--- 832,836 ----
$AdvisoryObject->XMLHash2AdvisoryHash(
TicketID => 123,
! Content => $XMLString,
);
***************
*** 884,891 ****
sub XMLHash2AdvisoryHash {
my ( $Self, %Param ) = @_;
!
! my @XMLHash = ();
! my %ConfigHash = ();
! my $Rows = "";
# check params
--- 839,843 ----
sub XMLHash2AdvisoryHash {
my ( $Self, %Param ) = @_;
! my $Rows = '';
# check params
***************
*** 908,912 ****
# convert a sting in a XMLHash
! @XMLHash = $Self->{XMLObject}->XMLParse2XMLHash( String => $Param{Content} );
# demask format-tags in Formatted Text
--- 860,864 ----
# convert a sting in a XMLHash
! my @XMLHash = $Self->{XMLObject}->XMLParse2XMLHash( String => $Param{Content} );
# demask format-tags in Formatted Text
***************
*** 917,921 ****
}
! %ConfigHash = %{ $Self->{ConfigObject}->Get('Advisory::ConfigHash') };
if ( !$XMLHash[1]{'EISPP-Advisory'}[1]{'xml:lang'} ) {
$XMLHash[1]{'EISPP-Advisory'}[1]{'xml:lang'} = "en";
--- 869,873 ----
}
! my %ConfigHash = %{ $Self->{ConfigObject}->Get('Advisory::ConfigHash') };
if ( !$XMLHash[1]{'EISPP-Advisory'}[1]{'xml:lang'} ) {
$XMLHash[1]{'EISPP-Advisory'}[1]{'xml:lang'} = "en";
***************
*** 1095,1101 ****
my ( $Self, %Param ) = @_;
! my @Result = ();
!
! @Result = $Self->{XMLObject}->XMLHashSearch(
Type => 'EISPP-Advisory',
What => [
--- 1047,1051 ----
my ( $Self, %Param ) = @_;
! my @Result = $Self->{XMLObject}->XMLHashSearch(
Type => 'EISPP-Advisory',
What => [
***************
*** 1119,1128 ****
# check params
! for (qw(TicketID)) {
! if ( !$Param{$_} ) {
! $Self->{LogObject}->Log( Priority => 'error', Message => "CreateNewVersion: Need $_!" );
! return;
! }
}
my %Advisory = $Self->AdvisoryGet( TicketID => $Param{TicketID} );
my $Version = $Advisory{'EISPP-Advisory'}[1]{History_Data}[1]{version_history}[1]{change_descr}[
--- 1069,1077 ----
# check params
! if ( !$Param{TicketID} ) {
! $Self->{LogObject}->Log( Priority => 'error', Message => 'CreateNewVersion: Need TicketID!' );
! return;
}
+
my %Advisory = $Self->AdvisoryGet( TicketID => $Param{TicketID} );
my $Version = $Advisory{'EISPP-Advisory'}[1]{History_Data}[1]{version_history}[1]{change_descr}[
More information about the cvs-log
mailing list