import rt 3.6.4
[freeside.git] / rt / html / Admin / Elements / EditCustomFields
index 1cd3df5..9b1176a 100644 (file)
@@ -2,7 +2,7 @@
 %# 
 %# COPYRIGHT:
 %#  
-%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC 
+%# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC 
 %#                                          <jesse@bestpractical.com>
 %# 
 %# (Except where explicitly superseded by other copyright notices)
@@ -22,7 +22,9 @@
 %# 
 %# You should have received a copy of the GNU General Public License
 %# along with this program; if not, write to the Free Software
-%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+%# 02110-1301 or visit their web page on the internet at
+%# http://www.gnu.org/copyleft/gpl.html.
 %# 
 %# 
 %# CONTRIBUTION SUBMISSION POLICY:
 %# END BPS TAGGED BLOCK }}}
 <& /Elements/ListActions, actions => \@results &>
 
-<FORM ACTION="<%$RT::WebPath%><% $m->request_comp->path |n %>" METHOD="POST" NAME="EditCustomFields">
-<INPUT TYPE=HIDDEN NAME="id" VALUE="<% $Object->Id %>"/>
-<INPUT TYPE=HIDDEN NAME="ObjectType" VALUE="<% $ObjectType %>"/>
-<INPUT TYPE=HIDDEN NAME="SubType" VALUE="<% $SubType %>"/>
-<INPUT TYPE=HIDDEN NAME="UpdateCFs" VALUE="1"/>
+<form action="<%$RT::WebPath%><% $m->request_comp->path |n %>" method="post" name="EditCustomFields">
+<input type="hidden" class="hidden" name="id" value="<% $Object->Id %>" />
+<input type="hidden" class="hidden" name="ObjectType" value="<% $ObjectType %>" />
+<input type="hidden" class="hidden" name="SubType" value="<% $SubType %>" />
+<input type="hidden" class="hidden" name="UpdateCFs" value="1" />
 
 % if ($Object->Id) {
 <h2><&|/l&>Global Custom Fields</&></h2>
@@ -61,7 +63,7 @@
 <& PickCustomFields, CustomFields => \@UnassignedCFs, id => $id, SubType => $SubType &>
 
 <& /Elements/Submit, CheckAll => 1, ClearAll => 1 &>
-</FORM>
+</form>
 
 
 <%INIT>
@@ -71,7 +73,7 @@ my (@GlobalCFs, @UnassignedCFs);
 
 my $id = $Object->Id;
 if ($id and !$Object->CurrentUserHasRight('AssignCustomFields')) {
-    $m->out('<P><i>', loc('(No custom fields)'), '</i></P>');
+    $m->out('<p><i>', loc('(No custom fields)'), '</i></p>');
     return;
 }
 
@@ -88,6 +90,20 @@ $ObjectCFs->UnLimit;
 $ObjectCFs->LimitToObjectId($id);
 $ObjectCFs->LimitToLookupType($lookup);
 
+# Check sanity of SortOrders
+my %SortOrders;
+$SortOrders{$_->SortOrder}++
+  while ($_ = $ObjectCFs->Next);
+
+# If there are duplicates, run though and squash them
+if (grep {$_ > 1} values %SortOrders) {
+    my $i = 1;
+    while (my $ObjectCF = $ObjectCFs->Next) {
+        $ObjectCF->SetSortOrder($i++);
+    }
+    $ObjectCFs->GotoFirstItem;
+}
+
 # {{{ deal with moving sortorder of custom fields
 if ($CustomField and $Move) {
     my $SourceObj = RT::ObjectCustomField->new($session{'CurrentUser'});