diff --git a/docs/migration.txt b/docs/migration.txt index b1aaee578..722178cc7 100644 --- a/docs/migration.txt +++ b/docs/migration.txt @@ -96,6 +96,8 @@ The following tips should also help make your migration easer: lib/WebGUI/Asset/File.pm or lib/WebGUI/Asset/File/Image.pm the same way that the Article wobject does. + 1.2.14 The parameters for the wobject processTemplate() method have changed. + 2. Macro Migration ------------------- diff --git a/docs/upgrades/upgrade_6.2.9-6.3.0.pl b/docs/upgrades/upgrade_6.2.9-6.3.0.pl index e1d714368..96d0bd73e 100644 --- a/docs/upgrades/upgrade_6.2.9-6.3.0.pl +++ b/docs/upgrades/upgrade_6.2.9-6.3.0.pl @@ -82,6 +82,10 @@ WebGUI::SQL->write("alter table wobject add cacheTimeout int not null default 60 WebGUI::SQL->write("alter table wobject add cacheTimeoutVisitor int not null default 3600"); WebGUI::SQL->write("alter table wobject drop primary key"); WebGUI::SQL->write("alter table Poll_answer add column assetId varchar(22)"); +WebGUI::SQL->write("alter table DataForm_entry add column assetId varchar(22)"); +WebGUI::SQL->write("alter table DataForm_entryData add column assetId varchar(22)"); +WebGUI::SQL->write("alter table DataForm_field add column assetId varchar(22)"); +WebGUI::SQL->write("alter table DataForm_tab add column assetId varchar(22)"); # next 2 lines are for sitemap to nav migration WebGUI::SQL->write("alter table Navigation rename tempoldnav"); WebGUI::SQL->write("create table Navigation (assetId varchar(22) not null primary key, assetsToInclude text, startType varchar(35), startPoint varchar(255), endPoint varchar(35), showSystemPages int not null default 0, showHiddenPages int not null default 0, showUnprivilegedPages int not null default 0)"); @@ -144,6 +148,10 @@ WebGUI::SQL->write("delete from template where namespace in ('SiteMap')"); WebGUI::SQL->write("alter table Article drop column image"); WebGUI::SQL->write("alter table Article drop column attachment"); WebGUI::SQL->write("alter table Poll_answer drop column wobjectId"); +WebGUI::SQL->write("alter table DataForm_entry drop column wobjectId"); +WebGUI::SQL->write("alter table DataForm_entryData drop column wobjectId"); +WebGUI::SQL->write("alter table DataForm_field drop column wobjectId"); +WebGUI::SQL->write("alter table DataForm_tab drop column wobjectId"); my %migration; @@ -764,9 +772,11 @@ sub walkTree { # migrate submission images } elsif ($wobject->{namespace} eq "MessageBoard") { # migrate forums - } elsif ($wobject->{namespace} eq "Poll") { - print "\t\t\tMigrating poll answers\n" unless ($quiet); - WebGUI::SQL->write("update Poll_answer set assetId=".quote($wobjectId)." where wobjectId=".quote($wobject->{wobjectId})); + } elsif (isIn($wobject->{namespace}, qw(DataForm Poll))) { + print "\t\t\tMigrating wobject collateral data\n" unless ($quiet); + foreach my $table (qw(DataForm_entry DataForm_entryData DataForm_field DataForm_tab Poll_answer)) { + WebGUI::SQL->write("update $table set assetId=".quote($wobjectId)." where wobjectId=".quote($wobject->{wobjectId})); + } } $rank++; } diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 2c0389f23..8c155c317 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -636,10 +636,10 @@ sub getEditForm { value=>$session{form}{class} }); } - if ($session{form}{afterEdit}) { + if ($session{form}{proceed}) { $tabform->hidden({ - name=>"afterEdit", - value=>$session{form}{afterEdit} + name=>"proceed", + value=>$session{form}{proceed} }); } $tabform->addTab("properties",WebGUI::International::get("properties","Asset")); @@ -1668,8 +1668,11 @@ sub www_editSave { } $object->processPropertiesFromFormPost; $object->updateHistory("edited"); - return $self->www_manageAssets if ($session{form}{afterEdit} eq "assetManager" && $session{form}{assetId} eq "new"); - return $object->getParent->www_manageAssets if ($session{form}{afterEdit} eq "assetManager"); + return $self->www_manageAssets if ($session{form}{proceed} eq "manageAssets" && $session{form}{assetId} eq "new"); + if (exists $session{form}{proceed}) { + my $method = "www_".$session{form}{proceed}; + return $object->getParent->$method(); + } return $object->www_view; } @@ -1907,7 +1910,7 @@ sub www_manageAssets {  
'.WebGUI::International::get(1083).'
'; - foreach my $link (@{$self->getAssetAdderLinks("afterEdit=assetManager")}) { + foreach my $link (@{$self->getAssetAdderLinks("proceed=manageAssets")}) { $output .= ''.$link->{label}.'
'; } $output .= '
'; diff --git a/lib/WebGUI/Asset/FilePile.pm b/lib/WebGUI/Asset/FilePile.pm index 99d769649..06720bc65 100644 --- a/lib/WebGUI/Asset/FilePile.pm +++ b/lib/WebGUI/Asset/FilePile.pm @@ -62,10 +62,10 @@ sub edit { name=>"class", value=>"WebGUI::Asset::FilePile" }); - if ($session{form}{afterEdit}) { + if ($session{form}{proceed}) { $tabform->hidden({ - name=>"afterEdit", - value=>$session{form}{afterEdit} + name=>"proceed", + value=>$session{form}{proceed} }); } $tabform->addTab("properties",WebGUI::International::get("properties","Asset")); @@ -185,7 +185,7 @@ sub editSave { $newAsset->generateThumbnail if ($class eq "WebGUI::Asset::File::Image"); } $tempStorage->delete; - return $parent->www_manageAssets if ($session{form}{afterEdit} eq "assetManager"); + return $parent->www_manageAssets if ($session{form}{proceed} eq "manageAssets"); return $parent->www_view; } diff --git a/lib/WebGUI/Asset/Wobject.pm b/lib/WebGUI/Asset/Wobject.pm index 6c9e33177..62c50b8fa 100644 --- a/lib/WebGUI/Asset/Wobject.pm +++ b/lib/WebGUI/Asset/Wobject.pm @@ -433,6 +433,15 @@ sub processMacros { return WebGUI::Macro::process($_[1]); } +#------------------------------------------------------------------- +sub processPropertiesFromFormPost { + my $self = shift; + my $output = $self->SUPER::processPropertiesFromFormPost; + WebGUI::MetaData::metaDataSave($self->getId); +} + + + #------------------------------------------------------------------- =head2 processTemplate ( vars, namespace [ , templateId ] ) @@ -650,25 +659,6 @@ sub www_createShortcut { } -#------------------------------------------------------------------- - -=head2 www_editSave ( ) - -Saves the default properties of any/all wobjects. - -B This method should only need to be extended if you need to do some special validation that you can't achieve via filters. - -=cut - -sub www_editSave { - my $self = shift; - my $output = $self->SUPER::www_editSave(); - WebGUI::MetaData::metaDataSave($self->getId); - return $output; -} - - - #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Wobject/Article.pm b/lib/WebGUI/Asset/Wobject/Article.pm index 6408b0920..cf7fdfad6 100644 --- a/lib/WebGUI/Asset/Wobject/Article.pm +++ b/lib/WebGUI/Asset/Wobject/Article.pm @@ -177,7 +177,7 @@ sub view { #------------------------------------------------------------------- sub www_edit { my $self = shift; - return WebGUI::Privilege::insufficient() unless $self->canEdit; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; $self->getAdminConsole->setHelp("article add/edit"); return $self->getAdminConsole->render($self->getEditForm->print,WebGUI::International::get("12","Article")); } diff --git a/lib/WebGUI/Asset/Wobject/DataForm.pm b/lib/WebGUI/Asset/Wobject/DataForm.pm index 05a69f4a1..5514bf26b 100644 --- a/lib/WebGUI/Asset/Wobject/DataForm.pm +++ b/lib/WebGUI/Asset/Wobject/DataForm.pm @@ -26,7 +26,6 @@ use WebGUI::Privilege; use WebGUI::Session; use WebGUI::SQL; use WebGUI::Style; -use WebGUI::TabForm; use WebGUI::URL; use WebGUI::Asset::Wobject; use WebGUI::Utility; @@ -85,23 +84,27 @@ sub _createField { #------------------------------------------------------------------- sub _fieldAdminIcons { - my $fid = $_[1]; - my $tid = $_[2]; + my $self = shift; + my $fid = shift; + my $tid = shift; + my $cantDelete = shift; my $output; - $output = deleteIcon('func=deleteFieldConfirm&wid='.$_[0]->get("wobjectId").'&fid='.$fid.'&tid='.$tid,'',WebGUI::International::get(19,$_[0]->get("namespace"))) unless ($_[3]); - $output .= editIcon('func=editField&wid='.$_[0]->get("wobjectId").'&fid='.$fid.'&tid='.$tid) - .moveUpIcon('func=moveFieldUp&wid='.$_[0]->get("wobjectId").'&fid='.$fid.'&tid='.$tid) - .moveDownIcon('func=moveFieldDown&wid='.$_[0]->get("wobjectId").'&fid='.$fid.'&tid='.$tid); + $output = deleteIcon('func=deleteFieldConfirm&fid='.$fid.'&tid='.$tid,$self->get("url"),WebGUI::International::get(19,"DataForm")) unless ($cantDelete); + $output .= editIcon('func=editField&fid='.$fid.'&tid='.$tid,$self->get("url")) + .moveUpIcon('func=moveFieldUp&fid='.$fid.'&tid='.$tid,$self->get("url")) + .moveDownIcon('func=moveFieldDown&fid='.$fid.'&tid='.$tid,$self->get("url")); return $output; } #------------------------------------------------------------------- sub _tabAdminIcons { - my $tid = $_[1]; + my $self = shift; + my $tid = shift; + my $cantDelete = shift; my $output; - $output = deleteIcon('func=deleteTabConfirm&wid='.$_[0]->get("wobjectId").'&tid='.$tid,'',WebGUI::International::get(100,$_[0]->get("namespace"))) unless ($_[2]); - $output .= editIcon('func=editTab&wid='.$_[0]->get("wobjectId").'&tid='.$tid) - .moveLeftIcon('func=moveTabLeft&wid='.$_[0]->get("wobjectId").'&tid='.$tid) - .moveRightIcon('func=moveTabRight&wid='.$_[0]->get("wobjectId").'&tid='.$tid); + $output = deleteIcon('func=deleteTabConfirm&tid='.$tid,$self->get("url"),WebGUI::International::get(100,"DataForm")) unless ($cantDelete); + $output .= editIcon('func=editTab&tid='.$tid,$self->get("url")) + .moveLeftIcon('func=moveTabLeft&tid='.$tid,$self->get("url")) + .moveRightIcon('func=moveTabRight&tid='.$tid,$self->get("url")); return $output; } @@ -114,40 +117,120 @@ sub _tonull { #------------------------------------------------------------------- sub _createTabInit { - my $wid = $_[0]; - my @tabCount = WebGUI::SQL->quickArray("select count(DataForm_tabId) from DataForm_tab where wobjectId=".quote($wid)); + my $id = shift; + my @tabCount = WebGUI::SQL->quickArray("select count(DataForm_tabId) from DataForm_tab where assetId=".quote($id)); my $output = ''; return $output; } +#------------------------------------------------------------------- +sub definition { + my $class = shift; + my $definition = shift; + push(@{$definition}, { + tableName=>'DataForm', + className=>'WebGUI::Asset::Wobject::DataForm', + properties=>{ + acknowledgement=>{ + fieldType=>"textarea", + defaultValue=>undef + }, + emailTemplateId=>{ + fieldType=>"template", + defaultValue=>undef + }, + acknowlegementTemplateId=>{ + defaultValue=>undef, + fieldType=>"template" + }, + listTemplateId=>{ + defaultValue=>undef, + fieldType=>"template" + }, + mailData=>{ + defaultValue=>0, + fieldType=>"yesNo" + } + } + }); + return $class->SUPER::definition($definition); +} + #------------------------------------------------------------------- sub duplicate { - my ($w, %dataField, %dataTab, $sthField, $sthTab, $newTabId); + my $self = shift; + my $newAsset = $self->SUPER::duplicate; + my (%dataField, %dataTab, $sthField, $sthTab, $newTabId); tie %dataTab, 'Tie::CPHash'; tie %dataField, 'Tie::CPHash'; - $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::DataForm->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $sthTab = WebGUI::SQL->read("select * from DataForm_tab where wobjectId=".quote($_[0]->get("wobjectId"))); + $sthTab = WebGUI::SQL->read("select * from DataForm_tab where assetId=".quote($self->getId)); while (%dataTab = $sthTab->hash) { - $sthField = WebGUI::SQL->read("select * from DataForm_field where wobjectId=".quote($_[0]->get("wobjectId"))." AND DataForm_tabId=".quote($dataTab{DataForm_tabId})); + $sthField = WebGUI::SQL->read("select * from DataForm_field where assetId=".quote($self->getId)." AND DataForm_tabId=".quote($dataTab{DataForm_tabId})); $dataTab{DataForm_tabId} = "new"; - $newTabId = $w->setCollateral("DataForm_tab","DataForm_tabId",\%dataTab); + $newTabId = $newAsset->setCollateral("DataForm_tab","DataForm_tabId",\%dataTab); while (%dataField = $sthField->hash) { $dataField{DataForm_fieldId} = "new"; $dataField{DataForm_tabId} = $newTabId; - $w->setCollateral("DataForm_field","DataForm_fieldId",\%dataField); + $newAsset->setCollateral("DataForm_field","DataForm_fieldId",\%dataField); } $sthField->finish; } - $sthField = WebGUI::SQL->read("select * from DataForm_field where wobjectId=".quote($_[0]->get("wobjectId"))." AND DataForm_tabId='0'"); + $sthField = WebGUI::SQL->read("select * from DataForm_field where assetId=".quote($self->getId)." AND DataForm_tabId='0'"); while (%dataField = $sthField->hash) { $dataField{DataForm_fieldId} = "new"; - $w->setCollateral("DataForm_field","DataForm_fieldId",\%dataField); + $newAsset->setCollateral("DataForm_field","DataForm_fieldId",\%dataField); } $sthField->finish; $sthTab->finish; } +#------------------------------------------------------------------- +sub getEditForm { + my $self = shift; + my $tabform = $self->SUPER::getEditForm; + $tabform->getTab("display")->template( + -name=>"emailTemplateId", + -value=>$self->getValue("emailTemplateId"), + -namespace=>"DataForm", + -label=>WebGUI::International::get(80,"DataForm"), + -afterEdit=>'func=edit' + ); + $tabform->getTab("display")->template( + -name=>"acknowlegementTemplateId", + -value=>$self->getValue("acknowlegementTemplateId"), + -namespace=>"DataForm", + -label=>WebGUI::International::get(81,"DataForm"), + -afterEdit=>'func=edit' + ); + $tabform->getTab("display")->template( + -name=>"listTemplateId", + -value=>$self->getValue("listTemplateId"), + -namespace=>"DataForm/List", + -label=>WebGUI::International::get(87,"DataForm"), + -afterEdit=>'func=edit' + ); + $tabform->getTab("properties")->HTMLArea( + -name=>"acknowledgement", + -label=>WebGUI::International::get(16, "DataForm"), + -value=>($self->get("acknowledgement") || WebGUI::International::get(3, "DataForm")) + ); + $tabform->getTab("properties")->yesNo( + -name=>"mailData", + -label=>WebGUI::International::get(74,"DataForm"), + -value=>$self->getValue("mailData") + ); + if ($self->getId eq "new" && $session{form}{proceed} ne "manageAssets") { + $self->getTab("properties")->whatNext( + -options=>{ + addField=>WebGUI::International::get(76,"DataForm"), + backToPage=>WebGUI::International::get(745) + }, + -value=>"editField" + ); + } + return $tabform; +} + #------------------------------------------------------------------- sub getIcon { my $self = shift; @@ -219,10 +302,10 @@ sub getListTemplateVars { my $self = shift; my $var = shift; my @fieldLoop; - $var->{"back.url"} = WebGUI::URL::page(); - $var->{"back.label"} = WebGUI::International::get(18,$self->get("namespace")); + $var->{"back.url"} = $self->getUrl; + $var->{"back.label"} = WebGUI::International::get(18,"DataForm"); my $a = WebGUI::SQL->read("select DataForm_fieldId,name,label,isMailField,type from DataForm_field - where wobjectId=".quote($self->get("wobjectId"))." order by sequenceNumber"); + where assetId=".quote($self->getId)." order by sequenceNumber"); while (my $field = $a->hashRef) { push(@fieldLoop,{ "field.name"=>$field->{name}, @@ -236,7 +319,7 @@ sub getListTemplateVars { $var->{field_loop} = \@fieldLoop; my @recordLoop; my $a = WebGUI::SQL->read("select ipAddress,username,userid,submissionDate,DataForm_entryId from DataForm_entry - where wobjectId=".quote($self->get("wobjectId"))." order by submissionDate desc"); + where assetId=".quote($self->getId)." order by submissionDate desc"); while (my $record = $a->hashRef) { my @dataLoop; my $b = WebGUI::SQL->read("select b.name, b.label, b.isMailField, a.value from DataForm_entryData a left join DataForm_field b @@ -253,10 +336,10 @@ sub getListTemplateVars { $b->finish; push(@recordLoop,{ "record.ipAddress"=>$record->{ipAddress}, - "record.edit.url"=>WebGUI::URL::page("func=view&entryId=".$record->{DataForm_entryId}."&wid=".$self->get("wobjectId")), - "record.edit.icon"=>editIcon("func=view&entryId=".$record->{DataForm_entryId}."&wid=".$self->get("wobjectId")), - "record.delete.url"=>WebGUI::URL::page("func=deleteEntry&entryId=".$record->{DataForm_entryId}."&wid=".$self->get("wobjectId")), - "record.delete.icon"=>deleteIcon("func=deleteEntry&entryId=".$record->{DataForm_entryId}."&wid=".$self->get("wobjectId"),'',WebGUI::International::get('Delete entry confirmation',$self->get('namespace'))), + "record.edit.url"=>$self->getUrl("func=view&entryId=".$record->{DataForm_entryId}), + "record.edit.icon"=>editIcon("func=view&entryId=".$record->{DataForm_entryId}), + "record.delete.url"=>$self->getUrl("func=deleteEntry&entryId=".$record->{DataForm_entryId}), + "record.delete.icon"=>deleteIcon("func=deleteEntry&entryId=".$record->{DataForm_entryId},'',WebGUI::International::get('Delete entry confirmation',"DataForm")), "record.username"=>$record->{username}, "record.userId"=>$record->{userId}, "record.submissionDate.epoch"=>$record->{submissionDate}, @@ -276,27 +359,26 @@ sub getRecordTemplateVars { my $var = shift; $var->{error_loop} = [] unless (exists $var->{error_loop}); $var->{canEdit} = ($self->canEdit); - $var->{"entryList.url"} = WebGUI::URL::page('func=view&entryId=list&wid='.$self->get("wobjectId")); - $var->{"entryList.label"} = WebGUI::International::get(86,$self->get("namespace")); - $var->{"export.tab.url"} = WebGUI::URL::page('func=exportTab&wid='.$self->get("wobjectId")); - $var->{"export.tab.label"} = WebGUI::International::get(84,$self->get("namespace")); - $var->{"delete.url"} = WebGUI::URL::page('func=deleteEntry&wid='.$self->get("wobjectId").'&entryId='.$var->{entryId}); - $var->{"delete.label"} = WebGUI::International::get(90,$self->get("namespace")); - $var->{"back.url"} = WebGUI::URL::page(); - $var->{"back.label"} = WebGUI::International::get(18,$self->get("namespace")); - $var->{"addField.url"} = WebGUI::URL::page('func=editField&wid='.$self->get("wobjectId")); - $var->{"addField.label"} = WebGUI::International::get(76,$self->get("namespace")); + $var->{"entryList.url"} = $self->getUrl('func=view&entryId=list'); + $var->{"entryList.label"} = WebGUI::International::get(86,"DataForm"); + $var->{"export.tab.url"} = $self->getUrl('func=exportTab'); + $var->{"export.tab.label"} = WebGUI::International::get(84,"DataForm"); + $var->{"delete.url"} = $self->getUrl('func=deleteEntry&entryId='.$var->{entryId}); + $var->{"delete.label"} = WebGUI::International::get(90,"DataForm"); + $var->{"back.url"} = $self->getUrl; + $var->{"back.label"} = WebGUI::International::get(18,"DataForm"); + $var->{"addField.url"} = $self->getUrl('func=editField'); + $var->{"addField.label"} = WebGUI::International::get(76,"DataForm"); # add Tab label, url, header and init - $var->{"addTab.label"}= WebGUI::International::get(105,$self->get("namespace"));; - $var->{"addTab.url"}= WebGUI::URL::page('func=editTab&wid='.$self->get("wobjectId")); - $var->{"tab.init"}= _createTabInit($self->get("wobjectId")); - $var->{"form.start"} = WebGUI::Form::formHeader() - .WebGUI::Form::hidden({name=>"wid",value=>$self->get("wobjectId")}) + $var->{"addTab.label"}= WebGUI::International::get(105,"DataForm");; + $var->{"addTab.url"}= $self->getUrl('func=editTab'); + $var->{"tab.init"}= _createTabInit($self->getId); + $var->{"form.start"} = WebGUI::Form::formHeader({action=>$self->getUrl}) .WebGUI::Form::hidden({name=>"func",value=>"process"}); my @tabs; my $select = "select a.name, a.DataForm_fieldId, a.DataForm_tabId,a.label, a.status, a.isMailField, a.subtext, a.type, a.defaultValue, a.possibleValues, a.width, a.rows, a.extras, a.vertical"; my $join; - my $where = "where a.wobjectId=".quote($self->get("wobjectId")); + my $where = "where a.assetId=".quote($self->getId); if ($var->{entryId}) { $var->{"form.start"} .= WebGUI::Form::hidden({name=>"entryId",value=>$var->{entryId}}); my $entry = $self->getCollateral("DataForm_entry","DataForm_entryId",$var->{entryId}); @@ -305,7 +387,7 @@ sub getRecordTemplateVars { $var->{userId} = $entry->{userId}; $var->{date} = WebGUI::DateTime::epochToHuman($entry->{submissionDate}); $var->{epoch} = $entry->{submissionDate}; - $var->{"edit.URL"} = WebGUI::URL::page('func=view&wid='.$self->get("wobjectId").'&entryId='.$var->{entryId}); + $var->{"edit.URL"} = $self->getUrl('func=view&entryId='.$var->{entryId}); $where .= " and b.DataForm_entryId=".quote($var->{entryId}); $join = "left join DataForm_entryData as b on a.DataForm_fieldId=b.DataForm_fieldId"; $select .= ", b.value"; @@ -314,7 +396,7 @@ sub getRecordTemplateVars { tie %data, 'Tie::CPHash'; my %tab; tie %tab, 'Tie::CPHash'; - my $tabsth = WebGUI::SQL->read("select * from DataForm_tab where wobjectId=".quote($self->get("wobjectId"))." order by sequenceNumber"); + my $tabsth = WebGUI::SQL->read("select * from DataForm_tab where assetId=".quote($self->getId)." order by sequenceNumber"); while (%tab = $tabsth->hash) { my @fields; my $sth = WebGUI::SQL->read("$select from DataForm_field as a $join $where and a.DataForm_tabId=".quote($tab{DataForm_tabId})." order by a.sequenceNumber"); @@ -396,63 +478,92 @@ sub getRecordTemplateVars { $var->{field_loop} = \@fields; $tabsth->finish; $var->{tab_loop} = \@tabs; - $var->{"form.send"} = WebGUI::Form::submit({value=>WebGUI::International::get(73, $self->get("namespace"))}); + $var->{"form.send"} = WebGUI::Form::submit({value=>WebGUI::International::get(73, "DataForm")}); $var->{"form.save"} = WebGUI::Form::submit(); $var->{"form.end"} = WebGUI::Form::formFooter(); return $var; } #------------------------------------------------------------------- -sub name { - return WebGUI::International::get(1,$_[0]->get("namespace")); +sub getName { + return WebGUI::International::get(1,"DataForm"); } #------------------------------------------------------------------- -sub definition { - my $class = shift; - my $definition = shift; - push(@{$definition}, { - tableName=>'DataForm', - className=>'WebGUI::Asset::Wobject::DataForm', - properties=>{ - acknowledgement=>{ - fieldType=>"textarea", - defaultValue=>undef - }, - emailTemplateId=>{ - fieldType=>"template", - defaultValue=>undef - }, - acknowlegementTemplateId=>{ - defaultValue=>undef, - fieldType=>"template" - }, - listTemplateId=>{ - defaultValue=>undef, - fieldType=>"template" - }, - mailData=>{ - defaultValue=>0, - fieldType=>"yesNo" - } - } - }); - return $class->SUPER::definition($definition); +sub getUiLevel { + return 5; +} + +#------------------------------------------------------------------- +sub processPropertiesFromFormPost { + my $self = shift; + $self->SUPER::processPropertiesFromFormPost; + if ($session{form}{assetId} eq "new") { + $self->setCollateral("DataForm_field","DataForm_fieldId",{ + DataForm_fieldId=>"new", + name=>"from", + label=>WebGUI::International::get(10,"DataForm"), + status=>"editable", + isMailField=>1, + width=>0, + type=>"email" + }); + $self->setCollateral("DataForm_field","DataForm_fieldId",{ + DataForm_fieldId=>"new", + name=>"to", + label=>WebGUI::International::get(11,"DataForm"), + status=>"hidden", + isMailField=>1, + width=>0, + type=>"email", + defaultValue=>$session{setting}{companyEmail} + }); + $self->setCollateral("DataForm_field","DataForm_fieldId",{ + DataForm_fieldId=>"new", + name=>"cc", + label=>WebGUI::International::get(12,"DataForm"), + status=>"hidden", + isMailField=>1, + width=>0, + type=>"email" + }); + $self->setCollateral("DataForm_field","DataForm_fieldId",{ + DataForm_fieldId=>"new", + name=>"bcc", + label=>WebGUI::International::get(13,"DataForm"), + status=>"hidden", + isMailField=>1, + width=>0, + type=>"email" + }); + $self->setCollateral("DataForm_field","DataForm_fieldId",{ + DataForm_fieldId=>"new", + name=>"subject", + label=>WebGUI::International::get(14,"DataForm"), + status=>"editable", + isMailField=>1, + width=>0, + type=>"text", + defaultValue=>WebGUI::International::get(2,"DataForm") + }); + } } #------------------------------------------------------------------- sub purge { - WebGUI::SQL->write("delete from DataForm_field where wobjectId=".quote($_[0]->get("wobjectId"))); - WebGUI::SQL->write("delete from DataForm_entry where wobjectId=".quote($_[0]->get("wobjectId"))); - WebGUI::SQL->write("delete from DataForm_entryData where wobjectId=".quote($_[0]->get("wobjectId"))); - WebGUI::SQL->write("delete from DataForm_tab where wobjectId=".quote($_[0]->get("wobjectId"))); - $_[0]->SUPER::purge(); + my $self = shift; + WebGUI::SQL->write("delete from DataForm_field where assetId=".quote($self->getId)); + WebGUI::SQL->write("delete from DataForm_entry where assetId=".quote($self->getId)); + WebGUI::SQL->write("delete from DataForm_entryData where assetId=".quote($self->getId)); + WebGUI::SQL->write("delete from DataForm_tab where assetId=".quote($self->getId)); + $self->SUPER::purge(); } #------------------------------------------------------------------- sub sendEmail { - my $var = $_[1]; - my $message = WebGUI::Macro::process($_[0]->processTemplate($_[0]->get("emailTemplateId"),$var)); + my $self = shift; + my $var = shift; + my $message = WebGUI::Macro::process($self->processTemplate($var,"DataForm",$self->get("emailTemplateId"))); my ($to, $subject, $from, $bcc, $cc); foreach my $row (@{$var->{field_loop}}) { if ($row->{"field.name"} eq "to") { @@ -477,7 +588,7 @@ sub sendEmail { ($groupId) = WebGUI::SQL->quickArray("select groupId from groups where groupName=".quote($to)); } unless ($userId || $groupId) { - WebGUI::ErrorHandler::warn($_[0]->get("wobjectId").": Unable to send message, no user or group found."); + WebGUI::ErrorHandler::warn($self->getId.": Unable to send message, no user or group found."); } else { WebGUI::MessageLog::addEntry($userId, $groupId, $subject, $message, "", "", $from); if ($cc) { @@ -490,270 +601,181 @@ sub sendEmail { } } + #------------------------------------------------------------------- -sub uiLevel { - return 5; +sub view { + my $self = shift; + my $passedVars = shift; + my $var; + $var->{entryId} = $session{form}{entryId} if ($self->canEdit); + if ($var->{entryId} eq "list" && $self->canEdit) { + return $self->processTemplate($self->getListTemplateVars,"DataForm/List",$self->get("listTemplateId")); + } + # add Tab StyleSheet and JavaScript + WebGUI::Style::setLink($session{config}{extrasURL}.'/tabs/tabs.css', {"type"=>"text/css"}); + WebGUI::Style::setScript($session{config}{extrasURL}.'/tabs/tabs.js', {"language"=>"JavaScript"}); + $var = $passedVars || $self->getRecordTemplateVars($var); + return $self->processTemplate($var,"DataForm",$self->get("templateId")); } -sub view { - return "DataForm"; -} #------------------------------------------------------------------- sub www_deleteEntry { - return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; my $entryId = $session{form}{entryId}; - WebGUI::SQL->write("delete from DataForm_entry where DataForm_entryId=".quote($entryId)); + $self->deleteCollateral("DataForm_entry","DataForm_entryId",$entryId); $session{form}{entryId} = 'list'; - return $_[0]->www_view(); + return ""; } #------------------------------------------------------------------- sub www_deleteFieldConfirm { - return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); - $_[0]->deleteCollateral("DataForm_field","DataForm_fieldId",$session{form}{fid}); - $_[0]->reorderCollateral("DataForm_field","DataForm_fieldId"); + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; + $self->deleteCollateral("DataForm_field","DataForm_fieldId",$session{form}{fid}); + $self->reorderCollateral("DataForm_field","DataForm_fieldId"); return ""; } #------------------------------------------------------------------- sub www_deleteTabConfirm { - return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); - $_[0]->deleteCollateral("DataForm_tab","DataForm_tabId",$session{form}{tid}); - $_[0]->deleteCollateral("DataForm_field","DataForm_tabId",$session{form}{tid}); - $_[0]->reorderCollateral("DataForm_tab","DataForm_tabId"); + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; + $self->deleteCollateral("DataForm_tab","DataForm_tabId",$session{form}{tid}); + $self->deleteCollateral("DataForm_field","DataForm_tabId",$session{form}{tid}); + $self->reorderCollateral("DataForm_tab","DataForm_tabId"); return ""; } #------------------------------------------------------------------- sub www_edit { - my $layout = WebGUI::HTMLForm->new; - $layout->template( - -name=>"emailTemplateId", - -value=>$_[0]->getValue("emailTemplateId"), - -namespace=>$_[0]->get("namespace"), - -label=>WebGUI::International::get(80,$_[0]->get("namespace")), - -afterEdit=>'func=edit&wid='.$_[0]->get("wobjectId") - ); - $layout->template( - -name=>"acknowlegementTemplateId", - -value=>$_[0]->getValue("acknowlegementTemplateId"), - -namespace=>$_[0]->get("namespace"), - -label=>WebGUI::International::get(81,$_[0]->get("namespace")), - -afterEdit=>'func=edit&wid='.$_[0]->get("wobjectId") - ); - $layout->template( - -name=>"listTemplateId", - -value=>$_[0]->getValue("listTemplateId"), - -namespace=>$_[0]->get("namespace")."/List", - -label=>WebGUI::International::get(87,$_[0]->get("namespace")), - -afterEdit=>'func=edit&wid='.$_[0]->get("wobjectId") - ); - my $properties = WebGUI::HTMLForm->new; - $properties->HTMLArea( - -name=>"acknowledgement", - -label=>WebGUI::International::get(16, $_[0]->get("namespace")), - -value=>($_[0]->get("acknowledgement") || WebGUI::International::get(3, $_[0]->get("namespace"))) - ); - $properties->yesNo( - -name=>"mailData", - -label=>WebGUI::International::get(74,$_[0]->get("namespace")), - -value=>$_[0]->getValue("mailData") - ); - if ($_[0]->get("wobjectId") eq "new") { - $properties->whatNext( - -options=>{ - addField=>WebGUI::International::get(76,$_[0]->get("namespace")), - backToPage=>WebGUI::International::get(745) - }, - -value=>"addField" - ); - } - return $_[0]->SUPER::www_edit( - -properties=>$properties->printRowsOnly, - -layout=>$layout->printRowsOnly, - -helpId=>"data form add/edit", - -headingId=>7 - ); -} - -#------------------------------------------------------------------- -sub www_editSave { - return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); - $_[0]->SUPER::www_editSave(); - if ($session{form}{wid} eq "new") { - $_[0]->setCollateral("DataForm_field","DataForm_fieldId",{ - DataForm_fieldId=>"new", - name=>"from", - label=>WebGUI::International::get(10,$_[0]->get("namespace")), - status=>"editable", - isMailField=>1, - width=>0, - type=>"email" - }); - $_[0]->setCollateral("DataForm_field","DataForm_fieldId",{ - DataForm_fieldId=>"new", - name=>"to", - label=>WebGUI::International::get(11,$_[0]->get("namespace")), - status=>"hidden", - isMailField=>1, - width=>0, - type=>"email", - defaultValue=>$session{setting}{companyEmail} - }); - $_[0]->setCollateral("DataForm_field","DataForm_fieldId",{ - DataForm_fieldId=>"new", - name=>"cc", - label=>WebGUI::International::get(12,$_[0]->get("namespace")), - status=>"hidden", - isMailField=>1, - width=>0, - type=>"email" - }); - $_[0]->setCollateral("DataForm_field","DataForm_fieldId",{ - DataForm_fieldId=>"new", - name=>"bcc", - label=>WebGUI::International::get(13,$_[0]->get("namespace")), - status=>"hidden", - isMailField=>1, - width=>0, - type=>"email" - }); - $_[0]->setCollateral("DataForm_field","DataForm_fieldId",{ - DataForm_fieldId=>"new", - name=>"subject", - label=>WebGUI::International::get(14,$_[0]->get("namespace")), - status=>"editable", - isMailField=>1, - width=>0, - type=>"text", - defaultValue=>WebGUI::International::get(2,$_[0]->get("namespace")) - }); - } - if ($session{form}{proceed} eq "addField") { - return $_[0]->www_editField(); - } - return ""; + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; + $self->getAdminConsole->setHelp("data form add/edit"); + return $self->getAdminConsole->render($self->getEditForm->print,WebGUI::International::get("7","DataForm")); } #------------------------------------------------------------------- sub www_editField { - return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; my (%field, $f, %fieldStatus,$tab); tie %field, 'Tie::CPHash'; tie %fieldStatus, 'Tie::IxHash'; - %fieldStatus = ( - "hidden" => WebGUI::International::get(4, $_[0]->get("namespace")), - "visible" => WebGUI::International::get(5, $_[0]->get("namespace")), - "editable" => WebGUI::International::get(6, $_[0]->get("namespace")), - "required" => WebGUI::International::get(75, $_[0]->get("namespace")) + "hidden" => WebGUI::International::get(4, "DataForm"), + "visible" => WebGUI::International::get(5, "DataForm"), + "editable" => WebGUI::International::get(6, "DataForm"), + "required" => WebGUI::International::get(75, "DataForm") ); $session{form}{fid} = "new" if ($session{form}{fid} eq ""); unless ($session{form}{fid} eq "new") { %field = WebGUI::SQL->quickHash("select * from DataForm_field where DataForm_fieldId=".quote($session{form}{fid})); } - $tab = WebGUI::SQL->buildHashRef("select DataForm_tabId,label from DataForm_tab where wobjectId=".quote($_[0]->get("wobjectId"))); - $tab->{0} = $_[0]->i18n("no tab"); - $f = WebGUI::HTMLForm->new; - $f->hidden("wid",$_[0]->get("wobjectId")); + $tab = WebGUI::SQL->buildHashRef("select DataForm_tabId,label from DataForm_tab where assetId=".quote($self->getId)); + $tab->{0} = WebGUI::International::get("no tab","DataForm"); + $f = WebGUI::HTMLForm->new(-action=>$self->getUrl); $f->hidden("fid",$session{form}{fid}); $f->hidden("func","editFieldSave"); $f->text( -name=>"label", - -label=>WebGUI::International::get(77,$_[0]->get("namespace")), + -label=>WebGUI::International::get(77,"DataForm"), -value=>$field{label} ); $f->text( -name=>"name", - -label=>WebGUI::International::get(21,$_[0]->get("namespace")), + -label=>WebGUI::International::get(21,"DataForm"), -value=>$field{name} ); if($field{sequenceNumber} && ! $field{isMailField}) { $f->integer( -name=>"position", - -label=>WebGUI::International::get('Field Position',$_[0]->get("namespace")), + -label=>WebGUI::International::get('Field Position',"DataForm"), -value=>$field{sequenceNumber} ); } - $f->select( + $f->selectList( -name=>"tid", -options=>$tab, - -label=>WebGUI::International::get(104,$_[0]->get("namespace")), + -label=>WebGUI::International::get(104,"DataForm"), -value=>[ $field{DataForm_tabId}] || [0] ); $f->text( -name=>"subtext", -value=>$field{subtext}, - -label=>WebGUI::International::get(79,$_[0]->get("namespace")), + -label=>WebGUI::International::get(79,"DataForm"), ); - $f->select( + $f->selectList( -name=>"status", -options=>\%fieldStatus, - -label=>WebGUI::International::get(22,$_[0]->get("namespace")), + -label=>WebGUI::International::get(22,"DataForm"), -value=>[ $field{status} ||= "editable" ] ); $f->fieldType( -name=>"type", - -label=>WebGUI::International::get(23,$_[0]->get("namespace")), + -label=>WebGUI::International::get(23,"DataForm"), -value=>[$field{type} ||= "text"] ); $f->integer( -name=>"width", - -label=>WebGUI::International::get(8, $_[0]->get("namespace")), + -label=>WebGUI::International::get(8,"DataForm"), -value=>($field{width} || 0) ); $f->integer( -name=>"rows", -value=>$field{rows} || 0, - -label=>WebGUI::International::get(27, $_[0]->get("namespace")), - -subtext=>WebGUI::International::get(28, $_[0]->get("namespace")), + -label=>WebGUI::International::get(27,"DataForm"), + -subtext=>WebGUI::International::get(28,"DataForm"), ); $f->yesNo( -name=>"vertical", -value=>$field{vertical}, - -label=>WebGUI::International::get('editField-vertical-label', $_[0]->get("namespace")), - -subtext=>WebGUI::International::get('editField-vertical-subtext', $_[0]->get("namespace")) + -label=>WebGUI::International::get('editField-vertical-label', "DataForm"), + -subtext=>WebGUI::International::get('editField-vertical-subtext', "DataForm") ); $f->text( -name=>"extras", -value=>$field{extras}, - -label=>WebGUI::International::get('editField-extras-label', $_[0]->get("namespace")) + -label=>WebGUI::International::get('editField-extras-label', "DataForm") ); $f->textarea( -name=>"possibleValues", - -label=>WebGUI::International::get(24,$_[0]->get("namespace")), + -label=>WebGUI::International::get(24,"DataForm"), -value=>$field{possibleValues}, - -subtext=>'
'.WebGUI::International::get(85,$_[0]->get("namespace")) + -subtext=>'
'.WebGUI::International::get(85,"DataForm") ); $f->textarea( -name=>"defaultValue", - -label=>WebGUI::International::get(25,$_[0]->get("namespace")), + -label=>WebGUI::International::get(25,"DataForm"), -value=>$field{defaultValue}, - -subtext=>'
'.WebGUI::International::get(85,$_[0]->get("namespace")) + -subtext=>'
'.WebGUI::International::get(85,"DataForm") ); - if ($session{form}{fid} eq "new") { + if ($session{form}{fid} eq "new" && $session{form}{proceed} ne "manageAssets") { $f->whatNext( -options=>{ - addField=>WebGUI::International::get(76,$_[0]->get("namespace")), + addField=>WebGUI::International::get(76,"DataForm"), backToPage=>WebGUI::International::get(745) }, -value=>"addField" ); } $f->submit; - return $_[0]->adminConsole($f->print,'20',"data form fields add/edit"); + my $ac = $self->getAdminConsole; + $ac->setHelp("data form fields add/edit","DataForm"); + return $ac->render($f->print,WebGUI::International::get('20',"DataForm")); } #------------------------------------------------------------------- sub www_editFieldSave { - return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; $session{form}{name} = $session{form}{label} if ($session{form}{name} eq ""); $session{form}{tid} = "0" if ($session{form}{tid} eq ""); $session{form}{name} = WebGUI::URL::urlize($session{form}{name}); $session{form}{name} =~ s/\-//g; $session{form}{name} =~ s/\///g; - $_[0]->setCollateral("DataForm_field","DataForm_fieldId",{ + $self->setCollateral("DataForm_field","DataForm_fieldId",{ DataForm_fieldId=>$session{form}{fid}, width=>$session{form}{width}, name=>$session{form}{name}, @@ -772,43 +794,42 @@ sub www_editFieldSave { WebGUI::SQL->write("update DataForm_field set sequenceNumber=".quote($session{form}{position}). " where DataForm_fieldId=".quote($session{form}{fid})); } - $_[0]->reorderCollateral("DataForm_field","DataForm_fieldId", _tonull("DataForm_tabId",$session{form}{tid})) if ($session{form}{fid} ne "new"); + $self->reorderCollateral("DataForm_field","DataForm_fieldId", _tonull("DataForm_tabId",$session{form}{tid})) if ($session{form}{fid} ne "new"); if ($session{form}{proceed} eq "addField") { $session{form}{fid} = "new"; - return $_[0]->www_editField(); + return $self->www_editField(); } return ""; } #------------------------------------------------------------------- sub www_editTab { - return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; my (%tab, $f); tie %tab, 'Tie::CPHash'; - $session{form}{tid} = "new" if ($session{form}{tid} eq ""); unless ($session{form}{tid} eq "new") { %tab = WebGUI::SQL->quickHash("select * from DataForm_tab where DataForm_tabId=".quote($session{form}{tid})); } - $f = WebGUI::HTMLForm->new; - $f->hidden("wid",$_[0]->get("wobjectId")); + $f = WebGUI::HTMLForm->new(-action=>$self->getUrl); $f->hidden("tid",$session{form}{tid}); $f->hidden("func","editTabSave"); $f->text( -name=>"label", - -label=>WebGUI::International::get(101,$_[0]->get("namespace")), + -label=>WebGUI::International::get(101,"DataForm"), -value=>$tab{label} ); $f->textarea( -name=>"subtext", - -label=>WebGUI::International::get(102,$_[0]->get("namespace")), + -label=>WebGUI::International::get(102,"DataForm"), -value=>$tab{subtext}, -subtext=>"" ); if ($session{form}{tid} eq "new") { $f->whatNext( -options=>{ - addTab=>WebGUI::International::get(103,$_[0]->get("namespace")), + addTab=>WebGUI::International::get(103,"DataForm"), backToPage=>WebGUI::International::get(745) }, @@ -816,37 +837,41 @@ sub www_editTab { ); } $f->submit; - return $_[0]->adminConsole($f->print,'20',"data form fields add/edit"); + my $ac = $self->getAdminConsole; + $ac->setHelp("data form fields add/edit","DataForm"); + return $ac->render($f->print,WebGUI::International::get('20',"DataForm")); } #------------------------------------------------------------------- sub www_editTabSave { - return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; $session{form}{name} = $session{form}{label} if ($session{form}{name} eq ""); $session{form}{name} = WebGUI::URL::urlize($session{form}{name}); $session{form}{name} =~ s/\-//g; $session{form}{name} =~ s/\///g; - $_[0]->setCollateral("DataForm_tab","DataForm_tabId",{ + $self->setCollateral("DataForm_tab","DataForm_tabId",{ DataForm_tabId=>$session{form}{tid}, label=>$session{form}{label}, subtext=>$session{form}{subtext} }); if ($session{form}{proceed} eq "addTab") { $session{form}{tid} = "new"; - return $_[0]->www_editTab(); + return $self->www_editTab(); } return ""; } #------------------------------------------------------------------- sub www_exportTab { - return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); - WebGUI::HTTP::setFilename(WebGUI::URL::urlize($_[0]->get("title")).".tab","text/plain"); - my %fields = WebGUI::SQL->buildHash("select DataForm_fieldId,name from DataForm_field where wobjectId=".quote($_[0]->get("wobjectId"))." order by sequenceNumber"); + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; + WebGUI::HTTP::setFilename($self->get("url").".tab","text/plain"); + my %fields = WebGUI::SQL->buildHash("select DataForm_fieldId,name from DataForm_field where assetId=".quote($self->getId)." order by sequenceNumber"); my $select = "select a.DataForm_entryId as entryId, a.ipAddress, a.username, a.userId, a.submissionDate"; my $from = " from DataForm_entry a"; my $join; - my $where = " where a.wobjectId=".quote($_[0]->get("wobjectId")); + my $where = " where a.assetId=".quote($self->getId); my $orderBy = " order by a.DataForm_entryId"; my $columnCounter = "b"; foreach my $fieldId (keys %fields) { @@ -862,37 +887,42 @@ sub www_exportTab { #------------------------------------------------------------------- sub www_moveFieldDown { - return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); - $_[0]->moveCollateralDown("DataForm_field","DataForm_fieldId",$session{form}{fid},_tonull("DataForm_tabId",$session{form}{tid})); + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; + $self->moveCollateralDown("DataForm_field","DataForm_fieldId",$session{form}{fid},_tonull("DataForm_tabId",$session{form}{tid})); return ""; } #------------------------------------------------------------------- sub www_moveFieldUp { - return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); - $_[0]->moveCollateralUp("DataForm_field","DataForm_fieldId",$session{form}{fid},_tonull("DataForm_tabId",$session{form}{tid})); + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; + $self->moveCollateralUp("DataForm_field","DataForm_fieldId",$session{form}{fid},_tonull("DataForm_tabId",$session{form}{tid})); return ""; } #------------------------------------------------------------------- sub www_moveTabRight { - return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); - $_[0]->moveCollateralDown("DataForm_tab","DataForm_tabId",$session{form}{tid}); + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; + $self->moveCollateralDown("DataForm_tab","DataForm_tabId",$session{form}{tid}); return ""; } #------------------------------------------------------------------- sub www_moveTabLeft { - return WebGUI::Privilege::insufficient() unless ($_[0]->canEdit); - $_[0]->moveCollateralUp("DataForm_tab","DataForm_tabId",$session{form}{tid}); + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; + $self->moveCollateralUp("DataForm_tab","DataForm_tabId",$session{form}{tid}); return ""; } #------------------------------------------------------------------- sub www_process { - my $entryId = $_[0]->setCollateral("DataForm_entry","DataForm_entryId",{ + my $self = shift; + my $entryId = $self->setCollateral("DataForm_entry","DataForm_entryId",{ DataForm_entryId=>$session{form}{entryId}, - wobjectId=>$_[0]->get("wobjectId"), + assetId=>$self->getId, userId=>$session{user}{userId}, username=>$session{user}{username}, ipAddress=>$session{env}{REMOTE_ADDR}, @@ -902,7 +932,7 @@ sub www_process { $var->{entryId} = $entryId; tie %row, "Tie::CPHash"; my $sth = WebGUI::SQL->read("select DataForm_fieldId,label,name,status,type,defaultValue,isMailField from DataForm_field - where wobjectId=".quote($_[0]->get("wobjectId"))." order by sequenceNumber"); + where assetId=".quote($self->getId)." order by sequenceNumber"); while (%row = $sth->hash) { my $value = $row{defaultValue}; if ($row{status} eq "required" || $row{status} eq "editable") { @@ -911,7 +941,7 @@ sub www_process { } if ($row{status} eq "required" && ($value =~ /^\s$/ || $value eq "" || not defined $value)) { push (@errors,{ - "error.message"=>$row{label}." ".WebGUI::International::get(29,$_[0]->get("namespace")).".", + "error.message"=>$row{label}." ".WebGUI::International::get(29,"DataForm").".", }); $hadErrors = 1; delete $var->{entryId}; @@ -927,40 +957,24 @@ sub www_process { where DataForm_entryId=".quote($entryId)." and DataForm_fieldId=".quote($row{DataForm_fieldId})); $updating = 1; } else { - WebGUI::SQL->write("insert into DataForm_entryData (DataForm_entryId,DataForm_fieldId,wobjectId,value) values - (".quote($entryId).", ".quote($row{DataForm_fieldId}).", ".quote($_[0]->get("wobjectId")).", ".quote($value).")"); + WebGUI::SQL->write("insert into DataForm_entryData (DataForm_entryId,DataForm_fieldId,assetId,value) values + (".quote($entryId).", ".quote($row{DataForm_fieldId}).", ".quote($self->getId).", ".quote($value).")"); } } } $sth->finish; $var->{error_loop} = \@errors; - $var = $_[0]->getRecordTemplateVars($var); + $var = $self->getRecordTemplateVars($var); if ($hadErrors && !$updating) { WebGUI::SQL->write("delete from DataForm_entryData where DataForm_entryId=".quote($entryId)); - $_[0]->deleteCollateral("DataForm_entry","DataForm_entryId",$entryId); - $_[0]->www_view($var); + $self->deleteCollateral("DataForm_entry","DataForm_entryId",$entryId); + $self->www_view($var); } else { - $_[0]->sendEmail($var) if ($_[0]->get("mailData") && !$updating); - return $_[0]->processTemplate($_[0]->get("acknowlegementTemplateId"),$var); + $self->sendEmail($var) if ($self->get("mailData") && !$updating); + return WebGUI::Style::process($self->processTemplate($var,"DataForm",$self->get("acknowlegementTemplateId")),$self->get("styleTemplateId")); } } -#------------------------------------------------------------------- -sub www_view { - $_[0]->logView() if ($session{setting}{passiveProfilingEnabled}); - my $var; - $var->{entryId} = $session{form}{entryId} if ($_[0]->canEdit); - if ($var->{entryId} eq "list" && $_[0]->canEdit) { - return $_[0]->processTemplate($_[0]->get("listTemplateId"),$_[0]->getListTemplateVars,"DataForm/List"); - } - # add Tab StyleSheet and JavaScript - WebGUI::Style::setLink('/extras/tabs/tabs.css', {"type"=>"text/css"}); - WebGUI::Style::setScript('/extras/tabs/tabs.js', {"language"=>"JavaScript"}); - $var = $_[1] || $_[0]->getRecordTemplateVars($var); - return $_[0]->processTemplate($_[0]->get("templateId"),$var); -} - - 1; diff --git a/lib/WebGUI/Asset/Wobject/Layout.pm b/lib/WebGUI/Asset/Wobject/Layout.pm index 6aaaa6ef6..5d785ada7 100644 --- a/lib/WebGUI/Asset/Wobject/Layout.pm +++ b/lib/WebGUI/Asset/Wobject/Layout.pm @@ -195,6 +195,12 @@ sub view { } +sub www_edit { + my $self = shift; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; + return $self->getAdminConsole->render($self->getEditForm->print,"Edit Layout"); +} + sub www_setContentPositions { my $self = shift; return WebGUI::Style::process(WebGUI::Privilege::insufficient(),$self->get("styleTemplateId")) unless ($self->canEdit); diff --git a/lib/WebGUI/Asset/Wobject/Navigation.pm b/lib/WebGUI/Asset/Wobject/Navigation.pm index ed949f62e..5c5a94c70 100644 --- a/lib/WebGUI/Asset/Wobject/Navigation.pm +++ b/lib/WebGUI/Asset/Wobject/Navigation.pm @@ -343,7 +343,7 @@ sub view { sub www_edit { my $self = shift; - return WebGUI::Privilege::insufficient() unless $self->canEdit; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; $self->getAdminConsole->setHelp("navigation add/edit"); return $self->getAdminConsole->render($self->getEditForm->print,WebGUI::International::get("22","Navigation")); } diff --git a/lib/WebGUI/Asset/Wobject/Poll.pm b/lib/WebGUI/Asset/Wobject/Poll.pm index 3eaf87223..c3e989091 100644 --- a/lib/WebGUI/Asset/Wobject/Poll.pm +++ b/lib/WebGUI/Asset/Wobject/Poll.pm @@ -352,7 +352,7 @@ sub view { #------------------------------------------------------------------- sub www_edit { my $self = shift; - return WebGUI::Privilege::insufficient() unless $self->canEdit; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; $self->getAdminConsole->setHelp("poll add/edit"); return $self->getAdminConsole->render($self->getEditForm->print,WebGUI::International::get("9","Poll")); } diff --git a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm index a0f923705..01d7a836e 100644 --- a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm +++ b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm @@ -373,7 +373,7 @@ sub view { #------------------------------------------------------------------- sub www_edit { my $self = shift; - return WebGUI::Privilege::insufficient() unless $self->canEdit; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; $self->getAdminConsole->setHelp("syndicated content add/edit"); return $self->getAdminConsole->render($self->getEditForm->print,WebGUI::International::get("4","SyndicatedContent")); } diff --git a/lib/WebGUI/Asset/Wobject/USS.pm b/lib/WebGUI/Asset/Wobject/USS.pm index c71a9c782..e07254b32 100644 --- a/lib/WebGUI/Asset/Wobject/USS.pm +++ b/lib/WebGUI/Asset/Wobject/USS.pm @@ -541,7 +541,7 @@ sub www_denySubmission { sub www_edit { my $self = shift; - return WebGUI::Privilege::insufficient() unless $self->canEdit; + return $self->getAdminConsole->render(WebGUI::Privilege::insufficient()) unless $self->canEdit; $self->getAdminConsole->setHelp("user submission system add/edit"); return $self->getAdminConsole->render($self->getEditForm->print,WebGUI::International::get("18","USS")); } diff --git a/sbin/preload.perl b/sbin/preload.perl index 9f10c37e6..2b72e3d38 100644 --- a/sbin/preload.perl +++ b/sbin/preload.perl @@ -58,6 +58,8 @@ use Parse::PlainConfig (); use Date::Manip (); use Tie::CPHash (); use Tie::IxHash (); +# use XML::RSSLite (); +use XML::Simple (); #---------------------------------------- # WebGUI modules. @@ -105,6 +107,7 @@ use WebGUI::Utility (); # help use WebGUI::Help::Article (); +use WebGUI::Help::Asset (); use WebGUI::Help::AuthLDAP (); use WebGUI::Help::AuthSMB (); use WebGUI::Help::AuthWebGUI (); @@ -126,6 +129,7 @@ use WebGUI::Help::WSClient (); # i18n use WebGUI::i18n::English (); use WebGUI::i18n::English::Article (); +use WebGUI::i18n::English::Asset (); #use WebGUI::i18n::English::AuthLDAP (); #use WebGUI::i18n::English::AuthSMB (); use WebGUI::i18n::English::AuthWebGUI (); diff --git a/www/extras/assetManager/Asset.js b/www/extras/assetManager/Asset.js index b13a82bde..167ba388c 100644 --- a/www/extras/assetManager/Asset.js +++ b/www/extras/assetManager/Asset.js @@ -48,7 +48,7 @@ function Asset_setRank(rank) { //------------------------------- //url + ?||& + func=edit function Asset_edit() { - location.href = "http://" + manager.tools.getHostName(location.href) + manager.tools.addParamDelimiter(this.url) + "func=edit&afterEdit=assetManager"; + location.href = "http://" + manager.tools.getHostName(location.href) + manager.tools.addParamDelimiter(this.url) + "func=edit&proceed=manageAssets"; } //Edit the properties of an asset (edit)