mobile_workflow 0.6.27 → 0.6.31
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
![Uploads Design](https://github.com/FutureWorkshops/mobile_workflow/blob/master/uploads_design.png?raw=true)
|
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.
|