refinerycms-pages 3.0.1 → 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/refinery/admin/page_parts_controller.rb +1 -1
- data/app/helpers/refinery/admin/pages_helper.rb +1 -0
- data/app/presenters/refinery/pages/section_presenter.rb +5 -0
- data/app/presenters/refinery/pages/title_section_presenter.rb +3 -1
- data/app/views/refinery/admin/pages/_page.html.erb +1 -1
- data/license.md +1 -1
- data/refinerycms-pages.gemspec +1 -1
- data/spec/features/refinery/admin/pages_spec.rb +37 -32
- data/spec/helpers/refinery/pages/admin/pages_helper_spec.rb +0 -29
- metadata +12 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e83dbfdfba885ff0dd0f31a0b23f226c01483b0
|
4
|
+
data.tar.gz: 1eb13220474770daf946ab20955393fab25e7388
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 94f97db5e16189f54615a2fdc27000554583c2704ef9cf8a3261ae87e6e08034892bff197c36f2758aabf53f807abf8645db29ad7e74ad4bb80d460f17f5073f
|
7
|
+
data.tar.gz: 6ea014c7893bf92120a23aece4e6b8d005f75c2cc37a2bdb644dcdbf60d719f2e0773c13195ca24159c840e32ed2a098457db8bf319b8c4b840f1ceea01bed2d
|
@@ -50,6 +50,7 @@ module Refinery
|
|
50
50
|
# We show the title from the next available locale
|
51
51
|
# if there is no title for the current locale
|
52
52
|
def page_title_with_translations(page)
|
53
|
+
Refinery.deprecate('page_title_with_translations', when: '3.1', replacement: 'translated_field')
|
53
54
|
page.title.presence || page.translations.detect { |t| t.title.present?}.title
|
54
55
|
end
|
55
56
|
|
@@ -11,6 +11,7 @@ module Refinery
|
|
11
11
|
# Sections may be hidden, in which case they wont display at all.
|
12
12
|
class SectionPresenter
|
13
13
|
include ActionView::Helpers::TagHelper
|
14
|
+
include ActionView::Helpers::SanitizeHelper
|
14
15
|
|
15
16
|
def initialize(initial_hash = {})
|
16
17
|
initial_hash.map do |key, value|
|
@@ -62,6 +63,10 @@ module Refinery
|
|
62
63
|
attr_writer :id, :fallback_html, :hidden
|
63
64
|
|
64
65
|
def wrap_content_in_tag(content)
|
66
|
+
content = sanitize(content,
|
67
|
+
tags: Loofah::HTML5::WhiteList::ALLOWED_ELEMENTS,
|
68
|
+
attributes: Loofah::HTML5::WhiteList::ALLOWED_ATTRIBUTES
|
69
|
+
)
|
65
70
|
content_tag(:section, content_tag(:div, content, :class => 'inner'), :id => id)
|
66
71
|
end
|
67
72
|
end
|
@@ -4,10 +4,12 @@ module Refinery
|
|
4
4
|
# a title. These are much like normal sections except they are wrapped in
|
5
5
|
# a h1 tag rather than a div.
|
6
6
|
class TitleSectionPresenter < SectionPresenter
|
7
|
+
include ActionView::Helpers::SanitizeHelper
|
8
|
+
|
7
9
|
private
|
8
10
|
|
9
11
|
def wrap_content_in_tag(content)
|
10
|
-
content_tag(:h1, content, :id => id)
|
12
|
+
content_tag(:h1, sanitize(content), :id => id)
|
11
13
|
end
|
12
14
|
end
|
13
15
|
end
|
data/license.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# MIT License
|
2
2
|
|
3
|
-
Copyright (c) 2005 [Resolve Digital](
|
3
|
+
Copyright (c) 2005 [Resolve Digital](https://resolve.digital)
|
4
4
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
data/refinerycms-pages.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = `git ls-files`.split("\n")
|
20
20
|
s.test_files = `git ls-files -- spec/*`.split("\n")
|
21
21
|
|
22
|
-
s.add_dependency 'friendly_id', '
|
22
|
+
s.add_dependency 'friendly_id', ['>= 5.1.0', '< 5.3']
|
23
23
|
s.add_dependency 'globalize', ['>= 4.0.0', '< 5.2']
|
24
24
|
s.add_dependency 'awesome_nested_set', '~> 3.0.0'
|
25
25
|
s.add_dependency 'seo_meta', '~> 2.0.0.rc.1'
|
@@ -13,6 +13,15 @@ def expect_window_without_content(content, window: windows.last)
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
+
def switch_page_form_locale(locale)
|
17
|
+
within "#switch_locale_picker" do
|
18
|
+
find("a", text: locale.upcase).click
|
19
|
+
end
|
20
|
+
|
21
|
+
# make sure that the locale change has taken effect
|
22
|
+
expect(page).to have_selector("#switch_locale_picker li.selected a##{locale.downcase}")
|
23
|
+
end
|
24
|
+
|
16
25
|
module Refinery
|
17
26
|
module Admin
|
18
27
|
describe "Pages", :type => :feature do
|
@@ -99,14 +108,14 @@ module Refinery
|
|
99
108
|
expect(page).not_to have_content(locations.title)
|
100
109
|
end
|
101
110
|
|
102
|
-
it "expands children", :
|
111
|
+
it "expands children", js: true do
|
103
112
|
find("#page_#{company.id} .title.toggle").click
|
104
113
|
|
105
114
|
expect(page).to have_content(team.title)
|
106
115
|
expect(page).to have_content(locations.title)
|
107
116
|
end
|
108
117
|
|
109
|
-
it "expands children when nested multiple levels deep", :
|
118
|
+
it "expands children when nested multiple levels deep", js: true do
|
110
119
|
find("#page_#{company.id} .title.toggle").click
|
111
120
|
find("#page_#{locations.id} .title.toggle").click
|
112
121
|
|
@@ -149,7 +158,7 @@ module Refinery
|
|
149
158
|
expect(page.body).to match(%r{href="/my-first-page"})
|
150
159
|
end
|
151
160
|
|
152
|
-
it "includes menu title field", :
|
161
|
+
it "includes menu title field", js: true do
|
153
162
|
visit refinery.new_admin_page_path
|
154
163
|
|
155
164
|
fill_in "Title", :with => "My first page"
|
@@ -204,7 +213,7 @@ module Refinery
|
|
204
213
|
|
205
214
|
context 'when saving and continuing to edit' do
|
206
215
|
before :each do
|
207
|
-
|
216
|
+
expect(page).to have_selector('a[tooltip^=Edit]', visible: true)
|
208
217
|
find('a[tooltip^=Edit]').click
|
209
218
|
|
210
219
|
fill_in "Title", :with => "Updated"
|
@@ -212,13 +221,13 @@ module Refinery
|
|
212
221
|
find('#flash').visible?
|
213
222
|
end
|
214
223
|
|
215
|
-
it "updates page", :
|
224
|
+
it "updates page", js: true do
|
216
225
|
expect(page).to have_content("'Updated' was successfully updated.")
|
217
226
|
end
|
218
227
|
|
219
228
|
# Regression test for https://github.com/refinery/refinerycms/issues/1892
|
220
229
|
context 'when saving to exit (a second time)' do
|
221
|
-
it 'updates page', :
|
230
|
+
it 'updates page', js: true do
|
222
231
|
find("#submit_button").click
|
223
232
|
expect(page).to have_content("'Updated' was successfully updated.")
|
224
233
|
end
|
@@ -226,7 +235,7 @@ module Refinery
|
|
226
235
|
end
|
227
236
|
end
|
228
237
|
|
229
|
-
describe 'Previewing', :
|
238
|
+
describe 'Previewing', js: true do
|
230
239
|
let(:preview_content) { "Some changes I'm unsure what they will look like".freeze }
|
231
240
|
context "an existing page" do
|
232
241
|
before { Page.create :title => 'Preview me' }
|
@@ -466,7 +475,7 @@ module Refinery
|
|
466
475
|
end
|
467
476
|
end
|
468
477
|
|
469
|
-
describe "a page with two locales"
|
478
|
+
describe "a page with two locales" do
|
470
479
|
let(:en_page_title) { 'News' }
|
471
480
|
let(:en_page_slug) { 'news' }
|
472
481
|
let(:ru_page_title) { 'Новости' }
|
@@ -489,19 +498,18 @@ module Refinery
|
|
489
498
|
news_page.destroy!
|
490
499
|
visit refinery.admin_pages_path
|
491
500
|
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
end
|
501
|
+
click_link "Add new page"
|
502
|
+
switch_page_form_locale "RU"
|
503
|
+
|
496
504
|
fill_in "Title", :with => ru_page_title
|
497
505
|
click_button "Save"
|
506
|
+
expect(page).to have_selector("#page_#{Page.last.id} .actions")
|
498
507
|
|
499
508
|
within "#page_#{Page.last.id} .actions" do
|
500
509
|
find("a[href^='/#{Refinery::Core.backend_route}/pages/#{ru_page_slug_encoded}/edit']").click
|
501
510
|
end
|
502
|
-
|
503
|
-
|
504
|
-
end
|
511
|
+
|
512
|
+
switch_page_form_locale "EN"
|
505
513
|
fill_in "Title", :with => en_page_title
|
506
514
|
find("#submit_button").click
|
507
515
|
|
@@ -527,7 +535,7 @@ module Refinery
|
|
527
535
|
end
|
528
536
|
end
|
529
537
|
|
530
|
-
it "uses the slug from the default locale in admin" do
|
538
|
+
it "uses the slug from the default locale in admin", js: true do
|
531
539
|
visit refinery.admin_pages_path
|
532
540
|
|
533
541
|
within "#page_#{news_page.id}" do
|
@@ -570,9 +578,8 @@ module Refinery
|
|
570
578
|
it "lets you add a Russian title without an English title" do
|
571
579
|
ru_page.destroy!
|
572
580
|
find('a', text: 'Add new page').trigger(:click)
|
573
|
-
|
574
|
-
|
575
|
-
end
|
581
|
+
switch_page_form_locale "RU"
|
582
|
+
|
576
583
|
fill_in "Title", :with => ru_page_title
|
577
584
|
click_button "Save"
|
578
585
|
|
@@ -622,7 +629,7 @@ module Refinery
|
|
622
629
|
end
|
623
630
|
end
|
624
631
|
|
625
|
-
context "when page is a child page"
|
632
|
+
context "when page is a child page" do
|
626
633
|
it 'succeeds' do
|
627
634
|
ru_page.destroy!
|
628
635
|
parent_page = Page.create(:title => "Parent page")
|
@@ -642,12 +649,12 @@ module Refinery
|
|
642
649
|
end
|
643
650
|
end
|
644
651
|
|
645
|
-
describe "new page part"
|
652
|
+
describe "new page part" do
|
646
653
|
before do
|
647
654
|
allow(Refinery::Pages).to receive(:new_page_parts).and_return(true)
|
648
655
|
end
|
649
656
|
|
650
|
-
it "adds new page part" do
|
657
|
+
it "adds new page part", js: true do
|
651
658
|
visit refinery.new_admin_page_path
|
652
659
|
find("#add_page_part").trigger(:click)
|
653
660
|
|
@@ -662,7 +669,7 @@ module Refinery
|
|
662
669
|
end
|
663
670
|
end
|
664
671
|
|
665
|
-
describe "delete existing page part"
|
672
|
+
describe "delete existing page part" do
|
666
673
|
let!(:some_page) { Page.create! :title => "Some Page" }
|
667
674
|
|
668
675
|
before do
|
@@ -673,7 +680,7 @@ module Refinery
|
|
673
680
|
allow(Refinery::Pages).to receive(:new_page_parts).and_return(true)
|
674
681
|
end
|
675
682
|
|
676
|
-
it "deletes page parts" do
|
683
|
+
it "deletes page parts", js: true do
|
677
684
|
visit refinery.edit_admin_page_path(some_page.id)
|
678
685
|
|
679
686
|
within "#page_parts" do
|
@@ -721,7 +728,7 @@ module Refinery
|
|
721
728
|
@page = parent_page.children.create :title => 'Child Page'
|
722
729
|
end
|
723
730
|
|
724
|
-
specify 'sub page should inherit them', :
|
731
|
+
specify 'sub page should inherit them', js: true do
|
725
732
|
visit refinery.edit_admin_page_path(@page.id)
|
726
733
|
|
727
734
|
find('#toggle_advanced_options').trigger(:click)
|
@@ -739,7 +746,7 @@ module Refinery
|
|
739
746
|
end
|
740
747
|
|
741
748
|
# regression spec for https://github.com/refinery/refinerycms/issues/1891
|
742
|
-
describe "a page part with HTML"
|
749
|
+
describe "a page part with HTML" do
|
743
750
|
before do
|
744
751
|
page = Refinery::Page.create! :title => "test"
|
745
752
|
Refinery::Pages.default_parts.each_with_index do |default_page_part, index|
|
@@ -752,7 +759,7 @@ module Refinery
|
|
752
759
|
end
|
753
760
|
end
|
754
761
|
|
755
|
-
specify "should retain the html" do
|
762
|
+
specify "should retain the html", js:true do
|
756
763
|
visit refinery.admin_pages_path
|
757
764
|
find('a[tooltip="Edit this page"]').trigger(:click)
|
758
765
|
Capybara.ignore_hidden_elements = false
|
@@ -766,7 +773,7 @@ module Refinery
|
|
766
773
|
before { Globalize.locale = :en }
|
767
774
|
refinery_login
|
768
775
|
|
769
|
-
describe "a page with a single locale"
|
776
|
+
describe "a page with a single locale" do
|
770
777
|
before do
|
771
778
|
allow(Refinery::I18n).to receive(:frontend_locales).and_return([:en, :lv])
|
772
779
|
Page.create :title => 'First Page'
|
@@ -775,11 +782,9 @@ module Refinery
|
|
775
782
|
it "can have a second locale added to it" do
|
776
783
|
visit refinery.admin_pages_path
|
777
784
|
|
778
|
-
|
785
|
+
click_link "Add new page"
|
786
|
+
switch_page_form_locale "LV"
|
779
787
|
|
780
|
-
within "#switch_locale_picker" do
|
781
|
-
find('a', text: "LV").trigger(:click)
|
782
|
-
end
|
783
788
|
fill_in "Title", :with => "Brīva vieta reklāmai"
|
784
789
|
click_button "Save"
|
785
790
|
|
@@ -73,35 +73,6 @@ module Refinery
|
|
73
73
|
end
|
74
74
|
end
|
75
75
|
end
|
76
|
-
|
77
|
-
describe "#page_title_with_translations" do
|
78
|
-
let(:page) { FactoryGirl.build(:page) }
|
79
|
-
|
80
|
-
before do
|
81
|
-
Globalize.with_locale(:en) do
|
82
|
-
page.title = "draft"
|
83
|
-
page.save!
|
84
|
-
end
|
85
|
-
|
86
|
-
Globalize.with_locale(:lv) do
|
87
|
-
page.title = "melnraksts"
|
88
|
-
page.save!
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
context "when title is present" do
|
93
|
-
it "returns it" do
|
94
|
-
expect(helper.page_title_with_translations(page)).to eq("draft")
|
95
|
-
end
|
96
|
-
end
|
97
|
-
|
98
|
-
context "when title for current locale isn't available" do
|
99
|
-
it "returns existing title from translations" do
|
100
|
-
Page.translation_class.where(:locale => :en).first.destroy
|
101
|
-
expect(helper.page_title_with_translations(page)).to eq("melnraksts")
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
76
|
end
|
106
77
|
end
|
107
78
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refinerycms-pages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Philip Arndt
|
@@ -10,22 +10,28 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-
|
13
|
+
date: 2016-03-16 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: friendly_id
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- - "
|
19
|
+
- - ">="
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 5.1.0
|
22
|
+
- - "<"
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '5.3'
|
22
25
|
type: :runtime
|
23
26
|
prerelease: false
|
24
27
|
version_requirements: !ruby/object:Gem::Requirement
|
25
28
|
requirements:
|
26
|
-
- - "
|
29
|
+
- - ">="
|
27
30
|
- !ruby/object:Gem::Version
|
28
31
|
version: 5.1.0
|
32
|
+
- - "<"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '5.3'
|
29
35
|
- !ruby/object:Gem::Dependency
|
30
36
|
name: globalize
|
31
37
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,14 +86,14 @@ dependencies:
|
|
80
86
|
requirements:
|
81
87
|
- - '='
|
82
88
|
- !ruby/object:Gem::Version
|
83
|
-
version: 3.0.
|
89
|
+
version: 3.0.2
|
84
90
|
type: :runtime
|
85
91
|
prerelease: false
|
86
92
|
version_requirements: !ruby/object:Gem::Requirement
|
87
93
|
requirements:
|
88
94
|
- - '='
|
89
95
|
- !ruby/object:Gem::Version
|
90
|
-
version: 3.0.
|
96
|
+
version: 3.0.2
|
91
97
|
- !ruby/object:Gem::Dependency
|
92
98
|
name: babosa
|
93
99
|
requirement: !ruby/object:Gem::Requirement
|