more work on edit submission form
This commit is contained in:
parent
f4cd70f65e
commit
949d9fa80e
3 changed files with 44 additions and 21 deletions
|
|
@ -51,24 +51,30 @@ this is the definition of the field being described by the fields in the tab
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
my $generators;
|
||||||
|
|
||||||
|
use lib '/root/pb/lib'; use dav;
|
||||||
|
|
||||||
sub _generateFields {
|
sub _generateFields {
|
||||||
my $tabform = shift;
|
my $tabform = shift;
|
||||||
my $targetField = shift;
|
my $targetField = shift;
|
||||||
my $dummy == $generators->{dummy};
|
my $dummy = $generators->{dummy};
|
||||||
my $tab = $targetField->{fieldId};
|
my $tab = $tabform->getTab($targetField->{fieldId});
|
||||||
|
|
||||||
|
dav::log '_generateFields::fieldId:', $targetField->{fieldId};
|
||||||
|
|
||||||
# TODO .. add any standard fields to top of tab
|
# TODO .. add any standard fields to top of tab
|
||||||
# hidden fieldID?
|
# hidden fieldID?
|
||||||
# activate field
|
# activate field
|
||||||
# display order
|
# display order
|
||||||
($generators{$targetField->{fieldType}} || $dummy)->($tabform,$targetField);
|
($generators->{$targetField->{fieldType}} || $dummy)->($tabform,$targetField);
|
||||||
# TODO .. add any standard fields to bottom of tab
|
# TODO .. add any standard fields to bottom of tab
|
||||||
# field label
|
# field label
|
||||||
# field help
|
# field help
|
||||||
}
|
}
|
||||||
|
|
||||||
# FUTURE: this list of functions shouldbe defined in the control classes themselves
|
# FUTURE: this list of functions shouldbe defined in the control classes themselves
|
||||||
my %generators = {
|
$generators = {
|
||||||
dummy => sub {
|
dummy => sub {
|
||||||
my $tabform = shift;
|
my $tabform = shift;
|
||||||
my $field = shift;
|
my $field = shift;
|
||||||
|
|
@ -918,6 +924,7 @@ sub www_editSubmissionForm {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
return $self->session->privilege->insufficient() unless $self->canEdit;
|
return $self->session->privilege->insufficient() unless $self->canEdit;
|
||||||
my $session = $self->session;
|
my $session = $self->session;
|
||||||
|
my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem');
|
||||||
my $assetId = shift || $session->form->get('assetId');
|
my $assetId = shift || $session->form->get('assetId');
|
||||||
my $asset;
|
my $asset;
|
||||||
my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem");
|
my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem");
|
||||||
|
|
@ -948,44 +955,50 @@ sub www_editSubmissionForm {
|
||||||
$self->session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $assetId");
|
$self->session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $assetId");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
my $defs = reverse WebGUI::Asset::EMSSubmissionForm->definition($session);
|
|
||||||
my $tabform = WebGUI::TabForm->new($session,undef,undef,$self->getUrl());
|
my $tabform = WebGUI::TabForm->new($session,undef,undef,$self->getUrl());
|
||||||
for my $def ( @$defs ) {
|
|
||||||
# depricated...by WebGUI 8 they all must autogen forms
|
|
||||||
next unless ($definition->{autoGenerateForms});
|
|
||||||
for my $fieldName ( qw/title meuTitle url description/ ) {
|
|
||||||
if( defined $def->{properties}{$fieldName} ) {
|
|
||||||
$def->{properties}{$fieldName}{value} = $asset ? $asset->get($fieldName) : '';
|
|
||||||
$tabform->dynamicField(%{$def->{properties}{$fieldName});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
my $fields;
|
my $fields;
|
||||||
# fixed order for the regular tabs
|
# fixed order for the regular tabs
|
||||||
my @fieldNames = qw/displayTitle startDate duration seatsAvailable
|
my @fieldNames = qw/displayTitle startDate duration seatsAvailable
|
||||||
location relatedBadgeGroups sku vendorId shipsSeparately price/;
|
location relatedBadgeGroups sku vendorId shipsSeparately price/;
|
||||||
$defs = reverse WebGUI::Asset::EMSSubmission->definition($session);
|
my @defs = reverse @{WebGUI::Asset::EMSSubmission->definition($session)};
|
||||||
for my $def ( @$defs ) {
|
dav::dump 'editSubmissionForm::definition:', [@defs];
|
||||||
foreach $fieldName ( @fieldNames ) {
|
for my $def ( @defs ) {
|
||||||
if( defined $def->{$fieldName} ) {
|
foreach my $fieldName ( @fieldNames ) {
|
||||||
$fields->{$fieldName} = { %{$def->{$fieldName}} }; # a simple first level copy
|
my $properties = $def->{properties};
|
||||||
|
if( defined $properties->{$fieldName} ) {
|
||||||
|
$fields->{$fieldName} = { %{$properties->{$fieldName}} }; # a simple first level copy
|
||||||
# field definitions don't contain their own name, we will need it later on
|
# field definitions don't contain their own name, we will need it later on
|
||||||
$fields->{$fieldName}{fieldId} = $fieldName;
|
$fields->{$fieldName}{fieldId} = $fieldName;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# add the meta field tabs
|
# add the meta field tabs
|
||||||
for my $metaField ( $self->getEventMetaFields ) {
|
for my $metaField ( @{$self->getEventMetaFields} ) {
|
||||||
push @fieldNames, $metaField->{fieldId};
|
push @fieldNames, $metaField->{fieldId};
|
||||||
$fields->{$metaField->{fieldId}} = { %$metaField }; # a simple first level copy
|
$fields->{$metaField->{fieldId}} = { %$metaField }; # a simple first level copy
|
||||||
# meta fields call it data type, we copy it to simplify later on
|
# meta fields call it data type, we copy it to simplify later on
|
||||||
$fields->{$metaField->{fieldId}}{fieldType} = $metaField->{dataType};
|
$fields->{$metaField->{fieldId}}{fieldType} = $metaField->{dataType};
|
||||||
}
|
}
|
||||||
|
unshift @fieldNames, 'main';
|
||||||
|
$fields->{main} = { label => $i18n->get('main tab label'), fieldId => 'main' };
|
||||||
# create tabs
|
# create tabs
|
||||||
for my $tabname ( @fieldNames ) {
|
for my $tabname ( @fieldNames ) {
|
||||||
$tabform->addTab($tabname, $fields->{$tabname}{label}, $0 );
|
$tabform->addTab($tabname, $fields->{$tabname}{label}, $0 );
|
||||||
}
|
}
|
||||||
|
my $maintab = $tabform->getTab('main');
|
||||||
|
@defs = reverse @{WebGUI::Asset::EMSSubmissionForm->definition($session)};
|
||||||
|
for my $def ( @defs ) {
|
||||||
|
my $properties = $def->{properties};
|
||||||
|
for my $fieldName ( qw/title menuTitle url description/ ) {
|
||||||
|
if( defined $properties->{$fieldName} ) {
|
||||||
|
$properties->{$fieldName}{value} = $asset ? $asset->get($fieldName) : '';
|
||||||
|
$maintab->dynamicField($properties->{$fieldName});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dav::dump 'editSubmissionForm::dump before generate:',$fields;
|
||||||
for my $field ( values %$fields ) {
|
for my $field ( values %$fields ) {
|
||||||
|
next if $field->{fieldId} eq 'main' ;
|
||||||
_generateFields($tabform, $field);
|
_generateFields($tabform, $field);
|
||||||
}
|
}
|
||||||
return $self->processStyle(
|
return $self->processStyle(
|
||||||
|
|
|
||||||
|
|
@ -1944,6 +1944,12 @@ normal templates.|,
|
||||||
context => q|Label for list of submission forms; user must choose one to edit.|,
|
context => q|Label for list of submission forms; user must choose one to edit.|,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
'main tab label' => {
|
||||||
|
message => q|Main|,
|
||||||
|
lastUpdated => 1147050475,
|
||||||
|
context => q|This is the label for te main tab in the edit submissionnForm form|,
|
||||||
|
},
|
||||||
|
|
||||||
# 'TODO' => {
|
# 'TODO' => {
|
||||||
# message => q|TODO|,
|
# message => q|TODO|,
|
||||||
# lastUpdated => 1147050475,
|
# lastUpdated => 1147050475,
|
||||||
|
|
|
||||||
|
|
@ -347,6 +347,10 @@ is( $sub2, undef, 'approval created a ticket');
|
||||||
|
|
||||||
$versionTag->commit;
|
$versionTag->commit;
|
||||||
|
|
||||||
|
# TODO either remove this or make it a real test.
|
||||||
|
loginAdmin;
|
||||||
|
print $ems->www_addSubmissionForm;
|
||||||
|
|
||||||
#done_testing();
|
#done_testing();
|
||||||
#print 'press return to complete test' ; <>;
|
#print 'press return to complete test' ; <>;
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue