alchemy_cms 3.1.0.beta3 → 3.1.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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