pageflow-internal-links 1.2.0 → 1.3.0
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/.travis.yml +3 -0
- data/CHANGELOG.md +12 -8
- data/app/helpers/pageflow/internal_links/grid_helper.rb +1 -1
- data/app/helpers/pageflow/internal_links/list_helper.rb +1 -1
- data/app/helpers/pageflow/internal_links/page_links.rb +11 -8
- data/lib/pageflow/internal_links/grid_page_type.rb +4 -0
- data/lib/pageflow/internal_links/list_page_type.rb +4 -0
- data/lib/pageflow/internal_links/version.rb +1 -1
- data/pageflow-internal-links.gemspec +2 -2
- data/spec/integration/page_types_spec.rb +85 -0
- data/spec/support/config/factory_bot.rb +6 -0
- metadata +8 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 97724ff942ba0daa911807073d14a9c8e0b9a39eb9f46d052791e8647224f2e5
|
4
|
+
data.tar.gz: 26567ba7d3c678627b68f647ed43dc21fa5de0cb282aa24cd2665946728adc1c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: feb875f9c915927689fc905d0ece8c57c6a8aad3fe2e4c445f456195a8d988ebe120ee560e8155254b23a0cf54c92bdd98efe794bb3975929b1bb15343f41be1
|
7
|
+
data.tar.gz: 5eb81ad126c6f12ab82450f6ff309162d2c12081fb4eb63acb7731519dd8090089695609d8187ba068a5c92e8d626df73b47bedb84e342f1aef02da9302c5465
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,16 +1,20 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
-
### Version 1.
|
3
|
+
### Version 1.3.0
|
4
4
|
|
5
|
-
2019-04
|
5
|
+
2019-11-04
|
6
6
|
|
7
|
-
[Compare changes](https://github.com/codevise/pageflow-internal-links/compare/1-
|
7
|
+
[Compare changes](https://github.com/codevise/pageflow-internal-links/compare/1-2-stable...v1.3.0)
|
8
8
|
|
9
|
-
-
|
10
|
-
([#
|
11
|
-
-
|
12
|
-
([#
|
9
|
+
- Rewrite helpers to use image file perma ids
|
10
|
+
([#21](https://github.com/codevise/pageflow-internal-links/pull/21))
|
11
|
+
- Specify mysql service for Travis build
|
12
|
+
([#20](https://github.com/codevise/pageflow-internal-links/pull/20))
|
13
|
+
- Specify export_version
|
14
|
+
([#19](https://github.com/codevise/pageflow-internal-links/pull/19))
|
15
|
+
- Extend pageflow version requirement to < 16
|
16
|
+
([#18](https://github.com/codevise/pageflow-internal-links/pull/18))
|
13
17
|
|
14
18
|
See
|
15
|
-
[1-
|
19
|
+
[1-2-stable branch](https://github.com/codevise/pageflow-internal-links/blob/1-2-stable/CHANGELOG.md)
|
16
20
|
for previous changes.
|
@@ -3,7 +3,7 @@ module Pageflow
|
|
3
3
|
module GridHelper
|
4
4
|
def internal_links_grid(entry, configuration)
|
5
5
|
Grid.new(self,
|
6
|
-
InternalLinks::PageLinks.deserialize(entry, configuration),
|
6
|
+
InternalLinks::PageLinks.deserialize(self, entry, configuration),
|
7
7
|
configuration['linked_pages_layout']).render
|
8
8
|
end
|
9
9
|
|
@@ -3,7 +3,7 @@ module Pageflow
|
|
3
3
|
module ListHelper
|
4
4
|
def internal_links_list(entry, configuration)
|
5
5
|
render('pageflow/internal_links/list/list',
|
6
|
-
page_links: InternalLinks::PageLinks.deserialize(entry, configuration))
|
6
|
+
page_links: InternalLinks::PageLinks.deserialize(self, entry, configuration))
|
7
7
|
end
|
8
8
|
end
|
9
9
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Pageflow
|
2
2
|
module InternalLinks
|
3
|
-
class PageLinks < Struct.new(:entry, :configuration)
|
4
|
-
def self.deserialize(entry, configuration)
|
5
|
-
new(entry, configuration).deserialize
|
3
|
+
class PageLinks < Struct.new(:template, :entry, :configuration)
|
4
|
+
def self.deserialize(template, entry, configuration)
|
5
|
+
new(template, entry, configuration).deserialize
|
6
6
|
end
|
7
7
|
|
8
8
|
def deserialize
|
@@ -29,7 +29,8 @@ module Pageflow
|
|
29
29
|
|
30
30
|
def parse_collection(collection)
|
31
31
|
collection.map do |attributes|
|
32
|
-
PageLink.new(
|
32
|
+
PageLink.new(template,
|
33
|
+
attributes['target_page_id'],
|
33
34
|
attributes['position'].to_i,
|
34
35
|
attributes['page_transition'],
|
35
36
|
attributes['description'],
|
@@ -39,12 +40,13 @@ module Pageflow
|
|
39
40
|
|
40
41
|
def parse_legacy_hash(hash)
|
41
42
|
hash.map do |position, target_page_id|
|
42
|
-
PageLink.new(target_page_id, (position.to_i - 1), nil, nil, nil)
|
43
|
+
PageLink.new(template, target_page_id, (position.to_i - 1), nil, nil, nil)
|
43
44
|
end
|
44
45
|
end
|
45
46
|
end
|
46
47
|
|
47
|
-
class PageLink < Struct.new(:
|
48
|
+
class PageLink < Struct.new(:template,
|
49
|
+
:target_page_id,
|
48
50
|
:position,
|
49
51
|
:page_transition,
|
50
52
|
:optional_description,
|
@@ -62,7 +64,7 @@ module Pageflow
|
|
62
64
|
|
63
65
|
def thumbnail_file
|
64
66
|
custom_thumbnail_file ||
|
65
|
-
(target_page && target_page
|
67
|
+
(target_page && template.page_thumbnail_file(target_page))
|
66
68
|
end
|
67
69
|
|
68
70
|
def css_class
|
@@ -87,7 +89,8 @@ module Pageflow
|
|
87
89
|
private
|
88
90
|
|
89
91
|
def custom_thumbnail_file
|
90
|
-
@custom_thumbnail_file =
|
92
|
+
@custom_thumbnail_file = template.find_file_in_entry(ImageFile,
|
93
|
+
custom_thumbnail_image_id)
|
91
94
|
end
|
92
95
|
|
93
96
|
def target_page_description
|
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
|
19
19
|
spec.required_ruby_version = '~> 2.1'
|
20
20
|
|
21
|
-
spec.add_runtime_dependency 'pageflow', '~>
|
21
|
+
spec.add_runtime_dependency 'pageflow', '~> 15.x'
|
22
22
|
|
23
23
|
spec.add_development_dependency 'bundler', ['>= 1.0', '< 3']
|
24
|
-
spec.add_development_dependency 'pageflow-support', '~>
|
24
|
+
spec.add_development_dependency 'pageflow-support', '~> 15.x'
|
25
25
|
spec.add_development_dependency 'rake', '~> 12.0'
|
26
26
|
spec.add_development_dependency 'rspec-rails', '~> 3.0'
|
27
27
|
|
@@ -1,5 +1,90 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
require 'pageflow/lint'
|
3
|
+
require 'pageflow/used_file_test_helper'
|
3
4
|
|
4
5
|
Pageflow::Lint.page_type(Pageflow::InternalLinks.grid_page_type)
|
5
6
|
Pageflow::Lint.page_type(Pageflow::InternalLinks.list_page_type)
|
7
|
+
|
8
|
+
module Pageflow
|
9
|
+
module InternalLinks
|
10
|
+
describe 'page type', type: :helper do
|
11
|
+
include RenderPageTestHelper
|
12
|
+
include UsedFileTestHelper
|
13
|
+
|
14
|
+
before do
|
15
|
+
pageflow_configure do |config|
|
16
|
+
config.plugin(InternalLinks.plugin)
|
17
|
+
config.features.enable_by_default('page_type.internal_links_list')
|
18
|
+
end
|
19
|
+
|
20
|
+
helper.extend(Pageflow::FileThumbnailsHelper)
|
21
|
+
helper.extend(Pageflow::PagesHelper)
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'grid' do
|
25
|
+
it 'renders internal links' do
|
26
|
+
revision = create(:revision)
|
27
|
+
other_page = create(:page, revision: revision)
|
28
|
+
page = create(:page,
|
29
|
+
template: InternalLinks.grid_page_type.name,
|
30
|
+
revision: revision,
|
31
|
+
configuration: {
|
32
|
+
internal_links: [
|
33
|
+
{
|
34
|
+
target_page_id: other_page.perma_id
|
35
|
+
}
|
36
|
+
]
|
37
|
+
})
|
38
|
+
|
39
|
+
html = render_page(page)
|
40
|
+
|
41
|
+
expect(html).to have_selector("nav a[data-page=#{other_page.perma_id}]")
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe 'list' do
|
46
|
+
it 'renders internal links' do
|
47
|
+
revision = create(:revision)
|
48
|
+
other_page = create(:page, revision: revision)
|
49
|
+
page = create(:page,
|
50
|
+
template: InternalLinks.list_page_type.name,
|
51
|
+
revision: revision,
|
52
|
+
configuration: {
|
53
|
+
internal_links: [
|
54
|
+
{
|
55
|
+
target_page_id: other_page.perma_id
|
56
|
+
}
|
57
|
+
]
|
58
|
+
})
|
59
|
+
|
60
|
+
html = render_page(page)
|
61
|
+
|
62
|
+
expect(html).to have_selector("nav a[data-page=#{other_page.perma_id}]")
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'looks up custom thumbnail by perma id' do
|
66
|
+
revision = create(:revision)
|
67
|
+
entry = Pageflow::PublishedEntry.new(create(:entry), revision)
|
68
|
+
other_page = create(:page, revision: revision)
|
69
|
+
image_file = create_used_file(:image_file, entry: entry)
|
70
|
+
page = create(:page,
|
71
|
+
template: InternalLinks.list_page_type.name,
|
72
|
+
revision: revision,
|
73
|
+
configuration: {
|
74
|
+
internal_links: [
|
75
|
+
{
|
76
|
+
target_page_id: other_page.perma_id,
|
77
|
+
thumbnail_image_id: image_file.perma_id
|
78
|
+
}
|
79
|
+
]
|
80
|
+
})
|
81
|
+
|
82
|
+
html = render_page(page)
|
83
|
+
|
84
|
+
expect(html)
|
85
|
+
.to have_selector("nav a .pageflow_image_file_link_thumbnail_large_#{image_file.perma_id}")
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pageflow-internal-links
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Codevise Solutions
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-04
|
11
|
+
date: 2019-11-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pageflow
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 15.x
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 15.x
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -50,14 +50,14 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 15.x
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
58
|
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
60
|
+
version: 15.x
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: rake
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -181,6 +181,7 @@ files:
|
|
181
181
|
- pageflow-internal-links.gemspec
|
182
182
|
- spec/integration/page_types_spec.rb
|
183
183
|
- spec/spec_helper.rb
|
184
|
+
- spec/support/config/factory_bot.rb
|
184
185
|
homepage: https://github.com/codevise/pageflow-internal-links
|
185
186
|
licenses:
|
186
187
|
- MIT
|
@@ -208,3 +209,4 @@ summary: Pageflow page types for linking to other pages.
|
|
208
209
|
test_files:
|
209
210
|
- spec/integration/page_types_spec.rb
|
210
211
|
- spec/spec_helper.rb
|
212
|
+
- spec/support/config/factory_bot.rb
|