pageflow 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pageflow might be problematic. Click here for more details.

Files changed (197) hide show
  1. checksums.yaml +8 -8
  2. data/Rakefile +2 -1
  3. data/admins/pageflow/accounts.rb +20 -4
  4. data/admins/pageflow/entry.rb +4 -5
  5. data/app/assets/javascripts/pageflow/audio_player.js +16 -7
  6. data/app/assets/javascripts/pageflow/base.js +5 -0
  7. data/app/assets/javascripts/pageflow/built_in_widget_types.js +11 -0
  8. data/app/assets/javascripts/pageflow/cookies.js +43 -0
  9. data/app/assets/javascripts/pageflow/editor/base.js +2 -10
  10. data/app/assets/javascripts/pageflow/editor/collections/widgets_collection.js +16 -0
  11. data/app/assets/javascripts/pageflow/editor/controllers/sidebar_controller.js +3 -2
  12. data/app/assets/javascripts/pageflow/editor/edit_widget.jst.ejs +2 -0
  13. data/app/assets/javascripts/pageflow/editor/initializers/setup_widget_types.js +3 -0
  14. data/app/assets/javascripts/pageflow/editor/models/configuration.js +18 -9
  15. data/app/assets/javascripts/pageflow/editor/models/edit_lock_container.js +1 -0
  16. data/app/assets/javascripts/pageflow/editor/models/entry.js +13 -3
  17. data/app/assets/javascripts/pageflow/editor/models/entry_configuration.js +4 -0
  18. data/app/assets/javascripts/pageflow/editor/models/entry_configuration_file_selection_handler.js +11 -0
  19. data/app/assets/javascripts/pageflow/editor/models/image_file.js +4 -0
  20. data/app/assets/javascripts/pageflow/editor/models/mixins/widget_subject.js +37 -0
  21. data/app/assets/javascripts/pageflow/editor/models/page.js +1 -1
  22. data/app/assets/javascripts/pageflow/editor/models/page_configuration_file_selection_handler.js +1 -25
  23. data/app/assets/javascripts/pageflow/editor/models/theming.js +3 -0
  24. data/app/assets/javascripts/pageflow/editor/models/video_file.js +7 -0
  25. data/app/assets/javascripts/pageflow/editor/models/widget.js +19 -0
  26. data/app/assets/javascripts/pageflow/editor/routers/sidebar_router.js +1 -0
  27. data/app/assets/javascripts/pageflow/editor/templates/background_positioning.jst.ejs +18 -0
  28. data/app/assets/javascripts/pageflow/editor/templates/background_positioning_preview.jst.ejs +2 -0
  29. data/app/assets/javascripts/pageflow/editor/templates/background_positioning_sliders.jst.ejs +6 -0
  30. data/app/assets/javascripts/pageflow/editor/templates/edit_meta_data.jst.ejs +1 -1
  31. data/app/assets/javascripts/pageflow/editor/templates/edit_widget.jst.ejs +2 -0
  32. data/app/assets/javascripts/pageflow/editor/templates/edit_widgets.jst.ejs +2 -0
  33. data/app/assets/javascripts/pageflow/editor/templates/entry_preview.jst.ejs +1 -3
  34. data/app/assets/javascripts/pageflow/editor/views/background_positioning_preview_view.js +39 -0
  35. data/app/assets/javascripts/pageflow/editor/views/background_positioning_sliders_view.js +94 -0
  36. data/app/assets/javascripts/pageflow/editor/views/background_positioning_view.js +67 -0
  37. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio.js +1 -1
  38. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio_loop.js +1 -1
  39. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/background_image.js +1 -1
  40. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/background_video.js +4 -3
  41. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/internal_links.js +1 -1
  42. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/video.js +9 -2
  43. data/app/assets/javascripts/pageflow/editor/views/edit_meta_data_view.js +18 -2
  44. data/app/assets/javascripts/pageflow/editor/views/edit_widget_view.js +29 -0
  45. data/app/assets/javascripts/pageflow/editor/views/edit_widgets_view.js +20 -0
  46. data/app/assets/javascripts/pageflow/editor/views/embedded/background_image_embedded_view.js +8 -3
  47. data/app/assets/javascripts/pageflow/editor/views/entry_preview_view.js +53 -9
  48. data/app/assets/javascripts/pageflow/editor/views/page_item_view.js +1 -1
  49. data/app/assets/javascripts/pageflow/editor/views/page_preview_view.js +11 -3
  50. data/app/assets/javascripts/pageflow/events.js +1 -0
  51. data/app/assets/javascripts/pageflow/features/hashchange_support.js +8 -0
  52. data/app/assets/javascripts/pageflow/history.js +14 -2
  53. data/app/assets/javascripts/pageflow/page_types/audio.js +18 -6
  54. data/app/assets/javascripts/pageflow/page_types/audio_loop.js +19 -7
  55. data/app/assets/javascripts/pageflow/page_types/background_video.js +41 -33
  56. data/app/assets/javascripts/pageflow/page_types/mixins/video_helpers.js +7 -16
  57. data/app/assets/javascripts/pageflow/ready.js +12 -25
  58. data/app/assets/javascripts/pageflow/slideshow.js +5 -5
  59. data/app/assets/javascripts/pageflow/slideshow/hide_text_on_swipe.js +1 -1
  60. data/app/assets/javascripts/pageflow/slideshow/page_widget.js +11 -1
  61. data/app/assets/javascripts/pageflow/slideshow/scroll_indicator_widget.js +19 -2
  62. data/app/assets/javascripts/pageflow/slideshow/scroller_widget.js +31 -6
  63. data/app/assets/javascripts/pageflow/slideshow/swipe_gesture.js +6 -5
  64. data/app/assets/javascripts/pageflow/ui.js +16 -0
  65. data/app/assets/javascripts/pageflow/{editor → ui}/object.js +0 -0
  66. data/app/assets/javascripts/pageflow/{editor → ui}/renderer.js +0 -0
  67. data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/check_box.jst.ejs +0 -0
  68. data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/file_input.jst.ejs +0 -0
  69. data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/page_reference.jst.ejs +0 -0
  70. data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/select_input.jst.ejs +0 -0
  71. data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/slider_input.jst.ejs +0 -0
  72. data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/text_area_input.jst.ejs +0 -0
  73. data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/text_input.jst.ejs +0 -0
  74. data/app/assets/javascripts/pageflow/{editor → ui}/templates/inputs/url_input.jst.ejs +0 -0
  75. data/app/assets/javascripts/pageflow/{editor → ui}/templates/tabs_view.jst.ejs +0 -0
  76. data/app/assets/javascripts/pageflow/{editor → ui}/views/collection_view.js +0 -0
  77. data/app/assets/javascripts/pageflow/{editor → ui}/views/configuration_editor_tab_view.js +8 -1
  78. data/app/assets/javascripts/pageflow/{editor → ui}/views/configuration_editor_view.js +3 -1
  79. data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/check_box_input_view.js +1 -1
  80. data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/file_input_view.js +10 -8
  81. data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/page_reference_input_view.js +1 -1
  82. data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/proxy_url_input_view.js +0 -0
  83. data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/select_input_view.js +41 -1
  84. data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/slider_input_view.js +1 -1
  85. data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/text_area_input_view.js +1 -1
  86. data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/text_input_view.js +8 -2
  87. data/app/assets/javascripts/pageflow/{editor → ui}/views/inputs/url_input_view.js +9 -3
  88. data/app/assets/javascripts/pageflow/{editor/views → ui/views/mixins}/input_view.js +5 -1
  89. data/app/assets/javascripts/pageflow/{editor → ui}/views/mixins/subview_container.js +0 -0
  90. data/app/assets/javascripts/pageflow/{editor → ui}/views/sortable_collection_view.js +0 -0
  91. data/app/assets/javascripts/pageflow/{editor → ui}/views/tabs_view.js +11 -2
  92. data/app/assets/javascripts/pageflow/video_player/lazy.js +4 -1
  93. data/app/assets/javascripts/pageflow/visited.js +56 -0
  94. data/app/assets/javascripts/pageflow/widget_types.js +27 -0
  95. data/app/assets/javascripts/pageflow/widgets/events.js +33 -0
  96. data/app/assets/javascripts/pageflow/widgets/navigation.js +42 -33
  97. data/app/assets/javascripts/pageflow/widgets/navigation_mobile.js +60 -38
  98. data/app/assets/javascripts/pageflow/widgets/overview.js +3 -3
  99. data/app/assets/javascripts/pageflow/widgets/page_navigation_list.js +34 -4
  100. data/app/assets/javascripts/pageflow/widgets/share_menu.js +60 -0
  101. data/app/assets/stylesheets/pageflow/admin.css.scss +1 -0
  102. data/app/assets/stylesheets/pageflow/admin/tabs_view.css.scss +50 -0
  103. data/app/assets/stylesheets/pageflow/application_with_simulated_media_queries.css.scss +2 -0
  104. data/app/assets/stylesheets/pageflow/base.css.scss +2 -1
  105. data/app/assets/stylesheets/pageflow/editor/{image_positioning.css.scss → background_positioning.css.scss} +66 -65
  106. data/app/assets/stylesheets/pageflow/editor/base.css.scss +7 -5
  107. data/app/assets/stylesheets/pageflow/editor/file_thumbnails.css.scss +7 -9
  108. data/app/assets/stylesheets/pageflow/editor/select_button.css.scss +4 -4
  109. data/app/assets/stylesheets/pageflow/editor/widgets.css.scss +4 -0
  110. data/app/assets/stylesheets/pageflow/entries.css.scss +5 -0
  111. data/app/assets/stylesheets/pageflow/mixins/breakpoints.css.scss +75 -10
  112. data/app/assets/stylesheets/pageflow/multimedia_alert.css.scss +31 -30
  113. data/app/assets/stylesheets/pageflow/navigation_bar.css.scss +4 -0
  114. data/app/assets/stylesheets/pageflow/navigation_mobile.css.scss +57 -58
  115. data/app/assets/stylesheets/pageflow/player_controls.css.scss +2 -2
  116. data/app/assets/stylesheets/pageflow/slideshow.css.scss +4 -1
  117. data/app/assets/stylesheets/pageflow/subshare.css.scss +28 -0
  118. data/app/assets/stylesheets/pageflow/ui.css.scss +7 -0
  119. data/app/assets/stylesheets/pageflow/{editor → ui}/forms.css.scss +1 -0
  120. data/app/assets/stylesheets/pageflow/{editor → ui}/tabs_view.css.scss +1 -0
  121. data/app/controllers/pageflow/editor/widgets_controller.rb +39 -0
  122. data/app/controllers/pageflow/entries_controller.rb +10 -1
  123. data/app/helpers/pageflow/entries_helper.rb +7 -0
  124. data/app/helpers/pageflow/page_types_helper.rb +7 -7
  125. data/app/helpers/pageflow/pages_helper.rb +36 -5
  126. data/app/helpers/pageflow/social_share_helper.rb +54 -0
  127. data/app/helpers/pageflow/widgets_helper.rb +43 -0
  128. data/app/models/pageflow/draft_entry.rb +4 -1
  129. data/app/models/pageflow/entry.rb +1 -0
  130. data/app/models/pageflow/published_entry.rb +6 -3
  131. data/app/models/pageflow/revision.rb +5 -0
  132. data/app/models/pageflow/theming.rb +3 -0
  133. data/app/models/pageflow/widget.rb +74 -0
  134. data/app/views/admin/accounts/_form.html.erb +10 -0
  135. data/app/views/components/pageflow/admin/entries_tab.rb +22 -0
  136. data/app/views/components/pageflow/admin/members_tab.rb +35 -0
  137. data/app/views/components/pageflow/admin/revisions_tab.rb +51 -0
  138. data/app/views/components/pageflow/admin/tabs_view.rb +78 -0
  139. data/app/views/components/pageflow/admin/users_tab.rb +22 -0
  140. data/app/views/layouts/pageflow/application.html.erb +5 -5
  141. data/app/views/pageflow/editor/entries/_entry.json.jbuilder +7 -4
  142. data/app/views/pageflow/editor/files/_file.json.jbuilder +2 -2
  143. data/app/views/pageflow/editor/widgets/_widget.json.jbuilder +2 -0
  144. data/app/views/pageflow/editor/widgets/index.json.jbuilder +1 -0
  145. data/app/views/pageflow/entries/_entry.html.erb +6 -2
  146. data/app/views/pageflow/entries/_mobile_navigation.html.erb +56 -0
  147. data/app/views/pageflow/entries/_navigation.html.erb +3 -53
  148. data/app/views/pageflow/entries/edit.html.erb +2 -0
  149. data/app/views/pageflow/entries/navigation/_bar_top.html.erb +7 -3
  150. data/app/views/pageflow/entries/navigation/_page.html.erb +2 -2
  151. data/app/views/pageflow/entries/partials.html.erb +1 -1
  152. data/app/views/pageflow/entries/show.html.erb +12 -4
  153. data/app/views/pageflow/files/show.html.erb +5 -0
  154. data/app/views/pageflow/pages/templates/_audio_loop.html.erb +1 -1
  155. data/app/views/pageflow/pages/templates/_background_video.html.erb +2 -2
  156. data/app/views/pageflow/pages/templates/_video.html.erb +4 -3
  157. data/app/views/pageflow/{entries/_social_meta_tags.html.erb → social_share/_entry_meta_tags.html.erb} +2 -2
  158. data/app/views/pageflow/social_share/_image_tags.html.erb +3 -0
  159. data/app/views/pageflow/social_share/_page_meta_tags.html.erb +9 -0
  160. data/config/initializers/admin_resource_tabs.rb +7 -0
  161. data/config/initializers/paperclip.rb +1 -1
  162. data/config/initializers/view_components.rb +9 -1
  163. data/config/initializers/widget_types.rb +4 -0
  164. data/config/locales/activerecord.de.yml +5 -1
  165. data/config/locales/admin/tabs.de.yml +8 -0
  166. data/config/locales/editor.de.yml +5 -4
  167. data/config/locales/pageflow/editor/background_positioning.de.yml +13 -0
  168. data/config/locales/pageflow/ui.de.yml +6 -0
  169. data/config/locales/pageflow/widgets.de.yml +14 -0
  170. data/config/routes.rb +6 -0
  171. data/config/spring.rb +2 -1
  172. data/db/migrate/20141027102310_create_widgets.rb +11 -0
  173. data/db/migrate/20141028125408_add_emphasize_chapter_beginning_to_revisions.rb +5 -0
  174. data/db/migrate/20141119164526_add_emphasize_new_pages_to_revisions.rb +5 -0
  175. data/db/migrate/20141119174032_add_sharing_image_to_revisions.rb +7 -0
  176. data/lib/pageflow/ability_mixin.rb +2 -0
  177. data/lib/pageflow/admin/tabs.rb +18 -0
  178. data/lib/pageflow/built_in_widget_type.rb +27 -0
  179. data/lib/pageflow/configuration.rb +17 -0
  180. data/lib/pageflow/engine.rb +2 -0
  181. data/lib/pageflow/version.rb +1 -1
  182. data/lib/pageflow/widget_type.rb +52 -0
  183. data/lib/pageflow/widget_types.rb +50 -0
  184. data/spec/factories/audio_files.rb +1 -1
  185. data/spec/factories/chapters.rb +1 -1
  186. data/spec/factories/entries.rb +2 -2
  187. data/spec/factories/image_files.rb +1 -1
  188. data/spec/factories/video_files.rb +1 -1
  189. data/spec/factories/widgets.rb +6 -0
  190. data/vendor/assets/javascripts/audio5.min.js +3 -0
  191. metadata +104 -44
  192. data/app/assets/javascripts/pageflow/editor/templates/image_positioning.jst.ejs +0 -26
  193. data/app/assets/javascripts/pageflow/editor/views/image_positioning_view.js +0 -153
  194. data/app/views/admin/accounts/_entries_panel.html.arb +0 -15
  195. data/app/views/admin/accounts/_users_panel.html.arb +0 -15
  196. data/app/views/admin/entries/_members.html.arb +0 -29
  197. data/app/views/admin/entries/_revisions.html.arb +0 -45
@@ -17,6 +17,16 @@
17
17
  <%= theming.input :imprint_link_url %>
18
18
  <%= theming.input :copyright_link_label %>
19
19
  <%= theming.input :copyright_link_url %>
20
+
21
+ <% theming.object.widgets.resolve(:include_placeholders => true).each do |widget| %>
22
+ <%= f.semantic_fields_for(widget) do |w| %>
23
+ <%= w.input(:type_name,
24
+ :label => t(widget.role, :scope => 'pageflow.widgets.roles'),
25
+ :input_html => {:name => "widgets[#{widget.role}]"},
26
+ :include_blank => t('pageflow.widgets.none'),
27
+ :collection => widget_types_collection_for_role(widget.role)) %>
28
+ <% end %>
29
+ <% end %>
20
30
  <% end %>
21
31
  <% end %>
22
32
  <%= f.actions do %>
@@ -0,0 +1,22 @@
1
+ module Pageflow
2
+ module Admin
3
+ class EntriesTab < ViewComponent
4
+ def build(theming)
5
+ account = theming.account
6
+ if account.entries.any?
7
+ table_for account.entries, :i18n => Pageflow::Entry do
8
+ column :title do |entry|
9
+ link_to(entry.title, admin_entry_path(entry))
10
+ end
11
+ end
12
+ else
13
+ div :class => "blank_slate_container" do
14
+ span :class => "blank_slate" do
15
+ I18n.t('admin.accounts.no_entries')
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,35 @@
1
+ module Pageflow
2
+ module Admin
3
+ class MembersTab < ViewComponent
4
+ def build(entry)
5
+ if entry.memberships.any?
6
+ table_for entry.memberships, :class => 'memberships' do
7
+ column t('activerecord.attributes.user.full_name') do |membership|
8
+ if authorized? :manage, User
9
+ link_to membership.user.full_name, admin_user_path(membership.user), :class => 'view_creator'
10
+ else
11
+ membership.user.full_name
12
+ end
13
+ end
14
+ column do |membership|
15
+ if authorized?(:destroy, membership)
16
+ link_to(I18n.t('admin.entries.remove'), admin_entry_membership_path(membership.entry, membership), :method => :delete, :data => {:confirm => I18n.t('active_admin.delete_confirmation'), :rel => 'delete_membership'})
17
+ end
18
+ end
19
+ end
20
+ else
21
+ div :class => "blank_slate_container" do
22
+ span :class => "blank_slate" do
23
+ I18n.t('admin.entries.no_members')
24
+ end
25
+ end
26
+ end
27
+ if authorized? :manage, Pageflow::Entry
28
+ span do
29
+ link_to I18n.t('admin.users.add'), new_admin_entry_membership_path(entry), :class => 'button', :data => {:rel => 'add_member'}
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,51 @@
1
+ module Pageflow
2
+ module Admin
3
+ class RevisionsTab < ViewComponent
4
+ def build(entry)
5
+ embedded_index_table entry.revisions, :blank_slate_text => I18n.t('admin.entries.no_revisions') do
6
+ scope(:publications)
7
+ scope(:publications_and_user_snapshots)
8
+ scope(:frozen)
9
+
10
+ table_for_collection :class => 'revisions', :i18n => Pageflow::Revision do
11
+ row_attributes do |revision|
12
+ {:class => revision_css_class(revision)}
13
+ end
14
+
15
+ column :frozen_at
16
+ column :creator do |revision|
17
+ if authorized? :manage, User
18
+ link_to revision.creator.full_name, admin_user_path(revision.creator)
19
+ else
20
+ revision.creator.full_name
21
+ end
22
+ end
23
+ column :published_until do |revision|
24
+ if revision.published_until
25
+ I18n.l(revision.published_until)
26
+ elsif revision.published?
27
+ I18n.t('admin.entries.forever')
28
+ else
29
+ '-'
30
+ end
31
+ end
32
+ column :created_with do |revision|
33
+ span(I18n.t(revision.created_with, :scope => 'admin.entries.revision_created_with'),
34
+ :title => I18n.t(revision.created_with, :scope => 'admin.entries.revision_created_with_hint'))
35
+ end
36
+ column do |revision|
37
+ text_node(link_to(t('admin.entries.show'), pageflow.revision_path(revision), :class => 'show'))
38
+ text_node(link_to(t('admin.entries.restore'), restore_admin_revision_path(revision), :method => :post, :class => 'restore', :data => {:confirm => I18n.t('admin.entries.confirm_restore')}))
39
+ end
40
+ end
41
+ end
42
+
43
+ para(I18n.t('admin.entries.published_revision_legend'), :class => 'legend published')
44
+
45
+ text_node(button_to(t('admin.entries.snapshot'),
46
+ snapshot_admin_entry_path(entry),
47
+ :method => :post))
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,78 @@
1
+ module Pageflow
2
+ module Admin
3
+ class TabsView < ViewComponent
4
+ builder_method :tabs_view
5
+
6
+ attr_reader :tabs, :options
7
+
8
+ def build(tabs, options = {})
9
+ super(class: 'admin_tabs_view')
10
+
11
+ @tabs = tabs
12
+ @options = options
13
+
14
+ build_tab_list
15
+ build_tab_containers
16
+ end
17
+
18
+ private
19
+
20
+ def build_tab_list
21
+ ul(class: 'tabs') do
22
+ tabs.each do |tab_options|
23
+ build_tab_item(tab_options)
24
+ end
25
+ end
26
+ end
27
+
28
+ def build_tab_item(tab_options)
29
+ li(class: tab_class(tab_options[:name])) do
30
+ link_to(t(tab_options[:name], scope: options[:i18n]), tab_href(tab_options[:name]))
31
+ end
32
+ end
33
+
34
+ def tab_href(name)
35
+ params = request.query_parameters.except(:page, :scope)
36
+ params_string = params.merge(tab: name).to_param
37
+ "?#{params_string}".html_safe
38
+ end
39
+
40
+ def build_tab_containers
41
+ tabs.each do |tab_options|
42
+ build_tab_container(tab_options)
43
+ end
44
+ end
45
+
46
+ def build_tab_container(tab_options)
47
+ div(class: tab_container_class(tab_options[:name])) do
48
+ insert_tag(tab_options[:component], *options.fetch(:build_args, []))
49
+ end
50
+ end
51
+
52
+ def tab_class(tab_name)
53
+ [
54
+ tab_name,
55
+ current_tab?(tab_name) ? 'active' : nil
56
+ ].compact.join(' ')
57
+ end
58
+
59
+ def tab_container_class(tab_name)
60
+ [
61
+ 'tab_container',
62
+ "#{tab_name}_tab_container",
63
+ current_tab?(tab_name) ? 'active' : nil
64
+ ].compact.join(' ')
65
+ end
66
+
67
+ def current_tab?(name)
68
+ name.to_s == current_tab_name.to_s
69
+ end
70
+
71
+ def current_tab_name
72
+ options[:current_tab] ||
73
+ request.params[:tab] ||
74
+ tabs.first[:name]
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,22 @@
1
+ module Pageflow
2
+ module Admin
3
+ class UsersTab < ViewComponent
4
+ def build(theming)
5
+ account = theming.account
6
+ if account.users.any?
7
+ table_for account.users, :i18n => User do
8
+ column :full_name do |user|
9
+ link_to user.full_name, admin_user_path(user)
10
+ end
11
+ end
12
+ else
13
+ div :class => "blank_slate_container" do
14
+ span :class => "blank_slate" do
15
+ I18n.t('admin.accounts.no_members')
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -2,19 +2,19 @@
2
2
  <html>
3
3
  <head>
4
4
  <title><%= @page_title.presence || 'Pageflow' %></title>
5
- <%= stylesheet_link_tag "pageflow/application", media: "all", "data-turbolinks-track" => true %>
6
- <%= stylesheet_link_tag "pageflow/print_view", media: "print", "data-turbolinks-track" => true %>
5
+
7
6
  <%= javascript_include_tag "pageflow/application", "data-turbolinks-track" => true %>
8
- <%= csrf_meta_tags %>
9
7
 
10
- <%= render 'layouts/pageflow/loading_spinner_inline_script' %>
8
+ <%= csrf_meta_tags %>
11
9
  <%= render 'layouts/pageflow/meta_tags' %>
12
-
13
10
  <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, minimum-scale=1, maximum-scale=1" />
14
11
  <meta name="apple-mobile-web-app-capable" content="yes" />
15
12
 
16
13
  <%= yield :head %>
17
14
 
15
+ <%= stylesheet_link_tag 'pageflow/print_view', media: 'print', 'data-turbolinks-track' => true %>
16
+ <%= render 'layouts/pageflow/loading_spinner_inline_script' %>
17
+
18
18
  <%= render 'layouts/pageflow/ie_include_tags' %>
19
19
  </head>
20
20
  <%= content_tag :body, :class => [@body_class, 'load_images has_no_mobile_platform non_js'].compact.flatten.join(' ') do %>
@@ -1,9 +1,12 @@
1
- json.(entry, :id, :title, :summary, :credits, :published_until, :manual_start, :slug)
1
+ json.(entry, :id, :published_until, :slug)
2
2
 
3
3
  json.pretty_url pretty_entry_url(entry)
4
4
 
5
- json.home_url entry.home_button.url_value
6
- json.home_button_enabled entry.home_button.enabled_value
7
-
8
5
  json.default_file_rights entry.account.default_file_rights
9
6
  json.published(entry.published?)
7
+
8
+ json.configuration do
9
+ json.(entry, :title, :summary, :credits, :manual_start, :emphasize_chapter_beginning, :emphasize_new_pages, :share_image_id, :share_image_x, :share_image_y)
10
+ json.home_url entry.home_button.url_value
11
+ json.home_button_enabled entry.home_button.enabled_value
12
+ end
@@ -11,6 +11,6 @@ if file_type.editor_partial.present?
11
11
  end
12
12
 
13
13
  if file.respond_to?(:thumbnail_url)
14
- json.thumbnail_url(file.thumbnail_url(:thumbnail))
15
- json.link_thumbnail_url(file.thumbnail_url(:link_thumbnail_large))
14
+ json.thumbnail_url(asset_path(file.thumbnail_url(:thumbnail)))
15
+ json.link_thumbnail_url(asset_path(file.thumbnail_url(:link_thumbnail_large)))
16
16
  end
@@ -0,0 +1,2 @@
1
+ json.id(widget.role)
2
+ json.(widget, :type_name)
@@ -0,0 +1 @@
1
+ json.array!(@widgets, partial: 'pageflow/editor/widgets/widget', as: :widget)
@@ -1,4 +1,8 @@
1
- <%= content_tag :div, :id => 'outer_wrapper', :data => {:theme => entry.theming.theme.name} do %>
1
+ <%= content_tag(:div,
2
+ :id => 'outer_wrapper',
3
+ :data => {:theme => entry.theming.theme.name},
4
+ :class => entry_css_class(entry)) do %>
5
+
2
6
  <%= render 'pageflow/entries/skip_links' %>
3
7
  <h1 class="hidden"><%= entry.title %></h1>
4
8
  <img src="<%= image_path("pageflow/themes/#{entry.theming.theme.directory_name}/logo_print.png") %>" class="print_image" alt="Logo image for print version">
@@ -11,6 +15,6 @@
11
15
  <% end %>
12
16
 
13
17
  <%= render 'pageflow/entries/header', :entry => entry %>
14
- <%= render 'pageflow/entries/navigation', :entry => entry %>
15
18
  <%= render 'pageflow/entries/overview', :entry => entry %>
19
+ <%= render_widgets(entry) %>
16
20
  <% end %>
@@ -0,0 +1,56 @@
1
+ <div class="navigation_mobile" data-widget="default_mobile_navigation">
2
+ <div class="menu index"></div>
3
+ <div class="menu sharing"></div>
4
+ <div class="menu imprint"></div>
5
+ <div class="overview_mobile">
6
+ <span class="heading-1">Übersicht</span>
7
+ <div class="wrapper">
8
+ <ul>
9
+ <%= render :partial => 'pageflow/entries/navigation/page',
10
+ :collection => entry_mobile_navigation_pages(entry),
11
+ :locals => {:image_style => :thumbnail_overview_mobile, :image_width => nil} %>
12
+ </ul>
13
+ </div>
14
+ </div>
15
+ <div class="sharing_mobile">
16
+ <div class="wrapper">
17
+ <ul>
18
+ <li>
19
+ <%= link_to "http://www.facebook.com/sharer/sharer.php?s=100&p%5Burl%5D=#{ERB::Util.url_encode(pretty_entry_url(entry))}&p%5Btitle%5D=#{ERB::Util.url_encode(entry.title)}", :target => "_blank", :tabindex => "2", :class => "share facebook", :data => { :"share-page" => "http://www.facebook.com/sharer/sharer.php?s=100&p%5Burl%5D=#{ERB::Util.url_encode(pretty_entry_url(entry))}%3Fpage%3DpermaId" } do %>
20
+ <span class="hint">über facebook teilen</span>
21
+ <span class="share_facebook button"></span>
22
+ <p>facebook</p>
23
+ <% end %>
24
+ </li>
25
+ <li>
26
+ <%= link_to "http://twitter.com/home?status=#{ERB::Util.url_encode(pretty_entry_url(entry))}", :target => "_blank", :tabindex => "2", :class => "share twitter", :data => { :"share-page" => "http://twitter.com/home?status=#{ERB::Util.url_encode(pretty_entry_url(entry))}%3Fpage%3DpermaId" } do %>
27
+ <span class="hint">über twitter teilen</span>
28
+ <span class="share_twitter button"></span>
29
+ <p>Twitter</p>
30
+ <% end %>
31
+ </li>
32
+ <li>
33
+ <%= link_to "https://plus.google.com/share?url=#{ERB::Util.url_encode(pretty_entry_url(entry))}", :target => "_blank", :tabindex => "2", :class => "share google", :data => { :"share-page" => "https://plus.google.com/share?url=#{ERB::Util.url_encode(pretty_entry_url(entry))}%3Fpage%3DpermaId" } do %>
34
+ <span class="hint">über Google+ teilen</span>
35
+ <span class="share_google button"></span>
36
+ <p>Google+</p>
37
+ <% end %>
38
+ </li>
39
+ </ul>
40
+ </div>
41
+ <div class="sub_share">
42
+ <a target="_blank"><%= I18n.t('pageflow.widgets.share_menu.entry') %></a>
43
+ <a target="_blank"><%= I18n.t('pageflow.widgets.share_menu.current_page') %></a>
44
+ </div>
45
+ </div>
46
+ <div class="imprint_mobile">
47
+ <span class="heading-1">Impressum</span>
48
+ <div class="wrapper">
49
+ <ul>
50
+ <li class="credits">
51
+ <%= render 'pageflow/entries/navigation/credits_box_content', :entry => entry %>
52
+ </li>
53
+ </ul>
54
+ </div>
55
+ </div>
56
+ </div>
@@ -1,4 +1,6 @@
1
- <%= content_tag :div, class: ["navigation", entry.home_button.enabled? ? 'with_home_button' : nil].compact.join(' ') do %>
1
+ <%= content_tag(:div,
2
+ class: ["navigation", entry.home_button.enabled? ? 'with_home_button' : nil].compact.join(' '),
3
+ data: {widget: 'default_navigation'}) do %>
2
4
  <%= render 'pageflow/entries/navigation/bar_top', :entry => entry %>
3
5
  <div class="scroller">
4
6
  <ul class="navigation_thumbnails">
@@ -8,56 +10,4 @@
8
10
  </ul>
9
11
  </div>
10
12
  <%= render 'pageflow/entries/navigation/bar_bottom', :entry => entry %>
11
- </div>
12
- <div class="navigation_mobile">
13
- <div class="menu index"></div>
14
- <div class="menu sharing"></div>
15
- <div class="menu imprint"></div>
16
- <div class="overview_mobile">
17
- <span class="heading-1">Übersicht</span>
18
- <div class="wrapper">
19
- <ul>
20
- <%= render :partial => 'pageflow/entries/navigation/page',
21
- :collection => entry_mobile_navigation_pages(entry),
22
- :locals => {:image_style => :thumbnail_overview_mobile, :image_width => nil} %>
23
- </ul>
24
- </div>
25
- </div>
26
- <div class="sharing_mobile">
27
- <div class="wrapper">
28
- <ul>
29
- <li>
30
- <%= link_to "http://www.facebook.com/sharer/sharer.php?s=100&p%5Burl%5D=#{ERB::Util.url_encode(pretty_entry_url(entry))}&p%5Btitle%5D=#{ERB::Util.url_encode(entry.title)}", :target => "_blank", :tabindex => "2", :class => "share facebook" do %>
31
- <span class="hint">über facebook teilen</span>
32
- <span class="share_facebook button"></span>
33
- <p>facebook</p>
34
- <% end %>
35
- </li>
36
- <li>
37
- <%= link_to "http://twitter.com/home?status=#{ERB::Util.url_encode(pretty_entry_url(entry))}", :target => "_blank", :tabindex => "2", :class => "share twitter" do %>
38
- <span class="hint">über twitter teilen</span>
39
- <span class="share_twitter button"></span>
40
- <p>Twitter</p>
41
- <% end %>
42
- </li>
43
- <li>
44
- <%= link_to "https://plus.google.com/share?url=#{ERB::Util.url_encode(pretty_entry_url(entry))}", :target => "_blank", :tabindex => "2", :class => "share google" do %>
45
- <span class="hint">über Google+ teilen</span>
46
- <span class="share_google button"></span>
47
- <p>Google+</p>
48
- <% end %>
49
- </li>
50
- </ul>
51
- </div>
52
- </div>
53
- <div class="imprint_mobile">
54
- <span class="heading-1">Impressum</span>
55
- <div class="wrapper">
56
- <ul>
57
- <li class="credits">
58
- <%= render 'pageflow/entries/navigation/credits_box_content', :entry => entry %>
59
- </li>
60
- </ul>
61
- </div>
62
- </div>
63
13
  <% end %>
@@ -1,4 +1,5 @@
1
1
  <% content_for(:head) do %>
2
+ <%= stylesheet_link_tag('pageflow/application_with_simulated_media_queries', media: 'all', 'data-turbolinks-track' => true) %>
2
3
  <%= entry_theme_stylesheet_link_tag(@entry) %>
3
4
  <%= entry_stylesheet_link_tag(@entry) %>
4
5
  <%= stylesheet_link_tag 'pageflow/editor', media: "all" %>
@@ -44,6 +45,7 @@
44
45
  },
45
46
 
46
47
  theming: <%= render_json_seed(@entry.theming) %>,
48
+ widget_types: <%= widget_types_json_seeds %>,
47
49
  page_types: <%= page_type_json_seeds %>
48
50
  });
49
51
  });