pageflow-internal-links 0.1.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.
Files changed (61) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +22 -0
  3. data/.jshintrc +22 -0
  4. data/CHANGELOG.md +7 -0
  5. data/Gemfile +10 -0
  6. data/README.md +63 -0
  7. data/Rakefile +7 -0
  8. data/app/assets/images/pageflow/internal_links_grid_pictogram.png +0 -0
  9. data/app/assets/images/pageflow/internal_links_grid_pictogram_small.png +0 -0
  10. data/app/assets/images/pageflow/internal_links_grid_sprite.png +0 -0
  11. data/app/assets/images/pageflow/internal_links_list_pictogram.png +0 -0
  12. data/app/assets/images/pageflow/internal_links_list_pictogram_small.png +0 -0
  13. data/app/assets/images/pageflow/internal_links_list_sprite.png +0 -0
  14. data/app/assets/images/pageflow/ov-internal_links_grid.png +0 -0
  15. data/app/assets/javascripts/pageflow/internal_links/editor/collections/grid_page_links_collection.js +20 -0
  16. data/app/assets/javascripts/pageflow/internal_links/editor/collections/list_page_links_collection.js +12 -0
  17. data/app/assets/javascripts/pageflow/internal_links/editor/collections/page_links_collection.js +90 -0
  18. data/app/assets/javascripts/pageflow/internal_links/editor/config.js +45 -0
  19. data/app/assets/javascripts/pageflow/internal_links/editor/controllers/side_bar_controller.js +14 -0
  20. data/app/assets/javascripts/pageflow/internal_links/editor/models/page_configuration_mixin.js +19 -0
  21. data/app/assets/javascripts/pageflow/internal_links/editor/models/page_link.js +35 -0
  22. data/app/assets/javascripts/pageflow/internal_links/editor/routers/side_bar_router.js +5 -0
  23. data/app/assets/javascripts/pageflow/internal_links/editor/templates/edit_page_link.jst.ejs +3 -0
  24. data/app/assets/javascripts/pageflow/internal_links/editor/templates/grid_item_embedded.jst.ejs +4 -0
  25. data/app/assets/javascripts/pageflow/internal_links/editor/templates/list_item_embedded.jst.ejs +7 -0
  26. data/app/assets/javascripts/pageflow/internal_links/editor/views/edit_page_link_view.js +67 -0
  27. data/app/assets/javascripts/pageflow/internal_links/editor/views/editable_links_mode_view.js +10 -0
  28. data/app/assets/javascripts/pageflow/internal_links/editor/views/grid_configuration_editor_view.js +30 -0
  29. data/app/assets/javascripts/pageflow/internal_links/editor/views/grid_item_embedded_view.js +227 -0
  30. data/app/assets/javascripts/pageflow/internal_links/editor/views/list_configuration_editor_view.js +29 -0
  31. data/app/assets/javascripts/pageflow/internal_links/editor/views/list_embedded_view.js +23 -0
  32. data/app/assets/javascripts/pageflow/internal_links/editor/views/list_item_embedded_view.js +103 -0
  33. data/app/assets/javascripts/pageflow/internal_links/editor/views/page_link_embedded_view.js +106 -0
  34. data/app/assets/javascripts/pageflow/internal_links/editor.js +11 -0
  35. data/app/assets/javascripts/pageflow/internal_links/grid_page_type.js +31 -0
  36. data/app/assets/javascripts/pageflow/internal_links/list_page_type.js +29 -0
  37. data/app/assets/javascripts/pageflow/internal_links.js +2 -0
  38. data/app/assets/stylesheets/pageflow/internal_links/editor/embedded_grid_item.css.scss +118 -0
  39. data/app/assets/stylesheets/pageflow/internal_links/editor/embedded_list_item.scss +33 -0
  40. data/app/assets/stylesheets/pageflow/internal_links/editor.css.scss +2 -0
  41. data/app/assets/stylesheets/pageflow/internal_links/grid.scss +230 -0
  42. data/app/assets/stylesheets/pageflow/internal_links/list.scss +76 -0
  43. data/app/assets/stylesheets/pageflow/internal_links.css.scss +2 -0
  44. data/app/helpers/pageflow/internal_links/grid_helper.rb +50 -0
  45. data/app/helpers/pageflow/internal_links/list_helper.rb +10 -0
  46. data/app/helpers/pageflow/internal_links/page_links.rb +79 -0
  47. data/app/views/pageflow/internal_links/grid/_grid.html.erb +7 -0
  48. data/app/views/pageflow/internal_links/grid/page.html.erb +25 -0
  49. data/app/views/pageflow/internal_links/list/_list.html.erb +6 -0
  50. data/app/views/pageflow/internal_links/list/_page_link.html.erb +14 -0
  51. data/app/views/pageflow/internal_links/list/page.html.erb +26 -0
  52. data/config/locales/de.yml +61 -0
  53. data/config/locales/en.yml +64 -0
  54. data/db/migrate/20150109121800_rename_internal_links_page_type.rb +13 -0
  55. data/lib/pageflow/internal_links/engine.rb +9 -0
  56. data/lib/pageflow/internal_links/grid_page_type.rb +19 -0
  57. data/lib/pageflow/internal_links/list_page_type.rb +19 -0
  58. data/lib/pageflow/internal_links/plugin.rb +9 -0
  59. data/lib/pageflow-internal-links.rb +17 -0
  60. data/pageflow-internal-links.gemspec +18 -0
  61. metadata +117 -0
@@ -0,0 +1,33 @@
1
+ .internal_links_list_page {
2
+ .edit {
3
+ @include icon-only-button(white);
4
+ @include pencil-icon;
5
+ position: absolute;
6
+ display: none;
7
+ z-index: 2;
8
+ top: 5px;
9
+ right: 15px;
10
+ }
11
+
12
+ nav li.editable:hover .edit {
13
+ display: block;
14
+ }
15
+
16
+ li.highlighted .page_link {
17
+ z-index: 0;
18
+ position: relative;
19
+ outline: solid 2px #000;
20
+
21
+ &:before {
22
+ content: "";
23
+ position: absolute;
24
+ top: -2px;
25
+ left: -2px;
26
+ width: 100%;
27
+ height: 100%;
28
+ border: solid 2px #fff;
29
+ @include animation(blink 3s linear infinite);
30
+ z-index: 1;
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,2 @@
1
+ @import "./editor/embedded_grid_item";
2
+ @import "./editor/embedded_list_item";
@@ -0,0 +1,230 @@
1
+ @include pageflow-page-type(internal_links_grid);
2
+
3
+ .js .page .internal_links_page .scroller > div,
4
+ .page .internal_links_page .scroller > div
5
+ {
6
+ @include pad_portrait {
7
+ padding: 15% 8% 5% 8%;
8
+ }
9
+ }
10
+
11
+ .js .page:first-child .internal_links_page .scroller > div,
12
+ .js .page:first-child .content_and_background.internal_links_page > .page_header,
13
+ .page:first-child .internal_links_page .scroller > div,
14
+ .js .page:first-child .content_and_background.internal_links_page > .page_header {
15
+ @include pad_portrait {
16
+ padding: 110px 8% 5% 8%;
17
+ }
18
+ }
19
+
20
+ .js .page .internal_links_page {
21
+ .scroller > div {
22
+ padding: 15% 14% 5% 8%;
23
+ width: 100%;
24
+ }
25
+ }
26
+
27
+ .internal_links_page {
28
+ nav {
29
+ position: relative;
30
+ max-width: 1011px;
31
+ pointer-events: all;
32
+
33
+ ul {
34
+ padding: 0;
35
+ top: 0;
36
+ left: 0;
37
+ width: 100%;
38
+ margin: 0 0 30px 0;
39
+ }
40
+
41
+ li {
42
+ display: inline-block;
43
+ list-style: none;
44
+ width: 19%;
45
+ max-width: 192px;
46
+ max-height: 108px;
47
+ padding: 0 1% 1% 0;
48
+ margin: 0 -4px -4px 0;
49
+
50
+ @include phone {
51
+ width: 48%;
52
+ max-width: 350px;
53
+ max-height: 250px;
54
+ padding: 0 2% 1% 0;
55
+ margin: 0 -3px -1px 0;
56
+ }
57
+
58
+ &.empty {
59
+ padding: 0 1% 0 0;
60
+
61
+ @include phone {
62
+ display: none;
63
+ }
64
+ }
65
+ }
66
+
67
+ .title {
68
+ display: none;
69
+ }
70
+
71
+ .title_hover {
72
+ .title {
73
+ display: block;
74
+ position: absolute;
75
+ top: 50%;
76
+ left: 0;
77
+ width: 100%;
78
+ color: white;
79
+ text-transform: uppercase;
80
+ text-align: center;
81
+ line-height: 1.2em;
82
+ letter-spacing: 0.05em;
83
+ font-size: 0.8em;
84
+ opacity: 0;
85
+ z-index: 1;
86
+ @include transform(translate3d(0,-50%,0));
87
+ @include transition(opacity 500ms);
88
+ }
89
+
90
+ &:hover {
91
+ .title {
92
+ opacity: 1;
93
+ }
94
+
95
+ .placeholder,
96
+ .thumbnail {
97
+ &:after {
98
+ opacity: 0.8;
99
+ }
100
+ }
101
+ }
102
+
103
+ .placeholder,
104
+ .thumbnail {
105
+ &:after {
106
+ opacity: 0;
107
+ background-color: black;
108
+ width: 100%;
109
+ height: 100%;
110
+ position: absolute;
111
+ top: 0;
112
+ left: 0;
113
+ content: "";
114
+ @include transition(opacity 500ms);
115
+ }
116
+ }
117
+ }
118
+
119
+ .placeholder,
120
+ .thumbnail {
121
+ display: block;
122
+ width: 100%;
123
+ padding-top: 56.25%;
124
+ background-position: center;
125
+ background-size: cover;
126
+ position: relative;
127
+
128
+ div {
129
+ position: absolute;
130
+ top: 0;
131
+ width: 100%;
132
+ height: 100%;
133
+ }
134
+ }
135
+
136
+ %hero {
137
+ max-width: 394px;
138
+ max-height: 226px;
139
+ width: 38.9%;
140
+
141
+ @include phone {
142
+ width: 98%;
143
+ max-width: 700px;
144
+ max-height: 600px;
145
+ float: none;
146
+ }
147
+
148
+ .placeholder,
149
+ .thumbnail {
150
+ padding-top: 58.5%;
151
+ }
152
+
153
+ .title {
154
+ font-size: 1em;
155
+ line-height: 1.4em;
156
+ }
157
+
158
+ &.empty {
159
+ padding-top: 22.815%;
160
+
161
+ @include phone {
162
+ padding-top: 0;
163
+ }
164
+ }
165
+ }
166
+
167
+ %hero_left {
168
+ @extend %hero;
169
+ float: left;
170
+ margin: 0;
171
+
172
+ @include phone {
173
+ float: none;
174
+ }
175
+ }
176
+
177
+ %hero_right {
178
+ @extend %hero;
179
+ float: right;
180
+ margin: 0;
181
+ padding: 0 1.3% 0 0px;
182
+
183
+ @include phone {
184
+ margin: 0;
185
+ float: none;
186
+ }
187
+ }
188
+
189
+ &[data-layout="hero_top_left"],
190
+ &[data-layout="hero_top_right"] {
191
+ li[data-reference-key="23"],
192
+ li[data-reference-key="24"],
193
+ li[data-reference-key="25"] {
194
+ display: none;
195
+ }
196
+ }
197
+
198
+ &[data-layout="hero_top_left"] {
199
+ li:first-child {
200
+ @extend %hero_left;
201
+ }
202
+ }
203
+
204
+ &[data-layout="hero_top_right"] {
205
+ li:first-child {
206
+ @extend %hero_right;
207
+ }
208
+ }
209
+ }
210
+ }
211
+
212
+ .invert .internal_links_page {
213
+ nav {
214
+ .thumbnail, .placeholder {
215
+ &:after {
216
+ background-color: white;
217
+ }
218
+ }
219
+
220
+ .title {
221
+ color: black;
222
+ }
223
+ }
224
+ }
225
+
226
+ .text_position_right .internal_links_page {
227
+ nav {
228
+ margin-left: auto;
229
+ }
230
+ }
@@ -0,0 +1,76 @@
1
+ @include pageflow-page-type(internal_links_list);
2
+
3
+ .internal_links_list_page {
4
+ nav li {
5
+ display: inline-block;
6
+ vertical-align: top;
7
+ position: relative;
8
+ margin-bottom: 10px;
9
+ pointer-events: all;
10
+ }
11
+
12
+ nav .page_link {
13
+ display: block;
14
+ width: 250px;
15
+ max-height: 400px;
16
+ height: 400px;
17
+ margin-right: 10px;
18
+
19
+ background-color: rgb(20,20,20);
20
+ background-color: rgba(20,20,20, 0.8);
21
+ color: white;
22
+ vertical-align: top;
23
+ text-align: left;
24
+ text-decoration: none;
25
+ @include transition(0.3s);
26
+
27
+ @include phone {
28
+ width: 230px;
29
+ margin-right: 0;
30
+ margin-bottom: 10px;
31
+ height: 290px;
32
+ max-height: 290px;
33
+ margin-right: 5px;
34
+ margin-left: 5px;
35
+ }
36
+ }
37
+
38
+ nav li:hover .page_link {
39
+ text-decoration: underline;
40
+ background-color: rgba(20,20,20, 1);
41
+ @include transform(scale(1.05));
42
+
43
+ @include phone {
44
+ @include transform(scale(1));
45
+ }
46
+ }
47
+
48
+ .page_thumbnail {
49
+ background-repeat: no-repeat;
50
+ background-size: cover;
51
+ width: 100%;
52
+ padding-top: 56.25%;
53
+ position: relative;
54
+ }
55
+
56
+ .file_thumbnail {
57
+ background-size: cover;
58
+ position: absolute;
59
+ top: 0;
60
+ left: 0;
61
+ bottom: 0;
62
+ right: 0;
63
+ }
64
+
65
+ .details {
66
+ margin: 20px;
67
+ text-decoration: none;
68
+ color: #fff;
69
+
70
+ p {
71
+ width: 100%;
72
+ white-space: normal;
73
+ line-height: 1.3em;
74
+ }
75
+ }
76
+ }
@@ -0,0 +1,2 @@
1
+ @import "./internal_links/grid";
2
+ @import "./internal_links/list";
@@ -0,0 +1,50 @@
1
+ module Pageflow
2
+ module InternalLinks
3
+ module GridHelper
4
+ def internal_links_grid(entry, configuration)
5
+ Grid.new(self,
6
+ InternalLinks::PageLinks.deserialize(entry, configuration),
7
+ configuration['linked_pages_layout']).render
8
+ end
9
+
10
+ class Grid < Struct.new(:template, :page_links, :layout)
11
+ def render
12
+ template.render('pageflow/internal_links/grid/grid', grid: self)
13
+ end
14
+
15
+ def item(position)
16
+ page_link = page_links_by_position[position.to_i] || PageLink.null
17
+
18
+ template.content_tag(:li,
19
+ page_link.target_page ? thumbnail_link(page_link, hero?(position)) : '',
20
+ :data => {:reference_key => position},
21
+ :class => page_link.target_page ? 'title_hover' : 'title_hover empty')
22
+ end
23
+
24
+ private
25
+
26
+ def page_links_by_position
27
+ @page_links_by_position ||= page_links.index_by(&:position)
28
+ end
29
+
30
+ def thumbnail_link(page_link, hero)
31
+ span = template.content_tag(:span, template.raw(page_link.description), :class => 'title')
32
+
33
+ template.link_to(span,
34
+ "##{page_link.target_page_id}",
35
+ :title => page_link.title,
36
+ :data => page_link.data_attributes,
37
+ :class => link_css_class(page_link.target_page, hero))
38
+ end
39
+
40
+ def link_css_class(page, hero)
41
+ ['thumbnail', template.page_thumbnail_image_class(page, hero)] * ' '
42
+ end
43
+
44
+ def hero?(position)
45
+ position == 0
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,10 @@
1
+ module Pageflow
2
+ module InternalLinks
3
+ module ListHelper
4
+ def internal_links_list(entry, configuration)
5
+ render('pageflow/internal_links/list/list',
6
+ page_links: InternalLinks::PageLinks.deserialize(entry, configuration))
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,79 @@
1
+ module Pageflow
2
+ module InternalLinks
3
+ class PageLinks < Struct.new(:entry, :configuration)
4
+ def self.deserialize(entry, configuration)
5
+ new(entry, configuration).deserialize
6
+ end
7
+
8
+ def deserialize
9
+ page_links = parse
10
+
11
+ pages_by_perma_id = entry.pages
12
+ .where(perma_id: page_links.map(&:target_page_id))
13
+ .index_by(&:perma_id)
14
+
15
+ page_links.each do |page_link|
16
+ page_link.target_page = pages_by_perma_id[page_link.target_page_id]
17
+ end
18
+ end
19
+
20
+ private
21
+
22
+ def parse
23
+ if configuration.key?('internal_links')
24
+ parse_collection(configuration['internal_links'] || [])
25
+ else
26
+ parse_legacy_hash(configuration['linked_page_ids'] || {})
27
+ end
28
+ end
29
+
30
+ def parse_collection(collection)
31
+ collection.map do |attributes|
32
+ PageLink.new(attributes['target_page_id'],
33
+ attributes['position'].to_i,
34
+ attributes['page_transition'],
35
+ attributes['description'])
36
+ end.sort_by(&:position)
37
+ end
38
+
39
+ def parse_legacy_hash(hash)
40
+ hash.map do |position, target_page_id|
41
+ PageLink.new(target_page_id, (position.to_i - 1), nil, nil)
42
+ end
43
+ end
44
+ end
45
+
46
+ class PageLink < Struct.new(:target_page_id,
47
+ :position,
48
+ :page_transition,
49
+ :optional_description)
50
+
51
+ attr_accessor :target_page
52
+
53
+ def title
54
+ target_page ? target_page.configuration['title'] : ''
55
+ end
56
+
57
+ def description
58
+ optional_description.presence || target_page_description
59
+ end
60
+
61
+ def data_attributes
62
+ {}.tap do |result|
63
+ result[:page] = target_page.perma_id if target_page
64
+ result[:page_transition] = page_transition if page_transition.present?
65
+ end
66
+ end
67
+
68
+ def self.null
69
+ new(nil, nil, nil, nil)
70
+ end
71
+
72
+ private
73
+
74
+ def target_page_description
75
+ target_page ? target_page.configuration['description'] : ''
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,7 @@
1
+ <%= content_tag :nav, data: {layout: grid.layout} do %>
2
+ <ul class="page_link_grid">
3
+ <% 0.upto(24).each do |index| %>
4
+ <%= grid.item(index) %>
5
+ <% end %>
6
+ </ul>
7
+ <% end %>
@@ -0,0 +1,25 @@
1
+ <div class="blackLayer"></div>
2
+ <div class="content_and_background internal_links_page">
3
+ <div class="backgroundArea">
4
+ <%= background_image_div(configuration, 'background_image') %>
5
+ <%= shadow_div :opacity => configuration['gradient_opacity'] %>
6
+ </div>
7
+ <div class="content scroller">
8
+ <div>
9
+ <div class="contentWrapper">
10
+ <div class="page_header">
11
+ <h2>
12
+ <span class="tagline"><%= configuration['tagline'] %></span>
13
+ <span class="title"><%= configuration['title'] %></span>
14
+ <span class="subtitle"><%= configuration['subtitle'] %></span>
15
+ </h2>
16
+ <%= background_image_tag(configuration['background_image_id'], {"class" => "print_image"}) %>
17
+ </div>
18
+ <div class="contentText">
19
+ <p><%= raw configuration['text'] %></p>
20
+ </div>
21
+ <%= internal_links_grid(@entry, configuration) %>
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </div>
@@ -0,0 +1,6 @@
1
+ <nav>
2
+ <ul>
3
+ <%= render partial: 'pageflow/internal_links/list/page_link',
4
+ collection: page_links %>
5
+ </ul>
6
+ </nav>
@@ -0,0 +1,14 @@
1
+ <li>
2
+ <%= link_to("#", class: 'page_link', data: page_link.data_attributes) do %>
3
+ <%= content_tag(:div,
4
+ '',
5
+ class: ['page_thumbnail',
6
+ page_link.target_page ? page_thumbnail_image_class(page_link.target_page, false) : nil].compact * ' ') %>
7
+
8
+ <div class="details">
9
+ <p class="page_description">
10
+ <%= raw(strip_links(page_link.description)) %>
11
+ </p>
12
+ </div>
13
+ <% end %>
14
+ </li>
@@ -0,0 +1,26 @@
1
+ <div class="blackLayer"></div>
2
+ <div class="content_and_background internal_links_list_page">
3
+ <div class="backgroundArea">
4
+ <%= background_image_div(configuration, 'background_image') %>
5
+ <%= shadow_div :opacity => configuration['gradient_opacity'] %>
6
+ </div>
7
+ <div class="content scroller">
8
+ <div>
9
+ <div class="contentWrapper">
10
+ <div class="page_header">
11
+ <h2>
12
+ <span class="tagline"><%= configuration['tagline'] %></span>
13
+ <span class="title"><%= configuration['title'] %></span>
14
+ <span class="subtitle"><%= configuration['subtitle'] %></span>
15
+ </h2>
16
+ <%= background_image_tag(configuration['background_image_id'], {"class" => "print_image"}) %>
17
+ </div>
18
+ <div class="contentText">
19
+ <p><%= raw configuration['text'] %></p>
20
+ </div>
21
+
22
+ <%= internal_links_list(@entry, configuration) %>
23
+ </div>
24
+ </div>
25
+ </div>
26
+ </div>
@@ -0,0 +1,61 @@
1
+ de:
2
+ activerecord:
3
+ attributes:
4
+ pageflow/internal_links/page_link:
5
+ description: Beschreibung
6
+ label: Bezeichnung
7
+ page_transition: Seitenübergangseffekt
8
+ target_page_id: Zielseite
9
+ pageflow/page:
10
+ linked_pages_layout: Hervorgehobenes Element
11
+ values:
12
+ pageflow/page:
13
+ linked_pages_layout:
14
+ default: (Kein)
15
+ hero_top_left: Links oben
16
+ hero_top_right: Rechts oben
17
+ pageflow:
18
+ internal_links:
19
+ editor:
20
+ templates:
21
+ edit_page_link:
22
+ back: Zurück
23
+ destroy: Löschen
24
+ embedded:
25
+ grid_page_link:
26
+ edit: Bearbeiten
27
+ set: Zielseite auswählen
28
+ views:
29
+ edit_page_link_view:
30
+ confirm_destroy: Verweis wirklich löschen?
31
+ default_page_transition: (Standard)
32
+ grid:
33
+ help_entries:
34
+ page_type:
35
+ menu_item: Seitenverweise
36
+ text: ! '# Seitenverweise
37
+
38
+
39
+ Verweise auf andere Seiten innerhalb eines Pageflows
40
+
41
+ Im Gegensatz zur externen Verweis-Seite, werden hier interne Seiten innerhalb des
42
+
43
+ Pageflows verlinkt. Dies bietet sich an, um den User gezielt durch den Pageflow zu leiten.
44
+
45
+
46
+ Typische Anwendungsbeispiele: Willkommens-Seite, Kapitel-Startseite
47
+
48
+ '
49
+ page_type_category_name: Verweise
50
+ page_type_description: Sammlung von Verweisen zu anderen Seiten dieses Pageflows
51
+ page_type_name: Seitenverweise
52
+ list:
53
+ help_entries:
54
+ page_type:
55
+ menu_item: Seitenverweise
56
+ text: TODO
57
+ page_type_category_name: Verweise
58
+ page_type_description: Sammlung von Verweisen zu anderen Seiten dieses Pageflows
59
+ page_type_name: Seitenverweis-Liste
60
+ internal_links_list:
61
+ page_type_feature_name: Seitenverweis-Liste Seitentyp
@@ -0,0 +1,64 @@
1
+ en:
2
+ activerecord:
3
+ attributes:
4
+ pageflow/internal_links/page_link:
5
+ description: Description
6
+ label: Label
7
+ page_transition: Page transition
8
+ target_page_id: Target page
9
+ pageflow/page:
10
+ linked_pages_layout: Hero
11
+ values:
12
+ pageflow/page:
13
+ linked_pages_layout:
14
+ default: (none)
15
+ hero_top_left: Top left
16
+ hero_top_right: Top right
17
+ pageflow:
18
+ internal_links:
19
+ editor:
20
+ templates:
21
+ edit_page_link:
22
+ back: Back
23
+ destroy: Delete
24
+ embedded:
25
+ grid_page_link:
26
+ edit: Edit
27
+ set: Set
28
+ views:
29
+ edit_page_link_view:
30
+ confirm_destroy: Really delete this link?
31
+ default_page_transition: Default page transition
32
+ grid:
33
+ help_entries:
34
+ page_type:
35
+ menu_item: Internal Links
36
+ text: ! '# Internal Links
37
+
38
+
39
+ References to other pages inside a Pageflow
40
+
41
+
42
+ In contrast to external link, you can link to pages inside
43
+
44
+ your Pageflow. This page type helps you guide your users
45
+
46
+ through your Pageflow.
47
+
48
+
49
+ Examples of application: Welcome page, chapter homepage
50
+
51
+ '
52
+ page_type_category_name: Links
53
+ page_type_description: A grid of thumbnails linking to other pages inside the Pageflow
54
+ page_type_name: Internal Links
55
+ list:
56
+ help_entries:
57
+ page_type:
58
+ menu_item: Internal Links List
59
+ text: TODO
60
+ page_type_category_name: Links
61
+ page_type_description: TODO
62
+ page_type_name: Internal Links List
63
+ internal_links_list:
64
+ page_type_feature_name: Internal Links Page Types