migrated data form wobject to asset and some bug fixes

This commit is contained in:
JT Smith 2005-01-02 21:56:54 +00:00
parent a7ac059864
commit 0ce3182da0
14 changed files with 365 additions and 336 deletions

View file

@ -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
-------------------

View file

@ -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++;
}

View file

@ -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 {
 
</div>
<div style="float: left; padding-right: 30px; font-size: 14px;"><b>'.WebGUI::International::get(1083).'</b><br />';
foreach my $link (@{$self->getAssetAdderLinks("afterEdit=assetManager")}) {
foreach my $link (@{$self->getAssetAdderLinks("proceed=manageAssets")}) {
$output .= '<a href="'.$link->{url}.'">'.$link->{label}.'</a><br />';
}
$output .= '</div>';

View file

@ -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;
}

View file

@ -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<NOTE:> 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;
}
#-------------------------------------------------------------------

View file

@ -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"));
}

View file

@ -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 = '<script type="text/javascript"> var numberOfTabs = '.$tabCount[0].'; initTabs();</script>';
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=>'<br>'.WebGUI::International::get(85,$_[0]->get("namespace"))
-subtext=>'<br>'.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=>'<br>'.WebGUI::International::get(85,$_[0]->get("namespace"))
-subtext=>'<br>'.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;

View file

@ -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);

View file

@ -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"));
}

View file

@ -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"));
}

View file

@ -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"));
}

View file

@ -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"));
}

View file

@ -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 ();

View file

@ -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)