[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