How to implement a custom "Finish page" best?

55 views
Skip to first unread message

mabu

unread,
Jan 14, 2015, 8:07:54 AM1/14/15
to orb...@googlegroups.com
Hi,

I want to achieve following process flow for an end user when filling out a
form:
1.) After the user filled out the form he clicks on a button called
"Check/Send Data" (orbeon review button with overriden label)
2.) If the validation is ok, the user is forwarded to the "Review page"
where he is able to check his input data.
3.) The "Review page" has a button "Send" where the user is able to finally
send the form.
4.) After the form was successfully sent, the user is forwared to a "Finish
page" where he gets final information about the form.


My solution:

1.) I copied the form runner page-flow.xml and added a rule for the "Finish
page" ( finish.xhtml <http://discuss.orbeon.com/file/n4659431/finish.xhtml>
)

<page path="/fr/([^/^.]+)/([^/^.]+)/(finish)"
default-submission="request-parameters.xml" model="finish/finish.xhtml"
view="html-view.xpl">
<setvalue ref="/*/app" matcher-group="1"/>
<setvalue ref="/*/form" matcher-group="2"/>
<setvalue ref="/*/mode">view</setvalue>
</page>

2.) I created a custom model ( custom-model.xml
<http://discuss.orbeon.com/file/n4659431/custom-model.xml> )

<property as="xs:anyURI" name="oxf.fr.detail.model.custom.*.*"
value='oxf:/forms/custom/custom-model.xml'/>

3.) I customized the send action/button

<property as="xs:string" name="oxf.fr.detail.process.send.*.*">
save-final
then xf:send("send-form")
recover error-message("process-error")
</property>


Can you please give me some feedback about my solution. Do you have better
ideas/solutions?
A problem of my solution is that when using the browser back button to
navigate back from the "Finish page" to the "Review page" a user is able to
send the form again.


Martin

--
View this message in context: http://discuss.orbeon.com/How-to-implement-a-custom-Finish-page-best-tp4659431.html
Sent from the Orbeon Forms community mailing list mailing list archive at Nabble.com.

Alessandro Vernet

unread,
Jan 21, 2015, 7:13:34 PM1/21/15
to orb...@googlegroups.com
Hi Martin,

This is a use case we support out-of-the-box, but it just that the
"finish" page needs to be done outside of Orbeon Forms. I.e., without
any change to the page flow, or any file part of Form Runner, you can
use the navigate() action in your process to send the user to a page
after they've submitted the data.

https://github.com/orbeon/orbeon-forms/wiki/Form-Runner-~-Buttons-and-Processes#navigate

Preventing users from hitting back and re-submitting the data is
something we have talked about, but I think didn't have an issue to
track. So for now, I created this issue"

https://github.com/orbeon/orbeon-forms/issues/2068

Alex
> --
> You received this message because you are subscribed to the Google Groups "Orbeon Forms" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to orbeon+un...@googlegroups.com.
> To post to this group, send email to orb...@googlegroups.com.

mabu

unread,
Jan 28, 2015, 2:24:22 AM1/28/15
to orb...@googlegroups.com
Hi Alex,

Thank's for the feedback. I will give it a try using the navigate() action.
A little disadvantage of your solution is that I have to rebuild the layout
of the form header (receiver of the form, title) in the "external finish
page".

Martin

--
View this message in context: http://discuss.orbeon.com/How-to-implement-a-custom-Finish-page-best-tp4659431p4659480.html

Alessandro Vernet

unread,
Jan 28, 2015, 9:29:49 PM1/28/15
to orb...@googlegroups.com
Hi Martin,

True. If all you want to do is show a page telling the user the data was
submitted with the same layout as the form itself. This would be a good
addition. For now, I've create this RFE:

https://github.com/orbeon/orbeon-forms/issues/2078

Alex

-----
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
--
View this message in context: http://discuss.orbeon.com/How-to-implement-a-custom-Finish-page-best-tp4659431p4659486.html
Reply all
Reply to author
Forward
0 new messages