diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 29058dca4..a46dd34c6 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -1012,7 +1012,7 @@ sub setupFormField { } $tab ||= 'properties'; - return $tabform->getTab($tab)->dynamicField(%params); + return $tabform->getTab($tab)->addField( delete $params{fieldType}, %params); } ## end sub setupFormField #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/EMSSubmission.pm b/lib/WebGUI/Asset/EMSSubmission.pm index 985a72b89..ba225361a 100644 --- a/lib/WebGUI/Asset/EMSSubmission.pm +++ b/lib/WebGUI/Asset/EMSSubmission.pm @@ -596,25 +596,6 @@ sub view { #return $self->processTemplate( $var, undef, $self->{_viewTemplate} ); } -#------------------------------------------------------------------- - -=head2 www_edit ( ) - -Web facing method which is the default edit page. Unless the method needs -special handling or formatting, it does not need to be included in -the module. - -=cut - -sub www_edit { - my $self = shift; - my $session = $self->session; - return $session->privilege->insufficient() unless $self->canEdit; - return $session->privilege->locked() unless $self->canEditIfLocked; - my $i18n = WebGUI::International->new( $session, 'Asset_EMSSubmission' ); - return $self->getAdminConsole->render( $self->getEditForm->print, $i18n->get('edit asset') ); -} - 1; #vim:ft=perl diff --git a/lib/WebGUI/Asset/File.pm b/lib/WebGUI/Asset/File.pm index 78cb0a7dd..633c62335 100644 --- a/lib/WebGUI/Asset/File.pm +++ b/lib/WebGUI/Asset/File.pm @@ -212,48 +212,25 @@ Returns the TabForm object that will be used in generating the edit page for thi override getEditForm => sub { my $self = shift; - my $tabform = super(); + my $f = super(); my $i18n = WebGUI::International->new($self->session, 'Asset_File'); - $tabform->getTab("properties")->raw( - ''.$i18n->get('new file').'' - . $self->getEditFormUploadControl - . '' - ); - - return $tabform; -}; - -#---------------------------------------------------------------------------- - -=head2 getEditFormUploadControl - -Returns the HTML to display the current photo, if it has one, and a file chooser -to either upload one, or replace the current one. - -=cut - -sub getEditFormUploadControl { - my $self = shift; - my $session = $self->session; - my $i18n = WebGUI::International->new($session, 'Asset_File'); - my $html = ''; - + # Add field to upload file if ($self->filename ne "") { - $html .= WebGUI::Form::readOnly( $session, { - value => '

'.$self->filename.' '.$self->filename.'

' + $f->getTab("properties")->addField( "ReadOnly", { + name => "viewFile", + value => '

'.$self->filename.' '.$self->filename.'

', }); } - # Control to upload a new file - $html .= WebGUI::Form::file( $session, { + $f->getTab( "properties" )->addField( "File", name => 'newFile', label => $i18n->get('new file'), hoverHelp => $i18n->get('new file description'), - }); + ); - return $html; -} + return $f; +}; #------------------------------------------------------------------- @@ -615,13 +592,8 @@ sub www_edit { return $self->session->privilege->insufficient() unless $self->canEdit; return $self->session->privilege->locked() unless $self->canEditIfLocked; my $i18n = WebGUI::International->new($self->session); - my $tabform = $self->getEditForm; - $tabform->getTab("display")->template( - -value=>$self->templateId, - -hoverHelp=>$i18n->get('file template description','Asset_File'), - -namespace=>"FileAsset" - ); - return $self->getAdminConsole->render($tabform->print,$self->addEditLabel); + my $f = $self->getEditForm; + return $self->getAdminConsole->render($f->print,$self->addEditLabel); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/File/GalleryFile/Photo.pm b/lib/WebGUI/Asset/File/GalleryFile/Photo.pm index 64f006baa..dce93c8c9 100644 --- a/lib/WebGUI/Asset/File/GalleryFile/Photo.pm +++ b/lib/WebGUI/Asset/File/GalleryFile/Photo.pm @@ -210,8 +210,7 @@ sub getDownloadFileUrl { =head2 getEditFormUploadControl Returns the HTML to display the current photo, if it has one, and a file chooser -to either upload one, or replace the current one. Subclasses the master class -to change i18n labels. +to either upload one, or replace the current one. =cut diff --git a/lib/WebGUI/Asset/File/Image.pm b/lib/WebGUI/Asset/File/Image.pm index 90e14a36c..753dd0441 100644 --- a/lib/WebGUI/Asset/File/Image.pm +++ b/lib/WebGUI/Asset/File/Image.pm @@ -136,51 +136,38 @@ Returns the TabForm object that will be used in generating the edit page for thi override getEditForm => sub { my $self = shift; - my $tabform = super(); - -# Add the fields defined locally and apply any overrides from the config file + my $f = super(); my $i18n = WebGUI::International->new($self->session,"Asset_Image"); - tie my %extraFields, "Tie::IxHash"; + # Fix templateId to use correct namespace and default + my $template = $f->getTab('display')->getField('templateId'); + $template->set( hoverHelp => $i18n->get('image template description') ); + $template->set( namespace => 'ImageAsset' ); + $template->set( defaultValue => 'PBtmpl0000000000000088' ); - $extraFields{thumbnailSize} = { - fieldType => "integer", - name => "thumbnailSize", - label => $i18n->get('thumbnail size'), - hoverHelp => $i18n->get('Thumbnail size description'), - value => $self->thumbnailSize, - }; - $extraFields{parameters} = { - fieldType => "textarea", - name => "parameters", - label => $i18n->get('parameters'), - hoverHelp => $i18n->get('Parameters description'), - value => $self->parameters, - }; + + # Add the fields defined locally and apply any overrides from the config file + my $overrides = $self->session->config->get("assets/".$self->className); if ($self->filename ne "") { my ($x, $y) = $self->getStorageLocation->getSizeInPixels($self->filename); - $extraFields{thumbnail} = { - fieldType => "readOnly", + $f->getTab('properties')->addField( "ReadOnly", + name => 'thumbnail', label => $i18n->get('thumbnail'), hoverHelp => $i18n->get('Thumbnail description'), - value => 'thumbnail' - }; - $extraFields{imageSize} = { - fieldType => "readOnly", + value => 'thumbnail', + ( $overrides->{thumbnail} ? %{$overrides->{thumbnail}} : () ), + ); + $f->getTab('properties')->addField( "ReadOnly", + name => 'imageSize', label => $i18n->get('image size'), value => $x.' x '.$y, - }; + ( $overrides->{imageSize} ? %{$overrides->{imageSize}} : () ), + ); } - my $overrides = $self->session->config->get("assets/".$self->className); - - foreach my $fieldName (keys %extraFields) { - $self->setupFormField($tabform, $fieldName, \%extraFields, $overrides); - } - - return $tabform; + return $f; }; #------------------------------------------------------------------- @@ -284,6 +271,7 @@ sub www_edit { my $i18n = WebGUI::International->new($session, 'Asset_Image'); if ($self->filename) { my $ac = $self->getAdminConsole; + # These are asset helpers now, not functions $ac->addSubmenuItem($self->getUrl('func=resize'), $i18n->get("resize image")); $ac->addSubmenuItem($self->getUrl('func=rotate'), $i18n->get("rotate image")); $ac->addSubmenuItem($self->getUrl('func=crop'), $i18n->get("crop image")); @@ -291,13 +279,7 @@ sub www_edit { $ac->addSubmenuItem($self->getUrl('func=undo'), $i18n->get("undo image")); } my $tabform = $self->getEditForm; - $tabform->getTab("display")->template( - -value => $self->templateId, - -namespace => "ImageAsset", - -hoverHelp => $i18n->get('image template description'), - -defaultValue => "PBtmpl0000000000000088", - ); - return $self->getAdminConsole->render($tabform->print,$i18n->get("edit image")); + return $self->getAdminConsole->render($tabform->toHtml,$i18n->get("edit image")); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/File/ZipArchive.pm b/lib/WebGUI/Asset/File/ZipArchive.pm index 97148def8..710583d52 100644 --- a/lib/WebGUI/Asset/File/ZipArchive.pm +++ b/lib/WebGUI/Asset/File/ZipArchive.pm @@ -229,7 +229,7 @@ sub www_edit { return $self->session->privilege->locked() unless $self->canEditIfLocked; my $i18n = WebGUI::International->new($self->session, 'Asset_Wobject'); my $addEdit = ($self->session->form->process("func") eq 'add') ? $i18n->get('add') : $i18n->get('edit'); - return $self->getAdminConsole->render($self->getEditForm->print, $self->addEditLabel); + return $self->getAdminConsole->render($self->getEditForm->toHtml, $self->addEditLabel); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/MatrixListing.pm b/lib/WebGUI/Asset/MatrixListing.pm index 15c8cdeb8..aa39af2d6 100644 --- a/lib/WebGUI/Asset/MatrixListing.pm +++ b/lib/WebGUI/Asset/MatrixListing.pm @@ -198,7 +198,7 @@ sub getAutoCommitWorkflowId { =head2 getEditForm ( ) -Returns the TabForm object that will be used in generating the edit page for this asset. +Returns the FormBuilder object that will be used in generating the edit page for this asset. =cut @@ -210,16 +210,17 @@ sub getEditForm { my $i18n = WebGUI::International->new($session, 'Asset_MatrixListing'); my $func = $session->form->process("func"); + # TODO: Change to FormBuilder my $form = WebGUI::HTMLForm->new($session); if ($func eq "add" || ( $func eq "editSave" && $session->form->process("assetId") eq "new")) { $form->hidden( - -name =>'assetId', - -value =>'new', + -name => 'assetId', + -value => 'new', ); $form->hidden( - -name =>'class', - -value =>'WebGUI::Asset::MatrixListing', + -name => 'class', + -value => 'WebGUI::Asset::MatrixListing', ); } $form->hidden( @@ -232,7 +233,8 @@ sub getEditForm { -label =>$i18n->get("product name label"), -hoverHelp =>$i18n->get('product name description'), -value =>$self->title, - ); + :help grep + $form->image( -name =>'screenshots', -defaultValue =>undef, @@ -269,7 +271,7 @@ sub getEditForm { -value =>$userId, ); } - $form->text( + $form->text( -name =>'version', -defaultValue =>undef, -label =>$i18n->get("version label"), @@ -835,6 +837,7 @@ sub www_edit { my $var = $self->get; my $matrix = $self->getParent; + # TODO: Change to FormBuilder $var->{form} = $self->getEditForm->print; return $matrix->processStyle($self->processTemplate($var,$matrix->get("editListingTemplateId"))); @@ -929,7 +932,7 @@ sub www_getScreenshots { ".$storage->getUrl($thumb)." ".$width." ".$height." - + "; } } diff --git a/lib/WebGUI/Asset/RichEdit.pm b/lib/WebGUI/Asset/RichEdit.pm index 7ce3faecf..a5ba75b41 100644 --- a/lib/WebGUI/Asset/RichEdit.pm +++ b/lib/WebGUI/Asset/RichEdit.pm @@ -205,242 +205,128 @@ Returns the TabForm object that will be used in generating the edit page for thi =cut override getEditForm => sub { - my $self = shift; - my $tabform = super(); - my $i18n = WebGUI::International->new($self->session,'Asset_RichEdit'); - my %buttons; - tie %buttons, "Tie::IxHash"; - %buttons = ( - 'search' => $i18n->get('search'), - 'replace' => $i18n->get('replace'), - 'cut' => $i18n->get('cut'), - 'copy' => $i18n->get('Copy'), - 'paste' => $i18n->get('paste'), - 'pastetext' => $i18n->get('pastetext'), - 'pasteword' => $i18n->get('pasteword'), - 'undo' => $i18n->get('undo'), - 'redo' => $i18n->get('redo'), - 'bold' => $i18n->get('bold'), - 'italic' => $i18n->get('italic'), - 'underline' => $i18n->get('underline'), - 'strikethrough' => $i18n->get('strikethrough'), - 'justifyleft' => $i18n->get('justifyleft'), - 'justifycenter' => $i18n->get('justifycenter'), - 'justifyright' => $i18n->get('justifyright'), - 'justifyfull' => $i18n->get('justifyfull'), - 'bullist' => $i18n->get('bullist'), - 'numlist' => $i18n->get('numlist'), - 'outdent' => $i18n->get('outdent'), - 'indent' => $i18n->get('indent'), - 'sub' => $i18n->get('sub'), - 'sup' => $i18n->get('sup'), - 'styleselect' => $i18n->get('styleselect'), - 'formatselect' => $i18n->get('formatselect'), - 'fontselect' => $i18n->get('fontselect'), - 'fontsizeselect' => $i18n->get('fontsizeselect'), - 'forecolor' => $i18n->get('forecolor'), - 'backcolor' => $i18n->get('backcolor'), - 'link' => $i18n->get('link'), - 'wgpagetree' => $i18n->get('pagetree'), - 'anchor' => $i18n->get('anchor'), - 'unlink' => $i18n->get('unlink'), - 'tablecontrols' => $i18n->get('tablecontrols'), - 'visualaid' => $i18n->get('visualaid'), - 'hr' => $i18n->get('hr'), - 'advhr' => $i18n->get('advhr'), - 'inserttime' => $i18n->get('inserttime'), - 'insertdate' => $i18n->get('insertdate'), - 'image' => $i18n->get('image'), - 'wginsertimage' => $i18n->get('insertImage'), - 'media' => $i18n->get('media'), - 'charmap' => $i18n->get('charmap'), - 'wgmacro' => $i18n->get('collateral'), - 'emotions' => $i18n->get('emotions'), - 'help' => $i18n->get('help'), - 'iespell' => $i18n->get('iespell'), - 'removeformat' => $i18n->get('removeformat'), - 'code' => $i18n->get('code'), - 'cleanup' => $i18n->get('cleanup'), - 'save' => $i18n->get('save'), - 'preview' => $i18n->get('preview'), - 'fullscreen' => $i18n->get('fullscreen'), - 'print' => $i18n->get('print'), - 'spellchecker' => $i18n->get('Server Side Spell Checker'), -# 'advlink' => "Advanced Link", -# 'spacer' => "Toolbar Spacer", -# 'separator' => "Toolbar Separator", -# 'rowseparator' => "Toolbar Row Separator", -# 'advimage' => "Advanced Image", - ); - my $buttonGrid = sprintf qq! - - - - - - - !, - $i18n->get('button'), - $i18n->get('row 1'), - $i18n->get('row 2'), - $i18n->get('row 3'); - my @toolbarRow1 = split("\n",$self->toolbarRow1); - my @toolbarRow2 = split("\n",$self->toolbarRow2); - my @toolbarRow3 = split("\n",$self->toolbarRow3); - my $evenOddToggle = 0; - foreach my $key (keys %buttons) { - $evenOddToggle = $evenOddToggle ? 0 : 1; - my $checked1 = isIn($key,@toolbarRow1); - my $checked2 = isIn($key,@toolbarRow2); - my $checked3 = isIn($key,@toolbarRow3); - $buttonGrid .= ' - - - - - - - '; - } - $buttonGrid .= "
%s%s%s%s
'.$buttons{$key}.''.WebGUI::Form::checkbox($self->session, { - value=>$key, - name=>"toolbarRow1", - checked=>$checked1 - }).''.WebGUI::Form::checkbox($self->session, { - value=>$key, - name=>"toolbarRow2", - checked=>$checked2 - }).''.WebGUI::Form::checkbox($self->session, { - value=>$key, - name=>"toolbarRow3", - checked=>$checked3 - }).''; - if ($key eq 'spellchecker' && !($self->session->config->get('availableDictionaries'))) { - $buttonGrid .= $i18n->get('no dictionaries'); - } - $buttonGrid .= '
"; - $tabform->getTab("properties")->readOnly( - -label=>$i18n->get('toolbar buttons'), - -hoverHelp=>$i18n->get('toolbar buttons description'), - -value=>$buttonGrid - ); - $tabform->getTab("properties")->yesNo( - -value=>$self->disableRichEditor, - -label=>$i18n->get('disable rich edit'), - -hoverHelp=>$i18n->get('disable rich edit description'), - -name=>"disableRichEditor" - ); - $tabform->getTab("properties")->yesNo( - -value=>$self->getValue("askAboutRichEdit"), - -label=>$i18n->get('using rich edit'), - -hoverHelp=>$i18n->get('using rich edit description'), - -name=>"askAboutRichEdit" - ); - $tabform->getTab("properties")->yesNo( - -value=>$self->getValue("preformatted"), - -label=>$i18n->get('preformatted'), - -hoverHelp=>$i18n->get('preformatted description'), - -name=>"preformatted", - -uiLevel=>9 - ); - $tabform->getTab("security")->textarea( - -value=>$self->getValue("validElements"), - -name=>"validElements", - -label=>$i18n->get('elements'), - -hoverHelp=>$i18n->get('elements description'), - -subtext=>$i18n->get('elements subtext'), - -uiLevel=>9 - ); - $tabform->getTab("display")->integer( - -value=>$self->getValue("editorHeight"), - -label=>$i18n->get('editor height'), - -hoverHelp=>$i18n->get('editor height description'), - -name=>"editorHeight", - -uiLevel=>9 - ); - $tabform->getTab("display")->integer( - -value=>$self->getValue("editorWidth"), - -label=>$i18n->get('editor width'), - -hoverHelp=>$i18n->get('editor width description'), - -name=>"editorWidth", - -uiLevel=>9 - ); - $tabform->getTab("display")->integer( - -value=>$self->getValue("sourceEditorHeight"), - -label=>$i18n->get('source editor height'), - -hoverHelp=>$i18n->get('source editor height description'), - -name=>"sourceEditorHeight" - ); - $tabform->getTab("display")->integer( - -value=>$self->getValue("sourceEditorWidth"), - -label=>$i18n->get('source editor width'), - -hoverHelp=>$i18n->get('source editor width description'), - -name=>"sourceEditorWidth" - ); - $tabform->getTab("properties")->yesNo( - -value=>$self->getValue("useBr"), - -label=>$i18n->get('use br'), - -hoverHelp=>$i18n->get('use br description'), - -name=>"useBr", - -uiLevel=>9 - ); - $tabform->getTab("properties")->yesNo( - -value=>$self->getValue("removeLineBreaks"), - -label=>$i18n->get('remove line breaks'), - -hoverHelp=>$i18n->get('remove line breaks description'), - -name=>"removeLineBreaks", - -uiLevel=>9 - ); - $tabform->getTab("display")->yesNo( - -value=>$self->getValue("nowrap"), - -label=>$i18n->get('no wrap'), - -hoverHelp=>$i18n->get('no wrap description'), - -name=>"nowrap", - -uiLevel=>9 - ); - $tabform->getTab("properties")->selectBox( - -value=>[$self->getValue("directionality")], - -label=>$i18n->get('directionality'), - -hoverHelp=>$i18n->get('directionality description'), - -name=>"directionality", - -options=>{ - } - ); - $tabform->getTab("display")->selectBox( - -value=>[$self->getValue("toolbarLocation")], - -label=>$i18n->get('toolbar location'), - -hoverHelp=>$i18n->get('toolbar location description'), - -name=>"toolbarLocation", - -options=>{ - top=>$i18n->get('top'), - bottom=>$i18n->get('bottom'), - } - ); - $tabform->getTab("properties")->text( - -value=>$self->getValue("cssFile"), - -label=>$i18n->get('css file'), - -hoverHelp=>$i18n->get('css file description'), - -name=>"cssFile" - ); - $tabform->getTab("properties")->yesNo( - -value=>$self->getValue("enableContextMenu"), - -label=>$i18n->get('enable context menu'), - -hoverHelp=>$i18n->get('enable context menu description'), - -name=>"enableContextMenu" - ); - $tabform->getTab("properties")->yesNo( - -value=>$self->getValue("inlinePopups"), - -label=>$i18n->get('inline popups'), - -hoverHelp=>$i18n->get('inline popups description'), - -name=>"inlinePopups" + my $self = shift; + my $f = super(); + my $i18n = WebGUI::International->new($self->session,'Asset_RichEdit'); + my %buttons; + tie %buttons, "Tie::IxHash"; + %buttons = ( + 'search' => $i18n->get('search'), + 'replace' => $i18n->get('replace'), + 'cut' => $i18n->get('cut'), + 'copy' => $i18n->get('Copy'), + 'paste' => $i18n->get('paste'), + 'pastetext' => $i18n->get('pastetext'), + 'pasteword' => $i18n->get('pasteword'), + 'undo' => $i18n->get('undo'), + 'redo' => $i18n->get('redo'), + 'bold' => $i18n->get('bold'), + 'italic' => $i18n->get('italic'), + 'underline' => $i18n->get('underline'), + 'strikethrough' => $i18n->get('strikethrough'), + 'justifyleft' => $i18n->get('justifyleft'), + 'justifycenter' => $i18n->get('justifycenter'), + 'justifyright' => $i18n->get('justifyright'), + 'justifyfull' => $i18n->get('justifyfull'), + 'bullist' => $i18n->get('bullist'), + 'numlist' => $i18n->get('numlist'), + 'outdent' => $i18n->get('outdent'), + 'indent' => $i18n->get('indent'), + 'sub' => $i18n->get('sub'), + 'sup' => $i18n->get('sup'), + 'styleselect' => $i18n->get('styleselect'), + 'formatselect' => $i18n->get('formatselect'), + 'fontselect' => $i18n->get('fontselect'), + 'fontsizeselect' => $i18n->get('fontsizeselect'), + 'forecolor' => $i18n->get('forecolor'), + 'backcolor' => $i18n->get('backcolor'), + 'link' => $i18n->get('link'), + 'wgpagetree' => $i18n->get('pagetree'), + 'anchor' => $i18n->get('anchor'), + 'unlink' => $i18n->get('unlink'), + 'tablecontrols' => $i18n->get('tablecontrols'), + 'visualaid' => $i18n->get('visualaid'), + 'hr' => $i18n->get('hr'), + 'advhr' => $i18n->get('advhr'), + 'inserttime' => $i18n->get('inserttime'), + 'insertdate' => $i18n->get('insertdate'), + 'image' => $i18n->get('image'), + 'wginsertimage' => $i18n->get('insertImage'), + 'media' => $i18n->get('media'), + 'charmap' => $i18n->get('charmap'), + 'wgmacro' => $i18n->get('collateral'), + 'emotions' => $i18n->get('emotions'), + 'help' => $i18n->get('help'), + 'iespell' => $i18n->get('iespell'), + 'removeformat' => $i18n->get('removeformat'), + 'code' => $i18n->get('code'), + 'cleanup' => $i18n->get('cleanup'), + 'save' => $i18n->get('save'), + 'preview' => $i18n->get('preview'), + 'fullscreen' => $i18n->get('fullscreen'), + 'print' => $i18n->get('print'), + 'spellchecker' => $i18n->get('Server Side Spell Checker'), +# 'advlink' => "Advanced Link", +# 'spacer' => "Toolbar Spacer", +# 'separator' => "Toolbar Separator", +# 'rowseparator' => "Toolbar Row Separator", +# 'advimage' => "Advanced Image", + ); + my $buttonGrid = sprintf qq! + + + + + + + !, + $i18n->get('button'), + $i18n->get('row 1'), + $i18n->get('row 2'), + $i18n->get('row 3'); + my @toolbarRow1 = split("\n",$self->toolbarRow1); + my @toolbarRow2 = split("\n",$self->toolbarRow2); + my @toolbarRow3 = split("\n",$self->toolbarRow3); + my $evenOddToggle = 0; + foreach my $key (keys %buttons) { + $evenOddToggle = $evenOddToggle ? 0 : 1; + my $checked1 = isIn($key,@toolbarRow1); + my $checked2 = isIn($key,@toolbarRow2); + my $checked3 = isIn($key,@toolbarRow3); + $buttonGrid .= ' + + + + + + + '; + } + $buttonGrid .= "
%s%s%s%s
'.$buttons{$key}.''.WebGUI::Form::checkbox($self->session, { + value=>$key, + name=>"toolbarRow1", + checked=>$checked1 + }).''.WebGUI::Form::checkbox($self->session, { + value=>$key, + name=>"toolbarRow2", + checked=>$checked2 + }).''.WebGUI::Form::checkbox($self->session, { + value=>$key, + name=>"toolbarRow3", + checked=>$checked3 + }).''; + if ($key eq 'spellchecker' && !($self->session->config->get('availableDictionaries'))) { + $buttonGrid .= $i18n->get('no dictionaries'); + } + $buttonGrid .= '
"; + my $tab = $f->addTab(name => "buttons", label => $i18n->get("buttons") ); + $tab->addField( "ReadOnly", + label => $i18n->get('toolbar buttons'), + hoverHelp => $i18n->get('toolbar buttons description'), + value => $buttonGrid, ); - $tabform->getTab("properties")->yesNo( - value => $self->allowMedia, - label => $i18n->get('editForm allowMedia label'), - hoverHelp => $i18n->get('editForm allowMedia description'), - name => "allowMedia", - ); - return $tabform; + + return $f; }; diff --git a/lib/WebGUI/Asset/Shortcut.pm b/lib/WebGUI/Asset/Shortcut.pm index 4f02f02ae..47a22b7d5 100644 --- a/lib/WebGUI/Asset/Shortcut.pm +++ b/lib/WebGUI/Asset/Shortcut.pm @@ -288,74 +288,69 @@ Extend the base class to handle hand drawing the query build and other pieces. override getEditForm => sub { my $self = shift; - my $tabform = super(); + my $f = super(); my $originalTemplate; my $i18n = WebGUI::International->new($self->session, "Asset_Shortcut"); my $shortcut = $self->getShortcut; if (defined $shortcut) { - $tabform->getTab("properties")->readOnly( - -label=>$i18n->get(1), - -hoverHelp=>$i18n->get('1 description'), - -value=>''.$shortcut->get('title').' ('.$shortcut->getId.')' + $f->getTab("properties")->addField( "ReadOnly", + label=>$i18n->get(1), + hoverHelp=>$i18n->get('1 description'), + value=>''.$shortcut->get('title').' ('.$shortcut->getId.')' ); } else { - $tabform->getTab("properties")->readOnly( + $f->getTab("properties")->addField( "ReadOnly", value=>''.$self->notLinked.'' ); } - $tabform->getTab("display")->template( - -value=>$self->templateId, - -label=>$i18n->get('shortcut template title'), - -hoverHelp=>$i18n->get('shortcut template title description'), - -namespace=>"Shortcut" - ); + if($self->session->setting->get("metaDataEnabled")) { - $tabform->getTab("properties")->yesNo( - -name => "shortcutByCriteria", - -value => $self->getValue("shortcutByCriteria"), - -label => $i18n->get("Shortcut by alternate criteria"), - -hoverHelp=> $i18n->get("Shortcut by alternate criteria description"), - -extras => q|onchange="wgCriteriaDisable(this.form, this.form.shortcutByCriteria[0].checked)"|, + $f->getTab("properties")->addField( "YesNo", + name => "shortcutByCriteria", + value => $self->getValue("shortcutByCriteria"), + label => $i18n->get("Shortcut by alternate criteria"), + hoverHelp=> $i18n->get("Shortcut by alternate criteria description"), + extras => q|onchange="wgCriteriaDisable(this.form, this.form.shortcutByCriteria[0].checked)"|, ); - $tabform->getTab("properties")->yesNo( - -name=>"disableContentLock", - -value=>$self->getValue("disableContentLock"), - -label=>$i18n->get("disable content lock"), - -hoverHelp=>$i18n->get("disable content lock description") + $f->getTab("properties")->addField( "YesNo", + name=>"disableContentLock", + value=>$self->getValue("disableContentLock"), + label=>$i18n->get("disable content lock"), + hoverHelp=>$i18n->get("disable content lock description"), ); if ($self->getValue("shortcutByCriteria") == 0) { $self->{_disabled} = 'disabled=true'; } - $tabform->getTab("properties")->selectBox( - -name=>"resolveMultiples", - -value=>[ $self->getValue("resolveMultiples") ], - -label=>$i18n->get("Resolve Multiples"), - -hoverHelp=>$i18n->get("Resolve Multiples description"), - -options=>{ + $f->getTab("properties")->addField( "SelectBox", + name=>"resolveMultiples", + value=>[ $self->getValue("resolveMultiples") ], + label=>$i18n->get("Resolve Multiples"), + hoverHelp=>$i18n->get("Resolve Multiples description"), + options=>{ mostRecent=>$i18n->get("Most Recent"), random=>$i18n->get("Random"), }, - -extras=>$self->{_disabled} + extras=>$self->{_disabled}, ); - $tabform->getTab("properties")->readOnly( - -value=>$self->_drawQueryBuilder(), - -label=>$i18n->get("Criteria"), - -hoverHelp=>$i18n->get("Criteria description") + $f->getTab("properties")->addField( "ReadOnly", + value=>$self->_drawQueryBuilder(), + label=>$i18n->get("Criteria"), + hoverHelp=>$i18n->get("Criteria description"), ); } - $tabform->addTab('overrides',$i18n->get('Overrides')); - $tabform->getTab('overrides')->raw('' . $self->getOverridesList . ''); + $f->addTab( name => 'overrides', label => $i18n->get('Overrides') ); + $f->getTab('overrides')->addField( "ReadOnly", value => $self->getOverridesList ); if ($self->isDashlet) { - $tabform->addTab('preferences',$i18n->get('Preferences'), 9); - $tabform->getTab('preferences')->raw($self->getFieldsList); - $tabform->getTab("properties")->yesNo( - -value=>$self->getValue("showReloadIcon"), - -name=>"showReloadIcon", - -label=>$i18n->get("show reload icon"), - -hoverHelp=>$i18n->get("show reload icon description") + $f->addTab('preferences',$i18n->get('Preferences'), 9); + $f->getTab('preferences')->addField( "ReadOnly", value => $self->getFieldsList ); + $f->getTab("properties")->addField( "YesNo", + value=>$self->getValue("showReloadIcon"), + name=>"showReloadIcon", + label=>$i18n->get("show reload icon"), + hoverHelp=>$i18n->get("show reload icon description"), ); } - return $tabform; + return $f; }; @@ -948,7 +943,7 @@ sub www_edit { return $self->session->privilege->locked() unless $self->canEditIfLocked; my $i18n = WebGUI::International->new($self->session,"Asset_Shortcut"); $self->getAdminConsole->addSubmenuItem($self->getUrl("func=manageOverrides"),$i18n->get("Manage Shortcut Overrides")); - return $self->getAdminConsole->render($self->getEditForm->print,$i18n->get(2)); + return $self->getAdminConsole->render($self->getEditForm->toHtml,$i18n->get(2)); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Sku.pm b/lib/WebGUI/Asset/Sku.pm index 68b451962..b6227ed40 100644 --- a/lib/WebGUI/Asset/Sku.pm +++ b/lib/WebGUI/Asset/Sku.pm @@ -194,22 +194,22 @@ override getEditForm => sub { my $self = shift; my $session = $self->session; - my $tabform = super(); + my $form = super(); my $taxDriver = WebGUI::Shop::Tax->getDriver( $session ); my $definition = $taxDriver->skuFormDefinition; my $config = $self->getTaxConfiguration( $taxDriver->className ); - my $shop = $tabform->getTab( 'shop' ); + my $shop = $form->getTab( 'shop' ); foreach my $fieldName ( keys %{ $definition } ) { - $shop->dynamicField( + $shop->addField( "DynamicField", %{ $definition->{ $fieldName } }, name => $fieldName, value => $config->{ $fieldName }, ); } - return $tabform; + return $form; }; #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Sku/EMSBadge.pm b/lib/WebGUI/Asset/Sku/EMSBadge.pm index 8740230f9..379838dfa 100644 --- a/lib/WebGUI/Asset/Sku/EMSBadge.pm +++ b/lib/WebGUI/Asset/Sku/EMSBadge.pm @@ -516,7 +516,7 @@ sub www_edit { |); my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem"); - return $self->processStyle('

'.$i18n->get('ems badge').'

'.$self->getEditForm->print); + return $self->processStyle('

'.$i18n->get('ems badge').'

'.$self->getEditForm->toHtml); } __PACKAGE__->meta->make_immutable; diff --git a/lib/WebGUI/Asset/Sku/EMSRibbon.pm b/lib/WebGUI/Asset/Sku/EMSRibbon.pm index b510b2de9..d8d047d34 100644 --- a/lib/WebGUI/Asset/Sku/EMSRibbon.pm +++ b/lib/WebGUI/Asset/Sku/EMSRibbon.pm @@ -269,8 +269,8 @@ sub www_edit { |); my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem"); my $form = $self->getEditForm; - $form->hidden({name=>'proceed', value=>'viewAll'}); - return $self->processStyle('

'.$i18n->get('ems ribbon').'

'.$form->print); + $form->addField( "hidden", name=>'proceed', value=>'viewAll', ); + return $self->processStyle('

'.$i18n->get('ems ribbon').'

'.$form->toHtml); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Sku/EMSTicket.pm b/lib/WebGUI/Asset/Sku/EMSTicket.pm index 87908472d..2d495d0bd 100644 --- a/lib/WebGUI/Asset/Sku/EMSTicket.pm +++ b/lib/WebGUI/Asset/Sku/EMSTicket.pm @@ -250,15 +250,15 @@ Extended to support event metadata. =cut -sub getEditForm { +override getEditForm => sub { my $self = shift; - my $form = $self->SUPER::getEditForm(@_); + my $form = super(); my $metadata = $self->getEventMetaData; my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem"); my $date = WebGUI::DateTime->new($self->session, time()); foreach my $field (@{$self->getParent->getEventMetaFields}) { - $form->getTab("meta")->DynamicField( + $form->getTab("meta")->addField( "DynamicField", name => "eventmeta ".$field->{label}, value => $metadata->{$field->{label}}, defaultValue => $field->{defaultValues}, @@ -267,7 +267,7 @@ sub getEditForm { label => $field->{label}, ); } - $form->getTab("properties")->DateTime( + $form->getTab("properties")->addField( "DateTime", name => "startDate", label => $i18n->get("add/edit event start date"), hoverHelp => $i18n->get("add/edit event start date help"), @@ -572,8 +572,8 @@ sub www_edit { |); my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem"); my $form = $self->getEditForm; - $form->hidden({name=>'proceed', value=>'viewAll'}); - return $self->processStyle('

'.$i18n->get('ems ticket').'

'.$form->print); + $form->addField( "hidden", name=>'proceed', value=>'viewAll'); + return $self->processStyle('

'.$i18n->get('ems ticket').'

'.$form->toHtml); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Sku/EMSToken.pm b/lib/WebGUI/Asset/Sku/EMSToken.pm index 6790f5476..2546f266e 100644 --- a/lib/WebGUI/Asset/Sku/EMSToken.pm +++ b/lib/WebGUI/Asset/Sku/EMSToken.pm @@ -263,8 +263,8 @@ sub www_edit { |); my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem"); my $form = $self->getEditForm; - $form->hidden({name=>'proceed', value=>'viewAll'}); - return $self->processStyle('

'.$i18n->get('ems token').'

'.$form->print); + $form->addField( "hidden", name=>'proceed', value=>'viewAll'); + return $self->processStyle('

'.$i18n->get('ems token').'

'.$form->toHtml); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Template.pm b/lib/WebGUI/Asset/Template.pm index 6340539c8..d942ff7cf 100644 --- a/lib/WebGUI/Asset/Template.pm +++ b/lib/WebGUI/Asset/Template.pm @@ -237,49 +237,27 @@ override getEditForm => sub { my $self = shift; my $tabform = super(); my $i18n = WebGUI::International->new($self->session, 'Asset_Template'); - $tabform->hidden({ + $tabform->addField( "hidden", name=>"returnUrl", value=>$self->session->form->get("returnUrl") - }); + ); if ($self->namespace eq "") { my $namespaces = $self->session->dbSlave->buildHashRef("select distinct(namespace) from template order by namespace"); - $tabform->getTab("properties")->combo( - -name=>"namespace", - -options=>$namespaces, - -label=>$i18n->get('namespace'), - -hoverHelp=>$i18n->get('namespace description'), - -value=>[$self->session->form->get("namespace")] + $tabform->getTab("properties")->addField( "combo", + name=>"namespace", + options=>$namespaces, + label=>$i18n->get('namespace'), + hoverHelp=>$i18n->get('namespace description'), + value=>[$self->session->form->get("namespace")] ); } else { - $tabform->getTab("meta")->readOnly( - -label=>$i18n->get('namespace'), - -hoverHelp=>$i18n->get('namespace description'), - -value=>$self->namespace - ); - $tabform->getTab("meta")->hidden( - -name=>"namespace", - -value=>$self->namespace + $tabform->getTab("meta")->addField( "ReadOnly", + name=>"namespace", + label=>$i18n->get('namespace'), + hoverHelp=>$i18n->get('namespace description'), + value=>$self->namespace ); } - $tabform->getTab("display")->yesNo( - -name=>"showInForms", - -value=>$self->showInForms, - -label=>$i18n->get('show in forms'), - -hoverHelp=>$i18n->get('show in forms description'), - ); - $tabform->getTab("properties")->codearea( - -name=>"template", - -label=>$i18n->get('assetName'), - -hoverHelp=>$i18n->get('template description'), - -syntax => "html", - -value=>$self->template - ); - $tabform->getTab('properties')->yesNo( - name => "usePacked", - label => $i18n->get('usePacked label'), - hoverHelp => $i18n->get('usePacked description'), - value => $self->usePacked, - ); if($self->session->config->get("templateParsers")){ my @temparray = @{$self->session->config->get("templateParsers")}; tie my %parsers, 'Tie::IxHash'; @@ -288,12 +266,12 @@ override getEditForm => sub { } my $value = [$self->getValue("parser")]; $value = \[$self->session->config->get("defaultTemplateParser")] if(!$self->parser); - $tabform->getTab("properties")->selectBox( - -name=>"parser", - -options=>\%parsers, - -value=>$value, - -label=>$i18n->get('parser'), - -hoverHelp=>$i18n->get('parser description'), + $tabform->getTab("properties")->addField( "SelectBox", + name=>"parser", + options=>\%parsers, + value=>$value, + label=>$i18n->get('parser'), + hoverHelp=>$i18n->get('parser description'), ); } @@ -688,7 +666,7 @@ ENDHTML ; } - $output .= $self->getEditForm->print; + $output .= $self->getEditForm->toHtml; $self->getAdminConsole->addSubmenuItem($self->getUrl('func=styleWizard'),$i18n->get("style wizard")) if ($self->get("namespace") eq "style"); return $self->getAdminConsole->render( $output, $i18n->get('edit template') ); diff --git a/lib/WebGUI/Asset/Wobject/Calendar.pm b/lib/WebGUI/Asset/Wobject/Calendar.pm index 08c0aa0f4..a69ee1cb4 100644 --- a/lib/WebGUI/Asset/Wobject/Calendar.pm +++ b/lib/WebGUI/Asset/Wobject/Calendar.pm @@ -1675,7 +1675,7 @@ sub www_edit { return $self->getAdminConsole->render( - $self->getEditForm->print, + $self->getEditForm->toHtml, $i18n->get("assetName") ); } diff --git a/lib/WebGUI/Asset/Wobject/Collaboration.pm b/lib/WebGUI/Asset/Wobject/Collaboration.pm index bf3ff325a..32ff7dc78 100644 --- a/lib/WebGUI/Asset/Wobject/Collaboration.pm +++ b/lib/WebGUI/Asset/Wobject/Collaboration.pm @@ -1641,7 +1641,7 @@ sub www_edit { return $self->session->privilege->locked() unless $self->canEditIfLocked; my $i18n = WebGUI::International->new($self->session, 'Asset_Collaboration'); $self->getAdminConsole->addConfirmedSubmenuItem($self->getUrl('func=unarchiveAll'),$i18n->get("unarchive all"),$i18n->get("unarchive confirm")); - return $self->getAdminConsole->render($self->getEditForm->print,$i18n->get("assetName")); + return $self->getAdminConsole->render($self->getEditForm->toHtml,$i18n->get("assetName")); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Wobject/DataTable.pm b/lib/WebGUI/Asset/Wobject/DataTable.pm index a75fe8f18..3d098c6ad 100644 --- a/lib/WebGUI/Asset/Wobject/DataTable.pm +++ b/lib/WebGUI/Asset/Wobject/DataTable.pm @@ -20,6 +20,7 @@ define assetName => ['assetName', 'Asset_DataTable']; define icon => 'DataTable.gif'; define tableName => 'DataTable'; property data => ( + tab => "data", fieldType => 'DataTable', default => undef, label => '', @@ -119,50 +120,6 @@ sub getDataTemplateVars { #---------------------------------------------------------------------------- -=head2 getEditForm ( ) - -Add the data table to the edit form. - -=cut - -# TODO Get the DataSource's edit form -override getEditForm => sub { - my $self = shift; - my $tabform = super(); - - $tabform->getTab("data")->raw( - q{} - . WebGUI::Form::DataTable->new( - $self->session, { - name => "data", - value => $self->data, - defaultValue => undef, - showEdit => 1, - } - )->toHtml - . q{} - ); - - return $tabform; -}; ## end sub getEditForm - -#---------------------------------------------------------------------------- - -=head2 getEditTabs ( ) - -Add a tab for the data table. - -override getEditTabs => sub { - my $self = shift; - my $i18n = WebGUI::International->new( $self->session, "Asset_DataTable" ); - - return ( super(), [ "data" => $i18n->get("tab label data") ], ); -}; - -=cut - -#---------------------------------------------------------------------------- - =head2 getTemplateVars ( ) Get the template vars for this asset. diff --git a/lib/WebGUI/Asset/Wobject/Folder.pm b/lib/WebGUI/Asset/Wobject/Folder.pm index 3e320fed7..75a1962ee 100644 --- a/lib/WebGUI/Asset/Wobject/Folder.pm +++ b/lib/WebGUI/Asset/Wobject/Folder.pm @@ -119,30 +119,6 @@ sub getContentLastModified { return $mtime; } -#------------------------------------------------------------------- - -=head2 getEditForm ( ) - -Returns the TabForm object that will be used in generating the edit page for this asset. - -=cut - -override getEditForm => sub { - my $self = shift; - my $tabform = super(); - my $i18n = WebGUI::International->new($self->session,"Asset_Folder"); - if ($self->assetId eq "new") { - $tabform->getTab("properties")->whatNext( - -options=>{ - view=>$i18n->get(823), - "viewParent"=>$i18n->get(847) - }, - -value=>"view" - ); - } - return $tabform; -}; - #---------------------------------------------------------------------------- =head2 getTemplateVars ( ) diff --git a/lib/WebGUI/Asset/Wobject/Layout.pm b/lib/WebGUI/Asset/Wobject/Layout.pm index ccb3d55e3..f81ba5ef0 100644 --- a/lib/WebGUI/Asset/Wobject/Layout.pm +++ b/lib/WebGUI/Asset/Wobject/Layout.pm @@ -34,29 +34,35 @@ property templateId => ( hoverHelp => ['template description', 'Asset_Layout'], ); property mobileTemplateId => ( - #fieldType => ( $session->style->useMobileStyle ? 'template' : 'hidden' ), tab => "display", fieldType => 'template', namespace => 'Layout', default => 'PBtmpl0000000000000054', label => ['mobileTemplateId label', 'Asset_Layout'], hoverHelp => ['mobileTemplateId description', 'Asset_Layout'], - noFormPost => 1, ); property contentPositions => ( noFormPost => 1, default => undef, fieldType => "hidden", - noFormPost => 1, ); property assetsToHide => ( tab => "properties", default => undef, fieldType => "checkList", - noFormPost => 1, label => ['assets to hide', 'Asset_Layout'], hoverHelp => ['assets to hide description', 'Asset_Layout'], - options => sub { }, + vertical => 1, + uiLevel => 9, + options => sub { + my @assetsToHide = split("\n",$self->assetsToHide); + my $children = $self->getLineage(["children"],{"returnObjects"=>1, excludeClasses=>["WebGUI::Asset::Wobject::Layout"]}); + my %childIds; + foreach my $child (@{$children}) { + $childIds{$child->getId} = $child->getTitle; + } + return \%childIds; + }, ); property assetOrder => ( tab => "display", @@ -64,7 +70,13 @@ property assetOrder => ( fieldType => 'selectBox', label => ['asset order label', 'Asset_Layout'], hoverHelp => ['asset order hoverHelp', 'Asset_Layout'], - noFormPost => 1, + options => sub { + tie my %assetOrder, "Tie::IxHash", ( + "asc" => $i18n->get("asset order asc"), + "desc" => $i18n->get("asset order desc"), + ); + return \%assetOrder; + }, ); =head1 NAME @@ -94,113 +106,25 @@ These methods are available from this class: Extends the base method to handle the optional mobileTemplateId and assetsToHide. +=cut override getEditForm => sub { my $self = shift; - my $tabform = super(); + my $f = super(); my $i18n = WebGUI::International->new($self->session,"Asset_Layout"); my ($templateId); if (($self->assetId eq "new") && ($self->getParent->isa('WebGUI::Asset::Wobject::Layout'))) { - $templateId = $self->getParent->templateId; - } - else { - $templateId = $self->templateId; + $f->getTab('display')->getField('templateId')->set( value => $self->getParent->templateId ); } - tie my %extraFields, "Tie::IxHash"; - %extraFields = ( - templateId => { - fieldType => 'template', - tab => 'display', - value => $templateId, - label => $i18n->get('layout template title'), - hoverHelp => $i18n->get('template description'), - namespace => "Layout", - }); - - if ( $self->session->setting->get('useMobileStyle') ) { - $extraFields{mobileTemplateId} = { - fieldType => 'template', - tab => 'display', - name => 'mobileTemplateId', - value => $self->mobileTemplateId, - label => $i18n->get('mobileTemplateId label'), - hoverHelp => $i18n->get('mobileTemplateId description'), - namespace => 'Layout', - }; - } - else { - $extraFields{mobileTemplateId} = { - fieldType => 'hidden', - tab => 'display', - name => 'mobileTemplateId', - value => $self->mobileTemplateId, - }; + if ( !$self->session->setting->get('useMobileStyle') ) { + $f->getTab('display')->deleteField( 'mobileTemplateId' ); } - tie my %assetOrder, "Tie::IxHash"; - %assetOrder = ( - "asc" => $i18n->get("asset order asc"), - "desc" => $i18n->get("asset order desc"), - ); - $extraFields{assetOrder} = { - tab => 'display', - fieldType => 'selectBox', - name => 'assetOrder', - label => $i18n->get('asset order label'), - hoverHelp => $i18n->get('asset order hoverHelp'), - value => $self->assetOrder, - options => \%assetOrder, - }; - - if ($self->get("assetId") eq "new") { - $extraFields{whatNext} = { - fieldType => 'whatNext', - value => "view", - options => { - view => $i18n->get(823), - viewParent => $i18n->get(847) - }, - }; - } - else { - my @assetsToHide = split("\n",$self->assetsToHide); - my $childIter = $self->getLineageIterator(["children"],{excludeClasses=>["WebGUI::Asset::Wobject::Layout"]}); - my %childIds; - while ( 1 ) { - my $child; - eval { $child = $childIter->() }; - if ( my $x = WebGUI::Error->caught('WebGUI::Error::ObjectNotFound') ) { - $self->session->log->error($x->full_message); - next; - } - last unless $child; - $childIds{$child->getId} = $child->getTitle; - } - $extraFields{assetsToHide} = { - fieldType => 'checkList', - tab => 'display', - name => "assetsToHide", - value => \@assetsToHide, - options => \%childIds, - label => $i18n->get('assets to hide'), - hoverHelp => $i18n->get('assets to hide description'), - vertical => 1, - uiLevel => 9, - }; - } - - my $overrides = $self->session->config->get("assets/".$self->get("className")); - foreach my $fieldName (keys %extraFields) { - $self->setupFormField($tabform, $fieldName, \%extraFields, $overrides); - } - - return $tabform; + return $f; }; -=cut - #------------------------------------------------------------------- =head2 prepareView diff --git a/lib/WebGUI/Asset/Wobject/Poll.pm b/lib/WebGUI/Asset/Wobject/Poll.pm index 57cbd37ea..298c2322c 100644 --- a/lib/WebGUI/Asset/Wobject/Poll.pm +++ b/lib/WebGUI/Asset/Wobject/Poll.pm @@ -256,7 +256,7 @@ Extend the base class to handle the answers and graphing plugins. override getEditForm => sub { my $self = shift; - my $tabform = super(); + my $fb = super(); my $i18n = WebGUI::International->new($self->session,"Asset_Poll"); my ($i, $answers); for ($i=1; $i<=20; $i++) { @@ -264,34 +264,35 @@ override getEditForm => sub { $answers .= $self->get("a".$i)."\n"; } } - $tabform->getTab("properties")->textarea( - -name=>"answers", - -label=>$i18n->get(7), - -hoverHelp=>$i18n->get('7 description'), - -subtext=>('
'.$i18n->get(8).'
'), - -value=>$answers + $fb->getTab("properties")->addField( "textarea", + name=>"answers", + label=>$i18n->get(7), + hoverHelp=>$i18n->get('7 description'), + subtext=>('
'.$i18n->get(8).'
'), + value=>$answers ); - $tabform->getTab("properties")->yesNo( - -name=>"resetVotes", - -label=>$i18n->get(10), - -hoverHelp=>$i18n->get('10 description') + $fb->getTab("properties")->addField( "YesNo", + name=>"resetVotes", + label=>$i18n->get(10), + hoverHelp=>$i18n->get('10 description') ) if $self->session->form->process("func") ne 'add'; if (WebGUI::Image::Graph->getPluginList($self->session)) { my $config = $self->getGraphConfig; - $tabform->addTab('graph', $i18n->get('Graphing','Image_Graph')); - $tabform->getTab('graph')->yesNo( - -name => 'generateGraph', - -label => $i18n->get('generate graph'), - -hoverHelp => $i18n->get('generate graph description'), - -value => $self->generateGraph, + $fb->addTab('graph', $i18n->get('Graphing','Image_Graph')); + $fb->getTab('graph')->addField( "yesNo", + name => 'generateGraph', + label => $i18n->get('generate graph'), + hoverHelp => $i18n->get('generate graph description'), + value => $self->generateGraph, ); - $tabform->getTab('graph')->raw(WebGUI::Image::Graph->getGraphingTab($self->session, $config)); + # TODO: Fix graphing plugins to use FormBuilder API + $fb->getTab('graph')->raw(WebGUI::Image::Graph->getGraphingTab($self->session, $config)); } - return $tabform; + return $fb; }; #---------------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Wobject/SQLReport.pm b/lib/WebGUI/Asset/Wobject/SQLReport.pm index f089c5d45..e286ea089 100644 --- a/lib/WebGUI/Asset/Wobject/SQLReport.pm +++ b/lib/WebGUI/Asset/Wobject/SQLReport.pm @@ -51,144 +51,169 @@ property dbQuery1 => ( default => undef, label => [4, 'Asset_SQLReport', 1], hoverHelp => ['4 description', 'Asset_RichEdit'], + rowClass => 'query1', ); property prequeryStatements1 => ( fieldType => "codearea", default => undef, label => ['Prequery statements %s', 'Asset_SQLReport', 1], + rowClass => 'query1', ); property preprocessMacros1 => ( fieldType => "yesNo", default => 0, label => ['Preprocess macros on query %s?', 'Asset_SQLReport', 1], hoverHelp => ['15 description', 'Asset_RichEdit'], + rowClass => 'query1', ); property placeholderParams1 => ( fieldType => "textarea", default => undef, label => ['Placeholder Parameters %s', 'Asset_SQLReport', 1], hoverHelp => ['Placeholder Parameters description', 'Asset_RichEdit'], + rowClass => 'query1', ); property databaseLinkId1 => ( fieldType => "databaseLink", default => 0, label => ['Database Link %s', 'Asset_SQLReport', 1], + rowClass => 'query1', ); property dbQuery2 => ( fieldType => "codearea", default => undef, label => [4, 'Asset_SQLReport', 2], hoverHelp => ['4 description', 'Asset_RichEdit'], + rowClass => 'query2', ); property prequeryStatements2 => ( fieldType => "codearea", default => undef, label => ['Prequery statements %s', 'Asset_SQLReport', 2], hoverHelp => ['15 description', 'Asset_RichEdit'], + rowClass => 'query2', ); property preprocessMacros2 => ( fieldType => "yesNo", default => 0, label => ['Preprocess macros on query %s?', 'Asset_SQLReport', 2], hoverHelp => ['15 description', 'Asset_RichEdit'], + rowClass => 'query2', ); property placeholderParams2 => ( fieldType => "textarea", default => undef, label => ['Placeholder Parameters %s', 'Asset_SQLReport', 2], hoverHelp => ['Placeholder Parameters description', 'Asset_RichEdit'], + rowClass => 'query2', ); property databaseLinkId2 => ( fieldType => "databaseLink", default => 0, label => ['Database Link %s', 'Asset_SQLReport', 2], + rowClass => 'query2', ); property dbQuery3 => ( fieldType => "codearea", default => undef, label => [4, 'Asset_SQLReport', 3], hoverHelp => ['4 description', 'Asset_RichEdit'], + rowClass => 'query3', ); property prequeryStatements3 => ( fieldType => "codearea", default => undef, label => ['Prequery statements %s', 'Asset_SQLReport', 3], hoverHelp => ['15 description', 'Asset_RichEdit'], + rowClass => 'query3', ); property preprocessMacros3 => ( fieldType => "yesNo", default => 0, label => ['Preprocess macros on query %s?', 'Asset_SQLReport', 3], hoverHelp => ['15 description', 'Asset_RichEdit'], + rowClass => 'query3', ); property placeholderParams3 => ( fieldType => "textarea", default => undef, label => ['Placeholder Parameters %s', 'Asset_SQLReport', 3], hoverHelp => ['Placeholder Parameters description', 'Asset_RichEdit'], + rowClass => 'query3', ); property databaseLinkId3 => ( fieldType => "databaseLink", default => 0, label => ['Database Link %s', 'Asset_SQLReport', 3], + rowClass => 'query3', ); property dbQuery4 => ( fieldType => "codearea", default => undef, label => [4, 'Asset_SQLReport', 4], hoverHelp => ['4 description', 'Asset_RichEdit'], + rowClass => 'query4', ); property prequeryStatements4 => ( fieldType => "codearea", default => undef, label => ['Prequery statements %s', 'Asset_SQLReport', 4], hoverHelp => ['15 description', 'Asset_RichEdit'], + rowClass => 'query4', ); property preprocessMacros4 => ( fieldType => "yesNo", default => 0, label => ['Preprocess macros on query %s?', 'Asset_SQLReport', 4], hoverHelp => ['15 description', 'Asset_RichEdit'], + rowClass => 'query4', ); property placeholderParams4 => ( fieldType => "textarea", default => undef, label => ['Placeholder Parameters %s', 'Asset_SQLReport', 4], hoverHelp => ['Placeholder Parameters description', 'Asset_RichEdit'], + rowClass => 'query4', ); property databaseLinkId4 => ( fieldType => "databaseLink", default => 0, label => ['Database Link %s', 'Asset_SQLReport', 4], + rowClass => 'query4', ); property dbQuery5 => ( fieldType => "codearea", default => undef, label => [4, 'Asset_SQLReport', 5], hoverHelp => ['4 description', 'Asset_RichEdit'], + rowClass => 'query5', ); property prequeryStatements5 => ( fieldType => "codearea", default => undef, label => ['Prequery statements %s', 'Asset_SQLReport', 5], hoverHelp => ['15 description', 'Asset_RichEdit'], + rowClass => 'query5', ); property preprocessMacros5 => ( fieldType => "yesNo", default => 0, label => ['Preprocess macros on query %s?', 'Asset_SQLReport', 5], hoverHelp => ['15 description', 'Asset_RichEdit'], + rowClass => 'query5', ); property placeholderParams5 => ( fieldType => "textarea", default => undef, label => ['Placeholder Parameters %s', 'Asset_SQLReport', 5], hoverHelp => ['Placeholder Parameters description', 'Asset_RichEdit'], + rowClass => 'query5', ); property databaseLinkId5 => ( fieldType => "databaseLink", default => 0, label => ['Database Link %s', 'Asset_SQLReport', 5], + rowClass => 'query5', ); property debugMode => ( fieldType => "yesNo", @@ -289,183 +314,17 @@ Manually make the edit form due to javascript for adding more queries. =cut override getEditForm => sub { - my $self = shift; - my $tabform = super(); - my $i18n = WebGUI::International->new($self->session,"Asset_SQLReport"); - $tabform->getTab("display")->template( - -value=>$self->getValue('templateId'), - -label=>$i18n->get(72), - -hoverHelp=>$i18n->get('72 description'), - -namespace=>"SQLReport" - ); - $tabform->getTab("properties")->yesNo( - -name=>"debugMode", - -label=>$i18n->get(16), - -hoverHelp=>$i18n->get('16 description'), - -value=>$self->getValue("debugMode") - ); - $tabform->getTab("display")->interval( - -name=>"cacheTimeout", - -label=>$i18n->get('cache timeout'), - -hoverHelp=>$i18n->get('cache timeout description'), - -uiLevel => 8, - -value=>$self->getValue("cacheTimeout") - ); - - - ### Download - # Download Type - my %downloadTypes; - tie %downloadTypes, 'Tie::IxHash', - "none" => $i18n->get("No Download"), - "csv" => $i18n->get("CSV"), - "template" => $i18n->get("Template"), - ; - - $tabform->getTab("properties")->radioList( - -name=>"downloadType", # ID is downloadType_formId - -label=>$i18n->get("download type"), - -hoverHelp=>$i18n->get("download type description"), - -vertical=>1, - -options=> \%downloadTypes, - -defaultValue=>"none", - -value=>$self->getValue("downloadType"), - -extras=> "onclick='changeDownloadType(this)'" - ); - - # Download Filename - $tabform->getTab("properties")->text( - -name=>"downloadFilename", # ID is downloadFilename_formId - -label=>$i18n->get("download filename"), - -hoverHelp=>$i18n->get("download filename description"), - -value=>$self->getValue("downloadFilename"), - ); - - # Download template (if necessary) - $tabform->getTab("properties")->template( - -name=>"downloadTemplateId", # ID is downloadTemplateId_formId - -label=>$i18n->get("download template"), - -hoverHelp=>$i18n->get("download template description"), - -value=>$self->getValue("downloadTemplateId"), - -namespace=>"SQLReport/Download", - ); - - # Download mimeType (if necessary) + my $self = shift; + my $session = $self->session; + my ( $style, $url ) = $session->quick( qw( style url ) ); - $tabform->getTab("properties")->selectBox( - -name=>"downloadMimeType", - -label=>$i18n->get("download mimetype"), - -hoverHelp=>$i18n->get("download mimetype description"), - #-options=> \%downloadMimeType, - -value=>$self->getValue("downloadMimeType"), - -defaultValue=>"application/octet-stream", - ); - - # Download UserGroup - $tabform->getTab("security")->group( - -name=>"downloadUserGroup", - -label=>$i18n->get("download usergroup"), - -hoverHelp=>$i18n->get("download usergroup description"), - -value=>$self->getValue("downloadUserGroup"), - -defaultValue=>$self->getValue("groupIdView"), - ); - - # javascript - $self->session->style->setScript($self->session->url->extras("wobject/SQLReport/editFormDownload.js")); - - ### /DOWNLOAD - - - # Add toggleQuery javascript - $tabform->getTab("properties")->raw(qq| - - |); + # Add javascript + $style->setScript( $url->extras("wobject/SQLReport/editFormDownload.js"), { type => 'text/javascript', } ); + $style->setScript( $url->extras("yui/build/yahoo-dom-event/yahoo-dom-event.js"), { type => 'text/javascript' } ); - for my $nr (1..5) { - # Set TR class for this query properties - $tabform->getTab("properties")->trClass("query".$nr); + # TODO: Add query toggling back - $tabform->getTab("properties")->readOnly( - -value=>"
", - -label=>join '', "", $i18n->get('4'), $nr,":", - ); - $tabform->getTab("properties")->yesNo( - -name=>"preprocessMacros".$nr, - -label=>$i18n->get(15), - -hoverHelp=>$i18n->get('15 description'), - -value=>$self->getValue("preprocessMacros".$nr) - ); - $tabform->getTab("properties")->textarea( - -name=>"placeholderParams".$nr, - -label=>$i18n->get('Placeholder Parameters'), - -hoverHelp=>$i18n->get('Placeholder Parameters description'), - -value=>$self->getValue("placeholderParams".$nr) - ); - $tabform->getTab("properties")->codearea( - -name => "prequeryStatements".$nr, - -label => $i18n->get('Prequery statements'), - -hoverHelp => $i18n->get('Prequery statements description'), - -syntax => "sql", - -value => $self->getValue("prequeryStatements".$nr), - ); - $tabform->getTab("properties")->codearea( - -name=>"dbQuery".$nr, - -label=>$i18n->get(4), - -hoverHelp=>$i18n->get('4 description'), - -syntax => "sql", - -value=>$self->getValue("dbQuery".$nr) - ); - $tabform->getTab("properties")->databaseLink( - -name=>"databaseLinkId".$nr, - -value=>$self->getValue("databaseLinkId".$nr) - ); - - # Add a "Add another query" button - if ($nr < 5 and ($self->get("dbQuery".($nr+1)) eq "" || ($self->get("dbQuery".($nr)) eq "" and $self->get("dbQuery".($nr+1)) ne ""))) { - $tabform->getTab("properties")->button( - -value=>$i18n->get('Add another query'), - -extras=>'onclick="toggleQuery(\''.($nr+1).'\'); this.style.display=\'none\';"', - -noWait=>1 - ); - } - - # Make empty query blocks invisible - if ($nr > 1 && ($self->get("dbQuery".$nr) eq "" || $self->get("dbQuery".($nr-1)) eq "")) { - $tabform->getTab("properties")->raw(qq| - - |); - } - - } - - # Undefine TR class - $tabform->getTab("properties")->trClass(); - - $tabform->getTab("display")->integer( - -name=>"paginateAfter", - -label=>$i18n->get(14), - -hoverHelp=>$i18n->get('14 description'), - -value=>$self->getValue("paginateAfter") - ); - - return $tabform; + return super(); }; diff --git a/lib/WebGUI/i18n/English/Asset_RichEdit.pm b/lib/WebGUI/i18n/English/Asset_RichEdit.pm index ab59a7b5b..341fde2cc 100644 --- a/lib/WebGUI/i18n/English/Asset_RichEdit.pm +++ b/lib/WebGUI/i18n/English/Asset_RichEdit.pm @@ -3,6 +3,11 @@ use strict; our $I18N = { + 'buttons' => { + message => q{Buttons}, + lastUpdated => 0, + }, + 'toolbar buttons' => { message => q|Toolbar Buttons|, lastUpdated => 1115139736, diff --git a/t/tests/Test/WebGUI/Asset/File/Image.pm b/t/tests/Test/WebGUI/Asset/File/Image.pm index e39538a72..d8dd345c0 100644 --- a/t/tests/Test/WebGUI/Asset/File/Image.pm +++ b/t/tests/Test/WebGUI/Asset/File/Image.pm @@ -21,4 +21,19 @@ sub list_of_tables { return [qw/assetData FileAsset ImageAsset/]; } +sub t_11_getEditForm : Tests( 2 ) { + my $test = shift; + $test->SUPER::getEditForm( @_ ); + my $session = $test->session; + my ( $tag, $asset, @parents ) = $test->getAnchoredAsset(); + + # Test extra fields + my $f = $asset->getEditForm; + isa_ok( $f->getTab("properties")->getField("thumbnail"), "WebGUI::Form::ReadOnly" ); + isa_ok( $f->getTab("properties")->getField("imageSize"), "WebGUI::Form::ReadOnly" ); + + # TODO: Test overrides for extra fields + +} + 1; diff --git a/t/tests/Test/WebGUI/Asset/MatrixListing.pm b/t/tests/Test/WebGUI/Asset/MatrixListing.pm index 82b776db9..be376a91d 100644 --- a/t/tests/Test/WebGUI/Asset/MatrixListing.pm +++ b/t/tests/Test/WebGUI/Asset/MatrixListing.pm @@ -24,4 +24,9 @@ sub parent_list { return ['WebGUI::Asset::Wobject::Matrix']; } +sub t_11_getEditForm : Tests { + ok(1); # TODO: Test MatrixListing getEditForm + # Do not extend other test +} + 1; diff --git a/t/tests/Test/WebGUI/Asset/Story.pm b/t/tests/Test/WebGUI/Asset/Story.pm index 425bc4b3e..49feb5e9b 100644 --- a/t/tests/Test/WebGUI/Asset/Story.pm +++ b/t/tests/Test/WebGUI/Asset/Story.pm @@ -24,4 +24,9 @@ sub parent_list { return ['WebGUI::Asset::Wobject::StoryArchive']; } +sub t_11_getEditForm : Tests { + # Override because getEditForm returns straight HTML + ok(1); +} + 1; diff --git a/t/tests/Test/WebGUI/Asset/WikiPage.pm b/t/tests/Test/WebGUI/Asset/WikiPage.pm index 6c45f17ae..b3083014e 100644 --- a/t/tests/Test/WebGUI/Asset/WikiPage.pm +++ b/t/tests/Test/WebGUI/Asset/WikiPage.pm @@ -24,4 +24,9 @@ sub parent_list { return ['WebGUI::Asset::Wobject::WikiMaster']; } +sub t_11_getEditForm : Tests { + ok(1); + # Override, getEditForm returns HTML +} + 1;