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
@@ -2,9 +2,6 @@ pageflow.ConfigurationEditorView.register('audio_loop', {
2
2
  configure: function() {
3
3
  this.tab('general', function() {
4
4
  this.group('general');
5
-
6
- this.input('additional_title', pageflow.TextInputView);
7
- this.input('additional_description', pageflow.TextAreaInputView, {size: 'short'});
8
5
  });
9
6
 
10
7
  this.tab('files', function() {
@@ -21,7 +21,7 @@ pageflow.EditChapterView = Backbone.Marionette.Layout.extend({
21
21
  },
22
22
 
23
23
  destroy: function() {
24
- if (confirm("Kapitel einschließlich ALLER enthaltener Seiten wirklich löschen?\n\nDieser Schritt kann nicht rückgängig gemacht werden.")) {
24
+ if (confirm(I18n.t('pageflow.editor.views.edit_chapter_view.confirm_destroy'))) {
25
25
  this.model.destroy();
26
26
  this.goBack();
27
27
  }
@@ -24,6 +24,13 @@ pageflow.EditMetaDataView = Backbone.Marionette.Layout.extend({
24
24
 
25
25
  configurationEditor.tab('general', function() {
26
26
  this.input('title', pageflow.TextInputView);
27
+ this.input('locale', pageflow.SelectInputView, {
28
+ values: pageflow.config.availableLocales,
29
+ texts: _.map(pageflow.config.availableLocales, function(locale) {
30
+ return I18n.t('language', {locale: locale});
31
+ })
32
+ });
33
+
27
34
  this.input('credits', pageflow.TextAreaInputView);
28
35
  });
29
36
 
@@ -19,12 +19,21 @@ pageflow.EditPageView = Backbone.Marionette.Layout.extend({
19
19
  },
20
20
 
21
21
  onRender: function() {
22
- this.pageTypeContainer.show(new pageflow.SelectInputView({
22
+ this.pageTypeContainer.show(new pageflow.ExtendedSelectInputView({
23
23
  model: this.model,
24
24
  propertyName: 'template',
25
+
25
26
  collection: pageflow.Page.types,
26
27
  valueProperty: 'name',
27
28
  translationKeyProperty: 'translation_key',
29
+ groupTranslationKeyProperty: 'category_translation_key',
30
+ descriptionTranslationKeyProperty: 'description_translation_key',
31
+
32
+ pictogramClass: 'type_pictogram',
33
+
34
+ helpLinkClicked: function(value) {
35
+ pageflow.app.trigger('toggle-help', pageflow.Page.typesByName[value].help_entry_translation_key);
36
+ }
28
37
  }));
29
38
 
30
39
  this.load();
@@ -39,7 +48,7 @@ pageflow.EditPageView = Backbone.Marionette.Layout.extend({
39
48
  },
40
49
 
41
50
  destroy: function() {
42
- if (confirm("Seite wirklich löschen?")) {
51
+ if (confirm(I18n.t('pageflow.editor.views.edit_page_view.confirm_destroy'))) {
43
52
  this.model.destroy();
44
53
  this.goBack();
45
54
  }
@@ -13,7 +13,7 @@ pageflow.EditorView = Backbone.View.extend({
13
13
  initialize: function() {
14
14
  $(window).on('beforeunload', function(event) {
15
15
  if (pageflow.entry.get('uploading_files_count') > 0) {
16
- return 'Es werden noch Dateien hochgeladen. Wenn Sie die Seite verlassen werden die Uploads abgebrochen.';
16
+ return I18n.t('pageflow.editor.views.editor_views.files_pending_warning');
17
17
  }
18
18
  });
19
19
  },
@@ -21,9 +21,9 @@ pageflow.EditorView = Backbone.View.extend({
21
21
  render: function() {
22
22
  this.$el.layout({
23
23
  minSize: 300,
24
- togglerTip_closed: 'Editorleiste einblenden',
25
- togglerTip_open: 'Editorleiste ausblenden',
26
- resizerTip: 'Größe der Editorleiste ändern',
24
+ togglerTip_closed: I18n.t('pageflow.editor.views.editor_views.show_editor'),
25
+ togglerTip_open: I18n.t('pageflow.editor.views.editor_views.hide_editor'),
26
+ resizerTip: I18n.t('pageflow.editor.views.editor_views.resize_editor'),
27
27
  onresize: function() {
28
28
  pageflow.app.trigger('resize');
29
29
  }
@@ -20,7 +20,10 @@ pageflow.EntryPreviewView = Backbone.Marionette.ItemView.extend({
20
20
  blankSlateViewConstructor: pageflow.BlankEntryView
21
21
  }));
22
22
 
23
- this.ui.entry.append($('<div class="scroll_indicator indicator">Scrollen, um weiterzulesen</div>'));
23
+ this.ui.entry.append($('<div class="scroll_indicator indicator">' +
24
+ I18n.t('pageflow.editor.views.entry_preview_view.scroll_hint',
25
+ {locale: this.model.configuration.get('locale') }) +
26
+ '</div>'));
24
27
 
25
28
  this.update();
26
29
 
@@ -23,7 +23,7 @@ pageflow.EntryPublicationQuotaDecoratorView = Backbone.Marionette.Layout.extend(
23
23
  var view = this;
24
24
 
25
25
  if (this.model.get('checking')) {
26
- view.ui.state.text(I18n.t('editor.quotas.loading'));
26
+ view.ui.state.text(I18n.t('pageflow.editor.quotas.loading'));
27
27
  view.ui.exhaustedMessage.hide().html('');
28
28
  view.outlet.close();
29
29
  }
@@ -39,7 +39,7 @@ pageflow.FilesExplorerView = Backbone.Marionette.ItemView.extend({
39
39
 
40
40
  this.tabsView = new pageflow.TabsView({
41
41
  model: this.model,
42
- i18n: 'editor.files.tabs',
42
+ i18n: 'pageflow.editor.files.tabs',
43
43
  defaultTab: this.options.tabName
44
44
  });
45
45
 
@@ -10,14 +10,14 @@ pageflow.FilesView = Backbone.Marionette.ItemView.extend({
10
10
 
11
11
  onRender: function() {
12
12
  this.addFileModel = new Backbone.Model({
13
- label: 'Hinzufügen',
13
+ label: I18n.t('pageflow.editor.views.files_view.add'),
14
14
  options: [
15
15
  {
16
- label: 'Hochladen',
16
+ label: I18n.t('pageflow.editor.views.files_view.upload'),
17
17
  handler: this.upload.bind(this)
18
18
  },
19
19
  {
20
- label: 'Wiederverwenden',
20
+ label: I18n.t('pageflow.editor.views.files_view.reuse'),
21
21
  handler: function() {
22
22
  pageflow.FilesExplorerView.open({
23
23
  callback: pageflow.entry.addFileUsage.bind(pageflow.entry)
@@ -31,7 +31,7 @@ pageflow.FilesView = Backbone.Marionette.ItemView.extend({
31
31
 
32
32
  this.tabsView = new pageflow.TabsView({
33
33
  model: this.model,
34
- i18n: 'editor.files.tabs',
34
+ i18n: 'pageflow.editor.files.tabs',
35
35
  defaultTab: this.options.tabName
36
36
  });
37
37
 
@@ -2,17 +2,8 @@ pageflow.HelpView = Backbone.Marionette.ItemView.extend({
2
2
  template: 'templates/help',
3
3
  className: 'help',
4
4
 
5
- defaultSection: 'outline',
6
-
7
- routeSectionMapping: {
8
- 'pages': 'page',
9
- 'files': 'files',
10
- 'publish': 'publish'
11
- },
12
-
13
5
  ui: {
14
- breakButton: '.break',
15
- message: '.error .message',
6
+ placeholder: '.placeholder',
16
7
  sections: 'section',
17
8
  menuItems: 'li'
18
9
  },
@@ -22,8 +13,19 @@ pageflow.HelpView = Backbone.Marionette.ItemView.extend({
22
13
  this.toggle();
23
14
  },
24
15
 
25
- 'click li': function(event) {
26
- this.showSection($(event.currentTarget).data('section'));
16
+ 'click .expandable > a': function(event) {
17
+ $(event.currentTarget).parents('.expandable').toggleClass('expanded');
18
+ },
19
+
20
+ 'click a': function(event) {
21
+ var link = $(event.currentTarget);
22
+
23
+ if (link.attr('href').indexOf('#') === 0) {
24
+ this.showSection(link.attr('href').substring(1),
25
+ {scrollIntoView: !link.parents('nav').length});
26
+ }
27
+
28
+ return false;
27
29
  },
28
30
 
29
31
  'click .box': function() {
@@ -36,30 +38,41 @@ pageflow.HelpView = Backbone.Marionette.ItemView.extend({
36
38
  },
37
39
 
38
40
  initialize: function() {
39
- this.listenTo(pageflow.app, 'toggle-help', function() {
40
- this.chooseSectionFromFragment();
41
+ this.listenTo(pageflow.app, 'toggle-help', function(name) {
41
42
  this.toggle();
43
+ this.showSection(name ||
44
+ pageflow.editor.defaultHelpEntry ||
45
+ this.defaultHelpEntry(),
46
+ {scrollIntoView: true});
42
47
  });
43
48
  },
44
49
 
50
+ onRender: function() {
51
+ this.ui.placeholder.replaceWith($('#help_entries_seed').html());
52
+ this.bindUIElements();
53
+ },
54
+
45
55
  toggle: function() {
46
56
  this.$el.toggle();
47
57
  },
48
58
 
49
- chooseSectionFromFragment: function() {
50
- var route = _.chain(this.routeSectionMapping).keys().find(function(route) {
51
- if (Backbone.history.fragment.indexOf(route) >= 0) {
52
- return true;
53
- }
54
- }, this).value();
55
-
56
- this.showSection(this.routeSectionMapping[route] || this.defaultSection);
59
+ defaultHelpEntry: function() {
60
+ return this.ui.sections.first().data('name');
57
61
  },
58
62
 
59
- showSection: function(name) {
63
+ showSection: function(name, options) {
60
64
  this.ui.menuItems.each(function() {
61
65
  var menuItem = $(this);
62
- menuItem.toggleClass('active', menuItem.data('section') === name);
66
+ var active = (menuItem.find('a').attr('href') === '#' + name);
67
+ menuItem.toggleClass('active', active);
68
+
69
+ if (active) {
70
+ menuItem.parents('.expandable').addClass('expanded');
71
+
72
+ if (options.scrollIntoView) {
73
+ menuItem[0].scrollIntoView();
74
+ }
75
+ }
63
76
  });
64
77
 
65
78
  this.ui.sections.each(function() {
@@ -17,6 +17,8 @@ pageflow.LockedView = Backbone.Marionette.ItemView.extend({
17
17
  aquired: 'hide',
18
18
 
19
19
  locked: 'show',
20
+
21
+ unauthenticated: 'goBack'
20
22
  },
21
23
 
22
24
  breakLock: function() {
@@ -30,10 +32,10 @@ pageflow.LockedView = Backbone.Marionette.ItemView.extend({
30
32
  show: function(info, options) {
31
33
  var key = info.error + '.' + options.context;
32
34
 
33
- this.ui.message.html(I18n.t('edit_locks.errors.' + key + '_html', {user_name: info.held_by}));
35
+ this.ui.message.html(I18n.t('pageflow.edit_locks.errors.' + key + '_html', {user_name: info.held_by}));
34
36
  this.ui.message.attr('data-error', key);
35
37
 
36
- this.ui.breakButton.text(I18n.t('edit_locks.break_action.' + options.context));
38
+ this.ui.breakButton.text(I18n.t('pageflow.edit_locks.break_action.aquire'));
37
39
 
38
40
  this.$el.removeClass('checking');
39
41
  this.$el.show();
@@ -33,7 +33,7 @@ pageflow.PageItemView = Backbone.Marionette.ItemView.extend({
33
33
  .addClass(this.model.get('template'));
34
34
 
35
35
  this.ui.pictogram.attr('title', this._getPictogramTitle());
36
- this.ui.title.text(this.model.title() || '(Unbenannt)');
36
+ this.ui.title.text(this.model.title() || I18n.t('pageflow.editor.views.page_item_view.unnamed'));
37
37
  },
38
38
 
39
39
  _getPictogramTitle: function() {
@@ -58,9 +58,12 @@ pageflow.PagePreviewView = Backbone.Marionette.View.extend({
58
58
 
59
59
  update: function() {
60
60
  this.$el.removeClass(pageflow.Page.transitions.join(' ')).addClass(this.model.configuration.get('transition'));
61
+
61
62
  this.pageType().update(this.$el, this.model.configuration);
62
63
  _.extend(this.$el.data('configuration'), this.model.configuration.attributes);
64
+
63
65
  this.refreshScroller();
66
+ this.ensureTargetBlankForContentLinks();
64
67
  },
65
68
 
66
69
  updateChapterBeginningClass: function() {
@@ -80,6 +83,10 @@ pageflow.PagePreviewView = Backbone.Marionette.View.extend({
80
83
  this.$el.page('refreshScroller');
81
84
  },
82
85
 
86
+ ensureTargetBlankForContentLinks: function() {
87
+ pageflow.links.ensureTargetBlankForContentLinks(this.el);
88
+ },
89
+
83
90
  initEmbeddedViews: function() {
84
91
  var view = this;
85
92
 
@@ -11,6 +11,7 @@ pageflow.PublishEntryView = Backbone.Marionette.ItemView.extend({
11
11
  revisionsLink: '.published.notice a',
12
12
  publishedNotice: '.published.notice',
13
13
  saveButton: 'button.save',
14
+ successNotice: '.success',
14
15
  successLink: '.success a'
15
16
  },
16
17
 
@@ -109,6 +110,12 @@ pageflow.PublishEntryView = Backbone.Marionette.ItemView.extend({
109
110
  that.$el.removeClass('publishing');
110
111
  that.$el.addClass('succeeded');
111
112
  that.$('input').removeAttr('disabled');
113
+
114
+ var publishedMessage = that.options.entryPublication.get('published_message_html');
115
+ if (publishedMessage) {
116
+ that.ui.successNotice.append(publishedMessage);
117
+ }
118
+
112
119
  that.enableSave();
113
120
  });
114
121
 
@@ -196,4 +203,4 @@ pageflow.PublishEntryView.create = function(options) {
196
203
  view: new pageflow.PublishEntryView(options)
197
204
  })
198
205
  });
199
- };
206
+ };
@@ -0,0 +1,42 @@
1
+ pageflow.links = {
2
+ setup: function() {
3
+ this.preventFocusRectOnClick();
4
+ this.ensureClickOnEnterKeyPress();
5
+ this.setupContentSkipLinks();
6
+ this.ensureTargetBlankForContentLinks();
7
+ },
8
+
9
+ preventFocusRectOnClick: function() {
10
+ $('body').on('click mousedown', 'a, [tabindex]', function() {
11
+ $(this).blur();
12
+ });
13
+ },
14
+
15
+ ensureClickOnEnterKeyPress: function() {
16
+ $('body').on('keypress', 'a, [tabindex]', function(e) {
17
+ if (e.which == 13) {
18
+ $(this).click();
19
+ }
20
+ });
21
+
22
+ $('body').on('keyup', 'a, [tabindex]', function (e) {
23
+ e.stopPropagation();
24
+ });
25
+ },
26
+
27
+ setupContentSkipLinks: function() {
28
+ $('.content_link').attr('href', '#firstContent');
29
+
30
+ $('.content_link').click(function(e) {
31
+ $('#firstContent').focus();
32
+ e.preventDefault();
33
+ return false;
34
+ });
35
+ },
36
+
37
+ // There was a time when the rich text editor did not add target
38
+ // attributes to inline links even though it should have.
39
+ ensureTargetBlankForContentLinks: function(context) {
40
+ $('.contentText p a', context).attr('target', '_blank');
41
+ }
42
+ };
@@ -111,7 +111,9 @@ pageflow.pageType.register('audio', _.extend({
111
111
  },
112
112
 
113
113
  _ensureAudioPlayer: function(pageElement) {
114
- this.audioPlayer = this.audioPlayer || pageflow.AudioPlayer.fromScriptTag(pageElement.find('script[data-audio]'));
114
+ this.audioPlayer = this.audioPlayer ||
115
+ pageflow.AudioPlayer.fromScriptTag(pageElement.find('script[data-audio]'),
116
+ {mediaEvents: true});
115
117
 
116
118
  pageElement.find('.vjs-controls').playerControls({
117
119
  player: this.audioPlayer
@@ -116,6 +116,7 @@ pageflow.pageType.register('video', _.extend({
116
116
  _initVideoPlayer: function(pageElement) {
117
117
  var videoPlayer = new pageflow.VideoPlayer.Lazy(pageElement.find('[data-template=video]'), {
118
118
  bufferUnderrunWaiting: true,
119
+ mediaEvents: true,
119
120
  controls: true,
120
121
  customControlsOnMobile: true,
121
122
  width: '100%',
@@ -25,26 +25,7 @@ pageflow.ready = new $.Deferred(function(readyDeferred) {
25
25
  pageflow.history = new pageflow.History(pageflow.slides);
26
26
  });
27
27
 
28
- $("body").on('click mousedown', 'a, [tabindex]', function() {
29
- $(this).blur();
30
- });
31
-
32
- $("body").on('keypress', 'a, [tabindex]', function(e) {
33
- if (e.which == 13) {
34
- $(this).click();
35
- }
36
- });
37
-
38
- $("body").on("keyup", "a, [tabindex]", function (e) {
39
- e.stopPropagation();
40
- });
41
-
42
- $(".content_link").attr("href","#firstContent");
43
- $(".content_link").click(function(e) {
44
- $("#firstContent").focus();
45
- e.preventDefault();
46
- return false; }
47
- );
28
+ pageflow.links.setup();
48
29
  });
49
30
  };
50
31
  }).promise();
@@ -1,7 +1,6 @@
1
1
  //= require_self
2
2
 
3
- //= require wysihtml5
4
- //= require parser_rules/simple
3
+ //= require wysihtml5x-toolbar
5
4
 
6
5
  //= require i18n
7
6
  //= require i18n/translations
@@ -10,6 +9,7 @@
10
9
  //= require ./ui/object
11
10
 
12
11
  //= require_tree ./ui/views/mixins
12
+ //= require ./ui/views/inputs/select_input_view
13
13
  //= require_tree ./ui/views
14
14
  //= require_tree ./ui/templates
15
15
 
@@ -4,6 +4,6 @@
4
4
  </label>
5
5
  <div class="file_thumbnail"></div>
6
6
  <div class="file_name"></div>
7
- <a href="" class="edit_positioning" title="Bildausschnitt anpassen"></a>
8
- <a href="" class="unset" title="Zurücksetzen"></a>
9
- <a href="" class="choose" title="Ändern"></a>
7
+ <a href="" class="edit_positioning" title="<%= I18n.t('pageflow.ui.templates.inputs.file_input.adjust_positioning') %>"></a>
8
+ <a href="" class="unset" title="<%= I18n.t('pageflow.ui.templates.inputs.file_input.reset') %>"></a>
9
+ <a href="" class="choose" title="<%= I18n.t('pageflow.ui.templates.inputs.file_input.edit') %>"></a>