[Catalyst] Question about workflow to handle multiple 'submit' buttons on one form

Francisco Obispo fobispo at isc.org
Mon Feb 7 19:42:37 GMT 2011

Well, what I would do, is keep the underlying 'save' and 'close' methods as private:

sub save : Private {
  my ($self,$c)=@_;

  # your save code goes here


sub close : Private {
  my ($self,$c)=@_;

  # your close code goes here


That way you could have:

sub action : Local {
  my ($self,$c)=@_;
  $c->forward('close') if $c->request->param("close"); # or something 


On Feb 7, 2011, at 11:29 AM, Len Jaffe wrote:

> On Mon, Feb 7, 2011 at 11:41 AM, will trillich <will.trillich at serensoft.com> wrote:
> Catalystry:
> So there's a second page where they fill out some finalization options (with the original data in hidden fields) and there they have a final "submit" button for the purpose. And they should be able to use their browser's "back" button to get back to the edit form.
> The problem we're wrestling with is that the "edit" action should have a URL distinct from the close action so that the user can hit the "back" button if need be.
> /item/# <= view item
> /item/#/edit <= edit form
> /item/#/close <= confirm-close form
> Nah. I wouldn't have two URLs.  I'd have one URL, and determine whether to save or save+close based on the value of the submit button.
> Furthernore, after a successful submit (assuming http POST) I'd redirect the user to a new display page via GET so that they can hit the refresh button all the like without attempting to repost the submission.
> Len.
> -- 
> lenjaffe at jaffesystems.com   614-404-4214
> Asst. Scoutmaster Troop 156 - www.bsatroop156.org - webmaster at bsatroop156.org
> Proprietor: http://www.theycomewithcheese.com/ - An Homage to Fromage
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/

Francisco Obispo 
Hosted@ Programme Manager
email: fobispo at isc.org
Phone: +1 650 423 1374 || INOC-DBA *3557* NOC
Key fingerprint = 532F 84EB 06B4 3806 D5FA  09C6 463E 614E B38D B1BE

More information about the Catalyst mailing list