fae-rails 2.0.0 → 2.1.0

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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -1
  3. data/app/assets/javascripts/fae/form/_ajax.js +21 -1
  4. data/app/assets/javascripts/fae/form/_cancel.js +1 -0
  5. data/app/assets/javascripts/fae/form/_validator.js +22 -12
  6. data/app/assets/javascripts/fae/form/inputs/_color.js +2 -1
  7. data/app/assets/javascripts/fae/vendor/jqColorPicker.min.js +0 -1
  8. data/app/controllers/fae/application_controller.rb +15 -1
  9. data/app/controllers/fae/users_controller.rb +8 -0
  10. data/app/helpers/fae/form_helper.rb +13 -4
  11. data/app/helpers/fae/view_helper.rb +76 -31
  12. data/app/models/concerns/fae/user_concern.rb +10 -1
  13. data/app/models/fae/static_page.rb +7 -2
  14. data/app/models/fae/user.rb +2 -3
  15. data/app/uploaders/fae/file_uploader.rb +1 -1
  16. data/app/uploaders/fae/image_uploader.rb +1 -1
  17. data/app/views/fae/application/_file_uploader.html.slim +4 -1
  18. data/app/views/fae/application/_global_search_results.html.slim +1 -1
  19. data/app/views/fae/application/_header.slim +8 -8
  20. data/app/views/fae/application/_markdown_helper.slim +17 -17
  21. data/app/views/fae/application/_mobilenav.slim +6 -6
  22. data/app/views/fae/application/_user_log.html.slim +2 -2
  23. data/app/views/fae/images/_image_uploader.html.slim +1 -1
  24. data/app/views/fae/options/_form.html.slim +6 -6
  25. data/app/views/fae/pages/activity_log.html.slim +11 -11
  26. data/app/views/fae/pages/disabled_environment.html.slim +2 -2
  27. data/app/views/fae/pages/error404.html.slim +5 -3
  28. data/app/views/fae/pages/home.html.slim +9 -8
  29. data/app/views/fae/setup/first_user.html.slim +3 -3
  30. data/app/views/fae/shared/_form_header.html.slim +3 -3
  31. data/app/views/fae/shared/_index_header.html.slim +3 -2
  32. data/app/views/fae/shared/_nested_table.html.slim +1 -1
  33. data/app/views/fae/shared/_recent_changes.html.slim +6 -6
  34. data/app/views/fae/shared/_shared_nested_table.html.slim +1 -1
  35. data/app/views/fae/static_pages/index.html.slim +2 -2
  36. data/app/views/fae/users/_form.html.slim +8 -12
  37. data/app/views/fae/users/index.html.slim +6 -6
  38. data/config/locales/devise.cs.yml +59 -0
  39. data/config/locales/fae.cs.yml +125 -0
  40. data/config/locales/fae.en.yml +109 -0
  41. data/config/locales/fae.zh-CN.yml +109 -0
  42. data/lib/fae/version.rb +1 -1
  43. data/lib/generators/fae/base_generator.rb +46 -3
  44. data/lib/generators/fae/nested_index_scaffold_generator.rb +1 -0
  45. data/lib/generators/fae/nested_scaffold_generator.rb +1 -0
  46. data/lib/generators/fae/page_generator.rb +8 -0
  47. data/lib/generators/fae/scaffold_generator.rb +1 -0
  48. data/lib/generators/fae/templates/graphql/graphql_page_type.rb +17 -0
  49. data/lib/generators/fae/templates/graphql/graphql_type.rb +13 -0
  50. metadata +9 -5
@@ -1,3 +1,3 @@
1
1
  module Fae
2
- VERSION = '2.0.0'
2
+ VERSION = '2.1.0'
3
3
  end
@@ -9,6 +9,7 @@ module Fae
9
9
  @@attribute_names = []
10
10
  @@association_names = []
11
11
  @@attachments = []
12
+ @@graphql_attributes = []
12
13
  @@has_position = false
13
14
  @@display_field = ''
14
15
 
@@ -28,18 +29,21 @@ module Fae
28
29
  @@attributes_flat << "#{arg.name}:#{arg.type}"
29
30
  end
30
31
 
31
- if arg.name['_id'] || arg.type.to_s == 'references'
32
- @@association_names << arg.name.gsub('_id', '')
32
+ if is_association(arg)
33
+ @@association_names << arg.name.gsub(/_id$/, '')
33
34
  elsif !is_attachment(arg)
34
35
  @@attribute_names << arg.name
35
36
  end
36
37
  @@has_position = true if arg.name === 'position'
38
+
39
+ @@graphql_attributes << graphql_object(arg)
37
40
  end
38
41
 
39
42
  @@attributes_flat = @@attributes_flat.uniq.join(' ')
40
43
  @@association_names.uniq!
41
44
  @@attribute_names.uniq!
42
45
  @@attachments.uniq!
46
+ @@graphql_attributes.uniq!
43
47
  end
44
48
  end
45
49
 
@@ -74,7 +78,7 @@ module Fae
74
78
  end
75
79
 
76
80
  def add_route
77
- inject_into_file "config/routes.rb", after: "namespace :#{options.namespace} do\n" do <<-RUBY
81
+ inject_into_file "config/routes.rb", after: "namespace :#{options.namespace} do\n", force: true do <<-RUBY
78
82
  resources :#{plural_file_name}
79
83
  RUBY
80
84
  end
@@ -148,6 +152,45 @@ RUBY
148
152
  inject_into_file 'app/models/concerns/fae/navigation_concern.rb', line, before: '# scaffold inject marker'
149
153
  end
150
154
 
155
+ def graphql_object(arg)
156
+ if is_association(arg)
157
+ assoc_name = arg.name.gsub(/_id$/, '')
158
+ assoc_type = "Types::#{assoc_name.classify}Type"
159
+ { attr: assoc_name.to_sym, type: assoc_type }
160
+ else
161
+ { attr: arg.name.to_sym, type: graphql_type(arg.type) }
162
+ end
163
+ end
164
+
165
+ def graphql_type(type)
166
+ case type.to_s
167
+ when 'integer'
168
+ 'Integer'
169
+ when 'boolean'
170
+ 'Boolean'
171
+ when 'image'
172
+ 'Types::FaeImageType'
173
+ when 'file'
174
+ 'Types::FaeFileType'
175
+ else
176
+ 'String'
177
+ end
178
+ end
179
+
180
+ def generate_graphql_type
181
+ return unless uses_graphql
182
+ @graphql_attributes = @@graphql_attributes
183
+ template "graphql/graphql_type.rb", "app/graphql/types/#{file_name}_type.rb"
184
+ end
185
+
186
+ def uses_graphql
187
+ defined?(GraphQL)
188
+ end
189
+
190
+ def is_association(arg)
191
+ arg.name.end_with?('_id') || arg.type.to_s == 'references'
192
+ end
193
+
151
194
  def is_attachment(arg)
152
195
  [:image,:file].include?(arg.type)
153
196
  end
@@ -5,6 +5,7 @@ module Fae
5
5
 
6
6
  def go
7
7
  generate_model
8
+ generate_graphql_type
8
9
  generate_nested_index_controller_file
9
10
  generate_view_files
10
11
  add_route
@@ -6,6 +6,7 @@ module Fae
6
6
 
7
7
  def go
8
8
  generate_nested_model_file
9
+ generate_graphql_type
9
10
  generate_nested_controller_file
10
11
  generate_view_files
11
12
  add_route
@@ -11,6 +11,7 @@ module Fae
11
11
  if attributes.present?
12
12
  attributes.each do |attr|
13
13
  @@attributes[attr.name.to_sym] = convert_attr_type(attr.type)
14
+ @@graphql_attributes << graphql_object(attr)
14
15
  end
15
16
  end
16
17
  end
@@ -18,6 +19,7 @@ module Fae
18
19
  def go
19
20
  generate_static_page_controller
20
21
  generate_static_page_model
22
+ generate_graphql_type
21
23
  generate_static_page_view
22
24
  end
23
25
 
@@ -37,6 +39,12 @@ module Fae
37
39
  template "models/pages_model.rb", "app/models/#{file_name}_page.rb"
38
40
  end
39
41
 
42
+ def generate_graphql_type
43
+ return unless uses_graphql
44
+ @graphql_attributes = @@graphql_attributes
45
+ template "graphql/graphql_page_type.rb", "app/graphql/types/#{file_name}_page_type.rb"
46
+ end
47
+
40
48
  def generate_static_page_view
41
49
  @attributes = @@attributes
42
50
  template "views/static_page_form.html.#{options.template}", "app/views/#{options.namespace}/content_blocks/#{file_name}.html.#{options.template}"
@@ -5,6 +5,7 @@ module Fae
5
5
 
6
6
  def go
7
7
  generate_model
8
+ generate_graphql_type
8
9
  generate_controller_file
9
10
  generate_view_files
10
11
  add_route
@@ -0,0 +1,17 @@
1
+ class Types::<%= class_name %>PageType < Types::BaseObject
2
+
3
+ graphql_name '<%= class_name %>Page'
4
+
5
+ field :title, String, null: false
6
+ <% if @graphql_attributes.present? -%>
7
+ <% @graphql_attributes.each do |graphql_object| -%>
8
+ <% if graphql_object[:type]['Types::'] -%>
9
+ field :<%= graphql_object[:attr] %>, <%= graphql_object[:type] %>, null: true
10
+ <% else -%>
11
+ field :<%= graphql_object[:attr] %>, <%= graphql_object[:type] %>,
12
+ null: true,
13
+ method: :<%= graphql_object[:attr] %>_content
14
+ <% end -%>
15
+ <% end -%>
16
+ <% end -%>
17
+ end
@@ -0,0 +1,13 @@
1
+ class Types::<%= class_name %>Type < Types::BaseObject
2
+
3
+ graphql_name '<%= class_name %>'
4
+
5
+ field :id, ID, null: false
6
+ <% if @graphql_attributes.present? -%>
7
+ <% @graphql_attributes.each do |graphql_object| -%>
8
+ field :<%= graphql_object[:attr] %>, <%= graphql_object[:type] %>, null: true
9
+ <% end -%>
10
+ <% end -%>
11
+ field :created_at, String, null: false
12
+ field :updated_at, String, null: false
13
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fae-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - FINE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-10 00:00:00.000000000 Z
11
+ date: 2019-05-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 4.4.3
131
+ version: 4.6.2
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 4.4.3
138
+ version: 4.6.2
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: jquery-ui-rails
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -610,8 +610,10 @@ files:
610
610
  - config/initializers/kaminari_config.rb
611
611
  - config/initializers/simple_form.rb
612
612
  - config/initializers/time_formats.rb
613
+ - config/locales/devise.cs.yml
613
614
  - config/locales/devise.en.yml
614
615
  - config/locales/devise.zh-CN.yml
616
+ - config/locales/fae.cs.yml
615
617
  - config/locales/fae.en.yml
616
618
  - config/locales/fae.zh-CN.yml
617
619
  - config/locales/simple_form.en.yml
@@ -647,6 +649,8 @@ files:
647
649
  - lib/generators/fae/templates/controllers/nested_scaffold_controller.rb
648
650
  - lib/generators/fae/templates/controllers/scaffold_controller.rb
649
651
  - lib/generators/fae/templates/controllers/static_pages_controller.rb
652
+ - lib/generators/fae/templates/graphql/graphql_page_type.rb
653
+ - lib/generators/fae/templates/graphql/graphql_type.rb
650
654
  - lib/generators/fae/templates/initializers/fae.rb
651
655
  - lib/generators/fae/templates/initializers/fae_fine.rb
652
656
  - lib/generators/fae/templates/initializers/judge.rb
@@ -685,7 +689,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
685
689
  version: '0'
686
690
  requirements: []
687
691
  rubyforge_project:
688
- rubygems_version: 2.4.6
692
+ rubygems_version: 2.5.2.3
689
693
  signing_key:
690
694
  specification_version: 4
691
695
  summary: CMS for Rails. For Reals.