[Rt-commit] rt branch, 4.4/include-article-queue, repushed

Craig Kaiser craig at bestpractical.com
Wed Feb 21 14:52:13 EST 2018


The branch 4.4/include-article-queue was deleted and repushed:
       was 3c27b7ffb931c1b73da0edd2c7d463e7a9e438ff
       now 9e1bb57414988e88c9b49ce6a9d2d1f1c7c8adac

1: 33ac84399 < -:  ------- find idle port for ldap test server
2: 83262b6f4 ! 1: ff41098cf Add default value for Articles in Queues
    @@ -1,45 +1,42 @@
     Author: craig Kaiser <craig at bestpractical.com>
     
    -    Add Article as a Queue Default value
    +    Add default value for Articles in Queues
         
    -    Add an Article as a Default value for Tickets created in Queue. Render
    -    the content of the Article on Ticket create, in the message box.
    +    Automatically add Default Article content to Tickets on create for Queue.
     
     diff --git a/lib/RT/Queue.pm b/lib/RT/Queue.pm
     --- a/lib/RT/Queue.pm
     +++ b/lib/RT/Queue.pm
     @@
    -         $old_value = $old_content->{$args{Name}};
    +         $new_value = $self->loc( '(no value)' );
          }
      
    -+    $new_value = $args{Value};
    -+    unless ( defined $new_value && length $new_value ) {
    -+        $new_value = $self->loc( '(no value)' );
    -+    }
    -+
    -     unless ( defined $old_value && length $old_value ) {
    -         $old_value = $self->loc('(no value)');
    -     }
    - 
    --    $new_value = $args{Value};
    --    unless ( defined $new_value && length $new_value ) {
    --        $new_value = $self->loc( '(no value)' );
     +    if ( $args{Name} eq 'Article' && $args{Value} ) {
     +        my $article = RT::Article->new($self->CurrentUser);
    -+        my ($ret, $msg) = $article->LoadByCols( Name => $args{Value} );
    ++        if ( $args{Value} =~ /^(\d+)$/ ) {
    ++            my ($ret, $msg) = $article->Load( $args{Value} );
    ++            return ($ret, $msg ) unless $ret;
    ++        }
    ++        else {
    ++            my ($ret, $msg) = $article->LoadByCols( Name => $args{Value} );
    ++            return ($ret, $msg ) unless $ret;
    ++        }
     +
    -+        return ($ret, $msg) unless $ret;
     +        $args{Value} = $article->Id;
    ++        $new_value = $article->Name;
     +    }
     +
     +    if ( $args{Name} eq 'Article' && $old_value =~ /^\d+?$/ ) {
     +        my $article = RT::Article->new($self->CurrentUser);
     +        my ($ret, $msg) = $article->Load( $old_value );
    ++        if ($ret) {
    ++            $old_value = $article->Name;
    ++        }
    ++    }
     +
    -+        $old_value = $article->Name;
    -     }
    +     return 1 if $new_value eq $old_value;
      
    -     return 1 if $new_value eq $old_value;
    +     my ($ret, $msg) = $self->SetAttribute(
     
     diff --git a/share/html/Admin/Queues/DefaultValues.html b/share/html/Admin/Queues/DefaultValues.html
     --- a/share/html/Admin/Queues/DefaultValues.html
    @@ -79,40 +76,31 @@
      $name_prefix = $ARGS{'Name'} .'-'
          if $ARGS{'Name'}
     @@
    -         Value => $parent_args->{$arg},
              Queue => $Queue->Id,
          );
    -+
          next unless $article && $article->id;
     +    push (@articles, $article);
     +}
     +
     +if ( ( !$parent_args->{id} || $parent_args->{id} eq 'new' ) && $parent_args->{'Queue'} ) {
     +    my $queue_id = $parent_args->{'Queue'};
    -+    my $article = RT::Article->new($session{'CurrentUser'});
     +    my $QueueObj = RT::Queue->new($session{'CurrentUser'});
     +    my ($ret, $msg) = $QueueObj->Load( $queue_id );
    -+    return ($ret, $msg) unless $ret;
    - 
    ++    $RT::Logger->error($msg) unless ($ret);
    ++
     +    if ($QueueObj->DefaultValue('Article') ){
    ++        my $article = RT::Article->new($session{'CurrentUser'});
     +        my ($ret, $msg) = $article->Load( $QueueObj->DefaultValue('Article') );
     +        return ($ret, $msg) unless $ret;
     +        push (@articles, $article);
     +    }
     +}
    -+
    + 
    ++my $Ticket = $ARGS{Ticket};
     +foreach my $article (@articles) {
          my $formatted_article = $m->scomp('/Articles/Article/Elements/Preformatted',
              Article => $article, Ticket => $Ticket
          );
    -@@
    -         $formatted_article =~ s/\n/\n<br \/>/g;
    -     }
    -     $m->print($formatted_article);
    --
    - }
    - return;
    - </%INIT>
     
     diff --git a/share/html/Elements/SelectArticle b/share/html/Elements/SelectArticle
     new file mode 100644
    @@ -166,11 +154,11 @@
     +%# those contributions and any derivatives thereof.
     +%#
     +%# END BPS TAGGED BLOCK }}}
    -+<select name='Article'>
    ++<select name="<% $Name %>">
     +<option value="">-</option>
     +% while (my $article = $articles->Next) {
     +<option <% ( $article->Name eq $Default) ? qq[ selected="selected"] : '' |n %>
    -+    value="<%$article->Name%>"
    ++    value="<%$article->Id%>"
     +><% $article->Name %></option>
     +% }
     +</select>
    @@ -180,15 +168,12 @@
     +$articles->LimitHotlistClasses;
     +$articles->LimitAppliedClasses( Queue => $QueueObj );
     +
    -+my $dropdown_limit = 0;
    -+$m->callback( CallbackName => 'ModifyDropdownLimit', DropdownLimit => \$dropdown_limit );
    -+
     +my $Default = '';
     +
     +my $default_article = RT::Article->new($session{'CurrentUser'});
     +
    -+if ( $QueueObj->DefaultValue($Name) ) {
    -+    my ($ret, $msg) = $default_article->Load( $QueueObj->DefaultValue($Name) );
    ++if ( my $article_id = $QueueObj->DefaultValue('Article') ) {
    ++    my ($ret, $msg) = $default_article->Load( $article_id );
     +    if ($ret) {
     +         $Default = $default_article->Name;
     +    } else{
3: 6e0ff0507 ! 2: eadafc60e Add Autocomplete for Articles
    @@ -12,7 +12,7 @@
     +% if ( $autocomplete ) {
     +<& "SelectArticleAutocomplete", articles => $articles, QueueObj => $QueueObj, Default => $Default &>
     +% } else {
    - <select name='Article'>
    + <select name="<% $Name %>">
      <option value="">-</option>
      % while (my $article = $articles->Next) {
     @@
    @@ -23,15 +23,19 @@
      
      <%INIT>
      my $articles = RT::Articles->new( $session{'CurrentUser'} );
    -@@
    - 
    + $articles->LimitHotlistClasses;
    + $articles->LimitAppliedClasses( Queue => $QueueObj );
    + 
    ++my $dropdown_limit = 50;
    ++$m->callback( CallbackName => 'ModifyDropdownLimit', DropdownLimit => \$dropdown_limit );
    ++
      my $Default = '';
      
     +my $autocomplete =  $articles->Count > $dropdown_limit ? 1 : 0;
     +
      my $default_article = RT::Article->new($session{'CurrentUser'});
      
    - if ( $QueueObj->DefaultValue($Name) ) {
    + if ( my $article_id = $QueueObj->DefaultValue('Article') ) {
     
     diff --git a/share/html/Elements/SelectArticleAutocomplete b/share/html/Elements/SelectArticleAutocomplete
     new file mode 100644
    @@ -154,7 +158,7 @@
     +$op         => 'STARTSWITH'
     +$right      => undef
     +$return     => 'Name'
    -+$queue => undef
    ++$queue      => undef
     +</%ARGS>
     +<%INIT>
     +# Only allow certain return fields
    @@ -193,7 +197,6 @@
     +    $m->callback( CallbackName => "ModifySuggestion", suggestions => @suggestions, label => $a );
     +}
     +</%INIT>
    -\ No newline at end of file
     
     diff --git a/share/static/js/autocomplete.js b/share/static/js/autocomplete.js
     --- a/share/static/js/autocomplete.js
4: 3c27b7ffb ! 3: 9e1bb5741 Test Default Article content on Ticket create
    @@ -1,6 +1,6 @@
     Author: craig Kaiser <craig at bestpractical.com>
     
    -    Add tests for Default Article content on create
    +    Test Default Article content on Ticket create
     
     diff --git a/t/web/ticket-create-utf8.t b/t/web/ticket-create-utf8.t
     --- a/t/web/ticket-create-utf8.t



More information about the rt-commit mailing list