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.
@@ -78,7 +78,7 @@ module Alchemy
78
78
  def render_page_or_redirect
79
79
  @page ||= load_page
80
80
  if signup_required?
81
- redirect_to signup_path
81
+ redirect_to Alchemy.signup_path
82
82
  elsif @page.nil? && last_legacy_url
83
83
  @page = last_legacy_url.page
84
84
 
@@ -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.form_class = nil
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]
@@ -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 login form - @see: Alchemy.login_path
13
- # 3. The path to the logout method - @see: Alchemy.logout_path
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, :current_user_method, :login_path, :logout_path
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
@@ -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
@@ -99,6 +99,7 @@ module Alchemy
99
99
  ]
100
100
 
101
101
  # Controller actions
102
+ can :leave, :alchemy_admin
102
103
  can [:info, :help], :alchemy_admin_dashboard
103
104
  can :manage, :alchemy_admin_clipboard
104
105
  can :index, :trash
@@ -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
@@ -1,5 +1,5 @@
1
1
  module Alchemy
2
- VERSION = "3.1.0.beta3"
2
+ VERSION = "3.1.0.beta4"
3
3
 
4
4
  def self.version
5
5
  VERSION
@@ -135,6 +135,5 @@ module Alchemy
135
135
  end
136
136
  end
137
137
  end
138
-
139
138
  end
140
139
  end
@@ -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)
@@ -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.should_receive(:t).with('content_names.content', default: 'Content').and_return('Content')
249
- I18n.should_receive(:t).with('content', scope: "content_names.article", default: 'Content').and_return('Contenido')
250
- I18n.should_receive(:t).with('article.content.invalid', {:scope=>"content_validations", :default=>[:"fields.content.invalid", :"errors.invalid"], :field=>"Contenido"})
251
- element.should_receive(:essence_errors).and_return({'content' => [:invalid]})
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
@@ -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.beta3
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: 2014-12-18 00:00:00.000000000 Z
15
+ date: 2015-01-02 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
- name: rails
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: '4.0'
37
+ version: 0.8.1
24
38
  - - "<"
25
39
  - !ruby/object:Gem::Version
26
- version: '5.0'
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: '4.0'
47
+ version: 0.8.1
34
48
  - - "<"
35
49
  - !ruby/object:Gem::Version
36
- version: '5.0'
50
+ version: 0.9.1
37
51
  - !ruby/object:Gem::Dependency
38
- name: actionpack-page_caching
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: 1.0.0
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: 1.0.0
64
+ version: '0.3'
51
65
  - !ruby/object:Gem::Dependency
52
- name: awesome_nested_set
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.0.0.rc.2
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.0.0.rc.2
78
+ version: '3.1'
65
79
  - !ruby/object:Gem::Dependency
66
- name: acts-as-taggable-on
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: '3.1'
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: '3.1'
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: dragonfly
108
+ name: coffee-rails
95
109
  requirement: !ruby/object:Gem::Requirement
96
110
  requirements:
97
111
  - - "~>"
98
112
  - !ruby/object:Gem::Version
99
- version: 1.0.1
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: 1.0.1
120
+ version: '4.0'
107
121
  - !ruby/object:Gem::Dependency
108
- name: kaminari
122
+ name: compass-rails
109
123
  requirement: !ruby/object:Gem::Requirement
110
124
  requirements:
111
- - - "~>"
125
+ - - ">="
112
126
  - !ruby/object:Gem::Version
113
- version: '0.15'
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: '0.15'
134
+ version: 1.1.2
121
135
  - !ruby/object:Gem::Dependency
122
- name: acts_as_list
136
+ name: dragonfly
123
137
  requirement: !ruby/object:Gem::Requirement
124
138
  requirements:
125
139
  - - "~>"
126
140
  - !ruby/object:Gem::Version
127
- version: 0.3.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.3.0
148
+ version: 1.0.1
135
149
  - !ruby/object:Gem::Dependency
136
- name: magiclabs-userstamp
150
+ name: jquery-rails
137
151
  requirement: !ruby/object:Gem::Requirement
138
152
  requirements:
139
153
  - - "~>"
140
154
  - !ruby/object:Gem::Version
141
- version: 2.1.0
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: 2.1.0
162
+ version: 3.1.0
149
163
  - !ruby/object:Gem::Dependency
150
- name: simple_form
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: '3.0'
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: '3.0'
176
+ version: 5.0.0
163
177
  - !ruby/object:Gem::Dependency
164
- name: jquery-rails
178
+ name: kaminari
165
179
  requirement: !ruby/object:Gem::Requirement
166
180
  requirements:
167
181
  - - "~>"
168
182
  - !ruby/object:Gem::Version
169
- version: 3.1.0
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: 3.1.0
190
+ version: '0.15'
177
191
  - !ruby/object:Gem::Dependency
178
- name: jquery-ui-rails
192
+ name: magiclabs-userstamp
179
193
  requirement: !ruby/object:Gem::Requirement
180
194
  requirements:
181
195
  - - "~>"
182
196
  - !ruby/object:Gem::Version
183
- version: 5.0.0
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: 5.0.0
204
+ version: 2.1.0
191
205
  - !ruby/object:Gem::Dependency
192
- name: sass-rails
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: 4.0.5
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: 4.0.5
218
+ version: 1.0.3
205
219
  - !ruby/object:Gem::Dependency
206
- name: uglifier
220
+ name: rails
207
221
  requirement: !ruby/object:Gem::Requirement
208
222
  requirements:
209
223
  - - ">="
210
224
  - !ruby/object:Gem::Version
211
- version: 1.3.0
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: 1.3.0
235
+ version: '4.0'
236
+ - - "<"
237
+ - !ruby/object:Gem::Version
238
+ version: '4.2'
219
239
  - !ruby/object:Gem::Dependency
220
- name: coffee-rails
240
+ name: request_store
221
241
  requirement: !ruby/object:Gem::Requirement
222
242
  requirements:
223
243
  - - "~>"
224
244
  - !ruby/object:Gem::Version
225
- version: 4.0.0
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: 4.0.0
252
+ version: 1.1.0
233
253
  - !ruby/object:Gem::Dependency
234
- name: compass-rails
254
+ name: sass-rails
235
255
  requirement: !ruby/object:Gem::Requirement
236
256
  requirements:
237
- - - ">="
257
+ - - "~>"
238
258
  - !ruby/object:Gem::Version
239
- version: 1.1.2
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: 1.1.2
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: tvdeyen-handles_sortable_columns
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.1.5
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.1.5
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: turbolinks
330
+ name: sprockets
325
331
  requirement: !ruby/object:Gem::Requirement
326
332
  requirements:
327
333
  - - "~>"
328
334
  - !ruby/object:Gem::Version
329
- version: '2.5'
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: '2.5'
342
+ version: 2.11.3
337
343
  - !ruby/object:Gem::Dependency
338
- name: non-stupid-digest-assets
344
+ name: turbolinks
339
345
  requirement: !ruby/object:Gem::Requirement
340
346
  requirements:
341
347
  - - "~>"
342
348
  - !ruby/object:Gem::Version
343
- version: 1.0.3
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: 1.0.3
356
+ version: '2.5'
351
357
  - !ruby/object:Gem::Dependency
352
- name: active_model_serializers
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.9.1
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.9.1
370
+ version: 0.1.5
371
371
  - !ruby/object:Gem::Dependency
372
- name: request_store
372
+ name: uglifier
373
373
  requirement: !ruby/object:Gem::Requirement
374
374
  requirements:
375
- - - "~>"
375
+ - - ">="
376
376
  - !ruby/object:Gem::Version
377
- version: 1.1.0
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.1.0
384
+ version: 1.3.0
385
385
  - !ruby/object:Gem::Dependency
386
- name: rspec-rails
386
+ name: capybara
387
387
  requirement: !ruby/object:Gem::Requirement
388
388
  requirements:
389
- - - "~>"
389
+ - - ">="
390
390
  - !ruby/object:Gem::Version
391
- version: '3.0'
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: '3.0'
398
+ version: '0'
399
399
  - !ruby/object:Gem::Dependency
400
- name: capybara
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: factory_girl_rails
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