pageflow 0.6.0 → 0.7.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 (210) hide show
  1. checksums.yaml +8 -8
  2. data/admins/pageflow/entry.rb +8 -8
  3. data/admins/pageflow/revisions.rb +1 -1
  4. data/admins/pageflow/user.rb +24 -20
  5. data/app/assets/images/pageflow/scroll_down_indicator.png +0 -0
  6. data/app/assets/images/pageflow/scroll_down_indicator_invert.png +0 -0
  7. data/app/assets/images/pageflow/touch_indicator.png +0 -0
  8. data/app/assets/images/pageflow/touch_indicator_invert.png +0 -0
  9. data/app/assets/javascripts/pageflow/audio_player.js +8 -1
  10. data/app/assets/javascripts/pageflow/audio_player/media_events.js +27 -0
  11. data/app/assets/javascripts/pageflow/base.js +2 -1
  12. data/app/assets/javascripts/pageflow/editor/api.js +15 -0
  13. data/app/assets/javascripts/pageflow/editor/base.js +17 -1
  14. data/app/assets/javascripts/pageflow/editor/controllers/sidebar_controller.js +9 -1
  15. data/app/assets/javascripts/pageflow/editor/initializers/setup_help_entries.js +5 -0
  16. data/app/assets/javascripts/pageflow/editor/models/edit_lock_container.js +30 -9
  17. data/app/assets/javascripts/pageflow/editor/models/entry.js +8 -0
  18. data/app/assets/javascripts/pageflow/editor/models/file_stage.js +1 -1
  19. data/app/assets/javascripts/pageflow/editor/models/mixins/transient_references.js +1 -1
  20. data/app/assets/javascripts/pageflow/editor/templates/back_button_decorator.jst.ejs +1 -1
  21. data/app/assets/javascripts/pageflow/editor/templates/background_positioning.jst.ejs +5 -5
  22. data/app/assets/javascripts/pageflow/editor/templates/blank_entry.jst.ejs +6 -6
  23. data/app/assets/javascripts/pageflow/editor/templates/chapter_item.jst.ejs +2 -2
  24. data/app/assets/javascripts/pageflow/editor/templates/confirm_encoding.jst.ejs +7 -6
  25. data/app/assets/javascripts/pageflow/editor/templates/confirmable_file_item.jst.ejs +1 -1
  26. data/app/assets/javascripts/pageflow/editor/templates/edit_chapter.jst.ejs +4 -4
  27. data/app/assets/javascripts/pageflow/editor/templates/edit_entry.jst.ejs +7 -7
  28. data/app/assets/javascripts/pageflow/editor/templates/edit_meta_data.jst.ejs +3 -3
  29. data/app/assets/javascripts/pageflow/editor/templates/edit_page.jst.ejs +4 -4
  30. data/app/assets/javascripts/pageflow/editor/templates/embedded/page_link.jst.ejs +1 -1
  31. data/app/assets/javascripts/pageflow/editor/templates/file_item.jst.ejs +8 -8
  32. data/app/assets/javascripts/pageflow/editor/templates/files.jst.ejs +1 -1
  33. data/app/assets/javascripts/pageflow/editor/templates/files_blank_slate.jst.ejs +1 -1
  34. data/app/assets/javascripts/pageflow/editor/templates/files_explorer.jst.ejs +3 -3
  35. data/app/assets/javascripts/pageflow/editor/templates/files_explorer_blank_slate.jst.ejs +1 -1
  36. data/app/assets/javascripts/pageflow/editor/templates/files_gallery_blank_slate.jst.ejs +1 -1
  37. data/app/assets/javascripts/pageflow/editor/templates/help.jst.ejs +9 -0
  38. data/app/assets/javascripts/pageflow/editor/templates/help_button.jst.ejs +1 -1
  39. data/app/assets/javascripts/pageflow/editor/templates/loading.jst.ejs +1 -1
  40. data/app/assets/javascripts/pageflow/editor/templates/locked.jst.ejs +4 -4
  41. data/app/assets/javascripts/pageflow/editor/templates/notifications.jst.ejs +6 -6
  42. data/app/assets/javascripts/pageflow/editor/templates/other_entries_blank_slate.jst.ejs +1 -1
  43. data/app/assets/javascripts/pageflow/editor/templates/page_item.jst.ejs +1 -1
  44. data/app/assets/javascripts/pageflow/editor/templates/publish_entry.jst.ejs +13 -13
  45. data/app/assets/javascripts/pageflow/editor/templates/select_button.jst.ejs +1 -1
  46. data/app/assets/javascripts/pageflow/editor/views/background_positioning_view.js +1 -1
  47. data/app/assets/javascripts/pageflow/editor/views/chapter_item_view.js +2 -2
  48. data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio_loop.js +0 -3
  49. data/app/assets/javascripts/pageflow/editor/views/edit_chapter_view.js +1 -1
  50. data/app/assets/javascripts/pageflow/editor/views/edit_meta_data_view.js +7 -0
  51. data/app/assets/javascripts/pageflow/editor/views/edit_page_view.js +11 -2
  52. data/app/assets/javascripts/pageflow/editor/views/editor_view.js +4 -4
  53. data/app/assets/javascripts/pageflow/editor/views/entry_preview_view.js +4 -1
  54. data/app/assets/javascripts/pageflow/editor/views/entry_publication_quota_decorator_view.js +1 -1
  55. data/app/assets/javascripts/pageflow/editor/views/files_explorer_view.js +1 -1
  56. data/app/assets/javascripts/pageflow/editor/views/files_view.js +4 -4
  57. data/app/assets/javascripts/pageflow/editor/views/help_view.js +37 -24
  58. data/app/assets/javascripts/pageflow/editor/views/locked_view.js +4 -2
  59. data/app/assets/javascripts/pageflow/editor/views/page_item_view.js +1 -1
  60. data/app/assets/javascripts/pageflow/editor/views/page_preview_view.js +7 -0
  61. data/app/assets/javascripts/pageflow/editor/views/publish_entry_view.js +8 -1
  62. data/app/assets/javascripts/pageflow/links.js +42 -0
  63. data/app/assets/javascripts/pageflow/page_types/audio.js +3 -1
  64. data/app/assets/javascripts/pageflow/page_types/video.js +1 -0
  65. data/app/assets/javascripts/pageflow/ready.js +1 -20
  66. data/app/assets/javascripts/pageflow/ui.js +2 -2
  67. data/app/assets/javascripts/pageflow/ui/templates/inputs/file_input.jst.ejs +3 -3
  68. data/app/assets/javascripts/pageflow/ui/templates/inputs/page_reference.jst.ejs +1 -1
  69. data/app/assets/javascripts/pageflow/ui/templates/inputs/text_area_input.jst.ejs +7 -7
  70. data/app/assets/javascripts/pageflow/ui/views/collection_view.js +10 -1
  71. data/app/assets/javascripts/pageflow/ui/views/configuration_editor_view.js +1 -1
  72. data/app/assets/javascripts/pageflow/ui/views/inputs/check_box_input_view.js +5 -1
  73. data/app/assets/javascripts/pageflow/ui/views/inputs/extended_select_input_view.js +106 -0
  74. data/app/assets/javascripts/pageflow/ui/views/inputs/file_input_view.js +1 -1
  75. data/app/assets/javascripts/pageflow/ui/views/inputs/proxy_url_input_view.js +2 -2
  76. data/app/assets/javascripts/pageflow/ui/views/inputs/select_input_view.js +50 -14
  77. data/app/assets/javascripts/pageflow/ui/views/inputs/text_area_input_view.js +1 -1
  78. data/app/assets/javascripts/pageflow/ui/views/inputs/text_input_view.js +1 -1
  79. data/app/assets/javascripts/pageflow/ui/views/inputs/url_input_view.js +4 -4
  80. data/app/assets/javascripts/pageflow/ui/views/mixins/input_view.js +1 -1
  81. data/app/assets/javascripts/pageflow/video_player.js +5 -0
  82. data/app/assets/javascripts/pageflow/video_player/media_events.js +27 -0
  83. data/app/assets/stylesheets/pageflow/editor/base.css.scss +4 -0
  84. data/app/assets/stylesheets/pageflow/editor/help.css.scss +91 -45
  85. data/app/assets/stylesheets/pageflow/entries.css.scss +18 -5
  86. data/app/assets/stylesheets/pageflow/jquery_ui.css.scss +3 -2
  87. data/app/assets/stylesheets/pageflow/page.css.scss +23 -21
  88. data/app/assets/stylesheets/pageflow/subshare.css.scss +1 -1
  89. data/app/assets/stylesheets/pageflow/text_variants.css.scss +11 -2
  90. data/app/assets/stylesheets/pageflow/themes/default.css.scss +1 -41
  91. data/app/assets/stylesheets/pageflow/themes/default/base.css.scss +21 -0
  92. data/app/assets/stylesheets/pageflow/themes/default/overview.css.scss +16 -1
  93. data/app/assets/stylesheets/pageflow/themes/default/page.css.scss +5 -0
  94. data/app/assets/stylesheets/pageflow/themes/default/variables.css.scss +20 -0
  95. data/app/assets/stylesheets/pageflow/ui.css.scss +2 -0
  96. data/app/assets/stylesheets/pageflow/ui/input/extended_select_input.css.scss +105 -0
  97. data/app/controllers/concerns/pageflow/edit_locking.rb +2 -2
  98. data/app/controllers/concerns/pageflow/quota_verification.rb +1 -1
  99. data/app/controllers/pageflow/application_controller.rb +6 -2
  100. data/app/controllers/pageflow/editor/entries_controller.rb +5 -0
  101. data/app/controllers/pageflow/entries_controller.rb +3 -1
  102. data/app/controllers/pageflow/revisions_controller.rb +2 -0
  103. data/app/helpers/pageflow/admin/locales_helper.rb +11 -0
  104. data/app/helpers/pageflow/admin/users_helper.rb +1 -1
  105. data/app/helpers/pageflow/entries_helper.rb +8 -2
  106. data/app/helpers/pageflow/file_thumbnails_helper.rb +1 -1
  107. data/app/helpers/pageflow/files_helper.rb +13 -0
  108. data/app/helpers/pageflow/help_entries_helper.rb +19 -0
  109. data/app/helpers/pageflow/render_json_helper.rb +11 -0
  110. data/app/mailers/pageflow/user_mailer.rb +4 -1
  111. data/app/models/pageflow/draft_entry.rb +1 -0
  112. data/app/models/pageflow/positioned_file.rb +45 -0
  113. data/app/models/pageflow/published_entry.rb +12 -1
  114. data/app/models/pageflow/revision.rb +4 -0
  115. data/app/models/pageflow/theming.rb +1 -1
  116. data/app/models/pageflow/thumbnail_file_resolver.rb +20 -12
  117. data/app/views/admin/entries/_attributes_table.html.arb +3 -3
  118. data/app/views/admin/entries/_links.html.arb +3 -3
  119. data/app/views/admin/revisions/_form.html.erb +1 -1
  120. data/app/views/admin/users/_form.html.erb +8 -2
  121. data/app/views/admin/users/delete_me.html.erb +3 -3
  122. data/app/views/admin/users/me.html.erb +11 -3
  123. data/app/views/components/pageflow/admin/entries_tab.rb +1 -1
  124. data/app/views/components/pageflow/admin/grouped_folder_list.rb +7 -7
  125. data/app/views/components/pageflow/admin/members_tab.rb +4 -4
  126. data/app/views/components/pageflow/admin/revisions_tab.rb +8 -8
  127. data/app/views/components/pageflow/admin/users_tab.rb +1 -1
  128. data/app/views/layouts/pageflow/application.html.erb +2 -2
  129. data/app/views/pageflow/config/_editor_seeds.json.jbuilder +1 -1
  130. data/app/views/pageflow/devise/mailer/reset_password_instructions.html.erb +6 -4
  131. data/app/views/pageflow/editor/entries/_entry.json.jbuilder +1 -1
  132. data/app/views/pageflow/editor/entries/_help_entries_seed.html.erb +6 -0
  133. data/app/views/pageflow/editor/entries/seed.json.erb +14 -0
  134. data/app/views/pageflow/editor/entry_publications/_published_message.html.erb +1 -0
  135. data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +3 -0
  136. data/app/views/pageflow/entries/_entry.html.erb +3 -3
  137. data/app/views/pageflow/entries/_ie8_hint.html.erb +2 -13
  138. data/app/views/pageflow/entries/_mobile_navigation.html.erb +6 -6
  139. data/app/views/pageflow/entries/_multimedia_alert.html.erb +5 -9
  140. data/app/views/pageflow/entries/_non_js_hint.html.erb +1 -1
  141. data/app/views/pageflow/entries/_skip_links.html.erb +3 -3
  142. data/app/views/pageflow/entries/edit.html.erb +5 -23
  143. data/app/views/pageflow/entries/navigation/_bar_bottom.html.erb +5 -5
  144. data/app/views/pageflow/entries/navigation/_bar_top.html.erb +15 -15
  145. data/app/views/pageflow/entries/navigation/_home_button.html.erb +2 -2
  146. data/app/views/pageflow/entries/overview/_chapter.html.erb +1 -1
  147. data/app/views/pageflow/entries/overview/_entry.html.erb +6 -4
  148. data/app/views/pageflow/entries/show.html.erb +2 -2
  149. data/app/views/pageflow/help_entries/_menu.html.erb +5 -0
  150. data/app/views/pageflow/help_entries/_menu_item.html.erb +7 -0
  151. data/app/views/pageflow/help_entries/_section.html.erb +3 -0
  152. data/app/views/pageflow/page_types/_page_type.json.jbuilder +1 -1
  153. data/app/views/pageflow/pages/_page.html.erb +1 -1
  154. data/app/views/pageflow/pages/_video_tag.html.erb +1 -1
  155. data/app/views/pageflow/pages/templates/_audio.html.erb +1 -1
  156. data/app/views/pageflow/pages/templates/_background_video.html.erb +1 -1
  157. data/app/views/pageflow/pages/templates/_video.html.erb +1 -1
  158. data/app/views/pageflow/social_share/_entry_meta_tags.html.erb +3 -0
  159. data/app/views/pageflow/social_share/_image_tags.html.erb +4 -0
  160. data/app/views/pageflow/social_share/_page_meta_tags.html.erb +3 -0
  161. data/app/views/pageflow/user_mailer/invitation.html.erb +4 -6
  162. data/app/views/pageflow/user_mailer/invitation.text.erb +5 -6
  163. data/config/initializers/help_entries.rb +17 -0
  164. data/config/locales/de.yml +1866 -2
  165. data/config/locales/en.yml +1800 -1
  166. data/config/routes.rb +2 -0
  167. data/db/migrate/20141128150305_add_locale_to_users.rb +5 -0
  168. data/db/migrate/20141208161030_add_locale_to_revisions.rb +5 -0
  169. data/lib/active_admin/patches/views/pages/base.rb +8 -0
  170. data/lib/generators/pageflow/{active_admin_menu/active_admin_menu_generator.rb → active_admin_initializer/active_admin_initializer_generator.rb} +3 -1
  171. data/lib/generators/pageflow/install/install_generator.rb +1 -1
  172. data/lib/pageflow.rb +6 -0
  173. data/lib/pageflow/built_in_page_type.rb +8 -0
  174. data/lib/pageflow/configuration.rb +29 -0
  175. data/lib/pageflow/engine.rb +8 -5
  176. data/lib/pageflow/help_entries.rb +55 -0
  177. data/lib/pageflow/help_entry.rb +19 -0
  178. data/lib/pageflow/page_type.rb +23 -33
  179. data/lib/pageflow/plugin.rb +13 -0
  180. data/lib/pageflow/user_mixin.rb +4 -0
  181. data/lib/pageflow/version.rb +1 -1
  182. data/vendor/assets/javascripts/jquery.ui.all.js +4 -0
  183. metadata +52 -39
  184. data/app/assets/javascripts/pageflow/editor/templates/help.jst.ejs.erb +0 -160
  185. data/config/locales/activeadmin.de.yml +0 -114
  186. data/config/locales/activerecord.de.yml +0 -182
  187. data/config/locales/admin/accounts.yml +0 -5
  188. data/config/locales/admin/entries.yml +0 -42
  189. data/config/locales/admin/folders.de.yml +0 -7
  190. data/config/locales/admin/revisions.yml +0 -4
  191. data/config/locales/admin/tabs.de.yml +0 -8
  192. data/config/locales/admin/themings.yml +0 -7
  193. data/config/locales/admin/users.yml +0 -26
  194. data/config/locales/admin/users/delete_me.de.yml +0 -7
  195. data/config/locales/admin/users/me.de.yml +0 -9
  196. data/config/locales/devise.de.yml +0 -72
  197. data/config/locales/devise.en.yml +0 -59
  198. data/config/locales/edit_locks.de.yml +0 -16
  199. data/config/locales/editor.de.yml +0 -64
  200. data/config/locales/editor/blank_entry.yml +0 -9
  201. data/config/locales/editor/quotas.de.yml +0 -4
  202. data/config/locales/formtastic.de.yml +0 -10
  203. data/config/locales/pageflow/audio.de.yml +0 -4
  204. data/config/locales/pageflow/editor/background_positioning.de.yml +0 -13
  205. data/config/locales/pageflow/editor/errors.de.yml +0 -6
  206. data/config/locales/pageflow/ui.de.yml +0 -6
  207. data/config/locales/pageflow/user_mailer.yml +0 -5
  208. data/config/locales/pageflow/widgets.de.yml +0 -14
  209. data/config/locales/quotas.de.yml +0 -3
  210. data/config/locales/rails.de.yml +0 -199
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTNhNTM1MWI5MWJmN2NmYmFkNjJjM2IyNWYxYTA4N2NiNmZhYmJmNw==
4
+ OWJiZGE4ZDViNDg3YmRlYTI0Y2NiNDNhYTFmMzE0ZDY3Y2M4MzYwNA==
5
5
  data.tar.gz: !binary |-
6
- MGMxMTY1ZGQwZDQwZDE1ZmU3ZjViMTkzNTgxODJhMmMzYjZiZDMyNQ==
6
+ OGVjOWI4NWI1YTVjZjhiMGEwYmMzMGFhZTQzMGQ1YTI3NmUzNDAyYQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ODY1MzZiZDZlNTc1OGYzZjg2MjcyYjUyODA4NDBkMmVlYTJkZDIzYjQ5NjRk
10
- Y2QyODE5OTIxZWE4OTU2Nzk2Mzg3NGJhYWM4MTgxNTA5OWVkZmZjNGJmM2Uw
11
- M2IwM2FjNDg5OTdhMTA4NDkyY2E5MWYzNmRhYjcyZjYxMWViMDk=
9
+ OTVkOTc4NTk1NGExOTYwOTg4YjVmYWVjNzUyNDMzMDhiMTc4OTlkZDBiZDMy
10
+ N2JjMzliMDNjOWY3ZWYxMzJlZDc4MzBlYzAyYzVkYTQ4NzI1N2VlMDRjNDNl
11
+ MGNkMTc0YjYyNjc1NTU3YzlkNzI3ZWRhOWFhMmRiZWM5NDQ0NGM=
12
12
  data.tar.gz: !binary |-
13
- YjYxOGQ2ZDYzNmU0ZGZiYjI4Nzk3ODljOTkxZTI4Zjk3NzRlMmI3ZjAxMDIx
14
- ZGUwNDE4N2NkODFjNjJjYjlhYmEwNTZhNDg1OTE1MDUzMzIwZmFhMjdlMGZj
15
- ZDQ4ZDg4MTIwOGE5ZTJhN2NiMGYzMDFmMDdkMzc0YjBhZjRlZTU=
13
+ OWJkNTJjYzcyN2VhZmRjZjA3MmQ3OWQ0ZTMyZGUwM2U1N2NmNTkxOGMzY2Q5
14
+ NWZlZTQ5ZWJiZGYzZTU3YWEyNmQwYTZmMmJhNjM5OGFhM2FiOGFkNzJjMDRh
15
+ MmVjN2IwN2QzYjBjOGUyNmNlYTczOGUzYjRjMTFjMjU4MzllNGE=
@@ -9,7 +9,7 @@ module Pageflow
9
9
  column :title, :sortable => 'title' do |entry|
10
10
  link_to entry.title, admin_entry_path(entry)
11
11
  end
12
- column I18n.t('admin.entries.members'), :class => 'members' do |entry|
12
+ column I18n.t('pageflow.admin.entries.members'), :class => 'members' do |entry|
13
13
  entry_user_badge_list(entry)
14
14
  end
15
15
  if authorized?(:read, Account)
@@ -21,17 +21,17 @@ module Pageflow
21
21
  column :updated_at
22
22
  column :class => 'buttons' do |entry|
23
23
  if authorized?(:edit, Entry)
24
- span(link_to(I18n.t("admin.entries.editor"), pageflow.edit_entry_path(entry), :class => 'editor button'))
24
+ span(link_to(I18n.t('pageflow.admin.entries.editor'), pageflow.edit_entry_path(entry), :class => 'editor button'))
25
25
  end
26
- span(link_to(I18n.t("admin.entries.preview"), preview_admin_entry_path(entry), :class => 'preview button'))
26
+ span(link_to(I18n.t('pageflow.admin.entries.preview'), preview_admin_entry_path(entry), :class => 'preview button'))
27
27
  if entry.published?
28
- span(link_to(I18n.t("admin.entries.show_public"), pretty_entry_url(entry), :class => 'show_public button'))
28
+ span(link_to(I18n.t('pageflow.admin.entries.show_public'), pretty_entry_url(entry), :class => 'show_public button'))
29
29
  end
30
30
  end
31
31
  end
32
32
 
33
33
  sidebar :folders, :only => :index do
34
- text_node(link_to(I18n.t('admin.entries.add_folder'), new_admin_folder_path, :class => 'new'))
34
+ text_node(link_to(I18n.t('pageflow.admin.entries.add_folder'), new_admin_folder_path, :class => 'new'))
35
35
  grouped_folder_list(Folder.accessible_by(Ability.new(current_user), :read),
36
36
  :class => authorized?(:manage, Folder) ? 'editable' : nil,
37
37
  :active_id => params[:folder_id],
@@ -40,7 +40,7 @@ module Pageflow
40
40
 
41
41
  form do |f|
42
42
  f.inputs do
43
- f.input :title, :hint => I18n.t('admin.entries.title_hint')
43
+ f.input :title, :hint => I18n.t('pageflow.admin.entries.title_hint')
44
44
  if authorized?(:read, Account)
45
45
  f.input :account, :include_blank => false
46
46
 
@@ -57,10 +57,10 @@ module Pageflow
57
57
 
58
58
  action_item :only => :show do
59
59
  if authorized?(:publish, Entry) && entry.published?
60
- button_to(I18n.t("admin.entries.depublish"),
60
+ button_to(I18n.t('pageflow.admin.entries.depublish'),
61
61
  pageflow.current_entry_revisions_path(entry),
62
62
  :method => :delete,
63
- :data => {:rel => 'depublish', :confirm => I18n.t('admin.entries.confirm_depublish')})
63
+ :data => {:rel => 'depublish', :confirm => I18n.t('pageflow.admin.entries.confirm_depublish')})
64
64
  end
65
65
  end
66
66
 
@@ -15,7 +15,7 @@ module Pageflow
15
15
  revision.entry.restore(:revision => revision, :creator => current_user)
16
16
  entry.edit_lock.release(current_user)
17
17
 
18
- redirect_to(admin_entry_path(entry, :notice => I18n.t('admin.revisions.restored')))
18
+ redirect_to(admin_entry_path(entry, :notice => I18n.t('pageflow.admin.revisions.restored')))
19
19
  end
20
20
 
21
21
  controller do
@@ -16,7 +16,7 @@ module Pageflow
16
16
  end
17
17
  end
18
18
  column :role, :sortable => 'role' do |user|
19
- I18n.t(user.role, :scope => 'admin.users.roles')
19
+ I18n.t(user.role, :scope => 'pageflow.admin.users.roles')
20
20
  end
21
21
  column :last_sign_in_at
22
22
  column :sign_in_count
@@ -28,7 +28,7 @@ module Pageflow
28
28
  filter :email
29
29
 
30
30
  action_item :only => :index do
31
- link_to I18n.t('admin.users.invite_user'), new_admin_user_path, :data => {:rel => 'invite_user'}
31
+ link_to I18n.t('pageflow.admin.users.invite_user'), new_admin_user_path, :data => {:rel => 'invite_user'}
32
32
  end
33
33
 
34
34
  show do |user|
@@ -43,17 +43,20 @@ module Pageflow
43
43
  end
44
44
  row :role, :class => 'role' do
45
45
  span 'data-user-role' => user.role do
46
- I18n.t(user.role, :scope => 'admin.users.roles')
46
+ I18n.t(user.role, :scope => 'pageflow.admin.users.roles')
47
47
  end
48
48
  end
49
49
 
50
50
  row :created_at
51
51
  row :last_sign_in_at
52
52
  boolean_status_tag_row :suspended?
53
+ row :locale do
54
+ I18n.t('language', locale: user.locale)
55
+ end
53
56
  end
54
57
 
55
58
  para do
56
- link_to I18n.t('admin.users.resend_invitation'), resend_invitation_admin_user_path(user), :method => :post, :class => 'button', :data => {:rel => 'resend_invitation'}
59
+ link_to I18n.t('pageflow.admin.users.resend_invitation'), resend_invitation_admin_user_path(user), :method => :post, :class => 'button', :data => {:rel => 'resend_invitation'}
57
60
  end
58
61
  end
59
62
 
@@ -65,83 +68,84 @@ module Pageflow
65
68
  end
66
69
  column do |membership|
67
70
  if authorized?(:destroy, membership)
68
- link_to(I18n.t('admin.users.delete'), admin_user_membership_path(user, membership), :method => :delete, :data => {:confirm => I18n.t('active_admin.delete_confirmation'), :rel => 'delete_membership'})
71
+ link_to(I18n.t('pageflow.admin.users.delete'), admin_user_membership_path(user, membership), :method => :delete, :data => {:confirm => I18n.t('active_admin.delete_confirmation'), :rel => 'delete_membership'})
69
72
  end
70
73
  end
71
74
  end
72
75
  else
73
76
  div :class => "blank_slate_container" do
74
77
  span :class => "blank_slate" do
75
- I18n.t('admin.users.empty')
78
+ I18n.t('pageflow.admin.users.empty')
76
79
  end
77
80
  end
78
81
  end
79
82
 
80
83
  span do
81
- link_to I18n.t('admin.users.add_entry'), new_admin_user_membership_path(user), :class => 'button', :data => {:rel => 'add_membership'}
84
+ link_to I18n.t('pageflow.admin.users.add_entry'), new_admin_user_membership_path(user), :class => 'button', :data => {:rel => 'add_membership'}
82
85
  end
83
86
  end
84
87
  end
85
88
  end
86
89
 
87
90
  action_item :only => :show do
88
- link_to I18n.t('admin.users.edit'), edit_admin_user_path(user), :data => {:rel => 'edit_user'}
91
+ link_to I18n.t('pageflow.admin.users.edit'), edit_admin_user_path(user), :data => {:rel => 'edit_user'}
89
92
  end
90
93
 
91
94
  action_item :only => :show do
92
95
  if user != current_user
93
96
  if user.suspended?
94
- link_to I18n.t('admin.users.unsuspend'), unsuspend_admin_user_path(user), :method => :post, :data => {:rel => 'unsuspend_user'}
97
+ link_to I18n.t('pageflow.admin.users.unsuspend'), unsuspend_admin_user_path(user), :method => :post, :data => {:rel => 'unsuspend_user'}
95
98
  else
96
- link_to I18n.t('admin.users.suspend'), suspend_admin_user_path(user), :method => :post, :data => {:rel => 'suspend_user'}
99
+ link_to I18n.t('pageflow.admin.users.suspend'), suspend_admin_user_path(user), :method => :post, :data => {:rel => 'suspend_user'}
97
100
  end
98
101
  end
99
102
  end
100
103
 
101
104
  action_item :only => :show do
102
105
  if user != current_user
103
- link_to I18n.t('admin.users.delete'), admin_user_path(user), :method => :delete, :data => {:rel => 'delete_user', :confirm => I18n.t('admin.users.confirm_delete')}
106
+ link_to I18n.t('pageflow.admin.users.delete'), admin_user_path(user), :method => :delete, :data => {:rel => 'delete_user', :confirm => I18n.t('pageflow.admin.users.confirm_delete')}
104
107
  end
105
108
  end
106
109
 
107
110
  form(:partial => 'form')
108
111
 
109
- collection_action 'me', :title => 'Profil', :method => [:get, :patch] do
112
+ collection_action 'me', :title => I18n.t('pageflow.admin.users.account'), :method => [:get, :patch] do
110
113
  if request.patch?
111
114
  if current_user.update_with_password(user_profile_params)
112
115
  sign_in current_user, :bypass => true
113
- redirect_to admin_root_path, :notice => I18n.t('admin.users.me.updated')
116
+ redirect_to admin_root_path, :notice => I18n.t('pageflow.admin.users.me.updated')
114
117
  end
115
118
  end
116
119
  end
117
120
 
118
- collection_action 'delete_me', :title => 'Konto entfernen', :method => [:get, :delete] do
121
+ collection_action 'delete_me', :title => I18n.t('pageflow.admin.users.account'), :method => [:get, :delete] do
119
122
  if request.delete?
120
123
  if current_user.destroy_with_password(params.require(:user)[:current_password])
121
- redirect_to admin_root_path, :notice => I18n.t('admin.users.me.updated')
124
+ redirect_to admin_root_path, :notice => I18n.t('pageflow.admin.users.me.updated')
122
125
  end
123
126
  end
124
127
  end
125
128
 
126
129
  member_action :resend_invitation, :method => :post do
127
130
  InvitedUser.find(params[:id]).send_invitation!
128
- redirect_to :back, :notice => I18n.t('admin.users.resent_invitation')
131
+ redirect_to :back, :notice => I18n.t('pageflow.admin.users.resent_invitation')
129
132
  end
130
133
 
131
134
  member_action :suspend, :method => :post do
132
135
  User.find(params[:id]).suspend!
133
- redirect_to :back, :notice => I18n.t('admin.users.suspended')
136
+ redirect_to :back, :notice => I18n.t('pageflow.admin.users.suspended')
134
137
  end
135
138
 
136
139
  member_action :unsuspend, :method => :post do
137
140
  User.find(params[:id]).unsuspend!
138
- redirect_to :back, :notice => I18n.t('admin.users.unsuspended')
141
+ redirect_to :back, :notice => I18n.t('pageflow.admin.users.unsuspended')
139
142
  end
140
143
 
141
144
  controller do
142
145
  include Pageflow::QuotaVerification
143
146
 
144
147
  helper Pageflow::Admin::UsersHelper
148
+ helper Pageflow::Admin::LocalesHelper
145
149
  helper Pageflow::QuotaHelper
146
150
 
147
151
  def build_new_resource
@@ -156,11 +160,11 @@ module Pageflow
156
160
  end
157
161
 
158
162
  def user_profile_params
159
- params.require(:user).permit(:first_name, :last_name, :current_password, :password, :password_confirmation)
163
+ params.require(:user).permit(:first_name, :last_name, :current_password, :password, :password_confirmation, :locale)
160
164
  end
161
165
 
162
166
  def permitted_params
163
- result = params.permit(:user => [:first_name, :last_name, :email, :password, :password_confirmation, :account_id, :role])
167
+ result = params.permit(:user => [:first_name, :last_name, :email, :password, :password_confirmation, :account_id, :role, :locale])
164
168
  restrict_attributes(params[:id], result[:user]) if result[:user]
165
169
  result
166
170
  end
@@ -1,3 +1,6 @@
1
+ //= require_self
2
+ //= require ./audio_player/media_events
3
+
1
4
  pageflow.AudioPlayer = function(sources, options) {
2
5
  options = options || {};
3
6
 
@@ -25,6 +28,10 @@ pageflow.AudioPlayer = function(sources, options) {
25
28
 
26
29
  audio.on('load', loaded.resolve);
27
30
 
31
+ if (options.mediaEvents) {
32
+ pageflow.AudioPlayer.mediaEvents(audio);
33
+ }
34
+
28
35
  audio.src = function(sources) {
29
36
  ready.then(function() {
30
37
  var source = _.detect(sources || [], function(source) {
@@ -74,7 +81,7 @@ pageflow.AudioPlayer.fromAudioTag = function(element, options) {
74
81
  src: $(this).attr('src'),
75
82
  type: $(this).attr('type')
76
83
  };
77
- }).get(), {tag: element[0], loop: options.loop});
84
+ }).get(), _.extend({tag: element[0]}, options || {}));
78
85
  };
79
86
 
80
87
  pageflow.AudioPlayer.fromScriptTag = function(element, options) {
@@ -0,0 +1,27 @@
1
+ pageflow.AudioPlayer.mediaEvents = function(player) {
2
+ function triggerMediaEvent(name) {
3
+ pageflow.events.trigger('media:' + name, {
4
+ fileName: player.currentSrc,
5
+ currentTime: player.position,
6
+ duration: player.duration,
7
+ volume: player.volume(),
8
+ bitrate: 128000
9
+ });
10
+ }
11
+
12
+ player.on('play', function() {
13
+ triggerMediaEvent('play');
14
+ });
15
+
16
+ player.on('timeupdate', function() {
17
+ triggerMediaEvent('timeupdate');
18
+ });
19
+
20
+ player.on('pause', function() {
21
+ triggerMediaEvent('pause');
22
+ });
23
+
24
+ player.on('ended', function() {
25
+ triggerMediaEvent('ended');
26
+ });
27
+ };
@@ -14,7 +14,7 @@
14
14
  //= require polyfills/bind
15
15
 
16
16
  //= require jquery
17
- //= require jquery.ui.widget
17
+ //= require jquery-ui/widget
18
18
  //= require jquery_ujs
19
19
  //= require ./jquery_utils
20
20
  //= require iscroll
@@ -41,6 +41,7 @@
41
41
  //= require ./manual_start
42
42
  //= require ./widget_types
43
43
  //= require ./built_in_widget_types
44
+ //= require ./links
44
45
 
45
46
  //= require ./settings
46
47
 
@@ -22,6 +22,21 @@ pageflow.EditorApi = pageflow.Object.extend({
22
22
  this.sideBarRoutings.push(options);
23
23
  };
24
24
 
25
+ /**
26
+ * Set the name of the help entry that shall be selected by
27
+ * default when the help view is opened. This value is
28
+ * automatically reset when navigation occurs.
29
+ */
30
+ this.setDefaultHelpEntry = function(name) {
31
+ this.nextDefaultHelpEntry = name;
32
+ };
33
+
34
+ /** @api private */
35
+ this.applyDefaultHelpEntry = function(name) {
36
+ this.defaultHelpEntry = this.nextDefaultHelpEntry;
37
+ this.nextDefaultHelpEntry = null;
38
+ };
39
+
25
40
  /**
26
41
  * Register additional menu item to be displayed on the root sidebar
27
42
  * view.
@@ -3,7 +3,7 @@
3
3
  //= require pageflow/ui
4
4
  //= require ./sync
5
5
 
6
- //= require jquery.ui.all
6
+ //= require jquery-ui
7
7
  //= require jquery/layout
8
8
 
9
9
  //= require jquery-fileupload/vendor/load-image
@@ -36,6 +36,7 @@
36
36
  //= require_tree ./views
37
37
 
38
38
  //= require ./initializers/setup_config
39
+ //= require ./initializers/setup_help_entries
39
40
  //= require ./initializers/setup_file_types
40
41
  //= require ./initializers/setup_widget_types
41
42
  //= require ./initializers/setup_collections
@@ -49,3 +50,18 @@
49
50
 
50
51
  pageflow.app = new Backbone.Marionette.Application();
51
52
  pageflow.editor = new pageflow.EditorApi();
53
+
54
+ pageflow.startEditor = function(options) {
55
+ jQuery(function() {
56
+ $.when(
57
+ $.getJSON('/editor/entries/' + options.entryId + '/seed'),
58
+ pageflow.features.detect()
59
+ )
60
+ .done(function(result) {
61
+ pageflow.app.start(result[0]);
62
+ })
63
+ .fail(function() {
64
+ alert('Error while starting editor.');
65
+ });
66
+ });
67
+ };
@@ -16,6 +16,8 @@ pageflow.SidebarController = Backbone.Marionette.Controller.extend({
16
16
  selectionHandler: handler && pageflow.editor.createFileSelectionHandler(handler, payload),
17
17
  tabName: collectionName
18
18
  }));
19
+
20
+ pageflow.editor.setDefaultHelpEntry('pageflow.help_entries.files');
19
21
  },
20
22
 
21
23
  confirmableFiles: function(preselectedFileType, preselectedFileId) {
@@ -39,6 +41,8 @@ pageflow.SidebarController = Backbone.Marionette.Controller.extend({
39
41
  model: this.entry,
40
42
  entryPublication: new pageflow.EntryPublication()
41
43
  }));
44
+
45
+ pageflow.editor.setDefaultHelpEntry('pageflow.help_entries.publish');
42
46
  },
43
47
 
44
48
  chapter: function(id) {
@@ -48,9 +52,13 @@ pageflow.SidebarController = Backbone.Marionette.Controller.extend({
48
52
  },
49
53
 
50
54
  page: function(id, tab) {
55
+ var page = this.entry.pages.get(id);
56
+
51
57
  this.region.show(new pageflow.EditPageView({
52
- model: this.entry.pages.get(id),
58
+ model: page,
53
59
  tab: tab
54
60
  }));
61
+
62
+ pageflow.editor.setDefaultHelpEntry(page.pageType().help_entry_translation_key);
55
63
  }
56
64
  });
@@ -0,0 +1,5 @@
1
+ pageflow.app.addInitializer(function() {
2
+ Backbone.history.on('route', function() {
3
+ pageflow.editor.applyDefaultHelpEntry();
4
+ });
5
+ });
@@ -50,15 +50,16 @@ pageflow.EditLockContainer = Backbone.Model.extend({
50
50
  });
51
51
 
52
52
  $(document).ajaxError(function(event, xhr, settings) {
53
- if (xhr.status === 409) {
54
- container.lock = null;
55
- container.trigger('locked',
56
- xhr.responseJSON || {},
57
- {
58
- context: (settings.url.match(/\/edit_lock/) && !settings.polling) ? 'aquire' : 'other'
59
- });
60
-
61
- container.stopPolling();
53
+ switch(xhr.status) {
54
+ case 409:
55
+ container.handleConflict(xhr, settings);
56
+ break;
57
+ case 401:
58
+ case 422:
59
+ container.handleUnauthenticated();
60
+ break;
61
+ default:
62
+ container.handleError();
62
63
  }
63
64
  });
64
65
  },
@@ -70,5 +71,25 @@ pageflow.EditLockContainer = Backbone.Model.extend({
70
71
  this.lock = null;
71
72
  return promise;
72
73
  }
74
+ },
75
+
76
+ handleConflict: function(xhr, settings) {
77
+ this.lock = null;
78
+ this.trigger('locked',
79
+ xhr.responseJSON || {},
80
+ {
81
+ context: (settings.url.match(/\/edit_lock/) && !settings.polling) ? 'aquire' : 'other'
82
+ });
83
+
84
+ this.stopPolling();
85
+
86
+ },
87
+
88
+ handleUnauthenticated: function() {
89
+ this.stopPolling();
90
+ this.trigger('unauthenticated');
91
+ },
92
+
93
+ handleError: function() {
73
94
  }
74
95
  });