Class: ProMotion::XLFormScreen
Instance Attribute Summary collapse
Instance Method Summary
collapse
included
#didRotateFromInterfaceOrientation, #loadView, new, #shouldAutorotate, #shouldAutorotateToInterfaceOrientation, #viewDidAppear, #viewDidDisappear, #viewWillAppear, #viewWillDisappear, #willRotateToInterfaceOrientation
Instance Attribute Details
Returns the value of attribute form_object.
6
7
8
|
# File 'lib/ProMotion/XLForm/xl_form_screen.rb', line 6
def form_object
@form_object
end
|
Instance Method Details
#display_errors ⇒ Object
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
# File 'lib/ProMotion/XLForm/xl_form_screen.rb', line 84
def display_errors
return if valid?
errors = validation_errors.map do |error|
error.localizedDescription
end
if NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1
alert = UIAlertController.alertControllerWithTitle(NSLocalizedString('Error', nil),
message: errors.join(', '),
preferredStyle: UIAlertControllerStyleAlert)
action = UIAlertAction.actionWithTitle(NSLocalizedString('OK', nil),
style: UIAlertActionStyleDefault,
handler: nil)
alert.addAction(action)
presentViewController(alert, animated: true, completion: nil)
else
alert = UIAlertView.new
alert.title = NSLocalizedString('Error', nil)
alert.message = errors.join(', ')
alert.show
end
end
|
47
48
49
50
|
# File 'lib/ProMotion/XLForm/xl_form_screen.rb', line 47
def form_data
PM.logger.info "You need to implement a `form_data` method in #{self.class.to_s}."
[]
end
|
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# File 'lib/ProMotion/XLForm/xl_form_screen.rb', line 52
def update_form_data
form_options = self.class.get_form_options
title = self.class.title
required = form_options[:required]
@form_builder = PM::XLForm.new(self.form_data,
{
title: title,
required: required
})
@form_object = @form_builder.build
self.form = @form_object
end
|
#valid? ⇒ Boolean
78
79
80
|
# File 'lib/ProMotion/XLForm/xl_form_screen.rb', line 78
def valid?
validation_errors.empty?
end
|
#values ⇒ Object
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/ProMotion/XLForm/xl_form_screen.rb', line 66
def values
values = {}
formValues.each do |key, value|
if value.is_a? XLFormOptionsObject
value = value.formValue
end
values[key] = value
end
values
end
|
#viewDidLoad ⇒ Object
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
|
# File 'lib/ProMotion/XLForm/xl_form_screen.rb', line 8
def viewDidLoad
super
update_form_data
form_options = self.class.get_form_options
if form_options[:on_cancel]
on_cancel = form_options[:on_cancel]
title = NSLocalizedString('Cancel', nil)
item = :cancel
if on_cancel.is_a? Hash
title = on_cancel[:title] if on_cancel[:title]
item = on_cancel[:item] if on_cancel[:item]
end
set_nav_bar_button :left, {
system_item: item,
title: title,
action: 'on_cancel:'
}
end
if form_options[:on_save]
on_cancel = form_options[:on_save]
title = NSLocalizedString('Save', nil)
item = :save
if on_cancel.is_a? Hash
title = on_cancel[:title] if on_cancel[:title]
item = on_cancel[:item] if on_cancel[:item]
end
set_nav_bar_button :right, {
system_item: item,
title: title,
action: 'on_save:'
}
end
end
|