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.
- checksums.yaml +8 -8
- data/admins/pageflow/entry.rb +8 -8
- data/admins/pageflow/revisions.rb +1 -1
- data/admins/pageflow/user.rb +24 -20
- data/app/assets/images/pageflow/scroll_down_indicator.png +0 -0
- data/app/assets/images/pageflow/scroll_down_indicator_invert.png +0 -0
- data/app/assets/images/pageflow/touch_indicator.png +0 -0
- data/app/assets/images/pageflow/touch_indicator_invert.png +0 -0
- data/app/assets/javascripts/pageflow/audio_player.js +8 -1
- data/app/assets/javascripts/pageflow/audio_player/media_events.js +27 -0
- data/app/assets/javascripts/pageflow/base.js +2 -1
- data/app/assets/javascripts/pageflow/editor/api.js +15 -0
- data/app/assets/javascripts/pageflow/editor/base.js +17 -1
- data/app/assets/javascripts/pageflow/editor/controllers/sidebar_controller.js +9 -1
- data/app/assets/javascripts/pageflow/editor/initializers/setup_help_entries.js +5 -0
- data/app/assets/javascripts/pageflow/editor/models/edit_lock_container.js +30 -9
- data/app/assets/javascripts/pageflow/editor/models/entry.js +8 -0
- data/app/assets/javascripts/pageflow/editor/models/file_stage.js +1 -1
- data/app/assets/javascripts/pageflow/editor/models/mixins/transient_references.js +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/back_button_decorator.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/background_positioning.jst.ejs +5 -5
- data/app/assets/javascripts/pageflow/editor/templates/blank_entry.jst.ejs +6 -6
- data/app/assets/javascripts/pageflow/editor/templates/chapter_item.jst.ejs +2 -2
- data/app/assets/javascripts/pageflow/editor/templates/confirm_encoding.jst.ejs +7 -6
- data/app/assets/javascripts/pageflow/editor/templates/confirmable_file_item.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/edit_chapter.jst.ejs +4 -4
- data/app/assets/javascripts/pageflow/editor/templates/edit_entry.jst.ejs +7 -7
- data/app/assets/javascripts/pageflow/editor/templates/edit_meta_data.jst.ejs +3 -3
- data/app/assets/javascripts/pageflow/editor/templates/edit_page.jst.ejs +4 -4
- data/app/assets/javascripts/pageflow/editor/templates/embedded/page_link.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/file_item.jst.ejs +8 -8
- data/app/assets/javascripts/pageflow/editor/templates/files.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/files_blank_slate.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/files_explorer.jst.ejs +3 -3
- data/app/assets/javascripts/pageflow/editor/templates/files_explorer_blank_slate.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/files_gallery_blank_slate.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/help.jst.ejs +9 -0
- data/app/assets/javascripts/pageflow/editor/templates/help_button.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/loading.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/locked.jst.ejs +4 -4
- data/app/assets/javascripts/pageflow/editor/templates/notifications.jst.ejs +6 -6
- data/app/assets/javascripts/pageflow/editor/templates/other_entries_blank_slate.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/page_item.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/templates/publish_entry.jst.ejs +13 -13
- data/app/assets/javascripts/pageflow/editor/templates/select_button.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/editor/views/background_positioning_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/chapter_item_view.js +2 -2
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/audio_loop.js +0 -3
- data/app/assets/javascripts/pageflow/editor/views/edit_chapter_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/edit_meta_data_view.js +7 -0
- data/app/assets/javascripts/pageflow/editor/views/edit_page_view.js +11 -2
- data/app/assets/javascripts/pageflow/editor/views/editor_view.js +4 -4
- data/app/assets/javascripts/pageflow/editor/views/entry_preview_view.js +4 -1
- data/app/assets/javascripts/pageflow/editor/views/entry_publication_quota_decorator_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/files_explorer_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/files_view.js +4 -4
- data/app/assets/javascripts/pageflow/editor/views/help_view.js +37 -24
- data/app/assets/javascripts/pageflow/editor/views/locked_view.js +4 -2
- data/app/assets/javascripts/pageflow/editor/views/page_item_view.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/page_preview_view.js +7 -0
- data/app/assets/javascripts/pageflow/editor/views/publish_entry_view.js +8 -1
- data/app/assets/javascripts/pageflow/links.js +42 -0
- data/app/assets/javascripts/pageflow/page_types/audio.js +3 -1
- data/app/assets/javascripts/pageflow/page_types/video.js +1 -0
- data/app/assets/javascripts/pageflow/ready.js +1 -20
- data/app/assets/javascripts/pageflow/ui.js +2 -2
- data/app/assets/javascripts/pageflow/ui/templates/inputs/file_input.jst.ejs +3 -3
- data/app/assets/javascripts/pageflow/ui/templates/inputs/page_reference.jst.ejs +1 -1
- data/app/assets/javascripts/pageflow/ui/templates/inputs/text_area_input.jst.ejs +7 -7
- data/app/assets/javascripts/pageflow/ui/views/collection_view.js +10 -1
- data/app/assets/javascripts/pageflow/ui/views/configuration_editor_view.js +1 -1
- data/app/assets/javascripts/pageflow/ui/views/inputs/check_box_input_view.js +5 -1
- data/app/assets/javascripts/pageflow/ui/views/inputs/extended_select_input_view.js +106 -0
- data/app/assets/javascripts/pageflow/ui/views/inputs/file_input_view.js +1 -1
- data/app/assets/javascripts/pageflow/ui/views/inputs/proxy_url_input_view.js +2 -2
- data/app/assets/javascripts/pageflow/ui/views/inputs/select_input_view.js +50 -14
- data/app/assets/javascripts/pageflow/ui/views/inputs/text_area_input_view.js +1 -1
- data/app/assets/javascripts/pageflow/ui/views/inputs/text_input_view.js +1 -1
- data/app/assets/javascripts/pageflow/ui/views/inputs/url_input_view.js +4 -4
- data/app/assets/javascripts/pageflow/ui/views/mixins/input_view.js +1 -1
- data/app/assets/javascripts/pageflow/video_player.js +5 -0
- data/app/assets/javascripts/pageflow/video_player/media_events.js +27 -0
- data/app/assets/stylesheets/pageflow/editor/base.css.scss +4 -0
- data/app/assets/stylesheets/pageflow/editor/help.css.scss +91 -45
- data/app/assets/stylesheets/pageflow/entries.css.scss +18 -5
- data/app/assets/stylesheets/pageflow/jquery_ui.css.scss +3 -2
- data/app/assets/stylesheets/pageflow/page.css.scss +23 -21
- data/app/assets/stylesheets/pageflow/subshare.css.scss +1 -1
- data/app/assets/stylesheets/pageflow/text_variants.css.scss +11 -2
- data/app/assets/stylesheets/pageflow/themes/default.css.scss +1 -41
- data/app/assets/stylesheets/pageflow/themes/default/base.css.scss +21 -0
- data/app/assets/stylesheets/pageflow/themes/default/overview.css.scss +16 -1
- data/app/assets/stylesheets/pageflow/themes/default/page.css.scss +5 -0
- data/app/assets/stylesheets/pageflow/themes/default/variables.css.scss +20 -0
- data/app/assets/stylesheets/pageflow/ui.css.scss +2 -0
- data/app/assets/stylesheets/pageflow/ui/input/extended_select_input.css.scss +105 -0
- data/app/controllers/concerns/pageflow/edit_locking.rb +2 -2
- data/app/controllers/concerns/pageflow/quota_verification.rb +1 -1
- data/app/controllers/pageflow/application_controller.rb +6 -2
- data/app/controllers/pageflow/editor/entries_controller.rb +5 -0
- data/app/controllers/pageflow/entries_controller.rb +3 -1
- data/app/controllers/pageflow/revisions_controller.rb +2 -0
- data/app/helpers/pageflow/admin/locales_helper.rb +11 -0
- data/app/helpers/pageflow/admin/users_helper.rb +1 -1
- data/app/helpers/pageflow/entries_helper.rb +8 -2
- data/app/helpers/pageflow/file_thumbnails_helper.rb +1 -1
- data/app/helpers/pageflow/files_helper.rb +13 -0
- data/app/helpers/pageflow/help_entries_helper.rb +19 -0
- data/app/helpers/pageflow/render_json_helper.rb +11 -0
- data/app/mailers/pageflow/user_mailer.rb +4 -1
- data/app/models/pageflow/draft_entry.rb +1 -0
- data/app/models/pageflow/positioned_file.rb +45 -0
- data/app/models/pageflow/published_entry.rb +12 -1
- data/app/models/pageflow/revision.rb +4 -0
- data/app/models/pageflow/theming.rb +1 -1
- data/app/models/pageflow/thumbnail_file_resolver.rb +20 -12
- data/app/views/admin/entries/_attributes_table.html.arb +3 -3
- data/app/views/admin/entries/_links.html.arb +3 -3
- data/app/views/admin/revisions/_form.html.erb +1 -1
- data/app/views/admin/users/_form.html.erb +8 -2
- data/app/views/admin/users/delete_me.html.erb +3 -3
- data/app/views/admin/users/me.html.erb +11 -3
- data/app/views/components/pageflow/admin/entries_tab.rb +1 -1
- data/app/views/components/pageflow/admin/grouped_folder_list.rb +7 -7
- data/app/views/components/pageflow/admin/members_tab.rb +4 -4
- data/app/views/components/pageflow/admin/revisions_tab.rb +8 -8
- data/app/views/components/pageflow/admin/users_tab.rb +1 -1
- data/app/views/layouts/pageflow/application.html.erb +2 -2
- data/app/views/pageflow/config/_editor_seeds.json.jbuilder +1 -1
- data/app/views/pageflow/devise/mailer/reset_password_instructions.html.erb +6 -4
- data/app/views/pageflow/editor/entries/_entry.json.jbuilder +1 -1
- data/app/views/pageflow/editor/entries/_help_entries_seed.html.erb +6 -0
- data/app/views/pageflow/editor/entries/seed.json.erb +14 -0
- data/app/views/pageflow/editor/entry_publications/_published_message.html.erb +1 -0
- data/app/views/pageflow/editor/entry_publications/check.json.jbuilder +3 -0
- data/app/views/pageflow/entries/_entry.html.erb +3 -3
- data/app/views/pageflow/entries/_ie8_hint.html.erb +2 -13
- data/app/views/pageflow/entries/_mobile_navigation.html.erb +6 -6
- data/app/views/pageflow/entries/_multimedia_alert.html.erb +5 -9
- data/app/views/pageflow/entries/_non_js_hint.html.erb +1 -1
- data/app/views/pageflow/entries/_skip_links.html.erb +3 -3
- data/app/views/pageflow/entries/edit.html.erb +5 -23
- data/app/views/pageflow/entries/navigation/_bar_bottom.html.erb +5 -5
- data/app/views/pageflow/entries/navigation/_bar_top.html.erb +15 -15
- data/app/views/pageflow/entries/navigation/_home_button.html.erb +2 -2
- data/app/views/pageflow/entries/overview/_chapter.html.erb +1 -1
- data/app/views/pageflow/entries/overview/_entry.html.erb +6 -4
- data/app/views/pageflow/entries/show.html.erb +2 -2
- data/app/views/pageflow/help_entries/_menu.html.erb +5 -0
- data/app/views/pageflow/help_entries/_menu_item.html.erb +7 -0
- data/app/views/pageflow/help_entries/_section.html.erb +3 -0
- data/app/views/pageflow/page_types/_page_type.json.jbuilder +1 -1
- data/app/views/pageflow/pages/_page.html.erb +1 -1
- data/app/views/pageflow/pages/_video_tag.html.erb +1 -1
- data/app/views/pageflow/pages/templates/_audio.html.erb +1 -1
- data/app/views/pageflow/pages/templates/_background_video.html.erb +1 -1
- data/app/views/pageflow/pages/templates/_video.html.erb +1 -1
- data/app/views/pageflow/social_share/_entry_meta_tags.html.erb +3 -0
- data/app/views/pageflow/social_share/_image_tags.html.erb +4 -0
- data/app/views/pageflow/social_share/_page_meta_tags.html.erb +3 -0
- data/app/views/pageflow/user_mailer/invitation.html.erb +4 -6
- data/app/views/pageflow/user_mailer/invitation.text.erb +5 -6
- data/config/initializers/help_entries.rb +17 -0
- data/config/locales/de.yml +1866 -2
- data/config/locales/en.yml +1800 -1
- data/config/routes.rb +2 -0
- data/db/migrate/20141128150305_add_locale_to_users.rb +5 -0
- data/db/migrate/20141208161030_add_locale_to_revisions.rb +5 -0
- data/lib/active_admin/patches/views/pages/base.rb +8 -0
- data/lib/generators/pageflow/{active_admin_menu/active_admin_menu_generator.rb → active_admin_initializer/active_admin_initializer_generator.rb} +3 -1
- data/lib/generators/pageflow/install/install_generator.rb +1 -1
- data/lib/pageflow.rb +6 -0
- data/lib/pageflow/built_in_page_type.rb +8 -0
- data/lib/pageflow/configuration.rb +29 -0
- data/lib/pageflow/engine.rb +8 -5
- data/lib/pageflow/help_entries.rb +55 -0
- data/lib/pageflow/help_entry.rb +19 -0
- data/lib/pageflow/page_type.rb +23 -33
- data/lib/pageflow/plugin.rb +13 -0
- data/lib/pageflow/user_mixin.rb +4 -0
- data/lib/pageflow/version.rb +1 -1
- data/vendor/assets/javascripts/jquery.ui.all.js +4 -0
- metadata +52 -39
- data/app/assets/javascripts/pageflow/editor/templates/help.jst.ejs.erb +0 -160
- data/config/locales/activeadmin.de.yml +0 -114
- data/config/locales/activerecord.de.yml +0 -182
- data/config/locales/admin/accounts.yml +0 -5
- data/config/locales/admin/entries.yml +0 -42
- data/config/locales/admin/folders.de.yml +0 -7
- data/config/locales/admin/revisions.yml +0 -4
- data/config/locales/admin/tabs.de.yml +0 -8
- data/config/locales/admin/themings.yml +0 -7
- data/config/locales/admin/users.yml +0 -26
- data/config/locales/admin/users/delete_me.de.yml +0 -7
- data/config/locales/admin/users/me.de.yml +0 -9
- data/config/locales/devise.de.yml +0 -72
- data/config/locales/devise.en.yml +0 -59
- data/config/locales/edit_locks.de.yml +0 -16
- data/config/locales/editor.de.yml +0 -64
- data/config/locales/editor/blank_entry.yml +0 -9
- data/config/locales/editor/quotas.de.yml +0 -4
- data/config/locales/formtastic.de.yml +0 -10
- data/config/locales/pageflow/audio.de.yml +0 -4
- data/config/locales/pageflow/editor/background_positioning.de.yml +0 -13
- data/config/locales/pageflow/editor/errors.de.yml +0 -6
- data/config/locales/pageflow/ui.de.yml +0 -6
- data/config/locales/pageflow/user_mailer.yml +0 -5
- data/config/locales/pageflow/widgets.de.yml +0 -14
- data/config/locales/quotas.de.yml +0 -3
- data/config/locales/rails.de.yml +0 -199
@@ -0,0 +1,20 @@
|
|
1
|
+
$theme-name: "default";
|
2
|
+
|
3
|
+
$main-color: #e84d2c;
|
4
|
+
$main-color-dark: #b14a08;
|
5
|
+
|
6
|
+
$focus-color: #c1c1c1;
|
7
|
+
|
8
|
+
$anchor-color: #e84d2c;
|
9
|
+
|
10
|
+
$basic-background-color: #353535;
|
11
|
+
$basic-background-color-transparent: rgba(53, 53, 53, 0.9);
|
12
|
+
$header-background-color: gray;
|
13
|
+
|
14
|
+
$addInfobox-text-color: #fff; /* for the description text inside the info box */
|
15
|
+
$addInfobox-controls-text-color: #ccc; /* for control text like durations */
|
16
|
+
$addInfobox-background-color: #191919;
|
17
|
+
$addInfobox-border-color: #505050;
|
18
|
+
|
19
|
+
$standard-font: SourceSansPro;
|
20
|
+
$standard-font-size: 16px;
|
@@ -0,0 +1,105 @@
|
|
1
|
+
.extended_select_input {
|
2
|
+
.ui-selectmenu-button span.ui-selectmenu-text {
|
3
|
+
font-family: Helvetica, Sans-Serif;
|
4
|
+
font-size: 13px;
|
5
|
+
}
|
6
|
+
}
|
7
|
+
|
8
|
+
.extended_select_input_menu {
|
9
|
+
border: solid 1px #aaa;
|
10
|
+
|
11
|
+
ul {
|
12
|
+
width: 600px;
|
13
|
+
border: none;
|
14
|
+
border-radius: 0;
|
15
|
+
}
|
16
|
+
|
17
|
+
.ui-state-default,
|
18
|
+
.ui-widget-content
|
19
|
+
.ui-state-default,
|
20
|
+
.ui-widget-header
|
21
|
+
.ui-state-default {
|
22
|
+
background: white;
|
23
|
+
border: 1px solid rgb(187, 187, 187);
|
24
|
+
}
|
25
|
+
|
26
|
+
.ui-state-hover,
|
27
|
+
.ui-widget-content .ui-state-hover,
|
28
|
+
.ui-widget-header .ui-state-hover,
|
29
|
+
.ui-state-focus,
|
30
|
+
.ui-widget-content .ui-state-focus,
|
31
|
+
.ui-widget-header .ui-state-focus {
|
32
|
+
background: white;
|
33
|
+
margin: 0;
|
34
|
+
background: rgb(248, 248, 248);
|
35
|
+
}
|
36
|
+
|
37
|
+
.type_pictogram {
|
38
|
+
position: absolute;
|
39
|
+
width: 25px;
|
40
|
+
height: 25px;
|
41
|
+
top: 0;
|
42
|
+
bottom: 0;
|
43
|
+
margin: auto 0;
|
44
|
+
}
|
45
|
+
|
46
|
+
.text-container {
|
47
|
+
position: absolute;
|
48
|
+
top: 50%;
|
49
|
+
@include transform(translate(0,-50%));
|
50
|
+
width: 66%;
|
51
|
+
margin-left: 20%;
|
52
|
+
overflow: hidden;
|
53
|
+
}
|
54
|
+
|
55
|
+
p {
|
56
|
+
margin: 0;
|
57
|
+
}
|
58
|
+
|
59
|
+
a {
|
60
|
+
@include help-circled-icon;
|
61
|
+
|
62
|
+
text-decoration: none;
|
63
|
+
float: right;
|
64
|
+
opacity: 0.2;
|
65
|
+
position: absolute;
|
66
|
+
bottom: 3px;
|
67
|
+
right: 7px;
|
68
|
+
|
69
|
+
&:hover {
|
70
|
+
opacity: 1;
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
74
|
+
.ui-menu-item {
|
75
|
+
float: left;
|
76
|
+
width: 33.33%;
|
77
|
+
outline: 0;
|
78
|
+
box-sizing: border-box;
|
79
|
+
min-height: 90px;
|
80
|
+
padding: 10px 2%;
|
81
|
+
border: 1px solid rgb(242, 242, 242);
|
82
|
+
}
|
83
|
+
|
84
|
+
.ui-selectmenu-optgroup {
|
85
|
+
float: left;
|
86
|
+
width: 100%;
|
87
|
+
margin: 0 !important;
|
88
|
+
border: 0;
|
89
|
+
background-color: rgb(211,211,211);
|
90
|
+
}
|
91
|
+
|
92
|
+
.ui-widget {
|
93
|
+
font-family: Helvetica, Sans-Serif;
|
94
|
+
font-size: 13px;
|
95
|
+
|
96
|
+
.item-description {
|
97
|
+
font-size: 11px;
|
98
|
+
color: gray;
|
99
|
+
}
|
100
|
+
}
|
101
|
+
|
102
|
+
.ui-state-focus {
|
103
|
+
background: #D2E5FA;
|
104
|
+
}
|
105
|
+
}
|
@@ -5,7 +5,7 @@ module Pageflow
|
|
5
5
|
included do
|
6
6
|
rescue_from EditLock::NotHeldError, EditLock::HeldByOtherSessionError do |exception|
|
7
7
|
respond_to do |format|
|
8
|
-
format.html { redirect_to :back, :alert => t('edit_locks.required') }
|
8
|
+
format.html { redirect_to :back, :alert => t('pageflow.edit_locks.required') }
|
9
9
|
format.json do
|
10
10
|
render(:status => :conflict, :json => {
|
11
11
|
:error_message => exception.message,
|
@@ -17,7 +17,7 @@ module Pageflow
|
|
17
17
|
|
18
18
|
rescue_from EditLock::HeldByOtherUserError do |exception|
|
19
19
|
respond_to do |format|
|
20
|
-
format.html { redirect_to :back, :alert => t('edit_locks.required_but_held_by_other_user') }
|
20
|
+
format.html { redirect_to :back, :alert => t('pageflow.edit_locks.required_but_held_by_other_user') }
|
21
21
|
format.json do
|
22
22
|
render(:status => :conflict, :json => {
|
23
23
|
:error_message => exception.message,
|
@@ -6,7 +6,7 @@ module Pageflow
|
|
6
6
|
rescue_from Quota::ExhaustedError do |exception|
|
7
7
|
respond_to do |format|
|
8
8
|
format.html do
|
9
|
-
redirect_to :back, :alert => t('quotas.exhausted')
|
9
|
+
redirect_to :back, :alert => t('pageflow.quotas.exhausted')
|
10
10
|
end
|
11
11
|
format.json do
|
12
12
|
render(:status => :forbidden,
|
@@ -5,6 +5,10 @@ module Pageflow
|
|
5
5
|
class ApplicationController < ActionController::Base
|
6
6
|
layout 'pageflow/application'
|
7
7
|
|
8
|
+
before_filter do
|
9
|
+
I18n.locale = current_user.try(:locale) || I18n.default_locale
|
10
|
+
end
|
11
|
+
|
8
12
|
# Prevent CSRF attacks by raising an exception.
|
9
13
|
# For APIs, you may want to use :null_session instead.
|
10
14
|
protect_from_forgery with: :exception
|
@@ -24,14 +28,14 @@ module Pageflow
|
|
24
28
|
|
25
29
|
rescue_from CanCan::AccessDenied do |exception|
|
26
30
|
respond_to do |format|
|
27
|
-
format.html { redirect_to main_app.admin_root_path, :alert => t('unauthorized') }
|
31
|
+
format.html { redirect_to main_app.admin_root_path, :alert => t('pageflow.unauthorized') }
|
28
32
|
format.any(:json, :css) { head :forbidden }
|
29
33
|
end
|
30
34
|
end
|
31
35
|
|
32
36
|
rescue_from StateMachine::InvalidTransition do |exception|
|
33
37
|
respond_to do |format|
|
34
|
-
format.html { redirect_to main_app.admin_root_path, :alert => t('invalid_transition') }
|
38
|
+
format.html { redirect_to main_app.admin_root_path, :alert => t('pageflow.invalid_transition') }
|
35
39
|
format.json { head :bad_request }
|
36
40
|
end
|
37
41
|
end
|
@@ -20,6 +20,7 @@ module Pageflow
|
|
20
20
|
respond_to do |format|
|
21
21
|
format.any(:html, :css) do
|
22
22
|
@entry = PublishedEntry.find(params[:id], entry_request_scope)
|
23
|
+
I18n.locale = @entry.locale
|
23
24
|
|
24
25
|
if params[:page].present?
|
25
26
|
@entry.share_target = Page.find_by_perma_id(params[:page])
|
@@ -49,6 +50,7 @@ module Pageflow
|
|
49
50
|
def partials
|
50
51
|
authenticate_user!
|
51
52
|
@entry = DraftEntry.find(params[:id])
|
53
|
+
I18n.locale = @entry.locale
|
52
54
|
authorize!(:show, @entry.to_model)
|
53
55
|
|
54
56
|
respond_to do |format|
|
@@ -75,7 +77,7 @@ module Pageflow
|
|
75
77
|
def entry_params
|
76
78
|
params.require(:entry).permit(:title, :summary, :credits, :manual_start, :home_url, :home_button_enabled,
|
77
79
|
:emphasize_chapter_beginning, :emphasize_new_pages,
|
78
|
-
:share_image_id, :share_image_x, :share_image_y)
|
80
|
+
:share_image_id, :share_image_x, :share_image_y, :locale)
|
79
81
|
end
|
80
82
|
|
81
83
|
def entry_request_scope
|
@@ -2,7 +2,7 @@ module Pageflow
|
|
2
2
|
module Admin
|
3
3
|
module UsersHelper
|
4
4
|
def collection_for_user_roles
|
5
|
-
User.roles_accessible_by(current_ability).index_by { |role| t(role, :scope => 'admin.users.roles') }
|
5
|
+
User.roles_accessible_by(current_ability).index_by { |role| t(role, :scope => 'pageflow.admin.users.roles') }
|
6
6
|
end
|
7
7
|
end
|
8
8
|
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
module Pageflow
|
2
2
|
module EntriesHelper
|
3
|
+
include RenderJsonHelper
|
4
|
+
|
3
5
|
def pretty_entry_url(entry)
|
4
6
|
pageflow.short_entry_url(entry.to_model, Pageflow.config.theming_url_options(entry.theming))
|
5
7
|
end
|
@@ -13,7 +15,7 @@ module Pageflow
|
|
13
15
|
|
14
16
|
if rights.any?
|
15
17
|
content_tag :p, class: 'rights' do
|
16
|
-
"
|
18
|
+
I18n.t('pageflow.helpers.entries.image_rights') + ": " + rights * ', '
|
17
19
|
end
|
18
20
|
else
|
19
21
|
''
|
@@ -30,7 +32,7 @@ module Pageflow
|
|
30
32
|
end
|
31
33
|
|
32
34
|
if links.any?
|
33
|
-
content_tag(:h2, '
|
35
|
+
content_tag(:h2, I18n.t('pageflow.helpers.entries.global_links'), :class => 'hidden') + safe_join(links, ''.html_safe)
|
34
36
|
else
|
35
37
|
''
|
36
38
|
end
|
@@ -71,5 +73,9 @@ module Pageflow
|
|
71
73
|
return '' if entry.summary.blank?
|
72
74
|
strip_tags(entry.summary.gsub(/<br ?\/?>/, ' ').squish)
|
73
75
|
end
|
76
|
+
|
77
|
+
def entry_pages_json_seed(entry)
|
78
|
+
sanitize_json(entry.pages.to_json(only: [:id, :perma_id, :configuration])).html_safe
|
79
|
+
end
|
74
80
|
end
|
75
81
|
end
|
@@ -24,5 +24,18 @@ module Pageflow
|
|
24
24
|
"-"
|
25
25
|
end
|
26
26
|
end
|
27
|
+
|
28
|
+
def files_json_seeds(entry)
|
29
|
+
inner = Pageflow.config.file_types.map do |file_type, result|
|
30
|
+
json = render_json_partial(partial: 'pageflow/editor/files/file',
|
31
|
+
collection: entry.files(file_type.model),
|
32
|
+
locals: {file_type: file_type},
|
33
|
+
as: :file)
|
34
|
+
|
35
|
+
%'"#{file_type.collection_name}": #{json}'
|
36
|
+
end.join(',')
|
37
|
+
|
38
|
+
"{#{inner}}".html_safe
|
39
|
+
end
|
27
40
|
end
|
28
41
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Pageflow
|
2
|
+
# @api private
|
3
|
+
module HelpEntriesHelper
|
4
|
+
def help_entry_sections
|
5
|
+
render(partial: 'pageflow/help_entries/section',
|
6
|
+
collection: Pageflow.config.help_entries.flat,
|
7
|
+
as: :help_entry)
|
8
|
+
end
|
9
|
+
|
10
|
+
def help_entries_menu
|
11
|
+
render('pageflow/help_entries/menu', help_entries: Pageflow.config.help_entries)
|
12
|
+
end
|
13
|
+
|
14
|
+
def help_entry_li(help_entry, &block)
|
15
|
+
css_class = help_entry.children.present? ? 'expandable' : nil
|
16
|
+
content_tag(:li, class: css_class, &block)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -21,6 +21,17 @@ module Pageflow
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
+
ESCAPED_CHARS = {
|
25
|
+
"\u2028" => '\u2028',
|
26
|
+
"\u2029" => '\u2029'
|
27
|
+
}
|
28
|
+
|
29
|
+
ESCAPED_CHARS_REGEX = /[\u2028\u2029]/u
|
30
|
+
|
31
|
+
def sanitize_json(json)
|
32
|
+
json.gsub(ESCAPED_CHARS_REGEX, ESCAPED_CHARS)
|
33
|
+
end
|
34
|
+
|
24
35
|
def render_html_partial(*args)
|
25
36
|
render_with_format(:html) do
|
26
37
|
render(*args)
|
@@ -4,7 +4,10 @@ module Pageflow
|
|
4
4
|
|
5
5
|
def invitation(options)
|
6
6
|
@user = User.find(options['user_id'])
|
7
|
-
|
7
|
+
I18n.with_locale(@user.locale) do
|
8
|
+
headers('X-Language' => I18n.locale)
|
9
|
+
mail(:to => @user.email, :subject => t('.subject'), :from => Pageflow.config.mailer_sender)
|
10
|
+
end
|
8
11
|
end
|
9
12
|
end
|
10
13
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Pageflow
|
2
|
+
class PositionedFile
|
3
|
+
attr_reader :file, :position_x, :position_y
|
4
|
+
|
5
|
+
delegate :thumbnail_url, to: :file
|
6
|
+
|
7
|
+
def initialize(file, position_x = nil, position_y = nil)
|
8
|
+
@file = file
|
9
|
+
@position_x = position_x.presence || 50
|
10
|
+
@position_y = position_y.presence || 50
|
11
|
+
end
|
12
|
+
|
13
|
+
def ==(other)
|
14
|
+
super(other) ||
|
15
|
+
other == file ||
|
16
|
+
(other.is_a?(PositionedFile) && other.file == file)
|
17
|
+
end
|
18
|
+
|
19
|
+
def to_model
|
20
|
+
file
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.wrap(file, position_x, position_y)
|
24
|
+
file ? new(file, position_x, position_y) : nil
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.null
|
28
|
+
Null.new
|
29
|
+
end
|
30
|
+
|
31
|
+
class Null < PositionedFile
|
32
|
+
def initialize
|
33
|
+
super(nil)
|
34
|
+
end
|
35
|
+
|
36
|
+
def thumbnail_url(*args)
|
37
|
+
ImageFile.new.processed_attachment.url(*args)
|
38
|
+
end
|
39
|
+
|
40
|
+
def blank?
|
41
|
+
true
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|