diff --git a/lib/WebGUI/Asset/Wobject/Survey.pm b/lib/WebGUI/Asset/Wobject/Survey.pm index 212f46006..53fa3589f 100644 --- a/lib/WebGUI/Asset/Wobject/Survey.pm +++ b/lib/WebGUI/Asset/Wobject/Survey.pm @@ -2797,7 +2797,7 @@ sub www_editTest { else { ##We need a temporary test so that we can call dynamicForm, below $testId = 'new'; - $test = WebGUI::Asset::Wobject::Survey::Test->create($session, { assetId => $self->getId }); + $test = WebGUI::Asset::Wobject::Survey::Test->new($session, { assetId => $self->getId }); } ##Build the form @@ -2805,7 +2805,7 @@ sub www_editTest { $form->hidden( name=>"func", value=>"editTestSave"); $form->hidden( name=>"testId", value=>$testId); $form->hidden( name=>"assetId", value=>$self->getId); - $form->dynamicForm([WebGUI::Asset::Wobject::Survey::Test->crud_definition($session)], 'properties', $test); + $test->crud_form($form, $test); $form->submit; if ($testId eq 'new') { @@ -2849,7 +2849,7 @@ sub www_editTestSave { my $testId = $form->get('testId'); my $test; if ($testId eq 'new') { - $test = WebGUI::Asset::Wobject::Survey::Test->create($session, { assetId => $self->getId }); + $test = WebGUI::Asset::Wobject::Survey::Test->new($session, { assetId => $self->getId }); } else { $test = WebGUI::Asset::Wobject::Survey::Test->new($session, $testId); diff --git a/lib/WebGUI/Asset/Wobject/Survey/Test.pm b/lib/WebGUI/Asset/Wobject/Survey/Test.pm index 45bb8f101..05604c6b1 100644 --- a/lib/WebGUI/Asset/Wobject/Survey/Test.pm +++ b/lib/WebGUI/Asset/Wobject/Survey/Test.pm @@ -1,7 +1,47 @@ package WebGUI::Asset::Wobject::Survey::Test; use strict; -use base qw/WebGUI::Crud/; +use Moose; +use WebGUI::Definition::Crud; +extends qw/WebGUI::Crud/; +define tableName => 'Survey_test'; +define tableKey => 'testId'; +define sequenceKey => 'assetId'; +has testId => ( + required => 1, + is => 'ro', +); +property assetId => ( + label => 'assetId', + fieldType => 'hidden', + default => undef, + ); +property name => ( + fieldType => 'text', + label => [ 'test name', 'Asset_Survey' , ''], + hoverHelp => [ 'test name help', 'Asset_Survey' , ''], + default => '', + ); +property test => ( + fieldType => 'codearea', + label => [ 'test spec', 'Asset_Survey' , ''], + hoverHelp => [ 'test spec help', 'Asset_Survey' , ''], + syntax => 'js', + default => <SUPER::crud_definition($session); - $definition->{tableName} = 'Survey_test'; - $definition->{tableKey} = 'testId'; - $definition->{sequenceKey} = 'assetId'; - my $properties = $definition->{properties}; - my $i18n = WebGUI::International->new($session); - $properties->{assetId} = { - fieldType => 'hidden', - defaultValue => undef, - }; - $properties->{name} = { - fieldType => 'text', - label => $i18n->get( 'test name', 'Asset_Survey' ), - hoverHelp => $i18n->get( 'test name help', 'Asset_Survey' ), - defaultValue => '', - }; - $properties->{test} = { - fieldType => 'codearea', - label => $i18n->get( 'test spec', 'Asset_Survey' ), - hoverHelp => $i18n->get( 'test spec help', 'Asset_Survey' ), - syntax => 'js', - defaultValue => < 'Bail Out! enableSurveyExpressionEngine config option disabled' }; } - my $spec = $self->get('test') + my $spec = $self->test or return { tap => "Bail Out! Test spec undefined" }; # Use JSON::PP rather than JSON::XS so that we can use things like allow_barekey @@ -126,7 +96,7 @@ sub run { return { tap => "Bail Out! Invalid test spec: $error" }; } - my $assetId = $self->get('assetId'); + my $assetId = $self->assetId; my $survey = WebGUI::Asset::Wobject::Survey->newById($session, $assetId); if (!$survey || !$survey->isa('WebGUI::Asset::Wobject::Survey') ) { return { tap => "Bail Out! Unable to instantiate Survey using assetId: $assetId" };