diff options
author | cvs2git <cvs2git> | 2008-03-02 04:06:07 +0000 |
---|---|---|
committer | cvs2git <cvs2git> | 2008-03-02 04:06:07 +0000 |
commit | cb85021ab897deb9402ace394e1b8a867e55de2c (patch) | |
tree | a8eabed19867e124f29e08d55bba84a2ffb68b17 | |
parent | 9c68254528b6f2c7d8c1921b452fa56064783782 (diff) |
This commit was manufactured by cvs2svn to create tag 'RT_3_4_6'.RT_3_4_6
193 files changed, 0 insertions, 40222 deletions
diff --git a/rt/HOWTO/README b/rt/HOWTO/README deleted file mode 100644 index 942096b0a..000000000 --- a/rt/HOWTO/README +++ /dev/null @@ -1,14 +0,0 @@ -Here you'll find plain text documentation of how to handle various -project procedures. Files contained herein: - -change.txt - How changes are integrated, including generating and - distributing aedist change sets, and updating the CVS repository. - -release.txt - Steps to go through when releasing a new version of RT. - - -These procedures are based on documentation from the scons project -as http://www.scons.org/ - diff --git a/rt/HOWTO/change.txt b/rt/HOWTO/change.txt deleted file mode 100644 index de316450c..000000000 --- a/rt/HOWTO/change.txt +++ /dev/null @@ -1,67 +0,0 @@ -Handling a change set: - - -- Start the change: - - aedist -r [if it's a remote submission] - - -or- - - aedb {cnum} [if it's initiated locally] - - -- Normal development cycle: - - aecd -c {cnum} - aecp . # Copy the baseline to your working dir - # work on your change - aenf {new file names} - - aecpu -unch # Remove unchanged files, for faster diffs - aeb # Currently does nothing - aet # Currently does nothing - aed # Diff your change - aede # End the change - - -- As the reviewer: - - aerpass {cnum} - - -- As the integrator: - - aeib {cnum} - aeb - aet - aed - cd ~ # Get out of the current working directory - aeipass - - - - - -- Update the aedist baseline on the web site: - - aedist -s -bl -p rt.2.1 > rt.2.1.ae - scp rt.2.1.ae jesse@fsck.com:/home/ftp/pub/rt/devel/rt.2.1.ae - rm rt.2.1.ae - - [This will eventually be automated.] - - -- Distribute the change to CVS: - - WARNING. DOES NOT YET WORK - - export CVS_RSH=ssh - ae2cvs -n -aegis -p rt.2.1 -c {cnum} -u ~/SCons/scons - ae2cvs -X -aegis -p rt.2.1 -c {cnum} -u ~/SCons/scons - - If you need the "ae2cvs" Perl script, you can find a copy - checked in to the bin/subdirectory. - - [This may eventually be automated.] - - - - -- Grabbing the latest dev sources over ssh - - ssh fsck.com "aedist -s -p rt.2.1 -naa -bl -entire-source" | aedist -r - - diff --git a/rt/HOWTO/release.txt b/rt/HOWTO/release.txt deleted file mode 100644 index 285041c5b..000000000 --- a/rt/HOWTO/release.txt +++ /dev/null @@ -1,124 +0,0 @@ -Things to do to release a new version of rt: - - Build and test candidate packages - - Read through the README and src/README.txt files for any updates - - Prepare ChangeLog - - date -R the latest release - - should be current if this has been updated as each - change went in. - - [ Should be automated ] - - - TODO: nothing below this line is accurate for RT - - END THE BRANCH - - ae_p rt.2 - aede {5} - aerpass {5} - aeib {5} - aeb - aet - aet -reg - aed - aeipass - - START THE NEW BRANCH - - aenbr -p rt.2 {6} - aenc -p rt.2.{6} - - Call it something like, "Initialize the new - branch." Cause = internal_enhancement. Exempt - it from all tests (*_exempt = true). - - ae_p rt.2.{6} - - aedb 100 - - aecd - - # Change the hard-coded package version numbers - # in the following files. - aecp rttruct debian/changelog rpm/rt.spec - - vi rttruct debian/changelog rpm/rt.spec - - # Optionally, do the same in the following: - [optional] aecp HOWTO/change.txt - [optional] aecp HOWTO/release.txt - [optional] aecp debian/rt.postinst - - [optional] vi HOWTO/change.txt - [optional] vi HOWTO/release.txt - [optional] vi debian/rt.postinst - - aeb - - aet -reg - - aed - - aede - - etc. - - - Read through the FAQ for any updates - - Test downloading from the web site download page - - - In the Bugs Tracker, add a Group for the new release (0.05) - - Announce to the following mailing lists (template below): - - rt-announce@lists.fsck.com - - - Notify www.cmtoday.com/contribute.html - - [This guy wants an announcement no more frequently than - once a month, so save it for a future release if it's - been too soon since the previous one.] - - Notify freshmeat.net - - [Wait until the morning so the announcement hits the - main freshmeat.net page while people in the U.S. are - awake and working] - - - - -======================= - -Template release announcement: - - - -Version 2.1.XXX of rt has been released and is available for download -from the rt web site: - - http://bestpractical.com/rt/ - - - -WHAT'S NEW IN THIS RELEASE? - -Version 2.1.XXX of rt contains the following important changes: - - - XXX - -For a complete list of changes in version 2.1.XXX, see the CHANGES.txt -file in the release itself. - - -WHAT IS RT? - - FILL THIS IN diff --git a/rt/HOWTO/version-control.txt b/rt/HOWTO/version-control.txt deleted file mode 100644 index 06babfdf1..000000000 --- a/rt/HOWTO/version-control.txt +++ /dev/null @@ -1,41 +0,0 @@ -Using Aegis for RT development - - 1. The main line of RT development will be under the control - of the Aegis change management system, as administered by - Best Practical Solutions, LLC - - 2. We will use aedist to generate change sets for each change - checked in to the main Aegis repository. These change sets will be - either distributed by a mailing list or made available via the web, - or both. - - 3. Remote developers using Aegis will send aedist output for - their changes to rt-patches@bestpractical.com for review and - integration. - - 4. The aedist output should be sent to rt-patches@bestpractical.com - after the change has completed its local aede, but before aerpass. - - 5. If the change is rejected, the developer can aedeu to reopen - the change and fix whatever problems caused the review to not pass. - - 6. A baseline snapshot (aedist -bl) of the main Aegis repository - will be generated at least daily and made available via http - to provide a central location for synchronizing remote Aegis - repositories. - - 7. Changes to the main Aegis repository will also be propagated - automatically to the tracking CVS repository. - -Using CVS for RT development - - 1. CVS is accessed via anonymous cvs with the following CVSROOT: - - :pserver:anoncvs@cvs.fsck.com:/raid/cvsroot/rt-2-1 - - 2. Remote developers using CVS will send patches (cvs -diff - output) to rt-patches@bestpractical.com for integration into the - main Aegis repository. This allows anonymous CVS access to be used - for RT development by developers who are unable to use Aegis. - - diff --git a/rt/Makefile b/rt/Makefile deleted file mode 100644 index 0895874fb..000000000 --- a/rt/Makefile +++ /dev/null @@ -1,490 +0,0 @@ -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK -# -# DO NOT HAND-EDIT the file named 'Makefile'. This file is autogenerated. -# Have a look at "configure" and "Makefile.in" instead -# - - -PERL = /usr/bin/perl - -CONFIG_FILE_PATH = /opt/rt3/etc -CONFIG_FILE = $(CONFIG_FILE_PATH)/RT_Config.pm -SITE_CONFIG_FILE = $(CONFIG_FILE_PATH)/RT_SiteConfig.pm - - -RT_VERSION_MAJOR = 3 -RT_VERSION_MINOR = 0 -RT_VERSION_PATCH = 9 - -RT_VERSION = $(RT_VERSION_MAJOR).$(RT_VERSION_MINOR).$(RT_VERSION_PATCH) -TAG = rt-$(RT_VERSION_MAJOR)-$(RT_VERSION_MINOR)-$(RT_VERSION_PATCH) - - -# This is the group that all of the installed files will be chgrp'ed to. -RTGROUP = rt - - -# User which should own rt binaries. -BIN_OWNER = root - -# User that should own all of RT's libraries, generally root. -LIBS_OWNER = root - -# Group that should own all of RT's libraries, generally root. -LIBS_GROUP = bin - -WEB_USER = www -WEB_GROUP = www - -# {{{ Files and directories - -# DESTDIR allows you to specify that RT be installed somewhere other than -# where it will eventually reside - -DESTDIR = - - -RT_PATH = /opt/rt3 -RT_ETC_PATH = /opt/rt3/etc -RT_BIN_PATH = /opt/rt3/bin -RT_SBIN_PATH = /opt/rt3/sbin -RT_LIB_PATH = /opt/rt3/lib -RT_MAN_PATH = /opt/rt3/man -RT_VAR_PATH = /opt/rt3/var -RT_DOC_PATH = /opt/rt3/share/doc -RT_LOCAL_PATH = /opt/rt3/local -LOCAL_ETC_PATH = /opt/rt3/local/etc -LOCAL_LEXICON_PATH = /opt/rt3/local/po -MASON_HTML_PATH = /opt/rt3/share/html -MASON_LOCAL_HTML_PATH = /opt/rt3/local/html -MASON_DATA_PATH = /opt/rt3/var/mason_data -MASON_SESSION_PATH = /opt/rt3/var/session_data -RT_LOG_PATH = /opt/rt3/var/log - -# RT_READABLE_DIR_MODE is the mode of directories that are generally meant -# to be accessable -RT_READABLE_DIR_MODE = 0755 - - - - -# {{{ all these define the places that RT's binaries should get installed - -# RT_MODPERL_HANDLER is the mason handler script for mod_perl -RT_MODPERL_HANDLER = $(RT_BIN_PATH)/webmux.pl -# RT_FASTCGI_HANDLER is the mason handler script for FastCGI -RT_FASTCGI_HANDLER = $(RT_BIN_PATH)/mason_handler.fcgi -# RT_WIN32_FASTCGI_HANDLER is the mason handler script for FastCGI -RT_WIN32_FASTCGI_HANDLER = $(RT_BIN_PATH)/mason_handler.svc -# RT's CLI -RT_CLI_BIN = $(RT_BIN_PATH)/rt -# RT's mail gateway -RT_MAILGATE_BIN = $(RT_BIN_PATH)/rt-mailgate -# RT's cron tool -RT_CRON_BIN = $(RT_BIN_PATH)/rt-crontool - -# }}} - -SETGID_BINARIES = $(DESTDIR)/$(RT_FASTCGI_HANDLER) \ - $(DESTDIR)/$(RT_WIN32_FASTCGI_HANDLER) - -BINARIES = $(DESTDIR)/$(RT_MODPERL_HANDLER) \ - $(DESTDIR)/$(RT_MAILGATE_BIN) \ - $(DESTDIR)/$(RT_CLI_BIN) \ - $(DESTDIR)/$(RT_CRON_BIN) \ - $(SETGID_BINARIES) -SYSTEM_BINARIES = $(DESTDIR)/$(RT_SBIN_PATH)/ - - -# }}} - -# {{{ Database setup - -# -# DB_TYPE defines what sort of database RT trys to talk to -# "mysql" is known to work. -# "Pg" is known to work -# "Informix" is known to work - -DB_TYPE = mysql - -# Set DBA to the name of a unix account with the proper permissions and -# environment to run your commandline SQL sbin - -# Set DB_DBA to the name of a DB user with permission to create new databases - -# For mysql, you probably want 'root' -# For Pg, you probably want 'postgres' -# For Oracle, you want 'system' -# For Informix, you want 'informix' - -DB_DBA = root - -DB_HOST = localhost - -# If you're not running your database server on its default port, -# specifiy the port the database server is running on below. -# It's generally safe to leave this blank - -DB_PORT = - - - - -# -# Set this to the canonical name of the interface RT will be talking to the -# database on. If you said that the RT_DB_HOST above was "localhost," this -# should be too. This value will be used to grant rt access to the database. -# If you want to access the RT database from multiple hosts, you'll need -# to grant those database rights by hand. -# - -DB_RT_HOST = localhost - -# set this to the name you want to give to the RT database in -# your database server. For Oracle, this should be the name of your sid - -DB_DATABASE = rt3 -DB_RT_USER = rt_user -DB_RT_PASS = rt_pass - -# }}} - - -#################################################################### - -all: default - -default: - @echo "Please read RT's readme before installing. Not doing so could" - @echo "be dangerous." - - - -instruct: - @echo "Congratulations. RT has been installed. " - @echo "" - @echo "" - @echo "You must now configure RT by editing $(SITE_CONFIG_FILE)." - @echo "" - @echo "(You will definitely need to set RT's database password before continuing." - @echo " Not doing so could be very dangerous)" - @echo "" - @echo "After that, you need to initialize RT's database by running" - @echo " 'make initialize-database'" - -# @echo " or by executing " -# @echo " '$(RT_SBIN_PATH)/rt-setup-database --action init \ " -# @echo " --dba $(DB_DBA) --prompt-for-dba-password'" - - - -upgrade-instruct: - @echo "Congratulations. RT has been upgraded. You should now check-over" - @echo "$(CONFIG_FILE) for any necessary site customization. Additionally," - @echo "you should update RT's system database objects by running " - @echo " ls etc/upgrade" - @echo "For each file in that directory whose name is greater than" - @echo "your previously installed RT version, run:" - @echo " $(RT_SBIN_PATH)/rt-setup-database --action insert --datafile etc/upgrade/<version>" - - -upgrade: config-install dirs files-install fixperms upgrade-instruct - -upgrade-noclobber: config-install libs-install html-install bin-install local-install doc-install fixperms - - -# {{{ dependencies -testdeps: - $(PERL) ./sbin/rt-test-dependencies --with-$(DB_TYPE) - -fixdeps: - $(PERL) ./sbin/rt-test-dependencies --install --with-$(DB_TYPE) - -#}}} - -# {{{ fixperms -fixperms: - # Make the libraries readable - chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)/$(RT_PATH) - chown -R $(LIBS_OWNER) $(DESTDIR)/$(RT_LIB_PATH) - chgrp -R $(LIBS_GROUP) $(DESTDIR)/$(RT_LIB_PATH) - chmod -R u+rwX,go-w,go+rX $(DESTDIR)/$(RT_LIB_PATH) - - - chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)/$(RT_BIN_PATH) - chmod $(RT_READABLE_DIR_MODE) $(DESTDIR)/$(RT_BIN_PATH) - - chmod 0755 $(DESTDIR)/$(RT_ETC_PATH) - chmod 0500 $(DESTDIR)/$(RT_ETC_PATH)/* - - #TODO: the config file should probably be able to have its - # owner set seperately from the binaries. - chown -R $(BIN_OWNER) $(DESTDIR)/$(RT_ETC_PATH) - chgrp -R $(RTGROUP) $(DESTDIR)/$(RT_ETC_PATH) - - chmod 0550 $(DESTDIR)/$(CONFIG_FILE) - chmod 0550 $(DESTDIR)/$(SITE_CONFIG_FILE) - - # Make the interfaces executable and setgid rt - chown $(BIN_OWNER) $(BINARIES) - chgrp $(RTGROUP) $(BINARIES) - chmod 0755 $(BINARIES) - chmod g+s $(SETGID_BINARIES) - - # Make the web ui readable by all. - chmod -R u+rwX,go-w,go+rX $(DESTDIR)/$(MASON_HTML_PATH) \ - $(DESTDIR)/$(MASON_LOCAL_HTML_PATH) \ - $(DESTDIR)/$(LOCAL_LEXICON_PATH) - chown -R $(LIBS_OWNER) $(DESTDIR)/$(MASON_HTML_PATH) \ - $(DESTDIR)/$(MASON_LOCAL_HTML_PATH) - chgrp -R $(LIBS_GROUP) $(DESTDIR)/$(MASON_HTML_PATH) \ - $(DESTDIR)/$(MASON_LOCAL_HTML_PATH) - - # Make the web ui's data dir writable - chmod 0770 $(DESTDIR)/$(MASON_DATA_PATH) \ - $(DESTDIR)/$(MASON_SESSION_PATH) - chown -R $(WEB_USER) $(DESTDIR)/$(MASON_DATA_PATH) \ - $(DESTDIR)/$(MASON_SESSION_PATH) - chgrp -R $(WEB_GROUP) $(DESTDIR)/$(MASON_DATA_PATH) \ - $(DESTDIR)/$(MASON_SESSION_PATH) -# }}} - -fixperms-nosetgid: fixperms - @echo "You should never be running RT this way. it's unsafe" - chmod 0555 $(SETGID_BINARIES) - chmod 0555 $(DESTDIR)/$(CONFIG_FILE) - chmod 0555 $(DESTDIR)/$(SITE_CONFIG_FILE) - -# {{{ dirs -dirs: - mkdir -p $(DESTDIR)/$(RT_LOG_PATH) - mkdir -p $(DESTDIR)/$(MASON_DATA_PATH) - mkdir -p $(DESTDIR)/$(MASON_DATA_PATH)/cache - mkdir -p $(DESTDIR)/$(MASON_DATA_PATH)/etc - mkdir -p $(DESTDIR)/$(MASON_DATA_PATH)/obj - mkdir -p $(DESTDIR)/$(MASON_SESSION_PATH) - mkdir -p $(DESTDIR)/$(MASON_HTML_PATH) - mkdir -p $(DESTDIR)/$(MASON_LOCAL_HTML_PATH) - mkdir -p $(DESTDIR)/$(LOCAL_ETC_PATH) - mkdir -p $(DESTDIR)/$(LOCAL_LEXICON_PATH) -# }}} - -install: config-install dirs files-install fixperms instruct - -files-install: libs-install etc-install bin-install sbin-install html-install local-install doc-install - -config-install: - mkdir -p $(DESTDIR)/$(CONFIG_FILE_PATH) - cp etc/RT_Config.pm $(DESTDIR)/$(CONFIG_FILE) - [ -f $(DESTDIR)/$(SITE_CONFIG_FILE) ] || cp etc/RT_SiteConfig.pm $(DESTDIR)/$(SITE_CONFIG_FILE) - - chgrp $(RTGROUP) $(DESTDIR)/$(CONFIG_FILE) - chown $(BIN_OWNER) $(DESTDIR)/$(CONFIG_FILE) - - chgrp $(RTGROUP) $(DESTDIR)/$(SITE_CONFIG_FILE) - chown $(BIN_OWNER) $(DESTDIR)/$(SITE_CONFIG_FILE) - - @echo "Installed configuration. about to install rt in $(RT_PATH)" - -test: - $(PERL) -Ilib lib/t/00smoke.t - -regression-install: config-install - $(PERL) -pi -e 's/Set\(\$$DatabaseName.*\);/Set\(\$$DatabaseName, "rt3regression"\);/' $(DESTDIR)/$(CONFIG_FILE) - -regression-nosetgid-quiet: regression-install dirs files-install libs-install sbin-install bin-install regression-instruct regression-reset-db testify-pods fixperms-nosetgid apachectl - $(PERL) sbin/regression_harness - -regression-nosetgid: regression-install dirs files-install libs-install sbin-install bin-install regression-instruct regression-reset-db testify-pods fixperms-nosetgid apachectl - $(PERL) lib/t/02regression.t - -regression: regression-install dirs files-install libs-install sbin-install bin-install regression-instruct regression-reset-db testify-pods fixperms apachectl - $(PERL) lib/t/02regression.t - -regression-quiet: - $(PERL) sbin/regression_harness - -regression-instruct: - @echo "About to wipe your database for a regression test. ABORT NOW with Control-C" - - -# {{{ database-installation - -regression-reset-db: - $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/rt-setup-database --action drop --dba $(DB_DBA) --dba-password '' - $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/rt-setup-database --action init --dba $(DB_DBA) --dba-password '' - -initialize-database: - $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/rt-setup-database --action init --dba $(DB_DBA) --prompt-for-dba-password - -dropdb: - $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/rt-setup-database --action drop --dba $(DB_DBA) --prompt-for-dba-password - -insert-approval-data: - $(PERL) $(DESTDIR)/$(RT_SBIN_PATH)/insert_approval_scrips -# }}} - -# {{{ libs-install -libs-install: - [ -d $(DESTDIR)/$(RT_LIB_PATH) ] || mkdir $(DESTDIR)/$(RT_LIB_PATH) - -cp -rp lib/* $(DESTDIR)/$(RT_LIB_PATH) -# }}} - -# {{{ html-install -html-install: - [ -d $(DESTDIR)/$(MASON_HTML_PATH) ] || mkdir $(DESTDIR)/$(MASON_HTML_PATH) - -cp -rp ./html/* $(DESTDIR)/$(MASON_HTML_PATH) -# }}} - -# {{{ doc-install -doc-install: - # RT 3.0.0 - RT 3.0.2 would accidentally create a file instead of a dir - -[ -f $(DESTDIR)/$(RT_DOC_PATH) ] && rm $(DESTDIR)/$(RT_DOC_PATH) - [ -d $(DESTDIR)/$(RT_DOC_PATH) ] || mkdir $(DESTDIR)/$(RT_DOC_PATH) - -cp -rp ./README $(DESTDIR)/$(RT_DOC_PATH) -# }}} - -# {{{ etc-install - -etc-install: - mkdir -p $(DESTDIR)/$(RT_ETC_PATH) - -cp -rp \ - etc/acl.* \ - etc/initialdata \ - etc/schema.* \ - $(DESTDIR)/$(RT_ETC_PATH) -# }}} - -# {{{ sbin-install - -sbin-install: - mkdir -p $(DESTDIR)/$(RT_SBIN_PATH) - chmod +x sbin/rt-setup-database \ - sbin/rt-test-dependencies - -cp -rp \ - sbin/rt-setup-database \ - sbin/rt-test-dependencies \ - $(DESTDIR)/$(RT_SBIN_PATH) - -# }}} - -# {{{ bin-install - -bin-install: - mkdir -p $(DESTDIR)/$(RT_BIN_PATH) - chmod +x bin/rt-mailgate \ - bin/rt-crontool - -cp -rp \ - bin/rt-mailgate \ - bin/mason_handler.fcgi \ - bin/mason_handler.scgi \ - bin/mason_handler.svc \ - bin/rt \ - bin/webmux.pl \ - bin/rt-crontool \ - $(DESTDIR)/$(RT_BIN_PATH) -# }}} - -# {{{ local-install -local-install: - -cp -rp ./local/html/* $(DESTDIR)/$(MASON_LOCAL_HTML_PATH) - -cp -rp ./local/po/* $(DESTDIR)/$(LOCAL_LEXICON_PATH) - -cp -rp ./local/etc/* $(DESTDIR)/$(LOCAL_ETC_PATH) -# }}} - -# {{{ Best Practical Build targets -- no user servicable parts inside - - -POD2TEST_EXE = sbin/extract_pod_tests - -testify-pods: - [ -d lib/t/autogen ] || mkdir lib/t/autogen - find lib -name \*pm |grep -v \*.in |xargs -n 1 $(PERL) $(POD2TEST_EXE) - find bin -type f |grep -v \~ | grep -v "\.in" | xargs -n 1 $(PERL) $(POD2TEST_EXE) - - - -regenerate-catalogs: - $(PERL) sbin/extract-message-catalog - -license-tag: - $(PERL) sbin/license_tag - -factory: initialize-database - cd lib; $(PERL) ../sbin/factory $(DB_DATABASE) RT - -commit: - aegis -build ; aegis -diff ; aegis -test; aegis -develop_end - -integrate: - aegis -integrate_begin; aegis -build; aegis -diff; aegis -test ; aegis -integrate_pass - -predist: commit tag-and-tar - -tag-and-release-baseline: - aegis -cp -ind Makefile -output /tmp/Makefile.tagandrelease; \ - $(MAKE) -f /tmp/Makefile.tagandrelease tag-and-release-never-by-hand - - -# Running this target in a working directory is -# WRONG WRONG WRONG. -# it will tag the current baseline with the version of RT defined -# in the currently-being-worked-on makefile. which is wrong. -# you want tag-and-release-baseline - -tag-and-release-never-by-hand: - aegis --delta-name $(TAG) - rm -rf /tmp/$(TAG) - mkdir /tmp/$(TAG) - cd /tmp/$(TAG); \ - aegis -cp -ind -delta $(TAG) . ;\ - make reconfigure;\ - chmod 600 Makefile;\ - aegis --report --project rt.$(RT_VERSION_MAJOR) \ - --page_width 80 \ - --page_length 9999 \ - --change $(RT_VERSION_MINOR) --output Changelog Change_Log - - cd /tmp; tar czvf /home/ftp/pub/rt/devel/$(TAG).tar.gz $(TAG)/ - chmod 644 /home/ftp/pub/rt/devel/$(TAG).tar.gz - - -reconfigure: - aclocal -I m4 - autoconf - chmod 755 ./configure - ./configure - -rpm: - (cd ..; tar czvf /usr/src/redhat/SOURCES/rt.tar.gz rt) - rpm -ba etc/rt.spec - - -apachectl: - apachectl stop - sleep 3 - apachectl start -# }}} diff --git a/rt/autom4te.cache/output.0 b/rt/autom4te.cache/output.0 deleted file mode 100644 index 3d27db94f..000000000 --- a/rt/autom4te.cache/output.0 +++ /dev/null @@ -1,2771 +0,0 @@ -@%:@! /bin/sh -@%:@ From configure.ac Revision: 1.1 . -@%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.53 for RT 3.0.9. -@%:@ -@%:@ Report bugs to <rt-3.0-bugs@fsck.com>. -@%:@ -@%:@ Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -@%:@ Free Software Foundation, Inc. -@%:@ This configure script is free software; the Free Software Foundation -@%:@ gives unlimited permission to copy, distribute and modify it. - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - - -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# NLS nuisances. -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - -(set +x; test -n "`(LANG=C; export LANG) 2>&1`") && - { $as_unset LANG || test "${LANG+set}" != set; } || - { LANG=C; export LANG; } -(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") && - { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } || - { LC_ALL=C; export LC_ALL; } -(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") && - { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } || - { LC_TIME=C; export LC_TIME; } -(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") && - { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } || - { LC_CTYPE=C; export LC_CTYPE; } -(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") && - { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } || - { LANGUAGE=C; export LANGUAGE; } -(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") && - { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } || - { LC_COLLATE=C; export LC_COLLATE; } -(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") && - { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } || - { LC_NUMERIC=C; export LC_NUMERIC; } -(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") && - { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } || - { LC_MESSAGES=C; export LC_MESSAGES; } - - -# Name of the executable. -as_me=`(basename "$0") 2>/dev/null || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conftest.sh - echo "exit 0" >>conftest.sh - chmod +x conftest.sh - if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conftest.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; } - - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -exec 6>&1 - -# -# Initializations. -# -ac_default_prefix=/usr/local -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Maximum number of lines to put in a shell here document. -# This variable seems obsolete. It should probably be removed, and -# only ac_max_sed_lines should be used. -: ${ac_max_here_lines=38} - -# Identity of this package. -PACKAGE_NAME='RT' -PACKAGE_TARNAME='rt' -PACKAGE_VERSION='3.0.9' -PACKAGE_STRING='RT 3.0.9' -PACKAGE_BUGREPORT='rt-3.0-bugs@fsck.com' - -ac_unique_file="lib/RT.pm.in" -ac_default_prefix=/opt/rt3 - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datadir='${prefix}/share' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -libdir='${exec_prefix}/lib' -includedir='${prefix}/include' -oldincludedir='/usr/include' -infodir='${prefix}/info' -mandir='${prefix}/man' - -ac_prev= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval "$ac_prev=\$ac_option" - ac_prev= - continue - fi - - ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_option in - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad | --data | --dat | --da) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ - | --da=*) - datadir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - eval "enable_$ac_feature=no" ;; - - -enable-* | --enable-*) - ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid feature name: $ac_feature" >&2 - { (exit 1); exit 1; }; } - ac_feature=`echo $ac_feature | sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "enable_$ac_feature='$ac_optarg'" ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst \ - | --locals | --local | --loca | --loc | --lo) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* \ - | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package| sed 's/-/_/g'` - case $ac_option in - *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; - *) ac_optarg=yes ;; - esac - eval "with_$ac_package='$ac_optarg'" ;; - - -without-* | --without-*) - ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid package name: $ac_package" >&2 - { (exit 1); exit 1; }; } - ac_package=`echo $ac_package | sed 's/-/_/g'` - eval "with_$ac_package=no" ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` - eval "$ac_envvar='$ac_optarg'" - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -# Be sure to have absolute paths. -for ac_var in exec_prefix prefix -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* | NONE | '' ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# Be sure to have absolute paths. -for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ - localstatedir libdir includedir oldincludedir infodir mandir -do - eval ac_val=$`echo $ac_var` - case $ac_val in - [\\/$]* | ?:[\\/]* ) ;; - *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; };; - esac -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || -$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$0" : 'X\(//\)[^/]' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r $srcdir/$ac_unique_file; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r $srcdir/$ac_unique_file; then - if test "$ac_srcdir_defaulted" = yes; then - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 - { (exit 1); exit 1; }; } - else - { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } - fi -fi -srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` -ac_env_build_alias_set=${build_alias+set} -ac_env_build_alias_value=$build_alias -ac_cv_env_build_alias_set=${build_alias+set} -ac_cv_env_build_alias_value=$build_alias -ac_env_host_alias_set=${host_alias+set} -ac_env_host_alias_value=$host_alias -ac_cv_env_host_alias_set=${host_alias+set} -ac_cv_env_host_alias_value=$host_alias -ac_env_target_alias_set=${target_alias+set} -ac_env_target_alias_value=$target_alias -ac_cv_env_target_alias_set=${target_alias+set} -ac_cv_env_target_alias_value=$target_alias -ac_env_PERL_set=${PERL+set} -ac_env_PERL_value=$PERL -ac_cv_env_PERL_set=${PERL+set} -ac_cv_env_PERL_value=$PERL - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # Omit some internal or obsolete options to make the list less imposing. - # This message is too long to be a string in the A/UX 3.1 sh. - cat <<_ACEOF -\`configure' configures RT 3.0.9 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -_ACEOF - - cat <<_ACEOF -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --datadir=DIR read-only architecture-independent data [PREFIX/share] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --infodir=DIR info documentation [PREFIX/info] - --mandir=DIR man documentation [PREFIX/man] -_ACEOF - - cat <<\_ACEOF -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of RT 3.0.9:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-layout=LAYOUT Use a specific directory layout (Default: RT3) - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-speedycgi=/path/to/speedy - path to your speedycgi binary, if it exists - --with-rt-group=GROUP group to own all files (default: rt) - --with-bin-owner=OWNER user that will own rt binaries (default root) - --with-libs-owner=OWNER user that will own RT libraries (default root) - --with-libs-group=GROUP group that will own rt binaries (default bin) - --with-db-type=TYPE sort of database RT will use (default: mysql) - (mysql, Pg, Oracle and Informix are valid) - --with-db-host=HOSTNAME FQDN of database server (default: localhost) - --with-db-port=PORT port on which the database listens on - --with-db-rt-host=HOSTNAME - FQDN of RT server which talks to the database server - (default: localhost) - --with-db-dba=DBA name of database administrator (default: root) - --with-db-database=DBNAME - name of the database to use (default: rt3) - --with-db-rt-user=DBUSER - name of database user (default: rt_user) - --with-db-rt-pass=PASSWORD - password for database user (default: rt_pass) - --with-web-user=USER user the web server runs as (default: www) - --with-web-group=GROUP group the web server runs as (default: www) - --with-my-user-group set all users and groups to current user/group - -Some influential environment variables: - PERL Perl interpreter command - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to <rt-3.0-bugs@fsck.com>. -_ACEOF -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - ac_popdir=`pwd` - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d $ac_dir || continue - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style configure. - if test -f $ac_srcdir/configure.gnu; then - echo - $SHELL $ac_srcdir/configure.gnu --help=recursive - elif test -f $ac_srcdir/configure; then - echo - $SHELL $ac_srcdir/configure --help=recursive - elif test -f $ac_srcdir/configure.ac || - test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else - echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi - cd $ac_popdir - done -fi - -test -n "$ac_init_help" && exit 0 -if $ac_init_version; then - cat <<\_ACEOF -RT configure 3.0.9 -generated by GNU Autoconf 2.53 - -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit 0 -fi -exec 5>config.log -cat >&5 <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by RT $as_me 3.0.9, which was -generated by GNU Autoconf 2.53. Invocation command line was - - $ $0 $@ - -_ACEOF -{ -cat <<_ASUNAME -@%:@@%:@ --------- @%:@@%:@ -@%:@@%:@ Platform. @%:@@%:@ -@%:@@%:@ --------- @%:@@%:@ - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -hostinfo = `(hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - echo "PATH: $as_dir" -done - -} >&5 - -cat >&5 <<_ACEOF - - -@%:@@%:@ ----------- @%:@@%:@ -@%:@@%:@ Core tests. @%:@@%:@ -@%:@@%:@ ----------- @%:@@%:@ - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Also quote any args containing shell meta-characters. -ac_configure_args= -ac_sep= -for ac_arg -do - case $ac_arg in - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n ) continue ;; - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - continue ;; - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" - ac_sep=" " ;; - esac - # Get rid of the leading space. -done - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Be sure not to use single quotes in there, as some shells, -# such as our DU 5.0 friend, will then `close' the trap. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - cat <<\_ASBOX -@%:@@%:@ ---------------- @%:@@%:@ -@%:@@%:@ Cache variables. @%:@@%:@ -@%:@@%:@ ---------------- @%:@@%:@ -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -{ - (set) 2>&1 | - case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in - *ac_space=\ *) - sed -n \ - "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" - ;; - *) - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} - echo - if test -s confdefs.h; then - cat <<\_ASBOX -@%:@@%:@ ----------- @%:@@%:@ -@%:@@%:@ confdefs.h. @%:@@%:@ -@%:@@%:@ ----------- @%:@@%:@ -_ASBOX - echo - sed "/^$/d" confdefs.h - echo - fi - test "$ac_signal" != 0 && - echo "$as_me: caught signal $ac_signal" - echo "$as_me: exit $exit_status" - } >&5 - rm -f core core.* *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -rf conftest* confdefs.h -# AIX cpp loses on an empty file, so make sure it contains at least a newline. -echo >confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer explicitly selected file to automatically selected ones. -if test -z "$CONFIG_SITE"; then - if test "x$prefix" != xNONE; then - CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" - else - CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" - fi -fi -for ac_site_file in $CONFIG_SITE; do - if test -r "$ac_site_file"; then - { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { echo "$as_me:$LINENO: loading cache $cache_file" >&5 -echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . $cache_file;; - *) . ./$cache_file;; - esac - fi -else - { echo "$as_me:$LINENO: creating cache $cache_file" >&5 -echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in `(set) 2>&1 | - sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val="\$ac_cv_env_${ac_var}_value" - eval ac_new_val="\$ac_env_${ac_var}_value" - case $ac_old_set,$ac_new_set in - set,) - { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 -echo "$as_me: former value: $ac_old_val" >&2;} - { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 -echo "$as_me: current value: $ac_new_val" >&2;} - ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) - ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - - - - - - - - - - - - - - - - - - - - - - - - - - - -rt_version_major=3 - -rt_version_minor=0 - -rt_version_patch=9 - -test "x$rt_version_major" = 'x' && rt_version_major=0 -test "x$rt_version_minor" = 'x' && rt_version_minor=0 -test "x$rt_version_patch" = 'x' && rt_version_patch=0 - -ac_aux_dir= -for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/install-sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f $ac_dir/install.sh; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f $ac_dir/shtool; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 -echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} - { (exit 1); exit 1; }; } -fi -ac_config_guess="$SHELL $ac_aux_dir/config.guess" -ac_config_sub="$SHELL $ac_aux_dir/config.sub" -ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# ./install, which can be erroneously created by make from ./install.sh. -echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - done - done - ;; -esac -done - - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. We don't cache a - # path for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the path is relative. - INSTALL=$ac_install_sh - fi -fi -echo "$as_me:$LINENO: result: $INSTALL" >&5 -echo "${ECHO_T}$INSTALL" >&6 - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - - -# Extract the first word of "perl", so it can be a program name with args. -set dummy perl; ac_word=$2 -echo "$as_me:$LINENO: checking for $ac_word" >&5 -echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 -if test "${ac_cv_path_PERL+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 -else - case $PERL in - [\\/]* | ?:[\\/]*) - ac_cv_path_PERL="$PERL" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done - - test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="not found" - ;; -esac -fi -PERL=$ac_cv_path_PERL - -if test -n "$PERL"; then - echo "$as_me:$LINENO: result: $PERL" >&5 -echo "${ECHO_T}$PERL" >&6 -else - echo "$as_me:$LINENO: result: no" >&5 -echo "${ECHO_T}no" >&6 -fi - -if test "$PERL" = 'not found'; then - { { echo "$as_me:$LINENO: error: cannot use $PACKAGE_NAME without perl" >&5 -echo "$as_me: error: cannot use $PACKAGE_NAME without perl" >&2;} - { (exit 1); exit 1; }; } -fi - -# Check whether --with-speedycgi or --without-speedycgi was given. -if test "${with_speedycgi+set}" = set; then - withval="$with_speedycgi" - SPEEDY_BIN=$withval -else - SPEEDY_BIN=/usr/local/bin/speedy -fi; - - - - - -# Check whether --enable-layout or --disable-layout was given. -if test "${enable_layout+set}" = set; then - enableval="$enable_layout" - LAYOUT=$enableval -fi; - -if test "x$LAYOUT" = "x"; then - LAYOUT="RT3" -fi - - if test ! -f $srcdir/config.layout; then - { echo "$as_me:$LINENO: WARNING: Layout file $srcdir/config.layout not found" >&5 -echo "$as_me: WARNING: Layout file $srcdir/config.layout not found" >&2;} - rt_layout_name=no - else - pldconf=./config.pld - $PERL -0777 -p -e "\$layout = '$LAYOUT';" -e ' - s/.*<Layout\s+$layout>//gims; - s/\<\/Layout\>.*//s; - s/^#.*$//m; - s/^\s+//gim; - s/\s+$/\n/gim; - s/\+$/\/rt3/gim; - # m4 will not let us just use $srcdir/config.layout, we need @S|@1 - s/^\s*((?:bin|sbin|libexec|data|sysconf|sharedstate|localstate|lib|include|oldinclude|info|man)dir)\s*:\s*(.*)$/@S|@1=@S|@2/gim; - s/^\s*(.*?)\s*:\s*(.*)$/\(test "x\@S|@@S|@1" = "xNONE" || test "x\@S|@@S|@1" = "x") && @S|@1=@S|@2/gim; - ' < $srcdir/config.layout > $pldconf - - if test -s $pldconf; then - rt_layout_name=$LAYOUT - . $pldconf - - for var in prefix exec_prefix bindir sbindir \ - sysconfdir mandir libdir datadir htmldir \ - localstatedir logfiledir masonstatedir \ - sessionstatedir customdir custometcdir customhtmldir \ - customlexdir customlibdir manualdir; do - eval "val=\"\$$var\"" - val=`echo $val | sed -e 's:\(.\)/*$:\1:'` - val=`echo $val | - sed -e 's:[\$]\([a-z_]*\):$\1:g'` - eval "$var='$val'" - done - - else - rt_layout_name=no - fi - #rm $pldconf - fi - - - ap_last='' - ap_cur='$prefix' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_prefix="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$exec_prefix' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_exec_prefix="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$bindir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_bindir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$sbindir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_sbindir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$sysconfdir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_sysconfdir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$mandir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_mandir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$libdir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_libdir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$datadir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_datadir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$htmldir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_htmldir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$manualdir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_manualdir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$localstatedir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_localstatedir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$logfiledir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_logfiledir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$masonstatedir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_masonstatedir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$sessionstatedir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_sessionstatedir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$customdir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_customdir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$custometcdir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_custometcdir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$customhtmldir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_customhtmldir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$customlexdir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_customlexdir="${ap_cur}" - - - - - - - ap_last='' - ap_cur='$customlibdir' - while test "x${ap_cur}" != "x${ap_last}"; do - ap_last="${ap_cur}" - ap_cur=`eval "echo ${ap_cur}"` - done - exp_customlibdir="${ap_cur}" - - - - - -echo "$as_me:$LINENO: checking for chosen layout" >&5 -echo $ECHO_N "checking for chosen layout... $ECHO_C" >&6 -if test "x$rt_layout_name" = "xno"; then - if test "x$LAYOUT" = "xno"; then - echo "$as_me:$LINENO: result: none" >&5 -echo "${ECHO_T}none" >&6 - else - echo "$as_me:$LINENO: result: $LAYOUT" >&5 -echo "${ECHO_T}$LAYOUT" >&6 - fi - { { echo "$as_me:$LINENO: error: a valid layout must be specified (or the default used)" >&5 -echo "$as_me: error: a valid layout must be specified (or the default used)" >&2;} - { (exit 1); exit 1; }; } -else - - echo "$as_me:$LINENO: result: $rt_layout_name" >&5 -echo "${ECHO_T}$rt_layout_name" >&6 -fi - - - -# Check whether --with-rt-group or --without-rt-group was given. -if test "${with_rt_group+set}" = set; then - withval="$with_rt_group" - RTGROUP=$withval -else - RTGROUP=rt -fi; - - - -# Check whether --with-bin-owner or --without-bin-owner was given. -if test "${with_bin_owner+set}" = set; then - withval="$with_bin_owner" - BIN_OWNER=$withval -else - BIN_OWNER=root -fi; - - - -# Check whether --with-libs-owner or --without-libs-owner was given. -if test "${with_libs_owner+set}" = set; then - withval="$with_libs_owner" - LIBS_OWNER=$withval -else - LIBS_OWNER=root -fi; - - - -# Check whether --with-libs-group or --without-libs-group was given. -if test "${with_libs_group+set}" = set; then - withval="$with_libs_group" - LIBS_GROUP=$withval -else - LIBS_GROUP=bin -fi; - - - -# Check whether --with-db-type or --without-db-type was given. -if test "${with_db_type+set}" = set; then - withval="$with_db_type" - DB_TYPE=$withval -else - DB_TYPE=mysql -fi; -if test "$DB_TYPE" != 'mysql' -a "$DB_TYPE" != 'Pg' -a "$DB_TYPE" != 'SQLite' -a "$DB_TYPE" != 'Oracle' -a "$DB_TYPE" != 'Informix' ; then - { { echo "$as_me:$LINENO: error: Only Oracle, Informix, Pg and mysql are valid db types" >&5 -echo "$as_me: error: Only Oracle, Informix, Pg and mysql are valid db types" >&2;} - { (exit 1); exit 1; }; } -fi - - -if test "$DB_TYPE" = 'Oracle'; then - test "x$ORACLE_HOME" = 'x' && { { echo "$as_me:$LINENO: error: Please declare the ORACLE_HOME environment variable" >&5 -echo "$as_me: error: Please declare the ORACLE_HOME environment variable" >&2;} - { (exit 1); exit 1; }; } - ORACLE_ENV_PREF="\$ENV{'ORACLE_HOME'} = '$ORACLE_HOME';" -fi - - - -# Check whether --with-db-host or --without-db-host was given. -if test "${with_db_host+set}" = set; then - withval="$with_db_host" - DB_HOST=$withval -else - DB_HOST=localhost -fi; - - - -# Check whether --with-db-port or --without-db-port was given. -if test "${with_db_port+set}" = set; then - withval="$with_db_port" - DB_PORT=$withval -else - DB_PORT= -fi; - - - -# Check whether --with-db-rt-host or --without-db-rt-host was given. -if test "${with_db_rt_host+set}" = set; then - withval="$with_db_rt_host" - DB_RT_HOST=$withval -else - DB_RT_HOST=localhost -fi; - - - -# Check whether --with-db-dba or --without-db-dba was given. -if test "${with_db_dba+set}" = set; then - withval="$with_db_dba" - DB_DBA=$withval -else - DB_DBA=root -fi; - - - -# Check whether --with-db-database or --without-db-database was given. -if test "${with_db_database+set}" = set; then - withval="$with_db_database" - DB_DATABASE=$withval -else - DB_DATABASE=rt3 -fi; - - - -# Check whether --with-db-rt-user or --without-db-rt-user was given. -if test "${with_db_rt_user+set}" = set; then - withval="$with_db_rt_user" - DB_RT_USER=$withval -else - DB_RT_USER=rt_user -fi; - - - -# Check whether --with-db-rt-pass or --without-db-rt-pass was given. -if test "${with_db_rt_pass+set}" = set; then - withval="$with_db_rt_pass" - DB_RT_PASS=$withval -else - DB_RT_PASS=rt_pass -fi; - - - -# Check whether --with-web-user or --without-web-user was given. -if test "${with_web_user+set}" = set; then - withval="$with_web_user" - WEB_USER=$withval -else - WEB_USER=www -fi; - - - -# Check whether --with-web-group or --without-web-group was given. -if test "${with_web_group+set}" = set; then - withval="$with_web_group" - WEB_GROUP=$withval -else - WEB_GROUP=www -fi; - - -my_group=$(groups|cut -f1 -d' ') - -# Check whether --with-my-user-group or --without-my-user-group was given. -if test "${with_my_user_group+set}" = set; then - withval="$with_my_user_group" - RTGROUP=$my_group - BIN_OWNER=$USER - LIBS_OWNER=$USER - LIBS_GROUP=$my_group - WEB_USER=$USER - WEB_GROUP=$my_group -fi; - - -RT_VERSION_MAJOR=${rt_version_major} - -RT_VERSION_MINOR=${rt_version_minor} - -RT_VERSION_PATCH=${rt_version_patch} - - -RT_PATH=${exp_prefix} - -RT_DOC_PATH=${exp_manualdir} - -RT_LOCAL_PATH=${exp_customdir} - -RT_LIB_PATH=${exp_libdir} - -RT_ETC_PATH=${exp_sysconfdir} - -CONFIG_FILE_PATH=${exp_sysconfdir} - -RT_BIN_PATH=${exp_bindir} - -RT_SBIN_PATH=${exp_sbindir} - -RT_VAR_PATH=${exp_localstatedir} - -RT_MAN_PATH=${exp_mandir} - -MASON_DATA_PATH=${exp_masonstatedir} - -MASON_SESSION_PATH=${exp_sessionstatedir} - -MASON_HTML_PATH=${exp_htmldir} - -LOCAL_ETC_PATH=${exp_custometcdir} - -MASON_LOCAL_HTML_PATH=${exp_customhtmldir} - -LOCAL_LEXICON_PATH=${exp_customlexdir} - -LOCAL_LIB_PATH=${exp_customlibdir} - -DESTDIR=${exp_prefix} - -RT_LOG_PATH=${exp_logfiledir} - - - -ac_config_files="$ac_config_files sbin/rt-setup-database sbin/rt-test-dependencies Makefile etc/RT_Config.pm lib/RT.pm lib/t/00smoke.t lib/t/01harness.t lib/t/02regression.t lib/t/03web.pl lib/t/04_send_email.pl bin/mason_handler.fcgi bin/mason_handler.scgi bin/mason_handler.svc bin/rt-commit-handler bin/rt-crontool bin/rt-mailgate bin/rt bin/webmux.pl" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overriden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, don't put newlines in cache variables' values. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -{ - (set) 2>&1 | - case `(ac_space=' '; set | grep ac_space) 2>&1` in - *ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n \ - "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" - ;; - esac; -} | - sed ' - t clear - : clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - : end' >>confcache -if cmp -s $cache_file confcache; then :; else - if test -w $cache_file; then - test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" - cat confcache >$cache_file - else - echo "not updating unwritable cache $cache_file" - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -}' -fi - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then we branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -cat >confdef2opt.sed <<\_ACEOF -t clear -: clear -s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\),-D\1=\2,g -t quote -s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\),-D\1=\2,g -t quote -d -: quote -s,[ `~#$^&*(){}\\|;'"<>?],\\&,g -s,\[,\\&,g -s,\],\\&,g -s,\$,$$,g -p -_ACEOF -# We use echo to avoid assuming a particular line-breaking character. -# The extra dot is to prevent the shell from consuming trailing -# line-breaks from the sub-command output. A line-break within -# single-quotes doesn't work because, if this script is created in a -# platform that uses two characters for line-breaks (e.g., DOS), tr -# would break. -ac_LF_and_DOT=`echo; echo .` -DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'` -rm -f confdef2opt.sed - - - -: ${CONFIG_STATUS=./config.status} -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# NLS nuisances. -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - -(set +x; test -n "`(LANG=C; export LANG) 2>&1`") && - { $as_unset LANG || test "${LANG+set}" != set; } || - { LANG=C; export LANG; } -(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") && - { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } || - { LC_ALL=C; export LC_ALL; } -(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") && - { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } || - { LC_TIME=C; export LC_TIME; } -(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") && - { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } || - { LC_CTYPE=C; export LC_CTYPE; } -(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") && - { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } || - { LANGUAGE=C; export LANGUAGE; } -(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") && - { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } || - { LC_COLLATE=C; export LC_COLLATE; } -(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") && - { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } || - { LC_NUMERIC=C; export LC_NUMERIC; } -(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") && - { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } || - { LC_MESSAGES=C; export LC_MESSAGES; } - - -# Name of the executable. -as_me=`(basename "$0") 2>/dev/null || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conftest.sh - echo "exit 0" >>conftest.sh - chmod +x conftest.sh - if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conftest.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; } - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX -@%:@@%:@ Running $as_me. @%:@@%:@ -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by RT $as_me 3.0.9, which was -generated by GNU Autoconf 2.53. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -_ACEOF - -# Files that config.status was made for. -if test -n "$ac_config_files"; then - echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_headers"; then - echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_links"; then - echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS -fi - -if test -n "$ac_config_commands"; then - echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS -fi - -cat >>$CONFIG_STATUS <<\_ACEOF - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Report bugs to <bug-autoconf@gnu.org>." -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF -ac_cs_version="\\ -RT config.status 3.0.9 -configured by $0, generated by GNU Autoconf 2.53, - with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" - -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=$srcdir -INSTALL="$INSTALL" -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - shift - set dummy "$ac_option" "$ac_optarg" ${1+"$@"} - shift - ;; - -*);; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_need_defaults=false;; - esac - - case $1 in - # Handling of the options. -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running $SHELL $0 " $ac_configure_args " --no-create --no-recursion" - exec $SHELL $0 $ac_configure_args --no-create --no-recursion ;; -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - shift - CONFIG_FILES="$CONFIG_FILES $1" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - shift - CONFIG_HEADERS="$CONFIG_HEADERS $1" - ac_need_defaults=false;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - esac - shift -done - -_ACEOF - - - - - -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "sbin/rt-setup-database" ) CONFIG_FILES="$CONFIG_FILES sbin/rt-setup-database" ;; - "sbin/rt-test-dependencies" ) CONFIG_FILES="$CONFIG_FILES sbin/rt-test-dependencies" ;; - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "etc/RT_Config.pm" ) CONFIG_FILES="$CONFIG_FILES etc/RT_Config.pm" ;; - "lib/RT.pm" ) CONFIG_FILES="$CONFIG_FILES lib/RT.pm" ;; - "lib/t/00smoke.t" ) CONFIG_FILES="$CONFIG_FILES lib/t/00smoke.t" ;; - "lib/t/01harness.t" ) CONFIG_FILES="$CONFIG_FILES lib/t/01harness.t" ;; - "lib/t/02regression.t" ) CONFIG_FILES="$CONFIG_FILES lib/t/02regression.t" ;; - "lib/t/03web.pl" ) CONFIG_FILES="$CONFIG_FILES lib/t/03web.pl" ;; - "lib/t/04_send_email.pl" ) CONFIG_FILES="$CONFIG_FILES lib/t/04_send_email.pl" ;; - "bin/mason_handler.fcgi" ) CONFIG_FILES="$CONFIG_FILES bin/mason_handler.fcgi" ;; - "bin/mason_handler.scgi" ) CONFIG_FILES="$CONFIG_FILES bin/mason_handler.scgi" ;; - "bin/mason_handler.svc" ) CONFIG_FILES="$CONFIG_FILES bin/mason_handler.svc" ;; - "bin/rt-commit-handler" ) CONFIG_FILES="$CONFIG_FILES bin/rt-commit-handler" ;; - "bin/rt-crontool" ) CONFIG_FILES="$CONFIG_FILES bin/rt-crontool" ;; - "bin/rt-mailgate" ) CONFIG_FILES="$CONFIG_FILES bin/rt-mailgate" ;; - "bin/rt" ) CONFIG_FILES="$CONFIG_FILES bin/rt" ;; - "bin/webmux.pl" ) CONFIG_FILES="$CONFIG_FILES bin/webmux.pl" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files -fi - -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. -: ${TMPDIR=/tmp} -{ - tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=$TMPDIR/cs$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in $TMPDIR" >&2 - { (exit 1); exit 1; } -} - -_ACEOF - -cat >>$CONFIG_STATUS <<_ACEOF - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "\$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF -s,@SHELL@,$SHELL,;t t -s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t -s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t -s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t -s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t -s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t -s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t -s,@exec_prefix@,$exec_prefix,;t t -s,@prefix@,$prefix,;t t -s,@program_transform_name@,$program_transform_name,;t t -s,@bindir@,$bindir,;t t -s,@sbindir@,$sbindir,;t t -s,@libexecdir@,$libexecdir,;t t -s,@datadir@,$datadir,;t t -s,@sysconfdir@,$sysconfdir,;t t -s,@sharedstatedir@,$sharedstatedir,;t t -s,@localstatedir@,$localstatedir,;t t -s,@libdir@,$libdir,;t t -s,@includedir@,$includedir,;t t -s,@oldincludedir@,$oldincludedir,;t t -s,@infodir@,$infodir,;t t -s,@mandir@,$mandir,;t t -s,@build_alias@,$build_alias,;t t -s,@host_alias@,$host_alias,;t t -s,@target_alias@,$target_alias,;t t -s,@DEFS@,$DEFS,;t t -s,@ECHO_C@,$ECHO_C,;t t -s,@ECHO_N@,$ECHO_N,;t t -s,@ECHO_T@,$ECHO_T,;t t -s,@LIBS@,$LIBS,;t t -s,@rt_version_major@,$rt_version_major,;t t -s,@rt_version_minor@,$rt_version_minor,;t t -s,@rt_version_patch@,$rt_version_patch,;t t -s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t -s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t -s,@INSTALL_DATA@,$INSTALL_DATA,;t t -s,@PERL@,$PERL,;t t -s,@SPEEDY_BIN@,$SPEEDY_BIN,;t t -s,@exp_prefix@,$exp_prefix,;t t -s,@exp_exec_prefix@,$exp_exec_prefix,;t t -s,@exp_bindir@,$exp_bindir,;t t -s,@exp_sbindir@,$exp_sbindir,;t t -s,@exp_sysconfdir@,$exp_sysconfdir,;t t -s,@exp_mandir@,$exp_mandir,;t t -s,@exp_libdir@,$exp_libdir,;t t -s,@exp_datadir@,$exp_datadir,;t t -s,@htmldir@,$htmldir,;t t -s,@exp_htmldir@,$exp_htmldir,;t t -s,@manualdir@,$manualdir,;t t -s,@exp_manualdir@,$exp_manualdir,;t t -s,@exp_localstatedir@,$exp_localstatedir,;t t -s,@logfiledir@,$logfiledir,;t t -s,@exp_logfiledir@,$exp_logfiledir,;t t -s,@masonstatedir@,$masonstatedir,;t t -s,@exp_masonstatedir@,$exp_masonstatedir,;t t -s,@sessionstatedir@,$sessionstatedir,;t t -s,@exp_sessionstatedir@,$exp_sessionstatedir,;t t -s,@customdir@,$customdir,;t t -s,@exp_customdir@,$exp_customdir,;t t -s,@custometcdir@,$custometcdir,;t t -s,@exp_custometcdir@,$exp_custometcdir,;t t -s,@customhtmldir@,$customhtmldir,;t t -s,@exp_customhtmldir@,$exp_customhtmldir,;t t -s,@customlexdir@,$customlexdir,;t t -s,@exp_customlexdir@,$exp_customlexdir,;t t -s,@customlibdir@,$customlibdir,;t t -s,@exp_customlibdir@,$exp_customlibdir,;t t -s,@rt_layout_name@,$rt_layout_name,;t t -s,@RTGROUP@,$RTGROUP,;t t -s,@BIN_OWNER@,$BIN_OWNER,;t t -s,@LIBS_OWNER@,$LIBS_OWNER,;t t -s,@LIBS_GROUP@,$LIBS_GROUP,;t t -s,@DB_TYPE@,$DB_TYPE,;t t -s,@ORACLE_ENV_PREF@,$ORACLE_ENV_PREF,;t t -s,@DB_HOST@,$DB_HOST,;t t -s,@DB_PORT@,$DB_PORT,;t t -s,@DB_RT_HOST@,$DB_RT_HOST,;t t -s,@DB_DBA@,$DB_DBA,;t t -s,@DB_DATABASE@,$DB_DATABASE,;t t -s,@DB_RT_USER@,$DB_RT_USER,;t t -s,@DB_RT_PASS@,$DB_RT_PASS,;t t -s,@WEB_USER@,$WEB_USER,;t t -s,@WEB_GROUP@,$WEB_GROUP,;t t -s,@RT_VERSION_MAJOR@,$RT_VERSION_MAJOR,;t t -s,@RT_VERSION_MINOR@,$RT_VERSION_MINOR,;t t -s,@RT_VERSION_PATCH@,$RT_VERSION_PATCH,;t t -s,@RT_PATH@,$RT_PATH,;t t -s,@RT_DOC_PATH@,$RT_DOC_PATH,;t t -s,@RT_LOCAL_PATH@,$RT_LOCAL_PATH,;t t -s,@RT_LIB_PATH@,$RT_LIB_PATH,;t t -s,@RT_ETC_PATH@,$RT_ETC_PATH,;t t -s,@CONFIG_FILE_PATH@,$CONFIG_FILE_PATH,;t t -s,@RT_BIN_PATH@,$RT_BIN_PATH,;t t -s,@RT_SBIN_PATH@,$RT_SBIN_PATH,;t t -s,@RT_VAR_PATH@,$RT_VAR_PATH,;t t -s,@RT_MAN_PATH@,$RT_MAN_PATH,;t t -s,@MASON_DATA_PATH@,$MASON_DATA_PATH,;t t -s,@MASON_SESSION_PATH@,$MASON_SESSION_PATH,;t t -s,@MASON_HTML_PATH@,$MASON_HTML_PATH,;t t -s,@LOCAL_ETC_PATH@,$LOCAL_ETC_PATH,;t t -s,@MASON_LOCAL_HTML_PATH@,$MASON_LOCAL_HTML_PATH,;t t -s,@LOCAL_LEXICON_PATH@,$LOCAL_LEXICON_PATH,;t t -s,@LOCAL_LIB_PATH@,$LOCAL_LIB_PATH,;t t -s,@DESTDIR@,$DESTDIR,;t t -s,@RT_LOG_PATH@,$RT_LOG_PATH,;t t -CEOF - -_ACEOF - - cat >>$CONFIG_STATUS <<\_ACEOF - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { case "$ac_dir" in - [\\/]* | ?:[\\/]* ) as_incr_dir=;; - *) as_incr_dir=.;; -esac -as_dummy="$ac_dir" -for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do - case $as_mkdir_dir in - # Skip DOS drivespec - ?:) as_incr_dir=$as_mkdir_dir ;; - *) - as_incr_dir=$as_incr_dir/$as_mkdir_dir - test -d "$as_incr_dir" || - mkdir "$as_incr_dir" || - { { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; } - ;; - esac -done; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF - sed "$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@abs_srcdir@,$ac_abs_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s,@builddir@,$ac_builddir,;t t -s,@abs_builddir@,$ac_abs_builddir,;t t -s,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - exec 5>/dev/null - $SHELL $CONFIG_STATUS || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi - diff --git a/rt/autom4te.cache/requests b/rt/autom4te.cache/requests deleted file mode 100644 index fad7b54f5..000000000 --- a/rt/autom4te.cache/requests +++ /dev/null @@ -1,94 +0,0 @@ -# This file was created by autom4te. -# It contains the lists of macros which have been traced. -# It can be safely removed. - -@request = ( - bless( [ - '0', - 1, - [ - '/usr/share/autoconf' - ], - [ - '--reload-state=/usr/share/autoconf/autoconf/autoconf.m4f', - 'aclocal.m4', - 'configure.ac' - ], - { - 'AC_HEADER_STAT' => 1, - 'AC_FUNC_STRFTIME' => 1, - 'AC_PROG_RANLIB' => 1, - 'AC_FUNC_WAIT3' => 1, - 'AC_FUNC_SETPGRP' => 1, - 'AC_HEADER_TIME' => 1, - 'AC_FUNC_SETVBUF_REVERSED' => 1, - 'AC_HEADER_SYS_WAIT' => 1, - 'AC_TYPE_UID_T' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_CHECK_LIB' => 1, - 'AC_PROG_LN_S' => 1, - 'AC_FUNC_MEMCMP' => 1, - 'AC_FUNC_FORK' => 1, - 'AC_FUNC_GETGROUPS' => 1, - 'AC_HEADER_MAJOR' => 1, - 'AC_FUNC_STRTOD' => 1, - 'AC_HEADER_DIRENT' => 1, - 'AC_FUNC_UTIME_NULL' => 1, - 'AC_CONFIG_FILES' => 1, - 'AC_FUNC_ALLOCA' => 1, - 'AC_C_CONST' => 1, - 'include' => 1, - 'AC_FUNC_OBSTACK' => 1, - 'AC_FUNC_LSTAT' => 1, - 'AC_STRUCT_TIMEZONE' => 1, - 'AC_FUNC_GETPGRP' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AC_CHECK_HEADERS' => 1, - 'AC_TYPE_MODE_T' => 1, - 'AC_CHECK_TYPES' => 1, - 'AC_PROG_YACC' => 1, - 'AC_TYPE_PID_T' => 1, - 'AC_FUNC_STRERROR_R' => 1, - 'AC_STRUCT_ST_BLOCKS' => 1, - 'AC_PROG_GCC_TRADITIONAL' => 1, - 'AC_TYPE_SIGNAL' => 1, - 'AC_FUNC_FNMATCH' => 1, - 'AC_PROG_CPP' => 1, - 'AM_PROG_LIBTOOL' => 1, - 'AC_FUNC_STAT' => 1, - 'AC_PROG_INSTALL' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AC_FUNC_STRCOLL' => 1, - 'AC_LIBSOURCE' => 1, - 'AC_C_INLINE' => 1, - 'AC_FUNC_CHOWN' => 1, - 'AC_PROG_LEX' => 1, - 'AH_OUTPUT' => 1, - 'AC_HEADER_STDC' => 1, - 'AC_FUNC_GETLOADAVG' => 1, - 'AC_CHECK_FUNCS' => 1, - 'AC_TYPE_SIZE_T' => 1, - 'AC_DECL_SYS_SIGLIST' => 1, - 'AC_FUNC_MKTIME' => 1, - 'AC_PROG_MAKE_SET' => 1, - 'AC_PROG_CXX' => 1, - 'm4_pattern_allow' => 1, - 'm4_include' => 1, - 'm4_pattern_forbid' => 1, - 'AC_PROG_AWK' => 1, - 'AC_FUNC_VPRINTF' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AC_PATH_X' => 1, - 'AC_TYPE_OFF_T' => 1, - 'AC_FUNC_MALLOC' => 1, - 'AC_FUNC_ERROR_AT_LINE' => 1, - 'AC_FUNC_FSEEKO' => 1, - 'AC_FUNC_MMAP' => 1, - 'AC_STRUCT_TM' => 1, - 'AC_SUBST' => 1, - 'AC_PROG_CC' => 1, - 'AC_PROG_LIBTOOL' => 1 - } - ], 'Request' ) - ); - diff --git a/rt/autom4te.cache/traces.0 b/rt/autom4te.cache/traces.0 deleted file mode 100644 index f13276211..000000000 --- a/rt/autom4te.cache/traces.0 +++ /dev/null @@ -1,158 +0,0 @@ -m4trace:configure.ac:9: -1- m4_pattern_forbid([^_?A[CHUM]_]) -m4trace:configure.ac:9: -1- m4_pattern_forbid([_AC_]) -m4trace:configure.ac:9: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs. LIBOBJS']) -m4trace:configure.ac:9: -1- m4_pattern_allow([^AS_FLAGS$]) -m4trace:configure.ac:9: -1- m4_pattern_forbid([^_?m4_]) -m4trace:configure.ac:9: -1- m4_pattern_forbid([^dnl$]) -m4trace:configure.ac:9: -1- m4_pattern_forbid([^_?AS_]) -m4trace:configure.ac:9: -1- AC_SUBST([SHELL], [${CONFIG_SHELL-/bin/sh}]) -m4trace:configure.ac:9: -1- AC_SUBST([PATH_SEPARATOR]) -m4trace:configure.ac:9: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) -m4trace:configure.ac:9: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) -m4trace:configure.ac:9: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) -m4trace:configure.ac:9: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) -m4trace:configure.ac:9: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) -m4trace:configure.ac:9: -1- AC_SUBST([exec_prefix], [NONE]) -m4trace:configure.ac:9: -1- AC_SUBST([prefix], [NONE]) -m4trace:configure.ac:9: -1- AC_SUBST([program_transform_name], [s,x,x,]) -m4trace:configure.ac:9: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) -m4trace:configure.ac:9: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) -m4trace:configure.ac:9: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) -m4trace:configure.ac:9: -1- AC_SUBST([datadir], ['${prefix}/share']) -m4trace:configure.ac:9: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) -m4trace:configure.ac:9: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) -m4trace:configure.ac:9: -1- AC_SUBST([localstatedir], ['${prefix}/var']) -m4trace:configure.ac:9: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) -m4trace:configure.ac:9: -1- AC_SUBST([includedir], ['${prefix}/include']) -m4trace:configure.ac:9: -1- AC_SUBST([oldincludedir], ['/usr/include']) -m4trace:configure.ac:9: -1- AC_SUBST([infodir], ['${prefix}/info']) -m4trace:configure.ac:9: -1- AC_SUBST([mandir], ['${prefix}/man']) -m4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) -m4trace:configure.ac:9: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ -#undef PACKAGE_NAME]) -m4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) -m4trace:configure.ac:9: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME]) -m4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) -m4trace:configure.ac:9: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ -#undef PACKAGE_VERSION]) -m4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) -m4trace:configure.ac:9: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING]) -m4trace:configure.ac:9: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) -m4trace:configure.ac:9: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT]) -m4trace:configure.ac:9: -1- AC_SUBST([build_alias]) -m4trace:configure.ac:9: -1- AC_SUBST([host_alias]) -m4trace:configure.ac:9: -1- AC_SUBST([target_alias]) -m4trace:configure.ac:9: -1- AC_SUBST([DEFS]) -m4trace:configure.ac:9: -1- AC_SUBST([ECHO_C]) -m4trace:configure.ac:9: -1- AC_SUBST([ECHO_N]) -m4trace:configure.ac:9: -1- AC_SUBST([ECHO_T]) -m4trace:configure.ac:9: -1- AC_SUBST([LIBS]) -m4trace:configure.ac:14: -1- AC_SUBST([rt_version_major], [3]) -m4trace:configure.ac:16: -1- AC_SUBST([rt_version_minor], [0]) -m4trace:configure.ac:18: -1- AC_SUBST([rt_version_patch], [9]) -m4trace:configure.ac:24: -1- AC_PROG_INSTALL -m4trace:configure.ac:24: -1- AC_SUBST([INSTALL_PROGRAM]) -m4trace:configure.ac:24: -1- AC_SUBST([INSTALL_SCRIPT]) -m4trace:configure.ac:24: -1- AC_SUBST([INSTALL_DATA]) -m4trace:configure.ac:25: -1- AC_SUBST([PERL]) -m4trace:configure.ac:26: -1- AC_SUBST([PERL], [$ac_cv_path_PERL]) -m4trace:configure.ac:36: -1- AC_SUBST([SPEEDY_BIN]) -m4trace:configure.ac:41: -1- AC_SUBST([prefix]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_prefix]) -m4trace:configure.ac:41: -1- AC_SUBST([exec_prefix]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_exec_prefix]) -m4trace:configure.ac:41: -1- AC_SUBST([bindir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_bindir]) -m4trace:configure.ac:41: -1- AC_SUBST([sbindir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_sbindir]) -m4trace:configure.ac:41: -1- AC_SUBST([sysconfdir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_sysconfdir]) -m4trace:configure.ac:41: -1- AC_SUBST([mandir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_mandir]) -m4trace:configure.ac:41: -1- AC_SUBST([libdir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_libdir]) -m4trace:configure.ac:41: -1- AC_SUBST([datadir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_datadir]) -m4trace:configure.ac:41: -1- AC_SUBST([htmldir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_htmldir]) -m4trace:configure.ac:41: -1- AC_SUBST([manualdir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_manualdir]) -m4trace:configure.ac:41: -1- AC_SUBST([localstatedir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_localstatedir]) -m4trace:configure.ac:41: -1- AC_SUBST([logfiledir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_logfiledir]) -m4trace:configure.ac:41: -1- AC_SUBST([masonstatedir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_masonstatedir]) -m4trace:configure.ac:41: -1- AC_SUBST([sessionstatedir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_sessionstatedir]) -m4trace:configure.ac:41: -1- AC_SUBST([customdir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_customdir]) -m4trace:configure.ac:41: -1- AC_SUBST([custometcdir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_custometcdir]) -m4trace:configure.ac:41: -1- AC_SUBST([customhtmldir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_customhtmldir]) -m4trace:configure.ac:41: -1- AC_SUBST([customlexdir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_customlexdir]) -m4trace:configure.ac:41: -1- AC_SUBST([customlibdir]) -m4trace:configure.ac:41: -1- AC_SUBST([exp_customlibdir]) -m4trace:configure.ac:41: -1- AC_SUBST([rt_layout_name]) -m4trace:configure.ac:49: -1- AC_SUBST([RTGROUP]) -m4trace:configure.ac:57: -1- AC_SUBST([BIN_OWNER]) -m4trace:configure.ac:65: -1- AC_SUBST([LIBS_OWNER]) -m4trace:configure.ac:73: -1- AC_SUBST([LIBS_GROUP]) -m4trace:configure.ac:84: -1- AC_SUBST([DB_TYPE]) -m4trace:configure.ac:91: -1- AC_SUBST([ORACLE_ENV_PREF]) -m4trace:configure.ac:99: -1- AC_SUBST([DB_HOST]) -m4trace:configure.ac:107: -1- AC_SUBST([DB_PORT]) -m4trace:configure.ac:115: -1- AC_SUBST([DB_RT_HOST]) -m4trace:configure.ac:123: -1- AC_SUBST([DB_DBA]) -m4trace:configure.ac:131: -1- AC_SUBST([DB_DATABASE]) -m4trace:configure.ac:139: -1- AC_SUBST([DB_RT_USER]) -m4trace:configure.ac:147: -1- AC_SUBST([DB_RT_PASS]) -m4trace:configure.ac:155: -1- AC_SUBST([WEB_USER]) -m4trace:configure.ac:163: -1- AC_SUBST([WEB_GROUP]) -m4trace:configure.ac:182: -1- AC_SUBST([RT_VERSION_MAJOR], [${rt_version_major}]) -m4trace:configure.ac:183: -1- AC_SUBST([RT_VERSION_MINOR], [${rt_version_minor}]) -m4trace:configure.ac:184: -1- AC_SUBST([RT_VERSION_PATCH], [${rt_version_patch}]) -m4trace:configure.ac:187: -1- AC_SUBST([RT_PATH], [${exp_prefix}]) -m4trace:configure.ac:188: -1- AC_SUBST([RT_DOC_PATH], [${exp_manualdir}]) -m4trace:configure.ac:189: -1- AC_SUBST([RT_LOCAL_PATH], [${exp_customdir}]) -m4trace:configure.ac:190: -1- AC_SUBST([RT_LIB_PATH], [${exp_libdir}]) -m4trace:configure.ac:191: -1- AC_SUBST([RT_ETC_PATH], [${exp_sysconfdir}]) -m4trace:configure.ac:192: -1- AC_SUBST([CONFIG_FILE_PATH], [${exp_sysconfdir}]) -m4trace:configure.ac:193: -1- AC_SUBST([RT_BIN_PATH], [${exp_bindir}]) -m4trace:configure.ac:194: -1- AC_SUBST([RT_SBIN_PATH], [${exp_sbindir}]) -m4trace:configure.ac:195: -1- AC_SUBST([RT_VAR_PATH], [${exp_localstatedir}]) -m4trace:configure.ac:196: -1- AC_SUBST([RT_MAN_PATH], [${exp_mandir}]) -m4trace:configure.ac:197: -1- AC_SUBST([MASON_DATA_PATH], [${exp_masonstatedir}]) -m4trace:configure.ac:198: -1- AC_SUBST([MASON_SESSION_PATH], [${exp_sessionstatedir}]) -m4trace:configure.ac:199: -1- AC_SUBST([MASON_HTML_PATH], [${exp_htmldir}]) -m4trace:configure.ac:200: -1- AC_SUBST([LOCAL_ETC_PATH], [${exp_custometcdir}]) -m4trace:configure.ac:201: -1- AC_SUBST([MASON_LOCAL_HTML_PATH], [${exp_customhtmldir}]) -m4trace:configure.ac:202: -1- AC_SUBST([LOCAL_LEXICON_PATH], [${exp_customlexdir}]) -m4trace:configure.ac:203: -1- AC_SUBST([LOCAL_LIB_PATH], [${exp_customlibdir}]) -m4trace:configure.ac:204: -1- AC_SUBST([DESTDIR], [${exp_prefix}]) -m4trace:configure.ac:205: -1- AC_SUBST([RT_LOG_PATH], [${exp_logfiledir}]) -m4trace:configure.ac:228: -1- AC_CONFIG_FILES([ - sbin/rt-setup-database - sbin/rt-test-dependencies - Makefile - etc/RT_Config.pm - lib/RT.pm - lib/t/00smoke.t - lib/t/01harness.t - lib/t/02regression.t - lib/t/03web.pl - lib/t/04_send_email.pl - bin/mason_handler.fcgi - bin/mason_handler.scgi - bin/mason_handler.svc - bin/rt-commit-handler - bin/rt-crontool - bin/rt-mailgate - bin/rt - bin/webmux.pl - ]) diff --git a/rt/bin/mason_handler.fcgi b/rt/bin/mason_handler.fcgi deleted file mode 100755 index 93d1f8855..000000000 --- a/rt/bin/mason_handler.fcgi +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/perl -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK - -use strict; -use File::Basename; -require ('/opt/rt3/bin/webmux.pl'); - -my $h = &RT::Interface::Web::NewCGIHandler(@RT::MasonParameters); - -# Enter CGI::Fast mode, which should also work as a vanilla CGI script. -require CGI::Fast; - -RT::Init(); - -# Response loop -while ( my $cgi = CGI::Fast->new ) { - # the whole point of fastcgi requires the env to get reset here.. - # So we must squash it again - $ENV{'PATH'} = '/bin:/usr/bin'; - $ENV{'CDPATH'} = '' if defined $ENV{'CDPATH'}; - $ENV{'SHELL'} = '/bin/sh' if defined $ENV{'SHELL'}; - $ENV{'ENV'} = '' if defined $ENV{'ENV'}; - $ENV{'IFS'} = '' if defined $ENV{'IFS'}; - - RT::ConnectToDatabase(); - - if ( ( !$h->interp->comp_exists( $cgi->path_info ) ) - && ( $h->interp->comp_exists( $cgi->path_info . "/index.html" ) ) ) { - $cgi->path_info( $cgi->path_info . "/index.html" ); - } - - eval { $h->handle_cgi_object($cgi); }; - if ($@) { - $RT::Logger->crit($@); - } - - - if ($RT::Handle->TransactionDepth) { - $RT::Handle->ForceRollback; - $RT::Logger->crit("Transaction not committed. Usually indicates a software fault. Data loss may have occurred") ; - } - - -} - -1; diff --git a/rt/bin/mason_handler.scgi b/rt/bin/mason_handler.scgi deleted file mode 100755 index 7774189ee..000000000 --- a/rt/bin/mason_handler.scgi +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/local/bin/speedy -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK - -use strict; -require ('/opt/rt3/bin/webmux.pl'); - -my $h = &RT::Interface::Web::NewCGIHandler(@RT::MasonParameters); - -require CGI; - -RT::Init(); - -my $cgi = CGI->new; -if ( ( !$h->interp->comp_exists( $cgi->path_info ) ) - && ( $h->interp->comp_exists( $cgi->path_info . "/index.html" ) ) ) { - $cgi->path_info( $cgi->path_info . "/index.html" ); -} - -$h->handle_cgi_object($cgi); - -1; diff --git a/rt/bin/mason_handler.svc b/rt/bin/mason_handler.svc deleted file mode 100644 index c05d21e69..000000000 --- a/rt/bin/mason_handler.svc +++ /dev/null @@ -1,234 +0,0 @@ -#!/usr/bin/perl -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK - -=head1 NAME - -mason_handler.svc - Win32 IIS Service handler for RT - -=head1 SYNOPSIS - - perl mason_handler.svc --install # install as service - perl mason_handler.svc --deinstall # deinstall this service - perl mason_handler.svc --help # show this help - perl mason_handler.svc # launch handler from command line - -=head1 DESCRIPTION - -This script manages a stand-alone FastCGI server, and populates the necessary -registry settings to run it with Microsoft IIS Server 4.0 or above. - -Before running it, you need to install the B<FCGI> module from CPAN, as well as -B<Win32::Daemon> from L<http://www.roth.net/perl/Daemon/> if you want to install -itself as a service. - -This script will automatically create a virtual directory under the IIS root; -its name is taken from C<$WebPath> in the F<RT_Config.pm> file. Additionally, -please install the ISAPI binary from L<http://www.caraveo.com/fastcgi/> and set -up an ISAPI Script Map that maps F<.html> files to F<isapi_fcgi.dll>. - -Once the service is launched (either via C<net start RTFastCGI> or by running -C<perl mason_handler.svc>), a FCGI server will start and bind to port C<8284> -(mnemonics: the ASCII value of C<R> and C<T>); the ISAPI handler's C<BindPath> -registry setting will also be automatically populated. - -=cut - -use strict; -use File::Basename; -require (dirname(__FILE__) . '/webmux.pl'); - -use Cwd; -use File::Spec; - -use Win32; -use Win32::Process; -use Win32::Service; -use Win32::TieRegistry; - -my $ProcessObj; - -BEGIN { - my $runsvc = sub { - Win32::Process::Create( - $ProcessObj, $^X, "$^X $0 --run", 0, NORMAL_PRIORITY_CLASS, "." - ) or do { - die Win32::FormatMessage( Win32::GetLastError() ); - }; - - chdir File::Basename::dirname($0); - my $path = Cwd::cwd(); - $path =~ s|/|\\|g; - $path =~ s|bin$|share\\html|; - - $Win32::TieRegistry::Registry->{ - 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\\'. - 'W3SVC\Parameters\Virtual Roots\\' - }->{$RT::WebPath || '/'} = "$path,,205"; - - $Win32::TieRegistry::Registry->{ - 'HKEY_LOCAL_MACHINE\Software\FASTCGI\.html\\' - }->{'BindPath'} = $ENV{'FCGI_SOCKET_PATH'}; - - Win32::Service::StartService(Win32::NodeName, 'W3SVC'); - }; - - if ($ARGV[0] eq '--deinstall') { - chdir File::Basename::dirname($0); - my $path = Cwd::cwd(); - $path =~ s|/|\\|g; - - require Win32::Daemon; - Win32::Daemon::DeleteService('RTFastCGI'); - warn "Service 'RTFastCGI' successfully deleted.\n"; - exit; - } - elsif ($ARGV[0] eq '--install') { - chdir File::Basename::dirname($0); - my $path = Cwd::cwd(); - $path =~ s|/|\\|g; - - require Win32::Daemon; - Win32::Daemon::DeleteService('RTFastCGI'); - - my $rv = Win32::Daemon::CreateService( { - machine => '', - name => 'RTFastCGI', - display => 'RT FastCGI Handler', - path => $^X, - user => '', - pwd => $path, - description => 'Enables port 8284 as the RT FastCGI handler.', - parameters => File::Spec->catfile( - $path, File::Basename::basename($0) - ) . ' --service', - } ); - - if ($rv) { - warn "Service 'RTFastCGI' successfully created.\n"; - } - else { - warn "Failed to add service: " . Win32::FormatMessage( - Win32::Daemon::GetLastError() - ) . "\n"; - } - exit; - } - elsif ($ARGV[0] eq '--service') { - require Win32::Daemon; - - my $PrevState = Win32::Daemon::SERVICE_START_PENDING(); - Win32::Daemon::StartService() or die $^E; - - while ( 1 ) { - my $State = Win32::Daemon::State(); - last if $State == Win32::Daemon::SERVICE_STOPPED(); - - if ( $State == Win32::Daemon::SERVICE_START_PENDING() ) { - $runsvc->(); - Win32::Daemon::State( Win32::Daemon::SERVICE_RUNNING() ); - $PrevState = Win32::Daemon::SERVICE_RUNNING(); - } - elsif ( $State == Win32::Daemon::SERVICE_CONTINUE_PENDING() ) { - $ProcessObj->Resume; - Win32::Daemon::State( Win32::Daemon::SERVICE_RUNNING() ); - $PrevState = Win32::Daemon::SERVICE_RUNNING(); - } - elsif ( $State == Win32::Daemon::SERVICE_STOP_PENDING() ) { - $ProcessObj->Kill(0); - Win32::Daemon::State( Win32::Daemon::SERVICE_STOPPED() ); - $PrevState = Win32::Daemon::SERVICE_STOPPED(); - } - elsif ( $State == Win32::Daemon::SERVICE_RUNNING() ) { - my $Message = Win32::Daemon::QueryLastMessage(1); - if ( $Message == Win32::Daemon::SERVICE_CONTROL_INTERROGATE() ) { - Win32::Daemon::State( $PrevState ); - } - elsif ( $Message == Win32::Daemon::SERVICE_CONTROL_SHUTDOWN() ) { - Win32::Daemon::State( Win32::Daemon::SERVICE_STOP_PENDING(), 15000 ); - } - elsif ( $Message != Win32::Daemon::SERVICE_CONTROL_NONE() ) { - Win32::Daemon::State( $PrevState ); - } - } - - Win32::Sleep( 1000 ); - } - - Win32::Daemon::StopService(); - exit; - } - elsif ($ARGV[0] eq '--help') { - system("perldoc $0"); - exit; - } - elsif ($ARGV[0] ne '--run') { - $SIG{__DIE__} = sub { $ProcessObj->Kill(0) if $ProcessObj }; - $runsvc->(); - warn "RT FastCGI Handler launched. Press [Enter] to terminate...\n"; - <STDIN>; - exit; - } -} - -############################################################################### - -warn "Begin listening on $ENV{'FCGI_SOCKET_PATH'}\n"; - -require CGI::Fast; -my $h = &RT::Interface::Web::NewCGIHandler(@RT::MasonParameters); - -RT::Init(); - -# Response loop -while( my $cgi = CGI::Fast->new ) { - my $comp = $ENV{'PATH_INFO'}; - - $comp = $1 if ($comp =~ /^(.*)$/); - $comp =~ s|^$RT::WebPath\b||i; - $comp .= "index.html" if ($comp =~ /\/$/); - $comp =~ s/.pl$/.html/g; - - warn "Serving $comp\n"; - - $h->handle_cgi($comp); - # _should_ always be tied -} - -1; - -=head1 AUTHORS - -Autrijus Tang E<lt>autrijus@autrijus.orgE<gt> - -=head1 COPYRIGHT - -Copyright 2002 by Autrijus Tang E<lt>autrijus@autrijus.orgE<gt>. - -This program is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - -See L<http://www.perl.com/perl/misc/Artistic.html> - -=cut diff --git a/rt/bin/rt b/rt/bin/rt deleted file mode 100755 index d9f8a3f05..000000000 --- a/rt/bin/rt +++ /dev/null @@ -1,1816 +0,0 @@ -#!/usr/bin/perl -w -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK - -use strict; - -# This program is intentionally written to have as few non-core module -# dependencies as possible. It should stay that way. - -use Cwd; -use LWP; -use HTTP::Request::Common; - -# We derive configuration information from hardwired defaults, dotfiles, -# and the RT* environment variables (in increasing order of precedence). -# Session information is stored in ~/.rt_sessions. - -my $VERSION = 0.02; -my $HOME = eval{(getpwuid($<))[7]} - || $ENV{HOME} || $ENV{LOGDIR} || $ENV{HOMEPATH} - || "."; -my %config = ( - ( - debug => 0, - user => eval{(getpwuid($<))[0]} || $ENV{USER} || $ENV{USERNAME}, - passwd => undef, - server => 'http://localhost/rt/', - ), - config_from_file($ENV{RTCONFIG} || ".rtrc"), - config_from_env() -); -my $session = new Session("$HOME/.rt_sessions"); -my $REST = "$config{server}/REST/1.0"; - -sub whine; -sub DEBUG { warn @_ if $config{debug} >= shift } - -# These regexes are used by command handlers to parse arguments. -# (XXX: Ask Autrijus how i18n changes these definitions.) - -my $name = '[\w.-]+'; -my $field = '[a-zA-Z][a-zA-Z0-9_-]*'; -my $label = '[a-zA-Z0-9@_.+-]+'; -my $labels = "(?:$label,)*$label"; -my $idlist = '(?:(?:\d+-)?\d+,)*(?:\d+-)?\d+'; - -# Our command line looks like this: -# -# rt <action> [options] [arguments] -# -# We'll parse just enough of it to decide upon an action to perform, and -# leave the rest to per-action handlers to interpret appropriately. - -my %handlers = ( -# handler => [ ...aliases... ], - version => ["version", "ver"], - logout => ["logout"], - help => ["help", "man"], - show => ["show", "cat"], - edit => ["create", "edit", "new", "ed"], - list => ["search", "list", "ls"], - comment => ["comment", "correspond"], - link => ["link", "ln"], - merge => ["merge"], - grant => ["grant", "revoke"], -); - -# Once we find and call an appropriate handler, we're done. - -my (%actions, $action); -foreach my $fn (keys %handlers) { - foreach my $alias (@{ $handlers{$fn} }) { - $actions{$alias} = \&{"$fn"}; - } -} -if (@ARGV && exists $actions{$ARGV[0]}) { - $action = shift @ARGV; -} -$actions{$action || "help"}->($action || ()); -exit; - -# Handler functions. -# ------------------ -# -# The following subs are handlers for each entry in %actions. - -sub version { - print "rt $VERSION\n"; -} - -sub logout { - submit("$REST/logout") if defined $session->cookie; -} - -sub help { - my ($action, $type) = @_; - my (%help, $key); - - # What help topics do we know about? - local $/ = undef; - foreach my $item (@{ Form::parse(<DATA>) }) { - my $title = $item->[2]{Title}; - my @titles = ref $title eq 'ARRAY' ? @$title : $title; - - foreach $title (grep $_, @titles) { - $help{$title} = $item->[2]{Text}; - } - } - - # What does the user want help with? - undef $action if ($action && $actions{$action} eq \&help); - unless ($action || $type) { - # If we don't know, we'll look for clues in @ARGV. - foreach (@ARGV) { - if (exists $help{$_}) { $key = $_; last; } - } - unless ($key) { - # Tolerate possibly plural words. - foreach (@ARGV) { - if ($_ =~ s/s$// && exists $help{$_}) { $key = $_; last; } - } - } - } - - if ($type && $action) { - $key = "$type.$action"; - } - $key ||= $type || $action || "introduction"; - - # Find a suitable topic to display. - while (!exists $help{$key}) { - if ($type && $action) { - if ($key eq "$type.$action") { $key = $action; } - elsif ($key eq $action) { $key = $type; } - else { $key = "introduction"; } - } - else { - $key = "introduction"; - } - } - - print STDERR $help{$key}, "\n\n"; -} - -# Displays a list of objects that match some specified condition. - -sub list { - my ($q, $type, %data, $orderby); - my $bad = 0; - - while (@ARGV) { - $_ = shift @ARGV; - - if (/^-t$/) { - $bad = 1, last unless defined($type = get_type_argument()); - } - elsif (/^-S$/) { - $bad = 1, last unless get_var_argument(\%data); - } - elsif (/^-o$/) { - $orderby = shift @ARGV; - } - elsif (/^-([isl])$/) { - $data{format} = $1; - } - elsif (/^-f$/) { - if ($ARGV[0] !~ /^(?:(?:$field,)*$field)$/) { - whine "No valid field list in '-f $ARGV[0]'."; - $bad = 1; last; - } - $data{fields} = shift @ARGV; - } - elsif (!defined $q && !/^-/) { - $q = $_; - } - else { - my $datum = /^-/ ? "option" : "argument"; - whine "Unrecognised $datum '$_'."; - $bad = 1; last; - } - } - - $type ||= "ticket"; - unless ($type && defined $q) { - my $item = $type ? "query string" : "object type"; - whine "No $item specified."; - $bad = 1; - } - return help("list", $type) if $bad; - - my $r = submit("$REST/search/$type", { query => $q, %data, orderby => $orderby || "" }); - print $r->content; -} - -# Displays selected information about a single object. - -sub show { - my ($type, @objects, %data); - my $slurped = 0; - my $bad = 0; - - while (@ARGV) { - $_ = shift @ARGV; - - if (/^-t$/) { - $bad = 1, last unless defined($type = get_type_argument()); - } - elsif (/^-S$/) { - $bad = 1, last unless get_var_argument(\%data); - } - elsif (/^-([isl])$/) { - $data{format} = $1; - } - elsif (/^-$/ && !$slurped) { - chomp(my @lines = <STDIN>); - foreach (@lines) { - unless (is_object_spec($_, $type)) { - whine "Invalid object on STDIN: '$_'."; - $bad = 1; last; - } - push @objects, $_; - } - $slurped = 1; - } - elsif (/^-f$/) { - if ($ARGV[0] !~ /^(?:(?:$field,)*$field)$/) { - whine "No valid field list in '-f $ARGV[0]'."; - $bad = 1; last; - } - $data{fields} = shift @ARGV; - } - elsif (my $spec = is_object_spec($_, $type)) { - push @objects, $spec; - } - else { - my $datum = /^-/ ? "option" : "argument"; - whine "Unrecognised $datum '$_'."; - $bad = 1; last; - } - } - - unless (@objects) { - whine "No objects specified."; - $bad = 1; - } - return help("show", $type) if $bad; - - my $r = submit("$REST/show", { id => \@objects, %data }); - print $r->content; -} - -# To create a new object, we ask the server for a form with the defaults -# filled in, allow the user to edit it, and send the form back. -# -# To edit an object, we must ask the server for a form representing that -# object, make changes requested by the user (either on the command line -# or interactively via $EDITOR), and send the form back. - -sub edit { - my ($action) = @_; - my (%data, $type, @objects); - my ($cl, $text, $edit, $input, $output); - - use vars qw(%set %add %del); - %set = %add = %del = (); - my $slurped = 0; - my $bad = 0; - - while (@ARGV) { - $_ = shift @ARGV; - - if (/^-e$/) { $edit = 1 } - elsif (/^-i$/) { $input = 1 } - elsif (/^-o$/) { $output = 1 } - elsif (/^-t$/) { - $bad = 1, last unless defined($type = get_type_argument()); - } - elsif (/^-S$/) { - $bad = 1, last unless get_var_argument(\%data); - } - elsif (/^-$/ && !($slurped || $input)) { - chomp(my @lines = <STDIN>); - foreach (@lines) { - unless (is_object_spec($_, $type)) { - whine "Invalid object on STDIN: '$_'."; - $bad = 1; last; - } - push @objects, $_; - } - $slurped = 1; - } - elsif (/^set$/i) { - my $vars = 0; - - while (@ARGV && $ARGV[0] =~ /^($field)([+-]?=)(.*)$/) { - my ($key, $op, $val) = ($1, $2, $3); - my $hash = ($op eq '=') ? \%set : ($op =~ /^\+/) ? \%add : \%del; - - vpush($hash, lc $key, $val); - shift @ARGV; - $vars++; - } - unless ($vars) { - whine "No variables to set."; - $bad = 1; last; - } - $cl = $vars; - } - elsif (/^(?:add|del)$/i) { - my $vars = 0; - my $hash = ($_ eq "add") ? \%add : \%del; - - while (@ARGV && $ARGV[0] =~ /^($field)=(.*)$/) { - my ($key, $val) = ($1, $2); - - vpush($hash, lc $key, $val); - shift @ARGV; - $vars++; - } - unless ($vars) { - whine "No variables to set."; - $bad = 1; last; - } - $cl = $vars; - } - elsif (my $spec = is_object_spec($_, $type)) { - push @objects, $spec; - } - else { - my $datum = /^-/ ? "option" : "argument"; - whine "Unrecognised $datum '$_'."; - $bad = 1; last; - } - } - - if ($action =~ /^ed(?:it)?$/) { - unless (@objects) { - whine "No objects specified."; - $bad = 1; - } - } - else { - if (@objects) { - whine "You shouldn't specify objects as arguments to $action."; - $bad = 1; - } - unless ($type) { - whine "What type of object do you want to create?"; - $bad = 1; - } - @objects = ("$type/new"); - } - return help($action, $type) if $bad; - - # We need a form to make changes to. We usually ask the server for - # one, but we can avoid that if we are fed one on STDIN, or if the - # user doesn't want to edit the form by hand, and the command line - # specifies only simple variable assignments. - - if ($input) { - local $/ = undef; - $text = <STDIN>; - } - elsif ($edit || %add || %del || !$cl) { - my $r = submit("$REST/show", { id => \@objects, format => 'l' }); - $text = $r->content; - } - - # If any changes were specified on the command line, apply them. - if ($cl) { - if ($text) { - # We're updating forms from the server. - my $forms = Form::parse($text); - - foreach my $form (@$forms) { - my ($c, $o, $k, $e) = @$form; - my ($key, $val); - - next if ($e || !@$o); - - local %add = %add; - local %del = %del; - local %set = %set; - - # Make changes to existing fields. - foreach $key (@$o) { - if (exists $add{lc $key}) { - $val = delete $add{lc $key}; - vpush($k, $key, $val); - $k->{$key} = vsplit($k->{$key}) if $val =~ /[,\n]/; - } - if (exists $del{lc $key}) { - $val = delete $del{lc $key}; - my %val = map {$_=>1} @{ vsplit($val) }; - $k->{$key} = vsplit($k->{$key}); - @{$k->{$key}} = grep {!exists $val{$_}} @{$k->{$key}}; - } - if (exists $set{lc $key}) { - $k->{$key} = delete $set{lc $key}; - } - } - - # Then update the others. - foreach $key (keys %set) { vpush($k, $key, $set{$key}) } - foreach $key (keys %add) { - vpush($k, $key, $add{$key}); - $k->{$key} = vsplit($k->{$key}); - } - push @$o, (keys %add, keys %set); - } - - $text = Form::compose($forms); - } - else { - # We're rolling our own set of forms. - my @forms; - foreach (@objects) { - my ($type, $ids, $args) = - m{^($name)/($idlist|$labels)(?:(/.*))?$}o; - - $args ||= ""; - foreach my $obj (expand_list($ids)) { - my %set = (%set, id => "$type/$obj$args"); - push @forms, ["", [keys %set], \%set]; - } - } - $text = Form::compose(\@forms); - } - } - - if ($output) { - print $text; - exit; - } - - my $synerr = 0; - -EDIT: - # We'll let the user edit the form before sending it to the server, - # unless we have enough information to submit it non-interactively. - if ($edit || (!$input && !$cl)) { - my $newtext = vi($text); - # We won't resubmit a bad form unless it was changed. - $text = ($synerr && $newtext eq $text) ? undef : $newtext; - } - - if ($text) { - my $r = submit("$REST/edit", {content => $text, %data}); - if ($r->code == 409) { - # If we submitted a bad form, we'll give the user a chance - # to correct it and resubmit. - if ($edit || (!$input && !$cl)) { - $text = $r->content; - $synerr = 1; - goto EDIT; - } - else { - print $r->content; - exit -1; - } - } - print $r->content; - } -} - -# We roll "comment" and "correspond" into the same handler. - -sub comment { - my ($action) = @_; - my (%data, $id, @files, @bcc, @cc, $msg, $wtime, $edit); - my $bad = 0; - - while (@ARGV) { - $_ = shift @ARGV; - - if (/^-e$/) { - $edit = 1; - } - elsif (/^-[abcmw]$/) { - unless (@ARGV) { - whine "No argument specified with $_."; - $bad = 1; last; - } - - if (/-a/) { - unless (-f $ARGV[0] && -r $ARGV[0]) { - whine "Cannot read attachment: '$ARGV[0]'."; - exit -1; - } - push @files, shift @ARGV; - } - elsif (/-([bc])/) { - my $a = $_ eq "-b" ? \@bcc : \@cc; - @$a = split /\s*,\s*/, shift @ARGV; - } - elsif (/-m/) { $msg = shift @ARGV } - elsif (/-w/) { $wtime = shift @ARGV } - } - elsif (!$id && m|^(?:ticket/)?($idlist)$|) { - $id = $1; - } - else { - my $datum = /^-/ ? "option" : "argument"; - whine "Unrecognised $datum '$_'."; - $bad = 1; last; - } - } - - unless ($id) { - whine "No object specified."; - $bad = 1; - } - return help($action, "ticket") if $bad; - - my $form = [ - "", - [ "Ticket", "Action", "Cc", "Bcc", "Attachment", "TimeWorked", "Text" ], - { - Ticket => $id, - Action => $action, - Cc => [ @cc ], - Bcc => [ @bcc ], - Attachment => [ @files ], - TimeWorked => $wtime || '', - Text => $msg || '', - } - ]; - - my $text = Form::compose([ $form ]); - - if ($edit || !$msg) { - my $error = 0; - my ($c, $o, $k, $e); - - do { - my $ntext = vi($text); - exit if ($error && $ntext eq $text); - $text = $ntext; - $form = Form::parse($text); - $error = 0; - - ($c, $o, $k, $e) = @{ $form->[0] }; - if ($e) { - $error = 1; - $c = "# Syntax error."; - goto NEXT; - } - elsif (!@$o) { - exit; - } - @files = @{ vsplit($k->{Attachment}) }; - - NEXT: - $text = Form::compose([[$c, $o, $k, $e]]); - } while ($error); - } - - my $i = 1; - foreach my $file (@files) { - $data{"attachment_$i"} = bless([ $file ], "Attachment"); - $i++; - } - $data{content} = $text; - - my $r = submit("$REST/ticket/comment/$id", \%data); - print $r->content; -} - -# Merge one ticket into another. - -sub merge { - my @id; - my $bad = 0; - - while (@ARGV) { - $_ = shift @ARGV; - - if (/^\d+$/) { - push @id, $_; - } - else { - whine "Unrecognised argument: '$_'."; - $bad = 1; last; - } - } - - unless (@id == 2) { - my $evil = @id > 2 ? "many" : "few"; - whine "Too $evil arguments specified."; - $bad = 1; - } - return help("merge", "ticket") if $bad; - - my $r = submit("$REST/ticket/merge/$id[0]", {into => $id[1]}); - print $r->content; -} - -# Link one ticket to another. - -sub link { - my ($bad, $del, %data) = (0, 0, ()); - my %ltypes = map { lc $_ => $_ } qw(DependsOn DependedOnBy RefersTo - ReferredToBy HasMember MemberOf); - - while (@ARGV && $ARGV[0] =~ /^-/) { - $_ = shift @ARGV; - - if (/^-d$/) { - $del = 1; - } - else { - whine "Unrecognised option: '$_'."; - $bad = 1; last; - } - } - - if (@ARGV == 3) { - my ($from, $rel, $to) = @ARGV; - if ($from !~ /^\d+$/ || $to !~ /^\d+$/) { - my $bad = $from =~ /^\d+$/ ? $to : $from; - whine "Invalid ticket ID '$bad' specified."; - $bad = 1; - } - unless (exists $ltypes{lc $rel}) { - whine "Invalid relationship '$rel' specified."; - $bad = 1; - } - %data = (id => $from, rel => $rel, to => $to, del => $del); - } - else { - my $bad = @ARGV < 3 ? "few" : "many"; - whine "Too $bad arguments specified."; - $bad = 1; - } - return help("link", "ticket") if $bad; - - my $r = submit("$REST/ticket/link", \%data); - print $r->content; -} - -# Grant/revoke a user's rights. - -sub grant { - my ($cmd) = @_; - - my $revoke = 0; - while (@ARGV) { - } - - $revoke = 1 if $cmd->{action} eq 'revoke'; -} - -# Client <-> Server communication. -# -------------------------------- -# -# This function composes and sends an HTTP request to the RT server, and -# interprets the response. It takes a request URI, and optional request -# data (a string, or a reference to a set of key-value pairs). - -sub submit { - my ($uri, $content) = @_; - my ($req, $data); - my $ua = new LWP::UserAgent(agent => "RT/3.0b", env_proxy => 1); - - # Did the caller specify any data to send with the request? - $data = []; - if (defined $content) { - unless (ref $content) { - # If it's just a string, make sure LWP handles it properly. - # (By pretending that it's a file!) - $content = [ content => [undef, "", Content => $content] ]; - } - elsif (ref $content eq 'HASH') { - my @data; - foreach my $k (keys %$content) { - if (ref $content->{$k} eq 'ARRAY') { - foreach my $v (@{ $content->{$k} }) { - push @data, $k, $v; - } - } - else { push @data, $k, $content->{$k} } - } - $content = \@data; - } - $data = $content; - } - - # Should we send authentication information to start a new session? - if (!defined $session->cookie) { - push @$data, ( user => $config{user} ); - push @$data, ( pass => $config{passwd} || read_passwd() ); - } - - # Now, we construct the request. - if (@$data) { - $req = POST($uri, $data, Content_Type => 'form-data'); - } - else { - $req = GET($uri); - } - $session->add_cookie_header($req); - - # Then we send the request and parse the response. - DEBUG(3, $req->as_string); - my $res = $ua->request($req); - DEBUG(3, $res->as_string); - - if ($res->is_success) { - # The content of the response we get from the RT server consists - # of an HTTP-like status line followed by optional header lines, - # a blank line, and arbitrary text. - - my ($head, $text) = split /\n\n/, $res->content, 2; - my ($status, @headers) = split /\n/, $head; - $text =~ s/\n*$/\n/; - - # "RT/3.0.1 401 Credentials required" - if ($status !~ m#^RT/\d+(?:\.\d+)+(?:-?\w+)? (\d+) ([\w\s]+)$#) { - warn "rt: Malformed RT response from $config{server}.\n"; - warn "(Rerun with RTDEBUG=3 for details.)\n" if $config{debug} < 3; - exit -1; - } - - # Our caller can pretend that the server returned a custom HTTP - # response code and message. (Doing that directly is apparently - # not sufficiently portable and uncomplicated.) - $res->code($1); - $res->message($2); - $res->content($text); - $session->update($res) if ($res->is_success || $res->code != 401); - - if (!$res->is_success) { - # We can deal with authentication failures ourselves. Either - # we sent invalid credentials, or our session has expired. - if ($res->code == 401) { - my %d = @$data; - if (exists $d{user}) { - warn "rt: Incorrect username or password.\n"; - exit -1; - } - elsif ($req->header("Cookie")) { - # We'll retry the request with credentials, unless - # we only wanted to logout in the first place. - $session->delete; - return submit(@_) unless $uri eq "$REST/logout"; - } - } - # Conflicts should be dealt with by the handler and user. - # For anything else, we just die. - elsif ($res->code != 409) { - warn "rt: ", $res->content; - exit; - } - } - } - else { - warn "rt: Server error: ", $res->message, " (", $res->code, ")\n"; - exit -1; - } - - return $res; -} - -# Session management. -# ------------------- -# -# Maintains a list of active sessions in the ~/.rt_sessions file. -{ - package Session; - my ($s, $u); - - # Initialises the session cache. - sub new { - my ($class, $file) = @_; - my $self = { - file => $file || "$HOME/.rt_sessions", - sids => { } - }; - - # The current session is identified by the currently configured - # server and user. - ($s, $u) = @config{"server", "user"}; - - bless $self, $class; - $self->load(); - - return $self; - } - - # Returns the current session cookie. - sub cookie { - my ($self) = @_; - my $cookie = $self->{sids}{$s}{$u}; - return defined $cookie ? "RT_SID=$cookie" : undef; - } - - # Deletes the current session cookie. - sub delete { - my ($self) = @_; - delete $self->{sids}{$s}{$u}; - } - - # Adds a Cookie header to an outgoing HTTP request. - sub add_cookie_header { - my ($self, $request) = @_; - my $cookie = $self->cookie(); - - $request->header(Cookie => $cookie) if defined $cookie; - } - - # Extracts the Set-Cookie header from an HTTP response, and updates - # session information accordingly. - sub update { - my ($self, $response) = @_; - my $cookie = $response->header("Set-Cookie"); - - if (defined $cookie && $cookie =~ /^RT_SID=([0-9A-Fa-f]+);/) { - $self->{sids}{$s}{$u} = $1; - } - } - - # Loads the session cache from the specified file. - sub load { - my ($self, $file) = @_; - $file ||= $self->{file}; - local *F; - - open(F, $file) && do { - $self->{file} = $file; - my $sids = $self->{sids} = {}; - while (<F>) { - chomp; - next if /^$/ || /^#/; - next unless m#^https?://[^ ]+ \w+ [0-9A-Fa-f]+$#; - my ($server, $user, $cookie) = split / /, $_; - $sids->{$server}{$user} = $cookie; - } - return 1; - }; - return 0; - } - - # Writes the current session cache to the specified file. - sub save { - my ($self, $file) = shift; - $file ||= $self->{file}; - local *F; - - open(F, ">$file") && do { - my $sids = $self->{sids}; - foreach my $server (keys %$sids) { - foreach my $user (keys %{ $sids->{$server} }) { - my $sid = $sids->{$server}{$user}; - if (defined $sid) { - print F "$server $user $sid\n"; - } - } - } - close(F); - chmod 0600, $file; - return 1; - }; - return 0; - } - - sub DESTROY { - my $self = shift; - $self->save; - } -} - -# Form handling. -# -------------- -# -# Forms are RFC822-style sets of (field, value) specifications with some -# initial comments and interspersed blank lines allowed for convenience. -# Sets of forms are separated by --\n (in a cheap parody of MIME). -# -# Each form is parsed into an array with four elements: commented text -# at the start of the form, an array with the order of keys, a hash with -# key/value pairs, and optional error text if the form syntax was wrong. - -# Returns a reference to an array of parsed forms. -sub Form::parse { - my $state = 0; - my @forms = (); - my @lines = split /\n/, $_[0]; - my ($c, $o, $k, $e) = ("", [], {}, ""); - - LINE: - while (@lines) { - my $line = shift @lines; - - next LINE if $line eq ''; - - if ($line eq '--') { - # We reached the end of one form. We'll ignore it if it was - # empty, and store it otherwise, errors and all. - if ($e || $c || @$o) { - push @forms, [ $c, $o, $k, $e ]; - $c = ""; $o = []; $k = {}; $e = ""; - } - $state = 0; - } - elsif ($state != -1) { - if ($state == 0 && $line =~ /^#/) { - # Read an optional block of comments (only) at the start - # of the form. - $state = 1; - $c = $line; - while (@lines && $lines[0] =~ /^#/) { - $c .= "\n".shift @lines; - } - $c .= "\n"; - } - elsif ($state <= 1 && $line =~ /^($field):(?:\s+(.*))?$/) { - # Read a field: value specification. - my $f = $1; - my @v = ($2 || ()); - - # Read continuation lines, if any. - while (@lines && ($lines[0] eq '' || $lines[0] =~ /^\s+/)) { - push @v, shift @lines; - } - pop @v while (@v && $v[-1] eq ''); - - # Strip longest common leading indent from text. - my $ws = ""; - foreach my $ls (map {/^(\s+)/} @v[1..$#v]) { - $ws = $ls if (!$ws || length($ls) < length($ws)); - } - s/^$ws// foreach @v; - - push(@$o, $f) unless exists $k->{$f}; - vpush($k, $f, join("\n", @v)); - - $state = 1; - } - elsif ($line !~ /^#/) { - # We've found a syntax error, so we'll reconstruct the - # form parsed thus far, and add an error marker. (>>) - $state = -1; - $e = Form::compose([[ "", $o, $k, "" ]]); - $e.= $line =~ /^>>/ ? "$line\n" : ">> $line\n"; - } - } - else { - # We saw a syntax error earlier, so we'll accumulate the - # contents of this form until the end. - $e .= "$line\n"; - } - } - push(@forms, [ $c, $o, $k, $e ]) if ($e || $c || @$o); - - foreach my $l (keys %$k) { - $k->{$l} = vsplit($k->{$l}) if (ref $k->{$l} eq 'ARRAY'); - } - - return \@forms; -} - -# Returns text representing a set of forms. -sub Form::compose { - my ($forms) = @_; - my @text; - - foreach my $form (@$forms) { - my ($c, $o, $k, $e) = @$form; - my $text = ""; - - if ($c) { - $c =~ s/\n*$/\n/; - $text = "$c\n"; - } - if ($e) { - $text .= $e; - } - elsif ($o) { - my @lines; - - foreach my $key (@$o) { - my ($line, $sp); - my $v = $k->{$key}; - my @values = ref $v eq 'ARRAY' ? @$v : $v; - - $sp = " "x(length("$key: ")); - $sp = " "x4 if length($sp) > 16; - - foreach $v (@values) { - if ($v =~ /\n/) { - $v =~ s/^/$sp/gm; - $v =~ s/^$sp//; - - if ($line) { - push @lines, "$line\n\n"; - $line = ""; - } - elsif (@lines && $lines[-1] !~ /\n\n$/) { - $lines[-1] .= "\n"; - } - push @lines, "$key: $v\n\n"; - } - elsif ($line && - length($line)+length($v)-rindex($line, "\n") >= 70) - { - $line .= ",\n$sp$v"; - } - else { - $line = $line ? "$line, $v" : "$key: $v"; - } - } - - $line = "$key:" unless @values; - if ($line) { - if ($line =~ /\n/) { - if (@lines && $lines[-1] !~ /\n\n$/) { - $lines[-1] .= "\n"; - } - $line .= "\n"; - } - push @lines, "$line\n"; - } - } - - $text .= join "", @lines; - } - else { - chomp $text; - } - push @text, $text; - } - - return join "\n--\n\n", @text; -} - -# Configuration. -# -------------- - -# Returns configuration information from the environment. -sub config_from_env { - my %env; - - foreach my $k ("DEBUG", "USER", "PASSWD", "SERVER") { - if (exists $ENV{"RT$k"}) { - $env{lc $k} = $ENV{"RT$k"}; - } - } - - return %env; -} - -# Finds a suitable configuration file and returns information from it. -sub config_from_file { - my ($rc) = @_; - - if ($rc =~ m#^/#) { - # We'll use an absolute path if we were given one. - return parse_config_file($rc); - } - else { - # Otherwise we'll use the first file we can find in the current - # directory, or in one of its (increasingly distant) ancestors. - - my @dirs = split /\//, cwd; - while (@dirs) { - my $file = join('/', @dirs, $rc); - if (-r $file) { - return parse_config_file($file); - } - - # Remove the last directory component each time. - pop @dirs; - } - - # Still nothing? We'll fall back to some likely defaults. - for ("$HOME/$rc", "/etc/rt.conf") { - return parse_config_file($_) if (-r $_); - } - } - - return (); -} - -# Makes a hash of the specified configuration file. -sub parse_config_file { - my %cfg; - my ($file) = @_; - - open(CFG, $file) && do { - while (<CFG>) { - chomp; - next if (/^#/ || /^\s*$/); - - if (/^(user|passwd|server)\s+([^ ]+)$/) { - $cfg{$1} = $2; - } - else { - die "rt: $file:$.: unknown configuration directive.\n"; - } - } - }; - - return %cfg; -} - -# Helper functions. -# ----------------- - -sub whine { - my $sub = (caller(1))[3]; - $sub =~ s/^main:://; - warn "rt: $sub: @_\n"; - return; -} - -sub read_passwd { - eval 'require Term::ReadKey'; - if ($@) { - die "No password specified (and Term::ReadKey not installed).\n"; - } - - print "Password: "; - Term::ReadKey::ReadMode('noecho'); - chomp(my $passwd = Term::ReadKey::ReadLine(0)); - Term::ReadKey::ReadMode('restore'); - print "\n"; - - return $passwd; -} - -sub vi { - my ($text) = @_; - my $file = "/tmp/rt.form.$$"; - my $editor = $ENV{EDITOR} || $ENV{VISUAL} || "vi"; - - local *F; - local $/ = undef; - - open(F, ">$file") || die "$file: $!\n"; print F $text; close(F); - system($editor, $file) && die "Couldn't run $editor.\n"; - open(F, $file) || die "$file: $!\n"; $text = <F>; close(F); - unlink($file); - - return $text; -} - -# Add a value to a (possibly multi-valued) hash key. -sub vpush { - my ($hash, $key, $val) = @_; - my @val = ref $val eq 'ARRAY' ? @$val : $val; - - if (exists $hash->{$key}) { - unless (ref $hash->{$key} eq 'ARRAY') { - my @v = $hash->{$key} ne '' ? $hash->{$key} : (); - $hash->{$key} = \@v; - } - push @{ $hash->{$key} }, @val; - } - else { - $hash->{$key} = $val; - } -} - -# "Normalise" a hash key that's known to be multi-valued. -sub vsplit { - my ($val) = @_; - my ($word, @words); - my @values = ref $val eq 'ARRAY' ? @$val : $val; - - foreach my $line (map {split /\n/} @values) { - # XXX: This should become a real parser, à la Text::ParseWords. - $line =~ s/^\s+//; - $line =~ s/\s+$//; - push @words, split /\s*,\s*/, $line; - } - - return \@words; -} - -sub expand_list { - my ($list) = @_; - my ($elt, @elts, %elts); - - foreach $elt (split /,/, $list) { - if ($elt =~ /^(\d+)-(\d+)$/) { push @elts, ($1..$2) } - else { push @elts, $elt } - } - - @elts{@elts}=(); - return sort {$a<=>$b} keys %elts; -} - -sub get_type_argument { - my $type; - - if (@ARGV) { - $type = shift @ARGV; - unless ($type =~ /^[A-Za-z0-9_.-]+$/) { - # We want whine to mention our caller, not us. - @_ = ("Invalid type '$type' specified."); - goto &whine; - } - } - else { - @_ = ("No type argument specified with -t."); - goto &whine; - } - - $type =~ s/s$//; # "Plural". Ugh. - return $type; -} - -sub get_var_argument { - my ($data) = @_; - - if (@ARGV) { - my $kv = shift @ARGV; - if (my ($k, $v) = $kv =~ /^($field)=(.*)$/) { - push @{ $data->{$k} }, $v; - } - else { - @_ = ("Invalid variable specification: '$kv'."); - goto &whine; - } - } - else { - @_ = ("No variable argument specified with -S."); - goto &whine; - } -} - -sub is_object_spec { - my ($spec, $type) = @_; - - $spec =~ s|^(?:$type/)?|$type/| if defined $type; - return $spec if ($spec =~ m{^$name/(?:$idlist|$labels)(?:/.*)?$}o); - return; -} - -__DATA__ - -Title: intro -Title: introduction -Text: - - ** THIS IS AN UNSUPPORTED PREVIEW RELEASE ** - ** PLEASE REPORT BUGS TO rt-bugs@fsck.com ** - - This is a command-line interface to RT 3. - - It allows you to interact with an RT server over HTTP, and offers an - interface to RT's functionality that is better-suited to automation - and integration with other tools. - - In general, each invocation of this program should specify an action - to perform on one or more objects, and any other arguments required - to complete the desired action. - - For more information: - - - rt help actions (a list of possible actions) - - rt help objects (how to specify objects) - - rt help usage (syntax information) - - - rt help config (configuration details) - - rt help examples (a few useful examples) - - rt help topics (a list of help topics) - --- - -Title: usage -Title: syntax -Text: - - Syntax: - - rt <action> [options] [arguments] - - Each invocation of this program must specify an action (e.g. "edit", - "create"), options to modify behaviour, and other arguments required - by the specified action. (For example, most actions expect a list of - numeric object IDs to act upon.) - - The details of the syntax and arguments for each action are given by - "rt help <action>". Some actions may be referred to by more than one - name ("create" is the same as "new", for example). - - Objects are identified by a type and an ID (which can be a name or a - number, depending on the type). For some actions, the object type is - implied (you can only comment on tickets); for others, the user must - specify it explicitly. See "rt help objects" for details. - - In syntax descriptions, mandatory arguments that must be replaced by - appropriate value are enclosed in <>, and optional arguments are - indicated by [] (for example, <action> and [options] above). - - For more information: - - - rt help objects (how to specify objects) - - rt help actions (a list of actions) - - rt help types (a list of object types) - --- - -Title: conf -Title: config -Title: configuration -Text: - - This program has two major sources of configuration information: its - configuration files, and the environment. - - The program looks for configuration directives in a file named .rtrc - (or $RTCONFIG; see below) in the current directory, and then in more - distant ancestors, until it reaches /. If no suitable configuration - files are found, it will also check for ~/.rtrc and /etc/rt.conf. - - Configuration directives: - - The following directives may occur, one per line: - - - server <URL> URL to RT server. - - user <username> RT username. - - passwd <passwd> RT user's password. - - Blank and #-commented lines are ignored. - - Environment variables: - - The following environment variables override any corresponding - values defined in configuration files: - - - RTUSER - - RTPASSWD - - RTSERVER - - RTDEBUG Numeric debug level. (Set to 3 for full logs.) - - RTCONFIG Specifies a name other than ".rtrc" for the - configuration file. - --- - -Title: objects -Text: - - Syntax: - - <type>/<id>[/<attributes>] - - Every object in RT has a type (e.g. "ticket", "queue") and a numeric - ID. Some types of objects can also be identified by name (like users - and queues). Furthermore, objects may have named attributes (such as - "ticket/1/history"). - - An object specification is like a path in a virtual filesystem, with - object types as top-level directories, object IDs as subdirectories, - and named attributes as further subdirectories. - - A comma-separated list of names, numeric IDs, or numeric ranges can - be used to specify more than one object of the same type. Note that - the list must be a single argument (i.e., no spaces). For example, - "user/root,1-3,5,7-10,ams" is a list of ten users; the same list - can also be written as "user/ams,root,1,2,3,5,7,8-20". - - Examples: - - ticket/1 - ticket/1/attachments - ticket/1/attachments/3 - ticket/1/attachments/3/content - ticket/1-3/links - ticket/1-3,5-7/history - - user/ams - user/ams/rights - user/ams,rai,1/rights - - For more information: - - - rt help <action> (action-specific details) - - rt help <type> (type-specific details) - --- - -Title: actions -Title: commands -Text: - - You can currently perform the following actions on all objects: - - - list (list objects matching some condition) - - show (display object details) - - edit (edit object details) - - create (create a new object) - - Each type may define actions specific to itself; these are listed in - the help item about that type. - - For more information: - - - rt help <action> (action-specific details) - - rt help types (a list of possible types) - --- - -Title: types -Text: - - You can currently operate on the following types of objects: - - - tickets - - users - - groups - - queues - - For more information: - - - rt help <type> (type-specific details) - - rt help objects (how to specify objects) - - rt help actions (a list of possible actions) - --- - -Title: ticket -Text: - - Tickets are identified by a numeric ID. - - The following generic operations may be performed upon tickets: - - - list - - show - - edit - - create - - In addition, the following ticket-specific actions exist: - - - link - - merge - - comment - - correspond - - Attributes: - - The following attributes can be used with "rt show" or "rt edit" - to retrieve or edit other information associated with tickets: - - links A ticket's relationships with others. - history All of a ticket's transactions. - history/type/<type> Only a particular type of transaction. - history/id/<id> Only the transaction of the specified id. - attachments A list of attachments. - attachments/<id> The metadata for an individual attachment. - attachments/<id>/content The content of an individual attachment. - --- - -Title: user -Title: group -Text: - - Users and groups are identified by name or numeric ID. - - The following generic operations may be performed upon them: - - - list - - show - - edit - - create - - In addition, the following type-specific actions exist: - - - grant - - revoke - - Attributes: - - The following attributes can be used with "rt show" or "rt edit" - to retrieve or edit other information associated with users and - groups: - - rights Global rights granted to this user. - rights/<queue> Queue rights for this user. - --- - -Title: queue -Text: - - Queues are identified by name or numeric ID. - - Currently, they can be subjected to the following actions: - - - show - - edit - - create - --- - -Title: logout -Text: - - Syntax: - - rt logout - - Terminates the currently established login session. You will need to - provide authentication credentials before you can continue using the - server. (See "rt help config" for details about authentication.) - --- - -Title: ls -Title: list -Title: search -Text: - - Syntax: - - rt <ls|list|search> [options] "query string" - - Displays a list of objects matching the specified conditions. - ("ls", "list", and "search" are synonyms.) - - Conditions are expressed in the SQL-like syntax used internally by - RT3. (For more information, see "rt help query".) The query string - must be supplied as one argument. - - (Right now, the server doesn't support listing anything but tickets. - Other types will be supported in future; this client will be able to - take advantage of that support without any changes.) - - Options: - - The following options control how much information is displayed - about each matching object: - - -i Numeric IDs only. (Useful for |rt edit -; see examples.) - -s Short description. - -l Longer description. - - In addition, - - -o +/-<field> Orders the returned list by the specified field. - -S var=val Submits the specified variable with the request. - -t type Specifies the type of object to look for. (The - default is "ticket".) - - Examples: - - rt ls "Priority > 5 and Status='new'" - rt ls -o +Subject "Priority > 5 and Status='new'" - rt ls -o -Created "Priority > 5 and Status='new'" - rt ls -i "Priority > 5"|rt edit - set status=resolved - rt ls -t ticket "Subject like '[PATCH]%'" - --- - -Title: show -Text: - - Syntax: - - rt show [options] <object-ids> - - Displays details of the specified objects. - - For some types, object information is further classified into named - attributes (for example, "1-3/links" is a valid ticket specification - that refers to the links for tickets 1-3). Consult "rt help <type>" - and "rt help objects" for further details. - - This command writes a set of forms representing the requested object - data to STDOUT. - - Options: - - - Read IDs from STDIN instead of the command-line. - -t type Specifies object type. - -f a,b,c Restrict the display to the specified fields. - -S var=val Submits the specified variable with the request. - - Examples: - - rt show -t ticket -f id,subject,status 1-3 - rt show ticket/3/attachments/29 - rt show ticket/3/attachments/29/content - rt show ticket/1-3/links - rt show -t user 2 - --- - -Title: new -Title: edit -Title: create -Text: - - Syntax: - - rt edit [options] <object-ids> set field=value [field=value] ... - add field=value [field=value] ... - del field=value [field=value] ... - - Edits information corresponding to the specified objects. - - If, instead of "edit", an action of "new" or "create" is specified, - then a new object is created. In this case, no numeric object IDs - may be specified, but the syntax and behaviour remain otherwise - unchanged. - - This command typically starts an editor to allow you to edit object - data in a form for submission. If you specified enough information - on the command-line, however, it will make the submission directly. - - The command line may specify field-values in three different ways. - "set" sets the named field to the given value, "add" adds a value - to a multi-valued field, and "del" deletes the corresponding value. - Each "field=value" specification must be given as a single argument. - - For some types, object information is further classified into named - attributes (for example, "1-3/links" is a valid ticket specification - that refers to the links for tickets 1-3). These attributes may also - be edited. Consult "rt help <type>" and "rt help object" for further - details. - - Options: - - - Read numeric IDs from STDIN instead of the command-line. - (Useful with rt ls ... | rt edit -; see examples below.) - -i Read a completed form from STDIN before submitting. - -o Dump the completed form to STDOUT instead of submitting. - -e Allows you to edit the form even if the command-line has - enough information to make a submission directly. - -S var=val - Submits the specified variable with the request. - -t type Specifies object type. - - Examples: - - # Interactive (starts $EDITOR with a form). - rt edit ticket/3 - rt create -t ticket - - # Non-interactive. - rt edit ticket/1-3 add cc=foo@example.com set priority=3 - rt ls -t tickets -i 'Priority > 5' | rt edit - set status=resolved - rt edit ticket/4 set priority=3 owner=bar@example.com \ - add cc=foo@example.com bcc=quux@example.net - rt create -t ticket subject='new ticket' priority=10 \ - add cc=foo@example.com - --- - -Title: comment -Title: correspond -Text: - - Syntax: - - rt <comment|correspond> [options] <ticket-id> - - Adds a comment (or correspondence) to the specified ticket (the only - difference being that comments aren't sent to the requestors.) - - This command will typically start an editor and allow you to type a - comment into a form. If, however, you specified all the necessary - information on the command line, it submits the comment directly. - - (See "rt help forms" for more information about forms.) - - Options: - - -m <text> Specify comment text. - -a <file> Attach a file to the comment. (May be used more - than once to attach multiple files.) - -c <addrs> A comma-separated list of Cc addresses. - -b <addrs> A comma-separated list of Bcc addresses. - -w <time> Specify the time spent working on this ticket. - -e Starts an editor before the submission, even if - arguments from the command line were sufficient. - - Examples: - - rt comment -t 'Not worth fixing.' -a stddisclaimer.h 23 - --- - -Title: merge -Text: - - Syntax: - - rt merge <from-id> <to-id> - - Merges the two specified tickets. - --- - -Title: link -Text: - - Syntax: - - rt link [-d] <id-A> <relationship> <id-B> - - Creates (or, with -d, deletes) a link between the specified tickets. - The relationship can (irrespective of case) be any of: - - DependsOn/DependedOnBy: A depends upon B (or vice versa). - RefersTo/ReferredToBy: A refers to B (or vice versa). - MemberOf/HasMember: A is a member of B (or vice versa). - - To view a ticket's relationships, use "rt show ticket/3/links". (See - "rt help ticket" and "rt help show".) - - Options: - - -d Deletes the specified link. - - Examples: - - rt link 2 dependson 3 - rt link -d 4 referredtoby 6 # 6 no longer refers to 4 - --- - -Title: grant -Title: revoke -Text: - --- - -Title: query -Text: - - RT3 uses an SQL-like syntax to specify object selection constraints. - See the <RT:...> documentation for details. - - (XXX: I'm going to have to write it, aren't I?) - --- - -Title: form -Title: forms -Text: - - This program uses RFC822 header-style forms to represent object data - in a form that's suitable for processing both by humans and scripts. - - A form is a set of (field, value) specifications, with some initial - commented text and interspersed blank lines allowed for convenience. - Field names may appear more than once in a form; a comma-separated - list of multiple field values may also be specified directly. - - Field values can be wrapped as in RFC822, with leading whitespace. - The longest sequence of leading whitespace common to all the lines - is removed (preserving further indentation). There is no limit on - the length of a value. - - Multiple forms are separated by a line containing only "--\n". - - (XXX: A more detailed specification will be provided soon. For now, - the server-side syntax checking will suffice.) - --- - -Title: topics -Text: - - Use "rt help <topic>" for help on any of the following subjects: - - - tickets, users, groups, queues. - - show, edit, ls/list/search, new/create. - - - query (search query syntax) - - forms (form specification) - - - objects (how to specify objects) - - types (a list of object types) - - actions/commands (a list of actions) - - usage/syntax (syntax details) - - conf/config/configuration (configuration details) - - examples (a few useful examples) - --- - -Title: example -Title: examples -Text: - - This section will be filled in with useful examples, once it becomes - more clear what examples may be useful. - - For the moment, please consult examples provided with each action. - --- diff --git a/rt/bin/rt-commit-handler b/rt/bin/rt-commit-handler deleted file mode 100644 index 29e443ebd..000000000 --- a/rt/bin/rt-commit-handler +++ /dev/null @@ -1,846 +0,0 @@ -#!/usr/bin/perl -w -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK - -# {{{ Docs -# -*-Perl-*- -# -#ident "@(#)ccvs/contrib:$Name: $:$Id: rt-commit-handler,v 1.1 2003-07-15 13:16:15 ivan Exp $" -# -# Perl filter to handle the log messages from the checkin of files in multiple -# directories. This script will group the lists of files by log message, and -# send one piece of mail per unique message, no matter how many files are -# committed. - -=head1 NAME rt-commit-handler - -=head1 USAGE - - - -=head2 Regular use - -Stick the following in in CVSROOT/commitinfo - - ALL /opt/rt3/bin/rt-commit-handler --record-last-dir - -Stick the following in CVSROOT/loginfo - - ALL /opt/rt3/bin/rt-commit-handler --cvs-root /pathtocvs/root --rt %{Vvts} - -=head2 Invocation (advanced use) - -rt-commit-handler --cvs-root /path/to/cvs/root [-d] [-D] [-r] [-M module] \ - [[-m mailto] ...] [[-R replyto] ...] [-f logfile] - - - -d - turn on debugging - -m mailto - send mail to "mailto" (multiple) - -R replyto - set the "Reply-To:" to "replyto" (multiple) - -M modulename - set module name to "modulename" - -f logfile - write commit messages to logfile too - -D - generate diff commands - --rt - invoke RT commit handler - --cvs-root - specify your CVS root - - --record-last-dir - Record the last directory with changes in - pre-commit (commitinfo) mode - - -=cut - -# }}} - -use strict; -use Carp; -use Getopt::Long; -use Text::Wrap; -use Digest::MD5; -use MIME::Entity; - -use lib ("/opt/rt3/lib", "/opt/rt3/local/lib"); - -use RT::Interface::CLI qw(CleanEnv GetCurrentUser GetMessageContent loc); - -use vars - qw(@MAILER $TMPDIR $FILE_PREFIX $LASTDIR_FILE $HASH_FILE $VERSION_FILE $MESSAGE_FILE $MAIL_FILE $DEBUG $MAILTO $REPLYTO $id $MODULE_NAME - $LOGIN $COMMITLOG $CVS_ROOT $RT_HANDLER); - -#Clean out all the nasties from the environment -CleanEnv(); - -#Load etc/config.pm and drop privs -RT::LoadConfig(); - -#Drop setgid permissions -RT::DropSetGIDPermissions(); - -# {{{ Variable setup -$TMPDIR = '/tmp'; -$FILE_PREFIX = $TMPDIR . '/#cvs.'; - -# The root of your CVS install. we should get this from some smarter place. -# It needs a trailing / - -$LASTDIR_FILE = $FILE_PREFIX . "lastdir"; -$HASH_FILE = $FILE_PREFIX . "hash"; -$VERSION_FILE = $FILE_PREFIX . "version"; -$MESSAGE_FILE = $FILE_PREFIX . "message"; -$MAIL_FILE = $FILE_PREFIX . "mail"; - -$DEBUG = 0; -$RT_HANDLER = 1; - -$MAILTO = ''; - -my @files = (); -my (@log_lines); -my $do_diff = 0; -my $id = getpgrp(); # note, you *must* use a shell which does setpgrp() -$LOGIN = getpwuid($<); - -# }}} - -die "User could not be found" unless ($LOGIN); - -# {{{ parse command line arguments (file list is seen as one arg) -# -while ( my $arg = shift @ARGV ) { - - if ( $arg eq '-d' ) { - $DEBUG = 1; - warn "Debug turned on...\n"; - } - elsif ( $arg =~ /^--record-last-dir$/i ) { - record_last_dir( $id, $ARGV[0] ); - exit(0); - } - elsif ( $arg eq '-m' ) { - $MAILTO .= ", " if $MAILTO; - $MAILTO .= shift @ARGV; - } - elsif ( $arg eq '--rt' ) { - $RT_HANDLER = 1; - } - elsif ( $arg eq '-R' ) { - $REPLYTO .= ", " if $REPLYTO; - $REPLYTO .= shift @ARGV; - } - elsif ( $arg eq '-M' ) { - die ("too many '-M' args\n") if $MODULE_NAME; - $MODULE_NAME = shift @ARGV; - } - elsif ( $arg eq '--cvs-root' ) { - $CVS_ROOT = shift @ARGV; - $CVS_ROOT .= "/" unless ( $CVS_ROOT =~ /\/$/ ); - } - elsif ( $arg eq '-f' ) { - die ("too many '-f' args\n") if $COMMITLOG; - $COMMITLOG = shift @ARGV; - - # This is a disgusting hack to untaint $COMMITLOG if we're running from - # setgid cvs. - $COMMITLOG = untaint($COMMITLOG); - } - elsif ( $arg eq '-D' ) { - $do_diff = 1; - } - else { - @files = split ( ' ', $arg ); - last; - } -} - -# }}} - -$REPLYTO = $LOGIN unless ($REPLYTO); - -# for now, the first "file" is the repository directory being committed, -# relative to the $CVSROOT location -# -my $dir = shift @files; - -# XXX there are some ugly assumptions in here about module names and -# XXX directories relative to the $CVSROOT location -- really should -# XXX read $CVSROOT/CVSROOT/modules, but that's not so easy to do, since -# XXX we have to parse it backwards. -# -# XXX For now we set the `module' name to the top-level directory name. -# -unless ($MODULE_NAME) { - ($MODULE_NAME) = split ( '/', $dir, 2 ); -} - -if ($DEBUG) { - warn "module - ", $MODULE_NAME, "\n"; - warn "dir - ", $dir, "\n"; - warn "files - ", join ( " ", @files ), "\n"; - warn "id - ", $id, "\n"; -} - -# {{{ Check for a new directory or an import command. - -# -# files[0] - "-" -# files[1] - "New" -# files[2] - "directory" -# -# files[0] - "-" -# files[1] - "Imported" -# files[2] - "sources" -# -if ( $files[0] eq "-" ) { - - #we just don't care about New Directory notes - unless ( $files[1] eq "New" && $files[2] eq "directory" ) { - - my @text = (); - - push @text, build_header(); - push @text, ""; - - while ( my $line = <STDIN> ) { - chop $line; # Drop the newline - push @text, $line; - } - - append_logfile( $COMMITLOG, @text ) if ($COMMITLOG); - - mail_notification( $id, @text ); - } - - exit 0; -} - -# }}} - -# {{{ Collect just the log message from stdin. -# - -while ( my $line = <STDIN> ) { - chop $line; # strip the newline - last if ( $line =~ /^Log Message:$/ ); -} -while ( my $line = <STDIN> ) { - chop $line; # strip the newline - $line =~ s/\s+$//; # strip trailing white space - push @log_lines, $line; -} - -my $md5 = Digest::MD5->new(); -foreach my $line (@log_lines) { - $md5->add( $line . "\n" ); -} -my $hash = $md5->hexdigest(); - -warn "hash = $hash\n" if ($DEBUG); - -if ( !-e "$MESSAGE_FILE.$id.$hash" ) { - append_logfile( "$HASH_FILE.$id", $hash ); - write_file( "$MESSAGE_FILE.$id.$hash", @log_lines ); -} - -# }}} - -# Spit out the information gathered in this pass. - -append_logfile( "$VERSION_FILE.$id.$hash", $dir . '/', @files ); - -# {{{ Check whether this is the last directory. If not, quit. - -warn "Checking current dir against last dir $LASTDIR_FILE.$id\n" if ($DEBUG); - -my @last_dir = read_file("$LASTDIR_FILE.$id"); - -unless ($CVS_ROOT) { - die "No cvs root specified with --cvs-root. Can't continue."; -} - -if ( $last_dir[0] ne $CVS_ROOT . $dir ) { - warn "Current directory $CVS_ROOT$dir is not last directory $last_dir[0].\n" - if ($DEBUG); - exit 0; -} - -# }}} - -# {{{ End Of Commits! -# - -# This is it. The commits are all finished. Lump everything together -# into a single message, fire a copy off to the mailing list, and drop -# it on the end of the Changes file. -# - -# -# Produce the final compilation of the log messages -# - -my @hashes = read_file("$HASH_FILE.$id"); -my (@text); - -push @text, build_header(); -push @text, ""; - -my ( @added_files, @modified_files, @removed_files ); - -foreach my $hash (@hashes) { - - # In case we're running setgid, make sure the hash file hasn't been hacked. - $hash =~ m/([a-z0-9]*)/ || die "*** Hacking attempt detected\n"; - $hash = $1; - - my @files = read_file("$VERSION_FILE.$id.$hash"); - my @log_lines = read_file("$MESSAGE_FILE.$id.$hash"); - - my $working_on_dir; # gets set as we iterate through the files. - foreach my $file (@files) { - - #If we've entered a new directory, make a note of that and remove the trailing / - - if ( $file =~ s'\/$'' ) { - $working_on_dir = $file; - next; - } - - my @file_entry = ( split ( ',', $file, 4 ), $working_on_dir ); - - # file_entry looks like ths: - - # 0 1 2 3 4 - # Old rev : new rev : tag: file :directory - my $entry = {}; - $entry->{'old'} = $file_entry[0]; - $entry->{'new'} = $file_entry[1]; - $entry->{'tag'} = $file_entry[2]; - $entry->{'file'} = $file_entry[3]; - $entry->{'dir'} = $file_entry[4]; - - if ( $file_entry[0] eq 'NONE' ) { - $entry->{'old'} = '0'; - push @added_files, $entry; - } - elsif ( $file_entry[1] eq 'NONE' ) { - $entry->{'new'} = '0'; - push @removed_files, $entry; - } - else { - push @modified_files, $entry; - } - } -} - -# }}} - -# {{{ start building up the body - -# Strip leading and trailing blank lines from the log message. Also -# compress multiple blank lines in the body of the message down to a -# single blank line. -# - -my $blank = 1; -@log_lines = map { - my $wasblank = $blank; - $blank = $_ eq ''; - $blank && $wasblank ? () : $_; -} @log_lines; - -pop @log_lines if $blank; - -@modified_files = order_and_summarize_diffs(@modified_files); -@added_files = order_and_summarize_diffs(@added_files); -@removed_files = order_and_summarize_diffs(@removed_files); - -push @text, "Modified Files:", format_lists(@modified_files) - if (@modified_files); - -push @text, "Added Files:", format_lists(@added_files) if (@added_files); - -push @text, "Removed Files:", format_lists(@removed_files) if (@removed_files); - -push @text, "", "Log Message", @log_lines if (@log_lines); - -push @text, ""; - -if ($RT_HANDLER) { - rt_handler( - @log_lines, "\n", - loc("To generate a diff of this commit:\n"), "\n", - format_diffs( @modified_files, @added_files, @removed_files ) - ); -} - -if ($COMMITLOG) { - append_logfile( $COMMITLOG, @text ); -} - -if ($do_diff) { - push @text, ""; - push @text, loc("To generate a diff of this commit:"); - push @text, format_diffs( @modified_files, @added_files, @removed_files ); - push @text, ""; -} - -# }}} - -# {{{ Mail out the notification. - -mail_notification( $id, @text ); - -# }}} - -# {{{ clean up - -unless ($DEBUG) { - $hash = untaint($hash); - $id = untaint($id); - unlink "$VERSION_FILE.$id.$hash"; - unlink "$MESSAGE_FILE.$id.$hash"; - unlink "$MAIL_FILE.$id"; - unlink "$LASTDIR_FILE.$id"; - unlink "$HASH_FILE.$id"; -} - -# }}} - -exit 0; - -# {{{ Subroutines -# - -# {{{ append_logfile -sub append_logfile { - my $filename = shift; - my (@lines) = @_; - - $filename = untaint($filename); - - open( FILE, ">>$filename" ) - || die ("Cannot open file $filename for append.\n"); - foreach my $line (@lines) { - print FILE $line . "\n"; - } - close(FILE); -} - -# }}} - -# {{{ write_file -sub write_file { - my $filename = shift; - my (@lines) = @_; - - $filename = untaint($filename); - - open( FILE, ">$filename" ) - || die ("Cannot open file $filename for write.\n"); - foreach my $line (@lines) { - print FILE $line . "\n"; - } - close(FILE); -} - -# }}} - -# {{{ read_file -sub read_file { - my $filename = shift; - my (@lines); - - open( FILE, "<$filename" ) - || die ("Cannot open file $filename for read.\n"); - while ( my $line = <FILE> ) { - chop $line; - push @lines, $line; - } - close(FILE); - - return (@lines); -} - -# }}} - -# {{{ sub format_lists - -sub format_lists { - my @items = (@_); - - my $files = ""; - map { - $_->{'files'} && ( $files .= ' ' . join ( ' ', @{ $_->{'files'} } ) ); - } @items; - - my @lines = wrap( "\t", "\t\t", $files ); - return (@lines); - -} - -# }}} - -# {{{ sub format_diffs - -sub format_diffs { - my @items = (@_); - - my @lines; - foreach my $item (@items) { - next unless ( $item->{'files'} ); - push ( @lines, - "cvs diff -r" - . $item->{'old'} . " -r" - . $item->{'new'} . " " - . join ( " ", @{ $item->{'files'} } ) . "\n" ); - - } - - @lines = fill( "\t", "\t\t", @lines ); - - return (@lines); -} - -# }}} - -# {{{ sub order_and_summarize_diffs { - -# takes an array of file items -# returns a sorted array of fileset items, which are like file items, except they can have an array of files, rather than -# a singleton file. - -sub order_and_summarize_diffs { - - my @files = (@_); - - # Sort by tag, dir, file. - @files = sort { - $a->{'tag'} cmp $b->{'tag'} - || $a->{'dir'} cmp $b->{'dir'} - || $a->{'file'} cmp $b->{'file'}; - } @files; - - # Combine adjacent rows that are the same modulo the file name. - - my @items = (undef); - - foreach my $file (@files) { - if ( $#items == -1 #if it's empty - || ( !defined $items[-1]->{'old'} - || $items[-1]->{'old'} ne $file->{'old'} ) - || ( !defined $items[-1]->{'new'} - || $items[-1]->{'new'} ne $file->{'new'} ) - || ( !defined $items[-1]->{'tag'} - || $items[-1]->{'tag'} ne $file->{'tag'} ) ) - { - - push ( @items, $file ); - } - push ( @{ $items[-1]->{'files'} }, - $file->{'dir'} . "/" . $file->{'file'} ); - } - - return (@items); -} - -# }}} - -# {{{ build_header - -sub build_header { - my $now = gmtime; - my $header = - sprintf( "Module Name:\t%s\nCommitted By:\t%s\nDate:\t\t%s %s %s", - $MODULE_NAME, $LOGIN, substr( $now, 0, 19 ), "UTC", - substr( $now, 20, 4 ) ); - return ($header); -} - -# }}} - -# {{{ mail_notification -sub mail_notification { - my $id = shift; - my (@text) = @_; - write_file( "$MAIL_FILE.$id", "From: " . $LOGIN, - "Subject: CVS commit: " . $MODULE_NAME, "To: " . $MAILTO, - "Reply-To: " . $REPLYTO, "", "", @text ); - - my $entity = MIME::Entity->build( - From => $LOGIN, - To => $MAILTO, - Subject => "CVS commit: " . $MODULE_NAME, - 'Reply-To' => $REPLYTO, - Data => join ( "\n", @text ) - ); - if ( $RT::MailCommand eq 'sendmailpipe' ) { - open( MAIL, "|$RT::SendmailPath $RT::SendmailArguments" ) - || die "Couldn't send mail: " . $@ . "\n"; - print MAIL $entity->as_string; - close(MAIL); - } - else { - $entity->send( $RT::MailCommand, $RT::MailParams ); - } - -} - -# }}} - -# {{{ sub record_last_dir - -sub record_last_dir { - my $id = shift; - my $dir = shift; - - # make a note of this directory. later, we'll use this to - # figure out if we've gone through the whole commit, - # for something that is a bad mockery of attomic commits. - - warn "about to write $dir to $LASTDIR_FILE.$id" if ($DEBUG); - - write_file( "$LASTDIR_FILE.$id", $dir ); -} - -# }}} - -# {{{ Get the RT stuff set up - -# {{{ sub rt_handler - -sub rt_handler { - my (@LogMessage) = (@_); - - #Connect to the database and get RT::SystemUser and RT::Nobody loaded - RT::Init; - - require RT::Ticket; - - #Get the current user all loaded - my $CurrentUser = GetCurrentUser(); - - if ( !$CurrentUser->Id ) { - print -loc("No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\n"); - return; - } - - my (@commands) = find_commands( \@LogMessage ); - - my ( @tickets, @errors ); - - # Get the list of tickets we're working with out of commands - grep { $_ =~ /^RT-Ticket:\s*(.*?)$/i && push ( @tickets, $1 ) } @commands; - - my $message = new MIME::Entity; - $message->build( - From => $CurrentUser->EmailAddress, - Subject => 'CVS Commit', - Data => \@LogMessage - ); - - # {{{ comment or correspond, as needed - - foreach my $ticket (@tickets) { - my $TicketObj = RT::Ticket->new($CurrentUser); - $TicketObj->Load($ticket); - my ( $id, $msg ); - unless ( $TicketObj->Id ) { - push ( @errors, -"Couldn't load ticket #$ticket. Not adding commit log to ticket history.\n" - ); - } - - if ( $LogMessage[0] =~ /^(comment|private)$/ ) { - ( $id, $msg ) = $TicketObj->Comment( MIMEObj => $message ); - - } - else { - ( $id, $msg ) = $TicketObj->Correspond( MIMEObj => $message ); - } - - push ( @errors, ">> Log message", - "Ticket #" . $TicketObj->Id . ": " . $msg ); - - } - - # }}} - - my ($reply) = ActOnPseudoHeaders( $CurrentUser, @commands ); - print "$reply\n" if ($reply); - print join ( "\n", @errors ); - print "\n"; - -} - -# }}} - -# {{{ sub find_commands - -sub find_commands { - my $lines = shift; - my (@pseudoheaders); - - while ( my $line = shift @{$lines} ) { - next if $line =~ /^\s*?$/; - if ( $line =~ /^RT-/i ) { - - push ( @pseudoheaders, $line ); - } - - #If we find a line that's not a command, get out. - else { - unshift ( @{$lines}, $line ); - last; - } - } - - return (@pseudoheaders); - -} - -# }}} - -# {{{ sub ActOnPseudoHeaders - -=item ActOnPseudoHeaders $PseudoHeaders - -Takes a string of pseudo-headers, iterates through them and does what they tell it to. - -=cut - -sub ActOnPseudoHeaders { - my $CurrentUser = shift; - my (@actions) = (@_); - - my $ResultsMessage = ''; - my $Ticket = RT::Ticket->new($CurrentUser); - - foreach my $action (@actions) { - my ($val); - my $msg = ''; - - $ResultsMessage .= ">>> $action\n"; - - if ( $action =~ /^RT-(.*?):\s*(.*)$/i ) { - my $command = $1; - my $args = $2; - - if ( $command =~ /^ticket$/i ) { - - $val = $Ticket->Load($args); - unless ($val) { - $ResultsMessage .= - loc("ERROR: Couldn't load ticket '[_1]': [_2].\n", $1, $msg); - . loc("Aborting to avoid unintended ticket modifications.\n") - . loc("The following commands were not proccessed:\n\n") - . join ( "\n", @actions ); - return ($ResultsMessage); - } - $ResultsMessage .= loc("Ticket [_1] loaded\n", $Ticket->Id); - } - else { - unless ( $Ticket->Id ) { - $ResultsMessage .= loc("No Ticket specified. Aborting ticket ") - . loc("modifications\n\n") - . loc("The following commands were not proccessed:\n\n") - . join ( "\n", @actions ); - return ($ResultsMessage); - } - - # Deal with the basics - if ( $command =~ /^(Subject|Owner|Status|Queue)$/i ) { - my $method = 'Set' . ucfirst( lc($1) ); - ( $val, $msg ) = $Ticket->$method($args); - } - - # Deal with the dates - elsif ( $command =~ /^(due|starts|started|resolved)$/i ) { - my $method = 'Set' . ucfirst( lc($1) ); - my $date = new RT::Date($CurrentUser); - $date->Set( Format => 'unknown', Value => $args ); - ( $val, $msg ) = $Ticket->$method( $date->ISO ); - } - - # Deal with the watchers - elsif ( $command =~ /^(requestor|requestors|cc|admincc)$/i ) { - my $operator = "+"; - my ($type); - if ( $args =~ /^(\+|\-)(.*)$/ ) { - $operator = $1; - $args = $2; - } - $type = 'Requestor' if ( $command =~ /^requestor/i ); - $type = 'Cc' if ( $command =~ /^cc/i ); - $type = 'AdminCc' if ( $command =~ /^admincc/i ); - - my $user = RT::User->new($CurrentUser); - $user->Load($args); - - if ($operator eq '+') { - ($val, $msg) = $Ticket->AddWatcher( Type => $type, - PrincipalId => $user->PrincipalId); - } elsif ($operator eq '-') { - ($val, $msg) = $Ticket->DeleteWatcher( Type => $type, - PrincipalId => $user->PrincipalId); - } - - } - $ResultsMessage .= $msg . "\n"; - } - - } - return ($ResultsMessage); - -} - -# }}} - -# {{{ sub untaint -sub untaint { - my $val = shift; - - if ( $val =~ /^([-\#\/\w.]+)$/ ) { - $val = $1; # $data now untainted - } - else { - die loc("Bad data in [_1]", $val); # log this somewhere - } - return ($val); -} - -# }}} - -=head1 AUTHOR - - - - rt-commit-handler is a rewritten version of the NetBSD commit handler, - which was placed in the public domain by Charles Hannum. It bore the following - authors statement: - - Contributed by David Hampton <hampton@cisco.com> - Hacked greatly by Greg A. Woods <woods@planix.com> - Rewritten by Charles M. Hannum <mycroft@netbsd.org> - -=cut - diff --git a/rt/bin/rt-commit-handler.in b/rt/bin/rt-commit-handler.in deleted file mode 100644 index 02b01abff..000000000 --- a/rt/bin/rt-commit-handler.in +++ /dev/null @@ -1,846 +0,0 @@ -#!@PERL@ -w -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK - -# {{{ Docs -# -*-Perl-*- -# -#ident "@(#)ccvs/contrib:$Name: $:$Id: rt-commit-handler.in,v 1.1 2003-07-15 13:16:15 ivan Exp $" -# -# Perl filter to handle the log messages from the checkin of files in multiple -# directories. This script will group the lists of files by log message, and -# send one piece of mail per unique message, no matter how many files are -# committed. - -=head1 NAME rt-commit-handler - -=head1 USAGE - - - -=head2 Regular use - -Stick the following in in CVSROOT/commitinfo - - ALL @RT_BIN_PATH@/rt-commit-handler --record-last-dir - -Stick the following in CVSROOT/loginfo - - ALL @RT_BIN_PATH@/rt-commit-handler --cvs-root /pathtocvs/root --rt %{Vvts} - -=head2 Invocation (advanced use) - -rt-commit-handler --cvs-root /path/to/cvs/root [-d] [-D] [-r] [-M module] \ - [[-m mailto] ...] [[-R replyto] ...] [-f logfile] - - - -d - turn on debugging - -m mailto - send mail to "mailto" (multiple) - -R replyto - set the "Reply-To:" to "replyto" (multiple) - -M modulename - set module name to "modulename" - -f logfile - write commit messages to logfile too - -D - generate diff commands - --rt - invoke RT commit handler - --cvs-root - specify your CVS root - - --record-last-dir - Record the last directory with changes in - pre-commit (commitinfo) mode - - -=cut - -# }}} - -use strict; -use Carp; -use Getopt::Long; -use Text::Wrap; -use Digest::MD5; -use MIME::Entity; - -use lib ("@RT_LIB_PATH@", "@LOCAL_LIB_PATH@"); - -use RT::Interface::CLI qw(CleanEnv GetCurrentUser GetMessageContent loc); - -use vars - qw(@MAILER $TMPDIR $FILE_PREFIX $LASTDIR_FILE $HASH_FILE $VERSION_FILE $MESSAGE_FILE $MAIL_FILE $DEBUG $MAILTO $REPLYTO $id $MODULE_NAME - $LOGIN $COMMITLOG $CVS_ROOT $RT_HANDLER); - -#Clean out all the nasties from the environment -CleanEnv(); - -#Load etc/config.pm and drop privs -RT::LoadConfig(); - -#Drop setgid permissions -RT::DropSetGIDPermissions(); - -# {{{ Variable setup -$TMPDIR = '/tmp'; -$FILE_PREFIX = $TMPDIR . '/#cvs.'; - -# The root of your CVS install. we should get this from some smarter place. -# It needs a trailing / - -$LASTDIR_FILE = $FILE_PREFIX . "lastdir"; -$HASH_FILE = $FILE_PREFIX . "hash"; -$VERSION_FILE = $FILE_PREFIX . "version"; -$MESSAGE_FILE = $FILE_PREFIX . "message"; -$MAIL_FILE = $FILE_PREFIX . "mail"; - -$DEBUG = 0; -$RT_HANDLER = 1; - -$MAILTO = ''; - -my @files = (); -my (@log_lines); -my $do_diff = 0; -my $id = getpgrp(); # note, you *must* use a shell which does setpgrp() -$LOGIN = getpwuid($<); - -# }}} - -die "User could not be found" unless ($LOGIN); - -# {{{ parse command line arguments (file list is seen as one arg) -# -while ( my $arg = shift @ARGV ) { - - if ( $arg eq '-d' ) { - $DEBUG = 1; - warn "Debug turned on...\n"; - } - elsif ( $arg =~ /^--record-last-dir$/i ) { - record_last_dir( $id, $ARGV[0] ); - exit(0); - } - elsif ( $arg eq '-m' ) { - $MAILTO .= ", " if $MAILTO; - $MAILTO .= shift @ARGV; - } - elsif ( $arg eq '--rt' ) { - $RT_HANDLER = 1; - } - elsif ( $arg eq '-R' ) { - $REPLYTO .= ", " if $REPLYTO; - $REPLYTO .= shift @ARGV; - } - elsif ( $arg eq '-M' ) { - die ("too many '-M' args\n") if $MODULE_NAME; - $MODULE_NAME = shift @ARGV; - } - elsif ( $arg eq '--cvs-root' ) { - $CVS_ROOT = shift @ARGV; - $CVS_ROOT .= "/" unless ( $CVS_ROOT =~ /\/$/ ); - } - elsif ( $arg eq '-f' ) { - die ("too many '-f' args\n") if $COMMITLOG; - $COMMITLOG = shift @ARGV; - - # This is a disgusting hack to untaint $COMMITLOG if we're running from - # setgid cvs. - $COMMITLOG = untaint($COMMITLOG); - } - elsif ( $arg eq '-D' ) { - $do_diff = 1; - } - else { - @files = split ( ' ', $arg ); - last; - } -} - -# }}} - -$REPLYTO = $LOGIN unless ($REPLYTO); - -# for now, the first "file" is the repository directory being committed, -# relative to the $CVSROOT location -# -my $dir = shift @files; - -# XXX there are some ugly assumptions in here about module names and -# XXX directories relative to the $CVSROOT location -- really should -# XXX read $CVSROOT/CVSROOT/modules, but that's not so easy to do, since -# XXX we have to parse it backwards. -# -# XXX For now we set the `module' name to the top-level directory name. -# -unless ($MODULE_NAME) { - ($MODULE_NAME) = split ( '/', $dir, 2 ); -} - -if ($DEBUG) { - warn "module - ", $MODULE_NAME, "\n"; - warn "dir - ", $dir, "\n"; - warn "files - ", join ( " ", @files ), "\n"; - warn "id - ", $id, "\n"; -} - -# {{{ Check for a new directory or an import command. - -# -# files[0] - "-" -# files[1] - "New" -# files[2] - "directory" -# -# files[0] - "-" -# files[1] - "Imported" -# files[2] - "sources" -# -if ( $files[0] eq "-" ) { - - #we just don't care about New Directory notes - unless ( $files[1] eq "New" && $files[2] eq "directory" ) { - - my @text = (); - - push @text, build_header(); - push @text, ""; - - while ( my $line = <STDIN> ) { - chop $line; # Drop the newline - push @text, $line; - } - - append_logfile( $COMMITLOG, @text ) if ($COMMITLOG); - - mail_notification( $id, @text ); - } - - exit 0; -} - -# }}} - -# {{{ Collect just the log message from stdin. -# - -while ( my $line = <STDIN> ) { - chop $line; # strip the newline - last if ( $line =~ /^Log Message:$/ ); -} -while ( my $line = <STDIN> ) { - chop $line; # strip the newline - $line =~ s/\s+$//; # strip trailing white space - push @log_lines, $line; -} - -my $md5 = Digest::MD5->new(); -foreach my $line (@log_lines) { - $md5->add( $line . "\n" ); -} -my $hash = $md5->hexdigest(); - -warn "hash = $hash\n" if ($DEBUG); - -if ( !-e "$MESSAGE_FILE.$id.$hash" ) { - append_logfile( "$HASH_FILE.$id", $hash ); - write_file( "$MESSAGE_FILE.$id.$hash", @log_lines ); -} - -# }}} - -# Spit out the information gathered in this pass. - -append_logfile( "$VERSION_FILE.$id.$hash", $dir . '/', @files ); - -# {{{ Check whether this is the last directory. If not, quit. - -warn "Checking current dir against last dir $LASTDIR_FILE.$id\n" if ($DEBUG); - -my @last_dir = read_file("$LASTDIR_FILE.$id"); - -unless ($CVS_ROOT) { - die "No cvs root specified with --cvs-root. Can't continue."; -} - -if ( $last_dir[0] ne $CVS_ROOT . $dir ) { - warn "Current directory $CVS_ROOT$dir is not last directory $last_dir[0].\n" - if ($DEBUG); - exit 0; -} - -# }}} - -# {{{ End Of Commits! -# - -# This is it. The commits are all finished. Lump everything together -# into a single message, fire a copy off to the mailing list, and drop -# it on the end of the Changes file. -# - -# -# Produce the final compilation of the log messages -# - -my @hashes = read_file("$HASH_FILE.$id"); -my (@text); - -push @text, build_header(); -push @text, ""; - -my ( @added_files, @modified_files, @removed_files ); - -foreach my $hash (@hashes) { - - # In case we're running setgid, make sure the hash file hasn't been hacked. - $hash =~ m/([a-z0-9]*)/ || die "*** Hacking attempt detected\n"; - $hash = $1; - - my @files = read_file("$VERSION_FILE.$id.$hash"); - my @log_lines = read_file("$MESSAGE_FILE.$id.$hash"); - - my $working_on_dir; # gets set as we iterate through the files. - foreach my $file (@files) { - - #If we've entered a new directory, make a note of that and remove the trailing / - - if ( $file =~ s'\/$'' ) { - $working_on_dir = $file; - next; - } - - my @file_entry = ( split ( ',', $file, 4 ), $working_on_dir ); - - # file_entry looks like ths: - - # 0 1 2 3 4 - # Old rev : new rev : tag: file :directory - my $entry = {}; - $entry->{'old'} = $file_entry[0]; - $entry->{'new'} = $file_entry[1]; - $entry->{'tag'} = $file_entry[2]; - $entry->{'file'} = $file_entry[3]; - $entry->{'dir'} = $file_entry[4]; - - if ( $file_entry[0] eq 'NONE' ) { - $entry->{'old'} = '0'; - push @added_files, $entry; - } - elsif ( $file_entry[1] eq 'NONE' ) { - $entry->{'new'} = '0'; - push @removed_files, $entry; - } - else { - push @modified_files, $entry; - } - } -} - -# }}} - -# {{{ start building up the body - -# Strip leading and trailing blank lines from the log message. Also -# compress multiple blank lines in the body of the message down to a -# single blank line. -# - -my $blank = 1; -@log_lines = map { - my $wasblank = $blank; - $blank = $_ eq ''; - $blank && $wasblank ? () : $_; -} @log_lines; - -pop @log_lines if $blank; - -@modified_files = order_and_summarize_diffs(@modified_files); -@added_files = order_and_summarize_diffs(@added_files); -@removed_files = order_and_summarize_diffs(@removed_files); - -push @text, "Modified Files:", format_lists(@modified_files) - if (@modified_files); - -push @text, "Added Files:", format_lists(@added_files) if (@added_files); - -push @text, "Removed Files:", format_lists(@removed_files) if (@removed_files); - -push @text, "", "Log Message", @log_lines if (@log_lines); - -push @text, ""; - -if ($RT_HANDLER) { - rt_handler( - @log_lines, "\n", - loc("To generate a diff of this commit:\n"), "\n", - format_diffs( @modified_files, @added_files, @removed_files ) - ); -} - -if ($COMMITLOG) { - append_logfile( $COMMITLOG, @text ); -} - -if ($do_diff) { - push @text, ""; - push @text, loc("To generate a diff of this commit:"); - push @text, format_diffs( @modified_files, @added_files, @removed_files ); - push @text, ""; -} - -# }}} - -# {{{ Mail out the notification. - -mail_notification( $id, @text ); - -# }}} - -# {{{ clean up - -unless ($DEBUG) { - $hash = untaint($hash); - $id = untaint($id); - unlink "$VERSION_FILE.$id.$hash"; - unlink "$MESSAGE_FILE.$id.$hash"; - unlink "$MAIL_FILE.$id"; - unlink "$LASTDIR_FILE.$id"; - unlink "$HASH_FILE.$id"; -} - -# }}} - -exit 0; - -# {{{ Subroutines -# - -# {{{ append_logfile -sub append_logfile { - my $filename = shift; - my (@lines) = @_; - - $filename = untaint($filename); - - open( FILE, ">>$filename" ) - || die ("Cannot open file $filename for append.\n"); - foreach my $line (@lines) { - print FILE $line . "\n"; - } - close(FILE); -} - -# }}} - -# {{{ write_file -sub write_file { - my $filename = shift; - my (@lines) = @_; - - $filename = untaint($filename); - - open( FILE, ">$filename" ) - || die ("Cannot open file $filename for write.\n"); - foreach my $line (@lines) { - print FILE $line . "\n"; - } - close(FILE); -} - -# }}} - -# {{{ read_file -sub read_file { - my $filename = shift; - my (@lines); - - open( FILE, "<$filename" ) - || die ("Cannot open file $filename for read.\n"); - while ( my $line = <FILE> ) { - chop $line; - push @lines, $line; - } - close(FILE); - - return (@lines); -} - -# }}} - -# {{{ sub format_lists - -sub format_lists { - my @items = (@_); - - my $files = ""; - map { - $_->{'files'} && ( $files .= ' ' . join ( ' ', @{ $_->{'files'} } ) ); - } @items; - - my @lines = wrap( "\t", "\t\t", $files ); - return (@lines); - -} - -# }}} - -# {{{ sub format_diffs - -sub format_diffs { - my @items = (@_); - - my @lines; - foreach my $item (@items) { - next unless ( $item->{'files'} ); - push ( @lines, - "cvs diff -r" - . $item->{'old'} . " -r" - . $item->{'new'} . " " - . join ( " ", @{ $item->{'files'} } ) . "\n" ); - - } - - @lines = fill( "\t", "\t\t", @lines ); - - return (@lines); -} - -# }}} - -# {{{ sub order_and_summarize_diffs { - -# takes an array of file items -# returns a sorted array of fileset items, which are like file items, except they can have an array of files, rather than -# a singleton file. - -sub order_and_summarize_diffs { - - my @files = (@_); - - # Sort by tag, dir, file. - @files = sort { - $a->{'tag'} cmp $b->{'tag'} - || $a->{'dir'} cmp $b->{'dir'} - || $a->{'file'} cmp $b->{'file'}; - } @files; - - # Combine adjacent rows that are the same modulo the file name. - - my @items = (undef); - - foreach my $file (@files) { - if ( $#items == -1 #if it's empty - || ( !defined $items[-1]->{'old'} - || $items[-1]->{'old'} ne $file->{'old'} ) - || ( !defined $items[-1]->{'new'} - || $items[-1]->{'new'} ne $file->{'new'} ) - || ( !defined $items[-1]->{'tag'} - || $items[-1]->{'tag'} ne $file->{'tag'} ) ) - { - - push ( @items, $file ); - } - push ( @{ $items[-1]->{'files'} }, - $file->{'dir'} . "/" . $file->{'file'} ); - } - - return (@items); -} - -# }}} - -# {{{ build_header - -sub build_header { - my $now = gmtime; - my $header = - sprintf( "Module Name:\t%s\nCommitted By:\t%s\nDate:\t\t%s %s %s", - $MODULE_NAME, $LOGIN, substr( $now, 0, 19 ), "UTC", - substr( $now, 20, 4 ) ); - return ($header); -} - -# }}} - -# {{{ mail_notification -sub mail_notification { - my $id = shift; - my (@text) = @_; - write_file( "$MAIL_FILE.$id", "From: " . $LOGIN, - "Subject: CVS commit: " . $MODULE_NAME, "To: " . $MAILTO, - "Reply-To: " . $REPLYTO, "", "", @text ); - - my $entity = MIME::Entity->build( - From => $LOGIN, - To => $MAILTO, - Subject => "CVS commit: " . $MODULE_NAME, - 'Reply-To' => $REPLYTO, - Data => join ( "\n", @text ) - ); - if ( $RT::MailCommand eq 'sendmailpipe' ) { - open( MAIL, "|$RT::SendmailPath $RT::SendmailArguments" ) - || die "Couldn't send mail: " . $@ . "\n"; - print MAIL $entity->as_string; - close(MAIL); - } - else { - $entity->send( $RT::MailCommand, $RT::MailParams ); - } - -} - -# }}} - -# {{{ sub record_last_dir - -sub record_last_dir { - my $id = shift; - my $dir = shift; - - # make a note of this directory. later, we'll use this to - # figure out if we've gone through the whole commit, - # for something that is a bad mockery of attomic commits. - - warn "about to write $dir to $LASTDIR_FILE.$id" if ($DEBUG); - - write_file( "$LASTDIR_FILE.$id", $dir ); -} - -# }}} - -# {{{ Get the RT stuff set up - -# {{{ sub rt_handler - -sub rt_handler { - my (@LogMessage) = (@_); - - #Connect to the database and get RT::SystemUser and RT::Nobody loaded - RT::Init; - - require RT::Ticket; - - #Get the current user all loaded - my $CurrentUser = GetCurrentUser(); - - if ( !$CurrentUser->Id ) { - print -loc("No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\n"); - return; - } - - my (@commands) = find_commands( \@LogMessage ); - - my ( @tickets, @errors ); - - # Get the list of tickets we're working with out of commands - grep { $_ =~ /^RT-Ticket:\s*(.*?)$/i && push ( @tickets, $1 ) } @commands; - - my $message = new MIME::Entity; - $message->build( - From => $CurrentUser->EmailAddress, - Subject => 'CVS Commit', - Data => \@LogMessage - ); - - # {{{ comment or correspond, as needed - - foreach my $ticket (@tickets) { - my $TicketObj = RT::Ticket->new($CurrentUser); - $TicketObj->Load($ticket); - my ( $id, $msg ); - unless ( $TicketObj->Id ) { - push ( @errors, -"Couldn't load ticket #$ticket. Not adding commit log to ticket history.\n" - ); - } - - if ( $LogMessage[0] =~ /^(comment|private)$/ ) { - ( $id, $msg ) = $TicketObj->Comment( MIMEObj => $message ); - - } - else { - ( $id, $msg ) = $TicketObj->Correspond( MIMEObj => $message ); - } - - push ( @errors, ">> Log message", - "Ticket #" . $TicketObj->Id . ": " . $msg ); - - } - - # }}} - - my ($reply) = ActOnPseudoHeaders( $CurrentUser, @commands ); - print "$reply\n" if ($reply); - print join ( "\n", @errors ); - print "\n"; - -} - -# }}} - -# {{{ sub find_commands - -sub find_commands { - my $lines = shift; - my (@pseudoheaders); - - while ( my $line = shift @{$lines} ) { - next if $line =~ /^\s*?$/; - if ( $line =~ /^RT-/i ) { - - push ( @pseudoheaders, $line ); - } - - #If we find a line that's not a command, get out. - else { - unshift ( @{$lines}, $line ); - last; - } - } - - return (@pseudoheaders); - -} - -# }}} - -# {{{ sub ActOnPseudoHeaders - -=item ActOnPseudoHeaders $PseudoHeaders - -Takes a string of pseudo-headers, iterates through them and does what they tell it to. - -=cut - -sub ActOnPseudoHeaders { - my $CurrentUser = shift; - my (@actions) = (@_); - - my $ResultsMessage = ''; - my $Ticket = RT::Ticket->new($CurrentUser); - - foreach my $action (@actions) { - my ($val); - my $msg = ''; - - $ResultsMessage .= ">>> $action\n"; - - if ( $action =~ /^RT-(.*?):\s*(.*)$/i ) { - my $command = $1; - my $args = $2; - - if ( $command =~ /^ticket$/i ) { - - $val = $Ticket->Load($args); - unless ($val) { - $ResultsMessage .= - loc("ERROR: Couldn't load ticket '[_1]': [_2].\n", $1, $msg); - . loc("Aborting to avoid unintended ticket modifications.\n") - . loc("The following commands were not proccessed:\n\n") - . join ( "\n", @actions ); - return ($ResultsMessage); - } - $ResultsMessage .= loc("Ticket [_1] loaded\n", $Ticket->Id); - } - else { - unless ( $Ticket->Id ) { - $ResultsMessage .= loc("No Ticket specified. Aborting ticket ") - . loc("modifications\n\n") - . loc("The following commands were not proccessed:\n\n") - . join ( "\n", @actions ); - return ($ResultsMessage); - } - - # Deal with the basics - if ( $command =~ /^(Subject|Owner|Status|Queue)$/i ) { - my $method = 'Set' . ucfirst( lc($1) ); - ( $val, $msg ) = $Ticket->$method($args); - } - - # Deal with the dates - elsif ( $command =~ /^(due|starts|started|resolved)$/i ) { - my $method = 'Set' . ucfirst( lc($1) ); - my $date = new RT::Date($CurrentUser); - $date->Set( Format => 'unknown', Value => $args ); - ( $val, $msg ) = $Ticket->$method( $date->ISO ); - } - - # Deal with the watchers - elsif ( $command =~ /^(requestor|requestors|cc|admincc)$/i ) { - my $operator = "+"; - my ($type); - if ( $args =~ /^(\+|\-)(.*)$/ ) { - $operator = $1; - $args = $2; - } - $type = 'Requestor' if ( $command =~ /^requestor/i ); - $type = 'Cc' if ( $command =~ /^cc/i ); - $type = 'AdminCc' if ( $command =~ /^admincc/i ); - - my $user = RT::User->new($CurrentUser); - $user->Load($args); - - if ($operator eq '+') { - ($val, $msg) = $Ticket->AddWatcher( Type => $type, - PrincipalId => $user->PrincipalId); - } elsif ($operator eq '-') { - ($val, $msg) = $Ticket->DeleteWatcher( Type => $type, - PrincipalId => $user->PrincipalId); - } - - } - $ResultsMessage .= $msg . "\n"; - } - - } - return ($ResultsMessage); - -} - -# }}} - -# {{{ sub untaint -sub untaint { - my $val = shift; - - if ( $val =~ /^([-\#\/\w.]+)$/ ) { - $val = $1; # $data now untainted - } - else { - die loc("Bad data in [_1]", $val); # log this somewhere - } - return ($val); -} - -# }}} - -=head1 AUTHOR - - - - rt-commit-handler is a rewritten version of the NetBSD commit handler, - which was placed in the public domain by Charles Hannum. It bore the following - authors statement: - - Contributed by David Hampton <hampton@cisco.com> - Hacked greatly by Greg A. Woods <woods@planix.com> - Rewritten by Charles M. Hannum <mycroft@netbsd.org> - -=cut - diff --git a/rt/bin/rt-crontool b/rt/bin/rt-crontool deleted file mode 100644 index cdbc3cbc9..000000000 --- a/rt/bin/rt-crontool +++ /dev/null @@ -1,220 +0,0 @@ -#!/usr/bin/perl -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK - -use strict; -use Carp; - -use lib ("/opt/rt3/lib", "/opt/rt3/local/lib"); - -package RT; - -use Getopt::Long; - -use RT::Interface::CLI qw(CleanEnv GetCurrentUser GetMessageContent loc); -use RT::Tickets; -use RT::Template; - -#Clean out all the nasties from the environment -CleanEnv(); - -# Load the config file -RT::LoadConfig(); - -#Connect to the database and get RT::SystemUser and RT::Nobody loaded -RT::Init(); - -#Drop setgid permissions -RT::DropSetGIDPermissions(); - -#Get the current user all loaded -my $CurrentUser = GetCurrentUser(); - -unless ( $CurrentUser->Id ) { - print loc("No RT user found. Please consult your RT administrator.\n"); - exit(1); -} - -my ( $search, $condition, $action, $search_arg, $condition_arg, $action_arg, - $template_id, $help, $verbose ); -GetOptions( "search=s" => \$search, - "search-arg=s" => \$search_arg, - "condition=s" => \$condition, - "condition-arg=s" => \$condition_arg, - "action-arg=s" => \$action_arg, - "action=s" => \$action, - "template-id=s" => \$template_id, - "help" => \$help, - "verbose|v" => \$verbose ); - -help() if $help; - -# We _must_ have a search object -load_module($search); -load_module($action) if ($action); -load_module($condition) if ($condition); - -# load template if specified -my $template_obj; -if ($template_id) { - $template_obj = RT::Template->new($RT::Nobody); - $template_obj->LoadById($template_id); -} - -#At the appointed time: - -#find a bunch of tickets -my $tickets = RT::Tickets->new($CurrentUser); -my $search = $search->new( TicketsObj => $tickets, Argument => $search_arg ); - -$search->Prepare(); - -# TicketsFound is an RT::Tickets object -my $tickets = $search->TicketsObj; - -#for each ticket we've found -while ( my $ticket = $tickets->Next() ) { - print "\n" . $ticket->Id() . ": " if ($verbose); - - # perform some more advanced check - if ($condition) { - my $condition_obj = $condition->new( TicketObj => $ticket, - Argument => $condition_arg ); - - # if the condition doesn't apply, get out of here - - next unless ( $condition_obj->IsApplicable ); - print loc("Condition matches...") if ($verbose); - } - - #prepare our action - my $action_obj = $action->new( TicketObj => $ticket, - TemplateObj => $template_obj, - Argument => $action_arg ); - - #if our preparation, move onto the next ticket - next unless ( $action_obj->Prepare ); - print loc("Action prepared...") if ($verbose); - - #commit our action. - next unless ( $action_obj->Commit ); - print loc("Action committed.") if ($verbose); -} - -# {{{ load_module - -=head2 load_module - -Loads a perl module, dying nicely if it can't find it. - -=cut - -sub load_module { - my $modname = shift; - eval "require $modname"; - if ($@) { - die loc( "Failed to load module [_1]. ([_2])", $modname, $@ ); - } - -} - -# }}} - -# {{{ loc - -=head2 loc LIST - -Localize this string, with the current user's currentuser object - -=cut - -sub loc { - $CurrentUser->loc(@_); -} - -# }}} - -sub help { - - print loc( "[_1] is a tool to act on tickets from an external scheduling tool, such as cron.", $0 ) - . "\n"; - print loc("It takes several arguments:") . "\n\n"; - - print " " - . loc( "[_1] - Specify the search module you want to use", "--search" ) - . "\n"; - print " " - . loc( "[_1] - An argument to pass to [_2]", "--search-argument", "--search" ) - . "\n"; - - print " " - . loc( "[_1] - Specify the condition module you want to use", "--condition" ) - . "\n"; - print " " - . loc( "[_1] - An argument to pass to [_2]", "--condition-argument", "--condition" ) - . "\n"; - print " " - . loc( "[_1] - Specify the action module you want to use", "--action" ) - . "\n"; - print " " - . loc( "[_1] - An argument to pass to [_2]", "--action-argument", "--action" ) - . "\n"; - print " " - . loc( "[_1] - Output status updates to STDOUT", "--verbose" ) . "\n"; - print "\n"; - print "\n"; - print loc("Security:")."\n"; - print loc("This tool allows the user to run arbitrary perl modules from within RT.")." ". - loc("If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT.")." ". - loc("It is incredibly important that nonprivileged users not be allowed to run this tool."). " " . - loc("It is suggested that you create a non-privileged unix user with the correct group membership and RT access to run this tool.")."\n"; - print "\n"; - print loc("Example:"); - print "\n"; - print " " - . loc( "The following command will find all active tickets in the queue 'general' and set their priority to 99 if they haven't been touched in 4 hours:" - ) - . "\n\n"; - - print " bin/rt-cron-tool \\\n"; - print - " --search RT::Search::ActiveTicketsInQueue --search-arg general \\\n"; - print - " --condition RT::Condition::UntouchedInHours --condition-arg 4 \\\n"; - print " --action RT::Action::SetPriority --action-arg 99 \\\n"; - print " --verbose\n"; - - print "\n"; - print loc("Escalate tickets"); - print "rt-crontool \\\n"; - print " --search RT::Search::ActiveTicketsInQueue --search-arg thequeuename \\\n"; - print " --action RT::Action::EscalatePriority \\\n"; - - - - - - - exit(0); -} diff --git a/rt/bin/rt-mailgate b/rt/bin/rt-mailgate deleted file mode 100755 index 8af800227..000000000 --- a/rt/bin/rt-mailgate +++ /dev/null @@ -1,648 +0,0 @@ -#!/usr/bin/perl -w -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK - -=head1 NAME - -rt-mailgate - Mail interface to RT3. - -=begin testing - -use RT::I18N; - -# Make sure that when we call the mailgate wrong, it tempfails - -ok(open(MAIL, "|/opt/rt3/bin/rt-mailgate --url http://bad.address"), "Opened the mailgate - The error below is expected - $@"); -print MAIL <<EOF; -From: root\@localhost -To: rt\@example.com -Subject: This is a test of new ticket creation - -Foob! -EOF -close (MAIL); - -# Check the return value -is ( $? >> 8, 75, "The error message above is expected The mail gateway exited with a failure. yay"); - - -# {{{ Test new ticket creation by root who is privileged and superuser - -ok(open(MAIL, "|/opt/rt3/bin/rt-mailgate --url http://localhost".$RT::WebPath."/ --queue general --action correspond"), "Opened the mailgate - $@"); -print MAIL <<EOF; -From: root\@localhost -To: rt\@example.com -Subject: This is a test of new ticket creation - -Blah! -Foob! -EOF -close (MAIL); - -#Check the return value -is ($? >> 8, 0, "The mail gateway exited normally. yay"); - -use RT::Tickets; -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id', OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok (UNIVERSAL::isa($tick,'RT::Ticket')); -ok ($tick->Id, "found ticket ".$tick->Id); -ok ($tick->Subject eq 'This is a test of new ticket creation', "Created the ticket"); - -# }}} - - -# {{{This is a test of new ticket creation as an unknown user - -ok(open(MAIL, "|/opt/rt3/bin/rt-mailgate --url http://localhost".$RT::WebPath."/ --queue general --action correspond"), "Opened the mailgate - $@"); -print MAIL <<EOF; -From: doesnotexist\@example.com -To: rt\@example.com -Subject: This is a test of new ticket creation as an unknown user - -Blah! -Foob! -EOF -close (MAIL); -#Check the return value -is ($? >> 8, 0, "The mail gateway exited normally. yay"); - -$tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -$tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); -ok ($tick->Subject ne 'This is a test of new ticket creation as an unknown user', "failed to create the new ticket from an unprivileged account"); -my $u = RT::User->new($RT::SystemUser); -$u->Load('doesnotexist@example.com'); -ok( $u->Id == 0, " user does not exist and was not created by failed ticket submission"); - - -# }}} - -# {{{ now everybody can create tickets. can a random unkown user create tickets? - -my $g = RT::Group->new($RT::SystemUser); -$g->LoadSystemInternalGroup('Everyone'); -ok( $g->Id, "Found 'everybody'"); - -my ($val,$msg) = $g->PrincipalObj->GrantRight(Right => 'CreateTicket'); -ok ($val, "Granted everybody the right to create tickets - $msg"); - -sleep(60); # gotta sleep so the remote process' ACL cache times out - -ok(open(MAIL, "|/opt/rt3/bin/rt-mailgate --url http://localhost".$RT::WebPath."/ --queue general --action correspond"), "Opened the mailgate - $@"); -print MAIL <<EOF; -From: doesnotexist\@example.com -To: rt\@example.com -Subject: This is a test of new ticket creation as an unknown user - -Blah! -Foob! -EOF -close (MAIL); -#Check the return value -is ($? >> 8, 0, "The mail gateway exited normally. yay"); - - -$tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -$tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); -ok ($tick->Subject eq 'This is a test of new ticket creation as an unknown user', "failed to create the new ticket from an unprivileged account"); -my $u = RT::User->new($RT::SystemUser); -$u->Load('doesnotexist@example.com'); -ok( $u->Id != 0, " user does not exist and was created by ticket submission"); - -# }}} - - -# {{{ can another random reply to a ticket without being granted privs? answer should be no. - - -#($val,$msg) = $g->PrincipalObj->GrantRight(Right => 'CreateTicket'); -#ok ($val, "Granted everybody the right to create tickets - $msg"); -#sleep(60); # gotta sleep so the remote process' ACL cache times out - -ok(open(MAIL, "|/opt/rt3/bin/rt-mailgate --url http://localhost".$RT::WebPath."/ --queue general --action correspond"), "Opened the mailgate - $@"); -print MAIL <<EOF; -From: doesnotexist-2\@example.com -To: rt\@example.com -Subject: [example.com #@{[$tick->Id]}] This is a test of a reply as an unknown user - -Blah! -Foob! -EOF -close (MAIL); -#Check the return value -is ($? >> 8, 0, "The mail gateway exited normally. yay"); - -$u = RT::User->new($RT::SystemUser); -$u->Load('doesnotexist-2@example.com'); -ok( $u->Id == 0, " user does not exist and was not created by ticket correspondence submission"); -# }}} -# {{{ can another random reply to a ticket after being granted privs? answer should be yes - - -($val,$msg) = $g->PrincipalObj->GrantRight(Right => 'ReplyToTicket'); -ok ($val, "Granted everybody the right to reply to tickets - $msg"); -sleep(60); # gotta sleep so the remote process' ACL cache times out - -ok(open(MAIL, "|/opt/rt3/bin/rt-mailgate --url http://localhost".$RT::WebPath."/ --queue general --action correspond"), "Opened the mailgate - $@"); -print MAIL <<EOF; -From: doesnotexist-2\@example.com -To: rt\@example.com -Subject: [example.com #@{[$tick->Id]}] This is a test of a reply as an unknown user - -Blah! -Foob! -EOF -close (MAIL); -#Check the return value -is ($? >> 8, 0, "The mail gateway exited normally. yay"); - - -$u = RT::User->new($RT::SystemUser); -$u->Load('doesnotexist-2@example.com'); -ok( $u->Id != 0, " user exists and was created by ticket correspondence submission"); - -# }}} - -# {{{ can another random comment on a ticket without being granted privs? answer should be no. - - -#($val,$msg) = $g->PrincipalObj->GrantRight(Right => 'CreateTicket'); -#ok ($val, "Granted everybody the right to create tickets - $msg"); -#sleep(60); # gotta sleep so the remote process' ACL cache times out - -ok(open(MAIL, "|/opt/rt3/bin/rt-mailgate --url http://localhost".$RT::WebPath."/ --queue general --action comment"), "Opened the mailgate - $@"); -print MAIL <<EOF; -From: doesnotexist-3\@example.com -To: rt\@example.com -Subject: [example.com #@{[$tick->Id]}] This is a test of a comment as an unknown user - -Blah! -Foob! -EOF -close (MAIL); - -#Check the return value -is ($? >> 8, 0, "The mail gateway exited normally. yay"); - -$u = RT::User->new($RT::SystemUser); -$u->Load('doesnotexist-3@example.com'); -ok( $u->Id == 0, " user does not exist and was not created by ticket comment submission"); - -# }}} -# {{{ can another random reply to a ticket after being granted privs? answer should be yes - - -($val,$msg) = $g->PrincipalObj->GrantRight(Right => 'CommentOnTicket'); -ok ($val, "Granted everybody the right to reply to tickets - $msg"); -sleep(60); # gotta sleep so the remote process' ACL cache times out - -ok(open(MAIL, "|/opt/rt3/bin/rt-mailgate --url http://localhost".$RT::WebPath."/ --queue general --action comment"), "Opened the mailgate - $@"); -print MAIL <<EOF; -From: doesnotexist-3\@example.com -To: rt\@example.com -Subject: [example.com #@{[$tick->Id]}] This is a test of a comment as an unknown user - -Blah! -Foob! -EOF -close (MAIL); - -#Check the return value -is ($? >> 8, 0, "The mail gateway exited normally. yay"); - -$u = RT::User->new($RT::SystemUser); -$u->Load('doesnotexist-3@example.com'); -ok( $u->Id != 0, " user exists and was created by ticket comment submission"); - -# }}} - -# {{{ Testing preservation of binary attachments - -# Get a binary blob (Best Practical logo) - -# Create a mime entity with an attachment - -use MIME::Entity; -my $entity = MIME::Entity->build( From => 'root@localhost', - To => 'rt@localhost', - Subject => 'binary attachment test', - Data => ['This is a test of a binary attachment']); - -# currently in lib/t/autogen -$entity->attach(Path => '/opt/rt3/share/html/NoAuth/images/spacer.gif', - Type => 'image/gif', - Encoding => 'base64'); - -# Create a ticket with a binary attachment -ok(open(MAIL, "|/opt/rt3/bin/rt-mailgate --url http://localhost".$RT::WebPath."/ --queue general --action correspond"), "Opened the mailgate - $@"); - -$entity->print(\*MAIL); - -close (MAIL); - -#Check the return value -is ($? >> 8, 0, "The mail gateway exited normally. yay"); - -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id', OPERATOR => '>', VALUE => '0'); - $tick = $tickets->First(); -ok (UNIVERSAL::isa($tick,'RT::Ticket')); -ok ($tick->Id, "found ticket ".$tick->Id); -ok ($tick->Subject eq 'binary attachment test', "Created the ticket - ".$tick->Id); - -my $file = `cat ../../../html/NoAuth/images/spacer.gif`; -ok ($file, "Read in the logo image"); - - - use Digest::MD5; -warn "for the raw file the content is ".Digest::MD5::md5_base64($file); - - - -# Verify that the binary attachment is valid in the database -my $attachments = RT::Attachments->new($RT::SystemUser); -$attachments->Limit(FIELD => 'ContentType', VALUE => 'image/gif'); -ok ($attachments->Count == 1, 'Found only one gif in the database'); -my $attachment = $attachments->First; -my $acontent = $attachment->Content; - - warn "coming from the database, the content is ".Digest::MD5::md5_base64($acontent); - -is( $acontent, $file, 'The attachment isn\'t screwed up in the database.'); -# Log in as root -use Getopt::Long; -use LWP::UserAgent; - - -# Grab the binary attachment via the web ui -my $ua = LWP::UserAgent->new(); - -my $full_url = "http://localhost".$RT::WebPath."/Ticket/Attachment/".$attachment->TransactionId."/".$attachment->id."/spacer.gif?&user=root&pass=password"; -my $r = $ua->get( $full_url); - - -# Verify that the downloaded attachment is the same as what we uploaded. -is($file, $r->content, 'The attachment isn\'t screwed up in download'); - - - -# }}} - -# {{{ Simple I18N testing - -ok(open(MAIL, "|/opt/rt3/bin/rt-mailgate --url http://localhost".$RT::WebPath."/ --queue general --action correspond"), "Opened the mailgate - $@"); - -print MAIL <<EOF; -From: root\@localhost -To: rtemail\@example.com -Subject: This is a test of I18N ticket creation -Content-Type: text/plain; charset="utf-8" - -2 accented lines -\303\242\303\252\303\256\303\264\303\273 -\303\241\303\251\303\255\303\263\303\272 -bye -EOF -close (MAIL); - -#Check the return value -is ($? >> 8, 0, "The mail gateway exited normally. yay"); - -my $unitickets = RT::Tickets->new($RT::SystemUser); -$unitickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$unitickets->Limit(FIELD => 'id', OPERATOR => '>', VALUE => '0'); -my $unitick = $unitickets->First(); -ok (UNIVERSAL::isa($unitick,'RT::Ticket')); -ok ($unitick->Id, "found ticket ".$unitick->Id); -ok ($unitick->Subject eq 'This is a test of I18N ticket creation', "Created the ticket - ". $unitick->Subject); - - - -my $unistring = "\303\241\303\251\303\255\303\263\303\272"; -Encode::_utf8_on($unistring); -is ($unitick->Transactions->First->Content, $unitick->Transactions->First->Attachments->First->Content, "Content is ". $unitick->Transactions->First->Attachments->First->Content); -ok($unitick->Transactions->First->Attachments->First->Content =~ /$unistring/i, $unitick->Id." appears to be unicode ". $unitick->Transactions->First->Attachments->First->Id); -# supposedly I18N fails on the second message sent in. - -ok(open(MAIL, "|/opt/rt3/bin/rt-mailgate --url http://localhost".$RT::WebPath."/ --queue general --action correspond"), "Opened the mailgate - $@"); - -print MAIL <<EOF; -From: root\@localhost -To: rtemail\@example.com -Subject: This is a test of I18N ticket creation -Content-Type: text/plain; charset="utf-8" - -2 accented lines -\303\242\303\252\303\256\303\264\303\273 -\303\241\303\251\303\255\303\263\303\272 -bye -EOF -close (MAIL); - -#Check the return value -is ($? >> 8, 0, "The mail gateway exited normally. yay"); - -my $tickets2 = RT::Tickets->new($RT::SystemUser); -$tickets2->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets2->Limit(FIELD => 'id', OPERATOR => '>', VALUE => '0'); -my $tick2 = $tickets2->First(); -ok (UNIVERSAL::isa($tick2,'RT::Ticket')); -ok ($tick2->Id, "found ticket ".$tick2->Id); -ok ($tick2->Subject eq 'This is a test of I18N ticket creation', "Created the ticket"); - - - -my $unistring = "\303\241\303\251\303\255\303\263\303\272"; -Encode::_utf8_on($unistring); - -ok ($tick2->Transactions->First->Content =~ $unistring, "It appears to be unicode - ".$tick2->Transactions->First->Content); - -# }}} - - -($val,$msg) = $g->PrincipalObj->RevokeRight(Right => 'CreateTicket'); -ok ($val, $msg); - - - -=end testing - -=cut - - -use strict; -use Getopt::Long; -use LWP::UserAgent; - -use constant EX_TEMPFAIL => 75; - -my %opts; -GetOptions( \%opts, "queue=s", "action=s", "url=s", "jar=s", "help", "debug", "extension=s", "timeout=i" ); - -if ( $opts{help} ) { - require Pod::Usage; - import Pod::Usage; - pod2usage("RT Mail Gateway\n"); - exit 1; # Don't want to succeed if this is really an email! -} - -for (qw(url)) { - die "$0 invoked improperly\n\nNo $_ provided to mail gateway!\n" unless $opts{$_}; -} - -undef $/; -my $ua = LWP::UserAgent->new(); -$ua->cookie_jar( { file => $opts{jar} } ); - -my %args = ( - queue => $opts{queue}, - action => $opts{action}, - SessionType => 'REST', # Surpress login box -); - -# Read the message in from STDIN -$args{'message'} = <>; - - -if ($opts{'extension'}) { - $args{$opts{'extension'}} = $ENV{'EXTENSION'}; -} - -# Set up cookie here. - -my $full_url = $opts{'url'}. "/REST/1.0/NoAuth/mail-gateway"; -warn "Connecting to $full_url" if $opts{'debug'}; - - - -$ua->timeout(exists($opts{'timeout'}) ? $opts{'timeout'} : 180); -my $r = $ua->post( $full_url, {%args} ); -check_failure($r); - -my $content = $r->content; -warn $content if ($opts{debug}); - -if ( $content !~ /^(ok|not ok)/ ) { - - # It's not the server's fault if the mail is bogus. We just want to know that - # *something* came out of the server. - warn <<EOF; -RT server error. - -The RT server which handled your email did not behave as expected. It -said: - -$content -EOF - -exit EX_TEMPFAIL; - -} - -exit; - - -sub check_failure { - my $r = shift; - return if $r->is_success(); - - # This ordinarily oughtn't to be able to happen, suggests a bug in RT. - # So only load these heavy modules when they're needed. - require HTML::TreeBuilder; - require HTML::FormatText; - - my $error = $r->error_as_HTML; - my $tree = HTML::TreeBuilder->new->parse($error); - $tree->eof; - - # It'll be a cold day in hell before RT sends out bounces in HTML - my $formatter = HTML::FormatText->new( leftmargin => 0, - rightmargin => 50 ); - warn $formatter->format($tree); - warn "This is $0 exiting because of an undefined server error" if ($opts{debug}); - exit EX_TEMPFAIL; -} - - -=head1 SYNOPSIS - - rt-mailgate --help : this text - -Usual invocation (from MTA): - - rt-mailgate --action (correspond|comment) --queue queuename - --url http://your.rt.server/ - [ --debug ] - [ --extension (queue|action|ticket) ] - [ --timeout seconds ] - - - -See C<man rt-mailgate> for more. - -=head1 OPTIONS - -=over 3 - -=item C<--action> - -Specifies whether this is a correspondence or comment address. - -=item C<--queue> - -Reflects which queue this address handles. - -=item C<--url> - -The location of the web server for your RT instance. - - -=item C<--extension> OPTIONAL - -Some MTAs will route mail sent to user-foo@host or user+foo@host to user@host -and present "foo" in the environment variable $EXTENSION. By specifying -the value "queue" for this parameter, the queue this message should be -submitted to will be set to the value of $EXTENSION. By specifying -"ticket", $EXTENSION will be interpreted as the id of the ticket this message -is related to. "action" will allow the user to specify either "comment" or -"correspond" in the address extension. - -=item C<--debug> OPTIONAL - -Print debugging output to standard error - - -=item C<--timeout> OPTIONAL - -Configure the timeout for posting the message to the web server. The -default timeout is 3 minutes (180 seconds). - - -=head1 DESCRIPTION - -The RT mail gateway is the primary mechanism for communicating with RT -via email. This program simply directs the email to the RT web server, -which handles filing correspondence and sending out any required mail. -It is designed to be run as part of the mail delivery process, either -called directly by the MTA or C<procmail>, or in a F<.forward> or -equivalent. - -=head1 SETUP - -Much of the set up of the mail gateway depends on your MTA and mail -routing configuration. However, you will need first of all to create an -RT user for the mail gateway and assign it a password; this helps to -ensure that mail coming into the web server did originate from the -gateway. - -Next, you need to route mail to C<rt-mailgate> for the queues you're -monitoring. For instance, if you're using F</etc/aliases> and you have a -"bugs" queue, you will want something like this: - - bugs: "|/opt/rt3/bin/rt-mailgate --queue bugs --action correspond - --url http://rt.mycorp.com/" - - bugs-comment: "|/opt/rt3/bin/rt-mailgate --queue bugs --action comment - --url http://rt.mycorp.com/" - -Note that you don't have to run your RT server on your mail server, as -the mail gateway will happily relay to a different machine. - -=head1 CUSTOMIZATION - -By default, the mail gateway will accept mail from anyone. However, -there are situations in which you will want to authenticate users -before allowing them to communicate with the system. You can do this -via a plug-in mechanism in the RT configuration. - -You can set the array C<@RT::MailPlugins> to be a list of plugins. The -default plugin, if this is not given, is C<Auth::MailFrom> - that is, -authentication of the person is done based on the C<From> header of the -email. If you have additional filters or authentication mechanisms, you -can list them here and they will be called in order: - - @RT::MailPlugins = ( - "Filter::SpamAssassin", - "Auth::LDAP", - # ... - ); - -See the documentation for any additional plugins you have. - -You may also put Perl subroutines into the C<@RT::MailPlugins> array, if -they behave as described below. - -=head1 WRITING PLUGINS - -What's actually going on in the above is that C<@RT::MailPlugins> is a -list of Perl modules; RT prepends C<RT::Interface::Email::> to the name, -to form a package name, and then C<use>'s this module. The module is -expected to provide a C<GetCurrentUser> subroutine, which takes a hash of -several parameters: - -=over 4 - -=item Message - -A C<MIME::Entity> object representing the email -=item CurrentUser - -An C<RT::CurrentUser> object - -=item AuthStat - -The authentication level returned from the previous plugin. - -=item Ticket [OPTIONAL] - -The ticket under discussion - -=item Queue [OPTIONAL] - -If we don't already have a ticket id, we need to know which queue we're talking about - -=item Action - -The action being performed. At the moment, it's one of "comment" or "correspond" - -=back 4 - -It returns two values, the new C<RT::CurrentUser> object, and the new -authentication level. The authentication level can be zero, not allowed -to communicate with RT at all, (a "permission denied" error is mailed to -the correspondent) or one, which is the normal mode of operation. -Additionally, if C<-1> is returned, then the processing of the plug-ins -stops immediately and the message is ignored. - -=cut - diff --git a/rt/bin/webmux.pl b/rt/bin/webmux.pl deleted file mode 100755 index 96e7ebf8d..000000000 --- a/rt/bin/webmux.pl +++ /dev/null @@ -1,148 +0,0 @@ -#!/usr/bin/perl -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK - -use strict; - -BEGIN { - $ENV{'PATH'} = '/bin:/usr/bin'; # or whatever you need - $ENV{'CDPATH'} = '' if defined $ENV{'CDPATH'}; - $ENV{'SHELL'} = '/bin/sh' if defined $ENV{'SHELL'}; - $ENV{'ENV'} = '' if defined $ENV{'ENV'}; - $ENV{'IFS'} = '' if defined $ENV{'IFS'}; - -} - -use lib ("/opt/rt3/local/lib", "/opt/rt3/lib"); -use RT; - -package RT::Mason; - -use CGI qw(-private_tempfiles); #bring this in before mason, to make sure we - #set private_tempfiles - -BEGIN { - if ($mod_perl::VERSION >= 1.9908) { - require Apache::RequestUtil; - no warnings 'redefine'; - my $sub = *Apache::request{CODE}; - *Apache::request = sub { - my $r; - eval { $r = $sub->('Apache'); }; - # warn $@ if $@; - return $r; - }; - } - if ($CGI::MOD_PERL) { - require HTML::Mason::ApacheHandler; - } - else { - require HTML::Mason::CGIHandler; - } -} - -use HTML::Mason; # brings in subpackages: Parser, Interp, etc. - -use vars qw($Nobody $SystemUser $r); - -#This drags in RT's config.pm -RT::LoadConfig(); - -use Carp; - -{ - package HTML::Mason::Commands; - use vars qw(%session); - - use RT::Tickets; - use RT::Transactions; - use RT::Users; - use RT::CurrentUser; - use RT::Templates; - use RT::Queues; - use RT::ScripActions; - use RT::ScripConditions; - use RT::Scrips; - use RT::Groups; - use RT::GroupMembers; - use RT::CustomFields; - use RT::CustomFieldValues; - use RT::TicketCustomFieldValues; - - use RT::Interface::Web; - use MIME::Entity; - use Text::Wrapper; - use CGI::Cookie; - use Time::ParseDate; - use HTML::Entities; -} - - -# Activate the following if running httpd as root (the normal case). -# Resets ownership of all files created by Mason at startup. -# Note that mysql uses DB for sessions, so there's no need to do this. -unless ($RT::DatabaseType =~ /(mysql|Pg)/) { - # Clean up our umask to protect session files - umask(0077); - -if ( $CGI::MOD_PERL) { - chown( Apache->server->uid, Apache->server->gid, [$RT::MasonSessionDir] ) - if Apache->server->can('uid'); - } - # Die if WebSessionDir doesn't exist or we can't write to it - stat($RT::MasonSessionDir); - die "Can't read and write $RT::MasonSessionDir" - unless ( ( -d _ ) and ( -r _ ) and ( -w _ ) ); -} - -my $ah = &RT::Interface::Web::NewApacheHandler(@RT::MasonParameters) if $CGI::MOD_PERL; - -sub handler { - ($r) = @_; - - local $SIG{__WARN__}; - local $SIG{__DIE__}; - - RT::Init(); - - # We don't need to handle non-text items - return -1 if defined( $r->content_type ) && $r->content_type !~ m|^text/|io; - - my %session; - my $status; - eval { $status = $ah->handle_request($r) }; - if ($@) { - $RT::Logger->crit($@); - } - - undef (%session); - - if ($RT::Handle->TransactionDepth) { - $RT::Handle->ForceRollback; - $RT::Logger->crit("Transaction not committed. Usually indicates a software fault. Data loss may have occurred") ; - } - return $status; -} - -1; diff --git a/rt/config b/rt/config deleted file mode 100644 index b9418a66d..000000000 --- a/rt/config +++ /dev/null @@ -1,256 +0,0 @@ -/* - * This is the project ``config'' file. It controls many aspects of - * how Aegis interacts with your project. - * - * There are several sections of this file, each dealing with a different - * aspect of the interaction between Aegis and the tools used to manage - * yout project. - */ - -/* - * ------------------------------------------------------------------------- - * - * The build tool is delegated. - */ - -/* - * The build_command field of the config file is used to invoke the relevant - * build command. The following command tells cook where to find the recipes. - * The ${s Howto.cook} expands to a path into the baseline during development - * if the file is not in the change. Look in aesub(5) for more information - * about command substitutions. - */ -build_command = - ""; - -/* cook -book ${s Howto.cook} search_path=$search_path \ -project=$p change=$c version=$v -star -no-log -action -notouch"; - -/* - * The recipes in the User Guide will all remove their targets before - * constructing them, which qualifies them to use the following entry in the - * config file. The targets MUST be removed first if this field is true, - * otherwise the baseline would cease to be self-consistent. - * - * Fortunately, Cook has a nifty ``set unlink;'' statement which is - * placed at the top of the cookbook. - */ -link_integration_directory = true; - - -/* - * ------------------------------------------------------------------------- - * - * The history tool is delegated. - * - * The fhist program was written by David I. Bell and is admirably - * suited to providing a history mechanism with out the "cruft" that - * SCCS and RCS impose. The fhist program also comes with two other - * utilities, fcomp and fmerge, which use the same minimal difference - * algorithm. - * - * Please note that the [# edit #] feature needs to be avoided, or the - * -Fored_Update (-fu) flag needs to be used in addition to the - * -Conditional_Update (-cu) flag, otherwise updates will complain that - * ``Input file "XXX" contains edit A instead of B for module "YYY"'' - * - * The history_create_command and the history_put_command are - * intentionally identical. This minimizes problems when using - * branches. - * - * The ${quote ...} construct is used to quote filesnames whicg contain - * shell special characters. A minimum of quoting is performed, so if - * the filenames do not contail shell special characters, no quotes will - * be used. - */ - -/* - * This command is used to create a new project history. The command is - * always executed as the project owner. Note he the source is left in - * the baseline. The following substitutions are available: - * - * ${Input} - * absolute path of the source file - * ${History} - * absolute path of the history file - * - * The history_create_command and the history_put_command are - * intentionally identical. This minimizes problems when using - * branches. - */ -history_create_command = - "fhist ${quote ${basename $input}} -cr -cu -i ${quote $input} \ --p ${quote ${dirname $history}} -r"; - -/* - * This command is used to get a specific edit back from history. The - * command may be executed by developers. The following substitutions - * are available: - * - * ${History} - * absolute path of the history file - * ${Edit} - * edit number, as given by history_query_command - * ${Output} - * absolute path of the destination file - * - * Note that the destination filename will never look anything like the - * history source filename, so the -p is essential. - */ -history_get_command = - "fhist ${quote ${basename $history}} -e ${quote $e} \ --o ${quote $output} -p ${quote ${dirname $history}}"; - -/* - * This command is used to add a new "top-most" entry to the history - * file. This command is always executed as the project owner. Note - * that the source file is left in the baseline. The following - * substitutions are available: - * - * ${Input} - * absolute path of source file - * ${History} - * absolute path of history file - * - * The history_create_command and the history_put_command are - * intentionally identical. This minimizes problems when using - * branches. - */ -history_put_command = - "fhist ${quote ${basename $input}} -cr -cu -i ${quote $input} \ --p ${quote ${dirname $history}} -r"; - -/* - * This command is used to query what the history mechanism calls the - * "top-most" edit of a history file. The result may be any arbitrary - * string, it need not be anything like a number, just so long as it - * uniquely identifies the edit for use by the history_get_command at a - * later date. The edit number is to be printed on the standard output. - * This command may be executed by developers. The following - * substitutions are available: - * - * ${History} - * absolute path of the history file - */ -history_query_command = - "fhist ${quote ${basename $history}} -l 0 \ --p ${quote ${dirname $history}} -q"; - -/* - * ------------------------------------------------------------------------- - * - * The difference and merge tools are delegated. - */ - -/* - * Compare two files using fcomp. The -w option produces an output of - * the entire file, with insertions an deletions marked by "change bars" - * in the left margin. This is superior to context difference, as it - * shows the entire file as context. The -s option could be added to - * compare runs of white space as equal. - * - * This command is used by aed(1) to produce a difference listing when - * file in the development directory was originally copied from the - * current version in the baseline. - * - * All of the command substitutions described in aesub(5) are available. - * In addition, the following substitutions are also available: - * - * ${ORiginal} - * The absolute path name of a file containing the version - * originally copied. Usually in the baseline. - * ${Input} - * The absolute path name of the edited version of the file. - * Usually in the development directory. - * ${Output} - * The absolute path name of the file in which to write the - * difference listing. Usually in the development directory. - * - * An exit status of 0 means successful, even of the files differ (and - * they usually do). An exit status which is non-zero means something - * is wrong. - * - * The non-zero exit status may be used to overload this command with - * extra tests, such as line length limits. The difference files must - * be produced in addition to these extra tests. - */ -diff_command = - "fcomp -w ${quote $original} ${quote $input} -o ${quote $output}"; - -/* - * Compare three files using fmerge. Conflicts are marked in the - * output. - * - * This command is used by aed(1) to produce a difference listing when a - * file in the development directory is out of date compared to the - * current version in the baseline. - * - * All of the command substitutions described in aesub(5) are available. - * In addition, the following substitutions are also available: - * - * ${ORiginal} - * The absolute path name of a file containing the common ancestor - * version of ${MostRecent} and {$Input}. Usually the version - * originally copied into the change. Usually in a temporary file. - * ${Most_Recent} - * The absolute path name of a file containing the most recent - * version. Usually in the baseline. - * ${Input} - * The absolute path name of the edited version of the file. - * Usually in the development directory. - * ${Output} - * The absolute path name of the file in which to write the - * difference listing. Usually in the development directory. - * - * An exit status of 0 means successful, even of the files differ (and - * they usually do). An exit status which is non-zero means something - * is wrong. - */ -merge_command = - "fmerge ${quote $original} ${quote $MostRecent} ${quote $input} \ --o ${quote $output} -c /dev/null"; - -/* - * ------------------------------------------------------------------------- - * - * The new file templates are very handy. They allow all sorts of things - * to be se automatically. You need to edit them to add your own name, - * and copyright conditions. - */ - -file_template = -[ - { - pattern = [ "*" ]; - body = "${read_file ${source etc/template/generic abs}}"; - - } -]; - -/* ------------------------------------------------------------------------- - * - * The integrate_begin_exceptions are files which are not hard linked - * from the baseline to the integration directory. In this case, this - * is done to ensure the version stmp is updated appropriately. - */ - -integrate_begin_exceptions = [ ]; - - - - -/* ------------------------------------------------------------------------- - * - * The trojan_horse_suspect field is a list of filename patterns which - * indicate files which *could* host a Trojan horse attack. It makes - * aedist --receive more cautions. It is NOT a silver bullet: just - * about ANY file can host a Trojan, one way or the other. - */ - -trojan_horse_suspect = [ ]; - -build_covers_all_architectures = true; - -test_command = "make test"; - -build_time_adjust=dont_adjust; diff --git a/rt/config.log b/rt/config.log deleted file mode 100644 index 24e15e3cf..000000000 --- a/rt/config.log +++ /dev/null @@ -1,118 +0,0 @@ -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by RT configure 3.0.9, which was -generated by GNU Autoconf 2.53. Invocation command line was - - $ ./configure - -## --------- ## -## Platform. ## -## --------- ## - -hostname = pallas -uname -m = i686 -uname -r = 2.4.18-686 -uname -s = Linux -uname -v = #1 Sun Apr 14 11:32:47 EST 2002 - -/usr/bin/uname -p = unknown -/bin/uname -X = unknown - -/bin/arch = i686 -/usr/bin/arch -k = unknown -/usr/convex/getsysinfo = unknown -hostinfo = unknown -/bin/machine = unknown -/usr/bin/oslevel = unknown -/bin/universe = unknown - -PATH: /usr/X11R6/bin/ -PATH: /opt/rt/bin -PATH: /usr/athena/bin -PATH: /usr/local/bin -PATH: /bin -PATH: /usr/bin -PATH: /usr/sbin -PATH: /usr/bin -PATH: /usr/games -PATH: $HOME/bin -PATH: /opt/kerberos/bin -PATH: /opt/StarOffice-4.0/bin -PATH: /opt/mysql/bin/ -PATH: . - - -## ----------- ## -## Core tests. ## -## ----------- ## - -configure:1218: checking for a BSD-compatible install -configure:1272: result: /usr/bin/install -c -configure:1286: checking for perl -configure:1304: found /usr/bin/perl -configure:1317: result: /usr/bin/perl -configure:1639: checking for chosen layout -configure:1654: result: RT3 -configure:1986: creating ./config.status - -## ---------------------- ## -## Running config.status. ## -## ---------------------- ## - -This file was extended by RT config.status 3.0.9, which was -generated by GNU Autoconf 2.53. Invocation command line was - - CONFIG_FILES = - CONFIG_HEADERS = - CONFIG_LINKS = - CONFIG_COMMANDS = - $ ./config.status - -on pallas - -config.status:639: creating sbin/rt-setup-database -config.status:639: creating sbin/rt-test-dependencies -config.status:639: creating Makefile -config.status:639: creating etc/RT_Config.pm -config.status:639: creating lib/RT.pm -config.status:639: creating lib/t/00smoke.t -config.status:639: creating lib/t/01harness.t -config.status:639: creating lib/t/02regression.t -config.status:639: creating lib/t/03web.pl -config.status:639: creating lib/t/04_send_email.pl -config.status:639: creating bin/mason_handler.fcgi -config.status:639: creating bin/mason_handler.scgi -config.status:639: creating bin/mason_handler.svc -config.status:639: creating bin/rt-commit-handler -config.status:639: creating bin/rt-crontool -config.status:639: creating bin/rt-mailgate -config.status:639: creating bin/rt -config.status:639: creating bin/webmux.pl - -## ---------------- ## -## Cache variables. ## -## ---------------- ## - -ac_cv_env_PERL_set= -ac_cv_env_PERL_value= -ac_cv_env_build_alias_set= -ac_cv_env_build_alias_value= -ac_cv_env_host_alias_set= -ac_cv_env_host_alias_value= -ac_cv_env_target_alias_set= -ac_cv_env_target_alias_value= -ac_cv_path_PERL=/usr/bin/perl -ac_cv_path_install='/usr/bin/install -c' - -## ----------- ## -## confdefs.h. ## -## ----------- ## - -#define PACKAGE_NAME "RT" -#define PACKAGE_TARNAME "rt" -#define PACKAGE_VERSION "3.0.9" -#define PACKAGE_STRING "RT 3.0.9" -#define PACKAGE_BUGREPORT "rt-3.0-bugs@fsck.com" - -configure: exit 0 diff --git a/rt/config.pld b/rt/config.pld deleted file mode 100644 index c71c7bbdd..000000000 --- a/rt/config.pld +++ /dev/null @@ -1,19 +0,0 @@ -(test "x$prefix" = "xNONE" || test "x$prefix" = "x") && prefix=/opt/rt3 -(test "x$exec_prefix" = "xNONE" || test "x$exec_prefix" = "x") && exec_prefix=${prefix} -bindir=${exec_prefix}/bin -sbindir=${exec_prefix}/sbin -sysconfdir=${prefix}/etc -mandir=${prefix}/man -libdir=${prefix}/lib -datadir=${prefix}/share -(test "x$htmldir" = "xNONE" || test "x$htmldir" = "x") && htmldir=${datadir}/html -(test "x$manualdir" = "xNONE" || test "x$manualdir" = "x") && manualdir=${datadir}/doc -localstatedir=${prefix}/var -(test "x$logfiledir" = "xNONE" || test "x$logfiledir" = "x") && logfiledir=${localstatedir}/log -(test "x$masonstatedir" = "xNONE" || test "x$masonstatedir" = "x") && masonstatedir=${localstatedir}/mason_data -(test "x$sessionstatedir" = "xNONE" || test "x$sessionstatedir" = "x") && sessionstatedir=${localstatedir}/session_data -(test "x$customdir" = "xNONE" || test "x$customdir" = "x") && customdir=${prefix}/local -(test "x$custometcdir" = "xNONE" || test "x$custometcdir" = "x") && custometcdir=${customdir}/etc -(test "x$customhtmldir" = "xNONE" || test "x$customhtmldir" = "x") && customhtmldir=${customdir}/html -(test "x$customlexdir" = "xNONE" || test "x$customlexdir" = "x") && customlexdir=${customdir}/po -(test "x$customlibdir" = "xNONE" || test "x$customlibdir" = "x") && customlibdir=${customdir}/lib diff --git a/rt/config.status b/rt/config.status deleted file mode 100755 index e7d81b358..000000000 --- a/rt/config.status +++ /dev/null @@ -1,713 +0,0 @@ -#! /bin/sh -# Generated by configure. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -SHELL=${CONFIG_SHELL-/bin/sh} - -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be Bourne compatible -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: -elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then - set -o posix -fi - -# NLS nuisances. -# Support unset when possible. -if (FOO=FOO; unset FOO) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - -(set +x; test -n "`(LANG=C; export LANG) 2>&1`") && - { $as_unset LANG || test "${LANG+set}" != set; } || - { LANG=C; export LANG; } -(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") && - { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } || - { LC_ALL=C; export LC_ALL; } -(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") && - { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } || - { LC_TIME=C; export LC_TIME; } -(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") && - { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } || - { LC_CTYPE=C; export LC_CTYPE; } -(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") && - { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } || - { LANGUAGE=C; export LANGUAGE; } -(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") && - { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } || - { LC_COLLATE=C; export LC_COLLATE; } -(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") && - { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } || - { LC_NUMERIC=C; export LC_NUMERIC; } -(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") && - { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } || - { LC_MESSAGES=C; export LC_MESSAGES; } - - -# Name of the executable. -as_me=`(basename "$0") 2>/dev/null || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ - . : '\(.\)' 2>/dev/null || -echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } - /^X\/\(\/\/\)$/{ s//\1/; q; } - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - -# PATH needs CR, and LINENO needs CR and PATH. -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - echo "#! /bin/sh" >conftest.sh - echo "exit 0" >>conftest.sh - chmod +x conftest.sh - if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi - rm -f conftest.sh -fi - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" || { - # Find who we are. Look in the path if we contain no path at all - # relative or not. - case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done - - ;; - esac - # We did not find ourselves, most probably we were run as `sh COMMAND' - # in which case we are not to be found in the path. - if test "x$as_myself" = x; then - as_myself=$0 - fi - if test ! -f "$as_myself"; then - { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 -echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} - { (exit 1); exit 1; }; } - fi - case $CONFIG_SHELL in - '') - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for as_base in sh bash ksh sh5; do - case $as_dir in - /*) - if ("$as_dir/$as_base" -c ' - as_lineno_1=$LINENO - as_lineno_2=$LINENO - as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then - CONFIG_SHELL=$as_dir/$as_base - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" ${1+"$@"} - fi;; - esac - done -done -;; - esac - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line before each line; the second 'sed' does the real - # work. The second script uses 'N' to pair each line-number line - # with the numbered line, and appends trailing '-' during - # substitution so that $LINENO is not a special case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) - sed '=' <$as_myself | - sed ' - N - s,$,-, - : loop - s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, - t loop - s,-$,, - s,^['$as_cr_digits']*\n,, - ' >$as_me.lineno && - chmod +x $as_me.lineno || - { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 -echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensible to this). - . ./$as_me.lineno - # Exit status is that of the last command. - exit -} - - -case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in - *c*,-n*) ECHO_N= ECHO_C=' -' ECHO_T=' ' ;; - *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; - *) ECHO_N= ECHO_C='\c' ECHO_T= ;; -esac - -if expr a : '\(a\)' >/dev/null 2>&1; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -echo >conf$$.file -if ln -s conf$$.file conf$$ 2>/dev/null; then - # We could just check for DJGPP; but this test a) works b) is more generic - # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). - if test -f conf$$.exe; then - # Don't use ln at all; we don't have any links - as_ln_s='cp -p' - else - as_ln_s='ln -s' - fi -elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.file - -as_executable_p="test -f" - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - -# IFS -# We need space, tab and new line, in precisely that order. -as_nl=' -' -IFS=" $as_nl" - -# CDPATH. -$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; } - -exec 6>&1 - -# Open the log real soon, to keep \$[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. Logging --version etc. is OK. -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX -} >&5 -cat >&5 <<_CSEOF - -This file was extended by RT $as_me 3.0.9, which was -generated by GNU Autoconf 2.53. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -_CSEOF -echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 -echo >&5 -config_files=" sbin/rt-setup-database sbin/rt-test-dependencies Makefile etc/RT_Config.pm lib/RT.pm lib/t/00smoke.t lib/t/01harness.t lib/t/02regression.t lib/t/03web.pl lib/t/04_send_email.pl bin/mason_handler.fcgi bin/mason_handler.scgi bin/mason_handler.svc bin/rt-commit-handler bin/rt-crontool bin/rt-mailgate bin/rt bin/webmux.pl" - -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTIONS] [FILE]... - - -h, --help print this help, then exit - -V, --version print version number, then exit - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Report bugs to <bug-autoconf@gnu.org>." -ac_cs_version="\ -RT config.status 3.0.9 -configured by ./configure, generated by GNU Autoconf 2.53, - with options \"\" - -Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001 -Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." -srcdir=. -INSTALL="/usr/bin/install -c" -# If no file are specified by the user, then we need to provide default -# value. By we need to know if files were specified by the user. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "x$1" : 'x\([^=]*\)='` - ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` - shift - set dummy "$ac_option" "$ac_optarg" ${1+"$@"} - shift - ;; - -*);; - *) # This is not an option, so the user has probably given explicit - # arguments. - ac_need_defaults=false;; - esac - - case $1 in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - echo "running /bin/sh ./configure " " --no-create --no-recursion" - exec /bin/sh ./configure --no-create --no-recursion ;; - --version | --vers* | -V ) - echo "$ac_cs_version"; exit 0 ;; - --he | --h) - # Conflict between --help and --header - { { echo "$as_me:$LINENO: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: ambiguous option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; };; - --help | --hel | -h ) - echo "$ac_cs_usage"; exit 0 ;; - --debug | --d* | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - shift - CONFIG_FILES="$CONFIG_FILES $1" - ac_need_defaults=false;; - --header | --heade | --head | --hea ) - shift - CONFIG_HEADERS="$CONFIG_HEADERS $1" - ac_need_defaults=false;; - - # This is an error. - -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&5 -echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2;} - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" ;; - - esac - shift -done - -for ac_config_target in $ac_config_targets -do - case "$ac_config_target" in - # Handling of arguments. - "sbin/rt-setup-database" ) CONFIG_FILES="$CONFIG_FILES sbin/rt-setup-database" ;; - "sbin/rt-test-dependencies" ) CONFIG_FILES="$CONFIG_FILES sbin/rt-test-dependencies" ;; - "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "etc/RT_Config.pm" ) CONFIG_FILES="$CONFIG_FILES etc/RT_Config.pm" ;; - "lib/RT.pm" ) CONFIG_FILES="$CONFIG_FILES lib/RT.pm" ;; - "lib/t/00smoke.t" ) CONFIG_FILES="$CONFIG_FILES lib/t/00smoke.t" ;; - "lib/t/01harness.t" ) CONFIG_FILES="$CONFIG_FILES lib/t/01harness.t" ;; - "lib/t/02regression.t" ) CONFIG_FILES="$CONFIG_FILES lib/t/02regression.t" ;; - "lib/t/03web.pl" ) CONFIG_FILES="$CONFIG_FILES lib/t/03web.pl" ;; - "lib/t/04_send_email.pl" ) CONFIG_FILES="$CONFIG_FILES lib/t/04_send_email.pl" ;; - "bin/mason_handler.fcgi" ) CONFIG_FILES="$CONFIG_FILES bin/mason_handler.fcgi" ;; - "bin/mason_handler.scgi" ) CONFIG_FILES="$CONFIG_FILES bin/mason_handler.scgi" ;; - "bin/mason_handler.svc" ) CONFIG_FILES="$CONFIG_FILES bin/mason_handler.svc" ;; - "bin/rt-commit-handler" ) CONFIG_FILES="$CONFIG_FILES bin/rt-commit-handler" ;; - "bin/rt-crontool" ) CONFIG_FILES="$CONFIG_FILES bin/rt-crontool" ;; - "bin/rt-mailgate" ) CONFIG_FILES="$CONFIG_FILES bin/rt-mailgate" ;; - "bin/rt" ) CONFIG_FILES="$CONFIG_FILES bin/rt" ;; - "bin/webmux.pl" ) CONFIG_FILES="$CONFIG_FILES bin/webmux.pl" ;; - *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files -fi - -# Create a temporary directory, and hook for its removal unless debugging. -$debug || -{ - trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} - -# Create a (secure) tmp directory for tmp files. -: ${TMPDIR=/tmp} -{ - tmp=`(umask 077 && mktemp -d -q "$TMPDIR/csXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=$TMPDIR/cs$$-$RANDOM - (umask 077 && mkdir $tmp) -} || -{ - echo "$me: cannot create a temporary directory in $TMPDIR" >&2 - { (exit 1); exit 1; } -} - - -# -# CONFIG_FILES section. -# - -# No need to generate the scripts if there are no CONFIG_FILES. -# This happens for instance when ./config.status config.h -if test -n "$CONFIG_FILES"; then - # Protect against being on the right side of a sed subst in config.status. - sed 's/,@/@@/; s/@,/@@/; s/,;t t$/@;t t/; /@;t t$/s/[\\&,]/\\&/g; - s/@@/,@/; s/@@/@,/; s/@;t t$/,;t t/' >$tmp/subs.sed <<\CEOF -s,@SHELL@,/bin/sh,;t t -s,@PATH_SEPARATOR@,:,;t t -s,@PACKAGE_NAME@,RT,;t t -s,@PACKAGE_TARNAME@,rt,;t t -s,@PACKAGE_VERSION@,3.0.9,;t t -s,@PACKAGE_STRING@,RT 3.0.9,;t t -s,@PACKAGE_BUGREPORT@,rt-3.0-bugs@fsck.com,;t t -s,@exec_prefix@,/opt/rt3,;t t -s,@prefix@,/opt/rt3,;t t -s,@program_transform_name@,s,x,x,,;t t -s,@bindir@,/opt/rt3/bin,;t t -s,@sbindir@,/opt/rt3/sbin,;t t -s,@libexecdir@,${exec_prefix}/libexec,;t t -s,@datadir@,/opt/rt3/share,;t t -s,@sysconfdir@,/opt/rt3/etc,;t t -s,@sharedstatedir@,${prefix}/com,;t t -s,@localstatedir@,/opt/rt3/var,;t t -s,@libdir@,/opt/rt3/lib,;t t -s,@includedir@,${prefix}/include,;t t -s,@oldincludedir@,/usr/include,;t t -s,@infodir@,${prefix}/info,;t t -s,@mandir@,/opt/rt3/man,;t t -s,@build_alias@,,;t t -s,@host_alias@,,;t t -s,@target_alias@,,;t t -s,@DEFS@,-DPACKAGE_NAME=\"RT\" -DPACKAGE_TARNAME=\"rt\" -DPACKAGE_VERSION=\"3.0.9\" -DPACKAGE_STRING=\"RT\ 3.0.9\" -DPACKAGE_BUGREPORT=\"rt-3.0-bugs@fsck.com\" ,;t t -s,@ECHO_C@,,;t t -s,@ECHO_N@,-n,;t t -s,@ECHO_T@,,;t t -s,@LIBS@,,;t t -s,@rt_version_major@,3,;t t -s,@rt_version_minor@,0,;t t -s,@rt_version_patch@,9,;t t -s,@INSTALL_PROGRAM@,${INSTALL},;t t -s,@INSTALL_SCRIPT@,${INSTALL},;t t -s,@INSTALL_DATA@,${INSTALL} -m 644,;t t -s,@PERL@,/usr/bin/perl,;t t -s,@SPEEDY_BIN@,/usr/local/bin/speedy,;t t -s,@exp_prefix@,/opt/rt3,;t t -s,@exp_exec_prefix@,/opt/rt3,;t t -s,@exp_bindir@,/opt/rt3/bin,;t t -s,@exp_sbindir@,/opt/rt3/sbin,;t t -s,@exp_sysconfdir@,/opt/rt3/etc,;t t -s,@exp_mandir@,/opt/rt3/man,;t t -s,@exp_libdir@,/opt/rt3/lib,;t t -s,@exp_datadir@,/opt/rt3/share,;t t -s,@htmldir@,/opt/rt3/share/html,;t t -s,@exp_htmldir@,/opt/rt3/share/html,;t t -s,@manualdir@,/opt/rt3/share/doc,;t t -s,@exp_manualdir@,/opt/rt3/share/doc,;t t -s,@exp_localstatedir@,/opt/rt3/var,;t t -s,@logfiledir@,/opt/rt3/var/log,;t t -s,@exp_logfiledir@,/opt/rt3/var/log,;t t -s,@masonstatedir@,/opt/rt3/var/mason_data,;t t -s,@exp_masonstatedir@,/opt/rt3/var/mason_data,;t t -s,@sessionstatedir@,/opt/rt3/var/session_data,;t t -s,@exp_sessionstatedir@,/opt/rt3/var/session_data,;t t -s,@customdir@,/opt/rt3/local,;t t -s,@exp_customdir@,/opt/rt3/local,;t t -s,@custometcdir@,/opt/rt3/local/etc,;t t -s,@exp_custometcdir@,/opt/rt3/local/etc,;t t -s,@customhtmldir@,/opt/rt3/local/html,;t t -s,@exp_customhtmldir@,/opt/rt3/local/html,;t t -s,@customlexdir@,/opt/rt3/local/po,;t t -s,@exp_customlexdir@,/opt/rt3/local/po,;t t -s,@customlibdir@,/opt/rt3/local/lib,;t t -s,@exp_customlibdir@,/opt/rt3/local/lib,;t t -s,@rt_layout_name@,RT3,;t t -s,@RTGROUP@,rt,;t t -s,@BIN_OWNER@,root,;t t -s,@LIBS_OWNER@,root,;t t -s,@LIBS_GROUP@,bin,;t t -s,@DB_TYPE@,mysql,;t t -s,@ORACLE_ENV_PREF@,,;t t -s,@DB_HOST@,localhost,;t t -s,@DB_PORT@,,;t t -s,@DB_RT_HOST@,localhost,;t t -s,@DB_DBA@,root,;t t -s,@DB_DATABASE@,rt3,;t t -s,@DB_RT_USER@,rt_user,;t t -s,@DB_RT_PASS@,rt_pass,;t t -s,@WEB_USER@,www,;t t -s,@WEB_GROUP@,www,;t t -s,@RT_VERSION_MAJOR@,3,;t t -s,@RT_VERSION_MINOR@,0,;t t -s,@RT_VERSION_PATCH@,9,;t t -s,@RT_PATH@,/opt/rt3,;t t -s,@RT_DOC_PATH@,/opt/rt3/share/doc,;t t -s,@RT_LOCAL_PATH@,/opt/rt3/local,;t t -s,@RT_LIB_PATH@,/opt/rt3/lib,;t t -s,@RT_ETC_PATH@,/opt/rt3/etc,;t t -s,@CONFIG_FILE_PATH@,/opt/rt3/etc,;t t -s,@RT_BIN_PATH@,/opt/rt3/bin,;t t -s,@RT_SBIN_PATH@,/opt/rt3/sbin,;t t -s,@RT_VAR_PATH@,/opt/rt3/var,;t t -s,@RT_MAN_PATH@,/opt/rt3/man,;t t -s,@MASON_DATA_PATH@,/opt/rt3/var/mason_data,;t t -s,@MASON_SESSION_PATH@,/opt/rt3/var/session_data,;t t -s,@MASON_HTML_PATH@,/opt/rt3/share/html,;t t -s,@LOCAL_ETC_PATH@,/opt/rt3/local/etc,;t t -s,@MASON_LOCAL_HTML_PATH@,/opt/rt3/local/html,;t t -s,@LOCAL_LEXICON_PATH@,/opt/rt3/local/po,;t t -s,@LOCAL_LIB_PATH@,/opt/rt3/local/lib,;t t -s,@DESTDIR@,/opt/rt3,;t t -s,@RT_LOG_PATH@,/opt/rt3/var/log,;t t -CEOF - - # Split the substitutions into bite-sized pieces for seds with - # small command number limits, like on Digital OSF/1 and HP-UX. - ac_max_sed_lines=48 - ac_sed_frag=1 # Number of current file. - ac_beg=1 # First line for current file. - ac_end=$ac_max_sed_lines # Line after last line for current file. - ac_more_lines=: - ac_sed_cmds= - while $ac_more_lines; do - if test $ac_beg -gt 1; then - sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - else - sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag - fi - if test ! -s $tmp/subs.frag; then - ac_more_lines=false - else - # The purpose of the label and of the branching condition is to - # speed up the sed processing (if there are no `@' at all, there - # is no need to browse any of the substitutions). - # These are the two extra sed commands mentioned above. - (echo ':t - /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed - if test -z "$ac_sed_cmds"; then - ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" - else - ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" - fi - ac_sed_frag=`expr $ac_sed_frag + 1` - ac_beg=$ac_end - ac_end=`expr $ac_end + $ac_max_sed_lines` - fi - done - if test -z "$ac_sed_cmds"; then - ac_sed_cmds=cat - fi -fi # test -n "$CONFIG_FILES" - -for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue - # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". - case $ac_file in - - | *:- | *:-:* ) # input from stdin - cat >$tmp/stdin - ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` - ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; - * ) ac_file_in=$ac_file.in ;; - esac - - # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. - ac_dir=`(dirname "$ac_file") 2>/dev/null || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| \ - . : '\(.\)' 2>/dev/null || -echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } - /^X\(\/\/\)$/{ s//\1/; q; } - /^X\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - { case "$ac_dir" in - [\\/]* | ?:[\\/]* ) as_incr_dir=;; - *) as_incr_dir=.;; -esac -as_dummy="$ac_dir" -for as_mkdir_dir in `IFS='/\\'; set X $as_dummy; shift; echo "$@"`; do - case $as_mkdir_dir in - # Skip DOS drivespec - ?:) as_incr_dir=$as_mkdir_dir ;; - *) - as_incr_dir=$as_incr_dir/$as_mkdir_dir - test -d "$as_incr_dir" || - mkdir "$as_incr_dir" || - { { echo "$as_me:$LINENO: error: cannot create \"$ac_dir\"" >&5 -echo "$as_me: error: cannot create \"$ac_dir\"" >&2;} - { (exit 1); exit 1; }; } - ;; - esac -done; } - - ac_builddir=. - -if test "$ac_dir" != .; then - ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` - # A "../" for each directory in $ac_dir_suffix. - ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` -else - ac_dir_suffix= ac_top_builddir= -fi - -case $srcdir in - .) # No --srcdir option. We are building in place. - ac_srcdir=. - if test -z "$ac_top_builddir"; then - ac_top_srcdir=. - else - ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` - fi ;; - [\\/]* | ?:[\\/]* ) # Absolute path. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir ;; - *) # Relative path. - ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_builddir$srcdir ;; -esac -# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -# absolute. -ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` -ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_builddir$INSTALL ;; - esac - - if test x"$ac_file" != x-; then - { echo "$as_me:$LINENO: creating $ac_file" >&5 -echo "$as_me: creating $ac_file" >&6;} - rm -f "$ac_file" - fi - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - if test x"$ac_file" = x-; then - configure_input= - else - configure_input="$ac_file. " - fi - configure_input=$configure_input"Generated from `echo $ac_file_in | - sed 's,.*/,,'` by configure." - - # First look for the input files in the build tree, otherwise in the - # src tree. - ac_file_inputs=`IFS=: - for f in $ac_file_in; do - case $f in - -) echo $tmp/stdin ;; - [\\/$]*) - # Absolute (can't be DOS-style, as IFS=:) - test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - echo $f;; - *) # Relative - if test -f "$f"; then - # Build tree - echo $f - elif test -f "$srcdir/$f"; then - # Source tree - echo $srcdir/$f - else - # /dev/null tree - { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 -echo "$as_me: error: cannot find input file: $f" >&2;} - { (exit 1); exit 1; }; } - fi;; - esac - done` || { (exit 1); exit 1; } - sed "/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/; -s/:*\${srcdir}:*/:/; -s/:*@srcdir@:*/:/; -s/^\([^=]*=[ ]*\):*/\1/; -s/:*$//; -s/^[^=]*=[ ]*$//; -} - -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s,@configure_input@,$configure_input,;t t -s,@srcdir@,$ac_srcdir,;t t -s,@abs_srcdir@,$ac_abs_srcdir,;t t -s,@top_srcdir@,$ac_top_srcdir,;t t -s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t -s,@builddir@,$ac_builddir,;t t -s,@abs_builddir@,$ac_abs_builddir,;t t -s,@top_builddir@,$ac_top_builddir,;t t -s,@abs_top_builddir@,$ac_abs_top_builddir,;t t -s,@INSTALL@,$ac_INSTALL,;t t -" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out - rm -f $tmp/stdin - if test x"$ac_file" != x-; then - mv $tmp/out $ac_file - else - cat $tmp/out - rm -f $tmp/out - fi - -done - -{ (exit 0); exit 0; } diff --git a/rt/docs/design_docs/ruleset-workflow.txt b/rt/docs/design_docs/ruleset-workflow.txt deleted file mode 100644 index f19dbd765..000000000 --- a/rt/docs/design_docs/ruleset-workflow.txt +++ /dev/null @@ -1,158 +0,0 @@ -# For an online version, see http://wiki.bestpractical.com/?RulesetWorkflow - -_*This is a design document for a work in progress. -It describes features that do not exist today and may never exist*_ - -== Text Description - -* The user of PurchaseOrder queue fill in a numeric "CF", called "Price". -* On creation, it needs to create following approvals: -** "ManagerApproval" if CF.Price is > 1000 -** "PresidentApproval" if CF.Price is > 2000 -* When all of "M", "P" are resolved (or if there were none to begin with), Create "FinanceApproval". -* If any approvals above is rejected, reject the original ticket. -* If "FinanceApproval" is resolved, resolve original ticket. -* If "FinanceApproval" is rejected, create an approval for "CEOApproval". -* If "CEOApproval" is resolved, resolve the original ticket. -* If "CEOApproval" is rejected, reject the original ticket. - -== ASCII Diagram - - ,----------. ,---------------------->[DONE] - | \ / ^ - [TOP]-+-?---->[M]---->[F] | - | | / \ | - `-?->[P]-+-' `-(!)->[C]-----------------' - | | | - | | `-(!)---------->[FAIL] - | | ^ - `-(!)----------------------------------' - -== Objects - -Note that "Scrips" are now called "Rules". - -=== RuleAction "AquireMyLocks" - - FOREACH $Scrip IN $TicketObj->Scrips - WHERE $Scrip.Action.Type == "TryCreateTicketWithRuleset" - DO LockRuleset $Scrip.Action.Argument - -=== RuleAction "TryCreateTicketWithRuleset" - - DO ReleaseMyLockOnRuleset $Argument - UNLESS RulesetLocked $Argument - DO CreateTicketWithRuleset $Argument - -=== RuleAction "CreateTicketWithRuleset" - - GIVEN $Ticket AS CreateTicket(@OtherArguments) - DO SetTicketRuleSet $Argument - DO RunTicketRuleSet $Argument - -=== GlobalRule "AquireLocks" - -* AppliesTo: All Objects -* Condition: OnCreate -* Action: AquireMyLocks - -=== Queue "PurchaseOrder" - -* Rule: -** Condition: OnCreate -** Action: SetTicketRuleSet "PurchaseFlow" -** Action: RunTicketRuleSet "PurchaseFlow" - -=== RuleSet "PurchaseFlow" - -* Rule (implicitly run by AcquireMyLocks): -** Condition: OnCreate -** Action: LockRuleSet "ManagerApproval" -** Action: LockRuleSet "PresidentApproval" -** Action: LockRuleSet "FinanceApproval" - -* Rule: -** Condition: OnCreate -** Condition: CF.Price > 1000 -** Action: TryCreateTicketWithRuleset "ManagerApproval" - -* Rule: -** Condition: OnCreate -** Condition: CF.Price > 2000 -** Action: TryCreateTicketWithRuleset "PresidentApproval" - -* Rule: -** Condition: OnCreate -** Condition: "Finance" is not blocked -** Action: TryCreateTicketWithRuleset "FinanceApproval" - -* Rule: -** Condition: OnReject -** Action: DeleteTree - -=== RuleSet: "ManagerApproval" - -* Rule (implicitly run by AcquireMyLocks): -** Condition: OnCreate -** Action: LockRuleSet "FinanceApproval" - -* Rule: -** Condition: OnResolve -** Action: TryCreateTicketWithRuleset "FinanceApproval" - -* Rule: -** Condition: OnReject -** Action: RejectTicket "PurchaseFlow" - -=== RuleSet: "PresidentApproval" - -* Rule (implicitly run by AcquireMyLocks): -** Condition: OnCreate -** Action: LockRuleSet "FinanceApproval" - -* Rule: -** Condition: OnResolve -** Action: TryCreateTicketWithRuleset "FinanceApproval" - -* Rule: -** Condition: OnReject -** Action: RejectTicket "PurchaseFlow" - -=== RuleSet: "FinanceApproval" - -* Rule: -** Condition: OnResolve -** Action: ResolveTicket "PurchaseFlow" - -* Rule: -** Condition: OnReject -** Action: ForceCreateTicketWithRuleset "CEOApproval" - -=== RuleSet: "CEOApproval" - -* Rule: -** Condition: OnResolve -** Action: ResolveTicket "PurchaseFlow" - -* Rule: -** Condition: OnReject -** Action: RejectTicket "PurchaseFlow" - -### FNORD FNORD FNORD FNORD FNORD FNORD FNORD FNORD FNORD ### - -== Another Text Description - -* I have a MonitoredQueue that sets tickets to "Monitored" if its subject matches /monitored/. -* I want to have a kind of Ticket that are 'Monitored'. -* I want all monitored tickets, when they are overdue for 14 days, to: -** Send notification to manager -** Mark as stalled -* I want all monitored tickets, when they are overdue for 28 days, to: -** Mark as rejected -* I want to query all tickets that are monitored as such -* I want to modify 14 => 15 and have it affect all existing tickets that are monitored -* I want to add a new "overdue for 27 days, add a 'ultimatum' correspondence to it" rule -** For all monitored tickets. -* I want to add a new "overdue for 27 days, add a 'ultimatum' correspondence to it" rule -** For all _new_ monitored tickets. -** Without affecting existing ones. diff --git a/rt/etc/RT_Config.pm b/rt/etc/RT_Config.pm deleted file mode 100644 index 5386a8e05..000000000 --- a/rt/etc/RT_Config.pm +++ /dev/null @@ -1,374 +0,0 @@ -# -# WARNING: NEVER EDIT RT_Config.pm. Instead, copy any sections you want to change to RT_SiteConfig.pm -# and edit them there. -# - -package RT; - -=head1 NAME - -RT::Config - -=for testing - -use RT::Config; - -=cut - -# {{{ Base Configuration - -# $rtname 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 - -Set($rtname , "example.com"); - -# You should set this to your organization's DNS domain. For example, -# fsck.com or asylum.arkham.ma.us. It's used by the linking interface to -# guarantee that ticket URIs are unique and easy to construct. - -Set($Organization , "example.com"); - -# $user_passwd_min defines the minimum length for user passwords. Setting -# it to 0 disables this check -Set($MinimumPasswordLength , "5"); - -# $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. -Set($Timezone , 'US/Eastern'); - -# }}} - -# }}} - -# {{{ Database Configuration - -# Database driver beeing used. Case matters -# Valid types are "mysql", "Oracle" and "Pg" - -Set($DatabaseType , 'mysql'); - -# The domain name of your database server -# If you're running mysql and it's on localhost, -# leave it blank for enhanced performance -Set($DatabaseHost , 'localhost'); -Set($DatabaseRTHost , 'localhost'); - -# The port that your database server is running on. Ignored unless it's -# a positive integer. It's usually safe to leave this blank -Set($DatabasePort , ''); - -#The name of the database user (inside the database) -Set($DatabaseUser , 'rt_user'); - -# Password the DatabaseUser should use to access the database -Set($DatabasePassword , 'rt_pass'); - -# The name of the RT's database on your database server -Set($DatabaseName , 'rt3'); - -# If you're using Postgres and have compiled in SSL support, -# set DatabaseRequireSSL to 1 to turn on SSL communication -Set($DatabaseRequireSSL , undef); - -# }}} - -# {{{ Incoming mail gateway configuration - -# 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. - -Set($OwnerEmail , 'root'); - -# If $LoopsToRTOwner is defined, RT will send mail that it believes -# might be a loop to $RT::OwnerEmail - -Set($LoopsToRTOwner , 1); - -# If $StoreLoopss 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 - -Set($StoreLoops , undef); - -# $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) - -Set($MaxAttachmentSize , 10000000); - -# $TruncateLongAttachments: if this is set to a non-undef value, -# RT will truncate attachments longer than MaxAttachmentLength. - -Set($TruncateLongAttachments , undef); - -# $DropLongAttachments: if this is set to a non-undef value, -# RT will silently drop attachments longer than MaxAttachmentLength. - -Set($DropLongAttachments , undef); - -# If $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 -# "RTAddressRegexp" below, you will get yourself into a heap of trouble. - -Set($ParseNewMessageForTicketCcs , undef); - -# RTAddressRegexp is used to make sure RT doesn't add itself as a ticket CC if -# the setting above is enabled. - -Set($RTAddressRegexp , '^rt\@example.com$'); - -# 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 RT/User.pm) -# By default, that routine performs a s/$Match/$Replace/gi on any address passed to it - -Set($CanonicalizeEmailAddressMatch , 'subdomain.example.com$'); -Set($CanonicalizeEmailAddressReplace , 'example.com'); - -# If $SenderMustExistInExternalDatabase is true, RT will refuse to -# create non-privileged accounts for unknown users if you are using -# the "LookupSenderInExternalDatabase" option. -# Instead, an error message will be mailed and RT will forward the -# message to $RTOwner. -# -# If you are not using $LookupSenderInExternalDatabase, this option -# has no effect. -# -# If you define an AutoRejectRequest template, RT will use this -# template for the rejection message. - -Set($SenderMustExistInExternalDatabase , undef); - -# }}} - -# {{{ Outgoing mail configuration - -# RT is designed such that any mail which already has a ticket-id associated -# with it will get to the right place automatically. - -# $CorrespondAddress and $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. - -Set($CorrespondAddress , 'RT_CorrespondAddressNotSet'); - -Set($CommentAddress , 'RT_CommentAddressNotSet'); - -#Sendmail Configuration - -# $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' -# -# Note that you should remove the '-t' from $SendmailArguments -# if you use 'sendmail rather than 'sendmailpipe' - -Set($MailCommand , 'sendmailpipe'); - -# $SendmailArguments defines what flags to pass to $Sendmail -# assuming you picked 'sendmail' or 'sendmailpipe' as the $MailCommand above. -# If you picked 'sendmailpipe', you MUST add a -t flag to $SendmailArguments - -# These options are good for most sendmail wrappers and workalikes -Set($SendmailArguments , "-oi -t"); - -# These arguments are good for sendmail brand sendmail 8 and newer -#Set($SendmailArguments,"-oi -t -ODeliveryMode=b -OErrorMode=m"); - -# If you selected 'sendmailpipe' above, you MUST specify the path -# to your sendmail binary in $SendmailPath. -# !! If you did not # select 'sendmailpipe' above, this has no effect!! -Set($SendmailPath , "/usr/sbin/sendmail"); - -# By default, RT sets the outgoing mail's "From:" header to -# "SenderName via RT". Setting this option to 0 disables it. - -Set($UseFriendlyFromLine , 1); - -# sprintf() format of the friendly 'From:' header; its arguments -# are SenderName and SenderEmailAddress. -Set($FriendlyFromLineFormat , "\"%s via RT\" <%s>"); - -# 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. - -Set($UseFriendlyToLine , 0); - -# sprintf() format of the friendly 'From:' header; its arguments -# are WatcherType and TicketId. -Set($FriendlyToLineFormat, "\"%s of $RT::rtname Ticket #%s\":;"); - -# 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 $NotifyActor to 1 - -Set($NotifyActor, 0); - - -# }}} - -# {{{ Logging - -# Logging. The default is to log anything except debugging -# information to syslog. Check the 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. - -# the minimum level error that will be logged to the specific device. -# levels from lowest to highest: -# debug info notice warning error critical alert emergency - -# Mail loops will generate a critical log message. -Set($LogToSyslog , 'debug'); -Set($LogToScreen , 'error'); -Set($LogToFile , undef); -Set($LogDir, '/opt/rt3/var/log'); -Set($LogToFileNamed , "rt.log"); #log to rt.log - -# }}} - -# {{{ Web interface configuration - -# Define the directory name to be used for images in rt web -# documents. - -# If you're putting the web ui somewhere other than at the root of -# your server -# $WebPath requires a leading / but no trailing / - -Set($WebPath , ""); - -# This is the Scheme, server and port for constructing urls to webrt -# $WebBaseURL doesn't need a trailing / - -Set($WebBaseURL , "http://RT::WebBaseURL.not.configured:80"); - -Set($WebURL , $WebBaseURL . $WebPath . "/"); - -# $WebImagesURL points to the base URL where RT can find its images. - -Set($WebImagesURL , $WebURL . "NoAuth/images/"); - -# $RTLogoURL points to the URL of the RT logo displayed in the web UI - -Set($LogoURL , $WebImagesURL . "rt.jpg"); - -# For message boxes, set the entry box width and what type of wrapping -# to use. -# -# Default width: 72 -Set($MessageBoxWidth , 72); - -# Default wrapping: "HARD" (choices "SOFT", "HARD") -Set($MessageBoxWrap, "HARD"); - -# if 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) -Set($TrustHTMLAttachments , undef); - -# If $WebExternalAuth is defined, RT will defer to the environment's -# REMOTE_USER variable. - -Set($WebExternalAuth , undef); - -# If $WebFallbackToInternalAuth is undefined, the user is allowed a chance -# of fallback to the login screen, even if REMOTE_USER failed. - -Set($WebFallbackToInternalAuth , undef); - -# $WebExternalGecos means to match 'gecos' field as the user identity); -# useful with mod_auth_pwcheck and IIS Integrated Windows logon. - -Set($WebExternalGecos , undef); - -# $WebExternalAuto will create users under the same name as REMOTE_USER -# upon login, if it's missing in the Users table. - -Set($WebExternalAuto , undef); - -# $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 -# RT_SiteConfig.pm will prevent session corruption. - -# Set($WebSessionClass , 'Apache::Session::File'); - -# $MaxInlineBody is the maximum attachment size that we want to see -# inline when viewing a transaction. 13456 is a random sane-sounding -# default. - -Set($MaxInlineBody, 13456); - -# $MyTicketsLength is the length of the table on the front page. -# For some people, the default of 10 isn't big enough to get a feel for -# how much work needs to be done before you get some time off. - -Set($MyTicketsLength, 10); - -# @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 -# (preamble => 'my $p = MasonX::Profiler->new($m, $r);'); - -@MasonParameters = () unless (@MasonParameters); - -# }}} - -# {{{ RT UTF-8 Settings - -# An array that contains languages supported by RT's internationalization -# interface. Defaults to all *.po lexicons; set it to qw(en ja) will make -# RT bilingual instead of multilingual, but will save same memory. - -@LexiconLanguages = qw(*) unless (@LexiconLanguages); - -# An array that contains default encodings used to guess which charset -# an attachment uses if not specified. Must be recognized by -# Encode::Guess. - -@EmailInputEncodings = qw(utf-8 iso-8859-1 us-ascii) unless (@EmailInputEncodings); - -# The charset for localized email. Must be recognized by Encode. - -Set($EmailOutputEncoding , 'utf-8'); - -# }}} - -# {{{ RT Date Handling Options (for Time::ParseDate) - -# Set this to 1 if your local date convention looks like "dd/mm/yy" -# instead of "mm/dd/yy". - -Set($DateDayBeforeMonth , 1); - -# Should "Tuesday" default to meaning "Next Tuesday" or "Last Tuesday"? -# Set to 0 for "Next" or 1 for "Last". - -Set($AmbiguousDayInPast , 1); - -# }}} - -1; diff --git a/rt/etc/upgrade/2.1.71 b/rt/etc/upgrade/2.1.71 deleted file mode 100644 index cb89a3ac3..000000000 --- a/rt/etc/upgrade/2.1.71 +++ /dev/null @@ -1,211 +0,0 @@ -@Queues = ( { - Name => '___Approvals', - Description => 'A system-internal queue for the approvals system', - Disabled => 2, - } -); - - - - - -# {{{ Templates -@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::WebURL}Approvals/Display.html?id={$Ticket->id} -to approve or reject this ticket, or {$RT::WebURL}Approvals/ to -batch-process all your pending approvals. - -------------------------------------------------------------------------- -{$Transaction->Content()} -' - }, -); - -# }}} - -1; - -@ScripActions = ( - { Name => 'Open Tickets', - Description => 'Open tickets on correspondence', - ExecModule => 'AutoOpen' }, - -); - - @Scrips = ( - { ScripCondition => 'On Correspond', - ScripAction => 'Open Tickets', - Template => 'Blank', - Queue => '0' - }, - { ScripCondition => 'On Create', - ScripAction => 'AutoReply To Requestors', - Template => 'AutoReply' }, - { ScripCondition => 'On Create', - ScripAction => 'Notify AdminCcs', - Template => 'Transaction' }, - { ScripCondition => 'On Correspond', - ScripAction => 'Notify AdminCcs', - Template => 'Admin Correspondence' }, - { ScripCondition => 'On Correspond', - ScripAction => 'Notify Requestors And Ccs', - Template => 'Correspondence' }, - { ScripCondition => 'On Correspond', - ScripAction => 'Notify Other Recipients', - Template => 'Correspondence' }, - { ScripCondition => 'On Comment', - ScripAction => 'Notify AdminCcs As Comment', - Template => 'Admin Comment' }, - { ScripCondition => 'On Comment', - ScripAction => 'Notify Other Recipients As Comment', - Template => 'Correspondence' }, - { ScripCondition => 'On Resolve', - ScripAction => 'Notify Requestors', - Template => 'Resolved' }, - - - { - Description => "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval", # loc - Queue => '___Approvals', - ScripCondition => 'On Create', - ScripAction => 'Notify AdminCcs', - Template => 'New Pending Approval' - }, - { - Description => "If an approval is rejected, reject the original and delete pending approvals", # loc - Queue => '___Approvals', - ScripCondition => 'On Status Change', - ScripAction => 'User Defined', - CustomCommitCode => q[ -# ------------------------------------------------------------------- # -return(1) unless ( lc($self->TransactionObj->NewValue) eq "rejected" or - lc($self->TransactionObj->NewValue) eq "deleted" ); - -my $links = $self->TicketObj->DependedOnBy; -foreach my $link (@{ $links->ItemsArrayRef }) { - my $obj = $link->BaseObj; - if ($obj->QueueObj->IsActiveStatus($obj->Status)) { - if ($obj->Type eq 'ticket') { - $obj->Correspond( - Content => $self->loc("Your request was rejected."), - ); - $obj->SetStatus( - Status => 'rejected', - Force => 1, - ); - } - else { - $obj->SetStatus( - Status => 'deleted', - Force => 1, - ); - } - } -} - -$links = $self->TicketObj->DependsOn; -foreach my $link (@{ $links->ItemsArrayRef }) { - my $obj = $link->TargetObj; - if ($obj->QueueObj->IsActiveStatus($obj->Status)) { - $obj->SetStatus( - Status => 'deleted', - Force => 1, - ); - } -} - -return 1; -# ------------------------------------------------------------------- # - ], - CustomPrepareCode => '1', - Template => 'Admin Comment', - }, - { - Description => "When a ticket has been approved by any approver, add correspondence to the original ticket", # loc - Queue => '___Approvals', - ScripCondition => 'On Resolve', - ScripAction => 'User Defined', - CustomPrepareCode => 'return(1);', - CustomCommitCode => q[ -# ------------------------------------------------------------------- # -return(1) unless ($self->TicketObj->Type eq 'approval'); - -foreach my $obj ($self->TicketObj->AllDependedOnBy( Type => 'ticket' )) { - $obj->Correspond( - Content => $self->loc( "Your request has been approved by [_1]. Other approvals may still be pending.", # loc - $self->TransactionObj->CreatorObj->Name, - ) . "\n" . $self->loc( "Approver's notes: [_1]", # loc - $self->TicketObj->Transactions->Last->Content, - ), - _reopen => 0, - ); -} - -return 1; -# ------------------------------------------------------------------- # - ], - Template => 'Admin Comment' - }, - { - Description => "When a ticket has been approved by all approvers, add correspondence to the original ticket", # loc - Queue => '___Approvals', - ScripCondition => 'On Resolve', - ScripAction => 'User Defined', - CustomPrepareCode => 'return(1);', - CustomCommitCode => q[ -# ------------------------------------------------------------------- # -# Find all the tickets that depend on this (that this is approving) - -my $Ticket = $self->TicketObj; -my @TOP = $Ticket->AllDependedOnBy( Type => 'ticket' ); -my $links = $Ticket->DependedOnBy; - -while (my $link = $links->Next) { - my $obj = $link->BaseObj; - next if ($obj->HasUnresolvedDependencies( Type => 'approval' )); - - if ($obj->Type eq 'ticket') { - $obj->Correspond( - Content => $self->loc("Your request has been approved."), - _reopen => 0, - ); - } - elsif ($obj->Type eq 'code') { - my $code = $obj->Transactions->First->Content; - my $rv; - - foreach my $TOP (@TOP) { - local $@; - $rv++ if eval $code; - $RT::Logger->error("Cannot eval code: $@") if $@; - } - - if ($rv or !@TOP) { - $obj->SetStatus( Status => 'resolved', Force => 1,); - } - else { - $obj->SetStatus( Status => 'rejected', Force => 1,); - } - } -} - -return 1; -# ------------------------------------------------------------------- # - ], - Template => 'Admin Comment', - }, -); - -# }}} - diff --git a/rt/etc/upgrade/3.5.1/content b/rt/etc/upgrade/3.5.1/content deleted file mode 100644 index e3898a7cc..000000000 --- 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 => "'<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: ' ", - 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/html/Admin/Elements/ConfigureMyRT b/rt/html/Admin/Elements/ConfigureMyRT deleted file mode 100644 index 363a3b6db..000000000 --- a/rt/html/Admin/Elements/ConfigureMyRT +++ /dev/null @@ -1,80 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%args> -$Action -$OnSave -$items -$panes -$current_portlets -</%args> -<%init> -my $portlets = $current_portlets; -my @panes; -for my $pane (@$panes) { - push @panes, $m->comp( - '/Widgets/SelectionBox:new', - Action => $Action, - Name => $pane, - Available => $items, - AutoSave => 1, - OnSubmit => sub { - my $sel = shift; - $portlets->{$pane} = [ - map { m/(\w+)-(.*)$}/; - { type => $1, - name => $2 } } @{ $sel->{Current} } - ]; - $OnSave->( $portlets, $pane ); - }, - Selected => [ map { join( '-', @{$_}{qw/type name/} ) } - @{ $portlets->{$pane} } ] - ); -} - -return @panes; -</%init> diff --git a/rt/html/Admin/Elements/ModifyQueue b/rt/html/Admin/Elements/ModifyQueue deleted file mode 100644 index 36f9ce17f..000000000 --- a/rt/html/Admin/Elements/ModifyQueue +++ /dev/null @@ -1,78 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<& /Elements/TitleBoxStart, title => loc('Editing Configuration for queue [_1]', $QueueObj->Id) &> - -<FORM ACTION="<%$RT::WebPath%>/Admin/Queues/Modify.html" METHOD=POST> -<INPUT TYPE=HIDDEN NAME=id VALUE="<%$QueueObj->Id%>"> -<TABLE> -<TR><TD ALIGN=RIGHT> -<&|/l&>Queue Name</&>: -</TD> -<TD><INPUT name="Name" value="<%$QueueObj->Name%>"></TD> -</TR><TR> -<TD ALIGN=RIGHT> -<&|/l&>Description</&>:</TD><TD COLSPAN=3><INPUT name="Description" value="<%$QueueObj->Description%>" size=60></TD></TR> -<TR> -<TD ALIGN=RIGHT> -<&|/l&>Correspondence Address</&>: -</TD><TD> -<INPUT name="CorrespondAddress" value="<%$QueueObj->CorrespondAddress%>"> -</TD> -<TD ALIGN=RIGHT> - -<&|/l&>Comment Address</&>: </TD><TD> -<INPUT NAME="CommentAddress" value="<%$QueueObj->CommentAddress%>"> -</TD> -</TR><TR> - -<TD ALIGN=RIGHT> -<&|/l&>Priority starts at</&>: -</TD><TD><INPUT NAME="InitialPriority" value="<%$QueueObj->InitialPriority %>"> -</TD> -<TD ALIGN=RIGHT> -<&|/l&>Over time, priority moves toward</&>: -</TD><TD><INPUT NAME="FinalPriority" value="<%$QueueObj->FinalPriority %>"> -</TD> -</TR> -<TR> -<TD ALIGN=RIGHT> -<&|/l&>Requests should be due in</&>: -</TD><TD> -<INPUT NAME="DefaultDueIn" VALUE="<%$QueueObj->DefaultDueIn%>"> <&|/l&>days</&>. -</TD> -</TR> -</TABLE> -<& /Elements/Submit, Label => loc('Save Changes') &> -</form> -<& /Elements/TitleBoxEnd &> - -<%INIT> - -</%INIT> - -<%ARGS> - - -$QueueObj => undef -</%ARGS> diff --git a/rt/html/Admin/Elements/ModifyUser b/rt/html/Admin/Elements/ModifyUser deleted file mode 100644 index 2faefefaa..000000000 --- a/rt/html/Admin/Elements/ModifyUser +++ /dev/null @@ -1,99 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<& /Elements/TitleBoxStart, title => loc('Editing Configuration for user [_1]', $UserObj->Name) &> - -<FORM ACTION="<%$RT::WebPath%>/Admin/Users/Modify.html" METHOD=POST> -<INPUT TYPE=HIDDEN NAME=id VALUE="<%$UserObj->Id%>"> - -<&|/l&>Name</&>: <input name="Name" value="<%$UserObj->Name%>"> -<BR> -<&|/l&>New Password</&>: <input type=password name="Pass1"><BR> -<&|/l&>Retype Password</&>: <input type=password name="Pass2"><BR> - -<&|/l&>Comments</&>: <TEXTAREA name="Comments" COLS=80 ROWS=5 WRAP=VIRTUAL> -<%$UserObj->Comments%></TEXTAREA> - -<BR> -<&|/l&>Signature</&>: <TEXTAREA COLS=80 ROWS=5 name="Signature" WRAP=HARD> -<%$UserObj->Signature%></TEXTAREA> -<BR> -<&|/l&>EmailAddress</&>: <input name="EmailAddress" value="<%$UserObj->EmailAddress%>"> -<BR> -<&|/l&>FreeformContactInfo</&>: <input name="FreeformContactInfo" value="<%$UserObj->FreeformContactInfo%>"> -<BR> -<&|/l&>Organization</&>: <input name="Organization" value="<%$UserObj->Organization%>"> -<BR> -<&|/l&>RealName</&>: <input name="RealName" value="<%$UserObj->RealName%>"> -<BR> -<&|/l&>NickName</&>: <input name="NickName" value="<%$UserObj->NickName%>"> -<BR> -<&|/l&>Lang</&>: <input name="Lang" value="<%$UserObj->Lang%>"> -<BR> -<&|/l&>EmailEncoding</&>: <input name="EmailEncoding" value="<%$UserObj->EmailEncoding%>"> -<BR> -<&|/l&>WebEncoding</&>: <input name="WebEncoding" value="<%$UserObj->WebEncoding%>"> -<BR> -<&|/l&>ExternalContactInfoId</&>: <input name="ExternalContactInfoId" value="<%$UserObj->ExternalContactInfoId%>"> -<BR> -<&|/l&>ContactInfoSystem</&>: <input name="ContactInfoSystem" value="<%$UserObj->ContactInfoSystem%>"> -<BR> -<&|/l&>UnixUsername</&>: <input name="Gecos" value="<%$UserObj->Gecos%>"> -<BR> -<&|/l&>ExternalAuthId</&>: <input name="ExternalAuthId" value="<%$UserObj->ExternalAuthId%>"> -<BR> -<&|/l&>AuthSystem</&>: <input name="AuthSystem" value="<%$UserObj->AuthSystem%>"> -<BR> -<&|/l&>HomePhone</&>: <input name="HomePhone" value="<%$UserObj->HomePhone%>"> -<BR> -<&|/l&>WorkPhone</&>: <input name="WorkPhone" value="<%$UserObj->WorkPhone%>"> -<BR> -<&|/l&>MobilePhone</&>: <input name="MobilePhone" value="<%$UserObj->MobilePhone%>"> -<BR> -<&|/l&>PagerPhone</&>: <input name="PagerPhone" value="<%$UserObj->PagerPhone%>"> -<BR> -<&|/l&>Address1</&>: <input name="Address1" value="<%$UserObj->Address1%>"> -<BR> -<&|/l&>Address2</&>: <input name="Address2" value="<%$UserObj->Address2%>"> -<BR> -<&|/l&>City</&>: <input name="City" value="<%$UserObj->City%>"> -<BR> -<&|/l&>State</&>: <input name="State" value="<%$UserObj->State%>"> -<BR> -<&|/l&>Zip</&>: <input name="Zip" value="<%$UserObj->Zip%>"> -<BR> -<&|/l&>Country</&>: <input name="Country" value="<%$UserObj->Country%>"> -<BR> -<& /Elements/Submit, Label => loc('Save Changes') &> -</form> -<& /Elements/TitleBoxEnd &> - -<%INIT> - -</%INIT> - -<%ARGS> - - -$UserObj => undef -</%ARGS> diff --git a/rt/html/Admin/Global/CustomField.html b/rt/html/Admin/Global/CustomField.html deleted file mode 100644 index 3871d8998..000000000 --- a/rt/html/Admin/Global/CustomField.html +++ /dev/null @@ -1,86 +0,0 @@ -%# {{{ BEGIN BPS TAGGED BLOCK -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2004 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., 675 Mass Ave, Cambridge, MA 02139, USA. -%# -%# -%# 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 -<& /Admin/Elements/Header, Title => $title &> -<& /Admin/Elements/SystemTabs, - current_tab => 'Admin/Global/CustomFields.html', - current_subtab => $current_subtab, - subtabs => $subtabs, - Title => $title &> - -<& /Admin/Elements/EditCustomField, title => $title, %ARGS &> - -<%INIT> -my ($title, $current_subtab); - -my $subtabs = { - A => { title => loc('Select custom field'), - path => "Admin/Global/CustomFields.html" - }, - B => { title => loc('New custom field'), - path => "Admin/Global/CustomField.html?create=1&Queue=0", - separator => 1, - } - }; -if ( $ARGS{'create'} ) { - $current_subtab = "Admin/Global/CustomField.html?create=1&Queue=0"; - $title = loc('Create a CustomField which applies to all queues'); -} -else { - $current_subtab = - "Admin/Global/CustomField.html?CustomField=" . $CustomField . "&Queue=0"; - $title = loc('Modify a CustomField which applies to all queues'); - $subtabs->{"C"} = { - title => loc( 'Custom Field #[_1]', $CustomField ), - path => "Admin/Global/CustomField.html?CustomField=" . $CustomField . "&Queue=0" - }; -} -</%INIT> -<%ARGS> -$CustomField => undef -</%ARGS> -<%ATTR> -AutoFlush => 0 -</%ATTR> diff --git a/rt/html/Admin/Global/CustomFields.html b/rt/html/Admin/Global/CustomFields.html deleted file mode 100644 index 593040218..000000000 --- a/rt/html/Admin/Global/CustomFields.html +++ /dev/null @@ -1,69 +0,0 @@ -%# {{{ BEGIN BPS TAGGED BLOCK -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2004 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., 675 Mass Ave, Cambridge, MA 02139, USA. -%# -%# -%# 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 -<& /Admin/Elements/Header, Title => $title &> -<& /Admin/Elements/SystemTabs, - current_tab => 'Admin/Global/CustomFields.html', - current_subtab => 'Admin/Global/CustomFields.html', - subtabs => $subtabs, - Title => $title &> - -<& /Admin/Elements/EditCustomFields, title => $title, %ARGS &> - -<%INIT> -my $subtabs = { - A => { title => loc('Select custom field'), - path => "Admin/Global/CustomFields.html" - }, - B => { title => loc('New custom field'), - path => "Admin/Global/CustomField.html?create=1&Queue=0", - separator => 1, - } - }; -my $title = loc("Modify Custom Fields which apply to all queues"); -</%INIT> -<%ARGS> -$id => undef -</%ARGS> diff --git a/rt/html/Admin/Global/MyRT.html b/rt/html/Admin/Global/MyRT.html deleted file mode 100644 index 8bbcb5d34..000000000 --- a/rt/html/Admin/Global/MyRT.html +++ /dev/null @@ -1,104 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<& /Admin/Elements/Header, Title => loc("RT at a glance") &> -<& /Admin/Elements/SystemTabs, - current_tab => 'Admin/Global/MyRT.html', - Title => loc("RT at a glance"), -&> - -<& /Widgets/SelectionBox:header, nojs => 1 &> - -<& /Elements/ListActions, actions => \@actions &> -<br /> -% for my $pane (@panes) { -<&|/Widgets/TitleBox, title => loc('RT at a glance').': '.loc($pane->{Name}), bodyclass => "" &> -<& /Widgets/SelectionBox:show, self => $pane, nojs => 1 &></&> -<br /> -% } -<%init> -my @actions; - -my @items = map { [ "component-$_", $_ ] } sort @{$RT::HomepageComponents}; -my $sys = RT::System->new( $session{'CurrentUser'} ); -# XXX: put this in savedsearches_to_portlet_items -for ( $m->comp( "/Search/Elements/SearchesForObject", - Object => $sys )) { - my ( $desc, $search ) = @$_; - my $SearchType = $search->Content->{'SearchType'} || 'Ticket'; - if ( $SearchType eq 'Ticket' ) { - push @items, [ "system-$desc", $desc ]; - } else { - my $oid = ref($sys) . '-' . $sys->Id . '-SavedSearch-' . $search->Id; - my $type = - ( $SearchType eq 'Ticket' ) - ? 'Saved Search' : $SearchType; # loc - push @items, [ "saved-$oid", loc($type) . ": $desc" ]; - } -} - -my ($default_portlets) = $sys->Attributes->Named('HomepageSettings'); - -my @panes = $m->comp( - '/Admin/Elements/ConfigureMyRT', - panes => ['body', 'summary'], - Action => 'MyRT.html', - items => \@items, - current_portlets => $default_portlets->Content, - OnSave => sub { - my ( $conf, $pane ) = @_; - $default_portlets->SetContent( $conf ); - push @actions, loc( 'Global portlet [_1] saved.', $pane ); - } -); - -$m->comp( '/Widgets/SelectionBox:process', %ARGS, self => $_, nojs => 1 ) - for @panes; - - -</%init> - diff --git a/rt/html/Admin/Users/MyRT.html b/rt/html/Admin/Users/MyRT.html deleted file mode 100644 index 6eed0ab68..000000000 --- a/rt/html/Admin/Users/MyRT.html +++ /dev/null @@ -1,132 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<& /Admin/Elements/Header, Title => $title &> -<& /Admin/Elements/UserTabs, - id => $id, - UserObj => $UserObj, - current_tab => $current_tab, - Title => $title &> - -<& /Widgets/SelectionBox:header, nojs => 1 &> - -<& /Elements/ListActions, actions => \@actions &> - -<form method="post" action="MyRT.html"> -<input type="hidden" name="id" value="<% $id %>" /> -<input type="hidden" name="Reset" value="1" /> -<input type="submit" class="button" value="<%loc('Reset to default')%>"> -</form> - -<br /> - -% for my $pane (@panes) { -<&|/Widgets/TitleBox, title => loc('RT at a glance').': '.loc($pane->{Name}), bodyclass => "" &> -<& /Widgets/SelectionBox:show, self => $pane, nojs => 1 &></&> -<br /> -% } - -<%init> -my $current_tab = 'Admin/Users/MyRT.html?id='.$id; -my $UserObj = new RT::User($session{'CurrentUser'}); -$UserObj->Load($id) || Abort("Couldn't load user '$id'"); -my $title = loc("RT at a glance for the user [_1]", $UserObj->Name); - -if ($ARGS{Reset}) { - $UserObj->SetPreferences('HomepageSettings', {}); -} - -my ($default_portlets) = RT::System->new($session{'CurrentUser'})->Attributes->Named('HomepageSettings'); -my $portlets = $UserObj->Preferences('HomepageSettings', $default_portlets ? $default_portlets->Content : {}); - -my %allowed_components = map {$_ => 1} @{$RT::HomepageComponents}; -my @items; - -push @items, map {["component-$_", $_]} sort keys %allowed_components; - -my $sys = RT::System->new( RT::CurrentUser->new($UserObj) ); -my @objs = ($sys); - -push @objs, RT::SavedSearches->new( RT::CurrentUser->new( $UserObj ) )->_PrivacyObjects; -my @actions; - -for my $object (@objs) { - for ($m->comp("/Search/Elements/SearchesForObject", Object => $object)) { - my ($desc, $search) = @$_; - my $SearchType = $search->Content->{'SearchType'} || 'Ticket'; - if ($object eq $sys && $SearchType eq 'Ticket') { - push @items, ["system-$desc", $desc]; - } - else { - my $oid = ref($object).'-'.$object->Id.'-SavedSearch-'.$search->Id; - my $type = ($SearchType eq 'Ticket') - ? 'Saved Search' : $SearchType; # loc - push @items, ["saved-$oid", loc($type).": $desc"]; - } - } -} - -my @panes = $m->comp( - '/Admin/Elements/ConfigureMyRT', - panes => ['body', 'summary'], - Action => "MyRT.html?id=$id", - items => \@items, - current_portlets => $portlets, - OnSave => sub { - my ( $conf, $pane ) = @_; - $UserObj->SetPreferences( 'HomepageSettings', $conf ); - push @actions, loc( 'Preferences [_1] for user [_2] .', $pane, $UserObj->Name ); - } -); - -$m->comp( '/Widgets/SelectionBox:process', %ARGS, self => $_, nojs => 1 ) - for @panes; - -</%init> -<%ARGS> -$id => undef -</%ARGS> diff --git a/rt/html/Admin/Users/Prefs.html b/rt/html/Admin/Users/Prefs.html deleted file mode 100644 index 0bba9fadd..000000000 --- a/rt/html/Admin/Users/Prefs.html +++ /dev/null @@ -1,122 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<& /Elements/Header, Title => loc("User view") &> - -<& /Elements/ViewUser, User=>$u &> - -<h2 class="title"><%loc("User view")%></h2> - -%if ($session{CurrentUser} && ($session{CurrentUser}->Id == $id)) { - <& /Elements/TitleBoxStart, title => loc('Signature') &> -<form method=post> -<input type="hidden" name="id" value=<%$id%>> -<TEXTAREA COLS=72 ROWS=4 WRAP=HARD NAME="Signature"><% $u->Signature %></TEXTAREA><br><br> -<input type="submit" value="<&|/l&>Update signature</&>"> -</form> - <& /Elements/TitleBoxEnd &> - <form method=post> - <&|/l&>Open tickets (from listing) in another window</&>: <input type="checkbox" name="NewWindowOption" <%exists $session{NewWindowOption} && "CHECKED"%>><br> - <&|/l&>Open tickets (from listing) in a new window</&>: <input type="checkbox" name="AlwaysNewWindowOption" <%exists $session{AlwaysNewWindowOption} && "CHECKED"%>><br> - <input type="submit" name="NewWindowSetting" value="<&|/l&>New window setting</&>"> - </form> -%} - - <& /Elements/TitleBoxStart, title => loc('Email') &> -<form method=post> -<input type="hidden" name="id" value="<%$id%>"> -<input name="Email" value="<% $u->EmailAddress %>"><input type="submit" value="<&|/l&>Update email</&>"> -</form> - <& /Elements/TitleBoxEnd &> - <& /Elements/TitleBoxStart, title => loc('Real Name') &> -<form method=post> -<input type="hidden" name="id" value="<%$id%>"> -<input name="RealName" value="<% $u->RealName %>"><input type="submit" value="<&|/l&>Update name</&>"> -</form> - <& /Elements/TitleBoxEnd &> - - <& /Elements/TitleBoxStart, title => loc('User ID') &> -<form method=post> -<input type="hidden" name="id" value="<%$id%>"> -<input name="Name" value="<% $u->Name %>"><input type="submit" value="<&|/l&>Update ID</&>"> -</form> - <& /Elements/TitleBoxEnd &> - -%# TODO: alternative email addresses + merging users - -<%ARGS> -$id => $session{CurrentUser} ? $session{CurrentUser}->Id : 0 -$Signature => undef -$Email => undef -$RealName => undef -$Name => undef -</%ARGS> - -<%INIT> -require RT::User; -my $u=RT::User->new($session{CurrentUser}); -$u->Load($id) || die loc("Couldn't load that user ([_1])", $id); -if ($Signature) { -my ($val, $msg)=$u->SetSignature($Signature); -$RT::Logger->log(level=>($val ? 'info' : 'error'), message=>$msg); -} - -if ($Email) { -my ($val, $msg)=$u->SetEmailAddress($Email); -$RT::Logger->log(level=>($val ? 'info' : 'error'), message=>$msg); -} - -if ($RealName) { -my ($val, $msg)=$u->SetRealName($RealName); -$RT::Logger->log(level=>($val ? 'info' : 'error'), message=>$msg); -} - -if ($Name) { -my ($val, $msg)=$u->SetName($Name); -$RT::Logger->log(level=>($val ? 'info' : 'error'), message=>$msg); -} - -if ($ARGS{NewWindowSetting}) { -if ($ARGS{NewWindowOption}) { -$session{NewWindowOption}=1; -} else { -delete $session{NewWindowOption}; -} -if ($ARGS{AlwaysNewWindowOption}) { -$session{NewWindowOption}=1; -$session{AlwaysNewWindowOption}=1; -} else { -delete $session{AlwaysNewWindowOption}; -} -} - -</%INIT> - - - - - - - - - diff --git a/rt/html/Elements/EditCustomFieldCombobox b/rt/html/Elements/EditCustomFieldCombobox deleted file mode 100644 index 071ef0772..000000000 --- a/rt/html/Elements/EditCustomFieldCombobox +++ /dev/null @@ -1,68 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -% while ($Values and my $value = $Values->Next and $Multiple) { -<input type="checkbox" class="checkbox" name="<%$NamePrefix%><%$CustomField->Id%>-DeleteValueIds" value="<% $value->Id %>" /><% $value->Content %> -<br /> -% } -% (!$Multiple or !$MaxValues or !$Values or $Values->Count < $MaxValues) or return; -<& /Widgets/ComboBox, - Name => $NamePrefix . $CustomField->Id . "-Value", - Default => $Default, - Rows => $Rows, - Values => [map {$_->Name} @{$CustomField->Values->ItemsArrayRef}], -&> -<%ARGS> -$Object => undef -$CustomField => undef -$NamePrefix => undef -$Default => undef -$Values => undef -$Multiple => 0 -$Rows => undef -$MaxValues => undef -</%ARGS> diff --git a/rt/html/Elements/Logo b/rt/html/Elements/Logo deleted file mode 100644 index 157f7bece..000000000 --- a/rt/html/Elements/Logo +++ /dev/null @@ -1,56 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} - <div id="logo"> - <a href="http://bestpractical.com"><img src="<%$RT::WebImagesURL%>/bplogo.gif" alt="<%loc("Best Practical Solutions, LLC corporate logo")%>" width="177" height="33" /></a> -% if ($show_name) { - <div class="rtname"><% loc("RT for [_1]", $RT::rtname) %></div> -% } - </div> -<%args> - $show_name => 1 -</%args> diff --git a/rt/html/Elements/MyAdminQueues b/rt/html/Elements/MyAdminQueues deleted file mode 100644 index 7e720ad71..000000000 --- a/rt/html/Elements/MyAdminQueues +++ /dev/null @@ -1,54 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<&|/Widgets/TitleBox, title => loc("Queues I administer"), bodyclass => "" &> -<& /Elements/QueueSummary, - cache => 'my_admin_queues', - queue_filter => sub { $_->CurrentUserHasRight('AdminQueue') }, - conditions => [ {cond => "Status = 'new'", name => loc ('new') }, - {cond => "Status = 'open'", name => loc ('open') }] &> -</&> diff --git a/rt/html/Elements/MyRT b/rt/html/Elements/MyRT deleted file mode 100644 index be487a433..000000000 --- a/rt/html/Elements/MyRT +++ /dev/null @@ -1,100 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<table border="0" width="100%"> -<tr valign="top"> - -<td class="boxcontainer" width="70%" <% $summary? 'width="70%"': '' %>> -% $show_cb->($_) foreach @$body; -</td> - -% if ( $summary ) { -<td class="boxcontainer"> -% $show_cb->($_) foreach @$summary; -</td> -% } - -</tr> -</table> - -<%INIT> - -my $user = $session{'CurrentUser'}->UserObj; -unless (exists $session{'my_rt_portlets'}) { - my ($default_portlets) = RT::System->new($session{'CurrentUser'})->Attributes->Named('HomepageSettings'); - $session{'my_rt_portlets'} = $user->Preferences( - HomepageSettings => $default_portlets? $default_portlets->Content: {}, - ); -} - -my ($body, $summary) = @{$session{'my_rt_portlets'}}{qw(body summary)}; -unless( $body && @$body ) { - $body = $summary || []; - $summary = undef; -} -$summary = undef unless $summary && @$summary; - -my $Rows = $user->Preferences( 'SummaryRows', ( $RT::DefaultSummaryRows || 10 ) ); - -my $show_cb = sub { - my $entry = shift; - my $type = $entry->{type}; - if ( $type eq 'component' ) { - my $name = $entry->{name}; - - # security check etc. - $m->comp( $name, %{ $entry->{arguments} || {} } ); - } elsif ( $type eq 'system' ) { - $m->comp( '/Elements/ShowSearch', Name => $entry->{name}, Override => { Rows => $Rows } ); - } elsif ( $type eq 'saved' ) { - $m->comp( '/Elements/ShowSearch', SavedSearch => $entry->{name}, Override => { Rows => $Rows } ); - } else { - $RT::Logger->error("unknown portlet type $type"); - } -}; - -</%INIT> diff --git a/rt/html/Elements/MyReminders b/rt/html/Elements/MyReminders deleted file mode 100755 index 1e962bd61..000000000 --- a/rt/html/Elements/MyReminders +++ /dev/null @@ -1,73 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -%# DEPRECATED -<&|/Widgets/TitleBox, - title => loc("Reminders") &> -<table width="100%"> -% my $i =0; -% while (my $reminder = $reminders->Next) { -% $i++; -% if ($reminder->RefersTo->First) { -% my $ticket= $reminder->RefersTo->First->TargetObj; -<tr class="<%$i%2 ? 'evenline' : 'oddline'%>"><td><a href="<%$RT::WebPath%>/Ticket/Display.html?id=<%$ticket->id%>"><%$reminder->Subject%></a><br /> -<blockquote> -#<%$ticket->id%>: <%$ticket->Subject%><br /> -<%$reminder->OwnerObj->Name %> <%$reminder->DueObj->Unix >0 ? '• '.$reminder->DueObj->AgeAsString : '' |n %> -</blockquote> -</td> -</tr> -% }} -</table> -</&> - -<%init> -my $reminders = RT::Tickets->new($session{'CurrentUser'}); -$reminders->FromSQL('(Owner = "Nobody" OR Owner = "'.$session{'CurrentUser'}->Name.'")' . - ' AND Type = "reminder" AND (Status = "new" OR Status = "open") AND Due > "1970-01-01"'); -$reminders->OrderBy(FIELD => 'Due', ORDER => 'DESC'); -</%init> diff --git a/rt/html/Elements/MySupportQueues b/rt/html/Elements/MySupportQueues deleted file mode 100644 index f9e18a09a..000000000 --- a/rt/html/Elements/MySupportQueues +++ /dev/null @@ -1,54 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<&|/Widgets/TitleBox, title => loc("Queues I'm an AdminCc for"), bodyclass => "" &> -<& /Elements/QueueSummary, - cache => 'my_support_queues', - queue_filter => sub { $_->IsAdminCc($session{'CurrentUser'}->Id) }, - conditions => [ {cond => "Status = 'new'", name => loc ('new') }, - {cond => "Status = 'open'", name => loc ('open') }] &> -</&> diff --git a/rt/html/Elements/QueueSummary b/rt/html/Elements/QueueSummary deleted file mode 100644 index 133539cc0..000000000 --- a/rt/html/Elements/QueueSummary +++ /dev/null @@ -1,92 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<table border="0" cellspacing="0" cellpadding="1" width="100%"> -<tr> - <th class="collection-as-table"><&|/l&>Queue</&></th> -% for my $condition (@$conditions) { - <th class="collection-as-table"><% $condition->{name} %></th> -% } -</tr> -% my $i; -% for my $queue (@queues) { -% $i++; -% my $queue_cond = "Queue = '$queue->{Name}' AND "; -% my $all_q = $queue_cond . "(Status = 'open' OR Status = 'new' OR Status = 'stalled')"; -<tr class="<% $i%2 ? 'oddline' : 'evenline'%>" > -<td><a href="<% $RT::WebPath%>/Search/Results.html?Query=<% $all_q |u,n %>" title="<% $queue->{Description} %>"><% $queue->{Name} %></a></td> -% for my $condition (@$conditions) { -% $Tickets->FromSQL( "Queue = $queue->{id} AND ". $condition->{cond} ); -<td align="right"><a href="<% $RT::WebPath%>/Search/Results.html?Query=<% $queue_cond.$condition->{cond} |u,n %>"><% $Tickets->Count %></a></td> -% } -</tr> -% } -</table> -<%INIT> -my @queues; - -if ($cache && exists $session{$cache}) { - @queues = @{$session{$cache}}; -} -else { - my $Queues = RT::Queues->new($session{'CurrentUser'}); - $Queues->UnLimit(); - @queues = map { - { Name => $_->Name, Description => $_->Description, - id => $_->Id } } - grep $queue_filter->($_), @{$Queues->ItemsArrayRef}; - - $session{$cache} = \@queues if $cache; -} - -my $Tickets = RT::Tickets->new($session{'CurrentUser'}); -</%INIT> -<%ARGS> -$cache => undef -$queue_filter => undef -$conditions => () -</%ARGS> diff --git a/rt/html/Elements/RefreshHomepage b/rt/html/Elements/RefreshHomepage deleted file mode 100644 index 167a48cab..000000000 --- a/rt/html/Elements/RefreshHomepage +++ /dev/null @@ -1,51 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<form method="get" action="<%$RT::WebPath%>/index.html"> -<& /Elements/Refresh, Name => 'HomeRefreshInterval', Default => $session {'home_refresh_interval'} &> -<div align="right"><input type="submit" class="button" value="<&|/l&>Go!</&>" /></div> -</form> diff --git a/rt/html/Elements/SelectTimeUnits b/rt/html/Elements/SelectTimeUnits deleted file mode 100755 index e1656f113..000000000 --- a/rt/html/Elements/SelectTimeUnits +++ /dev/null @@ -1,57 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<select name="<% $Name %>"> -<option value="minutes" selected><% loc('Minutes') %></option> -<option value="hours"><% loc('Hours') %></option> -</select> -<%INIT> -$Name .= '-TimeUnits' unless $Name =~ /-TimeUnits$/io; -</%INIT> -<%ARGS> -$Name => '' -</%ARGS> diff --git a/rt/html/Elements/ShadedBox b/rt/html/Elements/ShadedBox deleted file mode 100644 index 36b9cae7c..000000000 --- a/rt/html/Elements/ShadedBox +++ /dev/null @@ -1,33 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<table> - <tr> - <td class="label"><%$title |n %>:</td> - <td class="value"><%$content |n %></td> - </tr> -</table> -<%ARGS> -$title => undef -$content => " " -</%ARGS> diff --git a/rt/html/Elements/ShadedInputRow b/rt/html/Elements/ShadedInputRow deleted file mode 100644 index e9fb69e5f..000000000 --- a/rt/html/Elements/ShadedInputRow +++ /dev/null @@ -1,35 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<tr> - <td class="label"><%$title |n %>:</td> - <td class="value"> - <input name=<%$name%> value="<%$content|h%>" SIZE=<%$size%>> - </td> -</tr> -<%ARGS> -$title => undef -$content => " " -$name => undef -$size => undef -</%ARGS> diff --git a/rt/html/Elements/ShadedRow b/rt/html/Elements/ShadedRow deleted file mode 100644 index 8947fcd82..000000000 --- a/rt/html/Elements/ShadedRow +++ /dev/null @@ -1,31 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<tr> - <td class="label"><%$title |n %>:</td> - <td class="value"><%$content |n %></td> -</tr> -<%ARGS> -$title => undef -$content => " " -</%ARGS> diff --git a/rt/html/Elements/ShowSearch b/rt/html/Elements/ShowSearch deleted file mode 100644 index ded865b82..000000000 --- a/rt/html/Elements/ShowSearch +++ /dev/null @@ -1,126 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<&|/Widgets/TitleBox, - title => loc($search->Description, $ProcessedSearchArg->{'Rows'}), - title_href => $query_link_url.$QueryString, - titleright => $customize ? loc('Edit') : '', - titleright_href => $customize &> -<& $query_display_component, %$ProcessedSearchArg, ShowNavigation => 0 &> -</&> -<%init> -my $search; -my $user = $session{'CurrentUser'}->UserObj; -my $SearchArg; -my $customize; -my $query_display_component = '/Elements/TicketList'; -my $query_link_url = 'Search/Results.html'; - -if ($SavedSearch) { - my ( $container_object, $search_id ) = _parse_saved_search($SavedSearch); - $search = $container_object->Attributes->WithId($search_id); - unless ( $search->Id && ref( $SearchArg = $search->Content ) eq 'HASH' ) { - $m->out("Saved Search $SavedSearch not found"); - return; - } - $SearchArg->{'SearchType'} ||= 'Ticket'; - if ( $SearchArg->{SearchType} ne 'Ticket' ) { - - # XXX: dispatch to different handler here - $query_display_component - = '/Search/Elements/' . $SearchArg->{SearchType}; - $query_link_url = "Search/$SearchArg->{SearchType}.html"; - } else { - $customize = $RT::WebPath . '/Search/Build.html?' - . $m->comp( '/Elements/QueryString', - LoadSavedSearch => $SavedSearch ); - } -} else { - ($search) = RT::System->new( $session{'CurrentUser'} ) ->Attributes->Named( 'Search - ' . $Name ); - unless ( $search && $search->Id ) { - my (@custom_searches) = RT::System->new( $session{'CurrentUser'} )->Attributes->Named('SavedSearch'); - foreach my $custom (@custom_searches) { - if ($custom->Description eq $Name) { $search = $custom; last } - } - unless ($search && $search->id) { - $m->out("Predefined search $Name not found"); - return; - } - } - - $SearchArg = $user->Preferences( $search, $search->Content ); - $customize = $RT::WebPath . '/Prefs/Search.html?' - . $m->comp( '/Elements/QueryString', - name => ref($search) . '-' . $search->Id ); -} - -# ProcessedSearchArg is a search with overridings, but for link we use -# orginal search's poperties -my $ProcessedSearchArg = $SearchArg; -$ProcessedSearchArg = { %$SearchArg, %Override } if keys %Override; - -$m->comp( - '/Elements/Callback', %ARGS, - _CallbackName => 'ModifySearch', - OriginalSearch => $SearchArg, - Search => $ProcessedSearchArg, -); - -foreach ( $SearchArg, $ProcessedSearchArg ) { - $_->{'Query'} =~ s/__CurrentUser__/$session{'CurrentUser'}->Id/ge; - $_->{'Format'} =~ s/__WebPath__/$RT::WebPath/g; - $_->{'Format'} =~ s/__loc\(["']?(\w+)["']?\)__/loc("$1")/ge; -} - -my $QueryString = '?' . $m->comp( '/Elements/QueryString', %$SearchArg ); - -</%init> -<%ARGS> -$Name => undef -$SavedSearch => undef -%Override => () -</%ARGS> diff --git a/rt/html/Elements/ValidateCustomFields b/rt/html/Elements/ValidateCustomFields deleted file mode 100644 index 483021952..000000000 --- a/rt/html/Elements/ValidateCustomFields +++ /dev/null @@ -1,81 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%INIT> -my $valid = 1; -$CustomFields->GotoFirstItem; -while (my $CF = $CustomFields->Next) { - my $pattern = $CF->Pattern; - my $field = $NamePrefix . $CF->Id . "-Value"; - my $value; - - if ($ARGSRef->{"${field}s-Magic"} and exists $ARGSRef->{"${field}s"}) { - $value = $ARGSRef->{"${field}s"}; - - # We only validate Single Combos -- multis can never be user input - next if ref $value; - } - else { - $value = $ARGSRef->{$field}; - } - - $m->notes(('Field-' . $CF->Id) => $value); - next if $CF->MatchPattern($value); - $m->notes( - ('InvalidField-' . $CF->Id) - => (loc("Input must match [_1]", $CF->FriendlyPattern)) - ); - $valid = 0; -} -$m->notes('ValidFields', $valid); -return $valid; -</%INIT> -<%ARGS> -$CustomFields -$ARGSRef -$NamePrefix => "Object-RT::Ticket--CustomField-" -</%ARGS> diff --git a/rt/html/Elements/ViewUser b/rt/html/Elements/ViewUser deleted file mode 100644 index 657272496..000000000 --- a/rt/html/Elements/ViewUser +++ /dev/null @@ -1,51 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<& /Elements/TitleBoxStart, - title => "<a class='inverse' href=\"$RT::WebPath/Search/Listing.html?LimitRequestorById=1&IdOfRequestor=".$User->id."\">".loc("Tickets from [_1]", $name)."</a>", - titleright=> "<a class='inverse' href=\"$RT::WebPath/EditUserComments.html?id=".$User->id."\">".loc("Comments about [_1]", $name)."</a>" &> -<TABLE WIDTH="100%"> -<tr> -<td halign=left valign=top> -%while (my $w=$tickets->Next) { -<%$w->Id%>: <a href="<%$RT::WebPath%>/Ticket/Display.html?id=<%$w->id%>"><%$w->Subject%></a> (<%$w->Status%>)<BR> -%} -</td> -<td align=right valign=top> - <% ($User->Comments || loc("No comment entered about this user")) %> -</tr> -</table> -<& /Elements/TitleBoxEnd &> - -<%ARGS> -$User=>undef -</%ARGS> - -<%INIT> -my $name=$User->RealName || $User->EmailAddress; - -my $tickets = new RT::Tickets($session{'CurrentUser'}); -$tickets->LimitWatcher(TYPE => 'Requestor', VALUE => $User->EmailAddress); - - -</%INIT> diff --git a/rt/html/Helpers/CalPopup.html b/rt/html/Helpers/CalPopup.html deleted file mode 100644 index 9509d13f4..000000000 --- a/rt/html/Helpers/CalPopup.html +++ /dev/null @@ -1,129 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<& /Elements/Header, ShowBar => 0 &> -%# From /Elements/Header -</div> -<div id="body" class="calpopup"> - -<a href="#" onclick="window.close(); return false;"><&|/l&>Close window</&></a> - -<div class="calendar"> - <table> - <caption> - <a class="prev" href="CalPopup.html?DisplayedMonth=<%$prev_month%>&DisplayedYear=<%$prev_year%>&field=<%$field%>"><&|/l&>Prev</&></a> - <span class="month"><% $months[$DisplayedMonth-1] %> <% $DisplayedYear %></span> - <a class="next" href="CalPopup.html?DisplayedMonth=<%$next_month%>&DisplayedYear=<%$next_year%>&field=<%$field%>"><&|/l&>Next</&></a> - </caption> - <tr> -% foreach my $wday (@weekdays) { - <th><%$wday%></th> -% } - </tr> -% foreach my $week (@cal) { - <tr> -% foreach my $day (@{$week}) { - <td> -% if ($day) { -% my $datestr = sprintf('%04d-%02d-%02d', $DisplayedYear, $DisplayedMonth, $day); - <a href="#" onclick="updateParentField('<% $field %>','<% $datestr %>'); return false;"><% $day %></a> -% } else { - -% } - </td> -% } #foreach $day - </tr> -% } # foreach $week - </table> -</div> -</div> -</body> -</html> -% $m->abort(); - -<%init> -use Calendar::Simple; -my @today = localtime(time()); - -my @weekdays; -push @weekdays, loc($_) - for qw(Sun Mon Tue Wed Thu Fri Sat); - -my @months; -push @months, loc($_) - for qw(January February March April May June July August - September October November December); - -unless ($DisplayedYear) { - $DisplayedMonth = $today[4] + 1; - $DisplayedYear = ($today[5] + 1900); -} - -my ($prev_year, $next_year, $prev_month, $next_month); -$prev_month = $next_month = $DisplayedMonth; -$prev_year = $next_year = $DisplayedYear; - -$next_month++; -$prev_month--; - -if ($DisplayedMonth == 12) { - $next_year++; - $next_month = 1; -} -elsif ($DisplayedMonth == 1) { - $prev_month = 12; - $prev_year--; -} - -my @cal = calendar($DisplayedMonth, $DisplayedYear); -</%init> - -<%args> -$field => 'none' -$DisplayedMonth => undef -$DisplayedYear => undef -</%args> diff --git a/rt/html/NoAuth/css/3.4-compat/body.css b/rt/html/NoAuth/css/3.4-compat/body.css deleted file mode 100644 index 6188951a4..000000000 --- a/rt/html/NoAuth/css/3.4-compat/body.css +++ /dev/null @@ -1,75 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -#body { - margin: 0.5em 0.5em 0 0.5em; - float: left; - width: 80%; -} - -#body h1 { font-size: 1.5em; } -#body h2 { font-size: 1.3em; } -#body h3 { font-size: 1.1em; } -#body h4 { font-size: 1em; } -#body h5 { font-size: 0.9em; } -#body h6 { font-size: 0.8em; } - -#body h1, #body h2, #body h3, #body h4, #body h5, #body h6 { - font-weight: bold; -} - -#body :link { color: black; } - -#body :link, #body :visited { - font-weight: bold; - text-decoration: none; -} - -#body :link:hover, #body :visited:hover { - text-decoration: underline; -} - diff --git a/rt/html/NoAuth/css/3.4-compat/footer.css b/rt/html/NoAuth/css/3.4-compat/footer.css deleted file mode 100644 index 4e90c507c..000000000 --- a/rt/html/NoAuth/css/3.4-compat/footer.css +++ /dev/null @@ -1,61 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -#footer { - clear: both; - font-size: 0.8em; - margin-top: 5em; - padding-bottom: 2em; - color: #888; -} - -#footer p { - text-align: right; - padding: 0 0.5em 0 0; - margin: 0; -} - diff --git a/rt/html/NoAuth/css/3.4-compat/forms.css b/rt/html/NoAuth/css/3.4-compat/forms.css deleted file mode 100644 index 301f8f3e4..000000000 --- a/rt/html/NoAuth/css/3.4-compat/forms.css +++ /dev/null @@ -1,104 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -form .label, form label { - font-weight: bold; -} - -.submit { - background: #069; -%# These borders are needed so the container actually surrounds the floats inside it - border-top: 1px solid white; - border-bottom: 1px solid white; - color: #ffdb00; - font-weight: bold; -} - -.submit .buttons { float: right; } -.submit .extra-buttons { float: left; } -.submit .button { font-size: 0.9em; } - -.submit .submit-clear { clear: right; } - -.input-row { - clear: both; - padding: 0.25em; -} - -%# ComboBox styles... some properties like height and width must be dynamically -%# set in the JS (at least for now). -.combobox { - border: 2px inset ButtonHighlight; - padding-left: 0.5em; - padding-bottom: 0.1em; -} - -.combobox .combo-button { - padding: 0 2px 0 2px; - margin: 0; - background: ButtonFace; - color: ButtonText; - border: 2px outset ButtonHighlight; - cursor: default; - font-size: 8pt; -} - -.combobox .combo-text { - border: none; - margin: 0; - padding: 0; -} - -.combobox .combo-list { - z-index: 200; -} - -#quickbar #topactions form { - display: inline; - margin-left: 2em; -} - diff --git a/rt/html/NoAuth/css/3.4-compat/header.css b/rt/html/NoAuth/css/3.4-compat/header.css deleted file mode 100644 index a8e3184ce..000000000 --- a/rt/html/NoAuth/css/3.4-compat/header.css +++ /dev/null @@ -1,88 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -#header #page-menu { - display: none; -} - -#header { - background: #4282b5; - margin-top: 0; - padding-bottom: 0.2em; - float: left; - width: 82%; -} - -#header h1 { - background: #4282b5; - color: white; - font-size: 1.7em; - margin: 0; - padding: 0; -} - -#header #actions-menu { - display: block; - margin: 0 1em 0 0; - padding: 0; - color: white; - text-align: right; - font-size: 1.2em; -} - -#header #actions-menu li { - display: inline; -} - -#header #actions-menu :link, #header #actions-menu :visited { - color: white; - text-decoration: none; -} - -#header #actions-menu :link:hover, #header #actions-menu :visited:hover { - text-decoration: underline; -} diff --git a/rt/html/NoAuth/css/3.4-compat/login.css b/rt/html/NoAuth/css/3.4-compat/login.css deleted file mode 100644 index 2b967e0f1..000000000 --- a/rt/html/NoAuth/css/3.4-compat/login.css +++ /dev/null @@ -1,54 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -#body.login-body { - width: 98%; -} - -#login-box { - width: 30em; -} diff --git a/rt/html/NoAuth/css/3.4-compat/main.css b/rt/html/NoAuth/css/3.4-compat/main.css deleted file mode 100644 index f2c9ad321..000000000 --- a/rt/html/NoAuth/css/3.4-compat/main.css +++ /dev/null @@ -1,69 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -%# Import the 3.5 styles we want to build off of... -@import "../3.5-default/logo.css"; -@import "../3.5-default/misc.css"; -@import "../3.5-default/transactions.css"; -@import "../3.5-default/approvals.css"; -@import "../3.5-default/login.css"; -@import "../3.5-default/quickbar.css"; -@import "../3.5-default/ticket.css"; - -%# ...and then import the 3.4 compat styles afterwards so they can cascade -@import "nav.css"; -@import "footer.css"; -@import "body.css"; -@import "titlebox.css"; -@import "header.css"; -@import "forms.css"; -@import "transactions.css"; -@import "ticket.css"; -@import "login.css"; -@import "quickbar.css"; -@import "misc.css"; - diff --git a/rt/html/NoAuth/css/3.4-compat/misc.css b/rt/html/NoAuth/css/3.4-compat/misc.css deleted file mode 100644 index 09be77a51..000000000 --- a/rt/html/NoAuth/css/3.4-compat/misc.css +++ /dev/null @@ -1,49 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -.oddline { background: white; } -.evenline { background: #cecfef; } diff --git a/rt/html/NoAuth/css/3.4-compat/nav.css b/rt/html/NoAuth/css/3.4-compat/nav.css deleted file mode 100644 index f83c0fd2c..000000000 --- a/rt/html/NoAuth/css/3.4-compat/nav.css +++ /dev/null @@ -1,106 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -#nav { - clear: left; - float: left; - width: 18%; - font-size: 1.4em; - color: #eee; - margin: 0; - background: #4282b5 url(<%$RT::WebImagesURL%>/css/cbr.gif) no-repeat bottom right; -} - -#nav #system-menu { - padding: 0 0.2em 0.2em 0.2em; - margin-top: 0; -/* background: transparent url(<%$RT::WebImagesURL%>/css/ctr.gif) no-repeat top right; */ -} - -#nav ul { - list-style: none; - padding-left: 0.5em; - margin-left: 0; -} - -#nav ul .bullet, #nav ul .separator { - display: none; -} - -#nav ul li { - padding: 0.4em 0 0.4em 0.2em; - border-bottom: 1px solid white; -} - -#nav li ul { - font-size: 0.9em; -} - -#nav li ul li { - border-bottom: none; - padding: 0.2em 0 0 0; -} - -#nav :link, #nav :visited { - text-decoration: none; - color: #eee; -} - -#nav :link:hover, -#nav :visited:hover, -#nav :link.selected, -#nav :visited.selected -{ - color: #ff6; -} - -#nav :link.selected, -#nav :visited.selected -{ - text-decoration: underline; - font-weight: bold; -} diff --git a/rt/html/NoAuth/css/3.4-compat/quickbar.css b/rt/html/NoAuth/css/3.4-compat/quickbar.css deleted file mode 100644 index d7aac5d51..000000000 --- a/rt/html/NoAuth/css/3.4-compat/quickbar.css +++ /dev/null @@ -1,82 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -#quickbar { - border: 1px solid transparent; -} - -#quickbar #quick-personal { - display: inline; - color: #888; - padding: 0.5em 1em 0 0; - float: right; -} - -#quickbar #quick-personal span { - font-weight: bold; -} - -#quickbar #quick-personal :link, -#quickbar #quick-personal :visited -{ - color: #888; - font-weight: bold; -} - -#quickbar #quick-personal :link:hover, -#quickbar #quick-personal :visited:hover -{ - color: black; -} - -#quickbar #topactions { - color: white; - font-size: 0.9em; - position: relative; - right: 1em; - float: right; -} diff --git a/rt/html/NoAuth/css/3.4-compat/ticket.css b/rt/html/NoAuth/css/3.4-compat/ticket.css deleted file mode 100644 index 2c808929d..000000000 --- a/rt/html/NoAuth/css/3.4-compat/ticket.css +++ /dev/null @@ -1,50 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -.value { - font-weight: bold; -} diff --git a/rt/html/NoAuth/css/3.4-compat/titlebox.css b/rt/html/NoAuth/css/3.4-compat/titlebox.css deleted file mode 100644 index 363da69d3..000000000 --- a/rt/html/NoAuth/css/3.4-compat/titlebox.css +++ /dev/null @@ -1,103 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -.titlebox { - margin: 0.5em 0; -} - -.titlebox .titlebox-content { - padding: 0.05em; -} - -.titlebox .titlebox-title { - background: #069; - padding: 0.2em 0.5em; - color: white; - border-top: 1px solid black; - border-bottom: 1px solid black; - font-weight: bold; - position: relative; -} - -.titlebox .titlebox-title .right { - position: absolute; - right: 1.5em; - font-size: 0.9em; -} - -#body .titlebox .titlebox-title :link, #body .titlebox .titlebox-title :visited { - color: white; -} - -#body .titlebox .titlebox-title .widget :link, #body .titlebox .titlebox-title .widget :visited { - color: black; -} - -.titlebox .titlebox-content hr.clear { - visibility: hidden; -} - -%# TRS: I wish there was a more elegant way to do this... I essentially need to -%# select all elements X that do NOT have element Y as a descendant... which I can -%# fake with the child selector of CSS2, but IE is stupid and does not support that. - -% for (qw(index -% Search-Build -% User-Prefs -% Approvals -% Admin-Users-Modify -% SelfService -% SelfService-Closed -% Ticket-ModifyAll -% )) -% { -#comp-<%$_%> .titlebox .titlebox-content, -% } -.titlebox .titlebox .titlebox-content -{ - background: #cecfce; -} diff --git a/rt/html/NoAuth/css/3.4-compat/transactions.css b/rt/html/NoAuth/css/3.4-compat/transactions.css deleted file mode 100644 index 2078a3147..000000000 --- a/rt/html/NoAuth/css/3.4-compat/transactions.css +++ /dev/null @@ -1,83 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -.ticket-transaction { - margin: 0; - border: none; -} - -.ticket-transaction .type { - width: 1em; -} - -.ticket-transaction.even { - background: #cecfef; -} - -.ticket-transaction.basics { border-color: #9c3031; } -.ticket-transaction.basics .type { background: #9c3031; } -.ticket-summary .ticket-info-basics .titlebox-content { border-left: none; } -.ticket-summary .ticket-info-basics .titlebox-title { background: #9c3031; } - -.ticket-transaction.people { border-color: #31309c; } -.ticket-transaction.people .type { background: #31309c; } -.ticket-summary .ticket-info-people .titlebox-content { border-left: none; } -.ticket-summary .ticket-info-people .titlebox-title { background: #31309c; } - -.ticket-transaction.links { border-color: #316531; } -.ticket-transaction.links .type { background: #316531; } -.ticket-summary .ticket-info-links .titlebox-content { border-left: none; } -.ticket-summary .ticket-info-links .titlebox-title { background: #316531; } - -.ticket-transaction.dates { border-color: #633063; } -.ticket-transaction.dates .type { background: #633063; } -.ticket-summary .ticket-info-dates .titlebox-content { border-left: none; } -.ticket-summary .ticket-info-dates .titlebox-title { background: #633063; } - -.ticket-transaction.message { border-color: #069; } -.ticket-transaction.message .type { background: #069; } - diff --git a/rt/html/NoAuth/css/3.5-default/approvals.css b/rt/html/NoAuth/css/3.5-default/approvals.css deleted file mode 100644 index 5bc836aa9..000000000 --- a/rt/html/NoAuth/css/3.5-default/approvals.css +++ /dev/null @@ -1,97 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -.approval { - margin-bottom: 3em; - padding: 0 0 1em 0; - border: 1px solid #069; -} - -.approval .name { - background: #069; - color: white; - font-size: 1.1em; - padding: 0.2em 0 0.4em 0.2em; -} - -#body .approval .name :link, #body .approval .name :visited { - color: white; -} - -.approval .originating-ticket { - margin: 0.5em; - border: 1px solid #aaa; -} - -.approval .originating-ticket .link { - display: block; - background: #aaa; - padding: 0.2em 0 0.4em 0.2em; -} - -.approval .originating-ticket .info { - padding: 0.5em; -} - -#body .approval .originating-ticket .link :link, -#body .approval .originating-ticket .link :visited { - color: black; -} - -.approval .form { - margin: 1em 0.5em 0.5em 0.5em; -} - -.approval .form .action, .approval .form .notes { - float: left; - margin-left: 1em; -} - -.approval .form .action { padding-top: 1em; } - -.approval .form .action label { font-weight: normal; } -.approval .form .notes label { display: block; } diff --git a/rt/html/NoAuth/css/3.5-default/body.css b/rt/html/NoAuth/css/3.5-default/body.css deleted file mode 100755 index d4470343c..000000000 --- a/rt/html/NoAuth/css/3.5-default/body.css +++ /dev/null @@ -1,81 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -#body { - clear: both; - margin: 0 0.75em 0 2em; - padding-top: 0.5em; -} - -#body h1 { - border-bottom: 1px dotted #069; - padding-left: 0.5em; -} - -#body h1 { font-size: 1.5em; } -#body h2 { font-size: 1.3em; } -#body h3 { font-size: 1.1em; } -#body h4 { font-size: 1em; } -#body h5 { font-size: 0.9em; } -#body h6 { font-size: 0.8em; } - -#body h1, #body h2, #body h3, #body h4, #body h5, #body h6 { - color: #930; - font-weight: bold; -} - -#body :link { color: #069; } - -#body :link, #body :visited { - font-weight: bold; - text-decoration: none; -} - -#body :link:hover, #body :visited:hover { - text-decoration: underline; -} - diff --git a/rt/html/NoAuth/css/3.5-default/footer.css b/rt/html/NoAuth/css/3.5-default/footer.css deleted file mode 100644 index c46998293..000000000 --- a/rt/html/NoAuth/css/3.5-default/footer.css +++ /dev/null @@ -1,91 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -#footer { - clear: both; - font-size: 0.8em; - margin-top: 5em; - padding-bottom: 3em; -} - -#footer p { float: left; } - -#footer #time { - color: white; - background: #069 url(<%$RT::WebImagesURL%>/css/ctr-b2g.gif) no-repeat top right; - padding: 0.2em 0 0.3em 0; - margin: 0; - position: relative; - z-index: 2; -} - -#footer #time span { - padding: 0.2em 2em 0.3em 3em; - background: url(<%$RT::WebImagesURL%>/css/cbr-b2g.gif) no-repeat bottom right; -} - -#footer #bpscredits { - background: #ccc url(<%$RT::WebImagesURL%>/css/ctr-gray.gif) no-repeat top right; - padding: 0.2em 0 0.3em 0; - margin: 0; - position: relative; - left: -10px; - z-index: 1; -} - -#footer #bpscredits span { - padding: 0.2em 2em 0.3em 3em; - background: url(<%$RT::WebImagesURL%>/css/cbr-gray.gif) no-repeat bottom right; -} - -#footer #legal { - float: none; - color: #888; - padding: 1em 0 0 2em; - clear: both; -} - diff --git a/rt/html/NoAuth/css/3.5-default/forms.css b/rt/html/NoAuth/css/3.5-default/forms.css deleted file mode 100755 index e49c45f3a..000000000 --- a/rt/html/NoAuth/css/3.5-default/forms.css +++ /dev/null @@ -1,136 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -form input.button { - border: 3px double #069; - border-top-color: #08c; - border-left-color: #08c; - padding: 0.25em; - background: white; - font-weight: bold; - font-size: 1em; - margin: 0.5em 0.5em 0 0.5em; -} - -form input.button:active { - border: 3px double #08c; - border-top-color: #069; - border-left-color: #069; -} - -form select { - border: 1px solid #069; - padding: 1px; -} - -form input.field, form input, form textarea { - border: 1px solid #069; - padding: 3px; -} - -form input.checkbox, form input.radio { - border: none; - padding: 0; -} - -/* form .entry input, form .value input */ - -.label, form label, .labeltop { - font-weight: bold; -} - -.labeltop { - vertical-align: top; -} - -.submit { - font-weight: bold; - color: #a00; - font-size: 1.1em; - padding: 0.3em 1.5em 0 1.5em; - border-top: 1px solid #930; - margin: 1.5em 0 2.5em 0; -} - -.submit .buttons { float: right; } -.submit .extra-buttons { float: left; } -.submit .button { font-size: 0.9em; } -.submit .submit-clear { display: none; } - -.input-row { - clear: both; - padding: 0.25em; -} - -%# ComboBox styles... some properties like height and width must be dynamically -%# set in the JS (at least for now). -.combobox { - border: 2px inset #069; - padding-left: 0.5em; - padding-bottom: 0.1em; -} - -.combobox .combo-button { - padding: 0 2px 0 2px; - margin: 0; - background: ButtonFace; - color: ButtonText; - border: 2px outset ButtonHighlight; - cursor: default; - font-size: 8pt; -} - -.combobox .combo-text { - border: none; - margin: 0; - padding: 0; -} - -.combobox .combo-list { - z-index: 200; -} - diff --git a/rt/html/NoAuth/css/3.5-default/header.css b/rt/html/NoAuth/css/3.5-default/header.css deleted file mode 100644 index cc5c9e4b1..000000000 --- a/rt/html/NoAuth/css/3.5-default/header.css +++ /dev/null @@ -1,152 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -#header { - clear: both; - margin: 0 0.75em 0 0.75em; - padding-top: 1em; -} - -#header h1 { - margin: 0; - padding: 0; - color: #930; - position: relative; - font-size: 2em; - font-weight: bold; - left: 1.3em; - top: 0.15em; - z-index: 3; - width: 95%; -} - -#header ul { - margin: 0; - padding: 0; - color: #eee; - float: left; -} - -#header #page-menu { - position: relative; - z-index: 2; - background: #069 url(<%$RT::WebImagesURL%>/css/ct.gif) no-repeat top left; - min-width: 65%; -} - -%# This is an interesting bit of CSS. expression() is an IE-only extension to -%# it's CSS implementation. Just in case other browsers might choke on it, -%# the rule is enclosed in a selector only IE will (wrongly) match to an element. -%# -%# The expression() function takes Javascript, and basically what it's doing here -%# is checking to see if the width of the menu would be greater than 65% of the body -%# width. If it is, great, leave it alone to automatically resize. If it is not, set -%# it to 65% of the body width. This amounts to emulating the min-width rule that -%# compliant browsers understand above. -* html #header ul#page-menu { - width: expression(document.body.clientWidth*0.65 < document.getElementById('page-menu').clientWidth ? "auto" : "65%"); - overflow: visible; -} - -#page-menu div { - position: relative; - z-index: 3; -} - -#page-menu div { background: url(<%$RT::WebImagesURL%>/css/cb.gif) no-repeat bottom left; } -#page-menu div div { background: url(<%$RT::WebImagesURL%>/css/cbr.gif) no-repeat bottom right; } -#page-menu div div div { - background: url(<%$RT::WebImagesURL%>/css/ctr.gif) no-repeat top right; - padding: 0.2em 1em 0.4em 1em; -} - -#page-menu.actions-present div div { background: url(<%$RT::WebImagesURL%>/css/cbr-b2lb.gif) no-repeat bottom right; } -#page-menu.actions-present div div div { background: url(<%$RT::WebImagesURL%>/css/ctr-b2lb.gif) no-repeat top right; } - -#header ul li { - display: inline; -} - -#header #actions-menu { - position: relative; - background: #08c; -} - -#actions-menu div { - position: relative; - z-index: 2; -} - -/*#actions-menu div { background: url(<%$RT::WebImagesURL%>/css/cb.gif) no-repeat bottom left; }*/ -#actions-menu div div { background: url(<%$RT::WebImagesURL%>/css/cbr.gif) no-repeat bottom right; } -#actions-menu div div div { - background: url(<%$RT::WebImagesURL%>/css/ctr.gif) no-repeat top right; - padding: 0.2em 1em 0.4em 1em; -} - -#header :link, -#header :visited -{ - color: white; - text-decoration: none; -} - -#header :link.selected, -#header :visited.selected, -#header :link:hover, -#header :visited:hover -{ - color: #fc6; /*#ff6;*/ -} - -#header :link.selected, -#header :visited.selected -{ - font-weight: bold; - text-decoration: underline; -} - diff --git a/rt/html/NoAuth/css/3.5-default/login.css b/rt/html/NoAuth/css/3.5-default/login.css deleted file mode 100644 index b9e7aeb41..000000000 --- a/rt/html/NoAuth/css/3.5-default/login.css +++ /dev/null @@ -1,85 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -#login-box { - width: 50%; - margin: 0 auto 4em auto; -} - -%# More rules only IE will recognize (but are still valid!) to correct for -%# IE's incorrect handling of auto margins and the W3C defined behavior. -%# text-align will affect a block element in IE, therefore centering it, like -%# left and right auto margins *should* -* html #login-box { - text-align: center; -} - -%# ... and align the text back the way it should be -* html #login-box .titlebox { - text-align: left; -} - -#login-box .input-row { - padding: 0.5em; -} - -#login-box .input-row .label { - width: 8em; - float: left; - text-align: right; - padding: 0.2em 1em 0 0; -} - -#login-box .input-row .input { - float: left; -} - -#login-box .button-row { - clear: both; - padding: 0.5em; - float: right; -} diff --git a/rt/html/NoAuth/css/3.5-default/logo.css b/rt/html/NoAuth/css/3.5-default/logo.css deleted file mode 100644 index e9c079cc0..000000000 --- a/rt/html/NoAuth/css/3.5-default/logo.css +++ /dev/null @@ -1,60 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -#logo { - float: left; - clear: left; - - margin: 0.5em 0 0.5em 10px; -} - -#logo img { border: none; } -#logo div.rtname { - text-align: center; - font-weight: bold; -} - diff --git a/rt/html/NoAuth/css/3.5-default/main.css b/rt/html/NoAuth/css/3.5-default/main.css deleted file mode 100644 index 13f1ba621..000000000 --- a/rt/html/NoAuth/css/3.5-default/main.css +++ /dev/null @@ -1,61 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -@import "misc.css"; -@import "login.css"; -@import "logo.css"; -@import "quickbar.css"; -@import "body.css"; -@import "approvals.css"; -@import "titlebox.css"; -@import "forms.css"; -@import "ticket.css"; -@import "transactions.css"; -@import "nav.css"; -@import "header.css"; -@import "footer.css"; - diff --git a/rt/html/NoAuth/css/3.5-default/misc.css b/rt/html/NoAuth/css/3.5-default/misc.css deleted file mode 100755 index 9e83ef448..000000000 --- a/rt/html/NoAuth/css/3.5-default/misc.css +++ /dev/null @@ -1,91 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -body { - font-family: Verdana, sans-serif; - font-size: 76%; - margin: 0; - background-color: white; -} - -.hide, .hidden { display: none !important; } - -#body.calpopup { - margin-left: 2em; -} - -.calendar { - text-align: center; - margin: 2em 0 0 0; -} - -.calendar td, .calendar th { padding: 0.1em 0.25em 0.1em 0.25em; } - -.calendar caption .month { - padding: 0 1em 0 1em; - font-size: 1.5em; -} - -.evenline { background-color: white; } -.oddline { background-color: #ddd; } - -td { - padding: 0.1em 0.5em 0.1em 0.5em; -} - -.clear { clear: both; } - -ul.action-results { - margin-top: 0; - margin-bottom: 0; -} - -#comp-Search-Build .titlebox-content { - padding-left: 0.7em; - padding-right: 0.3em; -} - diff --git a/rt/html/NoAuth/css/3.5-default/nav.css b/rt/html/NoAuth/css/3.5-default/nav.css deleted file mode 100644 index 78323aa91..000000000 --- a/rt/html/NoAuth/css/3.5-default/nav.css +++ /dev/null @@ -1,163 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -#nav { - clear: both; - font-size: 1.1em; -} - -#nav #system-menu, -#nav ul -{ - min-width: 85%; -} - -%# This is an interesting bit of CSS. expression() is an IE-only extension to -%# it's CSS implementation. Just in case other browsers might choke on it, -%# the rule is enclosed in a selector only IE will (wrongly) match to an element. -%# -%# The expression() function takes Javascript, and basically what it's doing here -%# is checking to see if the width of the menu would be greater than 85% of the body -%# width. If it is, great, leave it alone to automatically resize. If it is not, set -%# it to 85% of the body width. This amounts to emulating the min-width rule that -%# compliant browsers understand above. -* html #nav #system-menu { - width: expression(document.body.clientWidth*0.85 < document.getElementById('page-menu').clientWidth ? "auto" : "85%"); - overflow: visible; -} - -#nav ul { - float: left; - clear: left; - - color: #eee; - font-weight: bold; - - margin: 0; - padding: 0; - - list-style: none; -} - -#nav li ul { - margin-top: 0.75em; -} - -/* -%# We need the extra padding above for browsers where we display the arrows -%# but those don't work in IE so we don't want as much spacing -%# -%# IE wrongly matches the selector below even though there isn't an element -%# above <html> in the doc tree -*/ -* html #nav li ul { - margin-top: 0.25em; -} - -#nav li { - display: inline; - margin-bottom: 1em; - padding: 0.2em 0 0.4em 0; -} - -#nav li.first { padding-left: 1em; } - -#nav ul div div.wrapper { - text-align: left; - padding: 0.2em 1em 0.4em 0; -} - -/****/ - -#nav :link, -#nav :visited -{ - color: #ececec; - text-decoration: none; -} - -#nav :link.selected, -#nav :visited.selected, -#nav :link:hover, -#nav :visited:hover -{ - color: #fc6; /*#ff6;*/ -} - -#nav :link.selected, -#nav :visited.selected -{ - text-decoration: underline; -} - -html>body #nav :link.selected, -html>body #nav :visited.selected -{ - padding-bottom: 0.8em; - background: transparent url(<%$RT::WebImagesURL%>/css/dark-arrow.png) no-repeat bottom center; -} - -html>body #nav :link.selected.odd, -html>body #nav :visited.selected.odd -{ - padding-bottom: 0.8em; - background: transparent url(<%$RT::WebImagesURL%>/css/light-arrow.png) no-repeat bottom center; -} - -/* -#nav ul { background: #069 url(<%$RT::WebImagesURL%>/css/ctr.gif) no-repeat top right; } -#nav ul div { background: transparent url(<%$RT::WebImagesURL%>/css/cbr.gif) no-repeat bottom right; } -#nav ul.odd { background: #08c url(<%$RT::WebImagesURL%>/css/ctr.gif) no-repeat top right; } -#nav ul.odd div { background: transparent url(<%$RT::WebImagesURL%>/css/cbr.gif) no-repeat bottom right; } -*/ - - -#nav ul div.wrapper { background: transparent url(<%$RT::WebImagesURL%>/css/ctr.gif) no-repeat top right; } -#nav ul div { background: #069 url(<%$RT::WebImagesURL%>/css/cbr.gif) no-repeat bottom right; } -#nav ul.odd div.wrapper { background: transparent url(<%$RT::WebImagesURL%>/css/ctr.gif) no-repeat top right; } -#nav ul div.odd { background: #08c url(<%$RT::WebImagesURL%>/css/cbr.gif) no-repeat bottom right; } - diff --git a/rt/html/NoAuth/css/3.5-default/quickbar.css b/rt/html/NoAuth/css/3.5-default/quickbar.css deleted file mode 100644 index 16f83f789..000000000 --- a/rt/html/NoAuth/css/3.5-default/quickbar.css +++ /dev/null @@ -1,98 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -#quickbar #quick-personal { - display: inline; - color: #888; - padding: 0.5em 1em 0 0; - float: right; -} - -#quickbar #quick-personal span { - font-weight: bold; -} - -#quickbar #quick-personal :link, -#quickbar #quick-personal :visited -{ - color: #888; - font-weight: bold; -} - -#quickbar #quick-personal :link:hover, -#quickbar #quick-personal :visited:hover -{ - color: black; -} - -#quickbar #topactions { - float: right; - clear: right; - - font-size: 0.9em; - padding: 1em; -} - -#quickbar #topactions form { - display: inline; - margin-left: 1em; -} - -#quickbar #topactions form .button { - padding: 0 2px 0 2px; - font-size: 1em; - margin: 0; -} - -#quickbar #topactions form .field { - padding: 1px; - font-size: 0.9em; -} - -#quickbar #topactions form input.field { - padding: 3px; -} diff --git a/rt/html/NoAuth/css/3.5-default/ticket.css b/rt/html/NoAuth/css/3.5-default/ticket.css deleted file mode 100644 index 5e8eeb78a..000000000 --- a/rt/html/NoAuth/css/3.5-default/ticket.css +++ /dev/null @@ -1,57 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -.ticket-info-cfs .label { - vertical-align: top; -} - -.ticket-info-cfs ul { - margin: 0; - padding: 0; - margin-left: 0.5em; - list-style: none; -} diff --git a/rt/html/NoAuth/css/3.5-default/titlebox.css b/rt/html/NoAuth/css/3.5-default/titlebox.css deleted file mode 100644 index d4320c090..000000000 --- a/rt/html/NoAuth/css/3.5-default/titlebox.css +++ /dev/null @@ -1,189 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -.titlebox { - margin-bottom: 1em; -} - -.titlebox .titlebox-content { - margin-top: -1px; - margin: 0; - /*margin: 1em 2em 0.5em 2em;*/ -} - -.titlebox .titlebox-content .titlebox-content table { - margin: 1em 2em 0.5em 2em; -} -.titlebox th { - font-size: 0.8em; - -} - -.titlebox .titlebox-content table { - -} - - -%# TRS: I wish there was a more elegant way to do this... I essentially need to -%# select all elements X that do NOT have element Y as a descendant... which I can -%# fake with the child selector of CSS2, but IE is stupid and does not support that. - -% for (qw(index -% Search-Build -% User-Prefs -% Approvals -% Admin-Users-Modify -% SelfService -% SelfService-Closed -% )) -% { -#comp-<%$_%> .titlebox .titlebox-content, -% } -.titlebox .titlebox .titlebox-content -{ - background: #eee; - border-bottom: 1px solid #ccc; - border-right: 1px solid #ccc; - border-left: 0.5em solid #069; -} - -#login-box .titlebox .titlebox-content -{ - background: none; - border: none; -} - -.titlebox .titlebox-title { - position: relative; - font-weight: bold; - color: #930; - font-size: 1.2em; - padding: 0.2em 0 0.2em 4em; - border-bottom: 1px solid #069; -} - -.titlebox .titlebox-title .right { - position: absolute; - top: 0.5em; - right: 1.5em; - font-size: 0.9em; - color: #888; -} - -.titlebox .titlebox-title .right .selected { color: #930; } - -#body .titlebox .titlebox-title .right :link, -#body .titlebox .titlebox-title .right :visited { - color: #888; -} - -#body .titlebox .titlebox-title .right :link:hover, -#body .titlebox .titlebox-title .right :visited:hover { - color: #930; -} - -.titlebox .titlebox-title .widget a { - display: block; - padding-top: 1em; - width: 20px; - - background: url(<%$RT::WebImagesURL%>/css/rollup-arrow.gif) no-repeat center center; - - margin: 0; - text-indent: -9999px; - - position: absolute; - top: 0.4em; - left: 0.75em; - float: left; - -%# Basically IE5 will see those crazy backslashes and prematurely end the rule. -%# This allows values for IE 5's broken box model to be set before the hack and -%# the real values to be set after. We also set voice-family back to whatever it -%# would have been on the off chance it's actually used. - /* WIN IE5 hack */ - height: 7px; - voice-family: "\"}\""; - voice-family: inherit; - height: 0; - overflow: hidden; -} - -%# IE also doesn't support the child selector ">", so we can use it to set values -%# that only other browsers will see (in this case, playing nice with Opera, which -%# also suffers from the backslash hack above.) -html>body .titlebox .titlebox-title .widget a { - height: 0; - overflow: hidden; -} - -%# Compensates for IE's bad box model by hiding this rule from other browsers -* html .titlebox .titlebox-title .widget a { - background-position: center 0.3em; - left: -3.5em; -} - -.titlebox.rolled-up .titlebox-title .widget a { - background-image: url(<%$RT::WebImagesURL%>/css/rolldown-arrow.gif); -} - -#body .titlebox .titlebox-title :link, -#body .titlebox .titlebox-title :visited -{ - color: #930; - text-decoration: none; -} - -#body .titlebox .titlebox-title :link:hover, -#body .titlebox .titlebox-title :visited:hover -{ - text-decoration: underline; -} - -.titlebox .titlebox-content hr.clear { - visibility: hidden; -} diff --git a/rt/html/NoAuth/css/3.5-default/transactions.css b/rt/html/NoAuth/css/3.5-default/transactions.css deleted file mode 100755 index dfc4cb9d3..000000000 --- a/rt/html/NoAuth/css/3.5-default/transactions.css +++ /dev/null @@ -1,146 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -.ticket-transaction { - border-bottom: 1px solid #ddd; - border-right: 3px solid #069; -} - -#ticket-history .ticket-transaction { - border-bottom-color: #ccc; -} - -.ticket-transaction.even { - background: #eee; -} - -.ticket-transaction .date { - font-size: 0.9em; - width: 10em; -} - -.ticket-transaction .description { - font-weight: bold; - font-size: 0.9em; - text-align: left; -} - -.ticket-transaction .actions { - text-align: right; - font-weight: bold; -} - -.ticket-transaction .type { - background: #888; - width: 1.2em; - color: white; - text-align: center; - font-size: 1em; -} - -#body .ticket-transaction .type :link, -#body .ticket-transaction .type :visited -{ - color: white; - font-weight: normal; -} - -.ticket-transaction.basics { border-color: #b32; } -.ticket-transaction.basics .type { background: #b32; } -.ticket-summary .ticket-info-basics .titlebox-content { border-left: 0.5em solid #b32; } - -.ticket-transaction.people { border-color: #48c; } -.ticket-transaction.people .type { background: #48c; } -.ticket-summary .ticket-info-people .titlebox-content { border-left: 0.5em solid #48c; } - -%# light green - #ad8 -.ticket-transaction.links { border-color: #316531; } -.ticket-transaction.links .type { background: #316531; } -.ticket-summary .ticket-info-links .titlebox-content { border-left: 0.5em solid #316531; } - -%# orange - #d71 -.ticket-transaction.dates { border-color: #633063; } -.ticket-transaction.dates .type { background: #633063; } -.ticket-summary .ticket-info-dates .titlebox-content { border-left: 0.5em solid #633063; } - -.ticket-transaction.message { border-color: #069; } -.ticket-transaction.message .type { background: #069; } - -.ticket-transaction.other { border-color: #888; } - -.ticket-transaction td .message-header-value { - padding: 0; -} - -.ticket-transaction td .message-header-key { - padding: 0 1em 0 1.5em; - font-weight: bold; -} - -.ticket-transaction .downloadattachment { - float: right; - font-size: 0.9em; - text-align: right; -} - -.ticket-transaction .messagebody { - clear: both; - padding-left: 3em; - padding-bottom: 1em; -} - -%# Message stanza colors -.message-stanza-depth-0 { color: #000; } -.message-stanza-depth-1 { color: #600; } -.message-stanza-depth-2 { color: #060; } -.message-stanza-depth-3 { color: #006; } -.message-stanza-depth-4 { color: #c00; } -.message-stanza-depth-5 { color: #0c0; } -.message-stanza-depth-6 { color: #00c; } -.message-stanza-depth-7 { color: #f00; } -.message-stanza-depth-8 { color: #0f0; } -.message-stanza-depth-9 { color: #00f; } diff --git a/rt/html/NoAuth/css/autohandler b/rt/html/NoAuth/css/autohandler deleted file mode 100644 index 980e5f09d..000000000 --- a/rt/html/NoAuth/css/autohandler +++ /dev/null @@ -1,53 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%init> -RT::Interface::Web::StaticFileHeaders(); -$r->content_type('text/css'); -$m->call_next(); -return(); -</%init> diff --git a/rt/html/NoAuth/css/print.css b/rt/html/NoAuth/css/print.css deleted file mode 100644 index 40d23d0d6..000000000 --- a/rt/html/NoAuth/css/print.css +++ /dev/null @@ -1,85 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -* { - float: none; - position: static; -} - -body { - margin: 1em; - font-size: 10pt; -} - -#body { - margin: 0; -} - -#header h1 { - margin-bottom: 2em; -} - -#header { - padding: 0 !important; -} - -#quickbar, -#nav, -#header #page-menu, -#header #actions-menu, -.titlebox .title .widget, -#footer -{ -display: none; -} - -a:link, a:visited { - background: transparent; - font-weight: bold !important; - text-decoration: underline !important; -} - diff --git a/rt/html/NoAuth/images/back_home.gif b/rt/html/NoAuth/images/back_home.gif Binary files differdeleted file mode 100644 index 40b19c153..000000000 --- a/rt/html/NoAuth/images/back_home.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/cb-light.gif b/rt/html/NoAuth/images/css/cb-light.gif Binary files differdeleted file mode 100644 index d5e3059b0..000000000 --- a/rt/html/NoAuth/images/css/cb-light.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/cb.gif b/rt/html/NoAuth/images/css/cb.gif Binary files differdeleted file mode 100644 index 53bb2aec2..000000000 --- a/rt/html/NoAuth/images/css/cb.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/cbr-b2g.gif b/rt/html/NoAuth/images/css/cbr-b2g.gif Binary files differdeleted file mode 100644 index 6bca03d10..000000000 --- a/rt/html/NoAuth/images/css/cbr-b2g.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/cbr-b2lb.gif b/rt/html/NoAuth/images/css/cbr-b2lb.gif Binary files differdeleted file mode 100644 index d207f846b..000000000 --- a/rt/html/NoAuth/images/css/cbr-b2lb.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/cbr-gray.gif b/rt/html/NoAuth/images/css/cbr-gray.gif Binary files differdeleted file mode 100644 index d7327103a..000000000 --- a/rt/html/NoAuth/images/css/cbr-gray.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/cbr-trans.gif b/rt/html/NoAuth/images/css/cbr-trans.gif Binary files differdeleted file mode 100644 index dc272ee5d..000000000 --- a/rt/html/NoAuth/images/css/cbr-trans.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/cbr.gif b/rt/html/NoAuth/images/css/cbr.gif Binary files differdeleted file mode 100644 index 754cee19b..000000000 --- a/rt/html/NoAuth/images/css/cbr.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/ct-light.gif b/rt/html/NoAuth/images/css/ct-light.gif Binary files differdeleted file mode 100644 index 55125b0fa..000000000 --- a/rt/html/NoAuth/images/css/ct-light.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/ct.gif b/rt/html/NoAuth/images/css/ct.gif Binary files differdeleted file mode 100644 index d16a5c57f..000000000 --- a/rt/html/NoAuth/images/css/ct.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/ctr-b2g.gif b/rt/html/NoAuth/images/css/ctr-b2g.gif Binary files differdeleted file mode 100644 index 540e6d0ef..000000000 --- a/rt/html/NoAuth/images/css/ctr-b2g.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/ctr-b2lb.gif b/rt/html/NoAuth/images/css/ctr-b2lb.gif Binary files differdeleted file mode 100644 index c98b18c9d..000000000 --- a/rt/html/NoAuth/images/css/ctr-b2lb.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/ctr-gray.gif b/rt/html/NoAuth/images/css/ctr-gray.gif Binary files differdeleted file mode 100644 index 8d5e5dd32..000000000 --- a/rt/html/NoAuth/images/css/ctr-gray.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/ctr-trans.gif b/rt/html/NoAuth/images/css/ctr-trans.gif Binary files differdeleted file mode 100644 index bb316cf04..000000000 --- a/rt/html/NoAuth/images/css/ctr-trans.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/ctr.gif b/rt/html/NoAuth/images/css/ctr.gif Binary files differdeleted file mode 100644 index 9754e1567..000000000 --- a/rt/html/NoAuth/images/css/ctr.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/dark-arrow-up.png b/rt/html/NoAuth/images/css/dark-arrow-up.png Binary files differdeleted file mode 100644 index 443096aa5..000000000 --- a/rt/html/NoAuth/images/css/dark-arrow-up.png +++ /dev/null diff --git a/rt/html/NoAuth/images/css/dark-arrow.png b/rt/html/NoAuth/images/css/dark-arrow.png Binary files differdeleted file mode 100644 index a83500aad..000000000 --- a/rt/html/NoAuth/images/css/dark-arrow.png +++ /dev/null diff --git a/rt/html/NoAuth/images/css/light-arrow-up.png b/rt/html/NoAuth/images/css/light-arrow-up.png Binary files differdeleted file mode 100644 index c209d4335..000000000 --- a/rt/html/NoAuth/images/css/light-arrow-up.png +++ /dev/null diff --git a/rt/html/NoAuth/images/css/light-arrow.png b/rt/html/NoAuth/images/css/light-arrow.png Binary files differdeleted file mode 100644 index 575d4e5ec..000000000 --- a/rt/html/NoAuth/images/css/light-arrow.png +++ /dev/null diff --git a/rt/html/NoAuth/images/css/rolldown-arrow.gif b/rt/html/NoAuth/images/css/rolldown-arrow.gif Binary files differdeleted file mode 100644 index 3c296dcae..000000000 --- a/rt/html/NoAuth/images/css/rolldown-arrow.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/css/rolldown-arrow.png b/rt/html/NoAuth/images/css/rolldown-arrow.png Binary files differdeleted file mode 100644 index 33d8ab1e2..000000000 --- a/rt/html/NoAuth/images/css/rolldown-arrow.png +++ /dev/null diff --git a/rt/html/NoAuth/images/css/rollup-arrow.gif b/rt/html/NoAuth/images/css/rollup-arrow.gif Binary files differdeleted file mode 100644 index f009ff4c6..000000000 --- a/rt/html/NoAuth/images/css/rollup-arrow.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/head_requestracker.gif b/rt/html/NoAuth/images/head_requestracker.gif Binary files differdeleted file mode 100644 index 73315e918..000000000 --- a/rt/html/NoAuth/images/head_requestracker.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/rt.jpg b/rt/html/NoAuth/images/rt.jpg Binary files differdeleted file mode 100644 index a137a932b..000000000 --- a/rt/html/NoAuth/images/rt.jpg +++ /dev/null diff --git a/rt/html/NoAuth/images/spacer.gif b/rt/html/NoAuth/images/spacer.gif Binary files differdeleted file mode 100644 index 5bfd67a2d..000000000 --- a/rt/html/NoAuth/images/spacer.gif +++ /dev/null diff --git a/rt/html/NoAuth/images/squares_blue.gif b/rt/html/NoAuth/images/squares_blue.gif Binary files differdeleted file mode 100644 index a28da5ce1..000000000 --- a/rt/html/NoAuth/images/squares_blue.gif +++ /dev/null diff --git a/rt/html/NoAuth/js/ahah.js b/rt/html/NoAuth/js/ahah.js deleted file mode 100644 index 03ed12a97..000000000 --- a/rt/html/NoAuth/js/ahah.js +++ /dev/null @@ -1,80 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -/* -% $r->content_type('application/x-javascript'); -*/ -// Fetched from http://www.opendarwin.org/~drernie/src/ahah.js -function ahah(url, target, delay) { - // document.getElementById(target).innerHTML = 'Loading <a href="'+url+'">'+url +'</a>...'; - if (window.XMLHttpRequest) { - req = new XMLHttpRequest(); - } else if (window.ActiveXObject) { - req = new ActiveXObject("Microsoft.XMLHTTP"); - } - if (req != undefined) { - req.onreadystatechange = function() {ahahDone(url, target, delay);}; - req.open("GET", url, true); - req.send(""); - } -} - -function ahahDone(url, target, delay) { - if (req.readyState == 4) { // only if req is "loaded" - if (req.status == 200) { // only if "OK" - document.getElementById(target).innerHTML = req.responseText; - } else { - document.getElementById(target).innerHTML="Error loading '"+url+"':\n"+req.statusText; - } - if (delay != undefined) { - setTimeout("ahah(url,target,delay)", delay); // resubmit after delay - //server should ALSO delay before responding - } - } -} - -% $m->abort(); diff --git a/rt/html/NoAuth/js/autohandler b/rt/html/NoAuth/js/autohandler deleted file mode 100644 index fd1b90075..000000000 --- a/rt/html/NoAuth/js/autohandler +++ /dev/null @@ -1,53 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%init> -&RT::Interface::Web::StaticFileHeaders(); -$r->content_type('application/x-javascript'); -$m->call_next(); -return(); -</%init> diff --git a/rt/html/NoAuth/js/cascaded.js b/rt/html/NoAuth/js/cascaded.js deleted file mode 100644 index 79da4167f..000000000 --- a/rt/html/NoAuth/js/cascaded.js +++ /dev/null @@ -1,66 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -function filter_cascade (id, val) { - var select = document.getElementById(id); - if (!select) { return }; - var i; - var children = select.childNodes; - for (i in children) { - var style = children[i].style; - if (!style) { continue }; - if (val == '') { - style.display = 'block'; - continue; - } - if (children[i].label.substr(0, val.length) == val) { - style.display = 'block'; - continue; - } - style.display = 'none'; - } -} diff --git a/rt/html/NoAuth/js/class.js b/rt/html/NoAuth/js/class.js deleted file mode 100644 index 9e4c70ea5..000000000 --- a/rt/html/NoAuth/js/class.js +++ /dev/null @@ -1,62 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -/* by TKirby, released under GPL */ - - function _ClassSetup(Object) { - this.prototype = Object; - return this; - } - - function Class(name) { - var _newclass_; - eval("window."+name+" = new Function('this."+name+".apply(this,arguments);');"); - eval("window."+name+".define = _ClassSetup;"); - eval("_newclass_ = window."+name+";"); - return _newclass_; - } - diff --git a/rt/html/NoAuth/js/combobox.js b/rt/html/NoAuth/js/combobox.js deleted file mode 100644 index 9225870b6..000000000 --- a/rt/html/NoAuth/js/combobox.js +++ /dev/null @@ -1,265 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -function ComboBox_InitWith(n) { - if ( typeof( window.addEventListener ) != "undefined" ) { - window.addEventListener("load", ComboBox_Init(n), false); - } else if ( typeof( window.attachEvent ) != "undefined" ) { - window.attachEvent("onload", ComboBox_Init(n)); - } else { - ComboBox_Init(n)(); - } -} -function ComboBox_Init(n) { - return function () { - if ( ComboBox_UplevelBrowser( n ) ) { - ComboBox_Load( n ); - } - } -} -function ComboBox_UplevelBrowser( n ) { - if( typeof( document.getElementById ) == "undefined" ) return false; - var combo = document.getElementById( n + "_Container" ); - if( combo == null || typeof( combo ) == "undefined" ) return false; - if( typeof( combo.style ) == "undefined" ) return false; - if( typeof( combo.innerHTML ) == "undefined" ) return false; - return true; -} -function ComboBox_Load( comboId ) { - var combo = document.getElementById( comboId + "_Container" ); - var button = document.getElementById( comboId + "_Button" ); - var list = document.getElementById( comboId + "_List" ); - var text = document.getElementById( comboId ); - - - combo.List = list; - combo.Button = button; - combo.Text = text; - - button.Container = combo; - button.Toggle = ComboBox_ToggleList; - button.onclick = button.Toggle; - button.onmouseover = function(e) { this.Container.List.DisableBlur(e); }; - button.onmouseout = function(e) { this.Container.List.EnableBlur(e); }; - button.innerHTML = "\u25BC"; - button.onselectstart = function(e){ return false; }; - button.style.height = ( list.offsetHeight - 4 ) + "px"; - - text.Container = combo; - text.TypeDown = ComboBox_TextTypeDown; - text.KeyAccess = ComboBox_TextKeyAccess; - text.onkeyup = function(e) { this.KeyAccess(e); this.TypeDown(e); }; - text.style.width = ( list.offsetWidth ) + "px"; - - list.Container = combo; - list.Show = ComboBox_ShowList; - list.Hide = ComboBox_HideList; - list.EnableBlur = ComboBox_ListEnableBlur; - list.DisableBlur = ComboBox_ListDisableBlur; - list.Select = ComboBox_ListItemSelect; - list.ClearSelection = ComboBox_ListClearSelection; - list.KeyAccess = ComboBox_ListKeyAccess; - list.FireTextChange = ComboBox_ListFireTextChange; - list.onchange = null; - list.onclick = function(e){ this.Select(e); this.ClearSelection(); this.FireTextChange(); }; - list.onkeyup = function(e) { this.KeyAccess(e); }; - list.EnableBlur(null); - list.style.position = "absolute"; - list.size = ComboBox_GetListSize( list ); - list.IsShowing = true; - list.Hide(); - -} -function ComboBox_InitEvent( e ) { - if( typeof( e ) == "undefined" && typeof( window.event ) != "undefined" ) e = window.event; - if( e == null ) e = new Object(); - return e; -} -function ComboBox_ListClearSelection() { - if ( typeof( this.Container.Text.createTextRange ) == "undefined" ) return; - var rNew = this.Container.Text.createTextRange(); - rNew.moveStart('character', this.Container.Text.value.length) ; - rNew.select(); -} -function ComboBox_GetListSize( theList ) { - ComboBox_EnsureListSize( theList ); - return theList.listSize; -} -function ComboBox_EnsureListSize( theList ) { - if ( typeof( theList.listSize ) == "undefined" ) { - if( typeof( theList.getAttribute ) != "undefined" ) { - if( theList.getAttribute( "listSize" ) != null && theList.getAttribute( "listSize" ) != "" ) { - theList.listSize = theList.getAttribute( "listSize" ); - return; - } - } - if( theList.options.length > 0 ) { - theList.listSize = theList.options.length; - return; - } - theList.listSize = 4; - } -} -function ComboBox_ListKeyAccess(e) { //Make enter/space and escape do the right thing :) - e = ComboBox_InitEvent( e ); - if( e.keyCode == 13 || e.keyCode == 32 ) { - this.Select(); - return; - } - if( e.keyCode == 27 ) { - this.Hide(); - this.Container.Text.focus(); - return; - } -} -function ComboBox_TextKeyAccess(e) { //Make alt+arrow expand the list - e = ComboBox_InitEvent( e ); - if( e.altKey && (e.keyCode == 38 || e.keyCode == 40) ) { - this.Container.List.Show(); - } -} -function ComboBox_TextTypeDown(e) { //Make the textbox do a type-down on the list - e = ComboBox_InitEvent( e ); - var items = this.Container.List.options; - if( this.value == "" ) return; - var ctrlKeys = Array( 8, 46, 37, 38, 39, 40, 33, 34, 35, 36, 45, 16, 20 ); - for( var i = 0; i < ctrlKeys.length; i++ ) { - if( e.keyCode == ctrlKeys[i] ) return; - } - for( var i = 0; i < items.length; i++ ) { - var item = items[i]; - if( item.text.toLowerCase().indexOf( this.value.toLowerCase() ) == 0 ) { - this.Container.List.selectedIndex = i; - if ( typeof( this.Container.Text.createTextRange ) != "undefined" ) { - this.Container.List.Select(); - } - break; - } - } -} -function ComboBox_ListFireTextChange() { - var textOnChange = this.Container.Text.onchange; - if ( textOnChange != null && typeof(textOnChange) == "function" ) { - textOnChange(); - } -} -function ComboBox_ListEnableBlur(e) { - this.onblur = this.Hide; -} -function ComboBox_ListDisableBlur(e) { - this.onblur = null; -} -function ComboBox_ListItemSelect(e) { - if( this.options.length > 0 ) { - var text = this.Container.Text; - var oldValue = text.value; - var newValue = this.options[ this.selectedIndex ].text; - text.value = newValue; - if ( typeof( text.createTextRange ) != "undefined" ) { - if (newValue != oldValue) { - var rNew = text.createTextRange(); - rNew.moveStart('character', oldValue.length) ; - rNew.select(); - } - } - } - this.Hide(); - this.Container.Text.focus(); -} -function ComboBox_ToggleList(e) { - if( this.Container.List.IsShowing == true ) { - this.Container.List.Hide(); - } else { - this.Container.List.Show(); - } -} -function ComboBox_ShowList(e) { - if ( !this.IsShowing && !this.disabled ) { - this.style.width = ( this.Container.offsetWidth ) + "px"; - this.style.top = ( this.Container.offsetHeight + ComboBox_RecursiveOffsetTop(this.Container,true) ) + "px"; - this.style.left = ( ComboBox_RecursiveOffsetLeft(this.Container,true) + 1 ) + "px"; - ComboBox_SetVisibility(this,true); - this.focus(); - this.IsShowing = true; - } -} -function ComboBox_HideList(e) { - if( this.IsShowing ) { - ComboBox_SetVisibility(this,false); - this.IsShowing = false; - } -} -function ComboBox_SetVisibility(theList, isVisible) { - setVisibility(theList, isVisible); -} -function ComboBox_RecursiveOffsetTop(thisObject,isFirst) { - if(thisObject.offsetParent) { - if ( thisObject.style.position == "absolute" && !isFirst && typeof(document.designMode) != "undefined" ) { - return 0; - } - return (thisObject.offsetTop + ComboBox_RecursiveOffsetTop(thisObject.offsetParent,false)); - } else { - return thisObject.offsetTop; - } -} -function ComboBox_RecursiveOffsetLeft(thisObject,isFirst) { - if(thisObject.offsetParent) { - if ( thisObject.style.position == "absolute" && !isFirst && typeof(document.designMode) != "undefined" ) { - return 0; - } - return (thisObject.offsetLeft + ComboBox_RecursiveOffsetLeft(thisObject.offsetParent,false)); - } else { - return thisObject.offsetLeft; - } -} -function ComboBox_SimpleAttach(selectElement,textElement) { - textElement.value = selectElement.options[ selectElement.options.selectedIndex ].text; - var textOnChange = textElement.onchange; - if ( textOnChange != null && typeof( textOnChange ) == "function" ) { - textOnChange(); - } -} diff --git a/rt/html/NoAuth/js/list.js b/rt/html/NoAuth/js/list.js deleted file mode 100644 index 9753b9771..000000000 --- a/rt/html/NoAuth/js/list.js +++ /dev/null @@ -1,159 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -/* by TKirby, released under GPL */ -/* Define the "list" Class */ -Class("list").define({ - name : null, - xml : null, - sels : null, - list : function (src, esrc, name) { this.init(src, esrc, name); }, - read : function () { - var i = 0; - if(this.xml.readyState!=4) { setTimeout(this.name+".read()", 100); } - else if(this.xml.status!=200) alert("Document not available."); - else { - var doc = this.xml.responseXML; - var nNode = null; - if(doc.childNodes[0].nodeName=="parseerror") alert("Parse Error."); - doc = doc.getElementsByTagName("list")[0]; - for(i=0;i<doc.childNodes.length;i++) { - if(doc.childNodes[i].childNodes.length>0) { - nNode = document.createElement("option"); - nNode.appendChild(document.createTextNode(doc.childNodes[i].childNodes[0].nodeValue)); - this.sels[0].appendChild(nNode); - } - } - } - }, - - init : function (src,esrc,name) { - if(!src) return; - this.name = name; - this.sels = new Array(); - var i = 0; - for(i=0;i<src.childNodes.length;i++) { - if(src.childNodes[i].nodeName=="select" || src.childNodes[i].nodeName=="SELECT") { - this.sels.push(src.childNodes[i]); - } - - if((src.childNodes[i].nodeName=="input" || src.childNodes[i].nodeName=="INPUT") - && (src.childNodes[i].name=="fromjs")) { - src.childNodes[i].value = 1; - } - - if((src.childNodes[i].nodeName=="input" || src.childNodes[i].nodeName=="INPUT") - && (src.childNodes[i].type=="submit" || src.childNodes[i].type=="SUBMIT")) { - - if (src.childNodes[i].name.indexOf("Save") < 0) { - var tmp = document.createElement("input"); - tmp.type = "button"; - tmp.name = src.childNodes[i].name; - tmp.value = src.childNodes[i].value; - src.replaceChild(tmp,src.childNodes[i]); - } - - if(src.childNodes[i].name=="add") - src.childNodes[i].onclick = new Function(this.name+".add();"); - if(src.childNodes[i].name=="remove") - src.childNodes[i].onclick = new Function(this.name+".remove();"); - if(src.childNodes[i].name=="moveup") - src.childNodes[i].onclick = new Function(this.name+".moveup();"); - if(src.childNodes[i].name=="movedown") - src.childNodes[i].onclick = new Function(this.name+".movedown();"); - } - } - if (esrc) { - this.xml = (window.navigator.appName!="Microsoft Internet Explorer" - ?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP")); - this.xml.open("GET", esrc); - this.xml.send(""); - setTimeout(this.name+".read()", 100); - } - }, - - add : function() { - var i, j = 0; - var dNode = null; - for(i=0;i<this.sels[0].length;i++) if(this.sels[0][i].selected) { - for(j=0;j<this.sels[1].length;j++) if(this.sels[1][j].value==this.sels[0][i].value) break; - if(j==this.sels[1].length) dNode = this.sels[0][i].cloneNode(true), - this.sels[1].appendChild(dNode); - } - }, - - moveup : function() { this.move(-1); }, - movedown : function() { this.move(1); }, - move : function(v) { - var i = 0; - if(v<0) for(i=0;i<this.sels[1].length;i++) this.moveOne(v, i); - else if(v>0) for(i=this.sels[1].length-1;i>=0;i--)this.moveOne(v, i); - }, - - moveOne : function(v, i) { - var ins = v + i; - if(ins<0 || ins>=this.sels[1].length) return; - if(this.sels[1][ins].selected) return; - if(this.sels[1][i].selected) { - Node = this.sels[1][i]; - this.sels[1].removeChild(Node); - this.sels[1].insertBefore(Node, this.sels[1][ins]); - } - }, - - remove : function() { - var i = 0; - for(i=this.sels[1].length-1;i>=0;i--) if(this.sels[1][i].selected) - this.sels[1].removeChild(this.sels[1][i]); - }, - - selectAll: function() { - var i = 0; - for(i=0;i<this.sels[0].length;i++) this.sels[0][i].selected = false; - for(i=0;i<this.sels[1].length;i++) this.sels[1][i].selected = true; - } -}); diff --git a/rt/html/NoAuth/js/titlebox-state.js b/rt/html/NoAuth/js/titlebox-state.js deleted file mode 100644 index 8950f9e62..000000000 --- a/rt/html/NoAuth/js/titlebox-state.js +++ /dev/null @@ -1,83 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -function createCookie(name,value,days) { - var path = "<%$RT::WebPath%>" ? "<%$RT::WebPath%>" : "/"; - - if (days) { - var date = new Date(); - date.setTime(date.getTime()+(days*24*60*60*1000)); - var expires = "; expires="+date.toGMTString(); - } - else - expires = ""; - - document.cookie = name+"="+value+expires+"; path="+path; -} - -function loadTitleBoxStates() { - var cookies = document.cookie.split(/;\s*/); - var len = cookies.length; - - for (var i = 0; i < len; i++) { - var c = cookies[i].split('='); - - if (c[0].match(/^TitleBox--/)) { - var e = document.getElementById(c[0]); - if (e) { - var e2 = e.parentNode; - - if (c[1] != 0) { - set_rollup_state(e,e2,'shown'); - } - else { - set_rollup_state(e,e2,'hidden'); - } - } - } - } -} diff --git a/rt/html/NoAuth/js/util.js b/rt/html/NoAuth/js/util.js deleted file mode 100644 index 0de071ad3..000000000 --- a/rt/html/NoAuth/js/util.js +++ /dev/null @@ -1,250 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -/* $(...) - Returns DOM node or array of nodes (if more then one argument passed). - If argument is node object allready then do nothing. - // Stolen from Prototype -*/ -function $() { - var elements = new Array(); - - for (var i = 0; i < arguments.length; i++) { - var element = arguments[i]; - if (typeof element == 'string') - element = document.getElementById(element); - - if (arguments.length == 1) - return element; - - elements.push(element); - } - - return elements; -} - -/* Visibility */ - -function show(id) { delClass( id, 'hidden' ) } -function hide(id) { addClass( id, 'hidden' ) } - -function hideshow(id) { return toggleVisibility( id ) } -function toggleVisibility(id) { - var e = $(id); - - if ( e.className.match( /\bhidden\b/ ) ) - show(e); - else - hide(e); - - return false; -} - -function setVisibility(id, visibility) { - if ( visibility ) show(id); - else hide(id); -} - -function switchVisibility(id1, id2) { - // Show both and then hide the one we want - show(id1); - show(id2); - hide(id2); - return false; -} - -/* Classes */ - -function addClass(id, value) { - var e = $(id); - if ( e.className.match( new RegExp('\b'+ value +'\b') ) ) - return; - e.className += e.className? ' '+value : value; -} - -function delClass(id, value) { - var e = $(id); - e.className = e.className.replace( new RegExp('\\s?\\b'+ value +'\\b', 'g'), '' ); -} - -/* Rollups */ - -function rollup(id) { - var e = $(id); - var e2 = e.parentNode; - - if (e.className.match(/\bhidden\b/)) { - set_rollup_state(e,e2,'shown'); - createCookie(id,1,365); - } - else { - set_rollup_state(e,e2,'hidden'); - createCookie(id,0,365); - } - return false; -} - -function set_rollup_state(e,e2,state) { - if (e && e2) { - if (state == 'shown') { - show(e); - delClass( e2, 'rolled-up' ); - } - else if (state == 'hidden') { - hide(e); - addClass( e2, 'rolled-up' ); - } - } -} - - -/* onload handlers */ - -var onLoadStack = new Array(); -var onLoadLastStack = new Array(); -var onLoadExecuted = 0; - -function onLoadHook(commandStr) { - if(typeof(commandStr) == "string") { - onLoadStack[ onLoadStack.length ] = commandStr; - return true; - } - return false; -} - -// some things *really* need to be done after everything else -function onLoadLastHook(commandStr) { - if(typeof(commandStr) == "string"){ - onLoadLastStack[onLoadLastStack.length] = commandStr; - return true; - } - return false; -} - -function doOnLoadHooks() { - if(onLoadExecuted) return; - - var i; - for ( i in onLoadStack ) { - eval( onLoadStack[i] ); - } - for ( i in onLoadLastStack ) { - eval( onLoadLastStack[i] ); - } - onLoadExecuted = 1; -} - -window.onload = doOnLoadHooks; - -/* calendar functions */ - -function openCalWindow(field) { - var objWindow = window.open('<%$RT::WebPath%>/Helpers/CalPopup.html?field='+field, - 'RT_Calendar', - 'height=235,width=285,scrollbars=1'); - objWindow.focus(); -} - -function createCalendarLink(input) { - var e = $(input); - if (e) { - var link = document.createElement('a'); - link.setAttribute('href', '#'); - - clickevent = function clickevent(e) { openCalWindow(input); return false; }; - if (! addEvent(link, "click", clickevent)) { - return false; - } - - var text = document.createTextNode('<% loc("Choose a date") %>'); - link.appendChild(text); - - var space = document.createTextNode(' '); - - e.parentNode.insertBefore(link, e.nextSibling); - e.parentNode.insertBefore(space, e.nextSibling); - - return true; - } - return false; -} - -/* other utils */ - -function focusElementById(id) { - var e = $(id); - if (e) e.focus(); -} - -function updateParentField(field, value) { - if (window.opener) { - window.opener.$(field).value = value; - window.close(); - } -} - -function addEvent(obj, sType, fn) { - if (obj.addEventListener) { - obj.addEventListener(sType, fn, false); - } else if (obj.attachEvent) { - var r = obj.attachEvent("on"+sType, fn); - } else { - return false; - } - return true; -} - -function setCheckbox(form, name, val) { - var myfield = form.getElementsByTagName('input'); - for ( var i = 0; i < myfield.length; i++ ) { - if ( name && myfield[i].name != name ) continue; - if ( myfield[i].type != 'checkbox' ) continue; - - myfield[i].checked = val; - } -} - diff --git a/rt/html/Prefs/Elements/Tabs b/rt/html/Prefs/Elements/Tabs deleted file mode 100644 index e706d9a73..000000000 --- a/rt/html/Prefs/Elements/Tabs +++ /dev/null @@ -1,72 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<& /User/Elements/Tabs, - subtabs => $tabs, - current_tab => 'Prefs/MyRT.html', - current_subtab => $current_subtab, - Title => $Title &> - -<%INIT> -my $tabs; -unless ($Searches) { - $Searches = [$m->comp("/Search/Elements/SearchesForObject", Object => RT::System->new($session{'CurrentUser'}))]; -} - -$tabs->{a} = { title => loc('Quick search'), - path => 'Prefs/Quicksearch.html' }; -for my $search (@$Searches) { - $tabs->{$search->[0]} = { title => $search->[0], - path => "Prefs/Search.html?".$m->comp('/Elements/QueryString', name => ref($search->[1]).'-'.$search->[1]->Id) }; -} -</%INIT> -<%ARGS> -$GroupObj => undef -$current_subtab => undef -$Title => undef -$Searches => undef -</%ARGS> diff --git a/rt/html/Prefs/MyRT.html b/rt/html/Prefs/MyRT.html deleted file mode 100644 index ba35fd214..000000000 --- a/rt/html/Prefs/MyRT.html +++ /dev/null @@ -1,151 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<& /Elements/Header, Title => $title &> -<& /Prefs/Elements/Tabs, - current_tab => 'Prefs/MyRT.html', - Title => $title, - Searches => \@sys_searches -&> - -<& /Widgets/SelectionBox:header, nojs => 1 &> - -<& /Elements/ListActions, actions => \@actions &> -<br /> - -<form method="post" action="MyRT.html"> -<input type="hidden" name="Reset" value="1" /> -<input type="submit" class="button" value="<%loc('Reset to default')%>"> -</form> - -<br /> - -% for my $pane (@panes) { -<&|/Widgets/TitleBox, title => loc('RT at a glance').': '.loc($pane->{Name}), bodyclass => "" &> -<& /Widgets/SelectionBox:show, self => $pane, nojs => 1 &></&> -<br /> -% } -<&|/Widgets/TitleBox, title => loc('Options'), bodyclass => "" &> -<form method="post" action="MyRT.html"> - <&|/l&>Rows per box</&>:<input name="SummaryRows" value="<% $ARGS{SummaryRows} %>" /> <input type="submit" class="button" value="<%loc('Save')%>" /> -</form> -</&> -<%INIT> -my @actions; - -my $title = loc("Customize").' '.loc("RT at a glance"); -my $user = $session{'CurrentUser'}->UserObj; - -if ($ARGS{Reset}) { - $user->SetPreferences('HomepageSettings', {}); - delete $session{'my_rt_portlets'}; -} - -unless (exists $session{'my_rt_portlets'}) { - my ($default_portlets) = RT::System->new($session{'CurrentUser'})->Attributes->Named('HomepageSettings'); - my $portlets = $default_portlets ? $default_portlets->Content : {}; - $session{'my_rt_portlets'} = $user->Preferences('HomepageSettings', $portlets); -} -if ($ARGS{SummaryRows}) { - $user->SetPreferences('SummaryRows', $ARGS{SummaryRows}); - push @actions, loc ('Preferences saved for [_1].', loc('summary rows')); -} -else { - $ARGS{SummaryRows} = $user->Preferences('SummaryRows', $RT::DefaultSummaryRows); -} - - -my $portlets = $session{'my_rt_portlets'}; - -my %allowed_components = map {$_ => 1} @{$RT::HomepageComponents}; -my @items; - -push @items, map {["component-$_", $_]} sort keys %allowed_components; - -my $sys = RT::System->new($session{'CurrentUser'}); -my @objs = ($sys); - -push @objs, RT::SavedSearches->new( $session{CurrentUser} )->_PrivacyObjects - if $session{'CurrentUser'}->HasRight( Right => 'LoadSavedSearch', - Object => $RT::System ); - -my @sys_searches; -for my $object (@objs) { - for ($m->comp("/Search/Elements/SearchesForObject", Object => $object)) { - my ($desc, $search) = @$_; - my $SearchType = $search->Content->{'SearchType'} || 'Ticket'; - if ($object eq $sys && $SearchType eq 'Ticket') { - push @items, ["system-$desc", $desc]; - push @sys_searches, [$desc, $search]; - } - else { - my $oid = ref($object).'-'.$object->Id.'-SavedSearch-'.$search->Id; - my $type = ($SearchType eq 'Ticket') - ? 'Saved Search' : $SearchType; # loc - push @items, ["saved-$oid", loc($type).": $desc"]; - } - } -} - -my @panes = $m->comp( - '/Admin/Elements/ConfigureMyRT', - panes => ['body', 'summary'], - Action => 'MyRT.html', - items => \@items, - current_portlets => $portlets, - OnSave => sub { - my ( $conf, $pane ) = @_; - $user->SetPreferences( 'HomepageSettings', $conf ); - push @actions, loc( 'Preferences saved for [_1].', $pane ); - delete $session{'my_rt_portlets'}; - } -); - -$m->comp( '/Widgets/SelectionBox:process', %ARGS, self => $_, nojs => 1 ) - for @panes; - -</%INIT> diff --git a/rt/html/Prefs/Quicksearch.html b/rt/html/Prefs/Quicksearch.html deleted file mode 100644 index f4becc74a..000000000 --- a/rt/html/Prefs/Quicksearch.html +++ /dev/null @@ -1,96 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<& /Elements/Header, Title => $title &> -<& /Prefs/Elements/Tabs, - current_tab => 'Prefs/MyRT.html', - current_subtab => 'Prefs/Quicksearch.html', - Title => $title -&> -<& /Elements/ListActions, actions => \@actions &> -<h1><&|/l&>Select queues to be displayed on the "RT at a glance" page</&></h1> -<form method="post" action="Quicksearch.html" name="Preferences"> -<ul> -% for my $queue (@queues) { -<li><input type="checkbox" class="checkbox" name="Want-<%$queue->Name%>" value="1" -% unless ($unwanted->{$queue->Name}) { -checked -% } -/><%$queue->Name%>: <%$queue->Description%></li> -% } -</ul> -<& /Elements/Submit, Caption => loc("Save Changes"), Label => loc('Save'), Name => 'Save'&> - -</form> - -<%INIT> -my @actions; -my $title = loc("Customize").' '.loc("Quick search"); -# The queue list is not loaded from cache, so it might be a bit inconsistent -my $user = $session{'CurrentUser'}->UserObj; -my $unwanted = $user->Preferences('QuickSearch', {}); -my $Queues = RT::Queues->new($session{'CurrentUser'}); -$Queues->UnLimit; -my @queues = grep {$_->CurrentUserHasRight('ShowTicket')} @{$Queues->ItemsArrayRef}; - -if ($ARGS{'Save'}) { - for my $queue (@queues) { - if ($ARGS{"Want-".$queue->Name}) { - delete $unwanted->{$queue->Name}; - } - else { - ++$unwanted->{$queue->Name}; - } - } - - $user->SetPreferences('QuickSearch', $unwanted); - push @actions, loc ('Preferences saved.'); - # Let QueueSummary rebuild the cache - delete $session{'quick_search_queues'}; -} - -</%INIT> diff --git a/rt/html/Prefs/Search.html b/rt/html/Prefs/Search.html deleted file mode 100644 index 8754d535d..000000000 --- a/rt/html/Prefs/Search.html +++ /dev/null @@ -1,108 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<& /Elements/Header, Title => $title &> -<& /Prefs/Elements/Tabs, - current_tab => 'Prefs/MyRT.html', -# current_subtab => 'Prefs/Search.html?name='.$m->comp('/Elements/QueryString', name => $ARGS{name}), - current_subtab => 'Prefs/Search.html?name='.$ARGS{name}, - Title => $title -&> -<& /Elements/ListActions, actions => \@actions &> -% if ($session{'CurrentUser'}->HasRight( Object=> $RT::System, Right => 'SuperUser')) { -<p> - <&|/l&>You can also edit the predefined search itself</&>: - <a href="<% $RT::WebPath.'/Search/Build.html?'. - $m->comp('/Elements/QueryString', - LoadSavedSearch => 'RT::System-1-SavedSearch-'.$id) %>"><% $search->Name %></a> -</p> -% } - -<form method="post" action="Search.html" name="BuildQuery"> -<input type="hidden" name="name" value="<%$ARGS{name}%>" class="hidden" /> -<input type="hidden" name="Format" value="<%$ARGS{Format}%>" class="hidden" /> - -<& /Search/Elements/DisplayOptions, %$SearchArg, %ARGS, - AvailableColumns => $AvailableColumns, CurrentFormat => $CurrentFormat &> -<& /Elements/Submit, Caption => loc("Save"), Label => loc('Save'), Name => 'Save'&> - -</form> - -<%INIT> -my @actions; -my $title = loc("Customize").' '; - -my @fields = qw(Format Order OrderBy RowsPerPage); -my ($class, $id) = ( $ARGS{name} =~ m/^(.*)-(\d+)$/ ); - -Abort('No search specified') - unless $class eq 'RT::Attribute'; - -my $search = $class->new ($session{'CurrentUser'}); -$search->LoadById ($id); -$title .= loc ($search->Description, loc ('"N"')); -my $user = $session{'CurrentUser'}->UserObj; -my $SearchArg = $user->Preferences($search, $search->Content); -for (@fields) { - $ARGS{$_} = $SearchArg->{$_} unless defined $ARGS{$_}; -} -$ARGS{'Order'} = join '|', grep defined && /\S/, (ref $ARGS{'Order'})? @{$ARGS{'Order'}}: $ARGS{'Order'}; -$ARGS{'OrderBy'} = join '|', grep defined && /\S/, (ref $ARGS{'OrderBy'})? @{$ARGS{'OrderBy'}}: $ARGS{'OrderBy'}; - -my ( $AvailableColumns, $CurrentFormat ); -( $ARGS{Format}, $AvailableColumns, $CurrentFormat ) = $m->comp( - '/Search/Elements/BuildFormatString', - cfqueues => {}, %ARGS -); - -if ($ARGS{'Save'}) { - my $hash = {map { $_ => $ARGS{$_}} @fields}; - my $pref = $user->SetPreferences ($search, $hash); - push @actions, loc ('Preferences saved.'); -} - -</%INIT> diff --git a/rt/html/Prefs/SearchOptions.html b/rt/html/Prefs/SearchOptions.html deleted file mode 100644 index 7cc71b0cd..000000000 --- a/rt/html/Prefs/SearchOptions.html +++ /dev/null @@ -1,114 +0,0 @@ - -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<& /Elements/Header, Title => loc("Search Preferences") &> -<& /User/Elements/Tabs, - current_tab => "Prefs/SearchOptions.html", - Title => loc("Search Preferences") -&> - -<form method="post" action="SearchOptions.html"> -<input type="hidden" class="hidden" name="Format" value="<%$Format%>" /> - <& /Search/Elements/DisplayOptions, %ARGS, - Format=> $Format, - AvailableColumns => $AvailableColumns, - CurrentFormat => $CurrentFormat, - RowsPerPage => $RowsPerPage, - OrderBy => $OrderBy, - Order => $Order &> - -<& /Elements/Submit, Name => 'SavePreferences', Label => loc('Save Changes') &> -</form> - -<%INIT> - -# {{{ If we're saving search preferences, do that now -$Order = join '|', grep defined && /\S/, (ref $Order)? @{$Order}: $Order; -$OrderBy = join '|', grep defined && /\S/, (ref $OrderBy)? @{$OrderBy}: $OrderBy; - -if ($ARGS{'SavePreferences'}) { - $session{'CurrentUser'}->UserObj->SetPreferences("SearchDisplay", - { - Format => $Format, - Order => $Order, - OrderBy => $OrderBy, - RowsPerPage => $RowsPerPage, - }); -} - -# }}} - - - - - - - -# Read from user preferences -my $prefs = $session{'CurrentUser'}->UserObj->Preferences("SearchDisplay") || {}; - -$Format ||= $prefs->{'Format'}; -$Order ||= $prefs->{'Order'} || 'ASC'; -$OrderBy ||= $prefs->{'OrderBy'} || 'id'; -($RowsPerPage = defined( $prefs->{'RowsPerPage'} ) ? $prefs->{'RowsPerPage'} : 50) unless defined ($RowsPerPage); - -my ( $AvailableColumns, $CurrentFormat ); -( $Format, $AvailableColumns, $CurrentFormat ) = $m->comp( - '/Search/Elements/BuildFormatString', - %ARGS, Format => $Format -); -</%INIT> - -<%ARGS> -$Format => undef -$Description => undef -$Order => undef -$OrderBy => undef -$RowsPerPage => undef -</%ARGS> - diff --git a/rt/html/REST/1.0/Forms/ticket/comment b/rt/html/REST/1.0/Forms/ticket/comment deleted file mode 100755 index 4ed2da8af..000000000 --- a/rt/html/REST/1.0/Forms/ticket/comment +++ /dev/null @@ -1,152 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -%# REST/1.0/Forms/ticket/comment -%# -<%ARGS> -$id -%changes -</%ARGS> -<%INIT> -use MIME::Entity; -use LWP::MediaTypes; -use RT::Interface::REST; -use File::Temp qw(tempfile); - -$RT::Logger->debug("Got ticket id=$id for comment"); -$RT::Logger->debug("Got args @{[keys(%changes)]}."); - -my $ticket = new RT::Ticket $session{CurrentUser}; -my ($c, $o, $k, $e) = ("", [], {}, 0); - -# http://.../REST/1.0/ticket/1/comment -$ticket->Load($id); -if (!$ticket->Id) { - $e = 1; - $c = "# Ticket $id does not exist."; - goto OUTPUT; -} - -my $action; -($action = $changes{Action}) =~ s/^(.)(.*)$/\U$1\L$2\E/; -unless ($action =~ /^(?:Comment|Correspond)$/) { - $e = 1; - $c = "# Invalid action: `$action'."; - goto OUTPUT; -} - -my $text = $changes{Text}; -my @atts = @{ vsplit($changes{Attachment}) }; - -if (!$changes{Text} && @atts == 0) { - $e = 1; - $c = "# Empty comment with no attachments submitted."; - goto OUTPUT; -} - -my $cgi = $m->cgi_object; -my $ent = MIME::Entity->build(Type => "multipart/mixed"); -$ent->attach(Data => $changes{Text}) if $changes{Text}; - -my $i = 1; -foreach my $att (@atts) { - local $/=undef; - my $file = $att; - $file =~ s#^.*[\\/]##; - - my $fh = $cgi->upload("attachment_$i"); - if ($fh) { - my $buf; - my ($w, $tmp) = tempfile(); - my $info = $cgi->uploadInfo(); - - while (sysread($fh, $buf, 8192)) { - syswrite($w, $buf); - } - - $ent->attach( - Path => $tmp, - Type => $info->{'Content-Type'} || guess_media_type($tmp), - Filename => $file, - Disposition => "attachment" - ); - } - else { - $e = 1; - $c = "# No attachment for $att."; - goto OUTPUT; - } - - $i++; -} - -unless ($ticket->CurrentUserHasRight('ModifyTicket') || - ($action eq "Comment" && - $ticket->CurrentUserHasRight("CommentOnTicket")) || - ($action eq "Correspond" && - $ticket->CurrentUserHasRight("ReplyToTicket"))) -{ - $e = 1; - $c = "# You are not allowed to $action on ticket $id."; - goto OUTPUT; -} - -my $cc = join ", ", @{ vsplit($changes{Cc}) }; -my $bcc = join ", ", @{ vsplit($changes{Bcc}) }; -my ($n, $s) = $ticket->$action(MIMEObj => $ent, - CcMessageTo => $cc, - BccMessageTo => $bcc, - TimeTaken => $changes{TimeWorked} || 0); -$c = "# ".$s; -if ($changes{Status}) { - my ($status_n, $status_s) = $ticket->SetStatus($changes{'Status'} ); - $c .= "\n# ".$status_s; -} - -OUTPUT: -return [ $c, $o, $k, $e ]; -</%INIT> diff --git a/rt/html/REST/1.0/Forms/ticket/merge b/rt/html/REST/1.0/Forms/ticket/merge deleted file mode 100755 index 69af6c8e1..000000000 --- a/rt/html/REST/1.0/Forms/ticket/merge +++ /dev/null @@ -1,96 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -%# REST/1.0/Forms/ticket/merge -%# -<%ARGS> -$id -$args -</%ARGS> -<%INIT> -use RT::Interface::REST; - -my $into = $args; - -my $ticket = new RT::Ticket $session{CurrentUser}; -my $ticket_into = new RT::Ticket $session{CurrentUser}; -my ($c, $o, $k, $e) = ("", [], {}, 0); - -# http://.../REST/1.0/ticket/1/merge/6 (merges ticket 1 into ticket 6) - -$ticket->Load($id); -if (!$ticket->Id) { - $e = 1; - $c = "# Ticket $id does not exist."; - goto OUTPUT; -} -$ticket_into->Load($into); -if (!$ticket_into->Id) { - $e = 1; - $c = "# Ticket $into does not exist."; - goto OUTPUT; -} - -if (!$ticket->CurrentUserHasRight('ModifyTicket')) { - $e = 1; - $c = "# You are not allowed to modify ticket $id."; - goto OUTPUT; -} - -my ($n, $s) = $ticket->MergeInto($into); - -if ($n == 0) { - $e = 1; - $c = "# Could not complete the merge."; -} -else { - $c = "# Merge completed."; -} - -OUTPUT: -return [ $c, $o, $k, $e ]; -</%INIT> diff --git a/rt/html/REST/1.0/Forms/ticket/take b/rt/html/REST/1.0/Forms/ticket/take deleted file mode 100755 index 35ee11fa7..000000000 --- a/rt/html/REST/1.0/Forms/ticket/take +++ /dev/null @@ -1,135 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -%# REST/1.0/Forms/ticket/take -%# -<%ARGS> -$id -%changes -</%ARGS> -<%INIT> -use RT::Interface::REST; - -my $ticket = new RT::Ticket $session{CurrentUser}; -my ($c, $o, $k, $e) = ("", [], {}, 0); - -# http://.../REST/1.0/ticket/1/take -$ticket->Load( $id ); -unless ( $ticket->Id ) { - $e = 1; - $c = "# Ticket $id does not exist."; - goto OUTPUT; -} - -my $action; - -my @comments; - -($action = $changes{Action}) =~ s/^(.)(.*)$/\U$1\L$2\E/; -unless ($action =~ /^(?:Take|Steal|Untake)$/) { - $e = 1; - $c = "# Invalid action: `$action'."; - goto OUTPUT; -} - -my ($status, $msg) = $ticket->$action(); -$c = "# $msg"; -$e = 1 unless $status; -goto OUTPUT; - -#unless ($ticket->CurrentUserHasRight('ModifyTicket') || -# ( ($action eq "Take" || $action eq 'Untake') && -# $ticket->CurrentUserHasRight("TakeTicket")) || -# ($action eq "Steal" && -# $ticket->CurrentUserHasRight("StealTicket"))) -#{ -# $e = 1; -# $c = "# You are not allowed to $action ticket $id."; -# goto OUTPUT; -#} - -#if ( keys %changes ) { -#} -#else { -# # process the form data structure -# my ($key, $val); -# -# foreach $key (keys %data) { -# $val = $data{$key}; -# -# if ($key =~ /^force$/i) { -# if ($val !~ /^(?:0|1)$/) { -# push(@comments, "# invalid value for 'force': $val"); -# goto DONE; -# } -# my ($ret_id, $msg); -# -# ### take -# if ($val == 0) { -# ($ret_id, $msg) = $ticket->Take; -# if (!$ret_id) { -# push(@comments, "# Couldn't take ticket $id: $msg"); -# goto DONE; -# } -# push(@comments, "# Ticket $id taken."); -# } -# ### steal -# else { -# ($ret_id, $msg) = $ticket->Steal; -# if (!$ret_id) { -# push(@comments, "# Couldn't steal ticket $id: $msg"); -# goto DONE; -# } -# push(@comments, "# Ticket $id stolen."); -# } -# } -# } -#} - -OUTPUT: -return [ $c, $o, $k, $e ]; -</%INIT> diff --git a/rt/html/REST/1.0/Forms/transaction/default b/rt/html/REST/1.0/Forms/transaction/default deleted file mode 100644 index e23098a66..000000000 --- a/rt/html/REST/1.0/Forms/transaction/default +++ /dev/null @@ -1,143 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -%# REST/1.0/Forms/transaction -%# -<%ARGS> -$id -$args => undef -$format => undef -$fields => undef -</%ARGS> -<%INIT> -my $trans = new RT::Transactions $session{CurrentUser}; -my ($c, $o, $k, $e) = ("", [], {} , ""); - -chomp $args; -my @arglist = split('/', $args); -my $tid = $id; - -$trans->Limit(FIELD => 'Id', OPERATOR => '=', VALUE => $tid); - -if ($tid) { - my @data; - my $t = new RT::Transaction $session{CurrentUser}; - $t->Load($tid); - if ($format eq "l") { - push @data, [ id => $t->Id ]; - push @data, [ Ticket => $t->Ticket ] - if (!%$fields || exists $fields->{lc 'Ticket'}); - push @data, [ TimeTaken => $t->TimeTaken ] - if (!%$fields || exists $fields->{lc 'TimeTaken'}); - push @data, [ Type => $t->Type ] - if (!%$fields || exists $fields->{lc 'Type'}); - push @data, [ Field => $t->Field ] - if (!%$fields || exists $fields->{lc 'Field'}); - push @data, [ OldValue => $t->OldValue ] - if (!%$fields || exists $fields->{lc 'OldValue'}); - push @data, [ NewValue => $t->NewValue ] - if (!%$fields || exists $fields->{lc 'NewValue'}); - push @data, [ Data => $t->Data ] - if (!%$fields || exists $fields->{lc 'Data'}); - push @data, [ Description => $t->Description ] - if (!%$fields || exists $fields->{lc 'Description'}); - push @data, [ Content => $t->Content ] - if (!%$fields || exists $fields->{lc 'Content'}); - - if (!%$fields || exists $fields->{lc 'Content'}) { - my $creator = new RT::User $session{CurrentUser}; - $creator->Load($t->Creator); - push @data, [ Creator => $creator->Name ]; - } - push @data, [ Created => $t->Created ] - if (!%$fields || exists $fields->{lc 'Created'}); - - if (!%$fields || exists $fields->{lc 'Attachments'}) { - my $attachlist; - my $attachments = $t->Attachments; - while (my $a = $attachments->Next) { - my $size = length($a->Content); - if ($size > 1024) { - $size = int($size/102.4)/10 . "k"; - } - else { - $size .= "b"; - } - $attachlist .= "\n" . $a->Id.": ".($a->Filename || "untitled")." (".$size.")"; - } - push @data, [Attachments => $attachlist]; - } - - } else { - push @data, [ id => $t->Id ]; - push @data, [ Description => $t->Description ]; - } - - my %k = map {@$_} @data; - $o = [ map {$_->[0]} @data ]; - $k = \%k; -} -#else { -# my (@data, $tids); -# $format ||= "s"; -# $format = "l" if (%$fields); -# -# while (my $t = $trans->Next) { -# my $tid = $t->Id; -# if ($format eq "l") { -# $tids .= "," if $tids; -# $tids .= $tid; -# } else { -# push @$o, $tid; -# $k->{$tid} = $t->Description; -# } -# } -#} - -return [ $c, $o, $k, $e ]; - -</%INIT> diff --git a/rt/html/Search/Chart b/rt/html/Search/Chart deleted file mode 100644 index ea52bb1f9..000000000 --- a/rt/html/Search/Chart +++ /dev/null @@ -1,148 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%args> -$Query => "id > 0" -$PrimaryGroupBy => 'Queue' -$SecondaryGroupBy => undef -$ChartStyle => 'bars' -</%args> -<%init> -my @keys; -my @values; -my $chart_class; -use GD; -use GD::Text; - -if ($ChartStyle eq 'pie') { - require GD::Graph::pie; - $chart_class = "GD::Graph::pie"; -} else { - require GD::Graph::bars; - $chart_class = "GD::Graph::bars"; -} - -use RT::Report::Tickets; -my $tix = RT::Report::Tickets->new( $session{'CurrentUser'} ); -$tix->FromSQL( $Query ); -my $count_name = $tix->Column( FUNCTION => 'COUNT', FIELD => 'id' ); -$tix->GroupBy( FIELD => $PrimaryGroupBy ); -my $value_name = $tix->Column( FIELD => $PrimaryGroupBy ); - -my $chart = $chart_class->new( 600 => 400 ); -if ($chart_class eq "GD::Graph::bars") { - $chart->set( - x_label => $tix->Label( $PrimaryGroupBy ), - x_labels_vertical => 1, - y_label => 'Tickets', - show_values => 1 - ); - $chart->set_legend_font( ['verdana', 'arial', gdMediumBoldFont], 12); -} - -my %class = ( - Queue => 'RT::Queue', - Owner => 'RT::User', -); -my $class = $class{ $PrimaryGroupBy }; - -while ( my $entry = $tix->Next ) { - if ( $class ) { - my $q = $class->new( $session{'CurrentUser'} ); - $q->Load( $entry->__Value( $value_name ) ); - push @keys, $q->Name; - } - else { - push @keys, $entry->__Value($value_name); - } - - $keys[-1] ||= loc('(no value)'); - if ($chart_class eq 'GD::Graph::pie') { - $keys[-1] .= " - ". $entry->__Value( $count_name ); - } - push @values, $entry->__Value($count_name); -} - -# XXX: Convert 1970-01-01 date to the 'Not Set' -# this code should be generalized!!! -if ( $PrimaryGroupBy =~ /(Daily|Monthly|Annually)$/ ) { - my $re; - $re = qr{1970-01-01} if $PrimaryGroupBy =~ /Daily$/; - $re = qr{1970-01} if $PrimaryGroupBy =~ /Monthly$/; - $re = qr{1970} if $PrimaryGroupBy =~ /Annually$/; - foreach (@keys) { - s/^$re/loc('Not Set')/e; - } -} - -unless (@keys && @values) { - @keys = (''); - @values = (0); -} - -my %data; -foreach my $key (@keys) { $data{$key} = shift @values; } -my @sorted_keys = sort @keys; -my @sorted_values = map { $data{$_}} @sorted_keys; - - - -my $plot = $chart->plot( [ [@sorted_keys], [@sorted_values] ] ) or die $chart->error; - -if ( $plot->can('png') ) { - $r->content_type('image/png'); - $m->out( $plot->png ); -} -elsif ( $plot->can('gif') ) { - $r->content_type('image/gif'); - $m->out( $plot->gif ); -} -else { - die "Your GD library appears to support neither PNG nor GIF"; -} -$m->abort(); -</%init> diff --git a/rt/html/Search/Chart.html b/rt/html/Search/Chart.html deleted file mode 100644 index a07d89502..000000000 --- a/rt/html/Search/Chart.html +++ /dev/null @@ -1,73 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%args> -$Query => "id > 0" -$PrimaryGroupBy => 'Queue' -$SecondaryGroupBy => '' -$ChartStyle => 'bars' -$Description => undef -</%args> -<%init> -$ARGS{SecondaryGroupBy} ||= ''; - -my $title = loc( "Search results grouped by [_1]", $PrimaryGroupBy ); - -my $saved_search = $m->comp( '/Widgets/SavedSearch:new', - SearchType => 'Chart', - SearchFields => [qw(Query PrimaryGroupBy SecondaryGroupBy ChartStyle)] ); - -my @actions = $m->comp( '/Widgets/SavedSearch:process', args => \%ARGS, self => $saved_search ); - -</%init> -<& /Elements/Header, Title => $title &> -<& /Ticket/Elements/Tabs, Title => $title &> -<& /Elements/ListActions, actions => \@actions &> -<& /Search/Elements/Chart, %ARGS &> - - -<& /Widgets/SavedSearch:show, %ARGS, Action => 'Chart.html', self => $saved_search, Title => 'Saved charts' &> diff --git a/rt/html/Search/Elements/Chart b/rt/html/Search/Elements/Chart deleted file mode 100644 index 2eca6afda..000000000 --- a/rt/html/Search/Elements/Chart +++ /dev/null @@ -1,139 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%args> -$Query => "id > 0" -$PrimaryGroupBy => 'Queue' -$SecondaryGroupBy => undef -$ChartStyle => 'bars' -</%args> -<%init> -use RT::Report::Tickets; -my $tix = RT::Report::Tickets->new( $session{'CurrentUser'} ); -$tix->FromSQL( $Query ); -my $count_name = $tix->Column( FUNCTION => 'COUNT', FIELD => 'id' ); -$tix->GroupBy( FIELD => $PrimaryGroupBy ); -my $value_name = $tix->Column( FIELD => $PrimaryGroupBy ); - -my %class = ( - Queue => 'RT::Queue', - Owner => 'RT::User', -); -my $class = $class{ $PrimaryGroupBy }; - -my (@keys, @values); -while ( my $entry = $tix->Next ) { - if ($class) { - my $q = $class->new( $session{'CurrentUser'} ); - $q->Load( $entry->__Value( $value_name ) ); - push @keys, $q->Name; - } - else { - push @keys, $entry->__Value( $value_name ); - } - $keys[-1] ||= loc('(no value)'); - push @values, $entry->__Value( $count_name ); -} - -# XXX: Convert 1970-01-01 date to the 'Not Set' -# this code should be generalized!!! -if ( $PrimaryGroupBy =~ /(Daily|Monthly|Annually)$/ ) { - my $re; - $re = qr{1970-01-01} if $PrimaryGroupBy =~ /Daily$/; - $re = qr{1970-01} if $PrimaryGroupBy =~ /Monthly$/; - $re = qr{1970} if $PrimaryGroupBy =~ /Annually$/; - foreach (@keys) { - s/^$re/loc('Not Set')/e; - } -} - -my %data; -foreach my $key (@keys) { $data{$key} = shift @values; } -my @sorted_keys = sort @keys; -my @sorted_values = map { $data{$_}} @sorted_keys; - - -my $query_string = $m->comp('/Elements/QueryString', %ARGS); -</%init> - -<% loc('Query:') %> <% $Query %><br /> - -<img src="<%$RT::WebPath%>/Search/Chart?<%$query_string|n%>" /><br /> - -<table class="collection-as-table"> -<tr> -<th class="collection-as-table"><% $tix->Label($PrimaryGroupBy) %> -</th> -<th class="collection-as-table"><&|/l&>Tickets</&> -</th> -</tr> -% my ($i,$total); -% while (my $key = shift @sorted_keys) { -% $i++; -% my $value = shift @sorted_values; -% $total += $value; -<tr class="<%$i%2 ? 'evenline' : 'oddline' %>"> -<td class="label collection-as-table"> -<%$key%> -</td> -<td class="value collection-as-table"> -<%$value%> -</td> -</tr> -% } - -%$i++; -<tr class="<%$i%2 ? 'evenline' : 'oddline' %>"> -<td class="label collection-as-table"> -<%loc('Total')%> -</td> -<td class="value collection-as-table"> -<%$total%> -</td> -</tr> - -</table> diff --git a/rt/html/Search/Elements/PickRestriction b/rt/html/Search/Elements/PickRestriction deleted file mode 100644 index ff9b86ba5..000000000 --- a/rt/html/Search/Elements/PickRestriction +++ /dev/null @@ -1,142 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<FORM ACTION="<%$RT::WebPath%>/Search/Listing.html" METHOD="GET"> -<INPUT TYPE=HIDDEN NAME="Bookmark" VALUE="<% $session{'tickets'}->FreezeLimits()%>"> -<& /Elements/TitleBoxStart, title => loc('Refine search')&> -<INPUT TYPE=HIDDEN NAME="CompileRestriction" VALUE=1> - -<ul> -<li><&|/l&>Owner is</&> <& /Elements/SelectBoolean, Name => "OwnerOp", - TrueVal=> '=', - FalseVal => '!=' -&> -<& /Elements/SelectOwner, Name => "ValueOfOwner" &> - -<li> -<& /Elements/SelectWatcherType, Name => "WatcherRole", AllowNull => 0 &> -<&|/l&>email address</&> -<& /Elements/SelectMatch, Name => "WatcherRoleOp" &> -<INPUT Name="ValueOfWatcherRole" SIZE=20> - -<li> -<&|/l&>Subject</&> <& /Elements/SelectMatch, Name => "SubjectOp" &> -<INPUT Name="ValueOfSubject" SIZE=20> - -<li><&|/l&>Queue</&> <& /Elements/SelectBoolean, Name => "QueueOp" , - True => loc("is"), - False => loc("isn't"), - TrueVal=> '=', - FalseVal => '!=' &> -<& /Elements/SelectQueue, Name => "ValueOfQueue" &> - - -<li><&|/l&>Priority</&> <& /Elements/SelectEqualityOperator, Name => "PriorityOp" &> - -<INPUT Name="ValueOfPriority" SIZE=5> - -<li> -<& /Elements/SelectDateType, Name => 'DateType' &> -<& /Elements/SelectDateRelation, Name=>"DateOp" &> -<& /Elements/SelectDate, Name => "ValueOfDate", ShowTime => 0, Default => '' &> - -<li><&|/l&>Ticket attachment</&> - -<& /Elements/SelectAttachmentField, Name => 'AttachmentField' &> -<& /Elements/SelectBoolean, Name => "AttachmentFieldOp", - True => loc("matches"), - False => loc("does not match"), - TrueVal => 'LIKE', - FalseVal => 'NOT LIKE' -&> -<Input Name="ValueOfAttachmentField" Size=20> - -<li><&|/l&>Status</&> -<& /Elements/SelectBoolean, Name => "StatusOp", - True => loc("is"), - False => loc("isn't"), - TrueVal=> '=', - FalseVal => '!=' -&> -<& /Elements/SelectStatus, Name => "ValueOfStatus", SkipDeleted => 1 &> - - -% while ( my $CustomField = $CustomFields->Next ) { - -<li><% $CustomField->Name %> - <& /Elements/SelectCustomFieldOperator, Name => "CustomFieldOp". $CustomField->id, - True => loc("is"), - False => loc("isn't"), - TrueVal=> '=', FalseVal => '!=' &> - -<& /Elements/SelectCustomFieldValue, Name => "CustomField".$CustomField->id, - CustomField => $CustomField, - &> -% } - -</UL> - -<& /Elements/TitleBoxEnd &> - -<& /Elements/TitleBoxStart, title => loc('Ordering and sorting')&> - -<UL> - -<li><&|/l&>Results per page</&> <& /Elements/SelectResultsPerPage, Name => "RowsPerPage", - Default => $session{'tickets_rows_per_page'} || '50' -&> - -<li><&|/l&>Sort results by</&> <& /Elements/SelectTicketSortBy, Name => "TicketsSortBy", - Default => $session{'tickets_sort_by'} -&> -<& /Elements/SelectSortOrder, Name => 'TicketsSortOrder', Default => $session{'tickets_sort_order'} &> - -<li><input type="checkbox" name="HideResults" <%$ARGS{'HideResults'} && 'CHECKED'%>> <&|/l&>Don't show search results</&> -<li><& /Elements/Refresh, Name => 'RefreshSearchInterval' , Default => $session{'tickets_refresh_interval'} &> - -</UL> - - -</DIV> - - - -<& /Elements/TitleBoxEnd &> - -<& /Elements/Submit, Label => loc('Search'), Name => 'Action'&> - -</FORM> - - - <%INIT> -my $CustomFields = RT::CustomFields->new( $session{'CurrentUser'}); - foreach ( $session{'tickets'}->RestrictionValues('Queue') ) { - # Gotta load up the $queue object, since queues get stored by name now. - my $queue = RT::Queue->new($session{'CurrentUser'}); - $queue->Load($_); - $CustomFields->LimitToQueue($queue->Id); - } - - $CustomFields->LimitToGlobal(); - -</%INIT> diff --git a/rt/html/Search/Elements/SearchesForObject b/rt/html/Search/Elements/SearchesForObject deleted file mode 100644 index 45aa4535e..000000000 --- a/rt/html/Search/Elements/SearchesForObject +++ /dev/null @@ -1,65 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%args> -$Object => undef -</%args> -<%init> -# Returns an array of search objects associated on $Object, -# in the form of [Description, searchObj] -my @result; -while (my $search = $Object->Attributes->Next) { - my $desc; - if ($search->Name eq 'SavedSearch') { - push @result, [$search->Description, $search]; - } - elsif ($search->Name =~ m/^Search - (.*)/) { - push @result, [$1, $search]; - } -} -return @result; -</%init> diff --git a/rt/html/Search/Elements/SelectChartType b/rt/html/Search/Elements/SelectChartType deleted file mode 100644 index 43a6182bf..000000000 --- a/rt/html/Search/Elements/SelectChartType +++ /dev/null @@ -1,56 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%args> -$Name => 'ChartType' -$Default => 'bar' -</%args> -<select name="<%$Name%>"> -% foreach my $option qw(bar pie) { -<option value="<%$option%>" <% $option eq $Default ? 'SELECTED' : '' %>><%loc($option)%></option> -% } -</select> diff --git a/rt/html/Search/Elements/SelectGroupBy b/rt/html/Search/Elements/SelectGroupBy deleted file mode 100644 index 0ffb5e453..000000000 --- a/rt/html/Search/Elements/SelectGroupBy +++ /dev/null @@ -1,63 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%args> -$Name => 'GroupBy' -$Default => 'Status' -$Query => '' -</%args> -<select name="<% $Name %>"> -% while (@options) { -% my ($text, $value) = (shift @options, shift @options); -<option value="<% $value %>" <% $value eq $Default ? 'selected' : '' %>><% loc($text) %></option> -% } -</select> -<%init> -use RT::Report::Tickets; -my $report = RT::Report::Tickets->new( $session{'CurrentUser'} ); -my @options = $report->Groupings( Query => $Query ); -</%init> diff --git a/rt/html/Search/Elements/TicketHeader b/rt/html/Search/Elements/TicketHeader deleted file mode 100644 index ed2f60e4e..000000000 --- a/rt/html/Search/Elements/TicketHeader +++ /dev/null @@ -1,40 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<TR> -<& TicketHeaderCell , Attribute => 'id', Header => '#'&> -<& TicketHeaderCell , Attribute => 'Subject'&> -<& TicketHeaderCell , Attribute => 'Status'&> -<& TicketHeaderCell , Attribute => 'Queue'&> -<& TicketHeaderCell , Attribute => 'Owner'&> -<& TicketHeaderCell , Attribute => 'Priority'&> -</TR> -<TR> -<TH class="ticketheader"> </TH> -<& TicketHeaderCell , Attribute => 'Requestor(s)'&> -<& TicketHeaderCell , Attribute => 'Created'&> -<& TicketHeaderCell , Attribute => 'Told', Header => 'Last Contact'&> -<& TicketHeaderCell , Attribute => 'LastUpdated', Header => 'Last Updated'&> -<& TicketHeaderCell , Attribute => 'TimeLeft', Header => 'Left'&> -</TR> -%# loc('Last Notified'); diff --git a/rt/html/Search/Elements/TicketHeaderCell b/rt/html/Search/Elements/TicketHeaderCell deleted file mode 100644 index 5def9ea37..000000000 --- a/rt/html/Search/Elements/TicketHeaderCell +++ /dev/null @@ -1,55 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<%INIT> -my ($order,$curorder); - $Attribute =~ s/Obj->(Name|AsString|AgeAsString)//g; - if ($session{'tickets_sort_order'} =~ /^asc$/i) { - $order = 'DESC'; - $curorder = 'ASC'; - } else { - $order = 'ASC'; - $curorder = 'DESC'; - } -$Header = $Attribute unless ($Header); - -</%INIT> -<th class="ticketheader"> -% if (grep (/^$Attribute$/i, $session{'tickets'}->SortFields)) { -<A -% if ($Attribute eq $session{'tickets_sort_by'}) { -class="currenttab" -HREF="<% $RT::WebPath%>/Search/Listing.html?Bookmark=<%$session{'tickets'}->FreezeLimits()|u%>&TicketsSortBy=<%$Attribute%>&TicketsSortOrder=<%$order%>&RowsPerPage=<%$session{'tickets_rows_per_page'}%>"> -% } else { -HREF="<% $RT::WebPath%>/Search/Listing.html?Bookmark=<%$session{'tickets'}->FreezeLimits()|u%>&TicketsSortBy=<%$Attribute%>&TicketsSortOrder=<%$curorder%>&RowsPerPage=<%$session{'tickets_rows_per_page'}%>"> -% } -<% loc($Header) %> -</A> -% } else { -<% loc($Header) %> -% } -</th> -<%ARGS> -$Header => undef -$Attribute => undef -</%ARGS> diff --git a/rt/html/Search/Elements/TicketRow b/rt/html/Search/Elements/TicketRow deleted file mode 100644 index 5d1ad209a..000000000 --- a/rt/html/Search/Elements/TicketRow +++ /dev/null @@ -1,55 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<SPAN class="search"> -<TR -% if ($i%2) { -CLASS="oddline" -% } else { -CLASS="evenline" -% } -> -<TD ROWSPAN="2"><B><A HREF="<%$RT::WebPath%>/Ticket/Display.html?id=<%$Ticket->Id%>"><%$Ticket->id%></a></B></TD> -<TD><B><A HREF="<%$RT::WebPath%>/Ticket/Display.html?id=<%$Ticket->Id%>"><%$Ticket->Subject%></a></B></TD> -<TD><%loc($Ticket->Status)%></TD> -<TD><%$Ticket->QueueObj->Name%></TD> -<TD><%$Ticket->Owner == $RT::Nobody->Id ? loc('Nobody') : $Ticket->OwnerObj->Name%></TD> -<TD><%$Ticket->Priority%></TD> -</TR> -<TR -% if ($i%2) { -CLASS="oddline" -% } else { -CLASS="evenline" -% } -><TD><small><%$Ticket->Requestors->MemberEmailAddressesAsString%></small></TD> -<TD><SMALL><%$Ticket->CreatedObj->AgeAsString || '-'%></SMALL></TD> -<TD><SMALL><%$Ticket->ToldObj->AgeAsString || '-'%></SMALL></TD> -<TD><SMALL><%$Ticket->LastUpdatedObj->AgeAsString || '-'%></SMALL></TD> -<TD><SMALL><%$Ticket->TimeLeft%></SMALL></TD> -</TR> -</SPAN> -<%ARGS> -$Ticket => undef -$i => undef -</%ARGS> diff --git a/rt/html/Search/Listing.html b/rt/html/Search/Listing.html deleted file mode 100644 index 68b1fd75c..000000000 --- a/rt/html/Search/Listing.html +++ /dev/null @@ -1,113 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<& /Elements/Header, Title => $title, Refresh => $session{'tickets_refresh_interval'} &> -<& /Ticket/Elements/Tabs, - current_tab => 'Search/Listing.html', - Title => $title &> - -%if ($ticketcount && ! $ARGS{'HideResults'}) { -<TABLE WIDTH=100% border=0 cellpadding=2 CELLSPACING=0> -<& Elements/TicketHeader, %ARGS &> -% my $i; -%while (my $Ticket = $session{'tickets'}->Next) { -% $i++; -<& Elements/TicketRow, Ticket => $Ticket, i=> $i, %ARGS &> -%} -</TABLE> -<div align=center> -<font size=2> -<a href="<%$RT::WebPath%>/Search/Listing.html?GotoPage=1"><&|/l&>First page</&></a> - -% if ( $session{'tickets'}->FirstRow >= $session{'tickets_rows_per_page'}-1 ) { -<a href="<%$RT::WebPath%>/Search/Listing.html?GotoPage=Prev"><<&|/l&>Previous page</&></a> - -% } -% if ( $session{'tickets'}->FirstRow + $session{'tickets_rows_per_page'} < $ticketcount ) { -<a href="<%$RT::WebPath%>/Search/Listing.html?GotoPage=Next"><&|/l&>Next page</&>></a> -% } -%# <form method=get action="<%$RT::WebPath%>/Search/Listing.html"><&|/l&>Goto page</&> <input name=GotoPage size=2></form> -</font> -</div> -<!--<div align=right>--> -<table width="100%" border=0 cellpadding=3 CELLSPACING=1> -<tr> -<td align=left> -(<&|/l, ($session{'tickets'}->FirstRow+1), ($session{'tickets'}->FirstRow() + $session{'tickets'}->RowsPerPage() ) &>[_1] - [_2] shown</&>) -</td> -<td align=right> - -<a href="<%$RT::WebPath%>/Search/Bulk.html"><&|/l&>Update all these tickets at once</&></a> -<!--</div>--> -</td> -</tr> -</table> - -% } -<TABLE WIDTH="100%"> -<TR> -<TD VALIGN="TOP"> -<& /Elements/TitleBoxStart, title => loc('Current search criteria')&> - -%my %restrictions=$session{'tickets'}->DescribeRestrictions(); -%foreach my $row (keys %restrictions){ -<%$restrictions{"$row"}%> <A HREF="<% $RT::WebPath %>/Search/Listing.html?DeleteRestriction=<%$row%>">[<&|/l&>delete</&>]</a><br> -%} -<BR> -<BR> -<A HREF="<% $RT::WebPath%>/Search/Listing.html?Bookmark=<%$session{'tickets'}->FreezeLimits()|nu%>&TicketsSortBy=<%$session{'tickets_sort_by'}%>&TicketsSortOrder=<%$session{'tickets_sort_order'}%>&RowsPerPage=<%$session{'tickets_rows_per_page'}%>"><&|/l&>Bookmarkable URL for this search</&></a> -<& /Elements/TitleBoxEnd&> -</TD> -<TD> - -<& Elements/PickRestriction, %ARGS &> - -</TD> -</TR> -</TABLE> - -<%INIT> - -my ($title, $ticketcount); -$session{'i'}++; -if ($session{'tickets'}) { - if ($ARGS{'DeleteRestriction'}) { - $session{'tickets'}->DeleteRestriction($ARGS{'DeleteRestriction'}); - } - if ( ($ARGS{'ClearRestrictions'}) || ($ARGS{'NewSearch'}) ) { - $session{'tickets'}->ClearRestrictions; - $session{'tickets'}->CleanSlate; - } -} - ProcessSearchQuery(ARGS=>\%ARGS); - $session{'tickets'}->RedoSearch(); - if ( $session{'tickets'}->DescribeRestrictions()) { - $ticketcount = $session{tickets}->CountAll(); - $title = loc('Found [quant,_1,ticket]', $ticketcount); - } else { - $title = loc("Find tickets"); - } -</%INIT> -<%CLEANUP> -$session{'tickets'}->PrepForSerialization(); -</%CLEANUP> diff --git a/rt/html/Search/Simple.html b/rt/html/Search/Simple.html deleted file mode 100644 index cdffc4c46..000000000 --- a/rt/html/Search/Simple.html +++ /dev/null @@ -1,93 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<& /Elements/Header, Title => $title &> -<& /Elements/Tabs, - current_toptab => "Search/Simple.html", - Title => $title -&> - -<div id="SimpleSearchForm"> -<form action="Simple.html" method="get"> - -<p><&|/l&>Search for tickets. Enter <strong>id</strong> numbers, <strong>queues</strong> by name, Owners by <strong>username</strong> and Requestors by <strong>email address</strong>. RT will look for anything else you enter in ticket bodies and attachments.</&></p> - -<p><&|/l&>Searching the full text of every ticket can take a long time, but if you need to do it, you can search for any word in full ticket history for any word by typing <b>fulltext:<i>word</i></b>.</&></p> -<p><&|/l&>RT will look for anything else you enter in ticket subjects.</&></p> - -<br /> -<br /> -<div align="center"> -<input name="q" size="60" /><input type="submit" class="button" value="<&|/l&>Search</&>" /> -</div> -</div> - -<%INIT> -my $title = loc("Search for tickets"); -use RT::Search::Googleish; - -if ($q) { - my $tickets = new RT::Tickets( $session{'CurrentUser'} ); - - $m->comp('/Elements/Callback', %ARGS, _CallbackName => 'ModifyQuery', query => \$q); - - if ($q =~ /^(\d+)$/) { - RT::Interface::Web::Redirect($RT::WebURL."/Ticket/Display.html?id=".$q); - } - my $search = RT::Search::Googleish->new(Argument => $q, - TicketsObj => $tickets); - - $m->comp( "Results.html", Query => $search->QueryToSQL() ); - $m->comp( "/Elements/Footer" ); - $m->abort(); -} -</%INIT> - -<%ARGS> -$q => undef -</%ARGS> - diff --git a/rt/html/Ticket/Elements/EditLinks b/rt/html/Ticket/Elements/EditLinks deleted file mode 100644 index bdb8a6b7d..000000000 --- a/rt/html/Ticket/Elements/EditLinks +++ /dev/null @@ -1,133 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<TABLE width=100%> - <TR> - <TD VALIGN=TOP WIDTH=50%> - <h3><&|/l&>Current Relationships</&></h3> - -<table> - <tr> - <td></td> - <td><i><&|/l&>(Check box to delete)</&></i></td> - </tr> - <tr> - <td class="labeltop"><&|/l&>Depends on</&>:</td> - <td class="value"> -% while (my $link = $Ticket->DependsOn->Next) { - <INPUT TYPE=CHECKBOX NAME="DeleteLink--<%$link->Type%>-<%$link->Target%>"> - <& ShowLink, URI => $link->TargetURI &><br> -% } - </td> - </tr> - <tr> - <td class="labeltop"><&|/l&>Depended on by</&>:</td> - <td class="value"> -% while (my $link = $Ticket->DependedOnBy->Next) { -% my $member = $link->BaseObj; - <INPUT TYPE=CHECKBOX NAME="DeleteLink-<%$link->Base%>-<%$link->Type%>-"> - <& ShowLink, URI => $link->BaseURI &><br> -% } - </td> - </tr> - <tr> - <td class="labeltop"><&|/l&>Parents</&>:</td> - <td class="value"> -% while (my $link = $Ticket->MemberOf->Next) { - <INPUT TYPE=CHECKBOX NAME="DeleteLink--<%$link->Type%>-<%$link->Target%>"> - <& ShowLink, URI => $link->TargetURI &><br> -% } - </td> - </tr> - <tr> - <td class="labeltop"><&|/l&>Children</&>:</td> - <td class="value"> -% while (my $link = $Ticket->Members->Next) { - <INPUT TYPE=CHECKBOX NAME="DeleteLink-<%$link->Base%>-<%$link->Type%>-"> - <& ShowLink, URI => $link->BaseURI &><br> -% } - </td> - </tr> - <tr> - <td class="labeltop"><&|/l&>Refers to</&>:</td> - <td class="value"> -% while (my $link = $Ticket->RefersTo->Next) { - <INPUT TYPE=CHECKBOX NAME="DeleteLink--<%$link->Type%>-<%$link->Target%>"> - <& ShowLink, URI => $link->TargetURI &><br> -%} - </td> - </tr> - <tr> - <td class="labeltop"><&|/l&>Referred to by</&>:</td> - <td class="value"> -% while (my $link = $Ticket->ReferredToBy->Next) { - <INPUT TYPE=CHECKBOX NAME="DeleteLink-<%$link->Base%>-<%$link->Type%>-"> - <& ShowLink, URI => $link->BaseURI &><br> -% } - </td> - </tr> -</table> - -</TD> -<TD VALIGN=TOP> -<h3><&|/l&>New Relationships</&></h3> -<i><&|/l&>Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces.</&></i><br> -<TABLE> - <TR> - <TD class="label"><&|/l&>Merge into</&>:</TD> - <TD class="entry"><input name="<%$Ticket->Id%>-MergeInto"> <i><&|/l&>(only one ticket)</&></i></TD> - </TR> - <TR> - <TD class="label"><&|/l&>Depends on</&>:</TD> - <TD class="entry"><input name="<%$Ticket->Id%>-DependsOn"></TD> - </TR> - <TR> - <TD class="label"><&|/l&>Depended on by</&>:</TD> - <TD class="entry"><input name="DependsOn-<%$Ticket->Id%>"></TD> - </TR> - <TR> - <TD class="label"><&|/l&>Parents</&>:</TD> - <TD class="entry"><input name="<%$Ticket->Id%>-MemberOf"></TD> - </TR> - <TR> - <TD class="label"><&|/l&>Children</&>:</TD> - <TD class="entry"> <input name="MemberOf-<%$Ticket->Id%>"></TD> - </TR> - <TR> - <TD class="label"><&|/l&>Refers to</&>:</TD> - <TD class="entry"><input name="<%$Ticket->Id%>-RefersTo"></TD> - </TR> - <TR> - <TD class="label"><&|/l&>Referred to by</&>:</TD> - <TD class="entry"> <input name="RefersTo-<%$Ticket->Id%>"></TD> - </TR> -</TABLE> -</TD> -</TR> -</TABLE> - - - -<%ARGS> -$Ticket => undef -</%ARGS> diff --git a/rt/html/Ticket/Elements/Reminders b/rt/html/Ticket/Elements/Reminders deleted file mode 100644 index 63d68c7b1..000000000 --- a/rt/html/Ticket/Elements/Reminders +++ /dev/null @@ -1,168 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%args> -$Ticket => undef -$id => undef -$ShowCompleted => 0 -$Edit => 0 -</%args> -<%init> - -$Ticket = LoadTicket($id) if ($id); - -my $request_args = $m->request_args(); - -my $reminder_collection = $Ticket->Reminders->Collection; - -if ( $request_args->{'update-reminders'} ) { - while ( my $reminder = $reminder_collection->Next ) { - if ( $reminder->Status ne 'resolved' && $request_args->{ 'Complete-Reminder-' . $reminder->id } ) { - $Ticket->Reminders->Resolve($reminder); - } - elsif ( $reminder->Status eq 'resolved' && !$request_args->{ 'Complete-Reminder-' . $reminder->id } ) { - $Ticket->Reminders->Open($reminder); - } - - if ( exists( $request_args->{ 'Reminder-Subject-' . $reminder->id } ) && ( $reminder->Subject ne $request_args->{ 'Reminder-Subject-' . $reminder->id } )) { - $reminder->SetSubject( $request_args->{ 'Reminder-Subject-' . $reminder->id } ) ; - } - - if ( exists( $request_args->{ 'Reminder-Owner-' . $reminder->id } ) && ( $reminder->Owner != $request_args->{ 'Reminder-Owner-' . $reminder->id } )) { - $reminder->SetOwner( $request_args->{ 'Reminder-Owner-' . $reminder->id } , "Force" ) ; - } - - if ( exists( $request_args->{ 'Reminder-Due-' . $reminder->id } ) && ( $reminder->DueObj->Date ne $request_args->{ 'Reminder-Due-' . $reminder->id } )) { - $reminder->SetDue( $request_args->{ 'Reminder-Due-' . $reminder->id } ) ; - } - } -} - -if ( $request_args->{'NewReminder-Subject'} ) { - my $due_obj = RT::Date->new( $session{'CurrentUser'} ); - my $date = Time::ParseDate::parsedate( - $request_args->{'NewReminder-Due'}, - UK => $RT::DateDayBeforeMonth, - PREFER_PAST => 0, - PREFER_FUTURE => 1 - ); - $due_obj->Set( Value => $date, Format => 'unix' ); - my ( $add_id, $msg, $txnid ) = $Ticket->Reminders->Add( - - Subject => $request_args->{'NewReminder-Subject'}, - Owner => $request_args->{'NewReminder-Owner'}, - Due => $due_obj->ISO - ); -} - -# We've made changes, let's reload our search - -$reminder_collection = $Ticket->Reminders->Collection; -</%init> -<input type="hidden" class="hidden" name="id" value="<% $Ticket->id %>" /> -<input type="hidden" class="hidden" name="update-reminders" value="1" /> -<div> -% while (my $reminder = $reminder_collection->Next) { -% if ($reminder->Status eq 'resolved' && !$ShowCompleted) { -<input type="hidden" class="hidden" name="Complete-Reminder-<% $reminder->id %>" value="1" /> -% } elsif ($Edit) { -<& SELF:EditEntry, Reminder => $reminder, Ticket => $Ticket &> -% } else { -<& SELF:ShowEntry, Reminder => $reminder, Ticket => $Ticket &> -% } -% } -</div> -<div> -<h3><&|/l&>New reminder:</&></h3> -<& SELF:NewReminder, Ticket => $Ticket &> -<%method NewReminder> -<%args> -$Ticket -</%args> -<div class="input-row"> -<label class="horizontal" for="NewReminder-Subject" ><&|/l&>Subject</&>:</label> -<input type="text" size="15" name="NewReminder-Subject" /> -</div> -<div class="input-row"> -<label class="horizontal" for="NewReminder-Owner" ><&|/l&>Owner</&>:</label> -<& /Elements/SelectOwner, Name => 'NewReminder-Owner', QueueObj => $Ticket->QueueObj, DefaultValue => 0 &> -</div> -<div class="input-row"> -<label class="horizontal" for="NewReminder-Due" ><&|/l&>Due</&> <&|/l&>(yyyy/mm/dd)</&>:</label> -<& /Elements/SelectDate, Name => "NewReminder-Due", Default => "" &> -</div> -</div> -</%method> -<%method EditEntry> -<%args> -$Reminder -$Ticket -</%args> -<input - type="checkbox" - name="Complete-Reminder-<%$Reminder->id%>" - <% $Reminder->Status eq 'resolved' ? 'CHECKED' : '' %> -/> - <input type="text" size="15" name="Reminder-Subject-<% $Reminder->id %>" value="<%$Reminder->Subject%>" /> • - <& /Elements/SelectOwner, Name => 'Reminder-Owner-'.$Reminder->id, Queue => $Ticket->QueueObj, Default => $Reminder->Owner, DefaultValue => 0 &> - <& /Elements/SelectDate, Name => 'Reminder-Due-'.$Reminder->id, Default => $Reminder->DueObj->Date &> - (<%$Reminder->DueObj->Unix>0 ? $Reminder->DueObj->AgeAsString : '' %>)<br /> -</%method> -<%method ShowEntry> -<%args> -$Reminder -$Ticket -</%args> -<input - type="checkbox" - name="Complete-Reminder-<%$Reminder->id%>" - <% $Reminder->Status eq 'resolved' ? 'CHECKED' : '' %> -/> - <%$Reminder->Subject%> • - <%$Reminder->OwnerObj->Name%> - <%$Reminder->DueObj->Unix>0 ? "• ". $Reminder->DueObj->AgeAsString : '' |n%><br /> -</%method> diff --git a/rt/html/Ticket/Elements/ShowLink b/rt/html/Ticket/Elements/ShowLink deleted file mode 100644 index 493fd95a5..000000000 --- a/rt/html/Ticket/Elements/ShowLink +++ /dev/null @@ -1,40 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<A href="<%$URI->Resolver->HREF%>"> -% if ($URI->IsLocal) { -% my $member = $URI->Object; -% if (UNIVERSAL::isa($member, "RT::Ticket")) { -<%$member->Id%>: (<%$member->OwnerObj->Name%>) <%$member->Subject%> [<% loc($member->Status) %>] -% } elsif ( UNIVERSAL::can($member, 'Name')) { -<%$URI->Resolver->AsString%>: <%$member->Name%> -% } else { -<%$URI->Resolver->AsString%> -% } -% } else { -<%$URI->Resolver->AsString%> -% } -</a> -<%ARGS> -$URI => undef -</%ARGS> diff --git a/rt/html/Ticket/Elements/ShowLinks b/rt/html/Ticket/Elements/ShowLinks deleted file mode 100644 index f88a6008d..000000000 --- a/rt/html/Ticket/Elements/ShowLinks +++ /dev/null @@ -1,87 +0,0 @@ -%# BEGIN LICENSE BLOCK -%# -%# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -%# -%# (Except where explictly superceded by other copyright notices) -%# -%# This work is made available to you under the terms of Version 2 of -%# the GNU General Public License. A copy of that license should have -%# been provided with this software, but in any event can be snarfed -%# from www.gnu.org. -%# -%# This work is distributed in the hope that it will be useful, but -%# WITHOUT ANY WARRANTY; without even the implied warranty of -%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -%# General Public License for more details. -%# -%# Unless otherwise specified, all modifications, corrections or -%# extensions to this work which alter its source code become the -%# property of Best Practical Solutions, LLC when submitted for -%# inclusion in the work. -%# -%# -%# END LICENSE BLOCK -<table> - <tr> - <td class="labeltop"><&|/l&>Depends on</&>:</td> - <td class="value"> -<ul> -% while (my $Link = $Ticket->DependsOn->Next) { -<li><& ShowLink, URI => $Link->TargetURI &> -% } -</ul> - </td> - </tr> - <tr> - <td class="labeltop"><&|/l&>Depended on by</&>:</td> - <td class="value"> -<ul> -% while (my $Link = $Ticket->DependedOnBy->Next) { -<li><& ShowLink, URI => $Link->BaseURI &> -% } -</ul> - </td> - </tr> - <tr> - <td class="labeltop"><&|/l&>Parents</&>:</td> - <td class="value"> -<ul> -% while (my $Link = $Ticket->MemberOf->Next) { -<li><& ShowLink, URI => $Link->TargetURI &> -% } -</ul> - </td> - </tr> - <tr> - <td class="labeltop"><&|/l&>Children</&>:</td> - <td class="value"><& /Ticket/Elements/ShowMembers, Ticket => $Ticket &></td> - </tr> - <tr> - <td class="labeltop"><&|/l&>Refers to</&>:</td> - <td class="value"> -<ul> -% while (my $Link = $Ticket->RefersTo->Next) { -<li><& ShowLink, URI => $Link->TargetURI &> -% } -</ul> - </td> - </tr> - <tr> - <td class="labeltop"><&|/l&>Referred to by</&>:</td> - <td class="value"> - <ul> -% while (my $Link = $Ticket->ReferredToBy->Next) { -<li><& ShowLink, URI => $Link->BaseURI &> -% } -</ul> - </td> - </tr> - -% # Allow people to add more rows to the table -% $m->comp('/Elements/Callback', %ARGS ); - -</table> - -<%ARGS> -$Ticket => undef -</%ARGS> diff --git a/rt/html/Ticket/Elements/ShowTime b/rt/html/Ticket/Elements/ShowTime deleted file mode 100644 index 92e84f681..000000000 --- a/rt/html/Ticket/Elements/ShowTime +++ /dev/null @@ -1,55 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -% if ($minutes < 60) { -<&|/l, $minutes &>[_1] min</&> -% } else { -<&|/l, sprintf("%.1f",$minutes / 60) &>[quant,_1,hour]</&> (<&|/l, $minutes &>[_1] min</&>) -% } -<%ARGS> -$minutes -</%ARGS> diff --git a/rt/html/Ticket/Reminders.html b/rt/html/Ticket/Reminders.html deleted file mode 100755 index 2a3ba4c08..000000000 --- a/rt/html/Ticket/Reminders.html +++ /dev/null @@ -1,71 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<& /Elements/Header, Title => loc("Reminder ticket #[_1]", $Ticket->Id) &> -<& /Ticket/Elements/Tabs, - Ticket => $Ticket, - current_tab => "Ticket/Reminders.html?id=".$Ticket->Id, - Title => loc("Reminders for ticket #[_1]", $Ticket->Id) &> -<form action="<%$RT::WebPath%>/Ticket/Reminders.html" method="post"> -<&|/Widgets/TitleBox, title => loc("Reminders"), - title_class=> 'inverse', - color => "#666699" &> - -<& /Ticket/Elements/Reminders, Ticket => $Ticket, ShowCompleted => 1, Edit => 1 &> -</&> -<& /Elements/Submit, Label => 'Save'&> -</form> - - -<%INIT> - -my $Ticket = LoadTicket($id); - -</%INIT> -<%ARGS> -$id => undef -</%ARGS> diff --git a/rt/html/Tools/Reports/CreatedByDates.html b/rt/html/Tools/Reports/CreatedByDates.html deleted file mode 100644 index b6d6f940a..000000000 --- a/rt/html/Tools/Reports/CreatedByDates.html +++ /dev/null @@ -1,94 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%args> -$Queue => undef -$CreatedBefore => undef -$CreatedAfter => undef -</%args> -<%init> -my $title = loc("Created tickets in period, grouped by status"); -my $q = RT::Queue->new($session{'CurrentUser'}); -my $before = RT::Date->new($session{'CurrentUser'}); -my $after = RT::Date->new($session{'CurrentUser'}); -my $query = 'Status != "deleted" '; - - -if ($CreatedAfter) { - $after->Set(Format => 'unknown', Value => $CreatedAfter); - $CreatedAfter = $after->AsString; -} -if ($CreatedBefore) { - $before->Set(Format => 'unknown', Value => $CreatedBefore); - $CreatedBefore = $before->AsString; -} - - -$q->LoadByCols(Name => $Queue); -</%init> -<& /Elements/Header, Title => $title &> -<& /Tools/Reports/Elements/Tabs, current_tab => 'Tools/Reports/CreatedByDates.html', Title => $title &> -<form method="post" action="CreatedByDates.html"> -% if ($Queue|| $CreatedBefore ||$CreatedAfter) { -% # if we have a queue, do the search -% if ($Queue) { $query .= " AND Queue = '$Queue'"} -% if ($CreatedBefore) { $query .= " AND Created < '".$before->ISO."'"; } -% if ($CreatedAfter) { $query .= " AND Created > '".$after->ISO."'"} -% my $groupby = 'Status'; -<& /Search/Elements/Chart, Query => $query, PrimaryGroupBy => $groupby &> -% } - -<hr> - -<br /><&|/l&>Queue</&>: <& /Elements/SelectQueue, Name => 'Queue', NamedValues => 1, Default => $q->id &> -<br /><&|/l&>Tickets created after</&>: -<input size="20" name="CreatedAfter" value="<%$CreatedAfter%>" /> -<br /><&|/l&>Tickets created before</&>: -<input size="20" name="CreatedBefore" value="<%$CreatedBefore%>" /> - -<& /Elements/Submit&> -</form> diff --git a/rt/html/Tools/Reports/Elements/Tabs b/rt/html/Tools/Reports/Elements/Tabs deleted file mode 100644 index 18829f085..000000000 --- a/rt/html/Tools/Reports/Elements/Tabs +++ /dev/null @@ -1,89 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<& /Tools/Elements/Tabs, - subtabs => $tabs, - current_tab => 'Tools/Reports/index.html', - current_subtab => $current_tab, - Title => $Title &> - -<%INIT> -my $tabs = { - a => { - title => loc('Resolved by owner'), - path => 'Tools/Reports/ResolvedByOwner.html', - }, - b => { - title => loc('Resolved in date range'), - path => 'Tools/Reports/ResolvedByDates.html', - }, - c => { - title => loc('Created in a date range'), - path => 'Tools/Reports/CreatedByDates.html', - }, -}; - - - - -$m->comp('/Elements/Callback', tabs => $tabs, %ARGS); - -foreach my $tab ( sort keys %{$tabs} ) { - if ( $tabs->{$tab}->{'path'} eq $current_tab ) { - $tabs->{$tab}->{"subtabs"} = $subtabs; - $tabs->{$tab}->{"current_subtab"} = $current_subtab; - } -} -</%INIT> - - -<%ARGS> -$subtabs => undef -$current_tab => undef -$current_subtab => undef -$Title => undef -</%ARGS> diff --git a/rt/html/Tools/Reports/ResolvedByDates.html b/rt/html/Tools/Reports/ResolvedByDates.html deleted file mode 100644 index 265a1caa4..000000000 --- a/rt/html/Tools/Reports/ResolvedByDates.html +++ /dev/null @@ -1,95 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%args> -$Queue => undef -$ResolvedBefore => undef -$ResolvedAfter => undef -</%args> -<%init> -my $title = loc("Resolved tickets in period, grouped by owner"); -my $q = RT::Queue->new($session{'CurrentUser'}); -my $before = RT::Date->new($session{'CurrentUser'}); -my $after = RT::Date->new($session{'CurrentUser'}); -my $query = ''; - - -if ($ResolvedAfter) { - $after->Set(Format => 'unknown', Value => $ResolvedAfter); - $ResolvedAfter = $after->AsString; -} -if ($ResolvedBefore) { - $before->Set(Format => 'unknown', Value => $ResolvedBefore); - $ResolvedBefore = $before->AsString; -} - - -$q->LoadByCols(Name => $Queue); -</%init> -<& /Elements/Header, Title => $title &> -<& /Tools/Reports/Elements/Tabs, current_tab => 'Tools/Reports/ResolvedByDates.html', Title => $title &> -<form method="post" action="ResolvedByDates.html"> -% if ($Queue|| $ResolvedBefore ||$ResolvedAfter) { -% # if we have a queue, do the search -% $query = "Status = 'resolved'"; -% if ($Queue) { $query .= " AND Queue = '$Queue'"} -% if ($ResolvedBefore) { $query .= " AND Resolved < '".$before->ISO."'"; } -% if ($ResolvedAfter) { $query .= " AND Resolved > '".$after->ISO."'"} -% my $groupby = 'Owner'; -<& /Search/Elements/Chart, Query => $query, PrimaryGroupBy => $groupby &> -% } - -<hr> - -<br /><&|/l&>Queue</&>: <& /Elements/SelectQueue, Name => 'Queue', NamedValues => 1, Default => $q->id &> -<br /><&|/l&>Tickets resolved after</&>: -<input size="20" name="ResolvedAfter" value="<%$ResolvedAfter%>" /> -<br /><&|/l&>Tickets resolved before</&>: -<input size="20" name="ResolvedBefore" value="<%$ResolvedBefore%>" /> - -<& /Elements/Submit&> -</form> diff --git a/rt/html/Tools/Reports/ResolvedByOwner.html b/rt/html/Tools/Reports/ResolvedByOwner.html deleted file mode 100644 index 142af6475..000000000 --- a/rt/html/Tools/Reports/ResolvedByOwner.html +++ /dev/null @@ -1,70 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%args> -$Queue => undef -</%args> -<%init> -my $title = loc("Resolved tickets, grouped by owner"); -my $q = RT::Queue->new($session{'CurrentUser'}); -$q->LoadByCols(Name => $Queue); -</%init> -<& /Elements/Header, Title => $title &> -<& /Tools/Reports/Elements/Tabs, current_tab => '/Tools/Reports/ResolvedByOwner.html', Title => $title &> -<form method="post" action="ResolvedByOwner.html"> -% if ($Queue) { -% # if we have a queue, do the search -% my $query = "Status = 'resolved' AND Queue = '$Queue'"; -% my $groupby = 'Owner'; -<& /Search/Elements/Chart, Query => $query, PrimaryGroupBy => $groupby &> -% } - -<hr> - -<&|/l&>Queue</&>: <& /Elements/SelectQueue, Name => 'Queue', NamedValues => 1, Default => $q->id &> -<& /Elements/Submit&> -</form> diff --git a/rt/html/Tools/Reports/index.html b/rt/html/Tools/Reports/index.html deleted file mode 100644 index 149dc7619..000000000 --- a/rt/html/Tools/Reports/index.html +++ /dev/null @@ -1,50 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<& /Elements/Header, Title => loc('Reports') &> -<& /Tools/Reports/Elements/Tabs, Title => loc('Reports') &> -<& /Elements/Callback &> diff --git a/rt/html/Tools/index.html b/rt/html/Tools/index.html deleted file mode 100644 index 8d2efdbed..000000000 --- a/rt/html/Tools/index.html +++ /dev/null @@ -1,52 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<& /Elements/Header, Title => loc("Tools") &> -<& Elements/Tabs, - current_tab => "Tools/index.html", - Title => loc("Tools") &> - diff --git a/rt/html/Widgets/ComboBox b/rt/html/Widgets/ComboBox deleted file mode 100644 index 8fb5682d9..000000000 --- a/rt/html/Widgets/ComboBox +++ /dev/null @@ -1,69 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<nobr> -<script type="text/javascript" src="<%$RT::WebPath%>/NoAuth/js/combobox.js"></script> - -<span id="<% $Name %>_Container" class="combobox"> -<input name="<% $Name %>" id="<% $Name %>" class="combo-text" value="<% $Default %>" type="text" <% $Size ? "size='$Size'" : '' |n %> autocomplete="off" /> -<br style="display: none" /><span id="<% $Name %>_Button" class="combo-button"></span></span><select name="List-<% $Name %>" id="<% $Name %>_List" class="combo-list" onchange="ComboBox_SimpleAttach(this, this.form['<% $Name %>']); " rows="<% $Rows %>"> -<option style="display: none" value="">-</option> -% foreach my $value (@Values) { - <option value="<%$value%>"><% $value%></option> -% } -</select> -<script language="javascript"><!-- -ComboBox_InitWith('<% $Name %>'); -//--></script> -</nobr> -<%ARGS> -$Name -$Size => undef -$Rows => 5 -$Default => '' -@Values => () -</%ARGS> diff --git a/rt/html/Widgets/SavedSearch b/rt/html/Widgets/SavedSearch deleted file mode 100644 index b8313daf8..000000000 --- a/rt/html/Widgets/SavedSearch +++ /dev/null @@ -1,150 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<%method new> -<%init> -return \%ARGS; -</%init> -</%method> - -<%method process> - -<%init> -my @actions; -my @Objects = RT::SavedSearches->new( $session{CurrentUser} )->_PrivacyObjects; -push @Objects, RT::System->new($session{'CurrentUser'}) - if $session{'CurrentUser'}->HasRight( Object=> $RT::System, - Right => 'SuperUser'); -$self->{SearchId} ||= 'new'; -my $SearchParams = { map { $_ => $args->{$_} } @{$self->{SearchFields}} }; - -if ( my ( $container_object, $search_id ) = _parse_saved_search( $args->{'LoadSavedSearch'} ) ) { - my $search = $container_object->Attributes->WithId($search_id); - # We have a $search and now; import the others - $self->{SearchId} = $args->{'LoadSavedSearch'}; - $self->{CurrentSearch}{Object} = $search; - $args->{$_} = $search->SubValue($_) for @{ $self->{SearchFields} }; -} - -# look for the current one in the available saved searches -if ($self->{SearchId} eq 'new') { - for my $obj (@Objects) { - for ( $m->comp( "/Search/Elements/SearchesForObject", Object => $obj ) ) { - my ( $desc, $search ) = @$_; - use Data::Dumper; - # FFS - local $Data::Dumper::Sortkeys = 1; - if ( Dumper( $search->Content ) eq - Dumper( { %$SearchParams, SearchType => $self->{SearchType} } ) ) { - $self->{CurrentSearch}{Object} = $search; - $self->{SearchId} = $search->Id; - } - } - } -} - -if ( $args->{Save} ) { - if ( my $search = $self->{CurrentSearch}{Object} ) { - # rename - $search->SetDescription( $args->{Description} ); - push @actions, loc($self->{SearchType}).loc( ' [_1] renamed to [_2].', $self->{CurrentSearch}{Description}, $args->{Description} ); - } - else { - # new saved search - my $saved_search = RT::SavedSearch->new( $session{'CurrentUser'} ); - my ( $ok, $search_msg ) = $saved_search->Save( - Privacy => $args->{'Owner'}, - Name => $args->{'Description'}, - Type => $self->{'SearchType'}, - SearchParams => $SearchParams - ); - if ($ok) { - $self->{CurrentSearch}{Object} = $saved_search->{Attribute}; - push @actions, loc($self->{SearchType}).loc( ' [_1] saved.', $args->{Description} ); - } else { - push @actions, - [ loc("Can't save [_1]", loc($self->{SearchType})) . ': ' . loc($search_msg), 0 ]; - } - } -} - -if ( $args->{Delete} && $self->{CurrentSearch}{Object} ) { - my ($ok, $msg) = $self->{CurrentSearch}{Object}->Delete; - push @actions, $ok ? loc($self->{SearchType}).loc( ' [_1] deleted.', $self->{CurrentSearch}{Object}->Description ) : $msg; - delete $self->{CurrentSearch}{Object}; - delete $self->{SearchId}; - -} - -$self->{CurrentSearch}{Description} = $self->{CurrentSearch}{Object}->Description - if $self->{CurrentSearch}{Object}; - -return @actions; -</%init> -<%ARGS> -$self -$args -</%ARGS> - -</%method> - -<%method show> -<form method="post" action="<% $Action %>" name="SaveSearch"> -<& /Search/Elements/EditSearches, Name => 'Owner', SearchType => $self->{SearchType}, AllowCopy => 0, - CurrentSearch => $self->{CurrentSearch}, SearchId => $self->{SearchId}, Title => $Title &><br /> -% for my $field (@{$self->{SearchFields}}) { -<input type="hidden" class="hidden" name="<%$field%>" value="<%$ARGS{$field} || ''%>" /> -% } -</form> -<%ARGS> -$self => undef -$Action => '' -$Title => 'Saved searches' -</%ARGS> -<%init> -</%init> -</%method> diff --git a/rt/html/Widgets/SelectionBox b/rt/html/Widgets/SelectionBox deleted file mode 100644 index 910b20b25..000000000 --- a/rt/html/Widgets/SelectionBox +++ /dev/null @@ -1,234 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -%# The SelectionBox Widget -%# -%# SYNOPSIS -%# -%# include javascript: -%# <& /Widgets/SelectionBox:header &> -%# -%# <%init>: -%# my $sel = $m->comp ('/Widgets/SelectionBox:new', -%# Action => me.html', -%# Name => 'my-selection', -%# Available => \@items, -%# # you can do things with @{$sel->{Current}} in the -%# # OnSubmit callback -%# OnSubmit => sub { my $sel = shift; }, -%# Selected => \@selected); -%# -%# $m->comp ('/Widgets/SelectionBox:process', %ARGS, self => $sel) -%# -%# where @items is an arrayref, each element is [value, label], -%# and @selected is an arrayref of selected values from @items. -%# -%# and in html: -%# <& /Widgets/SelectionBox:sow, self => $sel &> -%# -%# if the SelectionBox is created with AutoSave option, OnSubmit will be called -%# on every button clicked in non-js mode. -<%method header> -% unless ($nojs) { -<script type="text/javascript" src="<%$RT::WebPath%>/NoAuth/js/class.js"></script> -<script type="text/javascript" src="<%$RT::WebPath%>/NoAuth/js/list.js"></script> -% } -<%ARGS> -$nojs => 0 -</%ARGS> -</%method> - -<%method new> -<%init> -$ARGS{_item_map} = {map {$_->[0] => $_->[1]} @{$ARGS{Available}}}; -return \%ARGS; -</%init> -</%method> - -<%method process> -<%init> -unless ($ARGS{$self->{Name}.'-Submit'}) { - # init - $self->{Current} = $self->{Selected}; - $self->{Selected} = []; - return; -} - -$self->{Selected} = $ARGS{$self->{Name}.'-Selected'}; -if ($self->{Selected} && !ref($self->{Selected})) { - $self->{Selected} = [$self->{Selected}]; -} - -if ($ARGS{fromjs}) { - $self->{Current} = $self->{Selected}; -} -else { - my $current = $self->{Current} = $ARGS{$self->{Name}.'-Current'}; - ++$self->{Modified}; - if ($current && !ref ($current)) { - $current = [$current]; - } - - if ($ARGS{add}) { - my $choosed = $ARGS{$self->{Name}.'-Available'}; - for my $add (ref($choosed) ? @$choosed : $choosed) { - next if grep { $_ eq $add } @$current; - push @$current, $add; - } - } - - if ($ARGS{remove}) { - my $choosed = $ARGS{$self->{Name}.'-Selected'}; - for my $del (ref($choosed) ? @$choosed : $choosed) { - @$current = map { $_ eq $del ? () : $_ } @$current; - } - } - - if ($ARGS{moveup} or $ARGS{movedown}) { - my $offset = $ARGS{moveup} ? 1 : 0; - my $choosed = $ARGS{$self->{Name}.'-Selected'}; - $choosed = [$choosed] unless ref ($choosed); - my $canmove = 0; # not in the cornor - for my $i ($ARGS{moveup} ? 0..$#{$current} : reverse 0..$#{$current}) { - if (grep {$_ eq $current->[$i]} @$choosed) { - if ($canmove) { - splice (@$current, $i-$offset, 2, - @{$current}[$i+1-$offset,$i-$offset]); - } - } - else { - ++$canmove; - } - } - } - - $self->{Current} = $current; -} - -@{$self->{Current}} = grep { exists $self->{_item_map}{$_} } @{$self->{Current}}; - -if ($self->{AutoSave} or $ARGS{$self->{Name}.'-Save'}) { - $self->{OnSubmit}->($self); - delete $self->{Modified}; -} - -</%init> -<%ARGS> -$self => undef -</%ARGS> - -</%method> - -<%method current> -% for (@{$self->{Current}}) { -<input type="hidden" class="hidden" name="<% $self->{Name} %>-Current" value="<%$_%>" /> -% } -<%INIT> -</%INIT> -<%ARGS> -$self => undef -</%ARGS> - -</%method> - -<%method show> -<form method="post" action="<%$self->{Action}%>" name="SelectionBox-<% $name %>" id="SelectionBox-<% $name %>" -% unless ($nojs) { -onsubmit="list_<% $name %>.selectAll();" -% } -> -<input type="hidden" class="hidden" name="<% $self->{Name} %>-Submit" value="1" /> -<& SelectionBox:current, self => $self &> -<input type="hidden" class="hidden" name="fromjs" value="0" /> -<&|/l&>Available</&>: -<br /> -<select name="<%$name%>-Available" id="<%$name%>-Available" size="<%$size%>" multiple="multiple"> -% for (@{$self->{Available}}) { -<option value="<% $_->[0] %>"><% $_->[1] %></option> -% } -</select> -<input name="add" type="submit" class="button" value=" → " /> -<select name="<%$name%>-Selected" id="<%$name%>-Selected" size="<%$size%>" multiple="multiple"> -% for (@{$self->{Current}}) { -<option value="<% $_ %>" -% if (exists $selected{$_}) { -selected="selected" -% } -><% $self->{_item_map}{$_} %></option> -% } -</select> - <input name="moveup" type="submit" class="button" value=" ↑ " /> - <input name="movedown" type="submit" class="button" value=" ↓ " /> - <input name="remove" type="submit" class="button" value="<&|/l&>Delete</&>" /> - -% my $caption = ""; -% unless ($self->{'AutoSave'}) { -% if ($self->{Modified}) { -% $caption = loc('Selections modified. Please save your changes'); -% } -<& /Elements/Submit, Caption => loc($caption), Label => loc('Save'), Name => $name.'-Save' &> -% } -</form> - -% unless ($nojs) { -<script type="text/javascript"> -//<![CDATA[ -var list_<%$name%> = new list(document.getElementById("SelectionBox-<% $name %>"), 0, "list_<%$name%>"); -//]]> -</script> -% } -<%ARGS> -$self => undef -$size => 10 -$nojs => 0 -</%ARGS> -<%INIT> -my $name = $self->{Name}; -my %selected = map {$_ => 1} @{$self->{Selected}}; -</%INIT> - -</%method> diff --git a/rt/html/Widgets/TitleBox b/rt/html/Widgets/TitleBox deleted file mode 100644 index 00d9e4c63..000000000 --- a/rt/html/Widgets/TitleBox +++ /dev/null @@ -1,54 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<div class="<% $class %>"> - <& TitleBoxStart, %ARGS &><% $m->content | n %><& TitleBoxEnd &> -</div> -<%ARGS> -$class => '' -</%ARGS> - diff --git a/rt/html/Widgets/TitleBoxEnd b/rt/html/Widgets/TitleBoxEnd deleted file mode 100755 index b12b58f4d..000000000 --- a/rt/html/Widgets/TitleBoxEnd +++ /dev/null @@ -1,59 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} - <hr class="clear" /> - </div> -</div> - -% #Manually flush the content buffer after each titlebox is displayed -% $m->flush_buffer(); - -<%ARGS> -$title => undef -$content => undef -</%ARGS> - diff --git a/rt/html/Widgets/TitleBoxStart b/rt/html/Widgets/TitleBoxStart deleted file mode 100755 index 7edc8a154..000000000 --- a/rt/html/Widgets/TitleBoxStart +++ /dev/null @@ -1,88 +0,0 @@ -%# BEGIN BPS TAGGED BLOCK {{{ -%# -%# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -<div class="titlebox <% $class %>" id="<% $id %>"> - <div class="titlebox-title<% $title_class && " $title_class" %>"> -% if ($hideable) { - <span class="widget"><a href="#" onclick="return rollup('<%$tid%>');" onfocus="this.blur(); return false;" title="Toggle visibility">X</a></span> -% } - <span class="left"><% $title_href && qq[<a href="$title_href">] | n %><% $title |n %><% $title_href && "</a>" |n%></span> - <span class="right"><% $titleright_href && qq[<a href="$titleright_href">] | n %><% $titleright |n %><% $titleright_href && "</a>" |n%></span> - </div> - <div class="titlebox-content <% $bodyclass %>" id="<%$tid%>"> - -<%ARGS> -$width => undef -$class => '' -$bodyclass => '' -$title_href => undef -$title => '' -$title_class => '' -$titleright_href => undef -$titleright => undef -$contentbg => "#dddddd" -$color => "#336699" -$id => '' -$hideable => 1 -</%ARGS> - -<%init> -# -# This should be pretty bulletproof -# -my $page = $m->request_comp->path; - -my $tid = "TitleBox--$page--" . - join '--', ($class, $bodyclass, $title, $id); - -$tid =~ s{/}{_}g; - -my $i = 0; -$i++ while $m->notes("$tid-$i"); -$m->notes("$tid-$i" => 1); -$tid = "$tid-$i"; -</%init> diff --git a/rt/lib/RT.pm b/rt/lib/RT.pm deleted file mode 100644 index 7e941a2b2..000000000 --- a/rt/lib/RT.pm +++ /dev/null @@ -1,323 +0,0 @@ -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2002 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK - - -package RT; -use strict; -use RT::I18N; -use RT::CurrentUser; -use RT::System; - -use vars qw($VERSION $System $SystemUser $Nobody $Handle $Logger - $CORE_CONFIG_FILE - $SITE_CONFIG_FILE - $VENDOR_CONFIG_FILE - $BasePath - $EtcPath - $VarPath - $LocalPath - $LocalEtcPath - $LocalLexiconPath - $LogDir - $MasonComponentRoot - $MasonLocalComponentRoot - $MasonDataDir - $MasonSessionDir -); - -$VERSION = '3.0.9'; -$CORE_CONFIG_FILE = "/opt/rt3/etc/RT_Config.pm"; -$SITE_CONFIG_FILE = "/opt/rt3/etc/RT_SiteConfig.pm"; - -$BasePath = '/opt/rt3'; - -$EtcPath = '/opt/rt3/etc'; -$VarPath = '/opt/rt3/var'; -$LocalPath = '/opt/rt3/local'; -$LocalEtcPath = '/opt/rt3/local/etc'; -$LocalLexiconPath = '/opt/rt3/local/po'; - -# $MasonComponentRoot is where your rt instance keeps its mason html files - -$MasonComponentRoot = '/opt/rt3/share/html'; - -# $MasonLocalComponentRoot is where your rt instance keeps its site-local -# mason html files. - -$MasonLocalComponentRoot = '/opt/rt3/local/html'; - -# $MasonDataDir Where mason keeps its datafiles - -$MasonDataDir = '/opt/rt3/var/mason_data'; - -# RT needs to put session data (for preserving state between connections -# via the web interface) -$MasonSessionDir = '/opt/rt3/var/session_data'; - - - -=head1 NAME - - RT - Request Tracker - -=head1 SYNOPSIS - - A fully featured request tracker package - -=head1 DESCRIPTION - - -=cut - -=item LoadConfig - -Load RT's config file. First, go after the core config file. -After that, try to load the vendor config. -After that, go after the site config. - -=cut - -sub LoadConfig { - local *Set = sub { $_[0] = $_[1] unless defined $_[0] }; - if ( -f "$SITE_CONFIG_FILE" ) { - require $SITE_CONFIG_FILE - || die ("Couldn't load RT config file '$SITE_CONFIG_FILE'\n$@"); - } - require $CORE_CONFIG_FILE - || die ("Couldn't load RT config file '$CORE_CONFIG_FILE'\n$@"); - RT::I18N->Init; -} - -=item Init - - Conenct to the database, set up logging. - -=cut - -sub Init { - - #Get a database connection - ConnectToDatabase(); - - #RT's system user is a genuine database user. its id lives here - $SystemUser = new RT::CurrentUser(); - $SystemUser->LoadByName('RT_System'); - - #RT's "nobody user" is a genuine database user. its ID lives here. - $Nobody = new RT::CurrentUser(); - $Nobody->LoadByName('Nobody'); - - $System = RT::System->new(); - - InitLogging(); -} - - -=head2 ConnectToDatabase - -Get a database connection - -=cut - -sub ConnectToDatabase { - require RT::Handle; - unless ($Handle && $Handle->dbh && $Handle->dbh->ping) { - $Handle = RT::Handle->new(); - } - $Handle->Connect(); -} - -=head2 InitLogging - -Create the RT::Logger object. - -=cut -sub InitLogging { - - # We have to set the record seperator ($, man perlvar) - # or Log::Dispatch starts getting - # really pissy, as some other module we use unsets it. - - $, = ''; - use Log::Dispatch 1.6; - - unless ($RT::Logger) { - - $RT::Logger=Log::Dispatch->new(); - - if ($RT::LogToFile) { - - unless (-d $RT::LogDir && -w $RT::LogDir) { - # localizing here would be hard when we don't have a current user yet - # die $self->loc("Log directory [_1] not found or couldn't be written.\n RT can't run.", $RT::LogDir); - die ("Log directory $RT::LogDir not found or couldn't be written.\n RT can't run."); - } - - my $filename; - if ($RT::LogToFileNamed =~ m![/\\]!) { - # looks like an absolute path. - $filename = $RT::LogToFileNamed; - } - else { - $filename = "$RT::LogDir/$RT::LogToFileNamed"; - } - require Log::Dispatch::File; - - - $RT::Logger->add(Log::Dispatch::File->new - ( name=>'rtlog', - min_level=> $RT::LogToFile, - filename=> $filename, - mode=>'append', - callbacks => sub { my %p = @_; - my ($package, $filename, $line) = caller(5); - return "[".gmtime(time)."] [".$p{level}."]: $p{message} ($filename:$line)\n"} - - - - )); - } - if ($RT::LogToScreen) { - require Log::Dispatch::Screen; - $RT::Logger->add(Log::Dispatch::Screen->new - ( name => 'screen', - min_level => $RT::LogToScreen, - callbacks => sub { my %p = @_; - my ($package, $filename, $line) = caller(5); - return "[".gmtime(time)."] [".$p{level}."]: $p{message} ($filename:$line)\n" - }, - - stderr => 1 - )); - } - if ($RT::LogToSyslog) { - require Log::Dispatch::Syslog; - $RT::Logger->add(Log::Dispatch::Syslog->new - ( name => 'syslog', - ident => 'RT', - min_level => $RT::LogToSyslog, - callbacks => sub { my %p = @_; - my ($package, $filename, $line) = caller(5); - - # syswrite() cannot take utf8; turn it off here. - Encode::_utf8_off($p{message}); - - if ($p{level} eq 'debug') { - - return "$p{message}\n" } - else { - return "$p{message} ($filename:$line)\n"} - }, - - stderr => 1 - )); - } - - } - -# {{{ Signal handlers - -## This is the default handling of warnings and die'ings in the code -## (including other used modules - maybe except for errors catched by -## Mason). It will log all problems through the standard logging -## mechanism (see above). - -$SIG{__WARN__} = sub {$RT::Logger->warning($_[0])}; - -#When we call die, trap it and log->crit with the value of the die. - -$SIG{__DIE__} = sub { - unless ($^S || !defined $^S ) { - $RT::Handle->Rollback(); - $RT::Logger->crit("$_[0]"); - exit(-1); - } - else { - #Get out of here if we're in an eval - die $_[0]; - } -}; - -# }}} - -} - -# }}} - - -sub SystemUser { - return($SystemUser); -} - -sub Nobody { - return ($Nobody); -} - - -=head2 DropSetGIDPermissions - -Drops setgid permissions. - -=cut - -sub DropSetGIDPermissions { - # Now that we got the config read in, we have the database - # password and don't need to be setgid - # make the effective group the real group - $) = $(; -} - - -=head1 SYNOPSIS - -=head1 BUGS - -Please report them to rt-3.0-bugs@fsck.com, if you know what's broken and have at least some idea of what needs to be fixed. -If you're not sure what's going on, report them rt-devel@lists.fsck.com. - -=head1 SEE ALSO - -L<RT::StyleGuide> -L<DBIx::SearchBuilder> - - - -=begin testing - - -ok ($RT::Nobody->Name() eq 'Nobody', "Nobody is nobody"); -ok ($RT::Nobody->Name() ne 'root', "Nobody isn't named root"); -ok ($RT::SystemUser->Name() eq 'RT_System', "The system user is RT_System"); -ok ($RT::SystemUser->Name() ne 'noname', "The system user isn't noname"); - - -=end testing - -=cut - -eval "require RT_Local"; -die $@ if ($@ && $@ !~ qr{^Can't locate RT_Local.pm}); - -1; diff --git a/rt/lib/RT/I18N/en_malkovich.po b/rt/lib/RT/I18N/en_malkovich.po deleted file mode 100644 index 74769f1a3..000000000 --- a/rt/lib/RT/I18N/en_malkovich.po +++ /dev/null @@ -1,3973 +0,0 @@ -msgid "" -msgstr "" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: html/Approvals/Elements/Approve:26 html/Approvals/Elements/ShowDependency:49 html/SelfService/Display.html:24 html/Ticket/Display.html:25 html/Ticket/Display.html:29 -#. ($TicketObj->Id, $TicketObj->Subject) -#. ($Ticket->id, $Ticket->Subject) -#. ($ticket->Id, $ticket->Subject) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "#%1: %2" -msgstr "#%1: %2" - -#: html/Search/Elements/SelectPersonType:30 lib/RT/Date.pm:337 -#. ($s, $time_unit) -#. ($option, $subtype) -msgid "%1 %2" -msgstr "%1 %2" - -#: lib/RT/Tickets_Overlay.pm:828 -#. ($args{'FIELD'}, $args{'OPERATOR'}, $args{'VALUE'}) -msgid "%1 %2 %3" -msgstr "%1 %2 %3" - -#: lib/RT/Date.pm:373 -#. ($self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)) -msgid "%1 %2 %3 %4:%5:%6 %7" -msgstr "%1 %2 %3 %4:%5:%6 %7" - -#: lib/RT/Ticket_Overlay.pm:3451 lib/RT/Transaction_Overlay.pm:550 lib/RT/Transaction_Overlay.pm:593 -#. ($cf->Name, $new_value->Content) -#. ($field, $self->NewValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 added" -msgstr "%1 %2 Malkovich" - -#: lib/RT/Date.pm:334 -#. ($s, $time_unit) -msgid "%1 %2 ago" -msgstr "%1 %2 ago" - -#: lib/RT/Ticket_Overlay.pm:3457 lib/RT/Transaction_Overlay.pm:557 -#. ($cf->Name, $old_value, $new_value->Content) -#. ($field, $self->OldValue, $self->NewValue) -msgid "%1 %2 changed to %3" -msgstr "%1 %2 Malkovich to %3" - -#: lib/RT/Ticket_Overlay.pm:3454 lib/RT/Transaction_Overlay.pm:553 lib/RT/Transaction_Overlay.pm:599 -#. ($cf->Name, $old_value) -#. ($field, $self->OldValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 deleted" -msgstr "%1 %2 Malkovich" - -#: html/Admin/Elements/EditScrips:43 html/Admin/Elements/ListGlobalScrips:27 html/Ticket/Elements/PreviewScrips:53 -#. ($scrip->ConditionObj->Name, $scrip->ActionObj->Name, $scrip->TemplateObj->Name) -#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) -msgid "%1 %2 with template %3" -msgstr "%1 %2 Malkovich %3" - -#: bin/rt-crontool:165 bin/rt-crontool:172 bin/rt-crontool:178 -#. ("--search-argument", "--search") -#. ("--condition-argument", "--condition") -#. ("--action-argument", "--action") -msgid "%1 - An argument to pass to %2" -msgstr "%1 - A Malkovich to pass to %2" - -#: bin/rt-crontool:181 -#. ("--verbose") -msgid "%1 - Output status updates to STDOUT" -msgstr "%1 - Malkovich Malkovich to MALKOVICH" - -#: bin/rt-crontool:175 -#. ("--action") -msgid "%1 - Specify the action module you want to use" -msgstr "%1 - Malkovich the Malkovich Malkovich to use" - -#: bin/rt-crontool:169 -#. ("--condition") -msgid "%1 - Specify the condition module you want to use" -msgstr "%1 - Malkovich the Malkovich Malkovich to use" - -#: bin/rt-crontool:162 -#. ("--search") -msgid "%1 - Specify the search module you want to use" -msgstr "%1 - Malkovich the Malkovich Malkovich to use" - -#: lib/RT/ScripAction_Overlay.pm:114 -#. ($self->Id) -msgid "%1 ScripAction loaded" -msgstr "%1 Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3484 -#. ($args{'Value'}, $cf->Name) -msgid "%1 added as a value for %2" -msgstr "%1 Malkovich as a Malkovich %2" - -#: lib/RT/Link_Overlay.pm:111 lib/RT/Link_Overlay.pm:118 -#. ($args{'Base'}) -#. ($args{'Target'}) -msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "%1 Malkovich to be a Malkovich, but can't be Malkovich in the Malkovich" - -#: html/Ticket/Elements/ShowDates:52 lib/RT/Transaction_Overlay.pm:458 -#. ($self->BriefDescription , $self->CreatorObj->Name) -#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) -msgid "%1 by %2" -msgstr "%1 by %2" - -#: lib/RT/Transaction_Overlay.pm:512 lib/RT/Transaction_Overlay.pm:688 lib/RT/Transaction_Overlay.pm:697 lib/RT/Transaction_Overlay.pm:700 -#. ($self->Field , ( $self->OldValue || $no_value ) , $self->NewValue) -#. ($self->Field , $q1->Name , $q2->Name) -#. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, $self->OldValue, $self->NewValue) -msgid "%1 changed from %2 to %3" -msgstr "%1 Malkovich %2 to %3" - -#: lib/RT/Record.pm:739 -msgid "%1 could not be set to %2." -msgstr "%1 Malkovich be set to %2." - -#: lib/RT/Ticket_Overlay.pm:2739 -#. ($self) -msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." -msgstr "%1 couldn't Malkovich to Malkovich. RT's Malkovich be Malkovich." - -#: NOT FOUND IN SOURCE -msgid "%1 highest priority tickets I own..." -msgstr "%1 Malkovich Malkovich I Malkovich..." - -#: html/Elements/MyTickets:26 -#. ($rows) -msgid "%1 highest priority tickets I requested..." -msgstr "%1 Malkovich Malkovich I Malkovich..." - -#: bin/rt-crontool:157 -#. ($0) -msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." -msgstr "%1 is a tool to act on Malkovich a Malkovich Malkovich, such as cron." - -#: lib/RT/Queue_Overlay.pm:784 -#. ($principal->Object->Name, $args{'Type'}) -msgid "%1 is no longer a %2 for this queue." -msgstr "%1 is no Malkovich a %2 Malkovich." - -#: lib/RT/Ticket_Overlay.pm:3540 -#. ($args{'Value'}, $cf->Name) -msgid "%1 is no longer a value for custom field %2" -msgstr "%1 is no Malkovich a Malkovich Malkovich %2" - -#: html/Ticket/Create.html:155 html/Ticket/Create.html:156 html/Ticket/Elements/ShowBasics:36 html/Ticket/Elements/ShowBasics:42 html/Ticket/Elements/ShowBasics:47 -#. ('<input size=3 name="TimeWorked" value="'.$ARGS{TimeWorked}.'">') -#. ('<input size=3 name="TimeLeft" value="'.$ARGS{TimeLeft}.'">') -#. ($Ticket->TimeEstimated) -#. ($Ticket->TimeWorked) -#. ($Ticket->TimeLeft) -msgid "%1 min" -msgstr "%1 min" - -#: html/User/Elements/DelegateRights:75 -#. (loc($ObjectType =~ /^RT::(.*)$/)) -msgid "%1 rights" -msgstr "%1 Malkovich" - -#: lib/RT/Action/ResolveMembers.pm:41 -#. (ref $self) -msgid "%1 will resolve all members of a resolved group ticket." -msgstr "%1 Malkovich Malkovich of a Malkovich Malkovich." - -#: lib/RT/Transaction_Overlay.pm:408 -#. ($self) -msgid "%1: no attachment specified" -msgstr "%1: no Malkovich Malkovich" - -#: html/Ticket/Elements/ShowTransactionAttachments:56 -#. ($size) -msgid "%1b" -msgstr "%1b" - -#: html/Ticket/Elements/ShowTransactionAttachments:53 -#. (int( $size / 102.4 ) / 10) -msgid "%1k" -msgstr "%1k" - -#: lib/RT/Ticket_Overlay.pm:1252 -#. ($args{'Status'}) -msgid "'%1' is an invalid value for status" -msgstr "'%1' is a Malkovich Malkovich" - -#: html/Admin/Elements/EditCustomFieldValues:24 html/Admin/Elements/EditQueueWatchers:28 html/Admin/Elements/EditScrips:34 html/Admin/Elements/EditTemplates:35 html/Admin/Groups/Members.html:51 html/Elements/EditLinks:32 html/Ticket/Elements/EditPeople:45 html/User/Groups/Members.html:54 -msgid "(Check box to delete)" -msgstr "(Malkovich to Malkovich)" - -#: html/Ticket/Elements/PreviewScrips:49 -msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "(Malkovich to Malkovich Malkovich to the Malkovich Malkovich)" - -#: html/Ticket/Elements/PreviewScrips:71 -msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "(Malkovich to Malkovich Malkovich to the Malkovich Malkovich)" - -#: NOT FOUND IN SOURCE -msgid "(Enter ticket ids or URLs, seperated with spaces)" -msgstr "(Malkovich Malkovich or URLs, Malkovich Malkovich)" - -#: html/Admin/Queues/Modify.html:53 html/Admin/Queues/Modify.html:59 -#. ($RT::CorrespondAddress) -#. ($RT::CommentAddress) -msgid "(If left blank, will default to %1" -msgstr "(If Malkovich, Malkovich to %1" - -#: html/Admin/Elements/EditCustomFields:32 html/Admin/Elements/ListGlobalCustomFields:31 -msgid "(No custom fields)" -msgstr "(No Malkovich)" - -#: html/Admin/Groups/Members.html:49 html/User/Groups/Members.html:52 -msgid "(No members)" -msgstr "(No Malkovich)" - -#: html/Admin/Elements/EditScrips:31 html/Admin/Elements/ListGlobalScrips:31 -msgid "(No scrips)" -msgstr "(No Malkovich)" - -#: html/Admin/Elements/EditTemplates:30 -msgid "(No templates)" -msgstr "(No Malkovich)" - -#: html/Ticket/Update.html:66 -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will receive future updates.)" -msgstr "(Malkovich a Malkovich-copy of Malkovich to a Malkovich-Malkovich of Malkovich. Does <b>not</b> Malkovich Malkovich Malkovich Malkovich.)" - -#: html/Ticket/Create.html:78 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <b>will</b> receive future updates.)" -msgstr "(Malkovich a Malkovich-copy of Malkovich to a Malkovich-Malkovich of Malkovich Malkovich Malkovich. Malkovich <b>will</b> Malkovich Malkovich.)" - -#: html/Ticket/Update.html:62 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <b>not</b> change who will receive future updates.)" -msgstr "(Malkovich a Malkovich-copy of Malkovich to a Malkovich-Malkovich of Malkovich. Does <b>not</b> Malkovich Malkovich Malkovich Malkovich.)" - -#: html/Ticket/Create.html:68 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people <b>will</b> receive future updates.)" -msgstr "(Malkovich a Malkovich-copy of Malkovich to a Malkovich-Malkovich of Malkovich. Malkovich <b>will</b> Malkovich Malkovich.)" - -#: html/Admin/Groups/index.html:32 html/User/Groups/index.html:32 -msgid "(empty)" -msgstr "(Malkovich)" - -#: html/Admin/Users/index.html:38 -msgid "(no name listed)" -msgstr "(no Malkovich)" - -#: html/Admin/Elements/SelectRights:47 html/Elements/SelectCustomFieldValue:29 html/Ticket/Elements/EditCustomField:64 html/Ticket/Elements/ShowCustomFields:35 lib/RT/Transaction_Overlay.pm:511 -msgid "(no value)" -msgstr "(no Malkovich)" - -#: html/Elements/EditLinks:105 html/Ticket/Elements/BulkLinks:27 -msgid "(only one ticket)" -msgstr "(Malkovich)" - -#: html/Elements/TicketList:167 -msgid "(pending approval)" -msgstr "(Malkovich Malkovich)" - -#: html/Elements/TicketList:170 -msgid "(pending other Collection)" -msgstr "(Malkovich Malkovich)" - -#: NOT FOUND IN SOURCE -msgid "(pending other tickets)" -msgstr "(Malkovich Malkovich)" - -#: html/Admin/Users/Modify.html:49 -msgid "(required)" -msgstr "(Malkovich)" - -#: html/Ticket/Elements/ShowTransactionAttachments:60 -msgid "(untitled)" -msgstr "(Malkovich)" - -#: NOT FOUND IN SOURCE -msgid "..." -msgstr "..." - -#: html/Ticket/Elements/ShowBasics:31 -msgid "<% $Ticket->Status%>" -msgstr "<% $Ticket->Status %>" - -#: html/Elements/SelectTicketTypes:26 -msgid "<% $_ %>" -msgstr "<% $_ %>" - -#: docs/design_docs/string-extraction-guide.txt:54 html/Elements/CreateTicket:25 lib/RT/StyleGuide.pod:767 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" value=\"New ticket in\"> %1" -msgstr "<input type=\"submit\" value=\"Malkovich in\"> %1" - -#: etc/initialdata:218 -msgid "A blank template" -msgstr "A Malkovich" - -#: lib/RT/ACE_Overlay.pm:156 lib/RT/Principal_Overlay.pm:180 -msgid "ACE not found" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:830 -msgid "ACEs can only be created and deleted." -msgstr "Malkovich be Malkovich and Malkovich." - -#: NOT FOUND IN SOURCE -msgid "Aborting to avoid unintended ticket modifications.\\n" -msgstr "Malkovich to Malkovich Malkovich Malkovich Malkovich.\\n" - -#: html/User/Elements/Tabs:31 -msgid "About me" -msgstr "Malkovich me" - -#: html/Admin/Users/Modify.html:79 -msgid "Access control" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrip:49 -msgid "Action" -msgstr "Malkovich" - -#: lib/RT/Scrip_Overlay.pm:148 -#. ($args{'ScripAction'}) -msgid "Action %1 not found" -msgstr "Malkovich %1 Malkovich" - -#: bin/rt-crontool:119 -msgid "Action committed." -msgstr "Malkovich Malkovich." - -#: bin/rt-crontool:115 -msgid "Action prepared..." -msgstr "Malkovich..." - -#: html/Search/Bulk.html:93 -msgid "Add AdminCc" -msgstr "Malkovich" - -#: html/Search/Bulk.html:89 -msgid "Add Cc" -msgstr "Add Cc" - -#: html/Ticket/Create.html:113 html/Ticket/Update.html:81 -msgid "Add More Files" -msgstr "Malkovich" - -#: html/Search/Bulk.html:85 -msgid "Add Requestor" -msgstr "Malkovich" - -#: html/Admin/Elements/AddCustomFieldValue:24 -msgid "Add Value" -msgstr "Malkovich" - -#: html/Admin/Global/Scrip.html:54 -msgid "Add a scrip which will apply to all queues" -msgstr "Add a Malkovich Malkovich to Malkovich" - -#: html/Search/Bulk.html:125 -msgid "Add comments or replies to selected tickets" -msgstr "Malkovich or Malkovich to Malkovich Malkovich" - -#: html/Admin/Groups/Members.html:41 html/User/Groups/Members.html:38 -msgid "Add members" -msgstr "Malkovich" - -#: html/Admin/Queues/People.html:65 html/Ticket/Elements/AddWatchers:27 -msgid "Add new watchers" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:684 -#. ($args{'Type'}) -msgid "Added principal as a %1 for this queue" -msgstr "Malkovich as a %1 Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1547 -#. ($self->loc($args{'Type'})) -msgid "Added principal as a %1 for this ticket" -msgstr "Malkovich as a %1 Malkovich" - -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:111 -msgid "Address1" -msgstr "Malkovich1" - -#: html/Admin/Users/Modify.html:124 html/User/Prefs.html:115 -msgid "Address2" -msgstr "Malkovich2" - -#: html/Ticket/Create.html:73 -msgid "Admin Cc" -msgstr "Malkovich Cc" - -#: etc/initialdata:295 -msgid "Admin Comment" -msgstr "Malkovich" - -#: etc/initialdata:274 -msgid "Admin Correspondence" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/index.html:24 html/Admin/Queues/index.html:27 -msgid "Admin queues" -msgstr "Malkovich" - -#: html/Admin/Global/index.html:25 html/Admin/Global/index.html:27 -msgid "Admin/Global configuration" -msgstr "Malkovich/Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Admin/Queue/Basics" -msgstr "Malkovich/Malkovich/Malkovich" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:38 lib/RT/ACE_Overlay.pm:88 -msgid "AdminCc" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:73 -msgid "AdminCustomFields" -msgstr "Malkovich Malkovich" - -#: lib/RT/Group_Overlay.pm:146 -msgid "AdminGroup" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:148 -msgid "AdminGroupMembership" -msgstr "Malkovich Malkovich" - -#: lib/RT/System.pm:58 -msgid "AdminOwnPersonalGroups" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:69 -msgid "AdminQueue" -msgstr "Malkovich" - -#: lib/RT/System.pm:59 -msgid "AdminUsers" -msgstr "Malkovich" - -#: html/Admin/Queues/People.html:47 html/Ticket/Elements/EditPeople:53 -msgid "Administrative Cc" -msgstr "Malkovich Cc" - -#: html/Elements/SelectDateRelation:35 -msgid "After" -msgstr "Malkovich" - -#: etc/initialdata:363 -msgid "All Approvals Passed" -msgstr "Malkovich Malkovich" - -#: html/Admin/Elements/EditCustomFields:94 -msgid "All Custom Fields" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/index.html:52 -msgid "All Queues" -msgstr "Malkovich" - -#: html/Elements/Tabs:58 -msgid "Approval" -msgstr "Malkovich" - -#: html/Approvals/Display.html:45 html/Approvals/Elements/ShowDependency:41 html/Approvals/index.html:64 -#. ($Ticket->Id, $Ticket->Subject) -#. ($ticket->id, $msg) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Approval #%1: %2" -msgstr "Malkovich #%1: %2" - -#: html/Approvals/index.html:53 -#. ($ticket->Id) -msgid "Approval #%1: Notes not recorded due to a system error" -msgstr "Malkovich #%1: Malkovich Malkovich to a Malkovich" - -#: html/Approvals/index.html:51 -#. ($ticket->Id) -msgid "Approval #%1: Notes recorded" -msgstr "Malkovich #%1: Malkovich" - -#: etc/initialdata:351 -msgid "Approval Passed" -msgstr "Malkovich" - -#: etc/initialdata:374 -msgid "Approval Rejected" -msgstr "Malkovich Malkovich" - -#: html/Approvals/Elements/Approve:43 -msgid "Approve" -msgstr "Malkovich" - -#: etc/initialdata:504 -msgid "Approver's notes: %1" -msgstr "Malkovich's Malkovich: %1" - -#: lib/RT/Date.pm:414 -msgid "Apr." -msgstr "Apr." - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:52 -msgid "Ascending" -msgstr "Malkovich" - -#: html/Search/Bulk.html:134 html/SelfService/Update.html:47 html/Ticket/ModifyAll.html:82 html/Ticket/Update.html:81 -msgid "Attach" -msgstr "Malkovich" - -#: html/SelfService/Create.html:64 html/Ticket/Create.html:109 -msgid "Attach file" -msgstr "Malkovich" - -#: html/SelfService/Update.html:36 html/Ticket/Create.html:97 html/Ticket/Update.html:70 -msgid "Attached file" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:416 -msgid "Attachment created" -msgstr "Malkovich Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1251 -msgid "Attachment filename" -msgstr "Malkovich Malkovich" - -#: html/Ticket/Elements/ShowAttachments:25 -msgid "Attachments" -msgstr "Malkovich" - -#: lib/RT/Attributes_Overlay.pm:158 -msgid "Attribute Deleted" -msgstr "Malkovich Malkovich" - -#: lib/RT/Date.pm:418 -msgid "Aug." -msgstr "Aug." - -#: NOT FOUND IN SOURCE -msgid "AuthSystem" -msgstr "Malkovich" - -#: etc/initialdata:221 -msgid "Autoreply" -msgstr "Malkovich" - -#: etc/initialdata:72 -msgid "Autoreply To Requestors" -msgstr "Malkovich To Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Bad data in %1" -msgstr "Malkovich in %1" - -#: html/Admin/Elements/GroupTabs:38 html/Admin/Elements/QueueTabs:38 html/Admin/Elements/UserTabs:37 html/Ticket/Elements/Tabs:91 html/User/Elements/GroupTabs:37 -msgid "Basics" -msgstr "Malkovich" - -#: html/Ticket/Update.html:64 -msgid "Bcc" -msgstr "Bcc" - -#: html/Admin/Elements/EditScrip:73 -msgid "Be sure to save your changes" -msgstr "Be sure to Malkovich Malkovich" - -#: html/Elements/SelectDateRelation:33 lib/RT/CurrentUser.pm:336 -msgid "Before" -msgstr "Malkovich" - -#: etc/initialdata:217 -msgid "Blank" -msgstr "Malkovich" - -#: html/Ticket/Elements/ShowHistory:38 html/Ticket/Elements/ShowHistory:44 -msgid "Brief headers" -msgstr "Malkovich" - -#: html/Search/Bulk.html:24 html/Search/Bulk.html:25 -msgid "Bulk ticket update" -msgstr "Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:1533 -msgid "Can not modify system users" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:68 -msgid "Can this principal see this queue" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:211 -msgid "Can't add a custom field value without a name" -msgstr "Can't add a Malkovich Malkovich Malkovich a name" - -#: lib/RT/Link_Overlay.pm:126 -msgid "Can't link a ticket to itself" -msgstr "Can't link a Malkovich to Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2716 -msgid "Can't merge into a merged ticket. You should never get this error" -msgstr "Can't Malkovich a Malkovich. Malkovich Malkovich Malkovich" - -#: lib/RT/Record.pm:1060 lib/RT/Record.pm:1138 -msgid "Can't specifiy both base and target" -msgstr "Can't Malkovich Malkovich and Malkovich" - -#: html/autohandler:132 -#. ($msg) -msgid "Cannot create user: %1" -msgstr "Malkovich Malkovich: %1" - -#: etc/initialdata:50 html/Admin/Queues/People.html:43 html/SelfService/Create.html:48 html/Ticket/Create.html:63 html/Ticket/Elements/EditPeople:50 html/Ticket/Elements/ShowPeople:34 html/Ticket/Update.html:59 lib/RT/ACE_Overlay.pm:87 -msgid "Cc" -msgstr "Cc" - -#: html/SelfService/Prefs.html:30 -msgid "Change password" -msgstr "Malkovich" - -#: html/SelfService/Update.html:39 html/Ticket/Create.html:100 html/Ticket/Update.html:73 -msgid "Check box to delete" -msgstr "Malkovich to Malkovich" - -#: html/Admin/Elements/SelectRights:30 -msgid "Check box to revoke right" -msgstr "Malkovich to Malkovich" - -#: html/Elements/EditLinks:121 html/Elements/EditLinks:63 html/Elements/ShowLinks:56 html/Ticket/Create.html:183 html/Ticket/Elements/BulkLinks:42 -msgid "Children" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:129 html/User/Prefs.html:119 -msgid "City" -msgstr "City" - -#: html/Ticket/Elements/ShowDates:47 -msgid "Closed" -msgstr "Malkovich" - -#: html/SelfService/Closed.html:24 -msgid "Closed Tickets" -msgstr "Malkovich" - -#: html/SelfService/Elements/Tabs:44 -msgid "Closed tickets" -msgstr "Malkovich" - -#: html/Ticket/Elements/ShowTransaction:152 html/Ticket/Elements/Tabs:154 -msgid "Comment" -msgstr "Malkovich" - -#: html/Admin/Queues/Modify.html:57 -msgid "Comment Address" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:88 -msgid "Comment on tickets" -msgstr "Malkovich on Malkovich" - -#: lib/RT/Queue_Overlay.pm:88 -msgid "CommentOnTicket" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Comments" -msgstr "Malkovich" - -#: html/Ticket/ModifyAll.html:69 html/Ticket/Update.html:51 -msgid "Comments (Not sent to requestors)" -msgstr "Malkovich (Malkovich to Malkovich)" - -#: html/Search/Bulk.html:129 -msgid "Comments (not sent to requestors)" -msgstr "Malkovich (Malkovich to Malkovich)" - -#: NOT FOUND IN SOURCE -msgid "Comments about %1" -msgstr "Malkovich %1" - -#: html/Admin/Users/Modify.html:182 html/Ticket/Elements/ShowRequestor:45 -msgid "Comments about this user" -msgstr "Malkovich Malkovich" - -#: lib/RT/Transaction_Overlay.pm:537 -msgid "Comments added" -msgstr "Malkovich" - -#: lib/RT/Action/Generic.pm:149 -msgid "Commit Stubbed" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrip:41 -msgid "Condition" -msgstr "Malkovich" - -#: bin/rt-crontool:105 -msgid "Condition matches..." -msgstr "Malkovich Malkovich..." - -#: lib/RT/Scrip_Overlay.pm:164 -msgid "Condition not found" -msgstr "Malkovich Malkovich" - -#: html/Elements/Tabs:52 -msgid "Configuration" -msgstr "Malkovich" - -#: html/SelfService/Prefs.html:32 -msgid "Confirm" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "ContactInfoSystem" -msgstr "Malkovich Malkovich" - -#: html/Admin/Elements/ModifyTemplate:43 html/Elements/SelectAttachmentField:26 html/Ticket/ModifyAll.html:86 -msgid "Content" -msgstr "Malkovich" - -#: etc/initialdata:286 -msgid "Correspondence" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Correspondence Address" -msgstr "Malkovich Malkovich" - -#: lib/RT/Transaction_Overlay.pm:533 -msgid "Correspondence added" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3471 -msgid "Could not add new custom field value for ticket. " -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich. " - -#: lib/RT/Ticket_Overlay.pm:2967 lib/RT/Ticket_Overlay.pm:2975 lib/RT/Ticket_Overlay.pm:2992 -msgid "Could not change owner. " -msgstr "Malkovich Malkovich. " - -#: html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditCustomFields:164 -#. ($msg) -msgid "Could not create CustomField" -msgstr "Malkovich Malkovich Malkovich" - -#: html/User/Groups/Modify.html:76 lib/RT/Group_Overlay.pm:474 lib/RT/Group_Overlay.pm:481 -msgid "Could not create group" -msgstr "Malkovich Malkovich" - -#: html/Admin/Global/Template.html:74 html/Admin/Queues/Template.html:71 -#. ($msg) -msgid "Could not create template: %1" -msgstr "Malkovich Malkovich: %1" - -#: lib/RT/Ticket_Overlay.pm:1185 lib/RT/Ticket_Overlay.pm:364 -msgid "Could not create ticket. Queue not set" -msgstr "Malkovich Malkovich. Malkovich" - -#: lib/RT/User_Overlay.pm:226 lib/RT/User_Overlay.pm:240 lib/RT/User_Overlay.pm:249 lib/RT/User_Overlay.pm:258 lib/RT/User_Overlay.pm:267 lib/RT/User_Overlay.pm:281 lib/RT/User_Overlay.pm:291 lib/RT/User_Overlay.pm:462 -msgid "Could not create user" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:662 lib/RT/Ticket_Overlay.pm:1515 -msgid "Could not find or create that user" -msgstr "Malkovich or Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:723 lib/RT/Ticket_Overlay.pm:1596 -msgid "Could not find that principal" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Groups/Members.html:87 html/User/Groups/Members.html:89 html/User/Groups/Modify.html:81 -msgid "Could not load group" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:682 -#. ($args{'Type'}) -msgid "Could not make that principal a %1 for this queue" -msgstr "Malkovich Malkovich Malkovich a %1 Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1536 -#. ($self->loc($args{'Type'})) -msgid "Could not make that principal a %1 for this ticket" -msgstr "Malkovich Malkovich Malkovich a %1 Malkovich" - -#: lib/RT/Queue_Overlay.pm:781 -#. ($args{'Type'}) -msgid "Could not remove that principal as a %1 for this queue" -msgstr "Malkovich Malkovich Malkovich as a %1 Malkovich" - -#: lib/RT/Group_Overlay.pm:977 -msgid "Couldn't add member to group" -msgstr "Couldn't Malkovich to Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3481 lib/RT/Ticket_Overlay.pm:3537 -#. ($Msg) -msgid "Couldn't create a transaction: %1" -msgstr "Couldn't Malkovich a Malkovich: %1" - -#: lib/RT/Record.pm:748 -msgid "Couldn't find row" -msgstr "Couldn't Malkovich" - -#: lib/RT/Group_Overlay.pm:951 -msgid "Couldn't find that principal" -msgstr "Couldn't Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:245 -msgid "Couldn't find that value" -msgstr "Couldn't Malkovich" - -#: lib/RT/CurrentUser.pm:123 -#. ($self->Id) -msgid "Couldn't load %1 from the users database.\\n" -msgstr "Couldn't load %1 from the Malkovich.\\n" - -#: html/Admin/Groups/GroupRights.html:87 html/Admin/Groups/UserRights.html:74 -#. ($id) -msgid "Couldn't load group %1" -msgstr "Couldn't Malkovich %1" - -#: lib/RT/Link_Overlay.pm:169 lib/RT/Link_Overlay.pm:178 lib/RT/Link_Overlay.pm:205 -msgid "Couldn't load link" -msgstr "Couldn't Malkovich" - -#: html/Admin/Elements/EditCustomFields:145 html/Admin/Queues/CustomFields.html:35 html/Admin/Queues/People.html:120 -#. ($id) -msgid "Couldn't load queue" -msgstr "Couldn't Malkovich" - -#: html/Admin/Queues/GroupRights.html:100 html/Admin/Queues/UserRights.html:71 -#. ($id) -msgid "Couldn't load queue %1" -msgstr "Couldn't Malkovich %1" - -#: NOT FOUND IN SOURCE -msgid "Couldn't load that user (%1)" -msgstr "Couldn't Malkovich (%1)" - -#: html/SelfService/Display.html:116 -#. ($id) -msgid "Couldn't load ticket '%1'" -msgstr "Couldn't Malkovich '%1'" - -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:131 -msgid "Country" -msgstr "Malkovich" - -#: html/Admin/Elements/CreateUserCalled:25 html/Admin/Elements/EditCustomField:62 html/Admin/Elements/EditScrip:110 html/Admin/Groups/Modify.html:55 html/Admin/Queues/Template.html:44 html/Elements/QuickCreate:23 html/Ticket/Create.html:134 html/Ticket/Create.html:195 html/User/Groups/Modify.html:55 -msgid "Create" -msgstr "Malkovich" - -#: etc/initialdata:135 -msgid "Create Tickets" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomField:74 -msgid "Create a CustomField" -msgstr "Malkovich a Malkovich" - -#: html/Admin/Queues/CustomField.html:47 -#. ($QueueObj->Name()) -msgid "Create a CustomField for queue %1" -msgstr "Malkovich a Malkovich Malkovich %1" - -#: html/Admin/Global/CustomField.html:47 -msgid "Create a CustomField which applies to all queues" -msgstr "Malkovich a Malkovich Malkovich to Malkovich" - -#: html/Admin/Groups/Modify.html:66 html/Admin/Groups/Modify.html:92 -msgid "Create a new group" -msgstr "Malkovich a Malkovich" - -#: html/User/Groups/Modify.html:66 html/User/Groups/Modify.html:91 -msgid "Create a new personal group" -msgstr "Malkovich a Malkovich Malkovich" - -#: html/Ticket/Create.html:24 html/Ticket/Create.html:27 html/Ticket/Create.html:35 -msgid "Create a new ticket" -msgstr "Malkovich a Malkovich" - -#: html/Admin/Users/Modify.html:211 html/Admin/Users/Modify.html:268 -msgid "Create a new user" -msgstr "Malkovich a Malkovich" - -#: html/Admin/Queues/Modify.html:103 -msgid "Create a queue" -msgstr "Malkovich a Malkovich" - -#: html/Admin/Queues/Scrip.html:58 -#. ($QueueObj->Name) -msgid "Create a scrip for queue %1" -msgstr "Malkovich a Malkovich %1" - -#: html/Admin/Global/Template.html:68 html/Admin/Queues/Template.html:64 -msgid "Create a template" -msgstr "Malkovich a Malkovich" - -#: html/SelfService/Create.html:24 -msgid "Create a ticket" -msgstr "Malkovich a Malkovich" - -#: etc/initialdata:137 -msgid "Create new tickets based on this scrip's template" -msgstr "Malkovich Malkovich on Malkovich's Malkovich" - -#: html/SelfService/Create.html:77 -msgid "Create ticket" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:86 -msgid "Create tickets in this queue" -msgstr "Malkovich in Malkovich" - -#: lib/RT/Queue_Overlay.pm:73 -msgid "Create, delete and modify custom fields" -msgstr "Malkovich, Malkovich and Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:69 -msgid "Create, delete and modify queues" -msgstr "Malkovich, Malkovich and Malkovich" - -#: lib/RT/System.pm:58 -msgid "Create, delete and modify the members of personal groups" -msgstr "Malkovich, Malkovich and Malkovich the Malkovich of Malkovich" - -#: lib/RT/System.pm:59 -msgid "Create, delete and modify users" -msgstr "Malkovich, Malkovich and Malkovich" - -#: lib/RT/Queue_Overlay.pm:86 -msgid "CreateTicket" -msgstr "Malkovich" - -#: html/Elements/SelectDateType:25 html/Ticket/Elements/ShowDates:27 lib/RT/Ticket_Overlay.pm:1279 -msgid "Created" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomField:87 -#. ($CustomFieldObj->Name()) -msgid "Created CustomField %1" -msgstr "Malkovich Malkovich %1" - -#: html/Elements/EditLinks:27 -msgid "Current Links" -msgstr "Malkovich Malkovich" - -#: html/Admin/Elements/EditScrips:29 -msgid "Current Scrips" -msgstr "Malkovich" - -#: html/Admin/Groups/Members.html:38 html/User/Groups/Members.html:41 -msgid "Current members" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectRights:28 -msgid "Current rights" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Current search criteria" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/People.html:40 html/Ticket/Elements/EditPeople:44 -msgid "Current watchers" -msgstr "Malkovich Malkovich" - -#: html/Admin/Global/CustomField.html:54 -#. ($CustomField) -msgid "Custom Field #%1" -msgstr "Malkovich #%1" - -#: html/Admin/Elements/QueueTabs:52 html/Admin/Elements/SystemTabs:39 html/Admin/Global/index.html:49 html/Ticket/Elements/ShowSummary:35 -msgid "Custom Fields" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrip:101 -msgid "Custom action cleanup code" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Elements/EditScrip:93 -msgid "Custom action preparation code" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Elements/EditScrip:85 -msgid "Custom condition" -msgstr "Malkovich Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1693 -#. ($CF->Name , $args{OPERATOR} , $args{VALUE}) -msgid "Custom field %1 %2 %3" -msgstr "Malkovich %1 %2 %3" - -#: lib/RT/Tickets_Overlay.pm:1688 -#. ($CF->Name) -msgid "Custom field %1 has a value." -msgstr "Malkovich %1 has a Malkovich." - -#: lib/RT/Tickets_Overlay.pm:1685 -#. ($CF->Name) -msgid "Custom field %1 has no value." -msgstr "Malkovich %1 has no Malkovich." - -#: lib/RT/Ticket_Overlay.pm:3373 -#. ($args{'Field'}) -msgid "Custom field %1 not found" -msgstr "Malkovich %1 Malkovich" - -#: html/Admin/Elements/EditCustomFields:195 -msgid "Custom field deleted" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3523 -msgid "Custom field not found" -msgstr "Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:355 -#. ($args{'Content'}, $self->Name) -msgid "Custom field value %1 could not be found for custom field %2" -msgstr "Malkovich Malkovich %1 Malkovich be Malkovich Malkovich %2" - -#: lib/RT/CustomField_Overlay.pm:255 -msgid "Custom field value could not be deleted" -msgstr "Malkovich Malkovich Malkovich be Malkovich" - -#: lib/RT/CustomField_Overlay.pm:361 -msgid "Custom field value could not be found" -msgstr "Malkovich Malkovich Malkovich be Malkovich" - -#: lib/RT/CustomField_Overlay.pm:253 lib/RT/CustomField_Overlay.pm:363 -msgid "Custom field value deleted" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Transaction_Overlay.pm:541 -msgid "CustomField" -msgstr "Malkovich" - -#: html/SelfService/Display.html:38 html/Ticket/Create.html:160 html/Ticket/Elements/ShowSummary:54 html/Ticket/Elements/Tabs:94 html/Ticket/ModifyAll.html:43 -msgid "Dates" -msgstr "Malkovich" - -#: lib/RT/Date.pm:422 -msgid "Dec." -msgstr "Dec." - -#: etc/initialdata:222 -msgid "Default Autoresponse template" -msgstr "Malkovich Malkovich Malkovich" - -#: etc/initialdata:296 -msgid "Default admin comment template" -msgstr "Malkovich Malkovich Malkovich" - -#: etc/initialdata:287 -msgid "Default correspondence template" -msgstr "Malkovich Malkovich Malkovich" - -#: etc/initialdata:253 -msgid "Default transaction template" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Transaction_Overlay.pm:519 -#. ($type, $self->Field, $self->OldValue, $self->NewValue) -msgid "Default: %1/%2 changed from %3 to %4" -msgstr "Malkovich: %1/%2 Malkovich %3 to %4" - -#: html/User/Delegation.html:24 html/User/Delegation.html:27 -msgid "Delegate rights" -msgstr "Malkovich" - -#: lib/RT/System.pm:62 -msgid "Delegate specific rights which have been granted to you." -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich to you." - -#: lib/RT/System.pm:62 -msgid "DelegateRights" -msgstr "Malkovich" - -#: html/User/Elements/Tabs:37 -msgid "Delegation" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrips:53 html/Search/Elements/EditFormat:66 html/Search/Elements/EditSearches:15 -msgid "Delete" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrips:52 -msgid "Delete selected scrips" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "Delete tickets" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "DeleteTicket" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:162 -msgid "Deleting this object could break referential integrity" -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:329 -msgid "Deleting this object would break referential integrity" -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:478 -msgid "Deleting this object would violate referential integrity" -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich Malkovich" - -#: html/Approvals/Elements/Approve:44 -msgid "Deny" -msgstr "Deny" - -#: html/Elements/EditLinks:113 html/Elements/EditLinks:44 html/Elements/ShowLinks:36 html/Ticket/Create.html:181 html/Ticket/Elements/BulkLinks:34 html/Ticket/Elements/ShowDependencies:31 -msgid "Depended on by" -msgstr "Malkovich on by" - -#: lib/RT/Transaction_Overlay.pm:621 -#. ($value) -msgid "Dependency by %1 added" -msgstr "Malkovich by %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:661 -#. ($value) -msgid "Dependency by %1 deleted" -msgstr "Malkovich by %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:618 -#. ($value) -msgid "Dependency on %1 added" -msgstr "Malkovich on %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:658 -#. ($value) -msgid "Dependency on %1 deleted" -msgstr "Malkovich on %1 Malkovich" - -#: html/Elements/EditLinks:109 html/Elements/EditLinks:35 html/Elements/SelectLinkType:26 html/Elements/ShowLinks:26 html/Ticket/Create.html:180 html/Ticket/Elements/BulkLinks:30 html/Ticket/Elements/ShowDependencies:24 -msgid "Depends on" -msgstr "Malkovich on" - -#: html/Elements/SelectSortOrder:34 html/Search/Elements/DisplayOptions:57 -msgid "Descending" -msgstr "Malkovich" - -#: html/SelfService/Create.html:72 html/Ticket/Create.html:118 -msgid "Describe the issue below" -msgstr "Malkovich the Malkovich" - -#: html/Admin/Elements/AddCustomFieldValue:35 html/Admin/Elements/EditCustomField:38 html/Admin/Elements/EditScrip:34 html/Admin/Elements/ModifyTemplate:35 html/Admin/Groups/Modify.html:48 html/Admin/Queues/Modify.html:47 html/Elements/SelectGroups:26 html/Search/Elements/EditSearches:8 html/User/Groups/Modify.html:48 -msgid "Description" -msgstr "Malkovich" - -#: html/Ticket/Elements/Tabs:86 -msgid "Display" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:70 -msgid "Display Access Control List" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:76 -msgid "Display Scrip templates for this queue" -msgstr "Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:79 -msgid "Display Scrips for this queue" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Ticket/Elements/ShowHistory:34 -msgid "Display mode" -msgstr "Malkovich" - -#: lib/RT/System.pm:53 -msgid "Do anything and everything" -msgstr "Do Malkovich and Malkovich" - -#: html/Elements/Refresh:29 -msgid "Don't refresh this page." -msgstr "Don't Malkovich Malkovich." - -#: NOT FOUND IN SOURCE -msgid "Don't show search results" -msgstr "Don't Malkovich Malkovich" - -#: html/Ticket/Elements/ShowTransactionAttachments:60 -msgid "Download" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Download all the tickets as a tab delimited file" -msgstr "Malkovich the Malkovich as a Malkovich Malkovich" - -#: html/Elements/SelectDateType:31 html/Ticket/Create.html:166 html/Ticket/Elements/EditDates:44 html/Ticket/Elements/ShowDates:43 lib/RT/Ticket_Overlay.pm:1283 -msgid "Due" -msgstr "Due" - -#: NOT FOUND IN SOURCE -msgid "ERROR: Couldn't load ticket '%1': %2.\\n" -msgstr "MALKOVICH: Couldn't Malkovich '%1': %2.\\n" - -#: html/Admin/Queues/CustomFields.html:45 -#. ($Queue->Name) -msgid "Edit Custom Fields for %1" -msgstr "Malkovich Malkovich %1" - -#: html/Search/Bulk.html:141 html/Ticket/ModifyLinks.html:35 -msgid "Edit Links" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/Templates.html:41 -#. ($QueueObj->Name) -msgid "Edit Templates for queue %1" -msgstr "Malkovich Malkovich %1" - -#: html/Admin/Global/index.html:45 -msgid "Edit system templates" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/Modify.html:118 -#. ($QueueObj->Name) -msgid "Editing Configuration for queue %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: NOT FOUND IN SOURCE -msgid "Editing Configuration for user %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: html/Admin/Elements/EditCustomField:90 -#. ($CustomFieldObj->Name()) -msgid "Editing CustomField %1" -msgstr "Malkovich Malkovich %1" - -#: html/Admin/Groups/Members.html:31 -#. ($Group->Name) -msgid "Editing membership for group %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: html/User/Groups/Members.html:128 -#. ($Group->Name) -msgid "Editing membership for personal group %1" -msgstr "Malkovich Malkovich Malkovich Malkovich %1" - -#: lib/RT/Record.pm:1075 lib/RT/Record.pm:1152 -msgid "Either base or target must be specified" -msgstr "Malkovich or Malkovich be Malkovich" - -#: html/Admin/Users/Modify.html:52 html/Elements/SelectUsers:26 html/Ticket/Elements/AddWatchers:55 html/User/Prefs.html:43 -msgid "Email" -msgstr "Malkovich" - -#: lib/RT/User_Overlay.pm:206 -msgid "Email address in use" -msgstr "Malkovich in use" - -#: NOT FOUND IN SOURCE -msgid "EmailAddress" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "EmailEncoding" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomField:50 -msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "Malkovich (Malkovich Malkovich Malkovich Malkovich Malkovich)" - -#: html/Admin/Groups/Modify.html:52 html/User/Groups/Modify.html:52 -msgid "Enabled (Unchecking this box disables this group)" -msgstr "Malkovich (Malkovich Malkovich Malkovich Malkovich)" - -#: html/Admin/Queues/Modify.html:83 -msgid "Enabled (Unchecking this box disables this queue)" -msgstr "Malkovich (Malkovich Malkovich Malkovich Malkovich)" - -#: html/Admin/Elements/EditCustomFields:97 -msgid "Enabled Custom Fields" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/index.html:55 -msgid "Enabled Queues" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomField:106 html/Admin/Groups/Modify.html:116 html/Admin/Queues/Modify.html:140 html/Admin/Users/Modify.html:308 html/User/Groups/Modify.html:116 -#. (loc_fuzzy($msg)) -msgid "Enabled status %1" -msgstr "Malkovich %1" - -#: lib/RT/CustomField_Overlay.pm:433 -msgid "Enter multiple values" -msgstr "Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:430 -msgid "Enter one value" -msgstr "Malkovich" - -#: html/Search/Bulk.html:142 -msgid "Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces." -msgstr "Malkovich or URIs to Malkovich to. Malkovich Malkovich Malkovich Malkovich." - -#: html/Elements/Login:39 html/SelfService/Error.html:24 html/SelfService/Error.html:25 -msgid "Error" -msgstr "Error" - -#: lib/RT/Queue_Overlay.pm:593 -msgid "Error in parameters to Queue->AddWatcher" -msgstr "Malkovich in Malkovich to Malkovich->Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Queue->DelWatcher" -msgstr "Malkovich in Malkovich to Malkovich->Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1468 -msgid "Error in parameters to Ticket->AddWatcher" -msgstr "Malkovich in Malkovich to Malkovich->Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Error in parameters to Ticket->DelWatcher" -msgstr "Malkovich in Malkovich to Malkovich->Malkovich" - -#: etc/initialdata:20 -msgid "Everyone" -msgstr "Malkovich" - -#: bin/rt-crontool:190 -msgid "Example:" -msgstr "Malkovich:" - -#: NOT FOUND IN SOURCE -msgid "ExternalAuthId" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "ExternalContactInfoId" -msgstr "Malkovich Malkovich" - -#: html/Admin/Users/Modify.html:72 -msgid "Extra info" -msgstr "Malkovich" - -#: lib/RT/User_Overlay.pm:342 -msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "Malkovich to find 'Malkovich' Malkovich Malkovich." - -#: lib/RT/User_Overlay.pm:349 -msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "Malkovich to find 'Malkovich' Malkovich Malkovich" - -#: bin/rt-crontool:134 -#. ($modname, $@) -msgid "Failed to load module %1. (%2)" -msgstr "Malkovich to Malkovich %1. (%2)" - -#: lib/RT/Date.pm:412 -msgid "Feb." -msgstr "Feb." - -#: html/Search/Elements/PickBasics:60 html/Ticket/Create.html:154 html/Ticket/Elements/EditBasics:57 lib/RT/Tickets_Overlay.pm:1153 -msgid "Final Priority" -msgstr "Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1274 -msgid "FinalPriority" -msgstr "Malkovich" - -#: html/Admin/Queues/People.html:60 html/Ticket/Elements/EditPeople:33 -msgid "Find group whose" -msgstr "Malkovich Malkovich" - -#: html/Admin/Queues/People.html:56 html/Admin/Users/index.html:45 html/Ticket/Elements/EditPeople:29 -msgid "Find people whose" -msgstr "Malkovich Malkovich" - -#: html/Search/Results.html:72 -msgid "Find tickets" -msgstr "Malkovich" - -#: html/Ticket/Elements/Tabs:59 -msgid "First" -msgstr "Malkovich" - -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:746 -msgid "Foo Bar Baz" -msgstr "Malkovich" - -#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:737 -msgid "Foo!" -msgstr "Foo!" - -#: html/Search/Bulk.html:84 -msgid "Force change" -msgstr "Malkovich" - -#: html/Search/Results.html:70 -#. ($ticketcount) -msgid "Found %quant(%1,ticket)" -msgstr "Malkovich %quant(%1,Malkovich)" - -#: lib/RT/Record.pm:750 -msgid "Found Object" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "FreeformContactInfo" -msgstr "Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:37 -msgid "FreeformMultiple" -msgstr "Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:36 -msgid "FreeformSingle" -msgstr "Malkovich" - -#: lib/RT/Date.pm:392 -msgid "Fri." -msgstr "Fri." - -#: html/Ticket/Elements/ShowHistory:40 html/Ticket/Elements/ShowHistory:50 -msgid "Full headers" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:587 -#. ($New->Name) -msgid "Given to %1" -msgstr "Malkovich to %1" - -#: html/Admin/Elements/Tabs:40 html/Admin/index.html:37 -msgid "Global" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectTemplate:37 -#. (loc($Template->Name)) -msgid "Global template: %1" -msgstr "Malkovich: %1" - -#: html/Tools/Offline.html:69 -msgid "Go" -msgstr "Go" - -#: html/Admin/Elements/EditCustomFields:73 html/Admin/Groups/index.html:39 html/Admin/Queues/People.html:58 html/Admin/Queues/People.html:62 html/Admin/Queues/index.html:43 html/Admin/Users/index.html:48 html/Ticket/Elements/EditPeople:31 html/Ticket/Elements/EditPeople:35 html/index.html:69 -msgid "Go!" -msgstr "Go!" - -#: html/Elements/GotoTicket:24 html/SelfService/Elements/GotoTicket:24 -msgid "Goto ticket" -msgstr "Malkovich" - -#: html/Ticket/Elements/AddWatchers:45 html/Ticket/Elements/ShowGroupMembers:33 html/User/Elements/DelegateRights:77 -msgid "Group" -msgstr "Malkovich" - -#: html/Admin/Elements/GroupTabs:44 html/Admin/Elements/QueueTabs:56 html/Admin/Elements/SystemTabs:43 html/Admin/Global/index.html:54 -msgid "Group Rights" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:957 -msgid "Group already has member" -msgstr "Malkovich Malkovich" - -#: html/Admin/Groups/Modify.html:76 -#. ($create_msg) -msgid "Group could not be created: %1" -msgstr "Malkovich be Malkovich: %1" - -#: lib/RT/Group_Overlay.pm:497 -msgid "Group created" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:1129 -msgid "Group has no such member" -msgstr "Malkovich no Malkovich" - -#: lib/RT/Group_Overlay.pm:937 lib/RT/Queue_Overlay.pm:669 lib/RT/Queue_Overlay.pm:729 lib/RT/Ticket_Overlay.pm:1522 lib/RT/Ticket_Overlay.pm:1602 -msgid "Group not found" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectNewGroupMembers:34 html/Admin/Elements/Tabs:34 html/Admin/Groups/Members.html:63 html/Admin/Queues/People.html:82 html/Admin/index.html:31 html/User/Groups/Members.html:66 -msgid "Groups" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:963 -msgid "Groups can't be members of their members" -msgstr "Malkovich can't be Malkovich of Malkovich" - -#: lib/RT/Interface/CLI.pm:72 lib/RT/Interface/CLI.pm:72 -msgid "Hello!" -msgstr "Malkovich!" - -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:753 -#. ($name) -msgid "Hello, %1" -msgstr "Malkovich, %1" - -#: html/Ticket/Elements/ShowHistory:29 html/Ticket/Elements/Tabs:89 -msgid "History" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "HomePhone" -msgstr "Malkovich" - -#: html/Elements/Tabs:43 -msgid "Homepage" -msgstr "Malkovich" - -#: lib/RT/Base.pm:86 -#. (6) -msgid "I have %quant(%1,concrete mixer)." -msgstr "I have %quant(%1,Malkovich)." - -#: html/Search/Elements/PickBasics:104 html/Ticket/Elements/ShowBasics:26 lib/RT/Tickets_Overlay.pm:1080 -msgid "Id" -msgstr "Id" - -#: html/Admin/Users/Modify.html:43 html/User/Prefs.html:38 -msgid "Identity" -msgstr "Malkovich" - -#: etc/initialdata:429 -msgid "If an approval is rejected, reject the original and delete pending approvals" -msgstr "If a Malkovich is Malkovich, Malkovich the Malkovich and Malkovich Malkovich" - -#: bin/rt-crontool:186 -msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." -msgstr "If Malkovich Malkovich, a Malkovich Malkovich Malkovich Malkovich to Malkovich Malkovich Malkovich to RT." - -#: html/Admin/Queues/People.html:104 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyPeople.html:37 -msgid "If you've updated anything above, be sure to" -msgstr "If you've Malkovich Malkovich, be sure to" - -#: lib/RT/Record.pm:742 -msgid "Illegal value for %1" -msgstr "Malkovich Malkovich %1" - -#: lib/RT/Record.pm:745 -msgid "Immutable field" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomFields:72 -msgid "Include disabled custom fields in listing." -msgstr "Malkovich Malkovich Malkovich in Malkovich." - -#: html/Admin/Queues/index.html:42 -msgid "Include disabled queues in listing." -msgstr "Malkovich Malkovich in Malkovich." - -#: html/Admin/Users/index.html:46 -msgid "Include disabled users in search." -msgstr "Malkovich Malkovich in Malkovich." - -#: html/Search/Elements/PickBasics:59 lib/RT/Tickets_Overlay.pm:1129 -msgid "Initial Priority" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1273 lib/RT/Ticket_Overlay.pm:1275 -msgid "InitialPriority" -msgstr "Malkovich" - -#: lib/RT/ScripAction_Overlay.pm:97 -msgid "Input error" -msgstr "Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3797 -msgid "Internal Error" -msgstr "Malkovich" - -#: lib/RT/Record.pm:186 -#. ($id->{error_message}) -msgid "Internal Error: %1" -msgstr "Malkovich: %1" - -#: lib/RT/Group_Overlay.pm:644 -msgid "Invalid Group Type" -msgstr "Malkovich Malkovich" - -#: lib/RT/Principal_Overlay.pm:127 -msgid "Invalid Right" -msgstr "Malkovich" - -#: lib/RT/Record.pm:747 -msgid "Invalid data" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Invalid owner. Defaulting to 'nobody'." -msgstr "Malkovich. Malkovich to 'Malkovich'." - -#: lib/RT/Scrip_Overlay.pm:133 lib/RT/Template_Overlay.pm:251 -msgid "Invalid queue" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:243 lib/RT/ACE_Overlay.pm:252 lib/RT/ACE_Overlay.pm:258 lib/RT/ACE_Overlay.pm:269 lib/RT/ACE_Overlay.pm:274 -msgid "Invalid right" -msgstr "Malkovich" - -#: lib/RT/Record.pm:161 -#. ($key) -msgid "Invalid value for %1" -msgstr "Malkovich Malkovich %1" - -#: lib/RT/Ticket_Overlay.pm:3380 -msgid "Invalid value for custom field" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:385 -msgid "Invalid value for status" -msgstr "Malkovich Malkovich" - -#: bin/rt-crontool:187 -msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." -msgstr "It is Malkovich Malkovich Malkovich Malkovich Malkovich be Malkovich to Malkovich." - -#: bin/rt-crontool:188 -msgid "It is suggested that you create a non-privileged unix user with the correct group membership and RT access to run this tool." -msgstr "It is Malkovich Malkovich a non-Malkovich Malkovich the Malkovich Malkovich and RT Malkovich to Malkovich." - -#: bin/rt-crontool:159 -msgid "It takes several arguments:" -msgstr "It Malkovich Malkovich:" - -#: lib/RT/Date.pm:411 -msgid "Jan." -msgstr "Jan." - -#: lib/RT/Group_Overlay.pm:149 -msgid "Join or leave this group" -msgstr "Join or Malkovich Malkovich" - -#: lib/RT/Date.pm:417 -msgid "Jul." -msgstr "Jul." - -#: html/Ticket/Elements/Tabs:100 -msgid "Jumbo" -msgstr "Malkovich" - -#: lib/RT/Date.pm:416 -msgid "Jun." -msgstr "Jun." - -#: NOT FOUND IN SOURCE -msgid "Lang" -msgstr "Lang" - -#: html/User/Prefs.html:54 -msgid "Language" -msgstr "Malkovich" - -#: html/Ticket/Elements/Tabs:74 -msgid "Last" -msgstr "Last" - -#: html/Ticket/Elements/EditDates:37 html/Ticket/Elements/ShowDates:39 -msgid "Last Contact" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Last Contact</a>" -msgstr "Malkovich</a>" - -#: html/Elements/SelectDateType:28 -msgid "Last Contacted" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Last Notified" -msgstr "Malkovich" - -#: html/Elements/SelectDateType:29 -msgid "Last Updated" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:82 -msgid "Let this user access RT" -msgstr "Malkovich Malkovich RT" - -#: html/Admin/Users/Modify.html:86 -msgid "Let this user be granted rights" -msgstr "Malkovich be Malkovich" - -#: lib/RT/Record.pm:1086 -msgid "Link already exists" -msgstr "Malkovich Malkovich" - -#: lib/RT/Record.pm:1100 -msgid "Link could not be created" -msgstr "Malkovich be Malkovich" - -#: lib/RT/Record.pm:1106 -#. ($TransString) -msgid "Link created (%1)" -msgstr "Malkovich (%1)" - -#: lib/RT/Record.pm:1167 -#. ($TransString) -msgid "Link deleted (%1)" -msgstr "Malkovich (%1)" - -#: lib/RT/Record.pm:1173 -msgid "Link not found" -msgstr "Malkovich" - -#: html/Ticket/ModifyLinks.html:24 html/Ticket/ModifyLinks.html:28 -#. ($Ticket->Id) -msgid "Link ticket #%1" -msgstr "Malkovich #%1" - -#: html/Ticket/Create.html:174 html/Ticket/Elements/ShowSummary:61 html/Ticket/Elements/Tabs:98 html/Ticket/ModifyAll.html:56 -msgid "Links" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:111 html/User/Prefs.html:104 -msgid "Location" -msgstr "Malkovich" - -#: lib/RT.pm:184 -#. ($RT::LogDir) -msgid "Log directory %1 not found or couldn't be written.\\n RT can't run." -msgstr "Malkovich %1 Malkovich or couldn't be Malkovich.\\n RT can't run." - -#: html/Elements/Header:69 -#. ("<b>".$session{'CurrentUser'}->Name."</b>") -msgid "Logged in as %1" -msgstr "Malkovich in as %1" - -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:35 html/Elements/Login:44 html/Elements/Login:54 lib/RT/StyleGuide.pod:777 -msgid "Login" -msgstr "Malkovich" - -#: html/Elements/Header:66 -msgid "Logout" -msgstr "Malkovich" - -#: html/Search/Bulk.html:83 -msgid "Make Owner" -msgstr "Malkovich" - -#: html/Search/Bulk.html:107 -msgid "Make Status" -msgstr "Malkovich" - -#: html/Search/Bulk.html:115 -msgid "Make date Due" -msgstr "Malkovich" - -#: html/Search/Bulk.html:117 -msgid "Make date Resolved" -msgstr "Malkovich Malkovich" - -#: html/Search/Bulk.html:111 -msgid "Make date Started" -msgstr "Malkovich Malkovich" - -#: html/Search/Bulk.html:109 -msgid "Make date Starts" -msgstr "Malkovich Malkovich" - -#: html/Search/Bulk.html:113 -msgid "Make date Told" -msgstr "Malkovich" - -#: html/Search/Bulk.html:103 -msgid "Make priority" -msgstr "Malkovich" - -#: html/Search/Bulk.html:105 -msgid "Make queue" -msgstr "Malkovich" - -#: html/Search/Bulk.html:101 -msgid "Make subject" -msgstr "Malkovich" - -#: html/Admin/index.html:32 -msgid "Manage groups and group membership" -msgstr "Malkovich and Malkovich Malkovich" - -#: html/Admin/index.html:38 -msgid "Manage properties and configuration which apply to all queues" -msgstr "Malkovich Malkovich and Malkovich Malkovich to Malkovich" - -#: html/Admin/index.html:35 -msgid "Manage queues and queue-specific properties" -msgstr "Malkovich and Malkovich-Malkovich Malkovich" - -#: html/Admin/index.html:29 -msgid "Manage users and passwords" -msgstr "Malkovich and Malkovich" - -#: lib/RT/Date.pm:413 -msgid "Mar." -msgstr "Mar." - -#: lib/RT/Date.pm:415 -msgid "May." -msgstr "May." - -#: lib/RT/Transaction_Overlay.pm:634 -#. ($value) -msgid "Member %1 added" -msgstr "Malkovich %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:674 -#. ($value) -msgid "Member %1 deleted" -msgstr "Malkovich %1 Malkovich" - -#: lib/RT/Group_Overlay.pm:974 -msgid "Member added" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:1136 -msgid "Member deleted" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:1140 -msgid "Member not deleted" -msgstr "Malkovich Malkovich" - -#: html/Elements/SelectLinkType:25 -msgid "Member of" -msgstr "Malkovich of" - -#: html/Admin/Elements/GroupTabs:41 html/User/Elements/GroupTabs:41 -msgid "Members" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:631 -#. ($value) -msgid "Membership in %1 added" -msgstr "Malkovich in %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:671 -#. ($value) -msgid "Membership in %1 deleted" -msgstr "Malkovich in %1 Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2813 -msgid "Merge Successful" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2733 -msgid "Merge failed. Couldn't set EffectiveId" -msgstr "Malkovich. Couldn't Malkovich" - -#: html/Elements/EditLinks:104 html/Ticket/Elements/BulkLinks:26 -msgid "Merge into" -msgstr "Malkovich" - -#: html/Search/Bulk.html:135 html/Ticket/Update.html:83 -msgid "Message" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Message body not shown because it is too large or is not plain text." -msgstr "Malkovich Malkovich Malkovich it is Malkovich or is Malkovich." - -#: lib/RT/Ticket_Overlay.pm:2514 -msgid "Message could not be recorded" -msgstr "Malkovich Malkovich be Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Message recipients" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2517 -msgid "Message recorded" -msgstr "Malkovich Malkovich" - -#: lib/RT/Record.pm:749 -msgid "Missing a primary key?: %1" -msgstr "Malkovich a Malkovich?: %1" - -#: html/Admin/Users/Modify.html:166 html/User/Prefs.html:71 -msgid "Mobile" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "MobilePhone" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:71 -msgid "Modify Access Control List" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Global/CustomFields.html:43 html/Admin/Global/index.html:50 -msgid "Modify Custom Fields which apply to all queues" -msgstr "Malkovich Malkovich Malkovich to Malkovich" - -#: lib/RT/Queue_Overlay.pm:74 -msgid "Modify Scrip templates for this queue" -msgstr "Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:77 -msgid "Modify Scrips for this queue" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Queues/CustomField.html:44 -#. ($QueueObj->Name()) -msgid "Modify a CustomField for queue %1" -msgstr "Malkovich a Malkovich Malkovich %1" - -#: html/Admin/Global/CustomField.html:52 -msgid "Modify a CustomField which applies to all queues" -msgstr "Malkovich a Malkovich Malkovich to Malkovich" - -#: html/Admin/Queues/Scrip.html:53 -#. ($QueueObj->Name) -msgid "Modify a scrip for queue %1" -msgstr "Malkovich a Malkovich %1" - -#: html/Admin/Global/Scrip.html:47 -msgid "Modify a scrip which applies to all queues" -msgstr "Malkovich a Malkovich Malkovich to Malkovich" - -#: html/Ticket/ModifyDates.html:24 html/Ticket/ModifyDates.html:28 -#. ($TicketObj->Id) -msgid "Modify dates for #%1" -msgstr "Malkovich Malkovich #%1" - -#: html/Ticket/ModifyDates.html:34 -#. ($TicketObj->Id) -msgid "Modify dates for ticket # %1" -msgstr "Malkovich Malkovich # %1" - -#: html/Admin/Global/GroupRights.html:24 html/Admin/Global/GroupRights.html:27 html/Admin/Global/index.html:55 -msgid "Modify global group rights" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Global/GroupRights.html:32 -msgid "Modify global group rights." -msgstr "Malkovich Malkovich Malkovich." - -#: html/Admin/Global/UserRights.html:24 html/Admin/Global/UserRights.html:27 html/Admin/Global/index.html:59 -msgid "Modify global user rights" -msgstr "Malkovich Malkovich" - -#: html/Admin/Global/UserRights.html:32 -msgid "Modify global user rights." -msgstr "Malkovich Malkovich." - -#: lib/RT/Group_Overlay.pm:146 -msgid "Modify group metadata or delete group" -msgstr "Malkovich Malkovich or Malkovich" - -#: html/Admin/Groups/GroupRights.html:24 html/Admin/Groups/GroupRights.html:28 html/Admin/Groups/GroupRights.html:34 -#. ($GroupObj->Name) -msgid "Modify group rights for group %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: html/Admin/Queues/GroupRights.html:24 html/Admin/Queues/GroupRights.html:28 -#. ($QueueObj->Name) -msgid "Modify group rights for queue %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: lib/RT/Group_Overlay.pm:148 -msgid "Modify membership roster for this group" -msgstr "Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/System.pm:60 -msgid "Modify one's own RT account" -msgstr "Malkovich's own RT Malkovich" - -#: html/Admin/Queues/People.html:24 html/Admin/Queues/People.html:28 -#. ($QueueObj->Name) -msgid "Modify people related to queue %1" -msgstr "Malkovich Malkovich to Malkovich %1" - -#: html/Ticket/ModifyPeople.html:24 html/Ticket/ModifyPeople.html:28 html/Ticket/ModifyPeople.html:34 -#. ($Ticket->id) -#. ($Ticket->Id) -msgid "Modify people related to ticket #%1" -msgstr "Malkovich Malkovich to Malkovich #%1" - -#: html/Admin/Queues/Scrips.html:45 -#. ($QueueObj->Name) -msgid "Modify scrips for queue %1" -msgstr "Malkovich Malkovich %1" - -#: html/Admin/Global/Scrips.html:43 html/Admin/Global/index.html:41 -msgid "Modify scrips which apply to all queues" -msgstr "Malkovich Malkovich to Malkovich" - -#: html/Admin/Global/Template.html:24 html/Admin/Global/Template.html:29 html/Admin/Global/Template.html:80 html/Admin/Queues/Template.html:77 -#. (loc($TemplateObj->Name())) -#. ($TemplateObj->id) -msgid "Modify template %1" -msgstr "Malkovich %1" - -#: html/Admin/Global/Templates.html:43 -msgid "Modify templates which apply to all queues" -msgstr "Malkovich Malkovich Malkovich to Malkovich" - -#: html/Admin/Groups/Modify.html:86 html/User/Groups/Modify.html:85 -#. ($Group->Name) -msgid "Modify the group %1" -msgstr "Malkovich the Malkovich %1" - -#: lib/RT/Queue_Overlay.pm:72 -msgid "Modify the queue watchers" -msgstr "Malkovich the Malkovich" - -#: html/Admin/Users/Modify.html:263 -#. ($UserObj->Name) -msgid "Modify the user %1" -msgstr "Malkovich the user %1" - -#: html/Ticket/ModifyAll.html:36 -#. ($Ticket->Id) -msgid "Modify ticket # %1" -msgstr "Malkovich # %1" - -#: html/Ticket/Modify.html:24 html/Ticket/Modify.html:27 html/Ticket/Modify.html:33 -#. ($TicketObj->Id) -msgid "Modify ticket #%1" -msgstr "Malkovich #%1" - -#: lib/RT/Queue_Overlay.pm:90 -msgid "Modify tickets" -msgstr "Malkovich" - -#: html/Admin/Groups/UserRights.html:24 html/Admin/Groups/UserRights.html:28 html/Admin/Groups/UserRights.html:34 -#. ($GroupObj->Name) -msgid "Modify user rights for group %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: html/Admin/Queues/UserRights.html:24 html/Admin/Queues/UserRights.html:28 -#. ($QueueObj->Name) -msgid "Modify user rights for queue %1" -msgstr "Malkovich Malkovich Malkovich %1" - -#: lib/RT/Queue_Overlay.pm:71 -msgid "ModifyACL" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:149 -msgid "ModifyOwnMembership" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:72 -msgid "ModifyQueueWatchers" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:77 -msgid "ModifyScrips" -msgstr "Malkovich" - -#: lib/RT/System.pm:60 -msgid "ModifySelf" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:74 -msgid "ModifyTemplate" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:90 -msgid "ModifyTicket" -msgstr "Malkovich" - -#: lib/RT/Date.pm:388 -msgid "Mon." -msgstr "Mon." - -#: html/Ticket/Elements/ShowRequestor:40 -#. ($name) -msgid "More about %1" -msgstr "Malkovich %1" - -#: html/Admin/Elements/EditCustomFields:60 -msgid "Move down" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectSingleOrMultiple:26 -msgid "Multiple" -msgstr "Malkovich" - -#: lib/RT/User_Overlay.pm:197 -msgid "Must specify 'Name' attribute" -msgstr "Malkovich 'Name' Malkovich" - -#: html/SelfService/Elements/MyRequests:48 -#. ($friendly_status) -msgid "My %1 tickets" -msgstr "My %1 Malkovich" - -#: html/Approvals/index.html:24 html/Approvals/index.html:25 -msgid "My approvals" -msgstr "My Malkovich" - -#: html/Admin/Elements/AddCustomFieldValue:31 html/Admin/Elements/EditCustomField:33 html/Admin/Elements/ModifyTemplate:27 html/Admin/Groups/Modify.html:43 html/Elements/SelectGroups:25 html/Elements/SelectUsers:27 html/User/Groups/Modify.html:43 -msgid "Name" -msgstr "Name" - -#: lib/RT/User_Overlay.pm:204 -msgid "Name in use" -msgstr "Name in use" - -#: html/Ticket/Elements/ShowDates:52 -msgid "Never" -msgstr "Malkovich" - -#: html/Elements/Quicksearch:29 -msgid "New" -msgstr "New" - -#: html/Elements/EditLinks:93 -msgid "New Links" -msgstr "Malkovich Malkovich" - -#: html/Admin/Users/Modify.html:92 html/User/Prefs.html:87 -msgid "New Password" -msgstr "Malkovich" - -#: etc/initialdata:332 -msgid "New Pending Approval" -msgstr "Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "New Search" -msgstr "Malkovich" - -#: html/Admin/Global/CustomField.html:40 html/Admin/Global/CustomFields.html:38 html/Admin/Queues/CustomField.html:51 html/Admin/Queues/CustomFields.html:40 -msgid "New custom field" -msgstr "Malkovich Malkovich" - -#: html/Admin/Elements/GroupTabs:53 html/User/Elements/GroupTabs:51 -msgid "New group" -msgstr "Malkovich" - -#: html/SelfService/Prefs.html:31 -msgid "New password" -msgstr "Malkovich" - -#: lib/RT/User_Overlay.pm:773 -msgid "New password notification sent" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Elements/QueueTabs:69 -msgid "New queue" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectRights:41 -msgid "New rights" -msgstr "Malkovich" - -#: html/Admin/Global/Scrip.html:39 html/Admin/Global/Scrips.html:38 html/Admin/Queues/Scrip.html:42 html/Admin/Queues/Scrips.html:54 -msgid "New scrip" -msgstr "Malkovich" - -#: html/Admin/Global/Template.html:59 html/Admin/Global/Templates.html:38 html/Admin/Queues/Template.html:57 html/Admin/Queues/Templates.html:49 -msgid "New template" -msgstr "Malkovich" - -#: html/SelfService/Elements/Tabs:47 -msgid "New ticket" -msgstr "Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2700 -msgid "New ticket doesn't exist" -msgstr "Malkovich doesn't Malkovich" - -#: html/Admin/Elements/UserTabs:50 -msgid "New user" -msgstr "Malkovich" - -#: html/Admin/Elements/CreateUserCalled:25 -msgid "New user called" -msgstr "Malkovich" - -#: html/Admin/Queues/People.html:54 html/Ticket/Elements/EditPeople:28 -msgid "New watchers" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "New window setting" -msgstr "Malkovich Malkovich" - -#: html/Ticket/Elements/Tabs:70 -msgid "Next" -msgstr "Next" - -#: NOT FOUND IN SOURCE -msgid "NickName" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:62 html/User/Prefs.html:50 -msgid "Nickname" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomField:89 html/Admin/Elements/EditCustomFields:103 -msgid "No CustomField" -msgstr "No Malkovich" - -#: html/Admin/Groups/GroupRights.html:83 html/Admin/Groups/UserRights.html:70 -msgid "No Group defined" -msgstr "No Malkovich" - -#: lib/RT/Tickets_Overlay_SQL.pm:452 -msgid "No Query" -msgstr "No Malkovich" - -#: html/Admin/Queues/GroupRights.html:96 html/Admin/Queues/UserRights.html:67 -msgid "No Queue defined" -msgstr "No Malkovich" - -#: bin/rt-crontool:52 -msgid "No RT user found. Please consult your RT administrator.\\n" -msgstr "No RT Malkovich. Malkovich Malkovich RT Malkovich.\\n" - -#: html/Admin/Global/Template.html:78 html/Admin/Queues/Template.html:75 -msgid "No Template" -msgstr "No Malkovich" - -#: NOT FOUND IN SOURCE -msgid "No Ticket specified. Aborting ticket " -msgstr "No Malkovich Malkovich. Malkovich " - -#: html/Approvals/Elements/Approve:45 -msgid "No action" -msgstr "No Malkovich" - -#: lib/RT/Record.pm:744 -msgid "No column specified" -msgstr "No Malkovich Malkovich" - -#: html/Ticket/Elements/ShowRequestor:46 -msgid "No comment entered about this user" -msgstr "No Malkovich Malkovich Malkovich" - -#: lib/RT/Action/Generic.pm:159 lib/RT/Condition/Generic.pm:175 lib/RT/Search/ActiveTicketsInQueue.pm:55 lib/RT/Search/Generic.pm:112 -#. (ref $self) -msgid "No description for %1" -msgstr "No Malkovich %1" - -#: lib/RT/Users_Overlay.pm:159 -msgid "No group specified" -msgstr "No Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2475 -msgid "No message attached" -msgstr "No Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:991 -msgid "No password set" -msgstr "No Malkovich" - -#: lib/RT/Queue_Overlay.pm:296 -msgid "No permission to create queues" -msgstr "No Malkovich to Malkovich" - -#: NOT FOUND IN SOURCE -msgid "No permission to create tickets in the queue '%1'" -msgstr "No Malkovich to Malkovich in the Malkovich '%1'" - -#: lib/RT/User_Overlay.pm:157 -msgid "No permission to create users" -msgstr "No Malkovich to Malkovich" - -#: html/SelfService/Display.html:125 -msgid "No permission to display that ticket" -msgstr "No Malkovich to Malkovich Malkovich" - -#: html/SelfService/Update.html:68 -msgid "No permission to view update ticket" -msgstr "No Malkovich to Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:716 lib/RT/Ticket_Overlay.pm:1581 -msgid "No principal specified" -msgstr "No Malkovich Malkovich" - -#: html/Admin/Queues/People.html:153 html/Admin/Queues/People.html:163 -msgid "No principals selected." -msgstr "No Malkovich Malkovich." - -#: html/Admin/Queues/index.html:34 -msgid "No queues matching search criteria found." -msgstr "No Malkovich Malkovich Malkovich Malkovich." - -#: html/Admin/Elements/SelectRights:81 -msgid "No rights found" -msgstr "No Malkovich" - -#: html/Admin/Elements/SelectRights:32 -msgid "No rights granted." -msgstr "No Malkovich." - -#: html/Search/Bulk.html:162 -msgid "No search to operate on." -msgstr "No Malkovich to Malkovich on." - -#: lib/RT/Transaction_Overlay.pm:455 lib/RT/Transaction_Overlay.pm:493 -msgid "No transaction type specified" -msgstr "No Malkovich Malkovich Malkovich" - -#: html/Admin/Users/index.html:35 -msgid "No users matching search criteria found." -msgstr "No Malkovich Malkovich Malkovich Malkovich." - -#: NOT FOUND IN SOURCE -msgid "No valid RT user found. RT cvs handler disengaged. Please consult your RT administrator.\\n" -msgstr "No Malkovich RT Malkovich. RT Malkovich Malkovich. Malkovich Malkovich RT Malkovich.\\n" - -#: lib/RT/Record.pm:741 -msgid "No value sent to _Set!\\n" -msgstr "No Malkovich to _Set!\\n" - -#: lib/RT/Record.pm:746 -msgid "Nonexistant field?" -msgstr "Malkovich Malkovich?" - -#: html/Elements/Header:71 -msgid "Not logged in." -msgstr "Malkovich in." - -#: lib/RT/Date.pm:369 -msgid "Not set" -msgstr "Malkovich" - -#: html/NoAuth/Reminder.html:26 -msgid "Not yet implemented." -msgstr "Malkovich Malkovich." - -#: html/Approvals/Elements/Approve:48 -msgid "Notes" -msgstr "Malkovich" - -#: lib/RT/User_Overlay.pm:776 -msgid "Notification could not be sent" -msgstr "Malkovich Malkovich be sent" - -#: etc/initialdata:101 -msgid "Notify AdminCcs" -msgstr "Malkovich" - -#: etc/initialdata:97 -msgid "Notify AdminCcs as Comment" -msgstr "Malkovich as Malkovich" - -#: etc/initialdata:128 -msgid "Notify Other Recipients" -msgstr "Malkovich Malkovich" - -#: etc/initialdata:124 -msgid "Notify Other Recipients as Comment" -msgstr "Malkovich Malkovich as Malkovich" - -#: etc/initialdata:85 -msgid "Notify Owner" -msgstr "Malkovich" - -#: etc/initialdata:81 -msgid "Notify Owner as Comment" -msgstr "Malkovich as Malkovich" - -#: etc/initialdata:376 -msgid "Notify Owner of their rejected ticket" -msgstr "Malkovich of Malkovich Malkovich" - -#: etc/initialdata:365 -msgid "Notify Owner of their ticket has been approved by all approvers" -msgstr "Malkovich of Malkovich Malkovich Malkovich by Malkovich" - -#: etc/initialdata:353 -msgid "Notify Owner of their ticket has been approved by some approver" -msgstr "Malkovich of Malkovich Malkovich Malkovich by Malkovich" - -#: etc/initialdata:334 -msgid "Notify Owners and AdminCcs of new items pending their approval" -msgstr "Malkovich and Malkovich of Malkovich Malkovich Malkovich" - -#: etc/initialdata:77 -msgid "Notify Requestors" -msgstr "Malkovich Malkovich" - -#: etc/initialdata:111 -msgid "Notify Requestors and Ccs" -msgstr "Malkovich Malkovich and Ccs" - -#: etc/initialdata:106 -msgid "Notify Requestors and Ccs as Comment" -msgstr "Malkovich Malkovich and Ccs as Malkovich" - -#: etc/initialdata:120 -msgid "Notify Requestors, Ccs and AdminCcs" -msgstr "Malkovich Malkovich, Ccs and Malkovich" - -#: etc/initialdata:116 -msgid "Notify Requestors, Ccs and AdminCcs as Comment" -msgstr "Malkovich Malkovich, Ccs and Malkovich as Malkovich" - -#: lib/RT/Date.pm:421 -msgid "Nov." -msgstr "Nov." - -#: lib/RT/Record.pm:200 -msgid "Object could not be created" -msgstr "Malkovich Malkovich be Malkovich" - -#: lib/RT/Record.pm:219 -msgid "Object created" -msgstr "Malkovich" - -#: lib/RT/Date.pm:420 -msgid "Oct." -msgstr "Oct." - -#: html/Elements/SelectDateRelation:34 -msgid "On" -msgstr "On" - -#: etc/initialdata:163 -msgid "On Comment" -msgstr "On Malkovich" - -#: etc/initialdata:156 -msgid "On Correspond" -msgstr "On Malkovich" - -#: etc/initialdata:145 -msgid "On Create" -msgstr "On Malkovich" - -#: etc/initialdata:184 -msgid "On Owner Change" -msgstr "On Malkovich" - -#: etc/initialdata:192 -msgid "On Queue Change" -msgstr "On Malkovich" - -#: etc/initialdata:198 -msgid "On Resolve" -msgstr "On Malkovich" - -#: etc/initialdata:169 -msgid "On Status Change" -msgstr "On Malkovich" - -#: etc/initialdata:150 -msgid "On Transaction" -msgstr "On Malkovich" - -#: html/Approvals/Elements/PendingMyApproval:49 -#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter'>") -msgid "Only show approvals for requests created after %1" -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich %1" - -#: html/Approvals/Elements/PendingMyApproval:47 -#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore'>") -msgid "Only show approvals for requests created before %1" -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich %1" - -#: html/Elements/Quicksearch:30 -msgid "Open" -msgstr "Open" - -#: html/Ticket/Elements/Tabs:137 -msgid "Open it" -msgstr "Open it" - -#: html/SelfService/Elements/Tabs:41 -msgid "Open tickets" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in a new window" -msgstr "Malkovich (Malkovich) in a Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Open tickets (from listing) in another window" -msgstr "Malkovich (Malkovich) in Malkovich" - -#: etc/initialdata:140 -msgid "Open tickets on correspondence" -msgstr "Malkovich on Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Ordering and sorting" -msgstr "Malkovich and Malkovich" - -#: html/Admin/Users/Modify.html:114 html/Elements/SelectUsers:28 html/User/Prefs.html:107 -msgid "Organization" -msgstr "Malkovich" - -#: html/Approvals/Elements/Approve:32 -#. ($approving->Id, $approving->Subject) -msgid "Originating ticket: #%1" -msgstr "Malkovich Malkovich: #%1" - -#: html/Admin/Queues/Modify.html:68 -msgid "Over time, priority moves toward" -msgstr "Malkovich, Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:89 -msgid "Own tickets" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:89 -msgid "OwnTicket" -msgstr "Malkovich" - -#: etc/initialdata:38 html/Elements/QuickCreate:13 html/Search/Elements/PickBasics:114 html/SelfService/Elements/MyRequests:29 html/Ticket/Create.html:47 html/Ticket/Elements/EditPeople:42 html/Ticket/Elements/EditPeople:43 html/Ticket/Elements/ShowPeople:26 html/Ticket/Update.html:40 lib/RT/ACE_Overlay.pm:85 lib/RT/Tickets_Overlay.pm:1306 -msgid "Owner" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:575 -#. ($Old->Name , $New->Name) -msgid "Owner forcibly changed from %1 to %2" -msgstr "Malkovich Malkovich Malkovich %1 to %2" - -#: NOT FOUND IN SOURCE -msgid "Owner is" -msgstr "Malkovich is" - -#: html/Admin/Users/Modify.html:171 html/User/Prefs.html:75 -msgid "Pager" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "PagerPhone" -msgstr "Malkovich" - -#: html/Elements/EditLinks:117 html/Elements/EditLinks:54 html/Elements/ShowLinks:46 html/Ticket/Create.html:182 html/Ticket/Elements/BulkLinks:38 -msgid "Parents" -msgstr "Malkovich" - -#: html/Elements/Login:52 html/User/Prefs.html:83 -msgid "Password" -msgstr "Malkovich" - -#: html/NoAuth/Reminder.html:24 -msgid "Password Reminder" -msgstr "Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:185 lib/RT/User_Overlay.pm:994 -msgid "Password too short" -msgstr "Malkovich Malkovich" - -#: html/Admin/Users/Modify.html:316 html/User/Prefs.html:209 -#. (loc_fuzzy($msg)) -msgid "Password: %1" -msgstr "Malkovich: %1" - -#: html/Admin/Users/Modify.html:318 -msgid "Passwords do not match." -msgstr "Malkovich do Malkovich." - -#: html/User/Prefs.html:211 -msgid "Passwords do not match. Your password has not been changed" -msgstr "Malkovich do Malkovich. Malkovich Malkovich Malkovich" - -#: html/Ticket/Elements/ShowSummary:44 html/Ticket/Elements/Tabs:97 html/Ticket/ModifyAll.html:50 -msgid "People" -msgstr "Malkovich" - -#: etc/initialdata:133 -msgid "Perform a user-defined action" -msgstr "Malkovich a user-Malkovich" - -#: lib/RT/ACE_Overlay.pm:230 lib/RT/ACE_Overlay.pm:236 lib/RT/ACE_Overlay.pm:562 lib/RT/ACE_Overlay.pm:572 lib/RT/ACE_Overlay.pm:582 lib/RT/ACE_Overlay.pm:647 lib/RT/Attribute_Overlay.pm:135 lib/RT/Attribute_Overlay.pm:141 lib/RT/Attribute_Overlay.pm:379 lib/RT/Attribute_Overlay.pm:388 lib/RT/Attribute_Overlay.pm:401 lib/RT/CurrentUser.pm:103 lib/RT/CurrentUser.pm:94 lib/RT/CustomField_Overlay.pm:100 lib/RT/CustomField_Overlay.pm:207 lib/RT/CustomField_Overlay.pm:239 lib/RT/CustomField_Overlay.pm:517 lib/RT/CustomField_Overlay.pm:90 lib/RT/Group_Overlay.pm:1091 lib/RT/Group_Overlay.pm:1095 lib/RT/Group_Overlay.pm:1104 lib/RT/Group_Overlay.pm:1155 lib/RT/Group_Overlay.pm:1159 lib/RT/Group_Overlay.pm:1165 lib/RT/Group_Overlay.pm:426 lib/RT/Group_Overlay.pm:518 lib/RT/Group_Overlay.pm:596 lib/RT/Group_Overlay.pm:604 lib/RT/Group_Overlay.pm:701 lib/RT/Group_Overlay.pm:705 lib/RT/Group_Overlay.pm:711 lib/RT/Group_Overlay.pm:896 lib/RT/Group_Overlay.pm:900 lib/RT/Group_Overlay.pm:913 lib/RT/Queue_Overlay.pm:117 lib/RT/Queue_Overlay.pm:135 lib/RT/Queue_Overlay.pm:578 lib/RT/Queue_Overlay.pm:588 lib/RT/Queue_Overlay.pm:602 lib/RT/Queue_Overlay.pm:740 lib/RT/Queue_Overlay.pm:749 lib/RT/Queue_Overlay.pm:762 lib/RT/Queue_Overlay.pm:975 lib/RT/Scrip_Overlay.pm:125 lib/RT/Scrip_Overlay.pm:136 lib/RT/Scrip_Overlay.pm:201 lib/RT/Scrip_Overlay.pm:473 lib/RT/Template_Overlay.pm:284 lib/RT/Template_Overlay.pm:87 lib/RT/Template_Overlay.pm:93 lib/RT/Ticket_Overlay.pm:1453 lib/RT/Ticket_Overlay.pm:1463 lib/RT/Ticket_Overlay.pm:1477 lib/RT/Ticket_Overlay.pm:1614 lib/RT/Ticket_Overlay.pm:1624 lib/RT/Ticket_Overlay.pm:1638 lib/RT/Ticket_Overlay.pm:1755 lib/RT/Ticket_Overlay.pm:2075 lib/RT/Ticket_Overlay.pm:2213 lib/RT/Ticket_Overlay.pm:2381 lib/RT/Ticket_Overlay.pm:2428 lib/RT/Ticket_Overlay.pm:2582 lib/RT/Ticket_Overlay.pm:2640 lib/RT/Ticket_Overlay.pm:2691 lib/RT/Ticket_Overlay.pm:2706 lib/RT/Ticket_Overlay.pm:2905 lib/RT/Ticket_Overlay.pm:2915 lib/RT/Ticket_Overlay.pm:2920 lib/RT/Ticket_Overlay.pm:3143 lib/RT/Ticket_Overlay.pm:3147 lib/RT/Ticket_Overlay.pm:3350 lib/RT/Ticket_Overlay.pm:3512 lib/RT/Ticket_Overlay.pm:3564 lib/RT/Ticket_Overlay.pm:3791 lib/RT/Transaction_Overlay.pm:443 lib/RT/Transaction_Overlay.pm:450 lib/RT/Transaction_Overlay.pm:479 lib/RT/Transaction_Overlay.pm:486 lib/RT/User_Overlay.pm:1088 lib/RT/User_Overlay.pm:1536 lib/RT/User_Overlay.pm:335 lib/RT/User_Overlay.pm:696 lib/RT/User_Overlay.pm:731 lib/RT/User_Overlay.pm:987 -msgid "Permission Denied" -msgstr "Malkovich Malkovich" - -#: html/User/Elements/Tabs:34 -msgid "Personal Groups" -msgstr "Malkovich" - -#: html/User/Groups/index.html:29 html/User/Groups/index.html:39 -msgid "Personal groups" -msgstr "Malkovich" - -#: html/User/Elements/DelegateRights:36 -msgid "Personal groups:" -msgstr "Malkovich:" - -#: html/Admin/Users/Modify.html:153 html/User/Prefs.html:60 -msgid "Phone numbers" -msgstr "Malkovich" - -#: html/Elements/Header:63 html/Elements/Tabs:55 html/SelfService/Elements/Tabs:50 html/SelfService/Prefs.html:24 html/User/Prefs.html:24 html/User/Prefs.html:27 -msgid "Preferences" -msgstr "Malkovich" - -#: lib/RT/Action/Generic.pm:169 -msgid "Prepare Stubbed" -msgstr "Malkovich" - -#: html/Ticket/Elements/Tabs:62 -msgid "Prev" -msgstr "Prev" - -#: lib/RT/ACE_Overlay.pm:132 lib/RT/ACE_Overlay.pm:207 lib/RT/ACE_Overlay.pm:551 -#. ($args{'PrincipalId'}) -msgid "Principal %1 not found." -msgstr "Malkovich %1 Malkovich." - -#: html/Search/Elements/PickBasics:58 html/Ticket/Create.html:153 html/Ticket/Elements/EditBasics:52 html/Ticket/Elements/ShowBasics:50 lib/RT/Tickets_Overlay.pm:1104 -msgid "Priority" -msgstr "Malkovich" - -#: html/Admin/Queues/Modify.html:64 -msgid "Priority starts at" -msgstr "Malkovich at" - -#: etc/initialdata:25 -msgid "Privileged" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:296 html/User/Prefs.html:200 -#. (loc_fuzzy($msg)) -msgid "Privileged status: %1" -msgstr "Malkovich Malkovich: %1" - -#: html/Admin/Users/index.html:61 -msgid "Privileged users" -msgstr "Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Projects" -msgstr "Malkovich" - -#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 -msgid "Pseudogroup for internal use" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Elements/QuickCreate:10 html/Elements/Quicksearch:28 html/Search/Elements/PickBasics:94 html/SelfService/Create.html:32 html/Ticket/Create.html:37 html/Ticket/Elements/EditBasics:35 html/Ticket/Elements/ShowBasics:54 html/User/Elements/DelegateRights:79 lib/RT/Tickets_Overlay.pm:945 -msgid "Queue" -msgstr "Malkovich" - -#: html/Admin/Queues/CustomField.html:41 html/Admin/Queues/Scrip.html:49 html/Admin/Queues/Scrips.html:47 html/Admin/Queues/Templates.html:43 -#. ($Queue) -#. ($id) -msgid "Queue %1 not found" -msgstr "Malkovich %1 Malkovich" - -#: html/Admin/Queues/Modify.html:42 -msgid "Queue Name" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:300 -msgid "Queue already exists" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:309 lib/RT/Queue_Overlay.pm:315 -msgid "Queue could not be created" -msgstr "Malkovich not be Malkovich" - -#: html/Ticket/Create.html:208 -msgid "Queue could not be loaded." -msgstr "Malkovich be Malkovich." - -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:319 lib/RT/StyleGuide.pod:789 -msgid "Queue created" -msgstr "Malkovich" - -#: html/SelfService/Display.html:72 lib/RT/CustomField_Overlay.pm:97 -msgid "Queue not found" -msgstr "Malkovich" - -#: html/Admin/Elements/Tabs:37 html/Admin/index.html:34 -msgid "Queues" -msgstr "Malkovich" - -#: html/Elements/Quicksearch:24 -msgid "Quick search" -msgstr "Malkovich" - -#: html/Elements/Login:44 -#. ($RT::VERSION) -msgid "RT %1" -msgstr "RT %1" - -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:776 -#. ($RT::VERSION, $RT::rtname) -msgid "RT %1 for %2" -msgstr "RT %1 for %2" - -#: NOT FOUND IN SOURCE -msgid "RT %1 from <a href=\"http://bestpractical.com\">Best Practical Solutions, LLC</a>." -msgstr "RT %1 from <a href=\"http://Malkovich.com\">Malkovich Malkovich, LLC</a>." - -#: html/Admin/index.html:24 html/Admin/index.html:25 -msgid "RT Administration" -msgstr "RT Malkovich" - -#: html/Elements/Error:41 html/SelfService/Error.html:40 -msgid "RT Error" -msgstr "RT Malkovich" - -#: html/index.html:50 html/index.html:53 -msgid "RT at a glance" -msgstr "RT at a Malkovich" - -#: html/Elements/PageLayout:85 -#. ($RT::rtname) -msgid "RT for %1" -msgstr "RT for %1" - -#: NOT FOUND IN SOURCE -msgid "RT is © Copyright 1996-%1 Jesse Vincent <jesse@bestpractical.com>. It is distributed under <a href=\"http://www.gnu.org/copyleft/gpl.html\">Version 2 of the GNU General Public License.</a>" -msgstr "RT is © Malkovich 1996-%1 Malkovich <Malkovich@Malkovich.com>. It is Malkovich Malkovich <a href=\"http://www.gnu.org/copyleft/gpl.html\">Malkovich 2 of the Malkovich Malkovich Malkovich.</a>" - -#: html/Admin/Users/Modify.html:57 html/User/Prefs.html:47 -msgid "Real Name" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "RealName" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:628 -#. ($value) -msgid "Reference by %1 added" -msgstr "Malkovich by %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:668 -#. ($value) -msgid "Reference by %1 deleted" -msgstr "Malkovich by %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:625 -#. ($value) -msgid "Reference to %1 added" -msgstr "Malkovich to %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:665 -#. ($value) -msgid "Reference to %1 deleted" -msgstr "Malkovich to %1 Malkovich" - -#: html/Elements/EditLinks:129 html/Elements/EditLinks:81 html/Elements/ShowLinks:70 html/Ticket/Create.html:185 html/Ticket/Elements/BulkLinks:50 -msgid "Referred to by" -msgstr "Malkovich to by" - -#: html/Elements/EditLinks:125 html/Elements/EditLinks:72 html/Elements/SelectLinkType:27 html/Elements/ShowLinks:60 html/Ticket/Create.html:184 html/Ticket/Elements/BulkLinks:46 -msgid "Refers to" -msgstr "Malkovich to" - -#: NOT FOUND IN SOURCE -msgid "Refine search" -msgstr "Malkovich" - -#: html/Elements/Refresh:35 -#. ($value/60) -msgid "Refresh this page every %1 minutes." -msgstr "Malkovich Malkovich %1 Malkovich." - -#: html/Search/Bulk.html:95 -msgid "Remove AdminCc" -msgstr "Malkovich" - -#: html/Search/Bulk.html:91 -msgid "Remove Cc" -msgstr "Malkovich Cc" - -#: html/Search/Bulk.html:87 -msgid "Remove Requestor" -msgstr "Malkovich Malkovich" - -#: html/Ticket/Elements/ShowTransaction:142 html/Ticket/Elements/Tabs:123 -msgid "Reply" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:87 -msgid "Reply to tickets" -msgstr "Malkovich to Malkovich" - -#: lib/RT/Queue_Overlay.pm:87 -msgid "ReplyToTicket" -msgstr "Malkovich" - -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:86 -msgid "Requestor" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Requestor email address" -msgstr "Malkovich Malkovich" - -#: html/SelfService/Create.html:40 html/Ticket/Create.html:55 html/Ticket/Elements/EditPeople:47 html/Ticket/Elements/ShowPeople:30 -msgid "Requestors" -msgstr "Malkovich" - -#: html/Admin/Queues/Modify.html:74 -msgid "Requests should be due in" -msgstr "Malkovich be due in" - -#: html/Elements/Submit:61 -msgid "Reset" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:63 -msgid "Residence" -msgstr "Malkovich" - -#: html/Ticket/Elements/Tabs:133 -msgid "Resolve" -msgstr "Malkovich" - -#: html/Ticket/Update.html:119 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Resolve ticket #%1 (%2)" -msgstr "Malkovich #%1 (%2)" - -#: etc/initialdata:323 html/Elements/SelectDateType:27 lib/RT/Ticket_Overlay.pm:1282 -msgid "Resolved" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Response to requestors" -msgstr "Malkovich to Malkovich" - -#: html/Elements/ListActions:25 html/Search/Elements/NewListActions:25 -msgid "Results" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Results per page" -msgstr "Malkovich Malkovich" - -#: html/Admin/Users/Modify.html:99 html/User/Prefs.html:94 -msgid "Retype Password" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:612 -msgid "Right Delegated" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:302 -msgid "Right Granted" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:160 -msgid "Right Loaded" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:677 lib/RT/ACE_Overlay.pm:692 -msgid "Right could not be revoked" -msgstr "Malkovich be Malkovich" - -#: html/User/Delegation.html:63 -msgid "Right not found" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:542 lib/RT/ACE_Overlay.pm:637 -msgid "Right not loaded." -msgstr "Malkovich Malkovich." - -#: lib/RT/ACE_Overlay.pm:688 -msgid "Right revoked" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Rights" -msgstr "Malkovich" - -#: lib/RT/Interface/Web.pm:869 -#. ($object_type) -msgid "Rights could not be granted for %1" -msgstr "Malkovich Malkovich be Malkovich %1" - -#: lib/RT/Interface/Web.pm:899 -#. ($object_type) -msgid "Rights could not be revoked for %1" -msgstr "Malkovich Malkovich be Malkovich %1" - -#: html/Admin/Global/GroupRights.html:50 html/Admin/Queues/GroupRights.html:52 -msgid "Roles" -msgstr "Malkovich" - -#: lib/RT/Date.pm:393 -msgid "Sat." -msgstr "Sat." - -#: html/Admin/Global/Template.html:45 html/Admin/Queues/Modify.html:89 html/Admin/Queues/People.html:104 html/Admin/Users/Modify.html:198 html/SelfService/Prefs.html:36 html/Ticket/Modify.html:38 html/Ticket/ModifyAll.html:93 html/Ticket/ModifyDates.html:38 html/Ticket/ModifyLinks.html:38 html/Ticket/ModifyPeople.html:37 -msgid "Save Changes" -msgstr "Malkovich" - -#: html/Ticket/Elements/PreviewScrips:79 -msgid "Save changes" -msgstr "Malkovich" - -#: html/Admin/Global/Scrip.html:48 html/Admin/Queues/Scrip.html:54 -#. ($id) -#. ($ARGS{'id'}) -msgid "Scrip #%1" -msgstr "Malkovich #%1" - -#: lib/RT/Scrip_Overlay.pm:180 -msgid "Scrip Created" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrips:85 -msgid "Scrip deleted" -msgstr "Malkovich" - -#: html/Admin/Elements/QueueTabs:45 html/Admin/Elements/SystemTabs:32 html/Admin/Global/index.html:40 -msgid "Scrips" -msgstr "Malkovich" - -#: html/Admin/Queues/Scrips.html:33 -msgid "Scrips which apply to all queues" -msgstr "Malkovich Malkovich to Malkovich" - -#: html/Elements/SimpleSearch:26 html/Search/Elements/DisplayOptions:73 -msgid "Search" -msgstr "Malkovich" - -#: html/Approvals/Elements/PendingMyApproval:38 -msgid "Search for approvals" -msgstr "Malkovich Malkovich" - -#: bin/rt-crontool:184 -msgid "Security:" -msgstr "Malkovich:" - -#: lib/RT/Queue_Overlay.pm:68 -msgid "SeeQueue" -msgstr "Malkovich" - -#: html/Admin/Groups/index.html:50 -msgid "Select a group" -msgstr "Malkovich a Malkovich" - -#: html/Admin/Users/index.html:24 html/Admin/Users/index.html:27 -msgid "Select a user" -msgstr "Malkovich a user" - -#: html/Admin/Global/CustomField.html:37 html/Admin/Global/CustomFields.html:35 -msgid "Select custom field" -msgstr "Malkovich Malkovich" - -#: html/Admin/Elements/GroupTabs:51 html/User/Elements/GroupTabs:49 -msgid "Select group" -msgstr "Malkovich" - -#: lib/RT/CustomField_Overlay.pm:427 -msgid "Select multiple values" -msgstr "Malkovich Malkovich" - -#: lib/RT/CustomField_Overlay.pm:424 -msgid "Select one value" -msgstr "Malkovich Malkovich" - -#: html/Admin/Elements/QueueTabs:66 -msgid "Select queue" -msgstr "Malkovich" - -#: html/Admin/Global/Scrip.html:36 html/Admin/Global/Scrips.html:35 html/Admin/Queues/Scrip.html:39 html/Admin/Queues/Scrips.html:51 -msgid "Select scrip" -msgstr "Malkovich" - -#: html/Admin/Global/Template.html:56 html/Admin/Global/Templates.html:35 html/Admin/Queues/Template.html:54 html/Admin/Queues/Templates.html:46 -msgid "Select template" -msgstr "Malkovich" - -#: html/Admin/Elements/UserTabs:46 -msgid "Select user" -msgstr "Malkovich" - -#: lib/RT/CustomField_Overlay.pm:35 -msgid "SelectMultiple" -msgstr "Malkovich" - -#: lib/RT/CustomField_Overlay.pm:34 -msgid "SelectSingle" -msgstr "Malkovich" - -#: etc/initialdata:121 -msgid "Send mail to all watchers" -msgstr "Malkovich to Malkovich" - -#: etc/initialdata:117 -msgid "Send mail to all watchers as a \"comment\"" -msgstr "Malkovich to Malkovich as a \"Malkovich\"" - -#: etc/initialdata:112 -msgid "Send mail to requestors and Ccs" -msgstr "Malkovich to Malkovich and Ccs" - -#: etc/initialdata:107 -msgid "Send mail to requestors and Ccs as a comment" -msgstr "Malkovich to Malkovich and Ccs as a Malkovich" - -#: etc/initialdata:78 -msgid "Sends a message to the requestors" -msgstr "Malkovich a Malkovich to the Malkovich" - -#: etc/initialdata:125 etc/initialdata:129 -msgid "Sends mail to explicitly listed Ccs and Bccs" -msgstr "Malkovich to Malkovich Malkovich and Bccs" - -#: etc/initialdata:102 -msgid "Sends mail to the administrative Ccs" -msgstr "Malkovich to the Malkovich Malkovich" - -#: etc/initialdata:98 -msgid "Sends mail to the administrative Ccs as a comment" -msgstr "Malkovich to the Malkovich Malkovich as a Malkovich" - -#: etc/initialdata:82 etc/initialdata:86 -msgid "Sends mail to the owner" -msgstr "Malkovich to the Malkovich" - -#: lib/RT/Date.pm:419 -msgid "Sep." -msgstr "Sep." - -#: html/Approvals/Elements/PendingMyApproval:43 -msgid "Show approved requests" -msgstr "Malkovich Malkovich" - -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 -msgid "Show basics" -msgstr "Malkovich" - -#: html/Approvals/Elements/PendingMyApproval:44 -msgid "Show denied requests" -msgstr "Malkovich Malkovich" - -#: html/Ticket/Create.html:143 html/Ticket/Create.html:33 -msgid "Show details" -msgstr "Malkovich" - -#: html/Approvals/Elements/PendingMyApproval:42 -msgid "Show pending requests" -msgstr "Malkovich Malkovich" - -#: html/Approvals/Elements/PendingMyApproval:45 -msgid "Show requests awaiting other approvals" -msgstr "Malkovich Malkovich Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Show ticket private commentary" -msgstr "Malkovich Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Show ticket summaries" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:70 -msgid "ShowACL" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:79 -msgid "ShowScrips" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:76 -msgid "ShowTemplate" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:80 -msgid "ShowTicket" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:81 -msgid "ShowTicketComments" -msgstr "Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:84 -msgid "Sign up as a ticket Requestor or ticket or queue Cc" -msgstr "Sign up as a Malkovich Malkovich or Malkovich or Malkovich Cc" - -#: lib/RT/Queue_Overlay.pm:85 -msgid "Sign up as a ticket or queue AdminCc" -msgstr "Sign up as a Malkovich or Malkovich" - -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:145 -msgid "Signature" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectSingleOrMultiple:25 -msgid "Single" -msgstr "Malkovich" - -#: html/Elements/Header:62 -msgid "Skip Menu" -msgstr "Malkovich" - -#: html/Admin/Elements/AddCustomFieldValue:27 -msgid "Sort" -msgstr "Sort" - -#: NOT FOUND IN SOURCE -msgid "Sort results by" -msgstr "Malkovich by" - -#: NOT FOUND IN SOURCE -msgid "Squelched message recipients" -msgstr "Malkovich Malkovich Malkovich" - -#: html/Admin/Elements/EditScrip:65 -msgid "Stage" -msgstr "Malkovich" - -#: html/Elements/SelectDateType:26 html/Ticket/Elements/EditDates:31 html/Ticket/Elements/ShowDates:35 -msgid "Started" -msgstr "Malkovich" - -#: html/Elements/SelectDateType:30 html/Ticket/Create.html:165 html/Ticket/Elements/EditDates:26 html/Ticket/Elements/ShowDates:31 -msgid "Starts" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:135 html/User/Prefs.html:123 -msgid "State" -msgstr "Malkovich" - -#: html/Search/Elements/PickBasics:77 html/SelfService/Elements/MyRequests:28 html/SelfService/Update.html:30 html/Ticket/Create.html:41 html/Ticket/Elements/EditBasics:31 html/Ticket/Elements/ShowBasics:30 html/Ticket/Update.html:37 lib/RT/Ticket_Overlay.pm:1276 lib/RT/Tickets_Overlay.pm:970 -msgid "Status" -msgstr "Malkovich" - -#: etc/initialdata:309 -msgid "Status Change" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:505 -#. ($self->loc($self->OldValue), $self->loc($self->NewValue)) -msgid "Status changed from %1 to %2" -msgstr "Malkovich Malkovich %1 to %2" - -#: html/Ticket/Elements/Tabs:148 -msgid "Steal" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "Steal tickets" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "StealTicket" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:581 -#. ($Old->Name) -msgid "Stolen from %1 " -msgstr "Malkovich %1 " - -#: html/Elements/QuickCreate:7 html/Elements/SelectAttachmentField:25 html/Search/Bulk.html:133 html/SelfService/Create.html:56 html/SelfService/Elements/MyRequests:27 html/SelfService/Update.html:31 html/Ticket/Create.html:83 html/Ticket/Elements/EditBasics:26 html/Ticket/ModifyAll.html:78 html/Ticket/Update.html:58 lib/RT/Ticket_Overlay.pm:1272 lib/RT/Tickets_Overlay.pm:1049 -msgid "Subject" -msgstr "Malkovich" - -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:795 lib/RT/Transaction_Overlay.pm:603 -#. ($self->Data) -msgid "Subject changed to %1" -msgstr "Malkovich to %1" - -#: html/Elements/Submit:58 -msgid "Submit" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:749 -msgid "Succeeded" -msgstr "Malkovich" - -#: lib/RT/Date.pm:394 -msgid "Sun." -msgstr "Sun." - -#: lib/RT/System.pm:53 -msgid "SuperUser" -msgstr "Malkovich" - -#: html/User/Elements/DelegateRights:76 -msgid "System" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectRights:81 lib/RT/ACE_Overlay.pm:566 lib/RT/Interface/Web.pm:868 lib/RT/Interface/Web.pm:898 -msgid "System Error" -msgstr "Malkovich" - -#: lib/RT/ACE_Overlay.pm:615 -msgid "System error. Right not delegated." -msgstr "Malkovich. Malkovich Malkovich." - -#: lib/RT/ACE_Overlay.pm:145 lib/RT/ACE_Overlay.pm:222 lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:897 -msgid "System error. Right not granted." -msgstr "Malkovich. Malkovich Malkovich." - -#: html/Admin/Global/GroupRights.html:34 html/Admin/Groups/GroupRights.html:36 html/Admin/Queues/GroupRights.html:35 -msgid "System groups" -msgstr "Malkovich" - -#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 -msgid "SystemRolegroup for internal use" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/CurrentUser.pm:334 -msgid "TEST_STRING" -msgstr "TEST_MALKOVICH" - -#: html/Elements/MyRequests:27 html/Ticket/Elements/Tabs:144 -msgid "Take" -msgstr "Take" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "Take tickets" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "TakeTicket" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:566 -msgid "Taken" -msgstr "Malkovich" - -#: html/Admin/Elements/EditScrip:57 html/Tools/Offline.html:56 -msgid "Template" -msgstr "Malkovich" - -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:89 -#. ($TemplateObj->Id()) -msgid "Template #%1" -msgstr "Malkovich #%1" - -#: html/Admin/Elements/EditTemplates:88 -msgid "Template deleted" -msgstr "Malkovich Malkovich" - -#: lib/RT/Scrip_Overlay.pm:156 -msgid "Template not found" -msgstr "Malkovich Malkovich" - -#: lib/RT/Template_Overlay.pm:348 -msgid "Template parsed" -msgstr "Malkovich" - -#: html/Admin/Elements/QueueTabs:48 html/Admin/Elements/SystemTabs:35 html/Admin/Global/index.html:44 -msgid "Templates" -msgstr "Malkovich" - -#: lib/RT/Record.pm:740 -msgid "That is already the current value" -msgstr "That is Malkovich the Malkovich" - -#: lib/RT/CustomField_Overlay.pm:248 -msgid "That is not a value for this custom field" -msgstr "That is not a Malkovich Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2086 -msgid "That is the same value" -msgstr "That is the Malkovich" - -#: lib/RT/ACE_Overlay.pm:287 lib/RT/ACE_Overlay.pm:596 -msgid "That principal already has that right" -msgstr "Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/Queue_Overlay.pm:674 -#. ($args{'Type'}) -msgid "That principal is already a %1 for this queue" -msgstr "Malkovich is Malkovich a %1 Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1527 -#. ($self->loc($args{'Type'})) -msgid "That principal is already a %1 for this ticket" -msgstr "Malkovich is Malkovich a %1 Malkovich" - -#: lib/RT/Queue_Overlay.pm:773 -#. ($args{'Type'}) -msgid "That principal is not a %1 for this queue" -msgstr "That Malkovich is not a %1 Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2082 -msgid "That queue does not exist" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3152 -msgid "That ticket has unresolved dependencies" -msgstr "Malkovich Malkovich Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2956 -msgid "That user already owns that ticket" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2928 -msgid "That user does not exist" -msgstr "Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:355 -msgid "That user is already privileged" -msgstr "Malkovich is Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:376 -msgid "That user is already unprivileged" -msgstr "Malkovich is Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:368 -msgid "That user is now privileged" -msgstr "Malkovich is Malkovich" - -#: lib/RT/User_Overlay.pm:389 -msgid "That user is now unprivileged" -msgstr "Malkovich is Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:2949 -msgid "That user may not own tickets in that queue" -msgstr "Malkovich Malkovich Malkovich in Malkovich" - -#: lib/RT/Link_Overlay.pm:200 -msgid "That's not a numerical id" -msgstr "That's not a Malkovich id" - -#: html/SelfService/Display.html:31 html/Ticket/Create.html:149 html/Ticket/Elements/ShowSummary:27 -msgid "The Basics" -msgstr "The Malkovich" - -#: lib/RT/ACE_Overlay.pm:87 -msgid "The CC of a ticket" -msgstr "The CC of a Malkovich" - -#: lib/RT/ACE_Overlay.pm:88 -msgid "The administrative CC of a ticket" -msgstr "The Malkovich CC of a Malkovich" - -#: bin/rt-crontool:194 -msgid "The following command will find all active tickets in the queue 'general' and set their priority to 99 if they haven't been touched in 4 hours:" -msgstr "The Malkovich Malkovich Malkovich Malkovich Malkovich in the Malkovich 'Malkovich' and Malkovich Malkovich to 99 if they haven't Malkovich in 4 Malkovich:" - -#: NOT FOUND IN SOURCE -msgid "The following commands were not proccessed:\\n\\n" -msgstr "The Malkovich Malkovich Malkovich Malkovich:\\n\\n" - -#: lib/RT/Record.pm:743 -msgid "The new value has been set." -msgstr "The Malkovich Malkovich." - -#: lib/RT/ACE_Overlay.pm:85 -msgid "The owner of a ticket" -msgstr "The Malkovich of a Malkovich" - -#: lib/RT/ACE_Overlay.pm:86 -msgid "The requestor of a ticket" -msgstr "The Malkovich of a Malkovich" - -#: html/Admin/Elements/EditUserComments:25 -msgid "These comments aren't generally visible to the user" -msgstr "Malkovich aren't Malkovich Malkovich to the user" - -#: bin/rt-crontool:185 -msgid "This tool allows the user to run arbitrary perl modules from within RT." -msgstr "Malkovich Malkovich the user to Malkovich Malkovich Malkovich Malkovich RT." - -#: lib/RT/Transaction_Overlay.pm:226 -msgid "This transaction appears to have no content" -msgstr "Malkovich Malkovich to have no Malkovich" - -#: html/Ticket/Elements/ShowRequestor:48 -#. ($rows) -msgid "This user's %1 highest priority tickets" -msgstr "Malkovich's %1 Malkovich Malkovich" - -#: lib/RT/Date.pm:391 -msgid "Thu." -msgstr "Thu." - -#: html/Ticket/ModifyAll.html:24 html/Ticket/ModifyAll.html:28 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket #%1 Jumbo update: %2" -msgstr "Malkovich #%1 Malkovich: %2" - -#: html/Approvals/Elements/ShowDependency:45 -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Ticket #%1: %2" -msgstr "Malkovich #%1: %2" - -#: lib/RT/Ticket_Overlay.pm:696 lib/RT/Ticket_Overlay.pm:720 -#. ($self->Id, $QueueObj->Name) -msgid "Ticket %1 created in queue '%2'" -msgstr "Malkovich %1 Malkovich in Malkovich '%2'" - -#: NOT FOUND IN SOURCE -msgid "Ticket %1 loaded\\n" -msgstr "Malkovich %1 Malkovich\\n" - -#: html/Search/Bulk.html:216 -#. ($Ticket->Id,$_) -msgid "Ticket %1: %2" -msgstr "Malkovich %1: %2" - -#: html/Ticket/History.html:24 html/Ticket/History.html:27 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket History # %1 %2" -msgstr "Malkovich # %1 %2" - -#: etc/initialdata:324 -msgid "Ticket Resolved" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Ticket attachment" -msgstr "Malkovich Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1228 -msgid "Ticket content" -msgstr "Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1274 -msgid "Ticket content type" -msgstr "Malkovich Malkovich" - -#: lib/RT/Ticket_Overlay.pm:565 lib/RT/Ticket_Overlay.pm:579 lib/RT/Ticket_Overlay.pm:590 lib/RT/Ticket_Overlay.pm:707 -msgid "Ticket could not be created due to an internal error" -msgstr "Malkovich Malkovich be Malkovich to a Malkovich" - -#: lib/RT/Transaction_Overlay.pm:497 -msgid "Ticket created" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:502 -msgid "Ticket deleted" -msgstr "Malkovich" - -#: etc/initialdata:310 -msgid "Ticket status changed" -msgstr "Malkovich Malkovich" - -#: html/Elements/Tabs:46 -msgid "Tickets" -msgstr "Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1452 -#. ($self->loc($args{'TYPE'}), ($args{'BASE'} || $args{'TICKET'})) -msgid "Tickets %1 %2" -msgstr "Malkovich %1 %2" - -#: lib/RT/Tickets_Overlay.pm:1410 -#. ($self->loc($args{'TYPE'}), ($args{'TARGET'} || $args{'TICKET'})) -msgid "Tickets %1 by %2" -msgstr "Malkovich %1 by %2" - -#: NOT FOUND IN SOURCE -msgid "Tickets from %1" -msgstr "Malkovich %1" - -#: html/Approvals/Elements/ShowDependency:26 -msgid "Tickets which depend on this approval:" -msgstr "Malkovich Malkovich on Malkovich:" - -#: html/Search/Elements/PickBasics:70 html/Ticket/Create.html:156 html/Ticket/Elements/EditBasics:47 -msgid "Time Left" -msgstr "Malkovich" - -#: html/Search/Elements/PickBasics:68 html/Ticket/Create.html:155 html/Ticket/Elements/EditBasics:43 -msgid "Time Worked" -msgstr "Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1201 -msgid "Time left" -msgstr "Malkovich" - -#: html/Elements/Footer:44 -msgid "Time to display" -msgstr "Time to Malkovich" - -#: lib/RT/Tickets_Overlay.pm:1177 -msgid "Time worked" -msgstr "Malkovich" - -#: lib/RT/Ticket_Overlay.pm:1277 -msgid "TimeWorked" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:" -msgstr "To Malkovich a diff of Malkovich:" - -#: NOT FOUND IN SOURCE -msgid "To generate a diff of this commit:\\n" -msgstr "To Malkovich a diff of Malkovich:\\n" - -#: lib/RT/Ticket_Overlay.pm:1280 -msgid "Told" -msgstr "Told" - -#: etc/initialdata:252 -msgid "Transaction" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:705 -#. ($self->Data) -msgid "Transaction %1 purged" -msgstr "Malkovich %1 Malkovich" - -#: lib/RT/Transaction_Overlay.pm:136 -msgid "Transaction Created" -msgstr "Malkovich Malkovich" - -#: lib/RT/Transaction_Overlay.pm:92 -msgid "Transaction->Create couldn't, as you didn't specify a ticket id" -msgstr "Malkovich->Malkovich couldn't, as you didn't Malkovich a Malkovich id" - -#: lib/RT/Transaction_Overlay.pm:760 -msgid "Transactions are immutable" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Date.pm:389 -msgid "Tue." -msgstr "Tue." - -#: html/Admin/Elements/EditCustomField:43 html/Ticket/Elements/AddWatchers:32 html/Ticket/Elements/AddWatchers:43 html/Ticket/Elements/AddWatchers:53 lib/RT/Ticket_Overlay.pm:1278 lib/RT/Tickets_Overlay.pm:1021 -msgid "Type" -msgstr "Type" - -#: lib/RT/ScripCondition_Overlay.pm:103 -msgid "Unimplemented" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:67 -msgid "Unix login" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "UnixUsername" -msgstr "Malkovich" - -#: lib/RT/Attachment_Overlay.pm:233 lib/RT/Attachment_Overlay.pm:265 -#. ($self->ContentEncoding) -msgid "Unknown ContentEncoding %1" -msgstr "Malkovich Malkovich %1" - -#: html/Elements/SelectResultsPerPage:36 -msgid "Unlimited" -msgstr "Malkovich" - -#: etc/initialdata:32 -msgid "Unprivileged" -msgstr "Malkovich" - -#: lib/RT/Transaction_Overlay.pm:562 -msgid "Untaken" -msgstr "Malkovich" - -#: html/Search/Bulk.html:32 -msgid "Update" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Update ID" -msgstr "Malkovich ID" - -#: html/Search/Bulk.html:127 html/Ticket/ModifyAll.html:65 html/Ticket/Update.html:48 -msgid "Update Type" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Update all these tickets at once" -msgstr "Malkovich Malkovich at once" - -#: NOT FOUND IN SOURCE -msgid "Update email" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Update name" -msgstr "Malkovich" - -#: lib/RT/Action/CreateTickets.pm:655 lib/RT/Interface/Web.pm:479 -msgid "Update not recorded." -msgstr "Malkovich Malkovich." - -#: html/Search/Bulk.html:78 -msgid "Update selected tickets" -msgstr "Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "Update signature" -msgstr "Malkovich Malkovich" - -#: html/Ticket/ModifyAll.html:62 -msgid "Update ticket" -msgstr "Malkovich" - -#: html/SelfService/Update.html:24 html/SelfService/Update.html:63 -#. ($Ticket->id) -msgid "Update ticket #%1" -msgstr "Malkovich #%1" - -#: html/Ticket/Update.html:121 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Update ticket #%1 (%2)" -msgstr "Malkovich #%1 (%2)" - -#: lib/RT/Action/CreateTickets.pm:653 lib/RT/Interface/Web.pm:477 -msgid "Update type was neither correspondence nor comment." -msgstr "Malkovich Malkovich Malkovich Malkovich Malkovich." - -#: html/Elements/SelectDateType:32 html/Ticket/Elements/ShowDates:51 lib/RT/Ticket_Overlay.pm:1281 -msgid "Updated" -msgstr "Malkovich" - -#: etc/initialdata:132 etc/initialdata:206 -msgid "User Defined" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "User ID" -msgstr "User ID" - -#: html/Elements/SelectUsers:25 -msgid "User Id" -msgstr "User Id" - -#: html/Admin/Elements/GroupTabs:46 html/Admin/Elements/QueueTabs:59 html/Admin/Elements/SystemTabs:46 html/Admin/Global/index.html:58 -msgid "User Rights" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:252 -#. ($msg) -msgid "User could not be created: %1" -msgstr "Malkovich be Malkovich: %1" - -#: lib/RT/User_Overlay.pm:296 -msgid "User created" -msgstr "Malkovich" - -#: html/Admin/Global/GroupRights.html:66 html/Admin/Groups/GroupRights.html:53 html/Admin/Queues/GroupRights.html:68 -msgid "User defined groups" -msgstr "Malkovich Malkovich" - -#: lib/RT/User_Overlay.pm:558 lib/RT/User_Overlay.pm:575 -msgid "User loaded" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "User view" -msgstr "Malkovich" - -#: html/Admin/Users/Modify.html:47 html/Elements/Login:51 html/Ticket/Elements/AddWatchers:34 -msgid "Username" -msgstr "Malkovich" - -#: html/Admin/Elements/SelectNewGroupMembers:25 html/Admin/Elements/Tabs:31 html/Admin/Groups/Members.html:54 html/Admin/Queues/People.html:67 html/Admin/index.html:28 html/User/Groups/Members.html:57 -msgid "Users" -msgstr "Malkovich" - -#: html/Admin/Users/index.html:64 -msgid "Users matching search criteria" -msgstr "Malkovich Malkovich Malkovich" - -#: lib/RT/Tickets_Overlay_SQL.pm:494 -msgid "Valid Query" -msgstr "Malkovich" - -#: html/Admin/Elements/EditCustomField:56 -msgid "Values" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:84 -msgid "Watch" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:85 -msgid "WatchAsAdminCc" -msgstr "Malkovich" - -#: html/Admin/Elements/QueueTabs:41 -msgid "Watchers" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "WebEncoding" -msgstr "Malkovich" - -#: lib/RT/Date.pm:390 -msgid "Wed." -msgstr "Wed." - -#: etc/initialdata:521 -msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" -msgstr "When a Malkovich Malkovich by Malkovich, Malkovich Malkovich to the Malkovich" - -#: etc/initialdata:485 -msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" -msgstr "When a Malkovich Malkovich by Malkovich, Malkovich Malkovich to the Malkovich" - -#: etc/initialdata:146 -msgid "When a ticket is created" -msgstr "When a Malkovich is Malkovich" - -#: etc/initialdata:418 -msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" -msgstr "When a Malkovich is Malkovich, Malkovich the Malkovich and Malkovich of the Malkovich Malkovich Malkovich" - -#: etc/initialdata:151 -msgid "When anything happens" -msgstr "Malkovich Malkovich" - -#: etc/initialdata:199 -msgid "Whenever a ticket is resolved" -msgstr "Malkovich a Malkovich is Malkovich" - -#: etc/initialdata:185 -msgid "Whenever a ticket's owner changes" -msgstr "Malkovich a Malkovich's Malkovich" - -#: etc/initialdata:193 -msgid "Whenever a ticket's queue changes" -msgstr "Malkovich a Malkovich's Malkovich" - -#: etc/initialdata:170 -msgid "Whenever a ticket's status changes" -msgstr "Malkovich a Malkovich's Malkovich" - -#: etc/initialdata:207 -msgid "Whenever a user-defined condition occurs" -msgstr "Malkovich a user-Malkovich Malkovich" - -#: etc/initialdata:164 -msgid "Whenever comments come in" -msgstr "Malkovich Malkovich in" - -#: etc/initialdata:157 -msgid "Whenever correspondence comes in" -msgstr "Malkovich Malkovich Malkovich in" - -#: html/Admin/Users/Modify.html:161 html/User/Prefs.html:67 -msgid "Work" -msgstr "Work" - -#: NOT FOUND IN SOURCE -msgid "WorkPhone" -msgstr "Malkovich" - -#: html/Ticket/Elements/ShowBasics:41 html/Ticket/Update.html:42 -msgid "Worked" -msgstr "Malkovich" - -#: html/autohandler:150 -msgid "XXX CHANGEME You are not an authorized user" -msgstr "MALKOVICH Malkovich a Malkovich" - -#: lib/RT/Ticket_Overlay.pm:3059 -msgid "You already own this ticket" -msgstr "Malkovich Malkovich Malkovich" - -#: html/autohandler:142 -msgid "You are not an authorized user" -msgstr "Malkovich a Malkovich" - -#: NOT FOUND IN SOURCE -msgid "You can access it with the Download button on the right." -msgstr "Malkovich it with the Malkovich on the Malkovich." - -#: lib/RT/Ticket_Overlay.pm:2941 -msgid "You can only reassign tickets that you own or that are unowned" -msgstr "Malkovich Malkovich Malkovich Malkovich or Malkovich Malkovich" - -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:760 -#. ($num, $queue) -msgid "You found %1 tickets in queue %2" -msgstr "Malkovich %1 Malkovich in Malkovich %2" - -#: html/NoAuth/Logout.html:30 -msgid "You have been logged out of RT." -msgstr "Malkovich Malkovich of RT." - -#: html/SelfService/Display.html:79 -msgid "You have no permission to create tickets in that queue." -msgstr "Malkovich no Malkovich to Malkovich in that Malkovich." - -#: lib/RT/Ticket_Overlay.pm:2095 -msgid "You may not create requests in that queue." -msgstr "Malkovich Malkovich Malkovich in Malkovich." - -#: html/NoAuth/Logout.html:34 -msgid "You're welcome to login again" -msgstr "You're Malkovich to Malkovich" - -#: etc/initialdata:502 -msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "Malkovich Malkovich Malkovich by %1. Malkovich Malkovich be Malkovich." - -#: etc/initialdata:540 -msgid "Your request has been approved." -msgstr "Malkovich Malkovich Malkovich." - -#: etc/initialdata:445 -msgid "Your request was rejected." -msgstr "Malkovich Malkovich." - -#: html/autohandler:177 -msgid "Your username or password is incorrect" -msgstr "Malkovich or Malkovich is Malkovich" - -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:127 -msgid "Zip" -msgstr "Zip" - -#: html/User/Elements/DelegateRights:58 -#. ($right->PrincipalObj->Object->SelfDescription) -msgid "as granted to %1" -msgstr "as Malkovich to %1" - -#: html/SelfService/Closed.html:27 -msgid "closed" -msgstr "Malkovich" - -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:33 -msgid "contains" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "content" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "content-type" -msgstr "Malkovich-type" - -#: html/Admin/Queues/Modify.html:76 lib/RT/Date.pm:319 -msgid "days" -msgstr "days" - -#: lib/RT/Queue_Overlay.pm:64 -msgid "deleted" -msgstr "Malkovich" - -#: html/Search/Elements/PickBasics:33 -msgid "does not match" -msgstr "Malkovich" - -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:34 -msgid "doesn't contain" -msgstr "doesn't Malkovich" - -#: html/Elements/SelectEqualityOperator:37 -msgid "equal to" -msgstr "Malkovich to" - -#: NOT FOUND IN SOURCE -msgid "filename" -msgstr "Malkovich" - -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 -msgid "greater than" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:196 -#. ($self->Name) -msgid "group '%1'" -msgstr "Malkovich '%1'" - -#: lib/RT/Date.pm:315 -msgid "hours" -msgstr "Malkovich" - -#: html/Elements/SelectBoolean:31 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:35 html/Search/Elements/PickBasics:49 html/Search/Elements/PickBasics:80 html/Search/Elements/PickBasics:97 html/Search/Elements/PickCFs:37 -msgid "is" -msgstr "is" - -#: html/Elements/SelectBoolean:35 html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectMatch:36 html/Search/Elements/PickBasics:50 html/Search/Elements/PickBasics:81 html/Search/Elements/PickBasics:98 html/Search/Elements/PickCFs:38 -msgid "isn't" -msgstr "isn't" - -#: html/Elements/SelectCustomFieldOperator:37 html/Elements/SelectEqualityOperator:37 -msgid "less than" -msgstr "Malkovich" - -#: html/Search/Elements/PickBasics:32 -msgid "matches" -msgstr "Malkovich" - -#: lib/RT/Date.pm:311 -msgid "min" -msgstr "min" - -#: html/Ticket/Update.html:42 -msgid "minutes" -msgstr "Malkovich" - -#: NOT FOUND IN SOURCE -msgid "modifications\\n\\n" -msgstr "Malkovich\\n\\n" - -#: lib/RT/Date.pm:327 -msgid "months" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:59 -msgid "new" -msgstr "new" - -#: html/Admin/Elements/EditCustomFields:42 -msgid "no name" -msgstr "no name" - -#: html/Admin/Elements/EditScrips:42 -msgid "no value" -msgstr "no Malkovich" - -#: html/Admin/Elements/EditQueueWatchers:26 html/Ticket/Elements/EditWatchers:27 -msgid "none" -msgstr "none" - -#: html/Elements/SelectEqualityOperator:37 -msgid "not equal to" -msgstr "Malkovich to" - -#: html/SelfService/Elements/MyRequests:61 lib/RT/Queue_Overlay.pm:60 -msgid "open" -msgstr "open" - -#: lib/RT/Group_Overlay.pm:201 -#. ($self->Name, $user->Name) -msgid "personal group '%1' for user '%2'" -msgstr "Malkovich '%1' Malkovich '%2'" - -#: lib/RT/Group_Overlay.pm:209 -#. ($queue->Name, $self->Type) -msgid "queue %1 %2" -msgstr "Malkovich %1 %2" - -#: lib/RT/Queue_Overlay.pm:63 -msgid "rejected" -msgstr "Malkovich" - -#: lib/RT/Queue_Overlay.pm:62 -msgid "resolved" -msgstr "Malkovich" - -#: lib/RT/Date.pm:307 -msgid "sec" -msgstr "sec" - -#: lib/RT/Queue_Overlay.pm:61 -msgid "stalled" -msgstr "Malkovich" - -#: lib/RT/Group_Overlay.pm:204 -#. ($self->Type) -msgid "system %1" -msgstr "Malkovich %1" - -#: lib/RT/Group_Overlay.pm:215 -#. ($self->Type) -msgid "system group '%1'" -msgstr "Malkovich '%1'" - -#: html/Elements/Error:42 html/SelfService/Error.html:41 -msgid "the calling component did not specify why" -msgstr "the Malkovich Malkovich Malkovich Malkovich" - -#: NOT FOUND IN SOURCE -msgid "ticket #%1" -msgstr "Malkovich #%1" - -#: lib/RT/Group_Overlay.pm:212 -#. ($self->Instance, $self->Type) -msgid "ticket #%1 %2" -msgstr "Malkovich #%1 %2" - -#: lib/RT/Group_Overlay.pm:218 -#. ($self->Id) -msgid "undescribed group %1" -msgstr "Malkovich Malkovich %1" - -#: lib/RT/Group_Overlay.pm:193 -#. ($user->Object->Name) -msgid "user %1" -msgstr "user %1" - -#: lib/RT/Date.pm:323 -msgid "weeks" -msgstr "Malkovich" - -#: lib/RT/Date.pm:331 -msgid "years" -msgstr "Malkovich" - diff --git a/rt/lib/RT/I18N/sv.po b/rt/lib/RT/I18N/sv.po deleted file mode 100644 index 25312a0fe..000000000 --- a/rt/lib/RT/I18N/sv.po +++ /dev/null @@ -1,5840 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: \n" -"PO-Revision-Date: 2007-03-16 12:57+0100\n" -"Last-Translator: Heidi Senderovitz\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf8\n" -"Content-Transfer-Encoding: 8bit\n" - -#. ($self->{CurrentSearch}{Object}->Description) -#: html/Widgets/SavedSearch:70 -msgid " %1 deleted." -msgstr " %1 raderad." - -#. ($self->{CurrentSearch}{Description}, $args->{Description}) -#: html/Widgets/SavedSearch:47 -msgid " %1 renamed to %2." -msgstr " %1 omdöpt till %2." - -#. ($args->{Description}) -#: html/Widgets/SavedSearch:60 -msgid " %1 saved." -msgstr " %1 sparad." - -#. ($TicketObj->Id, $TicketObj->Subject) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -#. ($ticket->Id, $ticket->Subject) -#. ($Ticket->id, $Ticket->Subject) -#: html/Approvals/Elements/Approve:48 -#: html/Approvals/Elements/ShowDependency:71 -#: html/SelfService/Display.html:46 -#: html/Ticket/Display.html:47 -#: html/Ticket/Display.html:51 -msgid "#%1: %2" -msgstr "#%1: %2" - -#: html/Elements/ShowSearch:104 -msgid "$1" -msgstr "$1" - -#. ($label) -#: lib/RT/Record.pm:940 -msgid "$prefix %1" -msgstr "$prefix %1" - -#. ($self->ObjectType, $self->Object->Id) -#: lib/RT/URI/fsck_com_rt.pm:256 -msgid "%1 #%2" -msgstr "%1 #%2" - -#. ($s, $time_unit) -#: lib/RT/Date.pm:365 -msgid "%1 %2" -msgstr "%1 %2" - -#. ($self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)) -#: lib/RT/Date.pm:401 -msgid "%1 %2 %3 %4:%5:%6 %7" -msgstr "%1 %2 %3 %4:%5:%6 %7" - -#. ($cf->Name, $new_value->Content) -#. ($field, $self->NewValue) -#. ($self->Field, $principal->Object->Name) -#: lib/RT/Record.pm:1685 -#: lib/RT/Transaction_Overlay.pm:647 -#: lib/RT/Transaction_Overlay.pm:690 -msgid "%1 %2 added" -msgstr "%1 %2 tillagt" - -#. ($s, $time_unit) -#: lib/RT/Date.pm:362 -msgid "%1 %2 ago" -msgstr "%1 %2 sedan" - -#. ($cf->Name, $old_content, $new_value->Content) -#. ($field, $self->OldValue, $self->NewValue) -#: lib/RT/Record.pm:1692 -#: lib/RT/Transaction_Overlay.pm:654 -msgid "%1 %2 changed to %3" -msgstr "%1 %2 ändrat till %3" - -#. ($cf->Name, $old_value->Content) -#. ($field, $self->OldValue) -#. ($self->Field, $principal->Object->Name) -#: lib/RT/Record.pm:1689 -#: lib/RT/Transaction_Overlay.pm:650 -#: lib/RT/Transaction_Overlay.pm:696 -msgid "%1 %2 deleted" -msgstr "%1 %2 raderad" - -#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) -#: html/Admin/Elements/EditScrips:65 -#: html/Admin/Elements/ListGlobalScrips:63 -#: html/Ticket/Elements/PreviewScrips:103 -msgid "%1 %2 with template %3" -msgstr "%1 %2 med mall %3" - -#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) -#: html/Ticket/Elements/ShowAttachments:72 -msgid "%1 (%2) by %3" -msgstr "%1 (%2) av %3" - -#. (loc($Ticket->Status())) -#. (loc($TicketObj->Status)) -#. ($TicketObj->OwnerObj->Name()) -#. (loc($DefaultStatus)) -#: html/SelfService/Update.html:60 -#: html/Ticket/Elements/EditBasics:108 -#: html/Ticket/Update.html:61 -#: html/Ticket/Update.html:63 -#: html/Tools/MyDay.html:66 -msgid "%1 (Unchanged)" -msgstr "%1 (Oändrad)" - -#. ("--search-argument", "--search") -#. ("--condition-argument", "--condition") -#. ("--action-argument", "--action") -#: bin/rt-crontool:237 -#: bin/rt-crontool:244 -#: bin/rt-crontool:250 -msgid "%1 - An argument to pass to %2" -msgstr "%1 - En parameter att skicka till %2" - -#. ("--verbose") -#: bin/rt-crontool:262 -msgid "%1 - Output status updates to STDOUT" -msgstr "%1 - Skicka statusuppdateringar till STDOUT" - -#. ("--template-id") -#: bin/rt-crontool:253 -msgid "%1 - Specify id of the template you want to use" -msgstr "%1 - Specificera ID pÃ¥ mall du vill använda" - -#. ("--transaction") -#: bin/rt-crontool:256 -msgid "%1 - Specify if you want to use either 'first' or 'last' tarnsaction" -msgstr "%1 - Specificera om du vill använda 'första' eller 'sista' transaktionen" - -#. ("--action") -#: bin/rt-crontool:247 -msgid "%1 - Specify the action module you want to use" -msgstr "%1 - Specificera den handling du vill använda" - -#. ("--condition") -#: bin/rt-crontool:241 -msgid "%1 - Specify the condition module you want to use" -msgstr "%1 - Specificera den villkorsmodul du vill använda" - -#. ("--search") -#: bin/rt-crontool:234 -msgid "%1 - Specify the search module you want to use" -msgstr "%1 - Specificera den sökmodul du vill använda" - -#. ("--transaction-type") -#: bin/rt-crontool:259 -msgid "%1 - Specify the type of a transaction you want to use" -msgstr "%1 - Specificera den typ av transaktion du vill använda" - -#. ('»|«', $RT::VERSION, '2006', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -#: html/Elements/Footer:56 -msgid "%1 RT %2 Copyright 1996-%3 %4." -msgstr "%1 RT %2 Copyright 1996-%3 %4." - -#. ($self->Id) -#: lib/RT/ScripAction_Overlay.pm:150 -msgid "%1 ScripAction loaded" -msgstr "%1 ScripAktion inläst" - -#. ($args{'Value'}, $cf->Name) -#: lib/RT/Record.pm:1722 -msgid "%1 added as a value for %2" -msgstr "%1 tillagt som värde för %2" - -#. ($args{'Base'}) -#. ($args{'Target'}) -#: lib/RT/Link_Overlay.pm:144 -#: lib/RT/Link_Overlay.pm:151 -msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "%1 tycks vara ett lokalt objekt men gÃ¥r inte att hitta i databasen" - -#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) -#. ($self->BriefDescription , $self->CreatorObj->Name) -#: html/Ticket/Elements/ShowDates:73 -#: lib/RT/Transaction_Overlay.pm:531 -msgid "%1 by %2" -msgstr "%1 av %2" - -#. ($self->Field , $q1->Name , $q2->Name) -#. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") -#: lib/RT/Transaction_Overlay.pm:788 -#: lib/RT/Transaction_Overlay.pm:797 -#: lib/RT/Transaction_Overlay.pm:800 -msgid "%1 changed from %2 to %3" -msgstr "%1 ändrat frÃ¥n %2 till %3" - -#. ($Description) -#: html/Search/Build.html:213 -msgid "%1 copy" -msgstr "%1 kopiera" - -#: lib/RT/Record.pm:944 -msgid "%1 could not be set to %2." -msgstr "%1 kunde inte sättas som %2." - -#. ($self) -#: lib/RT/Ticket_Overlay.pm:2787 -msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." -msgstr "%1 kunde inte markeras som löst. RT:s databas kan vara oförenlig." - -#. ($obj_type) -#: lib/RT/Transaction_Overlay.pm:571 -msgid "%1 created" -msgstr "%1 skapad" - -#. ($obj_type) -#: lib/RT/Transaction_Overlay.pm:576 -msgid "%1 deleted" -msgstr "%1 raderad" - -#: etc/initialdata:593 -msgid "%1 highest priority tickets I own" -msgstr "%1 högsta prioriterade ärenden som tillhör mig" - -#. ($0) -#: bin/rt-crontool:229 -msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." -msgstr "%1 är ett verktyg som reagerar pÃ¥ ärenden frÃ¥n ett externt planeringsverktyg, sÃ¥ som cron." - -#. ($principal->Object->Name, $args{'Type'}) -#: lib/RT/Queue_Overlay.pm:863 -msgid "%1 is no longer a %2 for this queue." -msgstr "%1 är inte längre en %2 för denna kö." - -#. ($minutes) -#: html/Ticket/Elements/ShowTime:47 -#: html/Ticket/Elements/ShowTime:49 -msgid "%1 min" -msgstr "%1 min." - -#: etc/initialdata:601 -msgid "%1 newest unowned tickets" -msgstr "%1 nyaste ärenden som inte tillhör nÃ¥gon" - -#: lib/RT/CustomField_Overlay.pm:893 -msgid "%1 objects" -msgstr "%1 objekt" - -#. (loc($ObjectType =~ /^RT::(.*)$/)) -#: html/User/Elements/DelegateRights:97 -msgid "%1 rights" -msgstr "%1 rättigheter" - -#. (ref $self) -#: lib/RT/Action/ResolveMembers.pm:63 -msgid "%1 will resolve all members of a resolved group ticket." -msgstr "%1 kommer att lösa alla medlemmar av ett löst gruppärende." - -#: lib/RT/CustomField_Overlay.pm:894 -msgid "%1's %2 objects" -msgstr "%1:s %2 objekt" - -#: lib/RT/CustomField_Overlay.pm:895 -msgid "%1's %2's %3 objects" -msgstr "%1:s %2:s %3 objekt" - -#. ($Object->Name) -#. ($object->Name) -#: html/Search/Elements/SearchPrivacy:52 -#: html/Search/Elements/SelectSearchObject:55 -#: html/Search/Elements/SelectSearchesForObjects:57 -msgid "%1's saved searches" -msgstr "%1:s sparade sökningar" - -#. ($self) -#: lib/RT/Transaction_Overlay.pm:481 -msgid "%1: no attachment specified" -msgstr "%1: inga bifogade filer angivna" - -#. ($size) -#: html/Ticket/Elements/ShowTransactionAttachments:78 -msgid "%1b" -msgstr "%1b" - -#. (int( $size / 102.4 ) / 10) -#: html/Ticket/Elements/ShowTransactionAttachments:75 -msgid "%1k" -msgstr "%1k" - -#. (sprintf("%.1f",$minutes / 60)) -#: html/Ticket/Elements/ShowTime:49 -msgid "%quant(%1,hour)" -msgstr "%quant(%1,timme)" - -#. ($args{'Status'}) -#: lib/RT/Ticket_Overlay.pm:1142 -msgid "'%1' is an invalid value for status" -msgstr "'%1' är ogiltigt statusvärde" - -#: html/Admin/Elements/EditCustomFieldValues:50 -#: html/Admin/Elements/EditQueueWatchers:50 -#: html/Admin/Elements/EditScrips:56 -#: html/Admin/Elements/EditTemplates:57 -#: html/Admin/Groups/Members.html:73 -#: html/Elements/EditLinks:54 -#: html/Ticket/Elements/EditPeople:67 -#: html/User/Groups/Members.html:76 -msgid "(Check box to delete)" -msgstr "(Markera box för radering)" - -#: html/Ticket/Elements/PreviewScrips:99 -msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "(Markera boxar för bortväljande av meddelande till registrerade mottagare)" - -#: html/Ticket/Elements/PreviewScrips:123 -msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "(Markera boxar för tillval av meddelande till registrerade mottagare)" - -#: html/Ticket/Create.html:218 -msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(Mata in ärende-ID:n eller URL, separerade med mellanrum)" - -#. ($RT::CorrespondAddress) -#. ($RT::CommentAddress) -#: html/Admin/Queues/Modify.html:75 -#: html/Admin/Queues/Modify.html:81 -msgid "(If left blank, will default to %1)" -msgstr "(Lämnas det tomt kommer default att vara %1)" - -#: html/Admin/Elements/EditCustomFields:74 -#: html/Admin/Elements/ListGlobalCustomFields:53 -msgid "(No custom fields)" -msgstr "(Inga extrafält)" - -#: html/Admin/Groups/Members.html:71 -#: html/User/Groups/Members.html:74 -msgid "(No members)" -msgstr "(Inga medlemmar)" - -#: html/Admin/Elements/EditScrips:53 -#: html/Admin/Elements/ListGlobalScrips:48 -msgid "(No scrips)" -msgstr "(Inga scrips)" - -#: html/Admin/Elements/EditTemplates:52 -msgid "(No templates)" -msgstr "(Inga mallar)" - -#: html/Admin/Elements/PickCustomFields:47 -#: html/Admin/Elements/PickObjects:47 -msgid "(None)" -msgstr "(Inga)" - -#: html/Ticket/Update.html:90 -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "(Skickar en hemlig kopia av denna uppdatering till en kommaseparerad lista med e-postadresser. Ändrar <strong>inte</strong> pÃ¥ vem som fÃ¥r framtida uppdateringar.)" - -#: html/Ticket/Create.html:103 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "(Skickar en kopia av denna uppdatering till en kommaseparerad lista med administrativa e-postadresser. Dessa <strong>kommer</strong> att fÃ¥ framtida uppdateringar.)" - -#: html/Ticket/Update.html:86 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "(Skickar en kopia av denna uppdatering till en kommaseparerad lista med e-postadresser. Ändrar <strong>inte</strong> pÃ¥ vem som fÃ¥r framtida uppdateringar.)" - -#: html/Ticket/Create.html:93 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "(Skickar en kopia av denna uppdatering till en kommaseparerad lista med e-postadresser. Dessa <strong>kommer</strong> att fÃ¥ framtida uppdateringar.)" - -#: html/Admin/Elements/EditScrip:96 -msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "(Använd dessa fält när du väljer 'Användardefinierat' för villkor eller handling)" - -#: html/Ticket/Elements/EditWatchers:60 -#: html/Ticket/Elements/ShowUserEntry:53 -msgid "(Will not be sent email)" -msgstr "(Kommer inte att skickas som e-post)" - -#: html/Admin/Groups/index.html:57 -#: html/User/Groups/index.html:54 -msgid "(empty)" -msgstr "(tom)" - -#: html/Admin/Users/index.html:60 -msgid "(no name listed)" -msgstr "(inga namn registrerade)" - -#: html/Admin/Elements/SelectRights:72 -#: html/Elements/EditCustomFieldSelect:69 -#: html/Elements/SelectCustomFieldValue:51 -#: html/Elements/ShowCustomFields:54 -#: html/Search/Chart:56 -#: html/Search/Elements/Chart:76 -#: lib/RT/Transaction_Overlay.pm:591 -msgid "(no value)" -msgstr "(inget värde)" - -#: html/Admin/Elements/EditCustomFieldValues:47 -msgid "(no values)" -msgstr "(inga värden)" - -#: html/Elements/EditLinks:132 -#: html/Ticket/Elements/BulkLinks:49 -msgid "(only one ticket)" -msgstr "(endast ett ärende)" - -#: html/Elements/RT__Ticket/ColumnMap:149 -msgid "(pending approval)" -msgstr "(inväntar godkännande)" - -#: html/Elements/RT__Ticket/ColumnMap:152 -msgid "(pending other Collection)" -msgstr "(inväntar annan Samling)" - -#: html/Admin/Users/Modify.html:71 -msgid "(required)" -msgstr "(obligatorisk)" - -#: html/Ticket/Elements/ShowTransactionAttachments:82 -msgid "(untitled)" -msgstr "(ej namngiven)" - -#: html/Ticket/Elements/Reminders:133 -msgid "(yyyy/mm/dd)" -msgstr "(yyyy/mm/dd)" - -#: html/Elements/EditCustomFieldSelect:57 -msgid "-" -msgstr "-" - -#: bin/rt-crontool:95 -msgid "--transaction argument could be only 'first' or 'last'" -msgstr "--transaktionsparameter kan bara vara 'först' eller 'sist'" - -#: html/Ticket/Elements/ShowBasics:53 -msgid "<% $Ticket->Status%>" -msgstr "<% $Ärende->Status%>" - -#: html/Elements/SelectTicketTypes:48 -msgid "<% $_ %>" -msgstr "<% $_ %>" - -#: html/Search/Elements/SelectLinks:48 -msgid "<%$_%>" -msgstr "<%$_%>" - -#: html/Search/Elements/DisplayOptions:73 -msgid "<%$field%>" -msgstr "<%$fält%>" - -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -#: html/Elements/CreateTicket:47 -msgid "<input type=\"submit\" class=\"button\" value=\"New ticket in\" /> %1" -msgstr "<input type=\"submit\" class=\"button\" value=\"Nytt ärende i\" /> %1" - -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -#: docs/design_docs/string-extraction-guide.txt:54 -#: lib/RT/StyleGuide.pod:787 -msgid "<input type=\"submit\" value=\"New ticket in\"> %1" -msgstr "<input type=\"submit\" value=\"Nytt ärende i\"> %1" - -#: etc/initialdata:218 -msgid "A blank template" -msgstr "En tom mall" - -#: html/Admin/Users/Modify.html:371 -msgid "A password was not set, so user won't be able to login." -msgstr "Det har inte satts nÃ¥got lösenord, sÃ¥ användare kan inte logga in." - -#: lib/RT/ACE_Overlay.pm:174 -#: lib/RT/Principal_Overlay.pm:219 -msgid "ACE not found" -msgstr "ACE ej funnen" - -#: lib/RT/ACE_Overlay.pm:853 -msgid "ACEs can only be created and deleted." -msgstr "ACE kan endast skapas och raderas." - -#: html/Search/Elements/SelectAndOr:46 -msgid "AND" -msgstr "OCH" - -#: html/User/Elements/Tabs:53 -msgid "About me" -msgstr "Om mig" - -#: html/Admin/Users/Modify.html:106 -msgid "Access control" -msgstr "TillgÃ¥ngskontroll" - -#: html/Admin/Elements/EditScrip:65 -msgid "Action" -msgstr "Handling" - -#. ($args{'ScripAction'}) -#: lib/RT/Scrip_Overlay.pm:172 -msgid "Action %1 not found" -msgstr "Handling %1 ej funnen" - -#: bin/rt-crontool:171 -msgid "Action committed.\\n" -msgstr "Handling genomförd.\\n" - -#: lib/RT/Scrip_Overlay.pm:168 -msgid "Action is mandatory argument" -msgstr "Handling är obligatoriskt argument" - -#: bin/rt-crontool:167 -msgid "Action prepared..." -msgstr "Handling förberedd..." - -#: html/Search/Build.html:85 -msgid "Add" -msgstr "Lägg till" - -#: html/Search/Bulk.html:92 -msgid "Add AdminCc" -msgstr "Lägg till Admin.kopia" - -#: html/Search/Bulk.html:88 -msgid "Add Cc" -msgstr "Lägg till kopia" - -#: html/Search/Elements/EditFormat:49 -msgid "Add Columns" -msgstr "Lägg till kolumner" - -#: html/Search/Elements/PickCriteria:46 -msgid "Add Criteria" -msgstr "Lägg till kriterium" - -#: html/Ticket/Create.html:147 -#: html/Ticket/Update.html:116 -msgid "Add More Files" -msgstr "Lägg till fler filer" - -#: html/Search/Bulk.html:84 -msgid "Add Requestor" -msgstr "Lägg till rekvirent" - -#: html/Admin/Elements/AddCustomFieldValue:46 -msgid "Add Value" -msgstr "Lägg till värde" - -#: html/Admin/Global/Scrip.html:83 -msgid "Add a scrip which will apply to all queues" -msgstr "Lägg till ett scrip som kommer att fungera för alla köer" - -#: html/Search/Build.html:109 -#: html/Search/Build.html:94 -msgid "Add and Search" -msgstr "Lägg till och sök" - -#: html/Search/Bulk.html:124 -msgid "Add comments or replies to selected tickets" -msgstr "Lägg till kommentarer eller svar pÃ¥ utvalda ärenden" - -#: html/Admin/Groups/Members.html:63 -#: html/User/Groups/Members.html:60 -msgid "Add members" -msgstr "Lägg till medlemmar" - -#: html/Admin/Queues/People.html:87 -#: html/Ticket/Elements/AddWatchers:49 -msgid "Add new watchers" -msgstr "Lägg till nya observatörer" - -#: html/Search/Build.html:85 -msgid "Add these terms to your search" -msgstr "Lägg till dessa termer till din sökning" - -#: html/Search/Bulk.html:158 -msgid "Add values" -msgstr "Lägg till värden" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "Add, delete and modify custom field values for objects" -msgstr "Lägg till, radera och modifiera extrafältvärden för objekt" - -#. ($args{'Type'}) -#: lib/RT/Queue_Overlay.pm:763 -msgid "Added principal as a %1 for this queue" -msgstr "Tillagd principal som en %1 för denna kö" - -#. ($self->loc($args{'Type'})) -#: lib/RT/Ticket_Overlay.pm:1455 -msgid "Added principal as a %1 for this ticket" -msgstr "Tillagd principal som en %1 för detta ärende" - -#: html/Admin/Users/Modify.html:146 -#: html/User/Prefs.html:133 -msgid "Address1" -msgstr "Adress1" - -#: html/Admin/Users/Modify.html:151 -#: html/User/Prefs.html:137 -msgid "Address2" -msgstr "Adress2" - -#: html/Ticket/Create.html:98 -msgid "Admin Cc" -msgstr "Admin.kopia" - -#: etc/initialdata:295 -msgid "Admin Comment" -msgstr "Admin.kommentar" - -#: etc/initialdata:274 -msgid "Admin Correspondence" -msgstr "Admin.korrespondens" - -#: html/Admin/Queues/index.html:46 -#: html/Admin/Queues/index.html:49 -msgid "Admin queues" -msgstr "Admin.köer" - -#: html/Admin/Global/index.html:47 -#: html/Admin/Global/index.html:49 -msgid "Admin/Global configuration" -msgstr "Admin/Global konfiguration" - -#: etc/initialdata:56 -#: html/Ticket/Elements/ShowPeople:60 -#: lib/RT/ACE_Overlay.pm:113 -msgid "AdminCc" -msgstr "Admin.kopia" - -#: lib/RT/CustomField_Overlay.pm:106 -msgid "AdminCustomField" -msgstr "AdminExtrafält" - -#: lib/RT/Group_Overlay.pm:163 -msgid "AdminGroup" -msgstr "AdminGrupp" - -#: lib/RT/Group_Overlay.pm:165 -msgid "AdminGroupMembership" -msgstr "AdminGruppMedlemskap" - -#: lib/RT/System.pm:80 -msgid "AdminOwnPersonalGroups" -msgstr "AdminEgnaPersonligaGrupper" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "AdminQueue" -msgstr "AdminKö" - -#: lib/RT/System.pm:81 -msgid "AdminUsers" -msgstr "AdminAnvändare" - -#: html/Admin/Queues/People.html:69 -#: html/Ticket/Elements/EditPeople:75 -msgid "Administrative Cc" -msgstr "Administrativ kopia" - -#: html/Ticket/Elements/Tabs:216 -msgid "Advanced" -msgstr "Avancerad" - -#: html/Elements/SelectDateRelation:57 -msgid "After" -msgstr "Efter" - -#: html/Search/Elements/PickCriteria:52 -msgid "Aggregator" -msgstr "Aggregator" - -#: etc/initialdata:363 -msgid "All Approvals Passed" -msgstr "Alla godkännanden har accepterats" - -#: html/Admin/Queues/index.html:75 -msgid "All Queues" -msgstr "Alla köer" - -#: html/Search/Elements/EditQuery:56 -msgid "And/Or" -msgstr "Och/eller" - -#: html/Admin/CustomFields/Modify.html:73 -#: html/Admin/Elements/CustomFieldTabs:83 -msgid "Applies to" -msgstr "Gäller för" - -#: html/Search/Edit.html:64 -msgid "Apply" -msgstr "Utför" - -#: html/Search/Edit.html:64 -msgid "Apply your changes" -msgstr "Utför dina ändringar" - -#: html/Elements/Tabs:77 -msgid "Approval" -msgstr "Godkännande" - -#. ($ticket->id, $msg) -#. ($Ticket->Id, $Ticket->Subject) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -#: html/Approvals/Display.html:65 -#: html/Approvals/Elements/ShowDependency:63 -#: html/Approvals/index.html:86 -msgid "Approval #%1: %2" -msgstr "Godkännande #%1: %2" - -#. ($ticket->Id) -#: html/Approvals/index.html:75 -msgid "Approval #%1: Notes not recorded due to a system error" -msgstr "Godkännande #%1: Anteckningar ej registrerade pÃ¥ grund av systemfel" - -#. ($ticket->Id) -#: html/Approvals/index.html:73 -msgid "Approval #%1: Notes recorded" -msgstr "Godkännande #%1: Anteckningar har registrerats" - -#: etc/initialdata:351 -msgid "Approval Passed" -msgstr "Godkännande har accepterats" - -#: etc/initialdata:374 -msgid "Approval Rejected" -msgstr "Godkännande avvisat" - -#: html/Approvals/Elements/Approve:69 -msgid "Approve" -msgstr "Godkänn" - -#: etc/initialdata:504 -msgid "Approver's notes: %1" -msgstr "Godkännares anteckningar: %1" - -#: lib/RT/Date.pm:444 -msgid "Apr." -msgstr "Apr." - -#: html/Search/Elements/DisplayOptions:81 -msgid "Asc" -msgstr "Stigande" - -#: html/Elements/SelectSortOrder:56 -msgid "Ascending" -msgstr "Stigande" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "Assign and remove custom fields" -msgstr "Lägg till och radera extrafält" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "AssignCustomFields" -msgstr "LäggtillExtraFält" - -#: html/Search/Bulk.html:142 -#: html/SelfService/Update.html:87 -#: html/Ticket/ModifyAll.html:115 -#: html/Ticket/Update.html:116 -msgid "Attach" -msgstr "Bifoga" - -#: html/SelfService/Create.html:92 -#: html/Ticket/Create.html:143 -msgid "Attach file" -msgstr "Bifoga fil" - -#: html/SelfService/Update.html:75 -#: html/Ticket/Create.html:131 -#: html/Ticket/Update.html:94 -msgid "Attached file" -msgstr "Bifogad fil" - -#. ($Attachment) -#: html/Ticket/ShowEmailRecord.html:52 -#: html/Ticket/ShowEmailRecord.html:56 -#: html/Ticket/ShowEmailRecord.html:59 -msgid "Attachment '%1' could not be loaded" -msgstr "Bifogad fil '%1' kunde inte läsas in" - -#: lib/RT/Transaction_Overlay.pm:489 -msgid "Attachment created" -msgstr "Bifogad fil skapad" - -#: lib/RT/Tickets_Overlay.pm:1945 -msgid "Attachment filename" -msgstr "Bifogat filnamn" - -#: html/Ticket/Elements/ShowAttachments:47 -msgid "Attachments" -msgstr "Bifogade filer" - -#: lib/RT/Attributes_Overlay.pm:171 -msgid "Attribute Deleted" -msgstr "Attribut raderat" - -#: lib/RT/Date.pm:448 -msgid "Aug." -msgstr "Aug." - -#: etc/initialdata:221 -msgid "Autoreply" -msgstr "Autosvar" - -#: etc/initialdata:72 -msgid "Autoreply To Requestors" -msgstr "Autosvar till rekvirenter" - -#: html/Widgets/SelectionBox:185 -msgid "Available" -msgstr "Tillgänglig" - -#: html/Admin/Elements/CustomFieldTabs:65 -#: html/Admin/Elements/GroupTabs:60 -#: html/Admin/Elements/QueueTabs:60 -#: html/Admin/Elements/UserTabs:58 -#: html/Ticket/Elements/Tabs:113 -#: html/User/Elements/GroupTabs:59 -msgid "Basics" -msgstr "Grunddata" - -#: html/Ticket/Update.html:88 -msgid "Bcc" -msgstr "Hemlig kopia" - -#: html/Admin/CustomFields/GroupRights.html:91 -#: html/Admin/CustomFields/UserRights.html:74 -#: html/Admin/Elements/EditScrip:89 -msgid "Be sure to save your changes" -msgstr "Se till att spara dina ändringar" - -#: html/Elements/SelectDateRelation:55 -#: lib/RT/CurrentUser.pm:361 -msgid "Before" -msgstr "Före" - -#: html/Elements/Logo:47 -msgid "Best Practical Solutions, LLC corporate logo" -msgstr "Best Practical Solutions, LLC företagslogo" - -#: etc/initialdata:217 -msgid "Blank" -msgstr "Tom" - -#: html/Search/Elements/EditFormat:84 -msgid "Bold" -msgstr "Fetstil" - -#: html/Search/Results.html:79 -msgid "Bookmarkable link" -msgstr "Länk som kan sparas som bokmärke" - -#: html/Ticket/Elements/ShowHistory:64 -#: html/Ticket/Elements/ShowHistory:69 -msgid "Brief headers" -msgstr "Korta headers" - -#: html/Ticket/Elements/Tabs:227 -msgid "Bulk Update" -msgstr "Massärende-uppdatering" - -#: lib/RT/User_Overlay.pm:1853 -msgid "Can not modify system users" -msgstr "Kan inte modifiera systemanvändare" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "Can this principal see this queue" -msgstr "Kan denna principal se denna kö" - -#: lib/RT/CustomField_Overlay.pm:379 -msgid "Can't add a custom field value without a name" -msgstr "Kan inte lägga till ett extrafältvärde utan ett namn" - -#. ($Class) -#: html/Admin/CustomFields/Objects.html:86 -msgid "Can't find a collection class for '%1'" -msgstr "Kan inte hitta en samlingskategori för '%1'" - -#: html/Search/Build.html:286 -msgid "Can't find a saved search to work with" -msgstr "Kan inte hitta en sparad sökning att arbeta med" - -#: lib/RT/Link_Overlay.pm:159 -msgid "Can't link a ticket to itself" -msgstr "Kan inte länka ett ärende till sig själv" - -#. (loc($self->{SearchType})) -#: html/Widgets/SavedSearch:63 -msgid "Can't save %1" -msgstr "kan inte spara %1" - -#: html/Search/Build.html:290 -msgid "Can't save this search" -msgstr "Kan inte spara den här sökningen" - -#: lib/RT/Record.pm:1282 -#: lib/RT/Record.pm:1358 -msgid "Can't specifiy both base and target" -msgstr "Kan inte specificera bÃ¥de bas och mÃ¥l" - -#. ($msg) -#: html/autohandler:204 -msgid "Cannot create user: %1" -msgstr "Kan inte skapa användare: %1" - -#: html/Admin/Elements/AddCustomFieldValue:62 -#: html/Admin/Elements/EditCustomFieldValues:58 -msgid "Category" -msgstr "Kategori" - -#: etc/initialdata:50 -#: html/Admin/Queues/People.html:65 -#: html/SelfService/Create.html:71 -#: html/Ticket/Create.html:88 -#: html/Ticket/Elements/EditPeople:72 -#: html/Ticket/Elements/ShowPeople:56 -#: html/Ticket/Update.html:83 -#: lib/RT/ACE_Overlay.pm:112 -msgid "Cc" -msgstr "Kopia" - -#: html/SelfService/Prefs.html:52 -msgid "Change password" -msgstr "Ändra lösenord" - -#: html/Elements/Submit:78 -msgid "Check All" -msgstr "Markera alla" - -#: html/SelfService/Update.html:78 -#: html/Ticket/Create.html:134 -#: html/Ticket/Update.html:97 -msgid "Check box to delete" -msgstr "Markera box för radering" - -#: html/Admin/Elements/SelectRights:55 -msgid "Check box to revoke right" -msgstr "Markera box för indragande av rättigheter" - -#: html/Elements/EditLinks:148 -#: html/Elements/EditLinks:85 -#: html/Elements/ShowLinks:78 -#: html/Ticket/Create.html:223 -#: html/Ticket/Elements/BulkLinks:64 -msgid "Children" -msgstr "Barn" - -#: html/NoAuth/js/util.js:201 -msgid "Choose a date" -msgstr "Välj ett datum" - -#: html/Admin/Users/Modify.html:156 -#: html/User/Prefs.html:141 -msgid "City" -msgstr "Ort" - -#: html/Elements/Submit:80 -msgid "Clear All" -msgstr "Välj bort alla" - -#: html/Helpers/CalPopup.html:51 -msgid "Close window" -msgstr "Stäng fönster" - -#: html/Ticket/Elements/ShowDates:68 -msgid "Closed" -msgstr "Stängt" - -#: html/SelfService/Closed.html:46 -#: html/SelfService/Elements/Tabs:78 -msgid "Closed tickets" -msgstr "Stängda ärenden" - -#: lib/RT/CustomField_Overlay.pm:89 -msgid "Combobox: Select or enter multiple values" -msgstr "Combobox: Välj eller mata in flera värden" - -#: lib/RT/CustomField_Overlay.pm:90 -msgid "Combobox: Select or enter one value" -msgstr "Combobox: Välj eller mata in ett värde" - -#: lib/RT/CustomField_Overlay.pm:91 -msgid "Combobox: Select or enter up to %1 values" -msgstr "Combobox: Välj eller mata in upp till %1 värden" - -#: html/Ticket/Elements/ShowTransaction:190 -#: html/Ticket/Elements/Tabs:185 -msgid "Comment" -msgstr "Kommentar" - -#: html/Admin/Queues/Modify.html:79 -msgid "Comment Address" -msgstr "Kommentar adress" - -#: lib/RT/Queue_Overlay.pm:111 -msgid "Comment on tickets" -msgstr "Kommentar pÃ¥ ärenden" - -#: lib/RT/Queue_Overlay.pm:111 -msgid "CommentOnTicket" -msgstr "KommentarPåÄrende" - -#: html/Ticket/ModifyAll.html:91 -#: html/Ticket/Update.html:75 -msgid "Comments (Not sent to requestors)" -msgstr "Kommentarer (Ej skickade till rekvirent)" - -#: html/Search/Bulk.html:128 -msgid "Comments (not sent to requestors)" -msgstr "Kommentarer (ej skickade till rekvirent)" - -#: html/Admin/Users/Modify.html:225 -#: html/Ticket/Elements/ShowRequestor:67 -msgid "Comments about this user" -msgstr "Kommentarer om denna användare" - -#: lib/RT/Transaction_Overlay.pm:634 -msgid "Comments added" -msgstr "Kommentarer tillagda" - -#: lib/RT/Action/Generic.pm:175 -msgid "Commit Stubbed" -msgstr "Commit tömt" - -#: html/Admin/Elements/EditScrip:59 -msgid "Condition" -msgstr "Villkor" - -#: lib/RT/Scrip_Overlay.pm:184 -msgid "Condition is mandatory argument" -msgstr "Villkor är obligatorisk parameter" - -#: bin/rt-crontool:151 -msgid "Condition matches..." -msgstr "Villkor matchar..." - -#: lib/RT/Scrip_Overlay.pm:188 -msgid "Condition not found" -msgstr "Villkor hittades ej" - -#: html/Elements/Tabs:84 -msgid "Configuration" -msgstr "Konfiguration" - -#: html/SelfService/Prefs.html:54 -msgid "Confirm" -msgstr "Bekräfta" - -#: html/Admin/Elements/ModifyTemplate:65 -#: html/Elements/SelectAttachmentField:48 -#: html/Ticket/ModifyAll.html:119 -msgid "Content" -msgstr "InnehÃ¥ll" - -#: html/Elements/SelectAttachmentField:49 -msgid "Content-Type" -msgstr "InnehÃ¥llstyp" - -#: html/Search/Elements/EditSearches:65 -msgid "Copy" -msgstr "Kopia" - -#: etc/initialdata:286 -msgid "Correspondence" -msgstr "Korrespondens" - -#: lib/RT/Transaction_Overlay.pm:630 -msgid "Correspondence added" -msgstr "Korrespondens tillagd" - -#: lib/RT/Record.pm:1707 -msgid "Could not add new custom field value. " -msgstr "GÃ¥r ej att lägga till nytt extrafältvärde. " - -#. (, $value_msg) -#: lib/RT/Record.pm:1660 -msgid "Could not add new custom field value. %1 " -msgstr "GÃ¥r ej att lägga till nytt extrafältvärde. %1 " - -#: lib/RT/Ticket_Overlay.pm:3048 -#: lib/RT/Ticket_Overlay.pm:3056 -#: lib/RT/Ticket_Overlay.pm:3073 -msgid "Could not change owner. " -msgstr "GÃ¥r ej att byta ägare. " - -#. ($msg) -#: html/Admin/CustomFields/Modify.html:161 -msgid "Could not create CustomField" -msgstr "GÃ¥r ej att skapa ExtraFält" - -#. ($msg) -#: html/Admin/Elements/EditCustomField:113 -msgid "Could not create CustomField: %1" -msgstr "GÃ¥r ej att skapa ExtraFält: %1" - -#: html/User/Groups/Modify.html:98 -#: lib/RT/Group_Overlay.pm:494 -#: lib/RT/Group_Overlay.pm:501 -msgid "Could not create group" -msgstr "GÃ¥r ej att skapa grupp" - -#. ($msg) -#: html/Admin/Global/Template.html:96 -#: html/Admin/Queues/Template.html:93 -msgid "Could not create template: %1" -msgstr "GÃ¥r ej att skapa mall: %1" - -#: lib/RT/Ticket_Overlay.pm:1075 -#: lib/RT/Ticket_Overlay.pm:407 -msgid "Could not create ticket. Queue not set" -msgstr "GÃ¥r ej att skapa ärende. Kö ej satt" - -#: lib/RT/User_Overlay.pm:255 -#: lib/RT/User_Overlay.pm:269 -#: lib/RT/User_Overlay.pm:278 -#: lib/RT/User_Overlay.pm:287 -#: lib/RT/User_Overlay.pm:296 -#: lib/RT/User_Overlay.pm:310 -#: lib/RT/User_Overlay.pm:320 -#: lib/RT/User_Overlay.pm:496 -msgid "Could not create user" -msgstr "GÃ¥r ej att skapa användare" - -#: lib/RT/Queue_Overlay.pm:741 -#: lib/RT/Ticket_Overlay.pm:1423 -msgid "Could not find or create that user" -msgstr "GÃ¥r ej att hitta eller skapa denna användare" - -#: lib/RT/Queue_Overlay.pm:802 -#: lib/RT/Ticket_Overlay.pm:1504 -msgid "Could not find that principal" -msgstr "GÃ¥r ej att hitta denna principal" - -#: html/Admin/CustomFields/Objects.html:69 -msgid "Could not load CustomField %1" -msgstr "GÃ¥r ej att läsa in ExtraFält %1" - -#: html/Admin/Groups/Members.html:112 -#: html/User/Groups/Members.html:111 -#: html/User/Groups/Modify.html:103 -msgid "Could not load group" -msgstr "GÃ¥r ej att läsa in grupp" - -#. ($privacy) -#: lib/RT/SavedSearch.pm:119 -msgid "Could not load object for %1" -msgstr "GÃ¥r ej att läsa in objekt för %1" - -#: lib/RT/SavedSearch.pm:197 -msgid "Could not load search attribute" -msgstr "GÃ¥r ej att läsa in sökattribut" - -#. ($args{'Type'}) -#: lib/RT/Queue_Overlay.pm:761 -msgid "Could not make that principal a %1 for this queue" -msgstr "GÃ¥r ej att göra denna principal %1 för denna kö" - -#. ($self->loc($args{'Type'})) -#: lib/RT/Ticket_Overlay.pm:1444 -msgid "Could not make that principal a %1 for this ticket" -msgstr "GÃ¥r ej att göra denna principal %1 för detta ärende" - -#. ($args{'Type'}) -#: lib/RT/Queue_Overlay.pm:860 -msgid "Could not remove that principal as a %1 for this queue" -msgstr "GÃ¥r ej att flytta denna principal som %1 för denna kö" - -#: lib/RT/User_Overlay.pm:191 -msgid "Could not set user info" -msgstr "GÃ¥r ej att sätta in användarinfo" - -#: lib/RT/Transaction_Overlay.pm:159 -msgid "Couldn't add attachment" -msgstr "GÃ¥r ej att sätta in bifogad fil" - -#: lib/RT/Group_Overlay.pm:1003 -msgid "Couldn't add member to group" -msgstr "GÃ¥r ej att lägga till medlem till grupp" - -#. ($Msg) -#: lib/RT/Record.pm:1719 -#: lib/RT/Record.pm:1771 -msgid "Couldn't create a transaction: %1" -msgstr "GÃ¥r ej att skapa transaktion: %1" - -#: lib/RT/Record.pm:953 -msgid "Couldn't find row" -msgstr "GÃ¥r ej att hitta rad" - -#: lib/RT/Group_Overlay.pm:977 -msgid "Couldn't find that principal" -msgstr "GÃ¥r ej att hitta denna principal" - -#: lib/RT/CustomField_Overlay.pm:409 -msgid "Couldn't find that value" -msgstr "GÃ¥r ej att hitta detta värde" - -#. ($self->Id) -#: lib/RT/CurrentUser.pm:145 -msgid "Couldn't load %1 from the users database.\\n" -msgstr "GÃ¥r ej att läsa in %1 frÃ¥n användarens databas.\\n" - -#. ($id) -#: html/Admin/CustomFields/UserRights.html:149 -msgid "Couldn't load Class %1" -msgstr "GÃ¥r ej att läsa in klass %1" - -#. ($id) -#: html/Admin/CustomFields/GroupRights.html:107 -msgid "Couldn't load CustomField %1" -msgstr "GÃ¥r ej att läsa in ExtraFält %1" - -#. ($self->Id) -#: lib/RT/Ticket_Overlay.pm:2016 -msgid "Couldn't load copy of ticket #%1." -msgstr "GÃ¥r ej att läsa in kopia av ärende #%1." - -#. ($id) -#: html/Admin/Groups/GroupRights.html:109 -#: html/Admin/Groups/UserRights.html:96 -msgid "Couldn't load group %1" -msgstr "GÃ¥r ej att läsa in grupp %1" - -#: lib/RT/Link_Overlay.pm:202 -#: lib/RT/Link_Overlay.pm:211 -#: lib/RT/Link_Overlay.pm:238 -msgid "Couldn't load link" -msgstr "GÃ¥r ej att läsa in länk" - -#. ($id) -#: html/Admin/Elements/ObjectCustomFields:83 -#: html/Admin/Queues/CustomFields.html:59 -#: html/Admin/Users/CustomFields.html:59 -msgid "Couldn't load object %1" -msgstr "GÃ¥r ej att läsa in objekt %1" - -#. ($id) -#: html/Admin/Queues/People.html:142 -msgid "Couldn't load queue" -msgstr "GÃ¥r ej att läsa in kö" - -#. ($id) -#: html/Admin/Queues/GroupRights.html:122 -#: html/Admin/Queues/UserRights.html:93 -msgid "Couldn't load queue %1" -msgstr "GÃ¥r ej att läsa in kö %1" - -#. ($id) -#: html/Admin/Elements/EditScrip:126 -#: html/Admin/Elements/EditScrip:167 -msgid "Couldn't load scrip #%1" -msgstr "GÃ¥r ej att läsa in scrip #%1" - -#. ($id) -#: html/SelfService/Display.html:158 -#: lib/RT/Action/CreateTickets.pm:680 -msgid "Couldn't load ticket '%1'" -msgstr "GÃ¥r ej att läsa in ärende '%1'" - -#. ($args{'URI'}) -#: lib/RT/Ticket_Overlay.pm:2643 -msgid "Couldn't resolve '%1' into a URI." -msgstr "Kunde inte omvandla '%1' till en URI." - -#: html/Admin/Users/Modify.html:173 -#: html/User/Prefs.html:153 -msgid "Country" -msgstr "Land" - -#: html/Admin/Elements/CreateUserCalled:47 -#: html/Admin/Elements/EditCustomField:84 -#: html/Admin/Elements/EditScrip:133 -#: html/Admin/Queues/Template.html:66 -#: html/Elements/QuickCreate:65 -#: html/Ticket/Create.html:168 -#: html/Ticket/Create.html:235 -msgid "Create" -msgstr "Skapa" - -#: etc/initialdata:135 -msgid "Create Tickets" -msgstr "Skapa Ärenden" - -#: html/Admin/CustomFields/Modify.html:150 -#: html/Admin/Elements/EditCustomField:96 -msgid "Create a CustomField" -msgstr "Skapa ett ExtraFält" - -#. ($QueueObj->Name()) -#: html/Admin/Queues/CustomField.html:69 -msgid "Create a CustomField for queue %1" -msgstr "Skapa ett ExtraFält för kö %1" - -#: html/Admin/Groups/Modify.html:125 -#: html/Admin/Groups/Modify.html:99 -msgid "Create a new group" -msgstr "Skapa en ny grupp" - -#: html/User/Groups/Modify.html:113 -#: html/User/Groups/Modify.html:88 -msgid "Create a new personal group" -msgstr "Skapa en ny personlig grupp" - -#: html/Ticket/Create.html:47 -#: html/Ticket/Create.html:51 -#: html/Ticket/Create.html:60 -msgid "Create a new ticket" -msgstr "Skapa ett nytt ärende" - -#: html/Admin/Users/Modify.html:252 -#: html/Admin/Users/Modify.html:314 -msgid "Create a new user" -msgstr "Skapa en ny användare" - -#: html/Admin/Queues/Modify.html:125 -msgid "Create a queue" -msgstr "Skapa en kö" - -#. ($QueueObj->Name) -#: html/Admin/Queues/Scrip.html:89 -msgid "Create a scrip for queue %1" -msgstr "Skapa en scrip för kö %1" - -#: html/Admin/Global/Template.html:90 -#: html/Admin/Queues/Template.html:86 -msgid "Create a template" -msgstr "Skapa en mall" - -#: html/SelfService/Create.html:46 -#: html/SelfService/CreateTicketInQueue.html:46 -msgid "Create a ticket" -msgstr "Skapa ett ärende" - -#: etc/initialdata:137 -msgid "Create new tickets based on this scrip's template" -msgstr "Skapa nya ärenden baserade pÃ¥ denna scrips mall" - -#: html/SelfService/Create.html:105 -msgid "Create ticket" -msgstr "Skapa ärende" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "Create tickets in this queue" -msgstr "Skapa ärenden i denna kö" - -#: lib/RT/CustomField_Overlay.pm:106 -msgid "Create, delete and modify custom fields" -msgstr "Skapa, radera och modifiera extrafält" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "Create, delete and modify queues" -msgstr "Skapa, radera och modifiera köer" - -#: lib/RT/System.pm:80 -msgid "Create, delete and modify the members of personal groups" -msgstr "Skapa, radera och modifiera medlemmar av personliga grupper" - -#: lib/RT/System.pm:81 -msgid "Create, delete and modify users" -msgstr "Skapa, radera och modifiera användare" - -#: lib/RT/System.pm:87 -msgid "CreateSavedSearch" -msgstr "SkapaSparadSök" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "CreateTicket" -msgstr "SkapaÄrende" - -#: html/Elements/SelectDateType:47 -#: html/Ticket/Elements/ShowDates:48 -#: lib/RT/Ticket_Overlay.pm:1169 -msgid "Created" -msgstr "Skapat" - -#. ($CustomFieldObj->Name()) -#: html/Admin/CustomFields/Modify.html:163 -#: html/Admin/Elements/EditCustomField:117 -msgid "Created CustomField %1" -msgstr "Skapat ExtraFält %1" - -#: html/Tools/Reports/Elements/Tabs:63 -msgid "Created in a date range" -msgstr "Skapad i en datumintervall" - -#: html/Tools/Reports/CreatedByDates.html:52 -msgid "Created tickets in period, grouped by status" -msgstr "Skapade ärenden under period, grupperade efter status" - -#: html/Search/Elements/PickBasics:102 -msgid "Creator" -msgstr "Skapare" - -#: html/Elements/EditLinks:49 -msgid "Current Links" -msgstr "Nuvarande relationer" - -#: html/Admin/Elements/EditScrips:51 -msgid "Current Scrips" -msgstr "Nuvarande scrips" - -#: html/Admin/Groups/Members.html:60 -#: html/User/Groups/Members.html:63 -msgid "Current members" -msgstr "Nuvarande medlemmar" - -#: html/Admin/Elements/SelectRights:51 -msgid "Current rights" -msgstr "Nuvarande rättigheter" - -#: html/Search/Elements/EditQuery:47 -msgid "Current search" -msgstr "Nuvarande sökning" - -#: html/Admin/Queues/People.html:62 -#: html/Ticket/Elements/EditPeople:66 -msgid "Current watchers" -msgstr "Nuvarande observatörer" - -#: html/Admin/Elements/SystemTabs:61 -#: html/Admin/Elements/Tabs:62 -#: html/Admin/Global/index.html:71 -#: html/Admin/Users/Modify.html:205 -#: html/Admin/index.html:77 -#: html/Ticket/Elements/ShowSummary:56 -msgid "Custom Fields" -msgstr "Extrafält" - -#. ($lookup) -#: html/Admin/CustomFields/index.html:60 -msgid "Custom Fields for %1" -msgstr "Extrafält för %1" - -#: html/Admin/Elements/EditScrip:107 -msgid "Custom action cleanup code" -msgstr "Specialanpassad handling utrensningskod" - -#: html/Admin/Elements/EditScrip:103 -msgid "Custom action preparation code" -msgstr "Specialanpassad handling förberedelsekod" - -#: html/Admin/Elements/EditScrip:99 -msgid "Custom condition" -msgstr "Specialanpassat villkor" - -#. ($CF->Name) -#: lib/RT/Tickets_Overlay.pm:2424 -msgid "Custom field %1 has a value." -msgstr "Extrafält %1 har ett värde." - -#. ($CF->Name) -#: lib/RT/Tickets_Overlay.pm:2420 -msgid "Custom field %1 has no value." -msgstr "Extrafält %1 har inget värde." - -#. ($args{'Field'}) -#: lib/RT/Record.pm:1592 -#: lib/RT/Record.pm:1754 -msgid "Custom field %1 not found" -msgstr "Extrafält %1 ej funnet" - -#. ($cf) -#. ($obj->Name) -#: lib/RT/Report/Tickets.pm:118 -#: lib/RT/Report/Tickets.pm:121 -msgid "Custom field '%1'" -msgstr "Extrafält '%1'" - -#. ($args{'Content'}, $self->Name) -#: lib/RT/CustomField_Overlay.pm:1157 -msgid "Custom field value %1 could not be found for custom field %2" -msgstr "Extrafältvärde %1 gÃ¥r ej att hitta för extrafält %2" - -#: lib/RT/CustomField_Overlay.pm:419 -msgid "Custom field value could not be deleted" -msgstr "Extrafältvärde gÃ¥r ej att radera" - -#: lib/RT/CustomField_Overlay.pm:1169 -msgid "Custom field value could not be found" -msgstr "Extrafält gÃ¥r ej att hitta" - -#: lib/RT/CustomField_Overlay.pm:1171 -#: lib/RT/CustomField_Overlay.pm:417 -msgid "Custom field value deleted" -msgstr "Extrafältvärde raderat" - -#: html/Elements/SelectGroups:51 -#: html/Elements/SelectUsers:51 -#: lib/RT/Transaction_Overlay.pm:638 -msgid "CustomField" -msgstr "ExtraFält" - -#: html/Prefs/MyRT.html:78 -#: html/Prefs/Quicksearch.html:70 -#: html/Prefs/Search.html:75 -msgid "Customize" -msgstr "Anpassa" - -#: html/SelfService/Display.html:61 -#: html/Ticket/Create.html:203 -#: html/Ticket/Elements/ShowSummary:83 -#: html/Ticket/Elements/Tabs:116 -#: html/Ticket/ModifyAll.html:65 -msgid "Dates" -msgstr "Datum" - -#: lib/RT/Date.pm:452 -msgid "Dec." -msgstr "Dec." - -#: etc/initialdata:222 -msgid "Default Autoresponse template" -msgstr "Default Autosvarmall" - -#: html/Tools/Offline.html:61 -msgid "Default Queue" -msgstr "Default Kö" - -#: html/Tools/Offline.html:70 -msgid "Default Requestor" -msgstr "Default rekvirent" - -#: etc/initialdata:296 -msgid "Default admin comment template" -msgstr "Default admin. kommentarmall" - -#: etc/initialdata:275 -msgid "Default admin correspondence template" -msgstr "Default admin. korrespondensmall" - -#: etc/initialdata:287 -msgid "Default correspondence template" -msgstr "Default korrespondensmall" - -#: etc/initialdata:253 -msgid "Default transaction template" -msgstr "Default transaktionsmall" - -#: html/User/Delegation.html:46 -#: html/User/Delegation.html:49 -msgid "Delegate rights" -msgstr "ÖverlÃ¥t rättigheter" - -#: lib/RT/System.pm:84 -msgid "Delegate specific rights which have been granted to you." -msgstr "ÖverlÃ¥t specifika rättigheter som har tilldelats dig." - -#: lib/RT/System.pm:84 -msgid "DelegateRights" -msgstr "ÖverlÃ¥tRättigheter" - -#: html/User/Elements/Tabs:59 -msgid "Delegation" -msgstr "ÖverlÃ¥telse" - -#: html/Admin/Elements/EditScrips:75 -#: html/Search/Elements/EditFormat:103 -#: html/Search/Elements/EditQuery:57 -#: html/Search/Elements/EditSearches:63 -#: html/Widgets/SelectionBox:204 -msgid "Delete" -msgstr "Radera" - -#: html/Admin/Elements/EditTemplates:79 -msgid "Delete Template" -msgstr "Radera Mall" - -#. ($msg) -#: lib/RT/SavedSearch.pm:220 -msgid "Delete failed: %1" -msgstr "Radering misslyckades: %1" - -#: html/Admin/Elements/EditScrips:74 -msgid "Delete selected scrips" -msgstr "Radera utvalda scrips" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "Delete tickets" -msgstr "Radera ärenden" - -#: html/Search/Bulk.html:159 -msgid "Delete values" -msgstr "Radera värden" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "DeleteTicket" -msgstr "RaderaÄrende" - -#: lib/RT/SavedSearch.pm:218 -msgid "Deleted search" -msgstr "Radera sökning" - -#: lib/RT/Queue_Overlay.pm:394 -msgid "Deleting this object would break referential integrity" -msgstr "Radering av detta objekt bryter referentiell integritet" - -#: lib/RT/User_Overlay.pm:512 -msgid "Deleting this object would violate referential integrity" -msgstr "Radering av detta objekt strider mot referentiell integritet" - -#: html/Approvals/Elements/Approve:73 -msgid "Deny" -msgstr "Avvisa" - -#: html/Elements/EditLinks:140 -#: html/Elements/EditLinks:66 -#: html/Elements/ShowLinks:58 -#: html/Ticket/Create.html:221 -#: html/Ticket/Elements/BulkLinks:56 -#: html/Ticket/Elements/ShowDependencies:53 -msgid "Depended on by" -msgstr "Avhängighet av till" - -#. ($value) -#: lib/RT/Transaction_Overlay.pm:718 -msgid "Dependency by %1 added" -msgstr "Avhängighet till %1 tillagd" - -#. ($value) -#: lib/RT/Transaction_Overlay.pm:758 -msgid "Dependency by %1 deleted" -msgstr "Avhängighet till %1 raderad" - -#. ($value) -#: lib/RT/Transaction_Overlay.pm:715 -msgid "Dependency on %1 added" -msgstr "Avhängighet av %1 tillagd" - -#. ($value) -#: lib/RT/Transaction_Overlay.pm:755 -msgid "Dependency on %1 deleted" -msgstr "Avhängighet av %1 raderad" - -#: html/Elements/EditLinks:136 -#: html/Elements/EditLinks:57 -#: html/Elements/SelectLinkType:48 -#: html/Elements/ShowLinks:48 -#: html/Ticket/Create.html:220 -#: html/Ticket/Elements/BulkLinks:52 -#: html/Ticket/Elements/ShowDependencies:46 -msgid "Depends on" -msgstr "Avhängig av" - -#: html/Search/Elements/DisplayOptions:86 -msgid "Desc" -msgstr "Fallande" - -#: html/Elements/SelectSortOrder:56 -msgid "Descending" -msgstr "Fallande" - -#: html/SelfService/Create.html:100 -#: html/Ticket/Create.html:152 -msgid "Describe the issue below" -msgstr "Beskriv problemet nedan" - -#: html/Admin/CustomFields/Modify.html:61 -#: html/Admin/Elements/AddCustomFieldValue:57 -#: html/Admin/Elements/EditCustomField:60 -#: html/Admin/Elements/EditCustomFieldValues:56 -#: html/Admin/Elements/EditScrip:55 -#: html/Admin/Elements/ModifyTemplate:57 -#: html/Admin/Groups/Modify.html:71 -#: html/Admin/Queues/Modify.html:69 -#: html/Search/Elements/EditSearches:56 -#: html/User/Groups/Modify.html:70 -msgid "Description" -msgstr "Beskrivning" - -#: html/Search/Elements/EditFormat:71 -#: html/Ticket/Elements/Tabs:108 -msgid "Display" -msgstr "Visa" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "Display Access Control List" -msgstr "Visa TillgÃ¥ngskontrollista" - -#: html/Search/Elements/DisplayOptions:46 -msgid "Display Columns" -msgstr "Visa kolumner" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "Display Scrip templates for this queue" -msgstr "Visa scrip-mallar för denna kö" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "Display Scrips for this queue" -msgstr "Visa scrips för denna kö" - -#: html/Ticket/Elements/ShowHistory:59 -msgid "Display mode" -msgstr "Visa modus" - -#: lib/RT/Group_Overlay.pm:168 -msgid "Display saved searches for this group" -msgstr "Visa sparade sökningar för denna grupp" - -#: html/Elements/Footer:61 -msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" -msgstr "Distribuerade under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" - -#: lib/RT/System.pm:75 -msgid "Do anything and everything" -msgstr "Gör nÃ¥got och allt" - -#: html/Elements/Refresh:51 -msgid "Don't refresh this page." -msgstr "Ã…terinläs inte denna sida." - -#: html/Ticket/Elements/ShowTransactionAttachments:82 -msgid "Download" -msgstr "Ladda ner" - -#: html/Admin/Groups/index.html:61 -#: html/Admin/Users/index.html:64 -msgid "Download as a tab-delimited file" -msgstr "Ladda ner som tab-uppdelad fil" - -#: html/Elements/SelectDateType:53 -#: html/Ticket/Create.html:209 -#: html/Ticket/Elements/EditDates:66 -#: html/Ticket/Elements/Reminders:133 -#: html/Ticket/Elements/ShowDates:64 -#: lib/RT/Ticket_Overlay.pm:1173 -msgid "Due" -msgstr "Förfallo" - -#: html/Elements/Quicksearch:48 -#: html/Elements/ShowSearch:49 -#: html/index.html:107 -msgid "Edit" -msgstr "Redigera" - -#: html/Search/Bulk.html:149 -msgid "Edit Custom Fields" -msgstr "Redigera extrafält" - -#. ($Object->Name) -#: html/Admin/Elements/ObjectCustomFields:92 -#: html/Admin/Queues/CustomFields.html:64 -#: html/Admin/Users/CustomFields.html:64 -msgid "Edit Custom Fields for %1" -msgstr "Redigera extrafält för %1" - -#: html/Admin/Global/CustomFields/Groups.html:54 -msgid "Edit Custom Fields for all groups" -msgstr "Redigera extrafält för alla grupper" - -#: html/Admin/Global/CustomFields/Users.html:54 -msgid "Edit Custom Fields for all users" -msgstr "Redigera extrafält för alla användare" - -#: html/Admin/Global/CustomFields/Queue-Tickets.html:54 -#: html/Admin/Global/CustomFields/Queue-Transactions.html:54 -msgid "Edit Custom Fields for tickets in all queues" -msgstr "Redigera extrafält för ärenden i alla köer" - -#: html/Search/Bulk.html:188 -#: html/Ticket/ModifyLinks.html:57 -msgid "Edit Links" -msgstr "Redigera länkar" - -#: html/Search/Edit.html:68 -msgid "Edit Query" -msgstr "Redigera söksträng" - -#: html/Ticket/Elements/Tabs:214 -msgid "Edit Search" -msgstr "Redigera sökning" - -#. ($QueueObj->Name) -#: html/Admin/Queues/Templates.html:63 -msgid "Edit Templates for queue %1" -msgstr "Redigera mallar för kö %1" - -#: lib/RT/Group_Overlay.pm:167 -msgid "Edit saved searches for this group" -msgstr "Redigera sparade sökningar för denna grupp" - -#: html/Admin/Elements/GlobalCustomFieldTabs:60 -#: html/Admin/Global/index.html:67 -msgid "Edit system templates" -msgstr "Redigera systemmallar" - -#: lib/RT/Group_Overlay.pm:167 -msgid "EditSavedSearches" -msgstr "RedigeraSparadeSökningar" - -#. ($QueueObj->Name) -#: html/Admin/Queues/Modify.html:140 -msgid "Editing Configuration for queue %1" -msgstr "Redigera konfiguration för kö %1" - -#. ($CustomFieldObj->Name()) -#: html/Admin/CustomFields/Modify.html:167 -#: html/Admin/Elements/EditCustomField:120 -msgid "Editing CustomField %1" -msgstr "Redigera extrafält %1" - -#. ($Group->Name) -#: html/Admin/Groups/Members.html:53 -msgid "Editing membership for group %1" -msgstr "Redigera medlemskap för grupp %1" - -#. ($Group->Name) -#: html/User/Groups/Members.html:150 -msgid "Editing membership for personal group %1" -msgstr "Redigera medlemskap för personlig grupp %1" - -#: lib/RT/Record.pm:1295 -#: lib/RT/Record.pm:1372 -#: lib/RT/Ticket_Overlay.pm:2518 -#: lib/RT/Ticket_Overlay.pm:2608 -msgid "Either base or target must be specified" -msgstr "Antingen bas eller mÃ¥l mÃ¥ste specificeras" - -#: html/Admin/Users/Modify.html:74 -#: html/Ticket/Elements/AddWatchers:77 -#: html/User/Prefs.html:65 -msgid "Email" -msgstr "E-post" - -#: lib/RT/User_Overlay.pm:235 -msgid "Email address in use" -msgstr "E-postadress används" - -#: html/Admin/CustomFields/Modify.html:98 -#: html/Admin/Elements/EditCustomField:72 -msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "Aktiverad (Bortval av denna box deaktiverar detta extrafält)" - -#: html/Admin/Groups/Modify.html:84 -#: html/User/Groups/Modify.html:74 -msgid "Enabled (Unchecking this box disables this group)" -msgstr "Aktiverad (Bortval av denna box deaktiverar denna grupp)" - -#: html/Admin/Queues/Modify.html:105 -msgid "Enabled (Unchecking this box disables this queue)" -msgstr "Aktiverad (Bortval av denna box deaktiverar denna kö)" - -#: html/Admin/Queues/index.html:78 -msgid "Enabled Queues" -msgstr "Aktiverade köer" - -#. (loc_fuzzy($msg)) -#: html/Admin/Elements/EditCustomField:136 -#: html/Admin/Groups/Modify.html:150 -#: html/Admin/Users/Modify.html:350 -#: html/User/Groups/Modify.html:138 -msgid "Enabled status %1" -msgstr "Aktiverad status %1" - -#. (loc_fuzzy($msg)) -#: html/Admin/CustomFields/Modify.html:185 -#: html/Admin/Queues/Modify.html:162 -msgid "Enabled status: %1" -msgstr "Aktiverad status: %1" - -#: lib/RT/CustomField_Overlay.pm:64 -msgid "Enter multiple values" -msgstr "Mata in flera värden" - -#: html/Elements/EditLinks:126 -msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." -msgstr "Mata in objekt eller URI att koppla objekt till. Separera flera inmatningar med mellanrum." - -#: lib/RT/CustomField_Overlay.pm:65 -msgid "Enter one value" -msgstr "Mata in ett värde" - -#: html/Elements/EditLinks:123 -msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." -msgstr "Mata in köer eller URI att koppla köer till. Separera flera inmatningar med mellanrum." - -#: html/Elements/EditLinks:119 -#: html/Search/Bulk.html:189 -msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "Mata in ärenden eller URI att koppla ärenden till. Separera flera inmatningar med mellanrum." - -#: lib/RT/CustomField_Overlay.pm:66 -msgid "Enter up to %1 values" -msgstr "Mata in upp till %1 värde" - -#: html/Elements/Login:76 -#: html/SelfService/Error.html:46 -#: html/SelfService/Error.html:47 -msgid "Error" -msgstr "Fel" - -#: lib/RT/Queue_Overlay.pm:672 -msgid "Error in parameters to Queue->AddWatcher" -msgstr "Fel i parametrar till Kö->LäggtillObservatör" - -#: lib/RT/Queue_Overlay.pm:833 -msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "Fel i parametrar till Kö->RaderaObservatör" - -#: lib/RT/Ticket_Overlay.pm:1372 -msgid "Error in parameters to Ticket->AddWatcher" -msgstr "Fel i parametrar till Ärende->LäggtillObservatör" - -#: lib/RT/Ticket_Overlay.pm:1538 -msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "Fel i parametrar till Ärende->RaderaObservatör" - -#: bin/rt-crontool:285 -msgid "Escalate tickets" -msgstr "Eskalera ärenden" - -#: html/Ticket/Elements/ShowBasics:57 -msgid "Estimated" -msgstr "Uppskattning" - -#: etc/initialdata:20 -msgid "Everyone" -msgstr "Alla" - -#: bin/rt-crontool:271 -msgid "Example:" -msgstr "Exempel:" - -#: html/Admin/Users/Modify.html:99 -msgid "Extra info" -msgstr "Extra info" - -#: lib/RT/SavedSearch.pm:177 -msgid "Failed to create search attribute" -msgstr "Misslyckades med att skapa sökattribut" - -#: lib/RT/User_Overlay.pm:376 -msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "Misslyckades med att hitta 'Privilegierad'-användares pseudogrupp." - -#: lib/RT/User_Overlay.pm:383 -msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "Misslyckades med att hitta 'Icke-privilegierad'-användares pseudogrupp" - -#. ($modname, $@) -#: bin/rt-crontool:206 -msgid "Failed to load module %1. (%2)" -msgstr "Misslyckades med att läsa in modul %1. (%2)" - -#. ($privacy) -#: lib/RT/SavedSearch.pm:152 -msgid "Failed to load object for %1" -msgstr "Misslyckades med att läsa in objekt för %1" - -#: lib/RT/Date.pm:442 -msgid "Feb." -msgstr "Feb." - -#: html/Elements/SelectAttachmentField:50 -msgid "Filename" -msgstr "Filnamn" - -#: lib/RT/CustomField_Overlay.pm:69 -msgid "Fill in multiple text areas" -msgstr "Fyll i flera textomrÃ¥den" - -#: lib/RT/CustomField_Overlay.pm:74 -msgid "Fill in multiple wikitext areas" -msgstr "Fyll i flera wikitextomrÃ¥den" - -#: lib/RT/CustomField_Overlay.pm:70 -msgid "Fill in one text area" -msgstr "Fyll i ett textomrÃ¥de" - -#: lib/RT/CustomField_Overlay.pm:75 -msgid "Fill in one wikitext area" -msgstr "Fyll i ett wikitextomrÃ¥de" - -#: html/Admin/CustomFields/Modify.html:107 -#: html/Admin/CustomFields/Modify.html:118 -msgid "Fill in this field with a URL." -msgstr "Fyll i detta fält med en URL." - -#: lib/RT/CustomField_Overlay.pm:71 -msgid "Fill in up to %1 text areas" -msgstr "Fyll i upp till %1 textomrÃ¥den" - -#: lib/RT/CustomField_Overlay.pm:76 -msgid "Fill in up to %1 wikitext areas" -msgstr "Fyll i upp till %1 wikitextomrÃ¥den" - -#: html/Search/Elements/PickBasics:149 -#: html/Ticket/Create.html:182 -#: html/Ticket/Elements/EditBasics:97 -#: lib/RT/Tickets_Overlay.pm:1841 -msgid "Final Priority" -msgstr "Slutlig Prioritet" - -#: lib/RT/Ticket_Overlay.pm:1164 -msgid "FinalPriority" -msgstr "SlutligPrioritet" - -#: html/Admin/Groups/index.html:72 -#: html/Admin/Queues/People.html:82 -#: html/Ticket/Elements/EditPeople:55 -msgid "Find groups whose" -msgstr "Hitta grupper vars" - -#: html/Admin/Queues/People.html:78 -#: html/Admin/Users/index.html:70 -#: html/Ticket/Elements/EditPeople:51 -msgid "Find people whose" -msgstr "Hitta personer vars" - -#: html/Search/Results.html:147 -msgid "Find tickets" -msgstr "Hitta ärenden" - -#: html/Ticket/Elements/Tabs:81 -msgid "First" -msgstr "Första" - -#: docs/design_docs/string-extraction-guide.txt:33 -#: lib/RT/StyleGuide.pod:766 -msgid "Foo Bar Baz" -msgstr "Foo Bar Baz" - -#: docs/design_docs/string-extraction-guide.txt:24 -#: lib/RT/StyleGuide.pod:757 -msgid "Foo!" -msgstr "Foo!" - -#: html/Search/Bulk.html:83 -msgid "Force change" -msgstr "Genomtvinga ändring" - -#: html/Search/Elements/EditFormat:52 -msgid "Format" -msgstr "Format" - -#. ($ticketcount) -#: html/Search/Results.html:145 -msgid "Found %quant(%1,ticket)" -msgstr "Hittade %quant(%1,ärende)" - -#: lib/RT/Record.pm:956 -msgid "Found Object" -msgstr "Hittade Objekt" - -#: lib/RT/Date.pm:421 -msgid "Fri." -msgstr "Fre." - -#: html/Ticket/Elements/ShowHistory:66 -#: html/Ticket/Elements/ShowHistory:72 -msgid "Full headers" -msgstr "Fullständiga headers" - -#: html/Tools/Offline.html:85 -msgid "Get template from file" -msgstr "Hämta mall frÃ¥n fil" - -#. ($New->Name) -#: lib/RT/Transaction_Overlay.pm:684 -msgid "Given to %1" -msgstr "Har givits till %1" - -#: html/Admin/Elements/Tabs:65 -#: html/Admin/index.html:82 -msgid "Global" -msgstr "Global" - -#: html/Admin/Elements/EditCustomFields:55 -msgid "Global Custom Fields" -msgstr "Globala extrafält" - -#: html/Admin/Global/CustomFields/index.html:59 -msgid "Global custom field configuration" -msgstr "Global extrafältkonfiguration" - -#. ($pane) -#: html/Admin/Global/MyRT.html:48 -msgid "Global portlet %1 saved." -msgstr "Global portlet %1 sparad." - -#. (loc($Template->Name)) -#: html/Admin/Elements/SelectTemplate:59 -msgid "Global template: %1" -msgstr "Global mall: %1" - -#: html/Admin/CustomFields/index.html:80 -#: html/Search/Results.html:90 -#: html/Tools/Offline.html:89 -msgid "Go" -msgstr "Starta" - -#: html/Admin/Groups/index.html:67 -#: html/Admin/Groups/index.html:73 -#: html/Admin/Queues/People.html:80 -#: html/Admin/Queues/People.html:84 -#: html/Admin/Queues/index.html:66 -#: html/Admin/Users/index.html:73 -#: html/Elements/RefreshHomepage:48 -#: html/Search/Results.html:74 -#: html/Ticket/Elements/EditPeople:53 -#: html/Ticket/Elements/EditPeople:57 -msgid "Go!" -msgstr "Starta!" - -#: html/Elements/GotoTicket:46 -#: html/SelfService/Elements/GotoTicket:46 -msgid "Goto ticket" -msgstr "GÃ¥ till ärende" - -#: html/Ticket/Elements/AddWatchers:67 -#: html/Ticket/Elements/ShowGroupMembers:55 -#: html/User/Elements/DelegateRights:99 -msgid "Group" -msgstr "Grupp" - -#: html/Admin/Elements/CustomFieldTabs:68 -#: html/Admin/Elements/GroupTabs:66 -#: html/Admin/Elements/QueueTabs:82 -#: html/Admin/Elements/SystemTabs:65 -#: html/Admin/Global/index.html:76 -msgid "Group Rights" -msgstr "Grupprättigheter" - -#: lib/RT/Group_Overlay.pm:983 -msgid "Group already has member" -msgstr "Grupp har redan medlem" - -#. ($create_msg) -#: html/Admin/Groups/Modify.html:109 -msgid "Group could not be created: %1" -msgstr "Grupp kan inte skapas: %1" - -#: lib/RT/Group_Overlay.pm:521 -msgid "Group created" -msgstr "Grupp har skapats" - -#: lib/RT/Group_Overlay.pm:1155 -msgid "Group has no such member" -msgstr "Grupp har ingen sÃ¥dan medlem" - -#: lib/RT/Group_Overlay.pm:963 -#: lib/RT/Queue_Overlay.pm:748 -#: lib/RT/Queue_Overlay.pm:808 -#: lib/RT/Ticket_Overlay.pm:1430 -#: lib/RT/Ticket_Overlay.pm:1510 -msgid "Group not found" -msgstr "Grupp ej funnen" - -#: html/Admin/Elements/GlobalCustomFieldTabs:59 -#: html/Admin/Elements/SelectNewGroupMembers:57 -#: html/Admin/Elements/Tabs:56 -#: html/Admin/Global/CustomFields/index.html:69 -#: html/Admin/Groups/Members.html:86 -#: html/Admin/Queues/People.html:104 -#: html/Admin/Users/Memberships.html:53 -#: html/Admin/index.html:67 -#: html/User/Groups/Members.html:88 -#: lib/RT/CustomField_Overlay.pm:1210 -msgid "Groups" -msgstr "Grupper" - -#: lib/RT/Group_Overlay.pm:989 -msgid "Groups can't be members of their members" -msgstr "Grupper kan inte vara medlemmar av sina medlemmar" - -#: html/Admin/Groups/index.html:86 -msgid "Groups matching search criteria" -msgstr "Grupper som matchar sökkriterium" - -#: html/Ticket/Elements/ShowRequestor:77 -msgid "Groups this user belongs to" -msgstr "Grupper som denna användare tillhör" - -#: lib/RT/Interface/CLI.pm:94 -msgid "Hello!" -msgstr "Hej!" - -#. ($name) -#: docs/design_docs/string-extraction-guide.txt:40 -#: lib/RT/StyleGuide.pod:773 -msgid "Hello, %1" -msgstr "Hej, %1" - -#: html/Admin/Elements/GroupTabs:70 -#: html/Admin/Elements/UserTabs:64 -#: html/Ticket/Elements/ShowHistory:53 -#: html/Ticket/Elements/Tabs:111 -msgid "History" -msgstr "Historik" - -#. ($GroupObj->Name) -#: html/Admin/Groups/History.html:62 -msgid "History of the group %1" -msgstr "Historik för gruppen %1" - -#. ($UserObj->Name) -#: html/Admin/Users/History.html:62 -msgid "History of the user %1" -msgstr "Historik för användaren %1" - -#: html/Elements/Tabs:65 -msgid "Homepage" -msgstr "Hemadress" - -#: html/Elements/SelectTimeUnits:48 -msgid "Hours" -msgstr "Timmar" - -#. (6) -#: lib/RT/Base.pm:119 -msgid "I have %quant(%1,concrete mixer)." -msgstr "Jag har %quant(%1,concrete mixer)." - -#: html/Search/Build.html:460 -#: lib/RT/Report/Tickets.pm:415 -msgid "I'm lost" -msgstr "Jag är vilse" - -#: html/Ticket/Elements/ShowBasics:48 -#: lib/RT/Tickets_Overlay.pm:1766 -msgid "Id" -msgstr "ID" - -#: html/Admin/Users/Modify.html:65 -#: html/User/Prefs.html:60 -msgid "Identity" -msgstr "Identitet" - -#: etc/initialdata:429 -msgid "If an approval is rejected, reject the original and delete pending approvals" -msgstr "Om ett godkännande avvisas, avvisa det ursprungliga och radera väntande godkännanden" - -#: html/Tools/Offline.html:74 -msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "Om ingen rekvirent har specificerats, skapa ärenden med denna rekvirent." - -#: html/Tools/Offline.html:65 -msgid "If no queue is specified, create tickets in this queue." -msgstr "Om ingen kö har specificerats, skapa ärenden i denna kö." - -#: bin/rt-crontool:267 -msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." -msgstr "Om detta verktyg var setgid, kunde en fientlig användare använda detta verktyg för att fÃ¥ administrativ tillgÃ¥ng till RT." - -#: html/Admin/Queues/People.html:126 -#: html/Ticket/Modify.html:60 -#: html/Ticket/ModifyAll.html:128 -#: html/Ticket/ModifyPeople.html:60 -msgid "If you've updated anything above, be sure to" -msgstr "Om du har uppdaterat nÃ¥gonting av ovanstÃ¥ende, se till att" - -#: lib/RT/Record.pm:947 -msgid "Illegal value for %1" -msgstr "Ogiltigt värde för %1" - -#: lib/RT/Record.pm:950 -msgid "Immutable field" -msgstr "Oföränderligt fält" - -#: html/Admin/Groups/index.html:65 -msgid "Include disabled groups in listing." -msgstr "Ta med deaktiverade grupper pÃ¥ lista." - -#: html/Admin/Queues/index.html:65 -msgid "Include disabled queues in listing." -msgstr "Ta med deaktiverade köer pÃ¥ lista." - -#: html/Admin/Users/index.html:71 -msgid "Include disabled users in search." -msgstr "Ta med deaktiverade användare pÃ¥ lista." - -#: html/Admin/CustomFields/Modify.html:113 -msgid "Include page" -msgstr "Inkludera sida" - -#: html/Search/Build.html:486 -#: lib/RT/Report/Tickets.pm:441 -msgid "Incomplete Query" -msgstr "Ofullständig sökning" - -#: html/Search/Build.html:483 -#: lib/RT/Report/Tickets.pm:438 -msgid "Incomplete query" -msgstr "Ofullständig sökning" - -#: html/Search/Elements/PickBasics:148 -#: lib/RT/Tickets_Overlay.pm:1816 -msgid "Initial Priority" -msgstr "Initiell prioritet" - -#: lib/RT/Ticket_Overlay.pm:1163 -#: lib/RT/Ticket_Overlay.pm:1165 -msgid "InitialPriority" -msgstr "InitiellPrioritet" - -#: lib/RT/ScripAction_Overlay.pm:133 -msgid "Input error" -msgstr "Inläsningsfel" - -#. ($CF->FriendlyPattern) -#. ($self->FriendlyPattern) -#: html/Elements/ValidateCustomFields:68 -#: lib/RT/CustomField_Overlay.pm:1021 -#: lib/RT/CustomField_Overlay.pm:1162 -msgid "Input must match %1" -msgstr "Inläsning mÃ¥ste matcha %1" - -#: lib/RT/Ticket_Overlay.pm:3503 -msgid "Internal Error" -msgstr "Internt fel" - -#. ($id->{error_message}) -#: lib/RT/Record.pm:308 -msgid "Internal Error: %1" -msgstr "Internt fel: %1" - -#: lib/RT/Group_Overlay.pm:668 -msgid "Invalid Group Type" -msgstr "Ogiltig grupptyp" - -#: lib/RT/Principal_Overlay.pm:161 -msgid "Invalid Right" -msgstr "Ogiltig rättighet" - -#: lib/RT/Record.pm:952 -msgid "Invalid data" -msgstr "Ogiltig data" - -#. ($msg) -#: lib/RT/CustomField_Overlay.pm:207 -#: lib/RT/CustomField_Overlay.pm:678 -msgid "Invalid pattern: %1" -msgstr "Ogiltigt mönster: %1" - -#: lib/RT/Scrip_Overlay.pm:157 -#: lib/RT/Template_Overlay.pm:244 -msgid "Invalid queue" -msgstr "Ogiltig kö" - -#: lib/RT/ACE_Overlay.pm:264 -#: lib/RT/ACE_Overlay.pm:273 -#: lib/RT/ACE_Overlay.pm:279 -#: lib/RT/ACE_Overlay.pm:290 -msgid "Invalid right" -msgstr "Ogiltig rättighet" - -#. ($key) -#: lib/RT/Record.pm:283 -msgid "Invalid value for %1" -msgstr "Ogiltigt värde för %1" - -#: lib/RT/Record.pm:1610 -msgid "Invalid value for custom field" -msgstr "Ogiltigt värde för extrafält" - -#: lib/RT/Ticket_Overlay.pm:424 -msgid "Invalid value for status" -msgstr "Ogiltigt värde för status" - -#: bin/rt-crontool:268 -msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." -msgstr "Det är oerhört viktigt att icke-privilegierade användare inte fÃ¥r lov att använda detta verktyg." - -#: bin/rt-crontool:269 -msgid "It is suggested that you create a non-privileged unix user with the correct group membership and RT access to run this tool." -msgstr "Det rekommenderas att du skapar en icke-privilegierad unix-användare med korrekt gruppmedlemskap och RT för att använda detta verktyg." - -#: bin/rt-crontool:231 -msgid "It takes several arguments:" -msgstr "Det krävs Ã¥tskilliga parametrar:" - -#: html/Search/Elements/EditFormat:85 -msgid "Italic" -msgstr "Kursiv" - -#: lib/RT/Date.pm:441 -msgid "Jan." -msgstr "Jan." - -#: lib/RT/Group_Overlay.pm:166 -msgid "Join or leave this group" -msgstr "GÃ¥ med i eller lämna denna grupp" - -#: lib/RT/Date.pm:447 -msgid "Jul." -msgstr "Juli" - -#: html/Ticket/Elements/Tabs:125 -msgid "Jumbo" -msgstr "Jumbo" - -#: lib/RT/Date.pm:446 -msgid "Jun." -msgstr "Juni" - -#: html/Admin/Users/Modify.html:94 -#: html/User/Prefs.html:76 -msgid "Language" -msgstr "SprÃ¥k" - -#: html/Search/Elements/EditFormat:79 -msgid "Large" -msgstr "Stor" - -#: html/Ticket/Elements/Tabs:96 -msgid "Last" -msgstr "Senaste" - -#: html/Ticket/Elements/EditDates:59 -#: html/Ticket/Elements/ShowDates:60 -msgid "Last Contact" -msgstr "Senaste kontakt" - -#: html/Elements/SelectDateType:50 -msgid "Last Contacted" -msgstr "Senast kontaktad" - -#: html/Elements/SelectDateType:51 -msgid "Last Updated" -msgstr "Senast uppdaterad" - -#: html/Search/Elements/PickBasics:103 -msgid "LastUpdatedBy" -msgstr "SenastUppdateradAv" - -#: html/Ticket/Elements/ShowBasics:68 -msgid "Left" -msgstr "Tillbaka" - -#: html/Admin/Users/Modify.html:109 -msgid "Let this user access RT" -msgstr "LÃ¥t denna användare fÃ¥ tillgÃ¥ng till RT" - -#: html/Admin/Users/Modify.html:113 -msgid "Let this user be granted rights" -msgstr "LÃ¥t denna användare fÃ¥ rättigheter" - -#: html/Search/Elements/EditFormat:68 -msgid "Link" -msgstr "Länk" - -#: lib/RT/Record.pm:1306 -msgid "Link already exists" -msgstr "Länk finns redan" - -#: lib/RT/Record.pm:1320 -msgid "Link could not be created" -msgstr "Länk kan inte skapas" - -#. ($TransString) -#: lib/RT/Record.pm:1326 -msgid "Link created (%1)" -msgstr "Länk har skapats (%1)" - -#. ($TransString) -#: lib/RT/Record.pm:1387 -msgid "Link deleted (%1)" -msgstr "Länk har raderats (%1)" - -#: lib/RT/Record.pm:1393 -msgid "Link not found" -msgstr "Länk ej funnen" - -#. ($Ticket->Id) -#: html/Ticket/ModifyLinks.html:46 -#: html/Ticket/ModifyLinks.html:50 -msgid "Link ticket #%1" -msgstr "Koppla ärende #%1" - -#: html/Admin/CustomFields/Modify.html:102 -msgid "Link values to" -msgstr "Koppla värden till" - -#: lib/RT/Ticket_Overlay.pm:700 -msgid "Linking. Permission denied" -msgstr "Koppling. TillgÃ¥ng nekas" - -#: html/Ticket/Create.html:216 -#: html/Ticket/Elements/ShowSummary:89 -#: html/Ticket/Elements/Tabs:120 -#: html/Ticket/ModifyAll.html:78 -msgid "Links" -msgstr "Länkar" - -#: html/Search/Elements/EditSearches:75 -msgid "Load" -msgstr "Läs in" - -#: html/Search/Elements/EditSearches:73 -msgid "Load saved search:" -msgstr "Läs in sparad sökning:" - -#: lib/RT/System.pm:86 -msgid "LoadSavedSearch" -msgstr "LäsinSparadSökning" - -#: html/Admin/Tools/Configuration.html:64 -msgid "Loaded perl modules" -msgstr "Inlästa Perl-moduler" - -#. ($self->Name) -#: lib/RT/SavedSearch.pm:111 -msgid "Loaded search %1" -msgstr "Inläst sökning %1" - -#: html/Admin/Users/Modify.html:138 -#: html/User/Prefs.html:126 -msgid "Location" -msgstr "Plats" - -#. ("<span>".$session{'CurrentUser'}->Name."</span>") -#: html/Elements/Header:91 -msgid "Logged in as %1" -msgstr "Inloggad som %1" - -#: docs/design_docs/string-extraction-guide.txt:71 -#: html/Elements/Login:100 -#: html/Elements/Login:68 -#: html/Elements/Login:84 -#: lib/RT/StyleGuide.pod:797 -msgid "Login" -msgstr "Logga in" - -#: html/Elements/Header:101 -msgid "Logout" -msgstr "Logga ut" - -#: lib/RT/CustomField_Overlay.pm:932 -msgid "Lookup type mismatch" -msgstr "Uppslagstyp matchar ej" - -#: html/Search/Bulk.html:82 -msgid "Make Owner" -msgstr "Sätt ägare" - -#: html/Search/Bulk.html:106 -msgid "Make Status" -msgstr "Sätt status" - -#: html/Search/Bulk.html:114 -msgid "Make date Due" -msgstr "Sätt förfallodatum" - -#: html/Search/Bulk.html:116 -msgid "Make date Resolved" -msgstr "Sätt lösningsdatum" - -#: html/Search/Bulk.html:110 -msgid "Make date Started" -msgstr "Sätt startdatum" - -#: html/Search/Bulk.html:108 -msgid "Make date Starts" -msgstr "Sätt datum startar" - -#: html/Search/Bulk.html:112 -msgid "Make date Told" -msgstr "Sätt datum uppgivet" - -#: html/Search/Bulk.html:102 -msgid "Make priority" -msgstr "Sätt prioritet" - -#: html/Search/Bulk.html:104 -msgid "Make queue" -msgstr "Sätt kö" - -#: html/Search/Bulk.html:100 -msgid "Make subject" -msgstr "Sätt ämne" - -#: lib/RT/Group_Overlay.pm:169 -msgid "Make this group visible to user" -msgstr "Gör denna grupp synlig för användare" - -#: html/Admin/index.html:78 -msgid "Manage custom fields and custom field values" -msgstr "Administrera extrafält och extrafältvärde" - -#: html/Admin/index.html:69 -msgid "Manage groups and group membership" -msgstr "Administrera grupper och gruppmedlemskap" - -#: html/Admin/index.html:85 -msgid "Manage properties and configuration which apply to all queues" -msgstr "Administrera egenskaper och konfiguration som gäller för alla köer" - -#: html/Admin/index.html:74 -msgid "Manage queues and queue-specific properties" -msgstr "Administrera köer och kö-specifika egenskaper" - -#: html/Admin/index.html:64 -msgid "Manage users and passwords" -msgstr "Administrera användare och lösenord" - -#: lib/RT/Date.pm:443 -msgid "Mar." -msgstr "Mars" - -#: lib/RT/Date.pm:445 -msgid "May." -msgstr "Maj" - -#. ($value) -#: lib/RT/Transaction_Overlay.pm:731 -msgid "Member %1 added" -msgstr "Medlem %1 tillagd" - -#. ($value) -#: lib/RT/Transaction_Overlay.pm:771 -msgid "Member %1 deleted" -msgstr "Medlem %1 raderad" - -#: lib/RT/Group_Overlay.pm:1000 -msgid "Member added" -msgstr "Medlem tillagd" - -#: lib/RT/Group_Overlay.pm:1162 -msgid "Member deleted" -msgstr "Medlem raderad" - -#: lib/RT/Group_Overlay.pm:1166 -msgid "Member not deleted" -msgstr "Medlem ej raderad" - -#: html/Elements/SelectLinkType:47 -msgid "Member of" -msgstr "Medlem av" - -#: html/Admin/Elements/GroupTabs:63 -#: html/User/Elements/GroupTabs:63 -msgid "Members" -msgstr "Medlemmar" - -#. ($value) -#: lib/RT/Transaction_Overlay.pm:728 -msgid "Membership in %1 added" -msgstr "Medlemskap i %1 tillagt" - -#. ($value) -#: lib/RT/Transaction_Overlay.pm:768 -msgid "Membership in %1 deleted" -msgstr "Medlemskap i %1 raderat" - -#: html/Admin/Elements/UserTabs:61 -msgid "Memberships" -msgstr "Medlemskap" - -#. ($UserObj->Name) -#: html/Admin/Users/Memberships.html:60 -msgid "Memberships of the user %1" -msgstr "Medlemskap för användaren %1" - -#: lib/RT/Ticket_Overlay.pm:2893 -msgid "Merge Successful" -msgstr "Sammanslagning lyckades" - -#: lib/RT/Ticket_Overlay.pm:2780 -msgid "Merge failed. Couldn't set EffectiveId" -msgstr "Sammanslagning misslyckades. Kunde inte sätta EffectiveId" - -#: lib/RT/Ticket_Overlay.pm:2788 -msgid "Merge failed. Couldn't set Status" -msgstr "Sammanslagning misslyckades. Kunde inte sätta status" - -#: html/Elements/EditLinks:131 -#: html/Ticket/Elements/BulkLinks:48 -msgid "Merge into" -msgstr "SlÃ¥ samman med" - -#. ($value) -#: lib/RT/Transaction_Overlay.pm:734 -msgid "Merged into %1" -msgstr "Sammanslagen med %1" - -#: html/Search/Bulk.html:143 -#: html/Ticket/Update.html:118 -msgid "Message" -msgstr "Meddelande" - -#: html/Ticket/Elements/ShowTransactionAttachments:164 -msgid "Message body not shown because it is too large or is not plain text." -msgstr "Meddelande visades inte eftersom det är för omfÃ¥ngsrikt eller bestÃ¥r av annat än vanlig text." - -#: lib/RT/Ticket_Overlay.pm:2451 -msgid "Message could not be recorded" -msgstr "Meddelande sparades inte" - -#: lib/RT/Ticket_Overlay.pm:2454 -msgid "Message recorded" -msgstr "Meddelande sparat" - -#: html/Ticket/Elements/PreviewScrips:122 -msgid "Messages about this ticket will not be sent to..." -msgstr "Meddelande om detta ärende kommer inte att skickas till..." - -#: html/Elements/SelectTimeUnits:47 -msgid "Minutes" -msgstr "Minuter" - -#: html/Search/Build.html:490 -#: lib/RT/Report/Tickets.pm:445 -msgid "Mismatched parentheses" -msgstr "Icke-matchande paranteser" - -#: lib/RT/Record.pm:954 -msgid "Missing a primary key?: %1" -msgstr "Saknas en primärnyckel?: %1" - -#: html/Admin/Users/Modify.html:193 -#: html/User/Prefs.html:92 -msgid "Mobile" -msgstr "Mobil" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "Modify Access Control List" -msgstr "Modifiera TillgÃ¥ngskontrollista" - -#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) -#: html/Admin/Elements/ObjectCustomFields:96 -msgid "Modify Custom Fields which apply to %1 for all %2" -msgstr "Modifiera extrafält som gäller för %1 för alla %2" - -#. (loc(lc($Types))) -#: html/Admin/Elements/ObjectCustomFields:98 -msgid "Modify Custom Fields which apply to all %1" -msgstr "Modifiera extrafält som gäller för alla %1" - -#: html/Admin/Global/GroupRights.html:106 -#: html/Admin/Groups/GroupRights.html:94 -#: html/Admin/Queues/GroupRights.html:107 -msgid "Modify Group Rights" -msgstr "Modifiera grupprättigheter" - -#: html/Admin/Groups/Members.html:105 -#: html/User/Groups/Members.html:101 -msgid "Modify Members" -msgstr "Modifiera medlemmar" - -#: html/User/Delegation.html:58 -msgid "Modify Rights" -msgstr "Modifiera rättigheter" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "Modify Scrip templates for this queue" -msgstr "Modifiera scrip-mallar för denna kö" - -#: lib/RT/Queue_Overlay.pm:100 -msgid "Modify Scrips for this queue" -msgstr "Modifiera scrips för denna kö" - -#: html/Admin/Global/UserRights.html:75 -#: html/Admin/Groups/UserRights.html:76 -#: html/Admin/Queues/UserRights.html:75 -msgid "Modify User Rights" -msgstr "Modifiera användarrättigheter" - -#. ($QueueObj->Name()) -#: html/Admin/Queues/CustomField.html:66 -msgid "Modify a CustomField for queue %1" -msgstr "Modifiera ett extrafält för kö %1" - -#. ($QueueObj->Name) -#: html/Admin/Queues/Scrip.html:82 -msgid "Modify a scrip for queue %1" -msgstr "Modifiera ett scrip för kö %1" - -#: html/Admin/Global/Scrip.html:75 -msgid "Modify a scrip which applies to all queues" -msgstr "Modifiera ett scrip som gäller för alla köer" - -#. ($CF->Name) -#: html/Admin/CustomFields/Objects.html:90 -msgid "Modify associated objects for %1" -msgstr "Modifiera objekt associerade med %1" - -#. ($TicketObj->Id) -#: html/Ticket/ModifyDates.html:46 -#: html/Ticket/ModifyDates.html:50 -msgid "Modify dates for #%1" -msgstr "Modifiera datum för #%1" - -#. ($TicketObj->Id) -#: html/Ticket/ModifyDates.html:57 -msgid "Modify dates for ticket # %1" -msgstr "Modifiera datum för ärende # %1" - -#: html/Admin/Elements/GlobalCustomFieldTabs:65 -#: html/Admin/Global/index.html:72 -msgid "Modify global custom fields" -msgstr "Modifiera globala extrafält" - -#: html/Admin/Elements/GlobalCustomFieldTabs:70 -#: html/Admin/Global/GroupRights.html:46 -#: html/Admin/Global/GroupRights.html:49 -#: html/Admin/Global/index.html:77 -msgid "Modify global group rights" -msgstr "Modifiera globala grupprättigheter" - -#: html/Admin/Global/GroupRights.html:54 -msgid "Modify global group rights." -msgstr "Modifiera globala grupprättigheter." - -#: html/Admin/Global/UserRights.html:46 -#: html/Admin/Global/UserRights.html:49 -#: html/Admin/Global/index.html:81 -msgid "Modify global user rights" -msgstr "Modifiera globala användarrättigheter" - -#: html/Admin/Global/UserRights.html:54 -msgid "Modify global user rights." -msgstr "Modifiera globala användarrättigheter." - -#: lib/RT/Group_Overlay.pm:163 -msgid "Modify group metadata or delete group" -msgstr "Modifiera gruppmetadata eller radera grupp" - -#. ($CustomFieldObj->Name) -#: html/Admin/CustomFields/GroupRights.html:164 -msgid "Modify group rights for custom field %1" -msgstr "Modifiera grupprättigheter för extrafält %1" - -#. ($GroupObj->Name) -#: html/Admin/Groups/GroupRights.html:46 -#: html/Admin/Groups/GroupRights.html:50 -#: html/Admin/Groups/GroupRights.html:56 -msgid "Modify group rights for group %1" -msgstr "Modifiera grupprättigheter för grupp %1" - -#. ($QueueObj->Name) -#: html/Admin/Queues/GroupRights.html:46 -#: html/Admin/Queues/GroupRights.html:50 -msgid "Modify group rights for queue %1" -msgstr "Modifiera grupprättigheter för kö %1" - -#: lib/RT/Group_Overlay.pm:165 -msgid "Modify membership roster for this group" -msgstr "Modifiera medlemskapslista för denna grupp" - -#: lib/RT/System.pm:82 -msgid "Modify one's own RT account" -msgstr "Modifiera ens eget RT-konto" - -#. ($QueueObj->Name) -#: html/Admin/Queues/People.html:46 -#: html/Admin/Queues/People.html:50 -msgid "Modify people related to queue %1" -msgstr "Modifiera personer relaterade till kö %1" - -#. ($Ticket->id) -#. ($Ticket->Id) -#: html/Ticket/ModifyPeople.html:46 -#: html/Ticket/ModifyPeople.html:50 -#: html/Ticket/ModifyPeople.html:57 -msgid "Modify people related to ticket #%1" -msgstr "Modifiera personer relaterade till ärende #%1" - -#. ($QueueObj->Name) -#: html/Admin/Queues/Scrips.html:67 -msgid "Modify scrips for queue %1" -msgstr "Modifiera scrips för kö %1" - -#: html/Admin/Elements/GlobalCustomFieldTabs:56 -#: html/Admin/Global/Scrips.html:65 -#: html/Admin/Global/index.html:63 -msgid "Modify scrips which apply to all queues" -msgstr "Modifiera scrips som gäller för alla köer" - -#. (loc($TemplateObj->Name())) -#. ($TemplateObj->id) -#: html/Admin/Global/Template.html:102 -#: html/Admin/Global/Template.html:46 -#: html/Admin/Global/Template.html:51 -#: html/Admin/Queues/Template.html:99 -msgid "Modify template %1" -msgstr "Modifiera mall %1" - -#: html/Admin/Global/Templates.html:65 -msgid "Modify templates which apply to all queues" -msgstr "Modifiera mallar som gäller för alla köer" - -#: html/Admin/Global/index.html:85 -msgid "Modify the default \"RT at a glance\" view" -msgstr "Modifiera default \"RT snabbtitt\" -visningen" - -#. ($Group->Name) -#: html/Admin/Groups/Modify.html:119 -#: html/User/Groups/Modify.html:107 -msgid "Modify the group %1" -msgstr "Modifiera gruppen %1" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "Modify the queue watchers" -msgstr "Modifiera kö-observatörerna" - -#. ($UserObj->Name) -#: html/Admin/Users/Modify.html:309 -msgid "Modify the user %1" -msgstr "Modifiera användaren %1" - -#. ($Ticket->Id) -#: html/Ticket/ModifyAll.html:58 -msgid "Modify ticket # %1" -msgstr "Modifiera ärende # %1" - -#. ($TicketObj->Id) -#: html/Ticket/Modify.html:46 -#: html/Ticket/Modify.html:49 -#: html/Ticket/Modify.html:55 -msgid "Modify ticket #%1" -msgstr "Modifiera ärende #%1" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "Modify tickets" -msgstr "Modifiera ärende" - -#. ($CustomFieldObj->Name) -#: html/Admin/CustomFields/UserRights.html:157 -msgid "Modify user rights for custom field %1" -msgstr "Modifiera användarrättigheter för extrafält %1" - -#. ($GroupObj->Name) -#: html/Admin/Groups/UserRights.html:46 -#: html/Admin/Groups/UserRights.html:50 -#: html/Admin/Groups/UserRights.html:56 -msgid "Modify user rights for group %1" -msgstr "Modifiera användarrättigheter för grupp %1" - -#. ($QueueObj->Name) -#: html/Admin/Queues/UserRights.html:46 -#: html/Admin/Queues/UserRights.html:50 -msgid "Modify user rights for queue %1" -msgstr "Modifiera användarrättigheter för kö %1" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "ModifyACL" -msgstr "ModifieraACL" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "ModifyCustomField" -msgstr "ModifieraExtraFält" - -#: lib/RT/Group_Overlay.pm:166 -msgid "ModifyOwnMembership" -msgstr "ModifieraEgetMedlemskap" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "ModifyQueueWatchers" -msgstr "ModifieraKöObservatörer" - -#: lib/RT/Queue_Overlay.pm:100 -msgid "ModifyScrips" -msgstr "ModifieraScrips" - -#: lib/RT/System.pm:82 -msgid "ModifySelf" -msgstr "ModifieraSjälv" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "ModifyTemplate" -msgstr "ModifieraMall" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "ModifyTicket" -msgstr "ModifieraÄrende" - -#: lib/RT/Date.pm:417 -msgid "Mon." -msgstr "MÃ¥n." - -#. ($name) -#: html/Ticket/Elements/ShowRequestor:61 -msgid "More about %1" -msgstr "Mer om %1" - -#: html/Admin/Elements/PickCustomFields:83 -msgid "Move down" -msgstr "Flytta ner" - -#: html/Admin/Elements/PickCustomFields:75 -msgid "Move up" -msgstr "Flytta upp" - -#: html/Admin/Elements/SelectSingleOrMultiple:48 -msgid "Multiple" -msgstr "Flera" - -#: lib/RT/User_Overlay.pm:226 -msgid "Must specify 'Name' attribute" -msgstr "'Namn'-attribut mÃ¥ste specificeras" - -#. ($friendly_status) -#: html/SelfService/Elements/MyRequests:57 -msgid "My %1 tickets" -msgstr "Mina %1 ärenden" - -#: html/Tools/Elements/Tabs:63 -msgid "My Day" -msgstr "Min dag" - -#: html/Approvals/index.html:46 -#: html/Approvals/index.html:47 -msgid "My approvals" -msgstr "Mina godkännanden" - -#: html/Search/Elements/SearchPrivacy:50 -#: html/Search/Elements/SelectSearchObject:53 -#: html/Search/Elements/SelectSearchesForObjects:54 -msgid "My saved searches" -msgstr "Mina sparade sökningar" - -#: html/Admin/CustomFields/Modify.html:58 -#: html/Admin/Elements/AddCustomFieldValue:53 -#: html/Admin/Elements/EditCustomField:55 -#: html/Admin/Elements/EditCustomFieldValues:55 -#: html/Admin/Elements/ModifyTemplate:49 -#: html/Admin/Groups/Modify.html:65 -#: html/Search/Bulk.html:157 -#: html/User/Groups/Modify.html:65 -msgid "Name" -msgstr "Namn" - -#: lib/RT/User_Overlay.pm:233 -msgid "Name in use" -msgstr "Namn som används" - -#: html/Ticket/Elements/ShowDates:73 -msgid "Never" -msgstr "Aldrig" - -#: html/Elements/EditLinks:117 -msgid "New Links" -msgstr "Nya länkar" - -#: html/Admin/Users/Modify.html:119 -#: html/User/Prefs.html:109 -msgid "New Password" -msgstr "Nytt lösenord" - -#: etc/initialdata:332 -msgid "New Pending Approval" -msgstr "Nytt väntande godkännande" - -#: html/Ticket/Elements/Tabs:212 -msgid "New Search" -msgstr "Ny sökning" - -#: html/Admin/Elements/CustomFieldTabs:93 -#: html/Admin/Queues/CustomField.html:73 -msgid "New custom field" -msgstr "Nytt extrafält" - -#: html/Admin/Elements/GroupTabs:77 -#: html/User/Elements/GroupTabs:73 -msgid "New group" -msgstr "Ny grupp" - -#: html/SelfService/Prefs.html:53 -msgid "New password" -msgstr "Nytt lösenord" - -#: lib/RT/User_Overlay.pm:816 -msgid "New password notification sent" -msgstr "Nytt lösenordmeddelande skickat" - -#: html/Admin/Elements/QueueTabs:95 -msgid "New queue" -msgstr "Ny kö" - -#: html/Ticket/Elements/Reminders:118 -msgid "New reminder:" -msgstr "Ny pÃ¥minnelse:" - -#: html/Admin/Elements/SelectRights:65 -msgid "New rights" -msgstr "Nya rättigheter" - -#: html/Admin/Global/Scrip.html:63 -#: html/Admin/Global/Scrips.html:60 -#: html/Admin/Queues/Scrip.html:71 -#: html/Admin/Queues/Scrips.html:76 -msgid "New scrip" -msgstr "Nytt scrip" - -#: html/Admin/Global/Template.html:81 -#: html/Admin/Global/Templates.html:60 -#: html/Admin/Queues/Template.html:79 -#: html/Admin/Queues/Templates.html:71 -msgid "New template" -msgstr "Ny mall" - -#: html/SelfService/Elements/Tabs:84 -#: html/SelfService/Elements/Tabs:88 -msgid "New ticket" -msgstr "Nytt ärende" - -#: lib/RT/Ticket_Overlay.pm:2757 -msgid "New ticket doesn't exist" -msgstr "Nytt ärende finns ej" - -#: html/Admin/Elements/UserTabs:81 -msgid "New user" -msgstr "Ny användare" - -#: html/Admin/Elements/CreateUserCalled:47 -msgid "New user called" -msgstr "Ny användare anropad" - -#: html/Admin/Queues/People.html:76 -#: html/Ticket/Elements/EditPeople:50 -msgid "New watchers" -msgstr "Nya observatörer" - -#: html/Helpers/CalPopup.html:58 -#: html/Ticket/Elements/Tabs:92 -msgid "Next" -msgstr "Nästa" - -#: html/Elements/TicketList:104 -msgid "Next Page" -msgstr "Nästa sida" - -#: html/Admin/Users/Modify.html:84 -#: html/User/Prefs.html:72 -msgid "Nickname" -msgstr "Smeknamn" - -#: html/Admin/CustomFields/UserRights.html:145 -msgid "No Class defined" -msgstr "Ingen klass definierad" - -#: html/Admin/CustomFields/Modify.html:166 -#: html/Admin/Elements/EditCustomField:119 -msgid "No CustomField" -msgstr "Inget extrafält" - -#: html/Admin/CustomFields/GroupRights.html:103 -msgid "No CustomField defined" -msgstr "Inget extrafält definierat" - -#: html/Admin/Groups/GroupRights.html:105 -#: html/Admin/Groups/UserRights.html:92 -msgid "No Group defined" -msgstr "Ingen grupp definierad" - -#: lib/RT/Tickets_Overlay_SQL.pm:482 -msgid "No Query" -msgstr "Ingen söksträng" - -#: html/Admin/Queues/GroupRights.html:118 -#: html/Admin/Queues/UserRights.html:89 -msgid "No Queue defined" -msgstr "Ingen kö definierad" - -#: bin/rt-crontool:73 -msgid "No RT user found. Please consult your RT administrator.\\n" -msgstr "Ingen RT-användare funnen. Var god kontakta din RT administratör.\\n" - -#: html/Admin/Global/Template.html:100 -#: html/Admin/Queues/Template.html:97 -msgid "No Template" -msgstr "Ingen mall" - -#: html/Approvals/Elements/Approve:77 -msgid "No action" -msgstr "Ingen handling" - -#: lib/RT/Record.pm:949 -msgid "No column specified" -msgstr "Ingen kolumn specificerad" - -#: html/Ticket/Elements/ShowRequestor:68 -msgid "No comment entered about this user" -msgstr "Ingen kommentar inmatad om denna användare" - -#. (ref $self) -#: lib/RT/Action/Generic.pm:185 -#: lib/RT/Condition/Generic.pm:197 -#: lib/RT/Search/ActiveTicketsInQueue.pm:77 -#: lib/RT/Search/Generic.pm:134 -#: lib/RT/Search/Googleish.pm:78 -msgid "No description for %1" -msgstr "Ingen beskrivning för %1" - -#: lib/RT/Users_Overlay.pm:190 -msgid "No group specified" -msgstr "Ingen grupp specificerad" - -#: html/Admin/Groups/index.html:52 -msgid "No groups matching search criteria found." -msgstr "Det hittades inga grupper som matchar sökkriterierna." - -#: lib/RT/Ticket_Overlay.pm:2393 -msgid "No message attached" -msgstr "Inget bifogat meddelande" - -#: lib/RT/User_Overlay.pm:1034 -msgid "No password set" -msgstr "Inget lösenord satt" - -#: lib/RT/Queue_Overlay.pm:361 -msgid "No permission to create queues" -msgstr "Ingen tillÃ¥telse att skapa köer" - -#. ($QueueObj->Name) -#: lib/RT/Ticket_Overlay.pm:420 -msgid "No permission to create tickets in the queue '%1'" -msgstr "Ingen tillÃ¥telse att skapa ärenden i kö '%1'" - -#: lib/RT/User_Overlay.pm:186 -msgid "No permission to create users" -msgstr "Ingen tillÃ¥telse att skapa användare" - -#: html/SelfService/Display.html:167 -msgid "No permission to display that ticket" -msgstr "Ingen tillÃ¥telse att visa det ärendet" - -#: lib/RT/SavedSearch.pm:156 -msgid "No permission to save system-wide searches" -msgstr "Ingen tillÃ¥telse att spara systemomfattande sökningar" - -#: html/SelfService/Update.html:117 -msgid "No permission to view update ticket" -msgstr "Ingen tillÃ¥telse att visa uppdatera ärende" - -#: lib/RT/Queue_Overlay.pm:795 -#: lib/RT/Ticket_Overlay.pm:1489 -msgid "No principal specified" -msgstr "Ingen principal specificerad" - -#: html/Admin/Queues/People.html:175 -#: html/Admin/Queues/People.html:185 -msgid "No principals selected." -msgstr "Inga principaler valda." - -#: html/Admin/Queues/index.html:57 -msgid "No queues matching search criteria found." -msgstr "Det hittades inga köer som matchar sökkriterium." - -#: html/Admin/Elements/SelectRights:106 -msgid "No rights found" -msgstr "Inga rättigheter funna" - -#: html/Admin/Elements/SelectRights:53 -msgid "No rights granted." -msgstr "Inga rättigheter tilldelade." - -#: lib/RT/SavedSearch.pm:196 -msgid "No search loaded" -msgstr "Ingen sökning inmatad" - -#: html/Search/Bulk.html:232 -msgid "No search to operate on." -msgstr "Ingen sökning att arbeta med." - -#: html/Elements/RT__Ticket/ColumnMap:137 -#: html/Search/Results.rdf:78 -msgid "No subject" -msgstr "Inget ämne" - -#: lib/RT/Transaction_Overlay.pm:528 -#: lib/RT/Transaction_Overlay.pm:565 -msgid "No transaction type specified" -msgstr "Ingen transaktionstyp specificerad" - -#: html/Admin/Users/index.html:55 -msgid "No users matching search criteria found." -msgstr "Det hittades inga användare som matchar sökkriterium." - -#: lib/RT/Record.pm:946 -msgid "No value sent to _Set!\\n" -msgstr "Det skickades inget värde till _Set!\\n" - -#: html/Elements/QuickCreate:59 -msgid "Nobody" -msgstr "Ingen" - -#: lib/RT/Record.pm:951 -msgid "Nonexistant field?" -msgstr "Icke-existerande fält?" - -#: html/Search/Chart:71 -#: html/Search/Elements/Chart:88 -msgid "Not Set" -msgstr "Ej inställd" - -#: html/Elements/Header:96 -msgid "Not logged in." -msgstr "Ej inloggad." - -#: lib/RT/Date.pm:397 -msgid "Not set" -msgstr "Ej inställd" - -#: html/NoAuth/Reminder.html:48 -msgid "Not yet implemented." -msgstr "Har ännu inte implementerats." - -#: html/Approvals/Elements/Approve:81 -msgid "Notes" -msgstr "Anteckningar" - -#: lib/RT/User_Overlay.pm:819 -msgid "Notification could not be sent" -msgstr "Meddelande kunde inte skickas" - -#: etc/initialdata:101 -msgid "Notify AdminCcs" -msgstr "Meddela Admin.kopia-mottagare" - -#: etc/initialdata:97 -msgid "Notify AdminCcs as Comment" -msgstr "Meddela Admin.kopia-mottagare som kommentar" - -#: etc/initialdata:93 -#: etc/upgrade/3.1.17/content:6 -msgid "Notify Ccs" -msgstr "Meddela kopia-mottagare" - -#: etc/initialdata:89 -#: etc/upgrade/3.1.17/content:2 -msgid "Notify Ccs as Comment" -msgstr "Meddela kopia-mottagare som kommentar" - -#: etc/initialdata:128 -msgid "Notify Other Recipients" -msgstr "Meddela andra mottagare" - -#: etc/initialdata:124 -msgid "Notify Other Recipients as Comment" -msgstr "Meddela andra mottagare som kommentar" - -#: etc/initialdata:85 -msgid "Notify Owner" -msgstr "Meddela ägare" - -#: etc/initialdata:81 -msgid "Notify Owner as Comment" -msgstr "Meddela ägare som kommentar" - -#: etc/initialdata:376 -msgid "Notify Owner of their rejected ticket" -msgstr "Meddela ägare om dess avvisade ärende" - -#: etc/initialdata:365 -msgid "Notify Owner of their ticket has been approved by all approvers" -msgstr "Meddela ägare om dess ärende har godkänts av alla godkännare" - -#: etc/initialdata:353 -msgid "Notify Owner of their ticket has been approved by some approver" -msgstr "Meddela ägare om dess ärende har godkänts av nÃ¥gon godkännare" - -#: etc/initialdata:334 -msgid "Notify Owners and AdminCcs of new items pending their approval" -msgstr "Meddela ägare och Admin.kopia-mottagare om nya ämnen väntar pÃ¥ deras godkännande" - -#: etc/initialdata:77 -msgid "Notify Requestors" -msgstr "Meddela rekvirenter" - -#: etc/initialdata:111 -msgid "Notify Requestors and Ccs" -msgstr "Meddela rekvirenter och kopia-mottagare" - -#: etc/initialdata:106 -msgid "Notify Requestors and Ccs as Comment" -msgstr "Meddela rekvirenter och kopia-mottagare som kommentar" - -#: etc/initialdata:120 -msgid "Notify Requestors, Ccs and AdminCcs" -msgstr "Meddela rekvirenter, kopia-mottagare och Admin.kopia-mottagare" - -#: etc/initialdata:116 -msgid "Notify Requestors, Ccs and AdminCcs as Comment" -msgstr "Meddela rekvirenter, kopia-mottagare och Admin.kopia-mottagare som kommentar" - -#: lib/RT/Date.pm:451 -msgid "Nov." -msgstr "Nov." - -#: html/Search/Elements/SelectAndOr:47 -msgid "OR" -msgstr "ELLER" - -#: lib/RT/Record.pm:322 -msgid "Object could not be created" -msgstr "Objekt kan ej skapas" - -#: lib/RT/Record.pm:123 -msgid "Object could not be deleted" -msgstr "Objekt kan ej raderas" - -#: lib/RT/Record.pm:341 -msgid "Object created" -msgstr "Objekt har skapats" - -#: lib/RT/Record.pm:120 -msgid "Object deleted" -msgstr "Objekt har raderats" - -#. ($LookupType) -#. ($ObjectType) -#: html/Admin/CustomFields/Objects.html:72 -#: html/Admin/Elements/ObjectCustomFields:63 -msgid "Object of type %1 cannot take custom fields" -msgstr "Objekt av typen %1 kan inte hantera extrafält" - -#: lib/RT/CustomField_Overlay.pm:967 -msgid "Object type mismatch" -msgstr "ObjekttypmissförhÃ¥llande" - -#: lib/RT/Date.pm:450 -msgid "Oct." -msgstr "Okt." - -#: html/Tools/Elements/Tabs:55 -msgid "Offline" -msgstr "Offline" - -#: html/Tools/Offline.html:49 -msgid "Offline edits" -msgstr "Offline-redigeringar" - -#: html/Tools/Offline.html:46 -msgid "Offline upload" -msgstr "Offline upload" - -#: html/Elements/SelectDateRelation:56 -msgid "On" -msgstr "Vid" - -#. ($self->CreatedAsString(), $self->CreatorObj->Name()) -#: lib/RT/Transaction_Overlay.pm:326 -msgid "On %1, %2 wrote:" -msgstr "Vid %1, skrev %2:" - -#: etc/initialdata:163 -msgid "On Comment" -msgstr "Vid kommentar" - -#: etc/initialdata:156 -msgid "On Correspond" -msgstr "Vid korrespondens" - -#: etc/initialdata:145 -msgid "On Create" -msgstr "Vid skapande" - -#: etc/initialdata:184 -msgid "On Owner Change" -msgstr "Vid ägarbyte" - -#: etc/initialdata:177 -#: etc/upgrade/3.1.17/content:15 -msgid "On Priority Change" -msgstr "Vid prioritetsändring" - -#: etc/initialdata:192 -msgid "On Queue Change" -msgstr "Vid köbyte" - -#: etc/initialdata:198 -msgid "On Resolve" -msgstr "Vid lösning" - -#: etc/initialdata:169 -msgid "On Status Change" -msgstr "Vid statusändring" - -#: etc/initialdata:150 -msgid "On Transaction" -msgstr "Vid transaktion" - -#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter' id='CreatedAfter' />") -#: html/Approvals/Elements/PendingMyApproval:70 -msgid "Only show approvals for requests created after %1" -msgstr "Visa endast godkännanden för förfrÃ¥gningar som skapats efter %1" - -#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore' id='CreatedBefore' />") -#: html/Approvals/Elements/PendingMyApproval:68 -msgid "Only show approvals for requests created before %1" -msgstr "Visa endast godkännanden för förfrÃ¥gningar som skapats före %1" - -#: html/Admin/CustomFields/index.html:75 -msgid "Only show custom fields for:" -msgstr "Visa endast extrafält för:" - -#: html/SelfService/index.html:46 -msgid "Open Tickets" -msgstr "Öppna ärenden" - -#: html/Ticket/Elements/Tabs:160 -msgid "Open it" -msgstr "Öppna den" - -#: html/SelfService/Elements/Tabs:75 -msgid "Open tickets" -msgstr "Öppna ärenden" - -#: etc/initialdata:140 -msgid "Open tickets on correspondence" -msgstr "Öppna ärenden vid korrespondens" - -#: html/Prefs/MyRT.html:70 -msgid "Options" -msgstr "Alternativ" - -#: html/Search/Elements/DisplayOptions:59 -msgid "Order by" -msgstr "Sortera efter" - -#: html/Admin/Users/Modify.html:141 -#: html/User/Prefs.html:129 -msgid "Organization" -msgstr "Organisation" - -#. ($approving->Id, $approving->Subject) -#: html/Approvals/Elements/Approve:53 -msgid "Originating ticket: #%1" -msgstr "Ursprungligt ärende: #%1" - -#: lib/RT/Transaction_Overlay.pm:622 -msgid "Outgoing email about a comment recorded" -msgstr "UtgÃ¥ende e-postmeddelande om en kommentar har sparats" - -#: lib/RT/Transaction_Overlay.pm:626 -msgid "Outgoing email recorded" -msgstr "UtgÃ¥ende e-postmeddelande har sparats" - -#: html/Admin/Queues/Modify.html:90 -msgid "Over time, priority moves toward" -msgstr "Tiden överskriden, prioritet rör sig mot" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "Own tickets" -msgstr "Egna ärenden" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "OwnTicket" -msgstr "EgetÄrende" - -#: etc/initialdata:38 -#: html/Elements/QuickCreate:56 -#: html/Search/Elements/PickBasics:101 -#: html/Ticket/Create.html:72 -#: html/Ticket/Elements/EditBasics:61 -#: html/Ticket/Elements/EditPeople:64 -#: html/Ticket/Elements/EditPeople:65 -#: html/Ticket/Elements/Reminders:129 -#: html/Ticket/Elements/ShowPeople:48 -#: html/Ticket/Update.html:62 -#: lib/RT/ACE_Overlay.pm:110 -#: lib/RT/Tickets_Overlay.pm:2006 -msgid "Owner" -msgstr "Ägare" - -#: lib/RT/Ticket_Overlay.pm:505 -msgid "Owner could not be set." -msgstr "Ägare kan inte sättas." - -#. ($Old->Name , $New->Name) -#: lib/RT/Transaction_Overlay.pm:672 -msgid "Owner forcibly changed from %1 to %2" -msgstr "Ägare har godtyckligt ändrats frÃ¥n %1 till %2" - -#. ($Page, int($TotalFound/$Rows)+$oddRows) -#: html/Elements/TicketList:78 -msgid "Page %1 of %2" -msgstr "Sida %1 av %2" - -#: html/Admin/Users/Modify.html:198 -#: html/User/Prefs.html:96 -msgid "Pager" -msgstr "Personsökare" - -#: html/Elements/EditLinks:144 -#: html/Elements/EditLinks:76 -#: html/Elements/ShowLinks:68 -#: html/Ticket/Create.html:222 -#: html/Ticket/Elements/BulkLinks:60 -msgid "Parents" -msgstr "Föräldrar" - -#: html/Elements/Login:95 -#: html/User/Prefs.html:105 -msgid "Password" -msgstr "Lösenord" - -#: html/NoAuth/Reminder.html:46 -msgid "Password Reminder" -msgstr "LösenordpÃ¥minnelse" - -#: lib/RT/Transaction_Overlay.pm:781 -#: lib/RT/User_Overlay.pm:1045 -msgid "Password changed" -msgstr "Lösenord ändrat" - -#. ($RT::MinimumPasswordLength) -#: lib/RT/User_Overlay.pm:1037 -#: lib/RT/User_Overlay.pm:214 -msgid "Password needs to be at least %1 characters long" -msgstr "Lösenord mÃ¥ste vara minst %1 tecken lÃ¥ngt" - -#: lib/RT/User_Overlay.pm:1044 -msgid "Password set" -msgstr "Lösenord har satts" - -#. (loc_fuzzy($msg)) -#: html/User/Prefs.html:240 -msgid "Password: %1" -msgstr "Lösenord: %1" - -#: lib/RT/User_Overlay.pm:1030 -msgid "Password: Permission Denied" -msgstr "Lösenord: TillgÃ¥ng nekas" - -#: html/Admin/Users/Modify.html:364 -msgid "Passwords do not match." -msgstr "Lösenord stämmer inte överens." - -#: html/User/Prefs.html:242 -msgid "Passwords do not match. Your password has not been changed" -msgstr "Lösenord stämmer inte överens. Ditt lösenord har inte ändrats" - -#: html/Ticket/Elements/ShowSummary:62 -#: html/Ticket/Elements/Tabs:119 -#: html/Ticket/ModifyAll.html:72 -msgid "People" -msgstr "Personer" - -#: etc/initialdata:133 -msgid "Perform a user-defined action" -msgstr "Genomför en användardefinierad handling" - -#: html/Admin/Tools/Configuration.html:94 -msgid "Perl configuration" -msgstr "Perl-konfiguration" - -#: lib/RT/ACE_Overlay.pm:251 -#: lib/RT/ACE_Overlay.pm:257 -#: lib/RT/ACE_Overlay.pm:580 -#: lib/RT/ACE_Overlay.pm:590 -#: lib/RT/ACE_Overlay.pm:600 -#: lib/RT/ACE_Overlay.pm:665 -#: lib/RT/Attribute_Overlay.pm:158 -#: lib/RT/Attribute_Overlay.pm:164 -#: lib/RT/Attribute_Overlay.pm:405 -#: lib/RT/Attribute_Overlay.pm:414 -#: lib/RT/Attribute_Overlay.pm:427 -#: lib/RT/CurrentUser.pm:116 -#: lib/RT/CurrentUser.pm:125 -#: lib/RT/CustomField_Overlay.pm:1017 -#: lib/RT/CustomField_Overlay.pm:1138 -#: lib/RT/CustomField_Overlay.pm:1281 -#: lib/RT/CustomField_Overlay.pm:172 -#: lib/RT/CustomField_Overlay.pm:189 -#: lib/RT/CustomField_Overlay.pm:200 -#: lib/RT/CustomField_Overlay.pm:374 -#: lib/RT/CustomField_Overlay.pm:403 -#: lib/RT/CustomField_Overlay.pm:763 -#: lib/RT/CustomField_Overlay.pm:936 -#: lib/RT/CustomField_Overlay.pm:971 -#: lib/RT/Group_Overlay.pm:1117 -#: lib/RT/Group_Overlay.pm:1121 -#: lib/RT/Group_Overlay.pm:1130 -#: lib/RT/Group_Overlay.pm:1240 -#: lib/RT/Group_Overlay.pm:1244 -#: lib/RT/Group_Overlay.pm:1250 -#: lib/RT/Group_Overlay.pm:445 -#: lib/RT/Group_Overlay.pm:542 -#: lib/RT/Group_Overlay.pm:620 -#: lib/RT/Group_Overlay.pm:628 -#: lib/RT/Group_Overlay.pm:726 -#: lib/RT/Group_Overlay.pm:730 -#: lib/RT/Group_Overlay.pm:736 -#: lib/RT/Group_Overlay.pm:922 -#: lib/RT/Group_Overlay.pm:926 -#: lib/RT/Group_Overlay.pm:939 -#: lib/RT/Queue_Overlay.pm:1054 -#: lib/RT/Queue_Overlay.pm:140 -#: lib/RT/Queue_Overlay.pm:158 -#: lib/RT/Queue_Overlay.pm:657 -#: lib/RT/Queue_Overlay.pm:667 -#: lib/RT/Queue_Overlay.pm:681 -#: lib/RT/Queue_Overlay.pm:819 -#: lib/RT/Queue_Overlay.pm:828 -#: lib/RT/Queue_Overlay.pm:841 -#: lib/RT/Scrip_Overlay.pm:149 -#: lib/RT/Scrip_Overlay.pm:160 -#: lib/RT/Scrip_Overlay.pm:224 -#: lib/RT/Scrip_Overlay.pm:538 -#: lib/RT/Template_Overlay.pm:108 -#: lib/RT/Template_Overlay.pm:277 -#: lib/RT/Ticket_Overlay.pm:1357 -#: lib/RT/Ticket_Overlay.pm:1367 -#: lib/RT/Ticket_Overlay.pm:1381 -#: lib/RT/Ticket_Overlay.pm:1522 -#: lib/RT/Ticket_Overlay.pm:1532 -#: lib/RT/Ticket_Overlay.pm:1546 -#: lib/RT/Ticket_Overlay.pm:1663 -#: lib/RT/Ticket_Overlay.pm:1983 -#: lib/RT/Ticket_Overlay.pm:2126 -#: lib/RT/Ticket_Overlay.pm:2296 -#: lib/RT/Ticket_Overlay.pm:2346 -#: lib/RT/Ticket_Overlay.pm:2525 -#: lib/RT/Ticket_Overlay.pm:2538 -#: lib/RT/Ticket_Overlay.pm:2614 -#: lib/RT/Ticket_Overlay.pm:2627 -#: lib/RT/Ticket_Overlay.pm:2748 -#: lib/RT/Ticket_Overlay.pm:2762 -#: lib/RT/Ticket_Overlay.pm:2990 -#: lib/RT/Ticket_Overlay.pm:3000 -#: lib/RT/Ticket_Overlay.pm:3005 -#: lib/RT/Ticket_Overlay.pm:3224 -#: lib/RT/Ticket_Overlay.pm:3228 -#: lib/RT/Ticket_Overlay.pm:3371 -#: lib/RT/Ticket_Overlay.pm:3497 -#: lib/RT/Transaction_Overlay.pm:516 -#: lib/RT/Transaction_Overlay.pm:523 -#: lib/RT/Transaction_Overlay.pm:551 -#: lib/RT/Transaction_Overlay.pm:558 -#: lib/RT/User_Overlay.pm:1176 -#: lib/RT/User_Overlay.pm:1856 -#: lib/RT/User_Overlay.pm:369 -#: lib/RT/User_Overlay.pm:735 -#: lib/RT/User_Overlay.pm:774 -msgid "Permission Denied" -msgstr "TillgÃ¥ng nekas" - -#: lib/RT/Template_Overlay.pm:238 -#: lib/RT/Template_Overlay.pm:247 -msgid "Permission denied" -msgstr "TillgÃ¥ng nekas" - -#: lib/RT/Template_Overlay.pm:372 -msgid "Permissions denied" -msgstr "TillgÃ¥ng nekas" - -#: html/User/Elements/Tabs:56 -msgid "Personal Groups" -msgstr "Personliga grupper" - -#: html/User/Groups/index.html:51 -#: html/User/Groups/index.html:61 -msgid "Personal groups" -msgstr "Personliga grupper" - -#: html/User/Elements/DelegateRights:58 -msgid "Personal groups:" -msgstr "Personliga grupper:" - -#: html/Admin/Users/Modify.html:180 -#: html/User/Prefs.html:81 -msgid "Phone numbers" -msgstr "Telefonnummer" - -#: html/Elements/Header:93 -#: html/Elements/Tabs:91 -#: html/SelfService/Elements/Tabs:95 -#: html/SelfService/Prefs.html:46 -#: html/User/Prefs.html:46 -#: html/User/Prefs.html:49 -msgid "Preferences" -msgstr "Preferenser" - -#. ($pane, $UserObj->Name) -#: html/Admin/Users/MyRT.html:75 -msgid "Preferences %1 for user %2 ." -msgstr "Preferenser %1 för användare %2 ." - -#. ($pane) -#: html/Prefs/MyRT.html:141 -msgid "Preferences saved for %1." -msgstr "Preferenser har sparats för %1." - -#: lib/RT/Action/Generic.pm:195 -msgid "Prepare Stubbed" -msgstr "Förbered tömning" - -#: html/Helpers/CalPopup.html:56 -#: html/Ticket/Elements/Tabs:84 -msgid "Prev" -msgstr "Föreg." - -#: html/Elements/TicketList:101 -msgid "Previous Page" -msgstr "FöregÃ¥ende sida" - -#. ($args{'PrincipalId'}) -#: lib/RT/ACE_Overlay.pm:157 -#: lib/RT/ACE_Overlay.pm:239 -#: lib/RT/ACE_Overlay.pm:569 -msgid "Principal %1 not found." -msgstr "Principal %1 ej funnen." - -#: html/Search/Elements/PickBasics:147 -#: html/Ticket/Create.html:181 -#: html/Ticket/Elements/EditBasics:92 -#: html/Ticket/Elements/ShowBasics:72 -#: lib/RT/Tickets_Overlay.pm:1790 -msgid "Priority" -msgstr "Prioritet" - -#: html/Admin/Queues/Modify.html:86 -msgid "Priority starts at" -msgstr "Prioritet börjar vid" - -#: html/Search/Elements/EditSearches:50 -msgid "Privacy:" -msgstr "Privat:" - -#: etc/initialdata:25 -msgid "Privileged" -msgstr "Privilegierad" - -#. (loc_fuzzy($msg)) -#: html/Admin/Users/Modify.html:342 -#: html/User/Prefs.html:231 -msgid "Privileged status: %1" -msgstr "Privilegierad status: %1" - -#: html/Admin/Users/index.html:102 -msgid "Privileged users" -msgstr "Privilegierade användare" - -#: etc/initialdata:23 -#: etc/initialdata:29 -#: etc/initialdata:35 -#: etc/initialdata:59 -msgid "Pseudogroup for internal use" -msgstr "Pseudogrupp för internt bruk" - -#: html/Search/Build.html:121 -msgid "Query Builder" -msgstr "Söksträngsbyggare" - -#: html/Search/Elements/Chart:101 -msgid "Query:" -msgstr "Söksträng:" - -#: html/Elements/QueueSummary:48 -#: html/Elements/QuickCreate:54 -#: html/Search/Elements/PickBasics:71 -#: html/SelfService/Create.html:54 -#: html/Ticket/Create.html:62 -#: html/Ticket/Elements/EditBasics:57 -#: html/Ticket/Elements/ShowBasics:76 -#: html/Tools/Reports/CreatedByDates.html:85 -#: html/Tools/Reports/ResolvedByDates.html:86 -#: html/Tools/Reports/ResolvedByOwner.html:66 -#: html/User/Elements/DelegateRights:101 -#: lib/RT/Tickets_Overlay.pm:1617 -msgid "Queue" -msgstr "Kö" - -#. ($id) -#. ($Queue) -#: html/Admin/Queues/CustomField.html:63 -#: html/Admin/Queues/Scrip.html:61 -#: html/Admin/Queues/Scrips.html:69 -#: html/Admin/Queues/Templates.html:65 -msgid "Queue %1 not found" -msgstr "Kö %1 ej funnen" - -#: html/Admin/Queues/Modify.html:64 -msgid "Queue Name" -msgstr "Könamn" - -#: lib/RT/Queue_Overlay.pm:365 -msgid "Queue already exists" -msgstr "Kö finns redan" - -#: lib/RT/Queue_Overlay.pm:374 -#: lib/RT/Queue_Overlay.pm:380 -msgid "Queue could not be created" -msgstr "Kö kan ej skapas" - -#: html/Ticket/Create.html:244 -#: lib/t/regression/01ticket_link_searching.t:17 -msgid "Queue could not be loaded." -msgstr "Kö kan ej inläsas." - -#: docs/design_docs/string-extraction-guide.txt:83 -#: lib/RT/Queue_Overlay.pm:384 -#: lib/RT/StyleGuide.pod:809 -msgid "Queue created" -msgstr "Kö har skapats" - -#: html/SelfService/Display.html:126 -#: lib/RT/CustomField_Overlay.pm:197 -msgid "Queue not found" -msgstr "Kö ej funnen" - -#: html/Admin/Elements/Tabs:59 -#: html/Admin/index.html:72 -msgid "Queues" -msgstr "Köer" - -#: html/Elements/MyAdminQueues:46 -msgid "Queues I administer" -msgstr "Köer som jag administrerar" - -#: html/Elements/MySupportQueues:46 -msgid "Queues I'm an AdminCc for" -msgstr "Köer som jag är en Admin.kopia-mottagare för" - -#: html/Elements/Quicksearch:47 -#: html/Prefs/Elements/Tabs:58 -#: html/Prefs/Quicksearch.html:70 -msgid "Quick search" -msgstr "Snabbsökning" - -#: html/Elements/QuickCreate:47 -msgid "Quick ticket creation" -msgstr "Snabbt ärendeskapande" - -#: html/Search/Results.html:81 -msgid "RSS" -msgstr "RSS" - -#. ($RT::VERSION, $RT::rtname) -#: docs/design_docs/string-extraction-guide.txt:70 -#: lib/RT/StyleGuide.pod:796 -msgid "RT %1 for %2" -msgstr "RT %1 för %2" - -#: html/Admin/index.html:46 -#: html/Admin/index.html:47 -msgid "RT Administration" -msgstr "RT-administration" - -#: html/Elements/Error:63 -#: html/SelfService/Error.html:62 -msgid "RT Error" -msgstr "RT-fel" - -#: html/Admin/Tools/Configuration.html:73 -msgid "RT Variables" -msgstr "RT-variabler" - -#: html/Admin/Elements/SystemTabs:71 -#: html/Admin/Elements/UserTabs:67 -#: html/Admin/Global/MyRT.html:1 -#: html/Admin/Global/MyRT.html:12 -#: html/Admin/Global/MyRT.html:4 -#: html/Admin/Global/index.html:84 -#: html/Admin/Users/MyRT.html:21 -#: html/Prefs/MyRT.html:66 -#: html/Prefs/MyRT.html:78 -#: html/User/Elements/Tabs:65 -#: html/index.html:1 -#: html/index.html:75 -msgid "RT at a glance" -msgstr "RT-snabbtitt" - -#. ($UserObj->Name) -#: html/Admin/Users/MyRT.html:30 -msgid "RT at a glance for the user %1" -msgstr "RT-snabbtitt för användaren %1" - -#: html/Admin/CustomFields/Modify.html:117 -msgid "RT can include content from another web service when showing this custom field." -msgstr "RT kan innehÃ¥lla innehÃ¥ll frÃ¥n annan webbtjänst när detta extrafält visas." - -#: html/Admin/CustomFields/Modify.html:106 -msgid "RT can make this custom field's values into hyperlinks to another service." -msgstr "RT kan göra alternativen för detta extrafält till hyperlänkar till annan tjänst." - -#: html/Elements/SetupSessionCookie:100 -msgid "RT couldn't store your session." -msgstr "RT har inte utrymme för din session." - -#. ($RT::rtname) -#: html/Elements/Logo:49 -#: html/Elements/PageLayout:172 -msgid "RT for %1" -msgstr "RT för %1" - -#: html/Search/Simple.html:60 -msgid "RT will look for anything else you enter in ticket subjects." -msgstr "RT kommer att söka efter allt annat som du matar in i ärendeämnen." - -#: html/Admin/CustomFields/Modify.html:108 -#: html/Admin/CustomFields/Modify.html:119 -msgid "RT will replace <tt>__id__</tt> and <tt>__CustomField__</tt> with the record id and custom field value, respectively" -msgstr "RT kommer att ersätta <tt>__id__</tt> och <tt>__ExtraFält__</tt> med register-ID och extrafältvärde respektive" - -#: html/Admin/Users/Modify.html:79 -#: html/User/Prefs.html:69 -msgid "Real Name" -msgstr "Fullständigt namn" - -#. ($value) -#: lib/RT/Transaction_Overlay.pm:725 -msgid "Reference by %1 added" -msgstr "Referens frÃ¥n %1 tillagd" - -#. ($value) -#: lib/RT/Transaction_Overlay.pm:765 -msgid "Reference by %1 deleted" -msgstr "Referens frÃ¥n %1 raderad" - -#. ($value) -#: lib/RT/Transaction_Overlay.pm:722 -msgid "Reference to %1 added" -msgstr "Referens till %1 tillagd" - -#. ($value) -#: lib/RT/Transaction_Overlay.pm:762 -msgid "Reference to %1 deleted" -msgstr "Referens till %1 raderad" - -#: html/Elements/EditLinks:103 -#: html/Elements/EditLinks:156 -#: html/Elements/ShowLinks:92 -#: html/Ticket/Create.html:225 -#: html/Ticket/Elements/BulkLinks:72 -msgid "Referred to by" -msgstr "Refererad till av" - -#: html/Elements/EditLinks:152 -#: html/Elements/EditLinks:94 -#: html/Elements/SelectLinkType:49 -#: html/Elements/ShowLinks:82 -#: html/Ticket/Create.html:224 -#: html/Ticket/Elements/BulkLinks:68 -msgid "Refers to" -msgstr "Refererar till" - -#. ($value/60) -#: html/Elements/Refresh:57 -msgid "Refresh this page every %1 minutes." -msgstr "Ã…terinläs denna sida var %1 minut." - -#. ($ticket->Subject) -#: lib/RT/Transaction_Overlay.pm:811 -msgid "Reminder '%1' added" -msgstr "PÃ¥minnelse '%1' tillagd" - -#. ($ticket->Subject) -#: lib/RT/Transaction_Overlay.pm:824 -msgid "Reminder '%1' completed" -msgstr "PÃ¥minnelse '%1' genomförd" - -#. ($ticket->Subject) -#: lib/RT/Transaction_Overlay.pm:817 -msgid "Reminder '%1' reopened" -msgstr "PÃ¥minnelse '%1' öppnad igen" - -#. ($Ticket->Id) -#: html/Ticket/Reminders.html:46 -msgid "Reminder ticket #%1" -msgstr "PÃ¥minnelse ärende #%1" - -#: html/Elements/MyReminders:48 -#: html/Ticket/Elements/ShowSummary:75 -#: html/Ticket/Elements/Tabs:122 -#: html/Ticket/Reminders.html:52 -msgid "Reminders" -msgstr "PÃ¥minnelser" - -#. ($Ticket->Id) -#: html/Ticket/Reminders.html:50 -msgid "Reminders for ticket #%1" -msgstr "PÃ¥minnelse för ärende #%1" - -#: html/Search/Bulk.html:94 -msgid "Remove AdminCc" -msgstr "Ta bort Admin.kopia" - -#: html/Search/Bulk.html:90 -msgid "Remove Cc" -msgstr "Ta bort kopia" - -#: html/Search/Bulk.html:86 -msgid "Remove Requestor" -msgstr "Ta bort rekvirent" - -#: html/Ticket/Elements/ShowTransaction:179 -#: html/Ticket/Elements/Tabs:147 -msgid "Reply" -msgstr "Svar" - -#: html/Admin/Queues/Modify.html:72 -msgid "Reply Address" -msgstr "Svarsadress" - -#: html/Search/Bulk.html:129 -#: html/Ticket/ModifyAll.html:94 -#: html/Ticket/Update.html:78 -msgid "Reply to requestors" -msgstr "Svar till rekvirenter" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "Reply to tickets" -msgstr "Svar pÃ¥ ärenden" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "ReplyToTicket" -msgstr "SvarTillÄrende" - -#: html/Tools/Elements/Tabs:59 -#: html/Tools/Reports/index.html:46 -#: html/Tools/Reports/index.html:47 -msgid "Reports" -msgstr "Rapporter" - -#: etc/initialdata:44 -#: lib/RT/ACE_Overlay.pm:111 -msgid "Requestor" -msgstr "Rekvirent" - -#: html/SelfService/Create.html:63 -#: html/Ticket/Create.html:80 -#: html/Ticket/Elements/EditPeople:69 -#: html/Ticket/Elements/ShowPeople:52 -msgid "Requestors" -msgstr "Rekvirenter" - -#: html/Admin/Queues/Modify.html:96 -msgid "Requests should be due in" -msgstr "FörfrÃ¥gningar borde förfalla" - -#. ('Object') -#: lib/RT/Attribute_Overlay.pm:146 -msgid "Required parameter '%1' not specified" -msgstr "Nödvändig parameter '%1' ej specificerad" - -#: html/Elements/Submit:83 -msgid "Reset" -msgstr "Reset" - -#: html/Admin/Users/MyRT.html:15 -#: html/Prefs/MyRT.html:60 -msgid "Reset to default" -msgstr "Reset till default" - -#: html/Admin/Users/Modify.html:183 -#: html/User/Prefs.html:84 -msgid "Residence" -msgstr "Hemma" - -#: html/Ticket/Elements/Tabs:156 -msgid "Resolve" -msgstr "Lös" - -#. ($TicketObj->id, $TicketObj->Subject) -#: html/Ticket/Update.html:156 -msgid "Resolve ticket #%1 (%2)" -msgstr "Lös ärende #%1 (%2)" - -#: etc/initialdata:323 -#: html/Elements/SelectDateType:49 -#: lib/RT/Ticket_Overlay.pm:1172 -msgid "Resolved" -msgstr "Löst" - -#: html/Tools/Reports/Elements/Tabs:55 -msgid "Resolved by owner" -msgstr "Löst av ägare" - -#: html/Tools/Reports/Elements/Tabs:59 -msgid "Resolved in date range" -msgstr "Löst i datumordning" - -#: html/Tools/Reports/ResolvedByDates.html:52 -msgid "Resolved tickets in period, grouped by owner" -msgstr "Lösta ärenden under period, grupperade efter ägare" - -#: html/Tools/Reports/ResolvedByOwner.html:50 -msgid "Resolved tickets, grouped by owner" -msgstr "Lösta ärenden, grupperade efter ägare" - -#: html/Elements/ListActions:46 -#: html/Search/Elements/NewListActions:47 -msgid "Results" -msgstr "Resultat" - -#: html/Admin/Users/Modify.html:126 -#: html/User/Prefs.html:116 -msgid "Retype Password" -msgstr "Skriv in lösenord igen" - -#: html/Search/Elements/EditSearches:61 -msgid "Revert" -msgstr "GÃ¥ tillbaka" - -#: lib/RT/ACE_Overlay.pm:630 -msgid "Right Delegated" -msgstr "Rättighet överlämnad" - -#: lib/RT/ACE_Overlay.pm:320 -msgid "Right Granted" -msgstr "Rättighet tilldelad" - -#: lib/RT/ACE_Overlay.pm:178 -msgid "Right Loaded" -msgstr "Rättighet inläst" - -#: lib/RT/ACE_Overlay.pm:695 -#: lib/RT/ACE_Overlay.pm:716 -msgid "Right could not be revoked" -msgstr "Rättighet kan inte Ã¥terkallas" - -#: html/User/Delegation.html:85 -msgid "Right not found" -msgstr "Rättighet ej funnen" - -#: lib/RT/ACE_Overlay.pm:560 -#: lib/RT/ACE_Overlay.pm:655 -msgid "Right not loaded." -msgstr "Rättighet ej inläst." - -#: lib/RT/ACE_Overlay.pm:712 -msgid "Right revoked" -msgstr "Rättighet Ã¥terkallad" - -#: html/Admin/Elements/UserTabs:70 -msgid "Rights" -msgstr "Rättigheter" - -#. ($object_type) -#: html/Admin/CustomFields/GroupRights.html:129 -#: lib/RT/Interface/Web.pm:961 -msgid "Rights could not be granted for %1" -msgstr "Rättigheter kan inte tilldelas %1" - -#. ($object_type) -#: html/Admin/CustomFields/GroupRights.html:156 -#: lib/RT/Interface/Web.pm:990 -msgid "Rights could not be revoked for %1" -msgstr "Rättigheter kan inte Ã¥terkallas för %1" - -#: html/Admin/Global/GroupRights.html:72 -#: html/Admin/Queues/GroupRights.html:74 -msgid "Roles" -msgstr "Roller" - -#: html/Prefs/MyRT.html:72 -msgid "Rows per box" -msgstr "Rader per box" - -#: html/Search/Elements/DisplayOptions:93 -msgid "Rows per page" -msgstr "Rader per sida" - -#: lib/RT/Date.pm:422 -msgid "Sat." -msgstr "Lör." - -#: html/Prefs/MyRT.html:72 -#: html/Prefs/Quicksearch.html:64 -#: html/Prefs/Search.html:69 -#: html/Search/Elements/EditSearches:70 -#: html/Widgets/SelectionBox:211 -msgid "Save" -msgstr "Spara" - -#: html/Admin/Global/Template.html:67 -#: html/Admin/Groups/Modify.html:88 -#: html/Admin/Queues/Modify.html:111 -#: html/Admin/Queues/People.html:126 -#: html/Admin/Users/Modify.html:239 -#: html/Prefs/Quicksearch.html:64 -#: html/Prefs/SearchOptions.html:63 -#: html/SelfService/Prefs.html:58 -#: html/Ticket/Modify.html:60 -#: html/Ticket/ModifyAll.html:127 -#: html/Ticket/ModifyDates.html:60 -#: html/Ticket/ModifyLinks.html:61 -#: html/Ticket/ModifyPeople.html:60 -#: html/User/Groups/Modify.html:77 -msgid "Save Changes" -msgstr "Spara ändringar" - -#: html/User/Prefs.html:181 -msgid "Save Preferences" -msgstr "Spara preferenser" - -#: html/Ticket/Elements/PreviewScrips:131 -msgid "Save changes" -msgstr "Spara ändringar" - -#. ($name) -#: lib/RT/SavedSearch.pm:173 -msgid "Saved search %1" -msgstr "Spara sökning %1" - -#. ($id) -#. ($scrip->Id) -#: html/Admin/Elements/ListGlobalScrips:60 -#: html/Admin/Global/Scrip.html:77 -#: html/Admin/Queues/Scrip.html:84 -msgid "Scrip #%1" -msgstr "Scrip #%1" - -#: lib/RT/Scrip_Overlay.pm:203 -msgid "Scrip Created" -msgstr "Scrip har skapats" - -#: html/Admin/Elements/EditScrip:52 -msgid "Scrip Fields" -msgstr "Scrip-fält" - -#: html/Admin/Elements/EditScrips:109 -msgid "Scrip deleted" -msgstr "Scrip har raderats" - -#: html/Admin/Elements/QueueTabs:67 -#: html/Admin/Elements/SystemTabs:54 -#: html/Admin/Global/index.html:62 -msgid "Scrips" -msgstr "Scrips" - -#: html/Admin/Queues/Scrips.html:55 -msgid "Scrips which apply to all queues" -msgstr "Scrips som gäller alla köer" - -#: html/Elements/SimpleSearch:48 -#: html/Search/Simple.html:65 -msgid "Search" -msgstr "Sökning" - -#: html/Prefs/SearchOptions.html:47 -#: html/Prefs/SearchOptions.html:50 -msgid "Search Preferences" -msgstr "Sökpreferenser" - -#: lib/RT/SavedSearch.pm:115 -msgid "Search attribute load failure" -msgstr "Sökattributinläsningsfel" - -#: html/Approvals/Elements/PendingMyApproval:59 -msgid "Search for approvals" -msgstr "Sök efter godkännanden" - -#: html/Search/Simple.html:69 -msgid "Search for tickets" -msgstr "Sök efter ärenden" - -#: NOT FOUND IN SOURCE -msgid "Search for tickets. Enter <strong>id</strong> numbers, <strong>queues</strong> by name" -msgstr "Sök efter ärenden. Skriv <strong>id</strong> nummer, <strong>köer</strong> med namn" - -#: html/Search/Simple.html:57 -msgid "Search for tickets. Enter <strong>id</strong> numbers, <strong>queues</strong> by name" -msgstr "" - -#: html/User/Elements/Tabs:62 -msgid "Search options" -msgstr "Sökalternativ" - -#. ($PrimaryGroupBy) -#: html/Search/Chart.html:56 -msgid "Search results grouped by %1" -msgstr "Sökresultat grupperade efter %1" - -#. ($msg) -#: lib/RT/SavedSearch.pm:203 -msgid "Search update: %1" -msgstr "Sökuppdatering: %1" - -#: html/Search/Simple.html:59 -msgid "Searching the full text of every ticket can take a long time, but if you need to do it, you can search for any word in full ticket history for any word by typing <b>fulltext:<i>word</i></b>." -msgstr "Att söka igenom all text i alla ärenden kan ta lÃ¥ng tid, men om du mÃ¥ste göra det kan du söka efter vilket ord som helst i hela ärendehistoriken genom att skriva <b>fulltext:<i>word</i></b>." - -#: bin/rt-crontool:265 -msgid "Security:" -msgstr "Säkerhet:" - -#: html/Elements/ShowCustomFields:98 -msgid "See also:" -msgstr "Se även:" - -#: lib/RT/CustomField_Overlay.pm:105 -msgid "See custom fields" -msgstr "Se extrafält" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "See exact outgoing email messages and their recipeients" -msgstr "Se exakt utgÃ¥ende e-postmeddelanden och deras mottagare" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "See ticket private commentary" -msgstr "Se privata kommentarer för ärende" - -#: lib/RT/Queue_Overlay.pm:103 -msgid "See ticket summaries" -msgstr "Se sammanfattningar av ärenden" - -#: lib/RT/CustomField_Overlay.pm:105 -msgid "SeeCustomField" -msgstr "SeExtraFält" - -#: lib/RT/Group_Overlay.pm:169 -msgid "SeeGroup" -msgstr "SeGrupp" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "SeeQueue" -msgstr "SeKö" - -#: html/Admin/CustomFields/index.html:46 -#: html/Admin/CustomFields/index.html:49 -msgid "Select a Custom Field" -msgstr "Välj ett extrafält" - -#: html/Admin/Groups/index.html:78 -msgid "Select a group" -msgstr "Välj en grupp" - -#: html/Admin/Queues/index.html:54 -msgid "Select a queue" -msgstr "Välj en kö" - -#: html/SelfService/CreateTicketInQueue.html:48 -msgid "Select a queue for your new ticket" -msgstr "Välj en kö för ditt nya ärende" - -#: html/Admin/Users/index.html:46 -#: html/Admin/Users/index.html:49 -#: html/Admin/Users/index.html:52 -msgid "Select a user" -msgstr "Välj en användare" - -#: html/Admin/Elements/CustomFieldTabs:90 -msgid "Select custom field" -msgstr "Välj ett extrafält" - -#: html/Admin/Global/CustomFields/index.html:70 -msgid "Select custom fields for all user groups" -msgstr "Välj extrafält för alla användargrupper" - -#: html/Admin/Global/CustomFields/index.html:65 -msgid "Select custom fields for all users" -msgstr "Välj extrafält för alla användare" - -#: html/Admin/Global/CustomFields/index.html:76 -msgid "Select custom fields for tickets in all queues" -msgstr "Välj extrafält för ärenden i alla köer" - -#: html/Admin/Global/CustomFields/index.html:83 -msgid "Select custom fields for transactions on tickets in all queues" -msgstr "Välj extrafält för transaktioner pÃ¥ alla ärenden i alla köer" - -#: html/Admin/Elements/GroupTabs:75 -#: html/User/Elements/GroupTabs:71 -msgid "Select group" -msgstr "Välj grupp" - -#: lib/RT/CustomField_Overlay.pm:59 -msgid "Select multiple values" -msgstr "Välj flera värden" - -#: lib/RT/CustomField_Overlay.pm:60 -msgid "Select one value" -msgstr "Välj ett värde" - -#: html/Admin/Elements/QueueTabs:92 -msgid "Select queue" -msgstr "Välj kö" - -#: html/Prefs/Quicksearch.html:53 -msgid "Select queues to be displayed on the \"RT at a glance\" page" -msgstr "Välj kö som skall visas pÃ¥ \"RT-snabbtitt\" -sidan" - -#: html/Admin/Global/Scrip.html:59 -#: html/Admin/Global/Scrips.html:57 -#: html/Admin/Queues/Scrip.html:67 -#: html/Admin/Queues/Scrips.html:73 -msgid "Select scrip" -msgstr "Välj scrip" - -#: html/Admin/Global/Template.html:78 -#: html/Admin/Global/Templates.html:57 -#: html/Admin/Queues/Template.html:76 -#: html/Admin/Queues/Templates.html:68 -msgid "Select template" -msgstr "Välj mall" - -#: lib/RT/CustomField_Overlay.pm:61 -msgid "Select up to %1 values" -msgstr "Välj upp till %1 värden" - -#: html/Admin/Elements/UserTabs:78 -msgid "Select user" -msgstr "Välj användare" - -#: html/Admin/Elements/EditCustomFields:58 -msgid "Selected Custom Fields" -msgstr "Valda extrafält" - -#: html/Admin/CustomFields/Objects.html:59 -msgid "Selected objects" -msgstr "Valda objekt" - -#: html/Widgets/SelectionBox:209 -msgid "Selections modified. Please save your changes" -msgstr "Urval modifierat. Var god spara dina ändringar" - -#: etc/initialdata:121 -msgid "Send mail to all watchers" -msgstr "Skicka e-post till alla observatörer" - -#: etc/initialdata:117 -msgid "Send mail to all watchers as a \"comment\"" -msgstr "Skicka e-post till alla observatörer som en \"kommentar\"" - -#: etc/initialdata:112 -msgid "Send mail to requestors and Ccs" -msgstr "Skicka e-post till rekvirenter och kopia-mottagare" - -#: etc/initialdata:107 -msgid "Send mail to requestors and Ccs as a comment" -msgstr "Skicka e-post till rekvirenter och kopia-mottagare som en kommentar" - -#: etc/initialdata:78 -msgid "Sends a message to the requestors" -msgstr "Skicka ett meddelande till rekvirenterna" - -#: etc/initialdata:125 -#: etc/initialdata:129 -msgid "Sends mail to explicitly listed Ccs and Bccs" -msgstr "Skicka e-post till explicita kopia-mottagare och hemlig kopia-mottagare" - -#: etc/initialdata:94 -#: etc/upgrade/3.1.17/content:7 -msgid "Sends mail to the Ccs" -msgstr "Skicka e-post till kopia-mottagarna" - -#: etc/initialdata:90 -#: etc/upgrade/3.1.17/content:3 -msgid "Sends mail to the Ccs as a comment" -msgstr "Skicka e-post till kopia-mottagarna som en kommentar" - -#: etc/initialdata:102 -msgid "Sends mail to the administrative Ccs" -msgstr "Skicka e-post till de administrativa kopia-mottagarna" - -#: etc/initialdata:98 -msgid "Sends mail to the administrative Ccs as a comment" -msgstr "Skicka e-post till de administrativa kopia-mottagarna som en kommentar" - -#: etc/initialdata:82 -#: etc/initialdata:86 -msgid "Sends mail to the owner" -msgstr "Skicka e-post till ägaren" - -#: lib/RT/Date.pm:449 -msgid "Sep." -msgstr "Sep." - -#: html/Ticket/Elements/ShowTransaction:158 -msgid "Show" -msgstr "Visa" - -#: html/Approvals/index.html:52 -msgid "Show Approvals" -msgstr "Visa godkännanden" - -#: html/Search/Elements/EditFormat:56 -msgid "Show Columns" -msgstr "Visa kolumner" - -#: html/Ticket/Elements/Tabs:220 -msgid "Show Results" -msgstr "Visa resultat" - -#: html/Approvals/Elements/PendingMyApproval:64 -msgid "Show approved requests" -msgstr "Visa godkända förfrÃ¥gningar" - -#: html/Ticket/Create.html:316 -msgid "Show basics" -msgstr "Visa grunddata" - -#: html/Approvals/Elements/PendingMyApproval:65 -msgid "Show denied requests" -msgstr "Visa avvisade förfrÃ¥gningar" - -#: html/Ticket/Create.html:319 -msgid "Show details" -msgstr "Visa detaljer" - -#: html/Approvals/Elements/PendingMyApproval:63 -msgid "Show pending requests" -msgstr "Visa väntande förfrÃ¥gningar" - -#: html/Approvals/Elements/PendingMyApproval:66 -msgid "Show requests awaiting other approvals" -msgstr "Visa förfrÃ¥gningar som väntar pÃ¥ andra godkännanden" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "ShowACL" -msgstr "VisaACL" - -#: lib/RT/System.pm:85 -msgid "ShowConfigTab" -msgstr "VisaKonfigurationTab" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "ShowOutgoingEmail" -msgstr "VisaUtgÃ¥endeE-post" - -#: lib/RT/Group_Overlay.pm:168 -msgid "ShowSavedSearches" -msgstr "VisaSparadeSökningar" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "ShowScrips" -msgstr "VisaScrips" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "ShowTemplate" -msgstr "VisaMall" - -#: lib/RT/Queue_Overlay.pm:103 -msgid "ShowTicket" -msgstr "VisaÄrende" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "ShowTicketComments" -msgstr "VisaÄrendeKommentarer" - -#: lib/RT/Queue_Overlay.pm:107 -msgid "Sign up as a ticket Requestor or ticket or queue Cc" -msgstr "Registrera som ärenderekvirent eller ärende eller kö-kopia" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "Sign up as a ticket or queue AdminCc" -msgstr "Registrera som ärende eller kö-Admin.kopia" - -#: html/Admin/Users/Modify.html:230 -#: html/User/Prefs.html:168 -msgid "Signature" -msgstr "Signatur" - -#: html/Elements/Tabs:68 -msgid "Simple Search" -msgstr "Enkel sökning" - -#: html/Admin/Elements/SelectSingleOrMultiple:47 -msgid "Single" -msgstr "En enda" - -#: html/Search/Elements/EditFormat:75 -msgid "Size" -msgstr "Storlek" - -#: html/Elements/Header:89 -msgid "Skip Menu" -msgstr "Hoppa över meny" - -#: html/Search/Elements/EditFormat:78 -msgid "Small" -msgstr "Liten" - -#: html/Admin/CustomFields/Modify.html:120 -msgid "Some browsers may only load content from the same domain as your RT server." -msgstr "Vissa webbläsare läser kanske bara in innehÃ¥ll frÃ¥n samma domän som din RT-server." - -#: html/Admin/Elements/AddCustomFieldValue:49 -#: html/Admin/Elements/EditCustomFieldValues:54 -msgid "Sort" -msgstr "Sortera" - -#: html/Admin/Elements/EditScrip:78 -msgid "Stage" -msgstr "Steg" - -#: html/Elements/SelectDateType:48 -#: html/Ticket/Elements/EditDates:53 -#: html/Ticket/Elements/ShowDates:56 -msgid "Started" -msgstr "PÃ¥börjad" - -#: html/Elements/SelectDateType:52 -#: html/Ticket/Create.html:208 -#: html/Ticket/Elements/EditDates:48 -#: html/Ticket/Elements/ShowDates:52 -msgid "Starts" -msgstr "Börjar" - -#: html/Admin/Users/Modify.html:162 -#: html/User/Prefs.html:145 -msgid "State" -msgstr "Läge" - -#: html/Search/Elements/PickBasics:87 -#: html/SelfService/Update.html:57 -#: html/Ticket/Create.html:66 -#: html/Ticket/Elements/EditBasics:53 -#: html/Ticket/Elements/ShowBasics:52 -#: html/Ticket/Update.html:59 -#: lib/RT/Ticket_Overlay.pm:1166 -#: lib/RT/Tickets_Overlay.pm:1651 -msgid "Status" -msgstr "Status" - -#: etc/initialdata:309 -msgid "Status Change" -msgstr "Statusändring" - -#: html/Ticket/Elements/Tabs:178 -msgid "Steal" -msgstr "Stjäl" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "Steal tickets" -msgstr "Stjäl ärenden" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "StealTicket" -msgstr "StjälÄrende" - -#. ($Old->Name) -#: lib/RT/Transaction_Overlay.pm:678 -msgid "Stolen from %1" -msgstr "Stulen frÃ¥n %1" - -#: NOT FOUND IN SOURCE -msgid "Stolen from %1 " -msgstr "Stulen frÃ¥n %1 " - -#: html/Search/Elements/EditFormat:81 -msgid "Style" -msgstr "Stil" - -#: html/Elements/QuickCreate:52 -#: html/Elements/SelectAttachmentField:47 -#: html/Search/Bulk.html:132 -#: html/SelfService/Create.html:79 -#: html/SelfService/Update.html:65 -#: html/Ticket/Create.html:108 -#: html/Ticket/Elements/EditBasics:48 -#: html/Ticket/Elements/Reminders:125 -#: html/Ticket/ModifyAll.html:100 -#: html/Ticket/Update.html:82 -#: lib/RT/Ticket_Overlay.pm:1162 -#: lib/RT/Tickets_Overlay.pm:1733 -msgid "Subject" -msgstr "Ämne" - -#. ($self->Data) -#: docs/design_docs/string-extraction-guide.txt:89 -#: lib/RT/StyleGuide.pod:815 -#: lib/RT/Transaction_Overlay.pm:700 -msgid "Subject changed to %1" -msgstr "Ämne ändrat till %1" - -#: html/Elements/Submit:75 -msgid "Submit" -msgstr "Skicka" - -#: lib/RT/Group_Overlay.pm:774 -msgid "Succeeded" -msgstr "Genomförd" - -#: lib/RT/Date.pm:423 -msgid "Sun." -msgstr "Sön." - -#: lib/RT/System.pm:75 -msgid "SuperUser" -msgstr "SuperAnvändare" - -#: html/User/Elements/DelegateRights:98 -msgid "System" -msgstr "System" - -#: html/Admin/Elements/ToolTabs:54 -#: html/Admin/Tools/Configuration.html:48 -msgid "System Configuration" -msgstr "Systemkonfiguration" - -#: html/Admin/CustomFields/GroupRights.html:128 -#: html/Admin/CustomFields/GroupRights.html:155 -#: html/Admin/CustomFields/UserRights.html:128 -#: html/Admin/CustomFields/UserRights.html:98 -#: html/Admin/Elements/SelectRights:106 -#: lib/RT/ACE_Overlay.pm:584 -#: lib/RT/Interface/Web.pm:960 -#: lib/RT/Interface/Web.pm:989 -msgid "System Error" -msgstr "Systemfel" - -#. ($msg) -#: lib/RT/Transaction_Overlay.pm:224 -#: lib/RT/Transaction_Overlay.pm:230 -msgid "System Error: %1" -msgstr "Systemfel: %1" - -#: html/Admin/Tools/index.html:47 -msgid "System Tools" -msgstr "Systemverktyg" - -#: lib/RT/ACE_Overlay.pm:633 -msgid "System error. Right not delegated." -msgstr "Systemfel. Rättighet inte överlÃ¥ten." - -#: lib/RT/ACE_Overlay.pm:163 -#: lib/RT/ACE_Overlay.pm:228 -#: lib/RT/ACE_Overlay.pm:323 -#: lib/RT/ACE_Overlay.pm:920 -msgid "System error. Right not granted." -msgstr "Systemfel. Rättighet inte tilldelad." - -#: html/Admin/CustomFields/GroupRights.html:58 -#: html/Admin/Global/GroupRights.html:56 -#: html/Admin/Groups/GroupRights.html:58 -#: html/Admin/Queues/GroupRights.html:57 -msgid "System groups" -msgstr "Systemgrupper" - -#: etc/initialdata:41 -#: etc/initialdata:47 -#: etc/initialdata:53 -msgid "SystemRolegroup for internal use" -msgstr "SystemRollgrupp för internt bruk" - -#: lib/RT/CurrentUser.pm:357 -msgid "TEST_STRING" -msgstr "TEST_STRING" - -#: etc/initialdata:603 -#: html/Search/Elements/EditFormat:72 -#: html/Ticket/Elements/Tabs:170 -msgid "Take" -msgstr "Ta" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "Take tickets" -msgstr "Ta ärenden" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "TakeTicket" -msgstr "TaÄrende" - -#: lib/RT/Transaction_Overlay.pm:663 -msgid "Taken" -msgstr "Taget" - -#: html/Admin/Elements/EditScrip:71 -#: html/Tools/Offline.html:78 -msgid "Template" -msgstr "Mall" - -#. ($TemplateObj->Id()) -#: html/Admin/Global/Template.html:112 -#: html/Admin/Queues/Template.html:113 -msgid "Template #%1" -msgstr "Mall #%1" - -#: html/Admin/Elements/EditTemplates:110 -msgid "Template deleted" -msgstr "Mall har raderats" - -#: lib/RT/Scrip_Overlay.pm:176 -msgid "Template is mandatory argument" -msgstr "Mall är obligatorisk parameter" - -#: lib/RT/Scrip_Overlay.pm:180 -msgid "Template not found" -msgstr "Mall ej funnen" - -#: lib/RT/Template_Overlay.pm:343 -msgid "Template parsed" -msgstr "Mall har parsats" - -#: lib/RT/Template_Overlay.pm:391 -msgid "Template parsing error" -msgstr "Mallparsfel" - -#: html/Admin/Elements/QueueTabs:70 -#: html/Admin/Elements/SystemTabs:57 -#: html/Admin/Global/index.html:66 -msgid "Templates" -msgstr "Mallar" - -#: lib/RT/CustomField_Overlay.pm:943 -#: lib/RT/Record.pm:945 -msgid "That is already the current value" -msgstr "Det är redan det nuvarande värdet" - -#: lib/RT/CustomField_Overlay.pm:412 -msgid "That is not a value for this custom field" -msgstr "Det är inte ett värde för detta extrafält" - -#: lib/RT/Ticket_Overlay.pm:1994 -msgid "That is the same value" -msgstr "Det är samma värde" - -#: lib/RT/ACE_Overlay.pm:305 -#: lib/RT/ACE_Overlay.pm:614 -msgid "That principal already has that right" -msgstr "Principalen har redan den rättigheten" - -#. ($args{'Type'}) -#: lib/RT/Queue_Overlay.pm:753 -msgid "That principal is already a %1 for this queue" -msgstr "Principalen är redan en %1 för denna kö" - -#. ($self->loc($args{'Type'})) -#: lib/RT/Ticket_Overlay.pm:1435 -msgid "That principal is already a %1 for this ticket" -msgstr "Principalen är redan en %1 för detta ärende" - -#. ($args{'Type'}) -#: lib/RT/Queue_Overlay.pm:852 -msgid "That principal is not a %1 for this queue" -msgstr "Principalen är inte en %1 för denna kö" - -#: lib/RT/Ticket_Overlay.pm:1990 -msgid "That queue does not exist" -msgstr "Kön finns ej" - -#: lib/RT/Ticket_Overlay.pm:3233 -msgid "That ticket has unresolved dependencies" -msgstr "Ärendet har olösta avhängigheter" - -#: lib/RT/Action/CreateTickets.pm:710 -#: lib/RT/Ticket_Overlay.pm:3037 -msgid "That user already owns that ticket" -msgstr "Ärendet tillhör redan den användaren" - -#: lib/RT/Ticket_Overlay.pm:3012 -msgid "That user does not exist" -msgstr "Användaren finns ej" - -#: lib/RT/User_Overlay.pm:389 -msgid "That user is already privileged" -msgstr "Användaren är redan privilegierad" - -#: lib/RT/User_Overlay.pm:410 -msgid "That user is already unprivileged" -msgstr "Användaren är redan icke-privilegierad" - -#: lib/RT/User_Overlay.pm:402 -msgid "That user is now privileged" -msgstr "Användaren är nu privilegierad" - -#: lib/RT/User_Overlay.pm:423 -msgid "That user is now unprivileged" -msgstr "Användaren är nu icke-privilegierad" - -#: lib/RT/Ticket_Overlay.pm:3031 -msgid "That user may not own tickets in that queue" -msgstr "Användaren äger kanske inte ärenden i den kön" - -#: lib/RT/Link_Overlay.pm:233 -msgid "That's not a numerical id" -msgstr "Det är inte nÃ¥got numeriskt ID" - -#: html/SelfService/Display.html:53 -#: html/Ticket/Create.html:177 -#: html/Ticket/Elements/ShowSummary:49 -msgid "The Basics" -msgstr "Grunddata" - -#: lib/RT/ACE_Overlay.pm:112 -msgid "The CC of a ticket" -msgstr "Kopia för ett ärende" - -#: lib/RT/ACE_Overlay.pm:113 -msgid "The administrative CC of a ticket" -msgstr "Adminstrativ kopia för ett ärende" - -#: bin/rt-crontool:275 -msgid "The following command will find all active tickets in the queue 'general' and set their priority to 99 if they haven't been touched in 4 hours:" -msgstr "Följande kommando kommer att ta fram alla aktiva ärenden i kön 'general' och sätta deras prioritet som 99 om de inte rörts pÃ¥ 4 timmar:" - -#: lib/RT/Record.pm:948 -msgid "The new value has been set." -msgstr "Det nya värdet har satts." - -#: lib/RT/ACE_Overlay.pm:110 -msgid "The owner of a ticket" -msgstr "Ägaren till ett nytt ärende" - -#: lib/RT/ACE_Overlay.pm:111 -msgid "The requestor of a ticket" -msgstr "Rekvirenten till ett ärende" - -#: html/Admin/Elements/EditUserComments:47 -msgid "These comments aren't generally visible to the user" -msgstr "Dessa kommentarer är vanligtvis inte synliga för användaren" - -#: lib/RT/CustomField_Overlay.pm:978 -msgid "This custom field does not apply to that object" -msgstr "Detta extrafält gäller inte för det objektet" - -#: html/Admin/Tools/Configuration.html:50 -msgid "This feature is only available to system administrators" -msgstr "Denna delen är endast tillgänglig för systemadministratörer" - -#: html/Ticket/Elements/PreviewScrips:96 -msgid "This message will be sent to..." -msgstr "Meddelandet kommer att skickas till..." - -#: bin/rt-crontool:266 -msgid "This tool allows the user to run arbitrary perl modules from within RT." -msgstr "Detta verktyg ger användaren möjlighet att köra godtyckliga perl-moduler inifrÃ¥n RT." - -#: lib/RT/Transaction_Overlay.pm:301 -msgid "This transaction appears to have no content" -msgstr "Denna transaktion tycks inte ha nÃ¥got innehÃ¥ll" - -#. ($rows) -#: html/Ticket/Elements/ShowRequestor:70 -msgid "This user's %1 highest priority tickets" -msgstr "Denna användares %1 högst prioriterade ärenden" - -#: lib/RT/Date.pm:420 -msgid "Thu." -msgstr "Tor." - -#. ($Ticket->Id, $Ticket->Subject) -#: html/Ticket/ModifyAll.html:46 -#: html/Ticket/ModifyAll.html:50 -msgid "Ticket #%1 Jumbo update: %2" -msgstr "Ärende #%1 Jumbo uppdatering: %2" - -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -#: html/Approvals/Elements/ShowDependency:67 -msgid "Ticket #%1: %2" -msgstr "Ärende #%1: %2" - -#. ($T::Tickets{$template_id}->Id) -#. ($T::Tickets{$template_id}->id) -#. ($ticket->Id) -#: lib/RT/Action/CreateTickets.pm:1350 -#: lib/RT/Action/CreateTickets.pm:1359 -#: lib/RT/Action/CreateTickets.pm:605 -#: lib/RT/Action/CreateTickets.pm:729 -#: lib/RT/Action/CreateTickets.pm:741 -msgid "Ticket %1" -msgstr "Ärende %1" - -#. ($self->Id, $QueueObj->Name) -#: lib/RT/Ticket_Overlay.pm:755 -#: lib/RT/Ticket_Overlay.pm:775 -msgid "Ticket %1 created in queue '%2'" -msgstr "Ärende %1 har skapats i kö '%2'" - -#. ($Ticket->Id, $_) -#: html/Search/Bulk.html:377 -msgid "Ticket %1: %2" -msgstr "Ärende %1: %2" - -#: html/Admin/Elements/QueueTabs:74 -msgid "Ticket Custom Fields" -msgstr "Ärende extrafält" - -#. ($Ticket->Id, $Ticket->Subject) -#: html/Ticket/History.html:46 -#: html/Ticket/History.html:49 -msgid "Ticket History # %1 %2" -msgstr "Ärendehistorik # %1 %2" - -#: etc/initialdata:324 -msgid "Ticket Resolved" -msgstr "Ärende löst" - -#: html/Admin/Elements/GlobalCustomFieldTabs:69 -#: html/Admin/Global/CustomFields/index.html:81 -#: lib/RT/CustomField_Overlay.pm:1207 -msgid "Ticket Transactions" -msgstr "Ärendetransaktioner" - -#: lib/RT/Tickets_Overlay.pm:1920 -msgid "Ticket content" -msgstr "ÄrendeinnehÃ¥ll" - -#: lib/RT/Tickets_Overlay.pm:1969 -msgid "Ticket content type" -msgstr "ÄrendeinnehÃ¥llstyp" - -#: lib/RT/Ticket_Overlay.pm:603 -#: lib/RT/Ticket_Overlay.pm:617 -#: lib/RT/Ticket_Overlay.pm:628 -#: lib/RT/Ticket_Overlay.pm:763 -msgid "Ticket could not be created due to an internal error" -msgstr "Ärende kan inte skapas pÃ¥ grund av ett internt fel" - -#: html/Ticket/Display.html:55 -msgid "Ticket metadata" -msgstr "Ärende metadata" - -#: etc/initialdata:310 -msgid "Ticket status changed" -msgstr "Ärendestatus ändrad" - -#. (ref $self) -#: lib/RT/Search/FromSQL.pm:82 -msgid "TicketSQL search module" -msgstr "ÄrendeSQL sökmodul" - -#: html/Admin/Elements/GlobalCustomFieldTabs:64 -#: html/Admin/Global/CustomFields/index.html:75 -#: html/Elements/Tabs:71 -#: html/Search/Elements/Chart:109 -#: lib/RT/CustomField_Overlay.pm:1206 -msgid "Tickets" -msgstr "Ärenden" - -#: html/Tools/Reports/CreatedByDates.html:86 -msgid "Tickets created after" -msgstr "Ärenden har skapats efter" - -#: html/Tools/Reports/CreatedByDates.html:88 -msgid "Tickets created before" -msgstr "Ärenden har skapats före" - -#: html/Tools/Reports/ResolvedByDates.html:87 -msgid "Tickets resolved after" -msgstr "Ärenden lösta efter" - -#: html/Tools/Reports/ResolvedByDates.html:89 -msgid "Tickets resolved before" -msgstr "Ärenden lösta före" - -#: html/Approvals/Elements/ShowDependency:48 -msgid "Tickets which depend on this approval:" -msgstr "Ärenden som är beroende av detta godkännande:" - -#: html/Search/Elements/PickBasics:134 -#: html/Ticket/Create.html:183 -#: html/Ticket/Elements/EditBasics:72 -msgid "Time Estimated" -msgstr "Uppskattad tid" - -#: html/Search/Elements/PickBasics:135 -#: html/Ticket/Create.html:196 -#: html/Ticket/Elements/EditBasics:85 -msgid "Time Left" -msgstr "Resterande tid" - -#: html/Search/Elements/PickBasics:133 -#: html/Ticket/Create.html:189 -#: html/Ticket/Elements/EditBasics:78 -msgid "Time Worked" -msgstr "Använd tid" - -#: lib/RT/Tickets_Overlay.pm:1891 -msgid "Time left" -msgstr "Resterande tid" - -#: html/Elements/Footer:51 -msgid "Time to display" -msgstr "Tid för visning" - -#: lib/RT/Tickets_Overlay.pm:1866 -msgid "Time worked" -msgstr "Använd tid" - -#: lib/RT/Ticket_Overlay.pm:1167 -msgid "TimeWorked" -msgstr "AnvändTid" - -#: html/Search/Elements/EditFormat:74 -msgid "Title" -msgstr "Titel" - -#. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') -#: html/Elements/Footer:62 -msgid "To inquire about support, training, custom development or licensing, please contact %1." -msgstr "FörfrÃ¥gan om support, utbildning, kundutveckling eller licensiering, var god kontakta %1." - -#: lib/RT/Ticket_Overlay.pm:1170 -msgid "Told" -msgstr "Uppgivet" - -#: html/Admin/Elements/Tabs:68 -#: html/Admin/index.html:88 -#: html/Elements/Tabs:74 -#: html/Tools/index.html:46 -#: html/Tools/index.html:49 -msgid "Tools" -msgstr "Verktyg" - -#: html/Search/Elements/Chart:130 -msgid "Total" -msgstr "Totalt" - -#: etc/initialdata:252 -msgid "Transaction" -msgstr "Transaktion" - -#. ($self->Data) -#: lib/RT/Transaction_Overlay.pm:805 -msgid "Transaction %1 purged" -msgstr "Transaktion %1 har tömts" - -#: lib/RT/Transaction_Overlay.pm:183 -msgid "Transaction Created" -msgstr "Transaktion har skapats" - -#: html/Admin/Elements/QueueTabs:78 -msgid "Transaction Custom Fields" -msgstr "Transaktion extrafält" - -#: lib/RT/Transaction_Overlay.pm:128 -msgid "Transaction->Create couldn't, as you didn't specify an object type and id" -msgstr "Transaktion->Skapa gick inte eftersom du inte specificerade en objekttyp och ID" - -#: lib/RT/Transaction_Overlay.pm:870 -msgid "Transactions are immutable" -msgstr "Transaktioner är oföränderliga" - -#: lib/RT/Date.pm:418 -msgid "Tue." -msgstr "Tis." - -#: html/Admin/CustomFields/Modify.html:66 -#: html/Admin/Elements/EditCustomField:65 -#: html/Ticket/Elements/AddWatchers:54 -#: html/Ticket/Elements/AddWatchers:65 -#: html/Ticket/Elements/AddWatchers:75 -#: lib/RT/Ticket_Overlay.pm:1168 -#: lib/RT/Tickets_Overlay.pm:1705 -msgid "Type" -msgstr "Typ" - -#: lib/RT/ScripCondition_Overlay.pm:128 -msgid "Unimplemented" -msgstr "Ej implementerad" - -#: html/Admin/Users/Modify.html:89 -msgid "Unix login" -msgstr "Unix-inloggning" - -#. ($ContentEncoding) -#. ($self->ContentEncoding) -#: lib/RT/Attachment_Overlay.pm:289 -#: lib/RT/Record.pm:861 -msgid "Unknown ContentEncoding %1" -msgstr "Okänd InnehÃ¥llsKodning %1" - -#: html/Search/Build.html:455 -#: lib/RT/Report/Tickets.pm:410 -msgid "Unknown field: $key" -msgstr "Okänt fält: $nyckel" - -#: html/Elements/SelectResultsPerPage:58 -msgid "Unlimited" -msgstr "Obegränsat" - -#: html/Search/Elements/SelectSearchesForObjects:64 -msgid "Unnamed search" -msgstr "Ej namngiven sökning" - -#: etc/initialdata:32 -msgid "Unprivileged" -msgstr "Icke-privilegierad" - -#: html/Admin/Elements/EditCustomFields:60 -msgid "Unselected Custom Fields" -msgstr "Ej valda extrafält" - -#: html/Admin/CustomFields/Objects.html:61 -msgid "Unselected objects" -msgstr "Ej valda objekt" - -#: lib/RT/Transaction_Overlay.pm:659 -msgid "Untaken" -msgstr "Ej tagen" - -#: html/Admin/Elements/EditScrip:128 -#: html/Elements/RT__Ticket/ColumnMap:302 -#: html/Search/Bulk.html:193 -#: html/Search/Bulk.html:75 -msgid "Update" -msgstr "Uppdatera" - -#: html/Ticket/Update.html:135 -msgid "Update Ticket" -msgstr "Uppdatera ärende" - -#: html/Search/Bulk.html:126 -#: html/Ticket/ModifyAll.html:87 -#: html/Ticket/Update.html:72 -msgid "Update Type" -msgstr "Uppdatera typ" - -#: html/Search/Bulk.html:200 -#: html/Search/Results.html:78 -msgid "Update multiple tickets" -msgstr "Uppdatera flera ärenden" - -#: lib/RT/Action/CreateTickets.pm:750 -#: lib/RT/Interface/Web.pm:584 -msgid "Update not recorded." -msgstr "Uppdatera icke-inlästa." - -#: html/Ticket/ModifyAll.html:84 -msgid "Update ticket" -msgstr "Uppdatera ärende" - -#. ($Ticket->id) -#: html/SelfService/Update.html:112 -#: html/SelfService/Update.html:47 -msgid "Update ticket #%1" -msgstr "Uppdatera ärende #%1" - -#. ($TicketObj->id, $TicketObj->Subject) -#: html/Ticket/Update.html:158 -msgid "Update ticket #%1 (%2)" -msgstr "Uppdatera ärende #%1 (%2)" - -#: lib/RT/Action/CreateTickets.pm:748 -#: lib/RT/Interface/Web.pm:583 -msgid "Update type was neither correspondence nor comment." -msgstr "Uppdateringstyp är varken korrespondens eller kommentar." - -#: html/Elements/SelectDateType:54 -#: html/Ticket/Elements/ShowDates:72 -#: lib/RT/CustomField_Overlay.pm:1284 -#: lib/RT/Ticket_Overlay.pm:1171 -msgid "Updated" -msgstr "Uppdaterad" - -#: html/Tools/Offline.html:93 -msgid "Upload" -msgstr "Överför" - -#: lib/RT/CustomField_Overlay.pm:84 -msgid "Upload multiple files" -msgstr "Överför flera filer" - -#: lib/RT/CustomField_Overlay.pm:79 -msgid "Upload multiple images" -msgstr "Överför flera bilder" - -#: lib/RT/CustomField_Overlay.pm:85 -msgid "Upload one file" -msgstr "Överför en fil" - -#: lib/RT/CustomField_Overlay.pm:80 -msgid "Upload one image" -msgstr "Överför en bild" - -#: lib/RT/CustomField_Overlay.pm:86 -msgid "Upload up to %1 files" -msgstr "Överför upp till %1 filer" - -#: lib/RT/CustomField_Overlay.pm:81 -msgid "Upload up to %1 images" -msgstr "Överför upp till %1 bilder" - -#: html/Tools/Offline.html:93 -msgid "Upload your changes" -msgstr "Överför dina ändringar" - -#: html/Admin/index.html:90 -msgid "Use other RT administrative tools" -msgstr "Använd annat RT-administrativt verktyg" - -#. ($args{'Owner'}) -#: lib/RT/Ticket_Overlay.pm:506 -msgid "User '%1' could not be found." -msgstr "Det gick inte att hitta användare '%1'." - -#: etc/initialdata:132 -#: etc/initialdata:206 -msgid "User Defined" -msgstr "Användardefinierad" - -#: html/Admin/Elements/EditScrip:93 -msgid "User Defined conditions and actions" -msgstr "Användardefinierade villkor och handlingar" - -#: html/Admin/Elements/CustomFieldTabs:72 -#: html/Admin/Elements/GroupTabs:68 -#: html/Admin/Elements/QueueTabs:85 -#: html/Admin/Elements/SystemTabs:68 -#: html/Admin/Global/index.html:80 -msgid "User Rights" -msgstr "Användarrättigheter" - -#. ($msg) -#: html/Admin/Users/Modify.html:301 -msgid "User could not be created: %1" -msgstr "Det gick inte att skapa användare: %1" - -#: lib/RT/User_Overlay.pm:330 -msgid "User created" -msgstr "Användare har skapats" - -#: html/Admin/CustomFields/GroupRights.html:74 -#: html/Admin/Global/GroupRights.html:88 -#: html/Admin/Groups/GroupRights.html:75 -#: html/Admin/Queues/GroupRights.html:90 -msgid "User defined groups" -msgstr "Användardefinierade grupper" - -#: lib/RT/User_Overlay.pm:592 -#: lib/RT/User_Overlay.pm:612 -msgid "User loaded" -msgstr "Användare har lästs in" - -#: html/Admin/Groups/index.html:103 -msgid "User-defined groups" -msgstr "Användardefinierade grupper" - -#: html/Admin/Users/Modify.html:69 -#: html/Elements/Login:90 -#: html/Ticket/Elements/AddWatchers:56 -msgid "Username" -msgstr "Användarnamn" - -#: html/Admin/Elements/GlobalCustomFieldTabs:55 -#: html/Admin/Elements/SelectNewGroupMembers:47 -#: html/Admin/Elements/Tabs:53 -#: html/Admin/Global/CustomFields/index.html:64 -#: html/Admin/Groups/Members.html:76 -#: html/Admin/Queues/People.html:89 -#: html/Admin/index.html:62 -#: html/User/Groups/Members.html:79 -#: lib/RT/CustomField_Overlay.pm:1208 -msgid "Users" -msgstr "Användare" - -#: html/Admin/Users/index.html:85 -msgid "Users matching search criteria" -msgstr "Användare som matchar kriterier" - -#. ($transaction->id) -#: bin/rt-crontool:134 -msgid "Using transaction #%1..." -msgstr "Använder transaktion #%1..." - -#: lib/RT/Tickets_Overlay_SQL.pm:528 -msgid "Valid Query" -msgstr "Giltig söksträng" - -#: html/Admin/CustomFields/Modify.html:80 -msgid "Validation" -msgstr "Bekräftelse" - -#: html/Admin/CustomFields/Modify.html:130 -#: html/Admin/Elements/EditCustomField:78 -msgid "Values" -msgstr "Värden" - -#: lib/RT/Queue_Overlay.pm:107 -msgid "Watch" -msgstr "Observera" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "WatchAsAdminCc" -msgstr "ObserveraSomAdmin.kopia" - -#: html/Admin/Elements/QueueTabs:63 -msgid "Watchers" -msgstr "Observatörer" - -#: lib/RT/Date.pm:419 -msgid "Wed." -msgstr "Ons." - -#: html/Tools/MyDay.html:75 -msgid "What I did today" -msgstr "Vad jag gjorde i dag" - -#: etc/initialdata:521 -msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" -msgstr "När ett ärende har godkänts av alla godkännare, lägg till korrespondens till originalärendet" - -#: etc/initialdata:485 -msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" -msgstr "När ett ärende har godkänts av nÃ¥gon godkännare, lägg till korrespondens till originalärendet" - -#: etc/initialdata:146 -msgid "When a ticket is created" -msgstr "När ett ärende har skapats" - -#: etc/initialdata:418 -msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" -msgstr "När ett godkännandeärende skapas, meddela ägaren och Admin.kopia-mottagare om delen som väntar pÃ¥ deras godkännande" - -#: etc/initialdata:151 -msgid "When anything happens" -msgstr "När nÃ¥got händer" - -#: etc/initialdata:199 -msgid "Whenever a ticket is resolved" -msgstr "När ett ärende har lösts" - -#: etc/initialdata:185 -msgid "Whenever a ticket's owner changes" -msgstr "När ett ärendes ägare byts ut" - -#: etc/initialdata:178 -#: etc/upgrade/3.1.17/content:16 -msgid "Whenever a ticket's priority changes" -msgstr "När ett ärendes prioritet ändras" - -#: etc/initialdata:193 -msgid "Whenever a ticket's queue changes" -msgstr "När ett ärendes kö ändras" - -#: etc/initialdata:170 -msgid "Whenever a ticket's status changes" -msgstr "När ett ärendes status ändras" - -#: etc/initialdata:207 -msgid "Whenever a user-defined condition occurs" -msgstr "När det förekommer ett användardefinierat villkor" - -#: etc/initialdata:164 -msgid "Whenever comments come in" -msgstr "När det kommer in kommentarer" - -#: etc/initialdata:157 -msgid "Whenever correspondence comes in" -msgstr "När det kommer in korrespondens" - -#: html/Admin/Users/Modify.html:188 -#: html/User/Prefs.html:88 -msgid "Work" -msgstr "Arbete" - -#: html/Search/Results.html:82 -msgid "Work offline" -msgstr "Arbeta offline" - -#: html/Ticket/Elements/ShowBasics:63 -#: html/Ticket/Update.html:64 -msgid "Worked" -msgstr "Arbetat" - -#: lib/RT/Ticket_Overlay.pm:3140 -msgid "You already own this ticket" -msgstr "Det här ärendet tillhör redan dig" - -#: html/autohandler:214 -#: html/autohandler:222 -msgid "You are not an authorized user" -msgstr "Du är inte en auktoriserad användare" - -#: html/Prefs/Search.html:56 -msgid "You can also edit the predefined search itself" -msgstr "Du kan även redigera själva den fördefinierade sökningen" - -#: lib/RT/Ticket_Overlay.pm:3025 -msgid "You can only reassign tickets that you own or that are unowned" -msgstr "Du kan endast dela ut ärenden som tillhör dig eller som inte tillhör nÃ¥gon" - -#: lib/RT/Ticket_Overlay.pm:3021 -msgid "You can only take tickets that are unowned" -msgstr "Du kan endast ta ärenden som inte tillhör nÃ¥gon" - -#. ($num, $queue) -#: docs/design_docs/string-extraction-guide.txt:47 -#: lib/RT/StyleGuide.pod:780 -msgid "You found %1 tickets in queue %2" -msgstr "Du fann %1 ärenden i kö %2" - -#: html/NoAuth/Logout.html:52 -msgid "You have been logged out of RT." -msgstr "Du har loggat av frÃ¥n RT." - -#: html/SelfService/Display.html:133 -msgid "You have no permission to create tickets in that queue." -msgstr "Du har inte tillÃ¥telse att skapa ärenden i den kön." - -#: lib/RT/Ticket_Overlay.pm:2003 -msgid "You may not create requests in that queue." -msgstr "Du fÃ¥r inte skapa förfrÃ¥gningar i den kön." - -#: html/NoAuth/Logout.html:56 -msgid "You're welcome to login again" -msgstr "Du är välkommen att logga in igen" - -#: etc/initialdata:502 -msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "Din förfrÃ¥gan har godkänts av %1. Andra godkännanden inväntas kanske fortfarande." - -#: etc/initialdata:540 -msgid "Your request has been approved." -msgstr "Din förfrÃ¥gan har godkänts." - -#: etc/initialdata:445 -msgid "Your request was rejected." -msgstr "Din förfrÃ¥gan avvisades." - -#: html/autohandler:251 -msgid "Your username or password is incorrect" -msgstr "Ditt användarnamn eller lösenord är inte korrekt" - -#: html/Admin/Users/Modify.html:168 -#: html/User/Prefs.html:149 -msgid "Zip" -msgstr "Zip" - -#: lib/RT/System.pm:87 -msgid "allow creation of saved searches" -msgstr "tillÃ¥t skapande av sparade sökningar" - -#: lib/RT/System.pm:86 -msgid "allow loading of saved searches" -msgstr "tillÃ¥t inläsning av sparade sökningar" - -#. ($right->PrincipalObj->Object->SelfDescription) -#: html/User/Elements/DelegateRights:80 -msgid "as granted to %1" -msgstr "som givet till %1" - -#: html/Search/Results.html:83 -msgid "chart" -msgstr "diagram" - -#: html/SelfService/Closed.html:49 -msgid "closed" -msgstr "stängd" - -#: html/Elements/SelectCustomFieldOperator:59 -#: html/Elements/SelectMatch:55 -msgid "contains" -msgstr "innehÃ¥ller" - -#: html/Admin/Queues/Modify.html:98 -#: lib/RT/Date.pm:346 -msgid "days" -msgstr "dagar" - -#: lib/RT/Queue_Overlay.pm:87 -msgid "deleted" -msgstr "raderad" - -#: html/Search/Elements/PickBasics:61 -msgid "does not match" -msgstr "matchar inte" - -#: html/Elements/SelectCustomFieldOperator:59 -#: html/Elements/SelectMatch:56 -msgid "doesn't contain" -msgstr "innehÃ¥ller inte" - -#: html/Elements/SelectEqualityOperator:59 -msgid "equal to" -msgstr "lika med" - -#: html/Search/Build.html:547 -msgid "error: can't move down" -msgstr "fel: kan inte flytta ner" - -#: html/Search/Build.html:569 -msgid "error: can't move left" -msgstr "fel: kan inte flytta till vänster" - -#: html/Search/Build.html:528 -msgid "error: can't move up" -msgstr "fel: kan inte flytta upp" - -#: html/Search/Build.html:612 -msgid "error: nothing to delete" -msgstr "fel: inget att radera" - -#: html/Search/Build.html:533 -#: html/Search/Build.html:552 -#: html/Search/Build.html:574 -#: html/Search/Build.html:603 -msgid "error: nothing to move" -msgstr "fel: inget att flytta" - -#: html/Search/Build.html:630 -msgid "error: nothing to toggle" -msgstr "fel: inget att växla" - -#: html/Elements/SelectCustomFieldOperator:59 -#: html/Elements/SelectEqualityOperator:59 -msgid "greater than" -msgstr "större än" - -#. ($self->Name) -#: lib/RT/Group_Overlay.pm:214 -msgid "group '%1'" -msgstr "grupp '%1'" - -#. ($m->scomp('Elements/SelectGroupBy', Name => 'PrimaryGroupBy', Query => $Query)) -#: html/Search/Results.html:88 -msgid "grouped by %1" -msgstr "grupperad efter %1" - -#: lib/RT/Date.pm:342 -msgid "hours" -msgstr "timmar" - -#: html/Search/Elements/PickBasics:48 -msgid "id" -msgstr "ID" - -#: html/Elements/SelectBoolean:53 -#: html/Elements/SelectCustomFieldOperator:59 -#: html/Elements/SelectMatch:57 -#: html/Search/Elements/PickBasics:162 -#: html/Search/Elements/PickBasics:74 -#: html/Search/Elements/PickBasics:90 -#: html/Search/Elements/PickCFs:53 -msgid "is" -msgstr "är" - -#: html/Elements/SelectBoolean:57 -#: html/Elements/SelectCustomFieldOperator:59 -#: html/Elements/SelectMatch:58 -#: html/Search/Elements/PickBasics:163 -#: html/Search/Elements/PickBasics:75 -#: html/Search/Elements/PickBasics:91 -#: html/Search/Elements/PickCFs:54 -msgid "isn't" -msgstr "är inte" - -#: html/Elements/SelectCustomFieldOperator:59 -#: html/Elements/SelectEqualityOperator:59 -msgid "less than" -msgstr "mindre än" - -#: html/Search/Elements/PickBasics:60 -msgid "matches" -msgstr "matchar" - -#: lib/RT/Date.pm:338 -msgid "min" -msgstr "min." - -#: lib/RT/Date.pm:354 -msgid "months" -msgstr "mÃ¥nader" - -#: lib/RT/Queue_Overlay.pm:82 -msgid "new" -msgstr "ny" - -#: html/Admin/Elements/PickCustomFields:64 -#: html/Admin/Elements/PickObjects:65 -msgid "no name" -msgstr "inget namn" - -#: html/Admin/Elements/EditScrips:64 -msgid "no value" -msgstr "inget värde" - -#: html/Admin/Elements/EditQueueWatchers:48 -#: html/Ticket/Elements/EditWatchers:49 -msgid "none" -msgstr "inget" - -#: html/Elements/SelectEqualityOperator:59 -msgid "not equal to" -msgstr "inte lika med" - -#: lib/RT/Queue_Local.pm:2 -msgid "offer" -msgstr "" - -#: html/SelfService/Elements/MyRequests:82 -#: lib/RT/Queue_Overlay.pm:83 -msgid "open" -msgstr "öppen" - -#. ($self->Name, $user->Name) -#: lib/RT/Group_Overlay.pm:219 -msgid "personal group '%1' for user '%2'" -msgstr "personlig grupp '%1' för användare '%2'" - -#. ($queue->Name, $self->Type) -#: lib/RT/Group_Overlay.pm:227 -msgid "queue %1 %2" -msgstr "kö %1 %2" - -#: lib/RT/Queue_Overlay.pm:86 -msgid "rejected" -msgstr "avvisad" - -#: lib/RT/Queue_Overlay.pm:85 -msgid "resolved" -msgstr "löst" - -#: lib/RT/Date.pm:334 -msgid "sec" -msgstr "sek." - -#: lib/RT/System.pm:85 -msgid "show Configuration tab" -msgstr "visa konfigurationstab" - -#: html/Search/Results.html:80 -msgid "spreadsheet" -msgstr "kalkylblad" - -#: lib/RT/Queue_Overlay.pm:84 -msgid "stalled" -msgstr "i väntläge" - -#. ($m->scomp('Elements/SelectChartType', Name => 'ChartStyle')) -#: html/Search/Results.html:89 -msgid "style: %1" -msgstr "stil: %1" - -#: html/Prefs/MyRT.html:93 -msgid "summary rows" -msgstr "summeringsrader" - -#. ($self->Type) -#: lib/RT/Group_Overlay.pm:222 -msgid "system %1" -msgstr "system %1" - -#. ($self->Type) -#: lib/RT/Group_Overlay.pm:233 -msgid "system group '%1'" -msgstr "systemgrupp '%1'" - -#: html/Elements/Error:64 -#: html/SelfService/Error.html:63 -msgid "the calling component did not specify why" -msgstr "den anropade komponenten specificerade inte varför" - -#. ($self->Instance, $self->Type) -#: lib/RT/Group_Overlay.pm:230 -msgid "ticket #%1 %2" -msgstr "ärende #%1 %2" - -#. ($self->Id) -#: lib/RT/Group_Overlay.pm:236 -msgid "undescribed group %1" -msgstr "icke-beskriven grupp %1" - -#. ($user->Object->Name) -#: lib/RT/Group_Overlay.pm:211 -msgid "user %1" -msgstr "användare %1" - -#: lib/RT/Date.pm:350 -msgid "weeks" -msgstr "veckor" - -#: lib/RT/Date.pm:358 -msgid "years" -msgstr "Ã¥r" - diff --git a/rt/lib/RT/I18N/tr.po b/rt/lib/RT/I18N/tr.po deleted file mode 100644 index 58c6b7943..000000000 --- a/rt/lib/RT/I18N/tr.po +++ /dev/null @@ -1,5079 +0,0 @@ -# Turkish localization catalog for Request Tracker (RT) -# First Author: Burak Gürsoy <burak@cpan.org>, Jun 2007 -msgid "" -msgstr "" -"Project-Id-Version: RT 3.6.x\n" -"POT-Creation-Date: 2007-15-06 22:30+0200\n" -"PO-Revision-Date: 2007-15-06 22:30+0200\n" -"Last-Translator: Burak Gürsoy <burak@cpan.org>\n" -"Language-Team: rt-devel <rt-devel@lists.bestpractical.com>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: html/Widgets/SavedSearch:70 -#. ($self->{CurrentSearch}{Object}->Description) -msgid " %1 deleted." -msgstr " %1 silindi." - -#: html/Widgets/SavedSearch:47 -#. ($self->{CurrentSearch}{Description}, $args->{Description}) -msgid " %1 renamed to %2." -msgstr " %1 deÄŸeri %2 olarak yeniden adlandırıldı." - -#: html/Widgets/SavedSearch:60 -#. ($args->{Description}) -msgid " %1 saved." -msgstr " %1 kaydedildi." - -#: html/Approvals/Elements/Approve:48 html/Approvals/Elements/ShowDependency:71 html/SelfService/Display.html:46 html/Ticket/Display.html:47 html/Ticket/Display.html:51 -#. ($Ticket->id, $Ticket->Subject) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -#. ($ticket->Id, $ticket->Subject) -#. ($TicketObj->Id, $TicketObj->Subject) -msgid "#%1: %2" -msgstr "" - -#: html/Elements/ShowSearch:105 -msgid "$1" -msgstr "" - -#: lib/RT/Record.pm:940 -#. ($label) -msgid "$prefix %1" -msgstr "" - -#: lib/RT/URI/fsck_com_rt.pm:256 -#. ($self->ObjectType, $self->Object->Id) -msgid "%1 #%2" -msgstr "" - -#: lib/RT/Date.pm:365 -#. ($s, $time_unit) -msgid "%1 %2" -msgstr "" - -#: lib/RT/Date.pm:401 -#. ($self->GetWeekday($wday), $self->GetMonth($mon), map {sprintf "%02d", $_} ($mday, $hour, $min, $sec), ($year+1900)) -msgid "%1 %2 %3 %4:%5:%6 %7" -msgstr "%3 %2 %7 %1, %4:%5:%6" - -#: lib/RT/Record.pm:1685 lib/RT/Transaction_Overlay.pm:647 lib/RT/Transaction_Overlay.pm:690 -#. ($cf->Name, $new_value->Content) -#. ($field, $self->NewValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 added" -msgstr "%1 %2 eklendi" - -#: lib/RT/Date.pm:362 -#. ($s, $time_unit) -msgid "%1 %2 ago" -msgstr "%1 %2 önce" - -#: lib/RT/Record.pm:1692 lib/RT/Transaction_Overlay.pm:654 -#. ($cf->Name, $old_content, $new_value->Content) -#. ($field, $self->OldValue, $self->NewValue) -msgid "%1 %2 changed to %3" -msgstr "%1: %2 deÄŸeri %3 olarak deÄŸiÅŸtirildi" - -#: lib/RT/Record.pm:1689 lib/RT/Transaction_Overlay.pm:650 lib/RT/Transaction_Overlay.pm:696 -#. ($cf->Name, $old_value->Content) -#. ($field, $self->OldValue) -#. ($self->Field, $principal->Object->Name) -msgid "%1 %2 deleted" -msgstr "%1 %2 silindi" - -#: html/Admin/Elements/EditScrips:65 html/Admin/Elements/ListGlobalScrips:63 html/Ticket/Elements/PreviewScrips:103 -#. (loc($scrip->ConditionObj->Name), loc($scrip->ActionObj->Name), loc($scrip->TemplateObj->Name)) -msgid "%1 %2 with template %3" -msgstr "%1 %2 ile ÅŸablon %3" - -#: html/Ticket/Elements/ShowAttachments:72 -#. ($rev->CreatedAsString, $size, $rev->CreatorObj->Name) -msgid "%1 (%2) by %3" -msgstr "%1 (%2) oluÅŸturan: %3" - -#: html/SelfService/Update.html:60 html/Ticket/Elements/EditBasics:108 html/Ticket/Update.html:61 html/Ticket/Update.html:63 html/Tools/MyDay.html:66 -#. (loc($DefaultStatus)) -#. (loc($Ticket->Status())) -#. (loc($TicketObj->Status)) -#. ($TicketObj->OwnerObj->Name()) -msgid "%1 (Unchanged)" -msgstr "%1 (DeÄŸiÅŸmemiÅŸ)" - -#: bin/rt-crontool:237 bin/rt-crontool:244 bin/rt-crontool:250 -#. ("--search-argument", "--search") -#. ("--condition-argument", "--condition") -#. ("--action-argument", "--action") -msgid "%1 - An argument to pass to %2" -msgstr "%1 - %2 komutuna geçilecek bir argüman" - -#: bin/rt-crontool:262 -#. ("--verbose") -msgid "%1 - Output status updates to STDOUT" -msgstr "%1 - STDOUT' a gönderilen çıktı durumu güncellemeleri" - -#: bin/rt-crontool:253 -#. ("--template-id") -msgid "%1 - Specify id of the template you want to use" -msgstr "%1 - Kullanmak istediÄŸiniz ÅŸablonun adını belirtin" - -#: bin/rt-crontool:256 -#. ("--transaction") -msgid "%1 - Specify if you want to use either 'first' or 'last' tarnsaction" -msgstr "%1 - 'first' veya 'last' hareketlerinden hangisini kullanacağınızı belirtin" - -#: bin/rt-crontool:247 -#. ("--action") -msgid "%1 - Specify the action module you want to use" -msgstr "%1 - Kullanmak istediÄŸiniz eylem modülünü belirtin" - -#: bin/rt-crontool:241 -#. ("--condition") -msgid "%1 - Specify the condition module you want to use" -msgstr "%1 - Kullanmak istediÄŸiniz durum modülünü belirtin" - -#: bin/rt-crontool:234 -#. ("--search") -msgid "%1 - Specify the search module you want to use" -msgstr "%1 - Kullanmak istediÄŸiniz arama modülünü belirtin" - -#: bin/rt-crontool:259 -#. ("--transaction-type") -msgid "%1 - Specify the type of a transaction you want to use" -msgstr "%1 - Kullanmak istediÄŸiniz hareket türünü belirtin" - -#: html/Elements/Footer:56 -#. ('»|«', $RT::VERSION, '2006', '<a href="http://www.bestpractical.com?rt='.$RT::VERSION.'">Best Practical Solutions, LLC</a>',) -msgid "%1 RT %2 Copyright 1996-%3 %4." -msgstr "%1 RT sürüm %2 Telif Hakkı: 1996-%3 %4." - -#: lib/RT/ScripAction_Overlay.pm:150 -#. ($self->Id) -msgid "%1 ScripAction loaded" -msgstr "ScriptAction %1 yüklendi" - -#: lib/RT/Record.pm:1722 -#. ($args{'Value'}, $cf->Name) -msgid "%1 added as a value for %2" -msgstr "%1, %2 için bir deÄŸer olarak eklendi" - -#: lib/RT/Link_Overlay.pm:144 lib/RT/Link_Overlay.pm:151 -#. ($args{'Base'}) -#. ($args{'Target'}) -msgid "%1 appears to be a local object, but can't be found in the database" -msgstr "%1 yerel bir nesne olarak gözüküyor, fakat veritabanında mevcut deÄŸil" - -#: html/Ticket/Elements/ShowDates:73 lib/RT/Transaction_Overlay.pm:531 -#. ($self->BriefDescription , $self->CreatorObj->Name) -#. ($Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name) -msgid "%1 by %2" -msgstr "%1 - %2" - -#: lib/RT/Transaction_Overlay.pm:788 lib/RT/Transaction_Overlay.pm:797 lib/RT/Transaction_Overlay.pm:800 -#. ($self->Field , $q1->Name , $q2->Name) -#. ($self->Field, $t2->AsString, $t1->AsString) -#. ($self->Field, ($self->OldValue? "'".$self->OldValue ."'" : $self->loc("(no value)")) , "'". $self->NewValue."'") -msgid "%1 changed from %2 to %3" -msgstr "%1, %2 deÄŸerinden %3 deÄŸerine deÄŸiÅŸti" - -#: html/Search/Build.html:213 -#. ($Description) -msgid "%1 copy" -msgstr "%1 kopya" - -#: lib/RT/Record.pm:944 -msgid "%1 could not be set to %2." -msgstr "%1, %2 olarak atanamıyor" - -#: lib/RT/Ticket_Overlay.pm:2787 -#. ($self) -msgid "%1 couldn't set status to resolved. RT's Database may be inconsistent." -msgstr "%1, durumunu çözülmüş olarak deÄŸiÅŸtiremiyor. RT' nin veritabanı tutarsız olabilir" - -#: lib/RT/Transaction_Overlay.pm:571 -#. ($obj_type) -msgid "%1 created" -msgstr "%1 oluÅŸturuldu" - -#: lib/RT/Transaction_Overlay.pm:576 -#. ($obj_type) -msgid "%1 deleted" -msgstr "%1 silindi" - -#: etc/initialdata:593 -msgid "%1 highest priority tickets I own" -msgstr "Sahibi olduÄŸum yüksek öneme sahip %1 bilet" - -#: bin/rt-crontool:229 -#. ($0) -msgid "%1 is a tool to act on tickets from an external scheduling tool, such as cron." -msgstr "%1, biletlere dışarıdan müdahale edebilen bir araçtır (cron gibi)" - -#: lib/RT/Queue_Overlay.pm:863 -#. ($principal->Object->Name, $args{'Type'}) -msgid "%1 is no longer a %2 for this queue." -msgstr "%1, artık bu kuyruk için %2 deÄŸil." - -#: html/Ticket/Elements/ShowTime:47 html/Ticket/Elements/ShowTime:49 -#. ($minutes) -msgid "%1 min" -msgstr "%1 dakika" - -#: etc/initialdata:601 -msgid "%1 newest unowned tickets" -msgstr "Sahibi olmayan en yeni %1 bilet" - -#: lib/RT/CustomField_Overlay.pm:893 -msgid "%1 objects" -msgstr "%1 nesne" - -#: html/User/Elements/DelegateRights:97 -#. (loc($ObjectType =~ /^RT::(.*)$/)) -msgid "%1 rights" -msgstr "%1 hak" - -#: lib/RT/Action/ResolveMembers.pm:63 -#. (ref $self) -msgid "%1 will resolve all members of a resolved group ticket." -msgstr "%1, çözülmüş bir grup biletinin tüm üyelerini çözecektir" - - -#: lib/RT/CustomField_Overlay.pm:894 -msgid "%1's %2 objects" -msgstr "%1 için %2 nesne" - -#: lib/RT/CustomField_Overlay.pm:895 -msgid "%1's %2's %3 objects" -msgstr "%1 ve %2 için %3 nesne" - -#: html/Search/Elements/SearchPrivacy:52 html/Search/Elements/SelectSearchObject:55 html/Search/Elements/SelectSearchesForObjects:57 -#. ($object->Name) -#. ($Object->Name) -msgid "%1's saved searches" -msgstr "%1 için kaydedilmiÅŸ aramalar" - -#: lib/RT/Transaction_Overlay.pm:481 -#. ($self) -msgid "%1: no attachment specified" -msgstr "%1: herhangi bir eklenti belirtilmedi" - -#: html/Ticket/Elements/ShowTransactionAttachments:78 -#. ($size) -msgid "%1b" -msgstr "" - -#: html/Ticket/Elements/ShowTransactionAttachments:75 -#. (int( $size / 102.4 ) / 10) -msgid "%1k" -msgstr "" - -#: html/Ticket/Elements/ShowTime:49 -#. (sprintf("%.1f",$minutes / 60)) -msgid "%quant(%1,hour)" -msgstr "" - -#: lib/RT/Ticket_Overlay.pm:1142 -#. ($args{'Status'}) -msgid "'%1' is an invalid value for status" -msgstr "'%1', durum için geçersiz bir deÄŸer" - -#: html/Admin/Elements/EditCustomFieldValues:50 html/Admin/Elements/EditQueueWatchers:50 html/Admin/Elements/EditScrips:56 html/Admin/Elements/EditTemplates:57 html/Admin/Groups/Members.html:73 html/Elements/EditLinks:54 html/Ticket/Elements/EditPeople:67 html/User/Groups/Members.html:76 -msgid "(Check box to delete)" -msgstr "(Silmek için kutucuÄŸu iÅŸaretleyin)" - -#: html/Ticket/Elements/PreviewScrips:99 -msgid "(Check boxes to disable notifications to the listed recipients)" -msgstr "(Listelenen alıcılara uyarı gitmesini iptal etmek için kutucukları iÅŸaretleyin)" - -#: html/Ticket/Elements/PreviewScrips:123 -msgid "(Check boxes to enable notifications to the listed recipients)" -msgstr "Listelenen alıcılara uyarı gitmesi için kutucukları iÅŸaretleyin)" - -#: html/Ticket/Create.html:218 -msgid "(Enter ticket ids or URLs, separated with spaces)" -msgstr "(BoÅŸluklarla ayrılmış olarak, bilet numaralarını veya URL' lerini girin)" - -#: html/Admin/Queues/Modify.html:75 html/Admin/Queues/Modify.html:81 -#. ($RT::CorrespondAddress) -#. ($RT::CommentAddress) -msgid "(If left blank, will default to %1)" -msgstr "(BoÅŸ bırakılırsa, varsayılan olarak %1 deÄŸerini alacaktır)" - -#: html/Admin/Elements/EditCustomFields:74 html/Admin/Elements/ListGlobalCustomFields:53 -msgid "(No custom fields)" -msgstr "(Özel alan yok)" - -#: html/Admin/Groups/Members.html:71 html/User/Groups/Members.html:74 -msgid "(No members)" -msgstr "(Ãœye yok)" - -#: html/Admin/Elements/EditScrips:53 html/Admin/Elements/ListGlobalScrips:48 -msgid "(No scrips)" -msgstr "(Senet yok)" - -#: html/Admin/Elements/EditTemplates:52 -msgid "(No templates)" -msgstr "(Åžablon yok)" - -#: html/Admin/Elements/PickCustomFields:47 html/Admin/Elements/PickObjects:47 -msgid "(None)" -msgstr "(Hiçbiri)" - -#: html/Ticket/Update.html:90 -msgid "(Sends a blind carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "(Bu güncellemeyi, virgülle ayrılmış eposta listesine, görünmez karbon kopya olarak gönderir. Ä°leriki güncellemeleri kimin alıp almayacağını <strong>deÄŸiÅŸtirmez</strong>.)" - -#: html/Ticket/Create.html:103 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of administrative email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "(Bu güncellemeyi, virgülle ayrılmış eposta listesine, karbon kopya olarak gönderir. Listedeki kiÅŸiler ileriki güncellemeleri <strong>alacaktır</strong>.)" - -#: html/Ticket/Update.html:86 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. Does <strong>not</strong> change who will receive future updates.)" -msgstr "(Bu güncellemeyi, virgülle ayrılmış eposta listesine, karbon kopya olarak gönderir. Ä°leriki güncellemeleri kimin alıp almayacağını <strong>deÄŸiÅŸtirmez</strong>.)" - -#: html/Ticket/Create.html:93 -msgid "(Sends a carbon-copy of this update to a comma-delimited list of email addresses. These people <strong>will</strong> receive future updates.)" -msgstr "(Bu güncellemeyi, virgülle ayrılmış eposta listesine, karbon kopya olarak gönderir. Listedeki kiÅŸiler ileriki güncellemeleri <strong>alacaktır</strong>.)" - -#: html/Admin/Elements/EditScrip:96 -msgid "(Use these fields when you choose 'User Defined' for a condition or action)" -msgstr "(Bir durum veya eylem için 'Kullanıcı Tanımlı' yı seçtiÄŸinizde, bu alanları kullanın)" - -#: html/Ticket/Elements/EditWatchers:60 html/Ticket/Elements/ShowUserEntry:53 -msgid "(Will not be sent email)" -msgstr "(Eposta gönderilmeyecek)" - -#: html/Admin/Groups/index.html:57 html/User/Groups/index.html:54 -msgid "(empty)" -msgstr "(boÅŸ)" - -#: html/Admin/Users/index.html:60 -msgid "(no name listed)" -msgstr "(herhangi bir ad listelenmedi)" - -#: html/Admin/Elements/SelectRights:72 html/Elements/EditCustomFieldSelect:69 html/Elements/SelectCustomFieldValue:51 html/Elements/ShowCustomFields:54 html/Search/Chart:56 html/Search/Elements/Chart:76 lib/RT/Transaction_Overlay.pm:591 -msgid "(no value)" -msgstr "(deÄŸer yok)" - -#: html/Admin/Elements/EditCustomFieldValues:47 -msgid "(no values)" -msgstr "(deÄŸer yok)" - -#: html/Elements/EditLinks:132 html/Ticket/Elements/BulkLinks:49 -msgid "(only one ticket)" -msgstr "(sadece bir bilet)" - -#: html/Elements/RT__Ticket/ColumnMap:149 -msgid "(pending approval)" -msgstr "(onaylanmayı bekliyor)" - -#: html/Elements/RT__Ticket/ColumnMap:152 -msgid "(pending other Collection)" -msgstr "(diÄŸer bir Koleksiyonu bekliyor)" - -#: html/Admin/Users/Modify.html:71 -msgid "(required)" -msgstr "(gerekli)" - -#: html/Ticket/Elements/ShowTransactionAttachments:82 -msgid "(untitled)" -msgstr "(baÅŸlıksız)" - -#: html/Ticket/Elements/Reminders:133 -msgid "(yyyy/mm/dd)" -msgstr "(yyyy/aa/gg)" - -#: html/Elements/EditCustomFieldSelect:57 -msgid "-" -msgstr "" - -#: bin/rt-crontool:95 -msgid "--transaction argument could be only 'first' or 'last'" -msgstr "--transaction argümanı sadece 'first' veya 'last' olabilir" - -#: html/Ticket/Elements/ShowBasics:53 -msgid "<% $Ticket->Status%>" -msgstr "" - -#: html/Elements/SelectTicketTypes:48 -msgid "<% $_ %>" -msgstr "" - -#: html/Search/Elements/SelectLinks:48 -msgid "<%$_%>" -msgstr "" - -#: html/Search/Elements/DisplayOptions:73 -msgid "<%$field%>" -msgstr "" - -#: html/Elements/CreateTicket:47 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" class=\"button\" value=\"New ticket in\" /> %1" -msgstr "<input type=\"submit\" class=\"button\" value=\"Yeni bilet:\" /> %1" - -#: docs/design_docs/string-extraction-guide.txt:54 lib/RT/StyleGuide.pod:787 -#. ($m->scomp('/Elements/SelectNewTicketQueue')) -msgid "<input type=\"submit\" value=\"New ticket in\"> %1" -msgstr "<input type=\"submit\" value=\"Yeni bilet:\"> %1" - -#: etc/initialdata:218 -msgid "A blank template" -msgstr "BoÅŸ bir ÅŸablon" - -#: html/Admin/Users/Modify.html:371 -msgid "A password was not set, so user won't be able to login." -msgstr "Bir parola atanmamış, dolayısıyla, kullanıcı giriÅŸ yapamayacak" - -#: lib/RT/ACE_Overlay.pm:174 lib/RT/Principal_Overlay.pm:219 -msgid "ACE not found" -msgstr "ACE bulunamadı" - -#: lib/RT/ACE_Overlay.pm:853 -msgid "ACEs can only be created and deleted." -msgstr "ACE' ler sadece oluÅŸturulabilir ve silinebilirler." - -#: html/Search/Elements/SelectAndOr:46 -msgid "AND" -msgstr "VE" - -#: html/User/Elements/Tabs:53 -msgid "About me" -msgstr "Hakkımda" - -#: html/Admin/Users/Modify.html:106 -msgid "Access control" -msgstr "EriÅŸim denetimi" - -#: html/Admin/Elements/EditScrip:65 -msgid "Action" -msgstr "Eylem" - -#: lib/RT/Scrip_Overlay.pm:172 -#. ($args{'ScripAction'}) -msgid "Action %1 not found" -msgstr "%1 eylemi bulunamadı" - -#: bin/rt-crontool:171 -msgid "Action committed.\\n" -msgstr "Eylem yapıldı" - -#: lib/RT/Scrip_Overlay.pm:168 -msgid "Action is mandatory argument" -msgstr "Eylem, zorunlu bir argüman" - -#: bin/rt-crontool:167 -msgid "Action prepared..." -msgstr "Eylem hazırlanıyor..." - -#: html/Search/Build.html:85 -msgid "Add" -msgstr "Ekle" - -#: html/Search/Bulk.html:92 -msgid "Add AdminCc" -msgstr "Yöneticiye karbon kopya ekle" - -#: html/Search/Bulk.html:88 -msgid "Add Cc" -msgstr "Karbon kopya ekle" - -#: html/Search/Elements/EditFormat:49 -msgid "Add Columns" -msgstr "Sütun ekle" - -#: html/Search/Elements/PickCriteria:46 -msgid "Add Criteria" -msgstr "Kıstas ekle" - -#: html/Ticket/Create.html:147 html/Ticket/Update.html:116 -msgid "Add More Files" -msgstr "Daha fazla dosya ekle" - -#: html/Search/Bulk.html:84 -msgid "Add Requestor" -msgstr "Ä°stekçi ekle" - -#: html/Admin/Elements/AddCustomFieldValue:46 -msgid "Add Value" -msgstr "DeÄŸer ekle" - -#: html/Admin/Global/Scrip.html:83 -msgid "Add a scrip which will apply to all queues" -msgstr "Bütün kuyruklara etki edecek bir senet ekle" - -#: html/Search/Build.html:109 html/Search/Build.html:94 -msgid "Add and Search" -msgstr "Ekle ve Ara" - -#: html/Search/Bulk.html:124 -msgid "Add comments or replies to selected tickets" -msgstr "Seçilen senetlere yorum veya cevap ekle" - -#: html/Admin/Groups/Members.html:63 html/User/Groups/Members.html:60 -msgid "Add members" -msgstr "Ãœye ekle" - -#: html/Admin/Queues/People.html:87 html/Ticket/Elements/AddWatchers:49 -msgid "Add new watchers" -msgstr "Yeni gözcüler ekle" - -#: html/Search/Build.html:85 -msgid "Add these terms to your search" -msgstr "Aramanıza bu terimleri ekleyin" - -#: html/Search/Bulk.html:158 -msgid "Add values" -msgstr "DeÄŸer ekle" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "Add, delete and modify custom field values for objects" -msgstr "Nesneler için, kiÅŸiselleÅŸtirilmiÅŸ alanları ekleyin, silin ve deÄŸiÅŸtirin" - -#: lib/RT/Queue_Overlay.pm:763 -#. ($args{'Type'}) -msgid "Added principal as a %1 for this queue" -msgstr "Bu kuyruk için, asıl, %1 olarak eklendi" - -#: lib/RT/Ticket_Overlay.pm:1455 -#. ($self->loc($args{'Type'})) -msgid "Added principal as a %1 for this ticket" -msgstr "Bu bilet için, asıl, %1 olarak eklendi" - -#: html/Admin/Users/Modify.html:146 html/User/Prefs.html:133 -msgid "Address1" -msgstr "Adres1" - -#: html/Admin/Users/Modify.html:151 html/User/Prefs.html:137 -msgid "Address2" -msgstr "Adres2" - -#: html/Ticket/Create.html:98 -msgid "Admin Cc" -msgstr "Yönetici Karbon Kopya" - -#: etc/initialdata:295 -msgid "Admin Comment" -msgstr "Yönetici Yorumu" - -#: etc/initialdata:274 -msgid "Admin Correspondence" -msgstr "Yönetici Yazışması" - -#: html/Admin/Queues/index.html:46 html/Admin/Queues/index.html:49 -msgid "Admin queues" -msgstr "Yönetici kuyrukları" - - -#: html/Admin/Global/index.html:47 html/Admin/Global/index.html:49 -msgid "Admin/Global configuration" -msgstr "Yönetici/Küresel ayarlar" - -#: etc/initialdata:56 html/Ticket/Elements/ShowPeople:60 lib/RT/ACE_Overlay.pm:113 -msgid "AdminCc" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:106 -msgid "AdminCustomField" -msgstr "" - -#: lib/RT/Group_Overlay.pm:163 -msgid "AdminGroup" -msgstr "" - -#: lib/RT/Group_Overlay.pm:165 -msgid "AdminGroupMembership" -msgstr "" - -#: lib/RT/System.pm:80 -msgid "AdminOwnPersonalGroups" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "AdminQueue" -msgstr "" - -#: lib/RT/System.pm:81 -msgid "AdminUsers" -msgstr "" - -#: html/Admin/Queues/People.html:69 html/Ticket/Elements/EditPeople:75 -msgid "Administrative Cc" -msgstr "Yönetimsel karbon kopya" - -#: html/Ticket/Elements/Tabs:216 -msgid "Advanced" -msgstr "GeliÅŸmiÅŸ" - -#: html/Elements/SelectDateRelation:57 -msgid "After" -msgstr "Sonra" - -#: html/Search/Elements/PickCriteria:52 -msgid "Aggregator" -msgstr "Toplayıcı" - -#: etc/initialdata:363 -msgid "All Approvals Passed" -msgstr "Bütün Onaylar Geçti" - -#: html/Admin/Queues/index.html:75 -msgid "All Queues" -msgstr "Bütün Kuyruklar" - -#: html/Search/Elements/EditQuery:56 -msgid "And/Or" -msgstr "Ve/Veya" - -#: html/Admin/CustomFields/Modify.html:73 html/Admin/Elements/CustomFieldTabs:83 -msgid "Applies to" -msgstr "Etki edeceÄŸi bölümler: " - -#: html/Search/Edit.html:64 -msgid "Apply" -msgstr "Uygula" - -#: html/Search/Edit.html:64 -msgid "Apply your changes" -msgstr "DeÄŸiÅŸikliklerinizi uygulayın" - -#: html/Elements/Tabs:77 -msgid "Approval" -msgstr "Onaylama" - -#: html/Approvals/Display.html:65 html/Approvals/Elements/ShowDependency:63 html/Approvals/index.html:86 -#. ($Ticket->Id, $Ticket->Subject) -#. ($ticket->id, $msg) -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Approval #%1: %2" -msgstr "Onaylama #%1: %2" - -#: html/Approvals/index.html:75 -#. ($ticket->Id) -msgid "Approval #%1: Notes not recorded due to a system error" -msgstr "Onaylama #%1: Bir sistem hatası nedeniyle, notlar kaydedilemedi" - -#: html/Approvals/index.html:73 -#. ($ticket->Id) -msgid "Approval #%1: Notes recorded" -msgstr "Onaylama #%1: Notlar kaydedildi" - -#: etc/initialdata:351 -msgid "Approval Passed" -msgstr "Onay Geçti" - -#: etc/initialdata:374 -msgid "Approval Rejected" -msgstr "Onay Reddedildi" - -#: html/Approvals/Elements/Approve:69 -msgid "Approve" -msgstr "Onayla" - -#: etc/initialdata:504 -msgid "Approver's notes: %1" -msgstr "Onaylayanın notları: %1" - -#: lib/RT/Date.pm:444 -msgid "Apr." -msgstr "Nis." - -#: html/Search/Elements/DisplayOptions:81 -msgid "Asc" -msgstr "Art" - -#: html/Elements/SelectSortOrder:56 -msgid "Ascending" -msgstr "Artan" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "Assign and remove custom fields" -msgstr "KiÅŸisel alanları ata ve kaldır" - -#: lib/RT/Queue_Overlay.pm:96 -msgid "AssignCustomFields" -msgstr "" - -#: html/Search/Bulk.html:142 html/SelfService/Update.html:87 html/Ticket/ModifyAll.html:115 html/Ticket/Update.html:116 -msgid "Attach" -msgstr "Ekle" - -#: html/SelfService/Create.html:92 html/Ticket/Create.html:143 -msgid "Attach file" -msgstr "Dosya ekle" - -#: html/SelfService/Update.html:75 html/Ticket/Create.html:131 html/Ticket/Update.html:94 -msgid "Attached file" -msgstr "EklenmiÅŸ dosya" - -#: html/Ticket/ShowEmailRecord.html:52 html/Ticket/ShowEmailRecord.html:56 html/Ticket/ShowEmailRecord.html:59 -#. ($Attachment) -msgid "Attachment '%1' could not be loaded" -msgstr "Eklenti '%1' yüklenemiyor" - -#: lib/RT/Transaction_Overlay.pm:489 -msgid "Attachment created" -msgstr "Eklenti oluÅŸturuldu" - -#: lib/RT/Tickets_Overlay.pm:1945 -msgid "Attachment filename" -msgstr "Eklenti dosya adı" - -#: html/Ticket/Elements/ShowAttachments:47 -msgid "Attachments" -msgstr "Eklentiler" - -#: lib/RT/Attributes_Overlay.pm:171 -msgid "Attribute Deleted" -msgstr "Öznitelik Silindi" - -#: lib/RT/Date.pm:448 -msgid "Aug." -msgstr "AÄŸu." - -#: etc/initialdata:221 -msgid "Autoreply" -msgstr "Otomatik cevap" - -#: etc/initialdata:72 -msgid "Autoreply To Requestors" -msgstr "Ä°stekçileri Otomatik Cevapla" - -#: html/Widgets/SelectionBox:185 -msgid "Available" -msgstr "Hazır" - -#: html/Admin/Elements/CustomFieldTabs:65 html/Admin/Elements/GroupTabs:60 html/Admin/Elements/QueueTabs:60 html/Admin/Elements/UserTabs:58 html/Ticket/Elements/Tabs:113 html/User/Elements/GroupTabs:59 -msgid "Basics" -msgstr "Temeller" - -#: html/Ticket/Update.html:88 -msgid "Bcc" -msgstr "Gizli karbon kopya" - -#: html/Admin/CustomFields/GroupRights.html:91 html/Admin/CustomFields/UserRights.html:74 html/Admin/Elements/EditScrip:89 -msgid "Be sure to save your changes" -msgstr "DeÄŸiÅŸikliklerinizi kaydettiÄŸinizden emin olun" - -#: html/Elements/SelectDateRelation:55 lib/RT/CurrentUser.pm:361 -msgid "Before" -msgstr "Önce" - -#: html/Elements/Logo:47 -msgid "Best Practical Solutions, LLC corporate logo" -msgstr "Best Practical Solutions, LLC ÅŸirket logosu" - -#: etc/initialdata:217 -msgid "Blank" -msgstr "BoÅŸ" - -#: html/Search/Elements/EditFormat:84 -msgid "Bold" -msgstr "Kalın" - -#: html/Search/Results.html:79 -msgid "Bookmarkable link" -msgstr "Yer imi olarak eklenebilir baÄŸlantı" - -#: html/Ticket/Elements/ShowHistory:64 html/Ticket/Elements/ShowHistory:69 -msgid "Brief headers" -msgstr "Kısa baÅŸlıklar" - -#: html/Ticket/Elements/Tabs:227 -msgid "Bulk Update" -msgstr "Toplu Güncelleme" - -#: lib/RT/User_Overlay.pm:1853 -msgid "Can not modify system users" -msgstr "Sistem kullanıcıları deÄŸiÅŸtirilemez" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "Can this principal see this queue" -msgstr "Bu yetkili, bu kuyruÄŸu gördü mü" - -#: lib/RT/CustomField_Overlay.pm:379 -msgid "Can't add a custom field value without a name" -msgstr "Bir ad olmadan, kiÅŸisel alan deÄŸeri eklenemez" - -#: html/Admin/CustomFields/Objects.html:86 -#. ($Class) -msgid "Can't find a collection class for '%1'" -msgstr "'%1' için bir koleksiyon sınıfı bulunamadı" - -#: html/Search/Build.html:286 -msgid "Can't find a saved search to work with" -msgstr "Ãœzerinde çalışılabilecek bir kaydedilmiÅŸ arama bulunamadı" - -#: lib/RT/Link_Overlay.pm:159 -msgid "Can't link a ticket to itself" -msgstr "Bir bileti kendisine baÄŸlayamazsınız" - -#: html/Widgets/SavedSearch:63 -#. (loc($self->{SearchType})) -msgid "Can't save %1" -msgstr "%1 kaydedilemedi" - -#: html/Search/Build.html:290 -msgid "Can't save this search" -msgstr "Bu arama kaydedilemiyor" - -#: lib/RT/Record.pm:1282 lib/RT/Record.pm:1358 -msgid "Can't specifiy both base and target" -msgstr "Taban ve hedefin ikisini birden belirtemezsiniz" - -#: html/autohandler:204 -#. ($msg) -msgid "Cannot create user: %1" -msgstr "Kullanıcı oluÅŸturulamadı: %1" - -#: html/Admin/Elements/AddCustomFieldValue:62 html/Admin/Elements/EditCustomFieldValues:58 -msgid "Category" -msgstr "Kategori" - -#: etc/initialdata:50 html/Admin/Queues/People.html:65 html/SelfService/Create.html:71 html/Ticket/Create.html:88 html/Ticket/Elements/EditPeople:72 html/Ticket/Elements/ShowPeople:56 html/Ticket/Update.html:83 lib/RT/ACE_Overlay.pm:112 -msgid "Cc" -msgstr "Karbon kopya" - -#: html/SelfService/Prefs.html:52 -msgid "Change password" -msgstr "Parolayı deÄŸiÅŸtir" - -#: html/Elements/Submit:78 -msgid "Check All" -msgstr "Hepsini iÅŸaretle" - -#: html/SelfService/Update.html:78 html/Ticket/Create.html:134 html/Ticket/Update.html:97 -msgid "Check box to delete" -msgstr "Silmek için kutucuÄŸu iÅŸaretleyin" - -#: html/Admin/Elements/SelectRights:55 -msgid "Check box to revoke right" -msgstr "Hak vermek için kutucuÄŸu iÅŸaretleyin" - -#: html/Elements/EditLinks:148 html/Elements/EditLinks:85 html/Elements/ShowLinks:78 html/Ticket/Create.html:223 html/Ticket/Elements/BulkLinks:64 -msgid "Children" -msgstr "Çocuklar" - -#: html/NoAuth/js/util.js:201 -msgid "Choose a date" -msgstr "Bir tarih seçin" - -#: html/Admin/Users/Modify.html:156 html/User/Prefs.html:141 -msgid "City" -msgstr "Åžehir" - -#: html/Elements/Submit:80 -msgid "Clear All" -msgstr "Hepsini Temizle" - -#: html/Helpers/CalPopup.html:51 -msgid "Close window" -msgstr "Pencereyi Kapat" - -#: html/Ticket/Elements/ShowDates:68 -msgid "Closed" -msgstr "Kapatıldı" - -#: html/SelfService/Closed.html:46 html/SelfService/Elements/Tabs:78 -msgid "Closed tickets" -msgstr "Kapatılmış biletler" - -#: lib/RT/CustomField_Overlay.pm:89 -msgid "Combobox: Select or enter multiple values" -msgstr "Seçim kutusu: Birden fazla deÄŸeri seçin veya girin" - -#: lib/RT/CustomField_Overlay.pm:90 -msgid "Combobox: Select or enter one value" -msgstr "Seçim kutusu: Bir tek deÄŸeri seçin veya girin" - -#: lib/RT/CustomField_Overlay.pm:91 -msgid "Combobox: Select or enter up to %1 values" -msgstr "Seçim kutusu: 1-%1 arası deÄŸer seçin veya girin" - -#: html/Ticket/Elements/ShowTransaction:190 html/Ticket/Elements/Tabs:185 -msgid "Comment" -msgstr "Yorum" - -#: html/Admin/Queues/Modify.html:79 -msgid "Comment Address" -msgstr "Yorum Adresi" - -#: lib/RT/Queue_Overlay.pm:111 -msgid "Comment on tickets" -msgstr "Biletler üzerine yorum yap" - -#: lib/RT/Queue_Overlay.pm:111 -msgid "CommentOnTicket" -msgstr "" - -#: html/Ticket/ModifyAll.html:91 html/Ticket/Update.html:75 -msgid "Comments (Not sent to requestors)" -msgstr "Yorumlar (istekçilere gönderilmedi)" - -#: html/Search/Bulk.html:128 -msgid "Comments (not sent to requestors)" -msgstr "Yorumlar (istekçilere gönderilmedi)" - -#: html/Admin/Users/Modify.html:225 html/Ticket/Elements/ShowRequestor:67 -msgid "Comments about this user" -msgstr "Bu kullanıcı hakkındaki yorumlar" - -#: lib/RT/Transaction_Overlay.pm:634 -msgid "Comments added" -msgstr "Yorumlar eklendi" - -#: lib/RT/Action/Generic.pm:175 -msgid "Commit Stubbed" -msgstr "Saplanmışları Ada" - -#: html/Admin/Elements/EditScrip:59 -msgid "Condition" -msgstr "Durum" - -#: lib/RT/Scrip_Overlay.pm:184 -msgid "Condition is mandatory argument" -msgstr "Durum, zorunlu bir argüman" - -#: bin/rt-crontool:151 -msgid "Condition matches..." -msgstr "Durum eÅŸleÅŸiyor..." - -#: lib/RT/Scrip_Overlay.pm:188 -msgid "Condition not found" -msgstr "Durum bulunamadı" - -#: html/Elements/Tabs:84 -msgid "Configuration" -msgstr "Ayarlar" - -#: html/SelfService/Prefs.html:54 -msgid "Confirm" -msgstr "Onayla" - -#: html/Admin/Elements/ModifyTemplate:65 html/Elements/SelectAttachmentField:48 html/Ticket/ModifyAll.html:119 -msgid "Content" -msgstr "İçerik" - -#: html/Elements/SelectAttachmentField:49 -msgid "Content-Type" -msgstr "" - -#: html/Search/Elements/EditSearches:65 -msgid "Copy" -msgstr "Kopya" - -#: etc/initialdata:286 -msgid "Correspondence" -msgstr "Uygunluk" - -#: lib/RT/Transaction_Overlay.pm:630 -msgid "Correspondence added" -msgstr "Uygunluk eklendi" - -#: lib/RT/Record.pm:1707 -msgid "Could not add new custom field value. " -msgstr "Yeni özel bölüm eklenemiyor. " - -#: lib/RT/Record.pm:1660 -#. (, $value_msg) -msgid "Could not add new custom field value. %1 " -msgstr "Yeni özel bölüm eklenemiyor. %1" - -#: lib/RT/Ticket_Overlay.pm:3048 lib/RT/Ticket_Overlay.pm:3056 lib/RT/Ticket_Overlay.pm:3073 -msgid "Could not change owner. " -msgstr "Sahip deÄŸiÅŸtirilemiyor." - -#: html/Admin/CustomFields/Modify.html:161 -#. ($msg) -msgid "Could not create CustomField" -msgstr "Özel bölüm oluÅŸturulamıyor" - -#: html/Admin/Elements/EditCustomField:113 -#. ($msg) -msgid "Could not create CustomField: %1" -msgstr "Özel bölüm oluÅŸturulamıyor: %1" - -#: html/User/Groups/Modify.html:98 lib/RT/Group_Overlay.pm:494 lib/RT/Group_Overlay.pm:501 -msgid "Could not create group" -msgstr "Grup oluÅŸturulamıyor" - -#: html/Admin/Global/Template.html:96 html/Admin/Queues/Template.html:93 -#. ($msg) -msgid "Could not create template: %1" -msgstr "Åžablon oluÅŸturulamıyor: %1" - -#: lib/RT/Ticket_Overlay.pm:1075 lib/RT/Ticket_Overlay.pm:407 -msgid "Could not create ticket. Queue not set" -msgstr "Bilet oluÅŸturulamıyor. Kuyruk atanmadı" - -#: lib/RT/User_Overlay.pm:255 lib/RT/User_Overlay.pm:269 lib/RT/User_Overlay.pm:278 lib/RT/User_Overlay.pm:287 lib/RT/User_Overlay.pm:296 lib/RT/User_Overlay.pm:310 lib/RT/User_Overlay.pm:320 lib/RT/User_Overlay.pm:496 -msgid "Could not create user" -msgstr "Kullanıcı oluÅŸturulamıyor" - -#: lib/RT/Queue_Overlay.pm:741 lib/RT/Ticket_Overlay.pm:1423 -msgid "Could not find or create that user" -msgstr "Bu kullanıcı bulunamıyor veya oluÅŸturulamıyor" - -#: lib/RT/Queue_Overlay.pm:802 lib/RT/Ticket_Overlay.pm:1504 -msgid "Could not find that principal" -msgstr "Bu yetkili bulunamıyor" - -#: html/Admin/CustomFields/Objects.html:69 -msgid "Could not load CustomField %1" -msgstr "Özel bölüm yüklenemiyor %1" - -#: html/Admin/Groups/Members.html:112 html/User/Groups/Members.html:111 html/User/Groups/Modify.html:103 -msgid "Could not load group" -msgstr "Grup yüklenemiyor" - -#: lib/RT/SavedSearch.pm:119 -#. ($privacy) -msgid "Could not load object for %1" -msgstr "%1 için nesne yüklenemiyor" - -#: lib/RT/SavedSearch.pm:197 -msgid "Could not load search attribute" -msgstr "Arama özniteliÄŸi yüklenemiyor" - -#: lib/RT/Queue_Overlay.pm:761 -#. ($args{'Type'}) -msgid "Could not make that principal a %1 for this queue" -msgstr "Bu yetkili, bu kuyruk için bir %1 yapılamıyor" - -#: lib/RT/Ticket_Overlay.pm:1444 -#. ($self->loc($args{'Type'})) -msgid "Could not make that principal a %1 for this ticket" -msgstr "Bu yetkili, bu bilet için bir %1 yapılamıyor" - -#: lib/RT/Queue_Overlay.pm:860 -#. ($args{'Type'}) -msgid "Could not remove that principal as a %1 for this queue" -msgstr "Bu yetkili, bu kuyruktan %1 olarak ayrılamıyor" - -#: lib/RT/User_Overlay.pm:191 -msgid "Could not set user info" -msgstr "Kullanıcı bilgisi atanamıyor" - -#: lib/RT/Transaction_Overlay.pm:159 -msgid "Couldn't add attachment" -msgstr "Eklenti eklenemiyor" - -#: lib/RT/Group_Overlay.pm:1003 -msgid "Couldn't add member to group" -msgstr "Kullanıcı gruba eklenemiyor" - -#: lib/RT/Record.pm:1719 lib/RT/Record.pm:1771 -#. ($Msg) -msgid "Couldn't create a transaction: %1" -msgstr "Bir hareket oluÅŸturulamıyor: %1" - -#: lib/RT/Record.pm:953 -msgid "Couldn't find row" -msgstr "Satır bulunamadı" - -#: lib/RT/Group_Overlay.pm:977 -msgid "Couldn't find that principal" -msgstr "Bu yetkili bulunamadı" - -#: lib/RT/CustomField_Overlay.pm:409 -msgid "Couldn't find that value" -msgstr "Bu deÄŸer bulunamadı" - -#: lib/RT/CurrentUser.pm:145 -#. ($self->Id) -msgid "Couldn't load %1 from the users database.\\n" -msgstr "%1 deÄŸeri, kullanıcı veritabanından yüklenemedi.\\n" - -#: html/Admin/CustomFields/UserRights.html:149 -#. ($id) -msgid "Couldn't load Class %1" -msgstr "%1 sınıfı yüklenemedi" - -#: html/Admin/CustomFields/GroupRights.html:107 -#. ($id) -msgid "Couldn't load CustomField %1" -msgstr "Özel bölüm %1 yüklenemedi" - -#: lib/RT/Ticket_Overlay.pm:2016 -#. ($self->Id) -msgid "Couldn't load copy of ticket #%1." -msgstr "#%1 numaralı biletin kopyası yüklenemedi" - -#: html/Admin/Groups/GroupRights.html:109 html/Admin/Groups/UserRights.html:96 -#. ($id) -msgid "Couldn't load group %1" -msgstr "%1 grubu yüklenemedi" - -#: lib/RT/Link_Overlay.pm:202 lib/RT/Link_Overlay.pm:211 lib/RT/Link_Overlay.pm:238 -msgid "Couldn't load link" -msgstr "BaÄŸlantı yüklenemedi" - -#: html/Admin/Elements/ObjectCustomFields:83 html/Admin/Queues/CustomFields.html:59 html/Admin/Users/CustomFields.html:59 -#. ($id) -msgid "Couldn't load object %1" -msgstr "%1 nesnesi yüklenemedi" - -#: html/Admin/Queues/People.html:142 -#. ($id) -msgid "Couldn't load queue" -msgstr "Kuyruk yüklenemedi" - -#: html/Admin/Queues/GroupRights.html:122 html/Admin/Queues/UserRights.html:93 -#. ($id) -msgid "Couldn't load queue %1" -msgstr "%1 kuyruÄŸu yüklenemedi" - -#: html/Admin/Elements/EditScrip:126 html/Admin/Elements/EditScrip:167 -#. ($id) -msgid "Couldn't load scrip #%1" -msgstr "Senet #%1 yüklenemedi" - -#: html/SelfService/Display.html:158 lib/RT/Action/CreateTickets.pm:680 -#. ($id) -msgid "Couldn't load ticket '%1'" -msgstr "'%1' bileti yüklenemedi" - -#: lib/RT/Ticket_Overlay.pm:2643 -#. ($args{'URI'}) -msgid "Couldn't resolve '%1' into a URI." -msgstr "'%1' deÄŸeri bir URI olarak çözülemiyor" - -#: html/Admin/Users/Modify.html:173 html/User/Prefs.html:153 -msgid "Country" -msgstr "Ãœlke" - -#: html/Admin/Elements/CreateUserCalled:47 html/Admin/Elements/EditCustomField:84 html/Admin/Elements/EditScrip:133 html/Admin/Queues/Template.html:66 html/Elements/QuickCreate:65 html/Ticket/Create.html:168 html/Ticket/Create.html:235 -msgid "Create" -msgstr "OluÅŸtur" - -#: etc/initialdata:135 -msgid "Create Tickets" -msgstr "Bilet OluÅŸtur" - -#: html/Admin/CustomFields/Modify.html:150 html/Admin/Elements/EditCustomField:96 -msgid "Create a CustomField" -msgstr "Özel Bölüm OluÅŸtur" - -#: html/Admin/Queues/CustomField.html:69 -#. ($QueueObj->Name()) -msgid "Create a CustomField for queue %1" -msgstr "%1 kuyruÄŸu için özel bir bölüm oluÅŸtur" - - -#: html/Admin/Groups/Modify.html:125 html/Admin/Groups/Modify.html:99 -msgid "Create a new group" -msgstr "Yeni bir grup oluÅŸtur" - -#: html/User/Groups/Modify.html:113 html/User/Groups/Modify.html:88 -msgid "Create a new personal group" -msgstr "Yeni bir kiÅŸisel grup oluÅŸtur" - -#: html/Ticket/Create.html:47 html/Ticket/Create.html:51 html/Ticket/Create.html:60 -msgid "Create a new ticket" -msgstr "YEni bir bilet oluÅŸtur" - -#: html/Admin/Users/Modify.html:252 html/Admin/Users/Modify.html:314 -msgid "Create a new user" -msgstr "Yeni bir kullanıcı oluÅŸtur" - -#: html/Admin/Queues/Modify.html:125 -msgid "Create a queue" -msgstr "Yeni bir kuyruk oluÅŸtur" - -#: html/Admin/Queues/Scrip.html:89 -#. ($QueueObj->Name) -msgid "Create a scrip for queue %1" -msgstr "%1 kuyruÄŸu için yeni bir senet oluÅŸtur" - -#: html/Admin/Global/Template.html:90 html/Admin/Queues/Template.html:86 -msgid "Create a template" -msgstr "Bir ÅŸablon oluÅŸtur" - -#: html/SelfService/Create.html:46 html/SelfService/CreateTicketInQueue.html:46 -msgid "Create a ticket" -msgstr "Yeni bir bilet oluÅŸtur" - -#: etc/initialdata:137 -msgid "Create new tickets based on this scrip's template" -msgstr "Bu senedin ÅŸablonunu temel alarak yeni biletler oluÅŸtur" - -#: html/SelfService/Create.html:105 -msgid "Create ticket" -msgstr "Yeni bilet oluÅŸtur" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "Create tickets in this queue" -msgstr "Bu kuyrukta yeni biletler oluÅŸtur" - -#: lib/RT/CustomField_Overlay.pm:106 -msgid "Create, delete and modify custom fields" -msgstr "Özel bölümleri oluÅŸtur, sil ve deÄŸiÅŸtir" - -#: lib/RT/Queue_Overlay.pm:92 -msgid "Create, delete and modify queues" -msgstr "Kuyrukları oluÅŸtur, sil ve deÄŸiÅŸtir" - -#: lib/RT/System.pm:80 -msgid "Create, delete and modify the members of personal groups" -msgstr "KiÅŸisel grup üyelerini oluÅŸtur, sil ve deÄŸiÅŸtir" - -#: lib/RT/System.pm:81 -msgid "Create, delete and modify users" -msgstr "Kullanıcıları oluÅŸtur, sil ve deÄŸiÅŸtir" - -#: lib/RT/System.pm:87 -msgid "CreateSavedSearch" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:109 -msgid "CreateTicket" -msgstr "" - -#: html/Elements/SelectDateType:47 html/Ticket/Elements/ShowDates:48 lib/RT/Ticket_Overlay.pm:1169 -msgid "Created" -msgstr "OluÅŸturuldu" - -#: html/Admin/CustomFields/Modify.html:163 html/Admin/Elements/EditCustomField:117 -#. ($CustomFieldObj->Name()) -msgid "Created CustomField %1" -msgstr "Özel bölüm %1 oluÅŸturuldu" - -#: html/Tools/Reports/Elements/Tabs:63 -msgid "Created in a date range" -msgstr "Bir zaman aralığı içinde oluÅŸturuldu" - -#: html/Tools/Reports/CreatedByDates.html:52 -msgid "Created tickets in period, grouped by status" -msgstr "Bir devir içinde biletle oluÅŸturuldu ve duruma göre sıralandı" - -#: html/Search/Elements/PickBasics:102 -msgid "Creator" -msgstr "OluÅŸturan" - -#: html/Elements/EditLinks:49 -msgid "Current Links" -msgstr "Geçerli baÄŸlantılar" - -#: html/Admin/Elements/EditScrips:51 -msgid "Current Scrips" -msgstr "Geçerli senetler" - -#: html/Admin/Groups/Members.html:60 html/User/Groups/Members.html:63 -msgid "Current members" -msgstr "Geçerli üyeler" - -#: html/Admin/Elements/SelectRights:51 -msgid "Current rights" -msgstr "Geçerli haklar" - -#: html/Search/Elements/EditQuery:47 -msgid "Current search" -msgstr "Geçerli arama" - -#: html/Admin/Queues/People.html:62 html/Ticket/Elements/EditPeople:66 -msgid "Current watchers" -msgstr "Geçerli izleyiciler" - -#: html/Admin/Elements/SystemTabs:61 html/Admin/Elements/Tabs:62 html/Admin/Global/index.html:71 html/Admin/Users/Modify.html:205 html/Admin/index.html:77 html/Ticket/Elements/ShowSummary:56 -msgid "Custom Fields" -msgstr "Özel bölümler" - -#: html/Admin/CustomFields/index.html:60 -#. ($lookup) -msgid "Custom Fields for %1" -msgstr "%1 için özel bölümler" - -#: html/Admin/Elements/EditScrip:107 -msgid "Custom action cleanup code" -msgstr "Özel hareket temizleme kodu" - -#: html/Admin/Elements/EditScrip:103 -msgid "Custom action preparation code" -msgstr "Özel hareket hazırlama kodu" - -#: html/Admin/Elements/EditScrip:99 -msgid "Custom condition" -msgstr "Özel durum" - -#: lib/RT/Tickets_Overlay.pm:2424 -#. ($CF->Name) -msgid "Custom field %1 has a value." -msgstr "Özel bölüm %1, bir deÄŸere sahip" - -#: lib/RT/Tickets_Overlay.pm:2420 -#. ($CF->Name) -msgid "Custom field %1 has no value." -msgstr "Özel bölüm %1, bir deÄŸere sahip deÄŸil" - -#: lib/RT/Record.pm:1592 lib/RT/Record.pm:1754 -#. ($args{'Field'}) -msgid "Custom field %1 not found" -msgstr "Özel bölüm %1, bulunamadı" - -#: lib/RT/Report/Tickets.pm:118 lib/RT/Report/Tickets.pm:121 -#. ($cf) -#. ($obj->Name) -msgid "Custom field '%1'" -msgstr "Özel bölüm '%1'" - -#: lib/RT/CustomField_Overlay.pm:1157 -#. ($args{'Content'}, $self->Name) -msgid "Custom field value %1 could not be found for custom field %2" -msgstr "Özel bölüm %2 için, özel bölüm deÄŸeri %1 bulunamıyor" - -#: lib/RT/CustomField_Overlay.pm:419 -msgid "Custom field value could not be deleted" -msgstr "Özel bölüm deÄŸeri silinemiyor" - -#: lib/RT/CustomField_Overlay.pm:1169 -msgid "Custom field value could not be found" -msgstr "Özel bölüm deÄŸeri bulunamıyor" - -#: lib/RT/CustomField_Overlay.pm:1171 lib/RT/CustomField_Overlay.pm:417 -msgid "Custom field value deleted" -msgstr "Özel bölüm deÄŸeri silindi" - -#: html/Elements/SelectGroups:51 html/Elements/SelectUsers:51 lib/RT/Transaction_Overlay.pm:638 -msgid "CustomField" -msgstr "Özel Bölüm" - -#: html/Prefs/MyRT.html:78 html/Prefs/Quicksearch.html:70 html/Prefs/Search.html:75 -msgid "Customize" -msgstr "ÖzelleÅŸtir" - -#: html/SelfService/Display.html:61 html/Ticket/Create.html:203 html/Ticket/Elements/ShowSummary:83 html/Ticket/Elements/Tabs:116 html/Ticket/ModifyAll.html:65 -msgid "Dates" -msgstr "Tarihler" - -#: lib/RT/Date.pm:452 -msgid "Dec." -msgstr "Ara." - -#: etc/initialdata:222 -msgid "Default Autoresponse template" -msgstr "Varsayılan OtoCevap ÅŸablonu" - -#: html/Tools/Offline.html:61 -msgid "Default Queue" -msgstr "Varsayılan Kuyruk" - -#: html/Tools/Offline.html:70 -msgid "Default Requestor" -msgstr "Varsayılan Ä°stekçi" - -#: etc/initialdata:296 -msgid "Default admin comment template" -msgstr "Varsayılan yönetici yorum ÅŸablonu" - -#: etc/initialdata:275 -msgid "Default admin correspondence template" -msgstr "Varsayılan yönetici cevap ÅŸablonu" - -#: etc/initialdata:287 -msgid "Default correspondence template" -msgstr "Varsayılan cevap ÅŸablonu" - -#: etc/initialdata:253 -msgid "Default transaction template" -msgstr "Varsayılan hareket ÅŸablonu" - -#: html/User/Delegation.html:46 html/User/Delegation.html:49 -msgid "Delegate rights" -msgstr "Yetkileri devret" - -#: lib/RT/System.pm:84 -msgid "Delegate specific rights which have been granted to you." -msgstr "Size verilen belirli yetkileri devredin" - -#: lib/RT/System.pm:84 -msgid "DelegateRights" -msgstr "HaklarıDevret" - -#: html/User/Elements/Tabs:59 -msgid "Delegation" -msgstr "Devretmek" - -#: html/Admin/Elements/EditScrips:75 html/Search/Elements/EditFormat:103 html/Search/Elements/EditQuery:57 html/Search/Elements/EditSearches:63 html/Widgets/SelectionBox:204 -msgid "Delete" -msgstr "Sil" - -#: html/Admin/Elements/EditTemplates:79 -msgid "Delete Template" -msgstr "" - -#: lib/RT/SavedSearch.pm:220 -#. ($msg) -msgid "Delete failed: %1" -msgstr "Silme iÅŸlemi baÅŸarısız: %1" - -#: html/Admin/Elements/EditScrips:74 -msgid "Delete selected scrips" -msgstr "Seçilen senetleri sil" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "Delete tickets" -msgstr "Biletleri sil" - -#: html/Search/Bulk.html:159 -msgid "Delete values" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:114 -msgid "DeleteTicket" -msgstr "BiletSil" - -#: lib/RT/SavedSearch.pm:218 -msgid "Deleted search" -msgstr "Arama sil" - -#: lib/RT/Queue_Overlay.pm:394 -msgid "Deleting this object would break referential integrity" -msgstr "Bu nesneyi silmek, tercihli bütünlüğü bozacaktır" - -#: lib/RT/User_Overlay.pm:512 -msgid "Deleting this object would violate referential integrity" -msgstr "Bu nesneyi silmek, tercihli bütünlüğü ihlal edecektir" - -#: html/Approvals/Elements/Approve:73 -msgid "Deny" -msgstr "Reddet" - -#: html/Elements/EditLinks:140 html/Elements/EditLinks:66 html/Elements/ShowLinks:58 html/Ticket/Create.html:221 html/Ticket/Elements/BulkLinks:56 html/Ticket/Elements/ShowDependencies:53 -msgid "Depended on by" -msgstr "Åžunun tarafından bağımlılığa sahip: " - -#: lib/RT/Transaction_Overlay.pm:718 -#. ($value) -msgid "Dependency by %1 added" -msgstr "%1 ile bağımlılık eklendi" - -#: lib/RT/Transaction_Overlay.pm:758 -#. ($value) -msgid "Dependency by %1 deleted" -msgstr "%1 ile bağımlılık silindi" - -#: lib/RT/Transaction_Overlay.pm:715 -#. ($value) -msgid "Dependency on %1 added" -msgstr "%1 için bağımlılık eklendi" - -#: lib/RT/Transaction_Overlay.pm:755 -#. ($value) -msgid "Dependency on %1 deleted" -msgstr "%1 için bağımlılık silindi" - -#: html/Elements/EditLinks:136 html/Elements/EditLinks:57 html/Elements/SelectLinkType:48 html/Elements/ShowLinks:48 html/Ticket/Create.html:220 html/Ticket/Elements/BulkLinks:52 html/Ticket/Elements/ShowDependencies:46 -msgid "Depends on" -msgstr "Bağımlılık" - -#: html/Search/Elements/DisplayOptions:86 -msgid "Desc" -msgstr Azal"" - -#: html/Elements/SelectSortOrder:56 -msgid "Descending" -msgstr "Azalan" - -#: html/SelfService/Create.html:100 html/Ticket/Create.html:152 -msgid "Describe the issue below" -msgstr "Sorunu aÅŸağıda tanımlayın" - -#: html/Admin/CustomFields/Modify.html:61 html/Admin/Elements/AddCustomFieldValue:57 html/Admin/Elements/EditCustomField:60 html/Admin/Elements/EditCustomFieldValues:56 html/Admin/Elements/EditScrip:55 html/Admin/Elements/ModifyTemplate:57 html/Admin/Groups/Modify.html:71 html/Admin/Queues/Modify.html:69 html/Search/Elements/EditSearches:56 html/User/Groups/Modify.html:70 -msgid "Description" -msgstr "Tanım" - -#: html/Search/Elements/EditFormat:71 html/Ticket/Elements/Tabs:108 -msgid "Display" -msgstr "Görüntüle" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "Display Access Control List" -msgstr "EriÅŸim Denetim Listesini Görüntüle" - -#: html/Search/Elements/DisplayOptions:46 -msgid "Display Columns" -msgstr "Sütunları Görüntüle" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "Display Scrip templates for this queue" -msgstr "Bu kuyruk için senet ÅŸablonlarını görüntüle" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "Display Scrips for this queue" -msgstr "Bu kuyruk için senetleri görüntüle" - -#: html/Ticket/Elements/ShowHistory:59 -msgid "Display mode" -msgstr "Görüntüleme kipi" - -#: lib/RT/Group_Overlay.pm:168 -msgid "Display saved searches for this group" -msgstr "Bu grup için, kaydedilmiÅŸ aramaları görüntüle" - -#: html/Elements/Footer:61 -msgid "Distributed under version 2 <a href=\"http://www.gnu.org/copyleft/gpl.html\"> of the GNU GPL.</a>" -msgstr "<a href=\"http://www.gnu.org/copyleft/gpl.html\">GNU GPL</a>' nin 2. sürümü altında dağıtılmaktadır." - -#: lib/RT/System.pm:75 -msgid "Do anything and everything" -msgstr "HiçbirÅŸeyi ve herÅŸeyi yapın" - -#: html/Elements/Refresh:51 -msgid "Don't refresh this page." -msgstr "Bu sayfayı yenilemeyin" - -#: html/Ticket/Elements/ShowTransactionAttachments:82 -msgid "Download" -msgstr "Ä°ndir" - -#: html/Admin/Groups/index.html:61 html/Admin/Users/index.html:64 -msgid "Download as a tab-delimited file" -msgstr "Sekme ile ayrılmış dosya olarak indir" - -#: html/Elements/SelectDateType:53 html/Ticket/Create.html:209 html/Ticket/Elements/EditDates:66 html/Ticket/Elements/Reminders:133 html/Ticket/Elements/ShowDates:64 lib/RT/Ticket_Overlay.pm:1173 -msgid "Due" -msgstr "Vade" - -#: html/Elements/Quicksearch:48 html/Elements/ShowSearch:49 html/index.html:107 -msgid "Edit" -msgstr "Düzenle" - -#: html/Search/Bulk.html:149 -msgid "Edit Custom Fields" -msgstr "Özel Bölümleri Düzenle" - -#: html/Admin/Elements/ObjectCustomFields:92 html/Admin/Queues/CustomFields.html:64 html/Admin/Users/CustomFields.html:64 -#. ($Object->Name) -msgid "Edit Custom Fields for %1" -msgstr "%1 için özel bölümleri düzenle" - -#: html/Admin/Global/CustomFields/Groups.html:54 -msgid "Edit Custom Fields for all groups" -msgstr "Bütün gruplar için özel bölümleri düzenle" - -#: html/Admin/Global/CustomFields/Users.html:54 -msgid "Edit Custom Fields for all users" -msgstr "Bütün kullanıcılar için özel bölümleri düzenle" - -#: html/Admin/Global/CustomFields/Queue-Tickets.html:54 html/Admin/Global/CustomFields/Queue-Transactions.html:54 -msgid "Edit Custom Fields for tickets in all queues" -msgstr "Bütün kuyruklardaki bütün biletler için özel bölümleri düzenle" - -#: html/Search/Bulk.html:188 html/Ticket/ModifyLinks.html:57 -msgid "Edit Links" -msgstr "BaÄŸlantıları Düzenle" - -#: html/Search/Edit.html:68 -msgid "Edit Query" -msgstr "Sorguyu Düzenle" - -#: html/Ticket/Elements/Tabs:214 -msgid "Edit Search" -msgstr "Aramayı Düzenle" - -#: html/Admin/Queues/Templates.html:63 -#. ($QueueObj->Name) -msgid "Edit Templates for queue %1" -msgstr "%1 kuyruÄŸundaki ÅŸablonları düzenle" - -#: lib/RT/Group_Overlay.pm:167 -msgid "Edit saved searches for this group" -msgstr "Bu grup için kaydedilmiÅŸ aramaları düzenle" - -#: html/Admin/Elements/GlobalCustomFieldTabs:60 html/Admin/Global/index.html:67 -msgid "Edit system templates" -msgstr "Sistem ÅŸablonlarını düzenle" - -#: lib/RT/Group_Overlay.pm:167 -msgid "EditSavedSearches" -msgstr "KaydedilmiÅŸAramalarıDüzenle" - -#: html/Admin/Queues/Modify.html:140 -#. ($QueueObj->Name) -msgid "Editing Configuration for queue %1" -msgstr "%1 kuyruÄŸunun ayarları düzenleniyor" - -#: html/Admin/CustomFields/Modify.html:167 html/Admin/Elements/EditCustomField:120 -#. ($CustomFieldObj->Name()) -msgid "Editing CustomField %1" -msgstr "Özel bölüm %1 düzenleniyor" - -#: html/Admin/Groups/Members.html:53 -#. ($Group->Name) -msgid "Editing membership for group %1" -msgstr "%1 grubu için üyelik düzenleniyor" - -#: html/User/Groups/Members.html:150 -#. ($Group->Name) -msgid "Editing membership for personal group %1" -msgstr "Özel grup %1 için üyelik düzenleniyor" - -#: lib/RT/Record.pm:1295 lib/RT/Record.pm:1372 lib/RT/Ticket_Overlay.pm:2518 lib/RT/Ticket_Overlay.pm:2608 -msgid "Either base or target must be specified" -msgstr "Taban veya hedef belirtilmeli" - -#: html/Admin/Users/Modify.html:74 html/Ticket/Elements/AddWatchers:77 html/User/Prefs.html:65 -msgid "Email" -msgstr "Eposta" - -#: lib/RT/User_Overlay.pm:235 -msgid "Email address in use" -msgstr "Eposta adresi kullanımda" - -#: html/Admin/CustomFields/Modify.html:98 html/Admin/Elements/EditCustomField:72 -msgid "Enabled (Unchecking this box disables this custom field)" -msgstr "EtkinleÅŸtirildi (Bu kutudaki iÅŸareti kaldırmak, bu özel bölümü iptal eder)" - -#: html/Admin/Groups/Modify.html:84 html/User/Groups/Modify.html:74 -msgid "Enabled (Unchecking this box disables this group)" -msgstr "EtkinleÅŸtirildi (Bu kutudaki iÅŸareti kaldırmak, bu grubu iptal eder)" - -#: html/Admin/Queues/Modify.html:105 -msgid "Enabled (Unchecking this box disables this queue)" -msgstr "EtkinleÅŸtirildi (Bu kutudaki iÅŸareti kaldırmak, bu kuyruÄŸu iptal eder)" - -#: html/Admin/Queues/index.html:78 -msgid "Enabled Queues" -msgstr "EtkinleÅŸtirilmiÅŸ Kuyruklar" - -#: html/Admin/Elements/EditCustomField:136 html/Admin/Groups/Modify.html:150 html/Admin/Users/Modify.html:350 html/User/Groups/Modify.html:138 -#. (loc_fuzzy($msg)) -msgid "Enabled status %1" -msgstr "EtkinleÅŸtirilme durumu %1" - -#: html/Admin/CustomFields/Modify.html:185 html/Admin/Queues/Modify.html:162 -#. (loc_fuzzy($msg)) -msgid "Enabled status: %1" -msgstr "EtkinleÅŸtirilme durumu %1" - -#: lib/RT/CustomField_Overlay.pm:64 -msgid "Enter multiple values" -msgstr "Çoklu deÄŸer girin" - -#: html/Elements/EditLinks:126 -msgid "Enter objects or URIs to link objects to. Separate multiple entries with spaces." -msgstr "Bu nesneleri baÄŸlamak için, nesneler veya URIler girin. Çoklu girdileri boÅŸluk ile ayırın." - -#: lib/RT/CustomField_Overlay.pm:65 -msgid "Enter one value" -msgstr "Bir deÄŸer girin" - -#: html/Elements/EditLinks:123 -msgid "Enter queues or URIs to link queues to. Separate multiple entries with spaces." -msgstr "Bu kuyrukları baÄŸlamak için, kuyruklar veya URIler girin. Çoklu girdileri boÅŸluk ile ayırın." - -#: html/Elements/EditLinks:119 html/Search/Bulk.html:189 -msgid "Enter tickets or URIs to link tickets to. Separate multiple entries with spaces." -msgstr "Bu biletleri baÄŸlamak için, biletler veya URIler girin. Çoklu girdileri boÅŸluk ile ayırın." - -#: lib/RT/CustomField_Overlay.pm:66 -msgid "Enter up to %1 values" -msgstr "%1 adet deÄŸer girin" - -#: html/Elements/Login:76 html/SelfService/Error.html:46 html/SelfService/Error.html:47 -msgid "Error" -msgstr "Hata" - -#: lib/RT/Queue_Overlay.pm:672 -msgid "Error in parameters to Queue->AddWatcher" -msgstr "Queue->AddWatcher için geçilen parametrelerde hata var" - -#: lib/RT/Queue_Overlay.pm:833 -msgid "Error in parameters to Queue->DeleteWatcher" -msgstr "Queue->DeleteWatcher için geçilen parametrelerde hata var" - -#: lib/RT/Ticket_Overlay.pm:1372 -msgid "Error in parameters to Ticket->AddWatcher" -msgstr "Ticket->AddWatcher için geçilen parametrelerde hata var" - -#: lib/RT/Ticket_Overlay.pm:1538 -msgid "Error in parameters to Ticket->DeleteWatcher" -msgstr "Ticket->DeleteWatcher için geçilen parametrelerde hata var" - -#: bin/rt-crontool:285 -msgid "Escalate tickets" -msgstr "Biletleri Yükselt" - -#: html/Ticket/Elements/ShowBasics:57 -msgid "Estimated" -msgstr "Tahmini" - -#: etc/initialdata:20 -msgid "Everyone" -msgstr "Herkes" - -#: bin/rt-crontool:271 -msgid "Example:" -msgstr "Örnek:" - -#: html/Admin/Users/Modify.html:99 -msgid "Extra info" -msgstr "Ek Bilgi" - -#: lib/RT/SavedSearch.pm:177 -msgid "Failed to create search attribute" -msgstr "Arama özniteliÄŸi oluÅŸturulamadı" - -#: lib/RT/User_Overlay.pm:376 -msgid "Failed to find 'Privileged' users pseudogroup." -msgstr "'Ayrıcalıklı' sahte kullanıcı grubu bulunamadı" - -#: lib/RT/User_Overlay.pm:383 -msgid "Failed to find 'Unprivileged' users pseudogroup" -msgstr "'Ayrıcalıksız' sahte kullanıcı grubu bulunamadı" - -#: bin/rt-crontool:206 -#. ($modname, $@) -msgid "Failed to load module %1. (%2)" -msgstr "%1 modülü yüklenemedi. (%2)" - -#: lib/RT/SavedSearch.pm:152 -#. ($privacy) -msgid "Failed to load object for %1" -msgstr "%1 için nesne yüklenemedi" - -#: lib/RT/Date.pm:442 -msgid "Feb." -msgstr "Åžub." - -#: html/Elements/SelectAttachmentField:50 -msgid "Filename" -msgstr "Dosya adı" - -#: lib/RT/CustomField_Overlay.pm:69 -msgid "Fill in multiple text areas" -msgstr "Çoklu metin alanları doldur" - -#: lib/RT/CustomField_Overlay.pm:74 -msgid "Fill in multiple wikitext areas" -msgstr "Çoklu wikimetin alanları doldur" - -#: lib/RT/CustomField_Overlay.pm:70 -msgid "Fill in one text area" -msgstr "Tek bir metin alanı doldur" - -#: lib/RT/CustomField_Overlay.pm:75 -msgid "Fill in one wikitext area" -msgstr "Tek bir wikimetin alanı doldur" - -#: html/Admin/CustomFields/Modify.html:107 html/Admin/CustomFields/Modify.html:118 -msgid "Fill in this field with a URL." -msgstr "Bu bölümü bir URL ile doldur" - -#: lib/RT/CustomField_Overlay.pm:71 -msgid "Fill in up to %1 text areas" -msgstr "En fazla %1 adet metin alanı doldur" - -#: lib/RT/CustomField_Overlay.pm:76 -msgid "Fill in up to %1 wikitext areas" -msgstr "En fazla %1 adet wikimetin alanı doldur" - -#: html/Search/Elements/PickBasics:149 html/Ticket/Create.html:182 html/Ticket/Elements/EditBasics:97 lib/RT/Tickets_Overlay.pm:1841 -msgid "Final Priority" -msgstr "Son Öncelik" - -#: lib/RT/Ticket_Overlay.pm:1164 -msgid "FinalPriority" -msgstr "SonÖncelik" - -#: html/Admin/Groups/index.html:72 html/Admin/Queues/People.html:82 html/Ticket/Elements/EditPeople:55 -msgid "Find groups whose" -msgstr "Grupları bul:" - -#: html/Admin/Queues/People.html:78 html/Admin/Users/index.html:70 html/Ticket/Elements/EditPeople:51 -msgid "Find people whose" -msgstr "KiÅŸileri bul:" - -#: html/Search/Results.html:147 -msgid "Find tickets" -msgstr "Biletleri bul" - -#: html/Ticket/Elements/Tabs:81 -msgid "First" -msgstr "Ä°lk" - -#: docs/design_docs/string-extraction-guide.txt:33 lib/RT/StyleGuide.pod:766 -msgid "Foo Bar Baz" -msgstr "" - -#: docs/design_docs/string-extraction-guide.txt:24 lib/RT/StyleGuide.pod:757 -msgid "Foo!" -msgstr "" - -#: html/Search/Bulk.html:83 -msgid "Force change" -msgstr "DeÄŸiÅŸikliÄŸi zorla" - -#: html/Search/Elements/EditFormat:52 -msgid "Format" -msgstr "Biçim" - -#: html/Search/Results.html:145 -#. ($ticketcount) -msgid "Found %quant(%1,ticket)" -msgstr "%quant(%1,ticket) bulundu" - -#: lib/RT/Record.pm:956 -msgid "Found Object" -msgstr "Nesne bulundu" - -#: lib/RT/Date.pm:421 -msgid "Fri." -msgstr "Cum." - -#: html/Ticket/Elements/ShowHistory:66 html/Ticket/Elements/ShowHistory:72 -msgid "Full headers" -msgstr "Tüm BaÅŸlıklar" - -#: html/Tools/Offline.html:85 -msgid "Get template from file" -msgstr "Dosyadan ÅŸablon al" - -#: lib/RT/Transaction_Overlay.pm:684 -#. ($New->Name) -msgid "Given to %1" -msgstr "Verilen: %1" - -#: html/Admin/Elements/Tabs:65 html/Admin/index.html:82 -msgid "Global" -msgstr "Küresel" - -#: html/Admin/Elements/EditCustomFields:55 -msgid "Global Custom Fields" -msgstr "Küresel Özel Alanlar" - -#: html/Admin/Global/CustomFields/index.html:59 -msgid "Global custom field configuration" -msgstr "Küresel Özel Alan Ayarları" - -#: html/Admin/Global/MyRT.html:48 -#. ($pane) -msgid "Global portlet %1 saved." -msgstr "Küresel portlet %1 kaydedildi" - -#: html/Admin/Elements/SelectTemplate:59 -#. (loc($Template->Name)) -msgid "Global template: %1" -msgstr "Küresel ÅŸablon: %1" - -#: html/Admin/CustomFields/index.html:80 html/Search/Results.html:90 html/Tools/Offline.html:89 -msgid "Go" -msgstr "Git" - -#: html/Admin/Groups/index.html:67 html/Admin/Groups/index.html:73 html/Admin/Queues/People.html:80 html/Admin/Queues/People.html:84 html/Admin/Queues/index.html:66 html/Admin/Users/index.html:73 html/Elements/RefreshHomepage:48 html/Search/Results.html:74 html/Ticket/Elements/EditPeople:53 html/Ticket/Elements/EditPeople:57 -msgid "Go!" -msgstr "Git!" - -#: html/Elements/GotoTicket:46 html/SelfService/Elements/GotoTicket:46 -msgid "Goto ticket" -msgstr "Bilete git" - -#: html/Ticket/Elements/AddWatchers:67 html/Ticket/Elements/ShowGroupMembers:55 html/User/Elements/DelegateRights:99 -msgid "Group" -msgstr "Grup" - -#: html/Admin/Elements/CustomFieldTabs:68 html/Admin/Elements/GroupTabs:66 html/Admin/Elements/QueueTabs:82 html/Admin/Elements/SystemTabs:65 html/Admin/Global/index.html:76 -msgid "Group Rights" -msgstr "Grup Yetkileri" - -#: lib/RT/Group_Overlay.pm:983 -msgid "Group already has member" -msgstr "Grup üyeye sahip" - -#: html/Admin/Groups/Modify.html:109 -#. ($create_msg) -msgid "Group could not be created: %1" -msgstr "Grup oluÅŸturulamıyor: %1" - -#: lib/RT/Group_Overlay.pm:521 -msgid "Group created" -msgstr "Grup oluÅŸturuldu" - -#: lib/RT/Group_Overlay.pm:1155 -msgid "Group has no such member" -msgstr "Grupta böyle bir üye yok" - -#: lib/RT/Group_Overlay.pm:963 lib/RT/Queue_Overlay.pm:748 lib/RT/Queue_Overlay.pm:808 lib/RT/Ticket_Overlay.pm:1430 lib/RT/Ticket_Overlay.pm:1510 -msgid "Group not found" -msgstr "Grup bulunamadı" - -#: html/Admin/Elements/GlobalCustomFieldTabs:59 html/Admin/Elements/SelectNewGroupMembers:57 html/Admin/Elements/Tabs:56 html/Admin/Global/CustomFields/index.html:69 html/Admin/Groups/Members.html:86 html/Admin/Queues/People.html:104 html/Admin/Users/Memberships.html:53 html/Admin/index.html:67 html/User/Groups/Members.html:88 lib/RT/CustomField_Overlay.pm:1210 -msgid "Groups" -msgstr "Gruplar" - -#: lib/RT/Group_Overlay.pm:989 -msgid "Groups can't be members of their members" -msgstr "Gruplar, üyelerinin üyeleri olamazlar" - -#: html/Admin/Groups/index.html:86 -msgid "Groups matching search criteria" -msgstr "Arama kıstaslarına uyan gruplar" - -#: html/Ticket/Elements/ShowRequestor:77 -msgid "Groups this user belongs to" -msgstr "Bu kullanıcının kayıtlı olduÄŸu gruplar" - -#: lib/RT/Interface/CLI.pm:94 lib/RT/Interface/CLI.pm:94 -msgid "Hello!" -msgstr "Merhaba!" - -#: docs/design_docs/string-extraction-guide.txt:40 lib/RT/StyleGuide.pod:773 -#. ($name) -msgid "Hello, %1" -msgstr "Merhaba, %1" - -#: html/Admin/Elements/GroupTabs:70 html/Admin/Elements/UserTabs:64 html/Ticket/Elements/ShowHistory:53 html/Ticket/Elements/Tabs:111 -msgid "History" -msgstr "GeçmiÅŸ" - -#: html/Admin/Groups/History.html:62 -#. ($GroupObj->Name) -msgid "History of the group %1" -msgstr "%1 grubunun geçmiÅŸi" - -#: html/Admin/Users/History.html:62 -#. ($UserObj->Name) -msgid "History of the user %1" -msgstr "%1 üyesinin geçmiÅŸi" - -#: html/Elements/Tabs:65 -msgid "Homepage" -msgstr "Ev Sayfası" - -#: html/Elements/SelectTimeUnits:48 -msgid "Hours" -msgstr "Saat" - -#: lib/RT/Base.pm:119 -#. (6) -msgid "I have %quant(%1,concrete mixer)." -msgstr "" - -#: html/Search/Build.html:460 lib/RT/Report/Tickets.pm:415 -msgid "I'm lost" -msgstr "Kayboldum" - -#: html/Ticket/Elements/ShowBasics:48 lib/RT/Tickets_Overlay.pm:1766 -msgid "Id" -msgstr "Numara" - -#: html/Admin/Users/Modify.html:65 html/User/Prefs.html:60 -msgid "Identity" -msgstr "Kimlik" - -#: etc/initialdata:429 -msgid "If an approval is rejected, reject the original and delete pending approvals" -msgstr "EÄŸer bir onaylama reddedilmiÅŸse, özgün kaydı reddet ve bekleyen onayları sil" - -#: html/Tools/Offline.html:74 -msgid "If no Requestor is specified, create tickets with this requestor." -msgstr "EÄŸer bir istekçi belirtilmemiÅŸse, biletleri, bu istekçi üzerinden oluÅŸtur" - -#: html/Tools/Offline.html:65 -msgid "If no queue is specified, create tickets in this queue." -msgstr "EÄŸer bir kuyruk belirtilmemiÅŸse, biletleri bu kuyrukta oluÅŸtur." - -#: bin/rt-crontool:267 -msgid "If this tool were setgid, a hostile local user could use this tool to gain administrative access to RT." -msgstr "EÄŸer bu araÅŸ setgid ise, saldırgan bir yerel kullanıcı, bu aracı kullanarak RT' ye yönetici eriÅŸimi hakkı kazanabilir." - -#: html/Admin/Queues/People.html:126 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:128 html/Ticket/ModifyPeople.html:60 -msgid "If you've updated anything above, be sure to" -msgstr "EÄŸer yukarıda herhangi bir ÅŸeyi deÄŸiÅŸtirdiyseniz, mutlaka" - -#: lib/RT/Record.pm:947 -msgid "Illegal value for %1" -msgstr "%1 için geçersiz deÄŸer" - -#: lib/RT/Record.pm:950 -msgid "Immutable field" -msgstr "DeÄŸiÅŸmez alan" - -#: html/Admin/Groups/index.html:65 -msgid "Include disabled groups in listing." -msgstr "Listelerken, etkinleÅŸtirilmemiÅŸ grupları ekle" - -#: html/Admin/Queues/index.html:65 -msgid "Include disabled queues in listing." -msgstr "Listelerken, etkinleÅŸtirilmemiÅŸ kuyrukları ekle" - -#: html/Admin/Users/index.html:71 -msgid "Include disabled users in search." -msgstr "Listelerken, iptal edilmiÅŸ üyeleri ekle" - -#: html/Admin/CustomFields/Modify.html:113 -msgid "Include page" -msgstr "Sayfayı İçer" - -#: html/Search/Build.html:486 lib/RT/Report/Tickets.pm:441 -msgid "Incomplete Query" -msgstr "Eksik Sorgu" - -#: html/Search/Build.html:483 lib/RT/Report/Tickets.pm:438 -msgid "Incomplete query" -msgstr "Eksik sorgu" - -#: html/Search/Elements/PickBasics:148 lib/RT/Tickets_Overlay.pm:1816 -msgid "Initial Priority" -msgstr "BaÅŸlangıç ÖnceliÄŸi" - -#: lib/RT/Ticket_Overlay.pm:1163 lib/RT/Ticket_Overlay.pm:1165 -msgid "InitialPriority" -msgstr "BaÅŸlangıçÖnceliÄŸi" - -#: lib/RT/ScripAction_Overlay.pm:133 -msgid "Input error" -msgstr "Girdi Hatası" - -#: html/Elements/ValidateCustomFields:68 lib/RT/CustomField_Overlay.pm:1021 lib/RT/CustomField_Overlay.pm:1162 -#. ($self->FriendlyPattern) -#. ($CF->FriendlyPattern) -msgid "Input must match %1" -msgstr "Girdi, %1 ile eÅŸleÅŸmeli" - -#: lib/RT/Ticket_Overlay.pm:3503 -msgid "Internal Error" -msgstr "İç Hata" - -#: lib/RT/Record.pm:308 -#. ($id->{error_message}) -msgid "Internal Error: %1" -msgstr "İç Hata: %1" - -#: lib/RT/Group_Overlay.pm:668 -msgid "Invalid Group Type" -msgstr Geçersiz Grup Türü" - -#: lib/RT/Principal_Overlay.pm:161 -msgid "Invalid Right" -msgstr "Geçersiz Hak" - -#: lib/RT/Record.pm:952 -msgid "Invalid data" -msgstr "Geçersiz veri" - -#: lib/RT/CustomField_Overlay.pm:207 lib/RT/CustomField_Overlay.pm:678 -#. ($msg) -msgid "Invalid pattern: %1" -msgstr "Geçersiz desen: %1" - -#: lib/RT/Scrip_Overlay.pm:157 lib/RT/Template_Overlay.pm:244 -msgid "Invalid queue" -msgstr "Geçersiz kuyruk" - -#: lib/RT/ACE_Overlay.pm:264 lib/RT/ACE_Overlay.pm:273 lib/RT/ACE_Overlay.pm:279 lib/RT/ACE_Overlay.pm:290 -msgid "Invalid right" -msgstr "Geçersiz hak" - -#: lib/RT/Record.pm:283 -#. ($key) -msgid "Invalid value for %1" -msgstr "%1 için geçersiz deÄŸer" - -#: lib/RT/Record.pm:1610 -msgid "Invalid value for custom field" -msgstr "Özel alan için geçersiz deÄŸer" - -#: lib/RT/Ticket_Overlay.pm:424 -msgid "Invalid value for status" -msgstr "Durum için geçersiz deÄŸer" - -#: bin/rt-crontool:268 -msgid "It is incredibly important that nonprivileged users not be allowed to run this tool." -msgstr "Yetkisiz kullanıcıların, bu aracı kullanmasını engellemek çok önemlidir." - -#: bin/rt-crontool:269 -msgid "It is suggested that you create a non-privileged unix user with the correct group membership and RT access to run this tool." -msgstr "Bu araca eriÅŸim için, doÄŸru grup üyeliÄŸiyle yetkisiz bir unix kullanıcısı oluÅŸturmanız ve RT eriÅŸimi vermeniz gerekmektedir." - -#: bin/rt-crontool:231 -msgid "It takes several arguments:" -msgstr "ÇeÅŸitli argümanlar alır:" - -#: html/Search/Elements/EditFormat:85 -msgid "Italic" -msgstr "EÄŸik" - -#: lib/RT/Date.pm:441 -msgid "Jan." -msgstr "Oca." - -#: lib/RT/Group_Overlay.pm:166 -msgid "Join or leave this group" -msgstr "Bu gruba katılın veya ayrılın" - -#: lib/RT/Date.pm:447 -msgid "Jul." -msgstr "Tem." - -#: html/Ticket/Elements/Tabs:125 -msgid "Jumbo" -msgstr "" - -#: lib/RT/Date.pm:446 -msgid "Jun." -msgstr "Haz." - -#: html/Admin/Users/Modify.html:94 html/User/Prefs.html:76 -msgid "Language" -msgstr "Dil" - -#: html/Search/Elements/EditFormat:79 -msgid "Large" -msgstr "GeniÅŸ" - -#: html/Ticket/Elements/Tabs:96 -msgid "Last" -msgstr "Son" - -#: html/Ticket/Elements/EditDates:59 html/Ticket/Elements/ShowDates:60 -msgid "Last Contact" -msgstr "Son Temas" - -#: html/Elements/SelectDateType:50 -msgid "Last Contacted" -msgstr "Son Temasedilen" - -#: html/Elements/SelectDateType:51 -msgid "Last Updated" -msgstr "Son Güncelleme" - -#: html/Search/Elements/PickBasics:103 -msgid "LastUpdatedBy" -msgstr "SonGüncelleyen" - -#: html/Ticket/Elements/ShowBasics:68 -msgid "Left" -msgstr "Kalan" - -#: html/Admin/Users/Modify.html:109 -msgid "Let this user access RT" -msgstr "Bu kullanıcının RT' ye eriÅŸimine izin ver" - -#: html/Admin/Users/Modify.html:113 -msgid "Let this user be granted rights" -msgstr "Bu kullanıcının yetkiye sahip olmasına izin ver" - -#: html/Search/Elements/EditFormat:68 -msgid "Link" -msgstr "BaÄŸlantı" - -#: lib/RT/Record.pm:1306 -msgid "Link already exists" -msgstr "BaÄŸlantı mevcut" - -#: lib/RT/Record.pm:1320 -msgid "Link could not be created" -msgstr "BaÄŸlantı oluÅŸturulamıyor" - -#: lib/RT/Record.pm:1326 -#. ($TransString) -msgid "Link created (%1)" -msgstr "BaÄŸlantı oulÅŸturuldu (%1)" - -#: lib/RT/Record.pm:1387 -#. ($TransString) -msgid "Link deleted (%1)" -msgstr "BaÄŸlantı silindi (%1)" - -#: lib/RT/Record.pm:1393 -msgid "Link not found" -msgstr "BaÄŸlantı bulunamadı" - -#: html/Ticket/ModifyLinks.html:46 html/Ticket/ModifyLinks.html:50 -#. ($Ticket->Id) -msgid "Link ticket #%1" -msgstr "Bileti baÄŸla #%1" - -#: html/Admin/CustomFields/Modify.html:102 -msgid "Link values to" -msgstr "DeÄŸerleri baÄŸla:" - -#: lib/RT/Ticket_Overlay.pm:700 -msgid "Linking. Permission denied" -msgstr "BaÄŸlanıyor. EriÅŸim reddedildi" - -#: html/Ticket/Create.html:216 html/Ticket/Elements/ShowSummary:89 html/Ticket/Elements/Tabs:120 html/Ticket/ModifyAll.html:78 -msgid "Links" -msgstr "BaÄŸlantılar" - -#: html/Search/Elements/EditSearches:75 -msgid "Load" -msgstr "Yükle" - -#: html/Search/Elements/EditSearches:73 -msgid "Load saved search:" -msgstr "KaydedilmiÅŸ aramayı yükle:" - -#: lib/RT/System.pm:86 -msgid "LoadSavedSearch" -msgstr "" - -#: html/Admin/Tools/Configuration.html:64 -msgid "Loaded perl modules" -msgstr "YüklenmiÅŸ Perl modülleri" - -#: lib/RT/SavedSearch.pm:111 -#. ($self->Name) -msgid "Loaded search %1" -msgstr "YüklenmiÅŸ arama %1" - -#: html/Admin/Users/Modify.html:138 html/User/Prefs.html:126 -msgid "Location" -msgstr "Konum" - -#: html/Elements/Header:91 -#. ("<span>".$session{'CurrentUser'}->Name."</span>") -msgid "Logged in as %1" -msgstr "%1 olarak giriÅŸ yapıldı" - -#: docs/design_docs/string-extraction-guide.txt:71 html/Elements/Login:100 html/Elements/Login:68 html/Elements/Login:84 lib/RT/StyleGuide.pod:797 -msgid "Login" -msgstr "GiriÅŸ yap" - -#: html/Elements/Header:101 -msgid "Logout" -msgstr "Çık" - -#: lib/RT/CustomField_Overlay.pm:932 -msgid "Lookup type mismatch" -msgstr "Arama türü eÅŸleÅŸmedi" - -#: html/Search/Bulk.html:82 -msgid "Make Owner" -msgstr "Yapım Sahibi" - -#: html/Search/Bulk.html:106 -msgid "Make Status" -msgstr "Yapım Durumu" - -#: html/Search/Bulk.html:114 -msgid "Make date Due" -msgstr "Yapım Zamanlaması" - -#: html/Search/Bulk.html:116 -msgid "Make date Resolved" -msgstr "Yapım tarihi Çözümlendi" - -#: html/Search/Bulk.html:110 -msgid "Make date Started" -msgstr "Yapma tarihi BaÅŸladı" - -#: html/Search/Bulk.html:108 -msgid "Make date Starts" -msgstr "Yapma tarihi BaÅŸlangıcı" - -#: html/Search/Bulk.html:112 -msgid "Make date Told" -msgstr "Yapım tarihi Belirtilen" - -#: html/Search/Bulk.html:102 -msgid "Make priority" -msgstr "Yapım önceliÄŸi" - -#: html/Search/Bulk.html:104 -msgid "Make queue" -msgstr "Yapım kuyruÄŸu" - -#: html/Search/Bulk.html:100 -msgid "Make subject" -msgstr "Yapım baÅŸlığı" - -#: lib/RT/Group_Overlay.pm:169 -msgid "Make this group visible to user" -msgstr "Bu grubun, kullanıcıya görünür olmasını saÄŸla" - -#: html/Admin/index.html:78 -msgid "Manage custom fields and custom field values" -msgstr "Özel alanları ve özel alan deÄŸerlerini yönet" - -#: html/Admin/index.html:69 -msgid "Manage groups and group membership" -msgstr "Grupları ve grup üyeliklerini yönet" - -#: html/Admin/index.html:85 -msgid "Manage properties and configuration which apply to all queues" -msgstr "Bütün kuyruklara etki eden özellikleri ve ayarları yönetin" - -#: html/Admin/index.html:74 -msgid "Manage queues and queue-specific properties" -msgstr "Kuyrukları ve kuyruÄŸa-özel özellikleri yönetin" - -#: html/Admin/index.html:64 -msgid "Manage users and passwords" -msgstr "Kullanıcıları ve parolaları yönetin" - -#: lib/RT/Date.pm:443 -msgid "Mar." -msgstr "Mar." - -#: lib/RT/Date.pm:445 -msgid "May." -msgstr "May." - -#: lib/RT/Transaction_Overlay.pm:731 -#. ($value) -msgid "Member %1 added" -msgstr "Ãœye %1 eklendi" - -#: lib/RT/Transaction_Overlay.pm:771 -#. ($value) -msgid "Member %1 deleted" -msgstr "Ãœye %1 silindi" - -#: lib/RT/Group_Overlay.pm:1000 -msgid "Member added" -msgstr "Ãœye eklendi" - -#: lib/RT/Group_Overlay.pm:1162 -msgid "Member deleted" -msgstr "Ãœye Silindi" - -#: lib/RT/Group_Overlay.pm:1166 -msgid "Member not deleted" -msgstr "Ãœye Silinemedi" - -#: html/Elements/SelectLinkType:47 -msgid "Member of" -msgstr "Ãœye olduÄŸu yer:" - -#: html/Admin/Elements/GroupTabs:63 html/User/Elements/GroupTabs:63 -msgid "Members" -msgstr "Ãœyeler" - -#: lib/RT/Transaction_Overlay.pm:728 -#. ($value) -msgid "Membership in %1 added" -msgstr "%1 için üyelik eklendi" - -#: lib/RT/Transaction_Overlay.pm:768 -#. ($value) -msgid "Membership in %1 deleted" -msgstr "%1 için üyelik silindi" - -#: html/Admin/Elements/UserTabs:61 -msgid "Memberships" -msgstr "Ãœyelikler" - -#: html/Admin/Users/Memberships.html:60 -#. ($UserObj->Name) -msgid "Memberships of the user %1" -msgstr "%1 üyesinin üyelikleri" - -#: lib/RT/Ticket_Overlay.pm:2893 -msgid "Merge Successful" -msgstr "BirleÅŸtirme baÅŸarılı" - -#: lib/RT/Ticket_Overlay.pm:2780 -msgid "Merge failed. Couldn't set EffectiveId" -msgstr "BirleÅŸtirme baÅŸarısız. Etkin Numara atanamıyor" - -#: lib/RT/Ticket_Overlay.pm:2788 -msgid "Merge failed. Couldn't set Status" -msgstr "BirleÅŸtirme baÅŸarısız. Durum atanamıyor" - -#: html/Elements/EditLinks:131 html/Ticket/Elements/BulkLinks:48 -msgid "Merge into" -msgstr "Åžununla birleÅŸtir: " - -#: lib/RT/Transaction_Overlay.pm:734 -#. ($value) -msgid "Merged into %1" -msgstr "%1 içinde birleÅŸtirildi" - -#: html/Search/Bulk.html:143 html/Ticket/Update.html:118 -msgid "Message" -msgstr "Ä°leti" - -#: html/Ticket/Elements/ShowTransactionAttachments:164 -msgid "Message body not shown because it is too large or is not plain text." -msgstr "Ä°leti gövdesi, çok büyük veya düz metin olmadığından gösterilmiyor." - -#: lib/RT/Ticket_Overlay.pm:2451 -msgid "Message could not be recorded" -msgstr "Ä°leti kaydedilemedi" - -#: lib/RT/Ticket_Overlay.pm:2454 -msgid "Message recorded" -msgstr "Ä°leti kaydedildi" - -#: html/Ticket/Elements/PreviewScrips:122 -msgid "Messages about this ticket will not be sent to..." -msgstr "Bu bilet hakkındaki iletiler gönderilmeyecek..." - -#: html/Elements/SelectTimeUnits:47 -msgid "Minutes" -msgstr "Dakika" - -#: html/Search/Build.html:490 lib/RT/Report/Tickets.pm:445 -msgid "Mismatched parentheses" -msgstr "EÅŸleÅŸmemiÅŸ parantezler" - -#: lib/RT/Record.pm:954 -msgid "Missing a primary key?: %1" -msgstr "BaÅŸlıca anahtarlardan birisi eksik mi?: %1" - -#: html/Admin/Users/Modify.html:193 html/User/Prefs.html:92 -msgid "Mobile" -msgstr "Hareketli" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "Modify Access Control List" -msgstr "EriÅŸim Denetim listesini DeÄŸiÅŸtir" - -#: html/Admin/Elements/ObjectCustomFields:96 -#. (loc(lc($FriendlySubTypes)), loc(lc($Types))) -msgid "Modify Custom Fields which apply to %1 for all %2" -msgstr "Bütün %2 için, %1 etki eden bütün özel alanları deÄŸiÅŸtir" - -#: html/Admin/Elements/ObjectCustomFields:98 -#. (loc(lc($Types))) -msgid "Modify Custom Fields which apply to all %1" -msgstr "Bütün %1 etki eden özel alanları deÄŸiÅŸtir" - -#: html/Admin/Global/GroupRights.html:106 html/Admin/Groups/GroupRights.html:94 html/Admin/Queues/GroupRights.html:107 -msgid "Modify Group Rights" -msgstr "Grup yetkilerini deÄŸiÅŸtir" - -#: html/Admin/Groups/Members.html:105 html/User/Groups/Members.html:101 -msgid "Modify Members" -msgstr "Ãœyeleri DeÄŸiÅŸtir" - -#: html/User/Delegation.html:58 -msgid "Modify Rights" -msgstr "Yetkileri DeÄŸiÅŸtir" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "Modify Scrip templates for this queue" -msgstr "Bu kuyruk için, senet ÅŸablonlarını deÄŸiÅŸtir" - -#: lib/RT/Queue_Overlay.pm:100 -msgid "Modify Scrips for this queue" -msgstr "Bu kuyruk için senetleri deÄŸiÅŸtir" - -#: html/Admin/Global/UserRights.html:75 html/Admin/Groups/UserRights.html:76 html/Admin/Queues/UserRights.html:75 -msgid "Modify User Rights" -msgstr "Kullanıcı haklarını deÄŸiÅŸtir" - -#: html/Admin/Queues/CustomField.html:66 -#. ($QueueObj->Name()) -msgid "Modify a CustomField for queue %1" -msgstr "%1 kuyruÄŸu için bir ÖzelAlanı deÄŸiÅŸtir" - -#: html/Admin/Queues/Scrip.html:82 -#. ($QueueObj->Name) -msgid "Modify a scrip for queue %1" -msgstr "%1 kuyruÄŸu için bir senet deÄŸiÅŸtir" - -#: html/Admin/Global/Scrip.html:75 -msgid "Modify a scrip which applies to all queues" -msgstr "Bütün kuyruklara etki eden bir senedi deÄŸiÅŸtir" - -#: html/Admin/CustomFields/Objects.html:90 -#. ($CF->Name) -msgid "Modify associated objects for %1" -msgstr "%1 için, iliÅŸkili nesneleri deÄŸiÅŸtir" - -#: html/Ticket/ModifyDates.html:46 html/Ticket/ModifyDates.html:50 -#. ($TicketObj->Id) -msgid "Modify dates for #%1" -msgstr "#%1 için tarihleri deÄŸiÅŸtir" - -#: html/Ticket/ModifyDates.html:57 -#. ($TicketObj->Id) -msgid "Modify dates for ticket # %1" -msgstr "Bilet # %1 için, tarihleri deÄŸiÅŸtir" - -#: html/Admin/Elements/GlobalCustomFieldTabs:65 html/Admin/Global/index.html:72 -msgid "Modify global custom fields" -msgstr "Küresel özel alanları deÄŸiÅŸtir" - -#: html/Admin/Elements/GlobalCustomFieldTabs:70 html/Admin/Global/GroupRights.html:46 html/Admin/Global/GroupRights.html:49 html/Admin/Global/index.html:77 -msgid "Modify global group rights" -msgstr "Küresel grup izinlerini deÄŸiÅŸtir" - -#: html/Admin/Global/GroupRights.html:54 -msgid "Modify global group rights." -msgstr "Küresel grup izinlerini deÄŸiÅŸtir." - -#: html/Admin/Global/UserRights.html:46 html/Admin/Global/UserRights.html:49 html/Admin/Global/index.html:81 -msgid "Modify global user rights" -msgstr "Küresel kullanıcı izinlerini deÄŸiÅŸtir" - -#: html/Admin/Global/UserRights.html:54 -msgid "Modify global user rights." -msgstr "Küresel kullanıcı izinlerini deÄŸiÅŸtir." - -#: lib/RT/Group_Overlay.pm:163 -msgid "Modify group metadata or delete group" -msgstr "Grup mal bilgisini deÄŸiÅŸtir veya grubu sil" - -#: html/Admin/CustomFields/GroupRights.html:164 -#. ($CustomFieldObj->Name) -msgid "Modify group rights for custom field %1" -msgstr "Özel alan %1 için grup izinlerini deÄŸiÅŸtir" - -#: html/Admin/Groups/GroupRights.html:46 html/Admin/Groups/GroupRights.html:50 html/Admin/Groups/GroupRights.html:56 -#. ($GroupObj->Name) -msgid "Modify group rights for group %1" -msgstr "%1 grubu için, grup izinlerini deÄŸiÅŸtir." - -#: html/Admin/Queues/GroupRights.html:46 html/Admin/Queues/GroupRights.html:50 -#. ($QueueObj->Name) -msgid "Modify group rights for queue %1" -msgstr "%1 kuyruÄŸu için, grup izinlerini deÄŸiÅŸtir." - -#: lib/RT/Group_Overlay.pm:165 -msgid "Modify membership roster for this group" -msgstr "Bu grup için, üyelik listesini deÄŸiÅŸtir" - -#: lib/RT/System.pm:82 -msgid "Modify one's own RT account" -msgstr "KiÅŸinin kendi RT hesabını deÄŸiÅŸtir" - -#: html/Admin/Queues/People.html:46 html/Admin/Queues/People.html:50 -#. ($QueueObj->Name) -msgid "Modify people related to queue %1" -msgstr "%1 ile iliÅŸkili kiÅŸileri deÄŸiÅŸtir" - -#: html/Ticket/ModifyPeople.html:46 html/Ticket/ModifyPeople.html:50 html/Ticket/ModifyPeople.html:57 -#. ($Ticket->id) -#. ($Ticket->Id) -msgid "Modify people related to ticket #%1" -msgstr "%1 bileti ile iliÅŸkili kiÅŸileri deÄŸiÅŸtir" - -#: html/Admin/Queues/Scrips.html:67 -#. ($QueueObj->Name) -msgid "Modify scrips for queue %1" -msgstr "%1 kuyruÄŸu için senetleri deÄŸiÅŸtir" - -#: html/Admin/Elements/GlobalCustomFieldTabs:56 html/Admin/Global/Scrips.html:65 html/Admin/Global/index.html:63 -msgid "Modify scrips which apply to all queues" -msgstr "Bütn kuyruklara etki eden senetleri deÄŸiÅŸtir" - -#: html/Admin/Global/Template.html:102 html/Admin/Global/Template.html:46 html/Admin/Global/Template.html:51 html/Admin/Queues/Template.html:99 -#. (loc($TemplateObj->Name())) -#. ($TemplateObj->id) -msgid "Modify template %1" -msgstr "%1 ÅŸablonunu deÄŸiÅŸtir" - -#: html/Admin/Global/Templates.html:65 -msgid "Modify templates which apply to all queues" -msgstr "Bütün kuyruklara etki eden ÅŸablonları deÄŸiÅŸtir" - -#: html/Admin/Global/index.html:85 -msgid "Modify the default \"RT at a glance\" view" -msgstr "Varsayılan \"Bir bakışta RT\" görünümünü deÄŸiÅŸtir" - -#: html/Admin/Groups/Modify.html:119 html/User/Groups/Modify.html:107 -#. ($Group->Name) -msgid "Modify the group %1" -msgstr "%1 grubunu deÄŸiÅŸtir" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "Modify the queue watchers" -msgstr "Kuyruk gözcülerini deÄŸiÅŸtir" - -#: html/Admin/Users/Modify.html:309 -#. ($UserObj->Name) -msgid "Modify the user %1" -msgstr "%1 kullanıcısını deÄŸiÅŸtir" - -#: html/Ticket/ModifyAll.html:58 -#. ($Ticket->Id) -msgid "Modify ticket # %1" -msgstr "#%1 biletini deÄŸiÅŸtir" - -#: html/Ticket/Modify.html:46 html/Ticket/Modify.html:49 html/Ticket/Modify.html:55 -#. ($TicketObj->Id) -msgid "Modify ticket #%1" -msgstr "#%1 biletini deÄŸiÅŸtir" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "Modify tickets" -msgstr "Biletleri deÄŸiÅŸtir" - -#: html/Admin/CustomFields/UserRights.html:157 -#. ($CustomFieldObj->Name) -msgid "Modify user rights for custom field %1" -msgstr "Özel alan %1 için kullanıcı haklarını deÄŸiÅŸtir" - -#: html/Admin/Groups/UserRights.html:46 html/Admin/Groups/UserRights.html:50 html/Admin/Groups/UserRights.html:56 -#. ($GroupObj->Name) -msgid "Modify user rights for group %1" -msgstr "%1 grubu için kullanıcı haklarını deÄŸiÅŸtir" - -#: html/Admin/Queues/UserRights.html:46 html/Admin/Queues/UserRights.html:50 -#. ($QueueObj->Name) -msgid "Modify user rights for queue %1" -msgstr "%1 kuyruÄŸu için kullanıcı haklarını deÄŸiÅŸtir" - -#: lib/RT/Queue_Overlay.pm:94 -msgid "ModifyACL" -msgstr "" - -#: lib/RT/CustomField_Overlay.pm:108 -msgid "ModifyCustomField" -msgstr "" - -#: lib/RT/Group_Overlay.pm:166 -msgid "ModifyOwnMembership" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:95 -msgid "ModifyQueueWatchers" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:100 -msgid "ModifyScrips" -msgstr "" - -#: lib/RT/System.pm:82 -msgid "ModifySelf" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:97 -msgid "ModifyTemplate" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:113 -msgid "ModifyTicket" -msgstr "" - -#: lib/RT/Date.pm:417 -msgid "Mon." -msgstr "Pzt." - -#: html/Ticket/Elements/ShowRequestor:61 -#. ($name) -msgid "More about %1" -msgstr "%1 hakkında daha fazla bilgi" - -#: html/Admin/Elements/PickCustomFields:83 -msgid "Move down" -msgstr "AÅŸağı git" - -#: html/Admin/Elements/PickCustomFields:75 -msgid "Move up" -msgstr "Yukarı git" - -#: html/Admin/Elements/SelectSingleOrMultiple:48 -msgid "Multiple" -msgstr "Çoklu" - -#: lib/RT/User_Overlay.pm:226 -msgid "Must specify 'Name' attribute" -msgstr "'Ad' özniteliÄŸi belirtilmeli" - -#: html/SelfService/Elements/MyRequests:57 -#. ($friendly_status) -msgid "My %1 tickets" -msgstr "Benim %1 biletim" - -#: html/Tools/Elements/Tabs:63 -msgid "My Day" -msgstr "Benim Günüm" - -#: html/Approvals/index.html:46 html/Approvals/index.html:47 -msgid "My approvals" -msgstr "Benim Onaylarım" - -#: html/Search/Elements/SearchPrivacy:50 html/Search/Elements/SelectSearchObject:53 html/Search/Elements/SelectSearchesForObjects:54 -msgid "My saved searches" -msgstr "Benim kaydedilmiÅŸ aramalarım" - -#: html/Admin/CustomFields/Modify.html:58 html/Admin/Elements/AddCustomFieldValue:53 html/Admin/Elements/EditCustomField:55 html/Admin/Elements/EditCustomFieldValues:55 html/Admin/Elements/ModifyTemplate:49 html/Admin/Groups/Modify.html:65 html/Search/Bulk.html:157 html/User/Groups/Modify.html:65 -msgid "Name" -msgstr "Ad" - -#: lib/RT/User_Overlay.pm:233 -msgid "Name in use" -msgstr "Kullanımdaki ad" - -#: html/Ticket/Elements/ShowDates:73 -msgid "Never" -msgstr "Asla" - -#: html/Elements/EditLinks:117 -msgid "New Links" -msgstr "Yeni baÄŸlantılar" - -#: html/Admin/Users/Modify.html:119 html/User/Prefs.html:109 -msgid "New Password" -msgstr "Yeni parola" - -#: etc/initialdata:332 -msgid "New Pending Approval" -msgstr "Yeni bekleyen onay" - -#: html/Ticket/Elements/Tabs:212 -msgid "New Search" -msgstr "Yeni arama" - -#: html/Admin/Elements/CustomFieldTabs:93 html/Admin/Queues/CustomField.html:73 -msgid "New custom field" -msgstr "Yeni özel alan" - -#: html/Admin/Elements/GroupTabs:77 html/User/Elements/GroupTabs:73 -msgid "New group" -msgstr "Yeni grup" - -#: html/SelfService/Prefs.html:53 -msgid "New password" -msgstr "Yeni parola" - -#: lib/RT/User_Overlay.pm:816 -msgid "New password notification sent" -msgstr "Yeni parola uyarısı iletildi" - -#: html/Admin/Elements/QueueTabs:95 -msgid "New queue" -msgstr "Yeni kuyruk" - -#: html/Ticket/Elements/Reminders:118 -msgid "New reminder:" -msgstr "Yeni hatırlatıcı:" - -#: html/Admin/Elements/SelectRights:65 -msgid "New rights" -msgstr "Yeni yetkiler" - -#: html/Admin/Global/Scrip.html:63 html/Admin/Global/Scrips.html:60 html/Admin/Queues/Scrip.html:71 html/Admin/Queues/Scrips.html:76 -msgid "New scrip" -msgstr "Yeni senet" - -#: html/Admin/Global/Template.html:81 html/Admin/Global/Templates.html:60 html/Admin/Queues/Template.html:79 html/Admin/Queues/Templates.html:71 -msgid "New template" -msgstr "Yeni ÅŸablon" - -#: html/SelfService/Elements/Tabs:84 html/SelfService/Elements/Tabs:88 -msgid "New ticket" -msgstr "Yeni bilet" - -#: lib/RT/Ticket_Overlay.pm:2757 -msgid "New ticket doesn't exist" -msgstr "Yeni bilet yok" - -#: html/Admin/Elements/UserTabs:81 -msgid "New user" -msgstr "Yeni kullanıcı" - -#: html/Admin/Elements/CreateUserCalled:47 -msgid "New user called" -msgstr "Yeni kullanıcı: " - -#: html/Admin/Queues/People.html:76 html/Ticket/Elements/EditPeople:50 -msgid "New watchers" -msgstr "Yeni gözcüler" - -#: html/Helpers/CalPopup.html:58 html/Ticket/Elements/Tabs:92 -msgid "Next" -msgstr "Ä°leri" - -#: html/Elements/TicketList:104 -msgid "Next Page" -msgstr "Sonraki Sayfa" - -#: html/Admin/Users/Modify.html:84 html/User/Prefs.html:72 -msgid "Nickname" -msgstr "Rumuz" - -#: html/Admin/CustomFields/UserRights.html:145 -msgid "No Class defined" -msgstr "Bir sınıf tanımlanmadı" - -#: html/Admin/CustomFields/Modify.html:166 html/Admin/Elements/EditCustomField:119 -msgid "No CustomField" -msgstr "Özel alan yok" - -#: html/Admin/CustomFields/GroupRights.html:103 -msgid "No CustomField defined" -msgstr "Özel alan tanımlanmadı" - -#: html/Admin/Groups/GroupRights.html:105 html/Admin/Groups/UserRights.html:92 -msgid "No Group defined" -msgstr "Grup alan tanımlanmadı" - -#: lib/RT/Tickets_Overlay_SQL.pm:482 -msgid "No Query" -msgstr "Sorgu Yok" - -#: html/Admin/Queues/GroupRights.html:118 html/Admin/Queues/UserRights.html:89 -msgid "No Queue defined" -msgstr "Kuyruk tanımlanmadı" - -#: bin/rt-crontool:73 -msgid "No RT user found. Please consult your RT administrator.\\n" -msgstr "RT kullanıcısı bulunamadı. Lütfen RT yöneticinize danışın.\\n" - -#: html/Admin/Global/Template.html:100 html/Admin/Queues/Template.html:97 -msgid "No Template" -msgstr "Åžablon Yok" - -#: html/Approvals/Elements/Approve:77 -msgid "No action" -msgstr "Eylem Yok" - -#: lib/RT/Record.pm:949 -msgid "No column specified" -msgstr "Sütun belirtilmedi" - -#: html/Ticket/Elements/ShowRequestor:68 -msgid "No comment entered about this user" -msgstr "Bu kullanıcı hakkında yorum yapılmadı" - -#: lib/RT/Action/Generic.pm:185 lib/RT/Condition/Generic.pm:197 lib/RT/Search/ActiveTicketsInQueue.pm:77 lib/RT/Search/Generic.pm:134 lib/RT/Search/Googleish.pm:78 -#. (ref $self) -msgid "No description for %1" -msgstr "%1 için herhangi bir tanım yok" - -#: lib/RT/Users_Overlay.pm:190 -msgid "No group specified" -msgstr "Grup belirtilmedi" - -#: html/Admin/Groups/index.html:52 -msgid "No groups matching search criteria found." -msgstr "Arama kıstaslarıyla örtüşen bir grup bulunamadı." - -#: lib/RT/Ticket_Overlay.pm:2393 -msgid "No message attached" -msgstr "Herhangi bir ileti eklenmedi" - -#: lib/RT/User_Overlay.pm:1034 -msgid "No password set" -msgstr "Herhangi bir parola atanmadı" - -#: lib/RT/Queue_Overlay.pm:361 -msgid "No permission to create queues" -msgstr "Kuyruk oluÅŸturmak için gerekli yetki yok" - -#: lib/RT/Ticket_Overlay.pm:420 -#. ($QueueObj->Name) -msgid "No permission to create tickets in the queue '%1'" -msgstr "%1 kuyruÄŸunda bilet oluÅŸturmak için gerekli yetki yok" - -#: lib/RT/User_Overlay.pm:186 -msgid "No permission to create users" -msgstr "Kullanıcı oluÅŸturmak için gerekli yetki yok" - -#: html/SelfService/Display.html:167 -msgid "No permission to display that ticket" -msgstr "Bu bileti görüntülemek için gerekli yetki yok" - -#: lib/RT/SavedSearch.pm:156 -msgid "No permission to save system-wide searches" -msgstr "Sistem genelinde yapılan aramaları kaydetmek için gerekli yetki yok" - -#: html/SelfService/Update.html:117 -msgid "No permission to view update ticket" -msgstr "Bilet güncellemeyi görüntülemek için gerekli yetki yok" - -#: lib/RT/Queue_Overlay.pm:795 lib/RT/Ticket_Overlay.pm:1489 -msgid "No principal specified" -msgstr "Yetkili belirtilmedi" - -#: html/Admin/Queues/People.html:175 html/Admin/Queues/People.html:185 -msgid "No principals selected." -msgstr "Herhangi bir yetkili seçilmedi" - -#: html/Admin/Queues/index.html:57 -msgid "No queues matching search criteria found." -msgstr "Arama kıstaslarıyla örtüşen bir kuyruk bulunamadı." - -#: html/Admin/Elements/SelectRights:106 -msgid "No rights found" -msgstr "Herhangi bir yetki bulunamadı" - -#: html/Admin/Elements/SelectRights:53 -msgid "No rights granted." -msgstr "Herhangi bir yetki verilmedi." - -#: lib/RT/SavedSearch.pm:196 -msgid "No search loaded" -msgstr "Herhangi bir arama yüklenemedi" - -#: html/Search/Bulk.html:232 -msgid "No search to operate on." -msgstr "Ä°ÅŸlenecek bir arama bulunamadı" - -#: html/Elements/RT__Ticket/ColumnMap:137 html/Search/Results.rdf:78 -msgid "No subject" -msgstr "BaÅŸlık yok" - -#: lib/RT/Transaction_Overlay.pm:528 lib/RT/Transaction_Overlay.pm:565 -msgid "No transaction type specified" -msgstr "Aktarım türü belirtilmedi" - -#: html/Admin/Users/index.html:55 -msgid "No users matching search criteria found." -msgstr "Arama kıstaslarıyla örtüşen herhangi bir kullanıcı bulunamadı." - -#: lib/RT/Record.pm:946 -msgid "No value sent to _Set!\\n" -msgstr "_Set için herhangi bir deÄŸer gönderilmedi!\\n" - -#: html/Elements/QuickCreate:59 -msgid "Nobody" -msgstr "Hiçkimse" - -#: lib/RT/Record.pm:951 -msgid "Nonexistant field?" -msgstr "Varolmayan Alan?" - -#: html/Search/Chart:71 html/Search/Elements/Chart:88 -msgid "Not Set" -msgstr "Atanmadı" - -#: html/Elements/Header:96 -msgid "Not logged in." -msgstr "GiriÅŸ yapılmadı" - -#: lib/RT/Date.pm:397 -msgid "Not set" -msgstr "Atanmadı" - -#: html/NoAuth/Reminder.html:48 -msgid "Not yet implemented." -msgstr "Henüz oluÅŸturulmadı." - -#: html/Approvals/Elements/Approve:81 -msgid "Notes" -msgstr "Notlar" - -#: lib/RT/User_Overlay.pm:819 -msgid "Notification could not be sent" -msgstr "Uyarı gönderilemiyor" - -#: etc/initialdata:101 -msgid "Notify AdminCcs" -msgstr "Yönetici Kk' ları bildir" - -#: etc/initialdata:97 -msgid "Notify AdminCcs as Comment" -msgstr "Yönetici Kk' ları yorum olarak bildir" - -#: etc/initialdata:93 etc/upgrade/3.1.17/content:6 -msgid "Notify Ccs" -msgstr "Kk' ları bildir" - -#: etc/initialdata:89 etc/upgrade/3.1.17/content:2 -msgid "Notify Ccs as Comment" -msgstr "Kk' ları yorum olarak bildir" - -#: etc/initialdata:128 -msgid "Notify Other Recipients" -msgstr "DiÄŸer alıcıları uyar" - -#: etc/initialdata:124 -msgid "Notify Other Recipients as Comment" -msgstr "DiÄŸer alıcıları yorum olarak uyar" - -#: etc/initialdata:85 -msgid "Notify Owner" -msgstr "Sahibi uyar" - -#: etc/initialdata:81 -msgid "Notify Owner as Comment" -msgstr "Sahibi yorum olarak uyar" - -#: etc/initialdata:376 -msgid "Notify Owner of their rejected ticket" -msgstr "Sahipleri, reddedilen biletleri hakkında uyar" - -#: etc/initialdata:365 -msgid "Notify Owner of their ticket has been approved by all approvers" -msgstr "Bütün onaycılar tarafından onaylanan bileti hakkında sahibi uyar" - -#: etc/initialdata:353 -msgid "Notify Owner of their ticket has been approved by some approver" -msgstr "Herhangi bir onaycı tarafından onaylanan bileti hakkında sahibi uyar" - -#: etc/initialdata:334 -msgid "Notify Owners and AdminCcs of new items pending their approval" -msgstr "Onaylanmayı bekleyen yeni öğeler hakkında sahipleri ve Yönetici Kk' ları uyar" - -#: etc/initialdata:77 -msgid "Notify Requestors" -msgstr "Ä°stekçileri Uyar" - -#: etc/initialdata:111 -msgid "Notify Requestors and Ccs" -msgstr "Ä°stekçileri ve Kk' ları uyar" - -#: etc/initialdata:106 -msgid "Notify Requestors and Ccs as Comment" -msgstr "Ä°stekçileri ve Kk' ları yorum olarak uyar" - -#: etc/initialdata:120 -msgid "Notify Requestors, Ccs and AdminCcs" -msgstr "Ä°stekçileri, Kk' ları ve Yönetici Kk' ları uyar" - -#: etc/initialdata:116 -msgid "Notify Requestors, Ccs and AdminCcs as Comment" -msgstr "Ä°stekçileri, Kk' ları ve Yönetici Kk' ları yorum olarak uyar" - -#: lib/RT/Date.pm:451 -msgid "Nov." -msgstr "Kas." - -#: html/Search/Elements/SelectAndOr:47 -msgid "OR" -msgstr "VEYA" - -#: lib/RT/Record.pm:322 -msgid "Object could not be created" -msgstr "Nesne oluÅŸturulamıyor" - -#: lib/RT/Record.pm:123 -msgid "Object could not be deleted" -msgstr "Nesne silinemiyor" - -#: lib/RT/Record.pm:341 -msgid "Object created" -msgstr "Nesne oluÅŸturuldu" - -#: lib/RT/Record.pm:120 -msgid "Object deleted" -msgstr "Nesne silindi" - -#: html/Admin/CustomFields/Objects.html:72 html/Admin/Elements/ObjectCustomFields:63 -#. ($ObjectType) -#. ($LookupType) -msgid "Object of type %1 cannot take custom fields" -msgstr "%1 türündeki nesneler, özel alanlar alamazlar" - -#: lib/RT/CustomField_Overlay.pm:967 -msgid "Object type mismatch" -msgstr "Nesne türü eÅŸleÅŸmiyor" - -#: lib/RT/Date.pm:450 -msgid "Oct." -msgstr "Eki." - -#: html/Tools/Elements/Tabs:55 -msgid "Offline" -msgstr "Çevrimdışı" - -#: html/Tools/Offline.html:49 -msgid "Offline edits" -msgstr "Çevrimdışı düzenlemeler" - -#: html/Tools/Offline.html:46 -msgid "Offline upload" -msgstr "Çevrimdışı yükleme" - -#: html/Elements/SelectDateRelation:56 -msgid "On" -msgstr "Tarih:" - -#: lib/RT/Transaction_Overlay.pm:326 -#. ($self->CreatedAsString(), $self->CreatorObj->Name()) -msgid "On %1, %2 wrote:" -msgstr "%1 tarihinde, %2 yazdı:" - -#: etc/initialdata:163 -msgid "On Comment" -msgstr "Yorumda" - -#: etc/initialdata:156 -msgid "On Correspond" -msgstr "Cevapta" - -#: etc/initialdata:145 -msgid "On Create" -msgstr "OluÅŸturmada" - -#: etc/initialdata:184 -msgid "On Owner Change" -msgstr "Sahiplik deÄŸiÅŸiminde" - -#: etc/initialdata:177 etc/upgrade/3.1.17/content:15 -msgid "On Priority Change" -msgstr "Öncelik deÄŸiÅŸiminde" - -#: etc/initialdata:192 -msgid "On Queue Change" -msgstr "Kuyruk deÄŸiÅŸiminde" - -#: etc/initialdata:198 -msgid "On Resolve" -msgstr "Çözümde" - -#: etc/initialdata:169 -msgid "On Status Change" -msgstr "Durum deÄŸiÅŸikliÄŸinde" - -#: etc/initialdata:150 -msgid "On Transaction" -msgstr "Harekette" - -#: html/Approvals/Elements/PendingMyApproval:70 -#. ("<input size='15' value='".( $created_after->Unix >0 && $created_after->ISO)."' name='CreatedAfter' id='CreatedAfter' />") -msgid "Only show approvals for requests created after %1" -msgstr "Sadece %1 sonrası oluÅŸturulmuÅŸ isteklere ait onayları göster" - -#: html/Approvals/Elements/PendingMyApproval:68 -#. ("<input size='15' value='".($created_before->Unix > 0 &&$created_before->ISO)."' name='CreatedBefore' id='CreatedBefore' />") -msgid "Only show approvals for requests created before %1" -msgstr "Sadece %1 öncesi oluÅŸturulmuÅŸ isteklere ait onayları göster" - -#: html/Admin/CustomFields/index.html:75 -msgid "Only show custom fields for:" -msgstr "Sadece ÅŸunun için özel alanları göster:" - -#: html/SelfService/index.html:46 -msgid "Open Tickets" -msgstr "Biletleri Aç" - -#: html/Ticket/Elements/Tabs:160 -msgid "Open it" -msgstr "Aç" - -#: html/SelfService/Elements/Tabs:75 -msgid "Open tickets" -msgstr "Biletleri aç" - -#: etc/initialdata:140 -msgid "Open tickets on correspondence" -msgstr "Cevap geldiÄŸinde biletleri aç" - -#: html/Prefs/MyRT.html:70 -msgid "Options" -msgstr "Seçenekler" - -#: html/Search/Elements/DisplayOptions:59 -msgid "Order by" -msgstr "Sıralama:" - -#: html/Admin/Users/Modify.html:141 html/User/Prefs.html:129 -msgid "Organization" -msgstr "Kurum" - -#: html/Approvals/Elements/Approve:53 -#. ($approving->Id, $approving->Subject) -msgid "Originating ticket: #%1" -msgstr "Kaynak alınan bilet: #%1" - -#: lib/RT/Transaction_Overlay.pm:622 -msgid "Outgoing email about a comment recorded" -msgstr "Bir yorum hakkındaki giden eposta kaydedildi" - -#: lib/RT/Transaction_Overlay.pm:626 -msgid "Outgoing email recorded" -msgstr "Giden eposta kaydedildi" - -#: html/Admin/Queues/Modify.html:90 -msgid "Over time, priority moves toward" -msgstr "Zaman içinde, öncelik ilerler" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "Own tickets" -msgstr "Biletleri sahiplen" - -#: lib/RT/Queue_Overlay.pm:112 -msgid "OwnTicket" -msgstr "BiletleriSahiplen" - -#: etc/initialdata:38 html/Elements/QuickCreate:56 html/Search/Elements/PickBasics:101 html/Ticket/Create.html:72 html/Ticket/Elements/EditBasics:61 html/Ticket/Elements/EditPeople:64 html/Ticket/Elements/EditPeople:65 html/Ticket/Elements/Reminders:129 html/Ticket/Elements/ShowPeople:48 html/Ticket/Update.html:62 lib/RT/ACE_Overlay.pm:110 lib/RT/Tickets_Overlay.pm:2006 -msgid "Owner" -msgstr "Sahip" - -#: lib/RT/Ticket_Overlay.pm:505 -msgid "Owner could not be set." -msgstr "Sahip atanamıyor" - -#: lib/RT/Transaction_Overlay.pm:672 -#. ($Old->Name , $New->Name) -msgid "Owner forcibly changed from %1 to %2" -msgstr "Sahip, zorla %1 den %2 ye deÄŸiÅŸtirildi" - -#: html/Elements/TicketList:78 -#. ($Page, int($TotalFound/$Rows)+$oddRows) -msgid "Page %1 of %2" -msgstr "Sayfa %1/%2" - -#: html/Admin/Users/Modify.html:198 html/User/Prefs.html:96 -msgid "Pager" -msgstr "Sayfalayıcı" - -#: html/Elements/EditLinks:144 html/Elements/EditLinks:76 html/Elements/ShowLinks:68 html/Ticket/Create.html:222 html/Ticket/Elements/BulkLinks:60 -msgid "Parents" -msgstr "Ana bölüm" - -#: html/Elements/Login:95 html/User/Prefs.html:105 -msgid "Password" -msgstr "Parola" - -#: html/NoAuth/Reminder.html:46 -msgid "Password Reminder" -msgstr "Parola Hatırlatıcı" - -#: lib/RT/Transaction_Overlay.pm:781 lib/RT/User_Overlay.pm:1045 -msgid "Password changed" -msgstr "Parola deÄŸiÅŸti" - -#: lib/RT/User_Overlay.pm:1037 lib/RT/User_Overlay.pm:214 -#. ($RT::MinimumPasswordLength) -msgid "Password needs to be at least %1 characters long" -msgstr "Parola en az %1 karakter uzunluÄŸunda olmalı" - -#: lib/RT/User_Overlay.pm:1044 -msgid "Password set" -msgstr "Parola atandı" - -#: html/User/Prefs.html:240 -#. (loc_fuzzy($msg)) -msgid "Password: %1" -msgstr "Parola: %1" - -#: lib/RT/User_Overlay.pm:1030 -msgid "Password: Permission Denied" -msgstr "Parola: Ä°zin Reddedildi" - -#: html/Admin/Users/Modify.html:364 -msgid "Passwords do not match." -msgstr "Parolalar eÅŸleÅŸmiyor" - -#: html/User/Prefs.html:242 -msgid "Passwords do not match. Your password has not been changed" -msgstr "Parolalar eÅŸleÅŸmiyor. Parolanız deÄŸiÅŸmedi" - -#: html/Ticket/Elements/ShowSummary:62 html/Ticket/Elements/Tabs:119 html/Ticket/ModifyAll.html:72 -msgid "People" -msgstr "KiÅŸiler" - -#: etc/initialdata:133 -msgid "Perform a user-defined action" -msgstr "Kullanıcı tanımlı bir eylemi yerine getir" - -#: html/Admin/Tools/Configuration.html:94 -msgid "Perl configuration" -msgstr "Perl ayarları" - -#: lib/RT/ACE_Overlay.pm:251 lib/RT/ACE_Overlay.pm:257 lib/RT/ACE_Overlay.pm:580 lib/RT/ACE_Overlay.pm:590 lib/RT/ACE_Overlay.pm:600 lib/RT/ACE_Overlay.pm:665 lib/RT/Attribute_Overlay.pm:158 lib/RT/Attribute_Overlay.pm:164 lib/RT/Attribute_Overlay.pm:405 lib/RT/Attribute_Overlay.pm:414 lib/RT/Attribute_Overlay.pm:427 lib/RT/CurrentUser.pm:116 lib/RT/CurrentUser.pm:125 lib/RT/CustomField_Overlay.pm:1017 lib/RT/CustomField_Overlay.pm:1138 lib/RT/CustomField_Overlay.pm:1281 lib/RT/CustomField_Overlay.pm:172 lib/RT/CustomField_Overlay.pm:189 lib/RT/CustomField_Overlay.pm:200 lib/RT/CustomField_Overlay.pm:374 lib/RT/CustomField_Overlay.pm:403 lib/RT/CustomField_Overlay.pm:763 lib/RT/CustomField_Overlay.pm:936 lib/RT/CustomField_Overlay.pm:971 lib/RT/Group_Overlay.pm:1117 lib/RT/Group_Overlay.pm:1121 lib/RT/Group_Overlay.pm:1130 lib/RT/Group_Overlay.pm:1240 lib/RT/Group_Overlay.pm:1244 lib/RT/Group_Overlay.pm:1250 lib/RT/Group_Overlay.pm:445 lib/RT/Group_Overlay.pm:542 lib/RT/Group_Overlay.pm:620 lib/RT/Group_Overlay.pm:628 lib/RT/Group_Overlay.pm:726 lib/RT/Group_Overlay.pm:730 lib/RT/Group_Overlay.pm:736 lib/RT/Group_Overlay.pm:922 lib/RT/Group_Overlay.pm:926 lib/RT/Group_Overlay.pm:939 lib/RT/Queue_Overlay.pm:1054 lib/RT/Queue_Overlay.pm:140 lib/RT/Queue_Overlay.pm:158 lib/RT/Queue_Overlay.pm:657 lib/RT/Queue_Overlay.pm:667 lib/RT/Queue_Overlay.pm:681 lib/RT/Queue_Overlay.pm:819 lib/RT/Queue_Overlay.pm:828 lib/RT/Queue_Overlay.pm:841 lib/RT/Scrip_Overlay.pm:149 lib/RT/Scrip_Overlay.pm:160 lib/RT/Scrip_Overlay.pm:224 lib/RT/Scrip_Overlay.pm:538 lib/RT/Template_Overlay.pm:108 lib/RT/Template_Overlay.pm:277 lib/RT/Ticket_Overlay.pm:1357 lib/RT/Ticket_Overlay.pm:1367 lib/RT/Ticket_Overlay.pm:1381 lib/RT/Ticket_Overlay.pm:1522 lib/RT/Ticket_Overlay.pm:1532 lib/RT/Ticket_Overlay.pm:1546 lib/RT/Ticket_Overlay.pm:1663 lib/RT/Ticket_Overlay.pm:1983 lib/RT/Ticket_Overlay.pm:2126 lib/RT/Ticket_Overlay.pm:2296 lib/RT/Ticket_Overlay.pm:2346 lib/RT/Ticket_Overlay.pm:2525 lib/RT/Ticket_Overlay.pm:2538 lib/RT/Ticket_Overlay.pm:2614 lib/RT/Ticket_Overlay.pm:2627 lib/RT/Ticket_Overlay.pm:2748 lib/RT/Ticket_Overlay.pm:2762 lib/RT/Ticket_Overlay.pm:2990 lib/RT/Ticket_Overlay.pm:3000 lib/RT/Ticket_Overlay.pm:3005 lib/RT/Ticket_Overlay.pm:3224 lib/RT/Ticket_Overlay.pm:3228 lib/RT/Ticket_Overlay.pm:3371 lib/RT/Ticket_Overlay.pm:3497 lib/RT/Transaction_Overlay.pm:516 lib/RT/Transaction_Overlay.pm:523 lib/RT/Transaction_Overlay.pm:551 lib/RT/Transaction_Overlay.pm:558 lib/RT/User_Overlay.pm:1176 lib/RT/User_Overlay.pm:1856 lib/RT/User_Overlay.pm:369 lib/RT/User_Overlay.pm:735 lib/RT/User_Overlay.pm:774 -msgid "Permission Denied" -msgstr "Pääsy kielletty" - -#: lib/RT/Template_Overlay.pm:238 lib/RT/Template_Overlay.pm:247 -msgid "Permission denied" -msgstr "Ä°zin Reddedildi" - -#: lib/RT/Template_Overlay.pm:372 -msgid "Permissions denied" -msgstr "Ä°zin Reddedildi" - -#: html/User/Elements/Tabs:56 -msgid "Personal Groups" -msgstr "KiÅŸisel gruplar" - -#: html/User/Groups/index.html:51 html/User/Groups/index.html:61 -msgid "Personal groups" -msgstr "KiÅŸisel gruplar" - -#: html/User/Elements/DelegateRights:58 -msgid "Personal groups:" -msgstr "KiÅŸisel gruplar:" - -#: html/Admin/Users/Modify.html:180 html/User/Prefs.html:81 -msgid "Phone numbers" -msgstr "Telefon numaraları" - -#: html/Elements/Header:93 html/Elements/Tabs:91 html/SelfService/Elements/Tabs:95 html/SelfService/Prefs.html:46 html/User/Prefs.html:46 html/User/Prefs.html:49 -msgid "Preferences" -msgstr "Tercihler" - -#: html/Admin/Users/MyRT.html:75 -#. ($pane, $UserObj->Name) -msgid "Preferences %1 for user %2 ." -msgstr "%2 kullanıcısı için %1 tercihleri" - -#: html/Prefs/MyRT.html:141 -#. ($pane) -msgid "Preferences saved for %1." -msgstr "%1 için tercihler kaydedildi" - -#: lib/RT/Action/Generic.pm:195 -msgid "Prepare Stubbed" -msgstr "Küt hazırla" - -#: html/Helpers/CalPopup.html:56 html/Ticket/Elements/Tabs:84 -msgid "Prev" -msgstr "Önceki" - -#: html/Elements/TicketList:101 -msgid "Previous Page" -msgstr "Önceki sayfa" - -#: lib/RT/ACE_Overlay.pm:157 lib/RT/ACE_Overlay.pm:239 lib/RT/ACE_Overlay.pm:569 -#. ($args{'PrincipalId'}) -msgid "Principal %1 not found." -msgstr "%1 yetkilisi bulunamadı" - -#: html/Search/Elements/PickBasics:147 html/Ticket/Create.html:181 html/Ticket/Elements/EditBasics:92 html/Ticket/Elements/ShowBasics:72 lib/RT/Tickets_Overlay.pm:1790 -msgid "Priority" -msgstr "Öncelik" - -#: html/Admin/Queues/Modify.html:86 -msgid "Priority starts at" -msgstr "Öncelik baÅŸlangıcı:" - -#: html/Search/Elements/EditSearches:50 -msgid "Privacy:" -msgstr "Gizlilik:" - -#: etc/initialdata:25 -msgid "Privileged" -msgstr "Ayrıcalıklı" - -#: html/Admin/Users/Modify.html:342 html/User/Prefs.html:231 -#. (loc_fuzzy($msg)) -msgid "Privileged status: %1" -msgstr "Ayrıcalık durumu: &1" - -#: html/Admin/Users/index.html:102 -msgid "Privileged users" -msgstr "Ayrıcalıklı kullanıcılar" - -#: etc/initialdata:23 etc/initialdata:29 etc/initialdata:35 etc/initialdata:59 -msgid "Pseudogroup for internal use" -msgstr "İç kullanım için sahte grup" - -#: html/Search/Build.html:121 -msgid "Query Builder" -msgstr "Sorgu OluÅŸturucu" - -#: html/Search/Elements/Chart:101 -msgid "Query:" -msgstr "Sorgu:" - -#: html/Elements/QueueSummary:48 html/Elements/QuickCreate:54 html/Search/Elements/PickBasics:71 html/SelfService/Create.html:54 html/Ticket/Create.html:62 html/Ticket/Elements/EditBasics:57 html/Ticket/Elements/ShowBasics:76 html/Tools/Reports/CreatedByDates.html:85 html/Tools/Reports/ResolvedByDates.html:86 html/Tools/Reports/ResolvedByOwner.html:66 html/User/Elements/DelegateRights:101 lib/RT/Tickets_Overlay.pm:1617 -msgid "Queue" -msgstr "Kuyruk" - -#: html/Admin/Queues/CustomField.html:63 html/Admin/Queues/Scrip.html:61 html/Admin/Queues/Scrips.html:69 html/Admin/Queues/Templates.html:65 -#. ($Queue) -#. ($id) -msgid "Queue %1 not found" -msgstr "%1 kuyruÄŸu bulunamadı" - -#: html/Admin/Queues/Modify.html:64 -msgid "Queue Name" -msgstr "Kuyruk adı" - -#: lib/RT/Queue_Overlay.pm:365 -msgid "Queue already exists" -msgstr "Kuyruk halihazırda mevcut" - -#: lib/RT/Queue_Overlay.pm:374 lib/RT/Queue_Overlay.pm:380 -msgid "Queue could not be created" -msgstr "Kuyruk oluÅŸturulamıyor" - -#: html/Ticket/Create.html:244 lib/t/regression/01ticket_link_searching.t:17 -msgid "Queue could not be loaded." -msgstr "Kuyruk yüklenemiyor." - -#: docs/design_docs/string-extraction-guide.txt:83 lib/RT/Queue_Overlay.pm:384 lib/RT/StyleGuide.pod:809 -msgid "Queue created" -msgstr "Kuyruk oluÅŸturuldu" - -#: html/SelfService/Display.html:126 lib/RT/CustomField_Overlay.pm:197 -msgid "Queue not found" -msgstr "Kuyruk bulunamadı" - -#: html/Admin/Elements/Tabs:59 html/Admin/index.html:72 -msgid "Queues" -msgstr "Kuyruklar" - -#: html/Elements/MyAdminQueues:46 -msgid "Queues I administer" -msgstr "YönettiÄŸim kuyruklar" - -#: html/Elements/MySupportQueues:46 -msgid "Queues I'm an AdminCc for" -msgstr "Yönetici Kk olduÄŸum kuyruklar" - -#: html/Elements/Quicksearch:47 html/Prefs/Elements/Tabs:58 html/Prefs/Quicksearch.html:70 -msgid "Quick search" -msgstr "Hızlı arama" - -#: html/Elements/QuickCreate:47 -msgid "Quick ticket creation" -msgstr "Hızlı bilet oluÅŸturumu" - -#: html/Search/Results.html:81 -msgid "RSS" -msgstr "" - -#: docs/design_docs/string-extraction-guide.txt:70 lib/RT/StyleGuide.pod:796 -#. ($RT::VERSION, $RT::rtname) -msgid "RT %1 for %2" -msgstr "RT %1 - %2" - -#: html/Admin/index.html:46 html/Admin/index.html:47 -msgid "RT Administration" -msgstr "RT Yönetimi" - -#: html/Elements/Error:63 html/SelfService/Error.html:62 -msgid "RT Error" -msgstr "RT Hatası" - -#: html/Admin/Tools/Configuration.html:73 -msgid "RT Variables" -msgstr "RT DeÄŸiÅŸkenleri" - -#: html/Admin/Elements/SystemTabs:71 html/Admin/Elements/UserTabs:67 html/Admin/Global/MyRT.html:1 html/Admin/Global/MyRT.html:12 html/Admin/Global/MyRT.html:4 html/Admin/Global/index.html:84 html/Admin/Users/MyRT.html:21 html/Prefs/MyRT.html:66 html/Prefs/MyRT.html:78 html/User/Elements/Tabs:65 html/index.html:1 html/index.html:75 -msgid "RT at a glance" -msgstr "Bir bakışta RT" - -#: html/Admin/Users/MyRT.html:30 -#. ($UserObj->Name) -msgid "RT at a glance for the user %1" -msgstr "%1 kullanıcısı için bir bakışta RT" - -#: html/Admin/CustomFields/Modify.html:117 -msgid "RT can include content from another web service when showing this custom field." -msgstr "RT, bu özel alanı gösterirken, diÄŸerbir aÄŸ hizmetinden içerik ekleyebilir" - -#: html/Admin/CustomFields/Modify.html:106 -msgid "RT can make this custom field's values into hyperlinks to another service." -msgstr "RT, bu özel alanın deÄŸerlerini, diÄŸer bir hizmetin hiperbaÄŸlantılarına dönüştürebilir." - -#: html/Elements/SetupSessionCookie:100 -msgid "RT couldn't store your session." -msgstr "RT, oturumunuzu kaydedemiyor." - -#: html/Elements/Logo:49 html/Elements/PageLayout:172 -#. ($RT::rtname) -msgid "RT for %1" -msgstr "%1: RT" - -#: html/Search/Simple.html:58 -msgid "RT will look for anything else you enter in ticket subjects." -msgstr "RT, bilet baÅŸlıklarına gireceÄŸiniz herhangi bir ÅŸeyi araÅŸtıracaktır." - -#: html/Admin/CustomFields/Modify.html:108 html/Admin/CustomFields/Modify.html:119 -msgid "RT will replace <tt>__id__</tt> and <tt>__CustomField__</tt> with the record id and custom field value, respectively" -msgstr "RT, <tt>__id__</tt> ve <tt>__CustomField__</tt> deÄŸerlerini, kayıt numarası ve özel alan deÄŸeri ile deÄŸiÅŸtirecektir" - -#: html/Admin/Users/Modify.html:79 html/User/Prefs.html:69 -msgid "Real Name" -msgstr "Gerçek Ad" - -#: lib/RT/Transaction_Overlay.pm:725 -#. ($value) -msgid "Reference by %1 added" -msgstr "%1 ile baÅŸvuru eklendi" - -#: lib/RT/Transaction_Overlay.pm:765 -#. ($value) -msgid "Reference by %1 deleted" -msgstr "%1 ile baÅŸvuru silindi" - -#: lib/RT/Transaction_Overlay.pm:722 -#. ($value) -msgid "Reference to %1 added" -msgstr "%1 için baÅŸvuru eklendi" - -#: lib/RT/Transaction_Overlay.pm:762 -#. ($value) -msgid "Reference to %1 deleted" -msgstr "%1 için baÅŸvuru silindi" - -#: html/Elements/EditLinks:103 html/Elements/EditLinks:156 html/Elements/ShowLinks:92 html/Ticket/Create.html:225 html/Ticket/Elements/BulkLinks:72 -msgid "Referred to by" -msgstr "Kaynak gösteren:" - -#: html/Elements/EditLinks:152 html/Elements/EditLinks:94 html/Elements/SelectLinkType:49 html/Elements/ShowLinks:82 html/Ticket/Create.html:224 html/Ticket/Elements/BulkLinks:68 -msgid "Refers to" -msgstr "Kaynak gösterdiÄŸi:" - -#: html/Elements/Refresh:57 -#. ($value/60) -msgid "Refresh this page every %1 minutes." -msgstr "Bu sayfayı, her %1 dakikada bir yenile" - -#: lib/RT/Transaction_Overlay.pm:811 -#. ($ticket->Subject) -msgid "Reminder '%1' added" -msgstr "'%1' hatırlatıcısı eklendi" - -#: lib/RT/Transaction_Overlay.pm:824 -#. ($ticket->Subject) -msgid "Reminder '%1' completed" -msgstr "'%1' hatırlatıcısı tamamlandı" - -#: lib/RT/Transaction_Overlay.pm:817 -#. ($ticket->Subject) -msgid "Reminder '%1' reopened" -msgstr "'%1' hatırlatıcısı tekrar açıldı" - -#: html/Ticket/Reminders.html:46 -#. ($Ticket->Id) -msgid "Reminder ticket #%1" -msgstr "Hatırlatıcı bilet #%1" - -#: html/Elements/MyReminders:48 html/Ticket/Elements/ShowSummary:75 html/Ticket/Elements/Tabs:122 html/Ticket/Reminders.html:52 -msgid "Reminders" -msgstr "Hatırlatıcılar" - -#: html/Ticket/Reminders.html:50 -#. ($Ticket->Id) -msgid "Reminders for ticket #%1" -msgstr "#%1 bileti için hatırlatıcılar" - -#: html/Search/Bulk.html:94 -msgid "Remove AdminCc" -msgstr "Yönetici Kk Kaldır" - -#: html/Search/Bulk.html:90 -msgid "Remove Cc" -msgstr "Kk kaldır" - -#: html/Search/Bulk.html:86 -msgid "Remove Requestor" -msgstr "Ä°stekçi kaldır" - -#: html/Ticket/Elements/ShowTransaction:179 html/Ticket/Elements/Tabs:147 -msgid "Reply" -msgstr "Yanıtla" - -#: html/Admin/Queues/Modify.html:72 -msgid "Reply Address" -msgstr "Yanıtlama Adresi" - -#: html/Search/Bulk.html:129 html/Ticket/ModifyAll.html:94 html/Ticket/Update.html:78 -msgid "Reply to requestors" -msgstr "Ä°stekçileri Yanıtla" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "Reply to tickets" -msgstr "Biletleri Yanıtla" - -#: lib/RT/Queue_Overlay.pm:110 -msgid "ReplyToTicket" -msgstr "BiletiYanıtla" - -#: html/Tools/Elements/Tabs:59 html/Tools/Reports/index.html:46 html/Tools/Reports/index.html:47 -msgid "Reports" -msgstr "Raporlar" - -#: etc/initialdata:44 lib/RT/ACE_Overlay.pm:111 -msgid "Requestor" -msgstr "Ä°stekçi" - -#: html/SelfService/Create.html:63 html/Ticket/Create.html:80 html/Ticket/Elements/EditPeople:69 html/Ticket/Elements/ShowPeople:52 -msgid "Requestors" -msgstr "Ä°stekçiler" - -#: html/Admin/Queues/Modify.html:96 -msgid "Requests should be due in" -msgstr "Ä°steklerin yapılacağı zaman:" - -#: lib/RT/Attribute_Overlay.pm:146 -#. ('Object') -msgid "Required parameter '%1' not specified" -msgstr "Gerekli parametre '%1' belirtilmedi" - -#: html/Elements/Submit:83 -msgid "Reset" -msgstr "Sıfırla" - -#: html/Admin/Users/MyRT.html:15 html/Prefs/MyRT.html:60 -msgid "Reset to default" -msgstr "Varsayılana sıfırla" - -#: html/Admin/Users/Modify.html:183 html/User/Prefs.html:84 -msgid "Residence" -msgstr "Hane" - -#: html/Ticket/Elements/Tabs:156 -msgid "Resolve" -msgstr "Çöz" - -#: html/Ticket/Update.html:156 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Resolve ticket #%1 (%2)" -msgstr "#%1 biletini çözümle (%2)" - -#: etc/initialdata:323 html/Elements/SelectDateType:49 lib/RT/Ticket_Overlay.pm:1172 -msgid "Resolved" -msgstr "Çözüldü" - -#: html/Tools/Reports/Elements/Tabs:55 -msgid "Resolved by owner" -msgstr "Sahip tarafından çözüldü" - -#: html/Tools/Reports/Elements/Tabs:59 -msgid "Resolved in date range" -msgstr "Zaman aralığında çözüldü" - -#: html/Tools/Reports/ResolvedByDates.html:52 -msgid "Resolved tickets in period, grouped by owner" -msgstr "Dönemdeki çözülmüş biletler (sahip ile gruplandırılmış)" - -#: html/Tools/Reports/ResolvedByOwner.html:50 -msgid "Resolved tickets, grouped by owner" -msgstr "Çözülmüş biletler (sahip ile gruplandırılmış)" - -#: html/Elements/ListActions:46 html/Search/Elements/NewListActions:47 -msgid "Results" -msgstr "Sonuçlar" - -#: html/Admin/Users/Modify.html:126 html/User/Prefs.html:116 -msgid "Retype Password" -msgstr "Parolayı tekrar yazın" - -#: html/Search/Elements/EditSearches:61 -msgid "Revert" -msgstr "Eskiye dön" - -#: lib/RT/ACE_Overlay.pm:630 -msgid "Right Delegated" -msgstr "Yetki Aktarıldı" - -#: lib/RT/ACE_Overlay.pm:320 -msgid "Right Granted" -msgstr "Yetki Verildi" - -#: lib/RT/ACE_Overlay.pm:178 -msgid "Right Loaded" -msgstr "Yetki Yüklendi" - -#: lib/RT/ACE_Overlay.pm:695 lib/RT/ACE_Overlay.pm:716 -msgid "Right could not be revoked" -msgstr "Yetki geri alınamıyor" - -#: html/User/Delegation.html:85 -msgid "Right not found" -msgstr "Yetki bulunamadı" - -#: lib/RT/ACE_Overlay.pm:560 lib/RT/ACE_Overlay.pm:655 -msgid "Right not loaded." -msgstr "Yetki yüklenemedi" - -#: lib/RT/ACE_Overlay.pm:712 -msgid "Right revoked" -msgstr "Yetki geri alındı" - -#: html/Admin/Elements/UserTabs:70 -msgid "Rights" -msgstr "Yetkiler" - -#: html/Admin/CustomFields/GroupRights.html:129 lib/RT/Interface/Web.pm:961 -#. ($object_type) -msgid "Rights could not be granted for %1" -msgstr "Yetkiler %1 için verilemiyor" - -#: html/Admin/CustomFields/GroupRights.html:156 lib/RT/Interface/Web.pm:990 -#. ($object_type) -msgid "Rights could not be revoked for %1" -msgstr "Yetkiler %1 için geri alınamıyor" - -#: html/Admin/Global/GroupRights.html:72 html/Admin/Queues/GroupRights.html:74 -msgid "Roles" -msgstr "Roller" - -#: html/Prefs/MyRT.html:72 -msgid "Rows per box" -msgstr "Kutu başına satır" - -#: html/Search/Elements/DisplayOptions:93 -msgid "Rows per page" -msgstr "Sayfa başına satır" - -#: lib/RT/Date.pm:422 -msgid "Sat." -msgstr "Cmt." - -#: html/Prefs/MyRT.html:72 html/Prefs/Quicksearch.html:64 html/Prefs/Search.html:69 html/Prefs/Search.html:69 html/Search/Elements/EditSearches:70 html/Widgets/SelectionBox:211 -msgid "Save" -msgstr "Kaydet" - -#: html/Admin/Global/Template.html:67 html/Admin/Groups/Modify.html:88 html/Admin/Queues/Modify.html:111 html/Admin/Queues/People.html:126 html/Admin/Users/Modify.html:239 html/Prefs/Quicksearch.html:64 html/Prefs/SearchOptions.html:63 html/SelfService/Prefs.html:58 html/Ticket/Modify.html:60 html/Ticket/ModifyAll.html:127 html/Ticket/ModifyDates.html:60 html/Ticket/ModifyLinks.html:61 html/Ticket/ModifyPeople.html:60 html/User/Groups/Modify.html:77 -msgid "Save Changes" -msgstr "DeÄŸiÅŸiklikleri Kaydet" - -#: html/User/Prefs.html:181 -msgid "Save Preferences" -msgstr "Tercihleri Kaydet" - -#: html/Ticket/Elements/PreviewScrips:131 -msgid "Save changes" -msgstr "DeÄŸiÅŸiklikleri kaydet" - -#: lib/RT/SavedSearch.pm:173 -#. ($name) -msgid "Saved search %1" -msgstr "KaydedilmiÅŸ arama %1" - -#: html/Admin/Elements/ListGlobalScrips:60 html/Admin/Global/Scrip.html:77 html/Admin/Queues/Scrip.html:84 -#. ($scrip->Id) -#. ($id) -msgid "Scrip #%1" -msgstr "Senet #%1" - -#: lib/RT/Scrip_Overlay.pm:203 -msgid "Scrip Created" -msgstr "Senet oluÅŸturuldu" - -#: html/Admin/Elements/EditScrip:52 -msgid "Scrip Fields" -msgstr "Senet alanları" - -#: html/Admin/Elements/EditScrips:109 -msgid "Scrip deleted" -msgstr "Senet silindi" - -#: html/Admin/Elements/QueueTabs:67 html/Admin/Elements/SystemTabs:54 html/Admin/Global/index.html:62 -msgid "Scrips" -msgstr "Senetler" - -#: html/Admin/Queues/Scrips.html:55 -msgid "Scrips which apply to all queues" -msgstr "Bütün kuyruklara etki eden senetler" - -#: html/Elements/SimpleSearch:48 html/Search/Simple.html:63 -msgid "Search" -msgstr "Arama" - -#: html/Prefs/SearchOptions.html:47 html/Prefs/SearchOptions.html:50 -msgid "Search Preferences" -msgstr "Arama Tercihleri" - -#: lib/RT/SavedSearch.pm:115 -msgid "Search attribute load failure" -msgstr "Arama özniteliÄŸi yükleme hatası" - -#: html/Approvals/Elements/PendingMyApproval:59 -msgid "Search for approvals" -msgstr "Onayları ara" - -#: html/Search/Simple.html:67 -msgid "Search for tickets" -msgstr "Biletleri ara" - -#: html/Search/Simple.html:55 -msgid "Search for tickets. Enter <strong>id</strong> numbers, <strong>queues</strong> by name, Owners by <strong>username</strong> and Requestors by <strong>email address</strong>. RT will look for anything else you enter in ticket bodies and attachments." -msgstr "Biletleri ara. Bilet <strong>numarasını</strong>, <strong>Kuyrukları</strong> adı ile, Sahipleri <strong>kulanıcı adı</strong> ile ve Ä°stekçileri <strong>eposta adresi</strong> ile girin. RT, girdiÄŸiniz diÄŸer ÅŸeyleri bilet gövdelerinde ve eklentilerde arayacaktır." - -#: html/User/Elements/Tabs:62 -msgid "Search options" -msgstr "Arama tercihleri" - -#: html/Search/Chart.html:56 -#. ($PrimaryGroupBy) -msgid "Search results grouped by %1" -msgstr "Arama sonuçları %1 ile gruplandırılmıştır." - -#: lib/RT/SavedSearch.pm:203 -#. ($msg) -msgid "Search update: %1" -msgstr "Arama güncellemesi: %1" - -#: html/Search/Simple.html:57 -msgid "Searching the full text of every ticket can take a long time, but if you need to do it, you can search for any word in full ticket history for any word by typing <b>fulltext:<i>word</i></b>." -msgstr "Her bir biletin tüm metninin aranması uzun sürebilir, ama eÄŸer bunu yapmanız gerkiyorsa, <b>fulltext:<i>kelime</i></b> yazarak tüm bilet tarihçesindeki herhangi bir kelimeyi aratabilirsiniz." - -#: bin/rt-crontool:265 -msgid "Security:" -msgstr "Güvenlik:" - -#: html/Elements/ShowCustomFields:98 -msgid "See also:" -msgstr "Bakınız:" - -#: lib/RT/CustomField_Overlay.pm:105 -msgid "See custom fields" -msgstr "Özel alanları gör" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "See exact outgoing email messages and their recipeients" -msgstr "Giden eposta iletilerinin tamamını ve alıcılarını gör" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "See ticket private commentary" -msgstr "Biletin gizli yorumlarını gör" - -#: lib/RT/Queue_Overlay.pm:103 -msgid "See ticket summaries" -msgstr "Bilet özetlerini gör" - -#: lib/RT/CustomField_Overlay.pm:105 -msgid "SeeCustomField" -msgstr "ÖzelAlanıGör" - -#: lib/RT/Group_Overlay.pm:169 -msgid "SeeGroup" -msgstr "GrubuGör" - -#: lib/RT/Queue_Overlay.pm:91 -msgid "SeeQueue" -msgstr "KuyruÄŸuGör" - -#: html/Admin/CustomFields/index.html:46 html/Admin/CustomFields/index.html:49 -msgid "Select a Custom Field" -msgstr "Özel bir alanı seç" - -#: html/Admin/Groups/index.html:78 -msgid "Select a group" -msgstr "Bir grubu seç" - -#: html/Admin/Queues/index.html:54 -msgid "Select a queue" -msgstr "Bir kuyruÄŸu seç" - -#: html/SelfService/CreateTicketInQueue.html:48 -msgid "Select a queue for your new ticket" -msgstr "Yeni biletiniz için bir kuyruk seçin" - -#: html/Admin/Users/index.html:46 html/Admin/Users/index.html:49 html/Admin/Users/index.html:52 -msgid "Select a user" -msgstr "Bir kullanıcı seçin" - -#: html/Admin/Elements/CustomFieldTabs:90 -msgid "Select custom field" -msgstr "Özel alan seçin" - -#: html/Admin/Global/CustomFields/index.html:70 -msgid "Select custom fields for all user groups" -msgstr "Bütün kullanıcı grupları için özel alanları seçin" - -#: html/Admin/Global/CustomFields/index.html:65 -msgid "Select custom fields for all users" -msgstr "Bütün kullanıcılar için özel alanları seçin" - -#: html/Admin/Global/CustomFields/index.html:76 -msgid "Select custom fields for tickets in all queues" -msgstr "Bütün kuyruklardaki biletler için özel alanlar seç" - -#: html/Admin/Global/CustomFields/index.html:83 -msgid "Select custom fields for transactions on tickets in all queues" -msgstr "Bütün kuyruklardaki biletlerin hareketleri için özel alanlar seçin" - -#: html/Admin/Elements/GroupTabs:75 html/User/Elements/GroupTabs:71 -msgid "Select group" -msgstr "Grup seçin" - -#: lib/RT/CustomField_Overlay.pm:59 -msgid "Select multiple values" -msgstr "Çoklu deÄŸer seçin" - -#: lib/RT/CustomField_Overlay.pm:60 -msgid "Select one value" -msgstr "Bir deÄŸer seçin" - -#: html/Admin/Elements/QueueTabs:92 -msgid "Select queue" -msgstr "Kuyruk seçin" - -#: html/Prefs/Quicksearch.html:53 -msgid "Select queues to be displayed on the \"RT at a glance\" page" -msgstr "\"Bir bakışta RT\" sayfasında görüntülenecek kuyrukları seçin" - -#: html/Admin/Global/Scrip.html:59 html/Admin/Global/Scrips.html:57 html/Admin/Queues/Scrip.html:67 html/Admin/Queues/Scrips.html:73 -msgid "Select scrip" -msgstr "Senet seçin" - -#: html/Admin/Global/Template.html:78 html/Admin/Global/Templates.html:57 html/Admin/Queues/Template.html:76 html/Admin/Queues/Templates.html:68 -msgid "Select template" -msgstr "Åžablon seçin" - -#: lib/RT/CustomField_Overlay.pm:61 -msgid "Select up to %1 values" -msgstr "En çok %1 adet deÄŸer seçin" - -#: html/Admin/Elements/UserTabs:78 -msgid "Select user" -msgstr "Kullanıcı seç" - -#: html/Admin/Elements/EditCustomFields:58 -msgid "Selected Custom Fields" -msgstr "Seçili özel alanlar" - -#: html/Admin/CustomFields/Objects.html:59 -msgid "Selected objects" -msgstr "Seçili nesneler" - -#: html/Widgets/SelectionBox:209 -msgid "Selections modified. Please save your changes" -msgstr "Seçimler deÄŸiÅŸti. Lütfen deÄŸiÅŸikliklerinizi kaydedin" - -#: etc/initialdata:121 -msgid "Send mail to all watchers" -msgstr "Tüm izleyicilere posta gönder" - -#: etc/initialdata:117 -msgid "Send mail to all watchers as a \"comment\"" -msgstr "Tüm izleyicilere \"yorum\" olarak posta gönder" - -#: etc/initialdata:112 -msgid "Send mail to requestors and Ccs" -msgstr "Ä°stekçilere ve Kk' lara posta gönder" - -#: etc/initialdata:107 -msgid "Send mail to requestors and Ccs as a comment" -msgstr "Ä°stekçilere ve Kk' lara yorum olarak posta gönder" - -#: etc/initialdata:78 -msgid "Sends a message to the requestors" -msgstr "Ä°stekçilere posta gönderir" - -#: etc/initialdata:125 etc/initialdata:129 -msgid "Sends mail to explicitly listed Ccs and Bccs" -msgstr "BelirtilmiÅŸ Kk ve GKk listesine posta gönderir" - -#: etc/initialdata:94 etc/upgrade/3.1.17/content:7 -msgid "Sends mail to the Ccs" -msgstr "Kk' lara posta gönderir" - -#: etc/initialdata:90 etc/upgrade/3.1.17/content:3 -msgid "Sends mail to the Ccs as a comment" -msgstr "Kk' lara yorum olarak eposta gönderir" - -#: etc/initialdata:102 -msgid "Sends mail to the administrative Ccs" -msgstr "Yönetimsel Kk' lara eposta gönderir" - -#: etc/initialdata:98 -msgid "Sends mail to the administrative Ccs as a comment" -msgstr "Yönetimsel Kk' lara yorum olarak eposta gönderir" - -#: etc/initialdata:82 etc/initialdata:86 -msgid "Sends mail to the owner" -msgstr "Sahibe posta gönderir" - -#: lib/RT/Date.pm:449 -msgid "Sep." -msgstr "Eki." - -#: html/Ticket/Elements/ShowTransaction:158 -msgid "Show" -msgstr "Göster" - -#: html/Approvals/index.html:52 -msgid "Show Approvals" -msgstr "Onayları Göster" - -#: html/Search/Elements/EditFormat:56 -msgid "Show Columns" -msgstr "Sütunları göster" - -#: html/Ticket/Elements/Tabs:220 -msgid "Show Results" -msgstr "Sonuçları Göster" - -#: html/Approvals/Elements/PendingMyApproval:64 -msgid "Show approved requests" -msgstr "Onaylanmış istekleri göster" - -#: html/Ticket/Create.html:316 -msgid "Show basics" -msgstr "Temelleri Göster" - -#: html/Approvals/Elements/PendingMyApproval:65 -msgid "Show denied requests" -msgstr "ReddedilmiÅŸ istekleri göster" - -#: html/Ticket/Create.html:319 -msgid "Show details" -msgstr "Ayrıntıları göster" - -#: html/Approvals/Elements/PendingMyApproval:63 -msgid "Show pending requests" -msgstr "Bekleyen istekleri göster" - -#: html/Approvals/Elements/PendingMyApproval:66 -msgid "Show requests awaiting other approvals" -msgstr "DiÄŸer onayları bekleyen istekleri göster" - -#: lib/RT/Queue_Overlay.pm:93 -msgid "ShowACL" -msgstr "" - -#: lib/RT/System.pm:85 -msgid "ShowConfigTab" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:106 -msgid "ShowOutgoingEmail" -msgstr "" - -#: lib/RT/Group_Overlay.pm:168 -msgid "ShowSavedSearches" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:102 -msgid "ShowScrips" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:99 -msgid "ShowTemplate" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:103 -msgid "ShowTicket" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:104 -msgid "ShowTicketComments" -msgstr "" - -#: lib/RT/Queue_Overlay.pm:107 -msgid "Sign up as a ticket Requestor or ticket or queue Cc" -msgstr "Bilet istekçisi veya bilet veya kuyruk Kk olarak yazılın" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "Sign up as a ticket or queue AdminCc" -msgstr "Bilet veya kuyruk Kk olarak yazılın" - -#: html/Admin/Users/Modify.html:230 html/User/Prefs.html:168 -msgid "Signature" -msgstr "Ä°mza" - -#: html/Elements/Tabs:68 -msgid "Simple Search" -msgstr "Basit Arama" - -#: html/Admin/Elements/SelectSingleOrMultiple:47 -msgid "Single" -msgstr "Tekil" - -#: html/Search/Elements/EditFormat:75 -msgid "Size" -msgstr "Boyut" - -#: html/Elements/Header:89 -msgid "Skip Menu" -msgstr "Menüyü Geç" - -#: html/Search/Elements/EditFormat:78 -msgid "Small" -msgstr "Küçük" - -#: html/Admin/CustomFields/Modify.html:120 -msgid "Some browsers may only load content from the same domain as your RT server." -msgstr "Bazı gezginler, sadece aynı alan adından (RT sunucunuz gibi) içerik yükleyebilirler." - -#: html/Admin/Elements/AddCustomFieldValue:49 html/Admin/Elements/EditCustomFieldValues:54 -msgid "Sort" -msgstr "Sırala" - -#: html/Admin/Elements/EditScrip:78 -msgid "Stage" -msgstr "AÅŸama" - -#: html/Elements/SelectDateType:48 html/Ticket/Elements/EditDates:53 html/Ticket/Elements/ShowDates:56 -msgid "Started" -msgstr "BaÅŸlangıcı" - -#: html/Elements/SelectDateType:52 html/Ticket/Create.html:208 html/Ticket/Elements/EditDates:48 html/Ticket/Elements/ShowDates:52 -msgid "Starts" -msgstr "BaÅŸlayacak" - -#: html/Admin/Users/Modify.html:162 html/User/Prefs.html:145 -msgid "State" -msgstr "Durum" - -#: html/Search/Elements/PickBasics:87 html/SelfService/Update.html:57 html/Ticket/Create.html:66 html/Ticket/Elements/EditBasics:53 html/Ticket/Elements/ShowBasics:52 html/Ticket/Update.html:59 lib/RT/Ticket_Overlay.pm:1166 lib/RT/Tickets_Overlay.pm:1651 -msgid "Status" -msgstr "Durum" - -#: etc/initialdata:309 -msgid "Status Change" -msgstr "Durum DeÄŸiÅŸikliÄŸi" - -#: html/Ticket/Elements/Tabs:178 -msgid "Steal" -msgstr "Çal" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "Steal tickets" -msgstr "Biletleri Çal" - -#: lib/RT/Queue_Overlay.pm:117 -msgid "StealTicket" -msgstr "" - -#: lib/RT/Transaction_Overlay.pm:678 -#. ($Old->Name) -msgid "Stolen from %1" -msgstr "%1 den çalındı" - -#: html/Search/Elements/EditFormat:81 -msgid "Style" -msgstr "Biçem" - -#: html/Elements/QuickCreate:52 html/Elements/SelectAttachmentField:47 html/Search/Bulk.html:132 html/SelfService/Create.html:79 html/SelfService/Update.html:65 html/Ticket/Create.html:108 html/Ticket/Elements/EditBasics:48 html/Ticket/Elements/Reminders:125 html/Ticket/ModifyAll.html:100 html/Ticket/Update.html:82 lib/RT/Ticket_Overlay.pm:1162 lib/RT/Tickets_Overlay.pm:1733 -msgid "Subject" -msgstr "Konu" - -#: docs/design_docs/string-extraction-guide.txt:89 lib/RT/StyleGuide.pod:815 lib/RT/Transaction_Overlay.pm:700 -#. ($self->Data) -msgid "Subject changed to %1" -msgstr "Konu deÄŸiÅŸti: %1" - -#: html/Elements/Submit:75 -msgid "Submit" -msgstr "Gönder" - -#: lib/RT/Group_Overlay.pm:774 -msgid "Succeeded" -msgstr "BaÅŸarılı" - -#: lib/RT/Date.pm:423 -msgid "Sun." -msgstr "Paz." - -#: lib/RT/System.pm:75 -msgid "SuperUser" -msgstr "" - -#: html/User/Elements/DelegateRights:98 -msgid "System" -msgstr "Sistem" - -#: html/Admin/Elements/ToolTabs:54 html/Admin/Tools/Configuration.html:48 -msgid "System Configuration" -msgstr "Sistem Ayarları" - -#: html/Admin/CustomFields/GroupRights.html:128 html/Admin/CustomFields/GroupRights.html:155 html/Admin/CustomFields/UserRights.html:128 html/Admin/CustomFields/UserRights.html:98 html/Admin/Elements/SelectRights:106 lib/RT/ACE_Overlay.pm:584 lib/RT/Interface/Web.pm:960 lib/RT/Interface/Web.pm:989 -msgid "System Error" -msgstr "Sistem Hatası" - -#: lib/RT/Transaction_Overlay.pm:224 lib/RT/Transaction_Overlay.pm:230 -#. ($msg) -msgid "System Error: %1" -msgstr "Sistem Hatası: %1" - -#: html/Admin/Tools/index.html:47 -msgid "System Tools" -msgstr "Sistem Araçları" - -#: lib/RT/ACE_Overlay.pm:633 -msgid "System error. Right not delegated." -msgstr "Sistem hatası. Yetki devredilemedi." - -#: lib/RT/ACE_Overlay.pm:163 lib/RT/ACE_Overlay.pm:228 lib/RT/ACE_Overlay.pm:323 lib/RT/ACE_Overlay.pm:920 -msgid "System error. Right not granted." -msgstr "Sistem hatası. Yetki verilemedi." - -#: html/Admin/CustomFields/GroupRights.html:58 html/Admin/Global/GroupRights.html:56 html/Admin/Groups/GroupRights.html:58 html/Admin/Queues/GroupRights.html:57 -msgid "System groups" -msgstr "Sistem grupları" - -#: etc/initialdata:41 etc/initialdata:47 etc/initialdata:53 -msgid "SystemRolegroup for internal use" -msgstr "İç kullanım için SistemRolGrubu" - -#: lib/RT/CurrentUser.pm:357 -msgid "TEST_STRING" -msgstr "DENEME_YAZISI" - -#: etc/initialdata:603 html/Search/Elements/EditFormat:72 html/Ticket/Elements/Tabs:170 -msgid "Take" -msgstr "Al" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "Take tickets" -msgstr "Biletleri al" - -#: lib/RT/Queue_Overlay.pm:115 -msgid "TakeTicket" -msgstr "BiletiAl" - -#: lib/RT/Transaction_Overlay.pm:663 -msgid "Taken" -msgstr "Alındı" - -#: html/Admin/Elements/EditScrip:71 html/Tools/Offline.html:78 -msgid "Template" -msgstr "Åžablon" - -#: html/Admin/Global/Template.html:112 html/Admin/Queues/Template.html:113 -#. ($TemplateObj->Id()) -msgid "Template #%1" -msgstr "Åžablon #%1" - -#: html/Admin/Elements/EditTemplates:110 -msgid "Template deleted" -msgstr "Åžablon silindi" - -#: lib/RT/Scrip_Overlay.pm:176 -msgid "Template is mandatory argument" -msgstr "Åžablon gerekli bir argüman" - -#: lib/RT/Scrip_Overlay.pm:180 -msgid "Template not found" -msgstr "Åžablon bulunamadı" - -#: lib/RT/Template_Overlay.pm:343 -msgid "Template parsed" -msgstr "Åžablon ayrıştırıldı" - -#: lib/RT/Template_Overlay.pm:391 -msgid "Template parsing error" -msgstr "Åžablon ayrıştırma hatası" - -#: html/Admin/Elements/QueueTabs:70 html/Admin/Elements/SystemTabs:57 html/Admin/Global/index.html:66 -msgid "Templates" -msgstr "Åžablonlar" - -#: lib/RT/CustomField_Overlay.pm:943 lib/RT/Record.pm:945 -msgid "That is already the current value" -msgstr "Bu, zaten ÅŸimdiki deÄŸer" - -#: lib/RT/CustomField_Overlay.pm:412 -msgid "That is not a value for this custom field" -msgstr "Bu, bu özel alan için bir deÄŸer deÄŸil" - -#: lib/RT/Ticket_Overlay.pm:1994 -msgid "That is the same value" -msgstr "Bu, aynı deÄŸer" - -#: lib/RT/ACE_Overlay.pm:305 lib/RT/ACE_Overlay.pm:614 -msgid "That principal already has that right" -msgstr "Bu yetkili, zaten bu hakka sahip" - -#: lib/RT/Queue_Overlay.pm:753 -#. ($args{'Type'}) -msgid "That principal is already a %1 for this queue" -msgstr "Bu yetkili, zaten bu kuyruk için bir %1" - -#: lib/RT/Ticket_Overlay.pm:1435 -#. ($self->loc($args{'Type'})) -msgid "That principal is already a %1 for this ticket" -msgstr "Bu yetkili, zaten bu bilet için bir %1" - -#: lib/RT/Queue_Overlay.pm:852 -#. ($args{'Type'}) -msgid "That principal is not a %1 for this queue" -msgstr "Bu yetkili, zaten bu kuyruk için bir %1 deÄŸil" - -#: lib/RT/Ticket_Overlay.pm:1990 -msgid "That queue does not exist" -msgstr "Böyle bir kuyruk mevcut deÄŸil" - -#: lib/RT/Ticket_Overlay.pm:3233 -msgid "That ticket has unresolved dependencies" -msgstr "Bu bilet, çözümlenmemiÅŸ bağımlılıklara sahip" - -#: lib/RT/Action/CreateTickets.pm:710 lib/RT/Ticket_Overlay.pm:3037 -msgid "That user already owns that ticket" -msgstr "Bu kullanıcı, zaten bu biletin sahibi" - -#: lib/RT/Ticket_Overlay.pm:3012 -msgid "That user does not exist" -msgstr "Bu kullanıcı bulunamadı" - -#: lib/RT/User_Overlay.pm:389 -msgid "That user is already privileged" -msgstr "Bu kullanıcı zaten yetkili" - -#: lib/RT/User_Overlay.pm:410 -msgid "That user is already unprivileged" -msgstr "Bu kullanıcı zaten yetkisiz" - -#: lib/RT/User_Overlay.pm:402 -msgid "That user is now privileged" -msgstr "Bu kullanıcı ÅŸu anda yetkilendirildi" - -#: lib/RT/User_Overlay.pm:423 -msgid "That user is now unprivileged" -msgstr "Bu kullanıcı artık yetkisiz" - -#: lib/RT/Ticket_Overlay.pm:3031 -msgid "That user may not own tickets in that queue" -msgstr "Bu kullanıcı, bu kuyruktaki biletleri sahiplenemez" - -#: lib/RT/Link_Overlay.pm:233 -msgid "That's not a numerical id" -msgstr "Bu, sayısal bir kimlik deÄŸil" - -#: html/SelfService/Display.html:53 html/Ticket/Create.html:177 html/Ticket/Elements/ShowSummary:49 -msgid "The Basics" -msgstr "Temeller" - -#: lib/RT/ACE_Overlay.pm:112 -msgid "The CC of a ticket" -msgstr "Bir biletin KK' sı" - -#: lib/RT/ACE_Overlay.pm:113 -msgid "The administrative CC of a ticket" -msgstr "Bir biletin yönetimsel KK' sı" - -#: bin/rt-crontool:275 -msgid "The following command will find all active tickets in the queue 'general' and set their priority to 99 if they haven't been touched in 4 hours:" -msgstr "Sonraki komut, 'genel' kuyruÄŸundaki bütün biletleri bulacak ve eÄŸer son 4 saat içinde dokunulmamışlarsa, önem derecelerini 99 a yükseltecektir." - -#: lib/RT/Record.pm:948 -msgid "The new value has been set." -msgstr "Yeni deÄŸer atandı." - -#: lib/RT/ACE_Overlay.pm:110 -msgid "The owner of a ticket" -msgstr "Bir biletin sahibi" - -#: lib/RT/ACE_Overlay.pm:111 -msgid "The requestor of a ticket" -msgstr "Bir biletin istekçisi" - -#: html/Admin/Elements/EditUserComments:47 -msgid "These comments aren't generally visible to the user" -msgstr "Bu yorumlar, genellikle kullanıcıya görünür deÄŸillerdir" - -#: lib/RT/CustomField_Overlay.pm:978 -msgid "This custom field does not apply to that object" -msgstr "Bu özel alan, bu nesneye etkimez" - -#: html/Admin/Tools/Configuration.html:50 -msgid "This feature is only available to system administrators" -msgstr "Bu özellik, sadece sistem yöneticileri tarafından kullanılabilir" - -#: html/Ticket/Elements/PreviewScrips:96 -msgid "This message will be sent to..." -msgstr "Bu iletinin gönderileceÄŸi kiÅŸi..." - -#: bin/rt-crontool:266 -msgid "This tool allows the user to run arbitrary perl modules from within RT." -msgstr "Bu araç, kullanıcının RT içinden keyfi perl modüllerini çalıştırabilmesine olanak verir." - -#: lib/RT/Transaction_Overlay.pm:301 -msgid "This transaction appears to have no content" -msgstr "Bu hareketin bir içeriÄŸe sahip olmadığı gözüküyor" - -#: html/Ticket/Elements/ShowRequestor:70 -#. ($rows) -msgid "This user's %1 highest priority tickets" -msgstr "Bu kullanıcının %1 en yüksek öneme sahip biletleri" - -#: lib/RT/Date.pm:420 -msgid "Thu." -msgstr "Per." - -#: html/Ticket/ModifyAll.html:46 html/Ticket/ModifyAll.html:50 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket #%1 Jumbo update: %2" -msgstr "Bilet #%1 Büyük güncelleme: %2" - -#: html/Approvals/Elements/ShowDependency:67 -#. ($link->BaseObj->Id, $link->BaseObj->Subject) -msgid "Ticket #%1: %2" -msgstr "Bilet #%1: %2" - -#: lib/RT/Action/CreateTickets.pm:1350 lib/RT/Action/CreateTickets.pm:1359 lib/RT/Action/CreateTickets.pm:605 lib/RT/Action/CreateTickets.pm:729 lib/RT/Action/CreateTickets.pm:741 -#. ($T::Tickets{$template_id}->Id) -#. ($T::Tickets{$template_id}->id) -#. ($ticket->Id) -msgid "Ticket %1" -msgstr "Bilet %1" - -#: lib/RT/Ticket_Overlay.pm:755 lib/RT/Ticket_Overlay.pm:775 -#. ($self->Id, $QueueObj->Name) -msgid "Ticket %1 created in queue '%2'" -msgstr "Bilet %1, '%2' kuyruÄŸunda oluÅŸturuldu" - -#: html/Search/Bulk.html:377 -#. ($Ticket->Id, $_) -msgid "Ticket %1: %2" -msgstr "Bilet %1: %2" - -#: html/Admin/Elements/QueueTabs:74 -msgid "Ticket Custom Fields" -msgstr "Bilet Özel Alanları" - -#: html/Ticket/History.html:46 html/Ticket/History.html:49 -#. ($Ticket->Id, $Ticket->Subject) -msgid "Ticket History # %1 %2" -msgstr "Bilet geçmiÅŸi # %1 %2" - -#: etc/initialdata:324 -msgid "Ticket Resolved" -msgstr "Bilet Çözümlendi" - -#: html/Admin/Elements/GlobalCustomFieldTabs:69 html/Admin/Global/CustomFields/index.html:81 lib/RT/CustomField_Overlay.pm:1207 -msgid "Ticket Transactions" -msgstr "Bilet Hareketleri" - -#: lib/RT/Tickets_Overlay.pm:1920 -msgid "Ticket content" -msgstr "Bilet oluÅŸturuldu" - -#: lib/RT/Tickets_Overlay.pm:1969 -msgid "Ticket content type" -msgstr "Bilet içerik türü" - -#: lib/RT/Ticket_Overlay.pm:603 lib/RT/Ticket_Overlay.pm:617 lib/RT/Ticket_Overlay.pm:628 lib/RT/Ticket_Overlay.pm:763 -msgid "Ticket could not be created due to an internal error" -msgstr "Bir iç hata nedeniyle, bilet oluÅŸturulamadı" - -#: html/Ticket/Display.html:55 -msgid "Ticket metadata" -msgstr "Bilet özel bilgisi" - -#: etc/initialdata:310 -msgid "Ticket status changed" -msgstr "Bilet durumu deÄŸiÅŸti" - -#: lib/RT/Search/FromSQL.pm:82 -#. (ref $self) -msgid "TicketSQL search module" -msgstr "BiletSQL arama modülü" - -#: html/Admin/Elements/GlobalCustomFieldTabs:64 html/Admin/Global/CustomFields/index.html:75 html/Elements/Tabs:71 html/Search/Elements/Chart:109 lib/RT/CustomField_Overlay.pm:1206 -msgid "Tickets" -msgstr "Biletler" - -#: html/Tools/Reports/CreatedByDates.html:86 -msgid "Tickets created after" -msgstr "Åžundan sonra oluÅŸturulan biletler:" - -#: html/Tools/Reports/CreatedByDates.html:88 -msgid "Tickets created before" -msgstr "Åžundan önce oluÅŸturulan biletler:" - -#: html/Tools/Reports/ResolvedByDates.html:87 -msgid "Tickets resolved after" -msgstr "Åžundan sonra çözümlenen biletler:" - -#: html/Tools/Reports/ResolvedByDates.html:89 -msgid "Tickets resolved before" -msgstr "Åžundan önce çözümlenen biletler:" - -#: html/Approvals/Elements/ShowDependency:48 -msgid "Tickets which depend on this approval:" -msgstr "Bu onaya dayanan biletler:" - -#: html/Search/Elements/PickBasics:134 html/Ticket/Create.html:183 html/Ticket/Elements/EditBasics:72 -msgid "Time Estimated" -msgstr "Tahmini Süre" - -#: html/Search/Elements/PickBasics:135 html/Ticket/Create.html:196 html/Ticket/Elements/EditBasics:85 -msgid "Time Left" -msgstr "Kalan Süre" - -#: html/Search/Elements/PickBasics:133 html/Ticket/Create.html:189 html/Ticket/Elements/EditBasics:78 -msgid "Time Worked" -msgstr "Çalışılan Süre" - -#: lib/RT/Tickets_Overlay.pm:1891 -msgid "Time left" -msgstr "Kalan süre" - -#: html/Elements/Footer:51 -msgid "Time to display" -msgstr "Gösterilecek süre" - -#: lib/RT/Tickets_Overlay.pm:1866 -msgid "Time worked" -msgstr "Çalışılan süre" - -#: lib/RT/Ticket_Overlay.pm:1167 -msgid "TimeWorked" -msgstr "ÇalışılanSüre" - -#: html/Search/Elements/EditFormat:74 -msgid "Title" -msgstr "BaÅŸlık" - -#: html/Elements/Footer:62 -#. ('<a href="mailto:sales@bestpractical.com">sales@bestpractical.com</a>') -msgid "To inquire about support, training, custom development or licensing, please contact %1." -msgstr "Destek hakkında soru sormak için, kiÅŸisel geliÅŸtirim veya lisanslama için, lütfen %1 ile temasa geçin." - -#: lib/RT/Ticket_Overlay.pm:1170 -msgid "Told" -msgstr "Söylendi" - -#: html/Admin/Elements/Tabs:68 html/Admin/index.html:88 html/Elements/Tabs:74 html/Tools/index.html:46 html/Tools/index.html:49 -msgid "Tools" -msgstr "Araçlar" - -#: html/Search/Elements/Chart:130 -msgid "Total" -msgstr "Toplam" - -#: etc/initialdata:252 -msgid "Transaction" -msgstr "Hareket" - -#: lib/RT/Transaction_Overlay.pm:805 -#. ($self->Data) -msgid "Transaction %1 purged" -msgstr "Hareket %1 tasfiye edildi" - -#: lib/RT/Transaction_Overlay.pm:183 -msgid "Transaction Created" -msgstr "Hareket OluÅŸturuldu" - -#: html/Admin/Elements/QueueTabs:78 -msgid "Transaction Custom Fields" -msgstr "Hareket Özel Alanları" - -#: lib/RT/Transaction_Overlay.pm:128 -msgid "Transaction->Create couldn't, as you didn't specify an object type and id" -msgstr "Transaction->Create gerçekleÅŸtirilemedi, çünkü bir nesne türü ve kimliÄŸi belirtmediniz" - -#: lib/RT/Transaction_Overlay.pm:870 -msgid "Transactions are immutable" -msgstr "Hareketler deÄŸiÅŸemez" - -#: lib/RT/Date.pm:418 -msgid "Tue." -msgstr "Sal." - -#: html/Admin/CustomFields/Modify.html:66 html/Admin/Elements/EditCustomField:65 html/Ticket/Elements/AddWatchers:54 html/Ticket/Elements/AddWatchers:65 html/Ticket/Elements/AddWatchers:75 lib/RT/Ticket_Overlay.pm:1168 lib/RT/Tickets_Overlay.pm:1705 -msgid "Type" -msgstr "Tür" - -#: lib/RT/ScripCondition_Overlay.pm:128 -msgid "Unimplemented" -msgstr "GerçekleÅŸtirilmedi" - -#: html/Admin/Users/Modify.html:89 -msgid "Unix login" -msgstr "Unix giriÅŸi" - -#: lib/RT/Attachment_Overlay.pm:289 lib/RT/Record.pm:861 -#. ($self->ContentEncoding) -#. ($ContentEncoding) -msgid "Unknown ContentEncoding %1" -msgstr "Bilinmeyen İçerikKodlaması %1" - -#: html/Search/Build.html:455 lib/RT/Report/Tickets.pm:410 -msgid "Unknown field: $key" -msgstr "Bilinmeyen alan: $key" - -#: html/Elements/SelectResultsPerPage:58 -msgid "Unlimited" -msgstr "Sınırsız" - -#: html/Search/Elements/SelectSearchesForObjects:64 -msgid "Unnamed search" -msgstr "Adlandırılmamış arama" - -#: etc/initialdata:32 -msgid "Unprivileged" -msgstr "Yetkisiz" - -#: html/Admin/Elements/EditCustomFields:60 -msgid "Unselected Custom Fields" -msgstr "SeçilmemiÅŸ Özel Alanlar" - -#: html/Admin/CustomFields/Objects.html:61 -msgid "Unselected objects" -msgstr "SeçilmemiÅŸ nesneler" - -#: lib/RT/Transaction_Overlay.pm:659 -msgid "Untaken" -msgstr "Alınmamış" - -#: html/Admin/Elements/EditScrip:128 html/Elements/RT__Ticket/ColumnMap:302 html/Search/Bulk.html:193 html/Search/Bulk.html:75 -msgid "Update" -msgstr "Güncelle" - -#: html/Ticket/Update.html:135 -msgid "Update Ticket" -msgstr "Bileti Güncelle" - -#: html/Search/Bulk.html:126 html/Ticket/ModifyAll.html:87 html/Ticket/Update.html:72 -msgid "Update Type" -msgstr "Türü Güncelle" - -#: html/Search/Bulk.html:200 html/Search/Results.html:78 -msgid "Update multiple tickets" -msgstr "Birden çok bileti güncelle" - -#: lib/RT/Action/CreateTickets.pm:750 lib/RT/Interface/Web.pm:584 -msgid "Update not recorded." -msgstr "Güncelleme kaydedilmedi" - -#: html/Ticket/ModifyAll.html:84 -msgid "Update ticket" -msgstr "Bileti güncelle" - -#: html/SelfService/Update.html:112 html/SelfService/Update.html:47 -#. ($Ticket->id) -msgid "Update ticket #%1" -msgstr "Bileti güncelle: #%1" - -#: html/Ticket/Update.html:158 -#. ($TicketObj->id, $TicketObj->Subject) -msgid "Update ticket #%1 (%2)" -msgstr "Bileti güncelle: #%1 (%2)" - -#: lib/RT/Action/CreateTickets.pm:748 lib/RT/Interface/Web.pm:583 -msgid "Update type was neither correspondence nor comment." -msgstr "Güncelleme türü cevap veya yorum deÄŸildi." - -#: html/Elements/SelectDateType:54 html/Ticket/Elements/ShowDates:72 lib/RT/CustomField_Overlay.pm:1284 lib/RT/Ticket_Overlay.pm:1171 -msgid "Updated" -msgstr "Güncellendi" - -#: html/Tools/Offline.html:93 -msgid "Upload" -msgstr "Yükle" - -#: lib/RT/CustomField_Overlay.pm:84 -msgid "Upload multiple files" -msgstr "Çoklu dostya yükle" - -#: lib/RT/CustomField_Overlay.pm:79 -msgid "Upload multiple images" -msgstr "Çoklu resim yükle" - -#: lib/RT/CustomField_Overlay.pm:85 -msgid "Upload one file" -msgstr "Tek bir dosya yükle" - -#: lib/RT/CustomField_Overlay.pm:80 -msgid "Upload one image" -msgstr "Tek bir resim yükle" - -#: lib/RT/CustomField_Overlay.pm:86 -msgid "Upload up to %1 files" -msgstr "En çok %1 dosya yükle" - -#: lib/RT/CustomField_Overlay.pm:81 -msgid "Upload up to %1 images" -msgstr "En çok %1 resim yükle" - -#: html/Tools/Offline.html:93 -msgid "Upload your changes" -msgstr "DeÄŸiÅŸikliklerinizi yükleyin" - -#: html/Admin/index.html:90 -msgid "Use other RT administrative tools" -msgstr "DiÄŸer RT yönetimsel araçlarını kullan" - -#: lib/RT/Ticket_Overlay.pm:506 -#. ($args{'Owner'}) -msgid "User '%1' could not be found." -msgstr "Kullanıcı '%1' bulunamadı." - -#: etc/initialdata:132 etc/initialdata:206 -msgid "User Defined" -msgstr "Kullanıcı Tanımlandı" - -#: html/Admin/Elements/EditScrip:93 -msgid "User Defined conditions and actions" -msgstr "Kullanıcı tanımlı durumlar ve eylemler" - -#: html/Admin/Elements/CustomFieldTabs:72 html/Admin/Elements/GroupTabs:68 html/Admin/Elements/QueueTabs:85 html/Admin/Elements/SystemTabs:68 html/Admin/Global/index.html:80 -msgid "User Rights" -msgstr "Kullanıcı Hakları" - -#: html/Admin/Users/Modify.html:301 -#. ($msg) -msgid "User could not be created: %1" -msgstr "Kullanıcı oluÅŸturulamıyor: %1" - -#: lib/RT/User_Overlay.pm:330 -msgid "User created" -msgstr "Kullanıcı oluÅŸturuldu" - -#: html/Admin/CustomFields/GroupRights.html:74 html/Admin/Global/GroupRights.html:88 html/Admin/Groups/GroupRights.html:75 html/Admin/Queues/GroupRights.html:90 -msgid "User defined groups" -msgstr "Kullanıcı tanımlı gruplar" - -#: lib/RT/User_Overlay.pm:592 lib/RT/User_Overlay.pm:612 -msgid "User loaded" -msgstr "Kullanıcı yüklendi" - -#: html/Admin/Groups/index.html:103 -msgid "User-defined groups" -msgstr "Kullanıcı-tanımlı gruplar" - -#: html/Admin/Users/Modify.html:69 html/Elements/Login:90 html/Ticket/Elements/AddWatchers:56 -msgid "Username" -msgstr "Kullanıcı adı" - -#: html/Admin/Elements/GlobalCustomFieldTabs:55 html/Admin/Elements/SelectNewGroupMembers:47 html/Admin/Elements/Tabs:53 html/Admin/Global/CustomFields/index.html:64 html/Admin/Groups/Members.html:76 html/Admin/Queues/People.html:89 html/Admin/index.html:62 html/User/Groups/Members.html:79 lib/RT/CustomField_Overlay.pm:1208 -msgid "Users" -msgstr "Kullanıcılar" - -#: html/Admin/Users/index.html:85 -msgid "Users matching search criteria" -msgstr "Arama kıstaslarıyla eÅŸleÅŸen kullanıcılar" - -#: bin/rt-crontool:134 -#. ($transaction->id) -msgid "Using transaction #%1..." -msgstr "Hareket #%1 kullanılıyor..." - -#: lib/RT/Tickets_Overlay_SQL.pm:528 -msgid "Valid Query" -msgstr "Geçerli Sorgu" - -#: html/Admin/CustomFields/Modify.html:80 -msgid "Validation" -msgstr "Geçerlilik" - -#: html/Admin/CustomFields/Modify.html:130 html/Admin/Elements/EditCustomField:78 -msgid "Values" -msgstr "DeÄŸerler" - -#: lib/RT/Queue_Overlay.pm:107 -msgid "Watch" -msgstr "Gözle" - -#: lib/RT/Queue_Overlay.pm:108 -msgid "WatchAsAdminCc" -msgstr "YöneticiKkOlarakGözle" - -#: html/Admin/Elements/QueueTabs:63 -msgid "Watchers" -msgstr "Gözcüler" - -#: lib/RT/Date.pm:419 -msgid "Wed." -msgstr "Çar." - -#: html/Tools/MyDay.html:75 -msgid "What I did today" -msgstr "Bugün ne yaptım" - -#: etc/initialdata:521 -msgid "When a ticket has been approved by all approvers, add correspondence to the original ticket" -msgstr "Bir bilet, bütün onaycılar tarafından onaylandığında, özgün bilete cevap yolla" - -#: etc/initialdata:485 -msgid "When a ticket has been approved by any approver, add correspondence to the original ticket" -msgstr "Bir bilet, herhangi bir onaycı tarafından onaylandığında, özgün bilete cevap yolla" - -#: etc/initialdata:146 -msgid "When a ticket is created" -msgstr "Bir bilet oluÅŸturulduÄŸunda" - -#: etc/initialdata:418 -msgid "When an approval ticket is created, notify the Owner and AdminCc of the item awaiting their approval" -msgstr "Bir onay bileti oluÅŸturulduÄŸunda, sahibi ve YöneticiKk' yı, nesnenin onaylarını beklediÄŸi konusunda uyar" - -#: etc/initialdata:151 -msgid "When anything happens" -msgstr "Herhangi bir ÅŸey olduÄŸunda" - -#: etc/initialdata:199 -msgid "Whenever a ticket is resolved" -msgstr "Bir bilet çözümlendiÄŸinde" - -#: etc/initialdata:185 -msgid "Whenever a ticket's owner changes" -msgstr "Bir biletin sahibi deÄŸiÅŸtiÄŸinde" - -#: etc/initialdata:178 etc/upgrade/3.1.17/content:16 -msgid "Whenever a ticket's priority changes" -msgstr "Bir biletin önceliÄŸi deÄŸiÅŸtiÄŸinde" - -#: etc/initialdata:193 -msgid "Whenever a ticket's queue changes" -msgstr "Bir biletin kuyruÄŸu deÄŸiÅŸtiÄŸinde" - -#: etc/initialdata:170 -msgid "Whenever a ticket's status changes" -msgstr "Bir biletin durumu deÄŸiÅŸtiÄŸinde" - -#: etc/initialdata:207 -msgid "Whenever a user-defined condition occurs" -msgstr "Kullanıcı tanımlı bir durum oluÅŸtuÄŸunda" - -#: etc/initialdata:164 -msgid "Whenever comments come in" -msgstr "Bir yorum geldiÄŸinde" - -#: etc/initialdata:157 -msgid "Whenever correspondence comes in" -msgstr "Cevap geldiÄŸinde" - -#: html/Admin/Users/Modify.html:188 html/User/Prefs.html:88 -msgid "Work" -msgstr "Çalışma" - -#: html/Search/Results.html:82 -msgid "Work offline" -msgstr "Çevrimdışı çalışma" - -#: html/Ticket/Elements/ShowBasics:63 html/Ticket/Update.html:64 -msgid "Worked" -msgstr "Çalışıldı" - -#: lib/RT/Ticket_Overlay.pm:3140 -msgid "You already own this ticket" -msgstr "Bu biletin sahibi zaten sizsiniz" - -#: html/autohandler:214 html/autohandler:222 -msgid "You are not an authorized user" -msgstr "Yetkili bir kullanıcı deÄŸilsiniz" - -#: html/Prefs/Search.html:56 -msgid "You can also edit the predefined search itself" -msgstr "Öntanımlı aramanın kendisinide deÄŸiÅŸtirebilirsiniz" - -#: lib/RT/Ticket_Overlay.pm:3025 -msgid "You can only reassign tickets that you own or that are unowned" -msgstr "Sahibi olduÄŸunuz veya sahipsiz biletleri tekrar tahsis edebilirsiniz" - -#: lib/RT/Ticket_Overlay.pm:3021 -msgid "You can only take tickets that are unowned" -msgstr "Sadece sahibi olmadığınız biletleri alabilirsiniz" - -#: docs/design_docs/string-extraction-guide.txt:47 lib/RT/StyleGuide.pod:780 -#. ($num, $queue) -msgid "You found %1 tickets in queue %2" -msgstr "%2 kuyruÄŸunda %1 bilet buldunuz" - -#: html/NoAuth/Logout.html:52 -msgid "You have been logged out of RT." -msgstr "RT' den çıkış yaptınız" - -#: html/SelfService/Display.html:133 -msgid "You have no permission to create tickets in that queue." -msgstr "Bu kuyrukta bilet oluÅŸturmaya yetkiniz yok." - -#: lib/RT/Ticket_Overlay.pm:2003 -msgid "You may not create requests in that queue." -msgstr "Bu kuyrukta istek oluÅŸturamazsınız." - -#: html/NoAuth/Logout.html:56 -msgid "You're welcome to login again" -msgstr "Tekrar giriÅŸ yapabilirsiniz" - -#: etc/initialdata:502 -msgid "Your request has been approved by %1. Other approvals may still be pending." -msgstr "Ä°steÄŸiniz %1 tarafından onaylandı. DiÄŸer onaylar, halen bekliyor olabilir." - -#: etc/initialdata:540 -msgid "Your request has been approved." -msgstr "Ä°steÄŸiniz onaylandı" - -#: etc/initialdata:445 -msgid "Your request was rejected." -msgstr "Ä°steÄŸiniz reddedildi." - -#: html/autohandler:251 -msgid "Your username or password is incorrect" -msgstr "Kullanıcı adınız veya parolanız yanlış" - -#: html/Admin/Users/Modify.html:168 html/User/Prefs.html:149 -msgid "Zip" -msgstr "Posta Kodu" - -#: lib/RT/System.pm:87 -msgid "allow creation of saved searches" -msgstr "kaydedilmiÅŸ aramaların oluÅŸturulmasına izin ver" - -#: lib/RT/System.pm:86 -msgid "allow loading of saved searches" -msgstr "kaydedilmiÅŸ aramaların yüklenmesine izin ver" - -#: html/User/Elements/DelegateRights:80 -#. ($right->PrincipalObj->Object->SelfDescription) -msgid "as granted to %1" -msgstr "%1' e verildi" - -#: html/Search/Results.html:83 -msgid "chart" -msgstr "ÅŸema" - -#: html/SelfService/Closed.html:49 -msgid "closed" -msgstr "kapalı" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:55 -msgid "contains" -msgstr "içeriyor" - -#: html/Admin/Queues/Modify.html:98 lib/RT/Date.pm:346 -msgid "days" -msgstr "gün" - -#: lib/RT/Queue_Overlay.pm:87 -msgid "deleted" -msgstr "silindi" - -#: html/Search/Elements/PickBasics:61 -msgid "does not match" -msgstr "eÅŸleÅŸmiyor" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:56 -msgid "doesn't contain" -msgstr "içermiyor" - -#: html/Elements/SelectEqualityOperator:59 -msgid "equal to" -msgstr "eÅŸittir" - -#: html/Search/Build.html:547 -msgid "error: can't move down" -msgstr "hata: aÅŸağı gidemiyorum" - -#: html/Search/Build.html:569 -msgid "error: can't move left" -msgstr "hata sola gidemiyorum" - -#: html/Search/Build.html:528 -msgid "error: can't move up" -msgstr "hata yukarı gidemiyorum" - -#: html/Search/Build.html:612 -msgid "error: nothing to delete" -msgstr "hata: silinecek bir ÅŸey yok" - -#: html/Search/Build.html:533 html/Search/Build.html:552 html/Search/Build.html:574 html/Search/Build.html:603 -msgid "error: nothing to move" -msgstr "hata: taşınacak bir ÅŸey yok" - -#: html/Search/Build.html:630 -msgid "error: nothing to toggle" -msgstr "hata: deÄŸiÅŸtirecek bir ÅŸey yok" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 -msgid "greater than" -msgstr "büyüktür" - -#: lib/RT/Group_Overlay.pm:214 -#. ($self->Name) -msgid "group '%1'" -msgstr "grup %1" - -#: html/Search/Results.html:88 -#. ($m->scomp('Elements/SelectGroupBy', Name => 'PrimaryGroupBy', Query => $Query)) -msgid "grouped by %1" -msgstr "%1 ile gruplanmış" - -#: lib/RT/Date.pm:342 -msgid "hours" -msgstr "saat" - -#: html/Search/Elements/PickBasics:48 -msgid "id" -msgstr "numara" - -#: html/Elements/SelectBoolean:53 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:57 html/Search/Elements/PickBasics:162 html/Search/Elements/PickBasics:74 html/Search/Elements/PickBasics:90 html/Search/Elements/PickCFs:53 -msgid "is" -msgstr "aynıdır" - -#: html/Elements/SelectBoolean:57 html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectMatch:58 html/Search/Elements/PickBasics:163 html/Search/Elements/PickBasics:75 html/Search/Elements/PickBasics:91 html/Search/Elements/PickCFs:54 -msgid "isn't" -msgstr "aynı deÄŸildir" - -#: html/Elements/SelectCustomFieldOperator:59 html/Elements/SelectEqualityOperator:59 -msgid "less than" -msgstr "azdır" - -#: html/Search/Elements/PickBasics:60 -msgid "matches" -msgstr "eÅŸleÅŸir" - -#: lib/RT/Date.pm:338 -msgid "min" -msgstr "en az" - -#: lib/RT/Date.pm:354 -msgid "months" -msgstr "ay" - -#: lib/RT/Queue_Overlay.pm:82 -msgid "new" -msgstr "yeni" - -#: html/Admin/Elements/PickCustomFields:64 html/Admin/Elements/PickObjects:65 -msgid "no name" -msgstr "adsız" - -#: html/Admin/Elements/EditScrips:64 -msgid "no value" -msgstr "deÄŸersiz" - -#: html/Admin/Elements/EditQueueWatchers:48 html/Ticket/Elements/EditWatchers:49 -msgid "none" -msgstr "hiçbiri" - -#: html/Elements/SelectEqualityOperator:59 -msgid "not equal to" -msgstr "eÅŸit deÄŸildir" - -#: html/SelfService/Elements/MyRequests:82 lib/RT/Queue_Overlay.pm:83 -msgid "open" -msgstr "açık" - -#: lib/RT/Group_Overlay.pm:219 -#. ($self->Name, $user->Name) -msgid "personal group '%1' for user '%2'" -msgstr "'%2' kullanıcısı için, kiÅŸisel grup '%1'" - -#: lib/RT/Group_Overlay.pm:227 -#. ($queue->Name, $self->Type) -msgid "queue %1 %2" -msgstr "kuyruk %1 %2" - -#: lib/RT/Queue_Overlay.pm:86 -msgid "rejected" -msgstr "reddedildi" - -#: lib/RT/Queue_Overlay.pm:85 -msgid "resolved" -msgstr "çözüldü" - -#: lib/RT/Date.pm:334 -msgid "sec" -msgstr "saniye" - -#: lib/RT/System.pm:85 -msgid "show Configuration tab" -msgstr "ayar sekmesini göster" - -#: html/Search/Results.html:80 -msgid "spreadsheet" -msgstr "hesap çizelgesi" - -#: lib/RT/Queue_Overlay.pm:84 -msgid "stalled" -msgstr "savsaklandı" - -#: html/Search/Results.html:89 -#. ($m->scomp('Elements/SelectChartType', Name => 'ChartStyle')) -msgid "style: %1" -msgstr "biçem: %1" - -#: html/Prefs/MyRT.html:93 -msgid "summary rows" -msgstr "özet satırları" - -#: lib/RT/Group_Overlay.pm:222 -#. ($self->Type) -msgid "system %1" -msgstr "sistem %1" - -#: lib/RT/Group_Overlay.pm:233 -#. ($self->Type) -msgid "system group '%1'" -msgstr "sistem grubu '%1'" - -#: html/Elements/Error:64 html/SelfService/Error.html:63 -msgid "the calling component did not specify why" -msgstr "çağıran bileÅŸen, nedenini belirtmedi" - -#: lib/RT/Group_Overlay.pm:230 -#. ($self->Instance, $self->Type) -msgid "ticket #%1 %2" -msgstr "bilet #%1 %2" - -#: lib/RT/Group_Overlay.pm:236 -#. ($self->Id) -msgid "undescribed group %1" -msgstr "betimlenmemiÅŸ grup %1" - -#: lib/RT/Group_Overlay.pm:211 -#. ($user->Object->Name) -msgid "user %1" -msgstr "kullanıcı %1" - -#: lib/RT/Date.pm:350 -msgid "weeks" -msgstr "hafta" - -#: lib/RT/Date.pm:358 -msgid "years" -msgstr "yıl" - diff --git a/rt/lib/RT/Interface/Web/Menu.pm b/rt/lib/RT/Interface/Web/Menu.pm deleted file mode 100644 index f2d78ef6c..000000000 --- a/rt/lib/RT/Interface/Web/Menu.pm +++ /dev/null @@ -1,68 +0,0 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -package RT::Interface::Web::Menu; - - -sub new { - my $class = shift; - my $self = bless {}, $class; - $self->{'root_node'} = RT::Interface::Web::Menu::Item->new(); - return $self; -} - - -sub as_hash_of_hashes { - -} - -sub root { - my $self = shift; - return $self->{'root_node'}; -} - -1; diff --git a/rt/lib/RT/Interface/Web/Menu/Item.pm b/rt/lib/RT/Interface/Web/Menu/Item.pm deleted file mode 100644 index 5365db33a..000000000 --- a/rt/lib/RT/Interface/Web/Menu/Item.pm +++ /dev/null @@ -1,86 +0,0 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -package RT::Interface::Web::Menu::Item; - - -sub new { - my $class = shift; - my $self = bless {},$class; - $self->{'_attributes'} = {}; - return($self); -} - -sub label { my $self = shift; $self->_accessor( label => @_) } ; -sub absolute_url { my $self = shift; $self->_accessor( absolute_url => @_) } ; -sub rt_path { my $self = shift; $self->_accessor( rt_path => @_) } ; -sub hilight { my $self = shift; $self->_accessor( hilight => @_); - $self->parent->hilight(1); - } ; -sub sort_order { my $self = shift; $self->_accessor( sort_order => @_) } ; - -sub add_child { -} - -sub delete { -} - -sub children { - -} - -sub _accessor { - my $self = shift; - my $key = shift; - if (@_){ - $self->{'attributes'}->{$key} = shift; - - } - return $self->{'_attributes'}->{$key}; -} - -1; diff --git a/rt/lib/RT/Reminders.pm b/rt/lib/RT/Reminders.pm deleted file mode 100644 index f99fbf7c1..000000000 --- a/rt/lib/RT/Reminders.pm +++ /dev/null @@ -1,167 +0,0 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -package RT::Reminders; - -use base qw/RT::Base/; - -our $REMINDER_QUEUE = 'General'; - - -sub new { - my $class = shift; - my $self = {}; - bless $self, $class; - $self->CurrentUser(@_); - return($self); -} - - -sub Ticket { - my $self = shift; - $self->{'_ticket'} = shift if (@_); - return ($self->{'_ticket'}); -} - -sub TicketObj { - my $self = shift; - unless ($self->{'_ticketobj'}) { - $self->{'_ticketobj'} = RT::Ticket->new($self->CurrentUser); - $self->{'_ticketobj'}->Load($self->Ticket); - } - return $self->{'_ticketobj'}; -} - - -=head2 Collection - -Returns an RT::Tickets object containing reminders for this object's "Ticket" - -=cut - -sub Collection { - my $self = shift; - my $col = RT::Tickets->new($self->CurrentUser); - - my $query = 'Queue = "'. $self->TicketObj->QueueObj->Name .'" AND Type = "reminder"'; - $query .= ' AND RefersTo = "'.$self->Ticket.'"'; - - $col->FromSQL($query); - - return($col); -} - -=head2 Add - -Add a reminder for this ticket. - -Takes - - Subject - Owner - Due - - -=cut - - -sub Add { - my $self = shift; - my %args = ( Subject => undef, - Owner => undef, - Due => undef, - @_); - - my $reminder = RT::Ticket->new($self->CurrentUser); - $reminder->Create( Subject => $args{'Subject'}, - Owner => $args{'Owner'}, - Due => $args{'Due'}, - RefersTo => $self->Ticket, - Type => 'reminder', - Queue => $self->TicketObj->Queue, - - ); - $self->TicketObj->_NewTransaction(Type => 'AddReminder', - Field => 'RT::Ticket', - NewValue => $reminder->id); - - -} - - -sub Open { - my $self = shift; - my $reminder = shift; - - $reminder->SetStatus('open'); - $self->TicketObj->_NewTransaction(Type => 'OpenReminder', - Field => 'RT::Ticket', - NewValue => $reminder->id); -} - - -sub Resolve { - my $self = shift; - my $reminder = shift; - $reminder->SetStatus('resolved'); - $self->TicketObj->_NewTransaction(Type => 'ResolveReminder', - Field => 'RT::Ticket', - NewValue => $reminder->id); -} - - eval "require RT::Reminders_Vendor"; - if ($@ && $@ !~ qr{^Can't locate RT/Reminders_Vendor.pm}) { - die $@; - }; - - eval "require RT::Reminders_Local"; - if ($@ && $@ !~ qr{^Can't locate RT/Reminders_Local.pm}) { - die $@; - }; - - -1; diff --git a/rt/lib/RT/Report/Tickets.pm b/rt/lib/RT/Report/Tickets.pm deleted file mode 100644 index 4fdde1a48..000000000 --- a/rt/lib/RT/Report/Tickets.pm +++ /dev/null @@ -1,451 +0,0 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -package RT::Report::Tickets; - -use base qw/RT::Tickets/; -use RT::Report::Tickets::Entry; - -use strict; -use warnings; - -sub Groupings { - my $self = shift; - my %args = (@_); - my @fields = qw( - Owner - Status - Queue - DueDaily - DueMonthly - DueAnnually - ResolvedDaily - ResolvedMonthly - ResolvedAnnually - CreatedDaily - CreatedMonthly - CreatedAnnually - LastUpdatedDaily - LastUpdatedMonthly - LastUpdatedAnnually - StartedDaily - StartedMonthly - StartedAnnually - StartsDaily - StartsMonthly - StartsAnnually - ); - - @fields = map {$_, $_} @fields; - - my $queues = $args{'Queues'}; - if ( !$queues && $args{'Query'} ) { - my @actions; - my $tree; - # XXX TODO REFACTOR OUT - $self->_ParseQuery( $args{'Query'}, \$tree, \@actions ); - $queues = $tree->GetReferencedQueues; - } - - if ( $queues ) { - my $CustomFields = RT::CustomFields->new( $self->CurrentUser ); - foreach my $id (keys %$queues) { - my $queue = RT::Queue->new( $self->CurrentUser ); - $queue->Load($id); - unless ($queue->id) { - # XXX TODO: This ancient code dates from a former developer - # we have no idea what it means or why cfqueues are so encoded. - $id =~ s/^.'*(.*).'*$/$1/; - $queue->Load($id); - } - $CustomFields->LimitToQueue($queue->Id); - } - $CustomFields->LimitToGlobal; - while ( my $CustomField = $CustomFields->Next ) { - push @fields, "Custom field '". $CustomField->Name ."'", "CF.{". $CustomField->id ."}"; - } - } - return @fields; -} - -sub Label { - my $self = shift; - my $field = shift; - if ( $field =~ /^(?:CF|CustomField)\.{(.*)}$/ ) { - my $cf = $1; - return $self->CurrentUser->loc( "Custom field '[_1]'", $cf ) if $cf =~ /\D/; - my $obj = RT::CustomField->new( $self->CurrentUser ); - $obj->Load( $cf ); - return $self->CurrentUser->loc( "Custom field '[_1]'", $obj->Name ); - } - return $self->CurrentUser->loc($field); -} - -sub GroupBy { - my $self = shift; - my %args = ref $_[0]? %{ $_[0] }: (@_); - - $self->{'_group_by_field'} = $args{'FIELD'}; - %args = $self->_FieldToFunction( %args ); - - $self->SUPER::GroupBy( \%args ); -} - -sub Column { - my $self = shift; - my %args = (@_); - - if ( $args{'FIELD'} && !$args{'FUNCTION'} ) { - %args = $self->_FieldToFunction( %args ); - } - - return $self->SUPER::Column( %args ); -} - -=head2 _DoSearch - -Subclass _DoSearch from our parent so we can go through and add in empty -columns if it makes sense - -=cut - -sub _DoSearch { - my $self = shift; - $self->SUPER::_DoSearch( @_ ); - $self->AddEmptyRows; -} - -=head2 _FieldToFunction FIELD - -Returns a tuple of the field or a database function to allow grouping on that -field. - -=cut - -sub _FieldToFunction { - my $self = shift; - my %args = (@_); - - my $field = $args{'FIELD'}; - - if ($field =~ /^(.*)(Daily|Monthly|Annually)$/) { - my ($field, $grouping) = ($1, $2); - if ( $grouping =~ /Daily/ ) { - $args{'FUNCTION'} = "SUBSTR($field,1,10)"; - } - elsif ( $grouping =~ /Monthly/ ) { - $args{'FUNCTION'} = "SUBSTR($field,1,7)"; - } - elsif ( $grouping =~ /Annually/ ) { - $args{'FUNCTION'} = "SUBSTR($field,1,4)"; - } - } elsif ( $field =~ /^(?:CF|CustomField)\.{(.*)}$/ ) { #XXX: use CFDecipher method - my $cf_name = $1; - my $cf = RT::CustomField->new( $self->CurrentUser ); - $cf->Load($cf_name); - unless ( $cf->id ) { - $RT::Logger->error("Couldn't load CustomField #$cf_name"); - } else { - my ($ticket_cf_alias, $cf_alias) = $self->_CustomFieldJoin($cf->id, $cf->id, $cf_name); - @args{qw(ALIAS FIELD)} = ($ticket_cf_alias, 'Content'); - } - } - return %args; -} - - -# Override the AddRecord from DBI::SearchBuilder::Unique. id isn't id here -# wedon't want to disambiguate all the items with a count of 1. -sub AddRecord { - my $self = shift; - my $record = shift; - push @{$self->{'items'}}, $record; - $self->{'rows'}++; -} - -1; - - - -# Gotta skip over RT::Tickets->Next, since it does all sorts of crazy magic we -# don't want. -sub Next { - my $self = shift; - $self->RT::SearchBuilder::Next(@_); - -} - -sub NewItem { - my $self = shift; - return RT::Report::Tickets::Entry->new($RT::SystemUser); # $self->CurrentUser); -} - - -=head2 AddEmptyRows - -If we're grouping on a criterion we know how to add zero-value rows -for, do that. - -=cut - -sub AddEmptyRows { - my $self = shift; - if ( $self->{'_group_by_field'} eq 'Status' ) { - my %has = map { $_->__Value('Status') => 1 } @{ $self->ItemsArrayRef || [] }; - - foreach my $status ( grep !$has{$_}, RT::Queue->new($self->CurrentUser)->StatusArray ) { - - my $record = $self->NewItem; - $record->LoadFromHash( { - id => 0, - status => $status - } ); - $self->AddRecord($record); - } - } -} - - -# XXX TODO: this code cut and pasted from html/Search/Build.html -# This has already been improved (But not backported) in 3.7 -# -# This code is hacky, evil and wrong. But it's end of lifed from day one and is -# less likely to destabilize the codebase than the full refactoring it should get. -use Regexp::Common qw /delimited/; - -# States -use constant VALUE => 1; -use constant AGGREG => 2; -use constant OP => 4; -use constant PAREN => 8; -use constant KEYWORD => 16; - -sub _match { - - # Case insensitive equality - my ( $y, $x ) = @_; - return 1 if $x =~ /^$y$/i; - - # return 1 if ((lc $x) eq (lc $y)); # Why isnt this equiv? - return 0; -} - -sub _ParseQuery { - my $self = shift; - my $string = shift; - my $tree = shift; - my @actions = shift; - my $want = KEYWORD | PAREN; - my $last = undef; - - my $depth = 1; - - # make a tree root - use RT::Interface::Web::QueryBuilder::Tree; - $$tree = RT::Interface::Web::QueryBuilder::Tree->new; - my $root = RT::Interface::Web::QueryBuilder::Tree->new( 'AND', $$tree ); - my $lastnode = $root; - my $parentnode = $root; - - # get the FIELDS from Tickets_Overlay - my $tickets = new RT::Tickets( $self->CurrentUser ); - my %FIELDS = %{ $tickets->FIELDS }; - - # Lower Case version of FIELDS, for case insensitivity - my %lcfields = map { ( lc($_) => $_ ) } ( keys %FIELDS ); - - my @tokens = qw[VALUE AGGREG OP PAREN KEYWORD]; - my $re_aggreg = qr[(?i:AND|OR)]; - my $re_value = qr[$RE{delimited}{-delim=>qq{\'\"}}|\d+]; - my $re_keyword = qr[$RE{delimited}{-delim=>qq{\'\"}}|(?:\{|\}|\w|\.)+]; - my $re_op = - qr[=|!=|>=|<=|>|<|(?i:IS NOT)|(?i:IS)|(?i:NOT LIKE)|(?i:LIKE)] - ; # long to short - my $re_paren = qr'\(|\)'; - - # assume that $ea is AND if it is not set - my ( $ea, $key, $op, $value ) = ( "AND", "", "", "" ); - - # order of matches in the RE is important.. op should come early, - # because it has spaces in it. otherwise "NOT LIKE" might be parsed - # as a keyword or value. - - while ( - $string =~ /( - $re_aggreg - |$re_op - |$re_keyword - |$re_value - |$re_paren - )/igx - ) - { - my $val = $1; - my $current = 0; - - # Highest priority is last - $current = OP if _match( $re_op, $val ); - $current = VALUE if _match( $re_value, $val ); - $current = KEYWORD - if _match( $re_keyword, $val ) && ( $want & KEYWORD ); - $current = AGGREG if _match( $re_aggreg, $val ); - $current = PAREN if _match( $re_paren, $val ); - - unless ( $current && $want & $current ) { - - # Error - # FIXME: I will only print out the highest $want value - my $token = $tokens[ ( ( log $want ) / ( log 2 ) ) ]; - push @actions, - [ - $self->CurrentUser->loc( -"current: $current, want $want, Error near ->$val<- expecting a " - . $token - . " in '$string'\n" - ), - -1 - ]; - } - - # State Machine: - my $parentdepth = $depth; - - # Parens are highest priority - if ( $current & PAREN ) { - if ( $val eq "(" ) { - $depth++; - - # make a new node that the clauses can be children of - $parentnode = RT::Interface::Web::QueryBuilder::Tree->new( $ea, $parentnode ); - } - else { - $depth--; - $parentnode = $parentnode->getParent(); - $lastnode = $parentnode; - } - - $want = KEYWORD | PAREN | AGGREG; - } - elsif ( $current & AGGREG ) { - $ea = $val; - $want = KEYWORD | PAREN; - } - elsif ( $current & KEYWORD ) { - $key = $val; - $want = OP; - } - elsif ( $current & OP ) { - $op = $val; - $want = VALUE; - } - elsif ( $current & VALUE ) { - $value = $val; - - # Remove surrounding quotes from $key, $val - # (in future, simplify as for($key,$val) { action on $_ }) - if ( $key =~ /$RE{delimited}{-delim=>qq{\'\"}}/ ) { - substr( $key, 0, 1 ) = ""; - substr( $key, -1, 1 ) = ""; - } - if ( $val =~ /$RE{delimited}{-delim=>qq{\'\"}}/ ) { - substr( $val, 0, 1 ) = ""; - substr( $val, -1, 1 ) = ""; - } - - # Unescape escaped characters - $key =~ s!\\(.)!$1!g; - $val =~ s!\\(.)!$1!g; - - my $class; - if ( exists $lcfields{ lc $key } ) { - $key = $lcfields{ lc $key }; - $class = $FIELDS{$key}->[0]; - } - if ( $class ne 'INT' ) { - $val = "'$val'"; - } - - push @actions, [ $self->CurrentUser->loc("Unknown field: $key"), -1 ] unless $class; - - $want = PAREN | AGGREG; - } - else { - push @actions, [ $self->CurrentUser->loc("I'm lost"), -1 ]; - } - - if ( $current & VALUE ) { - if ( $key =~ /^CF./ ) { - $key = "'" . $key . "'"; - } - my $clause = { - Key => $key, - Op => $op, - Value => $val - }; - - # explicity add a child to it - $lastnode = RT::Interface::Web::QueryBuilder::Tree->new( $clause, $parentnode ); - $lastnode->getParent()->setNodeValue($ea); - - ( $ea, $key, $op, $value ) = ( "", "", "", "" ); - } - - $last = $current; - } # while - - push @actions, [ $self->CurrentUser->loc("Incomplete query"), -1 ] - unless ( ( $want | PAREN ) || ( $want | KEYWORD ) ); - - push @actions, [ $self->CurrentUser->loc("Incomplete Query"), -1 ] - unless ( $last && ( $last | PAREN ) || ( $last || VALUE ) ); - - # This will never happen, because the parser will complain - push @actions, [ $self->CurrentUser->loc("Mismatched parentheses"), -1 ] - unless $depth == 1; -}; - -1; diff --git a/rt/lib/RT/Report/Tickets/Entry.pm b/rt/lib/RT/Report/Tickets/Entry.pm deleted file mode 100644 index f6ee22c0a..000000000 --- a/rt/lib/RT/Report/Tickets/Entry.pm +++ /dev/null @@ -1,55 +0,0 @@ -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -package RT::Report::Tickets::Entry; -use base qw/RT::Record/; - -# XXX TODO: how the heck do we acl a report? -sub CurrentUserHasRight {1} - - -1; diff --git a/rt/lib/RT/Search/Googleish.pm b/rt/lib/RT/Search/Googleish.pm deleted file mode 100644 index a7a1d3e77..000000000 --- a/rt/lib/RT/Search/Googleish.pm +++ /dev/null @@ -1,171 +0,0 @@ - -# BEGIN BPS TAGGED BLOCK {{{ -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2007 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/copyleft/gpl.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 }}} -=head1 NAME - - RT::Search::Googlish - -=head1 SYNOPSIS - -=head1 DESCRIPTION - -Use the argument passed in as a "Google-style" set of keywords - -=head1 METHODS - - -=begin testing - -ok (require RT::Search::Generic); - -=end testing - - -=cut - -package RT::Search::Googleish; - -use strict; -use base qw(RT::Search::Generic); - - -# {{{ sub Describe -sub Describe { - my $self = shift; - return ($self->loc("No description for [_1]", ref $self)); -} -# }}} - -# {{{ sub QueryToSQL -sub QueryToSQL { - my $self = shift; - my $query = shift || $self->Argument; - my @keywords = split /\s+/, $query; - my ( - @tql_clauses, @owner_clauses, @queue_clauses, - @user_clauses, @id_clauses, @status_clauses - ); - my ( $Queue, $User ); - for my $key (@keywords) { - - # Is this a ticket number? If so, go to it. - if ( $key =~ m/^\d+$/ ) { - push @id_clauses, "id = '$key'"; - } - - elsif ( $key =~ /\w+\@\w+/ ) { - push @user_clauses, "Requestor LIKE '$key'"; - } - - # Is there a status with this name? - elsif ( - $Queue = RT::Queue->new( $self->TicketsObj->CurrentUser ) - and $Queue->IsValidStatus($key) - ) - { - push @status_clauses, "Status = '" . $key . "'"; - } - - # Is there a owner named $key? - # Is there a queue named $key? - elsif ( $Queue = RT::Queue->new( $self->TicketsObj->CurrentUser ) - and $Queue->Load($key) ) - { - push @queue_clauses, "Queue = '" . $Queue->Name . "'"; - } - - # Is there a owner named $key? - elsif ( $User = RT::User->new( $self->TicketsObj->CurrentUser ) - and $User->Load($key) - and $User->Privileged ) - { - push @owner_clauses, "Owner = '" . $User->Name . "'"; - } - - elsif ($key =~ /^fulltext:(.*?)$/i) { - $key = $1; - $key =~ s/['\\].*//g; - push @tql_clauses, "Content LIKE '$key'"; - - } - - # Else, subject must contain $key - else { - $key =~ s/['\\].*//g; - push @tql_clauses, "Subject LIKE '$key'"; - } - } - - push @tql_clauses, join( " OR ", sort @id_clauses ); - push @tql_clauses, join( " OR ", sort @owner_clauses ); - push @tql_clauses, join( " OR ", sort @status_clauses ); - push @tql_clauses, join( " OR ", sort @user_clauses ); - push @tql_clauses, join( " OR ", sort @queue_clauses ); - @tql_clauses = grep { $_ ? $_ = "( $_ )" : undef } @tql_clauses; - return join " AND ", sort @tql_clauses; -} -# }}} - -# {{{ sub Prepare -sub Prepare { - my $self = shift; - my $tql = $self->QueryToSQL($self->Argument); - - $RT::Logger->crit($tql); - - $self->TicketsObj->FromSQL($tql); - return(1); -} -# }}} - -eval "require RT::Search::Googleish_Vendor"; -die $@ if ($@ && $@ !~ qr{^Can't locate RT/Search/Googleish_Vendor.pm}); -eval "require RT::Search::Googleish_Local"; -die $@ if ($@ && $@ !~ qr{^Can't locate RT/Search/Googleish_Local.pm}); - -1; diff --git a/rt/lib/RT/TicketCustomFieldValue.pm b/rt/lib/RT/TicketCustomFieldValue.pm deleted file mode 100644 index 717647266..000000000 --- a/rt/lib/RT/TicketCustomFieldValue.pm +++ /dev/null @@ -1,308 +0,0 @@ -# {{{ BEGIN BPS TAGGED BLOCK -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2004 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., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# -# 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 -# Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) -# WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. -# -# !! DO NOT EDIT THIS FILE !! -# - -use strict; - - -=head1 NAME - -RT::TicketCustomFieldValue - - -=head1 SYNOPSIS - -=head1 DESCRIPTION - -=head1 METHODS - -=cut - -package RT::TicketCustomFieldValue; -use RT::Record; -use RT::CustomField; -use RT::Ticket; - - -use vars qw( @ISA ); -@ISA= qw( RT::Record ); - -sub _Init { - my $self = shift; - - $self->Table('TicketCustomFieldValues'); - $self->SUPER::_Init(@_); -} - - - - - -=head2 Create PARAMHASH - -Create takes a hash of values and creates a row in the database: - - int(11) 'Ticket'. - int(11) 'CustomField'. - varchar(255) 'Content'. - -=cut - - - - -sub Create { - my $self = shift; - my %args = ( - Ticket => '0', - CustomField => '0', - Content => '', - - @_); - $self->SUPER::Create( - Ticket => $args{'Ticket'}, - CustomField => $args{'CustomField'}, - Content => $args{'Content'}, -); - -} - - - -=head2 id - -Returns the current value of id. -(In the database, id is stored as int(11).) - - -=cut - - -=head2 Ticket - -Returns the current value of Ticket. -(In the database, Ticket is stored as int(11).) - - - -=head2 SetTicket VALUE - - -Set Ticket to VALUE. -Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, Ticket will be stored as a int(11).) - - -=cut - - -=head2 TicketObj - -Returns the Ticket Object which has the id returned by Ticket - - -=cut - -sub TicketObj { - my $self = shift; - my $Ticket = RT::Ticket->new($self->CurrentUser); - $Ticket->Load($self->__Value('Ticket')); - return($Ticket); -} - -=head2 CustomField - -Returns the current value of CustomField. -(In the database, CustomField is stored as int(11).) - - - -=head2 SetCustomField VALUE - - -Set CustomField to VALUE. -Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, CustomField will be stored as a int(11).) - - -=cut - - -=head2 CustomFieldObj - -Returns the CustomField Object which has the id returned by CustomField - - -=cut - -sub CustomFieldObj { - my $self = shift; - my $CustomField = RT::CustomField->new($self->CurrentUser); - $CustomField->Load($self->__Value('CustomField')); - return($CustomField); -} - -=head2 Content - -Returns the current value of Content. -(In the database, Content is stored as varchar(255).) - - - -=head2 SetContent VALUE - - -Set Content to VALUE. -Returns (1, 'Status message') on success and (0, 'Error Message') on failure. -(In the database, Content will be stored as a varchar(255).) - - -=cut - - -=head2 Creator - -Returns the current value of Creator. -(In the database, Creator is stored as int(11).) - - -=cut - - -=head2 Created - -Returns the current value of Created. -(In the database, Created is stored as datetime.) - - -=cut - - -=head2 LastUpdatedBy - -Returns the current value of LastUpdatedBy. -(In the database, LastUpdatedBy is stored as int(11).) - - -=cut - - -=head2 LastUpdated - -Returns the current value of LastUpdated. -(In the database, LastUpdated is stored as datetime.) - - -=cut - - - -sub _CoreAccessible { - { - - id => - {read => 1, type => 'int(11)', default => ''}, - Ticket => - {read => 1, write => 1, type => 'int(11)', default => '0'}, - CustomField => - {read => 1, write => 1, type => 'int(11)', default => '0'}, - Content => - {read => 1, write => 1, type => 'varchar(255)', default => ''}, - Creator => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, - Created => - {read => 1, auto => 1, type => 'datetime', default => ''}, - LastUpdatedBy => - {read => 1, auto => 1, type => 'int(11)', default => '0'}, - LastUpdated => - {read => 1, auto => 1, type => 'datetime', default => ''}, - - } -}; - - - eval "require RT::TicketCustomFieldValue_Overlay"; - if ($@ && $@ !~ qr{^Can't locate RT/TicketCustomFieldValue_Overlay.pm}) { - die $@; - }; - - eval "require RT::TicketCustomFieldValue_Vendor"; - if ($@ && $@ !~ qr{^Can't locate RT/TicketCustomFieldValue_Vendor.pm}) { - die $@; - }; - - eval "require RT::TicketCustomFieldValue_Local"; - if ($@ && $@ !~ qr{^Can't locate RT/TicketCustomFieldValue_Local.pm}) { - die $@; - }; - - - - -=head1 SEE ALSO - -This class allows "overlay" methods to be placed -into the following files _Overlay is for a System overlay by the original author, -_Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customizations. - -These overlay files can contain new subs or subs to replace existing subs in this module. - -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line - - no warnings qw(redefine); - -so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. - -RT::TicketCustomFieldValue_Overlay, RT::TicketCustomFieldValue_Vendor, RT::TicketCustomFieldValue_Local - -=cut - - -1; diff --git a/rt/lib/RT/TicketCustomFieldValue_Overlay.pm b/rt/lib/RT/TicketCustomFieldValue_Overlay.pm deleted file mode 100644 index 270c5939a..000000000 --- a/rt/lib/RT/TicketCustomFieldValue_Overlay.pm +++ /dev/null @@ -1,74 +0,0 @@ -# {{{ BEGIN BPS TAGGED BLOCK -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2004 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., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# -# 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; -no warnings qw(redefine); - - - -=head2 LoadByTicketContentAndCustomField { Ticket => TICKET, CustomField => CUSTOMFIELD, Content => CONTENT } - -Loads a custom field value by Ticket, Content and which CustomField it's tied to - -=cut - - -sub LoadByTicketContentAndCustomField { - my $self = shift; - my %args = ( Ticket => undef, - CustomField => undef, - Content => undef, - @_ - ); - - - $self->LoadByCols( Content => $args{'Content'}, - CustomField => $args{'CustomField'}, - Ticket => $args{'Ticket'}); - - -} - -1; diff --git a/rt/lib/RT/TicketCustomFieldValues.pm b/rt/lib/RT/TicketCustomFieldValues.pm deleted file mode 100644 index 2174afef3..000000000 --- a/rt/lib/RT/TicketCustomFieldValues.pm +++ /dev/null @@ -1,137 +0,0 @@ -# {{{ BEGIN BPS TAGGED BLOCK -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2004 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., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# -# 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 -# Autogenerated by DBIx::SearchBuilder factory (by <jesse@bestpractical.com>) -# WARNING: THIS FILE IS AUTOGENERATED. ALL CHANGES TO THIS FILE WILL BE LOST. -# -# !! DO NOT EDIT THIS FILE !! -# - -use strict; - - -=head1 NAME - - RT::TicketCustomFieldValues -- Class Description - -=head1 SYNOPSIS - - use RT::TicketCustomFieldValues - -=head1 DESCRIPTION - - -=head1 METHODS - -=cut - -package RT::TicketCustomFieldValues; - -use RT::SearchBuilder; -use RT::TicketCustomFieldValue; - -use vars qw( @ISA ); -@ISA= qw(RT::SearchBuilder); - - -sub _Init { - my $self = shift; - $self->{'table'} = 'TicketCustomFieldValues'; - $self->{'primary_key'} = 'id'; - - - return ( $self->SUPER::_Init(@_) ); -} - - -=head2 NewItem - -Returns an empty new RT::TicketCustomFieldValue item - -=cut - -sub NewItem { - my $self = shift; - return(RT::TicketCustomFieldValue->new($self->CurrentUser)); -} - - eval "require RT::TicketCustomFieldValues_Overlay"; - if ($@ && $@ !~ qr{^Can't locate RT/TicketCustomFieldValues_Overlay.pm}) { - die $@; - }; - - eval "require RT::TicketCustomFieldValues_Vendor"; - if ($@ && $@ !~ qr{^Can't locate RT/TicketCustomFieldValues_Vendor.pm}) { - die $@; - }; - - eval "require RT::TicketCustomFieldValues_Local"; - if ($@ && $@ !~ qr{^Can't locate RT/TicketCustomFieldValues_Local.pm}) { - die $@; - }; - - - - -=head1 SEE ALSO - -This class allows "overlay" methods to be placed -into the following files _Overlay is for a System overlay by the original author, -_Vendor is for 3rd-party vendor add-ons, while _Local is for site-local customizations. - -These overlay files can contain new subs or subs to replace existing subs in this module. - -If you'll be working with perl 5.6.0 or greater, each of these files should begin with the line - - no warnings qw(redefine); - -so that perl does not kick and scream when you redefine a subroutine or variable in your overlay. - -RT::TicketCustomFieldValues_Overlay, RT::TicketCustomFieldValues_Vendor, RT::TicketCustomFieldValues_Local - -=cut - - -1; diff --git a/rt/lib/RT/TicketCustomFieldValues_Overlay.pm b/rt/lib/RT/TicketCustomFieldValues_Overlay.pm deleted file mode 100644 index 8cbaca574..000000000 --- a/rt/lib/RT/TicketCustomFieldValues_Overlay.pm +++ /dev/null @@ -1,108 +0,0 @@ -# {{{ BEGIN BPS TAGGED BLOCK -# -# COPYRIGHT: -# -# This software is Copyright (c) 1996-2004 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., 675 Mass Ave, Cambridge, MA 02139, USA. -# -# -# 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; -no warnings qw(redefine); - -# {{{ sub LimitToCustomField - -=head2 LimitToCustomField FIELD - -Limits the returned set to values for the custom field with Id FIELD - -=cut - -sub LimitToCustomField { - my $self = shift; - my $cf = shift; - return ($self->Limit( FIELD => 'CustomField', - VALUE => $cf, - OPERATOR => '=')); - -} - -# }}} - -# {{{ sub LimitToTicket - -=head2 LimitToTicket TICKETID - -Limits the returned set to values for the ticket with Id TICKETID - -=cut - -sub LimitToTicket { - my $self = shift; - my $ticket = shift; - return ($self->Limit( FIELD => 'Ticket', - VALUE => $ticket, - OPERATOR => '=')); - -} - -# }}} - - -=sub HasEntry VALUE - -Returns true if this CustomFieldValues collection has an entry with content that eq VALUE - -=cut - - -sub HasEntry { - my $self = shift; - my $value = shift; - - #TODO: this could cache and optimize a fair bit. - foreach my $item (@{$self->ItemsArrayRef}) { - return(1) if ($item->Content eq $value); - } - return undef; - -} - -1; - diff --git a/rt/lib/t/00smoke.t.in b/rt/lib/t/00smoke.t.in deleted file mode 100644 index 288dd4aae..000000000 --- a/rt/lib/t/00smoke.t.in +++ /dev/null @@ -1,14 +0,0 @@ -#!@PERL@ - -use Test::More qw(no_plan); - -use lib "@RT_LIB_PATH@"; -use RT; -ok(RT::LoadConfig); -ok(RT::Init, "Basic initialization and DB connectivity"); - -use File::Find; -File::Find::find({wanted => \&wanted}, 'lib/'); -sub wanted { /^*\.pm\z/s && ok(require $_, "Requiring '$_'"); } - - diff --git a/rt/lib/t/01harness.t b/rt/lib/t/01harness.t deleted file mode 100644 index 98c28d2ba..000000000 --- a/rt/lib/t/01harness.t +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/perl - -use Test::More qw(no_plan); - -use lib "/opt/rt3/lib"; -use RT; -ok(RT::LoadConfig); -ok(RT::Init, "Basic initialization and DB connectivity"); - -my $test = shift @ARGV; -require $test; - diff --git a/rt/lib/t/01harness.t.in b/rt/lib/t/01harness.t.in deleted file mode 100644 index d132330c2..000000000 --- a/rt/lib/t/01harness.t.in +++ /dev/null @@ -1,12 +0,0 @@ -#!@PERL@ - -use Test::More qw(no_plan); - -use lib "@RT_LIB_PATH@"; -use RT; -ok(RT::LoadConfig); -ok(RT::Init, "Basic initialization and DB connectivity"); - -my $test = shift @ARGV; -require $test; - diff --git a/rt/lib/t/02regression.t b/rt/lib/t/02regression.t deleted file mode 100644 index 4504cc76a..000000000 --- a/rt/lib/t/02regression.t +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/perl - -use Test::More qw(no_plan); - -use lib "/opt/rt3/lib"; -use RT; -ok(RT::LoadConfig); -ok(RT::Init, "Basic initialization and DB connectivity"); - -# Create a new queue -use_ok(RT::Queue); -my $q = RT::Queue->new($RT::SystemUser); - -$q->Load('regression'); -if ($q->id != 0) { - die "Regression tests not starting with a clean DB. Bailing"; -} - -my ($id, $msg) = $q->Create( Name => 'Regression', - Description => 'A regression test queue', - CorrespondAddress => 'correspond@a', - CommentAddress => 'comment@a'); - -isnt($id, 0, "Queue was created sucessfully - $msg"); - -my $q2 = RT::Queue->new($RT::SystemUser); - -ok($q2->Load($id)); -is($q2->id, $id, "Sucessfully loaded the queue again"); -is($q2->Name, 'Regression'); -is($q2->Description, 'A regression test queue'); -is($q2->CorrespondAddress, 'correspond@a'); -is($q2->CommentAddress, 'comment@a'); - - -use File::Find; -File::Find::find({wanted => \&wanted_autogen}, 'lib/t/autogen'); -sub wanted_autogen { /^autogen.*\.t\z/s && require $_; } - -File::Find::find({wanted => \&wanted_regression}, 'lib/t/regression'); -sub wanted_regression { /^*\.t\z/s && require $_; } - -require "/opt/rt3/lib/t/03web.pl"; -require "/opt/rt3/lib/t/04_send_email.pl"; diff --git a/rt/lib/t/02regression.t.in b/rt/lib/t/02regression.t.in deleted file mode 100644 index c2e3277a9..000000000 --- a/rt/lib/t/02regression.t.in +++ /dev/null @@ -1,47 +0,0 @@ -#!@PERL@ - -use Test::More qw(no_plan); - -use lib "@RT_LIB_PATH@"; -use RT; -ok(RT::LoadConfig); -ok(RT::Init, "Basic initialization and DB connectivity"); - -# Create a new queue -use_ok(RT::Queue); -my $q = RT::Queue->new($RT::SystemUser); - -$q->Load('regression'); -if ($q->id != 0) { - die "Regression tests not starting with a clean DB. Bailing"; -} - -my ($id, $msg) = $q->Create( Name => 'Regression', - Description => 'A regression test queue', - CorrespondAddress => 'correspond@a', - CommentAddress => 'comment@a'); - -isnt($id, 0, "Queue was created sucessfully - $msg"); - -my $q2 = RT::Queue->new($RT::SystemUser); - -ok($q2->Load($id)); -is($q2->id, $id, "Sucessfully loaded the queue again"); -is($q2->Name, 'Regression'); -is($q2->Description, 'A regression test queue'); -is($q2->CorrespondAddress, 'correspond@a'); -is($q2->CommentAddress, 'comment@a'); - - -use File::Find; -File::Find::find({wanted => \&wanted_autogen, - preprocess => sub {return sort @_}}, 'lib/t/autogen'); -sub wanted_autogen { /^autogen.*\.t\z/s && require $_; } - -File::Find::find({wanted => \&wanted_regression, - preprocess => sub {return sort @_}}, 'lib/t/regression'); -sub wanted_regression { /^*\.t\z/s && require $_; } - -require "@RT_LIB_PATH@/t/03web.pl"; -require "@RT_LIB_PATH@/t/04_send_email.pl"; -require "@RT_LIB_PATH@/t/05cronsupport.pl"; diff --git a/rt/lib/t/03web.pl b/rt/lib/t/03web.pl deleted file mode 100644 index 94ad3e97e..000000000 --- a/rt/lib/t/03web.pl +++ /dev/null @@ -1,94 +0,0 @@ -#!/usr/bin/perl - -use strict; -use WWW::Mechanize; -use HTTP::Request::Common; -use HTTP::Cookies; -use LWP; -use Encode; - -my $cookie_jar = HTTP::Cookies->new; -my $agent = WWW::Mechanize->new(); - -# give the agent a place to stash the cookies - -$agent->cookie_jar($cookie_jar); - - -# get the top page -my $url = "http://localhost".$RT::WebPath."/"; -$agent->get($url); - -is ($agent->{'status'}, 200, "Loaded a page"); - - -# {{{ test a login - -# follow the link marked "Login" - -ok($agent->{form}->find_input('user')); - -ok($agent->{form}->find_input('pass')); -ok ($agent->{'content'} =~ /username:/i); -$agent->field( 'user' => 'root' ); -$agent->field( 'pass' => 'password' ); -# the field isn't named, so we have to click link 0 -$agent->click(0); -is($agent->{'status'}, 200, "Fetched the page ok"); -ok( $agent->{'content'} =~ /Logout/i, "Found a logout link"); - - - -$agent->get($url."Ticket/Create.html?Queue=1"); -is ($agent->{'status'}, 200, "Loaded Create.html"); -$agent->form(3); -# Start with a string containing characters in latin1 -my $string = "I18N Web Testing æøå"; -Encode::from_to($string, 'iso-8859-1', 'utf8'); -$agent->field('Subject' => "Foo"); -$agent->field('Content' => $string); -ok($agent->submit(), "Created new ticket with $string"); - -ok( $agent->{'content'} =~ qr{$string} , "Found the content"); - -$agent->get($url."Ticket/Create.html?Queue=1"); -is ($agent->{'status'}, 200, "Loaded Create.html"); -$agent->form(3); -# Start with a string containing characters in latin1 -my $string = "I18N Web Testing æøå"; -Encode::from_to($string, 'iso-8859-1', 'utf8'); -$agent->field('Subject' => $string); -$agent->field('Content' => "BAR"); -ok($agent->submit(), "Created new ticket with $string"); - -ok( $agent->{'content'} =~ qr{$string} , "Found the content"); - - - -# }}} - - - -use File::Find; -find ( \&wanted , 'html/'); - -sub wanted { - -f && /\.html$/ && $_ !~ /Logout.html$/ && test_get($File::Find::name); -} - -sub test_get { - my $file = shift; - - - $file =~ s#^html/##; - ok ($agent->get("$url/$file", "GET $url/$file")); - is ($agent->{'status'}, 200, "Loaded $file"); - ok( $agent->{'content'} =~ /Logout/i, "Found a logout link on $file "); - ok( $agent->{'content'} !~ /Not logged in/i, "Still logged in for $file"); - ok( $agent->{'content'} !~ /System error/i, "Didn't get a Mason compilation error on $file"); - -} - -# }}} - -1; diff --git a/rt/lib/t/03web.pl.in b/rt/lib/t/03web.pl.in deleted file mode 100644 index 25c26e711..000000000 --- a/rt/lib/t/03web.pl.in +++ /dev/null @@ -1,170 +0,0 @@ -#!@PERL@ - -use strict; -use WWW::Mechanize; -use HTTP::Request::Common; -use HTTP::Cookies; -use LWP; -use Encode; - -my $cookie_jar = HTTP::Cookies->new; -my $agent = WWW::Mechanize->new(); - -# give the agent a place to stash the cookies - -$agent->cookie_jar($cookie_jar); - - -# get the top page -my $url = "http://localhost".$RT::WebPath."/"; -$agent->get($url); - -is ($agent->{'status'}, 200, "Loaded a page"); - - -# {{{ test a login - -# follow the link marked "Login" - -ok($agent->{form}->find_input('user')); - -ok($agent->{form}->find_input('pass')); -ok ($agent->{'content'} =~ /username:/i); -$agent->field( 'user' => 'root' ); -$agent->field( 'pass' => 'password' ); -# the field isn't named, so we have to click link 0 -$agent->click(0); -is($agent->{'status'}, 200, "Fetched the page ok"); -ok( $agent->{'content'} =~ /Logout/i, "Found a logout link"); - - - -$agent->get($url."Ticket/Create.html?Queue=1"); -is ($agent->{'status'}, 200, "Loaded Create.html"); -$agent->form(3); -# Start with a string containing characters in latin1 -my $string = "I18N Web Testing æøå"; -Encode::from_to($string, 'iso-8859-1', 'utf8'); -$agent->field('Subject' => "Foo"); -$agent->field('Content' => $string); -ok($agent->submit(), "Created new ticket with $string"); - -ok( $agent->{'content'} =~ qr{$string} , "Found the content"); - -$agent->get($url."Ticket/Create.html?Queue=1"); -is ($agent->{'status'}, 200, "Loaded Create.html"); -$agent->form(3); -# Start with a string containing characters in latin1 -my $string = "I18N Web Testing æøå"; -Encode::from_to($string, 'iso-8859-1', 'utf8'); -$agent->field('Subject' => $string); -$agent->field('Content' => "BAR"); -ok($agent->submit(), "Created new ticket with $string"); - -ok( $agent->{'content'} =~ qr{$string} , "Found the content"); - - - -# }}} - -# {{{ Query Builder tests - -my $response = $agent->get($url."Search/Build.html"); -ok( $response->is_success, "Fetched " . $url."Search/Build.html" ); - -# Parsing TicketSQL -# -# Adding items - -# set the first value -ok($agent->form_name('BuildQuery')); -$agent->field("AttachmentField", "Subject"); -$agent->field("AttachmentOp", "LIKE"); -$agent->field("ValueOfAttachment", "aaa"); -$agent->submit(); - -# set the next value -ok($agent->form_name('BuildQuery')); -$agent->field("AttachmentField", "Subject"); -$agent->field("AttachmentOp", "LIKE"); -$agent->field("ValueOfAttachment", "bbb"); -$agent->submit(); - -ok($agent->form_name('BuildQuery')); - -# get the query -my $query = $agent->current_form->find_input("Query")->value; -# strip whitespace from ends -$query =~ s/^\s*//g; -$query =~ s/\s*$//g; - -# collapse other whitespace -$query =~ s/\s+/ /g; - -is ($query, "Subject LIKE 'aaa' AND Subject LIKE 'bbb'"); - -# - new items go one level down -# - add items at currently selected level -# - if nothing is selected, add at end, one level down -# -# move left -# - error if nothing selected -# - same item should be selected after move -# - can't move left if you're at the top level -# -# move right -# - error if nothing selected -# - same item should be selected after move -# - can always move right (no max depth...should there be?) -# -# move up -# - error if nothing selected -# - same item should be selected after move -# - can't move up if you're first in the list -# -# move down -# - error if nothing selected -# - same item should be selected after move -# - can't move down if you're last in the list -# -# toggle -# - error if nothing selected -# - change all aggregators in the grouping -# - don't change any others -# -# delete -# - error if nothing selected -# - delete currently selected item -# - delete all children of a grouping -# - if delete leaves a node with no children, delete that, too -# - what should be selected? -# -# Clear -# - clears entire query -# - clears it from the session, too - -# }}} - -use File::Find; -find ( \&wanted , 'html/'); - -sub wanted { - -f && /\.html$/ && $_ !~ /Logout.html$/ && test_get($File::Find::name); -} - -sub test_get { - my $file = shift; - - - $file =~ s#^html/##; - ok ($agent->get("$url/$file", "GET $url/$file")); - is ($agent->{'status'}, 200, "Loaded $file"); -# ok( $agent->{'content'} =~ /Logout/i, "Found a logout link on $file "); - ok( $agent->{'content'} !~ /Not logged in/i, "Still logged in for $file"); - ok( $agent->{'content'} !~ /System error/i, "Didn't get a Mason compilation error on $file"); - -} - -# }}} - -1; diff --git a/rt/lib/t/04_send_email.pl b/rt/lib/t/04_send_email.pl deleted file mode 100644 index c384eedfa..000000000 --- a/rt/lib/t/04_send_email.pl +++ /dev/null @@ -1,481 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use RT::EmailParser; -use RT::Tickets; -use RT::Action::SendEmail; - -my @_outgoing_messages; -my @scrips_fired; - -#We're not testing acls here. -my $everyone = RT::Group->new($RT::SystemUser); -$everyone->LoadSystemInternalGroup('Everyone'); -$everyone->PrincipalObj->GrantRight(Right =>'SuperUser'); - - -is (__PACKAGE__, 'main', "We're operating in the main package"); - - -{ -no warnings qw/redefine/; -sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - - main::_fired_scrip($self->ScripObj); - main::ok(ref($MIME) eq 'MIME::Entity', "hey, look. it's a mime entity"); -} - -} - -# instrument SendEmail to pass us what it's about to send. -# create a regular ticket - -my $parser = RT::EmailParser->new(); - - -# Let's test to make sure a multipart/report is processed correctly -my $content = `cat /opt/rt3/lib/t/data/multipart-report` || die "couldn't find new content"; -# be as much like the mail gateway as possible. -use RT::Interface::Email; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /The original message was received/, "It's the bounce"); - - -# make sure it fires scrips. -is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); - -undef @scrips_fired; - - - - -$parser->ParseMIMEEntityFromScalar('From: root@localhost -To: rt@example.com -Subject: This is a test of new ticket creation as an unknown user - -Blah! -Foob!'); - - -use Data::Dumper; - -my $ticket = RT::Ticket->new($RT::SystemUser); -my ($id, $tid, $msg ) = $ticket->Create(Requestor => ['root@localhost'], Queue => 'general', Subject => 'I18NTest', MIMEObj => $parser->Entity); -ok ($id,$msg); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); -ok ($tick->Subject eq 'I18NTest', "failed to create the new ticket from an unprivileged account"); - -# make sure it fires scrips. -is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); -# make sure it sends an autoreply -# make sure it sends a notification to adminccs - - -# we need to swap out SendMessage to test the new things we care about; -&utf8_redef_sendmessage; - -# create an iso 8859-1 ticket -@scrips_fired = (); - -my $content = `cat /opt/rt3/lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; - - - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -use RT::Interface::Email; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /H\x{e5}vard/, "It's signed by havard. yay"); - - -# make sure it fires scrips. -is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); -# make sure it sends an autoreply - - -# make sure it sends a notification to adminccs - -# If we correspond, does it do the right thing to the outbound messages? - -$parser->ParseMIMEEntityFromScalar($content); -my ($id, $msg) = $tick->Comment(MIMEObj => $parser->Entity); -ok ($id, $msg); - -$parser->ParseMIMEEntityFromScalar($content); -($id, $msg) = $tick->Correspond(MIMEObj => $parser->Entity); -ok ($id, $msg); - - - - - -# we need to swap out SendMessage to test the new things we care about; -&iso8859_redef_sendmessage; -$RT::EmailOutputEncoding = 'iso-8859-1'; -# create an iso 8859-1 ticket -@scrips_fired = (); - -my $content = `cat /opt/rt3/lib/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; -# be as much like the mail gateway as possible. -use RT::Interface::Email; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /H\x{e5}vard/, "It's signed by havard. yay"); - - -# make sure it fires scrips. -is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); -# make sure it sends an autoreply - - -# make sure it sends a notification to adminccs - - -# If we correspond, does it do the right thing to the outbound messages? - -$parser->ParseMIMEEntityFromScalar($content); -my ($id, $msg) = $tick->Comment(MIMEObj => $parser->Entity); -ok ($id, $msg); - -$parser->ParseMIMEEntityFromScalar($content); -($id, $msg) = $tick->Correspond(MIMEObj => $parser->Entity); -ok ($id, $msg); - - -sub _fired_scrip { - my $scrip = shift; - push @scrips_fired, $scrip; -} - -sub utf8_redef_sendmessage { - no warnings qw/redefine/; - eval ' - sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - - my $scrip = $self->ScripObj->id; - ok(1, $self->ScripObj->ConditionObj->Name . " ".$self->ScripObj->ActionObj->Name); - main::_fired_scrip($self->ScripObj); - $MIME->make_singlepart; - main::ok( ref($MIME) eq \'MIME::Entity\', - "hey, look. it\'s a mime entity" ); - main::ok( ref( $MIME->head ) eq \'MIME::Head\', - "its mime header is a mime header. yay" ); - main::ok( $MIME->head->get(\'Content-Type\') =~ /utf-8/, - "Its content type is utf-8" ); - my $message_as_string = $MIME->bodyhandle->as_string(); - use Encode; - $message_as_string = Encode::decode_utf8($message_as_string); - main::ok( - $message_as_string =~ /H\x{e5}vard/, -"The message\'s content contains havard\'s name. this will fail if it\'s not utf8 out"); - - }'; -} - -sub iso8859_redef_sendmessage { - no warnings qw/redefine/; - eval ' - sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - - my $scrip = $self->ScripObj->id; - ok(1, $self->ScripObj->ConditionObj->Name . " ".$self->ScripObj->ActionObj->Name); - main::_fired_scrip($self->ScripObj); - $MIME->make_singlepart; - main::ok( ref($MIME) eq \'MIME::Entity\', - "hey, look. it\'s a mime entity" ); - main::ok( ref( $MIME->head ) eq \'MIME::Head\', - "its mime header is a mime header. yay" ); - main::ok( $MIME->head->get(\'Content-Type\') =~ /iso-8859-1/, - "Its content type is iso-8859-1 - " . $MIME->head->get("Content-Type") ); - my $message_as_string = $MIME->bodyhandle->as_string(); - use Encode; - $message_as_string = Encode::decode("iso-8859-1",$message_as_string); - main::ok( - $message_as_string =~ /H\x{e5}vard/, "The message\'s content contains havard\'s name. this will fail if it\'s not utf8 out"); - - }'; -} - -# {{{ test a multipart alternative containing a text-html part with an umlaut - -my $content = `cat /opt/rt3/lib/t/data/multipart-alternative-with-umlaut` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -¨auts_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /causes Error/, "We recorded the content right as text-plain"); -is ($tick->Transactions->First->Attachments->Count , 3 , "Has three attachments, presumably a text-plain, a text-html and a multipart alternative"); - -sub umlauts_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { }'; -} - -# }}} - -# {{{ test a text-html message with an umlaut - -my $content = `cat /opt/rt3/lib/t/data/text-html-with-umlaut` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&text_html_umlauts_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Attachments->First->Content =~ /causes Error/, "We recorded the content as containing 'causes error'"); -ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/html/, "We recorded the content as text/html"); -ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-html and a multipart alternative"); - -sub text_html_umlauts_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - use Data::Dumper; - return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); - ok (is $MIME->parts, 2, "generated correspondence mime entityis composed of three parts"); - is ($MIME->head->mime_type , "multipart/mixed", "The first part is a multipart mixed". $MIME->head->mime_type); - is ($MIME->parts(0)->head->mime_type , "text/plain", "The second part is a plain"); - is ($MIME->parts(1)->head->mime_type , "text/html", "The third part is an html "); - }'; -} - -# }}} - -# {{{ test a text-html message with russian characters - -my $content = `cat /opt/rt3/lib/t/data/text-html-in-russian` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&text_html_russian_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/html/, "We recorded the content right as text-html"); -ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-html and a multipart alternative"); - -sub text_html_russian_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - use Data::Dumper; - return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); - ok (is $MIME->parts, 2, "generated correspondence mime entityis composed of three parts"); - is ($MIME->head->mime_type , "multipart/mixed", "The first part is a multipart mixed". $MIME->head->mime_type); - is ($MIME->parts(0)->head->mime_type , "text/plain", "The second part is a plain"); - is ($MIME->parts(1)->head->mime_type , "text/html", "The third part is an html "); - my $content_1251; - $content_1251 = $MIME->parts(1)->bodyhandle->as_string(); - ok ($content_1251 =~ qr{Ó÷eáíûé Öeíòp "ÊÀÄÐÛ ÄÅËÎÂÎÃÎ ÌÈÐÀ" ïpèãëaøaeò ía òpeíèíã:}, -"Content matches drugim in codepage 1251" ); - }'; -} - -# }}} - -# {{{ test a message containing a russian subject and NO content type - -unshift (@RT::EmailInputEncodings, 'koi8-r'); -$RT::EmailOutputEncoding = 'koi8-r'; -my $content = `cat /opt/rt3/lib/t/data/russian-subject-no-content-type` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&text_plain_russian_redef_sendmessage; -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/plain/, "We recorded the content type right"); -ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-plain"); -is ($tick->Subject, "\x{442}\x{435}\x{441}\x{442} \x{442}\x{435}\x{441}\x{442}", "Recorded the subject right"); -sub text_plain_russian_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); - is ($MIME->head->mime_type , "text/plain", "The only part is text/plain "); - my $subject = $MIME->head->get("subject"); - chomp($subject); - #is( $subject , /^=\?KOI8-R\?B\?W2V4YW1wbGUuY39tICM3XSDUxdPUINTF09Q=\?=/ , "The $subject is encoded correctly"); - }; - '; -} - -shift @RT::EmailInputEncodings; -$RT::EmailOutputEncoding = 'utf-8'; -# }}} - - -# {{{ test a message containing a nested RFC 822 message - -my $content = `cat /opt/rt3/lib/t/data/nested-rfc-822` || die "couldn't find new content"; -ok ($content, "Loaded nested-rfc-822 to test"); - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&text_plain_nested_redef_sendmessage; -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); -is ($tick->Subject, "[Jonas Liljegren] Re: [Para] Niv\x{e5}er?"); -ok ($tick->Transactions->First->Attachments->First->ContentType =~ /multipart\/mixed/, "We recorded the content type right"); -is ($tick->Transactions->First->Attachments->Count , 5 , "Has one attachment, presumably a text-plain and a message RFC 822 and another plain"); -sub text_plain_nested_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); - is ($MIME->head->mime_type , "multipart/mixed", "It is a mixed multipart"); - my $subject = $MIME->head->get("subject"); - $subject = MIME::Base64::decode_base64( $subject); - chomp($subject); - # TODO, why does this test fail - #ok($subject =~ qr{Niv\x{e5}er}, "The subject matches the word - $subject"); - 1; - }'; -} - -# }}} - - -# {{{ test a multipart alternative containing a uuencoded mesage generated by lotus notes - -my $content = `cat /opt/rt3/lib/t/data/notes-uuencoded` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -¬es_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /from Lotus Notes/, "We recorded the content right"); -is ($tick->Transactions->First->Attachments->Count , 3 , "Has three attachments"); - -sub notes_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { }'; -} - -# }}} - -# {{{ test a multipart that crashes the file-based mime-parser works - -my $content = `cat /opt/rt3/lib/t/data/crashes-file-based-parser` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&crashes_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /FYI/, "We recorded the content right"); -is ($tick->Transactions->First->Attachments->Count , 5 , "Has three attachments"); - -sub crashes_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { }'; -} - - - -# }}} - -# Don't taint the environment -$everyone->PrincipalObj->RevokeRight(Right =>'SuperUser'); -1; diff --git a/rt/lib/t/04_send_email.pl.in b/rt/lib/t/04_send_email.pl.in deleted file mode 100644 index 39ab0d271..000000000 --- a/rt/lib/t/04_send_email.pl.in +++ /dev/null @@ -1,506 +0,0 @@ -#!@PERL@ -w - -use strict; -use RT::EmailParser; -use RT::Tickets; -use RT::Action::SendEmail; - -my @_outgoing_messages; -my @scrips_fired; - -#We're not testing acls here. -my $everyone = RT::Group->new($RT::SystemUser); -$everyone->LoadSystemInternalGroup('Everyone'); -$everyone->PrincipalObj->GrantRight(Right =>'SuperUser'); - - -is (__PACKAGE__, 'main', "We're operating in the main package"); - - -{ -no warnings qw/redefine/; -sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - - main::_fired_scrip($self->ScripObj); - main::ok(ref($MIME) eq 'MIME::Entity', "hey, look. it's a mime entity"); -} - -} - -# instrument SendEmail to pass us what it's about to send. -# create a regular ticket - -my $parser = RT::EmailParser->new(); - - -# Let's test to make sure a multipart/report is processed correctly -my $content = `cat @RT_LIB_PATH@/t/data/multipart-report` || die "couldn't find new content"; -# be as much like the mail gateway as possible. -use RT::Interface::Email; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /The original message was received/, "It's the bounce"); - - -# make sure it fires scrips. -is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); - -undef @scrips_fired; - - - - -$parser->ParseMIMEEntityFromScalar('From: root@localhost -To: rt@example.com -Subject: This is a test of new ticket creation as an unknown user - -Blah! -Foob!'); - - -use Data::Dumper; - -my $ticket = RT::Ticket->new($RT::SystemUser); -my ($id, $tid, $msg ) = $ticket->Create(Requestor => ['root@localhost'], Queue => 'general', Subject => 'I18NTest', MIMEObj => $parser->Entity); -ok ($id,$msg); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); -ok ($tick->Subject eq 'I18NTest', "failed to create the new ticket from an unprivileged account"); - -# make sure it fires scrips. -is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); -# make sure it sends an autoreply -# make sure it sends a notification to adminccs - - -# we need to swap out SendMessage to test the new things we care about; -&utf8_redef_sendmessage; - -# create an iso 8859-1 ticket -@scrips_fired = (); - -my $content = `cat @RT_LIB_PATH@/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; - - - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -use RT::Interface::Email; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /H\x{e5}vard/, "It's signed by havard. yay"); - - -# make sure it fires scrips. -is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); -# make sure it sends an autoreply - - -# make sure it sends a notification to adminccs - -# If we correspond, does it do the right thing to the outbound messages? - -$parser->ParseMIMEEntityFromScalar($content); -my ($id, $msg) = $tick->Comment(MIMEObj => $parser->Entity); -ok ($id, $msg); - -$parser->ParseMIMEEntityFromScalar($content); -($id, $msg) = $tick->Correspond(MIMEObj => $parser->Entity); -ok ($id, $msg); - - - - - -# we need to swap out SendMessage to test the new things we care about; -&iso8859_redef_sendmessage; -$RT::EmailOutputEncoding = 'iso-8859-1'; -# create an iso 8859-1 ticket -@scrips_fired = (); - -my $content = `cat @RT_LIB_PATH@/t/data/new-ticket-from-iso-8859-1` || die "couldn't find new content"; -# be as much like the mail gateway as possible. -use RT::Interface::Email; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /H\x{e5}vard/, "It's signed by havard. yay"); - - -# make sure it fires scrips. -is ($#scrips_fired, 1, "Fired 2 scrips on ticket creation"); -# make sure it sends an autoreply - - -# make sure it sends a notification to adminccs - - -# If we correspond, does it do the right thing to the outbound messages? - -$parser->ParseMIMEEntityFromScalar($content); -my ($id, $msg) = $tick->Comment(MIMEObj => $parser->Entity); -ok ($id, $msg); - -$parser->ParseMIMEEntityFromScalar($content); -($id, $msg) = $tick->Correspond(MIMEObj => $parser->Entity); -ok ($id, $msg); - - -sub _fired_scrip { - my $scrip = shift; - push @scrips_fired, $scrip; -} - -sub utf8_redef_sendmessage { - no warnings qw/redefine/; - eval ' - sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - - my $scrip = $self->ScripObj->id; - ok(1, $self->ScripObj->ConditionObj->Name . " ".$self->ScripObj->ActionObj->Name); - main::_fired_scrip($self->ScripObj); - $MIME->make_singlepart; - main::ok( ref($MIME) eq \'MIME::Entity\', - "hey, look. it\'s a mime entity" ); - main::ok( ref( $MIME->head ) eq \'MIME::Head\', - "its mime header is a mime header. yay" ); - main::ok( $MIME->head->get(\'Content-Type\') =~ /utf-8/, - "Its content type is utf-8" ); - my $message_as_string = $MIME->bodyhandle->as_string(); - use Encode; - $message_as_string = Encode::decode_utf8($message_as_string); - main::ok( - $message_as_string =~ /H\x{e5}vard/, -"The message\'s content contains havard\'s name. this will fail if it\'s not utf8 out"); - - }'; -} - -sub iso8859_redef_sendmessage { - no warnings qw/redefine/; - eval ' - sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - - my $scrip = $self->ScripObj->id; - ok(1, $self->ScripObj->ConditionObj->Name . " ".$self->ScripObj->ActionObj->Name); - main::_fired_scrip($self->ScripObj); - $MIME->make_singlepart; - main::ok( ref($MIME) eq \'MIME::Entity\', - "hey, look. it\'s a mime entity" ); - main::ok( ref( $MIME->head ) eq \'MIME::Head\', - "its mime header is a mime header. yay" ); - main::ok( $MIME->head->get(\'Content-Type\') =~ /iso-8859-1/, - "Its content type is iso-8859-1 - " . $MIME->head->get("Content-Type") ); - my $message_as_string = $MIME->bodyhandle->as_string(); - use Encode; - $message_as_string = Encode::decode("iso-8859-1",$message_as_string); - main::ok( - $message_as_string =~ /H\x{e5}vard/, "The message\'s content contains havard\'s name. this will fail if it\'s not utf8 out"); - - }'; -} - -# {{{ test a multipart alternative containing a text-html part with an umlaut - -my $content = `cat @RT_LIB_PATH@/t/data/multipart-alternative-with-umlaut` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -¨auts_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /causes Error/, "We recorded the content right as text-plain"); -is ($tick->Transactions->First->Attachments->Count , 3 , "Has three attachments, presumably a text-plain, a text-html and a multipart alternative"); - -sub umlauts_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { }'; -} - -# }}} - -# {{{ test a text-html message with an umlaut - -my $content = `cat @RT_LIB_PATH@/t/data/text-html-with-umlaut` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&text_html_umlauts_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Attachments->First->Content =~ /causes Error/, "We recorded the content as containing 'causes error'"); -ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/html/, "We recorded the content as text/html"); -ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-html and a multipart alternative"); - -sub text_html_umlauts_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - use Data::Dumper; - return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); - ok (is $MIME->parts, 2, "generated correspondence mime entityis composed of three parts"); - is ($MIME->head->mime_type , "multipart/mixed", "The first part is a multipart mixed". $MIME->head->mime_type); - is ($MIME->parts(0)->head->mime_type , "text/plain", "The second part is a plain"); - is ($MIME->parts(1)->head->mime_type , "text/html", "The third part is an html "); - }'; -} - -# }}} - -# {{{ test a text-html message with russian characters - -my $content = `cat @RT_LIB_PATH@/t/data/text-html-in-russian` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&text_html_russian_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/html/, "We recorded the content right as text-html"); -ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-html and a multipart alternative"); - -sub text_html_russian_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - use Data::Dumper; - return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); - ok (is $MIME->parts, 2, "generated correspondence mime entityis composed of three parts"); - is ($MIME->head->mime_type , "multipart/mixed", "The first part is a multipart mixed". $MIME->head->mime_type); - is ($MIME->parts(0)->head->mime_type , "text/plain", "The second part is a plain"); - is ($MIME->parts(1)->head->mime_type , "text/html", "The third part is an html "); - my $content_1251; - $content_1251 = $MIME->parts(1)->bodyhandle->as_string(); - ok ($content_1251 =~ qr{Ó÷eáíûé Öeíòp "ÊÀÄÐÛ ÄÅËÎÂÎÃÎ ÌÈÐÀ" ïpèãëaøaeò ía òpeíèíã:}, -"Content matches drugim in codepage 1251" ); - }'; -} - -# }}} - -# {{{ test a message containing a russian subject and NO content type - -unshift (@RT::EmailInputEncodings, 'koi8-r'); -$RT::EmailOutputEncoding = 'koi8-r'; -my $content = `cat @RT_LIB_PATH@/t/data/russian-subject-no-content-type` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&text_plain_russian_redef_sendmessage; -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Attachments->First->ContentType =~ /text\/plain/, "We recorded the content type right"); -ok ($tick->Transactions->First->Attachments->Count ==1 , "Has one attachment, presumably a text-plain"); -is ($tick->Subject, "\x{442}\x{435}\x{441}\x{442} \x{442}\x{435}\x{441}\x{442}", "Recorded the subject right"); -sub text_plain_russian_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); - is ($MIME->head->mime_type , "text/plain", "The only part is text/plain "); - my $subject = $MIME->head->get("subject"); - chomp($subject); - #is( $subject , /^=\?KOI8-R\?B\?W2V4YW1wbGUuY39tICM3XSDUxdPUINTF09Q=\?=/ , "The $subject is encoded correctly"); - }; - '; -} - -shift @RT::EmailInputEncodings; -$RT::EmailOutputEncoding = 'utf-8'; -# }}} - - -# {{{ test a message containing a nested RFC 822 message - -my $content = `cat @RT_LIB_PATH@/t/data/nested-rfc-822` || die "couldn't find new content"; -ok ($content, "Loaded nested-rfc-822 to test"); - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&text_plain_nested_redef_sendmessage; -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); -is ($tick->Subject, "[Jonas Liljegren] Re: [Para] Niv\x{e5}er?"); -ok ($tick->Transactions->First->Attachments->First->ContentType =~ /multipart\/mixed/, "We recorded the content type right"); -is ($tick->Transactions->First->Attachments->Count , 5 , "Has one attachment, presumably a text-plain and a message RFC 822 and another plain"); -sub text_plain_nested_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { - my $self = shift; - my $MIME = shift; - return (1) unless ($self->ScripObj->ScripActionObj->Name eq "Notify AdminCcs" ); - is ($MIME->head->mime_type , "multipart/mixed", "It is a mixed multipart"); - my $subject = $MIME->head->get("subject"); - $subject = MIME::Base64::decode_base64( $subject); - chomp($subject); - # TODO, why does this test fail - #ok($subject =~ qr{Niv\x{e5}er}, "The subject matches the word - $subject"); - 1; - }'; -} - -# }}} - - -# {{{ test a multipart alternative containing a uuencoded mesage generated by lotus notes - -my $content = `cat @RT_LIB_PATH@/t/data/notes-uuencoded` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -¬es_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /from Lotus Notes/, "We recorded the content right"); -is ($tick->Transactions->First->Attachments->Count , 3 , "Has three attachments"); - -sub notes_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { }'; -} - -# }}} - -# {{{ test a multipart that crashes the file-based mime-parser works - -my $content = `cat @RT_LIB_PATH@/t/data/crashes-file-based-parser` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - -# be as much like the mail gateway as possible. -&crashes_redef_sendmessage; - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -ok ($tick->Transactions->First->Content =~ /FYI/, "We recorded the content right"); -is ($tick->Transactions->First->Attachments->Count , 5 , "Has three attachments"); - -sub crashes_redef_sendmessage { - no warnings qw/redefine/; - eval 'sub RT::Action::SendEmail::SendMessage { }'; -} - - - -# }}} - -# {{{ test a multi-line RT-Send-CC header - -my $content = `cat @RT_LIB_PATH@/t/data/rt-send-cc` || die "couldn't find new content"; - -$parser->ParseMIMEEntityFromScalar($content); - - - -my %args = (message => $content, queue => 1, action => 'correspond'); - RT::Interface::Email::Gateway(\%args); -my $tickets = RT::Tickets->new($RT::SystemUser); -$tickets->OrderBy(FIELD => 'id', ORDER => 'DESC'); -$tickets->Limit(FIELD => 'id' ,OPERATOR => '>', VALUE => '0'); -my $tick = $tickets->First(); -ok ($tick->Id, "found ticket ".$tick->Id); - -my $cc = $tick->Transactions->First->Attachments->First->GetHeader('RT-Send-Cc'); -ok ($cc =~ /test1/, "Found test 1"); -ok ($cc =~ /test2/, "Found test 2"); -ok ($cc =~ /test3/, "Found test 3"); -ok ($cc =~ /test4/, "Found test 4"); -ok ($cc =~ /test5/, "Found test 5"); - -# }}} - -# Don't taint the environment -$everyone->PrincipalObj->RevokeRight(Right =>'SuperUser'); -1; diff --git a/rt/lib/t/05cronsupport.pl.in b/rt/lib/t/05cronsupport.pl.in deleted file mode 100644 index a6b3d7451..000000000 --- a/rt/lib/t/05cronsupport.pl.in +++ /dev/null @@ -1,84 +0,0 @@ -#!@PERL@ -w - -use strict; - -### Set up some testing data. Test the testing data because why not? - -# Create a user with rights, a queue, and some tickets. -my $user_obj = RT::User->new($RT::SystemUser); -my ($ret, $msg) = $user_obj->LoadOrCreateByEmail('tara@example.com'); -ok($ret, 'record test user creation'); -$user_obj->SetName('tara'); -$user_obj->PrincipalObj->GrantRight(Right => 'SuperUser'); -my $CurrentUser = RT::CurrentUser->new('tara'); - -# Create our template, which will be used for tests of RT::Action::Record*. - -my $template_content = 'RT-Send-Cc: tla@example.com -RT-Send-Bcc: jesse@example.com - -This is a content string with no content.'; - -my $template_obj = RT::Template->new($CurrentUser); -$template_obj->Create(Queue => '0', - Name => 'recordtest', - Description => 'testing Record actions', - Content => $template_content, - ); - -# Create a queue and some tickets. - -my $queue_obj = RT::Queue->new($CurrentUser); -($ret, $msg) = $queue_obj->Create(Name => 'recordtest', Description => 'queue for Action::Record testing'); -ok($ret, 'record test queue creation'); - -my $ticket1 = RT::Ticket->new($CurrentUser); -my ($id, $tobj, $msg2) = $ticket1->Create(Queue => $queue_obj, - Requestor => ['tara@example.com'], - Subject => 'bork bork bork', - Priority => 22, - ); -ok($id, 'record test ticket creation 1'); -my $ticket2 = RT::Ticket->new($CurrentUser); -($id, $tobj, $msg2) = $ticket2->Create(Queue => $queue_obj, - Requestor => ['root@localhost'], - Subject => 'hurdy gurdy' - ); -ok($id, 'record test ticket creation 2'); - - -### OK. Have data, will travel. - -# First test the search. - -ok(require RT::Search::FromSQL, "Search::FromSQL loaded"); -my $ticketsqlstr = "Requestor.EmailAddress = '" . $CurrentUser->EmailAddress . - "' AND Priority > '20'"; -my $search = RT::Search::FromSQL->new(Argument => $ticketsqlstr, TicketsObj => RT::Tickets->new($CurrentUser), - ); -is(ref($search), 'RT::Search::FromSQL', "search created"); -ok($search->Prepare(), "fromsql search run"); -my $counter = 0; -while(my $t = $search->TicketsObj->Next() ) { - is($t->Id(), $ticket1->Id(), "fromsql search results 1"); - $counter++; -} -is ($counter, 1, "fromsql search results 2"); - -# Right. Now test the actions. - -ok(require RT::Action::RecordComment); -ok(require RT::Action::RecordCorrespondence); - -my ($comment_act, $correspond_act); -ok($comment_act = RT::Action::RecordComment->new(TicketObj => $ticket1, TemplateObj => $template_obj, CurrentUser => $CurrentUser), "RecordComment created"); -ok($correspond_act = RT::Action::RecordCorrespondence->new(TicketObj => $ticket2, TemplateObj => $template_obj, CurrentUser => $CurrentUser), "RecordCorrespondence created"); -ok($comment_act->Prepare(), "Comment prepared"); -ok($correspond_act->Prepare(), "Correspond prepared"); -ok($comment_act->Commit(), "Comment committed"); -ok($correspond_act->Commit(), "Correspondence committed"); - -# Now test for loop suppression. -my ($trans, $desc, $transaction) = $ticket2->Comment(MIMEObj => $template_obj->MIMEObj); -my $bogus_action = RT::Action::RecordComment->new(TicketObj => $ticket1, TemplateObj => $template_obj, TransactionObj => $transaction, CurrentUser => $CurrentUser); -ok(!$bogus_action->Prepare(), "Comment aborted to prevent loop"); diff --git a/rt/lib/t/data/lorem-ipsum b/rt/lib/t/data/lorem-ipsum deleted file mode 100644 index 1aceb1464..000000000 --- a/rt/lib/t/data/lorem-ipsum +++ /dev/null @@ -1,5 +0,0 @@ -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut -labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris -nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit -esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in -culpa qui officia deserunt mollit anim id est laborum. diff --git a/rt/lib/t/data/subject-with-folding-ws b/rt/lib/t/data/subject-with-folding-ws deleted file mode 100644 index c0826325e..000000000 --- a/rt/lib/t/data/subject-with-folding-ws +++ /dev/null @@ -1,10 +0,0 @@ -Subject: =?ISO-8859-1?Q?te?= - =?ISO-8859-1?Q?st?= -Date: Mon, 02 Jun 2003 20:58:30 +0200 -To: rt@example.com -From: foo@example.com -Mime-Version: 1.0 -Content-Type: text/plain; charset="iso-8859-1" -Content-Transfer-Encoding: 8bit - -test diff --git a/rt/lib/t/data/very-long-subject b/rt/lib/t/data/very-long-subject deleted file mode 100644 index ad420d0a6..000000000 --- a/rt/lib/t/data/very-long-subject +++ /dev/null @@ -1,12 +0,0 @@ -Subject: 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 -Date: Mon, 02 Jun 2003 20:58:30 +0200 -To: rt@example.com -From: foo@example.com -Mime-Version: 1.0 -Content-Type: text/plain; charset="utf-8" -Content-Transfer-Encoding: 8bit - -This email has a very long subject. Our DB allows you to use subject -no longer than 200 chars, but we creat ticket, don't generate an -error and trancate long line. - diff --git a/rt/lib/t/regression/00-mason-syntax.t b/rt/lib/t/regression/00-mason-syntax.t deleted file mode 100644 index 96674cacf..000000000 --- a/rt/lib/t/regression/00-mason-syntax.t +++ /dev/null @@ -1,42 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; - -use Test::More tests => 1; - -my $ok = 1; - -use File::Find; -find( { - no_chdir => 1, - wanted => sub { - return if /\.(?:jpe?g|png|gif|rej|\~)$/i; - if (m!/\.svn$!) { - $File::Find::prune = 1; - return; - } - return unless -f $_; - diag "testing $_" if $ENV{'TEST_VERBOSE'}; - eval { compile_file($_) } and return; - $ok = 0; - diag "error in ${File::Find::name}:\n$@"; - }, -}, 'html'); -ok($ok, "mason syntax is ok"); - -use HTML::Mason::Compiler; -use HTML::Mason::Compiler::ToObject; - -sub compile_file { - my $file = shift; - - open my $fh, '<:utf8', $file or die "couldn't open '$file': $!"; - my $text = do { local $/; <$fh> }; - close $fh or die "couldn't close '$file': $!"; - - my $compiler = new HTML::Mason::Compiler::ToObject; - $compiler->compile( comp_source => $text, name => 'my' ); - return 1; -} - diff --git a/rt/lib/t/regression/00placeholder b/rt/lib/t/regression/00placeholder deleted file mode 100644 index 0afc6045c..000000000 --- a/rt/lib/t/regression/00placeholder +++ /dev/null @@ -1 +0,0 @@ -1; diff --git a/rt/lib/t/regression/15cf_combo_cascade.t b/rt/lib/t/regression/15cf_combo_cascade.t deleted file mode 100644 index df663a1bd..000000000 --- a/rt/lib/t/regression/15cf_combo_cascade.t +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/perl -use warnings; -use strict; -use Test::More tests => 11; - -use RT; -RT::LoadConfig(); -RT::Init(); - -sub fails { ok(!$_[0], "This should fail: $_[1]") } -sub works { ok($_[0], $_[1] || 'This works') } - -sub new (*) { - my $class = shift; - return $class->new($RT::SystemUser); -} - -my $q = new(RT::Queue); -works($q->Create(Name => "CF-Pattern-".$$)); - -my $cf = new(RT::CustomField); -my @cf_args = (Name => $q->Name, Type => 'Combobox', Queue => $q->id); - -works($cf->Create(@cf_args)); - -# Set some CFVs with Category markers - -my $t = new(RT::Ticket); -my ($id,undef,$msg) = $t->Create(Queue => $q->id, Subject => 'CF Test'); -works($id,$msg); - -sub add_works { - works( - $cf->AddValue(Name => $_[0], Description => $_[0], Category => $_[1]) - ); -}; - -add_works('value1', '1. Category A'); -add_works('value2'); -add_works('value3', '1.1. A-sub one'); -add_works('value4', '1.2. A-sub two'); -add_works('value5', ''); - -my $cfv = $cf->Values->First; -is($cfv->Category, '1. Category A'); -works($cfv->SetCategory('1. Category AAA')); -is($cfv->Category, '1. Category AAA'); - -1; diff --git a/rt/lib/t/regression/15cf_pattern.t b/rt/lib/t/regression/15cf_pattern.t deleted file mode 100644 index ea2b5b858..000000000 --- a/rt/lib/t/regression/15cf_pattern.t +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/perl -use warnings; -use strict; -use Test::More tests => 17; - -use RT; -RT::LoadConfig(); -RT::Init(); - -sub fails { ok(!$_[0], "This should fail: $_[1]") } -sub works { ok($_[0], $_[1] || 'This works') } - -sub new (*) { - my $class = shift; - return $class->new($RT::SystemUser); -} - -my $q = new(RT::Queue); -works($q->Create(Name => "CF-Pattern-".$$)); - -my $cf = new(RT::CustomField); -my @cf_args = (Name => $q->Name, Type => 'Freeform', Queue => $q->id, MaxValues => 1); - -fails($cf->Create(@cf_args, Pattern => ')))bad!regex(((')); -works($cf->Create(@cf_args, Pattern => 'good regex')); - -my $t = new(RT::Ticket); -my ($id,undef,$msg) = $t->Create(Queue => $q->id, Subject => 'CF Test'); -works($id,$msg); - -# OK, I'm thoroughly brain washed by HOP at this point now... -sub cnt { $t->CustomFieldValues($cf->id)->Count }; -sub add { $t->AddCustomFieldValue(Field => $cf->id, Value => $_[0]) }; -sub del { $t->DeleteCustomFieldValue(Field => $cf->id, Value => $_[0]) }; - -is(cnt(), 0, "No values yet"); -fails(add('not going to match')); -is(cnt(), 0, "No values yet"); -works(add('here is a good regex')); -is(cnt(), 1, "Value filled"); -fails(del('here is a good regex')); -is(cnt(), 1, "Single CF - Value _not_ deleted"); - -$cf->SetMaxValues(0); # Unlimited MaxValues - -works(del('here is a good regex')); -is(cnt(), 0, "Multiple CF - Value deleted"); - -fails($cf->SetPattern('(?{ "insert evil code here" })')); -works($cf->SetPattern('(?!)')); # reject everything -fails(add('')); -fails(add('...')); - -1; diff --git a/rt/lib/t/regression/17custom_search.t b/rt/lib/t/regression/17custom_search.t deleted file mode 100644 index 8e53f4486..000000000 --- a/rt/lib/t/regression/17custom_search.t +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/perl -w -use strict; - -use Test::More tests => 10; -BEGIN { - use RT; - RT::LoadConfig; - RT::Init; -} -use Test::WWW::Mechanize; - -use constant BaseURL => $RT::WebURL; - -# reset preferences for easier test? - -my $t = RT::Ticket->new($RT::SystemUser); -$t->Create(Subject => 'for custom search', Queue => 'general', - Owner => 'root', Requestor => 'customsearch@localhost'); -ok(my $id = $t->id, 'created ticket for custom search'); - -my $m = Test::WWW::Mechanize->new ( autocheck => 1 ); -isa_ok($m, 'Test::WWW::Mechanize'); - -$m->get( BaseURL."?user=root;pass=password" ); -$m->content_like(qr/Logout/, 'we did log in'); - -my $t_link = $m->find_link( text => "for custom search" ); -like ($t_link->url, qr/$id/, 'link to the ticket we created'); - -$m->content_lacks ('customsearch@localhost', 'requestor not displayed '); -$m->get ( BaseURL.'Prefs/MyRT.html' ); -my $cus_hp = $m->find_link( text => "My Tickets" ); -my $cus_qs = $m->find_link( text => "Quick search" ); -$m->get ($cus_hp); -$m->content_like (qr'highest priority tickets'); - -# add Requestor to the fields -$m->form_name ('BuildQuery'); -# can't use submit form for mutli-valued select as it uses set_fields -$m->field (SelectDisplayColumns => ['Requestors']); -$m->click_button (name => 'AddCol') ; - -$m->form_name ('BuildQuery'); -$m->click_button (name => 'Save'); - -$m->get( BaseURL ); -$m->content_contains ('customsearch@localhost', 'requestor now displayed '); - - -# now remove Requestor from the fields -$m->get ($cus_hp); - -$m->form_name ('BuildQuery'); -$m->field (CurrentDisplayColumns => 'Requestors'); -$m->click_button (name => 'RemoveCol') ; - -$m->form_name ('BuildQuery'); -$m->click_button (name => 'Save'); - -$m->get( BaseURL ); -$m->content_lacks ('customsearch@localhost', 'requestor not displayed '); - - -# try to disable General from quick search - -# Note that there's a small problem in the current implementation, -# since ticked quese are wanted, we do the invesrsion. So any -# queue added during the quicksearch setting will be unticked. -my $nlinks = $#{$m->find_all_links( text => "General" )}; -warn $nlinks; -$m->get ($cus_qs); -$m->form_name ('Preferences'); -$m->untick('Want-General', '1'); -$m->click_button (name => 'Save'); - -$m->get( BaseURL ); -is ($#{$m->find_all_links( text => "General" )}, $nlinks - 1, - 'General gone from quicksearch list'); - -# get it back -$m->get ($cus_qs); -$m->form_name ('Preferences'); -$m->tick('Want-General', '1'); -$m->click_button (name => 'Save'); - -$m->get( BaseURL ); -is ($#{$m->find_all_links( text => "General" )}, $nlinks, - 'General back in quicksearch list'); diff --git a/rt/lib/t/regression/18custom_frontpage.t b/rt/lib/t/regression/18custom_frontpage.t deleted file mode 100644 index cf77e35cc..000000000 --- a/rt/lib/t/regression/18custom_frontpage.t +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/perl -w -use strict; - -use Test::More tests => 7; -BEGIN { - use RT; - RT::LoadConfig; - RT::Init; -} -use Test::WWW::Mechanize; - -use constant BaseURL => $RT::WebURL; - - -my $user_obj = RT::User->new($RT::SystemUser); -my ($ret, $msg) = $user_obj->LoadOrCreateByEmail('customer@example.com'); -ok($ret, 'ACL test user creation'); -$user_obj->SetName('customer'); -$user_obj->SetPrivileged(1); -($ret, $msg) = $user_obj->SetPassword('customer'); -$user_obj->PrincipalObj->GrantRight(Right => 'LoadSavedSearch'); -$user_obj->PrincipalObj->GrantRight(Right => 'EditSavedSearch'); -$user_obj->PrincipalObj->GrantRight(Right => 'CreateSavedSearch'); -$user_obj->PrincipalObj->GrantRight(Right => 'ModifySelf'); - -my $m = Test::WWW::Mechanize->new ( autocheck => 1 ); -isa_ok($m, 'Test::WWW::Mechanize'); - -$m->get( BaseURL."?user=customer;pass=customer" ); - -$m->content_like(qr/Logout/, 'we did log in'); - -$m->get ( BaseURL."Search/Build.html"); - -#create a saved search -$m->form_name ('BuildQuery'); - -$m->field ( "ValueOfAttachment" => 'stupid'); -$m->field ( "Description" => 'stupid tickets'); -$m->click_button (name => 'Save'); - -$m->get ( BaseURL.'Prefs/MyRT.html' ); -$m->content_like (qr/stupid tickets/, 'saved search listed in rt at a glance items'); - -$m->follow_link (text => 'Logout'); - -$m->get( BaseURL."?user=root;pass=password" ); -$m->content_like(qr/Logout/, 'we did log in'); - -$m->get ( BaseURL.'Prefs/MyRT.html' ); -$m->form_name ('SelectionBox-body'); -# can't use submit form for mutli-valued select as it uses set_fields -$m->field ('body-Selected' => ['component-QuickCreate', 'system-Unowned Tickets', 'system-My Tickets']); -$m->click_button (name => 'remove'); -$m->form_name ('SelectionBox-body'); -#$m->click_button (name => 'body-Save'); -$m->get ( BaseURL ); -$m->content_lacks ('highest priority tickets', 'remove everything from body pane'); - -$m->get ( BaseURL.'Prefs/MyRT.html' ); -$m->form_name ('SelectionBox-body'); -$m->field ('body-Available' => ['component-QuickCreate', 'system-Unowned Tickets', 'system-My Tickets']); -$m->click_button (name => 'add'); - -$m->form_name ('SelectionBox-body'); -$m->field ('body-Selected' => ['component-QuickCreate']); -$m->click_button (name => 'movedown'); - -$m->form_name ('SelectionBox-body'); -$m->click_button (name => 'movedown'); - -$m->form_name ('SelectionBox-body'); -#$m->click_button (name => 'body-Save'); -$m->get ( BaseURL ); -$m->content_like (qr'highest priority tickets', 'adds them back'); diff --git a/rt/lib/t/regression/19quicksearch.t b/rt/lib/t/regression/19quicksearch.t deleted file mode 100644 index 7744787c0..000000000 --- a/rt/lib/t/regression/19quicksearch.t +++ /dev/null @@ -1,39 +0,0 @@ - -#!/usr/bin/perl -w - -use strict; -use warnings; - -use Test::More qw/no_plan/; -use_ok('RT'); -RT::LoadConfig(); -RT::Init(); - -my $q = RT::Queue->new($RT::SystemUser); -my $queue = 'SearchTests-'.$$; -$q->Create(Name => $queue); -ok ($q->id, "Created the queue"); - -my $t1 = RT::Ticket->new($RT::SystemUser); -my ( $id, undef, $msg ) = $t1->Create( - Queue => $q->id, - Subject => 'SearchTest1', - Requestor => ['search2@example.com'], -); -ok( $id, $msg ); - -use_ok("RT::Search::Googleish"); -my $tickets = RT::Tickets->new($RT::SystemUser); -my $quick = RT::Search::Googleish->new(Argument => "", - TicketsObj => $tickets); -my @tests = ( - "General new open root" => "( Owner = 'root' ) AND ( Queue = 'General' ) AND ( Status = 'new' OR Status = 'open' )", - "fulltext:jesse" => "( Content LIKE 'jesse' )", - $queue => "( Queue = '$queue' )", - "root $queue" => "( Owner = 'root' ) AND ( Queue = '$queue' )", - "notauser $queue" => "( Queue = '$queue' ) AND ( Subject LIKE 'notauser' )", - "notauser $queue root" => "( Owner = 'root' ) AND ( Queue = '$queue' ) AND ( Subject LIKE 'notauser' )"); - -while (my ($from, $to) = splice @tests, 0, 2) { - is($quick->QueryToSQL($from), $to, "<$from> -> <$to>"); -} diff --git a/rt/lib/t/regression/20-sort-by-requestor.t b/rt/lib/t/regression/20-sort-by-requestor.t deleted file mode 100644 index e6903b433..000000000 --- a/rt/lib/t/regression/20-sort-by-requestor.t +++ /dev/null @@ -1,143 +0,0 @@ -#!/usr/bin/perl -w -use strict; use warnings; - -use Test::More qw/no_plan/; -use_ok('RT'); -RT::LoadConfig(); -RT::Init(); -use RT::Ticket; - -my $q = RT::Queue->new($RT::SystemUser); -my $queue = 'SearchTests-'.rand(200); -$q->Create(Name => $queue); - -my @requestors = ( ('bravo@example.com') x 6, ('alpha@example.com') x 6, - ('delta@example.com') x 6, ('charlie@example.com') x 6, - (undef) x 6); -my @subjects = ("first test", "second test", "third test", "fourth test", "fifth test") x 6; -while (@requestors) { - my $t = RT::Ticket->new($RT::SystemUser); - my ( $id, undef $msg ) = $t->Create( - Queue => $q->id, - Subject => shift @subjects, - Requestor => [ shift @requestors ] - ); - ok( $id, $msg ); -} - -{ - my $tix = RT::Tickets->new($RT::SystemUser); - $tix->FromSQL("Queue = '$queue'"); - is($tix->Count, 30, "found thirty tickets"); -} - -{ - my $tix = RT::Tickets->new($RT::SystemUser); - $tix->FromSQL("Queue = '$queue' AND requestor = 'alpha\@example.com'"); - $tix->OrderByCols({ FIELD => "Subject" }); - my @subjects; - while (my $t = $tix->Next) { push @subjects, $t->Subject; } - is(@subjects, 6, "found six tickets"); - is_deeply( \@subjects, [ sort @subjects ], "Subjects are sorted"); -} - -sub check_emails_order -{ - my ($tix,$count,$order) = (@_); - my @mails; - while (my $t = $tix->Next) { push @mails, $t->RequestorAddresses; } - is(@mails, $count, "found $count tickets for ". $tix->Query); - my @required_order; - if( $order =~ /asc/i ) { - @required_order = sort { $a? ($b? ($a cmp $b) : -1) : 1} @mails; - } else { - @required_order = sort { $a? ($b? ($b cmp $a) : -1) : 1} @mails; - } - foreach( reverse splice @mails ) { - if( $_ ) { unshift @mails, $_ } - else { push @mails, $_ } - } - is_deeply( \@mails, \@required_order, "Addresses are sorted"); -} - -{ - my $tix = RT::Tickets->new($RT::SystemUser); - $tix->FromSQL("Queue = '$queue' AND subject = 'first test' AND Requestor.EmailAddress LIKE 'example.com'"); - $tix->OrderByCols({ FIELD => "Requestor.EmailAddress" }); - check_emails_order($tix, 5, 'ASC'); - $tix->OrderByCols({ FIELD => "Requestor.EmailAddress", ORDER => 'DESC' }); - check_emails_order($tix, 5, 'DESC'); -} - -{ - my $tix = RT::Tickets->new($RT::SystemUser); - $tix->FromSQL("Queue = '$queue' AND Subject = 'first test'"); - $tix->OrderByCols({ FIELD => "Requestor.EmailAddress" }); - check_emails_order($tix, 6, 'ASC'); - $tix->OrderByCols({ FIELD => "Requestor.EmailAddress", ORDER => 'DESC' }); - check_emails_order($tix, 6, 'DESC'); -} - - -{ - my $tix = RT::Tickets->new($RT::SystemUser); - $tix->FromSQL("Queue = '$queue' AND Subject = 'first test'"); - $tix->OrderByCols({ FIELD => "Requestor.EmailAddress" }); - check_emails_order($tix, 6, 'ASC'); - $tix->OrderByCols({ FIELD => "Requestor.EmailAddress", ORDER => 'DESC' }); - check_emails_order($tix, 6, 'DESC'); -} - -{ - # create ticket with group as member of the requestors group - my $t = RT::Ticket->new($RT::SystemUser); - my ( $id, $msg ) = $t->Create( - Queue => $q->id, - Subject => "first test", - Requestor => 'badaboom@example.com', - ); - ok( $id, "ticket created" ) or diag( "error: $msg" ); - - my $g = RT::Group->new($RT::SystemUser); - - my ($gid); - ($gid, $msg) = $g->CreateUserDefinedGroup(Name => '20-sort-by-requestor.t-'.rand(200)); - ok($gid, "created group") or diag("error: $msg"); - - ($id, $msg) = $t->Requestors->AddMember( $gid ); - ok($id, "added group to requestors group") or diag("error: $msg"); -} - - my $tix = RT::Tickets->new($RT::SystemUser); - $tix->FromSQL("Queue = '$queue' AND Subject = 'first test'"); -TODO: { - local $TODO = "if group has non users members we get wrong order"; - $tix->OrderByCols({ FIELD => "Requestor.EmailAddress" }); - check_emails_order($tix, 7, 'ASC'); -} - $tix->OrderByCols({ FIELD => "Requestor.EmailAddress", ORDER => 'DESC' }); - check_emails_order($tix, 7, 'DESC'); - -{ - my $tix = RT::Tickets->new($RT::SystemUser); - $tix->FromSQL("Queue = '$queue'"); - $tix->OrderByCols({ FIELD => "Requestor.EmailAddress" }); - $tix->RowsPerPage(30); - my @mails; - while (my $t = $tix->Next) { push @mails, $t->RequestorAddresses; } - is(@mails, 30, "found thirty tickets"); - is_deeply( [grep {$_} @mails], [ sort grep {$_} @mails ], "Paging works (exclude nulls, which are db-dependant)"); -} - -{ - my $tix = RT::Tickets->new($RT::SystemUser); - $tix->FromSQL("Queue = '$queue'"); - $tix->OrderByCols({ FIELD => "Requestor.EmailAddress" }); - $tix->RowsPerPage(30); - my @mails; - while (my $t = $tix->Next) { push @mails, $t->RequestorAddresses; } - is(@mails, 30, "found thirty tickets"); - is_deeply( [grep {$_} @mails], [ sort grep {$_} @mails ], "Paging works (exclude nulls, which are db-dependant)"); -} - -# vim:ft=perl: diff --git a/rt/lib/t/regression/23-batch-upload-csv.t b/rt/lib/t/regression/23-batch-upload-csv.t deleted file mode 100644 index fc9436a20..000000000 --- a/rt/lib/t/regression/23-batch-upload-csv.t +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/perl -w -use strict; use warnings; - -use Test::More qw/no_plan/; -use_ok('RT'); -RT::LoadConfig(); -RT::Init(); -use_ok('RT::Action::CreateTickets'); - -my $QUEUE = 'uploadtest-'.$$; - -my $queue_obj = RT::Queue->new($RT::SystemUser); -$queue_obj->Create(Name => $QUEUE); - -my $cf = RT::CustomField->new($RT::SystemUser); -my ($val,$msg) = $cf->Create(Name => 'Work Package-'.$$, Type => 'Freeform', LookupType => RT::Ticket->CustomFieldLookupType, MaxValues => 1); -ok($cf->id); -ok($val,$msg); -($val, $msg) = $cf->AddToObject($queue_obj); -ok($val,$msg); -ok($queue_obj->TicketCustomFields()->Count, "We have a custom field, at least"); - - -my $data = <<EOF; -id,Queue,Subject,Status,Requestor,@{[$cf->Name]} -create-1,$QUEUE,hi,new,root,2.0 -create-2,$QUEUE,hello,new,root,3.0 -EOF - -my $action = RT::Action::CreateTickets->new(CurrentUser => RT::CurrentUser->new('root')); -ok ($action->CurrentUser->id , "WE have a current user"); - -$action->Parse(Content => $data); -my @results = $action->CreateByTemplate(); - -my $tix = RT::Tickets->new($RT::SystemUser); -$tix->FromSQL ("Queue = '". $QUEUE."'"); -$tix->OrderBy( FIELD => 'id', ORDER => 'ASC' ); -ok($tix->Count); -my $first = $tix->First(); -is($first->Subject(), 'hi'); -is($first->FirstCustomFieldValue($cf->id), '2.0'); - -my $second = $tix->Next; -is($second->Subject(), 'hello'); -is($second->FirstCustomFieldValue($cf->id), '3.0'); -1; diff --git a/rt/lib/t/regression/23cfsort.t b/rt/lib/t/regression/23cfsort.t deleted file mode 100644 index e90fa36b2..000000000 --- a/rt/lib/t/regression/23cfsort.t +++ /dev/null @@ -1,143 +0,0 @@ -#!/usr/bin/perl - -use Test::More tests => 15; -use RT; -RT::LoadConfig(); -RT::Init(); - -use strict; -use warnings; - -use RT::Tickets; -use RT::Queue; -use RT::CustomField; - -my($ret,$msg); - - -# Test Sorting by custom fields. - -# ---- Create a queue to test with. -my $queue = "CFSortQueue-$$"; -my $queue_obj = RT::Queue->new($RT::SystemUser); -($ret, $msg) = $queue_obj->Create(Name => $queue, - Description => 'queue for custom field sort testing'); -ok($ret, "$queue test queue creation. $msg"); - -# ---- Create some custom fields. We're not currently using all of -# them to test with, but the more the merrier. -my $cfO = RT::CustomField->new($RT::SystemUser); -my $cfA = RT::CustomField->new($RT::SystemUser); -my $cfB = RT::CustomField->new($RT::SystemUser); -my $cfC = RT::CustomField->new($RT::SystemUser); - -($ret, $msg) = $cfO->Create( Name => 'Order', - Queue => 0, - SortOrder => 1, - Description => q[Something to compare results for, since we can't guarantee ticket ID], - Type=> 'FreeformSingle'); -ok($ret, "Custom Field Order created"); - -($ret, $msg) = $cfA->Create( Name => 'Alpha', - Queue => $queue_obj->id, - SortOrder => 1, - Description => 'A Testing custom field', - Type=> 'FreeformSingle'); -ok($ret, "Custom Field Alpha created"); - -($ret, $msg) = $cfB->Create( Name => 'Beta', - Queue => $queue_obj->id, - Description => 'A Testing custom field', - Type=> 'FreeformSingle'); -ok($ret, "Custom Field Beta created"); - -($ret, $msg) = $cfC->Create( Name => 'Charlie', - Queue => $queue_obj->id, - Description => 'A Testing custom field', - Type=> 'FreeformSingle'); -ok($ret, "Custom Field Charlie created"); - -# ----- Create some tickets to test with. Assign them some values to -# make it easy to sort with. -my $t1 = RT::Ticket->new($RT::SystemUser); -$t1->Create( Queue => $queue_obj->Id, - Subject => 'One', - ); -$t1->AddCustomFieldValue(Field => $cfO->Id, Value => '1'); -$t1->AddCustomFieldValue(Field => $cfA->Id, Value => '2'); -$t1->AddCustomFieldValue(Field => $cfB->Id, Value => '1'); -$t1->AddCustomFieldValue(Field => $cfC->Id, Value => 'BBB'); - -my $t2 = RT::Ticket->new($RT::SystemUser); -$t2->Create( Queue => $queue_obj->Id, - Subject => 'Two', - ); -$t2->AddCustomFieldValue(Field => $cfO->Id, Value => '2'); -$t2->AddCustomFieldValue(Field => $cfA->Id, Value => '1'); -$t2->AddCustomFieldValue(Field => $cfB->Id, Value => '2'); -$t2->AddCustomFieldValue(Field => $cfC->Id, Value => 'AAA'); - -# helper -sub check_order { - my ($tx, @order) = @_; - my @results; - while (my $t = $tx->Next) { - push @results, $t->CustomFieldValues($cfO->Id)->First->Content; - } - my $results = join (" ",@results); - my $order = join(" ",@order); - is( $results, $order , "Ordered correctly: $order"); -} - -# The real tests start here -my $tx = new RT::Tickets( $RT::SystemUser ); - - -# Make sure we can sort in both directions on a queue specific field. -$tx->FromSQL(qq[queue="$queue"] ); -$tx->OrderBy( FIELD => "CF.${queue}.{Charlie}", ORDER => 'DES' ); -is($tx->Count,2 ,"We found 2 tickets when lookign for cf charlie"); -check_order( $tx, 1, 2); - -$tx = new RT::Tickets( $RT::SystemUser ); -$tx->FromSQL(qq[queue="$queue"] ); -$tx->OrderBy( FIELD => "CF.${queue}.{Charlie}", ORDER => 'ASC' ); -is($tx->Count,2, "We found two tickets when sorting by cf charlie without limiting to it" ); -check_order( $tx, 2, 1); - -# When ordering by _global_ CustomFields, if more than one queue has a -# CF named Charlie, things will go bad. So, these results are uniqued -# in Tickets_Overlay. -$tx = new RT::Tickets( $RT::SystemUser ); -$tx->FromSQL(qq[queue="$queue"] ); -$tx->OrderBy( FIELD => "CF.{Charlie}", ORDER => 'DES' ); -is($tx->Count,2); -check_order( $tx, 1, 2); - -# Add a new ticket, to test sorting on multiple columns. -my $t3 = RT::Ticket->new($RT::SystemUser); -$t3->Create( Queue => $queue_obj->Id, - Subject => 'Three', - ); -$t3->AddCustomFieldValue(Field => $cfO->Id, Value => '3'); -$t3->AddCustomFieldValue(Field => $cfA->Id, Value => '3'); -$t3->AddCustomFieldValue(Field => $cfB->Id, Value => '2'); -$t3->AddCustomFieldValue(Field => $cfC->Id, Value => 'AAA'); - -$tx = new RT::Tickets( $RT::SystemUser ); -$tx->FromSQL(qq[queue="$queue"] ); -$tx->OrderByCols({FIELD => "CF.${queue}.{Charlie}", ORDER => 'ASC'}, - {FIELD => "CF.${queue}.{Alpha}", ORDER => 'DES'} - ); -is($tx->Count,3); -check_order( $tx, 3, 2, 1); - -# Reverse the order of the secondary column, which changes the order -# of the first two tickets. -$tx = new RT::Tickets( $RT::SystemUser ); -$tx->FromSQL(qq[queue="$queue"] ); -$tx->OrderByCols({FIELD => "CF.${queue}.{Charlie}", ORDER => 'ASC'}, - {FIELD => "CF.${queue}.{Alpha}", ORDER => 'ASC'} - ); -is($tx->Count,3); -check_order( $tx, 2, 3, 1); diff --git a/rt/lib/t/regression/24pawsort.t b/rt/lib/t/regression/24pawsort.t deleted file mode 100644 index 665c325a6..000000000 --- a/rt/lib/t/regression/24pawsort.t +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/perl - -use Test::More qw/no_plan/; -use RT; -RT::LoadConfig(); -RT::Init(); - -use strict; -use warnings; - -use RT::Tickets; -use RT::Queue; -use RT::CustomField; - -my($ret,$msg); - -# Test Paw Sort - - - -# ---- Create a queue to test with. -my $queue = "PAWSortQueue-$$"; -my $queue_obj = RT::Queue->new($RT::SystemUser); -($ret, $msg) = $queue_obj->Create(Name => $queue, - Description => 'queue for custom field sort testing'); -ok($ret, "$queue test queue creation. $msg"); - - -# ---- Create some users - -my $me = RT::User->new($RT::SystemUser); -($ret, $msg) = $me->Create(Name => "Me$$", EmailAddress => $$.'create-me-1@example.com'); -($ret, $msg) = $me->PrincipalObj->GrantRight(Object =>$queue_obj, Right => 'OwnTicket'); -($ret, $msg) = $me->PrincipalObj->GrantRight(Object =>$queue_obj, Right => 'SeeQueue'); -($ret, $msg) = $me->PrincipalObj->GrantRight(Object =>$queue_obj, Right => 'ShowTicket'); -my $you = RT::User->new($RT::SystemUser); -($ret, $msg) = $you->Create(Name => "You$$", EmailAddress => $$.'create-you-1@example.com'); -($ret, $msg) = $you->PrincipalObj->GrantRight(Object =>$queue_obj, Right => 'OwnTicket'); -($ret, $msg) = $you->PrincipalObj->GrantRight(Object =>$queue_obj, Right => 'SeeQueue'); -($ret, $msg) = $you->PrincipalObj->GrantRight(Object =>$queue_obj, Right => 'ShowTicket'); - -my $nobody = RT::User->new($RT::SystemUser); -$nobody->Load('nobody'); - - -# ----- Create some tickets to test with. Assign them some values to -# make it easy to sort with. - -my @tickets = ( - [qw[1 10], $me], - [qw[2 20], $me], - [qw[3 20], $you], - [qw[4 30], $you], - [qw[5 5], $nobody], - [qw[6 55], $nobody], - ); -for (@tickets) { - my $t = RT::Ticket->new($RT::SystemUser); - $t->Create( Queue => $queue_obj->Id, - Subject => $_->[0], - Owner => $_->[2]->Id, - Priority => $_->[1], - ); -} - -sub check_order { - my ($tx, @order) = @_; - my @results; - while (my $t = $tx->Next) { - push @results, $t->Subject; - } - my $results = join (" ",@results); - my $order = join(" ",@order); - is( $results, $order ); -} - - -# The real tests start here - -my $cme = new RT::CurrentUser( $me ); -my $metx = new RT::Tickets( $cme ); -# Make sure we can sort in both directions on a queue specific field. -$metx->FromSQL(qq[queue="$queue"] ); -$metx->OrderBy( FIELD => "Custom.Ownership", ORDER => 'ASC' ); -is($metx->Count,6); -check_order( $metx, qw[2 1 6 5 4 3]); - -$metx->OrderBy( FIELD => "Custom.Ownership", ORDER => 'DESC' ); -is($metx->Count,6); -check_order( $metx, reverse qw[2 1 6 5 4 3]); - - - -my $cyou = new RT::CurrentUser( $you ); -my $youtx = new RT::Tickets( $cyou ); -# Make sure we can sort in both directions on a queue specific field. -$youtx->FromSQL(qq[queue="$queue"] ); -$youtx->OrderBy( FIELD => "Custom.Ownership", ORDER => 'ASC' ); -is($youtx->Count,6); -check_order( $youtx, qw[4 3 6 5 2 1]); - -__END__ - - diff --git a/rt/lib/t/regression/25scrip_order.t b/rt/lib/t/regression/25scrip_order.t deleted file mode 100644 index 0e11989e6..000000000 --- a/rt/lib/t/regression/25scrip_order.t +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use Test::More tests => 7; - -use RT; -RT::LoadConfig(); -RT::Init; - -# {{{ test scrip ordering based on description - -my $scrip_queue = RT::Queue->new($RT::SystemUser); -my ($queue_id, $msg) = $scrip_queue->Create( Name => "ScripOrdering-$$", - Description => 'Test scrip ordering by description' ); -ok($queue_id, "Created scrip-ordering test queue? ".$msg); - -my $priority_ten_scrip = RT::Scrip->new($RT::SystemUser); -(my $id, $msg) = $priority_ten_scrip->Create( - Description => "10 set priority $$", - Queue => $queue_id, - ScripCondition => 'On Create', - ScripAction => 'User Defined', - CustomPrepareCode => '$RT::Logger->debug("Setting priority to 10..."); return 1;', - CustomCommitCode => '$self->TicketObj->SetPriority(10);', - Template => 'Blank', - Stage => 'TransactionCreate', -); -ok($id, "Created priority-10 scrip? ".$msg); - -my $priority_five_scrip = RT::Scrip->new($RT::SystemUser); -($id, $msg) = $priority_ten_scrip->Create( - Description => "05 set priority $$", - Queue => $queue_id, - ScripCondition => 'On Create', - ScripAction => 'User Defined', - CustomPrepareCode => '$RT::Logger->debug("Setting priority to 5..."); return 1;', - CustomCommitCode => '$self->TicketObj->SetPriority(5);', - Template => 'Blank', - Stage => 'TransactionCreate', -); -ok($id, "Created priority-5 scrip? ".$msg); - -my $ticket = RT::Ticket->new($RT::SystemUser); -($id, $msg) = $ticket->Create( - Queue => $queue_id, - Requestor => 'order@example.com', - Subject => "Scrip order test $$", -); -ok($ticket->id, "Created ticket? id=$id"); - -ok($ticket->Priority != 0, "Ticket shouldn't be priority 0"); -ok($ticket->Priority != 5, "Ticket shouldn't be priority 5"); -ok($ticket->Priority == 10, "Ticket should be priority 10"); - -# }}} - -1; diff --git a/rt/lib/t/regression/26command_line.t b/rt/lib/t/regression/26command_line.t deleted file mode 100644 index 841e2d1c2..000000000 --- a/rt/lib/t/regression/26command_line.t +++ /dev/null @@ -1,415 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use Test::Expect; -#use Test::More qw/no_plan/; -use Test::More tests => 202; - -use RT; -RT::LoadConfig(); -RT::Init; - -use RT::User; -use RT::Queue; - -my $rt_tool_path = "$RT::BinPath/rt"; - -# {{{ test configuration options - -# config directives: -# (in $CWD/.rtrc) -# - server <URL> URL to RT server. -# - user <username> RT username. -# - passwd <passwd> RT user's password. -# - query <RT Query> Default RT Query for list action -# - orderby <order> Default RT order for list action -# -# Blank and #-commented lines are ignored. - -# environment variables -# The following environment variables override any corresponding -# values defined in configuration files: -# -# - RTUSER -$ENV{'RTUSER'} = 'root'; -# - RTPASSWD -$ENV{'RTPASSWD'} = 'password'; -# - RTSERVER -$RT::Logger->debug("Connecting to server at $RT::WebBaseURL..."); -$ENV{'RTSERVER'} = $RT::WebBaseURL; -# - RTDEBUG Numeric debug level. (Set to 3 for full logs.) -$ENV{'RTDEBUG'} = '1'; -# - RTCONFIG Specifies a name other than ".rtrc" for the -# configuration file. -# -# - RTQUERY Default RT Query for rt list -# - RTORDERBY Default order for rt list - - -# }}} - -# {{{ test ticket manipulation - -# create a ticket -expect_run( - command => "$rt_tool_path shell", - prompt => 'rt> ', - quit => 'quit', -); -expect_send(q{create -t ticket set subject='new ticket' add cc=foo@example.com}, "Creating a ticket..."); -expect_like(qr/Ticket \d+ created/, "Created the ticket"); -expect_handle->before() =~ /Ticket (\d+) created/; -my $ticket_id = $1; -ok($ticket_id, "Got ticket id=$ticket_id"); -expect_send(q{create -t ticket set subject='new ticket'}, "Creating a ticket as just a subject..."); -expect_like(qr/Ticket \d+ created/, "Created the ticket"); - -# make sure we can request things as 'rt foo' -expect_send(q{rt create -t ticket set subject='rt ticket'}, "Creating a ticket with 'rt create'..."); -expect_like(qr/Ticket \d+ created/, "Created the ticket"); - -# {{{ test queue manipulation - -# creating queues -expect_send("create -t queue set Name='NewQueue$$'", 'Creating a queue...'); -expect_like(qr/Queue \d+ created/, 'Created the queue'); -expect_handle->before() =~ /Queue (\d+) created/; -my $queue_id = $1; -ok($queue_id, "Got queue id=$queue_id"); -# updating users -expect_send("edit queue/$queue_id set Name='EditedQueue$$'", 'Editing the queue'); -expect_like(qr/Queue $queue_id updated/, 'Edited the queue'); -expect_send("show queue/$queue_id", 'Showing the queue...'); -expect_like(qr/id: queue\/$queue_id/, 'Saw the queue'); -expect_like(qr/Name: EditedQueue$$/, 'Saw the modification'); -TODO: { - todo_skip "Listing non-ticket items doesn't work", 2; - expect_send("list -t queue 'id > 0'", 'Listing the queues...'); - expect_like(qr/$queue_id: EditedQueue$$/, 'Found the queue'); -} - -# }}} - -# add a comment to ticket - expect_send("comment -m 'comment-$$' $ticket_id", "Adding a comment..."); - expect_like(qr/Message recorded/, "Added the comment"); - ### should test to make sure it actually got added - # add correspondance to ticket (?) - expect_send("correspond -m 'correspond-$$' $ticket_id", "Adding correspondence..."); - expect_like(qr/Message recorded/, "Added the correspondence"); - ### should test to make sure it actually got added - - # add attachments to a ticket - # text attachment - check_attachment("$RT::BasePath/lib/t/data/lorem-ipsum"); - # binary attachment - check_attachment($RT::MasonComponentRoot.'/NoAuth/images/bplogo.gif'); - -# change a ticket's Owner -expect_send("edit ticket/$ticket_id set owner=root", 'Changing owner...'); -expect_like(qr/Ticket $ticket_id updated/, 'Changed owner'); -expect_send("show ticket/$ticket_id -f owner", 'Verifying change...'); -expect_like(qr/Owner: root/, 'Verified change'); -# change a ticket's Requestor -expect_send("edit ticket/$ticket_id set requestors=foo\@example.com", 'Changing Requestor...'); -expect_like(qr/Ticket $ticket_id updated/, 'Changed Requestor'); -expect_send("show ticket/$ticket_id -f requestors", 'Verifying change...'); -expect_like(qr/Requestors: foo\@example.com/, 'Verified change'); -# change a ticket's Cc -expect_send("edit ticket/$ticket_id set cc=bar\@example.com", 'Changing Cc...'); -expect_like(qr/Ticket $ticket_id updated/, 'Changed Cc'); -expect_send("show ticket/$ticket_id -f cc", 'Verifying change...'); -expect_like(qr/Cc: bar\@example.com/, 'Verified change'); -# change a ticket's priority -expect_send("edit ticket/$ticket_id set priority=10", 'Changing priority...'); -expect_like(qr/Ticket $ticket_id updated/, 'Changed priority'); -expect_send("show ticket/$ticket_id -f priority", 'Verifying change...'); -expect_like(qr/Priority: 10/, 'Verified change'); -# move a ticket to a different queue -expect_send("edit ticket/$ticket_id set queue=EditedQueue$$", 'Changing queue...'); -expect_like(qr/Ticket $ticket_id updated/, 'Changed queue'); -expect_send("show ticket/$ticket_id -f queue", 'Verifying change...'); -expect_like(qr/Queue: EditedQueue$$/, 'Verified change'); -# cannot move ticket to a nonexistent queue -expect_send("edit ticket/$ticket_id set queue=nonexistent-$$", 'Changing to nonexistent queue...'); -expect_like(qr/queue does not exist/i, 'Errored out'); -expect_send("show ticket/$ticket_id -f queue", 'Verifying lack of change...'); -expect_like(qr/Queue: EditedQueue$$/, 'Verified lack of change'); -# ... -# change a ticket's ...[other properties]... -# ... -# stall a ticket -expect_send("edit ticket/$ticket_id set status=stalled", 'Changing status to "stalled"...'); -expect_like(qr/Ticket $ticket_id updated/, 'Changed status'); -expect_send("show ticket/$ticket_id -f status", 'Verifying change...'); -expect_like(qr/Status: stalled/, 'Verified change'); -# resolve a ticket -expect_send("edit ticket/$ticket_id set status=resolved", 'Changing status to "resolved"...'); -expect_like(qr/Ticket $ticket_id updated/, 'Changed status'); -expect_send("show ticket/$ticket_id -f status", 'Verifying change...'); -expect_like(qr/Status: resolved/, 'Verified change'); -# try to set status to an illegal value -expect_send("edit ticket/$ticket_id set status=quux", 'Changing status to an illegal value...'); -expect_like(qr/illegal value/i, 'Errored out'); -expect_send("show ticket/$ticket_id -f status", 'Verifying lack of change...'); -expect_like(qr/Status: resolved/, 'Verified change'); - -# }}} - -# {{{ display - -# show ticket list -expect_send("ls -s -t ticket -o +id \"Status='resolved'\"", 'Listing resolved tickets...'); -expect_like(qr/$ticket_id: new ticket/, 'Found our ticket'); -# show ticket list verbosely -expect_send("ls -l -t ticket -o +id \"Status='resolved'\"", 'Listing resolved tickets verbosely...'); -expect_like(qr/id: ticket\/$ticket_id/, 'Found our ticket'); -# show ticket -expect_send("show -t ticket $ticket_id", 'Showing our ticket...'); -expect_like(qr/id: ticket\/$ticket_id/, 'Got our ticket'); -# show ticket history -expect_send("show ticket/$ticket_id/history", 'Showing our ticket\'s history...'); -expect_like(qr/Ticket created by root/, 'Got our history'); -TODO: { - local $TODO = "Cannot show verbose ticket history right now"; - # show ticket history verbosely - expect_send("show -v ticket/$ticket_id/history", 'Showing our ticket\'s history verbosely...'); - expect_like(qr/Ticket created by root/, 'Got our history'); -} -# get attachments from a ticket -expect_send("show ticket/$ticket_id/attachments", 'Showing ticket attachments...'); -expect_like(qr/id: ticket\/$ticket_id\/attachments/, 'Got our ticket\'s attachments'); -expect_like(qr/Attachments: \d+:\s*\(\S+ \/ \d+\w+\)/, 'Our ticket has an attachment'); -expect_handle->before() =~ /Attachments: (\d+):\s*\((\S+)/; -my $attachment_id = $1; -my $attachment_type = $2; -ok($attachment_id, "Got attachment id=$attachment_id $attachment_type"); -expect_send("show ticket/$ticket_id/attachments/$attachment_id", "Showing attachment $attachment_id..."); -expect_like(qr/ContentType: $attachment_type/, 'Got the attachment'); - -# }}} - -# {{{ test user manipulation - -# creating users -expect_send("create -t user set Name='NewUser$$' EmailAddress='fbar$$\@example.com'", 'Creating a user...'); -expect_like(qr/User \d+ created/, 'Created the user'); -expect_handle->before() =~ /User (\d+) created/; -my $user_id = $1; -ok($user_id, "Got user id=$user_id"); -# updating users -expect_send("edit user/$user_id set Name='EditedUser$$'", 'Editing the user'); -expect_like(qr/User $user_id updated/, 'Edited the user'); -expect_send("show user/$user_id", 'Showing the user...'); -expect_like(qr/id: user\/$user_id/, 'Saw the user'); -expect_like(qr/Name: EditedUser$$/, 'Saw the modification'); -TODO: { - todo_skip "Listing non-ticket items doesn't work", 2; - expect_send("list -t user 'id > 0'", 'Listing the users...'); - expect_like(qr/$user_id: EditedUser$$/, 'Found the user'); -} - -# }}} - -# {{{ test group manipulation - -TODO: { -todo_skip "Group manipulation doesn't work right now", 8; -# creating groups -expect_send("create -t group set Name='NewGroup$$'", 'Creating a group...'); -expect_like(qr/Group \d+ created/, 'Created the group'); -expect_handle->before() =~ /Group (\d+) created/; -my $group_id = $1; -ok($group_id, "Got group id=$group_id"); -# updating groups -expect_send("edit group/$group_id set Name='EditedGroup$$'", 'Editing the group'); -expect_like(qr/Group $group_id updated/, 'Edited the group'); -expect_send("show group/$group_id", 'Showing the group...'); -expect_like(qr/id: group\/$group_id/, 'Saw the group'); -expect_like(qr/Name: EditedGroup$$/, 'Saw the modification'); -TODO: { - local $TODO = "Listing non-ticket items doesn't work"; - expect_send("list -t group 'id > 0'", 'Listing the groups...'); - expect_like(qr/$group_id: EditedGroup$$/, 'Found the group'); -} -} - -# }}} - -TODO: { -todo_skip "Custom field manipulation not yet implemented", 8; -# {{{ test custom field manipulation - -# creating custom fields -expect_send("create -t custom_field set Name='NewCF$$'", 'Creating a custom field...'); -expect_like(qr/Custom Field \d+ created/, 'Created the custom field'); -expect_handle->before() =~ /Custom Field (\d+) created/; -my $cf_id = $1; -ok($cf_id, "Got custom field id=$cf_id"); -# updating custom fields -expect_send("edit cf/$cf_id set Name='EditedCF$$'", 'Editing the custom field'); -expect_like(qr/Custom field $cf_id updated/, 'Edited the custom field'); -expect_send("show cf/$cf_id", 'Showing the queue...'); -expect_like(qr/id: custom_field\/$cf_id/, 'Saw the custom field'); -expect_like(qr/Name: EditedCF$$/, 'Saw the modification'); -TODO: { - todo_skip "Listing non-ticket items doesn't work", 2; - expect_send("list -t custom_field 'id > 0'", 'Listing the CFs...'); - expect_like(qr/$cf_id: EditedCF$$/, 'Found the custom field'); -} -} - -# }}} - -# {{{ test merging tickets -expect_send("create -t ticket set subject='CLIMergeTest1-$$'", 'Creating first ticket to merge...'); -expect_like(qr/Ticket \d+ created/, 'Created first ticket'); -expect_handle->before() =~ /Ticket (\d+) created/; -my $merge_ticket_A = $1; -ok($merge_ticket_A, "Got first ticket to merge id=$merge_ticket_A"); -expect_send("create -t ticket set subject='CLIMergeTest2-$$'", 'Creating second ticket to merge...'); -expect_like(qr/Ticket \d+ created/, 'Created second ticket'); -expect_handle->before() =~ /Ticket (\d+) created/; -my $merge_ticket_B = $1; -ok($merge_ticket_B, "Got second ticket to merge id=$merge_ticket_B"); -expect_send("merge $merge_ticket_B $merge_ticket_A", 'Merging the tickets...'); -expect_like(qr/Merge completed/, 'Merged the tickets'); -expect_send("show ticket/$merge_ticket_A/history", 'Checking merge on first ticket'); -expect_like(qr/Merged into ticket #$merge_ticket_A by root/, 'Merge recorded in first ticket'); -expect_send("show ticket/$merge_ticket_B/history", 'Checking merge on second ticket'); -expect_like(qr/Merged into ticket #$merge_ticket_A by root/, 'Merge recorded in second ticket'); -# }}} - -# {{{ test taking/stealing tickets -{ - # create a user; give them privileges to take and steal - ### TODO: implement 'grant' in the CLI tool; use that here instead. - ### this breaks the abstraction barrier, like, a lot. - my $steal_user = RT::User->new($RT::SystemUser); - my ($steal_user_id, $msg) = $steal_user->Create( Name => "fooser$$", - EmailAddress => "fooser$$\@localhost", - Privileged => 1, - Password => 'foobar', - ); - ok($steal_user_id, "Created the user? $msg"); - my $steal_queue = RT::Queue->new($RT::SystemUser); - my $steal_queue_id; - ($steal_queue_id, $msg) = $steal_queue->Create( Name => "Steal$$" ); - ok($steal_queue_id, "Got the queue? $msg"); - ok($steal_queue->id, "queue obj has id"); - my $status; - ($status, $msg) = $steal_user->PrincipalObj->GrantRight( Right => 'ShowTicket', Object => $steal_queue ); - ok($status, "Gave 'SeeTicket' to our user? $msg"); - ($status, $msg) = $steal_user->PrincipalObj->GrantRight( Right => 'OwnTicket', Object => $steal_queue ); - ok($status, "Gave 'OwnTicket' to our user? $msg"); - ($status, $msg) = $steal_user->PrincipalObj->GrantRight( Right => 'StealTicket', Object => $steal_queue ); - ok($status, "Gave 'StealTicket' to our user? $msg"); - ($status, $msg) = $steal_user->PrincipalObj->GrantRight( Right => 'TakeTicket', Object => $steal_queue ); - ok($status, "Gave 'TakeTicket' to our user? $msg"); - - # create a ticket to take/steal - expect_send("create -t ticket set queue=$steal_queue_id subject='CLIStealTest-$$'", 'Creating ticket to steal...'); - expect_like(qr/Ticket \d+ created/, 'Created ticket'); - expect_handle->before() =~ /Ticket (\d+) created/; - my $steal_ticket_id = $1; - ok($steal_ticket_id, "Got ticket to steal id=$steal_ticket_id"); - - # root takes the ticket - expect_send("take $steal_ticket_id", 'root takes the ticket...'); - expect_like(qr/Owner changed from Nobody to root/, 'root took the ticket'); - - # log in as the non-root user - #expect_quit(); # this is apparently unnecessary, but I'll leave it in - # until I'm sure - $ENV{'RTUSER'} = "fooser$$"; - $ENV{'RTPASSWD'} = 'foobar'; - expect_run( command => "$rt_tool_path shell", prompt => 'rt> ', quit => 'quit',); - - # user tries to take the ticket, fails - # shouldn't be able to 'take' a ticket which someone else has taken out from - # under you; that should produce an error. should have to explicitly - # 'steal' it back from them. 'steal' can automatically 'take' a ticket, - # though. - expect_send("take $steal_ticket_id", 'user tries to take the ticket...'); - expect_like(qr/You can only take tickets that are unowned/, '...and fails.'); - expect_send("show ticket/$steal_ticket_id -f owner", 'Double-checking...'); - expect_like(qr/Owner: root/, '...no change.'); - - # user steals the ticket - expect_send("steal $steal_ticket_id", 'user tries to *steal* the ticket...'); - expect_like(qr/Owner changed from root to fooser$$/, '...and succeeds!'); - expect_send("show ticket/$steal_ticket_id -f owner", 'Double-checking...'); - expect_like(qr/Owner: fooser$$/, '...yup, it worked.'); - - # log back in as root - #expect_quit(); # ditto - $ENV{'RTUSER'} = 'root'; - $ENV{'RTPASSWD'} = 'password'; - expect_run( command => "$rt_tool_path shell", prompt => 'rt> ', quit => 'quit',); - - # root steals the ticket back - expect_send("steal $steal_ticket_id", 'root steals the ticket back...'); - expect_like(qr/Owner changed from fooser$$ to root/, '...and succeeds.'); -} -# }}} - -# {{{ test ticket linking - my @link_relns = ( 'DependsOn', 'DependedOnBy', 'RefersTo', 'ReferredToBy', - 'MemberOf', 'HasMember', ); - my %display_relns = map { $_ => $_ } @link_relns; - $display_relns{HasMember} = 'Members'; - - my $link1_id = ok_create_ticket( "LinkTicket1-$$" ); - my $link2_id = ok_create_ticket( "LinkTicket2-$$" ); - - foreach my $reln (@link_relns) { - # create link - expect_send("link $link1_id $reln $link2_id", "Link by $reln..."); - expect_like(qr/Created link $link1_id $reln $link2_id/, 'Linked'); - expect_send("show ticket/$link1_id/links", "Checking creation of $reln..."); - expect_like(qr/$display_relns{reln}: [\w\d\.\-]+:\/\/[\w\d\.]+\/ticket\/$link2_id/, "Created link $reln"); - - # delete link - expect_send("link -d $link1_id $reln $link2_id", "Delete $reln..."); - expect_like(qr/Deleted link $link1_id $reln $link2_id/, 'Deleted'); - expect_send("show ticket/$link1_id/links", "Checking removal of $reln..."); - ok( expect_handle->before() !~ /\Q$display_relns{$reln}: \E[\w\d\.\-]+:\/\/[w\d\.]+\/ticket\/$link2_id/, "Removed link $reln" ); - #expect_unlike(qr/\Q$reln: \E[\w\d\.]+\Q://\E[w\d\.]+\/ticket\/$link2_id/, "Removed link $reln"); - - } -# }}} - - -# helper function -sub ok_create_ticket { - my $subject = shift; - - expect_send("create -t ticket set subject='$subject'", 'Creating ticket...'); - expect_like(qr/Ticket \d+ created/, "Created ticket '$subject'"); - expect_handle->before() =~ /Ticket (\d+) created/; - my $id = $1; - ok($id, "Got ticket id=$id"); - - return $id; -} - -# wrap up all the file handling stuff for attachment testing -sub check_attachment { - my $attachment_path = shift; - (my $filename = $attachment_path) =~ s/.*\/(.*?)$/$1/; - expect_send("comment -m 'attach file' -a $attachment_path $ticket_id", "Adding an attachment ($filename)"); - expect_like(qr/Message recorded/, "Added the attachment"); - expect_send("show ticket/$ticket_id/attachments","Finding Attachment"); - my $attachment_regex = qr/(\d+):\s+$filename/; - expect_like($attachment_regex,"Attachment Uploaded"); - expect_handle->before() =~ $attachment_regex; - my $attachment_id = $1; - expect_send("show ticket/$ticket_id/attachments/$attachment_id/content","Fetching Attachment"); - open (my $fh, $attachment_path) or die "Can't open $attachment_path: $!"; - my $attachment_content = do { local($/); <$fh> }; - close $fh; - chomp $attachment_content; - expect_is($attachment_content,"Attachment contains original text"); -} - -1; diff --git a/rt/lib/t/regression/27verp.t b/rt/lib/t/regression/27verp.t deleted file mode 100644 index 856681be1..000000000 --- a/rt/lib/t/regression/27verp.t +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use Test::More tests => 1; - -TODO: { - todo_skip "No tests written for VERP yet", 1; - ok(1,"a test to skip"); -} diff --git a/rt/sbin/rt-setup-database b/rt/sbin/rt-setup-database deleted file mode 100644 index 58f882f6e..000000000 --- a/rt/sbin/rt-setup-database +++ /dev/null @@ -1,619 +0,0 @@ -#!/usr/bin/perl -w -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK - -use strict; -use vars qw($PROMPT $VERSION $Handle $Nobody $SystemUser $item); -use vars - qw(@Groups @Users @ACL @Queues @ScripActions @ScripConditions @Templates @CustomFields @Scrips); - -use lib "/opt/rt3/lib"; - -#This drags in RT's config.pm -# We do it in a begin block because RT::Handle needs to know the type to do its -# inheritance -use RT; -use Carp; -use RT::User; -use RT::CurrentUser; -use RT::Template; -use RT::ScripAction; -use RT::ACE; -use RT::Group; -use RT::User; -use RT::Queue; -use RT::ScripCondition; -use RT::CustomField; -use RT::Scrip; - -RT::LoadConfig(); -use Term::ReadKey; -use Getopt::Long; - -my %args; - -GetOptions( - \%args, - 'prompt-for-dba-password', 'force', 'debug', - 'action=s', 'dba=s', 'dba-password=s', 'datafile=s', - 'datadir=s' -); - -$| = 1; #unbuffer that output. - -require RT::Handle; -my $Handle = RT::Handle->new($RT::DatabaseType); -$Handle->BuildDSN; -my $dbh; - -if ( $args{'prompt-for-dba-password'} ) { - $args{'dba-password'} = get_dba_password(); - chomp( $args{'dba-password'} ); -} - -unless ( $args{'action'} ) { - help(); - die; -} -if ( $args{'action'} eq 'init' ) { - $dbh = DBI->connect( get_system_dsn(), $args{'dba'}, $args{'dba-password'} ) - || die "Failed to connect to " . get_system_dsn() . " as $args{'dba'}: $DBI::errstr"; - print "Now creating a database for RT.\n"; - if ($RT::DatabaseType ne 'Oracle' || - $args{'dba'} ne $RT::DatabaseUser) { - create_db(); - } else { - print "...skipped as ".$args{'dba'} ." is not " . $RT::DatabaseUser . " or we're working with Oracle.\n"; - } - - $dbh->disconnect; - $dbh = DBI->connect( $Handle->DSN, $args{'dba'}, $args{'dba-password'} ) - || die $DBI::errstr; - - print "Now populating database schema.\n"; - insert_schema(); - print "Now inserting database ACLs\n"; - insert_acl() unless ($RT::DatabaseType eq 'Oracle'); - print "Now inserting RT core system objects\n"; - insert_initial_data(); - print "Now inserting RT data\n"; - insert_data( $RT::EtcPath . "/initialdata" ); -} -elsif ( $args{'action'} eq 'drop' ) { - unless ( $dbh = - DBI->connect( get_system_dsn(), $args{'dba'}, $args{'dba-password'} ) ) - { - warn $DBI::errstr; - warn "Database doesn't appear to exist. Aborting database drop."; - exit(0); - } - drop_db(); -} -elsif ( $args{'action'} eq 'insert' ) { - insert_data( $args{'datafile'} ); -} -elsif ($args{'action'} eq 'acl') { - $dbh = DBI->connect( $Handle->DSN, $args{'dba'}, $args{'dba-password'} ) - || die "Failed to connect to " . get_system_dsn() . " as $args{'dba'}: $DBI::errstr"; - insert_acl($args{'datadir'}); -} -elsif ($args{'action'} eq 'schema') { - $dbh = DBI->connect( $Handle->DSN, $args{'dba'}, $args{'dba-password'} ) - || die "Failed to connect to " . get_system_dsn() . " as $args{'dba'}: $DBI::errstr"; - insert_schema($args{'datadir'}); -} - -else { - print STDERR '$0 called with an invalid --action parameter'; - exit(-1); -} - -# {{{ sub insert_schema -sub insert_schema { - my $base_path = (shift || $RT::EtcPath); - my (@schema); - print "Creating database schema.\n"; - - if ( -f $base_path . "/schema." . $RT::DatabaseType ) { - no warnings 'unopened'; - - open( SCHEMA, "<" . $base_path . "/schema." . $RT::DatabaseType ); - open( SCHEMA_LOCAL, "<" . $RT::LocalEtcPath . "/schema." . $RT::DatabaseType ); - - my $statement = ""; - foreach my $line (<SCHEMA>, ($_ = ';;'), <SCHEMA_LOCAL>) { - $line =~ s/\#.*//g; - $line =~ s/--.*//g; - $statement .= $line; - if ( $line =~ /;(\s*)$/ ) { - $statement =~ s/;(\s*)$//g; - push @schema, $statement; - $statement = ""; - } - } - - local $SIG{__WARN__} = sub {}; - my $is_local = 0; # local/etc/schema needs to be nonfatal. - foreach my $statement (@schema) { - if ($statement =~ /^\s*;$/) { $is_local = 1; next; } - print STDERR "SQL: $statement\n" if defined $args{'debug'}; - my $sth = $dbh->prepare($statement) or die $dbh->errstr; - unless ( $sth->execute or $is_local ) { - die "Problem with statement:\n $statement\n" . $sth->errstr; - } - } - - } - else { - die "Couldn't find schema file for " . $RT::DatabaseType . "\n"; - } - print "schema sucessfully inserted\n"; - -} - -# }}} - -# {{{ sub drop_db -sub drop_db { - return if ( $RT::DatabaseType eq 'SQLite' ); - if ( $RT::DatabaseType eq 'Oracle' ) { - print <<END; - -To delete the tables and sequences of the RT Oracle database by running - \@etc/drop.Oracle -through SQLPlus. - -END - return; - } - unless ( $args{'force'} ) { - print <<END; - -About to drop $RT::DatabaseType database $RT::DatabaseName on $RT::DatabaseHost. -WARNING: This will erase all data in $RT::DatabaseName. - -END - exit unless _yesno(); - - } - - print "Dropping $RT::DatabaseType database $RT::DatabaseName.\n"; - - $dbh->do("Drop DATABASE $RT::DatabaseName") or warn $DBI::errstr; -} - -# }}} - -# {{{ sub create_db -sub create_db { - print "Creating $RT::DatabaseType database $RT::DatabaseName.\n"; - if ( $RT::DatabaseType eq 'SQLite' ) { - return; - } - elsif ( $RT::DatabaseType eq 'Pg' ) { - $dbh->do("CREATE DATABASE $RT::DatabaseName WITH ENCODING='UNICODE'"); - if ($DBI::errstr) { - $dbh->do("CREATE DATABASE $RT::DatabaseName") || die $DBI::errstr; - } - } - elsif ($RT::DatabaseType eq 'Oracle') { - insert_acl(); - } - elsif ( $RT::DatabaseType eq 'Informix' ) { - $ENV{DB_LOCALE} = 'en_us.utf8'; - $dbh->do("CREATE DATABASE $RT::DatabaseName WITH BUFFERED LOG"); - } - else { - $dbh->do("CREATE DATABASE $RT::DatabaseName") or die $DBI::errstr; - } -} - -# }}} - -sub get_dba_password { - print -"In order to create a new database and grant RT access to that database,\n"; - print "this script needs to connect to your " - . $RT::DatabaseType - . " instance on " - . $RT::DatabaseHost . " as " - . $args{'dba'} . ".\n"; - print -"Please specify that user's database password below. If the user has no database\n"; - print "password, just press return.\n\n"; - print "Password: "; - ReadMode('noecho'); - my $password = ReadLine(0); - ReadMode('normal'); - return ($password); -} - -# {{{ sub _yesno -sub _yesno { - print "Proceed [y/N]:"; - my $x = scalar(<STDIN>); - $x =~ /^y/i; -} - -# }}} - -# {{{ insert_acls -sub insert_acl { - - my $base_path = (shift || $RT::EtcPath); - - if ( $RT::DatabaseType =~ /^oracle$/i ) { - do $base_path . "/acl.Oracle" - || die "Couldn't find ACLS for Oracle\n" . $@; - } - elsif ( $RT::DatabaseType =~ /^pg$/i ) { - do $base_path . "/acl.Pg" || die "Couldn't find ACLS for Pg\n" . $@; - } - elsif ( $RT::DatabaseType =~ /^mysql$/i ) { - do $base_path . "/acl.mysql" - || die "Couldn't find ACLS for mysql in " . $RT::EtcPath . "\n" . $@; - } - elsif ( $RT::DatabaseType =~ /^informix$/i ) { - do $base_path . "/acl.Informix" - || die "Couldn't find ACLS for Informix in " . $RT::EtcPath . "\n" . $@; - } - elsif ( $RT::DatabaseType =~ /^SQLite$/i ) { - return; - } - else { - die "Unknown RT database type"; - } - - my @acl = acl($dbh); - foreach my $statement (@acl) { - print STDERR $statement if $args{'debug'}; - my $sth = $dbh->prepare($statement) or die $dbh->errstr; - unless ( $sth->execute ) { - die "Problem with statement:\n $statement\n" . $sth->errstr; - } - } -} - -# }}} - -=head2 get_system_dsn - -Returns a dsn suitable for database creates and drops -and user creates and drops - -=cut - -sub get_system_dsn { - - my $dsn = $Handle->DSN; - - #with mysql, you want to connect sans database to funge things - if ( $RT::DatabaseType eq 'mysql' ) { - $dsn =~ s/dbname=$RT::DatabaseName//; - - # with postgres, you want to connect to database1 - } - elsif ( $RT::DatabaseType eq 'Pg' ) { - $dsn =~ s/dbname=$RT::DatabaseName/dbname=template1/; - } - elsif ( $RT::DatabaseType eq 'Informix' ) { - # with Informix, you want to connect sans database: - $dsn =~ s/Informix:$RT::DatabaseName/Informix:/; - } - return $dsn; -} - -sub insert_initial_data { - - RT::InitLogging(); - - #connect to the db, for actual RT work - require RT::Handle; - $RT::Handle = RT::Handle->new(); - $RT::Handle->Connect(); - - #Put together a current user object so we can create a User object - my $CurrentUser = new RT::CurrentUser(); - - print "Checking for existing system user ($CurrentUser)..."; - my $test_user = RT::User->new($CurrentUser); - $test_user->Load('RT_System'); - if ( $test_user->id ) { - print "found!\n\nYou appear to have a functional RT database.\n" - . "Exiting, so as not to clobber your existing data.\n"; - exit(-1); - - } - else { - print "not found. This appears to be a new installation.\n"; - } - - print "Creating system user..."; - my $RT_System = new RT::User($CurrentUser); - - my ( $val, $msg ) = $RT_System->_BootstrapCreate( - Name => 'RT_System', - RealName => 'The RT System itself', - Comments => -'Do not delete or modify this user. It is integral to RT\'s internal database structures', - Creator => '1' ); - - unless ($val) { - print "$msg\n"; - exit(1); - } - print "done.\n"; - $RT::Handle->Disconnect(); - -} - -# load some sort of data into the database - -sub insert_data { - my $datafile = shift; - - #Connect to the database and get RT::SystemUser and RT::Nobody loaded - RT::Init; - - my $CurrentUser = RT::CurrentUser->new(); - $CurrentUser->LoadByName('RT_System'); - - if ( $datafile eq $RT::EtcPath . "/initialdata" ) { - - print "Creating Superuser ACL..."; - - my $superuser_ace = RT::ACE->new($CurrentUser); - $superuser_ace->_BootstrapCreate( - PrincipalId => ACLEquivGroupId( $CurrentUser->Id ), - PrincipalType => 'Group', - RightName => 'SuperUser', - ObjectType => 'RT::System', - ObjectId => '1' ); - - } - - # Slurp in stuff to insert from the datafile. Possible things to go in here:- - # @groups, @users, @acl, @queues, @ScripActions, @ScripConditions, @templates - - require $datafile - || die "Couldn't find initial data for import\n" . $@; - - if (@Groups) { - print "Creating groups..."; - foreach $item (@Groups) { - my $new_entry = RT::Group->new($CurrentUser); - my ( $return, $msg ) = $new_entry->_Create(%$item); - print "(Error: $msg)" unless ($return); - print $return. "."; - } - print "done.\n"; - } - if (@Users) { - print "Creating users..."; - foreach $item (@Users) { - my $new_entry = new RT::User($CurrentUser); - my ( $return, $msg ) = $new_entry->Create(%$item); - print "(Error: $msg)" unless ($return); - print $return. "."; - } - print "done.\n"; - } - if (@Queues) { - print "Creating queues..."; - for $item (@Queues) { - my $new_entry = new RT::Queue($CurrentUser); - my ( $return, $msg ) = $new_entry->Create(%$item); - print "(Error: $msg)" unless ($return); - print $return. "."; - } - print "done.\n"; - } - if (@ACL) { - print "Creating ACL..."; - for my $item (@ACL) { - - my ($princ, $object); - - # Global rights or Queue rights? - if ($item->{'Queue'}) { - $object = RT::Queue->new($CurrentUser); - $object->Load( $item->{'Queue'} ); - } else { - $object = $RT::System; - } - - # Group rights or user rights? - if ($item->{'GroupDomain'}) { - $princ = RT::Group->new($CurrentUser); - if ($item->{'GroupDomain'} eq 'UserDefined') { - $princ->LoadUserDefinedGroup( $item->{'GroupId'} ); - } elsif ($item->{'GroupDomain'} eq 'SystemInternal') { - $princ->LoadSystemInternalGroup( $item->{'GroupType'} ); - } elsif ($item->{'GroupDomain'} eq 'RT::Queue-Role' && - $item->{'Queue'}) { - $princ->LoadQueueRoleGroup( Type => $item->{'GroupType'}, - Queue => $object->id); - } else { - $princ->Load( $item->{'GroupId'} ); - } - } else { - $princ = RT::User->new($CurrentUser); - $princ->Load( $item->{'UserId'} ); - } - - # Grant it - my ( $return, $msg ) = $princ->PrincipalObj->GrantRight( - Right => $item->{'Right'}, - Object => $object ); - - if ($return) { - print $return. "."; - } - else { - print $msg . "."; - - } - - } - print "done.\n"; - } - if (@CustomFields) { - print "Creating custom fields..."; - for $item (@CustomFields) { - my $new_entry = new RT::CustomField($CurrentUser); - my $values = $item->{'Values'}; - delete $item->{'Values'}; - my $q = $item->{'Queue'}; - my $q_obj = RT::Queue->new($CurrentUser); - $q_obj->Load($q); - if ( $q_obj->Id ) { - $item->{'Queue'} = $q_obj->Id; - } - elsif ( $q == 0 ) { - $item->{'Queue'} = 0; - } - else { - print "(Error: Could not find queue " . $q . ")\n" - unless ( $q_obj->Id ); - next; - } - my ( $return, $msg ) = $new_entry->Create(%$item); - - foreach my $value ( @{$values} ) { - my ( $eval, $emsg ) = $new_entry->AddValue(%$value); - print "(Error: $emsg)\n" unless ($eval); - } - - print "(Error: $msg)\n" unless ($return); - print $return. "."; - } - - print "done.\n"; - } - - if (@ScripActions) { - print "Creating ScripActions..."; - - for $item (@ScripActions) { - my $new_entry = RT::ScripAction->new($CurrentUser); - my $return = $new_entry->Create(%$item); - print $return. "."; - } - - print "done.\n"; - } - - if (@ScripConditions) { - print "Creating ScripConditions..."; - - for $item (@ScripConditions) { - my $new_entry = RT::ScripCondition->new($CurrentUser); - my $return = $new_entry->Create(%$item); - print $return. "."; - } - - print "done.\n"; - } - - if (@Templates) { - print "Creating templates..."; - - for $item (@Templates) { - my $new_entry = new RT::Template($CurrentUser); - my $return = $new_entry->Create(%$item); - print $return. "."; - } - print "done.\n"; - } - if (@Scrips) { - print "Creating scrips..."; - - for $item (@Scrips) { - my $new_entry = new RT::Scrip($CurrentUser); - my ( $return, $msg ) = $new_entry->Create(%$item); - if ($return) { - print $return. "."; - } - else { - print "(Error: $msg)\n"; - } - } - print "done.\n"; - } - $RT::Handle->Disconnect(); - -} - -=head2 ACLEquivGroupId - -Given a userid, return that user's acl equivalence group - -=cut - -sub ACLEquivGroupId { - my $username = shift; - my $user = RT::User->new($RT::SystemUser); - $user->Load($username); - my $equiv_group = RT::Group->new($RT::SystemUser); - $equiv_group->LoadACLEquivalenceGroup($user); - return ( $equiv_group->Id ); -} - -sub help { - - print <<EOF; - -$0: Set up RT's database - ---action init Initialize the database - drop Drop the database. - This will ERASE ALL YOUR DATA - insert Insert data into RT's database. - By default, will use RT's installation data. - To use a local or supplementary datafile, specify it - using the '--datafile' option below. - - acl Initialize only the database ACLs - To use a local or supplementary datafile, specify it - using the '--datadir' option below. - - schema Initialize only the database schema - To use a local or supplementary datafile, specify it - using the '--datadir' option below. - ---datafile /path/to/datafile ---datadir /path/to/ Used to specify a path to find the local - database schema and acls to be installed. - - ---dba dba's username ---dba-password dba's password ---prompt-for-dba-password Ask for the database administrator's password interactively - - -EOF - -} - -1; diff --git a/rt/sbin/rt-test-dependencies b/rt/sbin/rt-test-dependencies deleted file mode 100644 index c1591b189..000000000 --- a/rt/sbin/rt-test-dependencies +++ /dev/null @@ -1,278 +0,0 @@ -#!/usr/bin/perl -# BEGIN LICENSE BLOCK -# -# Copyright (c) 1996-2003 Jesse Vincent <jesse@bestpractical.com> -# -# (Except where explictly superceded by other copyright notices) -# -# This work is made available to you under the terms of Version 2 of -# the GNU General Public License. A copy of that license should have -# been provided with this software, but in any event can be snarfed -# from www.gnu.org. -# -# This work is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# Unless otherwise specified, all modifications, corrections or -# extensions to this work which alter its source code become the -# property of Best Practical Solutions, LLC when submitted for -# inclusion in the work. -# -# -# END LICENSE BLOCK - -# -# This is just a basic script that checks to make sure that all -# the modules needed by RT before you can install it. -# - -use strict; -no warnings qw(numeric redefine); -use Getopt::Long; -use CPAN; -my %args; -my %deps; -GetOptions(\%args,'install', 'with-MYSQL', 'with-POSTGRESQL|with-pg|with-pgsql', 'with-SQLITE', 'with-ORACLE', 'with-FASTCGI', 'with-SPEEDYCGI', 'with-MODPERL1', 'with-MODPERL2' ,'with-DEV'); - -if (!keys %args) { - help(); - exit(0); -} -if ($args{'with-MODPERL2'}) { - warn_modperl2(); -} - -$args{'with-MASON'} = 1; -$args{'with-CORE'} = 1; -$args{'with-DEV'} =1; -$args{'with-CLI'} =1; -$args{'with-MAILGATE'} =1; -if ($] < 5.007) { -$args{'with-I18N-COMPAT'} = 1; -} - -sub warn_modperl2 { - print <<'.'; - NOTE: mod_perl 2.0 isn't quite ready for prime_time just yet; - Best Practical Solutions strongly recommends that sites use - Apache 1.3 or FastCGI. If you MUST use mod_perl 2.0 (or 1.99), - please read the mailing list archives before asking for help. -. - sleep 5; -} - - -sub help { - - print <<'.'; - -By default, testdeps determine whether you have -installed all the perl modules RT needs to run. - - --install Install missing modules - -The following switches will tell the tool to check for specific dependencies - - --with-mysql Database interface for MySQL - --with-postgresql Database interface for PostgreSQL - --with-sqlite Database interface and driver for SQLite (unsupported) - --with-oracle Database interface for oracle (unsupported) - - --with-fastcgi Libraries needed to support the fastcgi handler - --with-speedycgi Libraries needed to support the speedycgi handler - --with-modperl1 Libraries needed to support the modperl 1 handler - --with-modperl2 Libraries needed to support the modperl 2 handler - - --with-dev Tools needed for RT development -. -} - - -sub _ { - map { /(\S+)\s*(\S*)/; $1 => ($2 ? $2 :'') } split ( /\n/, $_[0] ); -} - -$deps{'CORE'} = [ _( << '.') ]; -Digest::MD5 2.27 -DBI 1.37 -Test::Inline -Class::ReturnValue 0.40 -DBIx::SearchBuilder 0.97 -Text::Template -File::Spec 0.8 -HTML::Entities -Net::Domain -Log::Dispatch 2.0 -Locale::Maketext 1.06 -Locale::Maketext::Lexicon 0.32 -Locale::Maketext::Fuzzy -MIME::Entity 5.108 -Mail::Mailer 1.57 -Net::SMTP -Text::Wrapper -Time::ParseDate -File::Temp -Term::ReadKey -Text::Autoformat -Text::Quoted 1.3 -Scalar::Util -. - -$deps{'MASON'} = [ _( << '.') ]; -Params::Validate 0.02 -Cache::Cache -Exception::Class -HTML::Mason 1.16 -MLDBM -Errno -FreezeThaw -Digest::MD5 2.27 -CGI::Cookie 1.20 -Storable 2.08 -Apache::Session 1.53 -. - -$deps{'MAILGATE'} = [ _( << '.') ]; -HTML::TreeBuilder -HTML::FormatText -Getopt::Long -LWP::UserAgent -. - -$deps{'CLI'} = [ _( << '.') ]; -Getopt::Long 2.24 -. - -$deps{'DEV'} = [ _( << '.') ]; -Regexp::Common -Time::HiRes -Test::Inline -WWW::Mechanize -. - -$deps{'FASTCGI'} = [ _( << '.') ]; -CGI 2.92 -FCGI -CGI::Fast -. - -$deps{'SPEEDYCGI'} = [ _( << '.') ]; -CGI 2.92 -CGI::SpeedyCGI -. - - -$deps{'MODPERL1'} = [ _( << '.') ]; -CGI 2.92 -Apache::Request -Apache::DBI 0.92 -. - -$deps{'MODPERL2'} = [ _( << '.') ]; -CGI 2.92 -Apache::DBI -. - -$deps{'I18N-COMPAT'} = [ _( << '.') ]; -Text::Iconv -Encode::compat 0.04 -. - -$deps{'MYSQL'} = [ _( << '.') ]; -DBD::mysql 2.1018 -. -$deps{'ORACLE'} = [ _( << '.') ]; -DBD::Oracle -. -$deps{'POSTGRESQL'} = [ _( << '.') ]; -DBD::Pg -. - -print "perl:\n"; -print "\t5.8.0"; -eval {require 5.008}; -if ($@) { -print "...missing.\n"; - eval {require 5.006001}; - if ($@) { - print " RT is known to be non-functional on versions of perl older than 5.6.1. Please upgrade to 5.8.0 or newer"; - die; - } else { - print " RT is not supported on perl 5.6.1\n"; - } -} else { - print "...found\n"; - -} - - -foreach my $type (keys %args) { -next unless ($type =~ /^with-(.*?)$/); -my $type = $1; -print "$type dependencies:\n"; - my @deps = (@{$deps{$type}}); - while (@deps) { - my $module = shift @deps; - my $version = shift @deps; -my $ret; - $ret =test_dep($module, $version); - -if ($args{'install'} && !$ret) { - resolve_dep($module); -} -} -} -sub test_dep { - my $module = shift; - my $version = shift; - - print "\t$module $version"; - eval "use $module $version" ; - if ($@) { - my $error = $@; - $error =~ s/\n(.*)$//s; - print "...MISSING\n"; - print "\t\t$error\n" if $error =~ /this is only/; - - return undef; - } else { - print "...found\n"; -return 1; - } -} - -sub resolve_dep { - my $module = shift; - use CPAN; - CPAN::Shell->install($module); - -} - - -sub print_help { - print << "EOF"; - -$0 FLAG DBTYPE - - -$0 is a tool for RT that will tell you if you've got all -the modules RT depends on properly installed. - -Flags: (only one flag is valid for a given run) - --quiet will check to see if we've got everything we need - and will exit with a return code of (1) if we don't. - --warn will tell you what isn't properly installed - --fix will use CPANPLUS.pm or CPAN.pm to magically make everything better - -DBTYPE is one of: - oracle, pg, mysql - -EOF - - exit(0); -} |