[rt-commit] [svn] r554 - in rt/branches: . autrijus-3.1/html/Admin/CustomFields autrijus-3.1/html/Admin/Elements autrijus-3.1/html/Elements autrijus-3.1/html/Search autrijus-3.1/html/Ticket autrijus-3.1/lib/RT autrijus-3.1/lib/RT/Interface

autrijus at fsck.com autrijus at fsck.com
Fri Mar 12 01:29:36 EST 2004


Author: autrijus
Date: Fri Mar 12 01:29:35 2004
New Revision: 554

Modified:
   rt/branches/   (props changed)
   rt/branches/autrijus-3.1/html/Admin/CustomFields/Objects.html
   rt/branches/autrijus-3.1/html/Admin/Elements/EditCustomFields
   rt/branches/autrijus-3.1/html/Elements/Submit
   rt/branches/autrijus-3.1/html/Search/Bulk.html
   rt/branches/autrijus-3.1/html/Ticket/Create.html
   rt/branches/autrijus-3.1/html/Ticket/ModifyAll.html
   rt/branches/autrijus-3.1/lib/RT/CustomFields_Overlay.pm
   rt/branches/autrijus-3.1/lib/RT/Interface/Web.pm
   rt/branches/autrijus-3.1/lib/RT/Record.pm
Log:
* CheckAll and ClearAll done.
* Jumbo and Bulk support for TxnCFs done.
* Create.html draws TxnCFs like other places do.
* _AddCFV now checks for CF's validity against that object.


Modified: rt/branches/autrijus-3.1/html/Admin/CustomFields/Objects.html
==============================================================================
--- rt/branches/autrijus-3.1/html/Admin/CustomFields/Objects.html	(original)
+++ rt/branches/autrijus-3.1/html/Admin/CustomFields/Objects.html	Fri Mar 12 01:29:35 2004
@@ -50,7 +50,7 @@
 <h3><&|/l&>Unassigned Objects (check to assign)</&></h3>
 <& /Admin/Elements/PickObjects, Objects => \@UnassignedObjs, id => $id &>
 
-<& /Elements/Submit &>
+<& /Elements/Submit, CheckAll => 1, ClearAll => 1 &>
 </FORM>
 
 <%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	Fri Mar 12 01:29:35 2004
@@ -51,7 +51,7 @@
 <h3><&|/l&>Unassigned Custom Fields (check to assign)</&></h3>
 <& PickCustomFields, CustomFields => \@UnassignedCFs, id => $id &>
 
-<& /Elements/Submit &>
+<& /Elements/Submit, CheckAll => 1, ClearAll => 1 &>
 </FORM>
 
 

Modified: rt/branches/autrijus-3.1/html/Elements/Submit
==============================================================================
--- rt/branches/autrijus-3.1/html/Elements/Submit	(original)
+++ rt/branches/autrijus-3.1/html/Elements/Submit	Fri Mar 12 01:29:35 2004
@@ -21,15 +21,32 @@
 %# 
 %# 
 %# END LICENSE BLOCK
+% if ($CheckAll or $ClearAll) {
+<script><!--
+function set_checkbox (obj, val) {
+    var i;
+    var myfield = obj.form.getElementsByTagName('input');
+    for (i = 0; i < myfield.length; i++) {
+	if (myfield[i].type == 'checkbox') {
+	    myfield[i].checked = val;
+	}
+    }
+}
+--></script>
+% }
 <TABLE WIDTH=100% BGCOLOR="<%$color%>" CELLSPACING=0 BORDER=0 CELLPADDING=0 >
 <TR>
-% if ($Reset) {
 <TD>
-<FONT COLOR=#ffd800 >
+% if ($CheckAll) {
+<INPUT TYPE=BUTTON VALUE="<%$CheckAllLabel%>" ONCLICK="set_checkbox(this, true)">
+% }
+% if ($ClearAll) {
+<INPUT TYPE=BUTTON VALUE="<%$ClearAllLabel%>" ONCLICK="set_checkbox(this, false)">
+% }
+% if ($Reset) {
 <INPUT TYPE=RESET VALUE="<%$ResetLabel%>">
-</FONT>
-</TD>
 %}
+</TD>
 <TD>
 &nbsp;
 </TD>
@@ -57,6 +74,10 @@
 $AlternateLabel => undef
 $Label => loc('Submit')
 $Name => undef
+$CheckAll => undef
+$CheckAllLabel => loc('Check All')
+$ClearAll => undef
+$ClearAllLabel => loc('Clear All')
 $Reset => undef
 $ResetLabel => loc('Reset')
 </%ARGS>

Modified: rt/branches/autrijus-3.1/html/Search/Bulk.html
==============================================================================
--- rt/branches/autrijus-3.1/html/Search/Bulk.html	(original)
+++ rt/branches/autrijus-3.1/html/Search/Bulk.html	Fri Mar 12 01:29:35 2004
@@ -131,6 +131,12 @@
 </select> 
 </td></tr>
 <tr><td align=right><&|/l&>Subject</&>:</td><td> <input name="UpdateSubject" size=60 value=""></td></tr>
+% while (my $CF = $TxnCFs->Next()) {
+<TR>
+<TD ALIGN=RIGHT><% $CF->Name %>:</TD>
+<TD><& /Elements/EditCustomField, CustomField => $CF, NamePrefix => "TransactionCustomField-" &><em><% $CF->FriendlyType %></em></TD>
+</TD></TR>
+% } # end if while
  <tr><td align=right><&|/l&>Attach</&>:</td><td><input name="UpdateAttachment" type="file"></td></tr>
  <tr><td class=labeltop><&|/l&>Message</&>:</td><td>
  <& /Elements/MessageBox, Name=>"UpdateContent"&>
@@ -178,7 +184,10 @@
 my @linkresults;
 
 $Tickets->RedoSearch();
+
+my %queues;
 while (my $Ticket = $Tickets->Next) {
+    $queues{$Ticket->Queue}++;
     $RT::Logger->debug( "Checking Ticket ".$Ticket->Id ."\n");
     next unless ($ARGS{"UpdateTicket".$Ticket->Id});
     $RT::Logger->debug ("Matched\n");
@@ -216,5 +225,9 @@
 
     @results = (@results, @tempresults);
 }
+
+my $TxnCFs = RT::CustomFields->new($session{CurrentUser});
+$TxnCFs->LimitToLookupType("RT::Queue-RT::Ticket-RT::Transaction");
+$TxnCFs->LimitToGlobalOrObjectId(sort keys %queues);
 
 </%INIT>

Modified: rt/branches/autrijus-3.1/html/Ticket/Create.html
==============================================================================
--- rt/branches/autrijus-3.1/html/Ticket/Create.html	(original)
+++ rt/branches/autrijus-3.1/html/Ticket/Create.html	Fri Mar 12 01:29:35 2004
@@ -91,6 +91,14 @@
 <& /Ticket/Elements/EditCustomFields, QueueObj => $QueueObj &>
 </TD>
 </TR>
+% if ($TxnCFs->Count) {
+% while (my $CF = $TxnCFs->Next()) {
+<TR>
+<TD ALIGN=RIGHT><% $CF->Name %>:</TD>
+<TD><& /Elements/EditCustomField, CustomField => $CF, NamePrefix => "TransactionCustomField-" &><em><% $CF->FriendlyType %></em></TD>
+</TD></TR>
+% }
+% }
 <TR>
 % if (exists $session{'Attachments'}) {
 <TD class=label>
@@ -188,22 +196,6 @@
 </TABLE>
 <& /Elements/TitleBoxEnd &>
 <BR>
-
-% if ($TxnCFs->Count) {
-<& /Elements/TitleBoxStart, title => loc('Transaction Custom Fields'), 
-	title_class=> 'inverse',  
-	titleright => '', color=> "#333366" &>
-<TABLE BORDER=0>
-% while (my $CF = $TxnCFs->Next()) {
-<TR>
-<TD ALIGN=RIGHT><% $CF->Name %>:</TD>
-<TD><& /Elements/EditCustomField, CustomField => $CF, NamePrefix => "TransactionCustomField-" &></TD>
-<TD ALIGN=RIGHT><em><% $CF->FriendlyType %></em></TD>
-</TD></TR>
-% }
-</TABLE>
-<& /Elements/TitleBoxEnd &>
-% }
 
 </TD>
 </TR>

Modified: rt/branches/autrijus-3.1/html/Ticket/ModifyAll.html
==============================================================================
--- rt/branches/autrijus-3.1/html/Ticket/ModifyAll.html	(original)
+++ rt/branches/autrijus-3.1/html/Ticket/ModifyAll.html	Fri Mar 12 01:29:35 2004
@@ -78,6 +78,14 @@
     <td class="label"><&|/l&>Subject</&>:</td>
     <td class="entry"><input name="UpdateSubject" size=60 value=""></td>
   </tr>
+% if (my $TxnCFs = $Ticket->TransactionCustomFields) {
+%    while (my $CF = $TxnCFs->Next()) {
+<TR>
+<TD class="label"><% $CF->Name %>:</TD>
+<TD class="entry"><& /Elements/EditCustomField, CustomField => $CF, NamePrefix => "TransactionCustomField-" &><em><% $CF->FriendlyType %></em></TD>
+</TD></TR>
+%    } # end if while
+% } # end of if
   <tr>
     <td class="label"><&|/l&>Attach</&>:</td>
     <td class="entry"><input name="UpdateAttachment" type=file></td>

Modified: rt/branches/autrijus-3.1/lib/RT/CustomFields_Overlay.pm
==============================================================================
--- rt/branches/autrijus-3.1/lib/RT/CustomFields_Overlay.pm	(original)
+++ rt/branches/autrijus-3.1/lib/RT/CustomFields_Overlay.pm	Fri Mar 12 01:29:35 2004
@@ -206,22 +206,28 @@
 
 sub LimitToGlobalOrObjectId {
     my $self = shift;
-    my $id = shift || 0;
+    my $global_only = 1;
 
     $self->Join( ALIAS1 => 'main',
                 FIELD1 => 'id',
                 ALIAS2 => $self->_OCFAlias,
                 FIELD2 => 'CustomField' );
-    $self->Limit( ALIAS           => $self->_OCFAlias,
-                 FIELD           => 'ObjectId',
-                 OPERATOR        => '=',
-                 VALUE           => $id,
-                 ENTRYAGGREGATOR => 'OR' );
+
+    foreach my $id (@ARGV) {
+	$self->Limit( ALIAS           => $self->_OCFAlias,
+		    FIELD           => 'ObjectId',
+		    OPERATOR        => '=',
+		    VALUE           => $id || 0,
+		    ENTRYAGGREGATOR => 'OR' );
+	$global_only = 0 if $id;
+    }
+
     $self->Limit( ALIAS           => $self->_OCFAlias,
                  FIELD           => 'ObjectId',
                  OPERATOR        => '=',
                  VALUE           => 0,
-                 ENTRYAGGREGATOR => 'OR' ) if $id;
+                 ENTRYAGGREGATOR => 'OR' ) if $global_only;
+
     $self->OrderByCols(
 	{ ALIAS => $self->_OCFAlias, FIELD => 'ObjectId' },
 	{ ALIAS => $self->_OCFAlias, FIELD => 'SortOrder' },

Modified: rt/branches/autrijus-3.1/lib/RT/Interface/Web.pm
==============================================================================
--- rt/branches/autrijus-3.1/lib/RT/Interface/Web.pm	(original)
+++ rt/branches/autrijus-3.1/lib/RT/Interface/Web.pm	Fri Mar 12 01:29:35 2004
@@ -449,7 +449,6 @@
                 TimeTaken    => $args{ARGSRef}->{'UpdateTimeWorked'}
             );
             push ( @{ $args{Actions} }, $Description );
-	    print "I see $Object coming up\n";
 	    $Object->UpdateCustomFields( ARGSRef => $args{ARGSRef} ) if $Object;
         }
         elsif ( $args{ARGSRef}->{'UpdateType'} eq 'response' ) {

Modified: rt/branches/autrijus-3.1/lib/RT/Record.pm
==============================================================================
--- rt/branches/autrijus-3.1/lib/RT/Record.pm	(original)
+++ rt/branches/autrijus-3.1/lib/RT/Record.pm	Fri Mar 12 01:29:35 2004
@@ -765,6 +765,14 @@
         return ( 0, $self->loc("Custom field [_1] not found", $args{'Field'}) );
     }
 
+    my $OCFs = RT::ObjectCustomFields->new( $self->CurrentUser );
+    $OCFs->LimitToCustomField( $cf->Id );
+    $OCFs->LimitToObjectId( $self->Id );
+    $OCFs->LimitToObjectId( 0 );
+    unless ($OCFs->Count) {
+        return ( 0, $self->loc("Custom field [_1] does not apply to this object", $args{'Field'}) );
+    }
+
     # Load up a ObjectCustomFieldValues object for this custom field and this ticket
     my $values = $cf->ValuesForObject( $self );
 



More information about the Rt-commit mailing list