more tweaks

This commit is contained in:
JT Smith 2006-02-16 17:20:00 +00:00
parent 010e4cac00
commit b92b4044ec
2 changed files with 48 additions and 9 deletions

View file

@ -103,11 +103,13 @@ sub definition {
name=>$i18n->get("topicName"), name=>$i18n->get("topicName"),
properties=>{ properties=>{
title=>{ title=>{
fieldType=>"text",
defaultValue=>"Untitled", defaultValue=>"Untitled",
label=>$i18n->get("title"), label=>$i18n->get("title"),
hoverHelp=>$i18n->get("title help") hoverHelp=>$i18n->get("title help")
}, },
description=>{ description=>{
fieldType=>"textarea",
defaultValue=>undef, defaultValue=>undef,
label=>$i18n->get("description"), label=>$i18n->get("description"),
hoverHelp=>$i18n->get("description help") hoverHelp=>$i18n->get("description help")
@ -181,16 +183,28 @@ sub get {
#------------------------------------------------------------------- #-------------------------------------------------------------------
=head2 getEditForm ( ) =head2 getEditForm ()
Returns a WebGUI::HTMLForm object that represents the parameters of this activity. This method must be extended by the subclasses. Returns the form that will be used to edit the properties of an activity.
=cut =cut
sub getEditForm { sub getEditForm {
my $self = shift; my $self = shift;
my $form = WebGUI::HTMLForm->new($self->session); my $form = WebGUI::HTMLForm->new($self->session);
return $form; foreach my $definition (reverse @{$self->definition($self->session)}) {
my $properties = $definition->{properties};
foreach my $fieldname (keys %{$properties}) {
my %params;
foreach my $key (keys %{$properties->{$fieldname}}) {
$params{$key} = $properties->{$fieldname}{$key};
}
$params{value} = $self->get($fieldname);
$params{name} = $fieldname;
$form->dynamicField(%params);
}
}
return $form;
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -268,6 +282,30 @@ sub new {
#------------------------------------------------------------------- #-------------------------------------------------------------------
=head2 processPropertiesFromFormPost ( )
Updates activity with data from Form.
=cut
sub processPropertiesFromFormPost {
my $self = shift;
my %data;
foreach my $definition (@{$self->definition($self->session)}) {
foreach my $property (keys %{$definition->{properties}}) {
$data{$property} = $self->session->form->process(
$property,
$definition->{properties}{$property}{fieldType},
$definition->{properties}{$property}{defaultValue}
);
}
}
$data{title} = "Untitled" unless ($data{title});
$self->set(\%data);
}
#-------------------------------------------------------------------
=head2 session ( ) =head2 session ( )
Returns a reference to the current session. Returns a reference to the current session.

View file

@ -81,6 +81,7 @@ sub definition {
name=>$i18n->get("topicName"), name=>$i18n->get("topicName"),
properties=> { properties=> {
storageTimeout => { storageTimeout => {
fieldType=>"interval",
label=>$i18n->get("storage timeout"), label=>$i18n->get("storage timeout"),
defaultValue=>6*60*60, defaultValue=>6*60*60,
hoverHelp=>$i18n->get("storage timeout help") hoverHelp=>$i18n->get("storage timeout help")