godmin 1.2.0 → 1.3.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.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.rubocop.yml +2 -2
- data/.travis.yml +12 -5
- data/Appraisals +7 -0
- data/CHANGELOG.md +18 -2
- data/README.md +3 -3
- data/Rakefile +2 -1
- data/app/assets/javascripts/godmin/batch-actions.js +10 -1
- data/app/views/godmin/resource/_batch_actions.html.erb +1 -1
- data/app/views/godmin/resource/_export_actions.html.erb +2 -2
- data/app/views/godmin/resource/_pagination.html.erb +5 -5
- data/app/views/godmin/resource/_scopes.html.erb +1 -1
- data/app/views/godmin/resource/_table.html.erb +3 -3
- data/app/views/godmin/resource/columns/_actions.html.erb +20 -4
- data/app/views/layouts/godmin/login.html.erb +1 -1
- data/config/locales/en.yml +3 -0
- data/config/locales/pt-BR.yml +3 -0
- data/config/locales/sv.yml +3 -0
- data/gemfiles/rails_4.gemfile +9 -0
- data/gemfiles/rails_5.gemfile +9 -0
- data/godmin.gemspec +19 -18
- data/lib/godmin/application_controller.rb +11 -0
- data/lib/godmin/authorization.rb +1 -1
- data/lib/godmin/helpers/application.rb +9 -2
- data/lib/godmin/helpers/batch_actions.rb +1 -9
- data/lib/godmin/helpers/filters.rb +17 -10
- data/lib/godmin/helpers/forms.rb +3 -1
- data/lib/godmin/helpers/tables.rb +1 -1
- data/lib/godmin/resources/resource_controller/batch_actions.rb +1 -1
- data/lib/godmin/resources/resource_service/batch_actions.rb +14 -0
- data/lib/godmin/version.rb +1 -1
- data/template.rb +4 -24
- data/test/dummy/admin/admin.gemspec +1 -1
- data/test/dummy/app/services/article_service.rb +18 -3
- data/test/dummy/config/environments/test.rb +8 -2
- data/test/dummy/db/schema.rb +0 -1
- data/test/fakes/article_service.rb +1 -1
- data/test/integration/batch_actions_test.rb +30 -1
- data/test/integration/filters_test.rb +15 -0
- data/test/integration/scopes_test.rb +1 -1
- data/test/lib/godmin/helpers/filters_test.rb +32 -6
- data/test/lib/godmin/resources/resource_service/batch_actions_test.rb +1 -1
- metadata +88 -63
- data/test/dummy/admin/Rakefile +0 -24
- data/test/dummy/admin/app/helpers/admin/application_helper.rb +0 -4
- data/test/dummy/app/controllers/concerns/.keep +0 -0
- data/test/dummy/app/helpers/application_helper.rb +0 -2
- data/test/dummy/app/models/concerns/.keep +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
module Godmin
|
2
2
|
module Helpers
|
3
3
|
module Filters
|
4
|
-
def filter_form(url: params)
|
4
|
+
def filter_form(url: params.to_unsafe_h)
|
5
5
|
bootstrap_form_tag url: url, method: :get, layout: :inline, builder: FormBuilders::FilterFormBuilder do |f|
|
6
6
|
yield(f)
|
7
7
|
end
|
@@ -47,7 +47,9 @@ module Godmin
|
|
47
47
|
|
48
48
|
def multiselect_filter_field(name, options, html_options = {})
|
49
49
|
filter_select(
|
50
|
-
name,
|
50
|
+
name, {
|
51
|
+
include_hidden: false
|
52
|
+
}.deep_merge(options), {
|
51
53
|
name: "filter[#{name}][]",
|
52
54
|
multiple: true,
|
53
55
|
data: {
|
@@ -65,7 +67,7 @@ module Godmin
|
|
65
67
|
@template.link_to(
|
66
68
|
@template.translate_scoped("filters.buttons.clear"),
|
67
69
|
@template.url_for(
|
68
|
-
@template.params.slice(:scope, :order)
|
70
|
+
@template.params.to_unsafe_h.slice(:scope, :order)
|
69
71
|
),
|
70
72
|
class: "btn btn-default"
|
71
73
|
)
|
@@ -75,17 +77,22 @@ module Godmin
|
|
75
77
|
|
76
78
|
def filter_select(name, options, html_options)
|
77
79
|
unless options[:collection].is_a? Proc
|
78
|
-
|
80
|
+
raise "A collection proc must be specified for select filters"
|
79
81
|
end
|
80
82
|
|
81
|
-
|
83
|
+
# We need to dup this here because we later delete some properties
|
84
|
+
# from the hash. We should consider adding an additional options
|
85
|
+
# param to separate filter params from select tag params.
|
86
|
+
options = options.dup
|
87
|
+
|
88
|
+
collection = options.delete(:collection).call
|
82
89
|
|
83
90
|
choices =
|
84
91
|
if collection.is_a? ActiveRecord::Relation
|
85
92
|
@template.options_from_collection_for_select(
|
86
93
|
collection,
|
87
|
-
options
|
88
|
-
options
|
94
|
+
options.delete(:option_value),
|
95
|
+
options.delete(:option_text),
|
89
96
|
selected: default_filter_value(name)
|
90
97
|
)
|
91
98
|
else
|
@@ -97,12 +104,12 @@ module Godmin
|
|
97
104
|
|
98
105
|
select(
|
99
106
|
name, choices, {
|
100
|
-
wrapper_class: "filter",
|
101
107
|
label: @template.translate_scoped("filters.labels.#{name}", default: name.to_s.titleize),
|
102
108
|
include_hidden: true,
|
103
109
|
include_blank: true
|
104
|
-
}, {
|
105
|
-
data: { behavior: "select-box" }
|
110
|
+
}.deep_merge(options), {
|
111
|
+
data: { behavior: "select-box" },
|
112
|
+
wrapper_class: "filter"
|
106
113
|
}.deep_merge(html_options)
|
107
114
|
)
|
108
115
|
end
|
data/lib/godmin/helpers/forms.rb
CHANGED
@@ -15,7 +15,7 @@ module Godmin
|
|
15
15
|
else
|
16
16
|
"desc"
|
17
17
|
end
|
18
|
-
link_to @resource_class.human_attribute_name(attribute.to_s), url_for(params.merge(order: "#{attribute}_#{direction}"))
|
18
|
+
link_to @resource_class.human_attribute_name(attribute.to_s), url_for(params.to_unsafe_h.merge(order: "#{attribute}_#{direction}"))
|
19
19
|
else
|
20
20
|
@resource_class.human_attribute_name(attribute.to_s)
|
21
21
|
end
|
@@ -19,6 +19,20 @@ module Godmin
|
|
19
19
|
batch_action_map.key?(action.to_sym)
|
20
20
|
end
|
21
21
|
|
22
|
+
def include_batch_action?(action)
|
23
|
+
options = batch_action_map[action.to_sym]
|
24
|
+
|
25
|
+
(options[:only].nil? && options[:except].nil?) ||
|
26
|
+
(options[:only] && options[:only].include?(scope.to_sym)) ||
|
27
|
+
(options[:except] && !options[:except].include?(scope.to_sym))
|
28
|
+
end
|
29
|
+
|
30
|
+
def include_batch_actions?
|
31
|
+
batch_action_map.keys.any? do |action|
|
32
|
+
include_batch_action?(action)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
22
36
|
module ClassMethods
|
23
37
|
def batch_action_map
|
24
38
|
@batch_action_map ||= {}
|
data/lib/godmin/version.rb
CHANGED
data/template.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require "active_support/all"
|
2
2
|
|
3
3
|
def install_standalone
|
4
|
-
gem "godmin", "
|
4
|
+
gem "godmin", "1.2.0"
|
5
5
|
|
6
6
|
after_bundle do
|
7
7
|
generate_model
|
@@ -9,7 +9,6 @@ def install_standalone
|
|
9
9
|
generate("godmin:resource", "article")
|
10
10
|
generate("godmin:resource", "author")
|
11
11
|
|
12
|
-
modify_menu
|
13
12
|
modify_rakefile
|
14
13
|
modify_routes
|
15
14
|
modify_locales
|
@@ -48,7 +47,6 @@ def install_engine
|
|
48
47
|
END
|
49
48
|
end
|
50
49
|
|
51
|
-
modify_menu("admin")
|
52
50
|
modify_rakefile
|
53
51
|
modify_routes("admin")
|
54
52
|
modify_locales
|
@@ -65,6 +63,8 @@ def generate_model
|
|
65
63
|
generate(:model, "author name:string")
|
66
64
|
generate(:model, "article title:string body:text author:references published:boolean published_at:datetime")
|
67
65
|
|
66
|
+
gsub_file Dir.glob("db/migrate/*_create_articles.rb").first, "t.boolean :published", "t.boolean :published, default: false"
|
67
|
+
|
68
68
|
append_to_file "db/seeds.rb" do
|
69
69
|
<<-END.strip_heredoc
|
70
70
|
def title
|
@@ -98,27 +98,6 @@ def generate_model
|
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
101
|
-
def modify_menu(namespace = nil)
|
102
|
-
navigation_file =
|
103
|
-
if namespace
|
104
|
-
"admin/app/views/admin/shared/_navigation_aside.html.erb"
|
105
|
-
else
|
106
|
-
"app/views/shared/_navigation_aside.html.erb"
|
107
|
-
end
|
108
|
-
|
109
|
-
create_file navigation_file do
|
110
|
-
<<-END.strip_heredoc
|
111
|
-
<%= navbar_dropdown "Take me places" do %>
|
112
|
-
<%= navbar_item "Godmin on Github", "https://github.com/varvet/godmin" %>
|
113
|
-
<%= navbar_item "The source of this page!", "https://github.com/varvet/godmin-sandbox" %>
|
114
|
-
<%= navbar_item "The blog post", "https://www.varvet.se/blog/update/2015/11/13/introducing-godmin-1-0.html" %>
|
115
|
-
<%= navbar_divider %>
|
116
|
-
<%= navbar_item "Please retweet ;)", "https://twitter.com/varvet/status/665092299995676672" %>
|
117
|
-
<% end %>
|
118
|
-
END
|
119
|
-
end
|
120
|
-
end
|
121
|
-
|
122
101
|
def modify_rakefile
|
123
102
|
append_to_file "RakeFile" do
|
124
103
|
<<-END.strip_heredoc
|
@@ -130,6 +109,7 @@ def modify_rakefile
|
|
130
109
|
Rake::Task["db:schema:load"].invoke
|
131
110
|
Rake::Task["db:seed"].invoke
|
132
111
|
end
|
112
|
+
|
133
113
|
desc "Reset the database"
|
134
114
|
task reset: :environment do
|
135
115
|
ActiveRecord::Base.connection.tables.each do |table|
|
@@ -9,8 +9,14 @@ class ArticleService
|
|
9
9
|
resources.joins(:admin_users).order("admin_users.email #{direction}")
|
10
10
|
end
|
11
11
|
|
12
|
+
scope :all
|
12
13
|
scope :unpublished
|
13
14
|
scope :published
|
15
|
+
scope :no_batch_actions
|
16
|
+
|
17
|
+
def scope_all(articles)
|
18
|
+
articles
|
19
|
+
end
|
14
20
|
|
15
21
|
def scope_unpublished(articles)
|
16
22
|
articles.where(published: false)
|
@@ -20,15 +26,24 @@ class ArticleService
|
|
20
26
|
articles.where(published: true)
|
21
27
|
end
|
22
28
|
|
29
|
+
def scope_no_batch_actions(articles)
|
30
|
+
articles
|
31
|
+
end
|
32
|
+
|
23
33
|
filter :title
|
34
|
+
filter :status, as: :select, collection: -> { [["Published", :published], ["Unpublished", :unpublished]] }
|
24
35
|
|
25
36
|
def filter_title(articles, value)
|
26
37
|
articles.where(title: value)
|
27
38
|
end
|
28
39
|
|
29
|
-
|
30
|
-
|
31
|
-
|
40
|
+
def filter_status(articles, value)
|
41
|
+
articles.where(published: value == "published")
|
42
|
+
end
|
43
|
+
|
44
|
+
batch_action :publish, except: [:published, :no_batch_actions]
|
45
|
+
batch_action :unpublish, except: [:unpublished, :no_batch_actions]
|
46
|
+
batch_action :destroy, except: [:no_batch_actions]
|
32
47
|
|
33
48
|
def batch_action_destroy(articles)
|
34
49
|
articles.destroy_all
|
@@ -13,8 +13,14 @@ Dummy::Application.configure do
|
|
13
13
|
config.eager_load = false
|
14
14
|
|
15
15
|
# Configure static asset server for tests with Cache-Control for performance.
|
16
|
-
|
17
|
-
|
16
|
+
case Rails::VERSION::MAJOR
|
17
|
+
when 4
|
18
|
+
config.serve_static_files = true
|
19
|
+
config.static_cache_control = "public, max-age=3600"
|
20
|
+
when 5
|
21
|
+
config.public_file_server.enabled = true
|
22
|
+
config.public_file_server.headers = { "Cache-Control" => "public, max-age=3600" }
|
23
|
+
end
|
18
24
|
|
19
25
|
# Show full error reports and disable caching.
|
20
26
|
config.consider_all_requests_local = true
|
data/test/dummy/db/schema.rb
CHANGED
@@ -17,7 +17,7 @@ module Fakes
|
|
17
17
|
filter :tags, as: :multiselect, collection: %w(Apple Banana)
|
18
18
|
|
19
19
|
batch_action :unpublish
|
20
|
-
batch_action :publish, confirm: true, only: :unpublished, except: :published
|
20
|
+
batch_action :publish, confirm: true, only: [:unpublished], except: [:published]
|
21
21
|
|
22
22
|
def initialize(*)
|
23
23
|
super
|
@@ -26,7 +26,7 @@ class BatchActionsTest < ActionDispatch::IntegrationTest
|
|
26
26
|
|
27
27
|
Article.create! title: "foo"
|
28
28
|
|
29
|
-
visit articles_path
|
29
|
+
visit articles_path(scope: :unpublished)
|
30
30
|
|
31
31
|
all("[data-behavior~=batch-actions-checkbox]").each(&:click)
|
32
32
|
within "#actions" do
|
@@ -39,6 +39,35 @@ class BatchActionsTest < ActionDispatch::IntegrationTest
|
|
39
39
|
Capybara.use_default_driver
|
40
40
|
end
|
41
41
|
|
42
|
+
def test_batch_action_scopes
|
43
|
+
Capybara.current_driver = Capybara.javascript_driver
|
44
|
+
|
45
|
+
Article.create! title: "foo"
|
46
|
+
|
47
|
+
visit articles_path(scope: :unpublished)
|
48
|
+
|
49
|
+
all("[data-behavior~=batch-actions-checkbox]").each(&:click)
|
50
|
+
within "#actions" do
|
51
|
+
assert page.has_content? "Publish"
|
52
|
+
assert page.has_no_content? "Unpublish"
|
53
|
+
end
|
54
|
+
|
55
|
+
Capybara.use_default_driver
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_batch_action_scopes_when_no_batch_actions
|
59
|
+
Capybara.current_driver = Capybara.javascript_driver
|
60
|
+
|
61
|
+
Article.create! title: "foo"
|
62
|
+
|
63
|
+
visit articles_path(scope: :no_batch_actions)
|
64
|
+
|
65
|
+
assert page.has_no_content?("Select all")
|
66
|
+
assert page.has_no_css?("[data-behavior~=batch-actions-checkbox]")
|
67
|
+
|
68
|
+
Capybara.use_default_driver
|
69
|
+
end
|
70
|
+
|
42
71
|
private
|
43
72
|
|
44
73
|
def current_path_with_params
|
@@ -18,4 +18,19 @@ class FiltersTest < ActionDispatch::IntegrationTest
|
|
18
18
|
assert page.has_content? "foo"
|
19
19
|
assert page.has_content? "bar"
|
20
20
|
end
|
21
|
+
|
22
|
+
def test_select_filter
|
23
|
+
Article.create! title: "foo", published: true
|
24
|
+
Article.create! title: "bar"
|
25
|
+
|
26
|
+
visit articles_path
|
27
|
+
|
28
|
+
within "#filters" do
|
29
|
+
find("select").select("Published")
|
30
|
+
end
|
31
|
+
click_button "Filter"
|
32
|
+
assert_equal 200, page.status_code
|
33
|
+
assert page.has_content? "foo"
|
34
|
+
assert page.has_no_content? "bar"
|
35
|
+
end
|
21
36
|
end
|
@@ -6,7 +6,7 @@ class ScopesTest < ActionDispatch::IntegrationTest
|
|
6
6
|
Article.create! title: "bar"
|
7
7
|
Article.create! title: "baz", published: true
|
8
8
|
|
9
|
-
visit articles_path
|
9
|
+
visit articles_path(scope: :unpublished)
|
10
10
|
|
11
11
|
assert page.has_content? "foo"
|
12
12
|
assert page.has_content? "bar"
|
@@ -13,13 +13,39 @@ module Godmin
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
def test_string_filter_field
|
20
|
-
form = filter_form url: "/" do |f|
|
21
|
-
f.filter_field :foo, as: :string
|
16
|
+
def test_filter_field_as_string
|
17
|
+
@output_buffer = filter_form url: "/" do |f|
|
18
|
+
f.filter_field :foo, { as: :string }, value: "Foobar"
|
22
19
|
end
|
20
|
+
|
21
|
+
assert_select "label[for=foo]", 1, "No label was found"
|
22
|
+
assert_select "input[type=text][name=?]", "filter[foo]", 1, "No text input found with name foo" do |element|
|
23
|
+
assert_equal "Foo", element.attr("placeholder").text
|
24
|
+
assert_equal "Foobar", element.attr("value").text
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_filter_field_as_select
|
29
|
+
@output_buffer = filter_form url: "/" do |f|
|
30
|
+
f.filter_field :foo, as: :select, collection: -> { %w(Foo Bar) }
|
31
|
+
end
|
32
|
+
|
33
|
+
assert_select "label[for=foo]", 1, "No label was found"
|
34
|
+
assert_select "select[name=?]", "filter[foo]", 1, "No select found with name foo" do
|
35
|
+
assert_select "option", 3
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_filter_field_as_multiselect
|
40
|
+
@output_buffer = filter_form url: "/" do |f|
|
41
|
+
f.filter_field :foo, as: :multiselect, collection: -> { %w(Foo Bar) }
|
42
|
+
end
|
43
|
+
|
44
|
+
assert_select "label[for=foo]", 1, "No label was found"
|
45
|
+
assert_select "select[name=?]", "filter[foo][]", 1, "No select found with name foo" do
|
46
|
+
assert_select "option", 3
|
47
|
+
end
|
48
|
+
assert_select "input[type=hidden][name=?]", "filter[foo][]", 0
|
23
49
|
end
|
24
50
|
end
|
25
51
|
end
|
@@ -31,7 +31,7 @@ module Godmin
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def test_batch_action_map_with_custom_options
|
34
|
-
expected_batch_action_map = { only: :unpublished, except: :published, confirm: true }
|
34
|
+
expected_batch_action_map = { only: [:unpublished], except: [:published], confirm: true }
|
35
35
|
assert_equal expected_batch_action_map, @article_service.batch_action_map[:publish]
|
36
36
|
end
|
37
37
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: godmin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jens Ljungblad
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-07-11 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bcrypt
|
@@ -18,42 +18,42 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 3.1
|
21
|
+
version: '3.1'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 3.1
|
28
|
+
version: '3.1'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
|
-
name:
|
30
|
+
name: bootstrap_form
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
35
|
+
version: '2.4'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
42
|
+
version: '2.4'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
|
-
name:
|
44
|
+
name: bootstrap-sass
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
49
|
+
version: '3.3'
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
56
|
+
version: '3.3'
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: coffee-rails
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
@@ -63,7 +63,7 @@ dependencies:
|
|
63
63
|
version: '4.0'
|
64
64
|
- - "<"
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: '
|
66
|
+
version: '6.0'
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
69
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -73,21 +73,21 @@ dependencies:
|
|
73
73
|
version: '4.0'
|
74
74
|
- - "<"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
76
|
+
version: '6.0'
|
77
77
|
- !ruby/object:Gem::Dependency
|
78
78
|
name: csv_builder
|
79
79
|
requirement: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: 2.1
|
83
|
+
version: '2.1'
|
84
84
|
type: :runtime
|
85
85
|
prerelease: false
|
86
86
|
version_requirements: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
88
|
- - "~>"
|
89
89
|
- !ruby/object:Gem::Version
|
90
|
-
version: 2.1
|
90
|
+
version: '2.1'
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: jquery-rails
|
93
93
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,6 +95,9 @@ dependencies:
|
|
95
95
|
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '3.0'
|
98
|
+
- - "<"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '5.0'
|
98
101
|
type: :runtime
|
99
102
|
prerelease: false
|
100
103
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -102,34 +105,43 @@ dependencies:
|
|
102
105
|
- - ">="
|
103
106
|
- !ruby/object:Gem::Version
|
104
107
|
version: '3.0'
|
108
|
+
- - "<"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '5.0'
|
105
111
|
- !ruby/object:Gem::Dependency
|
106
112
|
name: momentjs-rails
|
107
113
|
requirement: !ruby/object:Gem::Requirement
|
108
114
|
requirements:
|
109
|
-
- - "
|
115
|
+
- - "~>"
|
110
116
|
- !ruby/object:Gem::Version
|
111
|
-
version: 2.8
|
117
|
+
version: '2.8'
|
112
118
|
type: :runtime
|
113
119
|
prerelease: false
|
114
120
|
version_requirements: !ruby/object:Gem::Requirement
|
115
121
|
requirements:
|
116
|
-
- - "
|
122
|
+
- - "~>"
|
117
123
|
- !ruby/object:Gem::Version
|
118
|
-
version: 2.8
|
124
|
+
version: '2.8'
|
119
125
|
- !ruby/object:Gem::Dependency
|
120
126
|
name: rails
|
121
127
|
requirement: !ruby/object:Gem::Requirement
|
122
128
|
requirements:
|
123
|
-
- - "
|
129
|
+
- - ">="
|
124
130
|
- !ruby/object:Gem::Version
|
125
131
|
version: '4.0'
|
132
|
+
- - "<"
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: '6.0'
|
126
135
|
type: :runtime
|
127
136
|
prerelease: false
|
128
137
|
version_requirements: !ruby/object:Gem::Requirement
|
129
138
|
requirements:
|
130
|
-
- - "
|
139
|
+
- - ">="
|
131
140
|
- !ruby/object:Gem::Version
|
132
141
|
version: '4.0'
|
142
|
+
- - "<"
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '6.0'
|
133
145
|
- !ruby/object:Gem::Dependency
|
134
146
|
name: sass-rails
|
135
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -137,6 +149,9 @@ dependencies:
|
|
137
149
|
- - ">="
|
138
150
|
- !ruby/object:Gem::Version
|
139
151
|
version: '4.0'
|
152
|
+
- - "<"
|
153
|
+
- !ruby/object:Gem::Version
|
154
|
+
version: '6.0'
|
140
155
|
type: :runtime
|
141
156
|
prerelease: false
|
142
157
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -144,119 +159,137 @@ dependencies:
|
|
144
159
|
- - ">="
|
145
160
|
- !ruby/object:Gem::Version
|
146
161
|
version: '4.0'
|
162
|
+
- - "<"
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '6.0'
|
147
165
|
- !ruby/object:Gem::Dependency
|
148
166
|
name: selectize-rails
|
149
167
|
requirement: !ruby/object:Gem::Requirement
|
150
168
|
requirements:
|
151
169
|
- - "~>"
|
152
170
|
- !ruby/object:Gem::Version
|
153
|
-
version: 0.12
|
171
|
+
version: '0.12'
|
154
172
|
type: :runtime
|
155
173
|
prerelease: false
|
156
174
|
version_requirements: !ruby/object:Gem::Requirement
|
157
175
|
requirements:
|
158
176
|
- - "~>"
|
159
177
|
- !ruby/object:Gem::Version
|
160
|
-
version: 0.12
|
178
|
+
version: '0.12'
|
179
|
+
- !ruby/object:Gem::Dependency
|
180
|
+
name: appraisal
|
181
|
+
requirement: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - "~>"
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '2.1'
|
186
|
+
type: :development
|
187
|
+
prerelease: false
|
188
|
+
version_requirements: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - "~>"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '2.1'
|
161
193
|
- !ruby/object:Gem::Dependency
|
162
194
|
name: capybara
|
163
195
|
requirement: !ruby/object:Gem::Requirement
|
164
196
|
requirements:
|
165
|
-
- - "
|
197
|
+
- - "~>"
|
166
198
|
- !ruby/object:Gem::Version
|
167
|
-
version: '
|
199
|
+
version: '2.4'
|
168
200
|
type: :development
|
169
201
|
prerelease: false
|
170
202
|
version_requirements: !ruby/object:Gem::Requirement
|
171
203
|
requirements:
|
172
|
-
- - "
|
204
|
+
- - "~>"
|
173
205
|
- !ruby/object:Gem::Version
|
174
|
-
version: '
|
206
|
+
version: '2.4'
|
175
207
|
- !ruby/object:Gem::Dependency
|
176
208
|
name: m
|
177
209
|
requirement: !ruby/object:Gem::Requirement
|
178
210
|
requirements:
|
179
|
-
- - "
|
211
|
+
- - "~>"
|
180
212
|
- !ruby/object:Gem::Version
|
181
|
-
version: '
|
213
|
+
version: '1.3'
|
182
214
|
type: :development
|
183
215
|
prerelease: false
|
184
216
|
version_requirements: !ruby/object:Gem::Requirement
|
185
217
|
requirements:
|
186
|
-
- - "
|
218
|
+
- - "~>"
|
187
219
|
- !ruby/object:Gem::Version
|
188
|
-
version: '
|
220
|
+
version: '1.3'
|
189
221
|
- !ruby/object:Gem::Dependency
|
190
222
|
name: minitest-reporters
|
191
223
|
requirement: !ruby/object:Gem::Requirement
|
192
224
|
requirements:
|
193
|
-
- - "
|
225
|
+
- - "~>"
|
194
226
|
- !ruby/object:Gem::Version
|
195
|
-
version: '0'
|
227
|
+
version: '1.0'
|
196
228
|
type: :development
|
197
229
|
prerelease: false
|
198
230
|
version_requirements: !ruby/object:Gem::Requirement
|
199
231
|
requirements:
|
200
|
-
- - "
|
232
|
+
- - "~>"
|
201
233
|
- !ruby/object:Gem::Version
|
202
|
-
version: '0'
|
234
|
+
version: '1.0'
|
203
235
|
- !ruby/object:Gem::Dependency
|
204
236
|
name: minitest
|
205
237
|
requirement: !ruby/object:Gem::Requirement
|
206
238
|
requirements:
|
207
|
-
- - "
|
239
|
+
- - "~>"
|
208
240
|
- !ruby/object:Gem::Version
|
209
|
-
version: '
|
241
|
+
version: '5.5'
|
210
242
|
type: :development
|
211
243
|
prerelease: false
|
212
244
|
version_requirements: !ruby/object:Gem::Requirement
|
213
245
|
requirements:
|
214
|
-
- - "
|
246
|
+
- - "~>"
|
215
247
|
- !ruby/object:Gem::Version
|
216
|
-
version: '
|
248
|
+
version: '5.5'
|
217
249
|
- !ruby/object:Gem::Dependency
|
218
250
|
name: poltergeist
|
219
251
|
requirement: !ruby/object:Gem::Requirement
|
220
252
|
requirements:
|
221
|
-
- - "
|
253
|
+
- - "~>"
|
222
254
|
- !ruby/object:Gem::Version
|
223
|
-
version: '
|
255
|
+
version: '1.7'
|
224
256
|
type: :development
|
225
257
|
prerelease: false
|
226
258
|
version_requirements: !ruby/object:Gem::Requirement
|
227
259
|
requirements:
|
228
|
-
- - "
|
260
|
+
- - "~>"
|
229
261
|
- !ruby/object:Gem::Version
|
230
|
-
version: '
|
262
|
+
version: '1.7'
|
231
263
|
- !ruby/object:Gem::Dependency
|
232
264
|
name: pry
|
233
265
|
requirement: !ruby/object:Gem::Requirement
|
234
266
|
requirements:
|
235
|
-
- - "
|
267
|
+
- - "~>"
|
236
268
|
- !ruby/object:Gem::Version
|
237
|
-
version: '0'
|
269
|
+
version: '0.10'
|
238
270
|
type: :development
|
239
271
|
prerelease: false
|
240
272
|
version_requirements: !ruby/object:Gem::Requirement
|
241
273
|
requirements:
|
242
|
-
- - "
|
274
|
+
- - "~>"
|
243
275
|
- !ruby/object:Gem::Version
|
244
|
-
version: '0'
|
276
|
+
version: '0.10'
|
245
277
|
- !ruby/object:Gem::Dependency
|
246
278
|
name: sqlite3
|
247
279
|
requirement: !ruby/object:Gem::Requirement
|
248
280
|
requirements:
|
249
|
-
- - "
|
281
|
+
- - "~>"
|
250
282
|
- !ruby/object:Gem::Version
|
251
|
-
version: '
|
283
|
+
version: '1.3'
|
252
284
|
type: :development
|
253
285
|
prerelease: false
|
254
286
|
version_requirements: !ruby/object:Gem::Requirement
|
255
287
|
requirements:
|
256
|
-
- - "
|
288
|
+
- - "~>"
|
257
289
|
- !ruby/object:Gem::Version
|
258
|
-
version: '
|
259
|
-
description: Godmin is an admin framework for Rails 4
|
290
|
+
version: '1.3'
|
291
|
+
description: Godmin is an admin framework for Rails 4+. Use it to build dedicated
|
292
|
+
admin sections for your apps, or stand alone admin apps such as internal tools.
|
260
293
|
email:
|
261
294
|
- info@varvet.se
|
262
295
|
executables: []
|
@@ -267,6 +300,7 @@ files:
|
|
267
300
|
- ".gitignore"
|
268
301
|
- ".rubocop.yml"
|
269
302
|
- ".travis.yml"
|
303
|
+
- Appraisals
|
270
304
|
- CHANGELOG.md
|
271
305
|
- CODE_OF_CONDUCT.md
|
272
306
|
- Gemfile
|
@@ -311,6 +345,8 @@ files:
|
|
311
345
|
- config/locales/pt-BR.yml
|
312
346
|
- config/locales/sv.yml
|
313
347
|
- config/routes.rb
|
348
|
+
- gemfiles/rails_4.gemfile
|
349
|
+
- gemfiles/rails_5.gemfile
|
314
350
|
- godmin.gemspec
|
315
351
|
- lib/generators/godmin/authentication/authentication_generator.rb
|
316
352
|
- lib/generators/godmin/authentication/templates/sessions_controller.rb
|
@@ -354,13 +390,11 @@ files:
|
|
354
390
|
- screenshot.png
|
355
391
|
- template.rb
|
356
392
|
- test/dummy/Rakefile
|
357
|
-
- test/dummy/admin/Rakefile
|
358
393
|
- test/dummy/admin/admin.gemspec
|
359
394
|
- test/dummy/admin/app/assets/javascripts/admin/application.js
|
360
395
|
- test/dummy/admin/app/assets/stylesheets/admin/application.css
|
361
396
|
- test/dummy/admin/app/controllers/admin/application_controller.rb
|
362
397
|
- test/dummy/admin/app/controllers/admin/articles_controller.rb
|
363
|
-
- test/dummy/admin/app/helpers/admin/application_helper.rb
|
364
398
|
- test/dummy/admin/app/services/admin/article_service.rb
|
365
399
|
- test/dummy/admin/app/views/admin/articles/.keep
|
366
400
|
- test/dummy/admin/app/views/admin/articles/columns/.keep
|
@@ -380,13 +414,10 @@ files:
|
|
380
414
|
- test/dummy/app/controllers/articles_controller.rb
|
381
415
|
- test/dummy/app/controllers/authenticated_articles_controller.rb
|
382
416
|
- test/dummy/app/controllers/authorized_articles_controller.rb
|
383
|
-
- test/dummy/app/controllers/concerns/.keep
|
384
417
|
- test/dummy/app/controllers/sessions_controller.rb
|
385
|
-
- test/dummy/app/helpers/application_helper.rb
|
386
418
|
- test/dummy/app/models/.keep
|
387
419
|
- test/dummy/app/models/admin_user.rb
|
388
420
|
- test/dummy/app/models/article.rb
|
389
|
-
- test/dummy/app/models/concerns/.keep
|
390
421
|
- test/dummy/app/policies/article_policy.rb
|
391
422
|
- test/dummy/app/services/article_service.rb
|
392
423
|
- test/dummy/app/views/articles/.keep
|
@@ -471,19 +502,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
471
502
|
version: '0'
|
472
503
|
requirements: []
|
473
504
|
rubyforge_project:
|
474
|
-
rubygems_version: 2.
|
505
|
+
rubygems_version: 2.4.5
|
475
506
|
signing_key:
|
476
507
|
specification_version: 4
|
477
508
|
summary: Godmin is an admin framework for Rails 4+
|
478
509
|
test_files:
|
479
510
|
- test/dummy/Rakefile
|
480
|
-
- test/dummy/admin/Rakefile
|
481
511
|
- test/dummy/admin/admin.gemspec
|
482
512
|
- test/dummy/admin/app/assets/javascripts/admin/application.js
|
483
513
|
- test/dummy/admin/app/assets/stylesheets/admin/application.css
|
484
514
|
- test/dummy/admin/app/controllers/admin/application_controller.rb
|
485
515
|
- test/dummy/admin/app/controllers/admin/articles_controller.rb
|
486
|
-
- test/dummy/admin/app/helpers/admin/application_helper.rb
|
487
516
|
- test/dummy/admin/app/services/admin/article_service.rb
|
488
517
|
- test/dummy/admin/app/views/admin/articles/.keep
|
489
518
|
- test/dummy/admin/app/views/admin/articles/columns/.keep
|
@@ -503,13 +532,10 @@ test_files:
|
|
503
532
|
- test/dummy/app/controllers/articles_controller.rb
|
504
533
|
- test/dummy/app/controllers/authenticated_articles_controller.rb
|
505
534
|
- test/dummy/app/controllers/authorized_articles_controller.rb
|
506
|
-
- test/dummy/app/controllers/concerns/.keep
|
507
535
|
- test/dummy/app/controllers/sessions_controller.rb
|
508
|
-
- test/dummy/app/helpers/application_helper.rb
|
509
536
|
- test/dummy/app/models/.keep
|
510
537
|
- test/dummy/app/models/admin_user.rb
|
511
538
|
- test/dummy/app/models/article.rb
|
512
|
-
- test/dummy/app/models/concerns/.keep
|
513
539
|
- test/dummy/app/policies/article_policy.rb
|
514
540
|
- test/dummy/app/services/article_service.rb
|
515
541
|
- test/dummy/app/views/articles/.keep
|
@@ -572,4 +598,3 @@ test_files:
|
|
572
598
|
- test/lib/godmin/resources/resource_service/scopes_test.rb
|
573
599
|
- test/lib/godmin/resources/resource_service_test.rb
|
574
600
|
- test/test_helper.rb
|
575
|
-
has_rdoc:
|