mobile_workflow 0.6.27 → 0.6.31
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 +5 -0
- data/app/models/concerns/mobile_workflow/displayable.rb +11 -11
- data/lib/generators/mobile_workflow/install/install_generator.rb +1 -1
- data/lib/generators/mobile_workflow/install/templates/Gemfile.erb +3 -3
- data/lib/generators/mobile_workflow/install/templates/Procfile.dev +1 -1
- data/lib/generators/mobile_workflow/install/templates/lib/tasks/mobile_workflow_s3.rake +4 -3
- data/lib/generators/mobile_workflow/install/templates/seeds.rb.erb +2 -1
- data/lib/generators/mobile_workflow/install/templates/sessions_controller.rb.erb +1 -6
- data/lib/mobile_workflow/tasks/{env_set.rake → set_env.rake} +13 -10
- data/lib/mobile_workflow/version.rb +3 -3
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37eb1d708549f31b01aca9e6cb6c68b2e0778f647c326c6f2ed54e55f64c58c0
|
4
|
+
data.tar.gz: 5b23a0cd92a3b8c3a9931651c9eb37322fdd693f44700aac1da684764fc8b5ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c345303b25a33807e58ca50e4ea1cea90853c896361f90b492f80d55306e45552fea574a28b0e548f1318e225519e478d3bb102e8a5f36d06ee773750aacded
|
7
|
+
data.tar.gz: 232110a1e208baddf77c246e4d7727cb6fb4f21ae06689e54a2e43be2db2fab0b3e48a99a25bf64a9759e1b904584b707d6bf2e0c134da616459dee6b8c0e3b6
|
data/README.md
CHANGED
@@ -4,6 +4,11 @@ Short description and motivation.
|
|
4
4
|
## Usage
|
5
5
|
How to use my plugin.
|
6
6
|
|
7
|
+
## Uploads Design
|
8
|
+
This gem includes an engine to add and process S3 attachments. The design is as follows:
|
9
|
+
|
10
|
+

|
11
|
+
|
7
12
|
## Installation
|
8
13
|
Add this line to your application's Gemfile:
|
9
14
|
|
@@ -8,18 +8,18 @@ module MobileWorkflow
|
|
8
8
|
CONTENT_MODE_OPTIONS = [:scale_aspect_fill, :scale_aspect_fit]
|
9
9
|
QUESTION_STYLES = [:single_choice, :multiple_choice]
|
10
10
|
|
11
|
-
def mw_list_item(id: self.id, text:, detail_text: nil, sf_symbol_name: nil, image_attachment: nil)
|
12
|
-
mw_list_item = {id: id, text: text, detailText: detail_text, sfSymbolName: sf_symbol_name}
|
13
|
-
mw_list_item[:imageURL] = preview_url(image_attachment, options: { resize_to_fill: [
|
11
|
+
def mw_list_item(id: self.id, text:, detail_text: nil, sf_symbol_name: nil, material_icon_name: nil, image_attachment: nil)
|
12
|
+
mw_list_item = {id: id, text: text, detailText: detail_text, sfSymbolName: sf_symbol_name, materialIconName: material_icon_name}
|
13
|
+
mw_list_item[:imageURL] = preview_url(image_attachment, options: { resize_to_fill: [200, 200] }) if image_attachment
|
14
14
|
mw_list_item.compact
|
15
15
|
end
|
16
16
|
|
17
|
-
def mw_list_search_suggestion(id
|
18
|
-
{id: id, text: text, sectionName: section_name, sfSymbolName: sf_symbol_name}.compact
|
17
|
+
def mw_list_search_suggestion(id: self.id, text:, section_name:, sf_symbol_name: nil)
|
18
|
+
{id: id.to_s, text: text, sectionName: section_name, sfSymbolName: sf_symbol_name}.compact
|
19
19
|
end
|
20
20
|
|
21
21
|
def mw_map_item(id: self.id, text:, detail_text: nil, latitude:, longitude:)
|
22
|
-
{id: id, text: text, detailText: detail_text, latitude: latitude, longitude: longitude}.compact
|
22
|
+
{id: id.to_s, text: text, detailText: detail_text, latitude: latitude, longitude: longitude}.compact
|
23
23
|
end
|
24
24
|
|
25
25
|
def mw_pie_chart_item(id: self.id, label:, value:)
|
@@ -30,7 +30,7 @@ module MobileWorkflow
|
|
30
30
|
{type: :text, label: label, text: text.to_s}.compact
|
31
31
|
end
|
32
32
|
|
33
|
-
def mw_display_image(attachment, content_mode: :scale_aspect_fill, options: { resize_to_fill: [
|
33
|
+
def mw_display_image(attachment, content_mode: :scale_aspect_fill, options: { resize_to_fill: [1200, 600] })
|
34
34
|
validate_content_mode!(content_mode)
|
35
35
|
|
36
36
|
{type: :image, contentMode: content_mode.to_s.camelize(:lower), previewURL: preview_url(attachment, options: options), url: attachment_url(attachment)}
|
@@ -73,7 +73,7 @@ module MobileWorkflow
|
|
73
73
|
|
74
74
|
def mw_display_system_url_button(label:, apple_system_url: nil, android_deep_link: nil, style: :primary, sf_symbol_name: nil, material_icon_name: nil)
|
75
75
|
validate_button_style!(style)
|
76
|
-
raise 'Invalid android_deep_link'
|
76
|
+
raise 'Invalid android_deep_link' if android_deep_link && !android_deep_link.start_with?('http')
|
77
77
|
|
78
78
|
{type: :button, label: label, appleSystemURL: apple_system_url, androidDeepLink: android_deep_link, style: style, sfSymbolName: sf_symbol_name, materialIconName: material_icon_name}.compact
|
79
79
|
end
|
@@ -110,12 +110,12 @@ module MobileWorkflow
|
|
110
110
|
{ id: id, text: text, type: :smallSection }
|
111
111
|
end
|
112
112
|
|
113
|
-
def mw_grid_item(id: self.id, text:, image_attachment: nil)
|
113
|
+
def mw_grid_item(id: self.id, text:, image_attachment: nil, options: { resize_to_fill: [1560, 877.5] })
|
114
114
|
raise 'Missing id' if id.nil?
|
115
115
|
raise 'Missing text' if text.nil?
|
116
116
|
|
117
117
|
item = { id: id, text: text, type: :item }
|
118
|
-
item[:imageURL] = preview_url(image_attachment, options:
|
118
|
+
item[:imageURL] = preview_url(image_attachment, options: options) if image_attachment
|
119
119
|
item
|
120
120
|
end
|
121
121
|
|
@@ -155,7 +155,7 @@ module MobileWorkflow
|
|
155
155
|
end
|
156
156
|
|
157
157
|
def attachment_host
|
158
|
-
"https://#{ENV
|
158
|
+
"https://#{ENV.fetch('HEROKU_APP_NAME')}.herokuapp.com"
|
159
159
|
end
|
160
160
|
end
|
161
161
|
end
|
@@ -35,7 +35,7 @@ module MobileWorkflow
|
|
35
35
|
migration_template "create_users.rb", "db/migrate/create_users.rb"
|
36
36
|
|
37
37
|
generate 'doorkeeper:install'
|
38
|
-
gsub_file 'config/initializers/doorkeeper.rb', 'raise "Please configure doorkeeper resource_owner_authenticator block located in #{__FILE__}"', 'User.find_by_id(session
|
38
|
+
gsub_file 'config/initializers/doorkeeper.rb', 'raise "Please configure doorkeeper resource_owner_authenticator block located in #{__FILE__}"', 'User.find_by_id(session.delete(:user_id)) || redirect_to(new_session_url(return_to: request.fullpath))'
|
39
39
|
generate 'doorkeeper:migration'
|
40
40
|
generate 'doorkeeper:pkce'
|
41
41
|
template("user.rb.erb", "app/models/user.rb")
|
@@ -4,13 +4,13 @@ git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
|
4
4
|
ruby '<%= MobileWorkflow::RUBY_VERSION %>'
|
5
5
|
|
6
6
|
# Core Gems
|
7
|
-
gem 'rails', '
|
7
|
+
gem 'rails', '<%= MobileWorkflow::RAILS_VERSION %>'
|
8
8
|
gem 'puma', '~> 5.0'
|
9
9
|
gem 'sass-rails', '>= 6'
|
10
10
|
gem 'turbolinks', '~> 5'
|
11
11
|
|
12
12
|
# Mobile Workflow
|
13
|
-
gem 'mobile_workflow', '
|
13
|
+
gem 'mobile_workflow', '<%= MobileWorkflow::VERSION %>'
|
14
14
|
|
15
15
|
# Authorisation / Authentication
|
16
16
|
<%- if options[:doorkeeper_oauth] %>
|
@@ -32,7 +32,7 @@ gem 'aws-sdk-sns', '~> 1.23'
|
|
32
32
|
<%- end %>
|
33
33
|
|
34
34
|
# FFI for Mac M1
|
35
|
-
gem 'ffi',
|
35
|
+
gem 'ffi', '~> 1.15.1'
|
36
36
|
|
37
37
|
group :development do
|
38
38
|
gem 'web-console', '>= 3.3.0'
|
@@ -1 +1 @@
|
|
1
|
-
web:
|
1
|
+
web: bin/rails s -p $PORT
|
@@ -1,9 +1,10 @@
|
|
1
|
-
desc "Add S3 storage to
|
1
|
+
desc "Add S3 storage to a Heroku app"
|
2
2
|
task add_heroku_s3_storage: :environment do
|
3
3
|
require 'mobile_workflow/cli'
|
4
4
|
app_name = ENV['APP_NAME']
|
5
|
-
|
6
|
-
|
5
|
+
aws_region = ENV['AWS_REGION'] || 'us-east-1'
|
6
|
+
aws = MobileWorkflow::Cli::AwsBackend.new(app_name: app_name, region: aws_region)
|
7
|
+
heroku = MobileWorkflow::Cli::HerokuBackend.new(app_name: app_name)
|
7
8
|
aws.create
|
8
9
|
aws.create_topic_subscription(heroku.notifications_endpoint)
|
9
10
|
end
|
@@ -1,3 +1,4 @@
|
|
1
1
|
<%- if options[:doorkeeper_oauth] %>
|
2
|
-
|
2
|
+
# You can set the OAuth client ID and client secret in your ENV in order to avoid them being reset each time you reset the database.
|
3
|
+
Doorkeeper::Application.create! name: 'Main App', redirect_uri: 'mww://callback', scopes: 'public', uid: ENV['OAUTH_CLIENT_ID'], secret: ENV['OAUTH_CLIENT_SECRET']
|
3
4
|
<%- end %>
|
@@ -6,15 +6,10 @@ class SessionsController < ApplicationController
|
|
6
6
|
@user = User.find_by("LOWER(email)= ?", params[:email].downcase)
|
7
7
|
if @user && @user.authenticate(params[:password])
|
8
8
|
session[:user_id] = @user.id
|
9
|
-
redirect_to params[:return_to] || root_url
|
9
|
+
redirect_to params[:return_to] || root_url
|
10
10
|
else
|
11
11
|
flash[:warning] = "You have entered incorrect email and/or password."
|
12
12
|
render :new
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
16
|
-
def destroy
|
17
|
-
session.delete(:user_id)
|
18
|
-
redirect_to root_path
|
19
|
-
end
|
20
15
|
end
|
@@ -44,15 +44,18 @@ def env_set(path)
|
|
44
44
|
File.write(app_json_path, app_json.to_json)
|
45
45
|
end
|
46
46
|
|
47
|
-
namespace :
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
47
|
+
namespace :mw do
|
48
|
+
namespace :set_env do
|
49
|
+
desc 'Update Android app.json to use new env'
|
50
|
+
task :android do
|
51
|
+
env_set(File.join('app', 'src', 'main', 'res', 'raw', 'app.json'))
|
52
|
+
end
|
52
53
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
54
|
+
desc 'Update iOS app.json to use new env'
|
55
|
+
task :ios do
|
56
|
+
project_name = ENV["PROJECT_NAME"]
|
57
|
+
env_set(File.join(project_name, project_name, "Resources", "app.json"))
|
58
|
+
end
|
59
|
+
end
|
58
60
|
end
|
61
|
+
|
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.6.
|
4
|
+
version: 0.6.31
|
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: 2021-
|
11
|
+
date: 2021-07-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 6.1.
|
19
|
+
version: 6.1.3.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 6.1.
|
26
|
+
version: 6.1.3.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: sqlite3
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -138,7 +138,7 @@ files:
|
|
138
138
|
- lib/mobile_workflow/engine.rb
|
139
139
|
- lib/mobile_workflow/open_api_spec/parser.rb
|
140
140
|
- lib/mobile_workflow/railtie.rb
|
141
|
-
- lib/mobile_workflow/tasks/
|
141
|
+
- lib/mobile_workflow/tasks/set_env.rake
|
142
142
|
- lib/mobile_workflow/version.rb
|
143
143
|
homepage: https://github.com/futureworkshops/mobile_workflow
|
144
144
|
licenses:
|
@@ -152,14 +152,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
152
152
|
requirements:
|
153
153
|
- - ">="
|
154
154
|
- !ruby/object:Gem::Version
|
155
|
-
version: 2.7.
|
155
|
+
version: 2.7.3
|
156
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
158
|
- - ">="
|
159
159
|
- !ruby/object:Gem::Version
|
160
160
|
version: '0'
|
161
161
|
requirements: []
|
162
|
-
rubygems_version: 3.1.
|
162
|
+
rubygems_version: 3.1.6
|
163
163
|
signing_key:
|
164
164
|
specification_version: 4
|
165
165
|
summary: A Rails engine to provide API support for Mobile Workflow Apps.
|