Skip to content

Commit 9a9eef2

Browse files
committed
Added new console interface for a massively improved user and developer experience on the commandline.
otrs.Console.pl is now the central place for all commands (formerly scripts) that use the OTRS API. You can run "otrs.Console.pl" to get a general overview and a listing of the available commands, or "otrs.Console.pl Command::Name --help" to get detailed help for the individual commands. Cron scripts are not ported yet because they will be obsolete soon. Kudos to http://symfony.com/doc/current/components/console/introduction.html for the inspiration and to Marc Bonsels and Carlos Rodriguez for their help with the command porting.
1 parent e880258 commit 9a9eef2

File tree

225 files changed

+14401
-8395
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

225 files changed

+14401
-8395
lines changed

.mailfilter.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ cc ${SYS_HOME}/var/INBOX.Backup.${MONTHFOLDER}
6363

6464
# Pipe all email into the PostMaster process.
6565

66-
xfilter "${SYS_HOME}/bin/otrs.PostMaster.pl"
66+
xfilter "${SYS_HOME}/bin/otrs.Console.pl Maint::PostMaster::Read"
6767

6868

6969
# spool all the rest (which the otrs.PostMaster.pl can't process!)

.procmailrc.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ VERBOSE=on
6969
# Pipe all email into the PostMaster process.
7070

7171
:0 :
72-
| $SYS_HOME/bin/otrs.PostMaster.pl
72+
| $SYS_HOME/bin/otrs.Console.pl Maint::PostMaster::Read
7373

7474

7575
# spool all the rest (which the otrs.PostMaster.pl can't process!)

CHANGES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#5.0.0.beta1 20??-??-??
2+
- 2015-03-24 Added new console interface for a massively improved user and developer experience on the commandline.
23
- 2015-03-24 Removed Kernel::System::Crypt layer to use Kernel::System::Crypt::PGP and ::SMIME directly.
34
- 2015-03-20 Let LWP::UserAgent handle https-proxy commands, thanks to Michiel Beijen.
45
- 2015-03-20 Added possibility to specify minimum log level, thanks to Renée Bäcker.

Kernel/Config.pm.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ sub Load {
3838
# The database user
3939
$Self->{DatabaseUser} = 'otrs';
4040

41-
# The password of database user. You also can use bin/otrs.CryptPassword.pl
41+
# The password of database user. You also can use bin/otrs.Console.pl Maint::Database::PasswordCrypt
4242
# for crypted passwords
4343
$Self->{DatabasePw} = 'some-pass';
4444

Kernel/Config/Files/Ticket.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@
257257
</Setting>
258258
</ConfigItem>
259259
<ConfigItem Name="Ticket::IndexModule" Required="1" Valid="1">
260-
<Description Translatable="1">IndexAccelerator: to choose your backend TicketViewAccelerator module. "RuntimeDB" generates each queue view on the fly from ticket table (no performance problems up to approx. 60.000 tickets in total and 6.000 open tickets in the system). "StaticDB" is the most powerful module, it uses an extra ticket-index table that works like a view (recommended if more than 80.000 and 6.000 open tickets are stored in the system). Use the script "bin/otrs.RebuildTicketIndex.pl" for initial index update.</Description>
260+
<Description Translatable="1">IndexAccelerator: to choose your backend TicketViewAccelerator module. "RuntimeDB" generates each queue view on the fly from ticket table (no performance problems up to approx. 60.000 tickets in total and 6.000 open tickets in the system). "StaticDB" is the most powerful module, it uses an extra ticket-index table that works like a view (recommended if more than 80.000 and 6.000 open tickets are stored in the system). Use the command "bin/otrs.Console.pl Maint::Ticket::QueueIndexRebuild" for initial index creation.</Description>
261261
<Group>Ticket</Group>
262262
<SubGroup>Core::Ticket</SubGroup>
263263
<Setting>
@@ -479,7 +479,7 @@
479479
</Setting>
480480
</ConfigItem>
481481
<ConfigItem Name="Ticket::SearchIndexModule" Required="1" Valid="1" ConfigLevel="200">
482-
<Description Translatable="1">Helps to extend your articles full-text search (From, To, Cc, Subject and Body search). Runtime will do full-text searches on live data (it works fine for up to 50.000 tickets). StaticDB will strip all articles and will build an index after article creation, increasing fulltext searches about 50%. To create an initial index use "bin/otrs.RebuildFulltextIndex.pl".</Description>
482+
<Description Translatable="1">Helps to extend your articles full-text search (From, To, Cc, Subject and Body search). Runtime will do full-text searches on live data (it works fine for up to 50.000 tickets). StaticDB will strip all articles and will build an index after article creation, increasing fulltext searches about 50%. To create an initial index use "bin/otrs.Console.pl Maint::Ticket::FulltextIndexRebuild".</Description>
483483
<Group>Ticket</Group>
484484
<SubGroup>Core::FulltextSearch</SubGroup>
485485
<Setting>
@@ -488,7 +488,7 @@
488488
</Setting>
489489
</ConfigItem>
490490
<ConfigItem Name="Ticket::SearchIndex::Attribute" Required="1" Valid="1" ConfigLevel="200">
491-
<Description Translatable="1">Basic fulltext index settings. Execute "bin/otrs.RebuildFulltextIndex.pl" in order to generate a new index.</Description>
491+
<Description Translatable="1">Basic fulltext index settings. Execute "bin/otrs.Console.pl Maint::Ticket::FulltextIndexRebuild" in order to generate a new index.</Description>
492492
<Group>Ticket</Group>
493493
<SubGroup>Core::FulltextSearch</SubGroup>
494494
<Setting>
@@ -5449,7 +5449,7 @@
54495449
</Setting>
54505450
</ConfigItem>
54515451
<ConfigItem Name="Ticket::UnlockStateType" Required="1" Valid="1">
5452-
<Description Translatable="1">Defines the valid states for unlocked tickets. To unlock tickets the script "bin/otrs.UnlockTickets.pl" can be used.</Description>
5452+
<Description Translatable="1">Defines the valid states for unlocked tickets. To unlock tickets the script "bin/otrs.Console.pl Maint::Ticket::UnlockTimeout" can be used.</Description>
54535453
<Group>Ticket</Group>
54545454
<SubGroup>Core::Ticket</SubGroup>
54555455
<Setting>

Kernel/Language/de.pm

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -594,6 +594,8 @@ sub Data {
594594
'Setting character_set_database needs to be UNICODE or UTF8.' => 'Einstellung character_set_database muss UNICODE oder UTF8 sein.',
595595
'Table Charset' => 'Zeichensatz der Tabellen',
596596
'There were tables found which do not have utf8 as charset.' => 'Es wurden Tabellen gefunden, die nicht utf8 als Zeichensatz eingestellt haben.',
597+
'InnoDB Log File Size' => '',
598+
'The setting innodb_log_file_size must be at least 256 MB.' => '',
597599
'Maximum Query Size' => 'Maximale Anfragegröße',
598600
'The setting \'max_allowed_packet\' must be higher than 20 MB.' =>
599601
'Die Einstellung max_allowed_packet muss größer als 20 MB sein.',
@@ -1115,7 +1117,7 @@ sub Data {
11151117
'You can manage these groups via the configuration setting "CustomerGroupAlwaysGroups".' =>
11161118
'Sie können diese Gruppen mit der Konfigurationseinstellung "CustomerGroupAlwaysGroups" bearbeiten.',
11171119
'Filter for Groups' => 'Filter für Gruppen',
1118-
'Just start typing to filter...' => 'Beginnen Sie mit der Eingabe zum zu filtern...',
1120+
'Just start typing to filter...' => 'Beginnen Sie mit der Eingabe, um zu filtern...',
11191121
'Select the customer:group permissions.' => 'Wählen sie die Kunde:Gruppe-Rechte aus',
11201122
'If nothing is selected, then there are no permissions in this group (tickets will not be available for the customer).' =>
11211123
'Wenn nichts ausgewählt ist, hat der Kunde in dieser Gruppe keine Rechte (und kann nicht auf Tickets zugreifen).',
@@ -2039,6 +2041,7 @@ sub Data {
20392041
'Remove this Condition' => 'Bedingung entfernen',
20402042
'Type of Linking' => 'Typ der Verknüpfung',
20412043
'Remove this Field' => 'Feld entfernen',
2044+
'And can\'t be repeated on the same condition.' => '',
20422045
'Add a new Field' => 'Neues Feld hinzufügen',
20432046
'Add New Condition' => 'Neue Bedingung hinzufügen',
20442047

@@ -2251,12 +2254,18 @@ sub Data {
22512254
'Permissions to move tickets into this group/queue.' => 'Rechte, um Tickets in eine Gruppe/Queue zu verschieben.',
22522255
'create' => 'Erstellen',
22532256
'Permissions to create tickets in this group/queue.' => 'Rechte, um in einer Gruppe/Queue Tickets zu erstellen.',
2257+
'note' => 'Notiz',
2258+
'Permissions to add notes to tickets in this group/queue.' => 'Berechtigung zum Hinzufügen von Notizen zu Tickets dieser Gruppe/Queue.',
2259+
'owner' => 'Besitzer',
2260+
'Permissions to change the owner of tickets in this group/queue.' =>
2261+
'Berechtigung zum Ändern des Besitzers von Tickets dieser Gruppe/Queue.',
22542262
'priority' => 'Priorität',
22552263
'Permissions to change the ticket priority in this group/queue.' =>
22562264
'Rechte, um die Priorität eines Tickets in einer Gruppe/Queue zu ändern.',
22572265

22582266
# Template: AdminRoleUser
22592267
'Manage Agent-Role Relations' => 'Zuordnungen von Agenten und Rollen verwalten',
2268+
'Add agent' => 'Agent hinzufügen',
22602269
'Filter for Agents' => 'Filter für Agenten',
22612270
'Manage Role-Agent Relations' => 'Zuordnungen von Agenten und Rollen verwalten',
22622271
'Change Role Relations for Agent' => 'Rollen-Zuordnungen verändern für Agenten',
@@ -2486,7 +2495,7 @@ sub Data {
24862495
'All Sessions' => 'Alle Sitzungen',
24872496
'Agent Sessions' => 'Agenten-Sitzungen',
24882497
'Customer Sessions' => 'Kunden-Sitzungen',
2489-
'Kill all Sessions, exept current' => 'Alle Sitzungen außer der aktuellen löschen',
2498+
'Kill all Sessions, except for your own' => 'Alle Sitzungen außer Ihrer eigenen löschen',
24902499

24912500
# Template: AdminTemplate
24922501
'Manage Templates' => 'Vorlagen verwalten',
@@ -2519,7 +2528,6 @@ sub Data {
25192528
'A type with this name already exists!' => 'Ein Typ mit diesem Namen existiert bereits!',
25202529

25212530
# Template: AdminUser
2522-
'Add agent' => 'Agent hinzufügen',
25232531
'Agents will be needed to handle tickets.' => 'Agenten werden für die Verarbeitung von Tickets benötigt.',
25242532
'Don\'t forget to add a new agent to groups and/or roles!' => 'Vergessen Sie nicht, einen neuen Agenten zu Gruppen und/oder Rollen hinzuzufügen!',
25252533
'Please enter a search term to look for agents.' => 'Bitte geben Sie einen Suchbegriff ein, um nach Agenten zu suchen.',
@@ -2538,11 +2546,6 @@ sub Data {
25382546
'Manage Agent-Group Relations' => 'Zuordnungen von Agent und Gruppe verwalten',
25392547
'Change Group Relations for Agent' => 'Gruppenzuordnungen verwalten für Agenten',
25402548
'Change Agent Relations for Group' => 'Agentenzuordnungen verwalten für Gruppe',
2541-
'note' => 'Hinweis',
2542-
'Permissions to add notes to tickets in this group/queue.' => 'Berechtigung zum Hinzufügen von Hinweisen zu Tickets dieser Gruppe/Queue.',
2543-
'owner' => 'Besitzer',
2544-
'Permissions to change the owner of tickets in this group/queue.' =>
2545-
'Berechtigung zum Ändern des Besitzers von Tickets dieser Gruppe/Queue.',
25462549

25472550
# Template: AgentBook
25482551
'Address Book' => 'Adressbuch',
@@ -2778,6 +2781,7 @@ sub Data {
27782781
'New Owner' => 'Neuer Besitzer',
27792782
'Please set a new owner!' => 'Bitte einen neuen Besitzer angeben',
27802783
'Previous Owner' => 'Vorheriger Besitzer',
2784+
'New Responsible' => '',
27812785
'Next state' => 'Nächster Status',
27822786
'For all pending* states.' => 'Für alle warten* Status.',
27832787
'Add Article' => 'Artikel hinzufügen',
@@ -3523,6 +3527,8 @@ sub Data {
35233527
'CustomerID search' => 'Kundennummernsuche',
35243528
'CustomerName' => 'Kundenname',
35253529
'Customers <-> Groups' => 'Kunden <-> Gruppen',
3530+
'Customizable stop words for fulltext index. These words will be removed from the search index.' =>
3531+
'',
35263532
'Data used to export the search result in CSV format.' => 'Daten die verwendet werden um das Suchergebnis im CSV-Format zu exportieren.',
35273533
'Date / Time' => 'Datum / Zeit',
35283534
'Debugs the translation set. If this is set to "Yes" all strings (text) without translations are written to STDERR. This can be helpful when you are creating a new translation file. Otherwise, this option should remain set to "No".' =>
@@ -4362,6 +4368,8 @@ sub Data {
43624368
'Forces to unlock tickets after being moved to another queue.' =>
43634369
'',
43644370
'Forwarded to "%s".' => 'Weitergeleitet an "%s".',
4371+
'French stop words for fulltext index. These words will be removed from the search index.' =>
4372+
'',
43654373
'Frontend language' => 'Oberflächen-Sprache',
43664374
'Frontend module registration (disable AgentTicketService link if Ticket Serivice feature is not used).' =>
43674375
'',
@@ -4393,6 +4401,8 @@ sub Data {
43934401
'',
43944402
'GenericInterface module registration for the transport layer.' =>
43954403
'',
4404+
'German stop words for fulltext index. These words will be removed from the search index.' =>
4405+
'',
43964406
'Gives end users the possibility to override the separator character for CSV files, defined in the translation files.' =>
43974407
'',
43984408
'Grants access, if the customer ID of the ticket matches the customer user\'s ID and the customer user has group permissions on the queue the ticket is in.' =>
@@ -4538,6 +4548,8 @@ sub Data {
45384548
'Es ist möglich, verschiedene Skins zu konfigurieren, zum Beispiel um zwischen verschiedenen Kunden auf Basis der jeweiligen Domain zu unterscheiden. Sie können durch Nutzung von regulären Ausdrücken mithilfe von Schlüssel-/Wert-Paaren auf Domains prüfen. Der Inhalt von "Schlüssel" sollte die Prüfung auf die Domain beinhalten, der Inhalt von "Wert" den Namen des zu selektierenden Skins für diese Domain. Bitte beachten Sie die Einträge mit Beispielen für korrekte reguläre Ausdrücke.',
45394549
'It is possible to configure different themes, for example to distinguish between agents and customers, to be used on a per-domain basis within the application. Using a regular expression (regex), you can configure a Key/Content pair to match a domain. The value in "Key" should match the domain, and the value in "Content" should be a valid theme on your system. Please see the example entries for the proper form of the regex.' =>
45404550
'Es ist möglich, verschiedene Themes zu konfigurieren, zum Beispiel um zwischen verschiedenen Agenten und Kunden auf Basis der jeweiligen Domain zu unterscheiden. Sie können durch Nutzung von regulären Ausdrücken mithilfe von Schlüssel-/Wert-Paaren auf Domains prüfen. Der Inhalt von "Schlüssel" sollte die Prüfung auf die Domain beinhalten, der Inhalt von "Wert" den Namen des zu selektierenden Themes für diese Domain. Bitte beachten Sie die Einträge mit Beispielen für korrekte reguläre Ausdrücke.',
4551+
'Italian stop words for fulltext index. These words will be removed from the search index.' =>
4552+
'',
45414553
'Lastname, Firstname' => 'Nachname, Vorname',
45424554
'Lastname, Firstname (UserLogin)' => 'Nachname, Vorname (BenutzerLogin)',
45434555
'Left' => '',
@@ -4830,8 +4842,8 @@ sub Data {
48304842
'',
48314843
'S/MIME Certificate Upload' => 'S/MIME Zertifikat hochladen',
48324844
'Sample command output' => '',
4833-
'Saves the attachments of articles. "DB" stores all data in the database (not recommended for storing big attachments). "FS" stores the data on the filesystem; this is faster but the webserver should run under the OTRS user. You can switch between the modules even on a system that is already in production without any loss of data.' =>
4834-
'',
4845+
'Saves the attachments of articles. "DB" stores all data in the database (not recommended for storing big attachments). "FS" stores the data on the filesystem; this is faster but the webserver should run under the OTRS user. You can switch between the modules even on a system that is already in production without any loss of data. Note: Searching for attachment names is not supported when "FS" is used.' =>
4846+
'Speicherung von Artikel-Anlagen. "DB" legt alle Daten in der Datenbank ab (nicht empfohlen für große Anlagen). "FS" legt alle Daten im Dateisystem ab; dies ist schneller, jedoch sollte der Webserver mit dem OTRS-Benutzer betrieben werden. Sie können im laufenden Betrieb ohne Datenverlust zwischen den Modulen wechseln. Bitte beachten Sie, dass das Suchen nach Anlagen für "FS" nicht unterstützt wird.',
48354847
'Schedule a maintenance period.' => 'Systemwartung planen',
48364848
'Search Customer' => 'Kunden suchen',
48374849
'Search User' => 'Benutzer suchen',
@@ -5253,6 +5265,8 @@ sub Data {
52535265
'',
52545266
'Spam Assassin example setup. Moves marked mails to spam queue.' =>
52555267
'',
5268+
'Spanish stop words for fulltext index. These words will be removed from the search index.' =>
5269+
'',
52565270
'Specifies if an agent should receive email notification of his own actions.' =>
52575271
'',
52585272
'Specifies the available note types for this ticket mask. If the option is deselected, ArticleTypeDefault is used and the option is removed from the mask.' =>
@@ -5315,7 +5329,6 @@ sub Data {
53155329
'Stat#' => 'Statistik Nr.',
53165330
'Statistics' => 'Statistiken',
53175331
'Status view' => 'Ansicht nach Status',
5318-
'Stop words for fulltext index. These words will be removed.' => '',
53195332
'Stores cookies after the browser has been closed.' => '',
53205333
'Strips empty lines on the ticket preview in the queue view.' => '',
53215334
'Strips empty lines on the ticket preview in the service view.' =>

Kernel/Modules/AdminPackageManager.pm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ sub Run {
5959
.
6060
'PerlInitHandler in Apache config file. See also scripts/apache2-httpd.include.conf. '
6161
.
62-
'Alternatively, you can use the cmd tool bin/otrs.PackageManager.pl to install packages!'
62+
'Alternatively, you can use the commandline tool bin/otrs.Console.pl to install packages!'
6363
);
6464
}
6565
}

Kernel/Output/HTML/Standard/AAASupportDataCollector.tt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@
200200
[% Translate("Orphaned Records In ticket_lock_index Table") | html %]
201201
[% Translate("Table ticket_lock_index contains orphaned records. Please run otrs/bin/otrs.CleanTicketIndex.pl to clean the StaticDB index.") | html %]
202202
[% Translate("Orphaned Records In ticket_index Table") | html %]
203-
[% Translate("Table ticket_index contains orphaned records. Please run otrs/bin/otrs.CleanTicketIndex.pl to clean the StaticDB index.") | html %]
203+
[% Translate('Table ticket_lock_index contains orphaned records. Please run bin/otrs.Console.pl "Maint::Ticket::QueueIndexCleanup" to clean the StaticDB index.') | html %]
204204

205205
# Webserver/EnvironnmentVariables.pm
206206
[% Translate("Environment Variables") | html %]

0 commit comments

Comments
 (0)