summaryrefslogtreecommitdiff
path: root/rt/etc
diff options
context:
space:
mode:
Diffstat (limited to 'rt/etc')
-rw-r--r--rt/etc/RT_Config.pm1831
-rw-r--r--rt/etc/RT_Config.pm.in1831
-rw-r--r--rt/etc/RT_SiteConfig.pm56
-rw-r--r--rt/etc/acl.Informix6
-rw-r--r--rt/etc/acl.Oracle10
-rwxr-xr-xrt/etc/acl.Pg63
-rw-r--r--rt/etc/acl.Sybase10
-rwxr-xr-xrt/etc/acl.mysql8
-rw-r--r--rt/etc/constraints.mysql85
-rw-r--r--rt/etc/drop.Informix19
-rw-r--r--rt/etc/drop.Oracle41
-rw-r--r--rt/etc/initialdata604
-rw-r--r--rt/etc/schema.Informix364
-rwxr-xr-xrt/etc/schema.Pg638
-rw-r--r--rt/etc/schema.SQLite442
-rw-r--r--rt/etc/schema.Sybase444
-rwxr-xr-xrt/etc/schema.mysql-4.0464
-rwxr-xr-xrt/etc/schema.mysql-4.1467
-rw-r--r--rt/etc/upgrade/3.1.0/acl.Informix4
-rwxr-xr-xrt/etc/upgrade/3.1.0/acl.Oracle4
-rwxr-xr-xrt/etc/upgrade/3.1.0/acl.Pg19
-rwxr-xr-xrt/etc/upgrade/3.1.0/acl.SQLite4
-rwxr-xr-xrt/etc/upgrade/3.1.0/acl.mysql4
-rw-r--r--rt/etc/upgrade/3.1.0/content2
-rw-r--r--rt/etc/upgrade/3.1.0/schema.Informix17
-rw-r--r--rt/etc/upgrade/3.1.0/schema.Oracle17
-rwxr-xr-xrt/etc/upgrade/3.1.0/schema.Pg25
-rw-r--r--rt/etc/upgrade/3.1.0/schema.SQLite21
-rwxr-xr-xrt/etc/upgrade/3.1.0/schema.mysql21
-rw-r--r--rt/etc/upgrade/3.1.15/content7
-rw-r--r--rt/etc/upgrade/3.1.17/content22
-rw-r--r--rt/etc/upgrade/3.3.0/acl.Informix4
-rw-r--r--rt/etc/upgrade/3.3.0/acl.Oracle4
-rw-r--r--rt/etc/upgrade/3.3.0/acl.Pg20
-rw-r--r--rt/etc/upgrade/3.3.0/acl.SQLite4
-rw-r--r--rt/etc/upgrade/3.3.0/acl.mysql4
-rw-r--r--rt/etc/upgrade/3.3.0/content1
-rw-r--r--rt/etc/upgrade/3.3.0/schema.Oracle65
-rw-r--r--rt/etc/upgrade/3.3.0/schema.Pg74
-rw-r--r--rt/etc/upgrade/3.3.0/schema.mysql65
-rw-r--r--rt/etc/upgrade/3.3.11/acl.Oracle4
-rw-r--r--rt/etc/upgrade/3.3.11/acl.Pg4
-rw-r--r--rt/etc/upgrade/3.3.11/acl.SQLite4
-rw-r--r--rt/etc/upgrade/3.3.11/acl.mysql4
-rw-r--r--rt/etc/upgrade/3.3.11/content1
-rw-r--r--rt/etc/upgrade/3.3.11/schema.Oracle0
-rw-r--r--rt/etc/upgrade/3.3.11/schema.Pg11
-rw-r--r--rt/etc/upgrade/3.3.11/schema.SQLite0
-rw-r--r--rt/etc/upgrade/3.3.11/schema.mysql5
-rw-r--r--rt/etc/upgrade/3.5.1/content36
-rw-r--r--rt/etc/upgrade/3.7.1/content14
-rw-r--r--rt/etc/upgrade/3.7.10/content49
-rw-r--r--rt/etc/upgrade/3.7.15/content12
-rw-r--r--rt/etc/upgrade/3.7.19/content37
-rw-r--r--rt/etc/upgrade/3.7.3/schema.Oracle5
-rw-r--r--rt/etc/upgrade/3.7.3/schema.Pg1
-rw-r--r--rt/etc/upgrade/3.7.3/schema.mysql1
-rw-r--r--rt/etc/upgrade/3.7.81/schema.Oracle2
-rw-r--r--rt/etc/upgrade/3.7.81/schema.mysql2
-rw-r--r--rt/etc/upgrade/3.7.82/content13
-rw-r--r--rt/etc/upgrade/3.7.85/content11
-rw-r--r--rt/etc/upgrade/3.7.86/content23
-rw-r--r--rt/etc/upgrade/3.7.87/content28
-rwxr-xr-xrt/etc/upgrade/3.8-branded-queues-extension95
-rwxr-xr-xrt/etc/upgrade/3.8-branded-queues-extension.in95
-rwxr-xr-xrt/etc/upgrade/3.8-ical-extension96
-rw-r--r--rt/etc/upgrade/3.8-ical-extension.in96
-rw-r--r--rt/etc/upgrade/3.8.0/content22
-rw-r--r--rt/etc/upgrade/3.8.1/content24
-rw-r--r--rt/etc/upgrade/3.8.2/content186
-rw-r--r--rt/etc/upgrade/3.8.3/content91
-rw-r--r--rt/etc/upgrade/3.8.3/schema.Pg3
-rw-r--r--rt/etc/upgrade/3.8.4/content59
-rw-r--r--rt/etc/upgrade/3.8.6/content10
-rw-r--r--rt/etc/upgrade/3.8.8/content38
-rw-r--r--rt/etc/upgrade/shrink_cgm_table.pl72
-rwxr-xr-xrt/etc/upgrade/split-out-cf-categories171
-rw-r--r--rt/etc/upgrade/split-out-cf-categories.in171
-rwxr-xr-xrt/etc/upgrade/upgrade-mysql-schema.pl390
79 files changed, 0 insertions, 9677 deletions
diff --git a/rt/etc/RT_Config.pm b/rt/etc/RT_Config.pm
deleted file mode 100644
index 21d8375..0000000
--- a/rt/etc/RT_Config.pm
+++ /dev/null
@@ -1,1831 +0,0 @@
-
-package RT;
-
-=head1 NAME
-
-RT::Config
-
-=for testing
-
-use RT::Config;
-
-=cut
-
-=head1 WARNING
-
-NEVER EDIT RT_Config.pm.
-
-Instead, copy any sections you want to change to F<RT_SiteConfig.pm> and edit them there.
-
-=cut
-
-=head1 Base Configuration
-
-=over 4
-
-=item C<$rtname>
-
-C<$rtname> is the string that RT will look for in mail messages to
-figure out what ticket a new piece of mail belongs to.
-
-Your domain name is recommended, so as not to pollute the namespace.
-once you start using a given tag, you should probably never change it.
-(otherwise, mail for existing tickets won't get put in the right place)
-
-=cut
-
-Set($rtname , "example.com");
-
-
-=item C<$EmailSubjectTagRegex>
-
-This regexp controls what subject tags RT recognizes as its own.
-If you're not dealing with historical C<$rtname> values, you'll likely
-never have to enable this feature.
-
-Be VERY CAREFUL with it. Note that it overrides C<$rtname> for subject
-token matching and that you should use only "non-capturing" parenthesis
-grouping. For example:
-
-C<Set($EmailSubjectTagRegex, qr/(?:example.com|example.org)/i );>
-
-and NOT
-
-C<Set($EmailSubjectTagRegex, qr/(example.com|example.org)/i );>
-
-This setting would make RT behave exactly as it does without the
-setting enabled.
-
-=cut
-
-#Set($EmailSubjectTagRegex, qr/\Q$rtname\E/i );
-
-
-
-=item C<$Organization>
-
-You should set this to your organization's DNS domain. For example,
-I<fsck.com> or I<asylum.arkham.ma.us>. It's used by the linking interface to
-guarantee that ticket URIs are unique and easy to construct.
-
-=cut
-
-Set($Organization , "example.com");
-
-=item C<$MinimumPasswordLength>
-
-C<$MinimumPasswordLength> defines the minimum length for user
-passwords. Setting it to 0 disables this check.
-
-=cut
-
-Set($MinimumPasswordLength , "5");
-
-=item C<$Timezone>
-
-C<$Timezone> is used to convert times entered by users into GMT and back again
-It should be set to a timezone recognized by your local unix box.
-
-=cut
-
-Set($Timezone , 'US/Eastern');
-
-=back
-
-=head1 Database Configuration
-
-=over 4
-
-=item C<$DatabaseType>
-
-Database driver being used; case matters.
-
-Valid types are "mysql", "Oracle" and "Pg"
-
-=cut
-
-Set($DatabaseType , 'Pg');
-
-=item C<$DatabaseHost>, C<$DatabaseRTHost>
-
-The domain name of your database server.
-
-If you're running mysql and it's on localhost,
-leave it blank for enhanced performance
-
-=cut
-
-Set($DatabaseHost , 'localhost');
-Set($DatabaseRTHost , 'localhost');
-
-=item C<$DatabasePort>
-
-The port that your database server is running on. Ignored unless it's
-a positive integer. It's usually safe to leave this blank
-
-=cut
-
-Set($DatabasePort , '');
-
-=item C<$DatabaseUser>
-
-The name of the database user (inside the database)
-
-=cut
-
-Set($DatabaseUser , 'freeside');
-
-=item C<$DatabasePassword>
-
-Password the C<$DatabaseUser> should use to access the database
-
-=cut
-
-Set($DatabasePassword , '');
-
-=item C<$DatabaseName>
-
-The name of the RT's database on your database server. For Oracle
-it's SID, DB objects are created in L<$DatabaseUser>'s schema.
-
-=cut
-
-Set($DatabaseName , 'freeside');
-
-=item C<$DatabaseRequireSSL>
-
-If you're using Postgres and have compiled in SSL support,
-set C<$DatabaseRequireSSL> to 1 to turn on SSL communication
-
-=cut
-
-Set($DatabaseRequireSSL , undef);
-
-=item C<$UseSQLForACLChecks>
-
-In RT for ages ACL are checked after search what in some situtations
-result in empty search pages and wrong count of tickets.
-
-Set C<$UseSQLForACLChecks> to 1 to use SQL and get rid of these problems.
-
-However, this option is beta. In some cases it result in performance
-improvements, but some setups can not handle it.
-
-=cut
-
-Set($UseSQLForACLChecks, undef);
-
-=item C<$TicketsItemMapSize>
-
-In RT at display page of a ticket and there is the current search,
-then links for first, next, previous and last ticket are shown in
-the menu.
-
-To build full map RT has to fetch full result set out of DB what can
-eat lots of resourses. Using this option it's possible to limit number
-of tickets fetched.
-
-Set C<$TicketsItemMapSize> to number of tickets you want RT to look
-at to build the map. If full result set is bigger than that number
-then there would be no 'last' link in the menu.
-
-Set this to zero to return back to old behaviour.
-
-=cut
-
-Set($TicketsItemMapSize, 1000);
-
-=back
-
-=head1 Incoming Mail Gateway Configuration
-
-=over 4
-
-=item C<$OwnerEmail>
-
-C<$OwnerEmail> is the address of a human who manages RT. RT will send
-errors generated by the mail gateway to this address. This address
-should _not_ be an address that's managed by your RT instance.
-
-=cut
-
-Set($OwnerEmail , 'root');
-
-=item C<$LoopsToRTOwner>
-
-If C<$LoopsToRTOwner> is defined, RT will send mail that it believes
-might be a loop to C<$OwnerEmail>
-
-=cut
-
-Set($LoopsToRTOwner , 1);
-
-=item C<$StoreLoops>
-
-If C<$StoreLoops> is defined, RT will record messages that it believes
-to be part of mail loops.
-
-As it does this, it will try to be careful not to send mail to the
-sender of these messages
-
-=cut
-
-Set($StoreLoops , undef);
-
-=item C<$MaxAttachmentSize>
-
-C<$MaxAttachmentSize> sets the maximum size (in bytes) of attachments stored
-in the database.
-
-For mysql and oracle, we set this size at 10 megabytes.
-If you're running a postgres version earlier than 7.1, you will need
-to drop this to 8192. (8k)
-
-=cut
-
-
-Set($MaxAttachmentSize , 10000000);
-
-=item C<$TruncateLongAttachments>
-
-C<$TruncateLongAttachments>: if this is set to a non-undef value,
-RT will truncate attachments longer than C<$MaxAttachmentSize>.
-
-=cut
-
-Set($TruncateLongAttachments , undef);
-
-=item C<$DropLongAttachments>
-
-C<$DropLongAttachments>: if this is set to a non-undef value,
-RT will silently drop attachments longer than C<MaxAttachmentSize>.
-
-=cut
-
-Set($DropLongAttachments , undef);
-
-=item C<$ParseNewMessageForTicketCcs>
-
-If C<$ParseNewMessageForTicketCcs> is true, RT will attempt to divine
-Ticket 'Cc' watchers from the To and Cc lines of incoming messages
-Be forewarned that if you have _any_ addresses which forward mail to
-RT automatically and you enable this option without modifying
-C<$RTAddressRegexp> below, you will get yourself into a heap of trouble.
-
-=cut
-
-Set($ParseNewMessageForTicketCcs , undef);
-
-=item C<$RTAddressRegexp>
-
-C<$RTAddressRegexp> is used to make sure RT doesn't add itself as a ticket CC if
-the setting above is enabled. It is important that you set this to a
-regular expression that matches all addresses used by your RT. This lets RT
-avoid sending mail to itself. It will also hide RT addresses from the list of
-"One-time Cc" and Bcc lists on ticket reply.
-
-=cut
-
-Set($RTAddressRegexp , undef);
-
-=item C<$CanonicalizeEmailAddressMatch>, C<$CanonicalizeEmailAddressReplace>
-
-RT provides functionality which allows the system to rewrite
-incoming email addresses. In its simplest form,
-you can substitute the value in $<CanonicalizeEmailAddressReplace>
-for the value in $<CanonicalizeEmailAddressMatch>
-(These values are passed to the $<CanonicalizeEmailAddress> subroutine in
- F<RT/User.pm>)
-
-By default, that routine performs a C<s/$Match/$Replace/gi> on any address
-passed to it.
-
-=cut
-
-#Set($CanonicalizeEmailAddressMatch , '@subdomain\.example\.com$');
-#Set($CanonicalizeEmailAddressReplace , '@example.com');
-
-=item C<$CanonicalizeEmailAddressMatch>
-
-Set this to true and the create new user page will use the values that you
-enter in the form but use the function CanonicalizeUserInfo in
-F<RT/User_Local.pm>
-
-=cut
-
-Set($CanonicalizeOnCreate, 0);
-
-=item C<$SenderMustExistInExternalDatabase>
-
-If C<$SenderMustExistInExternalDatabase> is true, RT will refuse to
-create non-privileged accounts for unknown users if you are using
-the C<$LookupSenderInExternalDatabase> option.
-Instead, an error message will be mailed and RT will forward the
-message to C<$RTOwner>.
-
-If you are not using C<$LookupSenderInExternalDatabase>, this option
-has no effect.
-
-If you define an AutoRejectRequest template, RT will use this
-template for the rejection message.
-
-=cut
-
-Set($SenderMustExistInExternalDatabase , undef);
-
-=item C<$ValidateUserEmailAddresses>
-
-If C<$ValidateUserEmailAddresses> is true, RT will refuse to create users with
-an invalid email address (as specified in RFC 2822) or with an email address
-made of multiple email adresses.
-
-=cut
-
-Set($ValidateUserEmailAddresses, undef);
-
-=item C<@MailPlugins>
-
-C<@MailPlugins> is a list of auth plugins for L<RT::Interface::Email>
-to use; see L<rt-mailgate>
-
-=cut
-
-=item C<$UnsafeEmailCommands>
-
-C<$UnsafeEmailCommands>, if set to true, enables 'take' and 'resolve'
-as possible actions via the mail gateway. As its name implies, this
-is very unsafe, as it allows email with a forged sender to possibly
-resolve arbitrary tickets!
-
-=cut
-
-=item C<$ExtractSubjectTagMatch>, C<$ExtractSubjectTagNoMatch>
-
-The default "extract remote tracking tags" scrip settings; these
-detect when your RT is talking to another RT, and adjusts the
-subject accordingly.
-
-=cut
-
-Set($ExtractSubjectTagMatch, qr/\[.+? #\d+\]/);
-Set($ExtractSubjectTagNoMatch, ( ${RT::EmailSubjectTagRegex}
- ? qr/\[(?:${RT::EmailSubjectTagRegex}) #\d+\]/
- : qr/\[\Q$RT::rtname\E #\d+\]/));
-
-=back
-
-=head1 Outgoing Mail Configuration
-
-=over 4
-
-=item C<$MailCommand>
-
-C<$MailCommand> defines which method RT will use to try to send mail.
-We know that 'sendmailpipe' works fairly well. If 'sendmailpipe'
-doesn't work well for you, try 'sendmail'. Other options are 'smtp'
-or 'qmail'.
-
-Note that you should remove the '-t' from C<$SendmailArguments>
-if you use 'sendmail' rather than 'sendmailpipe'
-
-=cut
-
-Set($MailCommand , 'sendmailpipe');
-
-=item C<$SetOutgoingMailFrom>
-
-C<$SetOutgoingMailFrom> tells RT to set the sender envelope with the correspond
-mail address of the ticket's queue.
-
-Warning: If you use this setting, bounced mails will appear to be incoming
-mail to the system, thus creating new tickets.
-
-=cut
-
-Set($SetOutgoingMailFrom, 0);
-
-=item C<$OverrideOutgoingMailFrom>
-
-C<$OverrideOutgoingMailFrom> is used for overwriting the Correspond
-address of the queue. The option is a hash reference of queue name to
-email address.
-
-If there is no ticket involved, then the value of the C<Default> key will be
-used.
-
-=cut
-
-Set($OverrideOutgoingMailFrom, {
-# 'Default' => 'admin@rt.example.com',
-# 'General' => 'general@rt.example.com',
-});
-
-=back
-
-=item C<$DefaultMailPrecedence>
-
-C<$DefaultMailPrecedence> is used to control the default
-Precedence level of outgoing mail where none is specified.
-By default it is C<bulk>, but if you only send mail to
-your staff, you may wish to change it.
-
-Note that you can set the precedence of individual templates
-by including an explicit Precedence header.
-
-If you set this value to C<undef> then we do not set a default
-Precedence header to outgoing mail. However, if there already is a
-Precedence header it will be preserved.
-
-=cut
-
-Set($DefaultMailPrecedence, 'bulk');
-
-=back
-
-=item C<$DefaultErrorMailPrecedence>
-
-C<$DefaultErrorMailPrecedence> is used to control the default
-Precedence level of outgoing mail that indicates some kind of
-error condition. By default it is C<bulk>, but if you only send
-mail to your staff, you may wish to change it.
-
-If you set this value to C<undef> then we do not add a Precedence
-header to error mail.
-
-=cut
-
-Set($DefaultErrorMailPrecedence, 'bulk');
-
-=back
-
-=item C<$UseOriginatorHeader>
-
-C<$UseOriginatorHeader> is used to control the insertion of an
-RT-Originator Header in every outgoing mail, containing the
-mail address of the transaction creator.
-
-=cut
-
-Set($UseOriginatorHeader, 1);
-
-=back
-
-=head1 Sendmail Configuration
-
-These options only take effect if C<$MailCommand> is 'sendmail' or
-'sendmailpipe'
-
-=over 4
-
-=item C<$SendmailArguments>
-
-C<$SendmailArguments> defines what flags to pass to C<$SendmailPath>
-If you picked 'sendmailpipe', you MUST add a -t flag to C<$SendmailArguments>
-These options are good for most sendmail wrappers and workalikes
-
-These arguments are good for sendmail brand sendmail 8 and newer
-C<Set($SendmailArguments,"-oi -t -ODeliveryMode=b -OErrorMode=m");>
-
-=cut
-
-Set($SendmailArguments , "-oi -t");
-
-
-=item C<$SendmailBounceArguments>
-
-C<$SendmailBounceArguments> defines what flags to pass to C<$Sendmail>
-assuming RT needs to send an error (ie. bounce).
-
-=cut
-
-Set($SendmailBounceArguments , '-f "<>"');
-
-=item C<$SendmailPath>
-
-If you selected 'sendmailpipe' above, you MUST specify the path to
-your sendmail binary in C<$SendmailPath>.
-
-=cut
-
-Set($SendmailPath , "/usr/sbin/sendmail");
-
-
-=back
-
-=head1 SMTP Configuration
-
-These options only take effect if C<$MailCommand> is 'smtp'
-
-=over 4
-
-=item C<$SMTPServer>
-
-C<$SMTPServer> should be set to the hostname of the SMTP server to use
-
-=cut
-
-Set($SMTPServer, undef);
-
-=item C<$SMTPFrom>
-
-C<$SMTPFrom> should be set to the 'From' address to use, if not the
-email's 'From'
-
-=cut
-
-Set($SMTPFrom, undef);
-
-=item C<$SMTPDebug>
-
-C<$SMTPDebug> should be set to true to debug SMTP mail sending
-
-=cut
-
-Set($SMTPDebug, 0);
-
-=back
-
-=head1 Other Mailer Configuration
-
-=over 4
-
-=item C<@MailParams>
-
-C<@MailParams> defines a list of options passed to $MailCommand if it
-is not 'sendmailpipe', 'sendmail', or 'smtp'
-
-=cut
-
-Set(@MailParams, ());
-
-=item C<$CorrespondAddress>, C<$CommentAddress>
-
-RT is designed such that any mail which already has a ticket-id associated
-with it will get to the right place automatically.
-
-C<$CorrespondAddress> and C<$CommentAddress> are the default addresses
-that will be listed in From: and Reply-To: headers of correspondence
-and comment mail tracked by RT, unless overridden by a queue-specific
-address.
-
-=cut
-
-Set($CorrespondAddress , '');
-
-Set($CommentAddress , '');
-
-=item C<$DashboardAddress>
-
-The email address from which RT will send dashboards. If none is set, then
-C<$OwnerEmail> will be used.
-
-=cut
-
-Set($DashboardAddress, '');
-
-=item C<$UseFriendlyFromLine>
-
-By default, RT sets the outgoing mail's "From:" header to
-"SenderName via RT". Setting C<$UseFriendlyFromLine> to 0 disables it.
-
-=cut
-
-Set($UseFriendlyFromLine, 1);
-
-=item C<$FriendlyFromLineFormat>
-
-C<sprintf()> format of the friendly 'From:' header; its arguments
-are SenderName and SenderEmailAddress.
-
-=cut
-
-Set($FriendlyFromLineFormat, "\"%s via RT\" <%s>");
-
-=item C<$UseFriendlyToLine>
-
-RT can optionally set a "Friendly" 'To:' header when sending messages to
-Ccs or AdminCcs (rather than having a blank 'To:' header.
-
-This feature DOES NOT WORK WITH SENDMAIL[tm] BRAND SENDMAIL
-If you are using sendmail, rather than postfix, qmail, exim or some other MTA,
-you _must_ disable this option.
-
-=cut
-
-Set($UseFriendlyToLine, 0);
-
-=item C<$FriendlyToLineFormat>
-
-C<sprintf()> format of the friendly 'From:' header; its arguments
-are WatcherType and TicketId.
-
-=cut
-
-Set($FriendlyToLineFormat, "\"%s of ". RT->Config->Get('rtname') ." Ticket #%s\":;");
-
-=item C<$NotifyActor>
-
-By default, RT doesn't notify the person who performs an update, as they
-already know what they've done. If you'd like to change this behaviour,
-Set C<$NotifyActor> to 1
-
-=cut
-
-Set($NotifyActor, 0);
-
-=item C<$RecordOutgoingEmail>
-
-By default, RT records each message it sends out to its own internal database.
-To change this behavior, set C<$RecordOutgoingEmail> to 0
-
-=cut
-
-Set($RecordOutgoingEmail, 1);
-
-=item C<$VERPPrefix>, C<$VERPPrefix>
-
-VERP support (http://cr.yp.to/proto/verp.txt)
-
-uncomment the following two directives to generate envelope senders
-of the form C<${VERPPrefix}${originaladdress}@${VERPDomain}>
-(i.e. rt-jesse=fsck.com@rt.example.com ).
-
-This currently only works with sendmail and sendmailppie.
-
-=cut
-
-# Set($VERPPrefix, 'rt-');
-# Set($VERPDomain, $RT::Organization);
-
-
-=item C<$ForwardFromUser>
-
-By default, RT forwards a message using queue's address and adds RT's tag into
-subject of the outgoing message, so recipients' replies go into RT as correspondents.
-
-To change this behavior, set C<$ForwardFromUser> to true value and RT will use
-address of the current user and leave subject without RT's tag.
-
-=cut
-
-Set($ForwardFromUser, 0);
-
-=item C<$ShowBccHeader>
-
-By default RT hides from the web UI information about blind copies user sent on
-reply or comment.
-
-To change this set the following option to true value.
-
-=cut
-
-Set($ShowBccHeader, 0);
-
-=item C<$DashboardSubject>
-
-Lets you set the subject of dashboards. Arguments are the frequency (Daily,
-Weekly, Monthly) of the dashboard and the dashboard's name. [_1] for the name
-of the dashboard.
-
-=cut
-
-Set($DashboardSubject, '%s Dashboard: %s');
-
-=back
-
-=head1 GnuPG Configuration
-
-A full description of the (somewhat extensive) GnuPG integration can be found
-by running the command `perldoc L<RT::Crypt::GnuPG>` (or `perldoc
- lib/RT/Crypt/GnuPG.pm` from your RT install directory).
-
-=over 4
-
-=item C<%GnuPG>
-
-Set C<OutgoingMessagesFormat> to 'inline' to use inline encryption and
-signatures instead of 'RFC' (GPG/MIME: RFC3156 and RFC1847) format.
-
-If you want to allow people to encrypt attachments inside the DB then
-set C<AllowEncryptDataInDB> to true
-
-Set C<RejectOnMissingPrivateKey> to false if you don't want to reject
-emails encrypted for key RT doesn't have and can not decrypt.
-
-Set C<RejectOnBadData> to false if you don't want to reject letters
-with incorrect GnuPG data.
-
-=cut
-
-Set( %GnuPG,
- Enable => 1,
- OutgoingMessagesFormat => 'RFC', # Inline
- AllowEncryptDataInDB => 0,
-
- RejectOnMissingPrivateKey => 1,
- RejectOnBadData => 1,
-);
-
-=item C<%GnuPGOptions>
-
-Options of GnuPG program.
-
-If you override this in your RT_SiteConfig, you should be sure
-to include a homedir setting.
-
-NOTE that options with '-' character MUST be quoted.
-
-=cut
-
-Set(%GnuPGOptions,
- homedir => '/opt/rt3/var/data/gpg',
-
-# URL of a keyserver
-# keyserver => 'hkp://subkeys.pgp.net',
-
-# enables the automatic retrieving of keys when encrypting
-# 'auto-key-locate' => 'keyserver',
-
-# enables the automatic retrieving of keys when verifying signatures
-# 'auto-key-retrieve' => undef,
-);
-
-
-=back
-
-=head1 Logging Configuration
-
-The default is to log anything except debugging
-information to syslog. Check the L<Log::Dispatch> POD for
-information about how to get things by syslog, mail or anything
-else, get debugging info in the log, etc.
-
-It might generally make sense to send error and higher by email to
-some administrator. If you do this, be careful that this email
-isn't sent to this RT instance. Mail loops will generate a critical
-log message.
-
-=over 4
-
-=item C<$LogToSyslog>, C<$LogToScreen>
-
-The minimum level error that will be logged to the specific device.
-From lowest to highest priority, the levels are:
- debug info notice warning error critical alert emergency
-
-=cut
-
-Set($LogToSyslog , 'info');
-Set($LogToScreen , 'info');
-
-=item C<$LogToFile>, C<$LogDir>, C<$LogToFileNamed>
-
-Logging to a standalone file is also possible, but note that the
-file should needs to both exist and be writable by all direct users
-of the RT API. This generally include the web server, whoever
-rt-crontool runs as. Note that as rt-mailgate and the RT CLI go
-through the webserver, so their users do not need to have write
-permissions to this file. If you expect to have multiple users of
-the direct API, Best Practical recommends using syslog instead of
-direct file logging.
-
-=cut
-
-Set($LogToFile , undef);
-Set($LogDir, '/opt/rt3/var/log');
-Set($LogToFileNamed , "rt.log"); #log to rt.log
-
-=item C<$LogStackTraces>
-
-If set to a log level then logging will include stack traces for
-messages with level equal to or greater than specified.
-
-NOTICE: Stack traces include parameters supplied to functions or
-methods. It is possible for stack trace logging to reveal sensitive
-information such as passwords or ticket content in your logs.
-
-=cut
-
-Set($LogStackTraces, '');
-
-=item C<@LogToSyslogConf>
-
-On Solaris or UnixWare, set to ( socket => 'inet' ). Options here
-override any other options RT passes to L<Log::Dispatch::Syslog>.
-Other interesting flags include facility and logopt. (See the
-L<Log::Dispatch::Syslog> documentation for more information.) (Maybe
-ident too, if you have multiple RT installations.)
-
-=cut
-
-Set(@LogToSyslogConf, ());
-
-=item C<$StatementLog>,
-
-RT has rudimentary SQL statement logging support if you have
-DBIx-SearchBuilder 1.31_1 or higher; simply set C<$StatementLog> to be
-the level that you wish SQL statements to be logged at.
-
-=cut
-
-Set($StatementLog, undef);
-
-=back
-
-=head1 Web Interface Configuration
-
-=over 4
-
-=item C<$WebDefaultStylesheet>
-
-This determines the default stylesheet the RT web interface will use.
-RT ships with several themes by default:
-
- web2 The totally new, default layout for RT 3.8
- 3.5-default RT 3.5 and 3.6 original layout
- 3.4-compat A 3.4 compatibility stylesheet to make RT look
- (mostly) like 3.4
-
-This bundled distibution of RT also includes (enabled by default):
- freeside2.1 Integration with Freeside
-
-This value actually specifies a directory in F<share/html/NoAuth/css/>
-from which RT will try to load the file main.css (which should
-@import any other files the stylesheet needs). This allows you to
-easily and cleanly create your own stylesheets to apply to RT. This
-option can be overridden by users in their preferences.
-
-=cut
-
-Set($WebDefaultStylesheet, 'freeside2.1');
-
-=item C<$UsernameFormat>
-
-This determines how user info is displayed. 'concise' will show one of
-either NickName, RealName, Name or EmailAddress, depending on what exists
-and whether the user is privileged or not. 'verbose' will show RealName and
-EmailAddress.
-
-=cut
-
-Set($UsernameFormat, 'verbose');
-
-=item C<$WebDomain>
-
-Domain name of the RT server, eg 'www.example.com'. It should not contain
-anything else, but server name.
-
-=cut
-
-Set( $WebDomain, 'localhost' );
-
-=item C<$WebPort>
-
-If we're running as a superuser, run on port 80
-Otherwise, pick a high port for this user.
-
-443 is default port for https protocol.
-
-=cut
-
-Set($WebPort, 80);# + ($< * 7274) % 32766 + ($< && 1024));
-
-=item C<$WebPath>
-
-If you're putting the web ui somewhere other than at the root of
-your server, you should set C<$WebPath> to the path you'll be
-serving RT at.
-
-C<$WebPath> requires a leading / but no trailing /, or it can be blank.
-
-In most cases, you should leave C<$WebPath> set to '' (an empty value).
-
-=cut
-
-Set($WebPath, "");
-
-=item C<$WebBaseURL>, C<$WebURL>
-
-Usually you don't want to set these options. The only obviouse reason is
-RT accessible via https protocol on non standard port, eg
-'https://rt.example.com:9999'. In all other cases these options are computed
-using C<$WebDomain>, C<$WebPort> and C<$WebPath>.
-
-C<$WebBaseURL> is the scheme, server and port (eg 'http://rt.example.com')
-for constructing urls to the web UI. C<$WebBaseURL> doesn't need a trailing /.
-
-C<$WebURL> is the C<$WebBaseURL>, C<$WebPath> and trailing /, for example:
-'http://www.example.com/rt/'.
-
-=cut
-
-my $port = RT->Config->Get('WebPort');
-Set($WebBaseURL,
- ($port == 443? 'https': 'http') .'://'
- . RT->Config->Get('WebDomain')
- . ($port != 80 && $port != 443? ":$port" : '')
-);
-
-Set($WebURL, RT->Config->Get('WebBaseURL') . RT->Config->Get('WebPath') . "/");
-
-=item C<$WebImagesURL>
-
-C<$WebImagesURL> points to the base URL where RT can find its images.
-Define the directory name to be used for images in rt web
-documents.
-
-=cut
-
-Set($WebImagesURL, RT->Config->Get('WebPath') . "/NoAuth/images/");
-
-=item C<$LogoURL>
-
-C<$LogoURL> points to the URL of the RT logo displayed in the web UI
-
-=cut
-
-Set($LogoURL, RT->Config->Get('WebImagesURL') . "bplogo.gif");
-
-=item C<$LogoLinkURL>
-
-C<$LogoLinkURL> is the URL that the RT logo hyperlinks to.
-
-=cut
-
-Set($LogoLinkURL, "http://bestpractical.com");
-
-=item C<$LogoAltText>
-
-C<$LogoAltText> is a string of text for the alt-text of the logo. It
-will be passed through C<loc> for localization.
-
-=cut
-
-Set($LogoAltText, "Best Practical Solutions, LLC corporate logo");
-
-=item C<$LogoImageHeight>
-
-C<$LogoImageHeight> is the value of the C<height> attribute of the logo
-C<img> tag.
-
-=cut
-
-Set($LogoImageHeight, 33);
-
-=item C<$LogoImageWidth>
-
-C<$LogoImageWidth> is the value of the C<width> attribute of the logo
-C<img> tag.
-
-=cut
-
-Set($LogoImageWidth, 177);
-
-=item C<$WebNoAuthRegex>
-
-What portion of RT's URL space should not require authentication.
-
-This is mostly for extension and doesn't mean RT will work without
-login if you change it.
-
-=cut
-
-Set($WebNoAuthRegex, qr{^ /rt (?:/+NoAuth/ | /+REST/\d+\.\d+/NoAuth/) }x );
-
-=item C<$SelfServiceRegex>
-
-What portion of RT's URLspace should be accessible to Unprivileged users
-This does not override the redirect from F</Ticket/Display.html> to
-F</SelfService/Display.html> when Unprivileged users attempt to access
-ticked displays
-
-=cut
-
-Set($SelfServiceRegex, qr!^(?:/+SelfService/)!x );
-
-=item C<$MessageBoxWidth>, C<$MessageBoxHeight>
-
-For message boxes, set the entry box width, height and what type of
-wrapping to use. These options can be overridden by users in their
-preferences.
-
-Default width: 72, height: 15
-
-These settings only apply to the non-RichText message box.
-See below for Rich Text settings.
-
-=cut
-
-Set($MessageBoxWidth, 72);
-Set($MessageBoxHeight, 15);
-
-=item C<$MessageBoxWrap>
-
-Default wrapping: "HARD" (choices "SOFT", "HARD")
-
-Wrapping is disabled when using MessageBoxRichText because
-of a bad interaction between IE and wrapping with the Rich
-Text Editor.
-
-=cut
-
-Set($MessageBoxWrap, "HARD");
-
-=item C<$MessageBoxRichText>
-
-Should "rich text" editing be enabled? This option lets your users send html email messages from the web interface.
-
-=cut
-
-Set($MessageBoxRichText, 1);
-
-=item C<$MessageBoxRichTextHeight>
-
-Height of RichText javascript enabled editing boxes (in pixels)
-
-=cut
-
-Set($MessageBoxRichTextHeight, 200);
-
-=item C<$MessageBoxIncludeSignature>
-
-Should your user's signatures (from their Preferences page) be included in Comments and Replies
-
-=cut
-
-Set($MessageBoxIncludeSignature, 1);
-
-=item C<$MessageBoxIncludeSignatureOnComment>
-
-Should your user's signatures (from their Preferences page) be included in Comments. Setting this to false overrides C<$MessageBoxIncludeSignature>.
-
-=cut
-
-Set($MessageBoxIncludeSignatureOnComment, 1);
-
-=item C<$WikiImplicitLinks>
-
-Support implicit links in WikiText custom fields? A true value
-causes InterCapped or ALLCAPS words in WikiText fields to
-automatically become links to searches for those words. If used on
-RTFM articles, it links to the RTFM article with that name.
-
-=cut
-
-Set($WikiImplicitLinks, 0);
-
-=item C<$TrustHTMLAttachments>
-
-if C<TrustHTMLAttachments> is not defined, we will display them
-as text. This prevents malicious HTML and javascript from being
-sent in a request (although there is probably more to it than that)
-
-=cut
-
-Set($TrustHTMLAttachments, undef);
-
-=item C<$AlwaysDownloadAttachments>
-
-Always download attachments, regardless of content type. If set,
-this overrides C<TrustHTMLAttachments>.
-
-=cut
-
-Set($AlwaysDownloadAttachments, undef);
-
-=item C<$AttachmentUnits>
-
-Controls the units (kilobytes or bytes) that attachment sizes use
-for display. The default is to display kilobytes if the attachment
-is larger than 1024 bytes, bytes otherwise. If you set
-C<$AttachmentUnits> to C<'k'> then attachment sizes will always be
-displayed in kilobytes. If set to C<'b'>, then sizes will be bytes.
-
-=cut
-
-Set($AttachmentUnits, undef);
-
-=item C<$RedistributeAutoGeneratedMessages>
-
-Should RT redistribute correspondence that it identifies as
-machine generated? A true value will do so; setting this to '0'
-will cause no such messages to be redistributed.
-You can also use 'privileged' (the default), which will redistribute
-only to privileged users. This helps to protect against malformed
-bounces and loops caused by autocreated requestors with bogus addresses.
-
-=cut
-
-Set($RedistributeAutoGeneratedMessages, 'privileged');
-
-=item C<$PreferRichText>
-
-If C<$PreferRichText> is set to a true value, RT will show HTML/Rich text
-messages in preference to their plaintext alternatives. RT "scrubs" the
-html to show only a minimal subset of HTML to avoid possible contamination
-by cross-site-scripting attacks.
-
-=cut
-
-Set($PreferRichText, undef);
-
-=item C<$WebExternalAuth>
-
-If C<$WebExternalAuth> is defined, RT will defer to the environment's
-REMOTE_USER variable.
-
-=cut
-
-Set($WebExternalAuth, undef);
-
-=item C<$WebExternalAuthContinuous>
-
-If C<$WebExternalAuthContinuous> is defined, RT will check for the
-REMOTE_USER on each access. If you would prefer this to only happen
-once (at initial login) set this to a false value. The default setting
-will help ensure that if your external auth system deauthenticates a
-user, RT notices as soon as possible.
-
-=cut
-
-Set($WebExternalAuthContinuous, 1);
-
-=item C<$WebFallbackToInternalAuth>
-
-If C<$WebFallbackToInternalAuth> is defined, the user is allowed a chance
-of fallback to the login screen, even if REMOTE_USER failed.
-
-=cut
-
-Set($WebFallbackToInternalAuth , undef);
-
-=item C<$WebExternalGecos>
-
-C<$WebExternalGecos> means to match 'gecos' field as the user identity);
-useful with mod_auth_pwcheck and IIS Integrated Windows logon.
-
-=cut
-
-Set($WebExternalGecos , undef);
-
-=item C<$WebExternalAuto>
-
-C<$WebExternalAuto> will create users under the same name as REMOTE_USER
-upon login, if it's missing in the Users table.
-
-=cut
-
-Set($WebExternalAuto , undef);
-
-=item C<$AutoCreate>
-
-If C<$WebExternalAuto> is true, C<$AutoCreate> will be passed to User's
-Create method. Use it to set defaults, such as creating
-Unprivileged users with C<{ Privileged => 0 }>
-( Must be a hashref of arguments )
-
-=cut
-
-Set($AutoCreate, undef);
-
-=item C<$WebSessionClass>
-
-C<$WebSessionClass> is the class you wish to use for managing Sessions.
-It defaults to use your SQL database, but if you are using MySQL 3.x and
-plans to use non-ascii Queue names, uncomment and add this line to
-F<RT_SiteConfig.pm> will prevent session corruption.
-
-=cut
-
-# Set($WebSessionClass , 'Apache::Session::File');
-
-=item C<$AutoLogoff>
-
-By default, RT's user sessions persist until a user closes his or her
-browser. With the C<$AutoLogoff> option you can setup session lifetime in
-minutes. A user will be logged out if he or she doesn't send any requests
-to RT for the defined time.
-
-=cut
-
-Set($AutoLogoff, 0);
-
-=item C<$LogoutRefresh>
-
-The number of seconds to wait after logout before sending the user to the
-login page. By default, 1 second, though you may want to increase this if
-you display additional information on the logout page.
-
-=cut
-
-Set($LogoutRefresh, 1);
-
-=item C<$WebSecureCookies>
-
-By default, RT's session cookie isn't marked as "secure" Some web browsers
-will treat secure cookies more carefully than non-secure ones, being careful
-not to write them to disk, only send them over an SSL secured connection
-and so on. To enable this behaviour, set C<$WebSecureCookies> to a true value.
-NOTE: You probably don't want to turn this on _unless_ users are only connecting
-via SSL encrypted HTTP connections.
-
-=cut
-
-Set($WebSecureCookies, 0);
-
-=item C<$WebFlushDbCacheEveryRequest>
-
-By default, RT clears its database cache after every page view.
-This ensures that you've always got the most current information
-when working in a multi-process (mod_perl or FastCGI) Environment
-Setting C<$WebFlushDbCacheEveryRequest> to '0' will turn this off,
-which will speed RT up a bit, at the expense of a tiny bit of data
-accuracy.
-
-=cut
-
-Set($WebFlushDbCacheEveryRequest, '1');
-
-
-=item C<$MaxInlineBody>
-
-C<$MaxInlineBody> is the maximum attachment size that we want to see
-inline when viewing a transaction. RT will inline any text if value
-is undefined or 0. This option can be overridden by users in their
-preferences.
-
-=cut
-
-Set($MaxInlineBody, 12000);
-
-=item C<$DefaultSummaryRows>
-
-C<$DefaultSummaryRows> is default number of rows displayed in for search
-results on the frontpage.
-
-=cut
-
-Set($DefaultSummaryRows, 10);
-
-=item C<$HomePageRefreshInterval>
-
-C<$HomePageRefreshInterval> is default number of seconds to refresh the RT
-home page. Choose from [0, 120, 300, 600, 1200, 3600, 7200].
-
-=cut
-
-Set($HomePageRefreshInterval, 0);
-
-=item C<$SearchResultsRefreshInterval>
-
-C<$SearchResultsRefreshInterval> is default number of seconds to refresh
-search results in RT. Choose from [0, 120, 300, 600, 1200, 3600, 7200].
-
-=cut
-
-Set($SearchResultsRefreshInterval, 0);
-
-=item C<$OldestTransactionsFirst>
-
-By default, RT shows newest transactions at the bottom of the ticket
-history page, if you want see them at the top set this to '0'. This
-option can be overridden by users in their preferences.
-
-=cut
-
-Set($OldestTransactionsFirst, '1');
-
-=item C<$ShowTransactionImages>
-
-By default, RT shows images attached to incoming (and outgoing) ticket updates
-inline. Set this variable to 0 if you'd like to disable that behaviour
-
-=cut
-
-Set($ShowTransactionImages, 1);
-
-=item C<$PlainTextPre>
-
-Normally plaintext attachments are displayed as HTML with line
-breaks preserved. This causes space- and tab-based formatting not
-to be displayed correctly. By setting $PlainTextPre they'll be
-displayed using <pre> instead so such formatting works, but they'll
-use a monospaced font, no matter what the value of C<$PlainTextMono> is.
-
-=cut
-
-Set($PlainTextPre, 0);
-
-
-=item C<$PlainTextMono>
-To display plaintext attachments,
-Set C<$PlainTextMono> to 1 to use monospaced font and preserve
-formatting, but unlike PlainTextPre, the text will wrap to fit into the
-UI.
-
-=cut
-
-Set($PlainTextMono, 0);
-
-=item C<$ShowUnreadMessageNotifications>
-
-By default, RT will prompt users when there are new, unread messages on
-tickets they are viewing.
-
-Set C<$ShowUnreadMessageNotifications> to a false value to disable this feature.
-
-=cut
-
-Set($ShowUnreadMessageNotifications, 1);
-
-
-=item C<$HomepageComponents>
-
-C<$HomepageComponents> is an arrayref of allowed components on a user's
-customized homepage ("RT at a glance").
-
-=cut
-
-Set($HomepageComponents, [qw(QuickCreate Quicksearch MyCalendar MyAdminQueues MySupportQueues MyReminders RefreshHomepage Dashboards)]);
-
-=item C<@MasonParameters>
-
-C<@MasonParameters> is the list of parameters for the constructor of
-HTML::Mason's Apache or CGI Handler. This is normally only useful
-for debugging, eg. profiling individual components with:
-
- use MasonX::Profiler; # available on CPAN
- Set(@MasonParameters, (preamble => 'my $p = MasonX::Profiler->new($m, $r);'));
-
-=cut
-
-Set(@MasonParameters, ());
-
-=item C<$DefaultSearchResultFormat>
-
-C<$DefaultSearchResultFormat> is the default format for RT search results
-
-=cut
-
-Set ($DefaultSearchResultFormat, qq{
- '<B><A HREF="__WebPath__/Ticket/Display.html?id=__id__">__id__</a></B>/TITLE:#',
- '<B><A HREF="__WebPath__/Ticket/Display.html?id=__id__">__Subject__</a></B>/TITLE:Subject',
- Customer,
- Status,
- QueueName,
- OwnerName,
- Priority,
- '__NEWLINE__',
- '',
- '<small>__Requestors__</small>',
- '',
- '<small>__CreatedRelative__</small>',
- '<small>__ToldRelative__</small>',
- '<small>__LastUpdatedRelative__</small>',
- '<small>__TimeLeft__</small>'});
-
-=item C<$DefaultSelfServiceSearchResultFormat>
-
-C<$DefaultSelfServiceSearchResultFormat> is the default format of searches displayed in the
-SelfService interface.
-
-=cut
-
-Set($DefaultSelfServiceSearchResultFormat, qq{
- '<B><A HREF="__WebPath__/SelfService/Display.html?id=__id__">__id__</a></B>/TITLE:#',
- '<B><A HREF="__WebPath__/SelfService/Display.html?id=__id__">__Subject__</a></B>/TITLE:Subject',
- Status,
- Requestors,
- OwnerName});
-
-=item C<%AdminSearchResultFormat>
-
-In admin interface format strings similar to tickets search result
-formats are used. Use C<%AdminSearchResultFormat> to define format
-strings per RT class.
-
-=cut
-
-Set(%AdminSearchResultFormat,
- Queues =>
- q{'<a href="__WebPath__/Admin/Queues/Modify.html?id=__id__">__id__</a>/TITLE:#'}
- .q{,'<a href="__WebPath__/Admin/Queues/Modify.html?id=__id__">__Name__</a>/TITLE:Name'}
- .q{,__Description__,__Address__,__Priority__,__DefaultDueIn__,__Disabled__},
-
- Groups =>
- q{'<a href="__WebPath__/Admin/Groups/Modify.html?id=__id__">__id__</a>/TITLE:#'}
- .q{,'<a href="__WebPath__/Admin/Groups/Modify.html?id=__id__">__Name__</a>/TITLE:Name'}
- .q{,'__Description__'},
-
- Users =>
- q{'<a href="__WebPath__/Admin/Users/Modify.html?id=__id__">__id__</a>/TITLE:#'}
- .q{,'<a href="__WebPath__/Admin/Users/Modify.html?id=__id__">__Name__</a>/TITLE:Name'}
- .q{,__RealName__, __EmailAddress__},
-
- CustomFields =>
- q{'<a href="__WebPath__/Admin/CustomFields/Modify.html?id=__id__">__id__</a>/TITLE:#'}
- .q{,'<a href="__WebPath__/Admin/CustomFields/Modify.html?id=__id__">__Name__</a>/TITLE:Name'}
- .q{,__AppliedTo__, __FriendlyType__, __FriendlyPattern__},
-
- Scrips =>
- q{'<a href="__WebPath__/__WebRequestPathDir__/Scrip.html?id=__id__&Queue=__QueueId__">__id__</a>/TITLE:#'}
- .q{,'<a href="__WebPath__/__WebRequestPathDir__/Scrip.html?id=__id__&Queue=__QueueId__">__Description__</a>/TITLE:Description'}
- .q{,__Stage__, __Condition__, __Action__, __Template__},
-
- Templates =>
- q{'<a href="__WebPath__/__WebRequestPathDir__/Template.html?Queue=__QueueId__&Template=__id__">__id__</a>/TITLE:#'}
- .q{,'<a href="__WebPath__/__WebRequestPathDir__/Template.html?Queue=__QueueId__&Template=__id__">__Name__</a>/TITLE:Name'}
- .q{,'__Description__'},
-);
-
-=item C<$SuppressInlineTextFiles>
-
-If C<$SuppressInlineTextFiles> is set to a true value, then uploaded
-text files (text-type attachments with file names) are prevented
-from being displayed in-line when viewing a ticket's history.
-
-=cut
-
-Set($SuppressInlineTextFiles, undef);
-
-=item C<$DontSearchFileAttachments>
-
-If C<$DontSearchFileAttachments> is set to a true value, then uploaded
-files (attachments with file names) are not searched during full-content
-ticket searches.
-
-=cut
-
-Set($DontSearchFileAttachments, undef);
-
-=item C<%ChartFont>
-
-The L<GD> module (which RT uses for graphs) ships with a builtin font
-that doesn't have full Unicode support. You can use a given TrueType font
-for a specific language by setting %ChartFont to (language =E<gt> the
-absolute path of a font) pairs. Your GD library must have support for
-TrueType fonts to use this option. If there is no entry for a language
-in the hash then font with 'others' key is used.
-
-RT comes with two TrueType fonts covering most available languages.
-
-=cut
-
-Set(
- %ChartFont,
- 'zh-cn' => "$RT::BasePath/share/fonts/DroidSansFallback.ttf",
- 'zh-tw' => "$RT::BasePath/share/fonts/DroidSansFallback.ttf",
- 'ja' => "$RT::BasePath/share/fonts/DroidSansFallback.ttf",
- 'others' => "$RT::BasePath/share/fonts/DroidSans.ttf",
-);
-
-=item C<$ChartsTimezonesInDB>
-
-Dates are stored using UTC timezone in the DB, so charts groupped
-by dates and time are not representative. Set C<$ChartsTimezonesInDB>
-to a true value to enable timezones conversions using DB's
-capabilities. You may need to do some work on DB side to use this
-feature, read more in F<docs/timezones_in_charts.pod>.
-
-=cut
-
-Set( $ChartsTimezonesInDB, 0 );
-
-=item C<@Active_MakeClicky>
-
-MakeClicky detects various formats of data in headers and email
-messages, and extends them with supporting links. By default, RT
-provides two formats:
-
-* 'httpurl': detects http:// and https:// URLs and adds '[Open URL]'
- link after the URL.
-
-* 'httpurl_overwrite': also detects URLs as 'httpurl' format, but
- replace URL with link and *adds spaces* into text if it's longer
- then 30 chars. This allow browser to wrap long URLs and avoid
- horizontal scrolling.
-
-See F<share/html/Elements/MakeClicky> for documentation on how to add your own.
-
-=cut
-
-Set(@Active_MakeClicky, qw());
-
-=item C<$DefaultQueue>
-
-Use this to select the default queue name that will be used for creating new
-tickets. You may use either the queue's name or its ID. This only affects the
-queue selection boxes on the web interface.
-
-=cut
-
-#Set($DefaultQueue, 'General');
-
-=item C<$DefaultTimeUnitsToHours>
-
-Use this to set the default units for time entry to hours instead of minutes.
-
-=cut
-
-Set($DefaultTimeUnitsToHours, 0);
-
-=back
-
-=head1 L<Net::Server> (rt-server) Configuration
-
-=over 4
-
-=item C<$StandaloneMinServers>, C<$StandaloneMaxServers>
-
-The absolute minimum and maximum number of servers that will be created to
-handle requests. Having multiple servers means that serving a slow page will
-affect other users less.
-
-=cut
-
-Set($StandaloneMinServers, 1);
-Set($StandaloneMaxServers, 1);
-
-=item C<$StandaloneMinSpareServers>, C<$StandaloneMaxSpareServers>
-
-These next two options can be used to scale up and down the number of servers
-to adjust to load. These two options will respect the C<$StandaloneMinServers
-> and C<$StandaloneMaxServers options>.
-
-=cut
-
-Set($StandaloneMinSpareServers, 0);
-Set($StandaloneMaxSpareServers, 0);
-
-=item C<$StandaloneMaxRequests>
-
-This sets the absolute maximum number of requests a single server will serve.
-Setting this would be useful if, for example, memory usage slowly crawls up
-every hit.
-
-=cut
-
-#Set($StandaloneMaxRequests, 50);
-
-=item C<%NetServerOptions>
-
-C<%NetServerOptions> is a hash of additional options to use for
-L<Net::Server/DEFAULT ARGUMENTS>. For example, you could set
-reverse_lookups to get the hostnames for all users with:
-
-C<Set(%NetServerOptions, (reverse_lookups => 1));>
-
-=cut
-
-Set(%NetServerOptions, ());
-
-=back
-
-
-=head1 UTF-8 Configuration
-
-=over 4
-
-=item C<@LexiconLanguages>
-
-An array that contains languages supported by RT's internationalization
-interface. Defaults to all *.po lexicons; setting it to C<qw(en ja)> will make
-RT bilingual instead of multilingual, but will save some memory.
-
-=cut
-
-Set(@LexiconLanguages, qw(*));
-
-=item C<@EmailInputEncodings>
-
-An array that contains default encodings used to guess which charset
-an attachment uses if not specified. Must be recognized by
-L<Encode::Guess>.
-
-=cut
-
-Set(@EmailInputEncodings, qw(utf-8 iso-8859-1 us-ascii));
-
-=item C<$EmailOutputEncoding>
-
-The charset for localized email. Must be recognized by Encode.
-
-=cut
-
-Set($EmailOutputEncoding, 'utf-8');
-
-
-=back
-
-=head1 Date Handling Configuration
-
-=over 4
-
-=item C<$DateTimeFormat>
-
-You can choose date and time format. See "Output formatters"
-section in perldoc F<lib/RT/Date.pm> for more options. This option can
-be overridden by users in their preferences.
-Some examples:
-
-C<Set($DateTimeFormat, 'LocalizedDateTime');>
-C<Set($DateTimeFormat, { Format => 'ISO', Seconds => 0 });>
-C<Set($DateTimeFormat, 'RFC2822');>
-C<Set($DateTimeFormat, { Format => 'RFC2822', Seconds => 0, DayOfWeek => 0 });>
-
-=cut
-
-Set($DateTimeFormat, 'DefaultFormat');
-
-# Next two options are for Time::ParseDate
-
-=item C<$DateDayBeforeMonth>
-
-Set this to 1 if your local date convention looks like "dd/mm/yy" instead of
-"mm/dd/yy". Used only for parsing, not for displaying dates.
-
-=cut
-
-Set($DateDayBeforeMonth , 1);
-
-=item C<$AmbiguousDayInPast>, C<$AmbiguousDayInFuture>
-
-Should an unspecified day or year in a date refer to a future or a
-past value? For example, should a date of "Tuesday" default to mean
-the date for next Tuesday or last Tuesday? Should the date "March 1"
-default to the date for next March or last March?
-
-Set $<AmbiguousDayInPast> for the last date, or $<$AmbiguousDayInFuture> for the
-next date.
-
-The default is usually good.
-
-=cut
-
-Set($AmbiguousDayInPast, 0);
-Set($AmbiguousDayInFuture, 0);
-
-=back
-
-=head1 Approval Configuration
-
-Configration for the approvl system
-
-=over 4
-
-=item C<$ApprovalRejectionNotes>
-
-Should rejection notes be sent to the requestors? The default is true.
-
-=cut
-
-Set($ApprovalRejectionNotes, 1);
-
-
-=back
-
-=head1 Miscellaneous Configuration
-
-=over 4
-
-=item C<@ActiveStatus>, C<@InactiveStatus>
-
-You can define new statuses and even reorder existing statuses here.
-WARNING. DO NOT DELETE ANY OF THE DEFAULT STATUSES. If you do, RT
-will break horribly. The statuses you add must be no longer than
-10 characters.
-
-=cut
-
-Set(@ActiveStatus, qw(new open stalled));
-Set(@InactiveStatus, qw(resolved rejected deleted));
-
-=item C<$LinkTransactionsRun1Scrip>
-
-RT-3.4 backward compatibility setting. Add/Delete Link used to record one
-transaction and run one scrip. Set this value to 1 if you want
-only one of the link transactions to have scrips run.
-
-=cut
-
-Set($LinkTransactionsRun1Scrip, 0);
-
-=item C<$StrictLinkACL>
-
-When this feature is enabled a user needs I<ModifyTicket> rights on both
-tickets to link them together, otherwise he can have rights on either of
-them.
-
-=cut
-
-Set($StrictLinkACL, 1);
-
-=item C<$PreviewScripMessages>
-
-Set C<$PreviewScripMessages> to 1 if the scrips preview on the ticket
-reply page should include the content of the messages to be sent.
-
-=cut
-
-Set($PreviewScripMessages, 0);
-
-=item C<$UseTransactionBatch>
-
-Set C<$UseTransactionBatch> to 1 to execute transactions in batches,
-such that a resolve and comment (for example) would happen
-simultaneously, instead of as two transactions, unaware of each
-others' existence.
-
-=cut
-
-Set($UseTransactionBatch, 1);
-
-=item C<@CustomFieldValuesSources>
-
-Set C<@CustomFieldValuesSources> to a list of class names which extend
-L<RT::CustomFieldValues::External>. This can be used to pull lists of
-custom field values from external sources at runtime.
-
-=cut
-
-Set(@CustomFieldValuesSources, ());
-
-=item C<$CanonicalizeRedirectURLs>
-
-Set C<$CanonicalizeRedirectURLs> to 1 to use $C<WebURL> when redirecting rather
-than the one we get from C<%ENV>.
-
-If you use RT behind a reverse proxy, you almost certainly want to
-enable this option.
-
-=cut
-
-Set($CanonicalizeRedirectURLs, 0);
-=item C<$EnableReminders>
-
-Hide links/portlets related to Reminders by setting this to 0
-
-=cut
-
-Set($EnableReminders,1);
-
-
-=item C<@Plugins>
-
-Set C<@Plugins> to a list of external RT plugins that should be enabled (those
-plugins have to be previously downloaded and installed).
-Example:
-
-C<Set(@Plugins, (qw(Extension::QuickDelete RT::FM)));>
-
-=cut
-
-Set(@Plugins, qw( RTx::Calendar )); #RTx::Checklist ));
-
-=back
-
-=head1 Development Configuration
-
-=over 4
-
-=item C<$DevelMode>
-
-RT comes with a "Development mode" setting.
-This setting, as a convenience for developers, turns on
-all sorts of development options that you most likely don't want in
-production:
-
-* Turns off Mason's 'static_source' directive. By default, you can't
- edit RT's web ui components on the fly and have RT magically pick up
- your changes. (It's a big performance hit)
-
- * More to come
-
-=cut
-
-Set($DevelMode, '0');
-
-
-=back
-
-=head1 Deprecated Options
-
-=over 4
-
-=item C<$AlwaysUseBase64>
-
-Encode blobs as base64 in DB (?)
-
-=item C<$TicketBaseURI>
-
-Base URI to tickets in this system; used when loading (?)
-
-=item C<$UseCodeTickets>
-
-This option is exists for backwards compatibility. Don't use it.
-
-=back
-
-=cut
-
-1;
diff --git a/rt/etc/RT_Config.pm.in b/rt/etc/RT_Config.pm.in
deleted file mode 100644
index c73a1e5..0000000
--- a/rt/etc/RT_Config.pm.in
+++ /dev/null
@@ -1,1831 +0,0 @@
-
-package RT;
-
-=head1 NAME
-
-RT::Config
-
-=for testing
-
-use RT::Config;
-
-=cut
-
-=head1 WARNING
-
-NEVER EDIT RT_Config.pm.
-
-Instead, copy any sections you want to change to F<RT_SiteConfig.pm> and edit them there.
-
-=cut
-
-=head1 Base Configuration
-
-=over 4
-
-=item C<$rtname>
-
-C<$rtname> is the string that RT will look for in mail messages to
-figure out what ticket a new piece of mail belongs to.
-
-Your domain name is recommended, so as not to pollute the namespace.
-once you start using a given tag, you should probably never change it.
-(otherwise, mail for existing tickets won't get put in the right place)
-
-=cut
-
-Set($rtname , "example.com");
-
-
-=item C<$EmailSubjectTagRegex>
-
-This regexp controls what subject tags RT recognizes as its own.
-If you're not dealing with historical C<$rtname> values, you'll likely
-never have to enable this feature.
-
-Be VERY CAREFUL with it. Note that it overrides C<$rtname> for subject
-token matching and that you should use only "non-capturing" parenthesis
-grouping. For example:
-
-C<Set($EmailSubjectTagRegex, qr/(?:example.com|example.org)/i );>
-
-and NOT
-
-C<Set($EmailSubjectTagRegex, qr/(example.com|example.org)/i );>
-
-This setting would make RT behave exactly as it does without the
-setting enabled.
-
-=cut
-
-#Set($EmailSubjectTagRegex, qr/\Q$rtname\E/i );
-
-
-
-=item C<$Organization>
-
-You should set this to your organization's DNS domain. For example,
-I<fsck.com> or I<asylum.arkham.ma.us>. It's used by the linking interface to
-guarantee that ticket URIs are unique and easy to construct.
-
-=cut
-
-Set($Organization , "example.com");
-
-=item C<$MinimumPasswordLength>
-
-C<$MinimumPasswordLength> defines the minimum length for user
-passwords. Setting it to 0 disables this check.
-
-=cut
-
-Set($MinimumPasswordLength , "5");
-
-=item C<$Timezone>
-
-C<$Timezone> is used to convert times entered by users into GMT and back again
-It should be set to a timezone recognized by your local unix box.
-
-=cut
-
-Set($Timezone , 'US/Eastern');
-
-=back
-
-=head1 Database Configuration
-
-=over 4
-
-=item C<$DatabaseType>
-
-Database driver being used; case matters.
-
-Valid types are "mysql", "Oracle" and "Pg"
-
-=cut
-
-Set($DatabaseType , '@DB_TYPE@');
-
-=item C<$DatabaseHost>, C<$DatabaseRTHost>
-
-The domain name of your database server.
-
-If you're running mysql and it's on localhost,
-leave it blank for enhanced performance
-
-=cut
-
-Set($DatabaseHost , '@DB_HOST@');
-Set($DatabaseRTHost , '@DB_RT_HOST@');
-
-=item C<$DatabasePort>
-
-The port that your database server is running on. Ignored unless it's
-a positive integer. It's usually safe to leave this blank
-
-=cut
-
-Set($DatabasePort , '@DB_PORT@');
-
-=item C<$DatabaseUser>
-
-The name of the database user (inside the database)
-
-=cut
-
-Set($DatabaseUser , '@DB_RT_USER@');
-
-=item C<$DatabasePassword>
-
-Password the C<$DatabaseUser> should use to access the database
-
-=cut
-
-Set($DatabasePassword , '@DB_RT_PASS@');
-
-=item C<$DatabaseName>
-
-The name of the RT's database on your database server. For Oracle
-it's SID, DB objects are created in L<$DatabaseUser>'s schema.
-
-=cut
-
-Set($DatabaseName , '@DB_DATABASE@');
-
-=item C<$DatabaseRequireSSL>
-
-If you're using Postgres and have compiled in SSL support,
-set C<$DatabaseRequireSSL> to 1 to turn on SSL communication
-
-=cut
-
-Set($DatabaseRequireSSL , undef);
-
-=item C<$UseSQLForACLChecks>
-
-In RT for ages ACL are checked after search what in some situtations
-result in empty search pages and wrong count of tickets.
-
-Set C<$UseSQLForACLChecks> to 1 to use SQL and get rid of these problems.
-
-However, this option is beta. In some cases it result in performance
-improvements, but some setups can not handle it.
-
-=cut
-
-Set($UseSQLForACLChecks, undef);
-
-=item C<$TicketsItemMapSize>
-
-In RT at display page of a ticket and there is the current search,
-then links for first, next, previous and last ticket are shown in
-the menu.
-
-To build full map RT has to fetch full result set out of DB what can
-eat lots of resourses. Using this option it's possible to limit number
-of tickets fetched.
-
-Set C<$TicketsItemMapSize> to number of tickets you want RT to look
-at to build the map. If full result set is bigger than that number
-then there would be no 'last' link in the menu.
-
-Set this to zero to return back to old behaviour.
-
-=cut
-
-Set($TicketsItemMapSize, 1000);
-
-=back
-
-=head1 Incoming Mail Gateway Configuration
-
-=over 4
-
-=item C<$OwnerEmail>
-
-C<$OwnerEmail> is the address of a human who manages RT. RT will send
-errors generated by the mail gateway to this address. This address
-should _not_ be an address that's managed by your RT instance.
-
-=cut
-
-Set($OwnerEmail , 'root');
-
-=item C<$LoopsToRTOwner>
-
-If C<$LoopsToRTOwner> is defined, RT will send mail that it believes
-might be a loop to C<$OwnerEmail>
-
-=cut
-
-Set($LoopsToRTOwner , 1);
-
-=item C<$StoreLoops>
-
-If C<$StoreLoops> is defined, RT will record messages that it believes
-to be part of mail loops.
-
-As it does this, it will try to be careful not to send mail to the
-sender of these messages
-
-=cut
-
-Set($StoreLoops , undef);
-
-=item C<$MaxAttachmentSize>
-
-C<$MaxAttachmentSize> sets the maximum size (in bytes) of attachments stored
-in the database.
-
-For mysql and oracle, we set this size at 10 megabytes.
-If you're running a postgres version earlier than 7.1, you will need
-to drop this to 8192. (8k)
-
-=cut
-
-
-Set($MaxAttachmentSize , 10000000);
-
-=item C<$TruncateLongAttachments>
-
-C<$TruncateLongAttachments>: if this is set to a non-undef value,
-RT will truncate attachments longer than C<$MaxAttachmentSize>.
-
-=cut
-
-Set($TruncateLongAttachments , undef);
-
-=item C<$DropLongAttachments>
-
-C<$DropLongAttachments>: if this is set to a non-undef value,
-RT will silently drop attachments longer than C<MaxAttachmentSize>.
-
-=cut
-
-Set($DropLongAttachments , undef);
-
-=item C<$ParseNewMessageForTicketCcs>
-
-If C<$ParseNewMessageForTicketCcs> is true, RT will attempt to divine
-Ticket 'Cc' watchers from the To and Cc lines of incoming messages
-Be forewarned that if you have _any_ addresses which forward mail to
-RT automatically and you enable this option without modifying
-C<$RTAddressRegexp> below, you will get yourself into a heap of trouble.
-
-=cut
-
-Set($ParseNewMessageForTicketCcs , undef);
-
-=item C<$RTAddressRegexp>
-
-C<$RTAddressRegexp> is used to make sure RT doesn't add itself as a ticket CC if
-the setting above is enabled. It is important that you set this to a
-regular expression that matches all addresses used by your RT. This lets RT
-avoid sending mail to itself. It will also hide RT addresses from the list of
-"One-time Cc" and Bcc lists on ticket reply.
-
-=cut
-
-Set($RTAddressRegexp , undef);
-
-=item C<$CanonicalizeEmailAddressMatch>, C<$CanonicalizeEmailAddressReplace>
-
-RT provides functionality which allows the system to rewrite
-incoming email addresses. In its simplest form,
-you can substitute the value in $<CanonicalizeEmailAddressReplace>
-for the value in $<CanonicalizeEmailAddressMatch>
-(These values are passed to the $<CanonicalizeEmailAddress> subroutine in
- F<RT/User.pm>)
-
-By default, that routine performs a C<s/$Match/$Replace/gi> on any address
-passed to it.
-
-=cut
-
-#Set($CanonicalizeEmailAddressMatch , '@subdomain\.example\.com$');
-#Set($CanonicalizeEmailAddressReplace , '@example.com');
-
-=item C<$CanonicalizeEmailAddressMatch>
-
-Set this to true and the create new user page will use the values that you
-enter in the form but use the function CanonicalizeUserInfo in
-F<RT/User_Local.pm>
-
-=cut
-
-Set($CanonicalizeOnCreate, 0);
-
-=item C<$SenderMustExistInExternalDatabase>
-
-If C<$SenderMustExistInExternalDatabase> is true, RT will refuse to
-create non-privileged accounts for unknown users if you are using
-the C<$LookupSenderInExternalDatabase> option.
-Instead, an error message will be mailed and RT will forward the
-message to C<$RTOwner>.
-
-If you are not using C<$LookupSenderInExternalDatabase>, this option
-has no effect.
-
-If you define an AutoRejectRequest template, RT will use this
-template for the rejection message.
-
-=cut
-
-Set($SenderMustExistInExternalDatabase , undef);
-
-=item C<$ValidateUserEmailAddresses>
-
-If C<$ValidateUserEmailAddresses> is true, RT will refuse to create users with
-an invalid email address (as specified in RFC 2822) or with an email address
-made of multiple email adresses.
-
-=cut
-
-Set($ValidateUserEmailAddresses, undef);
-
-=item C<@MailPlugins>
-
-C<@MailPlugins> is a list of auth plugins for L<RT::Interface::Email>
-to use; see L<rt-mailgate>
-
-=cut
-
-=item C<$UnsafeEmailCommands>
-
-C<$UnsafeEmailCommands>, if set to true, enables 'take' and 'resolve'
-as possible actions via the mail gateway. As its name implies, this
-is very unsafe, as it allows email with a forged sender to possibly
-resolve arbitrary tickets!
-
-=cut
-
-=item C<$ExtractSubjectTagMatch>, C<$ExtractSubjectTagNoMatch>
-
-The default "extract remote tracking tags" scrip settings; these
-detect when your RT is talking to another RT, and adjusts the
-subject accordingly.
-
-=cut
-
-Set($ExtractSubjectTagMatch, qr/\[.+? #\d+\]/);
-Set($ExtractSubjectTagNoMatch, ( ${RT::EmailSubjectTagRegex}
- ? qr/\[(?:${RT::EmailSubjectTagRegex}) #\d+\]/
- : qr/\[\Q$RT::rtname\E #\d+\]/));
-
-=back
-
-=head1 Outgoing Mail Configuration
-
-=over 4
-
-=item C<$MailCommand>
-
-C<$MailCommand> defines which method RT will use to try to send mail.
-We know that 'sendmailpipe' works fairly well. If 'sendmailpipe'
-doesn't work well for you, try 'sendmail'. Other options are 'smtp'
-or 'qmail'.
-
-Note that you should remove the '-t' from C<$SendmailArguments>
-if you use 'sendmail' rather than 'sendmailpipe'
-
-=cut
-
-Set($MailCommand , 'sendmailpipe');
-
-=item C<$SetOutgoingMailFrom>
-
-C<$SetOutgoingMailFrom> tells RT to set the sender envelope with the correspond
-mail address of the ticket's queue.
-
-Warning: If you use this setting, bounced mails will appear to be incoming
-mail to the system, thus creating new tickets.
-
-=cut
-
-Set($SetOutgoingMailFrom, 0);
-
-=item C<$OverrideOutgoingMailFrom>
-
-C<$OverrideOutgoingMailFrom> is used for overwriting the Correspond
-address of the queue. The option is a hash reference of queue name to
-email address.
-
-If there is no ticket involved, then the value of the C<Default> key will be
-used.
-
-=cut
-
-Set($OverrideOutgoingMailFrom, {
-# 'Default' => 'admin@rt.example.com',
-# 'General' => 'general@rt.example.com',
-});
-
-=back
-
-=item C<$DefaultMailPrecedence>
-
-C<$DefaultMailPrecedence> is used to control the default
-Precedence level of outgoing mail where none is specified.
-By default it is C<bulk>, but if you only send mail to
-your staff, you may wish to change it.
-
-Note that you can set the precedence of individual templates
-by including an explicit Precedence header.
-
-If you set this value to C<undef> then we do not set a default
-Precedence header to outgoing mail. However, if there already is a
-Precedence header it will be preserved.
-
-=cut
-
-Set($DefaultMailPrecedence, 'bulk');
-
-=back
-
-=item C<$DefaultErrorMailPrecedence>
-
-C<$DefaultErrorMailPrecedence> is used to control the default
-Precedence level of outgoing mail that indicates some kind of
-error condition. By default it is C<bulk>, but if you only send
-mail to your staff, you may wish to change it.
-
-If you set this value to C<undef> then we do not add a Precedence
-header to error mail.
-
-=cut
-
-Set($DefaultErrorMailPrecedence, 'bulk');
-
-=back
-
-=item C<$UseOriginatorHeader>
-
-C<$UseOriginatorHeader> is used to control the insertion of an
-RT-Originator Header in every outgoing mail, containing the
-mail address of the transaction creator.
-
-=cut
-
-Set($UseOriginatorHeader, 1);
-
-=back
-
-=head1 Sendmail Configuration
-
-These options only take effect if C<$MailCommand> is 'sendmail' or
-'sendmailpipe'
-
-=over 4
-
-=item C<$SendmailArguments>
-
-C<$SendmailArguments> defines what flags to pass to C<$SendmailPath>
-If you picked 'sendmailpipe', you MUST add a -t flag to C<$SendmailArguments>
-These options are good for most sendmail wrappers and workalikes
-
-These arguments are good for sendmail brand sendmail 8 and newer
-C<Set($SendmailArguments,"-oi -t -ODeliveryMode=b -OErrorMode=m");>
-
-=cut
-
-Set($SendmailArguments , "-oi -t");
-
-
-=item C<$SendmailBounceArguments>
-
-C<$SendmailBounceArguments> defines what flags to pass to C<$Sendmail>
-assuming RT needs to send an error (ie. bounce).
-
-=cut
-
-Set($SendmailBounceArguments , '-f "<>"');
-
-=item C<$SendmailPath>
-
-If you selected 'sendmailpipe' above, you MUST specify the path to
-your sendmail binary in C<$SendmailPath>.
-
-=cut
-
-Set($SendmailPath , "/usr/sbin/sendmail");
-
-
-=back
-
-=head1 SMTP Configuration
-
-These options only take effect if C<$MailCommand> is 'smtp'
-
-=over 4
-
-=item C<$SMTPServer>
-
-C<$SMTPServer> should be set to the hostname of the SMTP server to use
-
-=cut
-
-Set($SMTPServer, undef);
-
-=item C<$SMTPFrom>
-
-C<$SMTPFrom> should be set to the 'From' address to use, if not the
-email's 'From'
-
-=cut
-
-Set($SMTPFrom, undef);
-
-=item C<$SMTPDebug>
-
-C<$SMTPDebug> should be set to true to debug SMTP mail sending
-
-=cut
-
-Set($SMTPDebug, 0);
-
-=back
-
-=head1 Other Mailer Configuration
-
-=over 4
-
-=item C<@MailParams>
-
-C<@MailParams> defines a list of options passed to $MailCommand if it
-is not 'sendmailpipe', 'sendmail', or 'smtp'
-
-=cut
-
-Set(@MailParams, ());
-
-=item C<$CorrespondAddress>, C<$CommentAddress>
-
-RT is designed such that any mail which already has a ticket-id associated
-with it will get to the right place automatically.
-
-C<$CorrespondAddress> and C<$CommentAddress> are the default addresses
-that will be listed in From: and Reply-To: headers of correspondence
-and comment mail tracked by RT, unless overridden by a queue-specific
-address.
-
-=cut
-
-Set($CorrespondAddress , '');
-
-Set($CommentAddress , '');
-
-=item C<$DashboardAddress>
-
-The email address from which RT will send dashboards. If none is set, then
-C<$OwnerEmail> will be used.
-
-=cut
-
-Set($DashboardAddress, '');
-
-=item C<$UseFriendlyFromLine>
-
-By default, RT sets the outgoing mail's "From:" header to
-"SenderName via RT". Setting C<$UseFriendlyFromLine> to 0 disables it.
-
-=cut
-
-Set($UseFriendlyFromLine, 1);
-
-=item C<$FriendlyFromLineFormat>
-
-C<sprintf()> format of the friendly 'From:' header; its arguments
-are SenderName and SenderEmailAddress.
-
-=cut
-
-Set($FriendlyFromLineFormat, "\"%s via RT\" <%s>");
-
-=item C<$UseFriendlyToLine>
-
-RT can optionally set a "Friendly" 'To:' header when sending messages to
-Ccs or AdminCcs (rather than having a blank 'To:' header.
-
-This feature DOES NOT WORK WITH SENDMAIL[tm] BRAND SENDMAIL
-If you are using sendmail, rather than postfix, qmail, exim or some other MTA,
-you _must_ disable this option.
-
-=cut
-
-Set($UseFriendlyToLine, 0);
-
-=item C<$FriendlyToLineFormat>
-
-C<sprintf()> format of the friendly 'From:' header; its arguments
-are WatcherType and TicketId.
-
-=cut
-
-Set($FriendlyToLineFormat, "\"%s of ". RT->Config->Get('rtname') ." Ticket #%s\":;");
-
-=item C<$NotifyActor>
-
-By default, RT doesn't notify the person who performs an update, as they
-already know what they've done. If you'd like to change this behaviour,
-Set C<$NotifyActor> to 1
-
-=cut
-
-Set($NotifyActor, 0);
-
-=item C<$RecordOutgoingEmail>
-
-By default, RT records each message it sends out to its own internal database.
-To change this behavior, set C<$RecordOutgoingEmail> to 0
-
-=cut
-
-Set($RecordOutgoingEmail, 1);
-
-=item C<$VERPPrefix>, C<$VERPPrefix>
-
-VERP support (http://cr.yp.to/proto/verp.txt)
-
-uncomment the following two directives to generate envelope senders
-of the form C<${VERPPrefix}${originaladdress}@${VERPDomain}>
-(i.e. rt-jesse=fsck.com@rt.example.com ).
-
-This currently only works with sendmail and sendmailppie.
-
-=cut
-
-# Set($VERPPrefix, 'rt-');
-# Set($VERPDomain, $RT::Organization);
-
-
-=item C<$ForwardFromUser>
-
-By default, RT forwards a message using queue's address and adds RT's tag into
-subject of the outgoing message, so recipients' replies go into RT as correspondents.
-
-To change this behavior, set C<$ForwardFromUser> to true value and RT will use
-address of the current user and leave subject without RT's tag.
-
-=cut
-
-Set($ForwardFromUser, 0);
-
-=item C<$ShowBccHeader>
-
-By default RT hides from the web UI information about blind copies user sent on
-reply or comment.
-
-To change this set the following option to true value.
-
-=cut
-
-Set($ShowBccHeader, 0);
-
-=item C<$DashboardSubject>
-
-Lets you set the subject of dashboards. Arguments are the frequency (Daily,
-Weekly, Monthly) of the dashboard and the dashboard's name. [_1] for the name
-of the dashboard.
-
-=cut
-
-Set($DashboardSubject, '%s Dashboard: %s');
-
-=back
-
-=head1 GnuPG Configuration
-
-A full description of the (somewhat extensive) GnuPG integration can be found
-by running the command `perldoc L<RT::Crypt::GnuPG>` (or `perldoc
- lib/RT/Crypt/GnuPG.pm` from your RT install directory).
-
-=over 4
-
-=item C<%GnuPG>
-
-Set C<OutgoingMessagesFormat> to 'inline' to use inline encryption and
-signatures instead of 'RFC' (GPG/MIME: RFC3156 and RFC1847) format.
-
-If you want to allow people to encrypt attachments inside the DB then
-set C<AllowEncryptDataInDB> to true
-
-Set C<RejectOnMissingPrivateKey> to false if you don't want to reject
-emails encrypted for key RT doesn't have and can not decrypt.
-
-Set C<RejectOnBadData> to false if you don't want to reject letters
-with incorrect GnuPG data.
-
-=cut
-
-Set( %GnuPG,
- Enable => @RT_GPG@,
- OutgoingMessagesFormat => 'RFC', # Inline
- AllowEncryptDataInDB => 0,
-
- RejectOnMissingPrivateKey => 1,
- RejectOnBadData => 1,
-);
-
-=item C<%GnuPGOptions>
-
-Options of GnuPG program.
-
-If you override this in your RT_SiteConfig, you should be sure
-to include a homedir setting.
-
-NOTE that options with '-' character MUST be quoted.
-
-=cut
-
-Set(%GnuPGOptions,
- homedir => '@RT_VAR_PATH@/data/gpg',
-
-# URL of a keyserver
-# keyserver => 'hkp://subkeys.pgp.net',
-
-# enables the automatic retrieving of keys when encrypting
-# 'auto-key-locate' => 'keyserver',
-
-# enables the automatic retrieving of keys when verifying signatures
-# 'auto-key-retrieve' => undef,
-);
-
-
-=back
-
-=head1 Logging Configuration
-
-The default is to log anything except debugging
-information to syslog. Check the L<Log::Dispatch> POD for
-information about how to get things by syslog, mail or anything
-else, get debugging info in the log, etc.
-
-It might generally make sense to send error and higher by email to
-some administrator. If you do this, be careful that this email
-isn't sent to this RT instance. Mail loops will generate a critical
-log message.
-
-=over 4
-
-=item C<$LogToSyslog>, C<$LogToScreen>
-
-The minimum level error that will be logged to the specific device.
-From lowest to highest priority, the levels are:
- debug info notice warning error critical alert emergency
-
-=cut
-
-Set($LogToSyslog , 'info');
-Set($LogToScreen , 'info');
-
-=item C<$LogToFile>, C<$LogDir>, C<$LogToFileNamed>
-
-Logging to a standalone file is also possible, but note that the
-file should needs to both exist and be writable by all direct users
-of the RT API. This generally include the web server, whoever
-rt-crontool runs as. Note that as rt-mailgate and the RT CLI go
-through the webserver, so their users do not need to have write
-permissions to this file. If you expect to have multiple users of
-the direct API, Best Practical recommends using syslog instead of
-direct file logging.
-
-=cut
-
-Set($LogToFile , undef);
-Set($LogDir, '@RT_LOG_PATH@');
-Set($LogToFileNamed , "rt.log"); #log to rt.log
-
-=item C<$LogStackTraces>
-
-If set to a log level then logging will include stack traces for
-messages with level equal to or greater than specified.
-
-NOTICE: Stack traces include parameters supplied to functions or
-methods. It is possible for stack trace logging to reveal sensitive
-information such as passwords or ticket content in your logs.
-
-=cut
-
-Set($LogStackTraces, '');
-
-=item C<@LogToSyslogConf>
-
-On Solaris or UnixWare, set to ( socket => 'inet' ). Options here
-override any other options RT passes to L<Log::Dispatch::Syslog>.
-Other interesting flags include facility and logopt. (See the
-L<Log::Dispatch::Syslog> documentation for more information.) (Maybe
-ident too, if you have multiple RT installations.)
-
-=cut
-
-Set(@LogToSyslogConf, ());
-
-=item C<$StatementLog>,
-
-RT has rudimentary SQL statement logging support if you have
-DBIx-SearchBuilder 1.31_1 or higher; simply set C<$StatementLog> to be
-the level that you wish SQL statements to be logged at.
-
-=cut
-
-Set($StatementLog, undef);
-
-=back
-
-=head1 Web Interface Configuration
-
-=over 4
-
-=item C<$WebDefaultStylesheet>
-
-This determines the default stylesheet the RT web interface will use.
-RT ships with several themes by default:
-
- web2 The totally new, default layout for RT 3.8
- 3.5-default RT 3.5 and 3.6 original layout
- 3.4-compat A 3.4 compatibility stylesheet to make RT look
- (mostly) like 3.4
-
-This bundled distibution of RT also includes (enabled by default):
- freeside2.1 Integration with Freeside
-
-This value actually specifies a directory in F<share/html/NoAuth/css/>
-from which RT will try to load the file main.css (which should
-@import any other files the stylesheet needs). This allows you to
-easily and cleanly create your own stylesheets to apply to RT. This
-option can be overridden by users in their preferences.
-
-=cut
-
-Set($WebDefaultStylesheet, 'freeside2.1');
-
-=item C<$UsernameFormat>
-
-This determines how user info is displayed. 'concise' will show one of
-either NickName, RealName, Name or EmailAddress, depending on what exists
-and whether the user is privileged or not. 'verbose' will show RealName and
-EmailAddress.
-
-=cut
-
-Set($UsernameFormat, 'verbose');
-
-=item C<$WebDomain>
-
-Domain name of the RT server, eg 'www.example.com'. It should not contain
-anything else, but server name.
-
-=cut
-
-Set( $WebDomain, 'localhost' );
-
-=item C<$WebPort>
-
-If we're running as a superuser, run on port 80
-Otherwise, pick a high port for this user.
-
-443 is default port for https protocol.
-
-=cut
-
-Set($WebPort, 80);# + ($< * 7274) % 32766 + ($< && 1024));
-
-=item C<$WebPath>
-
-If you're putting the web ui somewhere other than at the root of
-your server, you should set C<$WebPath> to the path you'll be
-serving RT at.
-
-C<$WebPath> requires a leading / but no trailing /, or it can be blank.
-
-In most cases, you should leave C<$WebPath> set to '' (an empty value).
-
-=cut
-
-Set($WebPath, "");
-
-=item C<$WebBaseURL>, C<$WebURL>
-
-Usually you don't want to set these options. The only obviouse reason is
-RT accessible via https protocol on non standard port, eg
-'https://rt.example.com:9999'. In all other cases these options are computed
-using C<$WebDomain>, C<$WebPort> and C<$WebPath>.
-
-C<$WebBaseURL> is the scheme, server and port (eg 'http://rt.example.com')
-for constructing urls to the web UI. C<$WebBaseURL> doesn't need a trailing /.
-
-C<$WebURL> is the C<$WebBaseURL>, C<$WebPath> and trailing /, for example:
-'http://www.example.com/rt/'.
-
-=cut
-
-my $port = RT->Config->Get('WebPort');
-Set($WebBaseURL,
- ($port == 443? 'https': 'http') .'://'
- . RT->Config->Get('WebDomain')
- . ($port != 80 && $port != 443? ":$port" : '')
-);
-
-Set($WebURL, RT->Config->Get('WebBaseURL') . RT->Config->Get('WebPath') . "/");
-
-=item C<$WebImagesURL>
-
-C<$WebImagesURL> points to the base URL where RT can find its images.
-Define the directory name to be used for images in rt web
-documents.
-
-=cut
-
-Set($WebImagesURL, RT->Config->Get('WebPath') . "/NoAuth/images/");
-
-=item C<$LogoURL>
-
-C<$LogoURL> points to the URL of the RT logo displayed in the web UI
-
-=cut
-
-Set($LogoURL, RT->Config->Get('WebImagesURL') . "bplogo.gif");
-
-=item C<$LogoLinkURL>
-
-C<$LogoLinkURL> is the URL that the RT logo hyperlinks to.
-
-=cut
-
-Set($LogoLinkURL, "http://bestpractical.com");
-
-=item C<$LogoAltText>
-
-C<$LogoAltText> is a string of text for the alt-text of the logo. It
-will be passed through C<loc> for localization.
-
-=cut
-
-Set($LogoAltText, "Best Practical Solutions, LLC corporate logo");
-
-=item C<$LogoImageHeight>
-
-C<$LogoImageHeight> is the value of the C<height> attribute of the logo
-C<img> tag.
-
-=cut
-
-Set($LogoImageHeight, 33);
-
-=item C<$LogoImageWidth>
-
-C<$LogoImageWidth> is the value of the C<width> attribute of the logo
-C<img> tag.
-
-=cut
-
-Set($LogoImageWidth, 177);
-
-=item C<$WebNoAuthRegex>
-
-What portion of RT's URL space should not require authentication.
-
-This is mostly for extension and doesn't mean RT will work without
-login if you change it.
-
-=cut
-
-Set($WebNoAuthRegex, qr{^ /rt (?:/+NoAuth/ | /+REST/\d+\.\d+/NoAuth/) }x );
-
-=item C<$SelfServiceRegex>
-
-What portion of RT's URLspace should be accessible to Unprivileged users
-This does not override the redirect from F</Ticket/Display.html> to
-F</SelfService/Display.html> when Unprivileged users attempt to access
-ticked displays
-
-=cut
-
-Set($SelfServiceRegex, qr!^(?:/+SelfService/)!x );
-
-=item C<$MessageBoxWidth>, C<$MessageBoxHeight>
-
-For message boxes, set the entry box width, height and what type of
-wrapping to use. These options can be overridden by users in their
-preferences.
-
-Default width: 72, height: 15
-
-These settings only apply to the non-RichText message box.
-See below for Rich Text settings.
-
-=cut
-
-Set($MessageBoxWidth, 72);
-Set($MessageBoxHeight, 15);
-
-=item C<$MessageBoxWrap>
-
-Default wrapping: "HARD" (choices "SOFT", "HARD")
-
-Wrapping is disabled when using MessageBoxRichText because
-of a bad interaction between IE and wrapping with the Rich
-Text Editor.
-
-=cut
-
-Set($MessageBoxWrap, "HARD");
-
-=item C<$MessageBoxRichText>
-
-Should "rich text" editing be enabled? This option lets your users send html email messages from the web interface.
-
-=cut
-
-Set($MessageBoxRichText, 1);
-
-=item C<$MessageBoxRichTextHeight>
-
-Height of RichText javascript enabled editing boxes (in pixels)
-
-=cut
-
-Set($MessageBoxRichTextHeight, 200);
-
-=item C<$MessageBoxIncludeSignature>
-
-Should your user's signatures (from their Preferences page) be included in Comments and Replies
-
-=cut
-
-Set($MessageBoxIncludeSignature, 1);
-
-=item C<$MessageBoxIncludeSignatureOnComment>
-
-Should your user's signatures (from their Preferences page) be included in Comments. Setting this to false overrides C<$MessageBoxIncludeSignature>.
-
-=cut
-
-Set($MessageBoxIncludeSignatureOnComment, 1);
-
-=item C<$WikiImplicitLinks>
-
-Support implicit links in WikiText custom fields? A true value
-causes InterCapped or ALLCAPS words in WikiText fields to
-automatically become links to searches for those words. If used on
-RTFM articles, it links to the RTFM article with that name.
-
-=cut
-
-Set($WikiImplicitLinks, 0);
-
-=item C<$TrustHTMLAttachments>
-
-if C<TrustHTMLAttachments> is not defined, we will display them
-as text. This prevents malicious HTML and javascript from being
-sent in a request (although there is probably more to it than that)
-
-=cut
-
-Set($TrustHTMLAttachments, undef);
-
-=item C<$AlwaysDownloadAttachments>
-
-Always download attachments, regardless of content type. If set,
-this overrides C<TrustHTMLAttachments>.
-
-=cut
-
-Set($AlwaysDownloadAttachments, undef);
-
-=item C<$AttachmentUnits>
-
-Controls the units (kilobytes or bytes) that attachment sizes use
-for display. The default is to display kilobytes if the attachment
-is larger than 1024 bytes, bytes otherwise. If you set
-C<$AttachmentUnits> to C<'k'> then attachment sizes will always be
-displayed in kilobytes. If set to C<'b'>, then sizes will be bytes.
-
-=cut
-
-Set($AttachmentUnits, undef);
-
-=item C<$RedistributeAutoGeneratedMessages>
-
-Should RT redistribute correspondence that it identifies as
-machine generated? A true value will do so; setting this to '0'
-will cause no such messages to be redistributed.
-You can also use 'privileged' (the default), which will redistribute
-only to privileged users. This helps to protect against malformed
-bounces and loops caused by autocreated requestors with bogus addresses.
-
-=cut
-
-Set($RedistributeAutoGeneratedMessages, 'privileged');
-
-=item C<$PreferRichText>
-
-If C<$PreferRichText> is set to a true value, RT will show HTML/Rich text
-messages in preference to their plaintext alternatives. RT "scrubs" the
-html to show only a minimal subset of HTML to avoid possible contamination
-by cross-site-scripting attacks.
-
-=cut
-
-Set($PreferRichText, undef);
-
-=item C<$WebExternalAuth>
-
-If C<$WebExternalAuth> is defined, RT will defer to the environment's
-REMOTE_USER variable.
-
-=cut
-
-Set($WebExternalAuth, undef);
-
-=item C<$WebExternalAuthContinuous>
-
-If C<$WebExternalAuthContinuous> is defined, RT will check for the
-REMOTE_USER on each access. If you would prefer this to only happen
-once (at initial login) set this to a false value. The default setting
-will help ensure that if your external auth system deauthenticates a
-user, RT notices as soon as possible.
-
-=cut
-
-Set($WebExternalAuthContinuous, 1);
-
-=item C<$WebFallbackToInternalAuth>
-
-If C<$WebFallbackToInternalAuth> is defined, the user is allowed a chance
-of fallback to the login screen, even if REMOTE_USER failed.
-
-=cut
-
-Set($WebFallbackToInternalAuth , undef);
-
-=item C<$WebExternalGecos>
-
-C<$WebExternalGecos> means to match 'gecos' field as the user identity);
-useful with mod_auth_pwcheck and IIS Integrated Windows logon.
-
-=cut
-
-Set($WebExternalGecos , undef);
-
-=item C<$WebExternalAuto>
-
-C<$WebExternalAuto> will create users under the same name as REMOTE_USER
-upon login, if it's missing in the Users table.
-
-=cut
-
-Set($WebExternalAuto , undef);
-
-=item C<$AutoCreate>
-
-If C<$WebExternalAuto> is true, C<$AutoCreate> will be passed to User's
-Create method. Use it to set defaults, such as creating
-Unprivileged users with C<{ Privileged => 0 }>
-( Must be a hashref of arguments )
-
-=cut
-
-Set($AutoCreate, undef);
-
-=item C<$WebSessionClass>
-
-C<$WebSessionClass> is the class you wish to use for managing Sessions.
-It defaults to use your SQL database, but if you are using MySQL 3.x and
-plans to use non-ascii Queue names, uncomment and add this line to
-F<RT_SiteConfig.pm> will prevent session corruption.
-
-=cut
-
-# Set($WebSessionClass , 'Apache::Session::File');
-
-=item C<$AutoLogoff>
-
-By default, RT's user sessions persist until a user closes his or her
-browser. With the C<$AutoLogoff> option you can setup session lifetime in
-minutes. A user will be logged out if he or she doesn't send any requests
-to RT for the defined time.
-
-=cut
-
-Set($AutoLogoff, 0);
-
-=item C<$LogoutRefresh>
-
-The number of seconds to wait after logout before sending the user to the
-login page. By default, 1 second, though you may want to increase this if
-you display additional information on the logout page.
-
-=cut
-
-Set($LogoutRefresh, 1);
-
-=item C<$WebSecureCookies>
-
-By default, RT's session cookie isn't marked as "secure" Some web browsers
-will treat secure cookies more carefully than non-secure ones, being careful
-not to write them to disk, only send them over an SSL secured connection
-and so on. To enable this behaviour, set C<$WebSecureCookies> to a true value.
-NOTE: You probably don't want to turn this on _unless_ users are only connecting
-via SSL encrypted HTTP connections.
-
-=cut
-
-Set($WebSecureCookies, 0);
-
-=item C<$WebFlushDbCacheEveryRequest>
-
-By default, RT clears its database cache after every page view.
-This ensures that you've always got the most current information
-when working in a multi-process (mod_perl or FastCGI) Environment
-Setting C<$WebFlushDbCacheEveryRequest> to '0' will turn this off,
-which will speed RT up a bit, at the expense of a tiny bit of data
-accuracy.
-
-=cut
-
-Set($WebFlushDbCacheEveryRequest, '1');
-
-
-=item C<$MaxInlineBody>
-
-C<$MaxInlineBody> is the maximum attachment size that we want to see
-inline when viewing a transaction. RT will inline any text if value
-is undefined or 0. This option can be overridden by users in their
-preferences.
-
-=cut
-
-Set($MaxInlineBody, 12000);
-
-=item C<$DefaultSummaryRows>
-
-C<$DefaultSummaryRows> is default number of rows displayed in for search
-results on the frontpage.
-
-=cut
-
-Set($DefaultSummaryRows, 10);
-
-=item C<$HomePageRefreshInterval>
-
-C<$HomePageRefreshInterval> is default number of seconds to refresh the RT
-home page. Choose from [0, 120, 300, 600, 1200, 3600, 7200].
-
-=cut
-
-Set($HomePageRefreshInterval, 0);
-
-=item C<$SearchResultsRefreshInterval>
-
-C<$SearchResultsRefreshInterval> is default number of seconds to refresh
-search results in RT. Choose from [0, 120, 300, 600, 1200, 3600, 7200].
-
-=cut
-
-Set($SearchResultsRefreshInterval, 0);
-
-=item C<$OldestTransactionsFirst>
-
-By default, RT shows newest transactions at the bottom of the ticket
-history page, if you want see them at the top set this to '0'. This
-option can be overridden by users in their preferences.
-
-=cut
-
-Set($OldestTransactionsFirst, '1');
-
-=item C<$ShowTransactionImages>
-
-By default, RT shows images attached to incoming (and outgoing) ticket updates
-inline. Set this variable to 0 if you'd like to disable that behaviour
-
-=cut
-
-Set($ShowTransactionImages, 1);
-
-=item C<$PlainTextPre>
-
-Normally plaintext attachments are displayed as HTML with line
-breaks preserved. This causes space- and tab-based formatting not
-to be displayed correctly. By setting $PlainTextPre they'll be
-displayed using <pre> instead so such formatting works, but they'll
-use a monospaced font, no matter what the value of C<$PlainTextMono> is.
-
-=cut
-
-Set($PlainTextPre, 0);
-
-
-=item C<$PlainTextMono>
-To display plaintext attachments,
-Set C<$PlainTextMono> to 1 to use monospaced font and preserve
-formatting, but unlike PlainTextPre, the text will wrap to fit into the
-UI.
-
-=cut
-
-Set($PlainTextMono, 0);
-
-=item C<$ShowUnreadMessageNotifications>
-
-By default, RT will prompt users when there are new, unread messages on
-tickets they are viewing.
-
-Set C<$ShowUnreadMessageNotifications> to a false value to disable this feature.
-
-=cut
-
-Set($ShowUnreadMessageNotifications, 1);
-
-
-=item C<$HomepageComponents>
-
-C<$HomepageComponents> is an arrayref of allowed components on a user's
-customized homepage ("RT at a glance").
-
-=cut
-
-Set($HomepageComponents, [qw(QuickCreate Quicksearch MyCalendar MyAdminQueues MySupportQueues MyReminders RefreshHomepage Dashboards)]);
-
-=item C<@MasonParameters>
-
-C<@MasonParameters> is the list of parameters for the constructor of
-HTML::Mason's Apache or CGI Handler. This is normally only useful
-for debugging, eg. profiling individual components with:
-
- use MasonX::Profiler; # available on CPAN
- Set(@MasonParameters, (preamble => 'my $p = MasonX::Profiler->new($m, $r);'));
-
-=cut
-
-Set(@MasonParameters, ());
-
-=item C<$DefaultSearchResultFormat>
-
-C<$DefaultSearchResultFormat> is the default format for RT search results
-
-=cut
-
-Set ($DefaultSearchResultFormat, qq{
- '<B><A HREF="__WebPath__/Ticket/Display.html?id=__id__">__id__</a></B>/TITLE:#',
- '<B><A HREF="__WebPath__/Ticket/Display.html?id=__id__">__Subject__</a></B>/TITLE:Subject',
- Customer,
- Status,
- QueueName,
- OwnerName,
- Priority,
- '__NEWLINE__',
- '',
- '<small>__Requestors__</small>',
- '',
- '<small>__CreatedRelative__</small>',
- '<small>__ToldRelative__</small>',
- '<small>__LastUpdatedRelative__</small>',
- '<small>__TimeLeft__</small>'});
-
-=item C<$DefaultSelfServiceSearchResultFormat>
-
-C<$DefaultSelfServiceSearchResultFormat> is the default format of searches displayed in the
-SelfService interface.
-
-=cut
-
-Set($DefaultSelfServiceSearchResultFormat, qq{
- '<B><A HREF="__WebPath__/SelfService/Display.html?id=__id__">__id__</a></B>/TITLE:#',
- '<B><A HREF="__WebPath__/SelfService/Display.html?id=__id__">__Subject__</a></B>/TITLE:Subject',
- Status,
- Requestors,
- OwnerName});
-
-=item C<%AdminSearchResultFormat>
-
-In admin interface format strings similar to tickets search result
-formats are used. Use C<%AdminSearchResultFormat> to define format
-strings per RT class.
-
-=cut
-
-Set(%AdminSearchResultFormat,
- Queues =>
- q{'<a href="__WebPath__/Admin/Queues/Modify.html?id=__id__">__id__</a>/TITLE:#'}
- .q{,'<a href="__WebPath__/Admin/Queues/Modify.html?id=__id__">__Name__</a>/TITLE:Name'}
- .q{,__Description__,__Address__,__Priority__,__DefaultDueIn__,__Disabled__},
-
- Groups =>
- q{'<a href="__WebPath__/Admin/Groups/Modify.html?id=__id__">__id__</a>/TITLE:#'}
- .q{,'<a href="__WebPath__/Admin/Groups/Modify.html?id=__id__">__Name__</a>/TITLE:Name'}
- .q{,'__Description__'},
-
- Users =>
- q{'<a href="__WebPath__/Admin/Users/Modify.html?id=__id__">__id__</a>/TITLE:#'}
- .q{,'<a href="__WebPath__/Admin/Users/Modify.html?id=__id__">__Name__</a>/TITLE:Name'}
- .q{,__RealName__, __EmailAddress__},
-
- CustomFields =>
- q{'<a href="__WebPath__/Admin/CustomFields/Modify.html?id=__id__">__id__</a>/TITLE:#'}
- .q{,'<a href="__WebPath__/Admin/CustomFields/Modify.html?id=__id__">__Name__</a>/TITLE:Name'}
- .q{,__AppliedTo__, __FriendlyType__, __FriendlyPattern__},
-
- Scrips =>
- q{'<a href="__WebPath__/__WebRequestPathDir__/Scrip.html?id=__id__&Queue=__QueueId__">__id__</a>/TITLE:#'}
- .q{,'<a href="__WebPath__/__WebRequestPathDir__/Scrip.html?id=__id__&Queue=__QueueId__">__Description__</a>/TITLE:Description'}
- .q{,__Stage__, __Condition__, __Action__, __Template__},
-
- Templates =>
- q{'<a href="__WebPath__/__WebRequestPathDir__/Template.html?Queue=__QueueId__&Template=__id__">__id__</a>/TITLE:#'}
- .q{,'<a href="__WebPath__/__WebRequestPathDir__/Template.html?Queue=__QueueId__&Template=__id__">__Name__</a>/TITLE:Name'}
- .q{,'__Description__'},
-);
-
-=item C<$SuppressInlineTextFiles>
-
-If C<$SuppressInlineTextFiles> is set to a true value, then uploaded
-text files (text-type attachments with file names) are prevented
-from being displayed in-line when viewing a ticket's history.
-
-=cut
-
-Set($SuppressInlineTextFiles, undef);
-
-=item C<$DontSearchFileAttachments>
-
-If C<$DontSearchFileAttachments> is set to a true value, then uploaded
-files (attachments with file names) are not searched during full-content
-ticket searches.
-
-=cut
-
-Set($DontSearchFileAttachments, undef);
-
-=item C<%ChartFont>
-
-The L<GD> module (which RT uses for graphs) ships with a builtin font
-that doesn't have full Unicode support. You can use a given TrueType font
-for a specific language by setting %ChartFont to (language =E<gt> the
-absolute path of a font) pairs. Your GD library must have support for
-TrueType fonts to use this option. If there is no entry for a language
-in the hash then font with 'others' key is used.
-
-RT comes with two TrueType fonts covering most available languages.
-
-=cut
-
-Set(
- %ChartFont,
- 'zh-cn' => "$RT::BasePath/share/fonts/DroidSansFallback.ttf",
- 'zh-tw' => "$RT::BasePath/share/fonts/DroidSansFallback.ttf",
- 'ja' => "$RT::BasePath/share/fonts/DroidSansFallback.ttf",
- 'others' => "$RT::BasePath/share/fonts/DroidSans.ttf",
-);
-
-=item C<$ChartsTimezonesInDB>
-
-Dates are stored using UTC timezone in the DB, so charts groupped
-by dates and time are not representative. Set C<$ChartsTimezonesInDB>
-to a true value to enable timezones conversions using DB's
-capabilities. You may need to do some work on DB side to use this
-feature, read more in F<docs/timezones_in_charts.pod>.
-
-=cut
-
-Set( $ChartsTimezonesInDB, 0 );
-
-=item C<@Active_MakeClicky>
-
-MakeClicky detects various formats of data in headers and email
-messages, and extends them with supporting links. By default, RT
-provides two formats:
-
-* 'httpurl': detects http:// and https:// URLs and adds '[Open URL]'
- link after the URL.
-
-* 'httpurl_overwrite': also detects URLs as 'httpurl' format, but
- replace URL with link and *adds spaces* into text if it's longer
- then 30 chars. This allow browser to wrap long URLs and avoid
- horizontal scrolling.
-
-See F<share/html/Elements/MakeClicky> for documentation on how to add your own.
-
-=cut
-
-Set(@Active_MakeClicky, qw());
-
-=item C<$DefaultQueue>
-
-Use this to select the default queue name that will be used for creating new
-tickets. You may use either the queue's name or its ID. This only affects the
-queue selection boxes on the web interface.
-
-=cut
-
-#Set($DefaultQueue, 'General');
-
-=item C<$DefaultTimeUnitsToHours>
-
-Use this to set the default units for time entry to hours instead of minutes.
-
-=cut
-
-Set($DefaultTimeUnitsToHours, 0);
-
-=back
-
-=head1 L<Net::Server> (rt-server) Configuration
-
-=over 4
-
-=item C<$StandaloneMinServers>, C<$StandaloneMaxServers>
-
-The absolute minimum and maximum number of servers that will be created to
-handle requests. Having multiple servers means that serving a slow page will
-affect other users less.
-
-=cut
-
-Set($StandaloneMinServers, 1);
-Set($StandaloneMaxServers, 1);
-
-=item C<$StandaloneMinSpareServers>, C<$StandaloneMaxSpareServers>
-
-These next two options can be used to scale up and down the number of servers
-to adjust to load. These two options will respect the C<$StandaloneMinServers
-> and C<$StandaloneMaxServers options>.
-
-=cut
-
-Set($StandaloneMinSpareServers, 0);
-Set($StandaloneMaxSpareServers, 0);
-
-=item C<$StandaloneMaxRequests>
-
-This sets the absolute maximum number of requests a single server will serve.
-Setting this would be useful if, for example, memory usage slowly crawls up
-every hit.
-
-=cut
-
-#Set($StandaloneMaxRequests, 50);
-
-=item C<%NetServerOptions>
-
-C<%NetServerOptions> is a hash of additional options to use for
-L<Net::Server/DEFAULT ARGUMENTS>. For example, you could set
-reverse_lookups to get the hostnames for all users with:
-
-C<Set(%NetServerOptions, (reverse_lookups => 1));>
-
-=cut
-
-Set(%NetServerOptions, ());
-
-=back
-
-
-=head1 UTF-8 Configuration
-
-=over 4
-
-=item C<@LexiconLanguages>
-
-An array that contains languages supported by RT's internationalization
-interface. Defaults to all *.po lexicons; setting it to C<qw(en ja)> will make
-RT bilingual instead of multilingual, but will save some memory.
-
-=cut
-
-Set(@LexiconLanguages, qw(*));
-
-=item C<@EmailInputEncodings>
-
-An array that contains default encodings used to guess which charset
-an attachment uses if not specified. Must be recognized by
-L<Encode::Guess>.
-
-=cut
-
-Set(@EmailInputEncodings, qw(utf-8 iso-8859-1 us-ascii));
-
-=item C<$EmailOutputEncoding>
-
-The charset for localized email. Must be recognized by Encode.
-
-=cut
-
-Set($EmailOutputEncoding, 'utf-8');
-
-
-=back
-
-=head1 Date Handling Configuration
-
-=over 4
-
-=item C<$DateTimeFormat>
-
-You can choose date and time format. See "Output formatters"
-section in perldoc F<lib/RT/Date.pm> for more options. This option can
-be overridden by users in their preferences.
-Some examples:
-
-C<Set($DateTimeFormat, 'LocalizedDateTime');>
-C<Set($DateTimeFormat, { Format => 'ISO', Seconds => 0 });>
-C<Set($DateTimeFormat, 'RFC2822');>
-C<Set($DateTimeFormat, { Format => 'RFC2822', Seconds => 0, DayOfWeek => 0 });>
-
-=cut
-
-Set($DateTimeFormat, 'DefaultFormat');
-
-# Next two options are for Time::ParseDate
-
-=item C<$DateDayBeforeMonth>
-
-Set this to 1 if your local date convention looks like "dd/mm/yy" instead of
-"mm/dd/yy". Used only for parsing, not for displaying dates.
-
-=cut
-
-Set($DateDayBeforeMonth , 1);
-
-=item C<$AmbiguousDayInPast>, C<$AmbiguousDayInFuture>
-
-Should an unspecified day or year in a date refer to a future or a
-past value? For example, should a date of "Tuesday" default to mean
-the date for next Tuesday or last Tuesday? Should the date "March 1"
-default to the date for next March or last March?
-
-Set $<AmbiguousDayInPast> for the last date, or $<$AmbiguousDayInFuture> for the
-next date.
-
-The default is usually good.
-
-=cut
-
-Set($AmbiguousDayInPast, 0);
-Set($AmbiguousDayInFuture, 0);
-
-=back
-
-=head1 Approval Configuration
-
-Configration for the approvl system
-
-=over 4
-
-=item C<$ApprovalRejectionNotes>
-
-Should rejection notes be sent to the requestors? The default is true.
-
-=cut
-
-Set($ApprovalRejectionNotes, 1);
-
-
-=back
-
-=head1 Miscellaneous Configuration
-
-=over 4
-
-=item C<@ActiveStatus>, C<@InactiveStatus>
-
-You can define new statuses and even reorder existing statuses here.
-WARNING. DO NOT DELETE ANY OF THE DEFAULT STATUSES. If you do, RT
-will break horribly. The statuses you add must be no longer than
-10 characters.
-
-=cut
-
-Set(@ActiveStatus, qw(new open stalled));
-Set(@InactiveStatus, qw(resolved rejected deleted));
-
-=item C<$LinkTransactionsRun1Scrip>
-
-RT-3.4 backward compatibility setting. Add/Delete Link used to record one
-transaction and run one scrip. Set this value to 1 if you want
-only one of the link transactions to have scrips run.
-
-=cut
-
-Set($LinkTransactionsRun1Scrip, 0);
-
-=item C<$StrictLinkACL>
-
-When this feature is enabled a user needs I<ModifyTicket> rights on both
-tickets to link them together, otherwise he can have rights on either of
-them.
-
-=cut
-
-Set($StrictLinkACL, 1);
-
-=item C<$PreviewScripMessages>
-
-Set C<$PreviewScripMessages> to 1 if the scrips preview on the ticket
-reply page should include the content of the messages to be sent.
-
-=cut
-
-Set($PreviewScripMessages, 0);
-
-=item C<$UseTransactionBatch>
-
-Set C<$UseTransactionBatch> to 1 to execute transactions in batches,
-such that a resolve and comment (for example) would happen
-simultaneously, instead of as two transactions, unaware of each
-others' existence.
-
-=cut
-
-Set($UseTransactionBatch, 1);
-
-=item C<@CustomFieldValuesSources>
-
-Set C<@CustomFieldValuesSources> to a list of class names which extend
-L<RT::CustomFieldValues::External>. This can be used to pull lists of
-custom field values from external sources at runtime.
-
-=cut
-
-Set(@CustomFieldValuesSources, ());
-
-=item C<$CanonicalizeRedirectURLs>
-
-Set C<$CanonicalizeRedirectURLs> to 1 to use $C<WebURL> when redirecting rather
-than the one we get from C<%ENV>.
-
-If you use RT behind a reverse proxy, you almost certainly want to
-enable this option.
-
-=cut
-
-Set($CanonicalizeRedirectURLs, 0);
-=item C<$EnableReminders>
-
-Hide links/portlets related to Reminders by setting this to 0
-
-=cut
-
-Set($EnableReminders,1);
-
-
-=item C<@Plugins>
-
-Set C<@Plugins> to a list of external RT plugins that should be enabled (those
-plugins have to be previously downloaded and installed).
-Example:
-
-C<Set(@Plugins, (qw(Extension::QuickDelete RT::FM)));>
-
-=cut
-
-Set(@Plugins, (qw(RTx::Calendar))); #RTx::Checklist ));
-
-=back
-
-=head1 Development Configuration
-
-=over 4
-
-=item C<$DevelMode>
-
-RT comes with a "Development mode" setting.
-This setting, as a convenience for developers, turns on
-all sorts of development options that you most likely don't want in
-production:
-
-* Turns off Mason's 'static_source' directive. By default, you can't
- edit RT's web ui components on the fly and have RT magically pick up
- your changes. (It's a big performance hit)
-
- * More to come
-
-=cut
-
-Set($DevelMode, '@RT_DEVEL_MODE@');
-
-
-=back
-
-=head1 Deprecated Options
-
-=over 4
-
-=item C<$AlwaysUseBase64>
-
-Encode blobs as base64 in DB (?)
-
-=item C<$TicketBaseURI>
-
-Base URI to tickets in this system; used when loading (?)
-
-=item C<$UseCodeTickets>
-
-This option is exists for backwards compatibility. Don't use it.
-
-=back
-
-=cut
-
-1;
diff --git a/rt/etc/RT_SiteConfig.pm b/rt/etc/RT_SiteConfig.pm
deleted file mode 100644
index f833f0d..0000000
--- a/rt/etc/RT_SiteConfig.pm
+++ /dev/null
@@ -1,56 +0,0 @@
-# Any configuration directives you include here will override
-# RT's default configuration file, RT_Config.pm
-#
-# To include a directive here, just copy the equivalent statement
-# from RT_Config.pm and change the value. We've included a single
-# sample value below.
-#
-# This file is actually a perl module, so you can include valid
-# perl code, as well.
-#
-# The converse is also true, if this file isn't valid perl, you're
-# going to run into trouble. To check your SiteConfig file, use
-# this comamnd:
-#
-# perl -c /path/to/your/etc/RT_SiteConfig.pm
-
-#Set( $rtname, 'example.com');
-
-# These settings should have been inserted by the initial Freeside install.
-# Sometimes you may want to change domain, timezone, or freeside::URL later,
-# everything else should probably stay untouched.
-
-Set($rtname, '%%%RT_DOMAIN%%%');
-Set($Organization, '%%%RT_DOMAIN%%%');
-
-Set($Timezone, '%%%RT_TIMEZONE%%%');
-
-Set($WebExternalAuth, 1);
-Set($WebFallbackToInternal, 1); #no
-Set($WebExternalAuto, 1);
-
-$RT::URI::freeside::IntegrationType = 'Internal';
-$RT::URI::freeside::URL = '%%%FREESIDE_URL%%%';
-
-$RT::URI::freeside::URL =~ m(^(https?://[^/]+)(/.*)$)i;
-Set($WebBaseURL, $1);
-Set($WebPath, "$2/rt");
-
-Set($DatabaseHost , '');
-
-# These settings are user-editable.
-
-Set($WebDefaultStylesheet, 'freeside2.1');
-Set($UsernameFormat, 'verbose'); #back to concise to hide email addresses
-
-#uncomment to use
-#Set($DefaultSummaryRows, 10);
-
-Set($MessageBoxWidth, 80);
-Set($MessageBoxRichTextHeight, 368);
-
-#redirects to ticket display on quick create
-#Set($QuickCreateRedirect, 1);
-
-#Set(@Plugins,(qw(Extension::QuickDelete RT::FM)));
-1;
diff --git a/rt/etc/acl.Informix b/rt/etc/acl.Informix
deleted file mode 100644
index eff232f..0000000
--- a/rt/etc/acl.Informix
+++ /dev/null
@@ -1,6 +0,0 @@
-
-sub acl {
- return ("GRANT RESOURCE TO ". RT->Config->Get('DatabaseUser') .";");
-}
-
-1;
diff --git a/rt/etc/acl.Oracle b/rt/etc/acl.Oracle
deleted file mode 100644
index c8667c0..0000000
--- a/rt/etc/acl.Oracle
+++ /dev/null
@@ -1,10 +0,0 @@
-sub acl {
-return (
-"CREATE USER ${RT::DatabaseUser} identified by ${RT::DatabasePassword}".
-"temporary tablespace TEMP" .
-"default tablespace USERS" .
-"quota unlimited on USERS;" ,
-"grant connect, resource to ${RT::DatabaseUser};",
-"exit;");
-}
-1;
diff --git a/rt/etc/acl.Pg b/rt/etc/acl.Pg
deleted file mode 100755
index 16ea71b..0000000
--- a/rt/etc/acl.Pg
+++ /dev/null
@@ -1,63 +0,0 @@
-sub acl {
- my $dbh = shift;
-
- my @acls;
-
- my @tables = qw (
-
- attachments_id_seq
- Attachments
- queues_id_seq
- Queues
- links_id_seq
- Links
- principals_id_seq
- Principals
- groups_id_seq
- Groups
- scripconditions_id_seq
- ScripConditions
- transactions_id_seq
- Transactions
- scrips_id_seq
- Scrips
- acl_id_seq
- ACL
- groupmembers_id_seq
- GroupMembers
- cachedgroupmembers_id_seq
- CachedGroupMembers
- users_id_seq
- Users
- tickets_id_seq
- Tickets
- scripactions_id_seq
- ScripActions
- templates_id_seq
- Templates
- ticketcustomfieldvalues_id_s
- TicketCustomFieldValues
- customfields_id_seq
- CustomFields
- customfieldvalues_id_seq
- CustomFieldValues
- sessions
- );
-
- # if there's already an rt_user, drop it.
- my @row =
- $dbh->selectrow_array( "select usename from pg_user where usename = '" . $RT::DatabaseUser."'" );
- if ( $row[0] ) {
- push @acls, "drop user ${RT::DatabaseUser};",;
- }
-
- push @acls, "create user ${RT::DatabaseUser} with password '${RT::DatabasePassword}' NOCREATEDB NOCREATEUSER;";
- foreach my $table (@tables) {
- push @acls,
- "GRANT SELECT, INSERT, UPDATE, DELETE ON $table to "
- . $RT::DatabaseUser . ";";
-
- }
- return (@acls);
-}
-1;
diff --git a/rt/etc/acl.Sybase b/rt/etc/acl.Sybase
deleted file mode 100644
index 7583c02..0000000
--- a/rt/etc/acl.Sybase
+++ /dev/null
@@ -1,10 +0,0 @@
-
-sub acl {
- my $db_name = RT->Config->Get('DatabaseName');
- my $db_user = RT->Config->Get('DatabaseUser');
- my $db_pass = RT->Config->Get('DatabasePassword');
-
- return ("SP_ADDLOGIN $db_user, $db_pass, $db_name");
-}
-
-1;
diff --git a/rt/etc/acl.mysql b/rt/etc/acl.mysql
deleted file mode 100755
index 0ecaa3b..0000000
--- a/rt/etc/acl.mysql
+++ /dev/null
@@ -1,8 +0,0 @@
-sub acl {
-return (
-"USE mysql;",
-"DELETE FROM user WHERE user = '${RT::DatabaseUser}';",
-"DELETE FROM db where db = '${RT::DatabaseName}';",
-"GRANT SELECT,INSERT,CREATE,INDEX,UPDATE,DELETE ON ${RT::DatabaseName}.* TO ${RT::DatabaseUser}\@${RT::DatabaseRTHost} IDENTIFIED BY '${RT::DatabasePassword}';");
-}
-1;
diff --git a/rt/etc/constraints.mysql b/rt/etc/constraints.mysql
deleted file mode 100644
index 355d2c5..0000000
--- a/rt/etc/constraints.mysql
+++ /dev/null
@@ -1,85 +0,0 @@
-
- ALTER TABLE Links ADD INDEX(LocalBase);
- ALTER TABLE Links ADD FOREIGN KEY (LocalBase) REFERENCES Tickets(id);
- ALTER TABLE Links ADD INDEX(LocalTarget);
- ALTER TABLE Links ADD FOREIGN KEY (LocalTarget) REFERENCES Tickets(id);
- ALTER TABLE Tickets ADD INDEX(Queue);
- ALTER TABLE Tickets ADD FOREIGN KEY (Queue) REFERENCES Queues(id);
- ALTER TABLE Tickets ADD INDEX(EffectiveId);
- ALTER TABLE Tickets ADD FOREIGN KEY (EffectiveId) REFERENCES Tickets(id);
- ALTER TABLE Tickets ADD INDEX(Owner);
- ALTER TABLE Tickets ADD FOREIGN KEY (Owner) REFERENCES Principals(id);
- ALTER TABLE Tickets ADD INDEX(Creator);
- ALTER TABLE Tickets ADD INDEX(LastUpdatedBy);
- ALTER TABLE Tickets ADD FOREIGN KEY (Creator) REFERENCES Users(id);
- ALTER TABLE Tickets ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
- ALTER TABLE Transactions ADD INDEX(Creator);
- ALTER TABLE Transactions ADD INDEX (Ticket) ;
- ALTER TABLE Transactions ADD INDEX (EffectiveTicket) ;
- ALTER TABLE Transactions ADD FOREIGN KEY (Creator) REFERENCES Users(id);
- ALTER TABLE Transactions ADD FOREIGN KEY (Ticket) REFERENCES Tickets(id);
- ALTER TABLE Transactions ADD FOREIGN KEY (EffectiveTicket) REFERENCES Tickets(id);
- ALTER TABLE Attachments ADD INDEX (TransactionId) ;
- ALTER TABLE Attachments ADD INDEX (Parent) ;
- ALTER TABLE Attachments ADD FOREIGN KEY (TransactionId) REFERENCES Transactions(id);
- ALTER TABLE Attachments ADD FOREIGN KEY (Parent) REFERENCES Attachments(id);
- ALTER TABLE Scrips ADD INDEX (ScripCondition) ;
- ALTER TABLE Scrips ADD INDEX (ScripAction) ;
- ALTER TABLE Scrips ADD INDEX (Template) ;
- ALTER TABLE Scrips ADD INDEX (Queue) ;
- ALTER TABLE Scrips ADD INDEX (Creator) ;
- ALTER TABLE Scrips ADD INDEX (LastUpdatedBy) ;
- ALTER TABLE Scrips ADD FOREIGN KEY (ScripCondition) REFERENCES ScripConditions(id);
- ALTER TABLE Scrips ADD FOREIGN KEY (ScripAction) REFERENCES ScripActions(id);
- ALTER TABLE Scrips ADD FOREIGN KEY (Template) REFERENCES Templates(id);
- ALTER TABLE Scrips ADD FOREIGN KEY (Queue) REFERENCES Queues(id);
- ALTER TABLE Scrips ADD FOREIGN KEY (Creator) REFERENCES Users(id);
- ALTER TABLE Scrips ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
- ALTER TABLE ACL ADD INDEX (PrincipalId) ;
- ALTER TABLE ACL ADD INDEX (DelegatedBy) ;
- ALTER TABLE ACL ADD INDEX (DelegatedFrom) ;
- ALTER TABLE ACL ADD FOREIGN KEY (PrincipalId) REFERENCES Principals(id);
- ALTER TABLE ACL ADD FOREIGN KEY (DelegatedBy) REFERENCES Principals(id);
- ALTER TABLE ACL ADD FOREIGN KEY (DelegatedFrom) REFERENCES ACL(id);
- ALTER TABLE GroupMembers ADD INDEX (MemberId);
- ALTER TABLE GroupMembers ADD INDEX (GroupId);
- ALTER TABLE GroupMembers ADD FOREIGN KEY (GroupId) REFERENCES Groups(id);
- ALTER TABLE GroupMembers ADD FOREIGN KEY (MemberId) REFERENCES Principals(id);
- ALTER TABLE CachedGroupMembers ADD INDEX (ImmediateParentId) ;
- ALTER TABLE CachedGroupMembers ADD INDEX (GroupId) ;
- ALTER TABLE CachedGroupMembers ADD INDEX (MemberId) ;
- ALTER TABLE CachedGroupMembers ADD INDEX (Via) ;
- ALTER TABLE CachedGroupMembers ADD FOREIGN KEY (ImmediateParentId) REFERENCES Principals(id);
- ALTER TABLE CachedGroupMembers ADD FOREIGN KEY (GroupId) REFERENCES Principals(id);
- ALTER TABLE CachedGroupMembers ADD FOREIGN KEY (MemberId) REFERENCES Principals(id);
- ALTER TABLE CachedGroupMembers ADD FOREIGN KEY (Via) REFERENCES CachedGroupMembers(id);
- ALTER TABLE ScripActions ADD INDEX(Creator);
- ALTER TABLE ScripActions ADD INDEX(LastUpdatedBy);
- ALTER TABLE ScripActions ADD FOREIGN KEY (Creator) REFERENCES Users(id);
- ALTER TABLE ScripActions ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
- ALTER TABLE Templates ADD INDEX(Queue);
- ALTER TABLE Templates ADD INDEX(Creator);
- ALTER TABLE Templates ADD INDEX(LastUpdatedBy);
- ALTER TABLE Templates ADD FOREIGN KEY (Queue) REFERENCES Queues(id);
- ALTER TABLE Templates ADD FOREIGN KEY (Creator) REFERENCES Users(id);
- ALTER TABLE Templates ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
- ALTER TABLE CustomFields ADD INDEX(Queue);
- ALTER TABLE CustomFields ADD INDEX(Creator);
- ALTER TABLE CustomFields ADD INDEX(LastUpdatedBy);
- ALTER TABLE CustomFields ADD FOREIGN KEY (Queue) REFERENCES Queues(id);
- ALTER TABLE CustomFields ADD FOREIGN KEY (Creator) REFERENCES Users(id);
- ALTER TABLE CustomFields ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
- ALTER TABLE TicketCustomFieldValues ADD INDEX(Ticket);
- ALTER TABLE TicketCustomFieldValues ADD INDEX(CustomField);
- ALTER TABLE TicketCustomFieldValues ADD INDEX(Creator);
- ALTER TABLE TicketCustomFieldValues ADD INDEX(LastUpdatedBy);
- ALTER TABLE TicketCustomFieldValues ADD FOREIGN KEY (Ticket) REFERENCES Tickets(id);
- ALTER TABLE TicketCustomFieldValues ADD FOREIGN KEY (CustomField) REFERENCES CustomFields(id);
- ALTER TABLE TicketCustomFieldValues ADD FOREIGN KEY (Creator) REFERENCES Users(id);
- ALTER TABLE TicketCustomFieldValues ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
- ALTER TABLE CustomFieldValues ADD INDEX(CustomField);
- ALTER TABLE CustomFieldValues ADD INDEX(Creator);
- ALTER TABLE CustomFieldValues ADD INDEX(LastUpdatedBy);
- ALTER TABLE CustomFieldValues ADD FOREIGN KEY (CustomField) REFERENCES CustomFields(id);
- ALTER TABLE CustomFieldValues ADD FOREIGN KEY (Creator) REFERENCES Users(id);
- ALTER TABLE CustomFieldValues ADD FOREIGN KEY (LastUpdatedBy) REFERENCES Users(id);
diff --git a/rt/etc/drop.Informix b/rt/etc/drop.Informix
deleted file mode 100644
index ce7cc01..0000000
--- a/rt/etc/drop.Informix
+++ /dev/null
@@ -1,19 +0,0 @@
-DROP TABLE ACL;
-DROP TABLE ATTACHMENTS;
-DROP TABLE CACHEDGROUPMEMBERS;
-DROP TABLE CUSTOMFIELDS;
-DROP TABLE CUSTOMFIELDVALUES;
-DROP TABLE GROUPMEMBERS;
-DROP TABLE GROUPS;
-DROP TABLE LINKS;
-DROP TABLE PRINCIPALS;
-DROP TABLE QUEUES;
-DROP TABLE SCRIPACTIONS;
-DROP TABLE SCRIPCONDITIONS;
-DROP TABLE SCRIPS;
-DROP TABLE SESSIONS;
-DROP TABLE TEMPLATES;
-DROP TABLE TICKETCUSTOMFIELDVALUES;
-DROP TABLE TICKETS;
-DROP TABLE TRANSACTIONS;
-DROP TABLE USERS;
diff --git a/rt/etc/drop.Oracle b/rt/etc/drop.Oracle
deleted file mode 100644
index 475e984..0000000
--- a/rt/etc/drop.Oracle
+++ /dev/null
@@ -1,41 +0,0 @@
-DROP TABLE ACL;
-DROP TABLE ATTACHMENTS;
-DROP TABLE ATTRIBUTES;
-DROP TABLE CACHEDGROUPMEMBERS;
-DROP TABLE CUSTOMFIELDS;
-DROP TABLE CUSTOMFIELDVALUES;
-DROP TABLE GROUPMEMBERS;
-DROP TABLE GROUPS;
-DROP TABLE LINKS;
-DROP TABLE PRINCIPALS;
-DROP TABLE QUEUES;
-DROP TABLE SCRIPACTIONS;
-DROP TABLE SCRIPCONDITIONS;
-DROP TABLE SCRIPS;
-DROP TABLE SESSIONS;
-DROP TABLE TEMPLATES;
-DROP TABLE OBJECTCUSTOMFIELDS;
-DROP TABLE OBJECTCUSTOMFIELDVALUES;
-DROP TABLE TICKETS;
-DROP TABLE TRANSACTIONS;
-DROP TABLE USERS;
-DROP SEQUENCE ACL_seq;
-DROP SEQUENCE ATTACHMENTS_seq;
-DROP SEQUENCE ATTRIBUTES_seq;
-DROP SEQUENCE CACHEDGROUPMEMBERS_seq;
-DROP SEQUENCE CUSTOMFIELDS_seq;
-DROP SEQUENCE CUSTOMFIELDVALUES_seq;
-DROP SEQUENCE GROUPMEMBERS_seq;
-DROP SEQUENCE GROUPS_seq;
-DROP SEQUENCE LINKS_seq;
-DROP SEQUENCE PRINCIPALS_seq;
-DROP SEQUENCE QUEUES_seq;
-DROP SEQUENCE SCRIPACTIONS_seq;
-DROP SEQUENCE SCRIPCONDITIONS_seq;
-DROP SEQUENCE SCRIPS_seq;
-DROP SEQUENCE TEMPLATES_seq;
-DROP SEQUENCE OBJECTCUSTOMFIELDVALUES_seq;
-DROP SEQUENCE OBJECTCUSTOMFIELDS_seq;
-DROP SEQUENCE TICKETS_seq;
-DROP SEQUENCE TRANSACTIONS_seq;
-DROP SEQUENCE USERS_seq;
diff --git a/rt/etc/initialdata b/rt/etc/initialdata
deleted file mode 100644
index 89db2cc..0000000
--- a/rt/etc/initialdata
+++ /dev/null
@@ -1,604 +0,0 @@
-# Initial data for a fresh RT3 Installation.
-
-@Users = (
- { Name => 'root',
- Gecos => 'root',
- RealName => 'Enoch Root',
- Password => 'password',
- EmailAddress => "root\@localhost",
- Comments => 'SuperUser',
- Privileged => '1',
- },
-);
-
-@Groups = (
-);
-
-@Queues = ({ Name => 'General',
- Description => 'The default queue',
- CorrespondAddress => "",
- CommentAddress => "", },
- { Name => '___Approvals',
- Description => 'A system-internal queue for the approvals system',
- Disabled => 2, } );
-
-@ScripActions = (
-
- { Name => 'Autoreply To Requestors', # loc
- Description =>
-'Always sends a message to the requestors independent of message sender' , # loc
- ExecModule => 'Autoreply',
- Argument => 'Requestor' },
- { Name => 'Notify Requestors', # loc
- Description => 'Sends a message to the requestors', # loc
- ExecModule => 'Notify',
- Argument => 'Requestor' },
- { Name => 'Notify Owner as Comment', # loc
- Description => 'Sends mail to the owner', # loc
- ExecModule => 'NotifyAsComment',
- Argument => 'Owner' },
- { Name => 'Notify Owner', # loc
- Description => 'Sends mail to the owner', # loc
- ExecModule => 'Notify',
- Argument => 'Owner' },
- { Name => 'Notify Ccs as Comment', # loc
- Description => 'Sends mail to the Ccs as a comment', # loc
- ExecModule => 'NotifyAsComment',
- Argument => 'Cc' },
- { Name => 'Notify Ccs', # loc
- Description => 'Sends mail to the Ccs', # loc
- ExecModule => 'Notify',
- Argument => 'Cc' },
- { Name => 'Notify AdminCcs as Comment', # loc
- Description => 'Sends mail to the administrative Ccs as a comment', # loc
- ExecModule => 'NotifyAsComment',
- Argument => 'AdminCc' },
- { Name => 'Notify AdminCcs', # loc
- Description => 'Sends mail to the administrative Ccs', # loc
- ExecModule => 'Notify',
- Argument => 'AdminCc' },
-
- { Name => 'Notify Requestors and Ccs as Comment', # loc
- Description => 'Send mail to requestors and Ccs as a comment', # loc
- ExecModule => 'NotifyAsComment',
- Argument => 'Requestor,Cc' },
-
- { Name => 'Notify Requestors and Ccs', # loc
- Description => 'Send mail to requestors and Ccs', # loc
- ExecModule => 'Notify',
- Argument => 'Requestor,Cc' },
-
- { Name => 'Notify Owner, Requestors, Ccs and AdminCcs as Comment', # loc
- Description => 'Send mail to owner and all watchers as a "comment"', # loc
- ExecModule => 'NotifyAsComment',
- Argument => 'All' },
- { Name => 'Notify Owner, Requestors, Ccs and AdminCcs', # loc
- Description => 'Send mail to owner and all watchers', # loc
- ExecModule => 'Notify',
- Argument => 'All' },
- { Name => 'Notify Other Recipients as Comment', # loc
- Description => 'Sends mail to explicitly listed Ccs and Bccs', # loc
- ExecModule => 'NotifyAsComment',
- Argument => 'OtherRecipients' },
- { Name => 'Notify Other Recipients', # loc
- Description => 'Sends mail to explicitly listed Ccs and Bccs', # loc
- ExecModule => 'Notify',
- Argument => 'OtherRecipients' },
- { Name => 'User Defined', # loc
- Description => 'Perform a user-defined action', # loc
- ExecModule => 'UserDefined', },
- { Name => 'Create Tickets', # loc
- Description =>
- 'Create new tickets based on this scrip\'s template', # loc
- ExecModule => 'CreateTickets', },
- { Name => 'Open Tickets', # loc
- Description => 'Open tickets on correspondence', # loc
- ExecModule => 'AutoOpen' },
- { Name => 'Extract Subject Tag', # loc
- Description => 'Extract tags from a Transaction\'s subject and add them to the Ticket\'s subject.', # loc
- ExecModule => 'ExtractSubjectTag' },
-);
-
-@ScripConditions = (
- { Name => 'On Create', # loc
- Description => 'When a ticket is created', # loc
- ApplicableTransTypes => 'Create',
- ExecModule => 'AnyTransaction', },
-
- { Name => 'On Transaction', # loc
- Description => 'When anything happens', # loc
- ApplicableTransTypes => 'Any',
- ExecModule => 'AnyTransaction', },
- {
-
- Name => 'On Correspond', # loc
- Description => 'Whenever correspondence comes in', # loc
- ApplicableTransTypes => 'Correspond',
- ExecModule => 'AnyTransaction', },
-
- {
-
- Name => 'On Comment', # loc
- Description => 'Whenever comments come in', # loc
- ApplicableTransTypes => 'Comment',
- ExecModule => 'AnyTransaction' },
- {
-
- Name => 'On Status Change', # loc
- Description => 'Whenever a ticket\'s status changes', # loc
- ApplicableTransTypes => 'Status',
- ExecModule => 'AnyTransaction',
-
- },
- {
-
- Name => 'On Priority Change', # loc
- Description => 'Whenever a ticket\'s priority changes', # loc
- ApplicableTransTypes => 'Set',
- ExecModule => 'PriorityChange',
- },
- {
-
- Name => 'On Owner Change', # loc
- Description => 'Whenever a ticket\'s owner changes', # loc
- ApplicableTransTypes => 'Any',
- ExecModule => 'OwnerChange',
-
- },
- {
-
- Name => 'On Queue Change', # loc
- Description => 'Whenever a ticket\'s queue changes', # loc
- ApplicableTransTypes => 'Set',
- ExecModule => 'QueueChange',
-
- },
- { Name => 'On Resolve', # loc
- Description => 'Whenever a ticket is resolved', # loc
- ApplicableTransTypes => 'Status',
- ExecModule => 'StatusChange',
- Argument => 'resolved'
-
- },
- { Name => 'On Reject', # loc
- Description => 'Whenever a ticket is rejected', # loc
- ApplicableTransTypes => 'Status',
- ExecModule => 'StatusChange',
- Argument => 'rejected'
-
- },
- { Name => 'User Defined', # loc
- Description => 'Whenever a user-defined condition occurs', # loc
- ApplicableTransTypes => 'Any',
- ExecModule => 'UserDefined'
-
- },
-
- { Name => 'On Close', # loc
- Description => 'Whenever a ticket is closed', # loc
- ApplicableTransTypes => 'Status,Set',
- ExecModule => 'CloseTicket',
- },
- { Name => 'On Reopen', # loc
- Description => 'Whenever a ticket is reopened', # loc
- ApplicableTransTypes => 'Status,Set',
- ExecModule => 'ReopenTicket',
- },
-
-);
-
-@Templates = (
- { Queue => '0',
- Name => 'Blank', # loc
- Description => 'A blank template', # loc
- Content => '', },
- { Queue => '0',
- Name => 'Autoreply', # loc
- Description => 'Default Autoresponse template', # loc
- Content => 'Subject: AutoReply: {$Ticket->Subject}
-
-
-Greetings,
-
-This message has been automatically generated in response to the
-creation of a trouble ticket regarding:
- "{$Ticket->Subject()}",
-a summary of which appears below.
-
-There is no need to reply to this message right now. Your ticket has been
-assigned an ID of [{$Ticket->QueueObj->SubjectTag || $rtname} #{$Ticket->id()}].
-
-Please include the string:
-
- [{$Ticket->QueueObj->SubjectTag || $rtname} #{$Ticket->id}]
-
-in the subject line of all future correspondence about this issue. To do so,
-you may reply to this message.
-
- Thank you,
- {$Ticket->QueueObj->CorrespondAddress()}
-
--------------------------------------------------------------------------
-{$Transaction->Content()}
-'
- },
-
- { Queue => '0',
- Name => 'Transaction', # loc
- Description => 'Default transaction template', # loc
- Content => 'RT-Attach-Message: yes
-
-
-{$Transaction->CreatedAsString}: Request {$Ticket->id} was acted upon.
- Transaction: {$Transaction->Description}
- Queue: {$Ticket->QueueObj->Name}
- Subject: {$Transaction->Subject || $Ticket->Subject || "(No subject given)"}
- Owner: {$Ticket->OwnerObj->Name}
- Requestors: {$Ticket->RequestorAddresses}
- Status: {$Ticket->Status}
- Ticket <URL: {RT->Config->Get(\'WebURL\')}Ticket/Display.html?id={$Ticket->id} >
-
-
-{$Transaction->Content()}
-'
- },
-
- {
-
- Queue => '0',
- Name => 'Admin Correspondence', # loc
- Description => 'Default admin correspondence template', # loc
- Content => 'RT-Attach-Message: yes
-
-
-<URL: {RT->Config->Get(\'WebURL\')}Ticket/Display.html?id={$Ticket->id} >
-
-{$Transaction->Content()}
-'
- },
-
- { Queue => '0',
- Name => 'Correspondence', # loc
- Description => 'Default correspondence template', # loc
- Content => 'RT-Attach-Message: yes
-
-{$Transaction->Content()}
-'
- },
-
- { Queue => '0',
- Name => 'Admin Comment', # loc
- Description => 'Default admin comment template', # loc
- Content =>
-'Subject: [Comment] {my $s=($Transaction->Subject||$Ticket->Subject); $s =~ s/\\[Comment\\]//g; $s =~ s/^Re//i; $s;}
-RT-Attach-Message: yes
-
-
-{RT->Config->Get(\'WebURL\')}Ticket/Display.html?id={$Ticket->id}
-This is a comment. It is not sent to the Requestor(s):
-
-{$Transaction->Content()}
-'
- },
-
- { Queue => '0',
- Name => 'Status Change', # loc
- Description => 'Ticket status changed', # loc
- Content => 'Subject: Status Changed to: {$Transaction->NewValue}
-
-
-{RT->Config->Get(\'WebURL\')}Ticket/Display.html?id={$Ticket->id}
-
-{$Transaction->Content()}
-'
- },
-
- {
-
- Queue => '0',
- Name => 'Resolved', # loc
- Description => 'Ticket Resolved', # loc
- Content => 'Subject: Resolved: {$Ticket->Subject}
-
-According to our records, your request has been resolved. If you have any
-further questions or concerns, please respond to this message.
-'
- },
- { Queue => '___Approvals',
- Name => "New Pending Approval", # loc
- Description =>
- "Notify Owners and AdminCcs of new items pending their approval", # loc
- Content => 'Subject: New Pending Approval: {$Ticket->Subject}
-
-Greetings,
-
-There is a new item pending your approval: "{$Ticket->Subject()}",
-a summary of which appears below.
-
-Please visit {RT->Config->Get(\'WebURL\')}Approvals/Display.html?id={$Ticket->id}
-to approve or reject this ticket, or {RT->Config->Get(\'WebURL\')}Approvals/ to
-batch-process all your pending approvals.
-
--------------------------------------------------------------------------
-{$Transaction->Content()}
-'
- },
- { Queue => '___Approvals',
- Name => "Approval Passed", # loc
- Description =>
- "Notify Requestor of their ticket has been approved by some approver", # loc
- Content => 'Subject: Ticket Approved: {$Ticket->Subject}
-
-Greetings,
-
-Your ticket has been approved by { eval { $Approval->OwnerObj->Name } }.
-Other approvals may be pending.
-
-Approver\'s notes: { $Notes }
-'
- },
- { Queue => '___Approvals',
- Name => "All Approvals Passed", # loc
- Description =>
- "Notify Requestor of their ticket has been approved by all approvers", # loc
- Content => 'Subject: Ticket Approved: {$Ticket->Subject}
-
-Greetings,
-
-Your ticket has been approved by { eval { $Approval->OwnerObj->Name } }.
-Its Owner may now start to act on it.
-
-Approver\'s notes: { $Notes }
-'
- },
- { Queue => '___Approvals',
- Name => "Approval Rejected", # loc
- Description =>
- "Notify Owner of their rejected ticket", # loc
- Content => 'Subject: Ticket Rejected: {$Ticket->Subject}
-
-Greetings,
-
-Your ticket has been rejected by { eval { $Approval->OwnerObj->Name } }.
-
-Approver\'s notes: { $Notes }
-'
- },
- { Queue => '___Approvals',
- Name => "Approval Ready for Owner", # loc
- Description =>
- "Notify Owner of their ticket has been approved and is ready to be acted on", # loc
- Content => 'Subject: Ticket Approved: {$Ticket->Subject}
-
-Greetings,
-
-The ticket has been approved, you may now start to act on it.
-
-'
- },
- { Queue => 0,
- Name => "Forward", # loc
- Description => "Heading of a forwarded message", # loc
- Content => q{
-This is a forward of transaction #{$Transaction->id} of ticket #{ $Ticket->id }
-}
- },
- { Queue => 0,
- Name => "Forward Ticket", # loc
- Description => "Heading of a forwarded Ticket", # loc
- Content => q{
-
-This is a forward of ticket #{ $Ticket->id }
-}
- },
- { Queue => 0,
- Name => "Error: public key", # loc
- Description =>
- "Inform user that he has problems with public key and couldn't recieve encrypted content", # loc
- Content => q{Subject: We have no your public key or it's wrong
-
-You received this message as we have no your public PGP key or we have a problem with your key. Inform the administrator about the problem.
-}
- },
- { Queue => 0,
- Name => "Error to RT owner: public key", # loc
- Description =>
- "Inform RT owner that user(s) have problems with public keys", # loc
- Content => q{Subject: Some users have problems with public keys
-
-You received this message as RT has problems with public keys of the following user:
-{
- foreach my $e ( @BadRecipients ) {
- $OUT .= "* ". $e->{'Message'} ."\n";
- }
-}}
- },
- { Queue => 0,
- Name => "Error: no private key", # loc
- Description =>
- "Inform user that we received an encrypted email and we have no private keys to decrypt", # loc
- Content => q{Subject: we received message we cannot decrypt
-
-You sent an encrypted message with subject '{ $Message->head->get('Subject') }',
-but we have no private key it's encrypted to.
-
-Please, check that you encrypt messages with correct keys
-or contact the system administrator.}
- },
- { Queue => 0,
- Name => "Error: bad GnuPG data", # loc
- Description =>
- "Inform user that a message he sent has invalid GnuPG data", # loc
- Content => q{Subject: We received a message we cannot handle
-
-You sent us a message that we cannot handle due to corrupted GnuPG signature or encrypted block. we get the following error(s):
-{ foreach my $msg ( @Messages ) {
- $OUT .= "* $msg\n";
- }
-}}
- },
- { Queue => 0,
- Name => "PasswordChange", # loc
- Description =>
- "Inform user that his password has been reset", # loc
- Content => q{Subject: [{RT->Config->Get('rtname')}] Password reset
-
-Greetings,
-
-Someone at {$ENV{'REMOTE_ADDR'}} requested a password reset for you on {RT->Config->Get('WebURL')}
-
-Your new password is:
- {$NewPassword}
-}
- },
-
- { Queue => '0',
- Name => 'Email Digest', # loc
- Description => 'Email template for periodic notification digests', # loc
- Content => q[Subject: RT Email Digest
-
-{ $Argument }
-],
- },
-
-{
- Queue => 0,
- Name => "Error: Missing dashboard", # loc
- Description =>
- "Inform user that a dashboard he subscribed to is missing", # loc
- Content => q{Subject: [{RT->Config->Get('rtname')}] Missing dashboard!
-
-Greetings,
-
-You are subscribed to a dashboard that is currently missing. Most likely, the dashboard was deleted.
-
-RT will remove this subscription as it is no longer useful. Here's the information RT had about your subscription:
-
-DashboardID: { $SubscriptionObj->SubValue('DashboardId') }
-Frequency: { $SubscriptionObj->SubValue('Frequency') }
-Hour: { $SubscriptionObj->SubValue('Hour') }
-{
- $SubscriptionObj->SubValue('Frequency') eq 'weekly'
- ? "Day of week: " . $SubscriptionObj->SubValue('Dow')
- : $SubscriptionObj->SubValue('Frequency') eq 'monthly'
- ? "Day of month: " . $SubscriptionObj->SubValue('Dom')
- : ''
-}
-}
-},
-);
-# }}}
-
-@Scrips = (
- { Description => 'On Correspond Open Tickets',
- ScripCondition => 'On Correspond',
- ScripAction => 'Open Tickets',
- Template => 'Blank' },
- { Description => 'On Owner Change Notify Owner',
- ScripCondition => 'On Owner Change',
- ScripAction => 'Notify Owner',
- Template => 'Transaction' },
- { Description => 'On Create Autoreply To Requestors',
- ScripCondition => 'On Create',
- ScripAction => 'AutoReply To Requestors',
- Template => 'AutoReply' },
- { Description => 'On Create Notify AdminCcs',
- ScripCondition => 'On Create',
- ScripAction => 'Notify AdminCcs',
- Template => 'Transaction' },
- { Description => 'On Correspond Notify AdminCcs',
- ScripCondition => 'On Correspond',
- ScripAction => 'Notify AdminCcs',
- Template => 'Admin Correspondence' },
- { Description => 'On Correspond Notify Requestors and Ccs',
- ScripCondition => 'On Correspond',
- ScripAction => 'Notify Requestors And Ccs',
- Template => 'Correspondence' },
- { Description => 'On Correspond Notify Other Recipients',
- ScripCondition => 'On Correspond',
- ScripAction => 'Notify Other Recipients',
- Template => 'Correspondence' },
- { Description => 'On Comment Notify AdminCcs as Comment',
- ScripCondition => 'On Comment',
- ScripAction => 'Notify AdminCcs As Comment',
- Template => 'Admin Comment' },
- { Description => 'On Comment Notify Other Recipients as Comment',
- ScripCondition => 'On Comment',
- ScripAction => 'Notify Other Recipients As Comment',
- Template => 'Correspondence' },
- { Description => 'On Resolve Notify Requestors',
- ScripCondition => 'On Resolve',
- ScripAction => 'Notify Requestors',
- Template => 'Resolved' },
- { Description => "On transaction, add any tags in the transaction's subject to the ticket's subject",
- ScripCondition => 'On Transaction',
- ScripAction => 'Extract Subject Tag',
- Template => 'Blank' },
-);
-
-@ACL = (
- { UserId => 'root', # - principalid
- Right => 'SuperUser', },
-
- { GroupDomain => 'SystemInternal',
- GroupType => 'privileged',
- Right => 'ShowApprovalsTab', },
-
-);
-
-# Predefined searches
-
-@Attributes = (
- { Name => 'Search - My Tickets',
- Description => '[_1] highest priority tickets I own', # loc
- Content =>
- { Format => q{'<a href="__WebPath__/Ticket/Display.html?id=__id__">__id__</a>/TITLE:#',}
- . q{'<a href="__WebPath__/Ticket/Display.html?id=__id__">__Subject__</a>/TITLE:Subject',}
- . q{Priority, QueueName, ExtendedStatus},
- Query => " Owner = '__CurrentUser__' AND ( Status = 'new' OR Status = 'open')",
- OrderBy => 'Priority',
- Order => 'DESC'
- },
- },
- { Name => 'Search - Unowned Tickets',
- Description => '[_1] newest unowned tickets', # loc
- Content =>
-# 'Take' #loc
- { Format => q{'<a href="__WebPath__/Ticket/Display.html?id=__id__">__id__</a>/TITLE:#',}
- . q{'<a href="__WebPath__/Ticket/Display.html?id=__id__">__Subject__</a>/TITLE:Subject',}
- . q{QueueName, ExtendedStatus, CreatedRelative, }
- . q{'<A HREF="__WebPath__/Ticket/Display.html?Action=Take&id=__id__">__loc(Take)__</a>/TITLE:NBSP'},
- Query => " Owner = 'Nobody' AND ( Status = 'new' OR Status = 'open')",
- OrderBy => 'Created',
- Order => 'DESC'
- },
- },
- { Name => 'Search - Bookmarked Tickets',
- Description => 'Bookmarked Tickets', #loc
- Content =>
- { Format => q{'<a href="__WebPath__/Ticket/Display.html?id=__id__">__id__</a>/TITLE:#',}
- . q{'<a href="__WebPath__/Ticket/Display.html?id=__id__">__Subject__</a>/TITLE:Subject',}
- . q{Priority, QueueName, ExtendedStatus, Bookmark},
- Query => "id = '__Bookmarked__'",
- OrderBy => 'LastUpdated',
- Order => 'DESC' },
- },
- { Name => 'HomepageSettings',
- Description => 'HomepageSettings',
- Content =>
- { 'body' => # loc
- [ { type => 'system', name => 'My Tickets' },
- { type => 'system', name => 'Unowned Tickets' },
- { type => 'system', name => 'Bookmarked Tickets' },
- { type => 'component', name => 'QuickCreate' },
- ],
- 'summary' => # loc
- [
- { type => 'component', name => 'MyReminders' },
- { type => 'component', name => 'Quicksearch' },
- { type => 'component', name => 'Dashboards' },
- { type => 'component', name => 'RefreshHomepage' },
- ],
- },
- },
-);
diff --git a/rt/etc/schema.Informix b/rt/etc/schema.Informix
deleted file mode 100644
index 6a4e533..0000000
--- a/rt/etc/schema.Informix
+++ /dev/null
@@ -1,364 +0,0 @@
--- This schema was adopted from the oracle schema by
--- Andre Koppel.
--- Version 0.2 Date 2003.10.21
--- The work is still in progress
-
-CREATE TABLE Attachments (
- id SERIAL,
- TransactionId INTEGER NOT NULL,
- Parent INTEGER DEFAULT 0 NOT NULL,
- MessageId VARCHAR(160),
- Subject VARCHAR(255),
- Filename VARCHAR(255),
- ContentType VARCHAR(80),
- ContentEncoding VARCHAR(80),
- Content BYTE,
- Headers BYTE,
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- PRIMARY KEY (id)
-);
-CREATE INDEX Attachments1 ON Attachments (Parent);
-CREATE INDEX Attachments2 ON Attachments (TransactionId);
-CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId);
-
-
-CREATE TABLE Queues (
- id SERIAL,
- Name VARCHAR(200) DEFAULT '' NOT NULL,
- Description VARCHAR(255) DEFAULT NULL,
- CorrespondAddress VARCHAR(120) DEFAULT NULL,
- CommentAddress VARCHAR(120) DEFAULT NULL,
- InitialPriority INTEGER DEFAULT 0 NOT NULL,
- FinalPriority INTEGER DEFAULT 0 NOT NULL,
- DefaultDueIn INTEGER DEFAULT 0 NOT NULL,
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
- LastUpdated DATETIME YEAR TO SECOND,
- Disabled INTEGER DEFAULT 0 NOT NULL,
- PRIMARY KEY (id)
-);
-CREATE UNIQUE INDEX Queues1 ON Queues (Name);
-CREATE INDEX Queues2 ON Queues (Disabled);
-
-
-CREATE TABLE Links (
- id SERIAL,
- Base VARCHAR(240) DEFAULT NULL,
- Target VARCHAR(240) DEFAULT NULL,
- Type VARCHAR(20) DEFAULT '' NOT NULL,
- LocalTarget INTEGER DEFAULT 0 NOT NULL,
- LocalBase INTEGER DEFAULT 0 NOT NULL,
- LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
- LastUpdated DATETIME YEAR TO SECOND,
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- PRIMARY KEY (id)
-);
--- CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type);
-CREATE INDEX Links2 ON Links (Base, Type);
-CREATE INDEX Links3 ON Links (Target, Type);
-CREATE INDEX Links4 ON Links(Type,LocalBase);
-
-
-CREATE TABLE Principals (
- id SERIAL,
- PrincipalType VARCHAR(16) DEFAULT '' NOT NULL,
- ObjectId INTEGER DEFAULT 0,
- Disabled INTEGER DEFAULT 0 NOT NULL,
- PRIMARY KEY (id)
-);
-CREATE INDEX Principals2 ON Principals (ObjectId);
-
-
-CREATE TABLE Groups (
- id SERIAL,
- Name VARCHAR(200) DEFAULT NULL,
- Description VARCHAR(255) DEFAULT NULL,
- Domain VARCHAR(64) DEFAULT '',
- Type VARCHAR(64) DEFAULT '',
- Instance INTEGER DEFAULT 0 NOT NULL,
--- Instance VARCHAR(64) DEFAULT '' NOT NULL,
- PRIMARY KEY (id)
-);
-CREATE INDEX Groups1 ON Groups (Domain, Instance, Type, id);
-CREATE INDEX Groups2 ON Groups (Type, Instance, Domain);
-
-
-CREATE TABLE ScripConditions (
- id SERIAL,
- Name VARCHAR(200),
- Description VARCHAR(255),
- ExecModule VARCHAR(60),
- Argument VARCHAR(255),
- ApplicableTransTypes VARCHAR(60),
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
- LastUpdated DATETIME YEAR TO SECOND,
- PRIMARY KEY (id)
-);
-
-
-CREATE TABLE Transactions (
- id SERIAL,
- ObjectType VARCHAR(255),
- ObjectId INTEGER DEFAULT 0 NOT NULL,
- TimeTaken INTEGER DEFAULT 0 NOT NULL,
- Type VARCHAR(20),
- Field VARCHAR(40),
- OldValue VARCHAR(255),
- NewValue VARCHAR(255),
- ReferenceType VARCHAR(255),
- OldReference INTEGER DEFAULT 0,
- NewReference INTEGER DEFAULT 0,
- Data VARCHAR(255),
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- PRIMARY KEY (id)
-);
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
-
-
-CREATE TABLE Scrips (
- id SERIAL,
- Description VARCHAR(255) DEFAULT '',
- ScripCondition INTEGER DEFAULT 0 NOT NULL,
- ScripAction INTEGER DEFAULT 0 NOT NULL,
- ConditionRules BYTE,
- ActionRules BYTE,
- CustomIsApplicableCode BYTE,
- CustomPrepareCode BYTE,
- CustomCommitCode BYTE,
- Stage VARCHAR(32),
- Queue INTEGER DEFAULT 0 NOT NULL,
- Template INTEGER DEFAULT 0 NOT NULL,
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
- LastUpdated DATETIME YEAR TO SECOND,
- PRIMARY KEY (id)
-);
-
-
-CREATE TABLE ACL (
- id SERIAL,
- PrincipalType VARCHAR(25) NOT NULL,
- PrincipalId INTEGER NOT NULL,
- RightName VARCHAR(25) NOT NULL,
- ObjectType VARCHAR(25) NOT NULL,
- ObjectId INTEGER DEFAULT 0 NOT NULL,
- DelegatedBy INTEGER DEFAULT 0 NOT NULL,
- DelegatedFrom INTEGER DEFAULT 0 NOT NULL,
- PRIMARY KEY (id)
-);
-CREATE INDEX ACL1 ON ACL(RightName, ObjectType, ObjectId, PrincipalType, PrincipalId);
-
-
-CREATE TABLE GroupMembers (
- id SERIAL,
- GroupId INTEGER DEFAULT 0 NOT NULL,
- MemberId INTEGER DEFAULT 0 NOT NULL,
- PRIMARY KEY (id)
-);
-CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers (GroupId, MemberId);
-
-
-CREATE TABLE CachedGroupMembers (
- id SERIAL,
- GroupId INTEGER DEFAULT 0,
- MemberId INTEGER DEFAULT 0,
- Via INTEGER DEFAULT 0,
- ImmediateParentId INTEGER DEFAULT 0,
- Disabled INTEGER DEFAULT 0 NOT NULL,
- PRIMARY KEY (id)
-);
-CREATE INDEX DisGrouMem ON CachedGroupMembers (GroupId, MemberId, Disabled);
-CREATE INDEX GrouMem ON CachedGroupMembers (GroupId, MemberId);
-
-
-CREATE TABLE Users (
- id SERIAL,
- Name VARCHAR(200) NOT NULL,
- Password VARCHAR(40),
- Comments BYTE,
- Signature BYTE,
- EmailAddress VARCHAR(120),
- FreeFormContactInfo BYTE,
- Organization VARCHAR(200),
- RealName VARCHAR(120),
- NickName VARCHAR(16),
- Lang VARCHAR(16),
- EmailEncoding VARCHAR(16),
- WebEncoding VARCHAR(16),
- ExternalContactInfoId VARCHAR(100),
- ContactInfoSystem VARCHAR(30),
- ExternalAuthId VARCHAR(100),
- AuthSystem VARCHAR(30),
- Gecos VARCHAR(16),
- HomePhone VARCHAR(30),
- WorkPhone VARCHAR(30),
- MobilePhone VARCHAR(30),
- PagerPhone VARCHAR(30),
- Address1 VARCHAR(200),
- Address2 VARCHAR(200),
- City VARCHAR(100),
- State VARCHAR(100),
- Zip VARCHAR(16),
- Country VARCHAR(50),
- Timezone VARCHAR(50),
- PGPKey BYTE,
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
- LastUpdated DATETIME YEAR TO SECOND,
- PRIMARY KEY (id)
-);
--- CREATE UNIQUE INDEX Users1 ON Users (Name);
-CREATE INDEX Users2 ON Users (Name);
-CREATE INDEX Users3 ON Users (id, EmailAddress);
-CREATE INDEX Users4 ON Users (EmailAddress);
-
-
-CREATE TABLE Tickets (
- id SERIAL,
- EffectiveId INTEGER DEFAULT 0 NOT NULL,
- Queue INTEGER DEFAULT 0 NOT NULL,
- Type VARCHAR(16),
- IssueStatement INTEGER DEFAULT 0 NOT NULL,
- Resolution INTEGER DEFAULT 0 NOT NULL,
- Owner INTEGER DEFAULT 0 NOT NULL,
- Subject VARCHAR(200) DEFAULT '[no subject]',
- InitialPriority INTEGER DEFAULT 0 NOT NULL,
- FinalPriority INTEGER DEFAULT 0 NOT NULL,
- Priority INTEGER DEFAULT 0 NOT NULL,
- TimeEstimated INTEGER DEFAULT 0 NOT NULL,
- TimeWorked INTEGER DEFAULT 0 NOT NULL,
- Status VARCHAR(10),
- TimeLeft INTEGER DEFAULT 0 NOT NULL,
- Told DATETIME YEAR TO SECOND,
- Starts DATETIME YEAR TO SECOND,
- Started DATETIME YEAR TO SECOND,
- Due DATETIME YEAR TO SECOND,
- Resolved DATETIME YEAR TO SECOND,
- LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
- LastUpdated DATETIME YEAR TO SECOND,
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- Disabled INTEGER DEFAULT 0 NOT NULL,
- PRIMARY KEY (id)
-);
-CREATE INDEX Tickets1 ON Tickets (Queue, Status);
-CREATE INDEX Tickets2 ON Tickets (Owner);
-CREATE INDEX Tickets3 ON Tickets (EffectiveId);
-CREATE INDEX Tickets4 ON Tickets (id, Status);
-CREATE INDEX Tickets5 ON Tickets (id, EffectiveId);
-CREATE INDEX Tickets6 ON Tickets (EffectiveId, Type);
-
-
-CREATE TABLE ScripActions (
- id SERIAL,
- Name VARCHAR(200),
- Description VARCHAR(255),
- ExecModule VARCHAR(60),
- Argument VARCHAR(255),
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
- LastUpdated DATETIME YEAR TO SECOND,
- PRIMARY KEY (id)
-);
-
-
-CREATE TABLE Templates (
- id SERIAL,
- Queue INTEGER DEFAULT 0 NOT NULL,
- Name VARCHAR(200) NOT NULL,
- Description VARCHAR(255),
- Type VARCHAR(16),
- Language VARCHAR(16),
- TranslationOf INTEGER DEFAULT 0 NOT NULL,
- Content BYTE,
- LastUpdated DATETIME YEAR TO SECOND,
- LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- PRIMARY KEY (id)
-);
-
-
-CREATE TABLE TicketCustomFieldValues (
- id SERIAL,
- Ticket INTEGER NOT NULL,
- CustomField INTEGER NOT NULL,
- Content VARCHAR(255),
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
- LastUpdated DATETIME YEAR TO SECOND,
- PRIMARY KEY (id)
-);
-
-CREATE INDEX TicketCustomFieldValues1 ON TicketCustomFieldValues (CustomField,Ticket,Content);
-CREATE INDEX TicketCustomFieldValues2 ON TicketCustomFieldValues (CustomField,Ticket);
-
-CREATE TABLE CustomFields (
- id SERIAL,
- Name VARCHAR(200),
- Type VARCHAR(200),
- MaxValues INTEGER DEFAULT 0 NOT NULL,
- Pattern VARCHAR(255),
- LookupType VARCHAR(255),
- Description VARCHAR(255),
- SortOrder INTEGER DEFAULT 0 NOT NULL,
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
- LastUpdated DATETIME YEAR TO SECOND,
- Disabled SMALLINT DEFAULT 0 NOT NULL,
- PRIMARY KEY (id)
-);
-
-
-CREATE TABLE CustomFieldValues (
- id SERIAL,
- CustomField INTEGER NOT NULL,
- Name VARCHAR(200),
- Description VARCHAR(255),
- SortOrder INTEGER DEFAULT 0 NOT NULL,
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
- LastUpdated DATETIME YEAR TO SECOND,
- PRIMARY KEY (id)
-);
-
-CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
-
-CREATE TABLE Attributes (
- id SERIAL,
- Name VARCHAR(255) DEFAULT '' NOT NULL,
- Description VARCHAR(255) DEFAULT NULL,
- Content BYTE,
- ContentType VARCHAR(16),
- ObjectType VARCHAR(25) NOT NULL,
- ObjectId INTEGER DEFAULT 0 NOT NULL,
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
- LastUpdated DATETIME YEAR TO SECOND,
- PRIMARY KEY (id)
-);
-
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
-
-
-CREATE TABLE sessions (
- id VARCHAR(32) NOT NULL,
- a_session BYTE,
- LastUpdated DATETIME YEAR TO SECOND,
- PRIMARY KEY (id)
-);
-
diff --git a/rt/etc/schema.Pg b/rt/etc/schema.Pg
deleted file mode 100755
index e3006d0..0000000
--- a/rt/etc/schema.Pg
+++ /dev/null
@@ -1,638 +0,0 @@
-------------------------------------------------------------------
--- My2Pg 1.23 translated dump
---
-------------------------------------------------------------------
-
-
-
---
--- Sequences for table ATTACHMENTS
---
-
-CREATE SEQUENCE attachments_id_seq;
-
--- {{{ Attachments
-
-CREATE TABLE Attachments (
- id INTEGER DEFAULT nextval('attachments_id_seq'),
- TransactionId integer NOT NULL ,
- Parent integer NOT NULL DEFAULT 0 ,
- MessageId varchar(160) NULL ,
- Subject varchar(255) NULL ,
- Filename varchar(255) NULL ,
- ContentType varchar(80) NULL ,
- ContentEncoding varchar(80) NULL ,
- Content text NULL ,
- Headers text NULL ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- PRIMARY KEY (id)
-
-);
-
-CREATE INDEX Attachments1 ON Attachments (Parent) ;
-CREATE INDEX Attachments2 ON Attachments (TransactionId) ;
-CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId) ;
--- }}}
-
--- {{{ Queues
-
-
---
--- Sequences for table QUEUES
---
-
-CREATE SEQUENCE queues_id_seq;
-
-CREATE TABLE Queues (
- id INTEGER DEFAULT nextval('queues_id_seq'),
- Name varchar(200) NOT NULL ,
- Description varchar(255) NULL ,
- CorrespondAddress varchar(120) NULL ,
- CommentAddress varchar(120) NULL ,
- InitialPriority integer NOT NULL DEFAULT 0 ,
- FinalPriority integer NOT NULL DEFAULT 0 ,
- DefaultDueIn integer NOT NULL DEFAULT 0 ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- Disabled integer NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-
-);
-CREATE UNIQUE INDEX Queues1 ON Queues (Name) ;
-
--- }}}
-
--- {{{ Links
-
-
-
---
--- Sequences for table LINKS
---
-
-CREATE SEQUENCE links_id_seq;
-
-CREATE TABLE Links (
- id INTEGER DEFAULT nextval('links_id_seq'),
- Base varchar(240) NULL ,
- Target varchar(240) NULL ,
- Type varchar(20) NOT NULL ,
- LocalTarget integer NOT NULL DEFAULT 0 ,
- LocalBase integer NOT NULL DEFAULT 0 ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- PRIMARY KEY (id)
-
-);
-CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type) ;
-CREATE INDEX Links4 ON Links(Type,LocalBase);
-
--- }}}
-
--- {{{ Principals
-
-
-
---
--- Sequences for table PRINCIPALS
---
-
-CREATE SEQUENCE principals_id_seq;
-
-CREATE TABLE Principals (
- id INTEGER DEFAULT nextval('principals_id_seq') not null,
- PrincipalType VARCHAR(16) not null,
- ObjectId integer,
- Disabled integer NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-
-);
-
-CREATE INDEX Principals2 ON Principals (ObjectId);
-
-
--- }}}
-
--- {{{ Groups
-
-
-
---
--- Sequences for table GROUPS
---
-
-CREATE SEQUENCE groups_id_seq;
-
-CREATE TABLE Groups (
- id INTEGER DEFAULT nextval('groups_id_seq'),
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- Domain varchar(64),
- Type varchar(64),
- Instance integer,
- PRIMARY KEY (id)
-
-);
-CREATE UNIQUE INDEX Groups1 ON Groups (Domain,Instance,Type,id, Name);
-CREATE INDEX Groups2 On Groups (Type, Instance, Domain);
-
-
--- }}}
-
--- {{{ ScripConditions
-
-
-
---
--- Sequences for table SCRIPCONDITIONS
---
-
-CREATE SEQUENCE scripconditions_id_seq;
-
-CREATE TABLE ScripConditions (
- id INTEGER DEFAULT nextval('scripconditions_id_seq'),
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- ExecModule varchar(60) NULL ,
- Argument varchar(255) NULL ,
- ApplicableTransTypes varchar(60) NULL ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- PRIMARY KEY (id)
-
-);
-
--- }}}
-
--- {{{ Transactions
-
-
---
--- Sequences for table TRANSACTIONS
---
-
-CREATE SEQUENCE transactions_id_seq;
-
-CREATE TABLE Transactions (
- id INTEGER DEFAULT nextval('transactions_id_seq'),
- ObjectType varchar(255) NOT NULL ,
- ObjectId integer NOT NULL DEFAULT 0 ,
- TimeTaken integer NOT NULL DEFAULT 0 ,
- Type varchar(20) NULL ,
- Field varchar(40) NULL ,
- OldValue varchar(255) NULL ,
- NewValue varchar(255) NULL ,
- ReferenceType varchar(255) NULL,
- OldReference integer NULL ,
- NewReference integer NULL ,
- Data varchar(255) NULL ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- PRIMARY KEY (id)
-
-);
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
-
--- }}}
-
--- {{{ Scrips
-
-
-
---
--- Sequences for table SCRIPS
---
-
-CREATE SEQUENCE scrips_id_seq;
-
-CREATE TABLE Scrips (
- id INTEGER DEFAULT nextval('scrips_id_seq'),
- Description varchar(255),
- ScripCondition integer NOT NULL DEFAULT 0 ,
- ScripAction integer NOT NULL DEFAULT 0 ,
- ConditionRules text NULL ,
- ActionRules text NULL ,
- CustomIsApplicableCode text NULL ,
- CustomPrepareCode text NULL ,
- CustomCommitCode text NULL ,
- Stage varchar(32) NULL ,
- Queue integer NOT NULL DEFAULT 0 ,
- Template integer NOT NULL DEFAULT 0 ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- PRIMARY KEY (id)
-
-);
-
--- }}}
-
--- {{{ ACL
-
-
---
--- Sequences for table ACL
---
-
-CREATE SEQUENCE acl_id_seq;
-
-CREATE TABLE ACL (
- id INTEGER DEFAULT nextval('acl_id_seq'),
- PrincipalType varchar(25) NOT NULL,
-
- PrincipalId integer NOT NULL ,
- RightName varchar(25) NOT NULL ,
- ObjectType varchar(25) NOT NULL ,
- ObjectId integer NOT NULL DEFAULT 0,
- DelegatedBy integer NOT NULL DEFAULT 0,
- DelegatedFrom integer NOT NULL DEFAULT 0,
- PRIMARY KEY (id)
-
-);
-
-CREATE INDEX ACL1 on ACL(RightName, ObjectType, ObjectId,PrincipalType,PrincipalId);
-
-
--- }}}
-
--- {{{ GroupMembers
-
-
-
---
--- Sequences for table GROUPMEMBERS
---
-
-CREATE SEQUENCE groupmembers_id_seq;
-
-CREATE TABLE GroupMembers (
- id INTEGER DEFAULT nextval('groupmembers_id_seq'),
- GroupId integer NOT NULL DEFAULT 0,
- MemberId integer NOT NULL DEFAULT 0,
- PRIMARY KEY (id)
-
-);
-
-CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers(GroupId, MemberId);
-
--- }}}
-
--- {{{ GroupMembersCache
-
-
-
---
--- Sequences for table CACHEDGROUPMEMBERS
---
-
-CREATE SEQUENCE cachedgroupmembers_id_seq;
-
-CREATE TABLE CachedGroupMembers (
- id int DEFAULT nextval('cachedgroupmembers_id_seq'),
- GroupId int,
- MemberId int,
- Via int,
- ImmediateParentId int,
- Disabled integer NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-
-);
-
-CREATE INDEX CachedGroupMembers2 on CachedGroupMembers (MemberId);
-CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (GroupId);
-CREATE INDEX DisGrouMem on CachedGroupMembers (GroupId,MemberId,Disabled);
-
--- }}}
-
--- {{{ Users
-
-
-
---
--- Sequences for table USERS
---
-
-CREATE SEQUENCE users_id_seq;
-
-CREATE TABLE Users (
- id INTEGER DEFAULT nextval('users_id_seq'),
- Name varchar(200) NOT NULL ,
- Password varchar(40) NULL ,
- Comments text NULL ,
- Signature text NULL ,
- EmailAddress varchar(120) NULL ,
- FreeformContactInfo text NULL ,
- Organization varchar(200) NULL ,
- RealName varchar(120) NULL ,
- NickName varchar(16) NULL ,
- Lang varchar(16) NULL ,
- EmailEncoding varchar(16) NULL ,
- WebEncoding varchar(16) NULL ,
- ExternalContactInfoId varchar(100) NULL ,
- ContactInfoSystem varchar(30) NULL ,
- ExternalAuthId varchar(100) NULL ,
- AuthSystem varchar(30) NULL ,
- Gecos varchar(16) NULL ,
- HomePhone varchar(30) NULL ,
- WorkPhone varchar(30) NULL ,
- MobilePhone varchar(30) NULL ,
- PagerPhone varchar(30) NULL ,
- Address1 varchar(200) NULL ,
- Address2 varchar(200) NULL ,
- City varchar(100) NULL ,
- State varchar(100) NULL ,
- Zip varchar(16) NULL ,
- Country varchar(50) NULL ,
- Timezone varchar(50) NULL ,
- PGPKey text NULL,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- PRIMARY KEY (id)
-
-);
-
-
-CREATE UNIQUE INDEX Users1 ON Users (Name) ;
-CREATE INDEX Users3 ON Users (id, EmailAddress);
-CREATE INDEX Users4 ON Users (EmailAddress);
-
-
--- }}}
-
--- {{{ Tickets
-
-
-
---
--- Sequences for table TICKETS
---
-
-CREATE SEQUENCE tickets_id_seq;
-
-CREATE TABLE Tickets (
- id INTEGER DEFAULT nextval('tickets_id_seq'),
- EffectiveId integer NOT NULL DEFAULT 0 ,
- Queue integer NOT NULL DEFAULT 0 ,
- Type varchar(16) NULL ,
- IssueStatement integer NOT NULL DEFAULT 0 ,
- Resolution integer NOT NULL DEFAULT 0 ,
- Owner integer NOT NULL DEFAULT 0 ,
- Subject varchar(200) NULL DEFAULT '[no subject]' ,
- InitialPriority integer NOT NULL DEFAULT 0 ,
- FinalPriority integer NOT NULL DEFAULT 0 ,
- Priority integer NOT NULL DEFAULT 0 ,
- TimeEstimated integer NOT NULL DEFAULT 0 ,
- TimeWorked integer NOT NULL DEFAULT 0 ,
- Status varchar(10) NULL ,
- TimeLeft integer NOT NULL DEFAULT 0 ,
- Told TIMESTAMP NULL ,
- Starts TIMESTAMP NULL ,
- Started TIMESTAMP NULL ,
- Due TIMESTAMP NULL ,
- Resolved TIMESTAMP NULL ,
-
-
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- Disabled integer NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-
-);
-
-CREATE INDEX Tickets1 ON Tickets (Queue, Status) ;
-CREATE INDEX Tickets2 ON Tickets (Owner) ;
-CREATE INDEX Tickets3 ON Tickets (EffectiveId) ;
-CREATE INDEX Tickets4 ON Tickets (id, Status) ;
-CREATE INDEX Tickets5 ON Tickets (id, EffectiveId) ;
-
--- }}}
-
--- {{{ ScripActions
-
-
-
---
--- Sequences for table SCRIPACTIONS
---
-
-CREATE SEQUENCE scripactions_id_seq;
-
-CREATE TABLE ScripActions (
- id INTEGER DEFAULT nextval('scripactions_id_seq'),
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- ExecModule varchar(60) NULL ,
- Argument varchar(255) NULL ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- PRIMARY KEY (id)
-
-);
-
--- }}}
-
--- {{{ Templates
-
-
-
---
--- Sequences for table TEMPLATES
---
-
-CREATE SEQUENCE templates_id_seq;
-
-CREATE TABLE Templates (
- id INTEGER DEFAULT nextval('templates_id_seq'),
- Queue integer NOT NULL DEFAULT 0 ,
- Name varchar(200) NOT NULL ,
- Description varchar(255) NULL ,
- Type varchar(16) NULL ,
- Language varchar(16) NULL ,
- TranslationOf integer NOT NULL DEFAULT 0 ,
- Content text NULL ,
- LastUpdated TIMESTAMP NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- PRIMARY KEY (id)
-
-);
-
--- }}}
-
--- {{{ ObjectCustomFieldValues
-
-
-
---
--- Sequences for table TICKETCUSTOMFIELDVALUES
---
-
-CREATE SEQUENCE objectcustomfieldvalues_id_s;
-
-CREATE TABLE ObjectCustomFieldValues (
- id INTEGER DEFAULT nextval('objectcustomfieldvalues_id_s'),
- CustomField int NOT NULL ,
- ObjectType varchar(255) NULL ,
- ObjectId int NOT NULL ,
- SortOrder integer NOT NULL DEFAULT 0 ,
-
- Content varchar(255) NULL ,
- LargeContent text NULL,
- ContentType varchar(80) NULL,
- ContentEncoding varchar(80) NULL ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- Disabled integer NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-
-);
-
-CREATE INDEX ObjectCustomFieldValues1 ON ObjectCustomFieldValues (CustomField,ObjectType,ObjectId,Content);
-CREATE INDEX ObjectCustomFieldValues2 ON ObjectCustomFieldValues (CustomField,ObjectType,ObjectId);
-
--- }}}
-
--- {{{ CustomFields
-
-
-
---
--- Sequences for table CUSTOMFIELDS
---
-
-CREATE SEQUENCE customfields_id_seq;
-
-CREATE TABLE CustomFields (
- id INTEGER DEFAULT nextval('customfields_id_seq'),
- Name varchar(200) NULL ,
- Type varchar(200) NULL ,
- MaxValues integer NOT NULL DEFAULT 0 ,
- Repeated integer NOT NULL DEFAULT 0 ,
- Pattern varchar(65536) NULL ,
- LookupType varchar(255) NOT NULL ,
- Description varchar(255) NULL ,
- SortOrder integer NOT NULL DEFAULT 0 ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- Disabled integer NOT NULL DEFAULT 0 ,
- Required integer NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-
-);
-
--- }}}
-
--- {{{ ObjectCustomFields
-
-CREATE SEQUENCE objectcustomfields_id_s;
-
-CREATE TABLE ObjectCustomFields (
- id INTEGER DEFAULT nextval('objectcustomfields_id_s'),
- CustomField integer NOT NULL,
- ObjectId integer NOT NULL,
- SortOrder integer NOT NULL DEFAULT 0 ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- PRIMARY KEY (id)
-
-);
-
--- }}}
-
--- {{{ CustomFieldValues
-
-
-
---
--- Sequences for table CUSTOMFIELDVALUES
---
-
-CREATE SEQUENCE customfieldvalues_id_seq;
-
-CREATE TABLE CustomFieldValues (
- id INTEGER DEFAULT nextval('customfieldvalues_id_seq'),
- CustomField int NOT NULL ,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- SortOrder integer NOT NULL DEFAULT 0 ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- PRIMARY KEY (id)
-
-);
-
-CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
-
--- }}}
-
-
--- {{{ Attributes
-
-CREATE SEQUENCE attributes_id_seq;
-
-CREATE TABLE Attributes (
- id INTEGER DEFAULT nextval('attributes_id_seq'),
- Name varchar(255) NOT NULL ,
- Description varchar(255) NULL ,
- Content text,
- ContentType varchar(16),
- ObjectType varchar(64),
- ObjectId integer,
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- PRIMARY KEY (id)
-
-);
-
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
-
--- }}}
-
--- {{{ Sessions
-
--- sessions is used by Apache::Session to keep sessions in the database.
--- We should have a reaper script somewhere.
-
-CREATE TABLE sessions (
- id char(32) NOT NULL,
- a_session bytea,
- LastUpdated TIMESTAMP not null default current_timestamp,
- PRIMARY KEY (id)
-
-);
-
--- }}}
-
diff --git a/rt/etc/schema.SQLite b/rt/etc/schema.SQLite
deleted file mode 100644
index ce75ccc..0000000
--- a/rt/etc/schema.SQLite
+++ /dev/null
@@ -1,442 +0,0 @@
---- {{{ Attachments
-
-CREATE TABLE Attachments (
- id INTEGER PRIMARY KEY ,
- TransactionId INTEGER ,
- Parent integer NULL ,
- MessageId varchar(160) NULL ,
- Subject varchar(255) NULL ,
- Filename varchar(255) NULL ,
- ContentType varchar(80) NULL ,
- ContentEncoding varchar(80) NULL ,
- Content LONGTEXT NULL ,
- Headers LONGTEXT NULL ,
- Creator integer NULL ,
- Created DATETIME NULL
-
-) ;
-
-CREATE INDEX Attachments1 ON Attachments (Parent) ;
-CREATE INDEX Attachments2 ON Attachments (TransactionId) ;
-CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId) ;
---- }}}
-
---- {{{ Queues
-CREATE TABLE Queues (
- id INTEGER PRIMARY KEY ,
- Name varchar(200) NOT NULL ,
- Description varchar(255) NULL ,
- CorrespondAddress varchar(120) NULL ,
- CommentAddress varchar(120) NULL ,
- InitialPriority integer NULL ,
- FinalPriority integer NULL ,
- DefaultDueIn integer NULL ,
- Creator integer NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NULL ,
- LastUpdated DATETIME NULL ,
- Disabled int2 NOT NULL DEFAULT 0
-
-) ;
-CREATE UNIQUE INDEX Queues1 ON Queues (Name) ;
-
---- }}}
-
---- {{{ Links
-
-CREATE TABLE Links (
- id INTEGER PRIMARY KEY ,
- Base varchar(240) NULL ,
- Target varchar(240) NULL ,
- Type varchar(20) NOT NULL ,
- LocalTarget integer NULL ,
- LocalBase integer NULL ,
- LastUpdatedBy integer NULL ,
- LastUpdated DATETIME NULL ,
- Creator integer NULL ,
- Created DATETIME NULL
-
-) ;
-CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type) ;
-CREATE INDEX Links4 ON Links(Type,LocalBase);
-
---- }}}
-
---- {{{ Principals
-
-CREATE TABLE Principals (
- id INTEGER PRIMARY KEY,
- PrincipalType VARCHAR(16) not null,
- ObjectId integer,
- Disabled int2 NOT NULL DEFAULT 0
-
-) ;
-
---- }}}
-
---- {{{ Groups
-
-CREATE TABLE Groups (
- id INTEGER ,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- Domain varchar(64),
- Type varchar(64),
- Instance integer
-
-) ;
-
-CREATE UNIQUE INDEX Groups1 ON Groups (Name,Domain,Type,Instance) ;
-
---- }}}
-
---- {{{ ScripConditions
-
-CREATE TABLE ScripConditions (
- id INTEGER PRIMARY KEY ,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- ExecModule varchar(60) NULL ,
- Argument varchar(255) NULL ,
- ApplicableTransTypes varchar(60) NULL ,
-
- Creator integer NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NULL ,
- LastUpdated DATETIME NULL
-
-) ;
-
---- }}}
-
---- {{{ Transactions
-CREATE TABLE Transactions (
- id INTEGER PRIMARY KEY ,
- ObjectType varchar(255) NULL ,
- ObjectId integer NULL ,
- TimeTaken integer NULL ,
- Type varchar(20) NULL ,
- Field varchar(40) NULL ,
- OldValue varchar(255) NULL ,
- NewValue varchar(255) NULL ,
- ReferenceType varchar(255) NULL ,
- OldReference integer NULL ,
- NewReference integer NULL ,
- Data varchar(255) NULL ,
-
- Creator integer NULL ,
- Created DATETIME NULL
-
-) ;
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
-
---- }}}
-
---- {{{ Scrips
-
-CREATE TABLE Scrips (
- id INTEGER PRIMARY KEY ,
- Description varchar(255),
- ScripCondition integer NULL ,
- ScripAction integer NULL ,
- ConditionRules text NULL ,
- ActionRules text NULL ,
- CustomIsApplicableCode text NULL ,
- CustomPrepareCode text NULL ,
- CustomCommitCode text NULL ,
- Stage varchar(32) NULL ,
- Queue integer NULL ,
- Template integer NULL ,
- Creator integer NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NULL ,
- LastUpdated DATETIME NULL
-
-) ;
-
---- }}}
-
---- {{{ ACL
-CREATE TABLE ACL (
- id INTEGER PRIMARY KEY ,
- PrincipalType varchar(25) NOT NULL,
-
- PrincipalId INTEGER,
- RightName varchar(25) NOT NULL ,
- ObjectType varchar(25) NOT NULL ,
- ObjectId INTEGER default 0,
- DelegatedBy integer NOT NULL default 0,
- DelegatedFrom integer NOT NULL default 0
-
-) ;
-
-
---- }}}
-
---- {{{ GroupMembers
-
-CREATE TABLE GroupMembers (
- id INTEGER PRIMARY KEY ,
- GroupId integer NULL,
- MemberId integer NULL
-
-) ;
-
---- }}}
-
---- {{{ CachedGroupMembers
-
-create table CachedGroupMembers (
- id integer primary key ,
- GroupId int,
- MemberId int,
- Via int,
- ImmediateParentId int,
- Disabled int2 NOT NULL DEFAULT 0 # if this cached group member is a member of this group by way of a disabled
- # group or this group is disabled, this will be set to 1
- # this allows us to not find members of disabled subgroups when listing off
- # group members recursively.
- # Also, this allows us to have the ACL system elide members of disabled groups
-
-
-) ;
-
---- }}}
-
---- {{{ Users
-
-CREATE TABLE Users (
- id INTEGER ,
- Name varchar(200) NOT NULL ,
- Password varchar(40) NULL ,
- Comments blob NULL ,
- Signature blob NULL ,
- EmailAddress varchar(120) NULL ,
- FreeformContactInfo blob NULL ,
- Organization varchar(200) NULL ,
- RealName varchar(120) NULL ,
- NickName varchar(16) NULL ,
- Lang varchar(16) NULL ,
- EmailEncoding varchar(16) NULL ,
- WebEncoding varchar(16) NULL ,
- ExternalContactInfoId varchar(100) NULL ,
- ContactInfoSystem varchar(30) NULL ,
- ExternalAuthId varchar(100) NULL ,
- AuthSystem varchar(30) NULL ,
- Gecos varchar(16) NULL ,
- HomePhone varchar(30) NULL ,
- WorkPhone varchar(30) NULL ,
- MobilePhone varchar(30) NULL ,
- PagerPhone varchar(30) NULL ,
- Address1 varchar(200) NULL ,
- Address2 varchar(200) NULL ,
- City varchar(100) NULL ,
- State varchar(100) NULL ,
- Zip varchar(16) NULL ,
- Country varchar(50) NULL ,
- Timezone char(50) NULL ,
- PGPKey text NULL,
-
- Creator integer NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NULL ,
- LastUpdated DATETIME NULL
-
-) ;
-
-
-CREATE UNIQUE INDEX Users1 ON Users (Name) ;
-CREATE INDEX Users2 ON Users (Name);
-CREATE INDEX Users3 ON Users (id, EmailAddress);
-CREATE INDEX Users4 ON Users (EmailAddress);
-
-
---- }}}
-
---- {{{ Tickets
-
-CREATE TABLE Tickets (
- id INTEGER PRIMARY KEY ,
- EffectiveId integer NULL ,
- Queue integer NULL ,
- Type varchar(16) NULL ,
- IssueStatement integer NULL ,
- Resolution integer NULL ,
- Owner integer NULL ,
- Subject varchar(200) NULL DEFAULT '[no subject]' ,
- InitialPriority integer NULL ,
- FinalPriority integer NULL ,
- Priority integer NULL ,
- TimeEstimated integer NULL ,
- TimeWorked integer NULL ,
- Status varchar(10) NULL ,
- TimeLeft integer NULL ,
- Told DATETIME NULL ,
- Starts DATETIME NULL ,
- Started DATETIME NULL ,
- Due DATETIME NULL ,
- Resolved DATETIME NULL ,
-
-
- LastUpdatedBy integer NULL ,
- LastUpdated DATETIME NULL ,
- Creator integer NULL ,
- Created DATETIME NULL ,
- Disabled int2 NOT NULL DEFAULT 0
-
-) ;
-
-CREATE INDEX Tickets1 ON Tickets (Queue, Status) ;
-CREATE INDEX Tickets2 ON Tickets (Owner) ;
-CREATE INDEX Tickets3 ON Tickets (EffectiveId) ;
-CREATE INDEX Tickets4 ON Tickets (id, Status) ;
-CREATE INDEX Tickets5 ON Tickets (id, EffectiveId) ;
-
---- }}}
-
---- {{{ ScripActions
-
-CREATE TABLE ScripActions (
- id INTEGER PRIMARY KEY ,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- ExecModule varchar(60) NULL ,
- Argument varchar(255) NULL ,
- Creator integer NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NULL ,
- LastUpdated DATETIME NULL
-
-) ;
-
---- }}}
-
---- {{{ Templates
-
-CREATE TABLE Templates (
- id INTEGER PRIMARY KEY ,
- Queue integer NOT NULL DEFAULT 0 ,
- Name varchar(200) NOT NULL ,
- Description varchar(255) NULL ,
- Type varchar(16) NULL ,
- Language varchar(16) NULL ,
- TranslationOf integer NULL ,
- Content blob NULL ,
- LastUpdated DATETIME NULL ,
- LastUpdatedBy integer NULL ,
- Creator integer NULL ,
- Created DATETIME NULL
-
-) ;
-
---- }}}
-
-
-
-# {{{ ObjectCustomFieldValues
-
-CREATE TABLE ObjectCustomFieldValues (
- id INTEGER NOT NULL ,
- CustomField int NOT NULL ,
- ObjectType varchar(255) NOT NULL, # Final target of the Object
- ObjectId int NOT NULL , # New -- Replaces Ticket
- SortOrder integer NOT NULL DEFAULT 0 ,
-
- Content varchar(255) NULL ,
- LargeContent LONGTEXT NULL, # New -- to hold 255+ strings
- ContentType varchar(80) NULL, # New -- only text/* gets searched
- ContentEncoding varchar(80) NULL , # New -- for binary Content
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- Disabled int2 NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-) ;
-
-CREATE INDEX ObjectCustomFieldValues1 ON ObjectCustomFieldValues (Content);
-CREATE INDEX ObjectCustomFieldValues2 ON ObjectCustomFieldValues (CustomField,ObjectType,ObjectId);
-
-# }}}
-
-# {{{ CustomFields
-
-CREATE TABLE CustomFields (
- id INTEGER NOT NULL ,
- Name varchar(200) NULL ,
- Type varchar(200) NULL , # Changed -- 'Single' and 'Multiple' is moved out
- MaxValues integer, # New -- was 'Single'(1) and 'Multiple'(0)
- Pattern varchar(65536) NULL , # New -- Must validate against this
- Repeated int2 NOT NULL DEFAULT 0 , # New -- repeated table entry
- Description varchar(255) NULL ,
- SortOrder integer NOT NULL DEFAULT 0 ,
- LookupType varchar(255) NOT NULL,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- Disabled int2 NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-) ;
-
-# }}}
-
-# {{{ ObjectCustomFields
-
-CREATE TABLE ObjectCustomFields (
- id INTEGER NOT NULL ,
- CustomField int NOT NULL ,
- ObjectId integer NOT NULL,
- SortOrder integer NOT NULL DEFAULT 0 ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) ;
-
-# }}}
-
-# {{{ CustomFieldValues
-
-CREATE TABLE CustomFieldValues (
- id INTEGER NOT NULL ,
- CustomField int NOT NULL ,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- SortOrder integer NOT NULL DEFAULT 0 ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) ;
-
-CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
-
-# }}}
-
---- {{{ Attributes
-CREATE TABLE Attributes (
- id INTEGER PRIMARY KEY ,
- Name varchar(255) NOT NULL ,
- Description varchar(255) NULL ,
- Content LONGTEXT NULL ,
- ContentType varchar(16),
- ObjectType varchar(25) NOT NULL ,
- ObjectId INTEGER default 0,
- Creator integer NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NULL ,
- LastUpdated DATETIME NULL
-
-) ;
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
-
---- }}}
-
diff --git a/rt/etc/schema.Sybase b/rt/etc/schema.Sybase
deleted file mode 100644
index 67a411d..0000000
--- a/rt/etc/schema.Sybase
+++ /dev/null
@@ -1,444 +0,0 @@
-# {{{ Attachments
-
-CREATE TABLE rt3.Attachments (
- id numeric(38,0) identity,
- TransactionId integer NOT NULL ,
- Parent integer NOT NULL ,
- MessageId varchar(160) NULL ,
- Subject varchar(255) NULL ,
- Filename varchar(255) NULL ,
- ContentType varchar(80) NULL ,
- ContentEncoding varchar(80) NULL ,
- Content TEXT NULL ,
- Headers TEXT NULL ,
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- PRIMARY KEY (id)
-) ;
-
-CREATE INDEX Attachments1 ON Attachments (Parent) ;
-CREATE INDEX Attachments2 ON Attachments (TransactionId) ;
-CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId) ;
-# }}}
-
-# {{{ Queues
-CREATE TABLE rt3.Queues (
- id numeric(38,0) identity,
- Name varchar(200) NOT NULL ,
- Description varchar(255) NULL ,
- CorrespondAddress varchar(120) NULL ,
- CommentAddress varchar(120) NULL ,
- InitialPriority integer NOT NULL ,
- FinalPriority integer NOT NULL ,
- DefaultDueIn integer NOT NULL ,
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL ,
- LastUpdated DATETIME NULL ,
- Disabled numeric(1) NOT NULL ,
- PRIMARY KEY (id)
-) ;
-CREATE UNIQUE INDEX Queues1 ON Queues (Name) ;
-CREATE INDEX Queues2 ON Queues (Disabled) ;
-
-# }}}
-
-# {{{ Links
-
-CREATE TABLE rt3.Links (
- id numeric(38,0) identity,
- Base varchar(240) NULL ,
- Target varchar(240) NULL ,
- Type varchar(20) NOT NULL ,
- LocalTarget integer NOT NULL ,
- LocalBase integer NOT NULL ,
- LastUpdatedBy integer NOT NULL ,
- LastUpdated DATETIME NULL ,
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- PRIMARY KEY (id)
-) ;
-
-CREATE UNIQUE INDEX Links1 ON Links (Base, Target, Type) ;
-CREATE INDEX Links2 ON Links (Base, Type) ;
-CREATE INDEX Links3 ON Links (Target, Type) ;
-CREATE INDEX Links4 ON Links(Type,LocalBase);
-
-# }}}
-
-# {{{ Principals
-
-CREATE TABLE rt3.Principals (
- id numeric(38,0) identity,
- PrincipalType VARCHAR(16) not null,
- ObjectId integer, Disabled numeric(1) NOT NULL ,
- PRIMARY KEY (id)
-) ;
-
-CREATE INDEX Principals2 ON Principals (ObjectId);
-
-# }}}
-
-# {{{ Groups
-
-CREATE TABLE rt3.Groups (
- id numeric(38,0) identity,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- Domain varchar(64),
- Type varchar(64),
- Instance integer,
- PRIMARY KEY (id)
-) ;
-
-CREATE INDEX Groups1 ON Groups (Domain,Instance,Type,id);
-CREATE INDEX Groups2 On Groups (Type, Instance, Domain);
-
-# }}}
-
-# {{{ ScripConditions
-
-CREATE TABLE rt3.ScripConditions (
- id numeric(38,0) identity,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- ExecModule varchar(60) NULL ,
- Argument varchar(255) NULL ,
- ApplicableTransTypes varchar(60) NULL ,
-
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) ;
-
-# }}}
-
-# {{{ Transactions
-CREATE TABLE rt3.Transactions (
- id numeric(38,0) identity,
- EffectiveTicket integer NOT NULL ,
- Ticket integer NOT NULL ,
- TimeTaken integer NOT NULL ,
- Type varchar(20) NULL ,
- Field varchar(40) NULL ,
- OldValue varchar(255) NULL ,
- NewValue varchar(255) NULL ,
- Data varchar(255) NULL ,
-
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- PRIMARY KEY (id)
-) ;
-CREATE INDEX Transactions1 ON Transactions (Ticket);
-CREATE INDEX Transactions2 ON Transactions (EffectiveTicket);
-
-# }}}
-
-# {{{ Scrips
-
-CREATE TABLE rt3.Scrips (
- id numeric(38,0) identity,
- Description varchar(255),
- ScripCondition integer NOT NULL ,
- ScripAction integer NOT NULL ,
- ConditionRules text NULL ,
- ActionRules text NULL ,
- CustomIsApplicableCode text NULL ,
- CustomPrepareCode text NULL ,
- CustomCommitCode text NULL ,
- Stage varchar(32) NULL ,
- Queue integer NOT NULL ,
- Template integer NOT NULL ,
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) ;
-
-# }}}
-
-# {{{ ACL
-CREATE TABLE rt3.ACL (
- id numeric(38,0) identity,
- PrincipalType varchar(25) NOT NULL, #"User" "Group", "Owner", "Cc" "AdminCc", "Requestor", "Requestor"
-
- PrincipalId integer NOT NULL , #Foreign key to principals
- RightName varchar(25) NOT NULL ,
- ObjectType varchar(25) NOT NULL ,
- ObjectId integer NOT NULL ,
- DelegatedBy integer NOT NULL , #foreign key to principals with a userid
- DelegatedFrom integer NOT NULL , #foreign key to ACL
- PRIMARY KEY (id)
-) ;
-
-CREATE INDEX ACL1 on ACL(RightName, ObjectType, ObjectId,PrincipalType,PrincipalId);
-
-# }}}
-
-# {{{ GroupMembers
-
-CREATE TABLE rt3.GroupMembers (
- id numeric(38,0) identity,
- GroupId integer NOT NULL ,
- MemberId integer NOT NULL , #Foreign key to Principals
- PRIMARY KEY (id)
-) ;
-CREATE UNIQUE INDEX GroupMembers1 on GroupMembers (GroupId, MemberId);
-
-
-# }}}
-
-# {{{ GroupMembersCache
-
-CREATE TABLE rt3.CachedGroupMembers (
- id numeric(38,0) identity,
- GroupId int, # foreign key to Principals
- MemberId int, # foreign key to Principals
- Via int, #foreign key to CachedGroupMembers. (may point to $self->id)
- ImmediateParentId int, #foreign key to prinicpals.
- # this points to the group that the member is
- # a member of, for ease of deletes.
- Disabled numeric(1) NOT NULL , # if this cached group member is a member of this group by way of a disabled
- # group or this group is disabled, this will be set to 1
- # this allows us to not find members of disabled subgroups when listing off
- # group members recursively.
- # Also, this allows us to have the ACL system elide members of disabled groups
- PRIMARY KEY (id)
-) ;
-
-CREATE INDEX DisGrouMem on CachedGroupMembers (GroupId,MemberId,Disabled);
-CREATE INDEX GrouMem on CachedGroupMembers (GroupId,MemberId);
-
-# }}}
-
-# {{{ Users
-
-CREATE TABLE rt3.Users (
- id numeric(38,0) identity,
- Name varchar(200) NOT NULL ,
- Password varchar(40) NULL ,
- Comments text NULL ,
- Signature text NULL ,
- EmailAddress varchar(120) NULL ,
- FreeformContactInfo text NULL ,
- Organization varchar(200) NULL ,
- RealName varchar(120) NULL ,
- NickName varchar(16) NULL ,
- Lang varchar(16) NULL ,
- EmailEncoding varchar(16) NULL ,
- WebEncoding varchar(16) NULL ,
- ExternalContactInfoId varchar(100) NULL ,
- ContactInfoSystem varchar(30) NULL ,
- ExternalAuthId varchar(100) NULL ,
- AuthSystem varchar(30) NULL ,
- Gecos varchar(16) NULL ,
- HomePhone varchar(30) NULL ,
- WorkPhone varchar(30) NULL ,
- MobilePhone varchar(30) NULL ,
- PagerPhone varchar(30) NULL ,
- Address1 varchar(200) NULL ,
- Address2 varchar(200) NULL ,
- City varchar(100) NULL ,
- State varchar(100) NULL ,
- Zip varchar(16) NULL ,
- Country varchar(50) NULL ,
- Timezone varchar(50) NULL ,
- PGPKey text NULL,
-
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) ;
-
-
-CREATE UNIQUE INDEX Users1 ON Users (Name) ;
-CREATE INDEX Users2 ON Users (Name);
-CREATE INDEX Users3 ON Users (id, EmailAddress);
-CREATE INDEX Users4 ON Users (EmailAddress);
-
-
-# }}}
-
-# {{{ Tickets
-
-CREATE TABLE rt3.Tickets (
- id numeric(38,0) identity,
- EffectiveId integer NOT NULL ,
- Queue integer NOT NULL ,
- Type varchar(16) NULL ,
- IssueStatement integer NOT NULL ,
- Resolution integer NOT NULL ,
- Owner integer NOT NULL ,
- Subject varchar(200) NULL,
- InitialPriority integer NOT NULL ,
- FinalPriority integer NOT NULL ,
- Priority integer NOT NULL ,
- TimeEstimated integer NOT NULL ,
- TimeWorked integer NOT NULL ,
- Status varchar(10) NULL ,
- TimeLeft integer NOT NULL ,
- Told DATETIME NULL ,
- Starts DATETIME NULL ,
- Started DATETIME NULL ,
- Due DATETIME NULL ,
- Resolved DATETIME NULL ,
-
-
- LastUpdatedBy integer NOT NULL ,
- LastUpdated DATETIME NULL ,
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- Disabled numeric(1) NOT NULL ,
- PRIMARY KEY (id)
-) ;
-
-CREATE INDEX Tickets1 ON Tickets (Queue, Status) ;
-CREATE INDEX Tickets2 ON Tickets (Owner) ;
-CREATE INDEX Tickets3 ON Tickets (EffectiveId) ;
-CREATE INDEX Tickets4 ON Tickets (id, Status) ;
-CREATE INDEX Tickets5 ON Tickets (id, EffectiveId) ;
-CREATE INDEX Tickets6 ON Tickets (EffectiveId, Type) ;
-
-# }}}
-
-# {{{ ScripActions
-
-CREATE TABLE rt3.ScripActions (
- id numeric(38,0) identity,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- ExecModule varchar(60) NULL ,
- Argument varchar(255) NULL ,
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) ;
-
-# }}}
-
-# {{{ Templates
-
-CREATE TABLE rt3.Templates (
- id numeric(38,0) identity,
- Queue integer NOT NULL ,
- Name varchar(200) NOT NULL ,
- Description varchar(255) NULL ,
- Type varchar(16) NULL ,
- Language varchar(16) NULL ,
- TranslationOf integer NOT NULL ,
- Content text NULL ,
- LastUpdated DATETIME NULL ,
- LastUpdatedBy integer NOT NULL ,
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- PRIMARY KEY (id)
-) ;
-
-# }}}
-
-# {{{ TicketCustomFieldValues
-
-CREATE TABLE rt3.TicketCustomFieldValues (
- id numeric(38,0) identity,
- Ticket int NOT NULL ,
- CustomField int NOT NULL ,
- Content varchar(255) NULL ,
-
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) ;
-
-CREATE INDEX TicketCustomFieldValues1 ON TicketCustomFieldValues (CustomField,Ticket,Content);
-CREATE INDEX TicketCustomFieldValues2 ON TicketCustomFieldValues (CustomField,Ticket);
-
-# }}}
-
-# {{{ CustomFields
-
-CREATE TABLE rt3.CustomFields (
- id numeric(38,0) identity,
- Name varchar(200) NULL ,
- Type varchar(200) NULL ,
- Queue integer NOT NULL ,
- Description varchar(255) NULL ,
- SortOrder integer NOT NULL ,
-
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL ,
- LastUpdated DATETIME NULL ,
- Disabled numeric(1) NOT NULL ,
- PRIMARY KEY (id)
-) ;
-
-CREATE INDEX CustomFields1 on CustomFields (Disabled, Queue);
-
-
-# }}}
-
-# {{{ CustomFieldValues
-
-CREATE TABLE rt3.CustomFieldValues (
- id numeric(38,0) identity,
- CustomField int NOT NULL ,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- SortOrder integer NOT NULL ,
-
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) ;
-
-CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
-
-# }}}
-
-
-# {{{ Attributes
-
-CREATE TABLE rt3.Attributes (
- id numeric(38,0) identity,
- Name varchar(255) NULL ,
- Description varchar(255) NULL ,
- Content text,
- ContentType varchar(16),
- ObjectType varchar(64),
- ObjectId integer, # foreign key to anything
- Creator integer NOT NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) ;
-
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
-
-# }}}
-
-# {{{ Sessions
-
-# sessions is used by Apache::Session to keep sessions in the database.
-# We should have a reaper script somewhere.
-
-CREATE TABLE rt3.sessions (
- id char(32) NOT NULL,
- a_session TEXT,
- LastUpdated DATETIME,
- PRIMARY KEY (id)
-);
-
-# }}}
diff --git a/rt/etc/schema.mysql-4.0 b/rt/etc/schema.mysql-4.0
deleted file mode 100755
index c4299d4..0000000
--- a/rt/etc/schema.mysql-4.0
+++ /dev/null
@@ -1,464 +0,0 @@
-# {{{ Attachments
-
-CREATE TABLE Attachments (
- id INTEGER NOT NULL AUTO_INCREMENT,
- TransactionId integer NOT NULL ,
- Parent integer NOT NULL DEFAULT 0 ,
- MessageId varchar(160) NULL ,
- Subject varchar(255) NULL ,
- Filename varchar(255) NULL ,
- ContentType varchar(80) NULL ,
- ContentEncoding varchar(80) NULL ,
- Content LONGTEXT NULL ,
- Headers LONGTEXT NULL ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX Attachments2 ON Attachments (TransactionId) ;
-CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId) ;
-# }}}
-
-# {{{ Queues
-CREATE TABLE Queues (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(200) NOT NULL ,
- Description varchar(255) NULL ,
- CorrespondAddress varchar(120) NULL ,
- CommentAddress varchar(120) NULL ,
- InitialPriority integer NOT NULL DEFAULT 0 ,
- FinalPriority integer NOT NULL DEFAULT 0 ,
- DefaultDueIn integer NOT NULL DEFAULT 0 ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- Disabled int2 NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-CREATE UNIQUE INDEX Queues1 ON Queues (Name) ;
-CREATE INDEX Queues2 ON Queues (Disabled) ;
-
-# }}}
-
-# {{{ Links
-
-CREATE TABLE Links (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Base varchar(240) NULL ,
- Target varchar(240) NULL ,
- Type varchar(20) NOT NULL ,
- LocalTarget integer NOT NULL DEFAULT 0 ,
- LocalBase integer NOT NULL DEFAULT 0 ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX Links2 ON Links (Base, Type) ;
-CREATE INDEX Links3 ON Links (Target, Type) ;
-CREATE INDEX Links4 ON Links (Type,LocalBase);
-
-# }}}
-
-# {{{ Principals
-
-CREATE TABLE Principals (
- id INTEGER AUTO_INCREMENT not null,
- PrincipalType VARCHAR(16) not null,
- ObjectId integer, # foreign key to Users or Groups, depending
- Disabled int2 NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX Principals2 ON Principals (ObjectId);
-
-# }}}
-
-# {{{ Groups
-
-CREATE TABLE Groups (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- Domain varchar(64),
- Type varchar(64),
- Instance integer,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX Groups1 ON Groups (Domain,Instance,Type,id);
-CREATE INDEX Groups2 On Groups (Type, Instance);
-
-# }}}
-
-# {{{ ScripConditions
-
-CREATE TABLE ScripConditions (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- ExecModule varchar(60) NULL ,
- Argument varchar(255) NULL ,
- ApplicableTransTypes varchar(60) NULL ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-# }}}
-
-# {{{ Transactions
-CREATE TABLE Transactions (
- id INTEGER NOT NULL AUTO_INCREMENT,
- ObjectType varchar(64) NOT NULL,
- ObjectId integer NOT NULL DEFAULT 0 ,
- TimeTaken integer NOT NULL DEFAULT 0 ,
- Type varchar(20) NULL ,
- Field varchar(40) NULL ,
- OldValue varchar(255) NULL ,
- NewValue varchar(255) NULL ,
- ReferenceType varchar(255) NULL,
- OldReference integer NULL ,
- NewReference integer NULL ,
- Data varchar(255) NULL ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
-
-# }}}
-
-# {{{ Scrips
-
-CREATE TABLE Scrips (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Description varchar(255),
- ScripCondition integer NOT NULL DEFAULT 0 ,
- ScripAction integer NOT NULL DEFAULT 0 ,
- ConditionRules text NULL ,
- ActionRules text NULL ,
- CustomIsApplicableCode text NULL ,
- CustomPrepareCode text NULL ,
- CustomCommitCode text NULL ,
- Stage varchar(32) NULL ,
- Queue integer NOT NULL DEFAULT 0 ,
- Template integer NOT NULL DEFAULT 0 ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-# }}}
-
-# {{{ ACL
-CREATE TABLE ACL (
- id INTEGER NOT NULL AUTO_INCREMENT,
- PrincipalType varchar(25) NOT NULL, #"User" "Group", "Owner", "Cc" "AdminCc", "Requestor", "Requestor"
-
- PrincipalId integer NOT NULL , #Foreign key to principals
- RightName varchar(25) NOT NULL ,
- ObjectType varchar(25) NOT NULL ,
- ObjectId integer NOT NULL default 0,
- DelegatedBy integer NOT NULL default 0, #foreign key to principals with a userid
- DelegatedFrom integer NOT NULL default 0, #foreign key to ACL
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX ACL1 on ACL(RightName, ObjectType, ObjectId,PrincipalType,PrincipalId);
-
-# }}}
-
-# {{{ GroupMembers
-
-CREATE TABLE GroupMembers (
- id INTEGER NOT NULL AUTO_INCREMENT,
- GroupId integer NOT NULL DEFAULT 0,
- MemberId integer NOT NULL DEFAULT 0, #Foreign key to Principals
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-CREATE UNIQUE INDEX GroupMembers1 on GroupMembers (GroupId, MemberId);
-
-
-# }}}
-
-# {{{ GroupMembersCache
-
-create table CachedGroupMembers (
- id int auto_increment,
- GroupId int, # foreign key to Principals
- MemberId int, # foreign key to Principals
- Via int, #foreign key to CachedGroupMembers. (may point to $self->id)
- ImmediateParentId int, #foreign key to prinicpals.
- # this points to the group that the member is
- # a member of, for ease of deletes.
- Disabled int2 NOT NULL DEFAULT 0 , # if this cached group member is a member of this group by way of a disabled
- # group or this group is disabled, this will be set to 1
- # this allows us to not find members of disabled subgroups when listing off
- # group members recursively.
- # Also, this allows us to have the ACL system elide members of disabled groups
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX DisGrouMem on CachedGroupMembers (GroupId,MemberId,Disabled);
-CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (MemberId, ImmediateParentId);
-
-# }}}
-
-# {{{ Users
-
-CREATE TABLE Users (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(200) NOT NULL ,
- Password varchar(40) NULL ,
- Comments blob NULL ,
- Signature blob NULL ,
- EmailAddress varchar(120) NULL ,
- FreeformContactInfo blob NULL ,
- Organization varchar(200) NULL ,
- RealName varchar(120) NULL ,
- NickName varchar(16) NULL ,
- Lang varchar(16) NULL ,
- EmailEncoding varchar(16) NULL ,
- WebEncoding varchar(16) NULL ,
- ExternalContactInfoId varchar(100) NULL ,
- ContactInfoSystem varchar(30) NULL ,
- ExternalAuthId varchar(100) NULL ,
- AuthSystem varchar(30) NULL ,
- Gecos varchar(16) NULL ,
- HomePhone varchar(30) NULL ,
- WorkPhone varchar(30) NULL ,
- MobilePhone varchar(30) NULL ,
- PagerPhone varchar(30) NULL ,
- Address1 varchar(200) NULL ,
- Address2 varchar(200) NULL ,
- City varchar(100) NULL ,
- State varchar(100) NULL ,
- Zip varchar(16) NULL ,
- Country varchar(50) NULL ,
- Timezone varchar(50) NULL ,
- PGPKey text NULL,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-
-CREATE UNIQUE INDEX Users1 ON Users (Name) ;
-CREATE INDEX Users4 ON Users (EmailAddress);
-
-
-# }}}
-
-# {{{ Tickets
-
-CREATE TABLE Tickets (
- id INTEGER NOT NULL AUTO_INCREMENT,
- EffectiveId integer NOT NULL DEFAULT 0 ,
- Queue integer NOT NULL DEFAULT 0 ,
- Type varchar(16) NULL ,
- IssueStatement integer NOT NULL DEFAULT 0 ,
- Resolution integer NOT NULL DEFAULT 0 ,
- Owner integer NOT NULL DEFAULT 0 ,
- Subject varchar(200) NULL DEFAULT '[no subject]' ,
- InitialPriority integer NOT NULL DEFAULT 0 ,
- FinalPriority integer NOT NULL DEFAULT 0 ,
- Priority integer NOT NULL DEFAULT 0 ,
- TimeEstimated integer NOT NULL DEFAULT 0 ,
- TimeWorked integer NOT NULL DEFAULT 0 ,
- Status varchar(10) NULL ,
- TimeLeft integer NOT NULL DEFAULT 0 ,
- Told DATETIME NULL ,
- Starts DATETIME NULL ,
- Started DATETIME NULL ,
- Due DATETIME NULL ,
- Resolved DATETIME NULL ,
-
-
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- Disabled int2 NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX Tickets1 ON Tickets (Queue, Status) ;
-CREATE INDEX Tickets2 ON Tickets (Owner) ;
-CREATE INDEX Tickets6 ON Tickets (EffectiveId, Type) ;
-
-# }}}
-
-# {{{ ScripActions
-
-CREATE TABLE ScripActions (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- ExecModule varchar(60) NULL ,
- Argument varchar(255) NULL ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-# }}}
-
-# {{{ Templates
-
-CREATE TABLE Templates (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Queue integer NOT NULL DEFAULT 0 ,
- Name varchar(200) NOT NULL ,
- Description varchar(255) NULL ,
- Type varchar(16) NULL ,
- Language varchar(16) NULL ,
- TranslationOf integer NOT NULL DEFAULT 0 ,
- Content blob NULL ,
- LastUpdated DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-# }}}
-
-# {{{ ObjectCustomFieldValues
-
-CREATE TABLE ObjectCustomFieldValues (
- id INTEGER NOT NULL AUTO_INCREMENT,
- CustomField int NOT NULL ,
- ObjectType varchar(255) NOT NULL, # Final target of the Object
- ObjectId int NOT NULL , # New -- Replaces Ticket
- SortOrder integer NOT NULL DEFAULT 0 , # New -- ordering for multiple values
-
- Content varchar(255) NULL ,
- LargeContent LONGTEXT NULL, # New -- to hold 255+ strings
- ContentType varchar(80) NULL, # New -- only text/* gets searched
- ContentEncoding varchar(80) NULL , # New -- for binary Content
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- Disabled int2 NOT NULL DEFAULT 0 , # New -- whether the value was current
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX ObjectCustomFieldValues1 ON ObjectCustomFieldValues (Content);
-CREATE INDEX ObjectCustomFieldValues2 ON ObjectCustomFieldValues (CustomField,ObjectType,ObjectId);
-
-# }}}
-
-# {{{ CustomFields
-
-CREATE TABLE CustomFields (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(200) NULL ,
- Type varchar(200) NULL , # Changed -- 'Single' and 'Multiple' is moved out
- MaxValues integer, # New -- was 'Single'(1) and 'Multiple'(0)
- Pattern TEXT NULL , # New -- Must validate against this
- Repeated int2 NOT NULL DEFAULT 0 , # New -- repeated table entry
- Description varchar(255) NULL ,
- SortOrder integer NOT NULL DEFAULT 0 ,
- LookupType varchar(255) NOT NULL,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- Disabled int2 NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-# }}}
-
-# {{{ ObjectCustomFields
-
-CREATE TABLE ObjectCustomFields (
- id INTEGER NOT NULL AUTO_INCREMENT,
- CustomField int NOT NULL ,
- ObjectId integer NOT NULL,
- SortOrder integer NOT NULL DEFAULT 0 ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-# }}}
-
-# {{{ CustomFieldValues
-
-CREATE TABLE CustomFieldValues (
- id INTEGER NOT NULL AUTO_INCREMENT,
- CustomField int NOT NULL ,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- SortOrder integer NOT NULL DEFAULT 0 ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
-
-# }}}
-
-
-# {{{ Attributes
-
-CREATE TABLE Attributes (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(255) NULL ,
- Description varchar(255) NULL ,
- Content text,
- ContentType varchar(16),
- ObjectType varchar(64),
- ObjectId integer, # foreign key to anything
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
-
-# }}}
-
-# {{{ Sessions
-
-# sessions is used by Apache::Session to keep sessions in the database.
-# We should have a reaper script somewhere.
-
-CREATE TABLE sessions (
- id char(32) NOT NULL,
- a_session LONGTEXT,
- LastUpdated TIMESTAMP,
- PRIMARY KEY (id)
-);
-
-# }}}
diff --git a/rt/etc/schema.mysql-4.1 b/rt/etc/schema.mysql-4.1
deleted file mode 100755
index 1735702..0000000
--- a/rt/etc/schema.mysql-4.1
+++ /dev/null
@@ -1,467 +0,0 @@
-# {{{ Attachments
-
-CREATE TABLE Attachments (
- id INTEGER NOT NULL AUTO_INCREMENT,
- TransactionId integer NOT NULL ,
- Parent integer NOT NULL DEFAULT 0 ,
- MessageId varchar(160) CHARACTER SET ascii NULL ,
- Subject varchar(255) NULL ,
- Filename varchar(255) NULL ,
- ContentType varchar(80) CHARACTER SET ascii NULL ,
- ContentEncoding varchar(80) CHARACTER SET ascii NULL ,
- Content LONGBLOB NULL ,
- Headers LONGTEXT NULL ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-CREATE INDEX Attachments2 ON Attachments (TransactionId) ;
-CREATE INDEX Attachments3 ON Attachments (Parent, TransactionId) ;
-# }}}
-
-# {{{ Queues
-CREATE TABLE Queues (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(200) NOT NULL ,
- Description varchar(255) NULL ,
- CorrespondAddress varchar(120) CHARACTER SET ascii NULL,
- CommentAddress varchar(120) CHARACTER SET ascii NULL,
- InitialPriority integer NOT NULL DEFAULT 0 ,
- FinalPriority integer NOT NULL DEFAULT 0 ,
- DefaultDueIn integer NOT NULL DEFAULT 0 ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- Disabled int2 NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-CREATE UNIQUE INDEX Queues1 ON Queues (Name) ;
-CREATE INDEX Queues2 ON Queues (Disabled) ;
-
-# }}}
-
-# {{{ Links
-
-CREATE TABLE Links (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Base varchar(240) NULL,
- Target varchar(240) NULL,
- Type varchar(20) NOT NULL,
- LocalTarget integer NOT NULL DEFAULT 0 ,
- LocalBase integer NOT NULL DEFAULT 0 ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET ascii;
-
-CREATE INDEX Links2 ON Links (Base, Type) ;
-CREATE INDEX Links3 ON Links (Target, Type) ;
-CREATE INDEX Links4 ON Links (Type,LocalBase);
-
-# }}}
-
-# {{{ Principals
-
-CREATE TABLE Principals (
- id INTEGER AUTO_INCREMENT not null,
- PrincipalType VARCHAR(16) not null,
- ObjectId integer, # foreign key to Users or Groups, depending
- Disabled int2 NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET ascii;
-
-CREATE INDEX Principals2 ON Principals (ObjectId);
-
-# }}}
-
-# {{{ Groups
-
-CREATE TABLE Groups (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- Domain varchar(64) CHARACTER SET ascii NULL,
- Type varchar(64) CHARACTER SET ascii NULL,
- Instance integer,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-CREATE INDEX Groups1 ON Groups (Domain,Instance,Type,id);
-CREATE INDEX Groups2 On Groups (Type, Instance);
-
-# }}}
-
-# {{{ ScripConditions
-
-CREATE TABLE ScripConditions (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- ExecModule varchar(60) CHARACTER SET ascii NULL,
- Argument VARBINARY(255) NULL ,
- ApplicableTransTypes varchar(60) CHARACTER SET ascii NULL ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-# }}}
-
-# {{{ Transactions
-CREATE TABLE Transactions (
- id INTEGER NOT NULL AUTO_INCREMENT,
- ObjectType varchar(64) CHARACTER SET ascii NOT NULL,
- ObjectId integer NOT NULL DEFAULT 0 ,
- TimeTaken integer NOT NULL DEFAULT 0 ,
- Type varchar(20) CHARACTER SET ascii NULL,
- Field varchar(40) CHARACTER SET ascii NULL,
- OldValue varchar(255) NULL ,
- NewValue varchar(255) NULL ,
- ReferenceType varchar(255) CHARACTER SET ascii NULL,
- OldReference integer NULL ,
- NewReference integer NULL ,
- Data varchar(255) NULL ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
-
-# }}}
-
-# {{{ Scrips
-
-CREATE TABLE Scrips (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Description varchar(255),
- ScripCondition integer NOT NULL DEFAULT 0 ,
- ScripAction integer NOT NULL DEFAULT 0 ,
- ConditionRules text NULL ,
- ActionRules text NULL ,
- CustomIsApplicableCode text NULL ,
- CustomPrepareCode text NULL ,
- CustomCommitCode text NULL ,
- Stage varchar(32) CHARACTER SET ascii NULL ,
- Queue integer NOT NULL DEFAULT 0 ,
- Template integer NOT NULL DEFAULT 0 ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-# }}}
-
-# {{{ ACL
-CREATE TABLE ACL (
- id INTEGER NOT NULL AUTO_INCREMENT,
- PrincipalType varchar(25) CHARACTER SET ascii NOT NULL, #"User" "Group", "Owner", "Cc" "AdminCc", "Requestor"
-
- PrincipalId integer NOT NULL , #Foreign key to principals
- RightName varchar(25) CHARACTER SET ascii NOT NULL,
- ObjectType varchar(25) CHARACTER SET ascii NOT NULL,
- ObjectId integer NOT NULL default 0,
- DelegatedBy integer NOT NULL default 0, #foreign key to principals with a userid
- DelegatedFrom integer NOT NULL default 0, #foreign key to ACL
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-CREATE INDEX ACL1 on ACL(RightName, ObjectType, ObjectId,PrincipalType,PrincipalId);
-
-# }}}
-
-# {{{ GroupMembers
-
-CREATE TABLE GroupMembers (
- id INTEGER NOT NULL AUTO_INCREMENT,
- GroupId integer NOT NULL DEFAULT 0,
- MemberId integer NOT NULL DEFAULT 0, #Foreign key to Principals
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-CREATE UNIQUE INDEX GroupMembers1 on GroupMembers (GroupId, MemberId);
-
-
-# }}}
-
-# {{{ GroupMembersCache
-
-create table CachedGroupMembers (
- id int auto_increment,
- GroupId int, # foreign key to Principals
- MemberId int, # foreign key to Principals
- Via int, #foreign key to CachedGroupMembers. (may point to $self->id)
- ImmediateParentId int, #foreign key to prinicpals.
- # this points to the group that the member is
- # a member of, for ease of deletes.
- Disabled int2 NOT NULL DEFAULT 0 , # if this cached group member is a member of this group by way of a disabled
- # group or this group is disabled, this will be set to 1
- # this allows us to not find members of disabled subgroups when listing off
- # group members recursively.
- # Also, this allows us to have the ACL system elide members of disabled groups
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-CREATE INDEX DisGrouMem on CachedGroupMembers (GroupId,MemberId,Disabled);
-CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (MemberId, ImmediateParentId);
-
-# }}}
-
-# {{{ Users
-
-CREATE TABLE Users (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(200) NOT NULL ,
- Password VARBINARY(40) NULL ,
- Comments TEXT NULL ,
- Signature TEXT NULL ,
- EmailAddress varchar(120) NULL ,
- FreeformContactInfo TEXT NULL ,
- Organization varchar(200) NULL ,
- RealName varchar(120) NULL ,
- NickName varchar(16) NULL ,
- Lang varchar(16) NULL ,
- EmailEncoding varchar(16) NULL ,
- WebEncoding varchar(16) NULL ,
- ExternalContactInfoId varchar(100) NULL ,
- ContactInfoSystem varchar(30) NULL ,
- ExternalAuthId varchar(100) NULL ,
- AuthSystem varchar(30) NULL ,
- Gecos varchar(16) NULL ,
- HomePhone varchar(30) NULL ,
- WorkPhone varchar(30) NULL ,
- MobilePhone varchar(30) NULL ,
- PagerPhone varchar(30) NULL ,
- Address1 varchar(200) NULL ,
- Address2 varchar(200) NULL ,
- City varchar(100) NULL ,
- State varchar(100) NULL ,
- Zip varchar(16) NULL ,
- Country varchar(50) NULL ,
- Timezone varchar(50) NULL ,
- PGPKey text NULL,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-
-CREATE UNIQUE INDEX Users1 ON Users (Name) ;
-CREATE INDEX Users4 ON Users (EmailAddress);
-
-
-# }}}
-
-# {{{ Tickets
-
-CREATE TABLE Tickets (
- id INTEGER NOT NULL AUTO_INCREMENT,
- EffectiveId integer NOT NULL DEFAULT 0 ,
- Queue integer NOT NULL DEFAULT 0 ,
- Type varchar(16) CHARACTER SET ascii NULL ,
- IssueStatement integer NOT NULL DEFAULT 0 ,
- Resolution integer NOT NULL DEFAULT 0 ,
- Owner integer NOT NULL DEFAULT 0 ,
- Subject varchar(200) NULL DEFAULT '[no subject]' ,
- InitialPriority integer NOT NULL DEFAULT 0 ,
- FinalPriority integer NOT NULL DEFAULT 0 ,
- Priority integer NOT NULL DEFAULT 0 ,
- TimeEstimated integer NOT NULL DEFAULT 0 ,
- TimeWorked integer NOT NULL DEFAULT 0 ,
- Status varchar(10) NULL ,
- TimeLeft integer NOT NULL DEFAULT 0 ,
- Told DATETIME NULL ,
- Starts DATETIME NULL ,
- Started DATETIME NULL ,
- Due DATETIME NULL ,
- Resolved DATETIME NULL ,
-
-
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- Disabled int2 NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-CREATE INDEX Tickets1 ON Tickets (Queue, Status) ;
-CREATE INDEX Tickets2 ON Tickets (Owner) ;
-CREATE INDEX Tickets6 ON Tickets (EffectiveId, Type) ;
-
-# }}}
-
-# {{{ ScripActions
-
-CREATE TABLE ScripActions (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- ExecModule varchar(60) CHARACTER SET ascii NULL,
- Argument VARBINARY(255) NULL ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-# }}}
-
-# {{{ Templates
-
-CREATE TABLE Templates (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Queue integer NOT NULL DEFAULT 0 ,
- Name varchar(200) NOT NULL ,
- Description varchar(255) NULL ,
- Type varchar(16) CHARACTER SET ascii NULL ,
- Language varchar(16) CHARACTER SET ascii NULL ,
- TranslationOf integer NOT NULL DEFAULT 0 ,
- Content TEXT NULL ,
- LastUpdated DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-# }}}
-
-# {{{ ObjectCustomFieldValues
-
-CREATE TABLE ObjectCustomFieldValues (
- id INTEGER NOT NULL AUTO_INCREMENT,
- CustomField int NOT NULL ,
- ObjectType varchar(255) CHARACTER SET ascii NOT NULL, # Final target of the Object
- ObjectId int NOT NULL , # New -- Replaces Ticket
- SortOrder integer NOT NULL DEFAULT 0 , # New -- ordering for multiple values
-
- Content varchar(255) NULL ,
- LargeContent LONGBLOB NULL, # New -- to hold 255+ strings
- ContentType varchar(80) CHARACTER SET ascii NULL, # New -- only text/* gets searched
- ContentEncoding varchar(80) CHARACTER SET ascii NULL , # New -- for binary Content
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- Disabled int2 NOT NULL DEFAULT 0 , # New -- whether the value was current
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-CREATE INDEX ObjectCustomFieldValues1 ON ObjectCustomFieldValues (Content);
-CREATE INDEX ObjectCustomFieldValues2 ON ObjectCustomFieldValues (CustomField,ObjectType,ObjectId);
-
-# }}}
-
-# {{{ CustomFields
-
-CREATE TABLE CustomFields (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(200) NULL ,
- Type varchar(200) CHARACTER SET ascii NULL , # Changed -- 'Single' and 'Multiple' is moved out
- MaxValues integer, # New -- was 'Single'(1) and 'Multiple'(0)
- Pattern TEXT NULL , # New -- Must validate against this
- Repeated int2 NOT NULL DEFAULT 0 , # New -- repeated table entry
- Description varchar(255) NULL ,
- SortOrder integer NOT NULL DEFAULT 0 ,
- LookupType varchar(255) CHARACTER SET ascii NOT NULL,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- Disabled int2 NOT NULL DEFAULT 0 ,
- Required int2 NOT NULL DEFAULT 0 ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-# }}}
-
-# {{{ ObjectCustomFields
-
-CREATE TABLE ObjectCustomFields (
- id INTEGER NOT NULL AUTO_INCREMENT,
- CustomField integer NOT NULL ,
- ObjectId integer NOT NULL,
- SortOrder integer NOT NULL DEFAULT 0 ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-# }}}
-
-# {{{ CustomFieldValues
-
-CREATE TABLE CustomFieldValues (
- id INTEGER NOT NULL AUTO_INCREMENT,
- CustomField int NOT NULL ,
- Name varchar(200) NULL ,
- Description varchar(255) NULL ,
- SortOrder integer NOT NULL DEFAULT 0 ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-CREATE INDEX CustomFieldValues1 ON CustomFieldValues (CustomField);
-
-# }}}
-
-
-# {{{ Attributes
-
-CREATE TABLE Attributes (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(255) NULL ,
- Description varchar(255) NULL ,
- Content BLOB,
- ContentType varchar(16) CHARACTER SET ascii,
- ObjectType varchar(64) CHARACTER SET ascii,
- ObjectId integer, # foreign key to anything
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB CHARACTER SET utf8;
-
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
-
-# }}}
-
-# {{{ Sessions
-
-# sessions is used by Apache::Session to keep sessions in the database.
-# We should have a reaper script somewhere.
-
-CREATE TABLE sessions (
- id char(32) NOT NULL,
- a_session LONGBLOB,
- LastUpdated TIMESTAMP,
- PRIMARY KEY (id)
-);
-
-# }}}
diff --git a/rt/etc/upgrade/3.1.0/acl.Informix b/rt/etc/upgrade/3.1.0/acl.Informix
deleted file mode 100644
index 73c16ae..0000000
--- a/rt/etc/upgrade/3.1.0/acl.Informix
+++ /dev/null
@@ -1,4 +0,0 @@
-sub acl {
- return ();
-}
-1;
diff --git a/rt/etc/upgrade/3.1.0/acl.Oracle b/rt/etc/upgrade/3.1.0/acl.Oracle
deleted file mode 100755
index 73c16ae..0000000
--- a/rt/etc/upgrade/3.1.0/acl.Oracle
+++ /dev/null
@@ -1,4 +0,0 @@
-sub acl {
- return ();
-}
-1;
diff --git a/rt/etc/upgrade/3.1.0/acl.Pg b/rt/etc/upgrade/3.1.0/acl.Pg
deleted file mode 100755
index 9c88782..0000000
--- a/rt/etc/upgrade/3.1.0/acl.Pg
+++ /dev/null
@@ -1,19 +0,0 @@
-sub acl {
- my $dbh = shift;
-
- my @acls;
-
- my @tables = qw (
- attributes_id_seq
- attributes
- );
-
- foreach my $table (@tables) {
- push @acls,
- "GRANT SELECT, INSERT, UPDATE, DELETE ON $table to "
- . RT->Config->Get('DatabaseUser') . ";";
-
- }
- return (@acls);
-}
-1;
diff --git a/rt/etc/upgrade/3.1.0/acl.SQLite b/rt/etc/upgrade/3.1.0/acl.SQLite
deleted file mode 100755
index 73c16ae..0000000
--- a/rt/etc/upgrade/3.1.0/acl.SQLite
+++ /dev/null
@@ -1,4 +0,0 @@
-sub acl {
- return ();
-}
-1;
diff --git a/rt/etc/upgrade/3.1.0/acl.mysql b/rt/etc/upgrade/3.1.0/acl.mysql
deleted file mode 100755
index 73c16ae..0000000
--- a/rt/etc/upgrade/3.1.0/acl.mysql
+++ /dev/null
@@ -1,4 +0,0 @@
-sub acl {
- return ();
-}
-1;
diff --git a/rt/etc/upgrade/3.1.0/content b/rt/etc/upgrade/3.1.0/content
deleted file mode 100644
index 3117daf..0000000
--- a/rt/etc/upgrade/3.1.0/content
+++ /dev/null
@@ -1,2 +0,0 @@
-# nothing to do
-1;
diff --git a/rt/etc/upgrade/3.1.0/schema.Informix b/rt/etc/upgrade/3.1.0/schema.Informix
deleted file mode 100644
index 722eb70..0000000
--- a/rt/etc/upgrade/3.1.0/schema.Informix
+++ /dev/null
@@ -1,17 +0,0 @@
-CREATE TABLE Attributes (
- id SERIAL,
- Name VARCHAR(255) DEFAULT '' NOT NULL,
- Description VARCHAR(255) DEFAULT NULL,
- Content BYTE,
- ContentType VARCHAR(16),
- ObjectType VARCHAR(25) NOT NULL,
- ObjectId INTEGER DEFAULT 0 NOT NULL,
- Creator INTEGER DEFAULT 0 NOT NULL,
- Created DATETIME YEAR TO SECOND,
- LastUpdatedBy INTEGER DEFAULT 0 NOT NULL,
- LastUpdated DATETIME YEAR TO SECOND,
- PRIMARY KEY (id)
-);
-
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
diff --git a/rt/etc/upgrade/3.1.0/schema.Oracle b/rt/etc/upgrade/3.1.0/schema.Oracle
deleted file mode 100644
index a8aae18..0000000
--- a/rt/etc/upgrade/3.1.0/schema.Oracle
+++ /dev/null
@@ -1,17 +0,0 @@
-CREATE SEQUENCE ATTRIBUTES_seq;
-CREATE TABLE Attributes (
- id NUMBER(11,0) PRIMARY KEY,
- Name VARCHAR2(255) NOT NULL,
- Description VARCHAR2(255),
- Content CLOB,
- ContentType VARCHAR(16),
- ObjectType VARCHAR2(25) NOT NULL,
- ObjectId NUMBER(11,0) DEFAULT 0 NOT NULL,
- Creator NUMBER(11,0) DEFAULT 0 NOT NULL,
- Created DATE,
- LastUpdatedBy NUMBER(11,0) DEFAULT 0 NOT NULL,
- LastUpdated DATE
-);
-
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
diff --git a/rt/etc/upgrade/3.1.0/schema.Pg b/rt/etc/upgrade/3.1.0/schema.Pg
deleted file mode 100755
index 94c3fe7..0000000
--- a/rt/etc/upgrade/3.1.0/schema.Pg
+++ /dev/null
@@ -1,25 +0,0 @@
--- {{{ Attributes
-
-CREATE SEQUENCE attributes_id_seq;
-
-CREATE TABLE Attributes (
- id INTEGER DEFAULT nextval('attributes_id_seq'),
- Name varchar(255) NOT NULL ,
- Description varchar(255) NULL ,
- Content text,
- ContentType varchar(16),
- ObjectType varchar(64),
- ObjectId integer,
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- PRIMARY KEY (id)
-
-);
-
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
-
--- }}}
-
diff --git a/rt/etc/upgrade/3.1.0/schema.SQLite b/rt/etc/upgrade/3.1.0/schema.SQLite
deleted file mode 100644
index 1dd466f..0000000
--- a/rt/etc/upgrade/3.1.0/schema.SQLite
+++ /dev/null
@@ -1,21 +0,0 @@
---- {{{ Attributes
-CREATE TABLE Attributes (
- id INTEGER PRIMARY KEY ,
- Name varchar(255) NOT NULL ,
- Description varchar(255) NULL ,
- Content LONGTEXT NULL ,
- ContentType varchar(16),
- ObjectType varchar(25) NOT NULL ,
- ObjectId INTEGER default 0,
- Creator integer NULL ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NULL ,
- LastUpdated DATETIME NULL
-
-) ;
-
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
-
---- }}}
-
diff --git a/rt/etc/upgrade/3.1.0/schema.mysql b/rt/etc/upgrade/3.1.0/schema.mysql
deleted file mode 100755
index c4a345d..0000000
--- a/rt/etc/upgrade/3.1.0/schema.mysql
+++ /dev/null
@@ -1,21 +0,0 @@
-# {{{ Attributes
-
-CREATE TABLE Attributes (
- id INTEGER NOT NULL AUTO_INCREMENT,
- Name varchar(255) NULL ,
- Description varchar(255) NULL ,
- Content text,
- ContentType varchar(16),
- ObjectType varchar(64),
- ObjectId integer, # foreign key to anything
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-CREATE INDEX Attributes1 on Attributes(Name);
-CREATE INDEX Attributes2 on Attributes(ObjectType, ObjectId);
-
-# }}}
diff --git a/rt/etc/upgrade/3.1.15/content b/rt/etc/upgrade/3.1.15/content
deleted file mode 100644
index d23125a..0000000
--- a/rt/etc/upgrade/3.1.15/content
+++ /dev/null
@@ -1,7 +0,0 @@
-@Scrips = (
- { ScripCondition => 'On Owner Change',
- ScripAction => 'Notify Owner',
- Template => 'Transaction' },
-);
-
-1;
diff --git a/rt/etc/upgrade/3.1.17/content b/rt/etc/upgrade/3.1.17/content
deleted file mode 100644
index 1d648d8..0000000
--- a/rt/etc/upgrade/3.1.17/content
+++ /dev/null
@@ -1,22 +0,0 @@
-@ScripActions = (
- { Name => 'Notify Ccs as Comment', # loc
- Description => 'Sends mail to the Ccs as a comment', # loc
- ExecModule => 'NotifyAsComment',
- Argument => 'Cc' },
- { Name => 'Notify Ccs', # loc
- Description => 'Sends mail to the Ccs', # loc
- ExecModule => 'Notify',
- Argument => 'Cc' },
-);
-
-
-@ScripConditions = (
- {
- Name => 'On Priority Change', # loc
- Description => 'Whenever a ticket\'s priority changes', # loc
- ApplicableTransTypes => 'Set',
- ExecModule => 'PriorityChange',
- },
-);
-
-1;
diff --git a/rt/etc/upgrade/3.3.0/acl.Informix b/rt/etc/upgrade/3.3.0/acl.Informix
deleted file mode 100644
index 73c16ae..0000000
--- a/rt/etc/upgrade/3.3.0/acl.Informix
+++ /dev/null
@@ -1,4 +0,0 @@
-sub acl {
- return ();
-}
-1;
diff --git a/rt/etc/upgrade/3.3.0/acl.Oracle b/rt/etc/upgrade/3.3.0/acl.Oracle
deleted file mode 100644
index 73c16ae..0000000
--- a/rt/etc/upgrade/3.3.0/acl.Oracle
+++ /dev/null
@@ -1,4 +0,0 @@
-sub acl {
- return ();
-}
-1;
diff --git a/rt/etc/upgrade/3.3.0/acl.Pg b/rt/etc/upgrade/3.3.0/acl.Pg
deleted file mode 100644
index bd2e36c..0000000
--- a/rt/etc/upgrade/3.3.0/acl.Pg
+++ /dev/null
@@ -1,20 +0,0 @@
-sub acl {
- my $dbh = shift;
-
- my @acls;
-
- my @tables = qw (
- objectcustomfieldvalues
- objectcustomfields_id_s
- objectcustomfields
- );
-
- foreach my $table (@tables) {
- push @acls,
- "GRANT SELECT, INSERT, UPDATE, DELETE ON $table to "
- . RT->Config->Get('DatabaseUser') . ";";
-
- }
- return (@acls);
-}
-1;
diff --git a/rt/etc/upgrade/3.3.0/acl.SQLite b/rt/etc/upgrade/3.3.0/acl.SQLite
deleted file mode 100644
index 73c16ae..0000000
--- a/rt/etc/upgrade/3.3.0/acl.SQLite
+++ /dev/null
@@ -1,4 +0,0 @@
-sub acl {
- return ();
-}
-1;
diff --git a/rt/etc/upgrade/3.3.0/acl.mysql b/rt/etc/upgrade/3.3.0/acl.mysql
deleted file mode 100644
index 73c16ae..0000000
--- a/rt/etc/upgrade/3.3.0/acl.mysql
+++ /dev/null
@@ -1,4 +0,0 @@
-sub acl {
- return ();
-}
-1;
diff --git a/rt/etc/upgrade/3.3.0/content b/rt/etc/upgrade/3.3.0/content
deleted file mode 100644
index 0afc604..0000000
--- a/rt/etc/upgrade/3.3.0/content
+++ /dev/null
@@ -1 +0,0 @@
-1;
diff --git a/rt/etc/upgrade/3.3.0/schema.Oracle b/rt/etc/upgrade/3.3.0/schema.Oracle
deleted file mode 100644
index f81feeb..0000000
--- a/rt/etc/upgrade/3.3.0/schema.Oracle
+++ /dev/null
@@ -1,65 +0,0 @@
-alter Table Transactions ADD ObjectType VARCHAR2(64);
-UPDATE Transactions set ObjectType = 'RT::Ticket';
-ALTER TABLE Transactions modify ObjectType NOT NULL;
-ALTER TABLE Transactions drop column EffectiveTicket;
-ALTER TABLE Transactions ADD ReferenceType VARCHAR2(255) NULL;
-ALTER TABLE Transactions ADD OldReference NUMBER(11,0) NULL;
-ALTER TABLE Transactions ADD NewReference NUMBER(11,0) NULL;
-DROP INDEX transactions1;
-ALTER TABLE Transactions rename column Ticket to ObjectId;
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
-
-ALTER TABLE TicketCustomFieldValues rename to ObjectCustomFieldValues;
-ALTER TABLE ObjectCustomFieldValues rename column Ticket to ObjectId;
-ALTER TABLE ObjectCustomFieldValues ADD ObjectType VARCHAR2(255);
-UPDATE ObjectCustomFieldValues set ObjectType = 'RT::Ticket';
-ALTER TABLE ObjectCustomFieldValues MODIFY ObjectType NOT NULL;
-ALTER TABLE ObjectCustomFieldValues ADD Disabled NUMBER(11,0);
-ALTER TABLE ObjectCustomFieldValues MODIFY Disabled default 0;
-UPDATE ObjectCustomFieldValues SET Disabled = 0;
-ALTER TABLE ObjectCustomFieldValues MODIFY Disabled NOT NULL;
-ALTER TABLE ObjectCustomFieldValues ADD LargeContent CLOB NULL;
-ALTER TABLE ObjectCustomFieldValues ADD ContentType VARCHAR2(80) NULL;
-ALTER TABLE ObjectCustomFieldValues ADD ContentEncoding VARCHAR2(80) NULL;
-ALTER TABLE ObjectCustomFieldValues ADD SortOrder NUMBER(11,0) DEFAULT 0 NOT NULL;
-
-
-
-CREATE INDEX ObjectCustomFieldValues1 on ObjectCustomFieldValues (CustomField,ObjectType,ObjectId,Content);
-CREATE INDEX ObjectCustomFieldValues2 on ObjectCustomFieldValues (CustomField,ObjectType,ObjectId);
-
-
-
-CREATE SEQUENCE OBJECTCUSTOMFIELDS_seq;
-CREATE TABLE ObjectCustomFields (
- id NUMBER(11,0)
- CONSTRAINT ObjectCustomFields_Key PRIMARY KEY,
- CustomField NUMBER(11,0) NOT NULL,
- ObjectId NUMBER(11,0) NOT NULL,
- SortOrder NUMBER(11,0) DEFAULT 0 NOT NULL,
- Creator NUMBER(11,0) DEFAULT 0 NOT NULL,
- Created DATE,
- LastUpdatedBy NUMBER(11,0) DEFAULT 0 NOT NULL,
- LastUpdated DATE
-);
-
-
-INSERT into ObjectCustomFields (id, CustomField, ObjectId, SortOrder, Creator, LastUpdatedBy) SELECT objectcustomfields_seq.nextval, id, Queue, SortOrder, Creator, LastUpdatedBy from CustomFields;
-
-ALTER TABLE CustomFields ADD LookupType VARCHAR2(255);
-ALTER TABLE CustomFields ADD Repeated NUMBER(11,0);
-ALTER TABLE CustomFields ADD Pattern VARCHAR2(255) NULL;
-ALTER TABLE CustomFields ADD MaxValues NUMBER(11,0);
-
-UPDATE CustomFields SET MaxValues = 0 WHERE Type LIKE '%Multiple';
-UPDATE CustomFields SET MaxValues = 1 WHERE Type LIKE '%Single';
-UPDATE CustomFields SET Type = 'Select' WHERE Type LIKE 'Select%';
-UPDATE CustomFields SET Type = 'Freeform' WHERE Type LIKE 'Freeform%';
-UPDATE CustomFields Set LookupType = 'RT::Queue-RT::Ticket';
-ALTER TABLE CustomFields MODIFY LookupType NOT NULL;
-UPDATE CustomFields Set Repeated = 0;
-ALTER TABLE CustomFields MODIFY Repeated DEFAULT 0;
-ALTER TABLE CustomFields MODIFY Repeated NOT NULL;
-ALTER TABLE CustomFields drop column Queue;
-
-
diff --git a/rt/etc/upgrade/3.3.0/schema.Pg b/rt/etc/upgrade/3.3.0/schema.Pg
deleted file mode 100644
index 427eae7..0000000
--- a/rt/etc/upgrade/3.3.0/schema.Pg
+++ /dev/null
@@ -1,74 +0,0 @@
-alter Table Transactions ADD Column ObjectType varchar(64);
-update Transactions set ObjectType = 'RT::Ticket';
-ALTER TABLE Transactions ALTER COLUMN ObjectType SET NOT NULL;
-alter table Transactions drop column EffectiveTicket;
-alter table Transactions add column ReferenceType varchar(255) NULL;
-alter table Transactions add column OldReference integer NULL;
-alter table Transactions add column NewReference integer NULL;
-drop index transactions1;
-alter table Transactions rename column Ticket to ObjectId;
-
-
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
-
-alter table TicketCustomFieldValues rename to ObjectCustomFieldValues;
-
-alter table ObjectCustomFieldValues rename column Ticket to ObjectId;
-
-alter table objectcustomfieldvalues add column ObjectType varchar(255);
-
-update objectcustomfieldvalues set ObjectType = 'RT::Ticket';
-
-ALTER TABLE objectcustomfieldvalues ALTER COLUMN ObjectType SET NOT NULL;
-
-alter table objectcustomfieldvalues add column Current int;
-
-alter table objectcustomfieldvalues alter column Current SET default 1;
-
-UPDATE objectcustomfieldvalues SET Current = 1;
-
-alter table objectcustomfieldvalues add column LargeContent TEXT NULL;
-
-alter table objectcustomfieldvalues add column ContentType varchar(80) NULL;
-
-alter table objectcustomfieldvalues add column ContentEncoding varchar(80) NULL;
-
-create index ObjectCustomFieldValues1 on objectcustomfieldvalues (CustomField,ObjectType,ObjectId,Content);
-
-create index ObjectCustomFieldValues2 on objectcustomfieldvalues (CustomField,ObjectType,ObjectId);
-
-
-CREATE SEQUENCE objectcustomfields_id_s;
-
-CREATE TABLE ObjectCustomFields (
- id INTEGER DEFAULT nextval('objectcustomfields_id_s'),
- CustomField integer NOT NULL,
- ObjectId integer NOT NULL,
- SortOrder integer NOT NULL DEFAULT 0 ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created TIMESTAMP NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated TIMESTAMP NULL ,
- PRIMARY KEY (id)
-
-);
-
-
-INSERT into ObjectCustomFields (CustomField, ObjectId, SortOrder, Creator, LastUpdatedBy) SELECT id, Queue, SortOrder, Creator, LastUpdatedBy from CustomFields;
-
-alter table CustomFields add column LookupType varchar(255);
-alter table CustomFields add column Repeated int2;
-alter table CustomFields add column Pattern varchar(255) NULL;
-alter table CustomFields add column MaxValues integer;
-
-UPDATE CustomFields SET MaxValues = 0 WHERE Type LIKE '%Multiple';
-UPDATE CustomFields SET MaxValues = 1 WHERE Type LIKE '%Single';
-UPDATE CustomFields SET Type = 'Select' WHERE Type LIKE 'Select%';
-UPDATE CustomFields SET Type = 'Freeform' WHERE Type LIKE 'Freeform%';
-UPDATE CustomFields Set LookupType = 'RT::Queue-RT::Ticket';
-ALTER TABLE CustomFields ALTER COLUMN LookupType SET NOT NULL;
-UPDATE CustomFields Set Repeated = 0;
-ALTER TABLE CustomFields ALTER COLUMN Repeated SET DEFAULT 0;
-ALTER TABLE CustomFields ALTER COLUMN Repeated SET NOT NULL;
-alter table CustomFields drop column Queue;
diff --git a/rt/etc/upgrade/3.3.0/schema.mysql b/rt/etc/upgrade/3.3.0/schema.mysql
deleted file mode 100644
index 0e33a28..0000000
--- a/rt/etc/upgrade/3.3.0/schema.mysql
+++ /dev/null
@@ -1,65 +0,0 @@
-alter Table Transactions ADD Column (ObjectType varchar(64) not null);
-update Transactions set ObjectType = 'RT::Ticket';
-alter table Transactions drop column EffectiveTicket;
-alter table Transactions add column ReferenceType varchar(255) NULL;
-alter table Transactions add column OldReference integer NULL;
-alter table Transactions add column NewReference integer NULL;
-alter table Transactions drop index transactions1;
-alter table Transactions change Ticket ObjectId integer NOT NULL DEFAULT 0 ;
-
-CREATE INDEX Transactions1 ON Transactions (ObjectType, ObjectId);
-
-alter table TicketCustomFieldValues rename ObjectCustomFieldValues;
-
-alter table ObjectCustomFieldValues change Ticket ObjectId integer NOT NULL DEFAULT 0 ;
-
-alter table ObjectCustomFieldValues add column ObjectType varchar(255) not null;
-
-update ObjectCustomFieldValues set ObjectType = 'RT::Ticket';
-
-alter table ObjectCustomFieldValues add column Current bool default 1;
-
-alter table ObjectCustomFieldValues add column LargeContent LONGTEXT NULL;
-
-alter table ObjectCustomFieldValues add column ContentType varchar(80) NULL;
-
-alter table ObjectCustomFieldValues add column ContentEncoding varchar(80) NULL;
-
-# These could fail if there's no such index and there's no "drop index if exists" syntax
-#alter table ObjectCustomFieldValues drop index ticketcustomfieldvalues1;
-#alter table ObjectCustomFieldValues drop index ticketcustomfieldvalues2;
-
-alter table ObjectCustomFieldValues add index ObjectCustomFieldValues1 (Content);
-
-alter table ObjectCustomFieldValues add index ObjectCustomFieldValues2 (CustomField,ObjectType,ObjectId);
-
-
-CREATE TABLE ObjectCustomFields (
- id INTEGER NOT NULL AUTO_INCREMENT,
- CustomField int NOT NULL ,
- ObjectId integer NOT NULL,
- SortOrder integer NOT NULL DEFAULT 0 ,
-
- Creator integer NOT NULL DEFAULT 0 ,
- Created DATETIME NULL ,
- LastUpdatedBy integer NOT NULL DEFAULT 0 ,
- LastUpdated DATETIME NULL ,
- PRIMARY KEY (id)
-) TYPE=InnoDB;
-
-
-INSERT into ObjectCustomFields (id, CustomField, ObjectId, SortOrder, Creator, LastUpdatedBy) SELECT null, id, Queue, SortOrder, Creator, LastUpdatedBy from CustomFields;
-
-alter table CustomFields add column LookupType varchar(255) NOT NULL;
-alter table CustomFields add column Repeated int2 NOT NULL DEFAULT 0 ;
-alter table CustomFields add column Pattern varchar(255) NULL;
-alter table CustomFields add column MaxValues integer;
-# See above
-# alter table CustomFields drop index CustomFields1;
-
-UPDATE CustomFields SET MaxValues = 0 WHERE Type LIKE '%Multiple';
-UPDATE CustomFields SET MaxValues = 1 WHERE Type LIKE '%Single';
-UPDATE CustomFields SET Type = 'Select' WHERE Type LIKE 'Select%';
-UPDATE CustomFields SET Type = 'Freeform' WHERE Type LIKE 'Freeform%';
-UPDATE CustomFields Set LookupType = 'RT::Queue-RT::Ticket';
-alter table CustomFields drop column Queue;
diff --git a/rt/etc/upgrade/3.3.11/acl.Oracle b/rt/etc/upgrade/3.3.11/acl.Oracle
deleted file mode 100644
index 73c16ae..0000000
--- a/rt/etc/upgrade/3.3.11/acl.Oracle
+++ /dev/null
@@ -1,4 +0,0 @@
-sub acl {
- return ();
-}
-1;
diff --git a/rt/etc/upgrade/3.3.11/acl.Pg b/rt/etc/upgrade/3.3.11/acl.Pg
deleted file mode 100644
index 73c16ae..0000000
--- a/rt/etc/upgrade/3.3.11/acl.Pg
+++ /dev/null
@@ -1,4 +0,0 @@
-sub acl {
- return ();
-}
-1;
diff --git a/rt/etc/upgrade/3.3.11/acl.SQLite b/rt/etc/upgrade/3.3.11/acl.SQLite
deleted file mode 100644
index 73c16ae..0000000
--- a/rt/etc/upgrade/3.3.11/acl.SQLite
+++ /dev/null
@@ -1,4 +0,0 @@
-sub acl {
- return ();
-}
-1;
diff --git a/rt/etc/upgrade/3.3.11/acl.mysql b/rt/etc/upgrade/3.3.11/acl.mysql
deleted file mode 100644
index 73c16ae..0000000
--- a/rt/etc/upgrade/3.3.11/acl.mysql
+++ /dev/null
@@ -1,4 +0,0 @@
-sub acl {
- return ();
-}
-1;
diff --git a/rt/etc/upgrade/3.3.11/content b/rt/etc/upgrade/3.3.11/content
deleted file mode 100644
index 0afc604..0000000
--- a/rt/etc/upgrade/3.3.11/content
+++ /dev/null
@@ -1 +0,0 @@
-1;
diff --git a/rt/etc/upgrade/3.3.11/schema.Oracle b/rt/etc/upgrade/3.3.11/schema.Oracle
deleted file mode 100644
index e69de29..0000000
--- a/rt/etc/upgrade/3.3.11/schema.Oracle
+++ /dev/null
diff --git a/rt/etc/upgrade/3.3.11/schema.Pg b/rt/etc/upgrade/3.3.11/schema.Pg
deleted file mode 100644
index 6ab5d65..0000000
--- a/rt/etc/upgrade/3.3.11/schema.Pg
+++ /dev/null
@@ -1,11 +0,0 @@
-ALTER TABLE ObjectCustomFieldValues ADD COLUMN SortOrder INTEGER;
-UPDATE ObjectCustomFieldValues SET SortOrder = 0;
-ALTER TABLE ObjectCustomFieldValues ALTER COLUMN SortOrder SET DEFAULT 0;
-ALTER TABLE ObjectCustomFieldValues ALTER COLUMN SortOrder SET NOT NULL;
-ALTER TABLE ObjectCustomFieldValues ADD COLUMN Disabled INTEGER;
-UPDATE ObjectCustomFieldValues SET Disabled = 1 WHERE Current = 0;
-UPDATE ObjectCustomFieldValues SET Disabled = 0 WHERE Current != 0;
-ALTER TABLE ObjectCustomFieldValues ALTER COLUMN Disabled SET DEFAULT 0;
-ALTER TABLE ObjectCustomFieldValues ALTER COLUMN Disabled SET NOT NULL;
-
-ALTER TABLE ObjectCustomFieldValues DROP COLUMN Current;
diff --git a/rt/etc/upgrade/3.3.11/schema.SQLite b/rt/etc/upgrade/3.3.11/schema.SQLite
deleted file mode 100644
index e69de29..0000000
--- a/rt/etc/upgrade/3.3.11/schema.SQLite
+++ /dev/null
diff --git a/rt/etc/upgrade/3.3.11/schema.mysql b/rt/etc/upgrade/3.3.11/schema.mysql
deleted file mode 100644
index cc35d40..0000000
--- a/rt/etc/upgrade/3.3.11/schema.mysql
+++ /dev/null
@@ -1,5 +0,0 @@
-ALTER TABLE ObjectCustomFieldValues ADD COLUMN SortOrder INTEGER NOT NULL DEFAULT 0;
-ALTER TABLE ObjectCustomFieldValues ADD COLUMN Disabled int2 NOT NULL DEFAULT 0;
-
-UPDATE ObjectCustomFieldValues SET Disabled = 1 WHERE Current = 0;
-ALTER TABLE ObjectCustomFieldValues DROP COLUMN Current;
diff --git a/rt/etc/upgrade/3.5.1/content b/rt/etc/upgrade/3.5.1/content
deleted file mode 100644
index 02d6a0c..0000000
--- a/rt/etc/upgrade/3.5.1/content
+++ /dev/null
@@ -1,36 +0,0 @@
-@Attributes = (
- { Name => 'Search - My Tickets',
- Description => '[_1] highest priority tickets I own',
- Content =>
- { Format => q{'<a href="__WebPath__/Ticket/Display.html?id=__id__">__id__</a>/TITLE:#', '<a href="__WebPath__/Ticket/Display.html?id=__id__">__Subject__</a>/TITLE:Subject', Priority, QueueName, ExtendedStatus},
- Query => " Owner = '__CurrentUser__' AND ( Status = 'new' OR Status = 'open')",
- OrderBy => 'Priority',
- Order => 'DESC' },
- },
- { Name => 'Search - Unowned Tickets',
- Description => '[_1] newest unowned tickets',
- Content =>
- { Format => "'<a href=\"__WebPath__/Ticket/Display.html?id=__id__\">__id__</a>/TITLE:#', '<a href=\"__WebPath__/Ticket/Display.html?id=__id__\">__Subject__</a>/TITLE:Subject', QueueName, ExtendedStatus, CreatedRelative, '<A HREF=\"__WebPath__/Ticket/Display.html?Action=Take&id=__id__\">__loc(Take)__</a>/TITLE:&nbsp;' ",
- Query => " Owner = 'Nobody' AND ( Status = 'new' OR Status = 'open')",
- OrderBy => 'Created',
- Order => 'DESC' },
- },
- { Name => 'HomepageSettings',
- Description => 'HomepageSettings',
- Content =>
- { 'body' =>
- [ { type => 'system', name => 'My Tickets' },
- { type => 'system', name => 'Unowned Tickets' },
- { type => 'component', name => 'QuickCreate'},
- ],
- 'summary' =>
- [
- { type => 'component', name => 'MyReminders' },
- { type => 'component', name => 'Quicksearch' },
- { type => 'component', name => 'RefreshHomepage' },
- ]
- },
-}
-);
-
-1;
diff --git a/rt/etc/upgrade/3.7.1/content b/rt/etc/upgrade/3.7.1/content
deleted file mode 100644
index fdd5061..0000000
--- a/rt/etc/upgrade/3.7.1/content
+++ /dev/null
@@ -1,14 +0,0 @@
-@ScripConditions = (
- { Name => 'On Close', # loc
- Description => 'Whenever a ticket is closed', # loc
- ApplicableTransTypes => 'Status,Set',
- ExecModule => 'CloseTicket',
- },
- { Name => 'On Reopen', # loc
- Description => 'Whenever a ticket is reopened', # loc
- ApplicableTransTypes => 'Status,Set',
- ExecModule => 'ReopenTicket',
- },
-);
-
-
diff --git a/rt/etc/upgrade/3.7.10/content b/rt/etc/upgrade/3.7.10/content
deleted file mode 100644
index d19f9e6..0000000
--- a/rt/etc/upgrade/3.7.10/content
+++ /dev/null
@@ -1,49 +0,0 @@
-
-@Templates = (
- { Queue => 0,
- Name => "Error: public key", # loc
- Description =>
- "Inform user that he has problems with public key and couldn't recieve encrypted content", # loc
- Content => q{Subject: We have no your public key or it's wrong
-
-You received this message as we have no your public PGP key or we have a problem with your key. Inform the administrator about the problem.
-}
- },
- { Queue => 0,
- Name => "Error to RT owner: public key", # loc
- Description =>
- "Inform RT owner that user(s) have problems with public keys", # loc
- Content => q{Subject: Some users have problems with public keys
-
-You received this message as RT has problems with public keys of the following user:
-{
- foreach my $e ( @BadRecipients ) {
- $OUT .= "* ". $e->{'Message'} ."\n";
- }
-}}
- },
- { Queue => 0,
- Name => "Error: no private key", # loc
- Description =>
- "Inform user that we received an encrypted email and we have no private keys to decrypt", # loc
- Content => q{Subject: we received message we cannot decrypt
-
-You sent an encrypted message with subject '{ $Message->head->get('Subject') }',
-but we have no private key it's encrypted to.
-
-Please, check that you encrypt messages with correct keys
-or contact the system administrator.}
- },
- { Queue => 0,
- Name => "Error: bad GnuPG data", # loc
- Description =>
- "Inform user that a message he sent has invalid GnuPG data", # loc
- Content => q{Subject: We received a message we cannot handle
-
-You sent us a message that we cannot handle due to corrupted GnuPG signature or encrypted block. we get the following error(s):
-{ foreach my $msg ( @Messages ) {
- $OUT .= "* $msg\n";
- }
-}}
- },
-);
diff --git a/rt/etc/upgrade/3.7.15/content b/rt/etc/upgrade/3.7.15/content
deleted file mode 100644
index 9d97c35..0000000
--- a/rt/etc/upgrade/3.7.15/content
+++ /dev/null
@@ -1,12 +0,0 @@
-
-@Templates = (
- { Queue => 0,
- Name => "Forward", # loc
- Description => "Heading of a forwarded message", # loc
- Content => q{
-
-This is forward of transaction #{ $Transaction->id } of a ticket #{ $Ticket->id }
-}
- },
-);
-
diff --git a/rt/etc/upgrade/3.7.19/content b/rt/etc/upgrade/3.7.19/content
deleted file mode 100644
index ac34ebe..0000000
--- a/rt/etc/upgrade/3.7.19/content
+++ /dev/null
@@ -1,37 +0,0 @@
-
-{ use strict;
-add_description_to_all_scrips();
-
-sub add_description_to_all_scrips {
- require RT::Scrips;
- my $scrips = RT::Scrips->new( $RT::SystemUser );
- $scrips->Limit( FIELD => 'Description', OPERATOR => 'IS', VALUE => 'NULL' );
- $scrips->Limit( FIELD => 'Description', VALUE => '' );
- while ( my $scrip = $scrips->Next ) {
- my $desc = $scrip->Description;
- next if defined $desc && length $desc;
-
- $desc = gen_scrip_description( $scrip );
-
- my ($status, $msg) = $scrip->SetDescription( $desc );
- unless ( $status ) {
- print STDERR "Couldn't set description of a scrip: $msg";
- } else {
- print "Added description to scrip #". $scrip->id ."\n";
- }
- }
-}
-
-sub gen_scrip_description {
- my $scrip = shift;
- my $condition = $scrip->ConditionObj->Name
- || $scrip->ConditionObj->Description
- || ('On Condition #'. $scrip->Condition);
- my $action = $scrip->ActionObj->Name
- || $scrip->ActionObj->Description
- || ('Run Action #'. $scrip->Action);
- return join ' ', $condition, $action;
-}
-}
-
-1;
diff --git a/rt/etc/upgrade/3.7.3/schema.Oracle b/rt/etc/upgrade/3.7.3/schema.Oracle
deleted file mode 100644
index 6136efa..0000000
--- a/rt/etc/upgrade/3.7.3/schema.Oracle
+++ /dev/null
@@ -1,5 +0,0 @@
-alter table CustomFields add Pattern_TMP clob;
-update CustomFields set Pattern_TMP = Pattern;
-commit;
-alter table CustomFields drop column Pattern;
-alter table CustomFields rename column Pattern_TMP to Pattern;
diff --git a/rt/etc/upgrade/3.7.3/schema.Pg b/rt/etc/upgrade/3.7.3/schema.Pg
deleted file mode 100644
index 5d0312e..0000000
--- a/rt/etc/upgrade/3.7.3/schema.Pg
+++ /dev/null
@@ -1 +0,0 @@
-ALTER TABLE customfields ALTER COLUMN pattern TYPE VARCHAR(65536);
diff --git a/rt/etc/upgrade/3.7.3/schema.mysql b/rt/etc/upgrade/3.7.3/schema.mysql
deleted file mode 100644
index 51c376d..0000000
--- a/rt/etc/upgrade/3.7.3/schema.mysql
+++ /dev/null
@@ -1 +0,0 @@
-ALTER TABLE CustomFields CHANGE Pattern Pattern TEXT NULL;
diff --git a/rt/etc/upgrade/3.7.81/schema.Oracle b/rt/etc/upgrade/3.7.81/schema.Oracle
deleted file mode 100644
index 02da4ec..0000000
--- a/rt/etc/upgrade/3.7.81/schema.Oracle
+++ /dev/null
@@ -1,2 +0,0 @@
-CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (MemberId, ImmediateParentId);
-
diff --git a/rt/etc/upgrade/3.7.81/schema.mysql b/rt/etc/upgrade/3.7.81/schema.mysql
deleted file mode 100644
index 02da4ec..0000000
--- a/rt/etc/upgrade/3.7.81/schema.mysql
+++ /dev/null
@@ -1,2 +0,0 @@
-CREATE INDEX CachedGroupMembers3 on CachedGroupMembers (MemberId, ImmediateParentId);
-
diff --git a/rt/etc/upgrade/3.7.82/content b/rt/etc/upgrade/3.7.82/content
deleted file mode 100644
index a1c555f..0000000
--- a/rt/etc/upgrade/3.7.82/content
+++ /dev/null
@@ -1,13 +0,0 @@
-@Attributes = (
- { Name => 'Search - Bookmarked Tickets',
- Description => 'Bookmarked Tickets', #loc
- Content =>
- { Format => q{'<a href="__WebPath__/Ticket/Display.html?id=__id__">__id__</a>/TITLE:#',}
- . q{'<a href="__WebPath__/Ticket/Display.html?id=__id__">__Subject__</a>/TITLE:Subject',}
- . q{Priority, QueueName, ExtendedStatus, Bookmark},
- Query => "__Bookmarks__",
- OrderBy => 'LastUpdated',
- Order => 'DESC' },
- },
-);
-
diff --git a/rt/etc/upgrade/3.7.85/content b/rt/etc/upgrade/3.7.85/content
deleted file mode 100644
index 49ab286..0000000
--- a/rt/etc/upgrade/3.7.85/content
+++ /dev/null
@@ -1,11 +0,0 @@
-@Templates = (
-
- { Queue => '0',
- Name => 'Email Digest', # loc
- Description => 'Email template for periodic notification digests', # loc
- Content => q[Subject: RT Email Digest
-
-{ $Argument }
-],
- },
-);
diff --git a/rt/etc/upgrade/3.7.86/content b/rt/etc/upgrade/3.7.86/content
deleted file mode 100644
index da087ed..0000000
--- a/rt/etc/upgrade/3.7.86/content
+++ /dev/null
@@ -1,23 +0,0 @@
-@Final = (
- sub {
- $RT::Logger->debug("Adding search for bookmarked tickets to defaults");
- my $sys = RT::System->new($RT::SystemUser);
-
- my $attrs = RT::Attributes->new( $RT::SystemUser );
- $attrs->LimitToObject( $sys );
- my ($attr) = $attrs->Named( 'HomepageSettings' );
- unless ($attr) {
- $RT::Logger->error("You have no global home page settings");
- return;
- }
- my $content = $attr->Content;
- unshift @{ $content->{'body'} ||= [] },
- { type => 'system', name => 'Bookmarked Tickets' };
-
- my ($status, $msg) = $attr->SetContent( $content );
- $RT::Logger->error($msg) unless $status;
-
- $RT::Logger->debug("done.");
- return 1;
- },
-);
diff --git a/rt/etc/upgrade/3.7.87/content b/rt/etc/upgrade/3.7.87/content
deleted file mode 100644
index 0c677c4..0000000
--- a/rt/etc/upgrade/3.7.87/content
+++ /dev/null
@@ -1,28 +0,0 @@
-@Templates = (
-{
- Queue => 0,
- Name => "Error: Missing dashboard", # loc
- Description =>
- "Inform user that a dashboard he subscribed to is missing", # loc
- Content => q{Subject: [{RT->Config->Get('rtname')}] Missing dashboard!
-
-Greetings,
-
-You are subscribed to a dashboard that is currently missing. Most likely, the dashboard was deleted.
-
-RT will remove this subscription as it is no longer useful. Here's the information RT had about your subscription:
-
-DashboardID: { $SubscriptionObj->SubValue('DashboardId') }
-Frequency: { $SubscriptionObj->SubValue('Frequency') }
-Hour: { $SubscriptionObj->SubValue('Hour') }
-{
- $SubscriptionObj->SubValue('Frequency') eq 'weekly'
- ? "Day of week: " . $SubscriptionObj->SubValue('Dow')
- : $SubscriptionObj->SubValue('Frequency') eq 'monthly'
- ? "Day of month: " . $SubscriptionObj->SubValue('Dom')
- : ''
-}
-}
-},
-);
-
diff --git a/rt/etc/upgrade/3.8-branded-queues-extension b/rt/etc/upgrade/3.8-branded-queues-extension
deleted file mode 100755
index 6a0ea48..0000000
--- a/rt/etc/upgrade/3.8-branded-queues-extension
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/perl
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2008 Best Practical Solutions, LLC
-# <jesse@bestpractical.com>
-#
-# (Except where explicitly superseded by other copyright notices)
-#
-#
-# LICENSE:
-#
-# 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.
-#
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-#
-#
-# CONTRIBUTION SUBMISSION POLICY:
-#
-# (The following paragraph is not intended to limit the rights granted
-# to you to modify and distribute this software under the terms of
-# the GNU General Public License and is only of importance to you if
-# you choose to contribute your changes and enhancements to the
-# community by submitting them to Best Practical Solutions, LLC.)
-#
-# By intentionally submitting any modifications, corrections or
-# derivatives to this work, or any other work intended for use with
-# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-# you are the copyright holder for those contributions and you grant
-# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
-# royalty-free, perpetual, license to use, copy, create derivative
-# works based on those contributions, and sublicense and distribute
-# those contributions and any derivatives thereof.
-#
-# END BPS TAGGED BLOCK }}}
-use strict;
-use warnings;
-
-use lib "local/lib";
-use lib "lib";
-
-
-use RT;
-RT::LoadConfig();
-RT::Init();
-
-use RT::Queues;
-
-my $queues = RT::Queues->new( $RT::SystemUser );
-$queues->UnLimit();
-while ( my $queue = $queues->Next ) {
- print "Processing queue ". ($queue->Name || $queue->id) ."...\n";
- my $old_attr = $queue->FirstAttribute('BrandedSubjectTag');
- unless ( $old_attr ) {
- print "\thas no old-style subject tag. skipping\n";
- next;
- }
- my $old_value = $old_attr->Content;
- unless ( $old_value ) {
- print "\thas empty old-style subject tag\n";
- } else {
- my ($status, $msg) = $queue->SetSubjectTag( $old_value );
- unless ( $status ) {
- print STDERR "\tERROR. Couldn't set tag: $msg\n";
- next;
- } else {
- print "\thave set new-style subject tag to '$old_value'\n";
- }
- }
-
- my ($status, $msg) = $queue->DeleteAttribute('BrandedSubjectTag');
- unless ( $status ) {
- print STDERR "\tERROR. Couldn't delete old-style tag: $msg\n";
- next;
- } else {
- print "\tdeleted old-style tag entry\n";
- }
- print "\tDONE\n";
-}
-
-exit 0;
-
diff --git a/rt/etc/upgrade/3.8-branded-queues-extension.in b/rt/etc/upgrade/3.8-branded-queues-extension.in
deleted file mode 100755
index 2f07d6e..0000000
--- a/rt/etc/upgrade/3.8-branded-queues-extension.in
+++ /dev/null
@@ -1,95 +0,0 @@
-#!@PERL@
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2008 Best Practical Solutions, LLC
-# <jesse@bestpractical.com>
-#
-# (Except where explicitly superseded by other copyright notices)
-#
-#
-# LICENSE:
-#
-# 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.
-#
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-#
-#
-# CONTRIBUTION SUBMISSION POLICY:
-#
-# (The following paragraph is not intended to limit the rights granted
-# to you to modify and distribute this software under the terms of
-# the GNU General Public License and is only of importance to you if
-# you choose to contribute your changes and enhancements to the
-# community by submitting them to Best Practical Solutions, LLC.)
-#
-# By intentionally submitting any modifications, corrections or
-# derivatives to this work, or any other work intended for use with
-# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-# you are the copyright holder for those contributions and you grant
-# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
-# royalty-free, perpetual, license to use, copy, create derivative
-# works based on those contributions, and sublicense and distribute
-# those contributions and any derivatives thereof.
-#
-# END BPS TAGGED BLOCK }}}
-use strict;
-use warnings;
-
-use lib "@LOCAL_LIB_PATH@";
-use lib "@RT_LIB_PATH@";
-
-
-use RT;
-RT::LoadConfig();
-RT::Init();
-
-use RT::Queues;
-
-my $queues = RT::Queues->new( $RT::SystemUser );
-$queues->UnLimit();
-while ( my $queue = $queues->Next ) {
- print "Processing queue ". ($queue->Name || $queue->id) ."...\n";
- my $old_attr = $queue->FirstAttribute('BrandedSubjectTag');
- unless ( $old_attr ) {
- print "\thas no old-style subject tag. skipping\n";
- next;
- }
- my $old_value = $old_attr->Content;
- unless ( $old_value ) {
- print "\thas empty old-style subject tag\n";
- } else {
- my ($status, $msg) = $queue->SetSubjectTag( $old_value );
- unless ( $status ) {
- print STDERR "\tERROR. Couldn't set tag: $msg\n";
- next;
- } else {
- print "\thave set new-style subject tag to '$old_value'\n";
- }
- }
-
- my ($status, $msg) = $queue->DeleteAttribute('BrandedSubjectTag');
- unless ( $status ) {
- print STDERR "\tERROR. Couldn't delete old-style tag: $msg\n";
- next;
- } else {
- print "\tdeleted old-style tag entry\n";
- }
- print "\tDONE\n";
-}
-
-exit 0;
-
diff --git a/rt/etc/upgrade/3.8-ical-extension b/rt/etc/upgrade/3.8-ical-extension
deleted file mode 100755
index 9561b97..0000000
--- a/rt/etc/upgrade/3.8-ical-extension
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/usr/bin/perl
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2008 Best Practical Solutions, LLC
-# <jesse@bestpractical.com>
-#
-# (Except where explicitly superseded by other copyright notices)
-#
-#
-# LICENSE:
-#
-# 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.
-#
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-#
-#
-# CONTRIBUTION SUBMISSION POLICY:
-#
-# (The following paragraph is not intended to limit the rights granted
-# to you to modify and distribute this software under the terms of
-# the GNU General Public License and is only of importance to you if
-# you choose to contribute your changes and enhancements to the
-# community by submitting them to Best Practical Solutions, LLC.)
-#
-# By intentionally submitting any modifications, corrections or
-# derivatives to this work, or any other work intended for use with
-# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-# you are the copyright holder for those contributions and you grant
-# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
-# royalty-free, perpetual, license to use, copy, create derivative
-# works based on those contributions, and sublicense and distribute
-# those contributions and any derivatives thereof.
-#
-# END BPS TAGGED BLOCK }}}
-use strict;
-use warnings;
-
-use lib "local/lib";
-use lib "lib";
-
-
-use RT;
-RT::LoadConfig();
-RT::Init();
-
-use RT::Attributes;
-my $attrs = RT::Attributes->new( $RT::SystemUser );
-$attrs->Limit(FIELD => 'ObjectType', OPERATOR=> '=', VALUE => 'RT::User');
-$attrs->Limit(FIELD => 'Name', OPERATOR=> '=', VALUE => 'ical-auth-token');
-while ( my $attr = $attrs->Next ) {
- my $uid = $attr->ObjectId;
- print "Processing auth token of user #". $uid ."...\n";
-
- my $user = RT::User->new( $RT::SystemUser );
- $user->Load( $uid );
- unless ( $user->id ) {
- print STDERR "\tERROR. Couldn't load user record\n";
- next;
- }
-
- my ($status, $msg);
-
- ($status, $msg) = $user->DeleteAttribute('AuthToken')
- if $user->FirstAttribute('AuthToken');
- unless ( $status ) {
- print STDERR "\tERROR. Couldn't delete duplicated attribute: $msg\n";
- next;
- } else {
- print "\tdeleted duplicate attribute\n";
- }
-
- ($status, $msg) = $attr->SetName('AuthToken');
- unless ( $status ) {
- print STDERR "\tERROR. Couldn't rename attribute: $msg\n";
- next;
- } else {
- print "\trenamed attribute\n";
- }
- print "\tDONE\n";
-}
-
-exit 0;
diff --git a/rt/etc/upgrade/3.8-ical-extension.in b/rt/etc/upgrade/3.8-ical-extension.in
deleted file mode 100644
index 510419c..0000000
--- a/rt/etc/upgrade/3.8-ical-extension.in
+++ /dev/null
@@ -1,96 +0,0 @@
-#!@PERL@
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2008 Best Practical Solutions, LLC
-# <jesse@bestpractical.com>
-#
-# (Except where explicitly superseded by other copyright notices)
-#
-#
-# LICENSE:
-#
-# 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.
-#
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-#
-#
-# CONTRIBUTION SUBMISSION POLICY:
-#
-# (The following paragraph is not intended to limit the rights granted
-# to you to modify and distribute this software under the terms of
-# the GNU General Public License and is only of importance to you if
-# you choose to contribute your changes and enhancements to the
-# community by submitting them to Best Practical Solutions, LLC.)
-#
-# By intentionally submitting any modifications, corrections or
-# derivatives to this work, or any other work intended for use with
-# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-# you are the copyright holder for those contributions and you grant
-# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
-# royalty-free, perpetual, license to use, copy, create derivative
-# works based on those contributions, and sublicense and distribute
-# those contributions and any derivatives thereof.
-#
-# END BPS TAGGED BLOCK }}}
-use strict;
-use warnings;
-
-use lib "@LOCAL_LIB_PATH@";
-use lib "@RT_LIB_PATH@";
-
-
-use RT;
-RT::LoadConfig();
-RT::Init();
-
-use RT::Attributes;
-my $attrs = RT::Attributes->new( $RT::SystemUser );
-$attrs->Limit(FIELD => 'ObjectType', OPERATOR=> '=', VALUE => 'RT::User');
-$attrs->Limit(FIELD => 'Name', OPERATOR=> '=', VALUE => 'ical-auth-token');
-while ( my $attr = $attrs->Next ) {
- my $uid = $attr->ObjectId;
- print "Processing auth token of user #". $uid ."...\n";
-
- my $user = RT::User->new( $RT::SystemUser );
- $user->Load( $uid );
- unless ( $user->id ) {
- print STDERR "\tERROR. Couldn't load user record\n";
- next;
- }
-
- my ($status, $msg);
-
- ($status, $msg) = $user->DeleteAttribute('AuthToken')
- if $user->FirstAttribute('AuthToken');
- unless ( $status ) {
- print STDERR "\tERROR. Couldn't delete duplicated attribute: $msg\n";
- next;
- } else {
- print "\tdeleted duplicate attribute\n";
- }
-
- ($status, $msg) = $attr->SetName('AuthToken');
- unless ( $status ) {
- print STDERR "\tERROR. Couldn't rename attribute: $msg\n";
- next;
- } else {
- print "\trenamed attribute\n";
- }
- print "\tDONE\n";
-}
-
-exit 0;
diff --git a/rt/etc/upgrade/3.8.0/content b/rt/etc/upgrade/3.8.0/content
deleted file mode 100644
index f4e389b..0000000
--- a/rt/etc/upgrade/3.8.0/content
+++ /dev/null
@@ -1,22 +0,0 @@
-@Final = (
- # by incident we've changed 'My Bookmarks' to 'Bookmarked Tickets' when
- # 3.7.82 upgrade script still was creating 'My Bookmarks', try to fix it
- sub {
- $RT::Logger->debug("Going to rename 'My Bookmarks' to 'Bookmarked Tickets'");
- my $sys = RT::System->new($RT::SystemUser);
-
- my $attrs = RT::Attributes->new( $RT::SystemUser );
- $attrs->LimitToObject( $sys );
- my ($attr) = $attrs->Named( 'Search - My Bookmarks' );
- unless ($attr) {
- $RT::Logger->debug("You have no global search 'My Bookmarks'. Skipped.");
- return 1;
- }
- my ($status, $msg) = $attr->SetName( 'Search - Bookmarked Tickets' );
- $RT::Logger->error($msg) and return undef unless $status;
-
- $RT::Logger->debug("Renamed.");
- return 1;
- },
-);
-
diff --git a/rt/etc/upgrade/3.8.1/content b/rt/etc/upgrade/3.8.1/content
deleted file mode 100644
index 89db596..0000000
--- a/rt/etc/upgrade/3.8.1/content
+++ /dev/null
@@ -1,24 +0,0 @@
-@Final = (
- sub {
- $RT::Logger->debug("Going to adjust 'Bookmarked Tickets'");
- my $sys = RT::System->new($RT::SystemUser);
-
- my $attrs = RT::Attributes->new( $RT::SystemUser );
- $attrs->LimitToObject( $sys );
- my ($attr) = $attrs->Named( 'Search - Bookmarked Tickets' );
- unless ($attr) {
- $RT::Logger->debug("You have no global search 'Bookmarked Tickets'. Skipped.");
- return 1;
- }
- my $props = $attr->Content;
- $props->{'Query'} =~ s/__Bookmarks__/id = '__Bookmarked__'/g;
-
- my ($status, $msg) = $attr->SetContent( $props );
- $RT::Logger->error($msg) and return undef unless $status;
-
- $RT::Logger->debug("Fixed.");
- return 1;
- },
-);
-
-
diff --git a/rt/etc/upgrade/3.8.2/content b/rt/etc/upgrade/3.8.2/content
deleted file mode 100644
index 9bd92be..0000000
--- a/rt/etc/upgrade/3.8.2/content
+++ /dev/null
@@ -1,186 +0,0 @@
-@Initial = (
- sub {
- $RT::Logger->warning(
- "Going to add [OLD] prefix to all temlates in approvals queue."
- ." If you never used approvals then you can delete all these"
- ." templates with [OLD] prefix. Leave new there may be you will"
- ." want to use approvals some time."
- );
-
- my $approvals_q = RT::Queue->new( $RT::SystemUser );
- $approvals_q->Load('___Approvals');
- unless ( $approvals_q->id ) {
- $RT::Logger->error("You have no approvals queue.");
- return 1;
- }
-
- my $templates = RT::Templates->new( $RT::SystemUser );
- $templates->LimitToQueue( $approvals_q->id );
- while ( my $tmpl = $templates->Next ) {
- my ($status, $msg) = $tmpl->SetName( "[OLD] ". $tmpl->Name );
- unless ( $status ) {
- $RT::Logger->error("Couldn't rename template #". $tmpl->id .": $msg");
- }
- }
- return 1;
- },
-);
-@ACL = (
- { GroupDomain => 'SystemInternal',
- GroupType => 'privileged',
- Right => 'ShowApprovalsTab', },
-);
-
-@Templates = (
- { Queue => '___Approvals',
- Name => "New Pending Approval", # loc
- Description =>
- "Notify Owners and AdminCcs of new items pending their approval", # loc
- Content => 'Subject: New Pending Approval: {$Ticket->Subject}
-
-Greetings,
-
-There is a new item pending your approval: "{$Ticket->Subject()}",
-a summary of which appears below.
-
-Please visit {RT->Config->Get(\'WebURL\')}Approvals/Display.html?id={$Ticket->id}
-to approve or reject this ticket, or {RT->Config->Get(\'WebURL\')}Approvals/ to
-batch-process all your pending approvals.
-
--------------------------------------------------------------------------
-{$Transaction->Content()}
-'
- },
- { Queue => '___Approvals',
- Name => "Approval Passed", # loc
- Description =>
- "Notify Requestor of their ticket has been approved by some approver", # loc
- Content => 'Subject: Ticket Approved: {$Ticket->Subject}
-
-Greetings,
-
-Your ticket has been approved by { eval { $Approval->OwnerObj->Name } }.
-Other approvals may be pending.
-
-Approver\'s notes: { $Notes }
-'
- },
- { Queue => '___Approvals',
- Name => "All Approvals Passed", # loc
- Description =>
- "Notify Requestor of their ticket has been approved by all approvers", # loc
- Content => 'Subject: Ticket Approved: {$Ticket->Subject}
-
-Greetings,
-
-Your ticket has been approved by { eval { $Approval->OwnerObj->Name } }.
-Its Owner may now start to act on it.
-
-Approver\'s notes: { $Notes }
-'
- },
- { Queue => '___Approvals',
- Name => "Approval Rejected", # loc
- Description =>
- "Notify Owner of their rejected ticket", # loc
- Content => 'Subject: Ticket Rejected: {$Ticket->Subject}
-
-Greetings,
-
-Your ticket has been rejected by { eval { $Approval->OwnerObj->Name } }.
-
-Approver\'s notes: { $Notes }
-'
- },
- { Queue => '___Approvals',
- Name => "Approval Ready for Owner", # loc
- Description =>
- "Notify Owner of their ticket has been approved and is ready to be acted on", # loc
- Content => 'Subject: Ticket Approved: {$Ticket->Subject}
-
-Greetings,
-
-The ticket has been approved, you may now start to act on it.
-
-'
- },
-);
-
-@Final = (
- sub {
- $RT::Logger->debug("Going to adjust dashboards");
- my $sys = RT::System->new($RT::SystemUser);
-
- my $attrs = RT::Attributes->new( $RT::SystemUser );
- $attrs->UnLimit;
- my @dashboards = $attrs->Named('Dashboard');
-
- if (@dashboards == 0) {
- $RT::Logger->debug("You have no dashboards. Skipped.");
- return 1;
- }
-
- for my $attr (@dashboards) {
- my $props = $attr->Content;
- if (exists $props->{Searches}) {
- $props->{Panes} = {
- body => [
- map {
- my ($privacy, $id, $desc) = @$_;
-
- {
- portlet_type => 'search',
- privacy => $privacy,
- id => $id,
- description => $desc,
- pane => 'body',
- }
- } @{ delete $props->{Searches} }
- ],
- };
- }
- my ($status, $msg) = $attr->SetContent( $props );
- $RT::Logger->error($msg) unless $status;
- }
-
- $RT::Logger->debug("Fixed.");
- return 1;
- },
- sub {
- my $approvals_q = RT::Queue->new( $RT::SystemUser );
- $approvals_q->Load('___Approvals');
- unless ( $approvals_q->id ) {
- $RT::Logger->error("You have no approvals queue.");
- return 1;
- }
-
- require File::Temp;
- my ($tmp_fh, $tmp_fn) = File::Temp::tempfile( 'rt-approvals-scrips-XXXX', CLEANUP => 0 );
- unless ( $tmp_fh ) {
- $RT::Logger->error("Couldn't create temporary file.");
- return 0;
- }
-
- $RT::Logger->warning(
- "IMPORTANT: We're going to delete all scrips in Approvals queue"
- ." and save them in '$tmp_fn' file."
- );
-
- require Data::Dumper;
-
- my $scrips = RT::Scrips->new( $RT::SystemUser );
- $scrips->LimitToQueue( $approvals_q->id );
- while ( my $scrip = $scrips->Next ) {
- my %tmp =
- map { $tmp->{ $_ } = $scrip->_Value( $_ ) }
- $scrip->ReadableAttributes;
-
- print $tmp_fh Data::Dumper::Dumper( \%tmp );
-
- my ($status, $msg) = $scrip->Delete;
- unless ( $status ) {
- $RT::Logger->error( "Couldn't delete scrip: $msg");
- }
- }
- },
-);
diff --git a/rt/etc/upgrade/3.8.3/content b/rt/etc/upgrade/3.8.3/content
deleted file mode 100644
index 8538e42..0000000
--- a/rt/etc/upgrade/3.8.3/content
+++ /dev/null
@@ -1,91 +0,0 @@
-@ScripConditions = (
- { Name => 'On Reject', # loc
- Description => 'Whenever a ticket is rejected', # loc
- ApplicableTransTypes => 'Status',
- ExecModule => 'StatusChange',
- Argument => 'rejected'
-
- },
-);
-
-@Final = (
- sub {
- $RT::Logger->debug("Going to correct descriptions of notify actions in the DB");
-
- my $actions = RT::ScripActions->new( $RT::SystemUser );
- $actions->Limit(
- FIELD => 'ExecModule',
- VALUE => 'Notify',
- );
- $actions->Limit(
- FIELD => 'Argument',
- VALUE => 'All',
- );
- while ( my $action = $actions->Next ) {
- my ($status, $msg) = $action->__Set( Field => 'Name', Value => 'Notify Owner, Requestors, Ccs and AdminCcs' );
- $RT::Logger->warning( "Couldn't change action name: $msg" )
- unless $status;
-
- ($status, $msg) = $action->__Set( Field => 'Description', Value => 'Send mail to owner and all watchers' );
- $RT::Logger->warning( "Couldn't change action description: $msg" )
- unless $status;
- }
-
- $actions = RT::ScripActions->new( $RT::SystemUser );
- $actions->Limit(
- FIELD => 'ExecModule',
- VALUE => 'NotifyAsComment',
- );
- $actions->Limit(
- FIELD => 'Argument',
- VALUE => 'All',
- );
- while ( my $action = $actions->Next ) {
- my ($status, $msg) = $action->__Set( Field => 'Name', Value => 'Notify Owner, Requestors, Ccs and AdminCcs as Comment' );
- $RT::Logger->warning( "Couldn't change action name: $msg" )
- unless $status;
-
- ($status, $msg) = $action->__Set( Field => 'Description', Value => 'Send mail to owner and all watchers as a "comment"' );
- $RT::Logger->warning( "Couldn't change action description: $msg" )
- unless $status;
- }
-
- $RT::Logger->debug("Corrected descriptions of notify actions in the DB.");
- return 1;
- },
-);
-
-
-{
-$RT::Logger->debug("Going to add in Extract Subject Tag actions if they were missed during a previous upgrade");
-
-$actions = RT::ScripActions->new( $RT::SystemUser );
-$actions->Limit(
- FIELD => 'ExecModule',
- VALUE => 'ExtractSubjectTag',
-);
-my $extract_action = $actions->First;
-
-if ( $extract_action && $extract_action->Id ) {
- $RT::Logger->debug("You appear to already have an Extract Subject Tag action, skipping");
- return 1;
-} else {
- $RT::Logger->debug("Didn't find an existing Extract Subject Tag action, adding it");
- push @ScripActions, (
- { Name => 'Extract Subject Tag', # loc
- Description => 'Extract tags from a Transaction\'s subject and add them to the Ticket\'s subject.', # loc
- ExecModule => 'ExtractSubjectTag'
- },
- );
-
- $RT::Logger->debug("Adding Extract Subject Tag Scrip");
- push @Scrips, (
- { Description => "On transaction, add any tags in the transaction's subject to the ticket's subject",
- ScripCondition => 'On Transaction',
- ScripAction => 'Extract Subject Tag',
- Template => 'Blank'
- },
- );
-}
-}
-
diff --git a/rt/etc/upgrade/3.8.3/schema.Pg b/rt/etc/upgrade/3.8.3/schema.Pg
deleted file mode 100644
index bbe5536..0000000
--- a/rt/etc/upgrade/3.8.3/schema.Pg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-CREATE UNIQUE INDEX GroupMembers1 ON GroupMembers(GroupId, MemberId);
-
diff --git a/rt/etc/upgrade/3.8.4/content b/rt/etc/upgrade/3.8.4/content
deleted file mode 100644
index be5a6bf..0000000
--- a/rt/etc/upgrade/3.8.4/content
+++ /dev/null
@@ -1,59 +0,0 @@
-
-@Final = (
- sub {
- $RT::Logger->debug("Going to correct arguments of NotifyGroup actions if you have any");
- use strict;
-
- my $actions = RT::ScripActions->new( $RT::SystemUser );
- $actions->Limit(
- FIELD => 'ExecModule',
- VALUE => 'NotifyGroup',
- );
- $actions->Limit(
- FIELD => 'ExecModule',
- VALUE => 'NotifyGroupAsComment',
- );
-
- my $converter = sub {
- my $arg = shift;
- my @res;
- foreach my $r ( @{ $arg } ) {
- my $obj;
- next unless $r->{'Type'};
- if( lc $r->{'Type'} eq 'user' ) {
- $obj = RT::User->new( $RT::SystemUser );
- } elsif ( lc $r->{'Type'} eq 'group' ) {
- $obj = RT::Group->new( $RT::SystemUser );
- } else {
- next;
- }
- $obj->Load( $r->{'Instance'} );
- my $id = $obj->id;
- next unless( $id );
-
- push @res, $id;
- }
-
- return join ',', @res;
- };
-
- require Storable;
- while ( my $action = $actions->Next ) {
- my $argument = $action->Argument;
- my $new = '';
- local $@;
- if ( my $struct = eval { Storable::thaw( $argument ) } ) {
- $new = $converter->( $struct );
- } else {
- $new = join /, /, grep length, split /[^0-9]+/, $argument;
- }
- next if $new eq $argument;
-
- my ($status, $msg) = $action->__Set( Field => 'Argument', Value => $new );
- $RT::Logger->warning( "Couldn't change argument value of the action: $msg" )
- unless $status;
- }
- },
-);
-
-
diff --git a/rt/etc/upgrade/3.8.6/content b/rt/etc/upgrade/3.8.6/content
deleted file mode 100644
index a9793c6..0000000
--- a/rt/etc/upgrade/3.8.6/content
+++ /dev/null
@@ -1,10 +0,0 @@
-@Templates = (
- { Queue => 0,
- Name => "Forward Ticket", # loc
- Description => "Heading of a forwarded Ticket", # loc
- Content => q{
-
-This is a forward of ticket #{ $Ticket->id }
-}
- },
-);
diff --git a/rt/etc/upgrade/3.8.8/content b/rt/etc/upgrade/3.8.8/content
deleted file mode 100644
index ee19433..0000000
--- a/rt/etc/upgrade/3.8.8/content
+++ /dev/null
@@ -1,38 +0,0 @@
-@Initial = (
- sub {
- # make sure global CFs are not applied to local objects
- my $ocfs = RT::ObjectCustomFields->new( $RT::SystemUser );
- $ocfs->Limit( FIELD => 'ObjectId', OPERATOR => '!=', VALUE => 0 );
- my $alias = $ocfs->Join(
- FIELD1 => 'CustomField',
- TABLE2 => 'ObjectCustomFields',
- FIELD2 => 'CustomField',
- );
- $ocfs->Limit( ALIAS => $alias, FIELD => 'ObjectId', VALUE => 0 );
- while ( my $ocf = $ocfs->Next ) {
- $ocf->Delete;
- }
- },
- sub {
- # sort SortOrder
- my $sth = $RT::Handle->dbh->prepare(
- "SELECT cfs.LookupType, ocfs.id"
- ." FROM ObjectCustomFields ocfs, CustomFields cfs"
- ." WHERE cfs.id = ocfs.CustomField"
- ." ORDER BY cfs.LookupType, ocfs.SortOrder, cfs.Name"
- );
- $sth->execute;
-
- my ($i, $prev_type) = (0, '');
- while ( my ($lt, $id) = $sth->fetchrow_array ) {
- $i = 0 if $prev_type ne $lt;
- my $ocf = RT::ObjectCustomField->new( $RT::SystemUser );
- $ocf->Load( $id );
- my ($status, $msg) = $ocf->SetSortOrder( $i++ );
- $RT::Logger->warning("Couldn't set SortOrder: $msg")
- unless $status;
- $prev_type = $lt;
- }
- },
-);
-
diff --git a/rt/etc/upgrade/shrink_cgm_table.pl b/rt/etc/upgrade/shrink_cgm_table.pl
deleted file mode 100644
index 3d153c7..0000000
--- a/rt/etc/upgrade/shrink_cgm_table.pl
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/perl
-
-use 5.8.3;
-use strict;
-use warnings;
-
-use RT;
-RT::LoadConfig();
-RT->Config->Set('LogToScreen' => 'debug');
-RT::Init();
-
-use RT::CachedGroupMembers;
-my $cgms = RT::CachedGroupMembers->new( $RT::SystemUser );
-$cgms->Limit(
- FIELD => 'id',
- OPERATOR => '!=',
- VALUE => 'main.Via',
- QUOTEVALUE => 0,
- ENTRYAGGREGATOR => 'AND',
-);
-$cgms->FindAllRows;
-
-my $alias = $cgms->Join(
- TYPE => 'LEFT',
- FIELD1 => 'Via',
- TABLE2 => 'CachedGroupMembers',
- FIELD2 => 'id',
-);
-$cgms->Limit(
- ALIAS => $alias,
- FIELD => 'MemberId',
- OPERATOR => '=',
- VALUE => $alias .'.GroupId',
- QUOTEVALUE => 0,
- ENTRYAGGREGATOR => 'AND',
-);
-$cgms->Limit(
- ALIAS => $alias,
- FIELD => 'id',
- OPERATOR => '=',
- VALUE => $alias .'.Via',
- QUOTEVALUE => 0,
- ENTRYAGGREGATOR => 'AND',
-);
-
-FetchNext( $cgms, 'init' );
-while ( my $rec = FetchNext( $cgms ) ) {
- $RT::Handle->BeginTransaction;
- my ($status) = $rec->Delete;
- unless ($status) {
- print STDERR "Couldn't delete CGM #". $rec->id;
- exit 1;
- }
- $RT::Handle->Commit;
-}
-
-use constant PAGE_SIZE => 1000;
-sub FetchNext {
- my ($objs, $init) = @_;
- if ( $init ) {
- $objs->RowsPerPage( PAGE_SIZE );
- $objs->FirstPage;
- return;
- }
-
- my $obj = $objs->Next;
- return $obj if $obj;
- $objs->RedoSearch;
- $objs->FirstPage;
- return $objs->Next;
-}
-
diff --git a/rt/etc/upgrade/split-out-cf-categories b/rt/etc/upgrade/split-out-cf-categories
deleted file mode 100755
index d4077ce..0000000
--- a/rt/etc/upgrade/split-out-cf-categories
+++ /dev/null
@@ -1,171 +0,0 @@
-#!/usr/bin/perl
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2008 Best Practical Solutions, LLC
-# <jesse@bestpractical.com>
-#
-# (Except where explicitly superseded by other copyright notices)
-#
-#
-# LICENSE:
-#
-# 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.
-#
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-#
-#
-# CONTRIBUTION SUBMISSION POLICY:
-#
-# (The following paragraph is not intended to limit the rights granted
-# to you to modify and distribute this software under the terms of
-# the GNU General Public License and is only of importance to you if
-# you choose to contribute your changes and enhancements to the
-# community by submitting them to Best Practical Solutions, LLC.)
-#
-# By intentionally submitting any modifications, corrections or
-# derivatives to this work, or any other work intended for use with
-# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-# you are the copyright holder for those contributions and you grant
-# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
-# royalty-free, perpetual, license to use, copy, create derivative
-# works based on those contributions, and sublicense and distribute
-# those contributions and any derivatives thereof.
-#
-# END BPS TAGGED BLOCK }}}
-use strict;
-use warnings;
-
-use lib "local/lib";
-use lib "lib";
-
-use RT;
-RT::LoadConfig();
-RT->Config->Set('LogToScreen' => 'debug');
-RT::Init();
-
-$| = 1;
-
-$RT::Handle->BeginTransaction();
-
-use RT::CustomFields;
-my $CFs = RT::CustomFields->new( $RT::SystemUser );
-$CFs->UnLimit;
-$CFs->Limit( FIELD => 'Type', VALUE => 'Select' );
-
-my $seen;
-while (my $cf = $CFs->Next ) {
- next if $cf->BasedOnObj->Id;
- my @categories;
- my %mapping;
- my $values = $cf->Values;
- while (my $value = $values->Next) {
- next unless defined $value->Category and length $value->Category;
- push @categories, $value->Category unless grep {$_ eq $value->Category} @categories;
- $mapping{$value->Name} = $value->Category;
- }
- next unless @categories;
-
- $seen++;
- print "Found CF '@{[$cf->Name]}' with categories:\n";
- print " $_\n" for @categories;
-
- print "Split this CF's categories into a hierarchical custom field (Y/n)? ";
- my $dothis = <>;
- next if $dothis =~ /n/i;
-
- print "Enter name of CF to create as category ('@{[$cf->Name]} category'): ";
- my $newname = <>;
- chomp $newname;
- $newname = $cf->Name . " category" unless length $newname;
-
- # bump the CF's sort oder up by one
- $cf->SetSortOrder( ($cf->SortOrder || 0) + 1 );
-
- # ..and add a new CF before it
- my $new = RT::CustomField->new( $RT::SystemUser );
- my ($id, $msg) = $new->Create(
- Name => $newname,
- Type => 'Select',
- MaxValues => 1,
- LookupType => $cf->LookupType,
- SortOrder => $cf->SortOrder - 1,
- );
- die "Can't create custom field '$newname': $msg" unless $id;
-
- # Set the CF to be based on what we just made
- $cf->SetBasedOn( $new->Id );
-
- # Apply it to all of the same things
- {
- my $ocfs = RT::ObjectCustomFields->new( $RT::SystemUser );
- $ocfs->LimitToCustomField( $cf->Id );
- while (my $ocf = $ocfs->Next) {
- my $newocf = RT::ObjectCustomField->new( $RT::SystemUser );
- ($id, $msg) = $newocf->Create(
- SortOrder => $ocf->SortOrder,
- CustomField => $new->Id,
- ObjectId => $ocf->ObjectId,
- );
- die "Can't create ObjectCustomField: $msg" unless $id;
- }
- }
-
- # Copy over all of the rights
- {
- my $acl = RT::ACL->new( $RT::SystemUser );
- $acl->LimitToObject( $cf );
- while (my $ace = $acl->Next) {
- my $newace = RT::ACE->new( $RT::SystemUser );
- ($id, $msg) = $newace->Create(
- PrincipalId => $ace->PrincipalId,
- PrincipalType => $ace->PrincipalType,
- RightName => $ace->RightName,
- Object => $new,
- );
- die "Can't assign rights: $msg" unless $id;
- }
- }
-
- # Add values for all of the categories
- for my $i (0..$#categories) {
- ($id, $msg) = $new->AddValue(
- Name => $categories[$i],
- SortOrder => $i + 1,
- );
- die "Can't create custom field value: $msg" unless $id;
- }
-
- # Grovel through all ObjectCustomFieldValues, and add the
- # appropriate category
- {
- my $ocfvs = RT::ObjectCustomFieldValues->new( $RT::SystemUser );
- $ocfvs->LimitToCustomField( $cf->Id );
- while (my $ocfv = $ocfvs->Next) {
- next unless exists $mapping{$ocfv->Content};
- my $newocfv = RT::ObjectCustomFieldValue->new( $RT::SystemUser );
- ($id, $msg) = $newocfv->Create(
- CustomField => $new->Id,
- ObjectType => $ocfv->ObjectType,
- ObjectId => $ocfv->ObjectId,
- Content => $mapping{$ocfv->Content},
- );
- }
- }
-}
-
-$RT::Handle->Commit;
-print "No custom fields with categories found\n" unless $seen;
diff --git a/rt/etc/upgrade/split-out-cf-categories.in b/rt/etc/upgrade/split-out-cf-categories.in
deleted file mode 100644
index f34a1b6..0000000
--- a/rt/etc/upgrade/split-out-cf-categories.in
+++ /dev/null
@@ -1,171 +0,0 @@
-#!@PERL@
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2008 Best Practical Solutions, LLC
-# <jesse@bestpractical.com>
-#
-# (Except where explicitly superseded by other copyright notices)
-#
-#
-# LICENSE:
-#
-# 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.
-#
-# 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., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 or visit their web page on the internet at
-# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-#
-#
-# CONTRIBUTION SUBMISSION POLICY:
-#
-# (The following paragraph is not intended to limit the rights granted
-# to you to modify and distribute this software under the terms of
-# the GNU General Public License and is only of importance to you if
-# you choose to contribute your changes and enhancements to the
-# community by submitting them to Best Practical Solutions, LLC.)
-#
-# By intentionally submitting any modifications, corrections or
-# derivatives to this work, or any other work intended for use with
-# Request Tracker, to Best Practical Solutions, LLC, you confirm that
-# you are the copyright holder for those contributions and you grant
-# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable,
-# royalty-free, perpetual, license to use, copy, create derivative
-# works based on those contributions, and sublicense and distribute
-# those contributions and any derivatives thereof.
-#
-# END BPS TAGGED BLOCK }}}
-use strict;
-use warnings;
-
-use lib "@LOCAL_LIB_PATH@";
-use lib "@RT_LIB_PATH@";
-
-use RT;
-RT::LoadConfig();
-RT->Config->Set('LogToScreen' => 'debug');
-RT::Init();
-
-$| = 1;
-
-$RT::Handle->BeginTransaction();
-
-use RT::CustomFields;
-my $CFs = RT::CustomFields->new( $RT::SystemUser );
-$CFs->UnLimit;
-$CFs->Limit( FIELD => 'Type', VALUE => 'Select' );
-
-my $seen;
-while (my $cf = $CFs->Next ) {
- next if $cf->BasedOnObj->Id;
- my @categories;
- my %mapping;
- my $values = $cf->Values;
- while (my $value = $values->Next) {
- next unless defined $value->Category and length $value->Category;
- push @categories, $value->Category unless grep {$_ eq $value->Category} @categories;
- $mapping{$value->Name} = $value->Category;
- }
- next unless @categories;
-
- $seen++;
- print "Found CF '@{[$cf->Name]}' with categories:\n";
- print " $_\n" for @categories;
-
- print "Split this CF's categories into a hierarchical custom field (Y/n)? ";
- my $dothis = <>;
- next if $dothis =~ /n/i;
-
- print "Enter name of CF to create as category ('@{[$cf->Name]} category'): ";
- my $newname = <>;
- chomp $newname;
- $newname = $cf->Name . " category" unless length $newname;
-
- # bump the CF's sort oder up by one
- $cf->SetSortOrder( ($cf->SortOrder || 0) + 1 );
-
- # ..and add a new CF before it
- my $new = RT::CustomField->new( $RT::SystemUser );
- my ($id, $msg) = $new->Create(
- Name => $newname,
- Type => 'Select',
- MaxValues => 1,
- LookupType => $cf->LookupType,
- SortOrder => $cf->SortOrder - 1,
- );
- die "Can't create custom field '$newname': $msg" unless $id;
-
- # Set the CF to be based on what we just made
- $cf->SetBasedOn( $new->Id );
-
- # Apply it to all of the same things
- {
- my $ocfs = RT::ObjectCustomFields->new( $RT::SystemUser );
- $ocfs->LimitToCustomField( $cf->Id );
- while (my $ocf = $ocfs->Next) {
- my $newocf = RT::ObjectCustomField->new( $RT::SystemUser );
- ($id, $msg) = $newocf->Create(
- SortOrder => $ocf->SortOrder,
- CustomField => $new->Id,
- ObjectId => $ocf->ObjectId,
- );
- die "Can't create ObjectCustomField: $msg" unless $id;
- }
- }
-
- # Copy over all of the rights
- {
- my $acl = RT::ACL->new( $RT::SystemUser );
- $acl->LimitToObject( $cf );
- while (my $ace = $acl->Next) {
- my $newace = RT::ACE->new( $RT::SystemUser );
- ($id, $msg) = $newace->Create(
- PrincipalId => $ace->PrincipalId,
- PrincipalType => $ace->PrincipalType,
- RightName => $ace->RightName,
- Object => $new,
- );
- die "Can't assign rights: $msg" unless $id;
- }
- }
-
- # Add values for all of the categories
- for my $i (0..$#categories) {
- ($id, $msg) = $new->AddValue(
- Name => $categories[$i],
- SortOrder => $i + 1,
- );
- die "Can't create custom field value: $msg" unless $id;
- }
-
- # Grovel through all ObjectCustomFieldValues, and add the
- # appropriate category
- {
- my $ocfvs = RT::ObjectCustomFieldValues->new( $RT::SystemUser );
- $ocfvs->LimitToCustomField( $cf->Id );
- while (my $ocfv = $ocfvs->Next) {
- next unless exists $mapping{$ocfv->Content};
- my $newocfv = RT::ObjectCustomFieldValue->new( $RT::SystemUser );
- ($id, $msg) = $newocfv->Create(
- CustomField => $new->Id,
- ObjectType => $ocfv->ObjectType,
- ObjectId => $ocfv->ObjectId,
- Content => $mapping{$ocfv->Content},
- );
- }
- }
-}
-
-$RT::Handle->Commit;
-print "No custom fields with categories found\n" unless $seen; \ No newline at end of file
diff --git a/rt/etc/upgrade/upgrade-mysql-schema.pl b/rt/etc/upgrade/upgrade-mysql-schema.pl
deleted file mode 100755
index bc59c97..0000000
--- a/rt/etc/upgrade/upgrade-mysql-schema.pl
+++ /dev/null
@@ -1,390 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-use DBI;
-use DBD::mysql 4.002;
-
-unless (@ARGV) {
- print STDERR "usage: $0 db_name[:server_name] db_user db_password\n";
- exit 1;
-}
-
-# pretty correct support of charsets has been introduced in mysql 4.1
-# as RT doesn't use it may result in issues:
-# 1) data corruptions when default charset of mysql server has data restrictions like utf8
-# 2) wrong ordering (collations)
-
-# we have to define correct types for all columns. RT uses UTF-8, ascii and binary.
-# * ascii is subset of many mysql's charsets except may be one or two rare where some ascii
-# characters replaced with local
-# * for many charsets mysql allows us to store any octets sequences even when those are
-# invalid for this particula set, for example we can store UTF-8 data in latin1
-# column and fetch it as UTF-8, however sorting will be wrong
-
-# here is tricky algorithm to change column to desired charset:
-# * text to binary convertion is pretty straight forward except that text types
-# have length definitions in terms of characters and in some cases we must
-# use longer binary types to satisfy space requirements
-# * binary to text is much easier as we know that there is ascii or UTF-8 then
-# we just make convertion, also 32 chars are long enough to store 32 bytes, so
-# length changes is not required
-# * text to text convertion is trickier. no matter what is the current character set
-# of the column we know that there is either ascii or UTF-8, so we can not use
-# direct convertion, instead we do text to binary plus binary to text convertion
-# instead
-# * as well we add charset definition for all tables and for the DB as well,
-# so all new columns by default will be in UTF-8 charset
-
-my @tables = qw(
- ACL
- Attachments
- Attributes
- CustomFields
- CustomFieldValues
- GroupMembers
- Groups
- Links
- ObjectCustomFields
- ObjectCustomFieldValues
- Principals
- Queues
- ScripActions
- ScripConditions
- Scrips
- sessions
- Templates
- Tickets
- Transactions
- Users
-);
-
-my %charset = (
- ACL => {
- RightName => 'ascii',
- ObjectType => 'ascii',
- PrincipalType => 'ascii',
- },
- Attachments => {
- MessageId => 'ascii',
- Subject => 'utf8',
- Filename => 'utf8',
- ContentType => 'ascii',
- ContentEncoding => 'ascii',
- Content => 'binary',
- Headers => 'utf8',
- },
- Attributes => {
- Name => 'utf8',
- Description => 'utf8',
- Content => 'binary',
- ContentType => 'ascii',
- ObjectType => 'ascii',
- },
- CustomFields => {
- Name => 'utf8',
- Type => 'ascii',
- Pattern => 'utf8',
- Description => 'utf8',
- LookupType => 'ascii',
- },
- CustomFieldValues => {
- Name => 'utf8',
- Description => 'utf8',
- },
- Groups => {
- Name => 'utf8',
- Description => 'utf8',
- Domain => 'ascii',
- Type => 'ascii',
- },
- Links => {
- Base => 'ascii',
- Target => 'ascii',
- Type => 'ascii',
- },
- ObjectCustomFieldValues => {
- ObjectType => 'ascii',
- Content => 'utf8',
- LargeContent => 'binary',
- ContentType => 'ascii',
- ContentEncoding => 'ascii',
- },
- Principals => {
- PrincipalType => 'ascii',
- },
- Queues => {
- Name => 'utf8',
- Description => 'utf8',
- CorrespondAddress => 'ascii',
- CommentAddress => 'ascii',
- },
- ScripActions => {
- Name => 'utf8',
- Description => 'utf8',
- ExecModule => 'ascii',
- Argument => 'binary',
- },
- ScripConditions => {
- Name => 'utf8',
- Description => 'utf8',
- ExecModule => 'ascii',
- Argument => 'binary',
- ApplicableTransTypes => 'ascii',
- },
- Scrips => {
- Description => 'utf8',
- ConditionRules => 'utf8',
- ActionRules => 'utf8',
- CustomIsApplicableCode => 'utf8',
- CustomPrepareCode => 'utf8',
- CustomCommitCode => 'utf8',
- Stage => 'ascii',
- },
- sessions => {
- id => 'binary', # ascii?
- a_session => 'binary',
- },
- Templates => {
- Name => 'utf8',
- Description => 'utf8',
- Type => 'ascii',
- Language => 'ascii',
- Content => 'utf8',
- },
- Tickets => {
- Type => 'ascii',
- Subject => 'utf8',
- Status => 'ascii',
- },
- Transactions => {
- ObjectType => 'ascii',
- Type => 'ascii',
- Field => 'ascii',
- OldValue => 'utf8',
- NewValue => 'utf8',
- ReferenceType => 'ascii',
- Data => 'utf8',
- },
- Users => {
- Name => 'utf8',
- Password => 'binary',
- Comments => 'utf8',
- Signature => 'utf8',
- EmailAddress => 'ascii',
- FreeformContactInfo => 'utf8',
- Organization => 'utf8',
- RealName => 'utf8',
- NickName => 'utf8',
- Lang => 'ascii',
- EmailEncoding => 'ascii',
- WebEncoding => 'ascii',
- ExternalContactInfoId => 'utf8',
- ContactInfoSystem => 'utf8',
- ExternalAuthId => 'utf8',
- AuthSystem => 'utf8',
- Gecos => 'utf8',
- HomePhone => 'utf8',
- WorkPhone => 'utf8',
- MobilePhone => 'utf8',
- PagerPhone => 'utf8',
- Address1 => 'utf8',
- Address2 => 'utf8',
- City => 'utf8',
- State => 'utf8',
- Zip => 'utf8',
- Country => 'utf8',
- Timezone => 'ascii',
- PGPKey => 'binary',
- },
-);
-
-my %max_type_length = (
- char => int 1<<8,
- varchar => int 1<<8,
- tinytext => int 1<<8,
- mediumtext => int 1<<16,
- text => int 1<<24,
- longtext => int 1<<32,
-);
-
-my @sql_commands;
-
-my ($db_datasource, $db_user, $db_pass) = (shift, shift, shift);
-my $dbh = DBI->connect("dbi:mysql:$db_datasource", $db_user, $db_pass, { RaiseError => 1 });
-my $db_name = $db_datasource;
-$db_name =~ s/:.*$//;
-
-my $version = ($dbh->selectrow_array("show variables like 'version'"))[1];
-($version) = $version =~ /^(\d+\.\d+)/;
-
-push @sql_commands, qq{ALTER DATABASE $db_name DEFAULT CHARACTER SET utf8};
-convert_table($_) foreach @tables;
-
-print join "\n", map(/;$/? $_ : "$_;", @sql_commands), "";
-my $use_p = $db_pass ? " -p" : '';
-print STDERR <<ENDREMINDER;
--- ** NOTICE: No database changes have been made. **
--- Please review the generated SQL, ensure you have a full backup of your database
--- and apply it to your database using a command like:
--- mysql -u ${db_user}${use_p} $db_name < queries.sql";
-ENDREMINDER
-exit 0;
-
-my %alter_aggregator;
-sub convert_table {
- my $table = shift;
- @alter_aggregator{'char_to_binary','binary_to_char'} = (['DEFAULT CHARACTER SET utf8'],[]);
-
- my $sth = $dbh->column_info( undef, $db_name, $table, undef );
- $sth->execute;
- while ( my $info = $sth->fetchrow_hashref ) {
- convert_column(%$info);
- }
- for my $conversiontype (qw(char_to_binary binary_to_char)) {
- next unless @{$alter_aggregator{$conversiontype}};
- push @sql_commands, qq{ALTER TABLE $table\n }.
- join(",\n ",@{$alter_aggregator{$conversiontype}});
- }
-}
-
-sub convert_column {
- my %info = @_;
- my $table = $info{'TABLE_NAME'};
- my $column = $info{'COLUMN_NAME'};
- my $type = $info{'TYPE_NAME'};
- return unless $type =~ /(CHAR|TEXT|BLOB|BINARY)$/i;
-
- my $required_charset = $charset{$table}{$column};
- unless ( $required_charset ) {
- print STDERR join(".", @info{'TABLE_SCHEMA', 'TABLE_NAME', 'COLUMN_NAME'})
- ." has type $type however mapping is missing.\n";
- return;
- }
-
- my $collation = column_info($table, $column)->{'collation'};
- # mysql 4.1 returns literal NULL instead of undef
- my $current_charset = $collation && $collation ne 'NULL'? (split /_/, $collation)[0]: 'binary';
- return if $required_charset eq $current_charset;
-
- if ( $required_charset eq 'binary' ) {
- char_to_binary(%info);
- }
- elsif ( $current_charset eq 'binary' ) {
- binary_to_char( $required_charset, %info);
- } else {
- char_to_char( $required_charset, %info);
- }
-}
-
-sub char_to_binary {
- my %info = @_;
-
- my $table = $info{'TABLE_NAME'};
- my $column = $info{'COLUMN_NAME'};
- my $new_type = calc_suitable_binary_type(%info);
- push @{$alter_aggregator{char_to_binary}},
- "MODIFY $column $new_type ".build_column_definition(%info);
-
-}
-
-sub binary_to_char {
- my ($charset, %info) = @_;
-
- my $table = $info{'TABLE_NAME'};
- my $column = $info{'COLUMN_NAME'};
- my $new_type = lc $info{'TYPE_NAME'};
- if ( $new_type =~ /binary/ ) {
- $new_type =~ s/binary/char/;
- $new_type .= '('. $info{'COLUMN_SIZE'} .')';
- } else {
- $new_type =~ s/blob/text/;
- }
-
- push @{$alter_aggregator{binary_to_char}},
- "MODIFY $column ". uc($new_type) ." CHARACTER SET ". $charset
- ." ". build_column_definition(%info);
-}
-
-sub char_to_char {
- my ($charset, %info) = @_;
-
- my $table = $info{'TABLE_NAME'};
- my $column = $info{'COLUMN_NAME'};
- my $new_type = $info{'mysql_type_name'};
-
- char_to_binary(%info);
- push @{$alter_aggregator{binary_to_char}},
- "MODIFY $column ". uc($new_type)." CHARACTER SET ". $charset
- ." ". build_column_definition(%info);
-}
-
-sub calc_suitable_binary_type {
- my %info = @_;
- my $type = lc $info{'TYPE_NAME'};
- return 'LONGBLOB' if $type eq 'longtext';
-
- my $current_max_byte_length = column_byte_length(@info{qw(TABLE_NAME COLUMN_NAME)}) || 0;
- if ( $max_type_length{ $type } > $current_max_byte_length ) {
- if ( $type eq 'varchar' || $type eq 'char' ) {
- my $new_type = $type;
- $new_type =~ s/char/binary/;
- $new_type .= $info{'COLUMN_SIZE'} >= $current_max_byte_length
- ? '('. $info{'COLUMN_SIZE'} .')'
- : '('. $current_max_byte_length .')';
- return uc $new_type;
- } else {
- my $new_type = $type;
- $new_type =~ s/text/blob/;
- return uc $new_type;
- }
- } else {
- my $new_type;
- foreach ( sort { $max_type_length{$a} <=> $max_type_length{$b} } keys %max_type_length ) {
- next if $max_type_length{ $_ } <= $current_max_byte_length;
-
- $new_type = $_; last;
- }
- $new_type =~ s/text/blob/;
- return uc $new_type;
- }
-}
-
-sub build_column_definition {
- my %info = @_;
-
- my $res = '';
- $res .= 'NOT ' unless $info{'NULLABLE'};
- $res .= 'NULL';
- my $default = column_info(@info{qw(TABLE_NAME COLUMN_NAME)})->{default};
- if ( defined $default ) {
- $res .= ' DEFAULT '. $dbh->quote($default);
- } elsif ( $info{'NULLABLE'} ) {
- $res .= ' DEFAULT NULL';
- }
- $res .= ' AUTO_INCREMENT' if $info{'mysql_is_auto_increment'};
- return $res;
-}
-
-sub column_byte_length {
- my ($table, $column) = @_;
- if ( $version >= 5.0 ) {
- my ($char, $octet) = @{ $dbh->selectrow_arrayref(
- "SELECT CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH FROM information_schema.COLUMNS WHERE"
- ." TABLE_SCHEMA = ". $dbh->quote($db_name)
- ." AND TABLE_NAME = ". $dbh->quote($table)
- ." AND COLUMN_NAME = ". $dbh->quote($column)
- ) };
- return $octet if $octet == $char;
- }
- return $dbh->selectrow_arrayref("SELECT MAX(LENGTH(". $dbh->quote_identifier($column) .")) FROM $table")->[0];
-}
-
-sub column_info {
- my ($table, $column) = @_;
- # XXX: DBD::mysql doesn't provide this info, may be will do in 4.0007 if I'll write a patch
- local $dbh->{FetchHashKeyName} = 'NAME_lc';
- return $dbh->selectrow_hashref("SHOW FULL COLUMNS FROM $table LIKE " . $dbh->quote($column));
-}
-