pages_core 3.12.0 → 3.12.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/VERSION +1 -1
- data/app/assets/builds/fonts/661557ef.ttf +0 -0
- data/app/assets/builds/fonts/a18fc2d2.woff2 +0 -0
- data/app/assets/builds/fonts/b2c7b78f.woff2 +0 -0
- data/app/assets/builds/fonts/ceddc204.ttf +0 -0
- data/app/assets/builds/pages_core/admin-dist.js +2 -1
- data/app/assets/builds/pages_core/admin.css +9233 -0
- data/app/assets/images/pages/admin/angle-down-solid.svg +1 -0
- data/app/assets/images/pages/admin/icon.svg +1 -0
- data/app/assets/stylesheets/pages_core/admin/components/archive.css +6 -0
- data/app/assets/stylesheets/{pages/admin/components/attachments.scss → pages_core/admin/components/attachments.css} +35 -28
- data/app/assets/stylesheets/{pages/admin.scss → pages_core/admin/components/base.css} +125 -123
- data/app/assets/stylesheets/pages_core/admin/components/forms.css +223 -0
- data/app/assets/stylesheets/{pages/admin/components/header.scss → pages_core/admin/components/header.css} +76 -46
- data/app/assets/stylesheets/{pages/admin/components/image_editor.scss → pages_core/admin/components/image_editor.css} +42 -31
- data/app/assets/stylesheets/{pages/admin/components/image_grid.scss → pages_core/admin/components/image_grid.css} +76 -64
- data/app/assets/stylesheets/{pages/admin/components/image_uploader.scss → pages_core/admin/components/image_uploader.css} +12 -12
- data/app/assets/stylesheets/{pages/admin/components/layout.scss → pages_core/admin/components/layout.css} +13 -9
- data/app/assets/stylesheets/pages_core/admin/components/links.css +40 -0
- data/app/assets/stylesheets/pages_core/admin/components/list_table.css +66 -0
- data/app/assets/stylesheets/{pages/admin/components/login.scss → pages_core/admin/components/login.css} +6 -5
- data/app/assets/stylesheets/{pages/admin/components/modal.scss → pages_core/admin/components/modal.css} +10 -12
- data/app/assets/stylesheets/{pages/admin/components/page_tree.scss → pages_core/admin/components/page_tree.css} +54 -55
- data/app/assets/stylesheets/{pages/admin/components/pagination.scss → pages_core/admin/components/pagination.css} +17 -17
- data/app/assets/stylesheets/{pages/admin/components/sidebar.scss → pages_core/admin/components/sidebar.css} +8 -7
- data/app/assets/stylesheets/{pages/admin/components/tag_editor.scss → pages_core/admin/components/tag_editor.css} +10 -15
- data/app/assets/stylesheets/{pages/admin/components/textarea.scss → pages_core/admin/components/textarea.css} +1 -1
- data/app/assets/stylesheets/{pages/admin/components/toast.scss → pages_core/admin/components/toast.css} +5 -3
- data/app/assets/stylesheets/{pages/admin/components/toolbar.scss → pages_core/admin/components/toolbar.css} +56 -29
- data/app/assets/stylesheets/{pages/admin/controllers/pages.scss → pages_core/admin/controllers/pages.css} +63 -52
- data/app/assets/stylesheets/pages_core/admin/controllers/users.css +3 -0
- data/app/assets/stylesheets/pages_core/admin/vars.css +34 -0
- data/app/assets/stylesheets/pages_core/admin.postcss.css +9 -0
- data/app/formatters/pages_core/image_embedder.rb +5 -27
- data/app/helpers/admin/calendars_helper.rb +8 -0
- data/app/helpers/admin/news_helper.rb +13 -0
- data/app/helpers/pages_core/admin/admin_helper.rb +11 -54
- data/app/helpers/pages_core/admin/deprecated_admin_helper.rb +40 -0
- data/app/helpers/pages_core/images_helper.rb +37 -0
- data/app/javascript/components/Attachments/Attachment.jsx +2 -2
- data/app/javascript/components/EditableImage.jsx +1 -1
- data/app/javascript/components/ImageCropper/Toolbar.jsx +3 -3
- data/app/javascript/components/PageTreeNode.jsx +9 -9
- data/app/javascript/components/RichTextToolbarButton.jsx +1 -1
- data/app/mailers/admin_mailer.rb +1 -0
- data/app/models/invite.rb +8 -0
- data/app/views/admin/calendars/_sidebar.html.erb +47 -0
- data/app/views/admin/calendars/show.html.erb +15 -53
- data/app/views/admin/invites/new.html.erb +2 -8
- data/app/views/admin/invites/show.html.erb +2 -4
- data/app/views/admin/news/_sidebar.html.erb +48 -0
- data/app/views/admin/news/index.html.erb +21 -56
- data/app/views/admin/pages/deleted.html.erb +10 -8
- data/app/views/admin/pages/edit.html.erb +20 -11
- data/app/views/admin/pages/index.html.erb +7 -8
- data/app/views/admin/pages/new.html.erb +10 -14
- data/app/views/admin/password_resets/show.html.erb +3 -5
- data/app/views/admin/users/deactivated.html.erb +6 -7
- data/app/views/admin/users/edit.html.erb +7 -9
- data/app/views/admin/users/index.html.erb +3 -6
- data/app/views/admin/users/login.html.erb +4 -5
- data/app/views/admin/users/new.html.erb +2 -4
- data/app/views/admin/users/new_password.html.erb +4 -5
- data/app/views/admin/users/show.html.erb +11 -9
- data/app/views/errors/401.html.erb +2 -1
- data/app/views/errors/403.html.erb +2 -1
- data/app/views/errors/404.html.erb +1 -3
- data/app/views/errors/405.html.erb +2 -1
- data/app/views/errors/422.html.erb +2 -1
- data/app/views/errors/500.html.erb +2 -3
- data/app/views/layouts/admin/_header.html.erb +1 -2
- data/app/views/layouts/admin/_page_header.html.erb +4 -4
- data/app/views/layouts/admin.html.erb +3 -3
- data/app/views/layouts/errors.html.erb +127 -4
- data/lib/pages_core/engine.rb +4 -3
- data/lib/pages_core.rb +0 -1
- metadata +39 -196
- data/app/assets/images/pages/admin/icon.png +0 -0
- data/app/assets/images/pages/admin/image-editor-bg.png +0 -0
- data/app/assets/images/pages/admin/list-table-pin-blue.gif +0 -0
- data/app/assets/images/pages/admin/list-table-pin-disabled.gif +0 -0
- data/app/assets/images/pages/admin/list-table-pin-green.gif +0 -0
- data/app/assets/images/pages/admin/list-table-pin-red.gif +0 -0
- data/app/assets/images/pages/admin/list-table-pin-yellow.gif +0 -0
- data/app/assets/images/pages/admin/loading-modal.gif +0 -0
- data/app/assets/images/pages/feed-icon-14x14.png +0 -0
- data/app/assets/stylesheets/pages/admin/components/archive.scss +0 -6
- data/app/assets/stylesheets/pages/admin/components/buttons.scss +0 -23
- data/app/assets/stylesheets/pages/admin/components/forms.scss +0 -169
- data/app/assets/stylesheets/pages/admin/components/links.scss +0 -43
- data/app/assets/stylesheets/pages/admin/components/list_table.scss +0 -61
- data/app/assets/stylesheets/pages/admin/controllers/users.scss +0 -3
- data/app/assets/stylesheets/pages/admin/mixins/breakpoints.scss +0 -21
- data/app/assets/stylesheets/pages/admin/mixins/clearfix.scss +0 -7
- data/app/assets/stylesheets/pages/admin/mixins/gradients.scss +0 -7
- data/app/assets/stylesheets/pages/admin/vars.scss +0 -30
- data/app/assets/stylesheets/pages/errors.css +0 -128
- data/vendor/assets/stylesheets/ReactCrop.css +0 -167
- /data/app/assets/stylesheets/{pages/admin/components/tabs.scss → pages_core/admin/components/tabs.css} +0 -0
|
@@ -4,6 +4,7 @@ module PagesCore
|
|
|
4
4
|
module Admin
|
|
5
5
|
module AdminHelper
|
|
6
6
|
include PagesCore::Admin::ContentTabsHelper
|
|
7
|
+
include PagesCore::Admin::DeprecatedAdminHelper
|
|
7
8
|
include PagesCore::Admin::DateRangeHelper
|
|
8
9
|
include PagesCore::Admin::ImageUploadsHelper
|
|
9
10
|
include PagesCore::Admin::LocalesHelper
|
|
@@ -11,20 +12,6 @@ module PagesCore
|
|
|
11
12
|
include PagesCore::Admin::LabelledFieldHelper
|
|
12
13
|
include PagesCore::Admin::TagEditorHelper
|
|
13
14
|
|
|
14
|
-
attr_writer :page_title, :page_description, :page_description_class,
|
|
15
|
-
:page_description_links
|
|
16
|
-
|
|
17
|
-
def add_body_class(class_name)
|
|
18
|
-
@body_classes ||= []
|
|
19
|
-
@body_classes << class_name
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def body_classes
|
|
23
|
-
classes = @body_classes || []
|
|
24
|
-
classes << "with_notice" if flash[:notice]
|
|
25
|
-
classes
|
|
26
|
-
end
|
|
27
|
-
|
|
28
15
|
def rich_text_area_tag(name, content = nil, options = {})
|
|
29
16
|
react_component("RichTextArea",
|
|
30
17
|
options.merge(id: sanitize_to_id(name),
|
|
@@ -32,50 +19,20 @@ module PagesCore
|
|
|
32
19
|
value: content))
|
|
33
20
|
end
|
|
34
21
|
|
|
35
|
-
def
|
|
36
|
-
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
def deprecate_page_description_args(string = nil, class_name = nil)
|
|
40
|
-
if class_name
|
|
41
|
-
ActiveSupport::Deprecation.warn("Setting class through " \
|
|
42
|
-
"page_description is deprecated, " \
|
|
43
|
-
"use page_description_class=")
|
|
44
|
-
end
|
|
45
|
-
return unless string
|
|
22
|
+
def locale_links(&block)
|
|
23
|
+
return unless PagesCore.config.localizations?
|
|
46
24
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
def page_description(string = nil, class_name = nil)
|
|
53
|
-
deprecate_page_description_args(string, class_name)
|
|
54
|
-
@page_description_class = class_name if class_name
|
|
55
|
-
if string
|
|
56
|
-
@page_description = string
|
|
57
|
-
else
|
|
58
|
-
@page_description
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def page_description_links(links = nil)
|
|
63
|
-
return @page_description_links unless links
|
|
64
|
-
|
|
65
|
-
ActiveSupport::Deprecation.warn(
|
|
66
|
-
"Setting page description_links with page_description_links " \
|
|
67
|
-
"is deprecated, use page_description_links="
|
|
25
|
+
safe_join(
|
|
26
|
+
PagesCore.config.locales.map do |locale, name|
|
|
27
|
+
link_to(name, block.call(locale),
|
|
28
|
+
class: ("current" if locale == params[:locale].to_sym))
|
|
29
|
+
end
|
|
68
30
|
)
|
|
69
|
-
@page_description_links = links
|
|
70
31
|
end
|
|
71
32
|
|
|
72
|
-
def
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
ActiveSupport::Deprecation.warn(
|
|
76
|
-
"Setting page title with page_title is deprecated, use page_title="
|
|
77
|
-
)
|
|
78
|
-
@page_title = title
|
|
33
|
+
def month_name(month)
|
|
34
|
+
%w[January February March April May June July August September October
|
|
35
|
+
November December][month - 1]
|
|
79
36
|
end
|
|
80
37
|
end
|
|
81
38
|
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module PagesCore
|
|
4
|
+
module Admin
|
|
5
|
+
module DeprecatedAdminHelper
|
|
6
|
+
def link_separator
|
|
7
|
+
ActiveSupport::Deprecation.warn("link_separator is deprecated")
|
|
8
|
+
|
|
9
|
+
safe_join [" ", tag.span("|", class: "separator"), " "]
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def page_description=(description)
|
|
13
|
+
ActiveSupport::Deprecation.warn(content_helper_deprecation)
|
|
14
|
+
content_for(:page_description, description.html_safe)
|
|
15
|
+
end
|
|
16
|
+
alias page_description page_description=
|
|
17
|
+
|
|
18
|
+
def page_description_links=(links)
|
|
19
|
+
ActiveSupport::Deprecation.warn(content_helper_deprecation)
|
|
20
|
+
content_for(:page_description_links, links.html_safe)
|
|
21
|
+
end
|
|
22
|
+
alias page_description_links page_description_links=
|
|
23
|
+
|
|
24
|
+
def page_title=(title)
|
|
25
|
+
ActiveSupport::Deprecation.warn(content_helper_deprecation)
|
|
26
|
+
content_for(:page_title, title)
|
|
27
|
+
end
|
|
28
|
+
alias page_title page_title=
|
|
29
|
+
|
|
30
|
+
private
|
|
31
|
+
|
|
32
|
+
def content_helper_deprecation
|
|
33
|
+
name = caller_locations(1, 1)[0].label
|
|
34
|
+
replacement = name.gsub(/=$/, "")
|
|
35
|
+
|
|
36
|
+
"The #{name} helper is deprecated, use content_for(:#{replacement})"
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -11,6 +11,25 @@ module PagesCore
|
|
|
11
11
|
)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
def image_caption(image, caption: nil)
|
|
15
|
+
return if caption == false
|
|
16
|
+
|
|
17
|
+
caption = image.caption unless caption.is_a?(String)
|
|
18
|
+
return if caption.blank?
|
|
19
|
+
|
|
20
|
+
tag.figcaption(caption)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def image_figure(image, size: nil, class_name: nil, link: nil, caption: nil)
|
|
24
|
+
class_name = ["image", image_class_name(image), class_name].compact
|
|
25
|
+
size ||= default_image_size
|
|
26
|
+
image_tag = dynamic_image_tag(image,
|
|
27
|
+
size: size, crop: false, upscale: false)
|
|
28
|
+
tag.figure((link ? image_link_to(image_tag, link) : image_tag) +
|
|
29
|
+
image_caption(image, caption: caption),
|
|
30
|
+
class: class_name)
|
|
31
|
+
end
|
|
32
|
+
|
|
14
33
|
def original_dynamic_image_tag(record_or_array, options = {})
|
|
15
34
|
super(
|
|
16
35
|
record_or_array,
|
|
@@ -27,11 +46,29 @@ module PagesCore
|
|
|
27
46
|
|
|
28
47
|
private
|
|
29
48
|
|
|
49
|
+
def default_image_size
|
|
50
|
+
"2000x2000"
|
|
51
|
+
end
|
|
52
|
+
|
|
30
53
|
def extract_alt_text(record_or_array)
|
|
31
54
|
record = extract_dynamic_image_record(record_or_array)
|
|
32
55
|
return {} unless record.alternative?
|
|
33
56
|
|
|
34
57
|
{ alt: record.alternative }
|
|
35
58
|
end
|
|
59
|
+
|
|
60
|
+
def image_class_name(image)
|
|
61
|
+
if image.size.x == image.size.y
|
|
62
|
+
"square"
|
|
63
|
+
elsif image.size.x > image.size.y
|
|
64
|
+
"landscape"
|
|
65
|
+
else
|
|
66
|
+
"portrait"
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def image_link_to(content, href)
|
|
71
|
+
tag.a(content, href: href)
|
|
72
|
+
end
|
|
36
73
|
end
|
|
37
74
|
end
|
|
@@ -62,7 +62,7 @@ export default function Attachment(props) {
|
|
|
62
62
|
classes.push("uploading");
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
const icon = uploading ? "cloud-
|
|
65
|
+
const icon = uploading ? "cloud-arrow-up" : "paperclip";
|
|
66
66
|
|
|
67
67
|
const localeDir = (locales && locales[locale] && locales[locale].dir) || "ltr";
|
|
68
68
|
|
|
@@ -95,7 +95,7 @@ export default function Attachment(props) {
|
|
|
95
95
|
{attachment &&
|
|
96
96
|
<div className="attachment-info">
|
|
97
97
|
<h3>
|
|
98
|
-
<i className={`fa fa-${icon} icon`} />
|
|
98
|
+
<i className={`fa-solid fa-${icon} icon`} />
|
|
99
99
|
{name() || <em>Untitled</em>}<br />
|
|
100
100
|
</h3>
|
|
101
101
|
{!uploading &&
|
|
@@ -40,7 +40,7 @@ export default function EditableImage(props) {
|
|
|
40
40
|
<div className="editable-image">
|
|
41
41
|
{altWarning &&
|
|
42
42
|
<span className="alt-warning" title="Alternative text is missing">
|
|
43
|
-
<i className="fa fa-exclamation
|
|
43
|
+
<i className="fa-solid fa-triangle-exclamation icon" />
|
|
44
44
|
</span>}
|
|
45
45
|
<img src={src}
|
|
46
46
|
width={props.width}
|
|
@@ -30,12 +30,12 @@ export default function Toolbar(props) {
|
|
|
30
30
|
<button title="Crop image"
|
|
31
31
|
onClick={props.toggleCrop}
|
|
32
32
|
className={cropping ? "active" : ""}>
|
|
33
|
-
<i className="fa fa-crop" />
|
|
33
|
+
<i className="fa-solid fa-crop" />
|
|
34
34
|
</button>
|
|
35
35
|
<button disabled={cropping}
|
|
36
36
|
title="Toggle focal point"
|
|
37
37
|
onClick={props.toggleFocal}>
|
|
38
|
-
<i className="fa fa-bullseye" />
|
|
38
|
+
<i className="fa-solid fa-bullseye" />
|
|
39
39
|
</button>
|
|
40
40
|
<a href={props.image.original_url}
|
|
41
41
|
className="button"
|
|
@@ -43,7 +43,7 @@ export default function Toolbar(props) {
|
|
|
43
43
|
disabled={cropping}
|
|
44
44
|
download={props.image.filename}
|
|
45
45
|
onClick={evt => cropping && evt.preventDefault()}>
|
|
46
|
-
<i className="fa fa-download" />
|
|
46
|
+
<i className="fa-solid fa-download" />
|
|
47
47
|
</a>
|
|
48
48
|
</div>
|
|
49
49
|
{cropping && (
|
|
@@ -54,7 +54,7 @@ export default class PageTreeNode extends React.Component {
|
|
|
54
54
|
<button type="button"
|
|
55
55
|
className="add"
|
|
56
56
|
onClick={() => this.props.addChild(this.props.index)}>
|
|
57
|
-
<i className="fa fa-plus icon" />
|
|
57
|
+
<i className="fa-solid fa-plus icon" />
|
|
58
58
|
Add child
|
|
59
59
|
</button>
|
|
60
60
|
</span>
|
|
@@ -113,7 +113,7 @@ export default class PageTreeNode extends React.Component {
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
button(label, options) {
|
|
116
|
-
let icon = "fa fa-" + options.icon + " icon";
|
|
116
|
+
let icon = "fa-solid fa-" + options.icon + " icon";
|
|
117
117
|
return (
|
|
118
118
|
<button type="button"
|
|
119
119
|
className={options.className}
|
|
@@ -182,9 +182,9 @@ export default class PageTreeNode extends React.Component {
|
|
|
182
182
|
var classnames = null;
|
|
183
183
|
|
|
184
184
|
if (collapsed) {
|
|
185
|
-
classnames = "collapse fa fa-caret-right";
|
|
185
|
+
classnames = "collapse fa-solid fa-caret-right";
|
|
186
186
|
} else {
|
|
187
|
-
classnames = "collapse fa fa-caret-down";
|
|
187
|
+
classnames = "collapse fa-solid fa-caret-down";
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
return (
|
|
@@ -302,7 +302,7 @@ export default class PageTreeNode extends React.Component {
|
|
|
302
302
|
|
|
303
303
|
return (
|
|
304
304
|
<div className="page edit">
|
|
305
|
-
<i className="fa fa-file
|
|
305
|
+
<i className="fa-regular fa-file icon"></i>
|
|
306
306
|
<form onSubmit={performEdit}>
|
|
307
307
|
<input type="text"
|
|
308
308
|
value={this.state.newName}
|
|
@@ -311,7 +311,7 @@ export default class PageTreeNode extends React.Component {
|
|
|
311
311
|
autoFocus
|
|
312
312
|
onChange={handleNameChange} />
|
|
313
313
|
<button className="save" type="submit">
|
|
314
|
-
<i className="fa fa-cloud icon"></i>
|
|
314
|
+
<i className="fa-solid fa-cloud icon"></i>
|
|
315
315
|
Save
|
|
316
316
|
</button>
|
|
317
317
|
{this.button("Cancel", {
|
|
@@ -331,7 +331,7 @@ export default class PageTreeNode extends React.Component {
|
|
|
331
331
|
var pageName = <span className="name">{this.pageName()}</span>;
|
|
332
332
|
var className = "page";
|
|
333
333
|
|
|
334
|
-
var iconClass = "fa fa-file
|
|
334
|
+
var iconClass = "fa-regular fa-file icon";
|
|
335
335
|
|
|
336
336
|
if (typeof(node.status) != "undefined") {
|
|
337
337
|
className = `page status-${this.node().status}`;
|
|
@@ -344,9 +344,9 @@ export default class PageTreeNode extends React.Component {
|
|
|
344
344
|
}
|
|
345
345
|
|
|
346
346
|
if (node.news_page) {
|
|
347
|
-
iconClass = "fa fa-
|
|
347
|
+
iconClass = "fa-regular fa-file-lines icon";
|
|
348
348
|
} else if (node.pinned) {
|
|
349
|
-
iconClass = "fa fa-flag
|
|
349
|
+
iconClass = "fa-regular fa-flag icon";
|
|
350
350
|
}
|
|
351
351
|
|
|
352
352
|
return (
|
|
@@ -7,7 +7,7 @@ export default class RichTextToolbarButton extends React.Component {
|
|
|
7
7
|
<a title={this.props.name}
|
|
8
8
|
className={"button " + this.props.className}
|
|
9
9
|
onClick={this.props.onClick}>
|
|
10
|
-
<i className={"fa fa-" + this.props.className} />
|
|
10
|
+
<i className={"fa-solid fa-" + this.props.className} />
|
|
11
11
|
</a>
|
|
12
12
|
);
|
|
13
13
|
}
|
data/app/mailers/admin_mailer.rb
CHANGED
data/app/models/invite.rb
CHANGED
|
@@ -15,9 +15,17 @@ class Invite < ApplicationRecord
|
|
|
15
15
|
|
|
16
16
|
validates :token, presence: true
|
|
17
17
|
|
|
18
|
+
validate :user_already_exists
|
|
19
|
+
|
|
18
20
|
private
|
|
19
21
|
|
|
20
22
|
def ensure_token
|
|
21
23
|
self.token ||= SecureRandom.hex(32)
|
|
22
24
|
end
|
|
25
|
+
|
|
26
|
+
def user_already_exists
|
|
27
|
+
return unless User.find_by_email(email)
|
|
28
|
+
|
|
29
|
+
errors.add(:email, :taken)
|
|
30
|
+
end
|
|
23
31
|
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<% if policy(Page).new? %>
|
|
2
|
+
<h2>
|
|
3
|
+
New entry
|
|
4
|
+
</h2>
|
|
5
|
+
<p>
|
|
6
|
+
<%= form_tag new_admin_page_path, method: :get do %>
|
|
7
|
+
In
|
|
8
|
+
<%= select_tag("parent", calendar_page_options(locale)) %>
|
|
9
|
+
<button type="submit">
|
|
10
|
+
Go
|
|
11
|
+
</button>
|
|
12
|
+
<% end %>
|
|
13
|
+
</p>
|
|
14
|
+
<% end %>
|
|
15
|
+
|
|
16
|
+
<div class="archive-index">
|
|
17
|
+
<% calendar_years_with_count.each do |year, year_count| %>
|
|
18
|
+
<h2>
|
|
19
|
+
<%= link_to_unless_current(
|
|
20
|
+
year,
|
|
21
|
+
admin_calendar_path(locale, year: year)
|
|
22
|
+
) %>
|
|
23
|
+
<span class="count">
|
|
24
|
+
(<%= year_count %>)
|
|
25
|
+
</span>
|
|
26
|
+
</h2>
|
|
27
|
+
<ul>
|
|
28
|
+
<% calendar_months_count(year).each do |month, month_count| %>
|
|
29
|
+
<li>
|
|
30
|
+
<% if year == @year && month == @month %>
|
|
31
|
+
<strong>
|
|
32
|
+
<%= month_name(month) %>
|
|
33
|
+
</strong>
|
|
34
|
+
<% else %>
|
|
35
|
+
<%= link_to_unless_current(
|
|
36
|
+
month_name(month),
|
|
37
|
+
admin_calendar_path(locale, month: month, year: year)
|
|
38
|
+
) %>
|
|
39
|
+
<% end %>
|
|
40
|
+
<span class="count">
|
|
41
|
+
(<%= month_count %>)
|
|
42
|
+
</span>
|
|
43
|
+
</li>
|
|
44
|
+
<% end %>
|
|
45
|
+
</ul>
|
|
46
|
+
<% end %>
|
|
47
|
+
</div>
|
|
@@ -1,57 +1,20 @@
|
|
|
1
|
-
<%
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
<% content_for :page_title, "Calendar" %>
|
|
2
|
+
<% content_for(:page_description) do %>
|
|
3
|
+
Calendar:
|
|
4
|
+
<em>
|
|
5
|
+
<% if @month %>
|
|
6
|
+
<%= month_name(@month) %>
|
|
7
|
+
<% end %>
|
|
8
|
+
<%= @year %>
|
|
9
|
+
</em>
|
|
10
|
+
<% end %>
|
|
5
11
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
%>
|
|
12
|
+
<% content_for :page_description_links do %>
|
|
13
|
+
<%= locale_links { |l| admin_calendar_path(l, @year) } %>
|
|
14
|
+
<% end %>
|
|
10
15
|
|
|
11
16
|
<% content_for :sidebar do %>
|
|
12
|
-
|
|
13
|
-
<p>
|
|
14
|
-
<%= form_tag new_admin_page_path, method: :get do %>
|
|
15
|
-
In <%= select_tag('parent',
|
|
16
|
-
options_for_select(calendar_pages(@locale).map{|p| [page_name(p, include_parents: true).gsub("»", "»"), p.id] })) %>
|
|
17
|
-
<%= submit_tag "Go", name: nil %>
|
|
18
|
-
<% end %>
|
|
19
|
-
</p>
|
|
20
|
-
|
|
21
|
-
<div class="archive-index">
|
|
22
|
-
<% calendar_years_with_count.each do |year, year_count| %>
|
|
23
|
-
<h2>
|
|
24
|
-
<%= link_to_unless_current(year,
|
|
25
|
-
admin_calendar_path(
|
|
26
|
-
@locale,
|
|
27
|
-
year: year)
|
|
28
|
-
) %>
|
|
29
|
-
<span class="count">
|
|
30
|
-
(<%= year_count %>)
|
|
31
|
-
</span>
|
|
32
|
-
</h2>
|
|
33
|
-
<ul>
|
|
34
|
-
<% calendar_months_count(year).each do |month, month_count| %>
|
|
35
|
-
<li>
|
|
36
|
-
<% if year == @year && month == @month %>
|
|
37
|
-
<strong>
|
|
38
|
-
<%= month_names[month-1] %>
|
|
39
|
-
</strong>
|
|
40
|
-
<% else %>
|
|
41
|
-
<%= link_to_unless_current(
|
|
42
|
-
month_names[month-1],
|
|
43
|
-
admin_calendar_path(@locale,
|
|
44
|
-
month: month,
|
|
45
|
-
year: year)) %>
|
|
46
|
-
<% end %>
|
|
47
|
-
<span class="count">
|
|
48
|
-
(<%= month_count %>)
|
|
49
|
-
</span>
|
|
50
|
-
</li>
|
|
51
|
-
<% end %>
|
|
52
|
-
</ul>
|
|
53
|
-
<% end %>
|
|
54
|
-
</div>
|
|
17
|
+
<%= render(partial: "sidebar", locals: { locale: @locale }) %>
|
|
55
18
|
<% end %>
|
|
56
19
|
|
|
57
20
|
<% if @pages.any? %>
|
|
@@ -72,8 +35,7 @@
|
|
|
72
35
|
}) %>
|
|
73
36
|
<% end %>
|
|
74
37
|
</table>
|
|
75
|
-
|
|
76
|
-
<%= will_paginate @pages %>
|
|
38
|
+
<%= will_paginate @pages, renderer: PagesCore::LinkRenderer %>
|
|
77
39
|
<% else %>
|
|
78
40
|
<div class="content">
|
|
79
41
|
<p>
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
<%
|
|
2
|
-
|
|
3
|
-
self.page_description = "New invite"
|
|
4
|
-
%>
|
|
5
|
-
|
|
6
|
-
<% content_for(:sidebar) do %>
|
|
7
|
-
|
|
8
|
-
<% end %>
|
|
1
|
+
<% content_for :page_title, "New invite" %>
|
|
2
|
+
<% content_for :page_description, "New invite" %>
|
|
9
3
|
|
|
10
4
|
<%= form_for [:admin, @invite], builder: PagesCore::FormBuilder do |f| %>
|
|
11
5
|
<%= f.labelled_text_field :email %>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<% if policy(Page).new? %>
|
|
2
|
+
<h2>New article</h2>
|
|
3
|
+
<p>
|
|
4
|
+
<%= form_tag new_admin_page_path, method: :get do %>
|
|
5
|
+
In
|
|
6
|
+
<%= select_tag("parent", news_page_options(news_pages)) %>
|
|
7
|
+
<button type="submit">
|
|
8
|
+
Go
|
|
9
|
+
</button>
|
|
10
|
+
<% end %>
|
|
11
|
+
</p>
|
|
12
|
+
<% end %>
|
|
13
|
+
|
|
14
|
+
<div class="archive-index">
|
|
15
|
+
<% archive_finder.years_with_count.reverse.each do |year, year_count| %>
|
|
16
|
+
<h2>
|
|
17
|
+
<%= link_to_unless_current(
|
|
18
|
+
year,
|
|
19
|
+
admin_news_index_path(locale, year: year, category: category&.slug)
|
|
20
|
+
) %>
|
|
21
|
+
<%= ": #{@category.name}" if @category %>
|
|
22
|
+
<span class="count">
|
|
23
|
+
(<%= year_count %>)
|
|
24
|
+
</span>
|
|
25
|
+
</h2>
|
|
26
|
+
<ul>
|
|
27
|
+
<% archive_finder.months_in_year_with_count(year).reverse.each do |month, page_count| %>
|
|
28
|
+
<li>
|
|
29
|
+
<% if year == @year && month == @month %>
|
|
30
|
+
<strong>
|
|
31
|
+
<%= month_name(month) %>
|
|
32
|
+
</strong>
|
|
33
|
+
(<%= page_count %>)
|
|
34
|
+
<% else %>
|
|
35
|
+
<%= link_to(
|
|
36
|
+
month_name(month),
|
|
37
|
+
admin_news_index_path(locale, year: year, month: month,
|
|
38
|
+
category: category&.slug)
|
|
39
|
+
) %>
|
|
40
|
+
<span class="count">
|
|
41
|
+
(<%= page_count %>)
|
|
42
|
+
</span>
|
|
43
|
+
<% end %>
|
|
44
|
+
</li>
|
|
45
|
+
<% end %>
|
|
46
|
+
</ul>
|
|
47
|
+
<% end %>
|
|
48
|
+
</div>
|
|
@@ -1,62 +1,27 @@
|
|
|
1
|
-
<%
|
|
2
|
-
month_names = %w{January February March April May June July August September October November December}
|
|
3
|
-
page_title "News"
|
|
4
|
-
page_description "<em>News: #{month_names[@month - 1] if @month} #{@year}</em>"
|
|
1
|
+
<% content_for(:page_title, "News") %>
|
|
5
2
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
%>
|
|
3
|
+
<% content_for(:page_description) do %>
|
|
4
|
+
News:
|
|
5
|
+
<em>
|
|
6
|
+
<% if @month %>
|
|
7
|
+
<%= month_name(@month) %>
|
|
8
|
+
<% end %>
|
|
9
|
+
<%= @year %>
|
|
10
|
+
</em>
|
|
11
|
+
<% end %>
|
|
12
|
+
|
|
13
|
+
<% content_for :page_description_links do %>
|
|
14
|
+
<%= locale_links { |l| admin_news_index_path(l, @year) } %>
|
|
15
|
+
<% end %>
|
|
10
16
|
|
|
11
17
|
<% content_for :sidebar do %>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
<%= submit_tag "Go", name: nil %>
|
|
20
|
-
<% end %>
|
|
21
|
-
</p>
|
|
22
|
-
<% end %>
|
|
23
|
-
<div class="archive-index">
|
|
24
|
-
<% @archive_finder.years_with_count.reverse.each do |year, year_count| %>
|
|
25
|
-
<h2>
|
|
26
|
-
<%= link_to_unless_current(year,
|
|
27
|
-
admin_news_index_path(
|
|
28
|
-
@locale,
|
|
29
|
-
year: year,
|
|
30
|
-
category: @category&.slug)
|
|
31
|
-
) %>
|
|
32
|
-
<%= ": #{@category.name}" if @category %>
|
|
33
|
-
<span class="count">
|
|
34
|
-
(<%= year_count %>)
|
|
35
|
-
</span>
|
|
36
|
-
</h2>
|
|
37
|
-
<ul>
|
|
38
|
-
<% @archive_finder.months_in_year_with_count(year).reverse.each do |month, page_count| %>
|
|
39
|
-
<li>
|
|
40
|
-
<% if year == @year && month == @month %>
|
|
41
|
-
<strong>
|
|
42
|
-
<%= month_names[month-1] %>
|
|
43
|
-
</strong>
|
|
44
|
-
(<%= page_count %>)
|
|
45
|
-
<% else %>
|
|
46
|
-
<%= link_to(month_names[month-1],
|
|
47
|
-
admin_news_index_path(@locale,
|
|
48
|
-
month: month,
|
|
49
|
-
year: year,
|
|
50
|
-
category: @category&.slug)) %>
|
|
51
|
-
<span class="count">
|
|
52
|
-
(<%= page_count %>)
|
|
53
|
-
</span>
|
|
54
|
-
<% end %>
|
|
55
|
-
</li>
|
|
56
|
-
<% end %>
|
|
57
|
-
</ul>
|
|
58
|
-
<% end %>
|
|
59
|
-
</div>
|
|
18
|
+
<%= render(partial: "sidebar",
|
|
19
|
+
locals: {
|
|
20
|
+
locale: @locale,
|
|
21
|
+
category: @category,
|
|
22
|
+
news_pages: @news_pages,
|
|
23
|
+
archive_finder: @archive_finder
|
|
24
|
+
}) %>
|
|
60
25
|
<% end %>
|
|
61
26
|
|
|
62
27
|
<% if @pages.length > 0 %>
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
<%
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
%>
|
|
1
|
+
<% content_for :page_title, "Deleted pages" %>
|
|
2
|
+
|
|
3
|
+
<% content_for :page_description do %>
|
|
4
|
+
<%= link_to("All pages", admin_pages_path(@locale)) %> /
|
|
5
|
+
Deleted pages
|
|
6
|
+
<% end %>
|
|
7
|
+
|
|
8
|
+
<% content_for :page_description_links do %>
|
|
9
|
+
<%= locale_links { |l| deleted_admin_pages_path(l) } %>
|
|
10
|
+
<% end %>
|
|
9
11
|
|
|
10
12
|
<% if @pages.any? %>
|
|
11
13
|
<table class="deleted-pages list">
|