%init>
use OpenXPKI::Client::HTML::Mason::CRR;
use OpenXPKI::Exception;
use English;
use Data::Dumper;
if (!defined $ARGS{'workflow_type'}) {
# no form data is present, let user search for cert
$m->comp('/service/create_crr/search.mhtml');
}
else {
# form has been submitted, try to create CRR object
my $crr;
eval {
$crr = OpenXPKI::Client::HTML::Mason::CRR->new({
%ARGS,
client => $context->{client},
});
$crr->validate();
};
if (my $exc = OpenXPKI::Exception->caught()) {
# failed for some reason, redisplay form with errors
$m->comp('/service/create_crr/form.html',
crr => $crr,
cert_identifier => $ARGS{'cert_identifier'},
);
return;
}
elsif ($EVAL_ERROR) {
# crashed, display error page
my $error = $EVAL_ERROR;
$m->comp('/service/create_crr/error.mhtml',
error => $error,
);
return;
}
# try to create workflow from CRR object
eval {
$crr->create_workflow();
};
if ($EVAL_ERROR) {
my $error = $EVAL_ERROR;
# crashed, display error page
$m->comp('/service/create_crr/error.mhtml',
error => $error,
);
}
else {
# everything is fine, display freshly created workflow
return $m->comp ('/service/workflow/show_instance.html',
type => $crr->get_workflow_type(),
id => $crr->get_workflow_id(),
);
}
}
%init>