[otrs-cvs] otrs/Kernel/Modules AdminProcessManagement.pm, 1.46, 1.47
"CVS commits notifications of OTRS.org" <[email protected]>
| Newsgroups | gmane.comp.otrs.cvs |
|---|---|
| Message-ID | <[email protected]> |
Comments:
Update of /home/cvs/otrs/Kernel/Modules
In directory lancelot:/tmp/cvs-serv4054/Kernel/Modules
Modified Files:
AdminProcessManagement.pm
Log Message:
Added print mode for processes (first version).
Author: mab
Index: AdminProcessManagement.pm
===================================================================
RCS file: /home/cvs/otrs/Kernel/Modules/AdminProcessManagement.pm,v
retrieving revision 1.46
retrieving revision 1.47
diff -2 -u -d -r1.46 -r1.47
--- AdminProcessManagement.pm 17 Jan 2013 03:39:20 -0000 1.46
+++ AdminProcessManagement.pm 29 Jan 2013 15:59:02 -0000 1.47
@@ -14,4 +14,5 @@
use strict;
use warnings;
+use Data::Dumper;
use Kernel::System::YAML;
@@ -465,69 +466,236 @@
}
- my %ProcessData;
+ my $ProcessData = $Self->_GetProcessData(
+ ID => $ProcessID
+ );
- # get process data
- my $Process = $Self->{ProcessObject}->ProcessGet(
- ID => $ProcessID,
- UserID => $Self->{UserID},
+ # convert the processdata hash to string
+ my $ProcessDataYAML = $Self->{YAMLObject}->Dump( Data => $ProcessData );
+
+ # send the result to the browser
+ return $Self->{LayoutObject}->Attachment(
+ ContentType => 'text/html; charset=' . $Self->{LayoutObject}->{Charset},
+ Content => $ProcessDataYAML,
+ Type => 'attachment',
+ Filename => 'Export_ProcessEntityID_' . $ProcessData->{Process}->{EntityID} . '.yml',
+ NoCache => 1,
);
- if ( !$Process ) {
+ }
+
+ # ------------------------------------------------------------ #
+ # ProcessPrint
+ # ------------------------------------------------------------ #
+ elsif ( $Self->{Subaction} eq 'ProcessPrint' ) {
+
+ # check for ProcessID
+ my $ProcessID = $Self->{ParamObject}->GetParam( Param => 'ID' ) || '';
+ if ( !$ProcessID ) {
return $Self->{LayoutObject}->ErrorScreen(
- Message => "Unknown Process $ProcessID!",
+ Message => "Need ProcessID!",
);
}
- $ProcessData{Process} = $Process;
- # get all used activities
- for my $ActivityEntityID ( @{ $Process->{Activities} } ) {
+ my $ProcessData = $Self->_GetProcessData(
+ ID => $ProcessID
+ );
- my $Activity = $Self->{ActivityObject}->ActivityGet(
- EntityID => $ActivityEntityID,
- UserID => $Self->{UserID},
+ my $Output = $Self->{LayoutObject}->Header(
+ Value => $Param{Title},
+ Type => 'Small',
+ );
+
+ # print all activities
+ if ( $ProcessData->{Activities} && %{ $ProcessData->{Activities} } ) {
+
+ for my $ActivityEntityID ( sort keys %{ $ProcessData->{Activities} } ) {
+
+ $Self->{LayoutObject}->Block(
+ Name => 'ActivityRow',
+ Data => {
+ %{ $ProcessData->{Activities}->{$ActivityEntityID} },
+ DialogCount =>
+ scalar
+ @{ $ProcessData->{Activities}->{$ActivityEntityID}->{ActivityDialogs} },
+ },
+ );
+
+ # list all assigned dialogs
+ my $AssignedDialogs
+ = $ProcessData->{Activities}->{$ActivityEntityID}->{Config}->{ActivityDialog};
+ if ( $AssignedDialogs && %{$AssignedDialogs} ) {
+
+ $Self->{LayoutObject}->Block(
+ Name => 'AssignedDialogs',
+ );
+
+ for my $AssignedDialog ( sort keys %{$AssignedDialogs} ) {
+
+ my $AssignedDialogEntityID
+ = $ProcessData->{Activities}->{$ActivityEntityID}->{Config}
+ ->{ActivityDialog}->{$AssignedDialog};
+
+ $Self->{LayoutObject}->Block(
+ Name => 'AssignedDialogsRow',
+ Data => {
+ Name => $ProcessData->{ActivityDialogs}->{$AssignedDialogEntityID}
+ ->{Name},
+ EntityID => $AssignedDialogEntityID,
+ },
+ );
+ }
+ }
+ }
+ }
+ else {
+ $Self->{LayoutObject}->Block(
+ Name => 'ActivityRowEmpty',
);
- $ProcessData{Activities}->{$ActivityEntityID} = $Activity;
+ }
- # get all used activity dialogs
- for my $ActivityDialogEntityID ( @{ $Activity->{ActivityDialogs} } ) {
+ # print all activity dialogs
+ if ( $ProcessData->{ActivityDialogs} && %{ $ProcessData->{ActivityDialogs} } ) {
- my $ActivityDialog = $Self->{ActivityDialogObject}->ActivityDialogGet(
- EntityID => $ActivityDialogEntityID,
- UserID => $Self->{UserID},
+ for my $ActivityDialogEntityID ( sort keys %{ $ProcessData->{ActivityDialogs} } ) {
+
+ $Self->{LayoutObject}->Block(
+ Name => 'ActivityDialogRow',
+ Data => {
+ ShownIn => join(
+ ', ',
+ @{
+ $ProcessData->{ActivityDialogs}->{$ActivityDialogEntityID}
+ ->{Config}->{Interface}
+ }
+ ),
+ %{ $ProcessData->{ActivityDialogs}->{$ActivityDialogEntityID} },
+ },
);
- $ProcessData{ActivityDialogs}->{$ActivityDialogEntityID} = $ActivityDialog;
+
+ # list all assigned fields
+ my $AssignedFields
+ = $ProcessData->{ActivityDialogs}->{$ActivityDialogEntityID}->{Config}
+ ->{FieldOrder};
+ if ( $AssignedFields && @{$AssignedFields} ) {
+
+ $Self->{LayoutObject}->Block(
+ Name => 'AssignedFields',
+ );
+
+ for my $AssignedField ( @{$AssignedFields} ) {
+
+ $Self->{LayoutObject}->Block(
+ Name => 'AssignedFieldsRow',
+ Data => {
+ Name => $AssignedField,
+ },
+ );
+ }
+ }
}
}
+ else {
+ $Self->{LayoutObject}->Block(
+ Name => 'ActivityDialogRowEmpty',
+ );
+ }
- # get all used transitions
- for my $TransitionEntityID ( @{ $Process->{Transitions} } ) {
+ # print all transitions
+ if ( $ProcessData->{Transitions} && %{ $ProcessData->{Transitions} } ) {
- my $Transition = $Self->{TransitionObject}->TransitionGet(
- EntityID => $TransitionEntityID,
- UserID => $Self->{UserID},
+ for my $TransitionEntityID ( sort keys %{ $ProcessData->{Transitions} } ) {
+
+ my $Indent = $Data::Dumper::Indent;
+ $Data::Dumper::Indent = 1;
+ my $Config = Dumper( $ProcessData->{Transitions}->{$TransitionEntityID}->{Config} );
+ $Data::Dumper::Indent = $Indent;
+
+ $Config =~ s{ \s* \$VAR1 \s* =}{}xms;
+ $Config =~ s{\s+\{}{\{}xms;
+
+ $Self->{LayoutObject}->Block(
+ Name => 'TransitionRow',
+ Data => {
+ %{ $ProcessData->{Transitions}->{$TransitionEntityID} },
+ Config => $Config,
+ },
+ );
+ }
+ }
+ else {
+ $Self->{LayoutObject}->Block(
+ Name => 'TransitionRowEmpty',
);
- $ProcessData{Transitions}->{$TransitionEntityID} = $Transition;
}
- # get all used transition actions
- for my $TransitionActionEntityID ( @{ $Process->{TransitionActions} } ) {
+ # print all transition actions
+ if ( $ProcessData->{TransitionActions} && %{ $ProcessData->{TransitionActions} } ) {
- my $TransitionAction = $Self->{TransitionActionObject}->TransitionActionGet(
- EntityID => $TransitionActionEntityID,
- UserID => $Self->{UserID},
+ for my $TransitionActionEntityID ( sort keys %{ $ProcessData->{TransitionActions} } ) {
+
+ $Self->{LayoutObject}->Block(
+ Name => 'TransitionActionRow',
+ Data => {
+ Module => $ProcessData->{TransitionActions}->{$TransitionActionEntityID}
+ ->{Config}->{Module},
+ %{ $ProcessData->{TransitionActions}->{$TransitionActionEntityID} },
+ },
+ );
+
+ # list config
+ my $Config
+ = $ProcessData->{TransitionActions}->{$TransitionActionEntityID}->{Config}
+ ->{Config};
+ if ( $Config && %{$Config} ) {
+
+ $Self->{LayoutObject}->Block(
+ Name => 'Config',
+ );
+
+ for my $ConfigItem ( keys %{$Config} ) {
+
+ $Self->{LayoutObject}->Block(
+ Name => 'ConfigRow',
+ Data => {
+ Name => $ConfigItem,
+ Value => $Config->{$ConfigItem},
+ },
+ );
+ }
+ }
+
+ }
+ }
+ else {
+ $Self->{LayoutObject}->Block(
+ Name => 'TransitionActionRowEmpty',
);
- $ProcessData{TransitionActions}->{$TransitionActionEntityID} = $TransitionAction;
}
- # convert the processdata hash to string
- my $ProcessData = $Self->{YAMLObject}->Dump( Data => \%ProcessData );
+ # get logo
+ my $Logo = $Self->{ConfigObject}->Get('AgentLogo');
+ if ( $Logo && %{$Logo} ) {
+ $Self->{LayoutObject}->Block(
+ Name => 'Logo',
+ Data => {
+ LogoURL => $Param{LogoURL}
+ = $Self->{ConfigObject}->Get('Frontend::WebPath') . $Logo->{URL},
+ },
+ );
+ }
- # send the result to the browser
- return $Self->{LayoutObject}->Attachment(
- ContentType => 'text/html; charset=' . $Self->{LayoutObject}->{Charset},
- Content => $ProcessData,
- Type => 'attachment',
- Filename => 'Export_ProcessEntityID_' . $Process->{EntityID} . '.yml',
- NoCache => 1,
+ $Output .= $Self->{LayoutObject}->Output(
+ TemplateFile => "AdminProcessManagementProcessPrint",
+ Data => {
+ Name => $ProcessData->{Process}->{Name} . ' ('
+ . $ProcessData->{Process}->{EntityID} . ')',
+ State => $ProcessData->{Process}->{State} . ' ('
+ . $ProcessData->{Process}->{StateEntityID} . ')',
+ %Param,
+ },
);
+
+ $Output .= $Self->{LayoutObject}->Footer();
+
+ return $Output;
}
@@ -1776,3 +1944,64 @@
}
+sub _GetProcessData {
+
+ my ( $Self, %Param ) = @_;
+
+ my %ProcessData;
+
+ # get process data
+ my $Process = $Self->{ProcessObject}->ProcessGet(
+ ID => $Param{ID},
+ UserID => $Self->{UserID},
+ );
+ if ( !$Process ) {
+ return $Self->{LayoutObject}->ErrorScreen(
+ Message => "Unknown Process $Param{ID}!",
+ );
+ }
+ $ProcessData{Process} = $Process;
+
+ # get all used activities
+ for my $ActivityEntityID ( @{ $Process->{Activities} } ) {
+
+ my $Activity = $Self->{ActivityObject}->ActivityGet(
+ EntityID => $ActivityEntityID,
+ UserID => $Self->{UserID},
+ );
+ $ProcessData{Activities}->{$ActivityEntityID} = $Activity;
+
+ # get all used activity dialogs
+ for my $ActivityDialogEntityID ( @{ $Activity->{ActivityDialogs} } ) {
+
+ my $ActivityDialog = $Self->{ActivityDialogObject}->ActivityDialogGet(
+ EntityID => $ActivityDialogEntityID,
+ UserID => $Self->{UserID},
+ );
+ $ProcessData{ActivityDialogs}->{$ActivityDialogEntityID} = $ActivityDialog;
+ }
+ }
+
+ # get all used transitions
+ for my $TransitionEntityID ( @{ $Process->{Transitions} } ) {
+
+ my $Transition = $Self->{TransitionObject}->TransitionGet(
+ EntityID => $TransitionEntityID,
+ UserID => $Self->{UserID},
+ );
+ $ProcessData{Transitions}->{$TransitionEntityID} = $Transition;
+ }
+
+ # get all used transition actions
+ for my $TransitionActionEntityID ( @{ $Process->{TransitionActions} } ) {
+
+ my $TransitionAction = $Self->{TransitionActionObject}->TransitionActionGet(
+ EntityID => $TransitionActionEntityID,
+ UserID => $Self->{UserID},
+ );
+ $ProcessData{TransitionActions}->{$TransitionActionEntityID} = $TransitionAction;
+ }
+
+ return \%ProcessData;
+}
+
1;
---------------------------------------------------------------------
OTRS mailing list: cvs-log - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/cvs-log
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/cvs-log