1 $group
2 class wzForm
3 ctor
4 param options
5 set options = options || {}
6 set this.formsContainerId = options.formsContainerId || 'wz-forms-container'
7 m create
8 param meta
9 var formsContainer = wz.element('#' + this.formsContainerId)
10 if !formsContainer
11 set formsContainer = document.createElement('div')
12 _ formsContainer.setAttribute('id', this.formsContainerId)
13 _ document.body.appendChild(formsContainer)
14 var f = meta.form
15 var hb = new wzHtmlBuilder()
16 var hRoot
17 _ hb.add
18 @ 'div'
19 {
20 @ id f.id
21 @ class 'wz-dialog'
22 _ hRoot.add
23 @ 'h2'
24 {
25 @ _text f.title
26 var hControls
27 _ hRoot.add
28 @ 'div'
29 {
30 @ class 'wz-dialog-controls'
31 foreach ctrl in f.controls
32 _ this.addControl
33 @ hControls
34 @ f
35 @ ctrl
36 var hButtons
37 _ hRoot.add
38 @ 'div'
39 {
40 @ class 'wz-dialog-buttons'
41 _ hButtons.add
42 @ 'button'
43 {
44 @ id 'btn' + f.id + 'Cancel'
45 @ class 'wz-dialog-button'
46 @ _text 'Cancel'
47 _ hButtons.add
48 @ 'button'
49 {
50 @ id 'btn' + f.id + 'Confirm'
51 @ class 'wz-dialog-button'
52 @ _text 'Confirm'
53 var formDiv
54 _ document.createElement("div")
55 _ formsContainer.appendChild
56 @ formDiv
57 _ wz.html
58 @ formDiv
59 _ hb.toHtml('\n')
60 _ wz.click
61 @ '#btn' + f.id + 'Cancel'
62 function
63 if meta.onCancel
64 _ meta.onCancel
65 _ wz.click
66 @ '#btn' + f.id + 'Confirm'
67 function
68 if meta.onConfirm
69 var result = {}
70 foreach ctrl in f.controls
71 set result[ctrl.id]
72 _ wz.val
73 @ '#' + f.id + '_' + ctrl.id
74 _ alert
75 @ 'wzForm confirm ' + JSON.stringify(result, null, 2)
76 _ meta.onConfirm
77 @ result
78 return formDiv
79 m addControl
80 param node
81 param form
82 param meta
83 var ctrl
84 _ node.add
85 @ 'div'
86 {
87 @ class 'wz-dialog-control-h'
88 _ ctrl.add
89 @ 'label'
90 {
91 @ _text meta.label
92 var field
93 _ ctrl.add
94 @ 'input'
95 {
96 @ type 'text'
97 @ id form.id + '_' + meta.id
98 @ class 'wz-dialog-text'
99 if typeof meta.value !== 'undefined'
100 _ field.set
101 @ 'value'
102 @ meta.value
103 if meta.disabled
104 _ field.set
105 @ 'disabled'