mobile_workflow 0.8.9 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +0 -83
- data/app/models/concerns/mobile_workflow/attachable.rb +6 -2
- data/app/models/concerns/mobile_workflow/displayable/steps/form.rb +52 -42
- data/app/models/concerns/mobile_workflow/displayable/steps/styled_content/stack.rb +18 -19
- data/lib/mobile_workflow/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6bc602fc017e13c879d0af658c78c4602b8fc98c17151cf08f00779e9def092
|
4
|
+
data.tar.gz: a16ece326988573447b5bbd8d6a134c0c4a4bfb663e7901f0f15cfd5e0b10613
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24da3b05af9fd839b58ac237c520787810f46237bce6ef38d0f443615c83b3a98adc08e989add95922219a466e95f766bc3fce32a9df3333b9c989aba933cbd2
|
7
|
+
data.tar.gz: 3a61512e3e71def3ebcce55f3cffc67c7858355b6d9d0e2912956a66a0ae81c985602f14b32aaa870964db6af3a60a47a896bd36d35f8f0ff1e36d629cd4d848
|
data/README.md
CHANGED
@@ -26,89 +26,6 @@ Or install it yourself as:
|
|
26
26
|
$ gem install mobile_workflow
|
27
27
|
```
|
28
28
|
|
29
|
-
## Upgrade to version 0.7.7 or higher
|
30
|
-
The following utility methods have changed their parameters:
|
31
|
-
|
32
|
-
```ruby
|
33
|
-
# app/models/concerns/mobile_workflow/displayable/steps/styled_content/grid.rb#20
|
34
|
-
def mw_grid_item(id: self.id, text:, detail_text: nil, preview_url: nil)
|
35
|
-
raise 'Missing id' if id.nil?
|
36
|
-
raise 'Missing text' if text.nil?
|
37
|
-
|
38
|
-
{ id: id, text: text, type: :item, detailText: detail_text, imageURL: preview_url }.compact
|
39
|
-
end
|
40
|
-
|
41
|
-
# app/models/concerns/mobile_workflow/displayable/steps/styled_content/stack.rb#20
|
42
|
-
def mw_stack_list_item(id:, text:, detail_text: nil, preview_url: nil)
|
43
|
-
raise 'Missing id' if id.nil?
|
44
|
-
raise 'Missing text' if text.nil?
|
45
|
-
|
46
|
-
{ id: id.to_s, text: text, detailText: detail_text, type: :listItem, imageURL: preview_url }.compact
|
47
|
-
end
|
48
|
-
|
49
|
-
# app/models/concerns/mobile_workflow/displayable/steps/list.rb#5
|
50
|
-
def mw_list_item(id: self.id, text:, detail_text: nil, sf_symbol_name: nil, material_icon_name: nil, preview_url: nil)
|
51
|
-
{ id: id, text: text, detailText: detail_text, sfSymbolName: sf_symbol_name, materialIconName: material_icon_name, imageURL: preview_url }.compact
|
52
|
-
end
|
53
|
-
|
54
|
-
# app/models/concerns/mobile_workflow/displayable/steps/stack.rb#26
|
55
|
-
def mw_display_video(preview_url:, attachment_url:)
|
56
|
-
{type: :video, previewURL: preview_url, url: attachment_url}
|
57
|
-
end
|
58
|
-
|
59
|
-
# app/models/concerns/mobile_workflow/displayable/steps/stack.rb#11
|
60
|
-
def mw_display_image(preview_url:, attachment_url:, content_mode: :scale_aspect_fill)
|
61
|
-
validate_content_mode!(content_mode)
|
62
|
-
|
63
|
-
{type: :image, contentMode: camelcase_converter(content_mode.to_s, first_letter: :lower), previewURL: preview_url, url: attachment_url}
|
64
|
-
end
|
65
|
-
```
|
66
|
-
|
67
|
-
All URLs MUST now be explicitly sent as arguments to the above methods, which means they must be previously set. If not, the methods will not work.
|
68
|
-
|
69
|
-
In order to support projects using `ActiveStorage`, there is a new model concern `MobileWorkflow::Attachable` that provides a few helpers. This is what you can do to upgrade if you use ActiveStorage (otherwise the helpers must be manually created):
|
70
|
-
|
71
|
-
1. Include the concern in the `ApplicationRecord` class, together with `MobileWorkflow::Displayable`:
|
72
|
-
|
73
|
-
```ruby
|
74
|
-
class ApplicationRecord < ActiveRecord::Base
|
75
|
-
include MobileWorkflow::Attachable
|
76
|
-
include MobileWorkflow::Displayable
|
77
|
-
end
|
78
|
-
```
|
79
|
-
|
80
|
-
2. Once included, the following helpers will be available, so use them to generate the intended URLs:
|
81
|
-
|
82
|
-
```ruby
|
83
|
-
def preview_url(attachment, options: { resize_to_fill: [200, 200] })
|
84
|
-
return nil unless attachment.attached?
|
85
|
-
|
86
|
-
if attachment.image?
|
87
|
-
rails_representation_url(attachment.variant(options), host: heroku_attachment_host)
|
88
|
-
elsif attachment.previewable?
|
89
|
-
rails_representation_url(attachment.preview(options), host: heroku_attachment_host)
|
90
|
-
else
|
91
|
-
return nil
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
|
-
def attachment_url(attachment)
|
96
|
-
return nil unless attachment.attached?
|
97
|
-
|
98
|
-
rails_blob_url(attachment, host: heroku_attachment_host)
|
99
|
-
end
|
100
|
-
```
|
101
|
-
|
102
|
-
Example of use:
|
103
|
-
```ruby
|
104
|
-
# Old method call
|
105
|
-
mw_list_item(text: 'John Doe', detail_text: 'Company Name', image_attachment: <ActiveStorage::Attached::One>, image_url: 'https://test.org/preview')
|
106
|
-
|
107
|
-
# New method call
|
108
|
-
preview_url = preview_url(<ActiveStorage::Attached::One>, options: { resize_to_fill: [200, 200] }) || 'https://test.org/preview'
|
109
|
-
mw_list_item(text: 'John Doe', detail_text: 'Company Name', preview_url: preview_url)
|
110
|
-
```
|
111
|
-
|
112
29
|
## Contributing
|
113
30
|
Contribution directions go here.
|
114
31
|
|
@@ -17,12 +17,16 @@ module MobileWorkflow
|
|
17
17
|
|
18
18
|
def attachment_url(attachment)
|
19
19
|
return nil unless attachment.attached?
|
20
|
-
|
21
|
-
rails_blob_url(attachment, host:
|
20
|
+
|
21
|
+
rails_blob_url(attachment, host: attachment_host)
|
22
22
|
end
|
23
23
|
|
24
24
|
private
|
25
25
|
|
26
|
+
def attachment_host
|
27
|
+
ENV.fetch('ATTACHMENTS_HOST', heroku_attachment_host)
|
28
|
+
end
|
29
|
+
|
26
30
|
def heroku_attachment_host
|
27
31
|
# TODO: MBS - move this to a configuration property
|
28
32
|
app_name = Rails.env.test? ? 'test-app' : ENV.fetch('HEROKU_APP_NAME')
|
@@ -1,70 +1,80 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
|
1
4
|
module MobileWorkflow
|
2
5
|
module Displayable
|
3
6
|
module Steps
|
4
7
|
module Form
|
5
|
-
def mw_form_section(label:,
|
8
|
+
def mw_form_section(label:, id:)
|
6
9
|
raise 'Missing label' if label.nil?
|
7
|
-
raise 'Missing
|
8
|
-
|
9
|
-
{ item_type: :section,
|
10
|
+
raise 'Missing id' if id.nil?
|
11
|
+
|
12
|
+
{ item_type: :section, id: id, label: label }
|
10
13
|
end
|
11
|
-
|
12
|
-
def mw_form_multiple_selection(label:,
|
14
|
+
|
15
|
+
def mw_form_multiple_selection(label:, multiple_selection_options:, id:, selection_type: :single, optional: false, show_other_option: false)
|
13
16
|
raise 'Missing label' if label.nil?
|
14
|
-
raise 'Missing
|
17
|
+
raise 'Missing id' if id.nil?
|
15
18
|
raise 'Missing multiple selection options' if multiple_selection_options.nil?
|
16
|
-
|
17
|
-
{ item_type: :multiple_selection,
|
19
|
+
|
20
|
+
{ item_type: :multiple_selection, id: id, label: label,
|
21
|
+
multiple_selection_options: multiple_selection_options, selection_type: selection_type, optional: optional, show_other_option: show_other_option }
|
18
22
|
end
|
19
|
-
|
23
|
+
|
20
24
|
def mw_form_multiple_selection_options(text:, hint: nil, is_pre_selected: false)
|
21
25
|
raise 'Missing text' if text.nil?
|
22
|
-
|
26
|
+
|
23
27
|
{ text: text, hint: hint, isPreSelected: is_pre_selected }
|
24
28
|
end
|
25
|
-
|
26
|
-
def mw_form_number(label:,
|
29
|
+
|
30
|
+
def mw_form_number(label:, id:, placeholder: nil, optional: false, symbol_position: :leading, default_text_answer: nil, hint: nil)
|
27
31
|
raise 'Missing label' if label.nil?
|
28
|
-
raise 'Missing
|
29
|
-
|
30
|
-
{ item_type: :number, number_type: :number,
|
32
|
+
raise 'Missing id' if id.nil?
|
33
|
+
|
34
|
+
{ item_type: :number, number_type: :number, id: id, label: label,
|
35
|
+
placeholder: placeholder, optional: optional, symbol_position: symbol_position, default_text_answer: default_text_answer, hint: hint }
|
31
36
|
end
|
32
|
-
|
33
|
-
def mw_form_text(label:,
|
37
|
+
|
38
|
+
def mw_form_text(label:, id:, placeholder: nil, optional: false, multiline: false, default_text_answer: nil, hint: nil)
|
34
39
|
raise 'Missing label' if label.nil?
|
35
|
-
raise 'Missing
|
36
|
-
|
37
|
-
{ item_type: :text,
|
40
|
+
raise 'Missing id' if id.nil?
|
41
|
+
|
42
|
+
{ item_type: :text, id: id, label: label, placeholder: placeholder,
|
43
|
+
optional: optional, multiline: multiline, default_text_answer: default_text_answer, hint: hint }
|
38
44
|
end
|
39
|
-
|
40
|
-
def mw_form_date(label:,
|
45
|
+
|
46
|
+
def mw_form_date(label:, id:, optional: false, default_text_answer: nil)
|
41
47
|
raise 'Missing label' if label.nil?
|
42
|
-
raise 'Missing
|
43
|
-
|
44
|
-
{ item_type: :date, date_type: :calendar,
|
48
|
+
raise 'Missing id' if id.nil?
|
49
|
+
|
50
|
+
{ item_type: :date, date_type: :calendar, id: id, label: label, optional: optional,
|
51
|
+
default_text_answer: default_text_answer }
|
45
52
|
end
|
46
|
-
|
47
|
-
def mw_form_time(label:,
|
53
|
+
|
54
|
+
def mw_form_time(label:, id:, optional: false, default_text_answer: nil)
|
48
55
|
raise 'Missing label' if label.nil?
|
49
|
-
raise 'Missing
|
50
|
-
|
51
|
-
{ item_type: :time,
|
56
|
+
raise 'Missing id' if id.nil?
|
57
|
+
|
58
|
+
{ item_type: :time, id: id, label: label, optional: optional,
|
59
|
+
default_text_answer: default_text_answer }
|
52
60
|
end
|
53
|
-
|
54
|
-
def mw_form_email(label:,
|
61
|
+
|
62
|
+
def mw_form_email(label:, id:, placeholder: nil, optional: false, default_text_answer: nil)
|
55
63
|
raise 'Missing label' if label.nil?
|
56
|
-
raise 'Missing
|
57
|
-
|
58
|
-
{ item_type: :email,
|
64
|
+
raise 'Missing id' if id.nil?
|
65
|
+
|
66
|
+
{ item_type: :email, id: id, label: label, placeholder: placeholder,
|
67
|
+
optional: optional, default_text_answer: default_text_answer }
|
59
68
|
end
|
60
|
-
|
61
|
-
def mw_form_password(label:,
|
69
|
+
|
70
|
+
def mw_form_password(label:, id:, placeholder: nil, optional: false, default_text_answer: nil, hint: nil)
|
62
71
|
raise 'Missing label' if label.nil?
|
63
|
-
raise 'Missing
|
64
|
-
|
65
|
-
{ item_type: :secure,
|
72
|
+
raise 'Missing id' if id.nil?
|
73
|
+
|
74
|
+
{ item_type: :secure, id: id, label: label, placeholder: placeholder,
|
75
|
+
optional: optional, default_text_answer: default_text_answer, hint: hint }
|
66
76
|
end
|
67
77
|
end
|
68
78
|
end
|
69
79
|
end
|
70
|
-
end
|
80
|
+
end
|
@@ -1,41 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module MobileWorkflow
|
2
4
|
module Displayable
|
3
5
|
module Steps
|
4
6
|
module StyledContent
|
5
7
|
module Stack
|
6
|
-
def mw_stack_title(
|
7
|
-
raise 'Missing id' if id.nil?
|
8
|
+
def mw_stack_title(title:)
|
8
9
|
raise 'Missing title' if title.nil?
|
9
|
-
|
10
|
+
|
10
11
|
{ id: id, title: title, type: :title }
|
11
12
|
end
|
12
|
-
|
13
|
-
def mw_stack_text(
|
14
|
-
raise 'Missing id' if id.nil?
|
13
|
+
|
14
|
+
def mw_stack_text(text:)
|
15
15
|
raise 'Missing text' if text.nil?
|
16
|
-
|
17
|
-
{
|
16
|
+
|
17
|
+
{ text: text, type: :text }
|
18
18
|
end
|
19
|
-
|
20
|
-
def mw_stack_list_item(
|
21
|
-
raise 'Missing id' if id.nil?
|
19
|
+
|
20
|
+
def mw_stack_list_item(text:, detail_text: nil, preview_url: nil)
|
22
21
|
raise 'Missing text' if text.nil?
|
23
|
-
|
24
|
-
{
|
22
|
+
|
23
|
+
{ text: text, detailText: detail_text, type: :listItem, imageURL: preview_url }.compact
|
25
24
|
end
|
26
25
|
|
27
26
|
# Remove `modal_workflow_name` argument once V1 is no longer being used
|
28
|
-
def mw_stack_button(
|
29
|
-
raise 'Missing id' if id.nil?
|
27
|
+
def mw_stack_button(label:, url: nil, method: :nil, on_success: :none, style: :primary, modal_workflow_name: nil, link_id: nil, link_url: nil, sf_symbol_name: nil, apple_system_url: nil, android_deep_link: nil, confirm_title: nil, confirm_text: nil, share_text: nil, share_image_url: nil)
|
30
28
|
raise 'Missing label' if label.nil?
|
31
|
-
|
29
|
+
|
32
30
|
validate_on_success!(on_success)
|
33
31
|
validate_button_style!(style)
|
34
|
-
|
35
|
-
{
|
32
|
+
|
33
|
+
{ type: :button, label: label, url: url, method: method, onSuccess: on_success, style: style,
|
34
|
+
modalWorkflow: modal_workflow_name, linkId: link_id, linkURL: link_url, sfSymbolName: sf_symbol_name, appleSystemURL: apple_system_url, androidDeepLink: android_deep_link, confirmTitle: confirm_title, confirmText: confirm_text, shareText: share_text, shareImageURL: share_image_url }.compact
|
36
35
|
end
|
37
36
|
end
|
38
37
|
end
|
39
38
|
end
|
40
39
|
end
|
41
|
-
end
|
40
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mobile_workflow
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Brooke-Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-s3
|