From 36b608189491d6ef9d85dc71e0f878e49f686d0c Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Wed, 3 Mar 2010 19:31:18 -0800 Subject: [PATCH] Update 3 Form plugins for Asset instanciators and exceptions. --- lib/WebGUI/Form/HTMLArea.pm | 4 ++-- lib/WebGUI/Form/SelectRichEditor.pm | 15 ++++++++------- lib/WebGUI/Form/Template.pm | 10 +++++----- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/lib/WebGUI/Form/HTMLArea.pm b/lib/WebGUI/Form/HTMLArea.pm index 21505afa4..10bb1bb3e 100644 --- a/lib/WebGUI/Form/HTMLArea.pm +++ b/lib/WebGUI/Form/HTMLArea.pm @@ -169,8 +169,8 @@ Renders an HTML area field. sub toHtml { my $self = shift; my $i18n = WebGUI::International->new($self->session); - my $richEdit = WebGUI::Asset::RichEdit->new($self->session,$self->get("richEditId")); - if (defined $richEdit) { + my $richEdit = eval { WebGUI::Asset::RichEdit->newById($self->session, $self->get("richEditId")); }; + if (! Exception::Class->caught() ) { $self->session->style->setScript($self->session->url->extras('textFix.js'),{ type=>'text/javascript' }); $self->set("extras", $self->get('extras') . ' onblur="fixChars(this.form.'.$self->get("name").')" mce_editable="true" '); $self->set("resizable", 0); diff --git a/lib/WebGUI/Form/SelectRichEditor.pm b/lib/WebGUI/Form/SelectRichEditor.pm index cd6f73c9b..3477db95e 100644 --- a/lib/WebGUI/Form/SelectRichEditor.pm +++ b/lib/WebGUI/Form/SelectRichEditor.pm @@ -139,15 +139,16 @@ Renders the form field to HTML as a table row complete with labels, subtext, hov =cut sub toHtmlWithWrapper { - my $self = shift; - my $editor = WebGUI::Asset::RichEdit->new($self->session,$self->getOriginalValue); - if (defined $editor && $editor->canEdit) { + my $self = shift; + my $session = $self->session; + my $editor = eval { WebGUI::Asset::RichEdit->newById($session, $self->getOriginalValue); }; + if (! Exception::Class->caught() && $editor->canEdit) { my $returnUrl = ''; - if (defined $self->session->asset && !$self->session->asset->isa("WebGUI::Asset::RichEdit")) { - $returnUrl = ";proceed=goBackToPage;returnUrl=".$self->session->url->escape($self->session->asset->getUrl); + if (defined $session->asset && !$session->asset->isa("WebGUI::Asset::RichEdit")) { + $returnUrl = ";proceed=goBackToPage;returnUrl=".$session->url->escape($self->session->asset->getUrl); } - my $buttons = $self->session->icon->edit("func=edit".$returnUrl,$editor->get("url")); - $buttons .= $self->session->icon->manage("op=assetManager",$editor->getParent->get("url")); + my $buttons = $session->icon->edit("func=edit".$returnUrl,$editor->get("url")); + $buttons .= $session->icon->manage("op=assetManager",$editor->getParent->get("url")); $self->set("subtext", $buttons . $self->get("subtext")); } return $self->SUPER::toHtmlWithWrapper; diff --git a/lib/WebGUI/Form/Template.pm b/lib/WebGUI/Form/Template.pm index e95bed1ef..6982b95ee 100644 --- a/lib/WebGUI/Form/Template.pm +++ b/lib/WebGUI/Form/Template.pm @@ -150,7 +150,7 @@ sub toHtml { my $templateList = WebGUI::Asset::Template->getList($self->session, $self->get("namespace"), $onlyCommitted); #Remove entries from template list that the user does not have permission to view. for my $assetId ( keys %{$templateList} ) { - my $asset = WebGUI::Asset::Template->new($self->session, $assetId); + my $asset = WebGUI::Asset::Template->newById($self->session, $assetId); if (!$asset->canView($self->session->user->userId)) { delete $templateList->{$assetId}; } @@ -168,10 +168,10 @@ Renders the form field to HTML as a table row complete with labels, subtext, hov =cut sub toHtmlWithWrapper { - my $self = shift; - my $session = $self->session; - my $template = WebGUI::Asset::Template->new($session,$self->getOriginalValue()); - if (defined $template && $template->canEdit) { + my $self = shift; + my $session = $self->session; + my $template = eval { WebGUI::Asset::Template->newById($session, $self->getOriginalValue()); }; + if (!Exception::Class->caught() && $template->canEdit) { my $returnUrl; if (defined $session->asset && ref $session->asset ne "WebGUI::Asset::Template") { $returnUrl = ";proceed=goBackToPage;returnUrl=".$session->url->escape($self->session->asset->getUrl);