alchemy_cms 3.1.0.beta3 → 3.1.0.beta4
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/.travis.yml +1 -1
- data/README.md +54 -58
- data/alchemy_cms.gemspec +25 -25
- data/app/controllers/alchemy/admin/base_controller.rb +5 -0
- data/app/controllers/alchemy/admin/dashboard_controller.rb +3 -5
- data/app/controllers/alchemy/admin/resources_controller.rb +1 -1
- data/app/controllers/alchemy/base_controller.rb +9 -9
- data/app/controllers/alchemy/pages_controller.rb +1 -1
- data/app/views/alchemy/{base → admin}/leave.html.erb +0 -0
- data/config/initializers/simple_form.rb +1 -1
- data/config/routes.rb +1 -1
- data/lib/alchemy/auth_accessors.rb +25 -4
- data/lib/alchemy/engine.rb +0 -3
- data/lib/alchemy/permissions.rb +1 -0
- data/lib/alchemy/resource.rb +10 -1
- data/lib/alchemy/upgrader/three_point_one.rb +13 -1
- data/lib/alchemy/version.rb +1 -1
- data/spec/controllers/admin/dashboard_controller_spec.rb +0 -1
- data/spec/controllers/admin/resources_controller_spec.rb +16 -0
- data/spec/features/admin/navigation_feature_spec.rb +13 -0
- data/spec/features/security_spec.rb +14 -2
- data/spec/libraries/auth_accessors_spec.rb +18 -4
- data/spec/libraries/permissions_spec.rb +4 -0
- data/spec/libraries/resource_spec.rb +6 -0
- data/spec/models/element_spec.rb +15 -5
- data/spec/spec_helper.rb +1 -0
- metadata +106 -104
File without changes
|
@@ -100,7 +100,7 @@ SimpleForm.setup do |config|
|
|
100
100
|
config.label_class = 'control-label'
|
101
101
|
|
102
102
|
# You can define the class to use on all forms. Default is simple_form.
|
103
|
-
config.
|
103
|
+
config.default_form_class = nil
|
104
104
|
|
105
105
|
# You can define which elements should obtain additional classes
|
106
106
|
# config.generate_additional_classes_for = [:wrapper, :label, :input]
|
data/config/routes.rb
CHANGED
@@ -30,7 +30,7 @@ Alchemy::Engine.routes.draw do
|
|
30
30
|
get "/pictures/:id/thumbnails/:size(/:crop)(/:crop_from/:crop_size)/:name.:format" => 'pictures#thumbnail',
|
31
31
|
:as => :thumbnail, :defaults => {:format => 'png', :name => "thumbnail"}
|
32
32
|
|
33
|
-
get '/admin/leave' => 'base#leave', :as => :leave_admin
|
33
|
+
get '/admin/leave' => 'admin/base#leave', :as => :leave_admin
|
34
34
|
|
35
35
|
resources :messages, :only => [:index, :new, :create]
|
36
36
|
resources :elements, :only => :show
|
@@ -3,19 +3,22 @@
|
|
3
3
|
# Alchemy has some defaults for user model name and login logout path names:
|
4
4
|
#
|
5
5
|
# +Alchemy.user_class_name+ defaults to +'User'+
|
6
|
+
# +Alchemy.signup_path defaults to +'/signup'+
|
6
7
|
# +Alchemy.login_path defaults to +'/login'+
|
7
8
|
# +Alchemy.logout_path defaults to +'/logout'+
|
8
9
|
#
|
9
10
|
# Anyway, you can tell Alchemy about your authentication model configuration:
|
10
11
|
#
|
11
12
|
# 1. Your user class name - @see: Alchemy.user_class
|
12
|
-
# 2. The path to the
|
13
|
-
# 3. The path to the
|
13
|
+
# 2. The path to the signup form - @see: Alchemy.signup_path
|
14
|
+
# 3. The path to the login form - @see: Alchemy.login_path
|
15
|
+
# 4. The path to the logout method - @see: Alchemy.logout_path
|
14
16
|
#
|
15
17
|
# == Example
|
16
18
|
#
|
17
19
|
# # config/initializers/alchemy.rb
|
18
20
|
# Alchemy.user_class_name = 'Admin'
|
21
|
+
# Alchemy.signup_path = '/auth/signup'
|
19
22
|
# Alchemy.login_path = '/auth/login'
|
20
23
|
# Alchemy.logout_path = '/auth/logout'
|
21
24
|
#
|
@@ -29,12 +32,17 @@
|
|
29
32
|
# Alchemy.register_ability MyCustom::Ability
|
30
33
|
#
|
31
34
|
module Alchemy
|
32
|
-
mattr_accessor :user_class_name,
|
35
|
+
mattr_accessor :user_class_name,
|
36
|
+
:current_user_method,
|
37
|
+
:signup_path,
|
38
|
+
:login_path,
|
39
|
+
:logout_path
|
33
40
|
|
34
41
|
# Defaults
|
35
42
|
#
|
36
43
|
@@user_class_name = 'User'
|
37
44
|
@@current_user_method = 'current_user'
|
45
|
+
@@signup_path = '/signup'
|
38
46
|
@@login_path = '/login'
|
39
47
|
@@logout_path = '/logout'
|
40
48
|
|
@@ -57,6 +65,20 @@ module Alchemy
|
|
57
65
|
raise 'Alchemy.user_class_name must be a String, not a Class.'
|
58
66
|
end
|
59
67
|
end
|
68
|
+
rescue NameError => e
|
69
|
+
if e.message.match(/#{Regexp.escape(@@user_class_name)}/)
|
70
|
+
abort <<-MSG
|
71
|
+
|
72
|
+
AlchemyCMS cannot find any user class!
|
73
|
+
|
74
|
+
Please add a user class and tell Alchemy about it or, if you don't want
|
75
|
+
to create your own class, add the `alchemy-devise` gem to your Gemfile.
|
76
|
+
|
77
|
+
gem 'alchemy-devise', '~> 2.1.0'
|
78
|
+
MSG
|
79
|
+
else
|
80
|
+
raise e
|
81
|
+
end
|
60
82
|
end
|
61
83
|
|
62
84
|
# Register a CanCan Ability class
|
@@ -71,5 +93,4 @@ module Alchemy
|
|
71
93
|
def self.registered_abilities
|
72
94
|
@abilities ||= []
|
73
95
|
end
|
74
|
-
|
75
96
|
end
|
data/lib/alchemy/engine.rb
CHANGED
@@ -96,9 +96,6 @@ module Alchemy
|
|
96
96
|
|
97
97
|
config.after_initialize do
|
98
98
|
require_relative './userstamp'
|
99
|
-
# In order to have Alchemy's helpers and basic controller methods
|
100
|
-
# available in the host app, we patch the ApplicationController.
|
101
|
-
ApplicationController.send(:include, Alchemy::ControllerActions)
|
102
99
|
end
|
103
100
|
end
|
104
101
|
end
|
data/lib/alchemy/permissions.rb
CHANGED
data/lib/alchemy/resource.rb
CHANGED
@@ -118,6 +118,15 @@ module Alchemy
|
|
118
118
|
namespace_array
|
119
119
|
end
|
120
120
|
|
121
|
+
# Returns an array of underscored association names
|
122
|
+
#
|
123
|
+
def model_association_names
|
124
|
+
return unless model_associations
|
125
|
+
model_associations.map do |assoc|
|
126
|
+
assoc.name.to_sym
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
121
130
|
def attributes
|
122
131
|
@_attributes ||= self.model.columns.collect do |col|
|
123
132
|
unless self.skipped_attributes.include?(col.name)
|
@@ -135,7 +144,7 @@ module Alchemy
|
|
135
144
|
# For now it only uses string type columns
|
136
145
|
#
|
137
146
|
def searchable_attributes
|
138
|
-
self.attributes.select { |a| a[:type] == :string }
|
147
|
+
self.attributes.select { |a| a[:type].to_sym == :string }
|
139
148
|
end
|
140
149
|
|
141
150
|
def in_engine?
|
@@ -1,5 +1,6 @@
|
|
1
1
|
module Alchemy
|
2
2
|
module Upgrader::ThreePointOne
|
3
|
+
|
3
4
|
private
|
4
5
|
|
5
6
|
def alchemy_3_1_todos
|
@@ -35,9 +36,20 @@ using 'toolbarN' syntax. Please update your TinyMCE configuration.
|
|
35
36
|
|
36
37
|
Visit http://www.tinymce.com/wiki.php/Configuration:toolbar for more information.
|
37
38
|
|
39
|
+
|
40
|
+
ApplicationController patch removed
|
41
|
+
-----------------------------------
|
42
|
+
|
43
|
+
If you have controllers that loads Alchemy content or uses Alchemy helpers in
|
44
|
+
the views (i.e. `render_navigation` or `render_elements`) you should
|
45
|
+
|
46
|
+
include Alchemy::ControllerActions
|
47
|
+
|
48
|
+
in these controllers.
|
49
|
+
|
50
|
+
|
38
51
|
NOTE
|
39
52
|
todo notice, 'Alchemy v3.1 changes'
|
40
53
|
end
|
41
|
-
|
42
54
|
end
|
43
55
|
end
|
data/lib/alchemy/version.rb
CHANGED
@@ -32,6 +32,22 @@ describe EventsController do
|
|
32
32
|
expect(assigns(:events)).to include(peter)
|
33
33
|
expect(assigns(:events)).not_to include(lustig)
|
34
34
|
end
|
35
|
+
|
36
|
+
context "but searching for record with certain association" do
|
37
|
+
let(:bauwagen) { Location.create(name: 'Bauwagen') }
|
38
|
+
let(:params) { {query: 'Bauwagen'} }
|
39
|
+
|
40
|
+
before do
|
41
|
+
peter.location = bauwagen
|
42
|
+
peter.save
|
43
|
+
end
|
44
|
+
|
45
|
+
it "returns only matching records" do
|
46
|
+
get :index, params
|
47
|
+
expect(assigns(:events)).to include(peter)
|
48
|
+
expect(assigns(:events)).not_to include(lustig)
|
49
|
+
end
|
50
|
+
end
|
35
51
|
end
|
36
52
|
end
|
37
53
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Admin navigation feature' do
|
4
|
+
|
5
|
+
context 'admin users' do
|
6
|
+
before { authorize_as_admin }
|
7
|
+
|
8
|
+
it "can leave the admin area" do
|
9
|
+
visit ('/admin/leave')
|
10
|
+
expect(page).to have_content('You are about to leave Alchemy')
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -1,12 +1,24 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe "Security." do
|
4
|
-
before { Alchemy::Page.root.children.destroy_all }
|
5
|
-
|
6
4
|
context "If user is not logged in" do
|
7
5
|
it "should see login form" do
|
8
6
|
visit '/admin/dashboard'
|
9
7
|
expect(current_path).to eq(Alchemy.login_path)
|
10
8
|
end
|
11
9
|
end
|
10
|
+
|
11
|
+
context "If ssl is enforced" do
|
12
|
+
before do
|
13
|
+
allow_any_instance_of(Alchemy::BaseController)
|
14
|
+
.to receive(:ssl_required?)
|
15
|
+
.and_return(true)
|
16
|
+
authorize_as_admin(DummyUser.new(alchemy_roles: %w(admin)))
|
17
|
+
end
|
18
|
+
|
19
|
+
it "redirects every request to https." do
|
20
|
+
visit '/admin/dashboard'
|
21
|
+
expect(current_url).to eq('https://www.example.com/admin/dashboard')
|
22
|
+
end
|
23
|
+
end
|
12
24
|
end
|
@@ -6,19 +6,33 @@ module Alchemy
|
|
6
6
|
|
7
7
|
describe 'AuthAccessors' do
|
8
8
|
describe '.user_class' do
|
9
|
-
before
|
9
|
+
before do
|
10
10
|
# prevent memoization
|
11
11
|
Alchemy.class_variable_set('@@user_class', nil)
|
12
|
-
|
12
|
+
end
|
13
13
|
|
14
14
|
it "raises error if user_class_name is not a String" do
|
15
15
|
Alchemy.user_class_name = MyCustomUser
|
16
16
|
expect {Alchemy.user_class }.to raise_error
|
17
17
|
end
|
18
18
|
|
19
|
-
after
|
19
|
+
after do
|
20
20
|
Alchemy.user_class_name = 'DummyUser'
|
21
|
-
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'defaults' do
|
25
|
+
it 'has default value for Alchemy.signup_path' do
|
26
|
+
expect(Alchemy.signup_path).to eq('/signup')
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'has default value for Alchemy.login_path' do
|
30
|
+
expect(Alchemy.login_path).to eq('/login')
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'has default value for Alchemy.logout_path' do
|
34
|
+
expect(Alchemy.logout_path).to eq('/logout')
|
35
|
+
end
|
22
36
|
end
|
23
37
|
end
|
24
38
|
end
|
@@ -127,6 +127,10 @@ describe Alchemy::Permissions do
|
|
127
127
|
context "An author" do
|
128
128
|
let(:user) { author_user }
|
129
129
|
|
130
|
+
it "can leave the admin area" do
|
131
|
+
is_expected.to be_able_to(:leave, :alchemy_admin)
|
132
|
+
end
|
133
|
+
|
130
134
|
it "can visit the dashboard" do
|
131
135
|
is_expected.to be_able_to(:index, :alchemy_admin_dashboard)
|
132
136
|
is_expected.to be_able_to(:info, :alchemy_admin_dashboard)
|
@@ -306,6 +306,12 @@ module Alchemy
|
|
306
306
|
end
|
307
307
|
end
|
308
308
|
|
309
|
+
describe '#model_association_names' do
|
310
|
+
it 'returns an array of association names' do
|
311
|
+
expect(resource.model_association_names).to eq [:location]
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
309
315
|
describe '#attributes' do
|
310
316
|
it "contains the attribute of the related model" do
|
311
317
|
expect(resource.attributes.detect { |a| a[:name] == 'location_id' }.keys).to include(:relation)
|
data/spec/models/element_spec.rb
CHANGED
@@ -244,11 +244,22 @@ module Alchemy
|
|
244
244
|
|
245
245
|
describe '#essence_error_messages' do
|
246
246
|
let(:element) { Element.new(name: 'article') }
|
247
|
+
|
247
248
|
it "should return the translation with the translated content label" do
|
248
|
-
I18n.
|
249
|
-
|
250
|
-
|
251
|
-
|
249
|
+
expect(I18n).to receive(:t)
|
250
|
+
.with('content_names.content', default: 'Content')
|
251
|
+
.and_return('Content')
|
252
|
+
expect(I18n).to receive(:t)
|
253
|
+
.with('content', scope: "content_names.article", default: 'Content')
|
254
|
+
.and_return('Contenido')
|
255
|
+
expect(I18n).to receive(:t)
|
256
|
+
.with('article.content.invalid', {
|
257
|
+
scope: "content_validations",
|
258
|
+
default: [:"fields.content.invalid", :"errors.invalid"],
|
259
|
+
field: "Contenido"})
|
260
|
+
expect(element).to receive(:essence_errors)
|
261
|
+
.and_return({'content' => [:invalid]})
|
262
|
+
|
252
263
|
element.essence_error_messages
|
253
264
|
end
|
254
265
|
end
|
@@ -554,6 +565,5 @@ module Alchemy
|
|
554
565
|
it_behaves_like "having a hint" do
|
555
566
|
let(:subject) { Element.new }
|
556
567
|
end
|
557
|
-
|
558
568
|
end
|
559
569
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -50,6 +50,7 @@ Capybara.ignore_hidden_elements = false
|
|
50
50
|
|
51
51
|
RSpec.configure do |config|
|
52
52
|
config.infer_spec_type_from_file_location!
|
53
|
+
config.raise_errors_for_deprecations!
|
53
54
|
config.run_all_when_everything_filtered = true
|
54
55
|
config.filter_run :focus
|
55
56
|
config.include Alchemy::Engine.routes.url_helpers
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alchemy_cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.0.
|
4
|
+
version: 3.1.0.beta4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas von Deyen
|
@@ -12,70 +12,84 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2015-01-02 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
|
-
name:
|
18
|
+
name: actionpack-page_caching
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - "~>"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 1.0.0
|
24
|
+
type: :runtime
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
requirements:
|
28
|
+
- - "~>"
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 1.0.0
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: active_model_serializers
|
19
33
|
requirement: !ruby/object:Gem::Requirement
|
20
34
|
requirements:
|
21
35
|
- - ">="
|
22
36
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
37
|
+
version: 0.8.1
|
24
38
|
- - "<"
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
40
|
+
version: 0.9.1
|
27
41
|
type: :runtime
|
28
42
|
prerelease: false
|
29
43
|
version_requirements: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
45
|
- - ">="
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
47
|
+
version: 0.8.1
|
34
48
|
- - "<"
|
35
49
|
- !ruby/object:Gem::Version
|
36
|
-
version:
|
50
|
+
version: 0.9.1
|
37
51
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
52
|
+
name: acts_as_list
|
39
53
|
requirement: !ruby/object:Gem::Requirement
|
40
54
|
requirements:
|
41
55
|
- - "~>"
|
42
56
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
57
|
+
version: '0.3'
|
44
58
|
type: :runtime
|
45
59
|
prerelease: false
|
46
60
|
version_requirements: !ruby/object:Gem::Requirement
|
47
61
|
requirements:
|
48
62
|
- - "~>"
|
49
63
|
- !ruby/object:Gem::Version
|
50
|
-
version:
|
64
|
+
version: '0.3'
|
51
65
|
- !ruby/object:Gem::Dependency
|
52
|
-
name:
|
66
|
+
name: acts-as-taggable-on
|
53
67
|
requirement: !ruby/object:Gem::Requirement
|
54
68
|
requirements:
|
55
69
|
- - "~>"
|
56
70
|
- !ruby/object:Gem::Version
|
57
|
-
version: 3.
|
71
|
+
version: '3.1'
|
58
72
|
type: :runtime
|
59
73
|
prerelease: false
|
60
74
|
version_requirements: !ruby/object:Gem::Requirement
|
61
75
|
requirements:
|
62
76
|
- - "~>"
|
63
77
|
- !ruby/object:Gem::Version
|
64
|
-
version: 3.
|
78
|
+
version: '3.1'
|
65
79
|
- !ruby/object:Gem::Dependency
|
66
|
-
name:
|
80
|
+
name: awesome_nested_set
|
67
81
|
requirement: !ruby/object:Gem::Requirement
|
68
82
|
requirements:
|
69
83
|
- - "~>"
|
70
84
|
- !ruby/object:Gem::Version
|
71
|
-
version:
|
85
|
+
version: 3.0.0
|
72
86
|
type: :runtime
|
73
87
|
prerelease: false
|
74
88
|
version_requirements: !ruby/object:Gem::Requirement
|
75
89
|
requirements:
|
76
90
|
- - "~>"
|
77
91
|
- !ruby/object:Gem::Version
|
78
|
-
version:
|
92
|
+
version: 3.0.0
|
79
93
|
- !ruby/object:Gem::Dependency
|
80
94
|
name: cancancan
|
81
95
|
requirement: !ruby/object:Gem::Requirement
|
@@ -91,159 +105,165 @@ dependencies:
|
|
91
105
|
- !ruby/object:Gem::Version
|
92
106
|
version: '1.9'
|
93
107
|
- !ruby/object:Gem::Dependency
|
94
|
-
name:
|
108
|
+
name: coffee-rails
|
95
109
|
requirement: !ruby/object:Gem::Requirement
|
96
110
|
requirements:
|
97
111
|
- - "~>"
|
98
112
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
113
|
+
version: '4.0'
|
100
114
|
type: :runtime
|
101
115
|
prerelease: false
|
102
116
|
version_requirements: !ruby/object:Gem::Requirement
|
103
117
|
requirements:
|
104
118
|
- - "~>"
|
105
119
|
- !ruby/object:Gem::Version
|
106
|
-
version:
|
120
|
+
version: '4.0'
|
107
121
|
- !ruby/object:Gem::Dependency
|
108
|
-
name:
|
122
|
+
name: compass-rails
|
109
123
|
requirement: !ruby/object:Gem::Requirement
|
110
124
|
requirements:
|
111
|
-
- - "
|
125
|
+
- - ">="
|
112
126
|
- !ruby/object:Gem::Version
|
113
|
-
version:
|
127
|
+
version: 1.1.2
|
114
128
|
type: :runtime
|
115
129
|
prerelease: false
|
116
130
|
version_requirements: !ruby/object:Gem::Requirement
|
117
131
|
requirements:
|
118
|
-
- - "
|
132
|
+
- - ">="
|
119
133
|
- !ruby/object:Gem::Version
|
120
|
-
version:
|
134
|
+
version: 1.1.2
|
121
135
|
- !ruby/object:Gem::Dependency
|
122
|
-
name:
|
136
|
+
name: dragonfly
|
123
137
|
requirement: !ruby/object:Gem::Requirement
|
124
138
|
requirements:
|
125
139
|
- - "~>"
|
126
140
|
- !ruby/object:Gem::Version
|
127
|
-
version: 0.
|
141
|
+
version: 1.0.1
|
128
142
|
type: :runtime
|
129
143
|
prerelease: false
|
130
144
|
version_requirements: !ruby/object:Gem::Requirement
|
131
145
|
requirements:
|
132
146
|
- - "~>"
|
133
147
|
- !ruby/object:Gem::Version
|
134
|
-
version: 0.
|
148
|
+
version: 1.0.1
|
135
149
|
- !ruby/object:Gem::Dependency
|
136
|
-
name:
|
150
|
+
name: jquery-rails
|
137
151
|
requirement: !ruby/object:Gem::Requirement
|
138
152
|
requirements:
|
139
153
|
- - "~>"
|
140
154
|
- !ruby/object:Gem::Version
|
141
|
-
version:
|
155
|
+
version: 3.1.0
|
142
156
|
type: :runtime
|
143
157
|
prerelease: false
|
144
158
|
version_requirements: !ruby/object:Gem::Requirement
|
145
159
|
requirements:
|
146
160
|
- - "~>"
|
147
161
|
- !ruby/object:Gem::Version
|
148
|
-
version:
|
162
|
+
version: 3.1.0
|
149
163
|
- !ruby/object:Gem::Dependency
|
150
|
-
name:
|
164
|
+
name: jquery-ui-rails
|
151
165
|
requirement: !ruby/object:Gem::Requirement
|
152
166
|
requirements:
|
153
167
|
- - "~>"
|
154
168
|
- !ruby/object:Gem::Version
|
155
|
-
version:
|
169
|
+
version: 5.0.0
|
156
170
|
type: :runtime
|
157
171
|
prerelease: false
|
158
172
|
version_requirements: !ruby/object:Gem::Requirement
|
159
173
|
requirements:
|
160
174
|
- - "~>"
|
161
175
|
- !ruby/object:Gem::Version
|
162
|
-
version:
|
176
|
+
version: 5.0.0
|
163
177
|
- !ruby/object:Gem::Dependency
|
164
|
-
name:
|
178
|
+
name: kaminari
|
165
179
|
requirement: !ruby/object:Gem::Requirement
|
166
180
|
requirements:
|
167
181
|
- - "~>"
|
168
182
|
- !ruby/object:Gem::Version
|
169
|
-
version:
|
183
|
+
version: '0.15'
|
170
184
|
type: :runtime
|
171
185
|
prerelease: false
|
172
186
|
version_requirements: !ruby/object:Gem::Requirement
|
173
187
|
requirements:
|
174
188
|
- - "~>"
|
175
189
|
- !ruby/object:Gem::Version
|
176
|
-
version:
|
190
|
+
version: '0.15'
|
177
191
|
- !ruby/object:Gem::Dependency
|
178
|
-
name:
|
192
|
+
name: magiclabs-userstamp
|
179
193
|
requirement: !ruby/object:Gem::Requirement
|
180
194
|
requirements:
|
181
195
|
- - "~>"
|
182
196
|
- !ruby/object:Gem::Version
|
183
|
-
version:
|
197
|
+
version: 2.1.0
|
184
198
|
type: :runtime
|
185
199
|
prerelease: false
|
186
200
|
version_requirements: !ruby/object:Gem::Requirement
|
187
201
|
requirements:
|
188
202
|
- - "~>"
|
189
203
|
- !ruby/object:Gem::Version
|
190
|
-
version:
|
204
|
+
version: 2.1.0
|
191
205
|
- !ruby/object:Gem::Dependency
|
192
|
-
name:
|
206
|
+
name: non-stupid-digest-assets
|
193
207
|
requirement: !ruby/object:Gem::Requirement
|
194
208
|
requirements:
|
195
209
|
- - "~>"
|
196
210
|
- !ruby/object:Gem::Version
|
197
|
-
version:
|
211
|
+
version: 1.0.3
|
198
212
|
type: :runtime
|
199
213
|
prerelease: false
|
200
214
|
version_requirements: !ruby/object:Gem::Requirement
|
201
215
|
requirements:
|
202
216
|
- - "~>"
|
203
217
|
- !ruby/object:Gem::Version
|
204
|
-
version:
|
218
|
+
version: 1.0.3
|
205
219
|
- !ruby/object:Gem::Dependency
|
206
|
-
name:
|
220
|
+
name: rails
|
207
221
|
requirement: !ruby/object:Gem::Requirement
|
208
222
|
requirements:
|
209
223
|
- - ">="
|
210
224
|
- !ruby/object:Gem::Version
|
211
|
-
version:
|
225
|
+
version: '4.0'
|
226
|
+
- - "<"
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
version: '4.2'
|
212
229
|
type: :runtime
|
213
230
|
prerelease: false
|
214
231
|
version_requirements: !ruby/object:Gem::Requirement
|
215
232
|
requirements:
|
216
233
|
- - ">="
|
217
234
|
- !ruby/object:Gem::Version
|
218
|
-
version:
|
235
|
+
version: '4.0'
|
236
|
+
- - "<"
|
237
|
+
- !ruby/object:Gem::Version
|
238
|
+
version: '4.2'
|
219
239
|
- !ruby/object:Gem::Dependency
|
220
|
-
name:
|
240
|
+
name: request_store
|
221
241
|
requirement: !ruby/object:Gem::Requirement
|
222
242
|
requirements:
|
223
243
|
- - "~>"
|
224
244
|
- !ruby/object:Gem::Version
|
225
|
-
version:
|
245
|
+
version: 1.1.0
|
226
246
|
type: :runtime
|
227
247
|
prerelease: false
|
228
248
|
version_requirements: !ruby/object:Gem::Requirement
|
229
249
|
requirements:
|
230
250
|
- - "~>"
|
231
251
|
- !ruby/object:Gem::Version
|
232
|
-
version:
|
252
|
+
version: 1.1.0
|
233
253
|
- !ruby/object:Gem::Dependency
|
234
|
-
name:
|
254
|
+
name: sass-rails
|
235
255
|
requirement: !ruby/object:Gem::Requirement
|
236
256
|
requirements:
|
237
|
-
- - "
|
257
|
+
- - "~>"
|
238
258
|
- !ruby/object:Gem::Version
|
239
|
-
version:
|
259
|
+
version: 4.0.5
|
240
260
|
type: :runtime
|
241
261
|
prerelease: false
|
242
262
|
version_requirements: !ruby/object:Gem::Requirement
|
243
263
|
requirements:
|
244
|
-
- - "
|
264
|
+
- - "~>"
|
245
265
|
- !ruby/object:Gem::Version
|
246
|
-
version:
|
266
|
+
version: 4.0.5
|
247
267
|
- !ruby/object:Gem::Dependency
|
248
268
|
name: sassy-buttons
|
249
269
|
requirement: !ruby/object:Gem::Requirement
|
@@ -258,20 +278,6 @@ dependencies:
|
|
258
278
|
- - "~>"
|
259
279
|
- !ruby/object:Gem::Version
|
260
280
|
version: 0.2.6
|
261
|
-
- !ruby/object:Gem::Dependency
|
262
|
-
name: sprockets
|
263
|
-
requirement: !ruby/object:Gem::Requirement
|
264
|
-
requirements:
|
265
|
-
- - "~>"
|
266
|
-
- !ruby/object:Gem::Version
|
267
|
-
version: 2.11.3
|
268
|
-
type: :runtime
|
269
|
-
prerelease: false
|
270
|
-
version_requirements: !ruby/object:Gem::Requirement
|
271
|
-
requirements:
|
272
|
-
- - "~>"
|
273
|
-
- !ruby/object:Gem::Version
|
274
|
-
version: 2.11.3
|
275
281
|
- !ruby/object:Gem::Dependency
|
276
282
|
name: select2-rails
|
277
283
|
requirement: !ruby/object:Gem::Requirement
|
@@ -293,19 +299,19 @@ dependencies:
|
|
293
299
|
- !ruby/object:Gem::Version
|
294
300
|
version: '4.0'
|
295
301
|
- !ruby/object:Gem::Dependency
|
296
|
-
name:
|
302
|
+
name: simple_form
|
297
303
|
requirement: !ruby/object:Gem::Requirement
|
298
304
|
requirements:
|
299
305
|
- - "~>"
|
300
306
|
- !ruby/object:Gem::Version
|
301
|
-
version: 0
|
307
|
+
version: '3.0'
|
302
308
|
type: :runtime
|
303
309
|
prerelease: false
|
304
310
|
version_requirements: !ruby/object:Gem::Requirement
|
305
311
|
requirements:
|
306
312
|
- - "~>"
|
307
313
|
- !ruby/object:Gem::Version
|
308
|
-
version: 0
|
314
|
+
version: '3.0'
|
309
315
|
- !ruby/object:Gem::Dependency
|
310
316
|
name: spinner.rb
|
311
317
|
requirement: !ruby/object:Gem::Requirement
|
@@ -321,83 +327,77 @@ dependencies:
|
|
321
327
|
- !ruby/object:Gem::Version
|
322
328
|
version: '0'
|
323
329
|
- !ruby/object:Gem::Dependency
|
324
|
-
name:
|
330
|
+
name: sprockets
|
325
331
|
requirement: !ruby/object:Gem::Requirement
|
326
332
|
requirements:
|
327
333
|
- - "~>"
|
328
334
|
- !ruby/object:Gem::Version
|
329
|
-
version:
|
335
|
+
version: 2.11.3
|
330
336
|
type: :runtime
|
331
337
|
prerelease: false
|
332
338
|
version_requirements: !ruby/object:Gem::Requirement
|
333
339
|
requirements:
|
334
340
|
- - "~>"
|
335
341
|
- !ruby/object:Gem::Version
|
336
|
-
version:
|
342
|
+
version: 2.11.3
|
337
343
|
- !ruby/object:Gem::Dependency
|
338
|
-
name:
|
344
|
+
name: turbolinks
|
339
345
|
requirement: !ruby/object:Gem::Requirement
|
340
346
|
requirements:
|
341
347
|
- - "~>"
|
342
348
|
- !ruby/object:Gem::Version
|
343
|
-
version:
|
349
|
+
version: '2.5'
|
344
350
|
type: :runtime
|
345
351
|
prerelease: false
|
346
352
|
version_requirements: !ruby/object:Gem::Requirement
|
347
353
|
requirements:
|
348
354
|
- - "~>"
|
349
355
|
- !ruby/object:Gem::Version
|
350
|
-
version:
|
356
|
+
version: '2.5'
|
351
357
|
- !ruby/object:Gem::Dependency
|
352
|
-
name:
|
358
|
+
name: tvdeyen-handles_sortable_columns
|
353
359
|
requirement: !ruby/object:Gem::Requirement
|
354
360
|
requirements:
|
355
|
-
- - "
|
356
|
-
- !ruby/object:Gem::Version
|
357
|
-
version: 0.8.1
|
358
|
-
- - "<"
|
361
|
+
- - "~>"
|
359
362
|
- !ruby/object:Gem::Version
|
360
|
-
version: 0.
|
363
|
+
version: 0.1.5
|
361
364
|
type: :runtime
|
362
365
|
prerelease: false
|
363
366
|
version_requirements: !ruby/object:Gem::Requirement
|
364
367
|
requirements:
|
365
|
-
- - "
|
366
|
-
- !ruby/object:Gem::Version
|
367
|
-
version: 0.8.1
|
368
|
-
- - "<"
|
368
|
+
- - "~>"
|
369
369
|
- !ruby/object:Gem::Version
|
370
|
-
version: 0.
|
370
|
+
version: 0.1.5
|
371
371
|
- !ruby/object:Gem::Dependency
|
372
|
-
name:
|
372
|
+
name: uglifier
|
373
373
|
requirement: !ruby/object:Gem::Requirement
|
374
374
|
requirements:
|
375
|
-
- - "
|
375
|
+
- - ">="
|
376
376
|
- !ruby/object:Gem::Version
|
377
|
-
version: 1.
|
377
|
+
version: 1.3.0
|
378
378
|
type: :runtime
|
379
379
|
prerelease: false
|
380
380
|
version_requirements: !ruby/object:Gem::Requirement
|
381
381
|
requirements:
|
382
|
-
- - "
|
382
|
+
- - ">="
|
383
383
|
- !ruby/object:Gem::Version
|
384
|
-
version: 1.
|
384
|
+
version: 1.3.0
|
385
385
|
- !ruby/object:Gem::Dependency
|
386
|
-
name:
|
386
|
+
name: capybara
|
387
387
|
requirement: !ruby/object:Gem::Requirement
|
388
388
|
requirements:
|
389
|
-
- - "
|
389
|
+
- - ">="
|
390
390
|
- !ruby/object:Gem::Version
|
391
|
-
version: '
|
391
|
+
version: '0'
|
392
392
|
type: :development
|
393
393
|
prerelease: false
|
394
394
|
version_requirements: !ruby/object:Gem::Requirement
|
395
395
|
requirements:
|
396
|
-
- - "
|
396
|
+
- - ">="
|
397
397
|
- !ruby/object:Gem::Version
|
398
|
-
version: '
|
398
|
+
version: '0'
|
399
399
|
- !ruby/object:Gem::Dependency
|
400
|
-
name:
|
400
|
+
name: factory_girl_rails
|
401
401
|
requirement: !ruby/object:Gem::Requirement
|
402
402
|
requirements:
|
403
403
|
- - ">="
|
@@ -411,19 +411,19 @@ dependencies:
|
|
411
411
|
- !ruby/object:Gem::Version
|
412
412
|
version: '0'
|
413
413
|
- !ruby/object:Gem::Dependency
|
414
|
-
name:
|
414
|
+
name: rspec-rails
|
415
415
|
requirement: !ruby/object:Gem::Requirement
|
416
416
|
requirements:
|
417
|
-
- - "
|
417
|
+
- - "~>"
|
418
418
|
- !ruby/object:Gem::Version
|
419
|
-
version: '0'
|
419
|
+
version: '3.0'
|
420
420
|
type: :development
|
421
421
|
prerelease: false
|
422
422
|
version_requirements: !ruby/object:Gem::Requirement
|
423
423
|
requirements:
|
424
|
-
- - "
|
424
|
+
- - "~>"
|
425
425
|
- !ruby/object:Gem::Version
|
426
|
-
version: '0'
|
426
|
+
version: '3.0'
|
427
427
|
description: Alchemy is a powerful, userfriendly and flexible Rails 4 CMS.
|
428
428
|
email:
|
429
429
|
- alchemy@magiclabs.de
|
@@ -696,6 +696,7 @@ files:
|
|
696
696
|
- app/views/alchemy/admin/layoutpages/_layoutpage.html.erb
|
697
697
|
- app/views/alchemy/admin/layoutpages/edit.html.erb
|
698
698
|
- app/views/alchemy/admin/layoutpages/index.html.erb
|
699
|
+
- app/views/alchemy/admin/leave.html.erb
|
699
700
|
- app/views/alchemy/admin/legacy_page_urls/_form.html.erb
|
700
701
|
- app/views/alchemy/admin/legacy_page_urls/_label.html.erb
|
701
702
|
- app/views/alchemy/admin/legacy_page_urls/_legacy_page_url.html.erb
|
@@ -778,7 +779,6 @@ files:
|
|
778
779
|
- app/views/alchemy/base/500.html.erb
|
779
780
|
- app/views/alchemy/base/error_notice.html.erb
|
780
781
|
- app/views/alchemy/base/error_notice.js.erb
|
781
|
-
- app/views/alchemy/base/leave.html.erb
|
782
782
|
- app/views/alchemy/base/permission_denied.js.erb
|
783
783
|
- app/views/alchemy/base/redirect.js.erb
|
784
784
|
- app/views/alchemy/base/update.js.erb
|
@@ -1030,6 +1030,7 @@ files:
|
|
1030
1030
|
- spec/features/admin/link_overlay_spec.rb
|
1031
1031
|
- spec/features/admin/locale_select_feature_spec.rb
|
1032
1032
|
- spec/features/admin/modules_integration_spec.rb
|
1033
|
+
- spec/features/admin/navigation_feature_spec.rb
|
1033
1034
|
- spec/features/admin/page_creation_feature_spec.rb
|
1034
1035
|
- spec/features/admin/page_editing_feature_spec.rb
|
1035
1036
|
- spec/features/admin/picture_library_integration_spec.rb
|
@@ -1298,6 +1299,7 @@ test_files:
|
|
1298
1299
|
- spec/features/admin/link_overlay_spec.rb
|
1299
1300
|
- spec/features/admin/locale_select_feature_spec.rb
|
1300
1301
|
- spec/features/admin/modules_integration_spec.rb
|
1302
|
+
- spec/features/admin/navigation_feature_spec.rb
|
1301
1303
|
- spec/features/admin/page_creation_feature_spec.rb
|
1302
1304
|
- spec/features/admin/page_editing_feature_spec.rb
|
1303
1305
|
- spec/features/admin/picture_library_integration_spec.rb
|