diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index 3895d5af3..8e8160651 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -2947,7 +2947,7 @@ sub www_managePrereqSets { $output .= $self->session->icon->delete('func=deletePrereqSet;psid='.$row{prerequisiteId}, $self->getUrl, $i18n->echo('are you sure you want to delete this prerequisite set this will also unlink any events that are currently set to require this prerequisite set')). $self->session->icon->edit('func=editPrereqSet;psid='.$row{prerequisiteId}, $self->getUrl). - " ".$row{name}."
"; + " ".$row{name}."
"; } } else { $output .= $i18n->echo('you do not have any prerequisite sets to display'); @@ -2958,4 +2958,96 @@ sub www_managePrereqSets { } +#------------------------------------------------------------------- +sub www_editPrereqSet { + my $self = shift; + my $psid = shift || $self->session->form->process("psid") || 'new'; + my $error = shift; + return $self->session->privilege->insufficient unless ($self->canAddEvents); + my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem'); + my $f = WebGUI::HTMLForm->new($self->session, ( + action => $self->getUrl."?func=editPrereqSetSave;psid=".$psid + )); + my $data = {}; + if ($error) { + # load submitted data. + $data = { + name => $self->session->form->process("name"), + requiredEvents => $self->session->form->process("requiredEvents",'selectList'), + }; + $f->readOnly( + -name => 'error', + -label => 'Error:', + -value => ''.$error.'', + ); + } elsif ($psid eq 'new') { + $data->{name} = $i18n->get('type name here') + } else { + $data = $self->session->db->quickHashRef("select * from EventManagementSystem_prerequisites where prequisiteId=?",[$psid]); + } + $f->text( + -name => "name", + -label => $i18n->echo('prereq set name field label'), + -hoverHelp => $i18n->echo('prereq set name field description'), + -extras=>(($data->{name} eq $i18n->get('type name here'))?' style="color:#bbbbbb" ':'').' onblur="if(!this.value){this.value=\''.$i18n->get('type name here').'\';this.style.color=\'#bbbbbb\';}" onfocus="if(this.value == \''.$i18n->get('type name here').'\'){this.value=\'\';this.style.color=\'\';}"', + -value => $data->{name}, + ); + $f->radioList( + -name=>"operator", + -vertical=>1, + -label=>$i18n->echo('operator type'), + -hoverHelp => $i18n->echo('whether any or all of the selected events should be required'), + -options=>{ + 'or'=>'any', + 'and'=>'all' + }, + -value=>$data->{operator} + ); + $f->checkList( + -name=>"operator", + -vertical=>1, + -label=>$i18n->echo('events required by this prerequisite set'), + -hoverHelp => $i18n->echo('place a check beside the events that are part of this prerequisite set'), + -options=>$self->session->db->buildHashRef("select p.productId, p.title + from products as p, EventManagementSystem_products as e + where + p.productId = e.productId and approved=1 + and (e.prerequisiteId is NULL or e.prerequisiteId = '')"), + -value=>$self->session->db->buildArrayRef("select requiredProductId from EventManagementSystem_prerequisiteEvents where prerequisiteId=?",[$psid]) + ); + $f->submit; + return $self->_acWrapper($f->print, $i18n->get("edit event metadata field")); +} + +#------------------------------------------------------------------- +sub www_editEventMetaDataFieldSave { + my $self = shift; + return $self->session->privilege->insufficient unless ($self->canAddEvents); + my $error = ''; + my $i18n = WebGUI::International->new($self->session,'Asset_EventManagementSystem'); + foreach ('name','label') { + if ($self->session->form->get($_) eq "" || + $self->session->form->get($_) eq $i18n->get('type name here') || + $self->session->form->get($_) eq $i18n->get('type label here')) { + $error .= sprintf($i18n->get('null field error'),$_)."
"; + } + } + return $self->www_editEventMetaDataField(undef,$error) if $error; + my $newId = $self->setCollateral("EventManagementSystem_metaField", "fieldId",{ + fieldId=>$self->session->form->process('fieldId'), + name => $self->session->form->process("name"), + label => $self->session->form->process("label"), + dataType => $self->session->form->process("dataType",'fieldType'), + visible => $self->session->form->process("visible",'yesNo'), + required => $self->session->form->process("required",'yesNo'), + possibleValues => $self->session->form->process("possibleValues",'textarea'), + defaultValues => $self->session->form->process("defaultValues",'textarea'), + autoSearch => $self->session->form->process("autoSearch",'yesNo') + },1,1); + return $self->www_manageEventMetadata(); +} + + + + 1;