From 41cd27de266d16946888c62da9229b02ee83c836 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Sat, 8 Mar 2003 19:26:01 +0000 Subject: [PATCH] Switching to new wobject API. --- docs/gotcha.txt | 3 + docs/upgrades/upgrade_5.1.2-5.2.0.sql | 8 + lib/WebGUI/Session.pm | 2 +- lib/WebGUI/Wobject.pm | 261 +++++++++++++++++------- lib/WebGUI/Wobject/Article.pm | 64 +++--- lib/WebGUI/Wobject/EventsCalendar.pm | 96 ++++----- lib/WebGUI/Wobject/ExtraColumn.pm | 84 ++++---- lib/WebGUI/Wobject/FAQ.pm | 30 ++- lib/WebGUI/Wobject/FileManager.pm | 55 +++-- lib/WebGUI/Wobject/HttpProxy.pm | 96 +++++---- lib/WebGUI/Wobject/Item.pm | 37 ++-- lib/WebGUI/Wobject/LinkList.pm | 28 +-- lib/WebGUI/Wobject/MailForm.pm | 178 +++++++++------- lib/WebGUI/Wobject/MessageBoard.pm | 54 ++--- lib/WebGUI/Wobject/Poll.pm | 149 ++++++++------ lib/WebGUI/Wobject/Product.pm | 83 ++++---- lib/WebGUI/Wobject/SQLReport.pm | 127 +++++++----- lib/WebGUI/Wobject/SiteMap.pm | 73 +++---- lib/WebGUI/Wobject/Survey.pm | 58 +++--- lib/WebGUI/Wobject/SyndicatedContent.pm | 66 +++--- lib/WebGUI/Wobject/USS.pm | 111 ++++++---- lib/WebGUI/Wobject/WobjectProxy.pm | 60 +++--- 22 files changed, 939 insertions(+), 784 deletions(-) diff --git a/docs/gotcha.txt b/docs/gotcha.txt index 253711294..4b4749f4f 100644 --- a/docs/gotcha.txt +++ b/docs/gotcha.txt @@ -54,6 +54,9 @@ save you many hours of grief. javascript and macros, but you may wish to set these to one of the other options. + * The discussions on USS and Articles have been turned off. They'll + need to be manually turned back on. + 5.1.0 -------------------------------------------------------------------- diff --git a/docs/upgrades/upgrade_5.1.2-5.2.0.sql b/docs/upgrades/upgrade_5.1.2-5.2.0.sql index 51281e6ee..303016429 100644 --- a/docs/upgrades/upgrade_5.1.2-5.2.0.sql +++ b/docs/upgrades/upgrade_5.1.2-5.2.0.sql @@ -3091,5 +3091,13 @@ delete from international where languageId=8 and namespace='WebGUI' and internat insert into international (internationalId,languageId,namespace,message,lastUpdated) values (716,8,'WebGUI','Login', 1031514049); delete from international where languageId=8 and namespace='WebGUI' and internationalId=717; insert into international (internationalId,languageId,namespace,message,lastUpdated) values (717,8,'WebGUI','Logout', 1031514049); +alter table Article drop column allowDiscussion; +alter table USS drop column allowDiscussion; +delete from settings where name='usernameBinding'; +delete from settings where name='addEditStampToPosts'; + + + + diff --git a/lib/WebGUI/Session.pm b/lib/WebGUI/Session.pm index 9f3a4326a..d4d3da806 100644 --- a/lib/WebGUI/Session.pm +++ b/lib/WebGUI/Session.pm @@ -129,7 +129,6 @@ sub _setupUserInfo { if ($user{userId} eq "") { _setupUserInfo("1"); } else { - $user{alias} = $user{username}; %profile = WebGUI::SQL->buildHash("select userProfileField.fieldName, userProfileData.fieldData from userProfileData, userProfileField where userProfileData.fieldName=userProfileField.fieldName and userProfileData.userId='$user{userId}'"); @@ -154,6 +153,7 @@ sub _setupUserInfo { $r->user($session{user}{username}); } } + $session{user}{alias} = $session{user}{username} unless ($session{user}{alias} =~ /[A..Za..z0..9]/); } } diff --git a/lib/WebGUI/Wobject.pm b/lib/WebGUI/Wobject.pm index 2053a4ec1..035b25f92 100644 --- a/lib/WebGUI/Wobject.pm +++ b/lib/WebGUI/Wobject.pm @@ -263,26 +263,15 @@ If specified the wobject will be duplicated to this pageId, otherwise it will be =cut sub duplicate { - my ($pageId, $w); - $pageId = $_[1] || 2; - $w = WebGUI::Wobject->new({ - wobjectId => "new", - namespace => $_[0]->get("namespace") - }); - $w->set({ - pageId => $pageId, - userDefined1 => $_[0]->get("userDefined1"), - userDefined2 => $_[0]->get("userDefined2"), - userDefined3 => $_[0]->get("userDefined3"), - userDefined4 => $_[0]->get("userDefined4"), - userDefined5 => $_[0]->get("userDefined5"), - title => $_[0]->get("title"), - description => $_[0]->get("description"), - displayTitle => $_[0]->get("displayTitle"), - startDate => $_[0]->get("startDate"), - endDate => $_[0]->get("endDate"), - templatePosition => $_[0]->get("templatePosition") - }); + my %properties = %{$_[0]->get}; + $properties{pageId} = $_[1] || 2; + delete $properties{wobjectId}; + my $cmd = "WebGUI::Wobject::".$properties{namespace}; + my $w = eval{$cmd->new({namespace=>$properties{namespace},wobjectId=>"new"})}; + if ($@) { + WebGUI::ErrorHandler::warn("Could duplicate wobject ".$properties{namespace}." because: ".$@); + } + $w->set(\%properties); WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w->get("wobjectId")) unless ($_[2]); return $w->get("wobjectId"); } @@ -384,6 +373,61 @@ sub getCollateral { } +#------------------------------------------------------------------- + +=head2 getDefaultValue ( propertyName ) + +Returns the default value for a wobject property. + +=over + +=item propertyName + +The name of the property to retrieve the default value for. + +=back + +=cut + +sub getDefaultValue { + if (exists $_[0]->{_extendedProperties}{$_[1]}{defaultValue}) { + return $_[0]->{_extendedProperties}{$_[1]}{defaultValue}; + } elsif (exists $_[0]->{_wobjectProperties}{$_[1]}{defaultValue}) { + return $_[0]->{_wobjectProperties}{$_[1]}{defaultValue}; + } else { + return undef; + } +} + + +#------------------------------------------------------------------- + +=head2 getValue ( propertyName ) + +Returns a value for a wobject property however possible. It first looks in form variables for the property, then looks to the value stored in the wobject instance, and if all else fails it returns the default value for the property. + +=over + +=item propertyName + +The name of the property to retrieve the value for. + +=back + +=cut + +sub getValue { + if (exists $session{form}{$_[1]}) { + return $session{form}{$_[1]}; + } elsif (defined $_[0]->get($_[1])) { + return $_[0]->get($_[1]); + } else { + return $_[0]->getDefaultValue($_[1]); + } +} + + + #------------------------------------------------------------------- =head2 inDateRange ( ) @@ -521,7 +565,7 @@ sub name { #------------------------------------------------------------------- -=head2 new ( properties [, extendedProperties, useDiscussion] ) +=head2 new ( -properties, -extendedProperties [, -useDiscussion ] ) Constructor. @@ -529,13 +573,13 @@ NOTE: This method should never need to be overridden or extended. =over -=item properties +=item -properties A hash reference containing at minimum "wobjectId" and "namespace". wobjectId may be set to "new" if you're creating a new instance. This hash reference should be the one created by WebGUI.pm and passed to the wobject subclass. NOTE: It may seem a little weird that the initial data for the wobject instance is coming from WebGUI.pm, but this was done to lessen database traffic thus increasing the speed of all wobjects. -=item extendedProperties +=item -extendedProperties An array reference containing a list of properties that extend the wobject class. This list should match the properties that are added to this wobject's namespace table in the database. So if this wobject has a namespace of "MyWobject" and a table definition that looks like this: @@ -550,7 +594,7 @@ Then the extended property list would be "[something, foo, bar]". NOTE: This is used to define the wobject and should only be passed in by a wobject subclass. -=item useDiscussion +=item -useDiscussion Defaults to "0". If set to "1" this will add a discussion properties tab to this wobject to enable content managers to set the properties of a discussion attached to this wobject. @@ -561,18 +605,63 @@ NOTE: This is used to define the wobject and should only be passed in by a wobje =cut sub new { - my $self = shift; - my $properties = shift; - my $extendedProperties = shift; - my $useDiscussion = shift || 0; - my $wobjectProperties = [qw(userDefined1 userDefined2 userDefined3 userDefined4 userDefined5 - moderationType groupToModerate groupToPost karmaPerPost editTimeout filterPost addEditStampToPosts - title displayTitle description pageId templatePosition startDate endDate sequenceNumber)]; + my ($self, @p) = @_; + my ($properties, $extendedProperties, $useDiscussion) = rearrange([qw(properties extendedProperties useDiscussion)], @p); + $useDiscussion = 0 unless ($useDiscussion); + my $wobjectProperties = { + userDefined1=>{}, + userDefined2=>{}, + userDefined3=>{}, + userDefined4=>{}, + userDefined5=>{}, + allowDiscussion=>{ + defaultValue=>0 + }, + moderationType=>{ + defaultValue=>"after" + }, + groupToModerate=>{ + defaultValue=>4 + }, + groupToPost=>{ + defaultValue=>2 + }, + karmaPerPost=>{ + defaultValue=>0 + } , + editTimeout=>{ + defaultValue=>1 + }, + filterPost=>{ + defaultValue=>"javascript", + }, + addEditStampToPosts=>{ + defaultValue=>1, + }, + title=>{}, + displayTitle=>{ + defaultValue=>1 + }, + description=>{}, + pageId=>{ + defaultValue=>$session{page}{pageId} + }, + templatePosition=>{ + defaultValue=>1 + }, + startDate=>{ + defaultValue=>$session{page}{startDate} + }, + endDate=>{ + defaultValue=>$session{page}{endDate} + }, + sequenceNumber=>{} + }; bless({ _property=>$properties, - _extendedProperties=>$extendedProperties, _useDiscussion=>$useDiscussion, - _wobjectProperties=>$wobjectProperties + _wobjectProperties=>$wobjectProperties, + _extendedProperties=>$extendedProperties }, $self); } @@ -711,7 +800,19 @@ sub set { my ($key, $sql, @update, $i); my $self = shift; my $properties = shift; - my $extendedProperties = shift || $self->{_extendedProperties}; # shift for backward compatibility. + my $extendedProperties = shift; # shift for backward compatibility. + unless (defined $extendedProperties) { + my @temp; + foreach (keys %{$self->{_extendedProperties}}) { + push(@temp,$_); + } + $extendedProperties = \@temp; + } + my @temp; + foreach (keys %{$self->{_wobjectProperties}}) { + push(@temp,$_); + } + my $wobjectProperties = \@temp; if ($self->{_property}{wobjectId} eq "new") { $self->{_property}{wobjectId} = getNextId("wobjectId"); $self->{_property}{pageId} = ${$_[1]}{pageId} || $session{page}{pageId}; @@ -735,8 +836,8 @@ sub set { $self->{_property}{editedBy} = $session{user}{userId}; $sql = "update wobject set"; foreach $key (keys %{$properties}) { - $properties->{_property}{$key} = ${$properties}{$key}; - if (isIn($key, @{$self->{_wobjectProperties}})) { + $self->{_property}{$key} = ${$properties}{$key}; + if (isIn($key, @{$wobjectProperties})) { $sql .= " ".$key."=".quote(${$properties}{$key}).","; } if (isIn($key, @{$extendedProperties})) { @@ -1037,32 +1138,44 @@ sub www_denyPost { #------------------------------------------------------------------- -=head2 www_edit ( formRows ) +=head2 www_edit ( [ -properties, -layout, -privileges, -helpId, -heading, -headingId ] ) Displays the common properties of any/all wobjects. -NOTE: This method should be extended by all wobjects. - =over -=item formRows +=item -properties, -layout, -privileges -The custom form rows from the wobject subclass edit page. +WebGUI::HTMLForm objects that extend these tabs. + +=item -helpId + +An id in this namespace in the WebGUI help system for this edit page. If specified a help link will be created on the edit page. + +=item -heading + +A text string to put in the heading of this page. + +=item -headingId + +An id this namespace of the WebGUI international system. This message will be retrieved and displayed in the heading of this edit page. =back =cut sub www_edit { + return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); my ($self, @p) = @_; - my ($properties, $layout, $privileges) = rearrange([qw(properties layout privileges)], @p); - my ($f, $startDate, $displayTitle, $title, $templatePosition, $endDate); + my ($properties, $layout, $privileges, $heading, $helpId, $headingId) = + rearrange([qw(properties layout privileges heading helpId headingId)], @p); + my ($f, $startDate, $displayTitle, $templatePosition, $endDate); if ($_[0]->get("wobjectId") eq "new") { $displayTitle = 1; } else { $displayTitle = $_[0]->get("displayTitle"); } - $title = $_[0]->get("title") || $_[0]->name; + my $title = $_[0]->get("title") || $_[0]->name; $templatePosition = $_[0]->get("templatePosition") || 1; $startDate = $_[0]->get("startDate") || $session{page}{startDate}; $endDate = $_[0]->get("endDate") || $session{page}{endDate}; @@ -1078,7 +1191,7 @@ sub www_edit { }, privileges=>{ label=>WebGUI::International::get(107), - uiLevel=>9 + uiLevel=>6 } ); if ($_[0]->{_useDiscussion}) { @@ -1115,13 +1228,13 @@ sub www_edit { -name=>"startDate", -label=>WebGUI::International::get(497), -value=>$startDate, - -uiLevel=>9 + -uiLevel=>6 ); $f->getTab("privileges")->date( -name=>"endDate", -label=>WebGUI::International::get(498), -value=>$endDate, - -uiLevel=>9 + -uiLevel=>6 ); $f->getTab("properties")->HTMLArea( -name=>"description", @@ -1140,16 +1253,20 @@ sub www_edit { ); $f->getTab("discussion")->raw($_[0]->discussionProperties); } - return $f->print; + my $output; + $output = helpIcon($helpId,$_[0]->get("namespace")) if ($helpId); + $heading = WebGUI::International::get($headingId,$_[0]->get("namespace")) if ($headingId); + $output .= '

'.$heading.'

' if ($heading); + return $output.$f->print; } #------------------------------------------------------------------- -=head2 www_editSave ( hashRef ) +=head2 www_editSave ( [ hashRef ] ) Saves the default properties of any/all wobjects. -NOTE: This method should be extended by all subclasses. +NOTE: This method should only need to be extended if you need to do some special validation. =over @@ -1162,33 +1279,23 @@ A hash reference of extra properties to set. =cut sub www_editSave { - my ($title, $templatePosition, $startDate, $endDate); - $title = $session{form}{title} || $_[0]->get("namespace"); - $templatePosition = $session{form}{templatePosition} || 1; - $startDate = setToEpoch($session{form}{startDate}) || $session{page}{startDate}; - $endDate = setToEpoch($session{form}{endDate}) || $session{page}{endDate}; - $session{form}{description} = WebGUI::HTML::cleanSegment($session{form}{description}); - $session{form}{karmaPerPost} ||= 0; - $session{form}{groupToPost} ||= 2; - $session{form}{editTimeout} = WebGUI::DateTime::intervalToSeconds($session{form}{editTimeout_interval},$session{form}{editTimeout_units}) || 0; - $session{form}{groupToModerate} ||= 3; - $session{form}{moderationType} ||= "after"; - $_[0]->set({ - title=>$title, - displayTitle=>$session{form}{displayTitle}, - templatePosition=>$templatePosition, - startDate=>$startDate, - endDate=>$endDate, - description=>$session{form}{description}, - karmaPerPost=>$session{form}{karmaPerPost}, - groupToPost=>$session{form}{groupToPost}, - groupToModerate=>$session{form}{groupToModerate}, - editTimeout=>$session{form}{editTimeout}, - moderationType=>$session{form}{moderationType}, - filterPost=>$session{form}{filterPost}, - addEditStampToPosts=>$session{form}{addEditStampToPosts}, - %{$_[1]} - }); + return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); + my %set; + foreach (keys %{$_[0]->{_wobjectProperties}}) { + if (exists $session{form}{$_}) { + $set{$_} = $session{form}{$_} || $_[0]->{_wobjectProperties}{$_}{defaultValue}; + } + } + $set{title} = $session{form}{title} || $_[0]->name; + $set{description} = WebGUI::HTML::cleanSegment($set{description}); + $set{editTimeout} = WebGUI::DateTime::intervalToSeconds($session{form}{editTimeout_interval},$session{form}{editTimeout_units}) || 0; + foreach (keys %{$_[0]->{_extendedProperties}}) { + if (exists $session{form}{$_}) { + $set{$_} = $session{form}{$_} || $_[0]->{_extendedProperties}{$_}{defaultValue}; + } + } + %set = (%set, %{$_[1]}); + $_[0]->set(\%set); return ""; } diff --git a/lib/WebGUI/Wobject/Article.pm b/lib/WebGUI/Wobject/Article.pm index 99b3f1a27..1f1441090 100644 --- a/lib/WebGUI/Wobject/Article.pm +++ b/lib/WebGUI/Wobject/Article.pm @@ -31,19 +31,10 @@ our @ISA = qw(WebGUI::Wobject); sub duplicate { my ($file, $w); $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::Article->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); $file = WebGUI::Attachment->new($_[0]->get("image"),$_[0]->get("wobjectId")); - $file->copy($w->get("wobjectId")); + $file->copy($w); $file = WebGUI::Attachment->new($_[0]->get("attachment"),$_[0]->get("wobjectId")); - $file->copy($w->get("wobjectId")); - $w->set({ - templateId=>$_[0]->get("templateId"), - image=>$_[0]->get("image"), - linkTitle=>$_[0]->get("linkTitle"), - linkURL=>$_[0]->get("linkURL"), - attachment=>$_[0]->get("attachment"), - convertCarriageReturns=>$_[0]->get("convertCarriageReturns") - }); + $file->copy($w); } #------------------------------------------------------------------- @@ -56,31 +47,31 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(image templateId linkTitle linkURL attachment convertCarriageReturns)], - 1 + -properties=>$property, + -extendedProperties=>{ + image=>{ }, + templateId=>{ + defaultValue=>1 + }, + linkTitle=>{ }, + linkURL=>{ }, + attachment=>{ }, + convertCarriageReturns=>{ + defaultValue=>0 + } + }, + -useDiscussion=>1 ); bless $self, $class; } #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($output, $editTimeout, $groupToModerate, $template); - if ($_[0]->get("wobjectId") eq "new") { - $editTimeout = 1; - } else { - $editTimeout = $_[0]->get("editTimeout"); - } - $template = $_[0]->get("templateId") || 1; - $groupToModerate = $_[0]->get("groupToModerate") || 4; - $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(12,$_[0]->get("namespace")).'

'; my $properties = WebGUI::HTMLForm->new; my $layout = WebGUI::HTMLForm->new; $layout->template( -name=>"templateId", - -value=>$template, + -value=>$_[0]->getValue("templateId"), -namespace=>$_[0]->get("namespace"), -label=>WebGUI::International::get(356), -afterEdit=>'func=edit&wid='.$_[0]->get("wobjectId") @@ -96,32 +87,32 @@ sub www_edit { $properties->text( -name=>"linkTitle", -label=>WebGUI::International::get(7,$_[0]->get("namespace")), - -value=>$_[0]->get("linkTitle"), + -value=>$_[0]->getValue("linkTitle"), -uiLevel=>3 ); $properties->url( -name=>"linkURL", -label=>WebGUI::International::get(8,$_[0]->get("namespace")), - -value=>$_[0]->get("linkURL"), + -value=>$_[0]->getValue("linkURL"), -uiLevel=>3 ); $layout->yesNo( -name=>"convertCarriageReturns", -label=>WebGUI::International::get(10,$_[0]->get("namespace")), - -value=>$_[0]->get("convertCarriageReturns"), + -value=>$_[0]->getValue("convertCarriageReturns"), -subtext=>'   '.WebGUI::International::get(11,$_[0]->get("namespace")).'', -uiLevel=>5 ); - $output .= $_[0]->SUPER::www_edit( + return $_[0]->SUPER::www_edit( -properties=>$properties->printRowsOnly, - -layout=>$layout->printRowsOnly + -layout=>$layout->printRowsOnly, + -headingId=>12, + -helpId=>1 ); - return $output; } #------------------------------------------------------------------- sub www_editSave { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); my ($image, $attachment, %property); $_[0]->SUPER::www_editSave() if ($_[0]->get("wobjectId") eq "new"); $image = WebGUI::Attachment->new("",$_[0]->get("wobjectId")); @@ -130,12 +121,7 @@ sub www_editSave { $attachment->save("attachment"); $property{image} = $image->getFilename if ($image->getFilename ne ""); $property{attachment} = $attachment->getFilename if ($attachment->getFilename ne ""); - $property{convertCarriageReturns} = $session{form}{convertCarriageReturns}; - $property{linkTitle} = $session{form}{linkTitle}; - $property{templateId} = $session{form}{templateId}; - $property{linkURL} = $session{form}{linkURL}; - $_[0]->SUPER::www_editSave(\%property); - return ""; + return $_[0]->SUPER::www_editSave(\%property); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Wobject/EventsCalendar.pm b/lib/WebGUI/Wobject/EventsCalendar.pm index 0151c1f25..f447a5b27 100644 --- a/lib/WebGUI/Wobject/EventsCalendar.pm +++ b/lib/WebGUI/Wobject/EventsCalendar.pm @@ -139,15 +139,6 @@ sub _drawSmallCalendar { sub duplicate { my ($sth, $w, @row, $newEventId, $previousRecurringEventId); $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::EventsCalendar->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - templateId=>$_[0]->get("templateId"), - eventTemplateId=>$_[0]->get("eventTemplateId"), - startMonth=>$_[0]->get("startMonth"), - endMonth=>$_[0]->get("endMonth"), - defaultMonth=>$_[0]->get("defaultMonth"), - paginateAfter=>$_[0]->get("paginateAfter") - }); $sth = WebGUI::SQL->read("select * from EventsCalendar_event where wobjectId=" .$_[0]->get("wobjectId")." order by EventsCalendar_recurringId"); while (@row = $sth->array) { @@ -156,7 +147,7 @@ sub duplicate { $row[6] = getNextId("EventsCalendar_recurringId"); $previousRecurringEventId = $row[6]; } - WebGUI::SQL->write("insert into EventsCalendar_event values ($newEventId, ".$w->get("wobjectId").", ". + WebGUI::SQL->write("insert into EventsCalendar_event values ($newEventId, ".$w.", ". quote($row[2]).", ".quote($row[3]).", '".$row[4]."', '".$row[5]."', $row[6])"); } $sth->finish; @@ -172,8 +163,27 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(templateId eventTemplateId startMonth endMonth defaultMonth paginateAfter)] + -properties=>$property, + -extendedProperties=>{ + templateId=>{ + defaultValue=>1 + }, + eventTemplateId=>{ + defaultValue=>1 + }, + startMonth=>{ + defaultValue=>"current" + }, + endMonth=>{ + defaultValue=>"after12" + }, + defaultMonth=>{ + defaultValue=>"current" + }, + paginateAfter=>{ + defaultValue=>50 + } + } ); bless $self, $class; } @@ -214,27 +224,19 @@ sub www_deleteEventConfirm { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($output, $startMonth, $endMonth, $afterEdit, $defaultMonth, $paginateAfter); - $paginateAfter = $_[0]->get("paginateAfter") || 50; - $startMonth = $_[0]->get("startMonth") || "current"; - $endMonth = $_[0]->get("endMonth") || "after12"; - $defaultMonth = $_[0]->get("defaultMonth") || "current"; - $afterEdit = 'func=edit&wid='.$_[0]->get("wobjectId") if ($_[0]->get("wobjectId") ne "new"); - $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(12,$_[0]->get("namespace")).'

'; + my $afterEdit = 'func=edit&wid='.$_[0]->get("wobjectId") if ($_[0]->get("wobjectId") ne "new"); my $layout = WebGUI::HTMLForm->new; my $properties = WebGUI::HTMLForm->new; $layout->template( -name=>"templateId", - -value=>$_[0]->get("templateId"), + -value=>$_[0]->getValue("templateId"), -namespace=>$_[0]->get("namespace"), -label=>WebGUI::International::get(79,$_[0]->get("namespace")), -afterEdit=>$afterEdit ); $layout->template( -name=>"eventTemplateId", - -value=>$_[0]->get("eventTemplateId"), + -value=>$_[0]->getValue("eventTemplateId"), -namespace=>$_[0]->get("namespace")."/Event", -label=>WebGUI::International::get(80,$_[0]->get("namespace")), -afterEdit=>$afterEdit @@ -246,20 +248,23 @@ sub www_edit { "first"=>WebGUI::International::get(83,$_[0]->get("namespace")) }, -label=>WebGUI::International::get(81,$_[0]->get("namespace")), - -value=>[$startMonth] + -value=>[$_[0]->getValue("startMonth")] + ); + my %options; + tie %options, 'Tie::IxHash'; + %options = ( + "last"=>WebGUI::International::get(85,$_[0]->get("namespace")), + "after12"=>WebGUI::International::get(86,$_[0]->get("namespace")), + "after9"=>WebGUI::International::get(87,$_[0]->get("namespace")), + "after6"=>WebGUI::International::get(88,$_[0]->get("namespace")), + "after3"=>WebGUI::International::get(89,$_[0]->get("namespace")), + "current"=>WebGUI::International::get(82,$_[0]->get("namespace")) ); $properties->select( -name=>"endMonth", - -options=>{ - "last"=>WebGUI::International::get(85,$_[0]->get("namespace")), - "after12"=>WebGUI::International::get(86,$_[0]->get("namespace")), - "after9"=>WebGUI::International::get(87,$_[0]->get("namespace")), - "after6"=>WebGUI::International::get(88,$_[0]->get("namespace")), - "after3"=>WebGUI::International::get(89,$_[0]->get("namespace")), - "current"=>WebGUI::International::get(82,$_[0]->get("namespace")), - }, + -options=>\%options, -label=>WebGUI::International::get(84,$_[0]->get("namespace")), - -value=>[$endMonth] + -value=>[$_[0]->getValue("endMonth")] ); $properties->select( -name=>"defaultMonth", @@ -269,9 +274,13 @@ sub www_edit { "first"=>WebGUI::International::get(83,$_[0]->get("namespace")) }, -label=>WebGUI::International::get(90,$_[0]->get("namespace")), - -value=>[$defaultMonth] + -value=>[$_[0]->getValue("defaultMonth")] ); - $layout->integer("paginateAfter",WebGUI::International::get(19,$_[0]->get("namespace")),$paginateAfter); + $layout->integer( + -name=>"paginateAfter", + -label=>WebGUI::International::get(19,$_[0]->get("namespace")), + -value=>$_[0]->getValue("paginateAfter") + ); if ($_[0]->get("wobjectId") eq "new") { $properties->whatNext( -options=>{ @@ -281,24 +290,17 @@ sub www_edit { -value=>"backToPage" ); } - $output .= $_[0]->SUPER::www_edit( + return $_[0]->SUPER::www_edit( -properties=>$properties->printRowsOnly, - -layout=>$layout->printRowsOnly + -layout=>$layout->printRowsOnly, + -helpId=>1, + -headingId=>12 ); - return $output; } #------------------------------------------------------------------- sub www_editSave { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - $_[0]->SUPER::www_editSave({ - templateId=>$session{form}{templateId}, - eventTemplateId=>$session{form}{eventTemplateId}, - startMonth=>$session{form}{startMonth}, - endMonth=>$session{form}{endMonth}, - defaultMonth=>$session{form}{defaultMonth}, - paginateAfter=>$session{form}{paginateAfter} - }); + $_[0]->SUPER::www_editSave(); if ($session{form}{proceed} eq "addEvent") { $session{form}{eid} = "new"; return $_[0]->www_editEvent; diff --git a/lib/WebGUI/Wobject/ExtraColumn.pm b/lib/WebGUI/Wobject/ExtraColumn.pm index d9db243fe..a31e7c1b6 100644 --- a/lib/WebGUI/Wobject/ExtraColumn.pm +++ b/lib/WebGUI/Wobject/ExtraColumn.pm @@ -27,18 +27,6 @@ use WebGUI::Wobject; our @ISA = qw(WebGUI::Wobject); -#------------------------------------------------------------------- -sub duplicate { - my ($w); - $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::ExtraColumn->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - spacer=>$_[0]->get("spacer"), - width=>$_[0]->get("width"), - class=>$_[0]->get("class") - }); -} - #------------------------------------------------------------------- sub name { return WebGUI::International::get(1,$_[0]->get("namespace")); @@ -49,8 +37,18 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(spacer width class)] + -properties=>$property, + -extendedProperties=>{ + spacer=>{ + defaultValue=>10 + }, + width=>{ + defaultValue=>200 + }, + class=>{ + defaultValue=>"content" + } + } ); bless $self, $class; } @@ -63,15 +61,9 @@ sub uiLevel { #------------------------------------------------------------------- sub www_edit { return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($output, $f, $endDate, $width, $class, $spacer,$startDate, $templatePosition); + my ($output, $f); $output = helpIcon(1,$_[0]->get("namespace")); $output .= '

'.WebGUI::International::get(6,$_[0]->get("namespace")).'

'; - $width = $_[0]->get("width") || 200; - $spacer = $_[0]->get("spacer") || 10; - $templatePosition = $_[0]->get("templatePosition") || 1; - $class = $_[0]->get("class") || "content"; - $startDate = $_[0]->get("startDate") || $session{page}{startDate}; - $endDate = $_[0]->get("endDate") || $session{page}{endDate}; my %tabs; tie %tabs, 'Tie::IxHash'; %tabs = ( @@ -91,37 +83,49 @@ sub www_edit { $f->hidden({name=>"wid",value=>$_[0]->get("wobjectId")}); $f->hidden({name=>"namespace",value=>$_[0]->get("namespace")}) if ($_[0]->get("wobjectId") eq "new"); $f->hidden({name=>"func",value=>"editSave"}); - $f->getTab("properties")->readOnly($_[0]->get("wobjectId"),WebGUI::International::get(499)); + $f->getTab("properties")->readOnly( + -value=>$_[0]->get("wobjectId"), + -label=>WebGUI::International::get(499) + ); $f->hidden({name=>"title",value=>$_[0]->name}); - $f->hidden({name=>"displayTitle",value=>0}); + $f->hidden({name=>"displayTitle",value=>$_[0]->getValue("displayTitle")}); $f->getTab("layout")->select( -name=>"templatePosition", -label=>WebGUI::International::get(363), - -value=>[$templatePosition], + -value=>[$_[0]->getValue("templatePosition")], -uiLevel=>5, -options=>WebGUI::Page::getTemplatePositions($session{page}{templateId}), -subtext=>WebGUI::Page::drawTemplate($session{page}{templateId}) ); - $f->getTab("privileges")->date("startDate",WebGUI::International::get(497),$startDate); - $f->getTab("privileges")->date("endDate",WebGUI::International::get(498),$endDate); - $f->getTab("properties")->integer("spacer",WebGUI::International::get(3,$_[0]->get("namespace")),$spacer); - $f->getTab("properties")->integer("width",WebGUI::International::get(4,$_[0]->get("namespace")),$width); - $f->getTab("properties")->text("class",WebGUI::International::get(5,$_[0]->get("namespace")),$class); + $f->getTab("privileges")->date( + -name=>"startDate", + -label=>WebGUI::International::get(497), + -value=>$_[0]->getValue("startDate") + ); + $f->getTab("privileges")->date( + -name=>"endDate", + -label=>WebGUI::International::get(498), + -value=>$_[0]->getValue("endDate") + ); + $f->getTab("properties")->integer( + -name=>"spacer", + -label=>WebGUI::International::get(3,$_[0]->get("namespace")) + -value=>,$_[0]->getValue("spacer") + ); + $f->getTab("properties")->integer( + -name=>"width", + -label=>WebGUI::International::get(4,$_[0]->get("namespace")), + -value=>$_[0]->getValue("width") + ); + $f->getTab("properties")->text( + -name=>"class", + -label=>WebGUI::International::get(5,$_[0]->get("namespace")), + -value=>$_[0]->get("class") + ); $output .= $f->print; return $output; } -#------------------------------------------------------------------- -sub www_editSave { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - $_[0]->SUPER::www_editSave({ - spacer=>$session{form}{spacer}, - width=>$session{form}{width}, - class=>$session{form}{class} - }); - return ""; -} - #------------------------------------------------------------------- sub www_view { return ''; diff --git a/lib/WebGUI/Wobject/FAQ.pm b/lib/WebGUI/Wobject/FAQ.pm index 729835fbe..7e64dc8f2 100644 --- a/lib/WebGUI/Wobject/FAQ.pm +++ b/lib/WebGUI/Wobject/FAQ.pm @@ -29,14 +29,10 @@ sub duplicate { my ($w, %data, $newQuestionId, $sth); tie %data, 'Tie::CPHash'; $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::FAQ->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - templateId=>$_[0]->get("templateId") - }); $sth = WebGUI::SQL->read("select * from FAQ_question where wobjectId=".$_[0]->get("wobjectId")); while (%data = $sth->hash) { $newQuestionId = getNextId("FAQ_questionId"); - WebGUI::SQL->write("insert into FAQ_question values (".$w->get("wobjectId").", $newQuestionId, " + WebGUI::SQL->write("insert into FAQ_question values (".$w.", $newQuestionId, " .quote($data{question}).", ".quote($data{answer}).", $data{sequenceNumber})"); } $sth->finish; @@ -52,8 +48,12 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(templateId)] + -properties=>$property, + -extendedProperties=>{ + templateId=>{ + defaultValue=>1 + } + } ); bless $self, $class; } @@ -81,14 +81,11 @@ sub www_deleteQuestionConfirm { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(8,$_[0]->get("namespace")).'

'; my $properties = WebGUI::HTMLForm->new; my $layout = WebGUI::HTMLForm->new; $layout->template( -name=>"templateId", - -value=>$_[0]->get("templateId"), + -value=>$_[0]->getValue("templateId"), -namespace=>$_[0]->get("namespace"), -label=>WebGUI::International::get(74,$_[0]->get("namespace")), -afterEdit=>'func=edit&wid='.$_[0]->get("wobjectId") @@ -102,24 +99,21 @@ sub www_edit { -value=>"addQuestion" ); } - $output .= $_[0]->SUPER::www_edit( + return $_[0]->SUPER::www_edit( -properties=>$properties->printRowsOnly, -layout=>$layout->printRowsOnly + -headingId=>8, + -helpId=>1 ); - return $output; } #------------------------------------------------------------------- sub www_editSave { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - $_[0]->SUPER::www_editSave({ - templateId=>$session{form}{templateId} - }); + $_[0]->SUPER::www_editSave(); if ($session{form}{proceed} eq "addQuestion") { $session{form}{qid} = "new"; return $_[0]->www_editQuestion(); } - return ""; } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Wobject/FileManager.pm b/lib/WebGUI/Wobject/FileManager.pm index b6412ef01..97103fdc9 100644 --- a/lib/WebGUI/Wobject/FileManager.pm +++ b/lib/WebGUI/Wobject/FileManager.pm @@ -42,21 +42,16 @@ sub duplicate { my ($file, $w, %row, $sth, $newDownloadId); tie %row, 'Tie::CPHash'; $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::FileManager->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - paginateAfter=>$_[0]->get("paginateAfter"), - templateId=>$_[0]->get("templateId") - }); $sth = WebGUI::SQL->read("select * from FileManager_file where wobjectId=".$_[0]->get("wobjectId")); while (%row = $sth->hash) { $newDownloadId = getNextId("FileManager_fileId"); $file = WebGUI::Attachment->new($row{downloadFile},$_[0]->get("wobjectId"),$row{FileManager_fileId}); - $file->copy($w->get("wobjectId"),$newDownloadId); + $file->copy($w,$newDownloadId); $file = WebGUI::Attachment->new($row{alternateVersion1},$_[0]->get("wobjectId"),$row{FileManager_fileId}); - $file->copy($w->get("wobjectId"),$newDownloadId); + $file->copy($w,$newDownloadId); $file = WebGUI::Attachment->new($row{alternateVersion2},$_[0]->get("wobjectId"),$row{FileManager_fileId}); - $file->copy($w->get("wobjectId"),$newDownloadId); - WebGUI::SQL->write("insert into FileManager_file values ($newDownloadId, ".$w->get("wobjectId").", ". + $file->copy($w,$newDownloadId); + WebGUI::SQL->write("insert into FileManager_file values ($newDownloadId, ".$w.", ". quote($row{fileTitle}).", ".quote($row{downloadFile}).", $row{groupToView}, ". quote($row{briefSynopsis}).", $row{dateUploaded}, $row{sequenceNumber}, ". quote($row{alternateVersion1}).", ".quote($row{alternateVersion2}).")"); @@ -74,17 +69,19 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(paginateAfter templateId)] + -properties=>$property, + -extendedProperties=>{ + paginateAfter=>{ + defaultValue=>50, + }, + templateId=>{ + defaultValue=>1 + } + } ); bless $self, $class; } -#------------------------------------------------------------------- -sub set { - $_[0]->SUPER::set($_[1],[qw(paginateAfter templateId)]); -} - #------------------------------------------------------------------- sub uiLevel { return 4; @@ -144,23 +141,19 @@ sub www_download { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($output, $paginateAfter, $proceed); - if ($_[0]->get("wobjectId") eq "new") { - $proceed = 1; - } - $output .= helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(9,$_[0]->get("namespace")).'

'; - $paginateAfter = $_[0]->get("paginateAfter") || 50; my $properties = WebGUI::HTMLForm->new; my $layout = WebGUI::HTMLForm->new; $layout->template( -name=>"templateId", - -value=>$_[0]->get("templateId"), + -value=>$_[0]->getValue("templateId"), -namespace=>$_[0]->get("namespace"), -afterEdit=>'func=edit&wid='.$_[0]->get("wobjectId") ); - $layout->integer("paginateAfter",WebGUI::International::get(20,$_[0]->get("namespace")),$paginateAfter); + $layout->integer( + -name=>"paginateAfter", + -label=>WebGUI::International::get(20,$_[0]->get("namespace")), + -value=>$_[0]->getValue("paginateAfter") + ); if ($_[0]->get("wobjectId") eq "new") { $properties->whatNext( -options=>{ @@ -170,20 +163,18 @@ sub www_edit { -value=>"addFile" ); } - $output .= $_[0]->SUPER::www_edit( + return $_[0]->SUPER::www_edit( -properties=>$properties->printRowsOnly, -layout=>$layout->printRowsOnly + -headingId=>9, + -helpId=>1 ); - return $output; } #------------------------------------------------------------------- sub www_editSave { return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - $_[0]->SUPER::www_editSave({ - paginateAfter=>$session{form}{paginateAfter}, - templateId=>$session{form}{templateId} - }); + $_[0]->SUPER::www_editSave(); if ($session{form}{proceed} eq "addFile") { $session{form}{did} = "new"; return $_[0]->www_editDownload(); diff --git a/lib/WebGUI/Wobject/HttpProxy.pm b/lib/WebGUI/Wobject/HttpProxy.pm index 3c11e7ad6..f60530171 100644 --- a/lib/WebGUI/Wobject/HttpProxy.pm +++ b/lib/WebGUI/Wobject/HttpProxy.pm @@ -27,22 +27,6 @@ use WebGUI::ProxyParse; our @ISA = qw(WebGUI::Wobject); -#------------------------------------------------------------------- -sub duplicate { - my ($w); - $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::WobjectProxy->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - proxiedUrl=>$_[0]->get("proxiedUrl"), - timeout=>$_[0]->get("timeout"), - removeStyle=>$_[0]->get("removeStyle"), - filterHtml=>$_[0]->get("filterHtml"), - followExternal=>$_[0]->get("followExternal"), - followRedirect=>$_[0]->get("followRedirect"), - cookiebox=>$_[0]->get("cookiebox") - }); -} - #------------------------------------------------------------------- sub name { return WebGUI::International::get(3,$_[0]->get("namespace")); @@ -53,8 +37,30 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(proxiedUrl timeout removeStyle filterHtml followExternal followRedirect cookiebox)] + -properties=>$property, + -extendedProperties=>{ + proxiedUrl=>{ + defaultValue=>'http://' + }, + timeout=>{ + defaultValue=>30 + }, + removeStyle=>{ + defaultValue=>1 + }, + filterHtml=>{ + defaultValue=>"javascript" + }, + followExternal=>{ + defaultValue=>1 + }, + followRedirect=>{ + defaultValue=>0 + }, + cookiebox=>{ + defaultValue=>'/tmp' + } + } ); bless $self, $class; } @@ -66,64 +72,56 @@ sub uiLevel { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); my %hash; tie %hash, 'Tie::IxHash'; %hash=(5=>5,10=>10,20=>20,30=>30,60=>60); - my $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(2,$_[0]->get("namespace")).'

'; my $privileges = WebGUI::HTMLForm->new; my $properties = WebGUI::HTMLForm->new; my $layout = WebGUI::HTMLForm->new; $properties->url( - -name=>"proxiedUrl", WebGUI::International::get(1,$_[0]->get("namespace")),$_[0]->get("proxiedUrl")||'http://'); + -name=>"proxiedUrl", + -label=>WebGUI::International::get(1,$_[0]->get("namespace")), + -value=>$_[0]->getValue("proxiedUrl") + ); $privileges->yesNo( -name=>"followExternal", -label=>WebGUI::International::get(5,$_[0]->get("namespace")), - -value=>($_[0]->get("wobjectId") eq "new") ? 1 : $_[0]->get("followExternal") + -value=>$_[0]->getValue("followExternal") ); $properties->yesNo( -name=>"followRedirect", -label=>WebGUI::International::get(8,$_[0]->get("namespace")), - -value=>$_[0]->get("followRedirect") + -value=>$_[0]->getValue("followRedirect") ); $layout->yesNo( -name=>"removeStyle", -label=>WebGUI::International::get(6,$_[0]->get("namespace")), - -value=>($_[0]->get("wobjectId") eq "new") ? 1 : $_[0]->get("removeStyle") + -value=>$_[0]->getValue("removeStyle") ); $layout->filterContent( -name=>"filterHtml", - -value=>$_[0]->get("filterHtml")||"javascript" + -value=>$_[0]->getValue("filterHtml") ); - $properties->select("timeout", \%hash, WebGUI::International::get(4,$_[0]->get("namespace")),[$_[0]->get("timeout")||30]); - $properties->text("cookiebox", WebGUI::International::get(9,$_[0]->get("namespace")),$_[0]->get("cookiebox")||'/tmp'); - $output .= $_[0]->SUPER::www_edit( + $properties->select( + -name=>"timeout", + -options=>\%hash, + -label=>WebGUI::International::get(4,$_[0]->get("namespace")), + -value=>[$_[0]->getValue("timeout")] + ); + $properties->text( + -name=>"cookiebox", + -label=>WebGUI::International::get(9,$_[0]->get("namespace")), + -value=>$_[0]->getValue("cookiebox") + ); + return $_[0]->SUPER::www_edit( -properties=>$properties->printRowsOnly, -layout=>$layout->printRowsOnly, - -privileges=>$privileges->printRowsOnly + -privileges=>$privileges->printRowsOnly, + -helpId=>1, + -headingId=>2 ); - return $output; } -#------------------------------------------------------------------- -sub www_editSave { - if (WebGUI::Privilege::canEditPage()) { - $_[0]->SUPER::www_editSave(); - $_[0]->set({ - proxiedUrl=>$session{form}{proxiedUrl}, - timeout=>$session{form}{timeout}, - removeStyle=>$session{form}{removeStyle}, - filterHtml=>$session{form}{filterHtml}, - followExternal=>$session{form}{followExternal}, - followRedirect=>$session{form}{followRedirect}, - cookiebox=>$session{form}{cookiebox} - }); - return ""; - } else { - return WebGUI::Privilege::insufficient(); - } -} #------------------------------------------------------------------- sub www_view { diff --git a/lib/WebGUI/Wobject/Item.pm b/lib/WebGUI/Wobject/Item.pm index 07480f975..513c56c46 100644 --- a/lib/WebGUI/Wobject/Item.pm +++ b/lib/WebGUI/Wobject/Item.pm @@ -29,14 +29,8 @@ our @ISA = qw(WebGUI::Wobject); sub duplicate { my ($w, $f); $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::Item->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - linkURL=>$_[0]->get("linkURL"), - attachment=>$_[0]->get("attachment"), - templateId=>$_[0]->get("templateId") - }); $f = WebGUI::Attachment->new($_[0]->get("attachment"),$_[0]->get("wobjectId")); - $f->copy($w->get("wobjectId")); + $f->copy($w); } #------------------------------------------------------------------- @@ -49,34 +43,40 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(linkURL attachment templateId)] + -properties=>$property, + -extendedProperties=>{ + linkURL=>{}, + attachment=>{}, + templateId=>{ + defaultValue=>1 + } + } ); bless $self, $class; } #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my $template = $_[0]->get("templateId") || 1; - my $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(6,$_[0]->get("namespace")).'

'; my $properties = WebGUI::HTMLForm->new; my $layout = WebGUI::HTMLForm->new; - $properties->url("linkURL",WebGUI::International::get(1,$_[0]->get("namespace")),$_[0]->get("linkURL")); + $properties->url( + -name=>"linkURL", + -label=>WebGUI::International::get(1,$_[0]->get("namespace")), + -value=>$_[0]->getValue("linkURL")); $properties->raw($_[0]->fileProperty("attachment",2)); $layout->template( -name=>"templateId", - -value=>$template, + -value=>$_[0]->getValue("templateId"), -namespace=>$_[0]->get("namespace"), -label=>WebGUI::International::get(72,$_[0]->get("namespace")), -afterEdit=>'func=edit&wid='.$_[0]->get("wobjectId") ); - $output .= $_[0]->SUPER::www_edit( + return $_[0]->SUPER::www_edit( -properties=>$properties->printRowsOnly, - -layout=>$layout->printRowsOnly + -layout=>$layout->printRowsOnly, + -headingId=>6, + -helpId=>1 ); - return $output; } #------------------------------------------------------------------- @@ -86,7 +86,6 @@ sub www_editSave { $_[0]->SUPER::www_editSave() if ($_[0]->get("wobjectId") eq "new"); $attachment = WebGUI::Attachment->new("",$_[0]->get("wobjectId")); $attachment->save("attachment"); - $property->{linkURL} = $session{form}{linkURL}; $property->{attachment} = $attachment->getFilename if ($attachment->getFilename ne ""); $_[0]->SUPER::www_editSave($property); return ""; diff --git a/lib/WebGUI/Wobject/LinkList.pm b/lib/WebGUI/Wobject/LinkList.pm index eb74b4f7d..805ea6b12 100644 --- a/lib/WebGUI/Wobject/LinkList.pm +++ b/lib/WebGUI/Wobject/LinkList.pm @@ -29,9 +29,6 @@ sub duplicate { my ($w, $sth, $row); $w = $_[0]->SUPER::duplicate($_[1]); $w = WebGUI::Wobject::LinkList->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - templateId=>$_[0]->get("templateId") - }); $sth = WebGUI::SQL->read("select * from LinkList_link where wobjectId=".$_[0]->get("wobjectId") ." order by sequenceNumber"); while ($row = $sth->hashRef) { @@ -51,8 +48,12 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(templateId)] + -properties=>$property, + -extendedProperties=>{ + templateId=>{ + defaultValue=>1 + } + } ); bless $self, $class; } @@ -81,17 +82,11 @@ sub www_deleteLinkConfirm { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my $bullet = $_[0]->get("bullet") || '·'; - my $lineSpacing = $_[0]->get("lineSpacing") || 1; - my $indent = $_[0]->get("indent") || 5; - my $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(10,$_[0]->get("namespace")).'

'; my $layout = WebGUI::HTMLForm->new; my $properties = WebGUI::HTMLForm->new; $layout->template( -name=>"templateId", - -value=>$_[0]->get("templateId"), + -value=>$_[0]->getValue("templateId"), -namespace=>$_[0]->get("namespace"), -afterEdit=>'func=edit&wid='.$_[0]->get("wobjectId") ); @@ -104,19 +99,18 @@ sub www_edit { -value=>"addLink" ); } - $output .= $_[0]->SUPER::www_edit( + return $_[0]->SUPER::www_edit( -properties=>$properties->printRowsOnly, -layout=>$layout->printRowsOnly + -headingId=>10, + -helpId=>1 ); - return $output; } #------------------------------------------------------------------- sub www_editSave { return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - $_[0]->SUPER::www_editSave({ - templateId=>$session{form}{templateId} - }); + $_[0]->SUPER::www_editSave(); if ($session{form}{proceed} eq "addLink") { $session{form}{lid} = "new"; $_[0]->www_editLink(); diff --git a/lib/WebGUI/Wobject/MailForm.pm b/lib/WebGUI/Wobject/MailForm.pm index 13ed0c00a..3ffc02614 100755 --- a/lib/WebGUI/Wobject/MailForm.pm +++ b/lib/WebGUI/Wobject/MailForm.pm @@ -26,30 +26,12 @@ use WebGUI::Wobject; our @ISA = qw(WebGUI::Wobject); -our @fields = qw(width fromField fromStatus toField toStatus - ccField ccStatus bccField bccStatus subjectField subjectStatus acknowledgement storeEntries); - #------------------------------------------------------------------- sub duplicate { my ($w, %data, $sth); tie %data, 'Tie::CPHash'; $w = $_[0]->SUPER::duplicate($_[1]); $w = WebGUI::Wobject::MailForm->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - width=>$_[0]->get("width"), - fromField=>$_[0]->get("fromField"), - fromStatus=>$_[0]->get("fromStatus"), - toField=>$_[0]->get("toField"), - toStatus=>$_[0]->get("toStatus"), - ccField=>$_[0]->get("ccField"), - ccStatus=>$_[0]->get("ccStatus"), - bccField=>$_[0]->get("bccField"), - bccStatus=>$_[0]->get("bccStatus"), - subjectField=>$_[0]->get("subjectField"), - subjectStatus=>$_[0]->get("subjectStatus"), - acknowledgement=>$_[0]->get("acknowledgement"), - storeEntries=>$_[0]->get("storeEntries"), - }); $sth = WebGUI::SQL->read("select * from MailForm_field where wobjectId=".$_[0]->get("wobjectId")); while (%data = $sth->hash) { $data{MailForm_fieldId} = "new"; @@ -68,8 +50,38 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - \@fields + -properties=>$property, + -extendedProperties=>{ + width=>{ + defaultValue=>45 + }, + fromField=>{}, + fromStatus=>{ + defaultValue=>3 + }, + toField=>{ + defaultValue=>$session{setting}{companyEmail} + }, + toStatus=>{ + defaultValue=>1 + }, + ccField=>{}, + ccStatus=>{ + defaultValue=>1 + }, + bccField=>{}, + bccStatus=>{ + defaultValue=>1 + }, + subjectField=>{}, + subjectStatus=>{ + defaultValue=>3 + }, + acknowledgement=>{}, + storeEntries=>{ + defaultValue=>1 + } + } ); bless $self, $class; } @@ -104,67 +116,91 @@ sub www_deleteFieldConfirm { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($output, $f, $proceed); my %fieldStatus = ( 1 => WebGUI::International::get(4, $_[0]->get("namespace")), 2 => WebGUI::International::get(5, $_[0]->get("namespace")), 3 => WebGUI::International::get(6, $_[0]->get("namespace")) ); - # field defaults - my %data = ( - width => 45, - fromField => '', - fromStatus => 3, - toField => $session{setting}{companyEmail}, - toStatus => 1, - ccField => '', - ccStatus => 1, - bccField => '', - bccStatus => 1, - subjectField => WebGUI::International::get(2, $_[0]->get("namespace")), - subjectStatus => 3, - acknowledgement => WebGUI::International::get(3, $_[0]->get("namespace")), - storeEntries => 1, - ); - # initialize fields from existing data, if any - foreach my $field (@fields) { - $data{$field} = $_[0]->get($field) if ($_[0]->get($field)); - } - if ($_[0]->get("wobjectId") eq "new") { - $proceed = 1; - } - $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(7, $_[0]->get("namespace")).'

'; - $f = WebGUI::HTMLForm->new; - $f->integer("width",WebGUI::International::get(8, $_[0]->get("namespace")),$_[0]->get("width") || 45); - $f->raw( $_[0]->_textSelectRow("fromField",WebGUI::International::get(10, $_[0]->get("namespace")),$data{fromField},128, - "fromStatus",\%fieldStatus,$data{fromStatus}) ); - $f->raw( $_[0]->_textSelectRow("toField",WebGUI::International::get(11, $_[0]->get("namespace")),$data{toField},128, - "toStatus",\%fieldStatus,$data{toStatus}) ); - $f->raw( $_[0]->_textSelectRow("ccField",WebGUI::International::get(12, $_[0]->get("namespace")),$data{ccField},128, - "ccStatus",\%fieldStatus,$data{ccStatus}) ); - $f->raw( $_[0]->_textSelectRow("bccField",WebGUI::International::get(13, $_[0]->get("namespace")),$data{bccField},128, - "bccStatus",\%fieldStatus,$data{bccStatus}) ); - $f->raw( $_[0]->_textSelectRow("subjectField",WebGUI::International::get(14, $_[0]->get("namespace")),$data{subjectField},128, - "subjectStatus",\%fieldStatus,$data{subjectStatus}) ); - $f->HTMLArea("acknowledgement",WebGUI::International::get(16, $_[0]->get("namespace")),$_[0]->get("acknowledgement") || WebGUI::International::get(3, $_[0]->get("namespace"))); - $f->yesNo("storeEntries",WebGUI::International::get(26,$_[0]->get("namespace")),[ $data{storeEntries} ]); - $f->yesNo("proceed",WebGUI::International::get(15,$_[0]->get("namespace")),$proceed); - $output .= $_[0]->SUPER::www_edit($f->printRowsOnly); - return $output; + my $proceed = 1 if ($_[0]->get("wobjectId") eq "new"); + my $f = WebGUI::HTMLForm->new; + $f->integer( + -name=>"width", + -label=>WebGUI::International::get(8, $_[0]->get("namespace")), + -value=>$_[0]->getValue("width") + ); + $f->raw( $_[0]->_textSelectRow( + "fromField", + WebGUI::International::get(10, $_[0]->get("namespace")), + $_[0]->getValue("fromField"), + 128, + "fromStatus", + \%fieldStatus, + $_[0]->getValue("fromStatus") + ) ); + $f->raw( $_[0]->_textSelectRow( + "toField", + WebGUI::International::get(11, $_[0]->get("namespace")), + $_[0]->getValue("toField"), + 128, + "toStatus", + \%fieldStatus, + $_[0]->getValue("toStatus") + ) ); + $f->raw( $_[0]->_textSelectRow( + "ccField", + WebGUI::International::get(12, $_[0]->get("namespace")), + $_[0]->getValue("ccField"), + 128, + "ccStatus", + \%fieldStatus, + $_[0]->getValue("ccStatus") + ) ); + $f->raw( $_[0]->_textSelectRow( + "bccField", + WebGUI::International::get(13, $_[0]->get("namespace")), + $_[0]->getValue("bccField"), + 128, + "bccStatus", + \%fieldStatus, + $_[0]->getValue("bccStatus") + ) ); + $f->raw( $_[0]->_textSelectRow( + "subjectField", + WebGUI::International::get(14, $_[0]->get("namespace")), + ($_[0]->get("subjectField") || WebGUI::International::get(2, $_[0]->get("namespace"))), + 128, + "subjectStatus", + \%fieldStatus, + $_[0]->getValue("subjectStatus") + ) ); + $f->HTMLArea( + -name=>"acknowledgement", + -label=>WebGUI::International::get(16, $_[0]->get("namespace")), + -value=>($_[0]->get("acknowledgement") || WebGUI::International::get(3, $_[0]->get("namespace"))) + ); + $f->yesNo( + -name=>"storeEntries", + -label=>WebGUI::International::get(26,$_[0]->get("namespace")), + -value=>[ $_[0]->getValue("storeEntries") ] + ); + $f->yesNo( + -name=>"proceed", + -label=>WebGUI::International::get(15,$_[0]->get("namespace")), + -label=>$proceed + ); + return $_[0]->SUPER::www_edit( + -properties=>$f->printRowsOnly, + -helpId=>1, + -headingId=>7 + ); } #------------------------------------------------------------------- sub www_editSave { return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($property); - foreach my $field (@fields) { - $property->{$field} = $session{form}{$field}; - } - $_[0]->SUPER::www_editSave($property); + $_[0]->SUPER::www_editSave(); if ($session{form}{proceed}) { - return $_[0]->www_editField(); + return $_[0]->www_editField(); } else { - return ""; + return ""; } } diff --git a/lib/WebGUI/Wobject/MessageBoard.pm b/lib/WebGUI/Wobject/MessageBoard.pm index 3391a3ee7..9fc58be39 100644 --- a/lib/WebGUI/Wobject/MessageBoard.pm +++ b/lib/WebGUI/Wobject/MessageBoard.pm @@ -27,16 +27,6 @@ use WebGUI::Wobject; our @ISA = qw(WebGUI::Wobject); -#------------------------------------------------------------------- -sub duplicate { - my ($w); - $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::MessageBoard->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - messagesPerPage=>$_[0]->get("messagesPerPage"), - templateId=>$_[0]->get("templateId") - }); -} #------------------------------------------------------------------- sub name { @@ -48,17 +38,19 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(templateId messagesPerPage)] + -properties=>$property, + -extendedProperties=>{ + templateId=>{ + defaultValue=>1 + }, + messagesPerPage=>{ + defaultValue=>50 + } + } ); bless $self, $class; } -#------------------------------------------------------------------- -sub set { - $_[0]->SUPER::set($_[1],[qw(templateId messagesPerPage)]); -} - #------------------------------------------------------------------- sub status { if ($_[0] eq "Approved") { @@ -72,37 +64,29 @@ sub status { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my $messagesPerPage = $_[0]->get("messagesPerPage") || 50; - my $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(6,$_[0]->get("namespace")).'

'; my $properties = WebGUI::HTMLForm->new; my $layout = WebGUI::HTMLForm->new; - $layout->integer("messagesPerPage",WebGUI::International::get(4,$_[0]->get("namespace")),$messagesPerPage); + $layout->integer( + -name=>"messagesPerPage", + -label=>WebGUI::International::get(4,$_[0]->get("namespace")), + -value=>$_[0]->getValue("messagesPerPage") + ); $layout->template( -name=>"templateId", - -value=>$_[0]->get("templateId"), + -value=>$_[0]->getValue("templateId"), -namespace=>$_[0]->get("namespace"), -label=>WebGUI::International::get(72,$_[0]->get("namespace")), -afterEdit=>'func=edit&wid='.$_[0]->get("wobjectId") ); $properties->raw($_[0]->SUPER::discussionProperties); - $output .= $_[0]->SUPER::www_edit( + return $_[0]->SUPER::www_edit( -layout=>$layout->printRowsOnly, - -properties=>$properties->printRowsOnly + -properties=>$properties->printRowsOnly, + -headingId=>6, + -helpId=>1 ); - return $output; } -#------------------------------------------------------------------- -sub www_editSave { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - $_[0]->SUPER::www_editSave({ - messagesPerPage=>$session{form}{messagesPerPage}, - templateId=>$session{form}{templateId} - }); - return ""; -} #------------------------------------------------------------------- sub www_showMessage { diff --git a/lib/WebGUI/Wobject/Poll.pm b/lib/WebGUI/Wobject/Poll.pm index 0cf91c257..7d67773ed 100644 --- a/lib/WebGUI/Wobject/Poll.pm +++ b/lib/WebGUI/Wobject/Poll.pm @@ -31,38 +31,9 @@ our @ISA = qw(WebGUI::Wobject); sub duplicate { my ($w, $f, $sth, @row); $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::Poll->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - active=>$_[0]->get("active"), - randomizeAnswers=>$_[0]->get("randomizeAnswers"), - graphWidth=>$_[0]->get("graphWidth"), - voteGroup=>$_[0]->get("voteGroup"), - question=>$_[0]->get("question"), - karmaPerVote=>$_[0]->get("karmaPerVote"), - a1=>$_[0]->get("a1"), - a2=>$_[0]->get("a2"), - a3=>$_[0]->get("a3"), - a4=>$_[0]->get("a4"), - a5=>$_[0]->get("a5"), - a6=>$_[0]->get("a6"), - a7=>$_[0]->get("a7"), - a8=>$_[0]->get("a8"), - a9=>$_[0]->get("a9"), - a10=>$_[0]->get("a10"), - a11=>$_[0]->get("a11"), - a12=>$_[0]->get("a12"), - a13=>$_[0]->get("a13"), - a14=>$_[0]->get("a14"), - a15=>$_[0]->get("a15"), - a16=>$_[0]->get("a16"), - a17=>$_[0]->get("a17"), - a18=>$_[0]->get("a18"), - a19=>$_[0]->get("a19"), - a20=>$_[0]->get("a20") - }); $sth = WebGUI::SQL->read("select * from Poll_answer where wobjectId=".$_[0]->get("wobjectId")); while (@row = $sth->array) { - WebGUI::SQL->write("insert into Poll_answer values (".$w->get("wobjectId").", '$row[1]', $row[2], '$row[3]')"); + WebGUI::SQL->write("insert into Poll_answer values (".$w.", '$row[1]', $row[2], '$row[3]')"); } $sth->finish; } @@ -77,8 +48,45 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(active karmaPerVote graphWidth voteGroup question randomizeAnswers a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 a15 a16 a17 a18 a19 a20)] + -properties=>$property, + -extendedProperties=>{ + active=>{ + defaultValue=>1 + }, + karmaPerVote=>{ + defaultValue=>0 + }, + graphWidth=>{ + defaultValue=>150 + }, + voteGroup=>{ + defaultValue=>7 + }, + question=>{}, + randomizeAnswers=>{ + defaultValue=>1 + }, + a1=>{}, + a2=>{}, + a3=>{}, + a4=>{}, + a5=>{}, + a6=>{}, + a7=>{}, + a8=>{}, + a9=>{}, + a10=>{}, + a11=>{}, + a12=>{}, + a13=>{}, + a14=>{}, + a15=>{}, + a16=>{}, + a17=>{}, + a18=>{}, + a19=>{}, + a20=>{} + } ); bless $self, $class; } @@ -91,42 +99,61 @@ sub purge { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($i, $output, $active, $voteGroup, $graphWidth, $answers, $randomizeAnswers); - if ($_[0]->get("wobjectId") eq "new") { - $active = 1; - $randomizeAnswers = 1; - } else { - $active = $_[0]->get("active"); - $randomizeAnswers = $_[0]->get("randomizeAnswers"); - } - $voteGroup = $_[0]->get("voteGroup") || 7; - $graphWidth = $_[0]->get("graphWidth") || 150; + my ($i, $active, $voteGroup, $graphWidth, $answers, $randomizeAnswers); for ($i=1; $i<=20; $i++) { if ($_[0]->get('a'.$i) =~ /\C/) { - $answers .= $_[0]->get("a".$i)."\n"; + $answers .= $_[0]->getValue("a".$i)."\n"; } } - $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(9,$_[0]->get("namespace")).'

'; my $privileges = WebGUI::HTMLForm->new; my $layout = WebGUI::HTMLForm->new; my $properties = WebGUI::HTMLForm->new; - $privileges->yesNo("active",WebGUI::International::get(3,$_[0]->get("namespace")),$active); - $privileges->group("voteGroup",WebGUI::International::get(4,$_[0]->get("namespace")),[$voteGroup]); + $privileges->yesNo( + -name=>"active", + -label=>WebGUI::International::get(3,$_[0]->get("namespace")), + -value=>$_[0]->getValue("active") + ); + $privileges->group( + -name=>"voteGroup", + -label=>WebGUI::International::get(4,$_[0]->get("namespace")), + -value=>[$_[0]->getValue("voteGroup")] + ); if ($session{setting}{useKarma}) { - $properties->integer("karmaPerVote",WebGUI::International::get(20,$_[0]->get("namespace")),$_[0]->get("karmaPerVote")); + $properties->integer( + -name=>"karmaPerVote", + -label=>WebGUI::International::get(20,$_[0]->get("namespace")), + -value=>$_[0]->getValue("karmaPerVote") + ); } else { - $properties->hidden("karmaPerVote",$_[0]->get("karmaPerVote")); + $properties->hidden("karmaPerVote",$_[0]->getValue("karmaPerVote")); } - $layout->integer("graphWidth",WebGUI::International::get(5,$_[0]->get("namespace")),$graphWidth); - $properties->text("question",WebGUI::International::get(6,$_[0]->get("namespace")),$_[0]->get("question")); - $properties->textarea("answers",WebGUI::International::get(7,$_[0]->get("namespace")).'
'.WebGUI::International::get(8,$_[0]->get("namespace")).'
',$answers); - $layout->yesNo("randomizeAnswers",WebGUI::International::get(72,$_[0]->get("namespace")),$randomizeAnswers); - $output .= $_[0]->SUPER::www_edit( + $layout->integer( + -name=>"graphWidth", + -label=>WebGUI::International::get(5,$_[0]->get("namespace")), + -value=>$_[0]->getValue("graphWidth") + ); + $properties->text( + -name=>"question", + -label=>WebGUI::International::get(6,$_[0]->get("namespace")), + -value=>$_[0]->getValue("question") + ); + $properties->textarea( + -name=>"answers", + -value=>WebGUI::International::get(7,$_[0]->get("namespace")). + -subtext=>'
'.WebGUI::International::get(8,$_[0]->get("namespace")).'
', + -value=>$answers + ); + $layout->yesNo( + -name=>"randomizeAnswers", + -label=>WebGUI::International::get(72,$_[0]->get("namespace")), + -value=>$randomizeAnswers + ); + my $output = $_[0]->SUPER::www_edit( -layout=>$layout->printRowsOnly, -properties=>$properties->printRowsOnly, - -privileges=>$privileges->printRowsOnly + -privileges=>$privileges->printRowsOnly, + -headingId=>9, + -helpId=>1 ); if ($_[0]->get("wobjectId") ne "new") { $output .= '

'; @@ -138,20 +165,12 @@ sub www_edit { #------------------------------------------------------------------- sub www_editSave { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); my (@answer, $i, $property); @answer = split("\n",$session{form}{answers}); for ($i=1; $i<=20; $i++) { $property->{'a'.$i} = $answer[($i-1)]; } - $property->{randomizeAnswers} = $session{form}{randomizeAnswers}; - $property->{karmaPerVote} = $session{form}{karmaPerVote}; - $property->{voteGroup} = $session{form}{voteGroup}; - $property->{graphWidth} = $session{form}{graphWidth}; - $property->{active} = $session{form}{active}; - $property->{question} = $session{form}{question}; - $_[0]->SUPER::www_editSave($property); - return ""; + return $_[0]->SUPER::www_editSave($property); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Wobject/Product.pm b/lib/WebGUI/Wobject/Product.pm index 6d7be1b20..e3094a1a6 100644 --- a/lib/WebGUI/Wobject/Product.pm +++ b/lib/WebGUI/Wobject/Product.pm @@ -26,21 +26,10 @@ our @ISA = qw(WebGUI::Wobject); #------------------------------------------------------------------- sub duplicate { - my ($w, $file, %data, $newId, $sth); + my ($w, %data, $file, $row, $sth); tie %data, 'Tie::CPHash'; $w = $_[0]->SUPER::duplicate($_[1]); $w = WebGUI::Wobject::Product->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - image1=>$_[0]->get("image1"), - image2=>$_[0]->get("image2"), - image3=>$_[0]->get("image3"), - warranty=>$_[0]->get("warranty"), - manual=>$_[0]->get("manual"), - brochure=>$_[0]->get("brochure"), - price=>$_[0]->get("price"), - templateId=>$_[0]->get("templateId"), - productNumber=>$_[0]->get("productNumber") - }); $file = WebGUI::Attachment->new($_[0]->get("image1"),$_[0]->get("wobjectId")); $file->copy($w->get("wobjectId")); $file = WebGUI::Attachment->new($_[0]->get("image2"),$_[0]->get("wobjectId")); @@ -54,24 +43,21 @@ sub duplicate { $file = WebGUI::Attachment->new($_[0]->get("warranty"),$_[0]->get("wobjectId")); $file->copy($w->get("wobjectId")); $sth = WebGUI::SQL->read("select * from Product_feature where wobjectId=".$_[0]->get("wobjectId")); - while (%data = $sth->hash) { - $newId = getNextId("Product_featureId"); - WebGUI::SQL->write("insert into Product_feature values (".$w->get("wobjectId").", $newId, " - .quote($data{feature}).", $data{sequenceNumber})"); + while ($row = $sth->hashRef) { + $row->{"Product_featureId"} = "new"; + $w->setCollateral("Product_feature","Product_featureId",$row); } $sth->finish; $sth = WebGUI::SQL->read("select * from Product_benefit where wobjectId=".$_[0]->get("wobjectId")); - while (%data = $sth->hash) { - $newId = getNextId("Product_benefitId"); - WebGUI::SQL->write("insert into Product_benefit values (".$w->get("wobjectId").", $newId, " - .quote($data{benefit}).", $data{sequenceNumber})"); + while ($row = $sth->hashRef) { + $row->{"Product_benefitId"} = "new"; + $w->setCollateral("Product_benefit","Product_benefitId",$row); } $sth->finish; $sth = WebGUI::SQL->read("select * from Product_specification where wobjectId=".$_[0]->get("wobjectId")); - while (%data = $sth->hash) { - $newId = getNextId("Product_specificationId"); - WebGUI::SQL->write("insert into Product_specification values (".$w->get("wobjectId").", $newId, " - .quote($data{name}).", ".quote($data{value}).", ".quote($data{units}).", $data{sequenceNumber})"); + while ($row = $sth->hashRef) { + $row->{"Product_specificationId"} = "new"; + $w->setCollateral("Product_specifcation","Product_specificationId",$row); } $sth->finish; $sth = WebGUI::SQL->read("select * from Product_accessory where wobjectId=".$_[0]->get("wobjectId")); @@ -98,8 +84,20 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(price templateId productNumber image1 image2 image3 manual brochure warranty)] + -properties=>$property, + -extendedProperties=>{ + price=>{}, + templateId=>{ + defaultValue=>1 + }, + productNumber=>{}, + image1=>{}, + image2=>{}, + image3=>{}, + manual=>{}, + brochure=>{}, + warranty=>{} + } ); bless $self, $class; } @@ -271,37 +269,37 @@ sub www_deleteSpecificationConfirm { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my $output = helpIcon(1,$_[0]->get("namespace")); - my $template; - $output .= '

'.WebGUI::International::get(6,$_[0]->get("namespace")).'

'; - if ($_[0]->get("wobjectId") eq "new") { - $template = 1; - } else { - $template = $_[0]->get("templateId"); - } my $layout = WebGUI::HTMLForm->new; my $properties = WebGUI::HTMLForm->new; $layout->template( -name=>"templateId", - -value=>$template, + -value=>$_[0]->getValue("template"), -namespace=>$_[0]->get("namespace"), -label=>WebGUI::International::get(61,$_[0]->get("namespace")), -afterEdit=>'func=edit&wid='.$_[0]->get("wobjectId") ); - $properties->text("price",WebGUI::International::get(10,$_[0]->get("namespace")),$_[0]->get("price")); - $properties->text("productNumber",WebGUI::International::get(11,$_[0]->get("namespace")),$_[0]->get("productNumber")); + $properties->text( + -name=>"price", + -label=>WebGUI::International::get(10,$_[0]->get("namespace")), + -value=>$_[0]->getValue("price") + ); + $properties->text( + -name=>"productNumber", + -label=>WebGUI::International::get(11,$_[0]->get("namespace")), + -value=>$_[0]->getValue("productNumber") + ); $properties->raw($_[0]->fileProperty("image1",7)); $properties->raw($_[0]->fileProperty("image2",8)); $properties->raw($_[0]->fileProperty("image3",9)); $properties->raw($_[0]->fileProperty("brochure",13)); $properties->raw($_[0]->fileProperty("manual",14)); $properties->raw($_[0]->fileProperty("warranty",15)); - $output .= $_[0]->SUPER::www_edit( + return $_[0]->SUPER::www_edit( -properties=>$properties->printRowsOnly, - -layout=>$layout->printRowsOnly + -layout=>$layout->printRowsOnly, + -helpId=>1, + -headingId=>6 ); - return $output; } #------------------------------------------------------------------- @@ -327,9 +325,6 @@ sub www_editSave { $file = WebGUI::Attachment->new("",$_[0]->get("wobjectId")); $file->save("warranty"); $property{warranty}=$file->getFilename("warranty") if ($file->getFilename("warranty") ne ""); - $property{templateId}=$session{form}{templateId}; - $property{price}=$session{form}{price}; - $property{productNumber}=$session{form}{productNumber}; $_[0]->SUPER::www_editSave(\%property); return ""; } diff --git a/lib/WebGUI/Wobject/SQLReport.pm b/lib/WebGUI/Wobject/SQLReport.pm index 0d59ef6c6..f34c87593 100644 --- a/lib/WebGUI/Wobject/SQLReport.pm +++ b/lib/WebGUI/Wobject/SQLReport.pm @@ -26,23 +26,6 @@ use WebGUI::Wobject; our @ISA = qw(WebGUI::Wobject); -#------------------------------------------------------------------- -sub duplicate { - my ($w); - $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::SQLReport->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - template=>$_[0]->get("template"), - dbQuery=>$_[0]->get("dbQuery"), - DSN=>$_[0]->get("DSN"), - username=>$_[0]->get("username"), - identifier=>$_[0]->get("identifier"), - convertCarriageReturns=>$_[0]->get("convertCarriageReturns"), - paginateAfter=>$_[0]->get("paginateAfter"), - preprocessMacros=>$_[0]->get("preprocessMacros"), - debugMode=>$_[0]->get("debugMode") - }); -} #------------------------------------------------------------------- sub name { @@ -55,8 +38,30 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(template dbQuery DSN username identifier convertCarriageReturns paginateAfter preprocessMacros debugMode)] + -properties=>$property, + -extendedProperties=>{ + template=>{}, + dbQuery=>{}, + DSN=>{ + defaultValue=>$session{config}{dsn} + }, + username=>{ + defaultValue=>$session{config}{dbuser} + }, + identifier=>{}, + convertCarriageReturns=>{ + defaultValue=>0 + }, + paginateAfter=>{ + defaultValue=>50 + }, + preprocessMacros=>{ + defaultValue=>0 + }, + debugMode=>{ + defaultValue=>0 + } + } ); bless $self, $class; } @@ -68,49 +73,63 @@ sub uiLevel { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($output, $dsn, $username, $paginateAfter); - $dsn = $_[0]->get("DSN") || $session{config}{dsn}; - $username = $_[0]->get("username") || $session{config}{dbuser}; - $paginateAfter = $_[0]->get("paginateAfter") || 50; my $privileges = WebGUI::HTMLForm->new; my $layout = WebGUI::HTMLForm->new; my $properties = WebGUI::HTMLForm->new; - $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(8,$_[0]->get("namespace")).'

'; - $properties->yesNo("preprocessMacros",WebGUI::International::get(15,$_[0]->get("namespace")),$_[0]->get("preprocessMacros")); - $properties->yesNo("debugMode",WebGUI::International::get(16,$_[0]->get("namespace")),$_[0]->get("debugMode")); - $properties->textarea("dbQuery",WebGUI::International::get(4,$_[0]->get("namespace")),$_[0]->get("dbQuery")); - $layout->textarea("template",WebGUI::International::get(3,$_[0]->get("namespace")),$_[0]->get("template")); - $privileges->text("DSN",WebGUI::International::get(5,$_[0]->get("namespace")),$dsn); - $privileges->text("username",WebGUI::International::get(6,$_[0]->get("namespace")),$username); - $privileges->password("identifier",WebGUI::International::get(7,$_[0]->get("namespace")),$_[0]->get("identifier")); - $layout->integer("paginateAfter",WebGUI::International::get(14,$_[0]->get("namespace")),$paginateAfter); - $layout->yesNo("convertCarriageReturns",WebGUI::International::get(13,$_[0]->get("namespace")),$_[0]->get("convertCarriageReturns")); - $output .= $_[0]->SUPER::www_edit( + $properties->yesNo( + -name=>"preprocessMacros", + -label=>WebGUI::International::get(15,$_[0]->get("namespace")), + -value=>$_[0]->getValue("preprocessMacros") + ); + $properties->yesNo( + -name=>"debugMode", + -label=>WebGUI::International::get(16,$_[0]->get("namespace")), + -value=>$_[0]->getValue("debugMode") + ); + $properties->textarea( + -name=>"dbQuery", + -label=>WebGUI::International::get(4,$_[0]->get("namespace")), + -value=>$_[0]->getValue("dbQuery") + ); + $layout->textarea( + -name=>"template", + -label=>WebGUI::International::get(3,$_[0]->get("namespace")), + -value=>$_[0]->getValue("template") + ); + $privileges->text( + -name=>"DSN", + -label=>WebGUI::International::get(5,$_[0]->get("namespace")), + -value=>$_[0]->getValue("DSN") + ); + $privileges->text( + -name=>"username", + -label=>WebGUI::International::get(6,$_[0]->get("namespace")), + -value=>$_[0]->getValue("username") + ); + $privileges->password( + -name=>"identifier", + -label=>WebGUI::International::get(7,$_[0]->get("namespace")), + -value=>$_[0]->getValue("identifier") + ); + $layout->integer( + -name=>"paginateAfter", + -label=>WebGUI::International::get(14,$_[0]->get("namespace")), + -value=>$_[0]->getValue("paginateAfter") + ); + $layout->yesNo( + -name=>"convertCarriageReturns", + -label=>WebGUI::International::get(13,$_[0]->get("namespace")), + -value=>$_[0]->getValue("convertCarriageReturns") + ); + return $_[0]->SUPER::www_edit( -layout=>$layout->printRowsOnly, -properties=>$properties->printRowsOnly, - -privileges=>$privileges->printRowsOnly + -privileges=>$privileges->printRowsOnly, + -headingId=>8, + -helpId=>1 ); - return $output; } -#------------------------------------------------------------------- -sub www_editSave { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - $_[0]->SUPER::www_editSave({ - template=>$session{form}{template}, - dbQuery=>$session{form}{dbQuery}, - convertCarriageReturns=>$session{form}{convertCarriageReturns}, - DSN=>$session{form}{DSN}, - username=>$session{form}{username}, - identifier=>$session{form}{identifier}, - paginateAfter=>$session{form}{paginateAfter}, - preprocessMacros=>$session{form}{preprocessMacros}, - debugMode=>$session{form}{debugMode} - }); - return ""; -} #------------------------------------------------------------------- sub www_view { diff --git a/lib/WebGUI/Wobject/SiteMap.pm b/lib/WebGUI/Wobject/SiteMap.pm index aaca0fa4f..ab08869b8 100644 --- a/lib/WebGUI/Wobject/SiteMap.pm +++ b/lib/WebGUI/Wobject/SiteMap.pm @@ -55,18 +55,6 @@ sub _traversePageTree { return \@pages; } -#------------------------------------------------------------------- -sub duplicate { - my ($w, $f); - $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::SiteMap->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - startAtThisLevel=>$_[0]->get("startAtThisLevel"), - templateId=>$_[0]->get("templateId"), - indent=>$_[0]->get("indent"), - depth=>$_[0]->get("depth") - }); -} #------------------------------------------------------------------- sub name { @@ -78,8 +66,21 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(startAtThisLevel indent templateId depth)] + -properties=>$property, + -extendedProperties=>{ + startAtThisLevel=>{ + defaultValue=>1 + }, + indent=>{ + defaultValue=>5 + }, + templateId=>{ + defaultValue=>1 + }, + depth=>{ + defaultValue=>0 + } + } ); bless $self, $class; } @@ -87,52 +88,42 @@ sub new { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($output, $indent, $startLevel); - if ($_[0]->get("wobjectId") eq "new") { - $startLevel = 1; - } else { - $startLevel = $_[0]->get("startAtThisLevel"); - } my $options = WebGUI::SQL->buildHashRef("select pageId,title from page where parentId=0 and (pageId=1 or pageId>999) order by title"); - $indent = $_[0]->get("indent") || 5; - $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(5,$_[0]->get("namespace")).'

'; my $f = WebGUI::HTMLForm->new; $f->template( -name=>"templateId", - -value=>$_[0]->get("templateId"), + -value=>$_[0]->getValue("templateId"), -namespace=>$_[0]->get("namespace"), -afterEdit=>'func=edit&wid='.$_[0]->get("wobjectId") ); $f->select( -name=>"startAtThisLevel", -label=>WebGUI::International::get(3,$_[0]->get("namespace")), - -value=>[$startLevel], + -value=>[$_[0]->getValue("startLevel")], -options=>{ 0=>WebGUI::International::get(75,$_[0]->get("namespace")), $session{page}{pageId}=>WebGUI::International::get(74,$_[0]->get("namespace")), %{$options} } ); - $f->integer("depth",WebGUI::International::get(4,$_[0]->get("namespace")),$_[0]->get("depth")); - $f->integer("indent",WebGUI::International::get(6,$_[0]->get("namespace")),$indent); - $output .= $_[0]->SUPER::www_edit(-layout=>$f->printRowsOnly); - return $output; + $f->integer( + -name=>"depth", + -label=>WebGUI::International::get(4,$_[0]->get("namespace")), + -value=>$_[0]->getValue("depth") + ); + $f->integer( + -name=>"indent", + -label=>WebGUI::International::get(6,$_[0]->get("namespace")), + -value=>$_[0]->getValue("indent") + ); + return $_[0]->SUPER::www_edit( + -layout=>$f->printRowsOnly, + -headingId=>5, + -helpId=>1 + ); } -#------------------------------------------------------------------- -sub www_editSave { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - $_[0]->SUPER::www_editSave({ - indent=>$session{form}{indent}, - startAtThisLevel=>$session{form}{startAtThisLevel}, - depth=>$session{form}{depth}, - templateId=>$session{form}{templateId} - }); - return ""; -} #------------------------------------------------------------------- sub www_view { diff --git a/lib/WebGUI/Wobject/Survey.pm b/lib/WebGUI/Wobject/Survey.pm index 4bfa79664..8a2ff28a7 100644 --- a/lib/WebGUI/Wobject/Survey.pm +++ b/lib/WebGUI/Wobject/Survey.pm @@ -71,11 +71,7 @@ sub duplicate { $w = WebGUI::Wobject::Survey->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); $newSurveyId = getNextId("Survey_id"); $w->set({ - questionOrder=>$_[0]->get("questionOrder"), - groupToTakeSurvey=>$_[0]->get("groupToTakeSurvey"), - Survey_id=>$newSurveyId, - groupToViewReports=>$_[0]->get("groupToViewReports"), - mode=>$_[0]->get("mode") + Survey_id=>$newSurveyId }); $a = WebGUI::SQL->read("select * from Survey_question where Survey_id=".$_[0]->get("Survey_id") ." order by sequenceNumber"); @@ -116,8 +112,22 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(Survey_id questionOrder groupToTakeSurvey groupToViewReports mode)] + -properties=>$property, + -extendedProperties=>{ + Survey_id=>{}, + questionOrder=>{ + defaultValue=>"sequential" + }, + groupToTakeSurvey=>{ + defaultValue=>2 + }, + groupToViewReports=>{ + defaultValue=>4 + }, + mode=>{ + defaultValue=>"survey" + } + } ); bless $self, $class; } @@ -205,20 +215,12 @@ sub www_deleteAllResponsesConfirm { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($output, $surveyId, $questionOrder, $mode, $groupToViewReports, $sth, %data, $groupToTakeSurvey); + my ($output, $sth, %data); tie %data, 'Tie::CPHash'; - $mode = $_[0]->get("mode") || "survey"; - $questionOrder = $_[0]->get("questionOrder") || "sequential"; - $groupToViewReports = $_[0]->get("groupToViewReports") || 4; - $groupToTakeSurvey = $_[0]->get("groupToTakeSurvey") || 2; - $surveyId = $_[0]->get("Survey_id") || getNextId("Survey_id"); - $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(2,$_[0]->get("namespace")).'

'; my $properties = WebGUI::HTMLForm->new; my $layout = WebGUI::HTMLForm->new; my $privileges = WebGUI::HTMLForm->new; - $properties->hidden("Survey_id",$surveyId); + $properties->hidden("Survey_id",($_[0]->get("Survey_id") || getNextId("Survey_id"))); $layout->select( -name=>"questionOrder", -options=>{ @@ -227,7 +229,7 @@ sub www_edit { response => WebGUI::International::get(7,$_[0]->get("namespace")) }, -label=>WebGUI::International::get(8,$_[0]->get("namespace")), - -value=>[$questionOrder] + -value=>[$_[0]->getValue("questionOrder")] ); $properties->select( -name=>"mode", @@ -236,17 +238,17 @@ sub www_edit { quiz => WebGUI::International::get(10,$_[0]->get("namespace")) }, -label=>WebGUI::International::get(11,$_[0]->get("namespace")), - -value=>[$mode] + -value=>[$_[0]->getValue("mode")] ); $privileges->group( -name=>"groupToTakeSurvey", - -value=>[$groupToTakeSurvey], + -value=>[$_[0]->getValue("groupToTakeSurvey")], -label=>WebGUI::International::get(12,$_[0]->get("namespace")) ); $privileges->group( -name=>"groupToViewReports", -label=>WebGUI::International::get(13,$_[0]->get("namespace")), - -value=>[$groupToViewReports] + -value=>[$_[0]->getValue("groupToViewReports")] ); if ($_[0]->get("wobjectId") eq "new") { $properties->whatNext( @@ -257,10 +259,12 @@ sub www_edit { -value=>"addQuestion" ); } - $output .= $_[0]->SUPER::www_edit( + $output = $_[0]->SUPER::www_edit( -properties=>$properties->printRowsOnly, -layout=>$layout->printRowsOnly, - -privileges=>$privileges->printRowsOnly + -privileges=>$privileges->printRowsOnly, + -headingId=>2, + -helpId=>1 ); if ($_[0]->get("wobjectId") ne "new") { $output .= 'SUPER::www_editSave({ - groupToTakeSurvey=>$session{form}{groupToTakeSurvey}, - groupToViewReports=>$session{form}{groupToViewReports}, - mode=>$session{form}{mode}, - Survey_id=>$session{form}{Survey_id}, - questionOrder=>$session{form}{questionOrder} - }); + $_[0]->SUPER::www_editSave(); if ($session{form}{proceed} eq "addQuestion") { $session{form}{qid} = "new"; return $_[0]->www_editQuestion; diff --git a/lib/WebGUI/Wobject/SyndicatedContent.pm b/lib/WebGUI/Wobject/SyndicatedContent.pm index 13a4d7549..d09ea525e 100644 --- a/lib/WebGUI/Wobject/SyndicatedContent.pm +++ b/lib/WebGUI/Wobject/SyndicatedContent.pm @@ -23,17 +23,6 @@ use WebGUI::Wobject; our @ISA = qw(WebGUI::Wobject); -#------------------------------------------------------------------- -sub duplicate { - my ($w); - $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::SyndicatedContent->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - rssUrl=>$_[0]->get("rssUrl"), - content=>$_[0]->get("content"), - lastFetched=>$_[0]->get("lastFetched") - }); -} #------------------------------------------------------------------- sub name { @@ -45,8 +34,16 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(rssUrl content lastFetched)] + -properties=>$property, + -extendedProperties=>{ + rssUrl=>{}, + content=>{ + defaultValue=>'Not yet fetched!' + }, + lastFetched=>{ + defaultValue=>time() + } + } ); bless $self, $class; } @@ -59,33 +56,32 @@ sub uiLevel { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($output, $f); - $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(4,$_[0]->get("namespace")).'

'; - $f = WebGUI::HTMLForm->new; - $f->url("rssUrl",WebGUI::International::get(1,$_[0]->get("namespace")),$_[0]->get("rssUrl")); + my $f = WebGUI::HTMLForm->new; + $f->url( + -name=>"rssUrl", + -label=>WebGUI::International::get(1,$_[0]->get("namespace")), + -value=>$_[0]->getValue("rssUrl") + ); if ($_[0]->get("wobjectId") ne "new") { - $f->readOnly(WebGUI::DateTime::epochToHuman($_[0]->get("lastFetched"),"%z %Z"),WebGUI::International::get(5,$_[0]->get("namespace"))); - $f->readOnly($_[0]->get("content"),WebGUI::International::get(6,$_[0]->get("namespace"))); + $f->readOnly( + -value=>WebGUI::DateTime::epochToHuman($_[0]->getValue("lastFetched"),"%z %Z"), + -label=>WebGUI::International::get(5,$_[0]->get("namespace")) + ); + $f->readOnly( + -value=>$_[0]->getValue("content"), + -label=>WebGUI::International::get(6,$_[0]->get("namespace")) + ); } else { - $f->hidden("content","Not yet fetched!"); - $f->hidden("lastFetched",time()); + $f->hidden("content",$_[0]->getValue("content")); + $f->hidden("lastFetched",$_[0]->getValue("lastFetched")); } - $output .= $_[0]->SUPER::www_edit($f->printRowsOnly); - return $output; + return $_[0]->SUPER::www_edit( + -properties=>$f->printRowsOnly, + -headingId=>4, + -helpId=>1 + ); } -#------------------------------------------------------------------- -sub www_editSave { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($property); - $property->{rssUrl} = $session{form}{rssUrl}; - $property->{content} = $session{form}{content} if ($session{form}{content} ne ""); - $property->{lastFetched} = $session{form}{lastFetched} if ($session{form}{lastFetched} ne ""); - $_[0]->SUPER::www_editSave($property); - return ""; -} #------------------------------------------------------------------- sub www_view { diff --git a/lib/WebGUI/Wobject/USS.pm b/lib/WebGUI/Wobject/USS.pm index 3e3fd7773..1c1e3e433 100644 --- a/lib/WebGUI/Wobject/USS.pm +++ b/lib/WebGUI/Wobject/USS.pm @@ -37,28 +37,18 @@ sub duplicate { my ($sth, $file, %row, $newSubmissionId, $w); tie %row, 'Tie::CPHash'; $w = $_[0]->SUPER::duplicate($_[1],1); - $w = WebGUI::Wobject::USS->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - groupToContribute=>$_[0]->get("groupToContribute"), - submissionsPerPage=>$_[0]->get("submissionsPerPage"), - defaultStatus=>$_[0]->get("defaultStatus"), - groupToApprove=>$_[0]->get("groupToApprove"), - karmaPerSubmission=>$_[0]->get("karmaPerSubmission"), - templateId=>$_[0]->get("templateId"), - submissionTemplateId=>$_[0]->get("submissionTemplateId") - }); $sth = WebGUI::SQL->read("select * from USS_submission where wobjectId=".$_[0]->get("wobjectId")); while (%row = $sth->hash) { $newSubmissionId = getNextId("USS_submissionId"); $file = WebGUI::Attachment->new($row{image},$_[0]->get("wobjectId"),$row{USS_submissionId}); - $file->copy($w->get("wobjectId"),$newSubmissionId); + $file->copy($w,$newSubmissionId); $file = WebGUI::Attachment->new($row{attachment},$_[0]->get("wobjectId"),$row{USS_submissionId}); - $file->copy($w->get("wobjectId"),$newSubmissionId); - WebGUI::SQL->write("insert into USS_submission values (".$w->get("wobjectId").", $newSubmissionId, ". + $file->copy($w,$newSubmissionId); + WebGUI::SQL->write("insert into USS_submission values (".$w.", $newSubmissionId, ". quote($row{title}).", $row{dateSubmitted}, ".quote($row{username}).", '$row{userId}', ".quote($row{content}).", ". quote($row{image}).", ".quote($row{attachment}).", '$row{status}', '$row{convertCarriageReturns}', '$row{views}')"); - WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w->get("wobjectId"),$row{USS_submissionId},$newSubmissionId); + WebGUI::Discussion::duplicate($_[0]->get("wobjectId"),$w,$row{USS_submissionId},$newSubmissionId); } $sth->finish; } @@ -73,10 +63,37 @@ sub new { my $class = shift; my $property = shift; my $self = WebGUI::Wobject->new( - $property, - [qw(submissionsPerPage groupToContribute groupToApprove defaultStatus - submissionTemplateId templateId karmaPerSubmission allowDiscussion)], - 1 + -properties=>$property, + -useDiscussion=>1< + -extendedProperties=>{ + submissionsPerPage=>{ + defaultValue=>50 + }, + groupToContribute=>{ + defaultValue=>2 + }, + groupToApprove=>{ + defaultValue=>4 + }, + defaultStatus=>{ + defaultValue=>"Approved" + }, + submissionTemplateId=>{ + defaultValue=>1 + }, + templateId=>{ + defaultValue=>1 + }, + karmaPerSubmission=>{ + defaultValue=>0 + }, + allowDiscussion=>{ + defaultValue=>0 + }, + filterContent=>{ + defaultValue=>"javascript" + } + } ); bless $self, $class; } @@ -172,49 +189,67 @@ sub www_denySubmission { #------------------------------------------------------------------- sub www_edit { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($output, $defaultStatus, $submissionsPerPage, $groupToApprove); - $groupToApprove = $_[0]->get("groupToApprove") || 4; - $submissionsPerPage = $_[0]->get("submissionsPerPage") || 50; - $defaultStatus = $_[0]->get("defaultStatus") || "Approved"; - $output = helpIcon(1,$_[0]->get("namespace")); - $output .= '

'.WebGUI::International::get(18,$_[0]->get("namespace")).'

'; my $layout = WebGUI::HTMLForm->new; my $privileges = WebGUI::HTMLForm->new; my $properties = WebGUI::HTMLForm->new; $layout->template( -name=>"templateId", - -value=>$_[0]->get("templateId"), + -value=>$_[0]->getValue("templateId"), -namespace=>$_[0]->get("namespace"), -label=>WebGUI::International::get(72,$_[0]->get("namespace")), -afterEdit=>'func=edit&wid='.$_[0]->get("wobjectId") ); $layout->template( -name=>"submissionTemplateId", - -value=>$_[0]->get("submissionTemplateId"), + -value=>$_[0]->getValue("submissionTemplateId"), -namespace=>$_[0]->get("namespace")."/Submission", -label=>WebGUI::International::get(73,$_[0]->get("namespace")), -afterEdit=>'func=edit&wid='.$_[0]->get("wobjectId") ); - $privileges->group("groupToApprove",WebGUI::International::get(1,$_[0]->get("namespace")),[$groupToApprove]); - $privileges->group("groupToContribute",WebGUI::International::get(2,$_[0]->get("namespace")),[$_[0]->get("groupToContribute")]); - $layout->integer("submissionsPerPage",WebGUI::International::get(6,$_[0]->get("namespace")),$submissionsPerPage); - $privileges->select("defaultStatus",{Approved=>status('Approved'),Denied=>status('Denied'),Pending=>status('Pending')} - ,WebGUI::International::get(563),[$defaultStatus]); + $privileges->group( + -name=>"groupToApprove", + -label=>WebGUI::International::get(1,$_[0]->get("namespace")), + -value=>[$_[0]->getValue("groupToApprove")] + ); + $privileges->group( + -name=>"groupToContribute", + -label=>WebGUI::International::get(2,$_[0]->get("namespace")), + -value=>[$_[0]->getValue("groupToContribute")] + ); + $layout->integer( + -name=>"submissionsPerPage", + -label=>WebGUI::International::get(6,$_[0]->get("namespace")), + -value=>$_[0]->getValue("submissionsPerPage") + ); + $privileges->selectList( + -name=>"defaultStatus", + -options=>{ + Approved=>status('Approved'), + Denied=>status('Denied'), + Pending=>status('Pending') + }, + -label=>WebGUI::International::get(563), + -value=>[$_[0]->getValue("defaultStatus")] + ); if ($session{setting}{useKarma}) { - $properties->integer("karmaPerSubmission",WebGUI::International::get(30,$_[0]->get("namespace")),$_[0]->get("karmaPerSubmission")); + $properties->integer( + -name=>"karmaPerSubmission", + -label=>WebGUI::International::get(30,$_[0]->get("namespace")), + -value=>$_[0]->getValue("karmaPerSubmission") + ); } else { - $properties->hidden("karmaPerSubmission",$_[0]->get("karmaPerSubmission")); + $properties->hidden("karmaPerSubmission",$_[0]->getValue("karmaPerSubmission")); } $layout->filterContent( - -value=>$_[0]->get("filterContent") + -value=>$_[0]->getValue("filterContent") ); - $output .= $_[0]->SUPER::www_edit( + return $_[0]->SUPER::www_edit( -layout=>$layout->printRowsOnly, -privileges=>$privileges->printRowsOnly, - -properties=>$properties->printRowsOnly + -properties=>$properties->printRowsOnly, + -headingId=>18, + -helpId=>1 ); - return $output; } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Wobject/WobjectProxy.pm b/lib/WebGUI/Wobject/WobjectProxy.pm index 143e8f881..d5b249b78 100644 --- a/lib/WebGUI/Wobject/WobjectProxy.pm +++ b/lib/WebGUI/Wobject/WobjectProxy.pm @@ -26,16 +26,6 @@ use WebGUI::Wobject; our @ISA = qw(WebGUI::Wobject); -#------------------------------------------------------------------- -sub duplicate { - my ($w); - $w = $_[0]->SUPER::duplicate($_[1]); - $w = WebGUI::Wobject::WobjectProxy->new({wobjectId=>$w,namespace=>$_[0]->get("namespace")}); - $w->set({ - proxiedWobjectId=>$_[0]->get("proxiedWobjectId") - }); -} - #------------------------------------------------------------------- sub name { return WebGUI::International::get(3,$_[0]->get("namespace")); @@ -45,9 +35,11 @@ sub name { sub new { my $class = shift; my $property = shift; - my $self = WebGUI::Wobject->new( - $property, - [qw(proxiedWobjectId)] + my $self = WebGUI::Wobject->new( + -properties=>$property, + -extendedProperties=>{ + proxiedWobjectId=>{ } + } ); bless $self, $class; } @@ -61,15 +53,12 @@ sub uiLevel { #------------------------------------------------------------------- sub www_edit { return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - my ($output, $f, $startDate, $endDate, $templatePosition,%wobjects, %page, %wobject, $a, $b); + my ($output, $f, %wobjects, %page, %wobject, $a, $b); tie %wobject, 'Tie::CPHash'; tie %page, 'Tie::CPHash'; tie %wobjects, 'Tie::IxHash'; $output = helpIcon(1,$_[0]->get("namespace")); $output .= '

'.WebGUI::International::get(2,$_[0]->get("namespace")).'

'; - $templatePosition = $_[0]->get("templatePosition") || 1; - $startDate = $_[0]->get("startDate") || $session{page}{startDate}; - $endDate = $_[0]->get("endDate") || $session{page}{endDate}; my %tabs; tie %tabs, 'Tie::IxHash'; %tabs = ( @@ -89,19 +78,30 @@ sub www_edit { $f->hidden({name=>"wid",value=>$_[0]->get("wobjectId")}); $f->hidden({name=>"namespace",value=>$_[0]->get("namespace")}) if ($_[0]->get("wobjectId") eq "new"); $f->hidden({name=>"func",value=>"editSave"}); - $f->getTab("properties")->readOnly($_[0]->get("wobjectId"),WebGUI::International::get(499)); + $f->getTab("properties")->readOnly( + -value=>$_[0]->get("wobjectId"), + -label=>WebGUI::International::get(499) + ); $f->hidden({name=>"title",value=>$_[0]->name}); - $f->hidden({name=>"displayTitle",value=>0}); + $f->hidden({name=>"displayTitle",value=>$_[0]->getValue("displayTitle")}); $f->getTab("layout")->select( -name=>"templatePosition", -label=>WebGUI::International::get(363), - -value=>[$templatePosition], + -value=>[$_[0]->getValue("templatePosition")], -uiLevel=>5, -options=>WebGUI::Page::getTemplatePositions($session{page}{templateId}), -subtext=>WebGUI::Page::drawTemplate($session{page}{templateId}) ); - $f->getTab("privileges")->date("startDate",WebGUI::International::get(497),$startDate); - $f->getTab("privileges")->date("endDate",WebGUI::International::get(498),$endDate); + $f->getTab("privileges")->date( + -name=>"startDate", + -label=>WebGUI::International::get(497), + -value=>$_[0]->getValue("startDate") + ); + $f->getTab("privileges")->date( + -name=>"endDate", + -label=>WebGUI::International::get(498), + -value=>$_[0]->getValue("endDate") + ); $a = WebGUI::SQL->read("select pageId,menuTitle from page where pageId<2 or pageId>25 order by menuTitle"); while (%page = $a->hash) { $b = WebGUI::SQL->read("select wobjectId,title from wobject @@ -113,20 +113,16 @@ sub www_edit { $b->finish; } $a->finish; - $f->getTab("properties")->select("proxiedWobjectId",\%wobjects,WebGUI::International::get(1,$_[0]->get("namespace")),[$_[0]->get("proxiedWobjectId")]); + $f->getTab("properties")->select( + -name=>"proxiedWobjectId", + -options=>\%wobjects, + -label=>WebGUI::International::get(1,$_[0]->get("namespace")), + -value=>[$_[0]->getValue("proxiedWobjectId")] + ); $output .= $f->print; return $output; } -#------------------------------------------------------------------- -sub www_editSave { - return WebGUI::Privilege::insufficient() unless (WebGUI::Privilege::canEditPage()); - $_[0]->SUPER::www_editSave({ - proxiedWobjectId=>$session{form}{proxiedWobjectId} - }); - return ""; -} - #------------------------------------------------------------------- sub www_view { return WebGUI::International::get(4,$_[0]->get("namespace"));