From d7fd89ce9dc642fb44c1707a1496b1d6533c374e Mon Sep 17 00:00:00 2001 From: Doug Bell Date: Mon, 11 Apr 2011 15:23:20 -0500 Subject: [PATCH] move save buttons out into www_add and www_edit Buttons are specific to those views of the form, not to any other, so they should only be included on www_add and www_edit. --- lib/WebGUI/Asset.pm | 101 +++++++++++++++++++++++++++----------------- 1 file changed, 62 insertions(+), 39 deletions(-) diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index e01d147d4..5d6958ce6 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -397,6 +397,7 @@ use WebGUI::Fork; use WebGUI::Search::Index; use WebGUI::TabForm; use WebGUI::PassiveAnalytics::Logging; +use WebGUI::Form::ButtonGroup; =head1 NAME @@ -439,6 +440,65 @@ sub addEditLabel { return $addEdit.' '.$self->getName; } +#---------------------------------------------------------------------------- + +=head2 addEditSaveButtons ( form ) + +Add the save buttons to the given form. Used by www_add and www_edit to modify +the asset edit form. + +=cut + +sub addEditSaveButtons { + my ( $self, $form ) = @_; + my $session = $self->session; + my $i18n = WebGUI::International->new($session, "Asset"); + + ### + # Buttons + my $buttonGroup = WebGUI::Form::ButtonGroup->new( $session, + name => "saveButtons", + rowClass => 'saveButtons', + ); + + # Approved status + $buttonGroup->addButton( 'checkbox', { + name => 'approved', + id => 'approveCheckbox', + value => 'approved', + label => $i18n->get('560', 'WebGUI'), + checked => ( $session->setting->get( 'versionTagMode' ) eq 'autoCommit' ? 1 : 0 ), + } ); + + $buttonGroup->addButton( "submit", { + name => "save", + id => 'saveButton', + value => $i18n->get('save'), + } ); + + if ( $session->config->get("enableSaveAndCommit") ) { + $buttonGroup->addButton( 'Submit', { + name => "saveAndCommit", + id => 'saveAndCommitButton', + value => $i18n->get("save and commit"), + } ); + } + + $buttonGroup->addButton( 'Submit', { + name => "saveAndReturn", + id => 'saveAndReturnButton', + value => $i18n->get("apply"), + } ); + + $buttonGroup->addButton( 'Submit', { + name => 'cancel', + id => 'cancelButton', + value => $i18n->get('cancel','WebGUI'), + } ); + + return $form->addFieldAt( $buttonGroup, 0 ); +} + #------------------------------------------------------------------- =head2 addMissing ( url ) @@ -1005,45 +1065,6 @@ sub getEditForm { my $f = WebGUI::FormBuilder->new( $session ); my $overrides = $session->config->get( "assets/" . $self->get("className") . '/fields' ) || {}; - ### - # Buttons - my $buttonGroup = $f->addField( 'ButtonGroup', name => "saveButtons", rowClass => 'saveButtons' ); - - # Approved status - $buttonGroup->addButton( 'checkbox', { - name => 'approved', - id => 'approveCheckbox', - value => 'approved', - label => $i18n->get('560', 'WebGUI'), - checked => ( $session->setting->get( 'versionTagMode' ) eq 'autoCommit' ? 1 : 0 ), - } ); - - $buttonGroup->addButton( "submit", { - name => "save", - id => 'saveButton', - value => $i18n->get('save'), - } ); - - if ( $session->config->get("enableSaveAndCommit") ) { - $buttonGroup->addButton( 'Submit', { - name => "saveAndCommit", - id => 'saveAndCommitButton', - value => $i18n->get("save and commit"), - } ); - } - - $buttonGroup->addButton( 'Submit', { - name => "saveAndReturn", - id => 'saveAndReturnButton', - value => $i18n->get("apply"), - } ); - - $buttonGroup->addButton( 'Submit', { - name => 'cancel', - id => 'cancelButton', - value => $i18n->get('cancel','WebGUI'), - } ); - ### # Create the main tabset # Not using loop to maintain correct order @@ -2743,6 +2764,7 @@ sub www_add { my $f = eval { $newAsset->getEditForm }; return $@ if $@; + $self->addEditSaveButtons( $f ); $f->addField( "Hidden", name => "func", value => "addSave" ); $f->action( $self->getUrl ); $f->getTab('meta')->getField( 'className' )->set('value', $class); @@ -2913,6 +2935,7 @@ sub www_edit { my $func = $self->session->form->get('func'); my $f = eval { $self->getEditForm }; + $self->addEditSaveButtons( $f ); return $@ if $@; $f->addField( "Hidden", name => "func", value => "editSave" ); $f->action( $self->getUrl );