[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