summaryrefslogtreecommitdiff
path: root/rt/html/Admin/Elements/EditCustomFields
diff options
context:
space:
mode:
Diffstat (limited to 'rt/html/Admin/Elements/EditCustomFields')
-rw-r--r--rt/html/Admin/Elements/EditCustomFields213
1 files changed, 0 insertions, 213 deletions
diff --git a/rt/html/Admin/Elements/EditCustomFields b/rt/html/Admin/Elements/EditCustomFields
deleted file mode 100644
index 81c984d..0000000
--- a/rt/html/Admin/Elements/EditCustomFields
+++ /dev/null
@@ -1,213 +0,0 @@
-%# BEGIN LICENSE BLOCK
-%#
-%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com>
-%#
-%# (Except where explictly superceded by other copyright notices)
-%#
-%# This work is made available to you under the terms of Version 2 of
-%# the GNU General Public License. A copy of that license should have
-%# been provided with this software, but in any event can be snarfed
-%# from www.gnu.org.
-%#
-%# This work is distributed in the hope that it will be useful, but
-%# WITHOUT ANY WARRANTY; without even the implied warranty of
-%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-%# General Public License for more details.
-%#
-%# Unless otherwise specified, all modifications, corrections or
-%# extensions to this work which alter its source code become the
-%# property of Best Practical Solutions, LLC when submitted for
-%# inclusion in the work.
-%#
-%#
-%# END LICENSE BLOCK
-<& /Elements/ListActions, actions => \@actions &>
-
-<TABLE>
-<TR>
-<TD VALIGN=TOP>
-<h2><%$caption%></h2>
-</TD></TR></TABLE>
-% if ($CustomFields->Count == 0 ) {
-<P><i><&|/l&>(No custom fields)</&></i></P>
-% } else {
-<TABLE cellspacing=0 cellpadding=2>
-% my $count;
-% while (my $CustomFieldObj = $CustomFields->Next) {
-<TR>
- <TD valign="TOP">
-% if ($CustomFieldObj->Name) {
- <A HREF="CustomField.html?Queue=<%$id%>&CustomField=<%$CustomFieldObj->id()%>"><b><%$CustomFieldObj->Name%></b></a><br>
-% } else {
- <A HREF="CustomField.html?Queue=<%$id%>&CustomField=<%$CustomFieldObj->id()%>"><i>(<%loc("no name")%>)</i></a><br>
-% }
- <%$CustomFieldObj->Description%>
- </TD>
- <TD valign="TOP">
- <i><% $CustomFieldObj->FriendlyType %></i>
- </TD>
-% # show 'move up' unless it's the first item
-% if ($count++) {
- <TD valign="TOP">
- <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 (!$CustomFields->IsLast) {
-% $m->print(' | ') if $count > 1;
- <a href="CustomFields.html?id=<%$id%>&CustomField=<%$CustomFieldObj->id%>&Move=1"><&|/l&>Move down</&></a>
-% }
-</TD>
-</TR>
-% }
-
-</TABLE>
-% }
-<FORM METHOD=GET ACTION="CustomFields.html">
-% if ($id) {
-<INPUT TYPE="Hidden" NAME="id" VALUE="<%$id%>">
-% }
-<input type="checkbox" name="FindDisabledCustomFields"> <&|/l&>Include disabled custom fields in listing.</&>
-<input type=submit value="<&|/l&>Go!</&>">
-</FORM>
-
-
-<%INIT>
-my $CustomFields = RT::CustomFields->new($session{'CurrentUser'});
-my $QueueObj = RT::Queue->new($session{'CurrentUser'});
-my $caption;
-
-if ($id) {
- $QueueObj->Load($id);
-}
-
-if ($QueueObj->id) {
- $CustomFields->LimitToQueue($id);
-}
-else {
- $CustomFields->LimitToGlobal();
-}
-
-if ($FindDisabledCustomFields) {
- $caption = loc("All Custom Fields");
- $CustomFields->{'find_disabled_rows'} = 1;
-} else {
- $caption = loc("Enabled Custom Fields");
-}
-
-# {{{ 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 $TargetObj;
- my $target_order = $SourceObj->SortOrder + $Move;
- while (my $CustomFieldObj = $CustomFields->Next) {
- my $this_order = $CustomFieldObj->SortOrder;
-
- # if we have an exact match, finish the loop now
- ($TargetObj = $CustomFieldObj, last) if $this_order == $target_order;
-
- # otherwise, we need to apropos toward the general direction
- # ... first, check the sign is correct
- next unless ($this_order - $SourceObj->SortOrder) * $Move > 0;
-
- # ... next, see if we already have a candidate
- if ($TargetObj) {
- # ... if yes, compare the delta and choose the smaller one
- my $orig_delta = abs($TargetObj->SortOrder - $target_order);
- my $this_delta = abs($this_order - $target_order);
- next if $orig_delta < $this_delta;
- }
-
- $TargetObj = $CustomFieldObj;
- }
-
- if ($TargetObj) {
- # swap their sort order
- my ($s, $t) = ($SourceObj->SortOrder, $TargetObj->SortOrder);
- $TargetObj->SetSortOrder($s);
- $SourceObj->SetSortOrder($t);
- # because order changed, we must redo search for subsequent uses
- $CustomFields->RedoSearch;
- }
-
- $CustomFields->GotoFirstItem;
-}
-# }}}
-
-# {{{ now process the 'copy queue' action
-my @actions;
-if ($Source and $Source ne $id) {
- my $SourceQueue = RT::Queue->new($session{'CurrentUser'});
- $SourceQueue->Load($Source) || Abort(loc("Couldn't load queue"));
- my $SourceCustomFields = RT::CustomFields->new($session{'CurrentUser'});
- $SourceCustomFields->LimitToQueue($SourceQueue->id);
-
- # delete old fields
- foreach my $CustomFieldObj ( @{$CustomFields->ItemsArrayRef} ) {
- $CustomFieldObj->Delete;
- }
-
- # add new fields
- while (my $SourceCustomFieldObj = $SourceCustomFields->Next) {
- my $CustomFieldObj = RT::CustomField->new($session{'CurrentUser'});
- my ($val, $msg) = $CustomFieldObj->Create(
- id => $SourceCustomFieldObj->id,
- Queue => $id,
- Name => $SourceCustomFieldObj->Name,
- Type => $SourceCustomFieldObj->Type,
- Description => $SourceCustomFieldObj->Description,
- );
- Abort(loc("Could not create CustomField") . ": $msg") unless ($val);
- push @actions, $msg;
-
- $CustomFieldObj->SetSortOrder($SourceCustomFieldObj->SortOrder);
-
- # add new values
- my $values = $SourceCustomFieldObj->Values();
- while (my $v = $values->Next) {
- my ( $addval, $addmsg ) = $CustomFieldObj->AddValue(
- Name => $v->Name,
- Description => $v->Description,
- SortOrder => $v->SortOrder
- );
- }
- }
-
- # because content changed, we must redo search for subsequent uses
- $CustomFields->RedoSearch;
- $CustomFields->GotoFirstItem;
-}
-# }}}
-
-# {{{ deal with deleting existing custom fields
-foreach my $key (keys %ARGS) {
- # {{{ if we're trying to delete the custom field
- if ($key =~ /^DeleteCustomField-(\d+)/) {
- my $id = $1;
- my $CustomFieldObj = RT::CustomField->new($session{'CurrentUser'});
- $CustomFieldObj->Load($id);
- my ($retval, $msg) = $CustomFieldObj->Delete;
- if ($retval) {
- push @actions, loc("Custom field deleted");
- }
- else {
- push @actions, $msg;
- }
- }
- # }}}
-}
-# }}}
-
-</%INIT>
-<%ARGS>
-$id => 0
-$title => undef
-$Move => undef
-$Source => undef
-$CustomField => undef
-$FindDisabledCustomFields => undef
-</%ARGS>