alchemy_cms 4.2.0 → 4.2.1
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/.teatro.yml +8 -0
- data/CHANGELOG.md +4 -4
- data/Gemfile +1 -1
- data/README.md +3 -10
- data/alchemy_cms.gemspec +1 -1
- data/app/assets/javascripts/alchemy/alchemy.dialog.js.coffee +3 -3
- data/app/assets/javascripts/alchemy/alchemy.elements_window.js.coffee +1 -1
- data/app/assets/stylesheets/alchemy/buttons.scss +2 -15
- data/app/assets/stylesheets/alchemy/elements.scss +0 -4
- data/app/assets/stylesheets/alchemy/frame.scss +29 -9
- data/app/assets/stylesheets/alchemy/navigation.scss +6 -30
- data/app/assets/stylesheets/alchemy/preview_window.scss +0 -4
- data/app/controllers/alchemy/api/contents_controller.rb +1 -1
- data/app/controllers/alchemy/api/elements_controller.rb +1 -1
- data/app/controllers/alchemy/api/pages_controller.rb +1 -1
- data/app/controllers/alchemy/pages_controller.rb +4 -9
- data/app/models/alchemy/element.rb +1 -1
- data/app/models/alchemy/page/page_scopes.rb +1 -1
- data/app/views/alchemy/admin/pages/edit.html.erb +10 -10
- data/lib/alchemy/on_page_layout.rb +1 -1
- data/lib/alchemy/test_support/factories.rb +1 -3
- data/lib/alchemy/test_support/factories/attachment_factory.rb +0 -2
- data/lib/alchemy/test_support/factories/content_factory.rb +0 -5
- data/lib/alchemy/test_support/factories/dummy_user_factory.rb +0 -2
- data/lib/alchemy/test_support/factories/element_factory.rb +0 -3
- data/lib/alchemy/test_support/factories/essence_file_factory.rb +0 -2
- data/lib/alchemy/test_support/factories/essence_picture_factory.rb +0 -2
- data/lib/alchemy/test_support/factories/essence_text_factory.rb +0 -2
- data/lib/alchemy/test_support/factories/language_factory.rb +0 -2
- data/lib/alchemy/test_support/factories/page_factory.rb +0 -2
- data/lib/alchemy/test_support/factories/picture_factory.rb +0 -2
- data/lib/alchemy/test_support/factories/site_factory.rb +0 -2
- data/lib/alchemy/version.rb +1 -1
- metadata +7 -13
- data/.github/FUNDING.yml +0 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1cee9559837fa4a7f082aaef25d8ad9d0b60f97deeb95abe7c5e02be7e0b1c51
|
|
4
|
+
data.tar.gz: '0933e0f1400f3518d7092129e532583ea4846da5c20043185a2025dcd4f335b2'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cba619e0c9801e3ad568efaeeea2f1a6d28184da08f53aeeb60481f257c9e3dbe56555720f779e3dbb6def2b036c9584b46d765d241016a4b23d1fe398933d5b
|
|
7
|
+
data.tar.gz: 64f673911a078cadc30bdeb6cd0be0c7245feac2b2822efab375abe26ef7bcc32b0eea1736199b4ed09cd57b36be080de84621bc85f4c861c277f66a1de2d78c
|
data/.teatro.yml
ADDED
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
## 4.2.1 (2019-08-08)
|
|
2
|
+
|
|
3
|
+
- Use strings as JSON root keys in API controllers [#1602](https://github.com/AlchemyCMS/alchemy_cms/pull/1602) ([tvdeyen](https://github.com/tvdeyen))
|
|
4
|
+
|
|
1
5
|
## 4.2.0 (2019-05-30)
|
|
2
6
|
|
|
3
7
|
- remove unused .teatro.yml [#1585](https://github.com/AlchemyCMS/alchemy_cms/pull/1585) ([kirillshevch](https://github.com/kirillshevch))
|
|
@@ -500,7 +504,3 @@ No changes
|
|
|
500
504
|
## 3.0.0 (2014-07-03)
|
|
501
505
|
|
|
502
506
|
[Release Notes](https://github.com/AlchemyCMS/alchemy_cms/releases/tag/v3.0.0)
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
data/Gemfile
CHANGED
|
@@ -7,7 +7,7 @@ gem 'rails', '~> 5.2.0'
|
|
|
7
7
|
# Profiling
|
|
8
8
|
gem 'rack-mini-profiler', group: :development, require: false
|
|
9
9
|
|
|
10
|
-
gem 'sqlite3', '~> 1.
|
|
10
|
+
gem 'sqlite3', '~> 1.3.6' if ENV['DB'].nil? || ENV['DB'] == 'sqlite'
|
|
11
11
|
gem 'mysql2', '~> 0.5.1' if ENV['DB'] == 'mysql'
|
|
12
12
|
gem 'pg', '~> 1.0' if ENV['DB'] == 'postgresql'
|
|
13
13
|
gem 'sassc-rails'
|
data/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# AlchemyCMS
|
|
2
2
|
|
|
3
3
|
[](http://badge.fury.io/rb/alchemy_cms)
|
|
4
|
-
[](https://travis-ci.org/AlchemyCMS/alchemy_cms)
|
|
5
5
|
[](https://codeclimate.com/github/AlchemyCMS/alchemy_cms/maintainability)
|
|
6
6
|
[](https://codeclimate.com/github/AlchemyCMS/alchemy_cms/test_coverage)
|
|
7
7
|
[](https://depfu.com/github/AlchemyCMS/alchemy_cms?project_id=4600)
|
|
@@ -18,9 +18,6 @@ Alchemy is an open source CMS engine written in Ruby on Rails.
|
|
|
18
18
|
|
|
19
19
|
Read more about Alchemy on the [website](https://alchemy-cms.com) and in the [guidelines](https://guides.alchemy-cms.com).
|
|
20
20
|
|
|
21
|
-
**CAUTION: This master branch is a development branch that *can* contain bugs. For productive environments you should use the [current Ruby gem version](https://rubygems.org/gems/alchemy_cms), or the [latest stable branch (4.2-stable)](https://github.com/AlchemyCMS/alchemy_cms/tree/4.2-stable).**
|
|
22
|
-
|
|
23
|
-
|
|
24
21
|
## ✅ Features
|
|
25
22
|
|
|
26
23
|
- Flexible templating that separates content from markup
|
|
@@ -83,11 +80,9 @@ For a Ruby 1.8.7 compatible version use the [`2.3-stable` branch](https://github
|
|
|
83
80
|
Put this into your `Gemfile`:
|
|
84
81
|
|
|
85
82
|
```ruby
|
|
86
|
-
gem 'alchemy_cms', github: 'AlchemyCMS/alchemy_cms', branch: '
|
|
83
|
+
gem 'alchemy_cms', github: 'AlchemyCMS/alchemy_cms', branch: '4.2-stable'
|
|
87
84
|
```
|
|
88
85
|
|
|
89
|
-
**NOTE:** You normally want to use a stable branch, like `4.1-stable`.
|
|
90
|
-
|
|
91
86
|
#### 2. Update your bundle:
|
|
92
87
|
|
|
93
88
|
```bash
|
|
@@ -104,11 +99,9 @@ the Devise based user model that Alchemy provides and was extracted [into its ow
|
|
|
104
99
|
If you don't have your own user class, you can use the Alchemy user model. Just add the following gem into your `Gemfile`:
|
|
105
100
|
|
|
106
101
|
```ruby
|
|
107
|
-
gem 'alchemy-devise', github: 'AlchemyCMS/alchemy-devise', branch: '
|
|
102
|
+
gem 'alchemy-devise', github: 'AlchemyCMS/alchemy-devise', branch: '4.2-stable'
|
|
108
103
|
```
|
|
109
104
|
|
|
110
|
-
**NOTE:** You normally want to use a stable branch, like `4.1-stable`.
|
|
111
|
-
|
|
112
105
|
Then run:
|
|
113
106
|
|
|
114
107
|
```bash
|
data/alchemy_cms.gemspec
CHANGED
|
@@ -33,7 +33,7 @@ Gem::Specification.new do |gem|
|
|
|
33
33
|
gem.add_runtime_dependency 'originator', ['~> 3.1']
|
|
34
34
|
gem.add_runtime_dependency 'non-stupid-digest-assets', ['~> 1.0.8']
|
|
35
35
|
gem.add_runtime_dependency 'rails', ['~> 5.0', '< 6.0']
|
|
36
|
-
gem.add_runtime_dependency 'ransack', ['
|
|
36
|
+
gem.add_runtime_dependency 'ransack', ['~> 2.0']
|
|
37
37
|
gem.add_runtime_dependency 'request_store', ['~> 1.2']
|
|
38
38
|
gem.add_runtime_dependency 'responders', ['~> 2.0']
|
|
39
39
|
gem.add_runtime_dependency 'select2-rails', ['>= 3.5.9.1', '< 4.0']
|
|
@@ -122,7 +122,7 @@ class window.Alchemy.Dialog
|
|
|
122
122
|
@show_error(xhr, status)
|
|
123
123
|
|
|
124
124
|
# Displays an error message
|
|
125
|
-
show_error: (xhr, status_message
|
|
125
|
+
show_error: (xhr, status_message) ->
|
|
126
126
|
error_type = "warning"
|
|
127
127
|
switch xhr.status
|
|
128
128
|
when 0
|
|
@@ -135,7 +135,7 @@ class window.Alchemy.Dialog
|
|
|
135
135
|
error_type = "error"
|
|
136
136
|
if status_message
|
|
137
137
|
error_header = status_message
|
|
138
|
-
console.error(xhr.responseText)
|
|
138
|
+
console.error eval(xhr.responseText)
|
|
139
139
|
else
|
|
140
140
|
error_header = "#{xhr.statusText} (#{xhr.status})"
|
|
141
141
|
error_body = "Please check log and try again."
|
|
@@ -143,7 +143,7 @@ class window.Alchemy.Dialog
|
|
|
143
143
|
$errorDiv.append Alchemy.messageIcon(error_type)
|
|
144
144
|
$errorDiv.append "<h1>#{error_header}</h1>"
|
|
145
145
|
$errorDiv.append "<p>#{error_body}</p>"
|
|
146
|
-
|
|
146
|
+
@dialog_body.html $errorDiv
|
|
147
147
|
|
|
148
148
|
# Binds close events on:
|
|
149
149
|
# - Close button
|
|
@@ -53,7 +53,7 @@ Alchemy.ElementsWindow =
|
|
|
53
53
|
if @callback
|
|
54
54
|
@callback.call()
|
|
55
55
|
.fail (xhr, status, error) =>
|
|
56
|
-
Alchemy.
|
|
56
|
+
Alchemy.AjaxErrorHandler @element_area, xhr.status, status, error
|
|
57
57
|
|
|
58
58
|
hide: ->
|
|
59
59
|
@$body.removeClass('elements-window-visible');
|
|
@@ -33,14 +33,6 @@ button, input[type="submit"], a.button, input.button {
|
|
|
33
33
|
margin-right: 2 * $default-margin;
|
|
34
34
|
color: inherit;
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
&[disabled] {
|
|
38
|
-
cursor: not-allowed;
|
|
39
|
-
|
|
40
|
-
& + label {
|
|
41
|
-
display: none;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
36
|
}
|
|
45
37
|
|
|
46
38
|
.icon_button {
|
|
@@ -87,18 +79,13 @@ button, input[type="submit"], a.button, input.button {
|
|
|
87
79
|
}
|
|
88
80
|
}
|
|
89
81
|
|
|
90
|
-
&.disabled
|
|
91
|
-
&[disabled] {
|
|
82
|
+
&.disabled {
|
|
92
83
|
|
|
93
84
|
span {
|
|
94
85
|
opacity: 0.3;
|
|
95
86
|
cursor: not-allowed;
|
|
96
87
|
}
|
|
97
88
|
|
|
98
|
-
i {
|
|
99
|
-
opacity: 0.3;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
89
|
&:hover {
|
|
103
90
|
cursor: not-allowed;
|
|
104
91
|
}
|
|
@@ -134,7 +121,7 @@ button.icon_button {
|
|
|
134
121
|
margin: 0 2*$default-margin;
|
|
135
122
|
|
|
136
123
|
&.active, &:active, &:hover {
|
|
137
|
-
.icon_button
|
|
124
|
+
.icon_button {
|
|
138
125
|
background-color: $default-border-color;
|
|
139
126
|
cursor: pointer;
|
|
140
127
|
}
|
|
@@ -42,15 +42,18 @@ div#overlay_text_box {
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
#header {
|
|
45
|
-
display: flex;
|
|
46
45
|
height: $header-height;
|
|
47
46
|
line-height: $header-height;
|
|
48
47
|
background: $header-background;
|
|
49
48
|
border-bottom: $default-border;
|
|
50
49
|
position: relative;
|
|
51
50
|
|
|
52
|
-
a
|
|
53
|
-
|
|
51
|
+
a {
|
|
52
|
+
display: inline-block;
|
|
53
|
+
|
|
54
|
+
&:hover {
|
|
55
|
+
text-decoration: none;
|
|
56
|
+
}
|
|
54
57
|
}
|
|
55
58
|
|
|
56
59
|
.page_status_and_name {
|
|
@@ -73,13 +76,8 @@ div#overlay_text_box {
|
|
|
73
76
|
}
|
|
74
77
|
|
|
75
78
|
.page_name {
|
|
76
|
-
display: inline-block;
|
|
77
|
-
max-width: 100px;
|
|
78
79
|
margin-right: $default-margin;
|
|
79
80
|
line-height: $header-height;
|
|
80
|
-
white-space: nowrap;
|
|
81
|
-
overflow: hidden;
|
|
82
|
-
text-overflow: ellipsis;
|
|
83
81
|
}
|
|
84
82
|
}
|
|
85
83
|
|
|
@@ -98,10 +96,12 @@ div#overlay_text_box {
|
|
|
98
96
|
}
|
|
99
97
|
|
|
100
98
|
#user_info {
|
|
99
|
+
position: absolute;
|
|
100
|
+
top: 0;
|
|
101
|
+
right: 0;
|
|
101
102
|
height: $header-height;
|
|
102
103
|
font-size: $small-font-size;
|
|
103
104
|
padding-left: 2*$default-padding;
|
|
104
|
-
margin-left: auto;
|
|
105
105
|
border-bottom: $default-border;
|
|
106
106
|
background-color: $header-background;
|
|
107
107
|
|
|
@@ -126,3 +126,23 @@ div#overlay_text_box {
|
|
|
126
126
|
padding-right: 2*$default-padding;
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
|
+
|
|
130
|
+
#locked_pages {
|
|
131
|
+
|
|
132
|
+
label {
|
|
133
|
+
float: left;
|
|
134
|
+
font-size: $small-font-size;
|
|
135
|
+
line-height: 27px;
|
|
136
|
+
height: 27px;
|
|
137
|
+
margin-left: 8px;
|
|
138
|
+
margin-right: 4px;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
img {
|
|
142
|
+
float: left;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.subnavi_tab > a {
|
|
146
|
+
padding-right: 0;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
@@ -209,42 +209,19 @@
|
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
|
|
212
|
-
#locked_pages {
|
|
213
|
-
display: flex;
|
|
214
|
-
flex-grow: 1;
|
|
215
|
-
flex-wrap: nowrap;
|
|
216
|
-
height: $header-height;
|
|
217
|
-
|
|
218
|
-
label {
|
|
219
|
-
float: left;
|
|
220
|
-
font-size: $small-font-size;
|
|
221
|
-
line-height: 27px;
|
|
222
|
-
height: 27px;
|
|
223
|
-
margin-left: 8px;
|
|
224
|
-
margin-right: 4px;
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
img {
|
|
228
|
-
float: left;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
.subnavi_tab > a {
|
|
232
|
-
padding-right: 0;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
212
|
.locked_page {
|
|
237
|
-
|
|
238
|
-
|
|
213
|
+
position: relative;
|
|
214
|
+
float: left;
|
|
239
215
|
line-height: $header-height - 1;
|
|
240
216
|
color: #444;
|
|
241
217
|
border-right: $default-border;
|
|
242
218
|
border-bottom: $default-border;
|
|
219
|
+
padding-right: 24px;
|
|
243
220
|
|
|
244
221
|
form {
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
222
|
+
position: absolute;
|
|
223
|
+
right: $default-padding;
|
|
224
|
+
top: 7px;
|
|
248
225
|
line-height: 1;
|
|
249
226
|
}
|
|
250
227
|
|
|
@@ -254,7 +231,6 @@
|
|
|
254
231
|
}
|
|
255
232
|
|
|
256
233
|
> a {
|
|
257
|
-
display: flex;
|
|
258
234
|
cursor: pointer;
|
|
259
235
|
padding: 0px 8px;
|
|
260
236
|
|
|
@@ -16,9 +16,5 @@
|
|
|
16
16
|
|
|
17
17
|
.collapsed-menu.elements-window-visible & {
|
|
18
18
|
width: calc(100vw - #{$collapsed-main-menu-width - $default-border-width} - #{$elements-window-width});
|
|
19
|
-
|
|
20
|
-
@media screen and (min-width: $large-screen-break-point) {
|
|
21
|
-
max-width: calc(100vw - #{$collapsed-main-menu-width - $default-border-width} - #{$elements-window-min-width});
|
|
22
|
-
}
|
|
23
19
|
}
|
|
24
20
|
}
|
|
@@ -16,7 +16,7 @@ module Alchemy
|
|
|
16
16
|
if params[:element_id].present?
|
|
17
17
|
@contents = @contents.where(element_id: params[:element_id])
|
|
18
18
|
end
|
|
19
|
-
render json: @contents, adapter: :json, root:
|
|
19
|
+
render json: @contents, adapter: :json, root: 'contents'
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
# Returns a json object for content
|
|
@@ -20,7 +20,7 @@ module Alchemy
|
|
|
20
20
|
if params[:named].present?
|
|
21
21
|
@elements = @elements.named(params[:named])
|
|
22
22
|
end
|
|
23
|
-
render json: @elements, adapter: :json, root:
|
|
23
|
+
render json: @elements, adapter: :json, root: 'elements'
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
# Returns a json object for element
|
|
@@ -16,7 +16,7 @@ module Alchemy
|
|
|
16
16
|
if params[:page_layout].present?
|
|
17
17
|
@pages = @pages.where(page_layout: params[:page_layout])
|
|
18
18
|
end
|
|
19
|
-
render json: @pages, adapter: :json, root:
|
|
19
|
+
render json: @pages, adapter: :json, root: 'pages'
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
# Returns all pages as nested json object for tree views
|
|
@@ -155,10 +155,10 @@ module Alchemy
|
|
|
155
155
|
end
|
|
156
156
|
|
|
157
157
|
def set_expiration_headers
|
|
158
|
-
if
|
|
159
|
-
expires_now
|
|
160
|
-
else
|
|
158
|
+
if @page.cache_page?
|
|
161
159
|
expires_in @page.expiration_time, public: !@page.restricted, must_revalidate: true
|
|
160
|
+
else
|
|
161
|
+
expires_now
|
|
162
162
|
end
|
|
163
163
|
end
|
|
164
164
|
|
|
@@ -190,17 +190,12 @@ module Alchemy
|
|
|
190
190
|
# or the cache is stale, because it's been republished by the user.
|
|
191
191
|
#
|
|
192
192
|
def render_fresh_page?
|
|
193
|
-
|
|
193
|
+
!@page.cache_page? || stale?(etag: page_etag,
|
|
194
194
|
last_modified: @page.published_at,
|
|
195
195
|
public: !@page.restricted,
|
|
196
196
|
template: 'pages/show')
|
|
197
197
|
end
|
|
198
198
|
|
|
199
|
-
# don't cache pages if we have flash message to display or the page has caching disabled
|
|
200
|
-
def must_not_cache?
|
|
201
|
-
flash.present? || !@page.cache_page?
|
|
202
|
-
end
|
|
203
|
-
|
|
204
199
|
def page_not_found!
|
|
205
200
|
not_found_error!("Alchemy::Page not found \"#{request.fullpath}\"")
|
|
206
201
|
end
|
|
@@ -98,7 +98,7 @@ module Alchemy
|
|
|
98
98
|
scope :not_restricted, -> { joins(:page).merge(Page.not_restricted) }
|
|
99
99
|
scope :available, -> { published.not_trashed }
|
|
100
100
|
scope :named, ->(names) { where(name: names) }
|
|
101
|
-
scope :excluded, ->(names) { where.
|
|
101
|
+
scope :excluded, ->(names) { where(arel_table[:name].not_in(names)) }
|
|
102
102
|
scope :fixed, -> { where(fixed: true) }
|
|
103
103
|
scope :unfixed, -> { where(fixed: false) }
|
|
104
104
|
scope :from_current_site, -> { where(Language.table_name => {site_id: Site.current || Site.default}).joins(page: 'language') }
|
|
@@ -66,7 +66,7 @@ module Alchemy
|
|
|
66
66
|
# Returns all content pages.
|
|
67
67
|
#
|
|
68
68
|
scope :contentpages, -> {
|
|
69
|
-
where(layoutpage: [false, nil]).where.
|
|
69
|
+
where(layoutpage: [false, nil]).where(Page.arel_table[:parent_id].not_eq(nil))
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
# Returns all public contentpages that are not locked.
|
|
@@ -13,6 +13,16 @@
|
|
|
13
13
|
<% end %>
|
|
14
14
|
</div>
|
|
15
15
|
<div class="toolbar_spacer"></div>
|
|
16
|
+
<% unless @page.layoutpage? %>
|
|
17
|
+
<div class="button_with_label">
|
|
18
|
+
<%= form_tag alchemy.visit_admin_page_path(@page), id: 'visit_page_form' do %>
|
|
19
|
+
<button class="icon_button" title="<%= Alchemy.t('Visit page') %>">
|
|
20
|
+
<%= render_icon('external-link-alt') %>
|
|
21
|
+
</button>
|
|
22
|
+
<label><%= Alchemy.t("Visit page") %></label>
|
|
23
|
+
<% end %>
|
|
24
|
+
</div>
|
|
25
|
+
<% end %>
|
|
16
26
|
<div class="button_with_label">
|
|
17
27
|
<%= link_to_dialog(
|
|
18
28
|
render_icon('info-circle'),
|
|
@@ -66,16 +76,6 @@
|
|
|
66
76
|
<% end %>
|
|
67
77
|
</div>
|
|
68
78
|
<% end %>
|
|
69
|
-
<% unless @page.layoutpage? %>
|
|
70
|
-
<div class="button_with_label">
|
|
71
|
-
<%= form_tag alchemy.visit_admin_page_path(@page), id: 'visit_page_form' do %>
|
|
72
|
-
<%= button_tag class: 'icon_button', disabled: !@page.public? do %>
|
|
73
|
-
<%= render_icon('external-link-alt') %>
|
|
74
|
-
<% end %>
|
|
75
|
-
<label><%= Alchemy.t("Visit page") %></label>
|
|
76
|
-
<% end %>
|
|
77
|
-
</div>
|
|
78
|
-
<% end %>
|
|
79
79
|
<% if @page.has_hint? %>
|
|
80
80
|
<div class="toolbar_spacer"></div>
|
|
81
81
|
<%= render_hint_for(@page) %>
|
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
1
|
require 'factory_bot'
|
|
4
|
-
require 'alchemy/test_support/factories/element_factory'
|
|
5
|
-
require 'alchemy/test_support/factories/essence_file_factory'
|
|
6
|
-
require 'alchemy/test_support/factories/essence_picture_factory'
|
|
7
2
|
require 'alchemy/test_support/factories/essence_text_factory'
|
|
8
3
|
|
|
9
4
|
FactoryBot.define do
|
data/lib/alchemy/version.rb
CHANGED
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: 4.2.
|
|
4
|
+
version: 4.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Thomas von Deyen
|
|
@@ -13,7 +13,7 @@ authors:
|
|
|
13
13
|
autorequire:
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
|
-
date: 2019-
|
|
16
|
+
date: 2019-08-08 00:00:00.000000000 Z
|
|
17
17
|
dependencies:
|
|
18
18
|
- !ruby/object:Gem::Dependency
|
|
19
19
|
name: active_model_serializers
|
|
@@ -265,22 +265,16 @@ dependencies:
|
|
|
265
265
|
name: ransack
|
|
266
266
|
requirement: !ruby/object:Gem::Requirement
|
|
267
267
|
requirements:
|
|
268
|
-
- - "
|
|
269
|
-
- !ruby/object:Gem::Version
|
|
270
|
-
version: '1.8'
|
|
271
|
-
- - "<"
|
|
268
|
+
- - "~>"
|
|
272
269
|
- !ruby/object:Gem::Version
|
|
273
|
-
version: '
|
|
270
|
+
version: '2.0'
|
|
274
271
|
type: :runtime
|
|
275
272
|
prerelease: false
|
|
276
273
|
version_requirements: !ruby/object:Gem::Requirement
|
|
277
274
|
requirements:
|
|
278
|
-
- - "
|
|
279
|
-
- !ruby/object:Gem::Version
|
|
280
|
-
version: '1.8'
|
|
281
|
-
- - "<"
|
|
275
|
+
- - "~>"
|
|
282
276
|
- !ruby/object:Gem::Version
|
|
283
|
-
version: '
|
|
277
|
+
version: '2.0'
|
|
284
278
|
- !ruby/object:Gem::Dependency
|
|
285
279
|
name: request_store
|
|
286
280
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -366,7 +360,6 @@ extra_rdoc_files: []
|
|
|
366
360
|
files:
|
|
367
361
|
- ".codeclimate.yml"
|
|
368
362
|
- ".editorconfig"
|
|
369
|
-
- ".github/FUNDING.yml"
|
|
370
363
|
- ".github/ISSUE_TEMPLATE/Bug_report.md"
|
|
371
364
|
- ".github/ISSUE_TEMPLATE/Feature_request.md"
|
|
372
365
|
- ".gitignore"
|
|
@@ -374,6 +367,7 @@ files:
|
|
|
374
367
|
- ".localeapp/config.rb"
|
|
375
368
|
- ".rspec"
|
|
376
369
|
- ".rubocop.yml"
|
|
370
|
+
- ".teatro.yml"
|
|
377
371
|
- ".travis.yml"
|
|
378
372
|
- ".yardopts"
|
|
379
373
|
- CHANGELOG.md
|
data/.github/FUNDING.yml
DELETED