migrate Activity getEditForm to FormBuilder

This commit is contained in:
Doug Bell 2011-02-21 20:17:03 -06:00
parent 37f392b4c8
commit 9ab36a72ee
3 changed files with 108 additions and 10 deletions

View file

@ -385,14 +385,15 @@ sub www_editWorkflowActivity {
$activity = WebGUI::Workflow::Activity->new($session, $session->form->get("activityId"));
}
my $form = $activity->getEditForm;
$form->hidden( name=>"op", value=>"editWorkflowActivitySave");
$form->hidden( name=>"workflowId", value=>$session->form->get("workflowId"));
$form->submit;
$form->action( $session->url->page );
$form->addField( "hidden", name=>"op", value=>"editWorkflowActivitySave");
$form->addField( "hidden", name=>"workflowId", value=> scalar $session->form->get("workflowId"));
$form->addField( "submit", name => "submit" );
my $i18n = WebGUI::International->new($session, "Workflow");
my $ac = WebGUI::AdminConsole->new($session,"workflow");
$ac->addSubmenuItem($session->url->page("op=addWorkflow"), $i18n->get("add a new workflow"));
$ac->addSubmenuItem($session->url->page("op=manageWorkflows"), $i18n->get("manage workflows"));
return $ac->render($form->print,$activity->getName);
return $ac->render($form->toHtml,$activity->getName);
}
#-------------------------------------------------------------------

View file

@ -16,7 +16,7 @@ package WebGUI::Workflow::Activity;
=cut
use strict;
use WebGUI::HTMLForm;
use WebGUI::FormBuilder;
use WebGUI::Pluggable;
=head1 NAME
@ -235,12 +235,17 @@ Returns the form that will be used to edit the properties of an activity.
sub getEditForm {
my $self = shift;
my $form = WebGUI::HTMLForm->new($self->session);
$form->submit;
$form->hidden(name=>"activityId", value=>$self->getId);
$form->hidden(name=>"className", value=>$self->get("className"));
my $form = WebGUI::FormBuilder->new($self->session);
$form->addField( "submit", name => "submit" );
$form->addField( "hidden", name=>"activityId", value=>$self->getId);
$form->addField( "hidden", name=>"className", value=>$self->get("className"));
my $fullDefinition = $self->definition($self->session);
$form->dynamicForm($fullDefinition, "properties", $self);
for my $hash ( map { $_->{properties} } @{$fullDefinition} ) {
for my $fieldName ( keys %$hash ) {
my $field = $hash->{ $fieldName };
$form->addField( delete $field->{fieldType}, name => $fieldName, %$field );
}
}
return $form;
}