-
Notifications
You must be signed in to change notification settings - Fork 15
/
form_tutorial_6.js
66 lines (56 loc) · 1.88 KB
/
form_tutorial_6.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
var gui = require( '../../' )
gui.init ( 'Form Tutorial: Page 6' )
var formConfig = {
id : 'myForm',
title: 'Captcha and Validate Example',
type : 'pong-form',
resourceURL: 'order',
height: '750px'
}
var formPlugInConfig = {
id: 'myFormDef',
description: 'dummy form',
fieldGroups: [
{
columns: [ { formFields: [
{ id: 'companyName', label: 'Company',
type: 'text',
required: true }, // <<< important
{ id: 'shippingAddress', label: 'Address',
type: 'text', rows: 5,
required: true }, // <<< important
]}, { formFields: [
{ id: 'f00', label: 'Accept Policies',
type: 'checkbox', name:'polcies', value:'accepted',
activate:["actionPost"] }, // <<< important
{ id: 'f00', type: 'reCAPTCHA', name:'accept',
sitekey: 'LczUUgUAAAAAPAykoKVT7bsX0aWH33cbEJmg9Fw'}, // <<< important
]} ]
}
],
actions: [
{ id: 'actionPost', actionName: 'Order',
method: 'POST', actionURL: 'order',
enabled:false }
]
}
gui.addView ( formConfig, formPlugInConfig )
// -----------------------------------------------------------
// We need REST web service to process the "orders":
var app = gui.getExpress()
var bodyParser = require( 'body-parser' )
//var jsonParser = bodyParser.json()
var formParser = bodyParser.urlencoded( { extended: true } );
// serve a table as answer for GET request
app.post(
'/order',
formParser,
function( req, res ) {
res.statusCode = 200 // = OK
console.log( 'POST Header: f01h="'+req.get('f01h')+'"' )
console.log( 'POST Body: '+JSON.stringify( req.body ) )
// TODO: vailidate the g-recaptcha-response field
// at https://www.google.com/recaptcha/api/siteverify
return res.json( {} )
}
)