pageflow 12.6.0 → 13.0.0.beta1
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 +4 -4
- data/CHANGELOG.md +78 -16
- data/README.md +8 -1
- data/Rakefile +0 -4
- data/admins/pageflow/accounts.rb +6 -9
- data/admins/pageflow/entry.rb +1 -1
- data/admins/pageflow/folder.rb +1 -1
- data/admins/pageflow/user.rb +4 -4
- data/app/assets/javascripts/pageflow/asset_urls.js.erb +1 -1
- data/app/assets/javascripts/pageflow/audio/multi_player.js +0 -4
- data/app/assets/javascripts/pageflow/audio_player.js +1 -1
- data/app/assets/javascripts/pageflow/base.js +0 -2
- data/app/assets/javascripts/pageflow/browser/agent.js +78 -92
- data/app/assets/javascripts/pageflow/browser/autoplay_support.js +2 -2
- data/app/assets/javascripts/pageflow/browser/video.js +1 -6
- data/app/assets/javascripts/pageflow/dist/react.js +1100 -2209
- data/app/assets/javascripts/pageflow/editor/models/configuration.js +5 -5
- data/app/assets/javascripts/pageflow/editor/templates/background_positioning_sliders.jst.ejs +0 -8
- data/app/assets/javascripts/pageflow/editor/views/background_positioning_sliders_view.js +23 -37
- data/app/assets/javascripts/pageflow/editor/views/background_positioning_view.js +2 -2
- data/app/assets/javascripts/pageflow/editor/views/configuration_editors/video.js +1 -1
- data/app/assets/javascripts/pageflow/editor/views/edit_widget_view.js +0 -9
- data/app/assets/javascripts/pageflow/jquery_utils.js +0 -10
- data/app/assets/javascripts/pageflow/media_player.js +3 -7
- data/app/assets/javascripts/pageflow/media_player/catch_play_promise.js +23 -0
- data/app/assets/javascripts/pageflow/media_player/volume_binding.js +1 -2
- data/app/assets/javascripts/pageflow/media_player/volume_fading/web_audio.js +24 -73
- data/app/assets/javascripts/pageflow/ready.js +1 -2
- data/app/assets/javascripts/pageflow/seed_entry_data.js +3 -3
- data/app/assets/javascripts/pageflow/slideshow.js +9 -17
- data/app/assets/javascripts/pageflow/slideshow/adjacent_pages.js +4 -9
- data/app/assets/javascripts/pageflow/slideshow/{successor_preparer.js → adjacent_preparer.js} +11 -14
- data/app/assets/javascripts/pageflow/slideshow/atmo.js +12 -23
- data/app/assets/javascripts/pageflow/slideshow/lazy_page_widget.js +2 -2
- data/app/assets/javascripts/pageflow/slideshow/progressive_preload.js +42 -0
- data/app/assets/javascripts/pageflow/ui/views/configuration_editor_view.js +2 -2
- data/app/assets/javascripts/pageflow/video_player/filter_sources.js +2 -16
- data/app/assets/javascripts/pageflow/video_player/lazy.js +1 -1
- data/app/assets/javascripts/pageflow/visited.js +0 -2
- data/app/assets/javascripts/pageflow/widgets.js +0 -1
- data/app/assets/javascripts/pageflow/widgets/multimedia_alert.js +1 -2
- data/app/assets/javascripts/pageflow/widgets/navigation.js +0 -1
- data/app/assets/javascripts/pageflow/widgets/navigation_mobile.js +0 -1
- data/app/assets/javascripts/pageflow/widgets/overview.js +1 -3
- data/app/assets/stylesheets/pageflow/admin.scss +2 -0
- data/app/assets/stylesheets/pageflow/admin/status_tags.scss +13 -0
- data/app/assets/stylesheets/pageflow/editor/background_positioning.scss +10 -34
- data/app/assets/stylesheets/pageflow/navigation_bar.scss +4 -0
- data/app/assets/stylesheets/pageflow/page_types/video.scss +4 -1
- data/app/assets/stylesheets/pageflow/themes/default/anchors.scss +0 -5
- data/app/assets/stylesheets/pageflow/themes/default/base.scss +0 -2
- data/app/assets/stylesheets/pageflow/themes/default/overview/icons/icon_font.scss +1 -4
- data/app/assets/stylesheets/pageflow/themes/default/page.scss +0 -19
- data/app/assets/stylesheets/pageflow/themes/default/page/anchors.scss +0 -4
- data/app/assets/stylesheets/pageflow/themes/default/slideshow.scss +0 -1
- data/app/controllers/concerns/pageflow/edit_locking.rb +2 -2
- data/app/controllers/concerns/pageflow/public_https_mode.rb +1 -5
- data/app/controllers/concerns/pageflow/quota_verification.rb +1 -1
- data/app/controllers/pageflow/application_controller.rb +2 -2
- data/app/controllers/pageflow/chapters_controller.rb +2 -2
- data/app/controllers/pageflow/edit_locks_controller.rb +1 -1
- data/app/controllers/pageflow/editor/encoding_confirmations_controller.rb +1 -1
- data/app/controllers/pageflow/editor/entries_controller.rb +1 -1
- data/app/controllers/pageflow/editor/entry_publications_controller.rb +1 -1
- data/app/controllers/pageflow/editor/files_controller.rb +1 -1
- data/app/controllers/pageflow/entries_controller.rb +5 -11
- data/app/controllers/pageflow/files_controller.rb +1 -1
- data/app/controllers/pageflow/pages_controller.rb +2 -2
- data/app/controllers/pageflow/revisions_controller.rb +1 -1
- data/app/controllers/pageflow/storylines_controller.rb +2 -3
- data/app/helpers/pageflow/common_entry_seed_helper.rb +0 -1
- data/app/helpers/pageflow/entries_helper.rb +6 -31
- data/app/helpers/pageflow/entry_json_seed_helper.rb +1 -1
- data/app/helpers/pageflow/public_i18n_helper.rb +1 -6
- data/app/jobs/pageflow/application_job.rb +6 -0
- data/app/jobs/pageflow/poll_meta_data_from_zencoder_job.rb +2 -4
- data/app/jobs/pageflow/poll_zencoder_job.rb +8 -8
- data/app/jobs/pageflow/process_file_job.rb +4 -4
- data/app/jobs/pageflow/prune_auto_snapshots_job.rb +3 -3
- data/app/jobs/pageflow/request_meta_data_from_zencoder_job.rb +4 -4
- data/app/jobs/pageflow/submit_file_to_zencoder_job.rb +4 -4
- data/app/jobs/pageflow/upload_file_to_s3_job.rb +5 -5
- data/app/mailers/pageflow/user_mailer.rb +1 -15
- data/app/models/concerns/pageflow/uploaded_file.rb +3 -3
- data/app/models/pageflow/audio_file.rb +1 -1
- data/app/models/pageflow/chapter.rb +1 -1
- data/app/models/pageflow/entry.rb +1 -1
- data/app/models/pageflow/invited_user.rb +1 -1
- data/app/models/pageflow/membership.rb +4 -2
- data/app/models/pageflow/page.rb +1 -1
- data/app/models/pageflow/published_entry.rb +3 -4
- data/app/models/pageflow/revision.rb +5 -3
- data/app/models/pageflow/storyline.rb +5 -1
- data/app/models/pageflow/theming.rb +1 -2
- data/app/models/pageflow/used_file.rb +12 -0
- data/app/models/pageflow/video_file.rb +1 -1
- data/app/views/admin/accounts/_form.html.erb +0 -8
- data/app/views/admin/accounts/_theming_details.html.arb +0 -3
- data/app/views/pageflow/entries/_mobile_navigation.html.erb +3 -2
- data/app/views/pageflow/entries/navigation/_page.html.erb +1 -3
- data/app/views/pageflow/entries/overview/_page.html.erb +1 -1
- data/app/views/pageflow/entry_json_seed/_entry.json.jbuilder +1 -1
- data/app/views/pageflow/user_mailer/invitation.html.erb +2 -2
- data/app/views/pageflow/user_mailer/invitation.text.erb +1 -1
- data/config/locales/de.yml +6 -16
- data/config/locales/en.yml +8 -18
- data/config/routes.rb +0 -6
- data/db/migrate/20140418225525_setup_schema.rb +295 -203
- data/db/migrate/20140418240000_add_attributes_to_users.rb +3 -6
- data/lib/generators/pageflow/resque/resque_generator.rb +6 -3
- data/lib/pageflow.rb +1 -1
- data/lib/pageflow/ability_mixin.rb +0 -1
- data/lib/pageflow/active_admin_patches/views/attributes_table.rb +1 -1
- data/lib/pageflow/active_admin_patches/views/table_for.rb +1 -1
- data/lib/pageflow/built_in_widget_type.rb +0 -8
- data/lib/pageflow/built_in_widget_types_plugin.rb +0 -2
- data/lib/pageflow/configuration.rb +0 -10
- data/lib/pageflow/engine.rb +5 -9
- data/lib/pageflow/user_mixin.rb +5 -0
- data/lib/pageflow/version.rb +1 -1
- data/lib/tasks/pageflow_tasks.rake +1 -11
- data/spec/factories/accounts.rb +1 -1
- data/spec/factories/audio_files.rb +1 -1
- data/spec/factories/chapters.rb +1 -3
- data/spec/factories/edit_locks.rb +2 -4
- data/spec/factories/entries.rb +1 -1
- data/spec/factories/feature_targets.rb +1 -1
- data/spec/factories/file_usages.rb +1 -1
- data/spec/factories/folders.rb +1 -1
- data/spec/factories/hosted_files.rb +6 -6
- data/spec/factories/image_files.rb +1 -1
- data/spec/factories/invited_user.rb +1 -1
- data/spec/factories/memberships.rb +1 -1
- data/spec/factories/pages.rb +1 -1
- data/spec/factories/revisions.rb +1 -1
- data/spec/factories/storylines.rb +1 -1
- data/spec/factories/text_track_files.rb +1 -1
- data/spec/factories/themings.rb +1 -1
- data/spec/factories/users.rb +1 -1
- data/spec/factories/video_files.rb +1 -1
- data/spec/factories/widgets.rb +1 -1
- data/vendor/assets/javascripts/audio5.min.js +129 -280
- metadata +103 -219
- data/app/assets/audios/pageflow/unmute.mp3 +0 -0
- data/app/assets/javascripts/pageflow/background_media.js +0 -22
- data/app/assets/javascripts/pageflow/cookie_notice.js +0 -7
- data/app/assets/javascripts/pageflow/editor/views/info_box_view.js +0 -8
- data/app/assets/javascripts/pageflow/editor/views/widget_types/cookie_notice_bar.js +0 -15
- data/app/assets/javascripts/pageflow/media_player/handle_failed_play.js +0 -34
- data/app/assets/javascripts/pageflow/slideshow/adjacent_preloader.js +0 -26
- data/app/assets/stylesheets/pageflow/page_types/video/mobile_poster.scss +0 -15
- data/app/assets/stylesheets/pageflow/themes/default/background_media_unmute_button.scss +0 -77
- data/app/assets/stylesheets/pageflow/themes/default/cookie_notice_bar.scss +0 -57
- data/app/assets/stylesheets/pageflow/themes/default/page/hyphenate.scss +0 -24
- data/app/controllers/pageflow/admin/initial_passwords_controller.rb +0 -8
- data/app/views/pageflow/admin/initial_passwords/edit.html.erb +0 -16
- data/app/views/pageflow/entries/mobile_navigation/_page.html.erb +0 -5
- data/db/migrate/20140624135420_create_themings.rb +0 -15
- data/db/migrate/20140624135421_create_themings_for_existing_accounts.rb +0 -26
- data/db/migrate/20140624135422_change_theme_references_to_theming_references.rb +0 -45
- data/db/migrate/20140624135423_remove_attributes_from_themes.rb +0 -10
- data/db/migrate/20140624135424_create_accounts_themes_join_table.rb +0 -8
- data/db/migrate/20140624135425_move_cname_from_account_to_theming.rb +0 -21
- data/db/migrate/20140625184800_drop_themes.rb +0 -14
- data/db/migrate/20140704110631_add_confirmed_by_to_encoded_files.rb +0 -6
- data/db/migrate/20140819081454_add_home_url_attributes_to_themings_and_revisions.rb +0 -9
- data/db/migrate/20141027102310_create_widgets.rb +0 -11
- data/db/migrate/20141028125408_add_emphasize_chapter_beginning_to_revisions.rb +0 -5
- data/db/migrate/20141119164526_add_emphasize_new_pages_to_revisions.rb +0 -5
- data/db/migrate/20141119174032_add_sharing_image_to_revisions.rb +0 -7
- data/db/migrate/20141128150305_add_locale_to_users.rb +0 -5
- data/db/migrate/20141208161030_add_locale_to_revisions.rb +0 -5
- data/db/migrate/20141211110226_add_configuration_to_chapters.rb +0 -5
- data/db/migrate/20150115175116_add_features_configuration_to_accounts.rb +0 -5
- data/db/migrate/20150115175207_add_features_configuration_to_entries.rb +0 -5
- data/db/migrate/20150603091823_add_password_attributes_to_revisions.rb +0 -6
- data/db/migrate/20150825133449_update_audio_loop_pages_to_use_atmo.rb +0 -24
- data/db/migrate/20150826125417_create_pageflow_storylines.rb +0 -12
- data/db/migrate/20150826125744_add_storyline_id_to_chapters.rb +0 -6
- data/db/migrate/20150826125745_insert_main_storylines.rb +0 -28
- data/db/migrate/20150830105831_remove_revision_id_from_chapters.rb +0 -5
- data/db/migrate/20150830110006_remove_entry_id_from_chapters.rb +0 -5
- data/db/migrate/20151022080518_add_first_published_at_to_entries.rb +0 -14
- data/db/migrate/20160131222203_add_cache_counters.rb +0 -23
- data/db/migrate/20160201130118_add_additional_cnames_to_themings.rb +0 -5
- data/db/migrate/20160216130336_add_meta_fields_to_revision.rb +0 -7
- data/db/migrate/20160225075853_add_overview_button_enabled_to_revisions.rb +0 -5
- data/db/migrate/20160304072911_rename_membership_entry_and_make_polymorphic.rb +0 -19
- data/db/migrate/20160304151327_add_role_to_membership.rb +0 -19
- data/db/migrate/20160310080213_add_edited_at_to_entries.rb +0 -9
- data/db/migrate/20160425192648_add_index_for_revision_publication_timestamps.rb +0 -5
- data/db/migrate/20160504093145_replace_role_and_account_on_user.rb +0 -42
- data/db/migrate/20160531152500_update_users_count.rb +0 -27
- data/db/migrate/20160617123557_add_meta_fields_to_theming.rb +0 -7
- data/db/migrate/20160707125400_add_output_presences_to_video_files.rb +0 -5
- data/db/migrate/20160715105408_add_share_url_to_revisions.rb +0 -5
- data/db/migrate/20160824115000_add_parent_file_to_video_files.rb +0 -8
- data/db/migrate/20160824115100_add_parent_file_to_audio_files.rb +0 -8
- data/db/migrate/20160824115200_add_parent_file_to_image_files.rb +0 -8
- data/db/migrate/20160929102700_add_configuration_to_files.rb +0 -7
- data/db/migrate/20161007144500_add_text_track_files.rb +0 -31
- data/db/migrate/20161216175734_move_configuration_from_file_to_file_usage.rb +0 -27
- data/db/migrate/20161230144429_add_processed_attachment_to_text_track_files.rb +0 -8
- data/db/migrate/20170201074328_add_configuration_to_widgets.rb +0 -5
- data/db/migrate/20170222124848_update_video_file_output_presences.rb +0 -12
- data/db/migrate/20170315130000_add_theme_name_to_revisions.rb +0 -12
- data/db/migrate/20170421112300_turn_background_video_pages_into_background_image_pages.rb +0 -22
- data/db/migrate/20170912165050_reset_copied_snapshot_type.rb +0 -24
- data/db/migrate/20170913105048_fix_hls_output_presences_for_legacy_video_files.rb +0 -12
- data/db/migrate/20180528144334_add_privacy_link_url_to_themings.rb +0 -5
- data/db/migrate/20190109085744_add_default_locale_to_themings.rb +0 -6
- data/lib/generators/pageflow/resque/templates/devise_async.rb +0 -6
- data/lib/generators/pageflow/resque/templates/resque_logger.rb +0 -16
- data/lib/generators/pageflow/resque/templates/resque_mailer.rb +0 -4
- data/lib/pageflow/primary_domain_entry_redirect.rb +0 -25
@@ -1,21 +0,0 @@
|
|
1
|
-
class MoveCnameFromAccountToTheming < ActiveRecord::Migration
|
2
|
-
def up
|
3
|
-
add_column :pageflow_themings, :cname, :string, null: false, default: ''
|
4
|
-
add_index :pageflow_themings, :cname
|
5
|
-
|
6
|
-
execute("UPDATE pageflow_themings SET cname = (SELECT cname FROM pageflow_accounts WHERE pageflow_accounts.default_theming_id = pageflow_themings.id LIMIT 1);")
|
7
|
-
|
8
|
-
remove_index :pageflow_accounts, :cname
|
9
|
-
remove_column :pageflow_accounts, :cname
|
10
|
-
end
|
11
|
-
|
12
|
-
def down
|
13
|
-
add_column :pageflow_accounts, :cname, :string, null: false, default: ''
|
14
|
-
add_index :pageflow_accounts, :cname
|
15
|
-
|
16
|
-
execute("UPDATE pageflow_accounts SET cname = (SELECT cname FROM pageflow_themings WHERE pageflow_themings.id = pageflow_accounts.default_theming_id);")
|
17
|
-
|
18
|
-
remove_index :pageflow_themings, :cname
|
19
|
-
remove_column :pageflow_themings, :cname
|
20
|
-
end
|
21
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
class DropThemes < ActiveRecord::Migration
|
2
|
-
def up
|
3
|
-
rename_column :pageflow_accounts_themes, :theme_id, :theme_name
|
4
|
-
add_column :pageflow_themings, :theme_name, :string
|
5
|
-
|
6
|
-
execute(<<-SQL)
|
7
|
-
UPDATE pageflow_themings SET theme_name =
|
8
|
-
(SELECT css_dir FROM pageflow_themes WHERE pageflow_themes.id = pageflow_themings.theme_id);
|
9
|
-
SQL
|
10
|
-
|
11
|
-
remove_reference :pageflow_themings, :theme
|
12
|
-
drop_table :pageflow_themes
|
13
|
-
end
|
14
|
-
end
|
@@ -1,9 +0,0 @@
|
|
1
|
-
class AddHomeUrlAttributesToThemingsAndRevisions < ActiveRecord::Migration
|
2
|
-
def change
|
3
|
-
add_column :pageflow_themings, :home_url, :string, default: '', null: false
|
4
|
-
add_column :pageflow_themings, :home_button_enabled_by_default, :boolean, default: true, null: false
|
5
|
-
|
6
|
-
add_column :pageflow_revisions, :home_url, :string, default: '', null: false
|
7
|
-
add_column :pageflow_revisions, :home_button_enabled, :boolean, default: false, null: false
|
8
|
-
end
|
9
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
class UpdateAudioLoopPagesToUseAtmo < ActiveRecord::Migration
|
2
|
-
# Pageflow::Page might have gotten out of sync with schema at this
|
3
|
-
# point. Use local model instead.
|
4
|
-
class MigratedPage < ActiveRecord::Base
|
5
|
-
self.table_name = 'pageflow_pages'
|
6
|
-
|
7
|
-
serialize :configuration, JSON
|
8
|
-
|
9
|
-
def configuration
|
10
|
-
super || {}
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def change
|
15
|
-
MigratedPage.where(template: 'audio_loop').find_each do |page|
|
16
|
-
page.template = 'background_image'
|
17
|
-
|
18
|
-
audio_file_id = page.configuration.delete('audio_file_id')
|
19
|
-
page.configuration['atmo_audio_file_id'] = audio_file_id
|
20
|
-
|
21
|
-
page.save!
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
class InsertMainStorylines < ActiveRecord::Migration
|
2
|
-
def up
|
3
|
-
create_storyline_for_each_revision
|
4
|
-
update_each_chapter_to_reference_a_storyline
|
5
|
-
end
|
6
|
-
|
7
|
-
private
|
8
|
-
|
9
|
-
def create_storyline_for_each_revision
|
10
|
-
# We can reuse entry ids as storyline perma ids since all
|
11
|
-
# storylines of an entry's revisions are supposed to have the same
|
12
|
-
# perma id.
|
13
|
-
execute(<<-SQL)
|
14
|
-
INSERT INTO pageflow_storylines
|
15
|
-
(perma_id, revision_id, position, configuration, created_at, updated_at)
|
16
|
-
SELECT entry_id, id, 1, '{"main":true}', created_at, updated_at
|
17
|
-
FROM pageflow_revisions
|
18
|
-
SQL
|
19
|
-
end
|
20
|
-
|
21
|
-
def update_each_chapter_to_reference_a_storyline
|
22
|
-
execute(<<-SQL)
|
23
|
-
UPDATE pageflow_chapters SET storyline_id =
|
24
|
-
(SELECT id FROM pageflow_storylines
|
25
|
-
WHERE pageflow_storylines.revision_id = pageflow_chapters.revision_id)
|
26
|
-
SQL
|
27
|
-
end
|
28
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
class AddFirstPublishedAtToEntries < ActiveRecord::Migration
|
2
|
-
def change
|
3
|
-
add_column :pageflow_entries, :first_published_at, :datetime
|
4
|
-
|
5
|
-
execute(<<-SQL)
|
6
|
-
UPDATE pageflow_entries SET first_published_at = (
|
7
|
-
SELECT MIN(published_at)
|
8
|
-
FROM pageflow_revisions
|
9
|
-
WHERE pageflow_revisions.entry_id = pageflow_entries.id
|
10
|
-
LIMIT 1
|
11
|
-
);
|
12
|
-
SQL
|
13
|
-
end
|
14
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
class AddCacheCounters < ActiveRecord::Migration
|
2
|
-
def self.up
|
3
|
-
add_column :pageflow_accounts, :users_count, :integer, default: 0, null: false
|
4
|
-
add_column :pageflow_accounts, :entries_count, :integer, default: 0, null: false
|
5
|
-
|
6
|
-
execute(<<-SQL)
|
7
|
-
UPDATE pageflow_accounts SET users_count = (
|
8
|
-
SELECT COUNT(*)
|
9
|
-
FROM users
|
10
|
-
WHERE users.account_id = pageflow_accounts.id
|
11
|
-
), entries_count = (
|
12
|
-
SELECT COUNT(*)
|
13
|
-
FROM pageflow_entries
|
14
|
-
WHERE pageflow_entries.account_id = pageflow_accounts.id
|
15
|
-
);
|
16
|
-
SQL
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.down
|
20
|
-
remove_column :pageflow_accounts, :users_count
|
21
|
-
remove_column :pageflow_accounts, :entries_count
|
22
|
-
end
|
23
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
class RenameMembershipEntryAndMakePolymorphic < ActiveRecord::Migration
|
2
|
-
def change
|
3
|
-
rename_column :pageflow_memberships, :entry_id, :entity_id
|
4
|
-
add_column :pageflow_memberships, :entity_type, :string
|
5
|
-
reversible do |dir|
|
6
|
-
dir.up do
|
7
|
-
update_each_membership_to_reference_an_entity_of_type_entry
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
def update_each_membership_to_reference_an_entity_of_type_entry
|
15
|
-
execute(<<-SQL)
|
16
|
-
UPDATE pageflow_memberships SET entity_type = 'Pageflow::Entry'
|
17
|
-
SQL
|
18
|
-
end
|
19
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
class AddRoleToMembership < ActiveRecord::Migration
|
2
|
-
def change
|
3
|
-
add_column :pageflow_memberships, :role, :string, null: false, default: 'editor'
|
4
|
-
|
5
|
-
reversible do |dir|
|
6
|
-
dir.up do
|
7
|
-
update_each_membership_to_have_default_role
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
def update_each_membership_to_have_default_role
|
15
|
-
execute(<<-SQL)
|
16
|
-
UPDATE pageflow_memberships SET role = 'publisher'
|
17
|
-
SQL
|
18
|
-
end
|
19
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
class ReplaceRoleAndAccountOnUser < ActiveRecord::Migration
|
2
|
-
def up
|
3
|
-
add_account_member_membership_for_each_user
|
4
|
-
update_membership_role_to_manager_for_each_account_manager
|
5
|
-
|
6
|
-
add_column :users, :admin, :boolean, null: false, default: false
|
7
|
-
|
8
|
-
set_admin_to_true_for_each_admin
|
9
|
-
|
10
|
-
remove_column :users, :role, :string, default: 'editor', null: false
|
11
|
-
remove_column :users, :account_id, :integer
|
12
|
-
end
|
13
|
-
|
14
|
-
def down
|
15
|
-
raise ActiveRecord::IrreversibleMigration
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def add_account_member_membership_for_each_user
|
21
|
-
execute(<<-SQL)
|
22
|
-
INSERT INTO pageflow_memberships (role, user_id, entity_id, entity_type, created_at)
|
23
|
-
SELECT 'member', id, account_id, 'Pageflow::Account', created_at FROM users
|
24
|
-
SQL
|
25
|
-
end
|
26
|
-
|
27
|
-
def update_membership_role_to_manager_for_each_account_manager
|
28
|
-
execute(<<-SQL)
|
29
|
-
UPDATE pageflow_memberships INNER JOIN users ON
|
30
|
-
pageflow_memberships.user_id = users.id AND
|
31
|
-
pageflow_memberships.entity_type = 'Pageflow::Account' AND
|
32
|
-
users.role = 'account_manager'
|
33
|
-
SET pageflow_memberships.role = 'manager'
|
34
|
-
SQL
|
35
|
-
end
|
36
|
-
|
37
|
-
def set_admin_to_true_for_each_admin
|
38
|
-
execute(<<-SQL)
|
39
|
-
UPDATE users SET users.admin = TRUE WHERE users.role = 'admin'
|
40
|
-
SQL
|
41
|
-
end
|
42
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
class UpdateUsersCount < ActiveRecord::Migration
|
2
|
-
def self.up
|
3
|
-
add_column :pageflow_entries, :users_count, :integer, default: 0, null: false
|
4
|
-
|
5
|
-
execute(<<-SQL)
|
6
|
-
UPDATE pageflow_accounts SET users_count = (
|
7
|
-
SELECT COUNT(*)
|
8
|
-
FROM pageflow_memberships
|
9
|
-
WHERE pageflow_memberships.entity_id = pageflow_accounts.id AND
|
10
|
-
pageflow_memberships.entity_type = 'Pageflow::Account'
|
11
|
-
);
|
12
|
-
SQL
|
13
|
-
|
14
|
-
execute(<<-SQL)
|
15
|
-
UPDATE pageflow_entries SET users_count = (
|
16
|
-
SELECT COUNT(*)
|
17
|
-
FROM pageflow_memberships
|
18
|
-
WHERE pageflow_memberships.entity_id = pageflow_entries.id AND
|
19
|
-
pageflow_memberships.entity_type = 'Pageflow::Entry'
|
20
|
-
);
|
21
|
-
SQL
|
22
|
-
end
|
23
|
-
|
24
|
-
def self.down
|
25
|
-
remove_column :pageflow_entries, :users_count
|
26
|
-
end
|
27
|
-
end
|