[rt-commit] [svn] r482 - in rt/branches: . autrijus-3.1/bin
autrijus-3.1/etc autrijus-3.1/html/Admin/CustomFields
autrijus-3.1/html/Admin/Elements
autrijus-3.1/html/Admin/Groups autrijus-3.1/lib/RT
autrijus at fsck.com
autrijus at fsck.com
Sat Mar 6 07:11:24 EST 2004
Author: autrijus
Date: Sat Mar 6 07:11:23 2004
New Revision: 482
Modified:
rt/branches/ (props changed)
rt/branches/autrijus-3.1/bin/webmux.pl.in
rt/branches/autrijus-3.1/etc/RT_SiteConfig.pm
rt/branches/autrijus-3.1/html/Admin/CustomFields/index.html
rt/branches/autrijus-3.1/html/Admin/Elements/EditCustomFields
rt/branches/autrijus-3.1/html/Admin/Elements/PickCustomFields
rt/branches/autrijus-3.1/html/Admin/Groups/Modify.html
rt/branches/autrijus-3.1/lib/RT/ObjectCustomField_Overlay.pm
rt/branches/autrijus-3.1/lib/RT/ObjectCustomFields_Overlay.pm
Log:
* retroport apache2 fix.
* SortOrder fully implemented.
* Group's CF view completed.
Modified: rt/branches/autrijus-3.1/bin/webmux.pl.in
==============================================================================
--- rt/branches/autrijus-3.1/bin/webmux.pl.in (original)
+++ rt/branches/autrijus-3.1/bin/webmux.pl.in Sat Mar 6 07:11:23 2004
@@ -32,6 +32,9 @@
$ENV{'ENV'} = '' if defined $ENV{'ENV'};
$ENV{'IFS'} = '' if defined $ENV{'IFS'};
@ORACLE_ENV_PREF@
+
+ eval { require Apache2; require Apache::compat }
+ if $ENV{'MOD_PERL'} and $ENV{'MOD_PERL'} =~ m{mod_perl/(?:2|1\.9)};
}
use lib ("@LOCAL_LIB_PATH@", "@RT_LIB_PATH@");
Modified: rt/branches/autrijus-3.1/etc/RT_SiteConfig.pm
==============================================================================
--- rt/branches/autrijus-3.1/etc/RT_SiteConfig.pm (original)
+++ rt/branches/autrijus-3.1/etc/RT_SiteConfig.pm Sat Mar 6 07:11:23 2004
@@ -1 +1,5 @@
+Set($WebBaseURL , "");
+Set($DatabaseUser , 'root');
+Set($DatabasePassword , '');
+Set($DatabaseName , 'rt31');
1;
Modified: rt/branches/autrijus-3.1/html/Admin/CustomFields/index.html
==============================================================================
--- rt/branches/autrijus-3.1/html/Admin/CustomFields/index.html (original)
+++ rt/branches/autrijus-3.1/html/Admin/CustomFields/index.html Sat Mar 6 07:11:23 2004
@@ -3,17 +3,29 @@
current_subtab => 'Admin/CustomFields/',
Title => loc('Select a Custom Field') &>
-<UL>
-%while (my $CustomFieldObj = $CustomFields->Next) {
+% my $prev_lookup = '';
+% while (my $CustomFieldObj = $CustomFields->Next) {
% $CustomFieldObj->CurrentUserHasRight('AdminCustomField') or next;
-
+% my $lookup = $CustomFieldObj->FriendlyLookupType;
+% if ($lookup ne $prev_lookup) {
+% if ($prev_lookup) {
+</UL>
+% }
+<H2><% loc("Applies to [_1]", $lookup) %></H2>
+<UL>
+% $prev_lookup = $lookup;
+% }
+%
<LI>
-<A HREF="Modify.html?id=<%$CustomFieldObj->id()%>"><%$CustomFieldObj->Name%>: <%$CustomFieldObj->Description%></a> (<%$CustomFieldObj->FriendlyObjectTypeComposite%>)<BR>
-
-%}
+<A HREF="Modify.html?id=<%$CustomFieldObj->id()%>"><%$CustomFieldObj->Name%>: <%$CustomFieldObj->Description%></a>
+</LI>
+% }
+% if ($prev_lookup) {
+</UL>
+% }
<%INIT>
my $CustomFields = RT::CustomFields->new($session{'CurrentUser'});
$CustomFields->UnLimit();
-$CustomFields->OrderByCols(map { +{ FIELD => $_ } } qw( ObjectType IntermediateType ParentType ) );
+$CustomFields->OrderByCols( { FIELD => 'LookupType' }, { FIELD => 'Name' } );
</%INIT>
Modified: rt/branches/autrijus-3.1/html/Admin/Elements/EditCustomFields
==============================================================================
--- rt/branches/autrijus-3.1/html/Admin/Elements/EditCustomFields (original)
+++ rt/branches/autrijus-3.1/html/Admin/Elements/EditCustomFields Sat Mar 6 07:11:23 2004
@@ -45,7 +45,7 @@
<& PickCustomFields, CustomFields => \@GlobalCFs, ReadOnly => 1 &>
% }
<h3>Associated Custom Fields (uncheck to unassociate)</h3>
-<& PickCustomFields, CustomFields => \@AssociatedCFs, id => $Object->Id, Checked => 1 &>
+<& PickCustomFields, CustomFields => [$ObjectCFs->CustomFields], id => $Object->Id, Checked => 1 &>
<h3>Unassociated Custom Fields (check to associate)</h3>
<& PickCustomFields, CustomFields => \@UnassociatedCFs, id => $Object->Id &>
@@ -57,12 +57,13 @@
my $CustomFields = RT::CustomFields->new($session{'CurrentUser'});
my $caption;
my @results;
-my (@GlobalCFs, @AssociatedCFs, @UnassociatedCFs);
+my (@GlobalCFs, @UnassociatedCFs);
# XXX - exception: by "RT::Queue" fields on UI we really mean "RT::Ticket" fields.
my $lookup = $ObjectType;
$lookup = 'RT::Queue-RT::Ticket' if $lookup eq 'RT::Queue';
$CustomFields->LimitToLookupType($lookup);
+$CustomFields->OrderBy( FIELD => 'Name' );
if ($FindDisabledCustomFields) {
$caption = loc("All Custom Fields");
@@ -71,18 +72,25 @@
$caption = loc("Enabled Custom Fields");
}
+my $id = $Object->Id;
+my ($GlobalCFs, $ObjectCFs);
+$ObjectCFs = RT::ObjectCustomFields->new($session{'CurrentUser'});
+$ObjectCFs->UnLimit;
+$ObjectCFs->LimitToObjectId($id);
+$ObjectCFs->LimitToLookupType($lookup);
+
# {{{ deal with moving sortorder of custom fields
if ($CustomField and $Move) {
- my $SourceObj = RT::CustomField->new($session{'CurrentUser'});
- $SourceObj->Load($CustomField) || Abort(loc('No CustomField'));
+ my $SourceObj = RT::ObjectCustomField->new($session{'CurrentUser'});
+ $SourceObj->LoadByCols( ObjectId => $id, CustomField => $CustomField );
my $TargetObj;
my $target_order = $SourceObj->SortOrder + $Move;
- while (my $CustomFieldObj = $CustomFields->Next) {
- my $this_order = $CustomFieldObj->SortOrder;
+ while (my $ObjectCF = $ObjectCFs->Next) {
+ my $this_order = $ObjectCF->SortOrder;
# if we have an exact match, finish the loop now
- ($TargetObj = $CustomFieldObj, last) if $this_order == $target_order;
+ ($TargetObj = $ObjectCF, last) if $this_order == $target_order;
# otherwise, we need to apropos toward the general direction
# ... first, check the sign is correct
@@ -96,7 +104,7 @@
next if $orig_delta < $this_delta;
}
- $TargetObj = $CustomFieldObj;
+ $TargetObj = $ObjectCF;
}
if ($TargetObj) {
@@ -105,19 +113,12 @@
$TargetObj->SetSortOrder($s);
$SourceObj->SetSortOrder($t);
# because order changed, we must redo search for subsequent uses
- $CustomFields->RedoSearch;
}
- $CustomFields->GotoFirstItem;
+ $ObjectCFs->GotoFirstItem;
}
# }}}
-my $id = $Object->Id;
-my ($GlobalCFs, $ObjectCFs);
-$ObjectCFs = RT::ObjectCustomFields->new($session{'CurrentUser'});
-$ObjectCFs->LimitToObjectId($Object->Id);
-$ObjectCFs->LimitToLookupType($lookup);
-
if ($id) {
$GlobalCFs = RT::ObjectCustomFields->new($session{'CurrentUser'});
$GlobalCFs->LimitToObjectId(0);
@@ -137,7 +138,6 @@
# no longer has
my $key = "Object-$id-CF-$cf_id";
if ($ARGS{$key}) {
- push @AssociatedCFs, $cf;
if (!$ObjectCFs->HasEntryForCustomField($cf_id)) {
my ($val, $msg) = $cf->AddToObject($Object);
push (@results, $msg);
@@ -147,18 +147,17 @@
else {
push @UnassociatedCFs, $cf;
if ($ObjectCFs->HasEntryForCustomField($cf_id)) {
- my ($val, $msg) = $cf->RemoveFromParent($Object);
+ my ($val, $msg) = $cf->RemoveFromObject($Object);
push (@results, $msg);
}
}
}
- elsif ($ObjectCFs->HasEntryForCustomField($cf_id)) {
- push @AssociatedCFs, $cf;
- }
- else {
+ elsif (!$ObjectCFs->HasEntryForCustomField($cf_id)) {
push @UnassociatedCFs, $cf;
}
}
+
+$ObjectCFs->RedoSearch;
</%INIT>
<%ARGS>
Modified: rt/branches/autrijus-3.1/html/Admin/Elements/PickCustomFields
==============================================================================
--- rt/branches/autrijus-3.1/html/Admin/Elements/PickCustomFields (original)
+++ rt/branches/autrijus-3.1/html/Admin/Elements/PickCustomFields Sat Mar 6 07:11:23 2004
@@ -47,17 +47,17 @@
<i><% $CustomFieldObj->FriendlyTypeComposite %></i>
</TD>
% # show 'move up' unless it's the first item
-% if ($count++ and !$ReadOnly) {
+% if ($count++ and $Checked) {
<TD valign="TOP">
- <a href="CustomFields.html?id=<%$id%>&CustomField=<%$CustomFieldObj->id%>&Move=-1"><&|/l&>Move up</&></a>
+ [<a href="CustomFields.html?id=<%$id%>&CustomField=<%$CustomFieldObj->id%>&Move=-1"><&|/l&>Move up</&></a>]
% } else {
<TD valign="TOP" ALIGN=RIGHT>
% }
% # show 'move down' unless it's the last item
-% if ($count != @CustomFields and !$ReadOnly) {
+% if ($count != @CustomFields and $Checked) {
% $m->print(' | ') if $count > 1;
- <a href="CustomFields.html?id=<%$id%>&CustomField=<%$CustomFieldObj->id%>&Move=1"><&|/l&>Move down</&></a>
+ [<a href="CustomFields.html?id=<%$id%>&CustomField=<%$CustomFieldObj->id%>&Move=1"><&|/l&>Move down</&></a>]
% }
</TD>
</TR>
Modified: rt/branches/autrijus-3.1/html/Admin/Groups/Modify.html
==============================================================================
--- rt/branches/autrijus-3.1/html/Admin/Groups/Modify.html (original)
+++ rt/branches/autrijus-3.1/html/Admin/Groups/Modify.html Sat Mar 6 07:11:23 2004
@@ -53,7 +53,7 @@
<TR><TD ALIGN="RIGHT">
<% $CF->Name %>
</TD><TD>
-<& /Ticket/Elements/EditCustomField, CustomField => $CF &>
+<& /Elements/EditCustomField, CustomField => $CF, Object => $Group &>
</TD></TR>
% }
<TR>
@@ -112,6 +112,7 @@
Object => $Group,
ARGSRef => \%ARGS );
push (@results, at fieldresults);
+ push @results, ProcessObjectCustomFieldUpdates( ARGSRef => \%ARGS );
}
#we're asking about enabled on the web page but really care about disabled.
Modified: rt/branches/autrijus-3.1/lib/RT/ObjectCustomField_Overlay.pm
==============================================================================
--- rt/branches/autrijus-3.1/lib/RT/ObjectCustomField_Overlay.pm (original)
+++ rt/branches/autrijus-3.1/lib/RT/ObjectCustomField_Overlay.pm Sat Mar 6 07:11:23 2004
@@ -25,4 +25,54 @@
use strict;
no warnings qw(redefine);
+sub Create {
+ my $self = shift;
+ my %args = (
+ CustomField => '0',
+ ObjectId => '0',
+ SortOrder => undef,
+ @_);
+
+ if (!defined $args{SortOrder}) {
+ my $CF = $self->CustomFieldObj($args{'CustomField'});
+ my $ObjectCFs = RT::ObjectCustomFields->new($self->CurrentUser);
+ $ObjectCFs->LimitToObjectId($args{'ObjectId'});
+ $ObjectCFs->LimitToLookupType($CF->LookupType);
+
+ $args{SortOrder} = $ObjectCFs->Count + 1;
+ }
+
+ $self->SUPER::Create(
+ CustomField => $args{'CustomField'},
+ ObjectId => $args{'ObjectId'},
+ SortOrder => $args{'SortOrder'},
+ );
+}
+
+sub Delete {
+ my $self = shift;
+
+ my $ObjectCFs = RT::ObjectCustomFields->new($self->CurrentUser);
+ $ObjectCFs->LimitToObjectId($self->ObjectId);
+ $ObjectCFs->LimitToLookupType($self->CustomFieldObj->LookupType);
+
+ # Move everything below us up
+ my $sort_order = $self->SortOrder;
+ while (my $OCF = $ObjectCFs->Next) {
+ my $this_order = $OCF->SortOrder;
+ next if $this_order <= $sort_order;
+ $OCF->SetSortOrder($this_order - 1);
+ }
+
+ $self->SUPER::Delete;
+}
+
+sub CustomFieldObj {
+ my $self = shift;
+ my $id = shift || $self->CustomField;
+ my $CF = RT::CustomField->new($self->CurrentUser);
+ $CF->Load($id) or die "Cannot load CustomField $id";
+ return $CF;
+}
+
1;
Modified: rt/branches/autrijus-3.1/lib/RT/ObjectCustomFields_Overlay.pm
==============================================================================
--- rt/branches/autrijus-3.1/lib/RT/ObjectCustomFields_Overlay.pm (original)
+++ rt/branches/autrijus-3.1/lib/RT/ObjectCustomFields_Overlay.pm Sat Mar 6 07:11:23 2004
@@ -33,7 +33,7 @@
sub LimitToObjectId {
my $self = shift;
- my $id = shift;
+ my $id = shift || 0;
$self->Limit( FIELD => 'ObjectId', VALUE => $id );
}
@@ -66,6 +66,12 @@
else {
return ($items[0]);
}
+}
+
+sub CustomFields {
+ my $self = shift;
+ my %seen;
+ map { $_->CustomFieldObj } grep { !$seen{$_->CustomField}++ } @{$self->ItemsArrayRef};
}
1;
More information about the Rt-commit
mailing list