From 24970e7b3fde1d521f4039fb1dbd9d858ca96eed Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 4 Aug 2010 09:25:11 +0000 Subject: fix additional instance of rt/rt problem, RT#9280 --- rt/share/html/Admin/Elements/EditCustomFields | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'rt/share/html') diff --git a/rt/share/html/Admin/Elements/EditCustomFields b/rt/share/html/Admin/Elements/EditCustomFields index 0767e4ae4..10f254006 100755 --- a/rt/share/html/Admin/Elements/EditCustomFields +++ b/rt/share/html/Admin/Elements/EditCustomFields @@ -47,7 +47,9 @@ %# END BPS TAGGED BLOCK }}} <& /Elements/ListActions, actions => \@results &> -
+% my $path = $m->request_comp->path; +% $path =~ s(^/rt)(); #hacky, dunno why this happens + -- cgit v1.2.1 From 7515782ca6e453f2e4c9a52c62429e73ce047247 Mon Sep 17 00:00:00 2001 From: ivan Date: Sun, 15 Aug 2010 00:44:55 +0000 Subject: address root cause of rt/rt links and remove the workarounds, RT#9280 --- rt/share/html/Admin/Elements/EditCustomFields | 4 +--- rt/share/html/Elements/ColumnMap | 7 +------ rt/share/html/Elements/RT__CustomField/ColumnMap | 4 +--- rt/share/html/Elements/RefreshHomepage | 6 +----- rt/share/html/Ticket/Graphs/index.html | 4 +--- 5 files changed, 5 insertions(+), 20 deletions(-) (limited to 'rt/share/html') diff --git a/rt/share/html/Admin/Elements/EditCustomFields b/rt/share/html/Admin/Elements/EditCustomFields index 10f254006..0767e4ae4 100755 --- a/rt/share/html/Admin/Elements/EditCustomFields +++ b/rt/share/html/Admin/Elements/EditCustomFields @@ -47,9 +47,7 @@ %# END BPS TAGGED BLOCK }}} <& /Elements/ListActions, actions => \@results &> -% my $path = $m->request_comp->path; -% $path =~ s(^/rt)(); #hacky, dunno why this happens - + diff --git a/rt/share/html/Elements/ColumnMap b/rt/share/html/Elements/ColumnMap index 6a1c23779..a1475a99d 100644 --- a/rt/share/html/Elements/ColumnMap +++ b/rt/share/html/Elements/ColumnMap @@ -157,12 +157,7 @@ my $COLUMN_MAP = { } qw(WebPath WebBaseURL WebURL)), WebRequestPath => { value => sub { substr( $m->request_path, 1 ) } }, - #WebRequestPathDir => { value => sub { substr( $m->request_comp->dir_path, 1 ) } }, - WebRequestPathDir => { value => sub { - my $wrpd = substr( $m->request_comp->dir_path, 1 ); - $wrpd =~ s(^rt/)(); #hacky, dunno why this happens - $wrpd; - } }, + WebRequestPathDir => { value => sub { substr( $m->request_comp->dir_path, 1 ) } }, }; $COLUMN_MAP->{'CF'} = $COLUMN_MAP->{'CustomField'}; diff --git a/rt/share/html/Elements/RT__CustomField/ColumnMap b/rt/share/html/Elements/RT__CustomField/ColumnMap index 0a867eb26..6d8d76a4c 100644 --- a/rt/share/html/Elements/RT__CustomField/ColumnMap +++ b/rt/share/html/Elements/RT__CustomField/ColumnMap @@ -155,9 +155,7 @@ my $COLUMN_MAP = { : ($args->{'PassArguments'}); my %pass = map { $_ => $args->{$_} } grep exists $args->{$_}, @pass; - my $path = $m->request_path; - $path =~ s(^/rt)(); #hacky, dunno why this happens - my $uri = RT->Config->Get('WebPath') . $path; + my $uri = RT->Config->Get('WebPath') . $m->request_path; my @res = ( \' + <& /Elements/Refresh, Name => 'HomeRefreshInterval', Default => $session{'home_refresh_interval'}||RT->Config->Get('HomePageRefreshInterval', $session{'CurrentUser'}) &> <& /Elements/Submit, Label => loc('Go!') &> -<%init> -my $path = $m->request_path; -$path =~ s(^/rt)(); #hacky, dunno why this happens - diff --git a/rt/share/html/Ticket/Graphs/index.html b/rt/share/html/Ticket/Graphs/index.html index 211d3a0cb..e23737c8e 100644 --- a/rt/share/html/Ticket/Graphs/index.html +++ b/rt/share/html/Ticket/Graphs/index.html @@ -56,9 +56,7 @@ <& Elements/ShowGraph, %ARGS, Ticket => $ticket &> -% my $path = $m->request_comp->path; -% $path =~ s(^/rt)(); #hacky, dunno why this happens -
+ <& Elements/EditGraphProperties, %ARGS, Ticket => $ticket &> -- cgit v1.2.1 From 2806e1967f8dbb7b15c41dd7c5bcc2eb121907f0 Mon Sep 17 00:00:00 2001 From: ivan Date: Sun, 15 Aug 2010 01:32:31 +0000 Subject: fix Dashboards edit link too, RT#9412 --- rt/share/html/Elements/Dashboards | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'rt/share/html') diff --git a/rt/share/html/Elements/Dashboards b/rt/share/html/Elements/Dashboards index 3653aa5b8..1a9c05299 100644 --- a/rt/share/html/Elements/Dashboards +++ b/rt/share/html/Elements/Dashboards @@ -51,7 +51,7 @@ title_href => RT->Config->Get('WebPath').'/Dashboards/index.html', bodyclass => "", titleright => loc("Edit"), - titleright_href => RT->Config->Get('WebPath').'/Dashboards/', + titleright_href => RT->Config->Get('WebPath').'/Dashboards/index.html', &> <& /Dashboards/Elements/ShowDashboards:table, -- cgit v1.2.1 From 4ccb0c66af7a6e5e3e4dc099078b08e1250226e5 Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 18 Aug 2010 00:14:10 +0000 Subject: fix directory links in RT (not picking up index.html as a default), RT#9665, fallout from RT#9412 --- rt/share/html/Elements/Dashboards | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'rt/share/html') diff --git a/rt/share/html/Elements/Dashboards b/rt/share/html/Elements/Dashboards index 1a9c05299..3653aa5b8 100644 --- a/rt/share/html/Elements/Dashboards +++ b/rt/share/html/Elements/Dashboards @@ -51,7 +51,7 @@ title_href => RT->Config->Get('WebPath').'/Dashboards/index.html', bodyclass => "", titleright => loc("Edit"), - titleright_href => RT->Config->Get('WebPath').'/Dashboards/index.html', + titleright_href => RT->Config->Get('WebPath').'/Dashboards/', &> <& /Dashboards/Elements/ShowDashboards:table, -- cgit v1.2.1 From d37e29db87490cba5793a0db5121b7b6010feef0 Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 25 Aug 2010 22:55:25 +0000 Subject: fix fckeditor damage from dashboard fixes: Elements/Footer inadvertantly included in css and javascript, RT#9412 --- rt/share/html/autohandler | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'rt/share/html') diff --git a/rt/share/html/autohandler b/rt/share/html/autohandler index 1bb2c939f..b44bd68d5 100755 --- a/rt/share/html/autohandler +++ b/rt/share/html/autohandler @@ -52,7 +52,9 @@ $m->callback( ARGSRef => \%ARGS, CallbackName => 'Init', CallbackPage => '/autoh RT::Interface::Web::HandleRequest(\%ARGS); -$m->comp( '/Elements/Footer', %ARGS ); +$m->comp( '/Elements/Footer', %ARGS ) + unless $r->content_type =~ qr<^(text|application)/(x-)?(css|javascript)>; + <%ARGS> $user => undef -- cgit v1.2.1 From 10cddd917072b9d148b30c7561db34b0133695f4 Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 26 Aug 2010 06:13:21 +0000 Subject: dashboard subscription fix --- rt/share/html/Elements/Header | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'rt/share/html') diff --git a/rt/share/html/Elements/Header b/rt/share/html/Elements/Header index d970ac52f..72e3e7220 100755 --- a/rt/share/html/Elements/Header +++ b/rt/share/html/Elements/Header @@ -45,14 +45,14 @@ %# those contributions and any derivatives thereof. %# %# END BPS TAGGED BLOCK }}} -<% include( '/elements/header.html', { +<& /elements/header.html, { 'title' => $Title, 'head' => $head, 'etc' => $etc, 'nobr' => 1, 'nocss' => 1, - }) |n -%> + } +&> <%INIT> $r->headers_out->{'Pragma'} = 'no-cache'; $r->headers_out->{'Cache-control'} = 'no-cache'; -- cgit v1.2.1 From 8c5a780343e027058a51692d8b9b8140c88ce6c7 Mon Sep 17 00:00:00 2001 From: mark Date: Wed, 1 Sep 2010 23:39:23 +0000 Subject: RT mandatory custom fields, RT#9260 --- rt/share/html/Admin/CustomFields/Modify.html | 13 ++++++++++-- .../Ticket/Elements/Tabs/Default | 12 +++++++++++ .../Ticket/Modify.html/BeforeActionList | 15 ++++++++++++++ .../Ticket/Update.html/BeforeDisplay | 24 ++++++++++++++++++++++ rt/share/html/Ticket/Elements/CheckMandatoryFields | 9 ++++++++ 5 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Elements/Tabs/Default create mode 100644 rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Modify.html/BeforeActionList create mode 100644 rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Update.html/BeforeDisplay create mode 100644 rt/share/html/Ticket/Elements/CheckMandatoryFields (limited to 'rt/share/html') diff --git a/rt/share/html/Admin/CustomFields/Modify.html b/rt/share/html/Admin/CustomFields/Modify.html index f75607a8d..d2932d2d9 100644 --- a/rt/share/html/Admin/CustomFields/Modify.html +++ b/rt/share/html/Admin/CustomFields/Modify.html @@ -118,6 +118,11 @@ % } +  + /> +<&|/l&>Required for ticket resolution + +   /> @@ -171,11 +176,12 @@ else { } if ( $ARGS{'Update'} && $id ne 'new' ) { - #we're asking about enabled on the web page but really care about disabled. $ARGS{'Disabled'} = $Disabled = $Enabled? 0 : 1; + + $ARGS{'Required'} ||= 0; - my @attribs = qw(Disabled Pattern Name TypeComposite LookupType Description LinkValueTo IncludeContentForValue); + my @attribs = qw(Disabled Required Pattern Name TypeComposite LookupType Description LinkValueTo IncludeContentForValue); push @results, UpdateRecordObject( AttributesRef => \@attribs, Object => $CustomFieldObj, @@ -222,6 +228,9 @@ $id = $CustomFieldObj->id if $CustomFieldObj->id; my $EnabledChecked = qq[checked="checked"]; $EnabledChecked = '' if $CustomFieldObj->Disabled; +my $RequiredChecked = ''; +$RequiredChecked = qq[checked="checked"] if $CustomFieldObj->Required; + my @CFvalidations = ( '(?#Mandatory).', '(?#Digits)^[\d.]+$', diff --git a/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Elements/Tabs/Default b/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Elements/Tabs/Default new file mode 100644 index 000000000..2c0698ec2 --- /dev/null +++ b/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Elements/Tabs/Default @@ -0,0 +1,12 @@ +<%doc> +If mandatory fields aren't set yet, point the "Resolve" link back +to "Ticket Basics". + +<%init> +my $TicketObj = delete($ARGS{'Ticket'}); +my $actions = $ARGS{'actions'}; +if( $m->comp('/Ticket/Elements/CheckMandatoryFields', Ticket => $TicketObj) + ) { + $actions->{'G'}->{'path'} = 'Ticket/Modify.html?id='.$TicketObj->Id.'&resolve=1'; +} + diff --git a/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Modify.html/BeforeActionList b/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Modify.html/BeforeActionList new file mode 100644 index 000000000..4779411ce --- /dev/null +++ b/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Modify.html/BeforeActionList @@ -0,0 +1,15 @@ +<%init> +use Data::Dumper; +my $ARGSRef = $ARGS{'ARGSRef'}; +my $TicketObj = $ARGS{'Ticket'}; +my $results = $ARGS{'Actions'}; +if(defined($ARGSRef->{'resolve'})) { + my @errors = + $m->comp('/Ticket/Elements/CheckMandatoryFields', Ticket => $TicketObj); + return if !@errors; + my $msg = 'Missing required field'.(@errors > 1 ? 's' : '').': ' . + join(', ', map { $_->Name } @errors); + $m->notes( ('InvalidField-' . $_->Id) => 'Required' ) foreach @errors; + push @$results, $msg; +} + diff --git a/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Update.html/BeforeDisplay b/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Update.html/BeforeDisplay new file mode 100644 index 000000000..0d69bc27b --- /dev/null +++ b/rt/share/html/Callbacks/CheckMandatoryFields/Ticket/Update.html/BeforeDisplay @@ -0,0 +1,24 @@ +<%doc> +When the user tries to change a ticket's status to "resolved" through +the Update interface, check mandatory fields. If they aren't all set, +redirect to Ticket Basics instead of updating. Note that this will +lose any comments/time/other information the user has entered. + + +<%init> +my $TicketObj = $ARGS{'Ticket'}; +my $ARGSRef = $ARGS{'ARGSRef'}; +my $oldStatus = $TicketObj->Status(); +my $newStatus = $ARGSRef->{'Status'} || $ARGSRef->{'DefaultStatus'}; +if( $oldStatus ne 'resolved' and + $newStatus eq 'resolved' and + $m->comp('/Ticket/Elements/CheckMandatoryFields', + Ticket => $TicketObj + ) ) { + $m->clear_buffer; + RT::Interface::Web::Redirect( + RT->Config->Get('WebURL')."Ticket/Modify.html?id=".$TicketObj->Id."&resolve=1" + ); + $m->abort; +} + diff --git a/rt/share/html/Ticket/Elements/CheckMandatoryFields b/rt/share/html/Ticket/Elements/CheckMandatoryFields new file mode 100644 index 000000000..3d0324f98 --- /dev/null +++ b/rt/share/html/Ticket/Elements/CheckMandatoryFields @@ -0,0 +1,9 @@ +<%init> + +my $TicketObj = $ARGS{'Ticket'} or return (); +my $ARGSRef = $ARGS{'ARGSRef'}; +my @fields = grep { $_->Required } + @{ $TicketObj->CustomFields->ItemsArrayRef }; +return grep { !defined($TicketObj->FirstCustomFieldValue($_->id)) } @fields; + + -- cgit v1.2.1 From 6889413a55f87e4b7f6b6637773f87a0de52b3b4 Mon Sep 17 00:00:00 2001 From: mark Date: Tue, 5 Oct 2010 17:32:24 +0000 Subject: prevent broken custom field values, RT#9959 --- rt/share/html/Admin/CustomFields/Modify.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'rt/share/html') diff --git a/rt/share/html/Admin/CustomFields/Modify.html b/rt/share/html/Admin/CustomFields/Modify.html index d2932d2d9..fc2c49d59 100644 --- a/rt/share/html/Admin/CustomFields/Modify.html +++ b/rt/share/html/Admin/CustomFields/Modify.html @@ -199,6 +199,15 @@ if ( $ARGS{'Update'} && $id ne 'new' ) { push (@results, $msg); } + # Clean up values + foreach my $param (grep /^$paramtag-/, keys(%ARGS)) { + for ($ARGS{$param}) { + s/\r+\n/\n/g; + s/^\s+//; + s/\s+$//; + } + } + # Update any existing values my $values = $CustomFieldObj->ValuesObj; while ( my $value = $values->Next ) { @@ -206,7 +215,6 @@ if ( $ARGS{'Update'} && $id ne 'new' ) { my $param = join("-", $paramtag, $value->Id, $attr); next unless exists $ARGS{$param}; next if ($value->$attr()||'') eq ($ARGS{$param}||''); - my $mutator = "Set$attr"; my ($id, $msg) = $value->$mutator( $ARGS{$param} ); push (@results, $msg); -- cgit v1.2.1 From c22410950cebc97f35091753a6e84d577bc6c5f3 Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 22 Oct 2010 18:03:47 +0000 Subject: add no_fuzzy_on_exact to RT customer search and our smart search boxes too, RT#10341 --- rt/share/html/Elements/AddCustomers | 5 ++++- rt/share/html/Ticket/Elements/AddCustomers | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'rt/share/html') diff --git a/rt/share/html/Elements/AddCustomers b/rt/share/html/Elements/AddCustomers index aaf8ca8ba..9828d7d53 100644 --- a/rt/share/html/Elements/AddCustomers +++ b/rt/share/html/Elements/AddCustomers @@ -39,7 +39,10 @@ warn "/Elements/AddCustomers called with CustomerString $CustomerString\n" my @Customers = (); if ( $CustomerString ) { - @Customers = &RT::URI::freeside::smart_search( 'search' => $CustomerString ); + @Customers = &RT::URI::freeside::smart_search( + 'search' => $CustomerString, + 'no_fuzzy_on_exact' => 1, #pref? + ); } my @Services = (); diff --git a/rt/share/html/Ticket/Elements/AddCustomers b/rt/share/html/Ticket/Elements/AddCustomers index e04c07702..09acdfd3f 100644 --- a/rt/share/html/Ticket/Elements/AddCustomers +++ b/rt/share/html/Ticket/Elements/AddCustomers @@ -36,7 +36,10 @@ my $freeside_url = &RT::URI::freeside::FreesideURL(); my @Customers = (); if ( $CustomerString ) { - @Customers = &RT::URI::freeside::smart_search( 'search' => $CustomerString ); + @Customers = &RT::URI::freeside::smart_search( + 'search' => $CustomerString, + 'no_fuzzy_on_exact' => 1, #pref? + ); } my @Services = (); -- cgit v1.2.1