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

2011-02-07 Thread will trillich
Catalystry:

We have a ticketing system where the managers can add new data and update
the form. This uses a normal submit button. But now and then they want to
close an incident, so we have a save-and-close submit button as well. One
form, two ways to submit.

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.


What's the elegant way to handle this in Catalyst?


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

We're using HTML::FormHandler and DBIC. And the solution shouldn't rely on
javascript.

All pointers welcome!

-- 
The first step towards getting somewhere is to decide that you are not going
to stay where you are.  -- J.P.Morgan
___
List: Catalyst@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/


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

2011-02-07 Thread Len Jaffe
On Mon, Feb 7, 2011 at 11:41 AM, will trillich
will.trill...@serensoft.comwrote:

 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.

-- 
lenja...@jaffesystems.com   614-404-4214
Asst. Scoutmaster Troop 156 - www.bsatroop156.org -
webmas...@bsatroop156.org
Proprietor: http://www.theycomewithcheese.com/ - An Homage to Fromage
___
List: Catalyst@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/


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

2011-02-07 Thread will trillich
Dang, this is really quite spiffy. Thanks for the idea!


On Mon, Feb 7, 2011 at 1:42 PM, Francisco Obispo fobi...@isc.org wrote:

 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('save');
  $c-forward('close') if $c-request-param(close); # or something
 }


 Francisco













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

 
 
  On Mon, Feb 7, 2011 at 11:41 AM, will trillich 
 will.trill...@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.
 
  --
  lenja...@jaffesystems.com   614-404-4214
  Asst. Scoutmaster Troop 156 - www.bsatroop156.org -
 webmas...@bsatroop156.org
  Proprietor: http://www.theycomewithcheese.com/ - An Homage to Fromage
  ___
  List: Catalyst@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: fobi...@isc.org
 Phone: +1 650 423 1374 || INOC-DBA *3557* NOC
 Key fingerprint = 532F 84EB 06B4 3806 D5FA  09C6 463E 614E B38D B1BE





 ___
 List: Catalyst@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/




-- 
The first step towards getting somewhere is to decide that you are not going
to stay where you are.  -- J.P.Morgan
___
List: Catalyst@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/