X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FSearch%2FElements%2FEditSearches;h=761c5ab8d212f2c40b92e2a1537ceb304addd9c3;hp=64309cb00af6e68864d1344c073c78044763b748;hb=7322f2afedcc2f427e997d1535a503613a83f088;hpb=85e677b86fc37c54e6de2b06340351a28f5a5916 diff --git a/rt/share/html/Search/Elements/EditSearches b/rt/share/html/Search/Elements/EditSearches index 64309cb00..761c5ab8d 100644 --- a/rt/share/html/Search/Elements/EditSearches +++ b/rt/share/html/Search/Elements/EditSearches @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -67,9 +67,9 @@ % } % } -% if ( $Object && $Object->Id ) { +% if ( $Object && $Object->Id && $Object->CurrentUserHasRight('update') ) { -% } else { +% } elsif ( !$Object ) { %} % } @@ -146,7 +146,7 @@ $SavedSearch => {} $SavedSearch->{'Id'} = ( $ARGS{Type} && $ARGS{Type} eq 'Chart' ? $ARGS{'SavedChartSearchId'} : $ARGS{'SavedSearchId'} ) || 'new'; -$SavedSearch->{'Description'} = $ARGS{'SavedSearchDescription'} || undef; +$SavedSearch->{'Description'} = $ARGS{'SavedSearchDescription'} || ''; $SavedSearch->{'Privacy'} = $ARGS{'SavedSearchOwner'} || undef; my @results; @@ -158,7 +158,8 @@ if ( $ARGS{'SavedSearchRevert'} ) { if ( $ARGS{'SavedSearchLoad'} ) { my ($container, $id ) = _parse_saved_search ($ARGS{'SavedSearchLoad'}); if ( $container ) { - my $search = $container->Attributes->WithId( $id ); + my $search = RT::Attribute->new( $session{'CurrentUser'} ); + $search->Load( $id ); $SavedSearch->{'Id'} = $ARGS{'SavedSearchLoad'}; $SavedSearch->{'Object'} = $search; $SavedSearch->{'Description'} = $search->Description; @@ -194,7 +195,8 @@ elsif ( $ARGS{'SavedSearchDelete'} ) { } elsif ( $ARGS{'SavedSearchCopy'} ) { my ($container, $id ) = _parse_saved_search( $ARGS{'SavedSearchId'} ); - $SavedSearch->{'Object'} = $container->Attributes->WithId( $id ); + $SavedSearch->{'Object'} = RT::Attribute->new( $session{'CurrentUser'} ); + $SavedSearch->{'Object'}->Load( $id ); if ( $ARGS{'SavedSearchDescription'} && $ARGS{'SavedSearchDescription'} ne $SavedSearch->{'Object'}->Description ) { $SavedSearch->{'Description'} = $ARGS{'SavedSearchDescription'}; } else { @@ -208,7 +210,8 @@ if ( $SavedSearch->{'Id'} && $SavedSearch->{'Id'} ne 'new' && !$SavedSearch->{'Object'} ) { my ($container, $id ) = _parse_saved_search( $ARGS{'SavedSearchId'} ); - $SavedSearch->{'Object'} = $container->Attributes->WithId( $id ); + $SavedSearch->{'Object'} = RT::Attribute->new( $session{'CurrentUser'} ); + $SavedSearch->{'Object'}->Load( $id ); $SavedSearch->{'Description'} ||= $SavedSearch->{'Object'}->Description; } @@ -290,7 +293,7 @@ if ( $obj && $obj->id ) { } push @results, loc('Updated saved search "[_1]"', $desc); } -elsif ( $id eq 'new' ) { +elsif ( $id eq 'new' and defined $desc and length $desc ) { my $saved_search = RT::SavedSearch->new( $session{'CurrentUser'} ); my ($status, $msg) = $saved_search->Save( Privacy => $privacy, @@ -300,8 +303,8 @@ elsif ( $id eq 'new' ) { ); if ( $status ) { - $SavedSearch->{'Object'} = - $session{'CurrentUser'}->UserObj->Attributes->WithId( $saved_search->Id ); + $SavedSearch->{'Object'} = RT::Attribute->new( $session{'CurrentUser'} ); + $SavedSearch->{'Object'}->Load( $saved_search->Id ); # Build new SearchId $SavedSearch->{'Id'} = ref( $session{'CurrentUser'}->UserObj ) . '-' @@ -313,6 +316,9 @@ elsif ( $id eq 'new' ) { push @results, loc("Can't find a saved search to work with").': '.loc($msg); } } +elsif ( $id eq 'new' ) { + push @results, loc("Can't save a search without a Description"); +} else { push @results, loc("Can't save this search"); }