@@ -360,46 +360,24 @@ sub Sql {
360360 if ( @auto_terms ) {
361361 $sql .= ' AND ( ' .join (' or ' , @auto_terms ).' )' ;
362362 }
363- if ( !$filter_expr -> {sort_field } ) {
364- $filter_expr -> {sort_field } = ' StartDateTime' ;
365- $filter_expr -> {sort_asc } = 0;
366- }
367- my $sort_column = ' ' ;
368- if ( $filter_expr -> {sort_field } eq ' Id' ) {
369- $sort_column = ' E.Id' ;
370- } elsif ( $filter_expr -> {sort_field } eq ' MonitorName' ) {
371- $sql = ' SELECT E.*, unix_timestamp(E.StartDateTime) as Time, M.Name as MonitorName
372- FROM Events as E INNER JOIN Monitors as M on M.Id = E.MonitorId' ;
373- $sort_column = ' M.Name' ;
374- } elsif ( $filter_expr -> {sort_field } eq ' Name' ) {
375- $sort_column = ' E.Name' ;
376- } elsif ( $filter_expr -> {sort_field } eq ' StartDateTime' ) {
377- $sort_column = ' E.StartDateTime' ;
378- } elsif ( $filter_expr -> {sort_field } eq ' StartTime' ) {
379- $sort_column = ' E.StartDateTime' ;
380- } elsif ( $filter_expr -> {sort_field } eq ' EndTime' ) {
381- $sort_column = ' E.EndDateTime' ;
382- } elsif ( $filter_expr -> {sort_field } eq ' EndDateTime' ) {
383- $sort_column = ' E.EndDateTime' ;
384- } elsif ( $filter_expr -> {sort_field } eq ' Secs' ) {
385- $sort_column = ' E.Length' ;
386- } elsif ( $filter_expr -> {sort_field } eq ' Frames' ) {
387- $sort_column = ' E.Frames' ;
388- } elsif ( $filter_expr -> {sort_field } eq ' AlarmFrames' ) {
389- $sort_column = ' E.AlarmFrames' ;
390- } elsif ( $filter_expr -> {sort_field } eq ' TotScore' ) {
391- $sort_column = ' E.TotScore' ;
392- } elsif ( $filter_expr -> {sort_field } eq ' AvgScore' ) {
393- $sort_column = ' E.AvgScore' ;
394- } elsif ( $filter_expr -> {sort_field } eq ' MaxScore' ) {
395- $sort_column = ' E.MaxScore' ;
396- } elsif ( $filter_expr -> {sort_field } eq ' DiskSpace' ) {
397- $sort_column = ' E.DiskSpace' ;
398- } else {
399- $sort_column = ' E.StartDateTime' ;
363+ if ($filter_expr -> {sort_field }) {
364+ my $sort_column = ' ' ;
365+ if ( $filter_expr -> {sort_field } eq ' MonitorName' ) {
366+ $sql = ' SELECT E.*, unix_timestamp(E.StartDateTime) as Time, M.Name as MonitorName
367+ FROM Events as E INNER JOIN Monitors as M on M.Id = E.MonitorId' ;
368+ $sort_column = ' M.Name' ;
369+ } elsif ( $filter_expr -> {sort_field } eq ' StartTime' ) {
370+ $sort_column = ' E.StartDateTime' ;
371+ } elsif ( $filter_expr -> {sort_field } eq ' EndTime' ) {
372+ $sort_column = ' E.EndDateTime' ;
373+ } elsif ( $filter_expr -> {sort_field } eq ' Secs' ) {
374+ $sort_column = ' E.Length' ;
375+ } else {
376+ $sort_column = ' E.' .$filter_expr -> {sort_field };
377+ }
378+ my $sort_order = $filter_expr -> {sort_asc } ? ' ASC' : ' DESC' ;
379+ $sql .= ' ORDER BY ' .$sort_column .' ' .$sort_order ;
400380 }
401- my $sort_order = $filter_expr -> {sort_asc } ? ' ASC' : ' DESC' ;
402- $sql .= ' ORDER BY ' .$sort_column .' ' .$sort_order ;
403381 if ( $filter_expr -> {limit } ) {
404382 $sql .= ' LIMIT 0,' .$filter_expr -> {limit };
405383 }
0 commit comments