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
|
||||
|
||||
my $generators;
|
||||
|
||||
use lib '/root/pb/lib'; use dav;
|
||||
|
||||
sub _generateFields {
|
||||
my $tabform = shift;
|
||||
my $targetField = shift;
|
||||
my $dummy == $generators->{dummy};
|
||||
my $tab = $targetField->{fieldId};
|
||||
my $dummy = $generators->{dummy};
|
||||
my $tab = $tabform->getTab($targetField->{fieldId});
|
||||
|
||||
dav::log '_generateFields::fieldId:', $targetField->{fieldId};
|
||||
|
||||
# TODO .. add any standard fields to top of tab
|
||||
# hidden fieldID?
|
||||
# activate field
|
||||
# display order
|
||||
($generators{$targetField->{fieldType}} || $dummy)->($tabform,$targetField);
|
||||
($generators->{$targetField->{fieldType}} || $dummy)->($tabform,$targetField);
|
||||
# TODO .. add any standard fields to bottom of tab
|
||||
# field label
|
||||
# field help
|
||||
}
|
||||
|
||||
# FUTURE: this list of functions shouldbe defined in the control classes themselves
|
||||
my %generators = {
|
||||
$generators = {
|
||||
dummy => sub {
|
||||
my $tabform = shift;
|
||||
my $field = shift;
|
||||
|
|
@ -918,6 +924,7 @@ sub www_editSubmissionForm {
|
|||
my $self = shift;
|
||||
return $self->session->privilege->insufficient() unless $self->canEdit;
|
||||
my $session = $self->session;
|
||||
my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem');
|
||||
my $assetId = shift || $session->form->get('assetId');
|
||||
my $asset;
|
||||
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");
|
||||
}
|
||||
}
|
||||
my $defs = reverse WebGUI::Asset::EMSSubmissionForm->definition($session);
|
||||
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;
|
||||
# fixed order for the regular tabs
|
||||
my @fieldNames = qw/displayTitle startDate duration seatsAvailable
|
||||
location relatedBadgeGroups sku vendorId shipsSeparately price/;
|
||||
$defs = reverse WebGUI::Asset::EMSSubmission->definition($session);
|
||||
for my $def ( @$defs ) {
|
||||
foreach $fieldName ( @fieldNames ) {
|
||||
if( defined $def->{$fieldName} ) {
|
||||
$fields->{$fieldName} = { %{$def->{$fieldName}} }; # a simple first level copy
|
||||
my @defs = reverse @{WebGUI::Asset::EMSSubmission->definition($session)};
|
||||
dav::dump 'editSubmissionForm::definition:', [@defs];
|
||||
for my $def ( @defs ) {
|
||||
foreach my $fieldName ( @fieldNames ) {
|
||||
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
|
||||
$fields->{$fieldName}{fieldId} = $fieldName;
|
||||
};
|
||||
}
|
||||
}
|
||||
# add the meta field tabs
|
||||
for my $metaField ( $self->getEventMetaFields ) {
|
||||
for my $metaField ( @{$self->getEventMetaFields} ) {
|
||||
push @fieldNames, $metaField->{fieldId};
|
||||
$fields->{$metaField->{fieldId}} = { %$metaField }; # a simple first level copy
|
||||
# meta fields call it data type, we copy it to simplify later on
|
||||
$fields->{$metaField->{fieldId}}{fieldType} = $metaField->{dataType};
|
||||
}
|
||||
unshift @fieldNames, 'main';
|
||||
$fields->{main} = { label => $i18n->get('main tab label'), fieldId => 'main' };
|
||||
# create tabs
|
||||
for my $tabname ( @fieldNames ) {
|
||||
$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 ) {
|
||||
next if $field->{fieldId} eq 'main' ;
|
||||
_generateFields($tabform, $field);
|
||||
}
|
||||
return $self->processStyle(
|
||||
|
|
|
|||
|
|
@ -1944,6 +1944,12 @@ normal templates.|,
|
|||
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' => {
|
||||
# message => q|TODO|,
|
||||
# lastUpdated => 1147050475,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue