From 73cfe18ced98d195e04247c558a6d6e59e1fe7fd Mon Sep 17 00:00:00 2001 From: Mayel de Borniol Date: Tue, 6 Feb 2024 18:58:59 +0000 Subject: [PATCH] https://github.com/bonfire-networks/bonfire-app/issues/243 --- docs/DATABASE.md | 2 +- .../20200523081012_init_pointers.exs | 15 +- .../migrations/20200818094943_import_ap.exs | 2 +- .../20200828094946_import_social_graph.exs | 13 - .../20200828094947_import_posts.exs | 13 - .../20200828094948_import_messages.exs | 13 - .../20201205094943_import_classify.exs | 8 +- .../20210102094944_import_shared_user.exs | 2 +- .../repo/migrations/20210128094942_posts.exs | 8 + .../migrations/20210128094943_messages.exs | 8 + .../20210128094944_social_graph.exs | 8 + .../20210410094945_profile_images.exs | 2 +- .../repo/migrations/20210412094946_fp.exs | 2 +- .../migrations/20210618094945_peered_uri.exs | 2 +- .../20210831134330_update_oban_jobs_table.exs | 8 - .../repo/migrations/20220531084501_seen.exs | 13 - .../20220915052335_create_oban_peers.exs | 8 - .../migrations/20230304094943_add_type.exs | 4 +- .../migrations/20230304100100_add_tree.exs | 12 +- .../20230731004945_add_array_reverse_fn.exs | 7 + .../migrations/20240110094945_gin_indexes.exs | 2 +- .../hooks/Bonfire.Editor.Milkdown.hooks.js | 2 +- ...fire.UI.Common.PreviewContentLive.hooks.js | 127 ++-- ...re.UI.Social.Activity.DateAgoLive.hooks.js | 49 ++ .../config/flavour_assets/hooks/index.js | 4 +- .../20200523081012_init_pointers.exs | 15 +- .../migrations/20200818094943_import_ap.exs | 2 +- .../20200828094946_import_social_graph.exs | 13 - .../20200828094947_import_posts.exs | 13 - .../20200828094948_import_messages.exs | 13 - ...exs => 20201205094943_import_classify.exs} | 0 .../20210102094944_import_shared_user.exs | 2 +- .../repo/migrations/20210128094942_posts.exs | 8 + .../migrations/20210128094943_messages.exs | 8 + .../20210128094944_social_graph.exs | 8 + .../20210410094945_profile_images.exs | 2 +- .../repo/migrations/20210412094946_fp.exs | 2 +- .../migrations/20210618094945_peered_uri.exs | 2 +- .../20210831134330_update_oban_jobs_table.exs | 8 - .../repo/migrations/20220531084501_seen.exs | 13 - .../20220621084501_auth_second_factor.exs | 13 - .../migrations/20220712094940_extra_info.exs | 13 - .../20220915052335_create_oban_peers.exs | 8 - .../migrations/20230304094943_add_type.exs | 4 +- .../migrations/20230304100100_add_tree.exs | 12 +- ...hashtag.exs => 20240109084501_hashtag.exs} | 0 .../migrations/20240110094945_gin_indexes.exs | 48 ++ .../repo/migrations/20240121084501_label.exs | 13 + .../disabled/20220614173443_create_tracks.exs | 21 - .../20220614174350_create_playlists.exs | 18 - .../20220614202737_create_track_playlists.exs | 16 - ...615035733_create_active_storage_tables.exs | 58 -- ...lter_playlist_fielf_to_track_playlists.exs | 8 - ...20220705023948_add_private_to_playlist.exs | 10 - .../20220709025257_add_type_to_playlist.exs | 12 - ...0719192715_add_counter_caches_to_track.exs | 11 - ...9192759_add_counter_caches_to_playlist.exs | 10 - .../20220720033830_create_track_event.exs | 39 -- .../20220722054446_add_oban_jobs_table.exs | 12 - .../20220722134234_add_state_to_track.exs | 12 - .../20220805045656_create_preview_cards.exs | 19 - .../disabled/20220813173857_create_event.exs | 46 -- .../20220827044728_create_event_tickets.exs | 23 - ...0220827044729_create_purchased_tickets.exs | 20 - .../20220902022551_create_purchase_orders.exs | 18 - ...dd_purchase_order_to_purchased_tickets.exs | 10 - ...17_add_payment_id_and_payment_provider.exs | 12 - .../20200523081012_init_pointers.exs | 15 +- .../migrations/20200818094943_import_ap.exs | 2 +- .../20200828094946_import_social_graph.exs | 13 - .../20200828094947_import_posts.exs | 13 - .../20200828094948_import_messages.exs | 13 - .../20200829004946_boundaries_fixtures.exs | 9 - .../migrations/20201105094943_import_me.exs | 9 + .../20201205094943_import_classify.exs | 16 + .../20210102094944_import_shared_user.exs | 2 +- ...210113094942_import_valueflows_observe.exs | 14 - .../repo/migrations/20210128094942_posts.exs | 8 + .../migrations/20210128094943_messages.exs | 8 + .../20210128094944_social_graph.exs | 8 + .../migrations/20210407094946_message.exs | 9 - .../20210410094945_profile_images.exs | 2 +- .../repo/migrations/20210412094946_fp.exs | 2 +- .../migrations/20210618094945_peered_uri.exs | 2 +- .../20210831134330_update_oban_jobs_table.exs | 8 - .../repo/migrations/20220531084501_seen.exs | 13 - .../20220621084501_auth_second_factor.exs | 13 - .../migrations/20220712094940_extra_info.exs | 13 - .../20220915052335_create_oban_peers.exs | 8 - .../repo/migrations/20221014084501_pin.exs | 13 - ...26081012_init_encrypt_secrets.exs.disabled | 18 - .../migrations/20230304094943_add_type.exs | 4 +- .../migrations/20230304100100_add_tree.exs | 12 +- .../20230731004945_add_array_reverse_fn.exs | 7 + ...hashtag.exs => 20240109084501_hashtag.exs} | 0 .../migrations/20240110094945_gin_indexes.exs | 48 ++ .../repo/migrations/20240121084501_label.exs | 13 + flavours/haha/config/deps.flavour.git | 3 - flavours/haha/config/deps.flavour.hex | 2 - flavours/haha/config/flavour_haha.exs | 9 - .../20200523081012_init_pointers.exs | 15 - .../migrations/20200818094943_import_ap.exs | 10 - .../20200829004946_boundaries_fixtures.exs | 9 - .../repo/migrations/20210412094946_fp.exs | 42 -- .../20210831134330_update_oban_jobs_table.exs | 8 - .../20210924094943_taxonomy_seeder.exs | 15 - .../20220915052335_create_oban_peers.exs | 8 - flavours/{haha => open-science}/README.md | 4 +- flavours/open-science/config/deps.flavour.git | 3 + flavours/open-science/config/deps.flavour.hex | 2 + .../{haha => open-science}/config/deps.js.sh | 0 .../hooks/Bonfire.Editor.Milkdown.hooks.js | 540 ++++++++++++++++++ ...onfire.UI.Common.ChangeLocaleLive.hooks.js | 18 + ...onfire.UI.Common.ChangeThemesLive.hooks.js | 85 +++ .../Bonfire.UI.Common.ComposerLive.hooks.js | 221 +++++++ .../Bonfire.UI.Common.LoadMoreLive.hooks.js | 85 +++ ...onfire.UI.Common.NotificationLive.hooks.js | 43 ++ ...fire.UI.Common.PreviewContentLive.hooks.js | 178 ++++++ .../Bonfire.UI.Common.ViewCodeLive.hooks.js | 44 ++ ...re.UI.Social.Activity.DateAgoLive.hooks.js | 49 ++ .../config/flavour_assets/hooks/index.js | 35 ++ .../config/flavour_open_science.exs | 10 + .../{haha => open-science}/config/hooks.js | 0 .../repo/migrations/.formatter.exs | 0 .../repo/migrations/20200523081010_citext.exs | 0 .../20200523081012_init_pointers.exs | 16 + .../migrations/20200523081014_init_edges.exs | 0 .../20200805090401_create_ap_tables.exs | 0 .../20200817072952_create_oban_tables.exs | 0 .../migrations/20200818094943_import_ap.exs | 2 +- .../20200820094941_import_boundaries.exs | 0 .../migrations/20200828094943_add_files.exs | 0 .../migrations/20200828094944_import_me.exs | 0 .../20200828094945_import_social.exs | 0 .../repo/migrations/20200924084501_tag.exs | 0 .../20201205094943_import_classify.exs} | 0 .../20210102094944_import_shared_user.exs | 2 +- .../repo/migrations/20210128094942_posts.exs | 8 + .../migrations/20210128094943_messages.exs | 8 + .../20210128094944_social_graph.exs | 8 + .../20210402105128_ap_test_table.exs | 0 .../20210410094945_profile_images.exs | 2 +- .../repo/migrations/20210412094946_fp.exs | 2 +- .../migrations/20210618094945_peered_uri.exs | 2 +- .../20210923093415_import_ap_activity.exs | 0 .../20220208094942_import_invite_link.exs | 0 .../20220304081300_care_closure.exs | 0 .../migrations/20220408094940_settings.exs | 0 .../20220428094200_add_files_mixin.exs | 0 .../20230202105128_add_object_boolean.exs | 12 + .../migrations/20230304094943_add_type.exs | 12 + .../migrations/20230304100100_add_tree.exs | 15 + .../20230625152257_papertrail_versions.exs | 7 + .../repo/migrations/20230703084501_alias.exs | 13 + .../20230731004945_add_array_reverse_fn.exs | 7 + ...20230822004944_replied_generated_total.exs | 7 + .../20230828094945_instance_admin_user.exs | 14 + .../migrations/20230829084501_sensitive.exs | 13 + .../20231019004944_boundaries_fixtures.exs} | 0 ...31119004947_boundaries_users_fixtures.exs} | 0 .../20231201094945_files_refactor.exs | 14 + .../repo/migrations/20231208134330_oban12.exs | 0 .../20231212094945_settings_json.exs | 14 + .../migrations/20240109084501_hashtag.exs} | 0 .../migrations/20240110094945_gin_indexes.exs | 48 ++ .../repo/migrations/20240121084501_label.exs | 13 + ...1234_taxonomy_seeder_create_categories.exs | 0 .../{haha => open-science}/repo/seeds.exs | 0 flavours/reflow/config/deps.flavour.git | 5 +- .../20200523081012_init_pointers.exs | 15 - .../migrations/20200523081014_init_edges.exs | 13 - .../20200805090401_create_ap_tables.exs | 12 - .../20200817072952_create_oban_tables.exs | 12 - .../20200820094941_import_boundaries.exs | 9 - .../migrations/20200828094943_add_files.exs | 15 - .../migrations/20200828094944_import_me.exs | 13 - .../20200828094945_import_social.exs | 13 - .../20200829004946_boundaries_fixtures.exs | 9 - .../20201205094943_import_quantify.exs | 14 - .../20201208094940_import_geolocation.exs | 12 - .../20201212094942_import_valueflows.exs | 12 - ...210113094942_import_valueflows_observe.exs | 14 - .../20210402105128_ap_test_table.exs | 16 - .../migrations/20210407094946_message.exs | 9 - .../20210410094945_profile_images.exs | 23 - .../migrations/20210618094945_peered_uri.exs | 14 - .../20210831134330_update_oban_jobs_table.exs | 8 - .../20210923093415_import_ap_activity.exs | 8 - .../20210925094942_import_classify.exs | 12 - .../20211001094942_import_assort_ranked.exs | 8 - ...2094942_import_commitment_satisfaction.exs | 16 - .../20220304081300_care_closure.exs | 8 - .../migrations/20220408094940_settings.exs | 13 - .../20220428094200_add_files_mixin.exs | 21 - .../20220915052335_create_oban_peers.exs | 8 - .../repo/migrations/20231208134330_oban12.exs | 8 - flavours/upcycle/config/deps.flavour.git | 2 + .../repo/migrations/20200523081010_citext.exs | 0 .../migrations/20200523081010_hello_world.exs | 12 - .../20200523081012_init_pointers.exs | 14 +- .../20200523081013_init_pointers_ulid.exs | 11 - .../migrations/20200818094943_import_ap.exs | 2 +- .../20200820094941_import_boundaries.exs | 4 +- .../20200829004946_boundaries_fixtures.exs | 9 - .../repo/migrations/20200924084501_tag.exs | 0 .../repo/migrations/20200924084501_tagged.exs | 12 - .../20201205094943_import_classify.exs} | 0 .../20201205094943_import_quantify.exs | 14 - .../20201208094940_import_geolocation.exs | 12 - .../20201212094942_import_valueflows.exs | 12 - .../20210102094944_import_shared_user.exs | 2 +- ...210113094942_import_valueflows_observe.exs | 14 - .../repo/migrations/20210128094942_posts.exs | 8 + .../migrations/20210128094943_messages.exs | 8 + .../20210128094944_social_graph.exs | 8 + .../20210302094944_import_boost.exs | 14 - .../migrations/20210302094945_import_flag.exs | 14 - .../20210302094946_import_inbox.exs | 9 - .../migrations/20210407094946_message.exs | 9 - .../20210410094945_profile_images.exs | 2 +- .../repo/migrations/20210412094946_fp.exs | 2 +- .../migrations/20210618094945_peered_uri.exs | 2 +- .../20210831134330_update_oban_jobs_table.exs | 8 - .../20210925094942_import_classify.exs | 12 - .../20211001094942_import_assort_ranked.exs | 8 - ...2094942_import_commitment_satisfaction.exs | 16 - .../20220208094942_import_invite_link.exs | 0 .../migrations/20220509084501_hashtag.exs | 13 - .../20220915052335_create_oban_peers.exs | 8 - .../20230202105128_add_object_boolean.exs | 12 + .../migrations/20230304094943_add_type.exs | 12 + .../migrations/20230304100100_add_tree.exs | 15 + .../20230625152257_papertrail_versions.exs | 7 + .../repo/migrations/20230703084501_alias.exs | 13 + .../20230731004945_add_array_reverse_fn.exs | 7 + ...20230822004944_replied_generated_total.exs | 7 + .../20230828094945_instance_admin_user.exs | 14 + .../migrations/20230829084501_sensitive.exs | 13 + .../20231019004944_boundaries_fixtures.exs} | 0 ...31119004947_boundaries_users_fixtures.exs} | 0 .../20231201094945_files_refactor.exs | 14 + .../20231212094945_settings_json.exs | 14 + .../migrations/20240109084501_hashtag.exs} | 0 .../migrations/20240110094945_gin_indexes.exs | 48 ++ .../repo/migrations/20240121084501_label.exs | 13 + justfile | 76 +-- lib/mix/mixer.ex | 31 +- mix.exs | 2 +- mix.lock | 9 +- 249 files changed, 2270 insertions(+), 1559 deletions(-) delete mode 100644 flavours/classic/repo/migrations/20200828094946_import_social_graph.exs delete mode 100644 flavours/classic/repo/migrations/20200828094947_import_posts.exs delete mode 100644 flavours/classic/repo/migrations/20200828094948_import_messages.exs create mode 100644 flavours/classic/repo/migrations/20210128094942_posts.exs create mode 100644 flavours/classic/repo/migrations/20210128094943_messages.exs create mode 100644 flavours/classic/repo/migrations/20210128094944_social_graph.exs delete mode 100755 flavours/classic/repo/migrations/20210831134330_update_oban_jobs_table.exs delete mode 100644 flavours/classic/repo/migrations/20220531084501_seen.exs delete mode 100644 flavours/classic/repo/migrations/20220915052335_create_oban_peers.exs create mode 100644 flavours/classic/repo/migrations/20230731004945_add_array_reverse_fn.exs create mode 100644 flavours/community/config/flavour_assets/hooks/Bonfire.UI.Social.Activity.DateAgoLive.hooks.js delete mode 100644 flavours/community/repo/migrations/20200828094946_import_social_graph.exs delete mode 100644 flavours/community/repo/migrations/20200828094947_import_posts.exs delete mode 100644 flavours/community/repo/migrations/20200828094948_import_messages.exs rename flavours/community/repo/migrations/{20210925094942_import_classify.exs => 20201205094943_import_classify.exs} (100%) create mode 100644 flavours/community/repo/migrations/20210128094942_posts.exs create mode 100644 flavours/community/repo/migrations/20210128094943_messages.exs create mode 100644 flavours/community/repo/migrations/20210128094944_social_graph.exs delete mode 100644 flavours/community/repo/migrations/20210831134330_update_oban_jobs_table.exs delete mode 100644 flavours/community/repo/migrations/20220531084501_seen.exs delete mode 100644 flavours/community/repo/migrations/20220621084501_auth_second_factor.exs delete mode 100644 flavours/community/repo/migrations/20220712094940_extra_info.exs delete mode 100644 flavours/community/repo/migrations/20220915052335_create_oban_peers.exs rename flavours/community/repo/migrations/{20220509084501_hashtag.exs => 20240109084501_hashtag.exs} (100%) create mode 100644 flavours/community/repo/migrations/20240110094945_gin_indexes.exs create mode 100644 flavours/community/repo/migrations/20240121084501_label.exs delete mode 100644 flavours/cooperation/repo/disabled/20220614173443_create_tracks.exs delete mode 100644 flavours/cooperation/repo/disabled/20220614174350_create_playlists.exs delete mode 100644 flavours/cooperation/repo/disabled/20220614202737_create_track_playlists.exs delete mode 100644 flavours/cooperation/repo/disabled/20220615035733_create_active_storage_tables.exs delete mode 100644 flavours/cooperation/repo/disabled/20220624072059_alter_playlist_fielf_to_track_playlists.exs delete mode 100644 flavours/cooperation/repo/disabled/20220705023948_add_private_to_playlist.exs delete mode 100644 flavours/cooperation/repo/disabled/20220709025257_add_type_to_playlist.exs delete mode 100644 flavours/cooperation/repo/disabled/20220719192715_add_counter_caches_to_track.exs delete mode 100644 flavours/cooperation/repo/disabled/20220719192759_add_counter_caches_to_playlist.exs delete mode 100644 flavours/cooperation/repo/disabled/20220720033830_create_track_event.exs delete mode 100644 flavours/cooperation/repo/disabled/20220722054446_add_oban_jobs_table.exs delete mode 100644 flavours/cooperation/repo/disabled/20220722134234_add_state_to_track.exs delete mode 100644 flavours/cooperation/repo/disabled/20220805045656_create_preview_cards.exs delete mode 100644 flavours/cooperation/repo/disabled/20220813173857_create_event.exs delete mode 100644 flavours/cooperation/repo/disabled/20220827044728_create_event_tickets.exs delete mode 100644 flavours/cooperation/repo/disabled/20220827044729_create_purchased_tickets.exs delete mode 100644 flavours/cooperation/repo/disabled/20220902022551_create_purchase_orders.exs delete mode 100644 flavours/cooperation/repo/disabled/20220903010915_add_purchase_order_to_purchased_tickets.exs delete mode 100644 flavours/cooperation/repo/disabled/20220903031117_add_payment_id_and_payment_provider.exs delete mode 100644 flavours/cooperation/repo/migrations/20200828094946_import_social_graph.exs delete mode 100644 flavours/cooperation/repo/migrations/20200828094947_import_posts.exs delete mode 100644 flavours/cooperation/repo/migrations/20200828094948_import_messages.exs delete mode 100644 flavours/cooperation/repo/migrations/20200829004946_boundaries_fixtures.exs create mode 100644 flavours/cooperation/repo/migrations/20201105094943_import_me.exs create mode 100644 flavours/cooperation/repo/migrations/20201205094943_import_classify.exs delete mode 100644 flavours/cooperation/repo/migrations/20210113094942_import_valueflows_observe.exs create mode 100644 flavours/cooperation/repo/migrations/20210128094942_posts.exs create mode 100644 flavours/cooperation/repo/migrations/20210128094943_messages.exs create mode 100644 flavours/cooperation/repo/migrations/20210128094944_social_graph.exs delete mode 100644 flavours/cooperation/repo/migrations/20210407094946_message.exs delete mode 100644 flavours/cooperation/repo/migrations/20210831134330_update_oban_jobs_table.exs delete mode 100644 flavours/cooperation/repo/migrations/20220531084501_seen.exs delete mode 100644 flavours/cooperation/repo/migrations/20220621084501_auth_second_factor.exs delete mode 100644 flavours/cooperation/repo/migrations/20220712094940_extra_info.exs delete mode 100644 flavours/cooperation/repo/migrations/20220915052335_create_oban_peers.exs delete mode 100644 flavours/cooperation/repo/migrations/20221014084501_pin.exs delete mode 100644 flavours/cooperation/repo/migrations/20221126081012_init_encrypt_secrets.exs.disabled create mode 100644 flavours/cooperation/repo/migrations/20230731004945_add_array_reverse_fn.exs rename flavours/cooperation/repo/migrations/{20220509084501_hashtag.exs => 20240109084501_hashtag.exs} (100%) create mode 100644 flavours/cooperation/repo/migrations/20240110094945_gin_indexes.exs create mode 100644 flavours/cooperation/repo/migrations/20240121084501_label.exs delete mode 100644 flavours/haha/config/deps.flavour.git delete mode 100644 flavours/haha/config/deps.flavour.hex delete mode 100644 flavours/haha/config/flavour_haha.exs delete mode 100644 flavours/haha/repo/migrations/20200523081012_init_pointers.exs delete mode 100644 flavours/haha/repo/migrations/20200818094943_import_ap.exs delete mode 100644 flavours/haha/repo/migrations/20200829004946_boundaries_fixtures.exs delete mode 100644 flavours/haha/repo/migrations/20210412094946_fp.exs delete mode 100644 flavours/haha/repo/migrations/20210831134330_update_oban_jobs_table.exs delete mode 100644 flavours/haha/repo/migrations/20210924094943_taxonomy_seeder.exs delete mode 100644 flavours/haha/repo/migrations/20220915052335_create_oban_peers.exs rename flavours/{haha => open-science}/README.md (97%) create mode 100644 flavours/open-science/config/deps.flavour.git create mode 100644 flavours/open-science/config/deps.flavour.hex rename flavours/{haha => open-science}/config/deps.js.sh (100%) create mode 100644 flavours/open-science/config/flavour_assets/hooks/Bonfire.Editor.Milkdown.hooks.js create mode 100644 flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ChangeLocaleLive.hooks.js create mode 100644 flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ChangeThemesLive.hooks.js create mode 100644 flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ComposerLive.hooks.js create mode 100644 flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.LoadMoreLive.hooks.js create mode 100644 flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.NotificationLive.hooks.js create mode 100644 flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.PreviewContentLive.hooks.js create mode 100644 flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ViewCodeLive.hooks.js create mode 100644 flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Social.Activity.DateAgoLive.hooks.js create mode 100644 flavours/open-science/config/flavour_assets/hooks/index.js create mode 100644 flavours/open-science/config/flavour_open_science.exs rename flavours/{haha => open-science}/config/hooks.js (100%) rename flavours/{haha => open-science}/repo/migrations/.formatter.exs (100%) rename flavours/{haha => open-science}/repo/migrations/20200523081010_citext.exs (100%) create mode 100644 flavours/open-science/repo/migrations/20200523081012_init_pointers.exs rename flavours/{haha => open-science}/repo/migrations/20200523081014_init_edges.exs (100%) rename flavours/{haha => open-science}/repo/migrations/20200805090401_create_ap_tables.exs (100%) rename flavours/{haha => open-science}/repo/migrations/20200817072952_create_oban_tables.exs (100%) rename flavours/{reflow => open-science}/repo/migrations/20200818094943_import_ap.exs (75%) rename flavours/{haha => open-science}/repo/migrations/20200820094941_import_boundaries.exs (100%) rename flavours/{haha => open-science}/repo/migrations/20200828094943_add_files.exs (100%) rename flavours/{haha => open-science}/repo/migrations/20200828094944_import_me.exs (100%) rename flavours/{haha => open-science}/repo/migrations/20200828094945_import_social.exs (100%) rename flavours/{haha => open-science}/repo/migrations/20200924084501_tag.exs (100%) rename flavours/{cooperation/repo/migrations/20210925094942_import_classify.exs => open-science/repo/migrations/20201205094943_import_classify.exs} (100%) rename flavours/{reflow => open-science}/repo/migrations/20210102094944_import_shared_user.exs (77%) create mode 100644 flavours/open-science/repo/migrations/20210128094942_posts.exs create mode 100644 flavours/open-science/repo/migrations/20210128094943_messages.exs create mode 100644 flavours/open-science/repo/migrations/20210128094944_social_graph.exs rename flavours/{haha => open-science}/repo/migrations/20210402105128_ap_test_table.exs (100%) rename flavours/{haha => open-science}/repo/migrations/20210410094945_profile_images.exs (90%) rename flavours/{reflow => open-science}/repo/migrations/20210412094946_fp.exs (95%) rename flavours/{haha => open-science}/repo/migrations/20210618094945_peered_uri.exs (78%) rename flavours/{haha => open-science}/repo/migrations/20210923093415_import_ap_activity.exs (100%) rename flavours/{haha => open-science}/repo/migrations/20220208094942_import_invite_link.exs (100%) rename flavours/{haha => open-science}/repo/migrations/20220304081300_care_closure.exs (100%) rename flavours/{haha => open-science}/repo/migrations/20220408094940_settings.exs (100%) rename flavours/{haha => open-science}/repo/migrations/20220428094200_add_files_mixin.exs (100%) create mode 100644 flavours/open-science/repo/migrations/20230202105128_add_object_boolean.exs create mode 100644 flavours/open-science/repo/migrations/20230304094943_add_type.exs create mode 100644 flavours/open-science/repo/migrations/20230304100100_add_tree.exs create mode 100644 flavours/open-science/repo/migrations/20230625152257_papertrail_versions.exs create mode 100644 flavours/open-science/repo/migrations/20230703084501_alias.exs create mode 100644 flavours/open-science/repo/migrations/20230731004945_add_array_reverse_fn.exs create mode 100644 flavours/open-science/repo/migrations/20230822004944_replied_generated_total.exs create mode 100644 flavours/open-science/repo/migrations/20230828094945_instance_admin_user.exs create mode 100644 flavours/open-science/repo/migrations/20230829084501_sensitive.exs rename flavours/{community/repo/migrations/20231207004944_boundaries_fixtures.exs => open-science/repo/migrations/20231019004944_boundaries_fixtures.exs} (100%) rename flavours/{community/repo/migrations/20231207004947_boundaries_users_fixtures.exs => open-science/repo/migrations/20231119004947_boundaries_users_fixtures.exs} (100%) create mode 100644 flavours/open-science/repo/migrations/20231201094945_files_refactor.exs rename flavours/{haha => open-science}/repo/migrations/20231208134330_oban12.exs (100%) create mode 100644 flavours/open-science/repo/migrations/20231212094945_settings_json.exs rename flavours/{haha/repo/migrations/20220509084501_hashtag.exs => open-science/repo/migrations/20240109084501_hashtag.exs} (100%) create mode 100644 flavours/open-science/repo/migrations/20240110094945_gin_indexes.exs create mode 100644 flavours/open-science/repo/migrations/20240121084501_label.exs rename flavours/{haha => open-science}/repo/seeds.disabled/20210925131234_taxonomy_seeder_create_categories.exs (100%) rename flavours/{haha => open-science}/repo/seeds.exs (100%) delete mode 100644 flavours/reflow/repo/migrations/20200523081012_init_pointers.exs delete mode 100644 flavours/reflow/repo/migrations/20200523081014_init_edges.exs delete mode 100644 flavours/reflow/repo/migrations/20200805090401_create_ap_tables.exs delete mode 100644 flavours/reflow/repo/migrations/20200817072952_create_oban_tables.exs delete mode 100644 flavours/reflow/repo/migrations/20200820094941_import_boundaries.exs delete mode 100644 flavours/reflow/repo/migrations/20200828094943_add_files.exs delete mode 100644 flavours/reflow/repo/migrations/20200828094944_import_me.exs delete mode 100644 flavours/reflow/repo/migrations/20200828094945_import_social.exs delete mode 100644 flavours/reflow/repo/migrations/20200829004946_boundaries_fixtures.exs delete mode 100644 flavours/reflow/repo/migrations/20201205094943_import_quantify.exs delete mode 100644 flavours/reflow/repo/migrations/20201208094940_import_geolocation.exs delete mode 100644 flavours/reflow/repo/migrations/20201212094942_import_valueflows.exs delete mode 100644 flavours/reflow/repo/migrations/20210113094942_import_valueflows_observe.exs delete mode 100644 flavours/reflow/repo/migrations/20210402105128_ap_test_table.exs delete mode 100644 flavours/reflow/repo/migrations/20210407094946_message.exs delete mode 100644 flavours/reflow/repo/migrations/20210410094945_profile_images.exs delete mode 100644 flavours/reflow/repo/migrations/20210618094945_peered_uri.exs delete mode 100644 flavours/reflow/repo/migrations/20210831134330_update_oban_jobs_table.exs delete mode 100644 flavours/reflow/repo/migrations/20210923093415_import_ap_activity.exs delete mode 100644 flavours/reflow/repo/migrations/20210925094942_import_classify.exs delete mode 100644 flavours/reflow/repo/migrations/20211001094942_import_assort_ranked.exs delete mode 100644 flavours/reflow/repo/migrations/20211112094942_import_commitment_satisfaction.exs delete mode 100644 flavours/reflow/repo/migrations/20220304081300_care_closure.exs delete mode 100644 flavours/reflow/repo/migrations/20220408094940_settings.exs delete mode 100644 flavours/reflow/repo/migrations/20220428094200_add_files_mixin.exs delete mode 100644 flavours/reflow/repo/migrations/20220915052335_create_oban_peers.exs delete mode 100644 flavours/reflow/repo/migrations/20231208134330_oban12.exs rename flavours/{reflow => upcycle}/repo/migrations/20200523081010_citext.exs (100%) delete mode 100644 flavours/upcycle/repo/migrations/20200523081010_hello_world.exs delete mode 100644 flavours/upcycle/repo/migrations/20200523081013_init_pointers_ulid.exs delete mode 100644 flavours/upcycle/repo/migrations/20200829004946_boundaries_fixtures.exs rename flavours/{reflow => upcycle}/repo/migrations/20200924084501_tag.exs (100%) delete mode 100644 flavours/upcycle/repo/migrations/20200924084501_tagged.exs rename flavours/{haha/repo/migrations/20210925094942_import_classify.exs => upcycle/repo/migrations/20201205094943_import_classify.exs} (100%) delete mode 100644 flavours/upcycle/repo/migrations/20201205094943_import_quantify.exs delete mode 100644 flavours/upcycle/repo/migrations/20201208094940_import_geolocation.exs delete mode 100644 flavours/upcycle/repo/migrations/20201212094942_import_valueflows.exs delete mode 100644 flavours/upcycle/repo/migrations/20210113094942_import_valueflows_observe.exs create mode 100644 flavours/upcycle/repo/migrations/20210128094942_posts.exs create mode 100644 flavours/upcycle/repo/migrations/20210128094943_messages.exs create mode 100644 flavours/upcycle/repo/migrations/20210128094944_social_graph.exs delete mode 100644 flavours/upcycle/repo/migrations/20210302094944_import_boost.exs delete mode 100644 flavours/upcycle/repo/migrations/20210302094945_import_flag.exs delete mode 100644 flavours/upcycle/repo/migrations/20210302094946_import_inbox.exs delete mode 100644 flavours/upcycle/repo/migrations/20210407094946_message.exs delete mode 100644 flavours/upcycle/repo/migrations/20210831134330_update_oban_jobs_table.exs delete mode 100644 flavours/upcycle/repo/migrations/20210925094942_import_classify.exs delete mode 100644 flavours/upcycle/repo/migrations/20211001094942_import_assort_ranked.exs delete mode 100644 flavours/upcycle/repo/migrations/20211112094942_import_commitment_satisfaction.exs rename flavours/{reflow => upcycle}/repo/migrations/20220208094942_import_invite_link.exs (100%) delete mode 100644 flavours/upcycle/repo/migrations/20220509084501_hashtag.exs delete mode 100644 flavours/upcycle/repo/migrations/20220915052335_create_oban_peers.exs create mode 100644 flavours/upcycle/repo/migrations/20230202105128_add_object_boolean.exs create mode 100644 flavours/upcycle/repo/migrations/20230304094943_add_type.exs create mode 100644 flavours/upcycle/repo/migrations/20230304100100_add_tree.exs create mode 100644 flavours/upcycle/repo/migrations/20230625152257_papertrail_versions.exs create mode 100644 flavours/upcycle/repo/migrations/20230703084501_alias.exs create mode 100644 flavours/upcycle/repo/migrations/20230731004945_add_array_reverse_fn.exs create mode 100644 flavours/upcycle/repo/migrations/20230822004944_replied_generated_total.exs create mode 100644 flavours/upcycle/repo/migrations/20230828094945_instance_admin_user.exs create mode 100644 flavours/upcycle/repo/migrations/20230829084501_sensitive.exs rename flavours/{cooperation/repo/migrations/20231207004944_boundaries_fixtures.exs => upcycle/repo/migrations/20231019004944_boundaries_fixtures.exs} (100%) rename flavours/{cooperation/repo/migrations/20231207004947_boundaries_users_fixtures.exs => upcycle/repo/migrations/20231119004947_boundaries_users_fixtures.exs} (100%) create mode 100644 flavours/upcycle/repo/migrations/20231201094945_files_refactor.exs create mode 100644 flavours/upcycle/repo/migrations/20231212094945_settings_json.exs rename flavours/{reflow/repo/migrations/20220509084501_hashtag.exs => upcycle/repo/migrations/20240109084501_hashtag.exs} (100%) create mode 100644 flavours/upcycle/repo/migrations/20240110094945_gin_indexes.exs create mode 100644 flavours/upcycle/repo/migrations/20240121084501_label.exs diff --git a/docs/DATABASE.md b/docs/DATABASE.md index ae96c994c4e..48cae840e3d 100644 --- a/docs/DATABASE.md +++ b/docs/DATABASE.md @@ -267,7 +267,7 @@ how useful this is in practice, so we might go for a simpler option in future. Example: ```elixir -defmodule Bonfire.Data.Social.APActivity.Migration do +defmodule Bonfire.Data.Social.APActivity.Migration do @moduledoc false use Ecto.Migration import Needle.Migration diff --git a/flavours/classic/repo/migrations/20200523081012_init_pointers.exs b/flavours/classic/repo/migrations/20200523081012_init_pointers.exs index 93da00504c5..f8a3b3ba1e2 100755 --- a/flavours/classic/repo/migrations/20200523081012_init_pointers.exs +++ b/flavours/classic/repo/migrations/20200523081012_init_pointers.exs @@ -2,14 +2,15 @@ defmodule Bonfire.Repo.Migrations.InitPointers do @moduledoc false use Ecto.Migration import Needle.Migration + import Needle.ULID.Migration - def up do - init_pointers_ulid_extra() - init_pointers() - end + def up(), do: init(:up) + def down(), do: init(:down) - def down do - init_pointers_ulid_extra() - init_pointers() + defp init(dir) do + # this one is optional but recommended + init_pointers_ulid_extra(dir) + # this one is not optional + init_pointers(dir) end end diff --git a/flavours/classic/repo/migrations/20200818094943_import_ap.exs b/flavours/classic/repo/migrations/20200818094943_import_ap.exs index c4284dbd6a7..2103a31c947 100755 --- a/flavours/classic/repo/migrations/20200818094943_import_ap.exs +++ b/flavours/classic/repo/migrations/20200818094943_import_ap.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportMe do +defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportAP do @moduledoc false use Ecto.Migration diff --git a/flavours/classic/repo/migrations/20200828094946_import_social_graph.exs b/flavours/classic/repo/migrations/20200828094946_import_social_graph.exs deleted file mode 100644 index 12043c82201..00000000000 --- a/flavours/classic/repo/migrations/20200828094946_import_social_graph.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Social.Graph.Repo.Migrations.ImportSocial do - @moduledoc false - use Ecto.Migration - - import Bonfire.Social.Graph.Migrations - import Needle.Migration - - def up do - migrate_social() - end - - def down, do: migrate_social() -end diff --git a/flavours/classic/repo/migrations/20200828094947_import_posts.exs b/flavours/classic/repo/migrations/20200828094947_import_posts.exs deleted file mode 100644 index 9dac2df3a12..00000000000 --- a/flavours/classic/repo/migrations/20200828094947_import_posts.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Posts.Repo.Migrations.ImportSocial do - @moduledoc false - use Ecto.Migration - - import Bonfire.Posts.Migrations - import Needle.Migration - - def up do - migrate_social() - end - - def down, do: migrate_social() -end diff --git a/flavours/classic/repo/migrations/20200828094948_import_messages.exs b/flavours/classic/repo/migrations/20200828094948_import_messages.exs deleted file mode 100644 index bd894e66d16..00000000000 --- a/flavours/classic/repo/migrations/20200828094948_import_messages.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Messages.Repo.Migrations.ImportSocial do - @moduledoc false - use Ecto.Migration - - import Bonfire.Messages.Migrations - import Needle.Migration - - def up do - migrate_social() - end - - def down, do: migrate_social() -end diff --git a/flavours/classic/repo/migrations/20201205094943_import_classify.exs b/flavours/classic/repo/migrations/20201205094943_import_classify.exs index eef60ba4292..a7c808aa978 100644 --- a/flavours/classic/repo/migrations/20201205094943_import_classify.exs +++ b/flavours/classic/repo/migrations/20201205094943_import_classify.exs @@ -3,14 +3,10 @@ defmodule Bonfire.Repo.Migrations.ImportClassify do use Ecto.Migration def up do - if Code.ensure_loaded?(Bonfire.Classify.Migrations) do - Bonfire.Classify.Migrations.up() - end + Bonfire.Classify.Migrations.up() end def down do - if Code.ensure_loaded?(Bonfire.Classify.Migrations) do - Bonfire.Classify.Migrations.down() - end + Bonfire.Classify.Migrations.down() end end diff --git a/flavours/classic/repo/migrations/20210102094944_import_shared_user.exs b/flavours/classic/repo/migrations/20210102094944_import_shared_user.exs index 83b478f8754..de8c80b323e 100644 --- a/flavours/classic/repo/migrations/20210102094944_import_shared_user.exs +++ b/flavours/classic/repo/migrations/20210102094944_import_shared_user.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Repo.Migrations.ImportSharedUser do +defmodule Bonfire.Data.SharedUser.ImportSharedUser do @moduledoc false use Ecto.Migration diff --git a/flavours/classic/repo/migrations/20210128094942_posts.exs b/flavours/classic/repo/migrations/20210128094942_posts.exs new file mode 100644 index 00000000000..78de493cbb6 --- /dev/null +++ b/flavours/classic/repo/migrations/20210128094942_posts.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Posts.Repo.Migrations.Import do + @moduledoc false + use Ecto.Migration + + import Bonfire.Posts.Migrations + + def change, do: migrate_posts() +end diff --git a/flavours/classic/repo/migrations/20210128094943_messages.exs b/flavours/classic/repo/migrations/20210128094943_messages.exs new file mode 100644 index 00000000000..6a02b7de798 --- /dev/null +++ b/flavours/classic/repo/migrations/20210128094943_messages.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Messages.Repo.MessagesMigrations do + @moduledoc false + use Ecto.Migration + + import Bonfire.Messages.Migrations + + def change, do: migrate_messages() +end diff --git a/flavours/classic/repo/migrations/20210128094944_social_graph.exs b/flavours/classic/repo/migrations/20210128094944_social_graph.exs new file mode 100644 index 00000000000..1a77ca5605d --- /dev/null +++ b/flavours/classic/repo/migrations/20210128094944_social_graph.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Social.Graph.Repo.Migrations.Import do + @moduledoc false + use Ecto.Migration + + import Bonfire.Social.Graph.Migrations + + def change, do: migrate_social_graph() +end diff --git a/flavours/classic/repo/migrations/20210410094945_profile_images.exs b/flavours/classic/repo/migrations/20210410094945_profile_images.exs index a1ebc337f32..c6983de27e1 100755 --- a/flavours/classic/repo/migrations/20210410094945_profile_images.exs +++ b/flavours/classic/repo/migrations/20210410094945_profile_images.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Social.Repo.Migrations.ProfileImages do +defmodule Bonfire.UI.Me.Repo.Migrations.ProfileImages do @moduledoc false use Ecto.Migration diff --git a/flavours/classic/repo/migrations/20210412094946_fp.exs b/flavours/classic/repo/migrations/20210412094946_fp.exs index 43d75e0c93a..fba94a6e44c 100755 --- a/flavours/classic/repo/migrations/20210412094946_fp.exs +++ b/flavours/classic/repo/migrations/20210412094946_fp.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Repo.Migrations.FP do +defmodule Bonfire.Social.Repo.Migrations.FeedPublish do @moduledoc false use Ecto.Migration diff --git a/flavours/classic/repo/migrations/20210618094945_peered_uri.exs b/flavours/classic/repo/migrations/20210618094945_peered_uri.exs index a965ea0075f..7b784c1d532 100755 --- a/flavours/classic/repo/migrations/20210618094945_peered_uri.exs +++ b/flavours/classic/repo/migrations/20210618094945_peered_uri.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Social.Repo.Migrations.PeeredURI do +defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.PeeredURI do @moduledoc false use Ecto.Migration diff --git a/flavours/classic/repo/migrations/20210831134330_update_oban_jobs_table.exs b/flavours/classic/repo/migrations/20210831134330_update_oban_jobs_table.exs deleted file mode 100755 index fb87aa161b5..00000000000 --- a/flavours/classic/repo/migrations/20210831134330_update_oban_jobs_table.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Repo.Migrations.UpdateObanJobsTable do - @moduledoc false - use Ecto.Migration - - def up, do: Oban.Migrations.up() - - def down, do: nil -end diff --git a/flavours/classic/repo/migrations/20220531084501_seen.exs b/flavours/classic/repo/migrations/20220531084501_seen.exs deleted file mode 100644 index 254db7b67d2..00000000000 --- a/flavours/classic/repo/migrations/20220531084501_seen.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Repo.Migrations.Seen do - @moduledoc false - use Ecto.Migration - require Bonfire.Data.Social.Seen.Migration - - def up do - Bonfire.Data.Social.Seen.Migration.migrate_seen() - end - - def down do - Bonfire.Data.Social.Seen.Migration.migrate_seen() - end -end diff --git a/flavours/classic/repo/migrations/20220915052335_create_oban_peers.exs b/flavours/classic/repo/migrations/20220915052335_create_oban_peers.exs deleted file mode 100644 index 0ce81c41aa0..00000000000 --- a/flavours/classic/repo/migrations/20220915052335_create_oban_peers.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Common.Repo.Migrations.CreateObanPeers do - @moduledoc false - use Ecto.Migration - - def up, do: Oban.Migrations.up(version: 11) - - def down, do: Oban.Migrations.down(version: 11) -end diff --git a/flavours/classic/repo/migrations/20230304094943_add_type.exs b/flavours/classic/repo/migrations/20230304094943_add_type.exs index 64421a6d394..3484754d94a 100644 --- a/flavours/classic/repo/migrations/20230304094943_add_type.exs +++ b/flavours/classic/repo/migrations/20230304094943_add_type.exs @@ -3,9 +3,7 @@ defmodule Bonfire.Repo.Migrations.ClassifyAddType do use Ecto.Migration def up do - if Code.ensure_loaded?(Bonfire.Classify.Migrations) do - Bonfire.Classify.Migrations.add_type() - end + Bonfire.Classify.Migrations.add_type() end def down do diff --git a/flavours/classic/repo/migrations/20230304100100_add_tree.exs b/flavours/classic/repo/migrations/20230304100100_add_tree.exs index 65e856a1082..a6f950324f4 100644 --- a/flavours/classic/repo/migrations/20230304100100_add_tree.exs +++ b/flavours/classic/repo/migrations/20230304100100_add_tree.exs @@ -4,16 +4,12 @@ defmodule Bonfire.Repo.Migrations.ClassifyAddTree do require Bonfire.Classify.Tree.Migration def up do - if Code.ensure_loaded?(Bonfire.Classify.Tree.Migration) do - Bonfire.Classify.Tree.Migration.migrate_tree() - Bonfire.Classify.Tree.Migration.migrate_functions() - end + Bonfire.Classify.Tree.Migration.migrate_tree() + Bonfire.Classify.Tree.Migration.migrate_functions() end def down do - if Code.ensure_loaded?(Bonfire.Classify.Tree.Migration) do - Bonfire.Classify.Tree.Migration.migrate_functions() - Bonfire.Classify.Tree.Migration.migrate_tree() - end + Bonfire.Classify.Tree.Migration.migrate_functions() + Bonfire.Classify.Tree.Migration.migrate_tree() end end diff --git a/flavours/classic/repo/migrations/20230731004945_add_array_reverse_fn.exs b/flavours/classic/repo/migrations/20230731004945_add_array_reverse_fn.exs new file mode 100644 index 00000000000..3848288fee0 --- /dev/null +++ b/flavours/classic/repo/migrations/20230731004945_add_array_reverse_fn.exs @@ -0,0 +1,7 @@ +defmodule Bonfire.Social.Repo.Migrations.ArrayFn do + @moduledoc false + use Ecto.Migration + + def up, do: Bonfire.Social.Migrations.add_array_reverse_fn() + def down, do: nil +end diff --git a/flavours/classic/repo/migrations/20240110094945_gin_indexes.exs b/flavours/classic/repo/migrations/20240110094945_gin_indexes.exs index 5bdc7f37517..c94f6a3ca58 100644 --- a/flavours/classic/repo/migrations/20240110094945_gin_indexes.exs +++ b/flavours/classic/repo/migrations/20240110094945_gin_indexes.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Repo.Migrations.GinIndexes do +defmodule Bonfire.Search.Repo.Migrations.GinIndexes do use Ecto.Migration @disable_ddl_transaction true diff --git a/flavours/community/config/flavour_assets/hooks/Bonfire.Editor.Milkdown.hooks.js b/flavours/community/config/flavour_assets/hooks/Bonfire.Editor.Milkdown.hooks.js index 0f43ad30a91..abc8ce8c327 100644 --- a/flavours/community/config/flavour_assets/hooks/Bonfire.Editor.Milkdown.hooks.js +++ b/flavours/community/config/flavour_assets/hooks/Bonfire.Editor.Milkdown.hooks.js @@ -370,7 +370,7 @@ const createEditor = async (_this, hidden_input, composer$) => { referenceElement: trigger, triggerElement: trigger, emojiSize: '1.75rem', - className: 'z-[9999]', + className: 'z-[99999999999999999999]', }); diff --git a/flavours/community/config/flavour_assets/hooks/Bonfire.UI.Common.PreviewContentLive.hooks.js b/flavours/community/config/flavour_assets/hooks/Bonfire.UI.Common.PreviewContentLive.hooks.js index d7377e66bed..faccbee3feb 100644 --- a/flavours/community/config/flavour_assets/hooks/Bonfire.UI.Common.PreviewContentLive.hooks.js +++ b/flavours/community/config/flavour_assets/hooks/Bonfire.UI.Common.PreviewContentLive.hooks.js @@ -17,77 +17,92 @@ let PreviewActivity = { mounted() { this.el.addEventListener("click", e => { console.log("PreviewActivity clicked") - console.log("where clicked") let trigger = this.el.querySelector('.open_preview_link') - let anchor = e.target.closest('a') + let anchor = e.target.closest('a') + console.log(e.target) + + // this was used to expand long posts by clicking on them, now replaced with a 'Read more' button + // let previewable_activity = e.target.closest('.previewable_activity') + // anchor == trigger || (!anchor && previewable_activity && ( previewable_activity.classList.contains('previewable_expanded') || this.isTruncated(previewable_activity.querySelector('.previewable_truncate')) == false) + + if ((trigger || !window.liveSocket) && ((!anchor || anchor.classList.contains('preview_activity_link')) && !e.ctrlKey && !e.metaKey && (!window.getSelection().toString() || window.getSelection().toString() == "") && !e.target.closest('button') && !e.target.closest('figure') && !e.target.closest('.dropdown') && !e.target.closest('[data-id=activity_actions]') + )) { + let uri = this.el.dataset.href || (trigger !== undefined && trigger.getAttribute('href')) + if (window.liveSocket) { + // const feed = document.querySelector(".feed") + const main = document.getElementById("inner") + const layout = document.getElementById("root") + const preview_content = document.getElementById("preview_content") + let previous_scroll = null + + console.log("push event to load up the PreviewContent") + this.pushEventTo(trigger, "open", {}) + + // this.pushEvent("Bonfire.Social.Feeds:open_activity", { id: this.el.dataset.id, permalink: uri }) + + if (layout) { + previous_scroll = layout.scrollTop + } + + if (preview_content) { + preview_content.classList.remove("hidden") + } + if (main) { + main.classList.add("hidden") + } + if (uri) { + // console.log(uri) + + history.pushState( + { + 'previous_url': document.location.href, + 'previous_scroll': previous_scroll + }, + '', + uri) + } - // this was used to expand long posts by clicking on them, now replaced with a 'Read more' button - // let previewable_activity = e.target.closest('.previewable_activity') - // anchor == trigger || (!anchor && previewable_activity && ( previewable_activity.classList.contains('previewable_expanded') || this.isTruncated(previewable_activity.querySelector('.previewable_truncate')) == false) - - if (trigger && ((!anchor || anchor.classList.contains('preview_activity_link')) && !e.ctrlKey && !e.metaKey && !window.getSelection().toString() && !e.target.closest('button') && !e.target.closest('figure') && !e.target.closest('.dropdown') && !e.target.closest('[data-id=activity_actions]') - )) { - let uri = this.el.dataset.href || (trigger !== undefined && trigger.getAttribute('href')) //this.el.dataset.permalink - if (window.liveSocket) { - // const feed = document.querySelector(".feed") - const main = document.getElementById("inner") - const layout = document.getElementById("root") - const preview_content = document.getElementById("preview_content") - let previous_scroll = null - - console.log("push event to load up the PreviewContent") - this.pushEventTo(trigger, "open", {}) + e.preventDefault(); - // this.pushEvent("Bonfire.Social.Feeds:open_activity", { id: this.el.dataset.id, permalink: uri }) + } else { - if (layout) { - previous_scroll = layout.scrollTop - } + // fallback if not connected with live socket - if (preview_content) { - preview_content.classList.remove("hidden") + if (uri) { + console.log(uri) + window.location = uri; + e.preventDefault(); + } else { + console.log("No URL") + } } - if (main) { - main.classList.add("hidden") - } - if (uri) { - // console.log(uri) - - history.pushState( - { - 'previous_url': document.location.href, - 'previous_scroll': previous_scroll - }, - '', - uri) - } - - e.preventDefault(); } else { - // fallback if not connected with live socket - - if (uri) { - console.log(uri) - window.location = uri; - e.preventDefault(); - } else { - console.log("No URL") - } - } - - } else { - // e.preventDefault(); + console.log("PreviewActivity: do not trigger preview in favour of another link or button's action (or opening in new tab)") - // if (previewable_activity) { previewable_activity.classList.add("previewable_expanded") } + console.log(trigger) + console.log(window.liveSocket) + console.log(anchor) + console.log(anchor.classList) + console.log(e.ctrlKey) + console.log(e.metaKey) + console.log(window.getSelection().toString()) + console.log(e.target.closest('button')) + console.log(e.target.closest('figure')) + console.log(e.target.closest('.dropdown')) + console.log(e.target.closest('[data-id=activity_actions]')) + // if (previewable_activity) { previewable_activity.classList.add("previewable_expanded") } - return; + return; - } + } + + + }) } diff --git a/flavours/community/config/flavour_assets/hooks/Bonfire.UI.Social.Activity.DateAgoLive.hooks.js b/flavours/community/config/flavour_assets/hooks/Bonfire.UI.Social.Activity.DateAgoLive.hooks.js new file mode 100644 index 00000000000..77344904c85 --- /dev/null +++ b/flavours/community/config/flavour_assets/hooks/Bonfire.UI.Social.Activity.DateAgoLive.hooks.js @@ -0,0 +1,49 @@ +/* +This file was generated by the Surface compiler. +*/ + + +export default { + timeAgo(input) { + const locale = (navigator.languages && navigator.languages.length) ? navigator.languages[0] : navigator.language; // TODO: use app local instead of browser locale + const date = (input instanceof Date) ? input : new Date(input); + const formatter = new Intl.RelativeTimeFormat(locale); + const ranges = { + years: 3600 * 24 * 365, + months: 3600 * 24 * 30, + weeks: 3600 * 24 * 7, + days: 3600 * 24, + hours: 3600, + minutes: 60, + seconds: 1 + }; + const secondsElapsed = (date.getTime() - Date.now()) / 1000; + for (let key in ranges) { + if (ranges[key] < Math.abs(secondsElapsed)) { + const delta = secondsElapsed / ranges[key]; + return formatter.format(Math.round(delta), key); + } + } + }, + setTimeAgo(el, the_date) { + var date_ago = this.timeAgo(the_date) + // console.log(date_ago) + + if (date_ago) { + this.el.innerHTML = date_ago + + setTimeout(() => { + this.setTimeAgo(el, the_date) + }, 60_000); + } + }, + mounted() { + var the_date = this.el.getAttribute("data-date") + // console.log(the_date) + if (the_date) { + setTimeout(() => { + this.setTimeAgo(this.el, the_date) + }, 60_000); + } + } +} diff --git a/flavours/community/config/flavour_assets/hooks/index.js b/flavours/community/config/flavour_assets/hooks/index.js index a53682ff112..ba7e8c1a47d 100644 --- a/flavours/community/config/flavour_assets/hooks/index.js +++ b/flavours/community/config/flavour_assets/hooks/index.js @@ -18,6 +18,7 @@ import * as c5 from "./Bonfire.UI.Common.LoadMoreLive.hooks" import * as c6 from "./Bonfire.UI.Common.ChangeLocaleLive.hooks" import * as c7 from "./Bonfire.UI.Common.ChangeThemesLive.hooks" import * as c8 from "./Bonfire.UI.Common.ComposerLive.hooks" +import * as c9 from "./Bonfire.UI.Social.Activity.DateAgoLive.hooks" let hooks = Object.assign( ns(c1, "Bonfire.Editor.Milkdown"), @@ -27,7 +28,8 @@ let hooks = Object.assign( ns(c5, "Bonfire.UI.Common.LoadMoreLive"), ns(c6, "Bonfire.UI.Common.ChangeLocaleLive"), ns(c7, "Bonfire.UI.Common.ChangeThemesLive"), - ns(c8, "Bonfire.UI.Common.ComposerLive") + ns(c8, "Bonfire.UI.Common.ComposerLive"), + ns(c9, "Bonfire.UI.Social.Activity.DateAgoLive") ) export default hooks diff --git a/flavours/community/repo/migrations/20200523081012_init_pointers.exs b/flavours/community/repo/migrations/20200523081012_init_pointers.exs index 93da00504c5..f8a3b3ba1e2 100644 --- a/flavours/community/repo/migrations/20200523081012_init_pointers.exs +++ b/flavours/community/repo/migrations/20200523081012_init_pointers.exs @@ -2,14 +2,15 @@ defmodule Bonfire.Repo.Migrations.InitPointers do @moduledoc false use Ecto.Migration import Needle.Migration + import Needle.ULID.Migration - def up do - init_pointers_ulid_extra() - init_pointers() - end + def up(), do: init(:up) + def down(), do: init(:down) - def down do - init_pointers_ulid_extra() - init_pointers() + defp init(dir) do + # this one is optional but recommended + init_pointers_ulid_extra(dir) + # this one is not optional + init_pointers(dir) end end diff --git a/flavours/community/repo/migrations/20200818094943_import_ap.exs b/flavours/community/repo/migrations/20200818094943_import_ap.exs index c4284dbd6a7..2103a31c947 100644 --- a/flavours/community/repo/migrations/20200818094943_import_ap.exs +++ b/flavours/community/repo/migrations/20200818094943_import_ap.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportMe do +defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportAP do @moduledoc false use Ecto.Migration diff --git a/flavours/community/repo/migrations/20200828094946_import_social_graph.exs b/flavours/community/repo/migrations/20200828094946_import_social_graph.exs deleted file mode 100644 index 12043c82201..00000000000 --- a/flavours/community/repo/migrations/20200828094946_import_social_graph.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Social.Graph.Repo.Migrations.ImportSocial do - @moduledoc false - use Ecto.Migration - - import Bonfire.Social.Graph.Migrations - import Needle.Migration - - def up do - migrate_social() - end - - def down, do: migrate_social() -end diff --git a/flavours/community/repo/migrations/20200828094947_import_posts.exs b/flavours/community/repo/migrations/20200828094947_import_posts.exs deleted file mode 100644 index 9dac2df3a12..00000000000 --- a/flavours/community/repo/migrations/20200828094947_import_posts.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Posts.Repo.Migrations.ImportSocial do - @moduledoc false - use Ecto.Migration - - import Bonfire.Posts.Migrations - import Needle.Migration - - def up do - migrate_social() - end - - def down, do: migrate_social() -end diff --git a/flavours/community/repo/migrations/20200828094948_import_messages.exs b/flavours/community/repo/migrations/20200828094948_import_messages.exs deleted file mode 100644 index bd894e66d16..00000000000 --- a/flavours/community/repo/migrations/20200828094948_import_messages.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Messages.Repo.Migrations.ImportSocial do - @moduledoc false - use Ecto.Migration - - import Bonfire.Messages.Migrations - import Needle.Migration - - def up do - migrate_social() - end - - def down, do: migrate_social() -end diff --git a/flavours/community/repo/migrations/20210925094942_import_classify.exs b/flavours/community/repo/migrations/20201205094943_import_classify.exs similarity index 100% rename from flavours/community/repo/migrations/20210925094942_import_classify.exs rename to flavours/community/repo/migrations/20201205094943_import_classify.exs diff --git a/flavours/community/repo/migrations/20210102094944_import_shared_user.exs b/flavours/community/repo/migrations/20210102094944_import_shared_user.exs index 83b478f8754..de8c80b323e 100644 --- a/flavours/community/repo/migrations/20210102094944_import_shared_user.exs +++ b/flavours/community/repo/migrations/20210102094944_import_shared_user.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Repo.Migrations.ImportSharedUser do +defmodule Bonfire.Data.SharedUser.ImportSharedUser do @moduledoc false use Ecto.Migration diff --git a/flavours/community/repo/migrations/20210128094942_posts.exs b/flavours/community/repo/migrations/20210128094942_posts.exs new file mode 100644 index 00000000000..78de493cbb6 --- /dev/null +++ b/flavours/community/repo/migrations/20210128094942_posts.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Posts.Repo.Migrations.Import do + @moduledoc false + use Ecto.Migration + + import Bonfire.Posts.Migrations + + def change, do: migrate_posts() +end diff --git a/flavours/community/repo/migrations/20210128094943_messages.exs b/flavours/community/repo/migrations/20210128094943_messages.exs new file mode 100644 index 00000000000..6a02b7de798 --- /dev/null +++ b/flavours/community/repo/migrations/20210128094943_messages.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Messages.Repo.MessagesMigrations do + @moduledoc false + use Ecto.Migration + + import Bonfire.Messages.Migrations + + def change, do: migrate_messages() +end diff --git a/flavours/community/repo/migrations/20210128094944_social_graph.exs b/flavours/community/repo/migrations/20210128094944_social_graph.exs new file mode 100644 index 00000000000..1a77ca5605d --- /dev/null +++ b/flavours/community/repo/migrations/20210128094944_social_graph.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Social.Graph.Repo.Migrations.Import do + @moduledoc false + use Ecto.Migration + + import Bonfire.Social.Graph.Migrations + + def change, do: migrate_social_graph() +end diff --git a/flavours/community/repo/migrations/20210410094945_profile_images.exs b/flavours/community/repo/migrations/20210410094945_profile_images.exs index a1ebc337f32..c6983de27e1 100644 --- a/flavours/community/repo/migrations/20210410094945_profile_images.exs +++ b/flavours/community/repo/migrations/20210410094945_profile_images.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Social.Repo.Migrations.ProfileImages do +defmodule Bonfire.UI.Me.Repo.Migrations.ProfileImages do @moduledoc false use Ecto.Migration diff --git a/flavours/community/repo/migrations/20210412094946_fp.exs b/flavours/community/repo/migrations/20210412094946_fp.exs index 43d75e0c93a..fba94a6e44c 100644 --- a/flavours/community/repo/migrations/20210412094946_fp.exs +++ b/flavours/community/repo/migrations/20210412094946_fp.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Repo.Migrations.FP do +defmodule Bonfire.Social.Repo.Migrations.FeedPublish do @moduledoc false use Ecto.Migration diff --git a/flavours/community/repo/migrations/20210618094945_peered_uri.exs b/flavours/community/repo/migrations/20210618094945_peered_uri.exs index a965ea0075f..7b784c1d532 100644 --- a/flavours/community/repo/migrations/20210618094945_peered_uri.exs +++ b/flavours/community/repo/migrations/20210618094945_peered_uri.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Social.Repo.Migrations.PeeredURI do +defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.PeeredURI do @moduledoc false use Ecto.Migration diff --git a/flavours/community/repo/migrations/20210831134330_update_oban_jobs_table.exs b/flavours/community/repo/migrations/20210831134330_update_oban_jobs_table.exs deleted file mode 100644 index fb87aa161b5..00000000000 --- a/flavours/community/repo/migrations/20210831134330_update_oban_jobs_table.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Repo.Migrations.UpdateObanJobsTable do - @moduledoc false - use Ecto.Migration - - def up, do: Oban.Migrations.up() - - def down, do: nil -end diff --git a/flavours/community/repo/migrations/20220531084501_seen.exs b/flavours/community/repo/migrations/20220531084501_seen.exs deleted file mode 100644 index 254db7b67d2..00000000000 --- a/flavours/community/repo/migrations/20220531084501_seen.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Repo.Migrations.Seen do - @moduledoc false - use Ecto.Migration - require Bonfire.Data.Social.Seen.Migration - - def up do - Bonfire.Data.Social.Seen.Migration.migrate_seen() - end - - def down do - Bonfire.Data.Social.Seen.Migration.migrate_seen() - end -end diff --git a/flavours/community/repo/migrations/20220621084501_auth_second_factor.exs b/flavours/community/repo/migrations/20220621084501_auth_second_factor.exs deleted file mode 100644 index c40c38df775..00000000000 --- a/flavours/community/repo/migrations/20220621084501_auth_second_factor.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Repo.Migrations.AuthSecondFactor do - @moduledoc false - use Ecto.Migration - require Bonfire.Data.Identity.AuthSecondFactor.Migration - - def up do - Bonfire.Data.Identity.AuthSecondFactor.Migration.migrate_auth_second_factor() - end - - def down do - Bonfire.Data.Identity.AuthSecondFactor.Migration.migrate_auth_second_factor() - end -end diff --git a/flavours/community/repo/migrations/20220712094940_extra_info.exs b/flavours/community/repo/migrations/20220712094940_extra_info.exs deleted file mode 100644 index 826cd211cd2..00000000000 --- a/flavours/community/repo/migrations/20220712094940_extra_info.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ExtraInfo do - @moduledoc false - use Ecto.Migration - require Bonfire.Data.Identity.ExtraInfo.Migration - - def up do - Bonfire.Data.Identity.ExtraInfo.Migration.migrate_extra_info(:up) - end - - def down do - Bonfire.Data.Identity.ExtraInfo.Migration.migrate_extra_info(:down) - end -end diff --git a/flavours/community/repo/migrations/20220915052335_create_oban_peers.exs b/flavours/community/repo/migrations/20220915052335_create_oban_peers.exs deleted file mode 100644 index 0ce81c41aa0..00000000000 --- a/flavours/community/repo/migrations/20220915052335_create_oban_peers.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Common.Repo.Migrations.CreateObanPeers do - @moduledoc false - use Ecto.Migration - - def up, do: Oban.Migrations.up(version: 11) - - def down, do: Oban.Migrations.down(version: 11) -end diff --git a/flavours/community/repo/migrations/20230304094943_add_type.exs b/flavours/community/repo/migrations/20230304094943_add_type.exs index 64421a6d394..3484754d94a 100644 --- a/flavours/community/repo/migrations/20230304094943_add_type.exs +++ b/flavours/community/repo/migrations/20230304094943_add_type.exs @@ -3,9 +3,7 @@ defmodule Bonfire.Repo.Migrations.ClassifyAddType do use Ecto.Migration def up do - if Code.ensure_loaded?(Bonfire.Classify.Migrations) do - Bonfire.Classify.Migrations.add_type() - end + Bonfire.Classify.Migrations.add_type() end def down do diff --git a/flavours/community/repo/migrations/20230304100100_add_tree.exs b/flavours/community/repo/migrations/20230304100100_add_tree.exs index 65e856a1082..a6f950324f4 100644 --- a/flavours/community/repo/migrations/20230304100100_add_tree.exs +++ b/flavours/community/repo/migrations/20230304100100_add_tree.exs @@ -4,16 +4,12 @@ defmodule Bonfire.Repo.Migrations.ClassifyAddTree do require Bonfire.Classify.Tree.Migration def up do - if Code.ensure_loaded?(Bonfire.Classify.Tree.Migration) do - Bonfire.Classify.Tree.Migration.migrate_tree() - Bonfire.Classify.Tree.Migration.migrate_functions() - end + Bonfire.Classify.Tree.Migration.migrate_tree() + Bonfire.Classify.Tree.Migration.migrate_functions() end def down do - if Code.ensure_loaded?(Bonfire.Classify.Tree.Migration) do - Bonfire.Classify.Tree.Migration.migrate_functions() - Bonfire.Classify.Tree.Migration.migrate_tree() - end + Bonfire.Classify.Tree.Migration.migrate_functions() + Bonfire.Classify.Tree.Migration.migrate_tree() end end diff --git a/flavours/community/repo/migrations/20220509084501_hashtag.exs b/flavours/community/repo/migrations/20240109084501_hashtag.exs similarity index 100% rename from flavours/community/repo/migrations/20220509084501_hashtag.exs rename to flavours/community/repo/migrations/20240109084501_hashtag.exs diff --git a/flavours/community/repo/migrations/20240110094945_gin_indexes.exs b/flavours/community/repo/migrations/20240110094945_gin_indexes.exs new file mode 100644 index 00000000000..c94f6a3ca58 --- /dev/null +++ b/flavours/community/repo/migrations/20240110094945_gin_indexes.exs @@ -0,0 +1,48 @@ +defmodule Bonfire.Search.Repo.Migrations.GinIndexes do + use Ecto.Migration + + @disable_ddl_transaction true + @disable_migration_lock true + # ^ Needed to migrate indexes concurrently. + # Disabling DDL transactions removes the guarantee that all of the changes in the migration will happen at once. + # Disabling the migration lock removes the guarantee only a single node will run a given migration if multiple nodes are attempting to migrate at the same time. + + def up do + execute "CREATE EXTENSION IF NOT EXISTS pg_trgm;" + + create_index("bonfire_data_social_named", "name") + create_index("bonfire_data_identity_character", "username") + + # create_index("bonfire_data_social_profile", "name") + create_index_fields( + "bonfire_data_social_profile", + "name gin_trgm_ops, summary gin_trgm_ops" + ) + + create_index_fields( + "bonfire_data_social_post_content", + # "name gin_trgm_ops, summary gin_trgm_ops, html_body gin_trgm_ops" + "name gin_trgm_ops, summary gin_trgm_ops" + ) + end + + def down do + # TODO + end + + def create_index(table, field) do + create_index_fields(table, "#{field} gin_trgm_ops") + end + + def create_index_fields(table, fields) do + execute """ + DROP INDEX IF EXISTS #{table}_gin_index; + """ + + execute """ + CREATE INDEX CONCURRENTLY #{table}_gin_index + ON #{table} + USING gin (#{fields}); + """ + end +end diff --git a/flavours/community/repo/migrations/20240121084501_label.exs b/flavours/community/repo/migrations/20240121084501_label.exs new file mode 100644 index 00000000000..78d9cf189f5 --- /dev/null +++ b/flavours/community/repo/migrations/20240121084501_label.exs @@ -0,0 +1,13 @@ +defmodule Bonfire.Repo.Migrations.Label do + @moduledoc false + use Ecto.Migration + require Bonfire.Label.Migration + + def up do + Bonfire.Label.Migration.migrate_label() + end + + def down do + Bonfire.Label.Migration.migrate_label() + end +end diff --git a/flavours/cooperation/repo/disabled/20220614173443_create_tracks.exs b/flavours/cooperation/repo/disabled/20220614173443_create_tracks.exs deleted file mode 100644 index 12ef8219705..00000000000 --- a/flavours/cooperation/repo/disabled/20220614173443_create_tracks.exs +++ /dev/null @@ -1,21 +0,0 @@ -defmodule Rauversion.Repo.Migrations.CreateTracks do - @moduledoc false - use Ecto.Migration - - def change do - create table(:tracks) do - add(:title, :string) - add(:description, :text) - add(:private, :boolean, default: false, null: false) - add(:slug, :string) - add(:caption, :text) - add(:notification_settings, :map) - add(:metadata, :map) - add(:user_id, RauversionExtension.user_table_reference()) - - timestamps() - end - - create(index(:tracks, [:user_id])) - end -end diff --git a/flavours/cooperation/repo/disabled/20220614174350_create_playlists.exs b/flavours/cooperation/repo/disabled/20220614174350_create_playlists.exs deleted file mode 100644 index c0b2073bdaf..00000000000 --- a/flavours/cooperation/repo/disabled/20220614174350_create_playlists.exs +++ /dev/null @@ -1,18 +0,0 @@ -defmodule Rauversion.Repo.Migrations.CreatePlaylists do - @moduledoc false - use Ecto.Migration - - def change do - create table(:playlists) do - add(:slug, :string) - add(:description, :text) - add(:title, :string) - add(:metadata, :map) - add(:user_id, RauversionExtension.user_table_reference()) - - timestamps() - end - - create(index(:playlists, [:user_id])) - end -end diff --git a/flavours/cooperation/repo/disabled/20220614202737_create_track_playlists.exs b/flavours/cooperation/repo/disabled/20220614202737_create_track_playlists.exs deleted file mode 100644 index 21e9c0091a4..00000000000 --- a/flavours/cooperation/repo/disabled/20220614202737_create_track_playlists.exs +++ /dev/null @@ -1,16 +0,0 @@ -defmodule Rauversion.Repo.Migrations.CreateTrackPlaylists do - @moduledoc false - use Ecto.Migration - - def change do - create table(:track_playlists) do - add(:track_id, references(:tracks, on_delete: :nothing)) - add(:playlist, references(:playlists, on_delete: :nothing)) - - timestamps() - end - - create(index(:track_playlists, [:track_id])) - create(index(:track_playlists, [:playlist])) - end -end diff --git a/flavours/cooperation/repo/disabled/20220615035733_create_active_storage_tables.exs b/flavours/cooperation/repo/disabled/20220615035733_create_active_storage_tables.exs deleted file mode 100644 index 6c0395a0c9a..00000000000 --- a/flavours/cooperation/repo/disabled/20220615035733_create_active_storage_tables.exs +++ /dev/null @@ -1,58 +0,0 @@ -defmodule Chaskiq.Repo.Migrations.CreateActiveStorageTables do - @moduledoc false - use Ecto.Migration - - def change do - create table(:active_storage_blobs) do - # add :id, :uuid, primary_key: true, null: false - add(:key, :string, null: false) - add(:filename, :string, null: false) - add(:content_type, :string) - add(:metadata, :string) - add(:service_name, :string, null: false) - add(:byte_size, :integer, null: false) - add(:checksum, :string) - - timestamps(inserted_at: :created_at, updated_at: :updated_at) - end - - create(unique_index(:active_storage_blobs, [:key])) - - create table(:active_storage_attachments) do - add(:name, :string, null: false) - add(:record_id, :integer) - add(:record_type, :string) - - add(:blob_id, :integer) - add(:blob_type, :string) - - timestamps(inserted_at: :created_at, updated_at: :updated_at) - end - - create( - index("active_storage_attachments", [:record_type, :record_id, :name, :blob_id], - name: :index_active_storage_attachments_uniqueness, - unique: true - ) - ) - - create( - index("active_storage_attachments", [:blob_id], - name: :index_active_storage_attachments_on_blob_id, - unique: false - ) - ) - - create table(:active_storage_variant_records) do - # for binary types use: - # add :blob_id, references(:active_storage_blobs, on_delete: :nothing, type: :binary_id) - add(:blob_id, references(:active_storage_blobs, on_delete: :nothing)) - add(:variation_digest, :string, null: false) - timestamps(inserted_at: :created_at, updated_at: :updated_at) - end - - create(index(:active_storage_variant_records, [:blob_id, :variation_digest])) - # with: [group_id: :group_id]) - # add :blob_id, references("active_storage_blobs") - end -end diff --git a/flavours/cooperation/repo/disabled/20220624072059_alter_playlist_fielf_to_track_playlists.exs b/flavours/cooperation/repo/disabled/20220624072059_alter_playlist_fielf_to_track_playlists.exs deleted file mode 100644 index 36d39b256de..00000000000 --- a/flavours/cooperation/repo/disabled/20220624072059_alter_playlist_fielf_to_track_playlists.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Rauversion.Repo.Migrations.AlterPlaylistFielfToTrackPlaylists do - @moduledoc false - use Ecto.Migration - - def change do - rename(table("track_playlists"), :playlist, to: :playlist_id) - end -end diff --git a/flavours/cooperation/repo/disabled/20220705023948_add_private_to_playlist.exs b/flavours/cooperation/repo/disabled/20220705023948_add_private_to_playlist.exs deleted file mode 100644 index 8292d192752..00000000000 --- a/flavours/cooperation/repo/disabled/20220705023948_add_private_to_playlist.exs +++ /dev/null @@ -1,10 +0,0 @@ -defmodule Rauversion.Repo.Migrations.AddPrivateToPlaylist do - @moduledoc false - use Ecto.Migration - - def change do - alter table(:playlists) do - add(:private, :boolean) - end - end -end diff --git a/flavours/cooperation/repo/disabled/20220709025257_add_type_to_playlist.exs b/flavours/cooperation/repo/disabled/20220709025257_add_type_to_playlist.exs deleted file mode 100644 index 295661e3adc..00000000000 --- a/flavours/cooperation/repo/disabled/20220709025257_add_type_to_playlist.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Rauversion.Repo.Migrations.AddTypeToPlaylist do - @moduledoc false - use Ecto.Migration - - def change do - alter table(:playlists) do - add(:playlist_type, :string) - add(:genre, :string) - add(:release_date, :utc_datetime) - end - end -end diff --git a/flavours/cooperation/repo/disabled/20220719192715_add_counter_caches_to_track.exs b/flavours/cooperation/repo/disabled/20220719192715_add_counter_caches_to_track.exs deleted file mode 100644 index 174cb825a22..00000000000 --- a/flavours/cooperation/repo/disabled/20220719192715_add_counter_caches_to_track.exs +++ /dev/null @@ -1,11 +0,0 @@ -defmodule Rauversion.Repo.Migrations.AddCounterCachesToTrack do - @moduledoc false - use Ecto.Migration - - def change do - alter table(:tracks) do - add(:likes_count, :integer, default: 0) - add(:reposts_count, :integer, default: 0) - end - end -end diff --git a/flavours/cooperation/repo/disabled/20220719192759_add_counter_caches_to_playlist.exs b/flavours/cooperation/repo/disabled/20220719192759_add_counter_caches_to_playlist.exs deleted file mode 100644 index 43b34217857..00000000000 --- a/flavours/cooperation/repo/disabled/20220719192759_add_counter_caches_to_playlist.exs +++ /dev/null @@ -1,10 +0,0 @@ -defmodule Rauversion.Repo.Migrations.AddCounterCachesToPlaylist do - @moduledoc false - use Ecto.Migration - - def change do - alter table(:playlists) do - add(:likes_count, :integer, default: 0) - end - end -end diff --git a/flavours/cooperation/repo/disabled/20220720033830_create_track_event.exs b/flavours/cooperation/repo/disabled/20220720033830_create_track_event.exs deleted file mode 100644 index c7b52122d6f..00000000000 --- a/flavours/cooperation/repo/disabled/20220720033830_create_track_event.exs +++ /dev/null @@ -1,39 +0,0 @@ -defmodule Rauversion.Repo.Migrations.CreateTrackEvent do - @moduledoc false - use Ecto.Migration - - def change do - create table(:listening_events) do - add(:remote_ip, :string) - add(:country, :string) - add(:city, :string) - add(:ua, :string) - add(:lang, :string) - add(:referer, :string) - add(:utm_medium, :string) - add(:utm_source, :string) - add(:utm_campaign, :string) - add(:utm_content, :string) - add(:utm_term, :string) - add(:browser_name, :string) - add(:browser_version, :string) - add(:modern, :boolean) - add(:platform, :string) - add(:device_type, :string) - add(:bot, :boolean) - add(:search_engine, :boolean) - - add(:resource_profile_id, RauversionExtension.user_table_reference()) - add(:user_id, RauversionExtension.user_table_reference()) - add(:track_id, references(:tracks, on_delete: :nothing)) - add(:playlist_id, references(:tracks, on_delete: :nothing)) - - timestamps() - end - - create(index(:listening_events, [:resource_profile_id])) - create(index(:listening_events, [:user_id])) - create(index(:listening_events, [:track_id])) - create(index(:listening_events, [:playlist_id])) - end -end diff --git a/flavours/cooperation/repo/disabled/20220722054446_add_oban_jobs_table.exs b/flavours/cooperation/repo/disabled/20220722054446_add_oban_jobs_table.exs deleted file mode 100644 index 03b0a116b22..00000000000 --- a/flavours/cooperation/repo/disabled/20220722054446_add_oban_jobs_table.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Rauversion.Repo.Migrations.AddObanJobsTable do - @moduledoc false - use Ecto.Migration - - def up do - Oban.Migrations.up() - end - - def down do - Oban.Migrations.down(version: 1) - end -end diff --git a/flavours/cooperation/repo/disabled/20220722134234_add_state_to_track.exs b/flavours/cooperation/repo/disabled/20220722134234_add_state_to_track.exs deleted file mode 100644 index d7b9f34d8ec..00000000000 --- a/flavours/cooperation/repo/disabled/20220722134234_add_state_to_track.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Rauversion.Repo.Migrations.AddStateToTrack do - @moduledoc false - use Ecto.Migration - - def change do - alter table(:tracks) do - add(:state, :string) - end - - create(index(:tracks, [:state])) - end -end diff --git a/flavours/cooperation/repo/disabled/20220805045656_create_preview_cards.exs b/flavours/cooperation/repo/disabled/20220805045656_create_preview_cards.exs deleted file mode 100644 index b7a7ed428d4..00000000000 --- a/flavours/cooperation/repo/disabled/20220805045656_create_preview_cards.exs +++ /dev/null @@ -1,19 +0,0 @@ -defmodule Rauversion.Repo.Migrations.CreatePreviewCards do - @moduledoc false - use Ecto.Migration - - def change do - create table(:preview_cards) do - add(:url, :string) - add(:title, :string) - add(:description, :text) - add(:type, :string) - add(:author_name, :string) - add(:author_url, :string) - add(:html, :text) - add(:image, :string) - - timestamps() - end - end -end diff --git a/flavours/cooperation/repo/disabled/20220813173857_create_event.exs b/flavours/cooperation/repo/disabled/20220813173857_create_event.exs deleted file mode 100644 index dae8d9f457d..00000000000 --- a/flavours/cooperation/repo/disabled/20220813173857_create_event.exs +++ /dev/null @@ -1,46 +0,0 @@ -defmodule Rauversion.Repo.Migrations.CreateEvent do - @moduledoc false - use Ecto.Migration - - def change do - create table(:events) do - add(:title, :string) - add(:description, :text) - add(:slug, :string) - add(:state, :string) - add(:timezone, :string) - add(:event_start, :utc_datetime) - add(:event_ends, :naive_datetime) - add(:private, :boolean, default: false, null: false) - add(:online, :boolean, default: false, null: false) - add(:location, :string) - add(:street, :string) - add(:street_number, :string) - add(:lat, :decimal) - add(:lng, :decimal) - add(:venue, :string) - add(:country, :string) - add(:city, :string) - add(:province, :string) - add(:postal, :string) - add(:age_requirement, :string) - add(:event_capacity, :boolean, default: false, null: false) - add(:event_capacity_limit, :integer) - add(:eticket, :boolean, default: false, null: false) - add(:will_call, :boolean, default: false, null: false) - add(:order_form, :map) - add(:widget_button, :map) - add(:event_short_link, :string) - add(:tax_rates_settings, :map) - add(:attendee_list_settings, :map) - add(:scheduling_settings, :map) - add(:event_settings, :map) - add(:tickets, :map) - add(:user_id, RauversionExtension.user_table_reference()) - - timestamps() - end - - create(index(:events, [:user_id])) - end -end diff --git a/flavours/cooperation/repo/disabled/20220827044728_create_event_tickets.exs b/flavours/cooperation/repo/disabled/20220827044728_create_event_tickets.exs deleted file mode 100644 index f3f21a799ec..00000000000 --- a/flavours/cooperation/repo/disabled/20220827044728_create_event_tickets.exs +++ /dev/null @@ -1,23 +0,0 @@ -defmodule Rauversion.Repo.Migrations.CreateEventTickets do - @moduledoc false - use Ecto.Migration - - def change do - create table(:event_tickets) do - add(:title, :string) - add(:price, :decimal) - add(:early_bird_price, :decimal) - add(:standard_price, :decimal) - add(:qty, :integer) - add(:selling_start, :utc_datetime) - add(:selling_end, :utc_datetime) - add(:short_description, :string) - add(:settings, :map) - add(:event_id, references(:events, on_delete: :nothing)) - - timestamps() - end - - create(index(:event_tickets, [:event_id])) - end -end diff --git a/flavours/cooperation/repo/disabled/20220827044729_create_purchased_tickets.exs b/flavours/cooperation/repo/disabled/20220827044729_create_purchased_tickets.exs deleted file mode 100644 index 92b29007bcf..00000000000 --- a/flavours/cooperation/repo/disabled/20220827044729_create_purchased_tickets.exs +++ /dev/null @@ -1,20 +0,0 @@ -defmodule Rauversion.Repo.Migrations.CreatePurchasedTickets do - @moduledoc false - use Ecto.Migration - - def change do - create table(:purchased_tickets) do - add(:state, :string) - add(:data, :map) - add(:checked_in, :boolean) - add(:checked_in_at, :utc_datetime) - add(:user_id, RauversionExtension.user_table_reference()) - add(:event_ticket_id, references(:event_tickets, on_delete: :nothing)) - - timestamps() - end - - create(index(:purchased_tickets, [:user_id])) - create(index(:purchased_tickets, [:event_ticket_id])) - end -end diff --git a/flavours/cooperation/repo/disabled/20220902022551_create_purchase_orders.exs b/flavours/cooperation/repo/disabled/20220902022551_create_purchase_orders.exs deleted file mode 100644 index fe3c2b3cbbf..00000000000 --- a/flavours/cooperation/repo/disabled/20220902022551_create_purchase_orders.exs +++ /dev/null @@ -1,18 +0,0 @@ -defmodule Rauversion.Repo.Migrations.CreatePurchaseOrders do - @moduledoc false - use Ecto.Migration - - def change do - create table(:purchase_orders) do - add(:total, :decimal) - add(:promo_code, :string) - add(:data, :map) - add(:state, :string) - add(:user_id, RauversionExtension.user_table_reference()) - - timestamps() - end - - create(index(:purchase_orders, [:user_id])) - end -end diff --git a/flavours/cooperation/repo/disabled/20220903010915_add_purchase_order_to_purchased_tickets.exs b/flavours/cooperation/repo/disabled/20220903010915_add_purchase_order_to_purchased_tickets.exs deleted file mode 100644 index 03cf990462e..00000000000 --- a/flavours/cooperation/repo/disabled/20220903010915_add_purchase_order_to_purchased_tickets.exs +++ /dev/null @@ -1,10 +0,0 @@ -defmodule Rauversion.Repo.Migrations.AddPurchaseOrderToPurchasedTickets do - @moduledoc false - use Ecto.Migration - - def change do - alter table(:purchased_tickets) do - add(:purchase_order_id, references(:purchase_orders, on_delete: :nothing)) - end - end -end diff --git a/flavours/cooperation/repo/disabled/20220903031117_add_payment_id_and_payment_provider.exs b/flavours/cooperation/repo/disabled/20220903031117_add_payment_id_and_payment_provider.exs deleted file mode 100644 index 1baee4f8098..00000000000 --- a/flavours/cooperation/repo/disabled/20220903031117_add_payment_id_and_payment_provider.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Rauversion.Repo.Migrations.AddPaymentIdAndPaymentProvider do - @moduledoc false - use Ecto.Migration - - def change do - alter table(:purchase_orders) do - add(:payment_id, :string) - add(:payment_provider, :string) - # add :payment_, references(:purchase_orders, on_delete: :nothing) - end - end -end diff --git a/flavours/cooperation/repo/migrations/20200523081012_init_pointers.exs b/flavours/cooperation/repo/migrations/20200523081012_init_pointers.exs index 93da00504c5..f8a3b3ba1e2 100644 --- a/flavours/cooperation/repo/migrations/20200523081012_init_pointers.exs +++ b/flavours/cooperation/repo/migrations/20200523081012_init_pointers.exs @@ -2,14 +2,15 @@ defmodule Bonfire.Repo.Migrations.InitPointers do @moduledoc false use Ecto.Migration import Needle.Migration + import Needle.ULID.Migration - def up do - init_pointers_ulid_extra() - init_pointers() - end + def up(), do: init(:up) + def down(), do: init(:down) - def down do - init_pointers_ulid_extra() - init_pointers() + defp init(dir) do + # this one is optional but recommended + init_pointers_ulid_extra(dir) + # this one is not optional + init_pointers(dir) end end diff --git a/flavours/cooperation/repo/migrations/20200818094943_import_ap.exs b/flavours/cooperation/repo/migrations/20200818094943_import_ap.exs index c4284dbd6a7..2103a31c947 100644 --- a/flavours/cooperation/repo/migrations/20200818094943_import_ap.exs +++ b/flavours/cooperation/repo/migrations/20200818094943_import_ap.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportMe do +defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportAP do @moduledoc false use Ecto.Migration diff --git a/flavours/cooperation/repo/migrations/20200828094946_import_social_graph.exs b/flavours/cooperation/repo/migrations/20200828094946_import_social_graph.exs deleted file mode 100644 index 12043c82201..00000000000 --- a/flavours/cooperation/repo/migrations/20200828094946_import_social_graph.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Social.Graph.Repo.Migrations.ImportSocial do - @moduledoc false - use Ecto.Migration - - import Bonfire.Social.Graph.Migrations - import Needle.Migration - - def up do - migrate_social() - end - - def down, do: migrate_social() -end diff --git a/flavours/cooperation/repo/migrations/20200828094947_import_posts.exs b/flavours/cooperation/repo/migrations/20200828094947_import_posts.exs deleted file mode 100644 index 9dac2df3a12..00000000000 --- a/flavours/cooperation/repo/migrations/20200828094947_import_posts.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Posts.Repo.Migrations.ImportSocial do - @moduledoc false - use Ecto.Migration - - import Bonfire.Posts.Migrations - import Needle.Migration - - def up do - migrate_social() - end - - def down, do: migrate_social() -end diff --git a/flavours/cooperation/repo/migrations/20200828094948_import_messages.exs b/flavours/cooperation/repo/migrations/20200828094948_import_messages.exs deleted file mode 100644 index bd894e66d16..00000000000 --- a/flavours/cooperation/repo/migrations/20200828094948_import_messages.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Messages.Repo.Migrations.ImportSocial do - @moduledoc false - use Ecto.Migration - - import Bonfire.Messages.Migrations - import Needle.Migration - - def up do - migrate_social() - end - - def down, do: migrate_social() -end diff --git a/flavours/cooperation/repo/migrations/20200829004946_boundaries_fixtures.exs b/flavours/cooperation/repo/migrations/20200829004946_boundaries_fixtures.exs deleted file mode 100644 index 91c2dd40429..00000000000 --- a/flavours/cooperation/repo/migrations/20200829004946_boundaries_fixtures.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule Bonfire.Boundaries.Repo.Migrations.BoundariesFixtures do - @moduledoc false - use Ecto.Migration - - import Bonfire.Boundaries.Fixtures - - def up, do: Bonfire.Boundaries.Fixtures.insert() - def down, do: nil -end diff --git a/flavours/cooperation/repo/migrations/20201105094943_import_me.exs b/flavours/cooperation/repo/migrations/20201105094943_import_me.exs new file mode 100644 index 00000000000..9502b0972e5 --- /dev/null +++ b/flavours/cooperation/repo/migrations/20201105094943_import_me.exs @@ -0,0 +1,9 @@ +defmodule Bonfire.Breadpub.Repo.Migrations.ImportMe do + @moduledoc false + use Ecto.Migration + + import Bonfire.Breadpub.Migration + # accounts & users + + def change, do: migrate_me +end diff --git a/flavours/cooperation/repo/migrations/20201205094943_import_classify.exs b/flavours/cooperation/repo/migrations/20201205094943_import_classify.exs new file mode 100644 index 00000000000..eef60ba4292 --- /dev/null +++ b/flavours/cooperation/repo/migrations/20201205094943_import_classify.exs @@ -0,0 +1,16 @@ +defmodule Bonfire.Repo.Migrations.ImportClassify do + @moduledoc false + use Ecto.Migration + + def up do + if Code.ensure_loaded?(Bonfire.Classify.Migrations) do + Bonfire.Classify.Migrations.up() + end + end + + def down do + if Code.ensure_loaded?(Bonfire.Classify.Migrations) do + Bonfire.Classify.Migrations.down() + end + end +end diff --git a/flavours/cooperation/repo/migrations/20210102094944_import_shared_user.exs b/flavours/cooperation/repo/migrations/20210102094944_import_shared_user.exs index 83b478f8754..de8c80b323e 100644 --- a/flavours/cooperation/repo/migrations/20210102094944_import_shared_user.exs +++ b/flavours/cooperation/repo/migrations/20210102094944_import_shared_user.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Repo.Migrations.ImportSharedUser do +defmodule Bonfire.Data.SharedUser.ImportSharedUser do @moduledoc false use Ecto.Migration diff --git a/flavours/cooperation/repo/migrations/20210113094942_import_valueflows_observe.exs b/flavours/cooperation/repo/migrations/20210113094942_import_valueflows_observe.exs deleted file mode 100644 index f9bea31011f..00000000000 --- a/flavours/cooperation/repo/migrations/20210113094942_import_valueflows_observe.exs +++ /dev/null @@ -1,14 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportValueFlowsObserve do - @moduledoc false - use Ecto.Migration - - alias ValueFlows.Observe.Migrations - - def up do - Migrations.up() - end - - def down do - Migrations.down() - end -end diff --git a/flavours/cooperation/repo/migrations/20210128094942_posts.exs b/flavours/cooperation/repo/migrations/20210128094942_posts.exs new file mode 100644 index 00000000000..78de493cbb6 --- /dev/null +++ b/flavours/cooperation/repo/migrations/20210128094942_posts.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Posts.Repo.Migrations.Import do + @moduledoc false + use Ecto.Migration + + import Bonfire.Posts.Migrations + + def change, do: migrate_posts() +end diff --git a/flavours/cooperation/repo/migrations/20210128094943_messages.exs b/flavours/cooperation/repo/migrations/20210128094943_messages.exs new file mode 100644 index 00000000000..6a02b7de798 --- /dev/null +++ b/flavours/cooperation/repo/migrations/20210128094943_messages.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Messages.Repo.MessagesMigrations do + @moduledoc false + use Ecto.Migration + + import Bonfire.Messages.Migrations + + def change, do: migrate_messages() +end diff --git a/flavours/cooperation/repo/migrations/20210128094944_social_graph.exs b/flavours/cooperation/repo/migrations/20210128094944_social_graph.exs new file mode 100644 index 00000000000..1a77ca5605d --- /dev/null +++ b/flavours/cooperation/repo/migrations/20210128094944_social_graph.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Social.Graph.Repo.Migrations.Import do + @moduledoc false + use Ecto.Migration + + import Bonfire.Social.Graph.Migrations + + def change, do: migrate_social_graph() +end diff --git a/flavours/cooperation/repo/migrations/20210407094946_message.exs b/flavours/cooperation/repo/migrations/20210407094946_message.exs deleted file mode 100644 index 45d7cb482df..00000000000 --- a/flavours/cooperation/repo/migrations/20210407094946_message.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule Bonfire.Repo.Migrations.Message do - @moduledoc false - use Ecto.Migration - - import Bonfire.Data.Social.Message.Migration - - def up, do: migrate_message() - def down, do: migrate_message() -end diff --git a/flavours/cooperation/repo/migrations/20210410094945_profile_images.exs b/flavours/cooperation/repo/migrations/20210410094945_profile_images.exs index a1ebc337f32..c6983de27e1 100644 --- a/flavours/cooperation/repo/migrations/20210410094945_profile_images.exs +++ b/flavours/cooperation/repo/migrations/20210410094945_profile_images.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Social.Repo.Migrations.ProfileImages do +defmodule Bonfire.UI.Me.Repo.Migrations.ProfileImages do @moduledoc false use Ecto.Migration diff --git a/flavours/cooperation/repo/migrations/20210412094946_fp.exs b/flavours/cooperation/repo/migrations/20210412094946_fp.exs index 43d75e0c93a..fba94a6e44c 100644 --- a/flavours/cooperation/repo/migrations/20210412094946_fp.exs +++ b/flavours/cooperation/repo/migrations/20210412094946_fp.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Repo.Migrations.FP do +defmodule Bonfire.Social.Repo.Migrations.FeedPublish do @moduledoc false use Ecto.Migration diff --git a/flavours/cooperation/repo/migrations/20210618094945_peered_uri.exs b/flavours/cooperation/repo/migrations/20210618094945_peered_uri.exs index a965ea0075f..7b784c1d532 100644 --- a/flavours/cooperation/repo/migrations/20210618094945_peered_uri.exs +++ b/flavours/cooperation/repo/migrations/20210618094945_peered_uri.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Social.Repo.Migrations.PeeredURI do +defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.PeeredURI do @moduledoc false use Ecto.Migration diff --git a/flavours/cooperation/repo/migrations/20210831134330_update_oban_jobs_table.exs b/flavours/cooperation/repo/migrations/20210831134330_update_oban_jobs_table.exs deleted file mode 100644 index fb87aa161b5..00000000000 --- a/flavours/cooperation/repo/migrations/20210831134330_update_oban_jobs_table.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Repo.Migrations.UpdateObanJobsTable do - @moduledoc false - use Ecto.Migration - - def up, do: Oban.Migrations.up() - - def down, do: nil -end diff --git a/flavours/cooperation/repo/migrations/20220531084501_seen.exs b/flavours/cooperation/repo/migrations/20220531084501_seen.exs deleted file mode 100644 index 254db7b67d2..00000000000 --- a/flavours/cooperation/repo/migrations/20220531084501_seen.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Repo.Migrations.Seen do - @moduledoc false - use Ecto.Migration - require Bonfire.Data.Social.Seen.Migration - - def up do - Bonfire.Data.Social.Seen.Migration.migrate_seen() - end - - def down do - Bonfire.Data.Social.Seen.Migration.migrate_seen() - end -end diff --git a/flavours/cooperation/repo/migrations/20220621084501_auth_second_factor.exs b/flavours/cooperation/repo/migrations/20220621084501_auth_second_factor.exs deleted file mode 100644 index c40c38df775..00000000000 --- a/flavours/cooperation/repo/migrations/20220621084501_auth_second_factor.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Repo.Migrations.AuthSecondFactor do - @moduledoc false - use Ecto.Migration - require Bonfire.Data.Identity.AuthSecondFactor.Migration - - def up do - Bonfire.Data.Identity.AuthSecondFactor.Migration.migrate_auth_second_factor() - end - - def down do - Bonfire.Data.Identity.AuthSecondFactor.Migration.migrate_auth_second_factor() - end -end diff --git a/flavours/cooperation/repo/migrations/20220712094940_extra_info.exs b/flavours/cooperation/repo/migrations/20220712094940_extra_info.exs deleted file mode 100644 index 826cd211cd2..00000000000 --- a/flavours/cooperation/repo/migrations/20220712094940_extra_info.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ExtraInfo do - @moduledoc false - use Ecto.Migration - require Bonfire.Data.Identity.ExtraInfo.Migration - - def up do - Bonfire.Data.Identity.ExtraInfo.Migration.migrate_extra_info(:up) - end - - def down do - Bonfire.Data.Identity.ExtraInfo.Migration.migrate_extra_info(:down) - end -end diff --git a/flavours/cooperation/repo/migrations/20220915052335_create_oban_peers.exs b/flavours/cooperation/repo/migrations/20220915052335_create_oban_peers.exs deleted file mode 100644 index 0ce81c41aa0..00000000000 --- a/flavours/cooperation/repo/migrations/20220915052335_create_oban_peers.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Common.Repo.Migrations.CreateObanPeers do - @moduledoc false - use Ecto.Migration - - def up, do: Oban.Migrations.up(version: 11) - - def down, do: Oban.Migrations.down(version: 11) -end diff --git a/flavours/cooperation/repo/migrations/20221014084501_pin.exs b/flavours/cooperation/repo/migrations/20221014084501_pin.exs deleted file mode 100644 index 6a680236e10..00000000000 --- a/flavours/cooperation/repo/migrations/20221014084501_pin.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Repo.Migrations.Pin do - @moduledoc false - use Ecto.Migration - require Bonfire.Data.Social.Pin.Migration - - def up do - Bonfire.Data.Social.Pin.Migration.migrate_pin() - end - - def down do - Bonfire.Data.Social.Pin.Migration.migrate_pin() - end -end diff --git a/flavours/cooperation/repo/migrations/20221126081012_init_encrypt_secrets.exs.disabled b/flavours/cooperation/repo/migrations/20221126081012_init_encrypt_secrets.exs.disabled deleted file mode 100644 index f319823d770..00000000000 --- a/flavours/cooperation/repo/migrations/20221126081012_init_encrypt_secrets.exs.disabled +++ /dev/null @@ -1,18 +0,0 @@ -defmodule Bonfire.Encrypt.Repo.Migrations.InitSecret do - @moduledoc false - use Ecto.Migration - - if Code.ensure_loaded?(Bonfire.Encrypt.Migrations) do - require Bonfire.Encrypt.Migrations - - def up do - Bonfire.Encrypt.Migrations.migrate_secret() - end - - def down do - Bonfire.Encrypt.Migrations.migrate_secret() - end - else - IO.puts("Skip Bonfire.Encrypt migrations because the extension is not available.") - end -end diff --git a/flavours/cooperation/repo/migrations/20230304094943_add_type.exs b/flavours/cooperation/repo/migrations/20230304094943_add_type.exs index 64421a6d394..3484754d94a 100644 --- a/flavours/cooperation/repo/migrations/20230304094943_add_type.exs +++ b/flavours/cooperation/repo/migrations/20230304094943_add_type.exs @@ -3,9 +3,7 @@ defmodule Bonfire.Repo.Migrations.ClassifyAddType do use Ecto.Migration def up do - if Code.ensure_loaded?(Bonfire.Classify.Migrations) do - Bonfire.Classify.Migrations.add_type() - end + Bonfire.Classify.Migrations.add_type() end def down do diff --git a/flavours/cooperation/repo/migrations/20230304100100_add_tree.exs b/flavours/cooperation/repo/migrations/20230304100100_add_tree.exs index 65e856a1082..a6f950324f4 100644 --- a/flavours/cooperation/repo/migrations/20230304100100_add_tree.exs +++ b/flavours/cooperation/repo/migrations/20230304100100_add_tree.exs @@ -4,16 +4,12 @@ defmodule Bonfire.Repo.Migrations.ClassifyAddTree do require Bonfire.Classify.Tree.Migration def up do - if Code.ensure_loaded?(Bonfire.Classify.Tree.Migration) do - Bonfire.Classify.Tree.Migration.migrate_tree() - Bonfire.Classify.Tree.Migration.migrate_functions() - end + Bonfire.Classify.Tree.Migration.migrate_tree() + Bonfire.Classify.Tree.Migration.migrate_functions() end def down do - if Code.ensure_loaded?(Bonfire.Classify.Tree.Migration) do - Bonfire.Classify.Tree.Migration.migrate_functions() - Bonfire.Classify.Tree.Migration.migrate_tree() - end + Bonfire.Classify.Tree.Migration.migrate_functions() + Bonfire.Classify.Tree.Migration.migrate_tree() end end diff --git a/flavours/cooperation/repo/migrations/20230731004945_add_array_reverse_fn.exs b/flavours/cooperation/repo/migrations/20230731004945_add_array_reverse_fn.exs new file mode 100644 index 00000000000..3848288fee0 --- /dev/null +++ b/flavours/cooperation/repo/migrations/20230731004945_add_array_reverse_fn.exs @@ -0,0 +1,7 @@ +defmodule Bonfire.Social.Repo.Migrations.ArrayFn do + @moduledoc false + use Ecto.Migration + + def up, do: Bonfire.Social.Migrations.add_array_reverse_fn() + def down, do: nil +end diff --git a/flavours/cooperation/repo/migrations/20220509084501_hashtag.exs b/flavours/cooperation/repo/migrations/20240109084501_hashtag.exs similarity index 100% rename from flavours/cooperation/repo/migrations/20220509084501_hashtag.exs rename to flavours/cooperation/repo/migrations/20240109084501_hashtag.exs diff --git a/flavours/cooperation/repo/migrations/20240110094945_gin_indexes.exs b/flavours/cooperation/repo/migrations/20240110094945_gin_indexes.exs new file mode 100644 index 00000000000..c94f6a3ca58 --- /dev/null +++ b/flavours/cooperation/repo/migrations/20240110094945_gin_indexes.exs @@ -0,0 +1,48 @@ +defmodule Bonfire.Search.Repo.Migrations.GinIndexes do + use Ecto.Migration + + @disable_ddl_transaction true + @disable_migration_lock true + # ^ Needed to migrate indexes concurrently. + # Disabling DDL transactions removes the guarantee that all of the changes in the migration will happen at once. + # Disabling the migration lock removes the guarantee only a single node will run a given migration if multiple nodes are attempting to migrate at the same time. + + def up do + execute "CREATE EXTENSION IF NOT EXISTS pg_trgm;" + + create_index("bonfire_data_social_named", "name") + create_index("bonfire_data_identity_character", "username") + + # create_index("bonfire_data_social_profile", "name") + create_index_fields( + "bonfire_data_social_profile", + "name gin_trgm_ops, summary gin_trgm_ops" + ) + + create_index_fields( + "bonfire_data_social_post_content", + # "name gin_trgm_ops, summary gin_trgm_ops, html_body gin_trgm_ops" + "name gin_trgm_ops, summary gin_trgm_ops" + ) + end + + def down do + # TODO + end + + def create_index(table, field) do + create_index_fields(table, "#{field} gin_trgm_ops") + end + + def create_index_fields(table, fields) do + execute """ + DROP INDEX IF EXISTS #{table}_gin_index; + """ + + execute """ + CREATE INDEX CONCURRENTLY #{table}_gin_index + ON #{table} + USING gin (#{fields}); + """ + end +end diff --git a/flavours/cooperation/repo/migrations/20240121084501_label.exs b/flavours/cooperation/repo/migrations/20240121084501_label.exs new file mode 100644 index 00000000000..78d9cf189f5 --- /dev/null +++ b/flavours/cooperation/repo/migrations/20240121084501_label.exs @@ -0,0 +1,13 @@ +defmodule Bonfire.Repo.Migrations.Label do + @moduledoc false + use Ecto.Migration + require Bonfire.Label.Migration + + def up do + Bonfire.Label.Migration.migrate_label() + end + + def down do + Bonfire.Label.Migration.migrate_label() + end +end diff --git a/flavours/haha/config/deps.flavour.git b/flavours/haha/config/deps.flavour.git deleted file mode 100644 index 52a9331a287..00000000000 --- a/flavours/haha/config/deps.flavour.git +++ /dev/null @@ -1,3 +0,0 @@ - -bonfire_classify = "https://github.com/bonfire-networks/bonfire_classify#main" -bonfire_taxonomy_seeder = "https://github.com/bonfire-networks/bonfire_taxonomy_seeder#main" diff --git a/flavours/haha/config/deps.flavour.hex b/flavours/haha/config/deps.flavour.hex deleted file mode 100644 index 06f75b7828b..00000000000 --- a/flavours/haha/config/deps.flavour.hex +++ /dev/null @@ -1,2 +0,0 @@ - -phil_columns = "~> 3.1" # for inserting seed data in the DB diff --git a/flavours/haha/config/flavour_haha.exs b/flavours/haha/config/flavour_haha.exs deleted file mode 100644 index b0644b5d270..00000000000 --- a/flavours/haha/config/flavour_haha.exs +++ /dev/null @@ -1,9 +0,0 @@ -import Config - -config :bonfire, :ui, - theme: [ - instance_name: "HAHA Academy", - instance_icon: "/images/bonfire-icon.png", - instance_image: "https://haha.academy/images/wheel.png", - instance_description: "Community roadmaps for learning every branch of human knowledge" - ] diff --git a/flavours/haha/repo/migrations/20200523081012_init_pointers.exs b/flavours/haha/repo/migrations/20200523081012_init_pointers.exs deleted file mode 100644 index 93da00504c5..00000000000 --- a/flavours/haha/repo/migrations/20200523081012_init_pointers.exs +++ /dev/null @@ -1,15 +0,0 @@ -defmodule Bonfire.Repo.Migrations.InitPointers do - @moduledoc false - use Ecto.Migration - import Needle.Migration - - def up do - init_pointers_ulid_extra() - init_pointers() - end - - def down do - init_pointers_ulid_extra() - init_pointers() - end -end diff --git a/flavours/haha/repo/migrations/20200818094943_import_ap.exs b/flavours/haha/repo/migrations/20200818094943_import_ap.exs deleted file mode 100644 index c4284dbd6a7..00000000000 --- a/flavours/haha/repo/migrations/20200818094943_import_ap.exs +++ /dev/null @@ -1,10 +0,0 @@ -defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportMe do - @moduledoc false - use Ecto.Migration - - import Bonfire.Federate.ActivityPub.Migrations - # accounts & users - - def up, do: migrate_activity_pub() - def down, do: migrate_activity_pub() -end diff --git a/flavours/haha/repo/migrations/20200829004946_boundaries_fixtures.exs b/flavours/haha/repo/migrations/20200829004946_boundaries_fixtures.exs deleted file mode 100644 index 91c2dd40429..00000000000 --- a/flavours/haha/repo/migrations/20200829004946_boundaries_fixtures.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule Bonfire.Boundaries.Repo.Migrations.BoundariesFixtures do - @moduledoc false - use Ecto.Migration - - import Bonfire.Boundaries.Fixtures - - def up, do: Bonfire.Boundaries.Fixtures.insert() - def down, do: nil -end diff --git a/flavours/haha/repo/migrations/20210412094946_fp.exs b/flavours/haha/repo/migrations/20210412094946_fp.exs deleted file mode 100644 index 43d75e0c93a..00000000000 --- a/flavours/haha/repo/migrations/20210412094946_fp.exs +++ /dev/null @@ -1,42 +0,0 @@ -defmodule Bonfire.Repo.Migrations.FP do - @moduledoc false - use Ecto.Migration - - def up do - execute("create or replace function - column_exists(ptable text, pcolumn text, pschema text default 'public') - returns boolean - language sql stable strict - as $body$ - -- does the requested table.column exist in schema? - select exists - ( select null - from information_schema.columns - where table_name=ptable - and column_name=pcolumn - and table_schema=pschema - ); - $body$;") - - execute( - "CREATE OR REPLACE FUNCTION rename_column_if_exists(ptable TEXT, pcolumn TEXT, new_name TEXT) - RETURNS VOID AS $BODY$ - BEGIN - -- Rename the column if it exists. - IF column_exists(ptable, pcolumn) THEN - EXECUTE FORMAT('ALTER TABLE IF EXISTS %I RENAME COLUMN %I TO %I;', - ptable, pcolumn, new_name); - END IF; - END$BODY$ - LANGUAGE plpgsql VOLATILE;" - ) - - flush() - - execute( - "SELECT rename_column_if_exists('bonfire_data_social_feed_publish', 'object_id', 'activity_id') " - ) - end - - def down, do: nil -end diff --git a/flavours/haha/repo/migrations/20210831134330_update_oban_jobs_table.exs b/flavours/haha/repo/migrations/20210831134330_update_oban_jobs_table.exs deleted file mode 100644 index fb87aa161b5..00000000000 --- a/flavours/haha/repo/migrations/20210831134330_update_oban_jobs_table.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Repo.Migrations.UpdateObanJobsTable do - @moduledoc false - use Ecto.Migration - - def up, do: Oban.Migrations.up() - - def down, do: nil -end diff --git a/flavours/haha/repo/migrations/20210924094943_taxonomy_seeder.exs b/flavours/haha/repo/migrations/20210924094943_taxonomy_seeder.exs deleted file mode 100644 index 1d32a0d6f87..00000000000 --- a/flavours/haha/repo/migrations/20210924094943_taxonomy_seeder.exs +++ /dev/null @@ -1,15 +0,0 @@ -defmodule Bonfire.Repo.Migrations.TaxonomySeeder do - @moduledoc false - use Ecto.Migration - - def up do - Bonfire.TaxonomySeeder.Migrations.up() - Bonfire.TaxonomySeeder.Migrations.add_category() - end - - def down do - Bonfire.TaxonomySeeder.Migrations.down() - end - - # def change, do: nil -end diff --git a/flavours/haha/repo/migrations/20220915052335_create_oban_peers.exs b/flavours/haha/repo/migrations/20220915052335_create_oban_peers.exs deleted file mode 100644 index 0ce81c41aa0..00000000000 --- a/flavours/haha/repo/migrations/20220915052335_create_oban_peers.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Common.Repo.Migrations.CreateObanPeers do - @moduledoc false - use Ecto.Migration - - def up, do: Oban.Migrations.up(version: 11) - - def down, do: Oban.Migrations.down(version: 11) -end diff --git a/flavours/haha/README.md b/flavours/open-science/README.md similarity index 97% rename from flavours/haha/README.md rename to flavours/open-science/README.md index 12a717c6134..c5718cca6e1 100644 --- a/flavours/haha/README.md +++ b/flavours/open-science/README.md @@ -1,4 +1,4 @@ -# Haha Academy +# Open Science Network This app is part of the [Bonfire](https://bonfirenetworks.org/) ecosystem and bundles the following extensions: @@ -11,7 +11,7 @@ This app is part of the [Bonfire](https://bonfirenetworks.org/) ecosystem and bu - [Bonfire.Tag](https://github.com/bonfire-ecosystem/bonfire_tag) - @ mentions, hashtags, and tagging using topics/categories from Bonfire.Classify - [Bonfire.Classify](https://github.com/bonfire-ecosystem/bonfire_classify) - categories & classifications in taxonomies - [Bonfire.Geolocate](https://github.com/bonfire-ecosystem/bonfire_geolocate) - places - +- Etc... ## More information diff --git a/flavours/open-science/config/deps.flavour.git b/flavours/open-science/config/deps.flavour.git new file mode 100644 index 00000000000..2f5c065cc67 --- /dev/null +++ b/flavours/open-science/config/deps.flavour.git @@ -0,0 +1,3 @@ + +bonfire_classify = "https://github.com/bonfire-networks/bonfire_classify#main" +# bonfire_taxonomy_seeder = "https://github.com/bonfire-networks/bonfire_taxonomy_seeder#main" diff --git a/flavours/open-science/config/deps.flavour.hex b/flavours/open-science/config/deps.flavour.hex new file mode 100644 index 00000000000..4e7b8f109c9 --- /dev/null +++ b/flavours/open-science/config/deps.flavour.hex @@ -0,0 +1,2 @@ + +#glific_phil_columns = "~> 3.1" # for inserting seed data in the DB - FIXME diff --git a/flavours/haha/config/deps.js.sh b/flavours/open-science/config/deps.js.sh similarity index 100% rename from flavours/haha/config/deps.js.sh rename to flavours/open-science/config/deps.js.sh diff --git a/flavours/open-science/config/flavour_assets/hooks/Bonfire.Editor.Milkdown.hooks.js b/flavours/open-science/config/flavour_assets/hooks/Bonfire.Editor.Milkdown.hooks.js new file mode 100644 index 00000000000..abc8ce8c327 --- /dev/null +++ b/flavours/open-science/config/flavour_assets/hooks/Bonfire.Editor.Milkdown.hooks.js @@ -0,0 +1,540 @@ +/* +This file was generated by the Surface compiler. +*/ + +import { defaultValueCtx, editorViewOptionsCtx, Editor, editorViewCtx, commandsCtx, rootCtx } from '@milkdown/core'; +import { $prose, replaceAll, insert} from '@milkdown/utils'; +import { commonmark, wrapInHeadingCommand, toggleStrongCommand, toggleEmphasisCommand} from '@milkdown/preset-commonmark'; +import {gfm} from "@milkdown/preset-gfm"; +import { emoji } from '@milkdown/plugin-emoji'; +import { listener, listenerCtx } from '@milkdown/plugin-listener'; +import { SlashProvider } from '@milkdown/plugin-slash' +import { slashFactory } from '@milkdown/plugin-slash'; +import { gemoji } from "gemoji"; +import { clipboard } from '@milkdown/plugin-clipboard'; +import { createPopup } from '@picmo/popup-picker'; + +import { Plugin, PluginKey } from '@milkdown/prose/state'; +import { Decoration, DecorationSet } from '@milkdown/prose/view'; + +const PlaceholderPlugin = new Plugin({ + key: new PluginKey('milkdown-placeholder'), + props: { + decorations: (state) => { + const element = document.createElement('span') + + element.classList.add('milkdown-placeholder') + element.style.position = "absolute"; + element.style.opacity = "0.5"; + element.innerText = "Write something..."; + + const placeholderDecoration = Decoration.widget(0, element, { key: 'milkdown-placeholder', side: 0 }); + if (state.doc.textContent.trim().length === 0) { + return DecorationSet.create(state.doc, [placeholderDecoration]) + } + } + } +}); +const placeholder = $prose(() => PlaceholderPlugin); + + +const MIN_PREFIX_LENGTH = 2 +const VALID_CHARS = '[\\w\\+_\\-:]' +const MENTION_PREFIX = '(?:@)' +const EMOJI_PREFIX = '(?::)' +const MENTION_REGEX = new RegExp(`(?:\\s|^)(${MENTION_PREFIX}${VALID_CHARS}{${MIN_PREFIX_LENGTH},})$`) +const EMOJI_REGEX = new RegExp(`(?:\\s|^)(${EMOJI_PREFIX}${VALID_CHARS}{${MIN_PREFIX_LENGTH},})$`) + + +import '@milkdown/theme-nord/style.css'; + +const markdown = `` + + +function mentionsPluginView(view) { + const content = document.createElement('ul'); + content.tabIndex = 1; + + content.className = 'm-0 p-0 menu w-72 bg-base-100 shadow-lg ring-2'; + let list = '' + + const provider = new SlashProvider({ + content, + shouldShow: (view, prevState) => { + // get the current content of the editor + const { state } = view; + const { doc } = state; + const currentText = doc.textContent; + + if (currentText === '') { + return false; + } + + + const mentions = currentText.match(MENTION_REGEX) + + // Display the menu if the last character is `@` followed by 2 chars. + if (mentions) { + // get the characters that follows the `@` in currentText + const text = mentions[1].split('@').pop() + + return getFeedItems(text, '@').then(res => { + list = '' + if (res.length > 0) { + // Add max 4 items to the menu + let maxItems = 4 + for (let i = 0; i < res.length && i < maxItems; i++) { + list += mentionItemRenderer(res[i], text); + } + content.innerHTML = list + return true + } else { + content.innerHTML = '' + return false + } + }) + } + + return false; + }, + trigger: '@', + }); + + return { + update: (updatedView, prevState) => { + provider.update(updatedView, prevState); + }, + destroy: () => { + provider.destroy(); + content.remove(); + } + } +} + + +function emojisPluginView() { + const content = document.createElement('ul'); + content.tabIndex = 1; + + content.className = 'm-0 p-0 menu w-72 bg-base-100 shadow-lg ring-2'; + let list = '' + + const provider = new SlashProvider({ + content, + shouldShow: (view, prevState) => { + // get the current content of the editor + const { state } = view; + const { doc } = state; + const currentText = doc.textContent; + + if (currentText === '') { + return false; + } + + + const emojis = currentText.match(EMOJI_REGEX) + // Display the menu if the last character is `@` followed by 2 chars. + if (emojis) { + // get the characters that follows the `@` in currentText + const text = emojis[1].split(':').pop() + const index = gemoji.findIndex((emoji) => { + return emoji.names.some((name) => name.includes(text)); + }); + list = '' + if (index > 0) { + // Add max 4 items to the menu + gemoji + .filter((emoji) => { + return emoji.names.some((name) => name.includes(text)); + }) + .slice(0, 6) + .map((emoji) => { + list += emojiItemRenderer(emoji, text); + }) + + content.innerHTML = list + return true + } else { + content.innerHTML = '' + return false + } + } + return false; + }, + trigger: ':', + }); + + + return { + update: (updatedView, prevState) => { + provider.update(updatedView, prevState); + }, + destroy: () => { + provider.destroy(); + content.remove(); + } + } +} + + +// function slashPluginView(view) { +// const content = document.createElement('ul'); +// content.tabIndex = 1; + +// content.className = 'm-0 p-0 menu w-72 bg-base-100 shadow-lg ring-2'; +// let list = slashItemRenderer() +// content.innerHTML = list + + +// const provider = new SlashProvider({ +// content, +// trigger: '/', +// }); + + + +// return { +// update: (updatedView, prevState) => { +// provider.update(updatedView, prevState); +// }, +// destroy: () => { +// provider.destroy(); +// content.remove(); +// } +// } +// } + + + +function getFeedItems(queryText, prefix) { + // console.log(prefix) + if (queryText && queryText.length > 0) { + return new Promise((resolve) => { + // this requires the bonfire_tag extension + fetch("/api/tag/autocomplete/ck5/" + prefix + "/" + queryText) + .then((response) => response.json()) + .then((data) => { + console.log("data") + console.log(data) + let values = data.map((item) => ({ + id: item.id, + value: item.name, + icon: item.icon + })); + resolve(values); + }) + .catch((error) => { + console.error("There has been a problem with the tag search:", error); + resolve([]); + }); + }); + } else return []; +} + +const mentionItemRenderer = (item, text) => { + return ` +
  • + +
  • ` +} + +const emojiItemRenderer = (item, text) => { + + return ` +
  • + +
  • ` +} + +// const slashItemRenderer = () => { +// return ` +//
  • +// +//
  • +//
  • +// +//
  • +//
  • +// +//
  • +//
  • +// +//
  • + +//
  • +// +//
  • +// ` + +// } + + + +const mentionSlash = slashFactory('mentions-slash'); +const emojisSlash = slashFactory('emojis-slash'); +// const slash = slashFactory('slash'); +let isUpdatingMarkdown = false; + +const createEditor = async (_this, hidden_input, composer$) => { + const editor = await Editor + .make() + .config(ctx => { + ctx.set(rootCtx, '#editor') + ctx.set(defaultValueCtx, markdown) + ctx.set(mentionSlash.key, { + view: mentionsPluginView + }) + ctx.set(emojisSlash.key, { + + view: emojisPluginView + }) + ctx.get(listenerCtx) + .markdownUpdated((ctx, markdown, prevMarkdown) => { + const transformedMarkdown = markdown + .replace(/!\[(.*?)\]\(.*?\)/g, '$1') + .replace(/\[(.*?)\]\(.*?\)/g, '$1'); + hidden_input.value = transformedMarkdown; + console.log(hidden_input.value); + const inputEvent = new Event('input', { + bubbles: true, + }); + hidden_input.dispatchEvent(inputEvent); + }) + ctx.update(editorViewOptionsCtx, (prev) => ({ + ...prev, + attributes: { + placeholder: "Type your text here...", + class: 'editor prose prose-sm h-full p-2 focus:outline-none composer w-full max-w-full', + spellcheck: 'false' }, + })) + }) + // .config(nord) + .use(commonmark) + .use(gfm) + .use(emoji) + .use(listener) + .use(mentionSlash) + .use(emojisSlash) + .use(clipboard) + .use(placeholder) + // .use(slash) + .create() + + + const trigger = document.querySelector('.emoji-button'); + + trigger.addEventListener('click', () => { + picker.toggle(); + }); + + const picker = createPopup({}, { + referenceElement: trigger, + triggerElement: trigger, + emojiSize: '1.75rem', + className: 'z-[99999999999999999999]', + }); + + + picker.addEventListener('emoji:select', event => { + console.log(event.emoji) + editor.action((ctx) => { + const view = ctx.get(editorViewCtx); + const { state } = view; + const { selection } = state; + view.dispatch( + view.state.tr + .insertText(event.emoji + ' ') + ); + view.focus() + }) + }); + + + const submit_btn = document.getElementById('submit_btn'); + const heading_btn = document.getElementById('heading_btn'); + const bold_btn = document.getElementById('bold_btn'); + const italic_btn = document.getElementById('italic_btn'); + + // const quote_btn = document.getElementById('quote_btn'); + // const strike_btn = document.getElementById('strike_btn'); + // const table_btn = document.getElementById('table_btn'); + _this.handleEvent("smart_input:reset", ({text}) => { + editor.action(replaceAll('')) + }) + + // submit_btn.addEventListener('click', (e) => { + // editor.action(replaceAll('')) + // }) + + _this.handleEvent("mention_suggestions", ({text}) => { + // replace the current text with the text from the event + editor.action(replaceAll('')) + if (text != null) { + editor.action((ctx) => { + const view = ctx.get(editorViewCtx); + view.dispatch( + view.state.tr + .insertText(text + ' ') + ); + view.focus() + }) + } + + + }) + + + + heading_btn.addEventListener('click', (e) => { + e.preventDefault(); + editor.action((ctx) => { + const commandManager = ctx.get(commandsCtx); + const view = ctx.get(editorViewCtx); + commandManager.call(wrapInHeadingCommand.key, 3); + view.focus() + }); + }) + + bold_btn.addEventListener('click', (e) => { + e.preventDefault(); + editor.action((ctx) => { + const commandManager = ctx.get(commandsCtx); + const view = ctx.get(editorViewCtx); + commandManager.call(toggleStrongCommand.key); + view.focus() + }); + }) + + italic_btn.addEventListener('click', (e) => { + e.preventDefault(); + editor.action((ctx) => { + const commandManager = ctx.get(commandsCtx); + const view = ctx.get(editorViewCtx); + commandManager.call(toggleEmphasisCommand.key); + view.focus() + }); + }) + + // quote_btn.addEventListener('click', (e) => { + // e.preventDefault(); + // editor.action((ctx) => { + // const commandManager = ctx.get(commandsCtx); + // const view = ctx.get(editorViewCtx); + // commandManager.call(wrapInBlockquoteCommand.key); + // view.focus() + // }); + // }) + + // strike_btn.addEventListener('click', (e) => { + // e.preventDefault(); + // editor.action((ctx) => { + // const commandManager = ctx.get(commandsCtx); + // const view = ctx.get(editorViewCtx); + // commandManager.call(toggleStrikethroughCommand.key); + // view.focus() + // }); + // }) + + // table_btn.addEventListener('click', (e) => { + // e.preventDefault(); + // editor.action((ctx) => { + // const commandManager = ctx.get(commandsCtx); + // const view = ctx.get(editorViewCtx); + // commandManager.call(insertTableCommand.key); + // view.focus() + // }); + // }) + + + + + composer$.addEventListener('click', (e) => { + if (e.target.matches('.emoji_btn')) { + e.preventDefault(); + const emoji = e.target.dataset.emoji; + const text = e.target.dataset.text + editor.action((ctx) => { + const view = ctx.get(editorViewCtx); + const { state } = view; + const { selection } = state; + view.dispatch( + view.state.tr + .delete(selection.from - text.length - 1, selection.from) + .insertText(emoji + ' ') + ); + view.focus() + }) + } + + if (e.target.matches('.mention_btn')) { + e.preventDefault(); + const mention = e.target.dataset.mention; + const text = e.target.dataset.text + editor.action((ctx) => { + const view = ctx.get(editorViewCtx); + const { state } = view; + const { selection } = state; + + // Calculate the start position for deletion + const startPos = selection.from - text.length -1; + + view.dispatch( + view.state.tr + .delete(startPos, selection.from) + .insertText(`${mention} ` + `\u200B ` ) // add a space character after the mention variable + ); + view.focus() + }) + } + }) + + return editor; +} + +export default { + mounted() { + const hidden_input = document.getElementById('editor_hidden_input'); + const composer$ = this.el.querySelector('#editor') + createEditor(this, hidden_input, composer$) + } +} + diff --git a/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ChangeLocaleLive.hooks.js b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ChangeLocaleLive.hooks.js new file mode 100644 index 00000000000..c0adbe5971f --- /dev/null +++ b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ChangeLocaleLive.hooks.js @@ -0,0 +1,18 @@ +/* +This file was generated by the Surface compiler. +*/ + +function date_future(days) { + let date = new Date() + // Set expiry to X days + date.setDate(date.getDate() + days) + return date.toGMTString() +} + +export default { + destroyed() { + console.log(this.el.value) + document.cookie = `locale=${this.el.value}; path=/; expires=${date_future(90)}` + // Cookie.set("locale", this.el.value) + } +} diff --git a/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ChangeThemesLive.hooks.js b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ChangeThemesLive.hooks.js new file mode 100644 index 00000000000..648caef9060 --- /dev/null +++ b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ChangeThemesLive.hooks.js @@ -0,0 +1,85 @@ +/* +This file was generated by the Surface compiler. +*/ + + +// import { themeChange } from "theme-change" +import 'vanilla-colorful/hex-color-picker.js'; +import 'vanilla-colorful/hex-input.js'; + +// run to load previously chosen theme when first loading any page (note: not need if using data-theme param on HTML wrapper instead) +// themeChange() + +// let Themeable = { + +// mounted() { +// // run on a view/component with theme-changing controls (wrapper should have phx-hook="Themeable") +// themeChange(false) +// }, + +// } + +let ColourPicker = { + + mounted() { + const id = this.el.id; + const picker = this.el.querySelector('hex-color-picker'); + const input = this.el.querySelector('hex-input'); + const preview = this.el.querySelector('.colour_preview'); + const scope = this.el.dataset.scope; + var count = 0; + var debounceCount = 0; + var debounce; + + let value = input.color.replace("#", "") + picker.color = value; + // this.el.style.backgroundColor = "#" + value; + + + const maybe_set = function(hook) { + console.log("maybe_set") + // Alpine.debounce(() => this.set(), 500) + // Alpine.throttle(() => this.set(), 500) + + // Update the count by 1 + count++; + + // Clear any existing debounce event + clearTimeout(debounce); + + // Update and log the counts after 3 seconds + debounce = setTimeout(function() { + + // Update the debounceCount + debounceCount++; + + // do the thing + console.log("set") + hook.pushEvent("Bonfire.Common.Settings:put", { keys: "ui:theme:custom:" + id, values: value, scope: scope }) + + }, 1000); + + } + + picker.addEventListener('color-changed', (event) => { + value = event.detail.value; + console.log(value) + preview.style.backgroundColor = value; + console.log(preview) + input.color = value; + maybe_set(this) + }); + + input.addEventListener('color-changed', (event) => { + value = event.detail.value; + picker.color = value; + preview.style.backgroundColor = value; + maybe_set(this) + }); + + + }, + +} + +export { ColourPicker } diff --git a/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ComposerLive.hooks.js b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ComposerLive.hooks.js new file mode 100644 index 00000000000..ff7d215eece --- /dev/null +++ b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ComposerLive.hooks.js @@ -0,0 +1,221 @@ +/* +This file was generated by the Surface compiler. +*/ + +import insertText from 'insert-text-at-cursor'; +import getCaretCoordinates from 'textarea-caret'; +// import { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock'; + + +const mentionItemRenderer = (item, text) => { + return ` +
  • + +
  • ` +} + +const topicItemRenderer = (item) => { + return ` +
  • + +
  • ` +} + + +function getFeedItems(queryText, prefix) { + // console.log(prefix) + if (queryText && queryText.length > 0) { + return new Promise((resolve) => { + // this requires the bonfire_tag extension + fetch("/api/tag/autocomplete/ck5/" + prefix + "/" + queryText) + .then((response) => response.json()) + .then((data) => { + let values = data.map((item) => ({ + id: item.id, + value: item.name, + // link: item.link, + icon: item.icon + })); + resolve(values); + }) + .catch((error) => { + console.error("There has been a problem with the tag search:", error); + resolve([]); + }); + }); + } else return []; +} + + +export default { + + mounted() { + const MIN_PREFIX_LENGTH = 2 + // Technically mastodon accounts allow dots, but it would be weird to do an autosuggest search if it ends with a dot. + // Also this is rare. https://github.com/tootsuite/mastodon/pull/6844 + const VALID_CHARS = '[\\w\\+_\\-:]' + const MENTION_PREFIX = '(?:@)' + // const HASH_PREFIX = '(?:#)' + const TOPIC_PREFIX = '(?:\\+)' + const MENTION_REGEX = new RegExp(`(?:\\s|^)(${MENTION_PREFIX}${VALID_CHARS}{${MIN_PREFIX_LENGTH},})$`) + const TOPIC_REGEX = new RegExp(`(?:\\s|^)(${TOPIC_PREFIX}${VALID_CHARS}{${MIN_PREFIX_LENGTH},})$`) + + const textarea = this.el.querySelector("textarea") + // console.log(textarea) + const suggestions_menu = this.el.querySelector(".menu") + const container = document.querySelector("#smart_input"); + + + setFileInput = function(data, input, name, defaultType = "image/jpeg") { + // console.log(data) + var split = data.toString().split(";base64,"); + var type = data.type || defaultType; + var ext = type.split("/")[1]; + // console.log(split) + file = new File([split[1] || data], name + "." + ext, { + type: type, + }); + console.log(file); + let container = new DataTransfer(); + container.items.add(file); + input.files = container.files; + var event = document.createEvent("HTMLEvents"); // bubble up to LV + event.initEvent("input", true, true); + input.dispatchEvent(event); + } + + // Detect if the user is holding shift and the key is enter + textarea.addEventListener("keydown", (e) => { + if (e.key === "Enter" && e.shiftKey) { + // Prevent the default behavior + e.preventDefault(); + return; + } + }) + + // Add a listener to the textarea to detect when the user paste an image + textarea.addEventListener("paste", (e) => { + // Get the clipboard data + const clipboardData = e.clipboardData || window.clipboardData; + // Get the image from the clipboard + const image = clipboardData.items[0].getAsFile(); + const input = container.querySelector("input[type=file]"); + // If the image is not null + if (image) { + setFileInput(image, input, "image") + } + }) + + // Add a listener to the textarea to detect when the user drag and drop an image + // textarea.addEventListener("drop", (e) => { + // // Get the image from the clipboard + // const image = e.dataTransfer.files[0]; + // const input = container.querySelector("input[type=file]"); + // // If the image is not null + // if (image) { + // setFileInput(image, input, "image") + // } + // }) + + suggestions_menu.addEventListener("click", (e) => { + // get the data-id attribute from the button child element + const id = e.target.closest('button').dataset.id + const inputText = e.target.closest('button').dataset.input + + // Remove the previous text from the current cursor position untill a space is found + const text = textarea.value + const pos = textarea.selectionStart + const before = text.substring(0, pos) + const beforeSpace = before.lastIndexOf(' ') + const beforeText = before.substring(0, beforeSpace) + textarea.value = beforeText + ' ' + // Insert the id of the selected user + + + insertText(textarea, id + " ") + textarea.focus() + }) + + textarea.addEventListener("input", (e) => { + + // Get the input text from the textarea + const inputText = textarea.value; + // console.log(inputText) + + // Get the mentions from the input text, only if the character is followed by a word character and not an empty space + const mentions = inputText.match(MENTION_REGEX) + const topics = inputText.match(TOPIC_REGEX) + + let list = '' + const menu = this.el.querySelector('.menu') + if (mentions) { + const text = mentions[0].split('@').pop() + getFeedItems(text, '@').then(res => { + // if suggestions is greater than 0 append below textarea a menu with the suggestions + if (res.length > 0) { + menu.classList.remove("hidden", false) + + var caret = getCaretCoordinates(textarea, textarea.selectionEnd); + menu.style.top = caret.top + caret.height + 'px' + menu.style.left = caret.left + 'px' + + let counter = 0; + res.some((item) => { + if (counter >= 4) { + return true; // Stops the iteration + } + + list += topicItemRenderer(item); + counter++; + }); + + // let maxItems = 4 + // for (let i = 0; i < res.length && i < maxItems; i++) { + // list += topicItemRenderer(res[i]); + // } + // res.forEach((item) => { + // list += mentionItemRenderer(item, text) + // }) + } else { + menu.classList.add("hidden", false) + list += ` ` + } + menu.innerHTML = list + }) + + } else if (topics) { + // console.log(topics) + const text = topics[0].split('+').pop() + getFeedItems(text, '+').then(res => { + // if suggestions is greater than 0 append below textarea a menu with the suggestions + if (res.length > 0) { + console.log(res.length) + menu.classList.remove("hidden", false) + var caret = getCaretCoordinates(textarea, textarea.selectionEnd); + menu.style.top = caret.top + caret.height + 'px' + menu.style.left = caret.left + 'px' + let maxItems = 4 + for (let i = 0; i < res.length && i < maxItems; i++) { + list += topicItemRenderer(res[i]); + } + } else { + list += ` ` + } + menu.innerHTML = list + }) + + } else { + // no suggestions + list += ` ` + menu.innerHTML = list + menu.classList.add("hidden", false) + } + }) + } +} diff --git a/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.LoadMoreLive.hooks.js b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.LoadMoreLive.hooks.js new file mode 100644 index 00000000000..4e01e8f562f --- /dev/null +++ b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.LoadMoreLive.hooks.js @@ -0,0 +1,85 @@ +/* +This file was generated by the Surface compiler. +*/ + +let Ignore = { + mounted() { + // nothing + } +} +let LoadMore = { + + page() { return this.el.dataset.page; }, + getPhxValues(el) { + return el + .getAttributeNames() + .filter(name => name.startsWith("phx-value-")) + .reduce((obj, name) => ({ + ...obj, + [name.substring(10)]: el.getAttribute(name) + }), {}) + }, + loadMore(entries) { + const target = entries[0]; + // console.log(this.el.dataset.entryCount) + if (target.isIntersecting && this.pending == this.page()) { + let entryCount = this.el.dataset.entryCount + if (undefined == entryCount || entryCount == "0") { + let event = this.el.getAttribute("phx-scroll") + if (event) { + // add the disabled attribute to this.el + this.el.disabled = true + this.el.classList.add("btn-disabled") + this.el.getElementsByTagName("span")[0].innerHTML = "Loading more..."; + this.pending = this.page() + 1; + this.pushEventTo(this.el.getAttribute("phx-target"), event, this.getPhxValues(this.el)); + } else { + console.log("skip loading more because no phx-scroll event") + } + } else { + console.log("skip loading more because entryCount is: " + entryCount) + } + } + }, + mounted() { + this.pending = this.page(); + this.observer = new IntersectionObserver( + (entries) => this.loadMore(entries), + { + root: null, // window by default + rootMargin: "400px", + threshold: 0.1, + } + ); + this.observer.observe(this.el); + + this.el.addEventListener("click", e => { + let entryCount = this.el.dataset.entryCount + if (undefined != entryCount || entryCount != "0") { + let items = document.getElementsByClassName("infinite_scroll_hidden") + if (items.length != 0) { + for (let element of items) { + element.style.display = "block"; + } + e.preventDefault(); + } else { + console.log("no infinite_scroll_hidden") + } + this.el.getElementsByTagName("span")[0].innerHTML = "Load more"; + this.el.dataset.entryCount = 0; + + } else { + console.log("no entryCount") + } + + }); + }, + destroyed() { + this.observer.unobserve(this.el); + }, + updated() { + this.pending = this.page(); + }, +} + +export { LoadMore, Ignore } \ No newline at end of file diff --git a/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.NotificationLive.hooks.js b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.NotificationLive.hooks.js new file mode 100644 index 00000000000..7af4cbac2b3 --- /dev/null +++ b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.NotificationLive.hooks.js @@ -0,0 +1,43 @@ +/* +This file was generated by the Surface compiler. +*/ + + +export default { + mounted() { + if (Notification.permission === "default") { + this.pushEvent("Bonfire.UI.Common.Notifications:request") // ask the server to ask the client to ask the user for permission + console.debug("notification permission should be requested ") + } else { + console.debug("notification permission is already granted ") + } + this.handleEvent("notify", ({ title, message, url, icon }) => sendNotification(title, message, url, icon)); + } +} + +function sendNotification(title, message, url, icon) { + console.debug("notification received: " + title) + // console.debug(title + message + icon) + console.debug("notification permission: " + Notification.permission) + if (Notification.permission === "granted") { + try { + n = new Notification(title, { + body: message, + icon: icon, + requireInteraction: false + }); + console.debug("notification attempted...") + // Hide the notification after 5 seconds + setTimeout(n.close.bind(n), 2000); + if (url && url != "") { + n.onclick = function() { + window.location.href = url; + }; + } + } catch (e) { + console.debug("notification error: " + e) + } + } else { + Notification.requestPermission(); + } +} diff --git a/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.PreviewContentLive.hooks.js b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.PreviewContentLive.hooks.js new file mode 100644 index 00000000000..faccbee3feb --- /dev/null +++ b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.PreviewContentLive.hooks.js @@ -0,0 +1,178 @@ +/* +This file was generated by the Surface compiler. +*/ + + +let PreviewActivity = { + isTruncated(element) { + if (element && (element.offsetHeight < element.scrollHeight || + element.offsetWidth < element.scrollWidth)) { + console.log("element has an overflow, ie. truncated with CSS line-clamp") + return true + } else { + console.log("element is not truncated") + return false + } + }, + mounted() { + this.el.addEventListener("click", e => { + console.log("PreviewActivity clicked") + let trigger = this.el.querySelector('.open_preview_link') + let anchor = e.target.closest('a') + console.log(e.target) + + // this was used to expand long posts by clicking on them, now replaced with a 'Read more' button + // let previewable_activity = e.target.closest('.previewable_activity') + // anchor == trigger || (!anchor && previewable_activity && ( previewable_activity.classList.contains('previewable_expanded') || this.isTruncated(previewable_activity.querySelector('.previewable_truncate')) == false) + + if ((trigger || !window.liveSocket) && ((!anchor || anchor.classList.contains('preview_activity_link')) && !e.ctrlKey && !e.metaKey && (!window.getSelection().toString() || window.getSelection().toString() == "") && !e.target.closest('button') && !e.target.closest('figure') && !e.target.closest('.dropdown') && !e.target.closest('[data-id=activity_actions]') + )) { + let uri = this.el.dataset.href || (trigger !== undefined && trigger.getAttribute('href')) + if (window.liveSocket) { + // const feed = document.querySelector(".feed") + const main = document.getElementById("inner") + const layout = document.getElementById("root") + const preview_content = document.getElementById("preview_content") + let previous_scroll = null + + console.log("push event to load up the PreviewContent") + this.pushEventTo(trigger, "open", {}) + + // this.pushEvent("Bonfire.Social.Feeds:open_activity", { id: this.el.dataset.id, permalink: uri }) + + if (layout) { + previous_scroll = layout.scrollTop + } + + if (preview_content) { + preview_content.classList.remove("hidden") + } + if (main) { + main.classList.add("hidden") + } + if (uri) { + // console.log(uri) + + history.pushState( + { + 'previous_url': document.location.href, + 'previous_scroll': previous_scroll + }, + '', + uri) + } + + e.preventDefault(); + + } else { + + // fallback if not connected with live socket + + if (uri) { + console.log(uri) + window.location = uri; + e.preventDefault(); + } else { + console.log("No URL") + } + } + + } else { + + // e.preventDefault(); + + console.log("PreviewActivity: do not trigger preview in favour of another link or button's action (or opening in new tab)") + + console.log(trigger) + console.log(window.liveSocket) + console.log(anchor) + console.log(anchor.classList) + console.log(e.ctrlKey) + console.log(e.metaKey) + console.log(window.getSelection().toString()) + console.log(e.target.closest('button')) + console.log(e.target.closest('figure')) + console.log(e.target.closest('.dropdown')) + console.log(e.target.closest('[data-id=activity_actions]')) + + // if (previewable_activity) { previewable_activity.classList.add("previewable_expanded") } + + return; + + } + + + + + }) + } +} + + +// let Back = { +// mounted() { + +// if (window.history.length > 1) { +// // show the back icon svg +// this.el.classList.remove("hidden") + +// this.el.addEventListener("click", e => { +// console.log(window.history) +// e.preventDefault(); +// // window.history.back(); + +// }) +// } else { +// // se la cronologia del browser è vuota, non fare nulla +// } + +// } +// } + + +let ClosePreview = { + mounted() { + + const back = function () { + const layout = document.getElementById("root") + const main = document.getElementById("inner") + const preview_content = document.getElementById("preview_content") + if (preview_content) { + preview_content.classList.add("hidden") + } + if (history.state) { + location_before_preview = history.state["previous_url"] + previous_scroll = history.state["previous_scroll"] + main.classList.remove("hidden") + if (location_before_preview) { + history.pushState({}, '', location_before_preview) + } + if (previous_scroll) { + layout.scrollTo({ top: previous_scroll, behavior: 'instant' }) + // window.scrollTo(0, previous_scroll); + } + } + } + + // close button + this.el.addEventListener("click", e => { + console.log("click - attempt going back") + back() + }) + + // intercept browser "back" action + window.addEventListener("popstate", e => { + console.log("popstate - attempt going back via browser") + + // prevent the app from firing the event + e.preventDefault(); + console.log("qui") + + // this.pushEvent("Bonfire.UI.Common.OpenPreviewLive:close", {}) + back(); + }) + } + +} + +export { PreviewActivity, ClosePreview } diff --git a/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ViewCodeLive.hooks.js b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ViewCodeLive.hooks.js new file mode 100644 index 00000000000..ab27cccb387 --- /dev/null +++ b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Common.ViewCodeLive.hooks.js @@ -0,0 +1,44 @@ +/* +This file was generated by the Surface compiler. +*/ + + +function update_hash() { + let hash = location.hash + // clear existing highlighted lines + Array.from(document.getElementsByClassName("highlighted")).forEach(function (n, i) { n.classList.remove('highlighted') }) + + if (hash.startsWith("#L")) { + let id = hash.slice(1) + let line = document.getElementById(id) + if (line) { line.classList.add("highlighted"); } + } +} + +let loadHash = { + mounted() { + let loc = window.location; + let url = loc.protocol + '//' + loc.host + loc.pathname + '#L' + this.el.dataset.lineNumber; + history.pushState(history.state, document.title, url); + update_hash() + + window.onhashchange = function () { + update_hash() + } + + } +} + +let updateHash = { + mounted() { + this.el.addEventListener("click", e => { + let loc = window.location; + let url = loc.protocol + '//' + loc.host + loc.pathname + '#L' + this.el.dataset.lineNumber; + history.pushState(history.state, document.title, url); + update_hash() + e.preventDefault(); + }); + } +} + +export { loadHash, updateHash } diff --git a/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Social.Activity.DateAgoLive.hooks.js b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Social.Activity.DateAgoLive.hooks.js new file mode 100644 index 00000000000..77344904c85 --- /dev/null +++ b/flavours/open-science/config/flavour_assets/hooks/Bonfire.UI.Social.Activity.DateAgoLive.hooks.js @@ -0,0 +1,49 @@ +/* +This file was generated by the Surface compiler. +*/ + + +export default { + timeAgo(input) { + const locale = (navigator.languages && navigator.languages.length) ? navigator.languages[0] : navigator.language; // TODO: use app local instead of browser locale + const date = (input instanceof Date) ? input : new Date(input); + const formatter = new Intl.RelativeTimeFormat(locale); + const ranges = { + years: 3600 * 24 * 365, + months: 3600 * 24 * 30, + weeks: 3600 * 24 * 7, + days: 3600 * 24, + hours: 3600, + minutes: 60, + seconds: 1 + }; + const secondsElapsed = (date.getTime() - Date.now()) / 1000; + for (let key in ranges) { + if (ranges[key] < Math.abs(secondsElapsed)) { + const delta = secondsElapsed / ranges[key]; + return formatter.format(Math.round(delta), key); + } + } + }, + setTimeAgo(el, the_date) { + var date_ago = this.timeAgo(the_date) + // console.log(date_ago) + + if (date_ago) { + this.el.innerHTML = date_ago + + setTimeout(() => { + this.setTimeAgo(el, the_date) + }, 60_000); + } + }, + mounted() { + var the_date = this.el.getAttribute("data-date") + // console.log(the_date) + if (the_date) { + setTimeout(() => { + this.setTimeAgo(this.el, the_date) + }, 60_000); + } + } +} diff --git a/flavours/open-science/config/flavour_assets/hooks/index.js b/flavours/open-science/config/flavour_assets/hooks/index.js new file mode 100644 index 00000000000..ba7e8c1a47d --- /dev/null +++ b/flavours/open-science/config/flavour_assets/hooks/index.js @@ -0,0 +1,35 @@ +/* +This file was generated by the Surface compiler. +*/ + +function ns(hooks, nameSpace) { + const updatedHooks = {} + Object.keys(hooks).map(function(key) { + updatedHooks[`${nameSpace}#${key}`] = hooks[key] + }) + return updatedHooks +} + +import * as c1 from "./Bonfire.Editor.Milkdown.hooks" +import * as c2 from "./Bonfire.UI.Common.ViewCodeLive.hooks" +import * as c3 from "./Bonfire.UI.Common.PreviewContentLive.hooks" +import * as c4 from "./Bonfire.UI.Common.NotificationLive.hooks" +import * as c5 from "./Bonfire.UI.Common.LoadMoreLive.hooks" +import * as c6 from "./Bonfire.UI.Common.ChangeLocaleLive.hooks" +import * as c7 from "./Bonfire.UI.Common.ChangeThemesLive.hooks" +import * as c8 from "./Bonfire.UI.Common.ComposerLive.hooks" +import * as c9 from "./Bonfire.UI.Social.Activity.DateAgoLive.hooks" + +let hooks = Object.assign( + ns(c1, "Bonfire.Editor.Milkdown"), + ns(c2, "Bonfire.UI.Common.ViewCodeLive"), + ns(c3, "Bonfire.UI.Common.PreviewContentLive"), + ns(c4, "Bonfire.UI.Common.NotificationLive"), + ns(c5, "Bonfire.UI.Common.LoadMoreLive"), + ns(c6, "Bonfire.UI.Common.ChangeLocaleLive"), + ns(c7, "Bonfire.UI.Common.ChangeThemesLive"), + ns(c8, "Bonfire.UI.Common.ComposerLive"), + ns(c9, "Bonfire.UI.Social.Activity.DateAgoLive") +) + +export default hooks diff --git a/flavours/open-science/config/flavour_open_science.exs b/flavours/open-science/config/flavour_open_science.exs new file mode 100644 index 00000000000..ae8157f031e --- /dev/null +++ b/flavours/open-science/config/flavour_open_science.exs @@ -0,0 +1,10 @@ +import Config + +config :bonfire, :ui, + theme: [ + instance_name: "Open Science Network", + instance_icon: "/images/bonfire-icon.png", + # instance_image: "https://openscience.network/assets/icon.png", + instance_description: + "A network of scientists, researchers and developers building the next generation of open science digital spaces." + ] diff --git a/flavours/haha/config/hooks.js b/flavours/open-science/config/hooks.js similarity index 100% rename from flavours/haha/config/hooks.js rename to flavours/open-science/config/hooks.js diff --git a/flavours/haha/repo/migrations/.formatter.exs b/flavours/open-science/repo/migrations/.formatter.exs similarity index 100% rename from flavours/haha/repo/migrations/.formatter.exs rename to flavours/open-science/repo/migrations/.formatter.exs diff --git a/flavours/haha/repo/migrations/20200523081010_citext.exs b/flavours/open-science/repo/migrations/20200523081010_citext.exs similarity index 100% rename from flavours/haha/repo/migrations/20200523081010_citext.exs rename to flavours/open-science/repo/migrations/20200523081010_citext.exs diff --git a/flavours/open-science/repo/migrations/20200523081012_init_pointers.exs b/flavours/open-science/repo/migrations/20200523081012_init_pointers.exs new file mode 100644 index 00000000000..f8a3b3ba1e2 --- /dev/null +++ b/flavours/open-science/repo/migrations/20200523081012_init_pointers.exs @@ -0,0 +1,16 @@ +defmodule Bonfire.Repo.Migrations.InitPointers do + @moduledoc false + use Ecto.Migration + import Needle.Migration + import Needle.ULID.Migration + + def up(), do: init(:up) + def down(), do: init(:down) + + defp init(dir) do + # this one is optional but recommended + init_pointers_ulid_extra(dir) + # this one is not optional + init_pointers(dir) + end +end diff --git a/flavours/haha/repo/migrations/20200523081014_init_edges.exs b/flavours/open-science/repo/migrations/20200523081014_init_edges.exs similarity index 100% rename from flavours/haha/repo/migrations/20200523081014_init_edges.exs rename to flavours/open-science/repo/migrations/20200523081014_init_edges.exs diff --git a/flavours/haha/repo/migrations/20200805090401_create_ap_tables.exs b/flavours/open-science/repo/migrations/20200805090401_create_ap_tables.exs similarity index 100% rename from flavours/haha/repo/migrations/20200805090401_create_ap_tables.exs rename to flavours/open-science/repo/migrations/20200805090401_create_ap_tables.exs diff --git a/flavours/haha/repo/migrations/20200817072952_create_oban_tables.exs b/flavours/open-science/repo/migrations/20200817072952_create_oban_tables.exs similarity index 100% rename from flavours/haha/repo/migrations/20200817072952_create_oban_tables.exs rename to flavours/open-science/repo/migrations/20200817072952_create_oban_tables.exs diff --git a/flavours/reflow/repo/migrations/20200818094943_import_ap.exs b/flavours/open-science/repo/migrations/20200818094943_import_ap.exs similarity index 75% rename from flavours/reflow/repo/migrations/20200818094943_import_ap.exs rename to flavours/open-science/repo/migrations/20200818094943_import_ap.exs index c4284dbd6a7..2103a31c947 100644 --- a/flavours/reflow/repo/migrations/20200818094943_import_ap.exs +++ b/flavours/open-science/repo/migrations/20200818094943_import_ap.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportMe do +defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportAP do @moduledoc false use Ecto.Migration diff --git a/flavours/haha/repo/migrations/20200820094941_import_boundaries.exs b/flavours/open-science/repo/migrations/20200820094941_import_boundaries.exs similarity index 100% rename from flavours/haha/repo/migrations/20200820094941_import_boundaries.exs rename to flavours/open-science/repo/migrations/20200820094941_import_boundaries.exs diff --git a/flavours/haha/repo/migrations/20200828094943_add_files.exs b/flavours/open-science/repo/migrations/20200828094943_add_files.exs similarity index 100% rename from flavours/haha/repo/migrations/20200828094943_add_files.exs rename to flavours/open-science/repo/migrations/20200828094943_add_files.exs diff --git a/flavours/haha/repo/migrations/20200828094944_import_me.exs b/flavours/open-science/repo/migrations/20200828094944_import_me.exs similarity index 100% rename from flavours/haha/repo/migrations/20200828094944_import_me.exs rename to flavours/open-science/repo/migrations/20200828094944_import_me.exs diff --git a/flavours/haha/repo/migrations/20200828094945_import_social.exs b/flavours/open-science/repo/migrations/20200828094945_import_social.exs similarity index 100% rename from flavours/haha/repo/migrations/20200828094945_import_social.exs rename to flavours/open-science/repo/migrations/20200828094945_import_social.exs diff --git a/flavours/haha/repo/migrations/20200924084501_tag.exs b/flavours/open-science/repo/migrations/20200924084501_tag.exs similarity index 100% rename from flavours/haha/repo/migrations/20200924084501_tag.exs rename to flavours/open-science/repo/migrations/20200924084501_tag.exs diff --git a/flavours/cooperation/repo/migrations/20210925094942_import_classify.exs b/flavours/open-science/repo/migrations/20201205094943_import_classify.exs similarity index 100% rename from flavours/cooperation/repo/migrations/20210925094942_import_classify.exs rename to flavours/open-science/repo/migrations/20201205094943_import_classify.exs diff --git a/flavours/reflow/repo/migrations/20210102094944_import_shared_user.exs b/flavours/open-science/repo/migrations/20210102094944_import_shared_user.exs similarity index 77% rename from flavours/reflow/repo/migrations/20210102094944_import_shared_user.exs rename to flavours/open-science/repo/migrations/20210102094944_import_shared_user.exs index 83b478f8754..de8c80b323e 100644 --- a/flavours/reflow/repo/migrations/20210102094944_import_shared_user.exs +++ b/flavours/open-science/repo/migrations/20210102094944_import_shared_user.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Repo.Migrations.ImportSharedUser do +defmodule Bonfire.Data.SharedUser.ImportSharedUser do @moduledoc false use Ecto.Migration diff --git a/flavours/open-science/repo/migrations/20210128094942_posts.exs b/flavours/open-science/repo/migrations/20210128094942_posts.exs new file mode 100644 index 00000000000..78de493cbb6 --- /dev/null +++ b/flavours/open-science/repo/migrations/20210128094942_posts.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Posts.Repo.Migrations.Import do + @moduledoc false + use Ecto.Migration + + import Bonfire.Posts.Migrations + + def change, do: migrate_posts() +end diff --git a/flavours/open-science/repo/migrations/20210128094943_messages.exs b/flavours/open-science/repo/migrations/20210128094943_messages.exs new file mode 100644 index 00000000000..6a02b7de798 --- /dev/null +++ b/flavours/open-science/repo/migrations/20210128094943_messages.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Messages.Repo.MessagesMigrations do + @moduledoc false + use Ecto.Migration + + import Bonfire.Messages.Migrations + + def change, do: migrate_messages() +end diff --git a/flavours/open-science/repo/migrations/20210128094944_social_graph.exs b/flavours/open-science/repo/migrations/20210128094944_social_graph.exs new file mode 100644 index 00000000000..1a77ca5605d --- /dev/null +++ b/flavours/open-science/repo/migrations/20210128094944_social_graph.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Social.Graph.Repo.Migrations.Import do + @moduledoc false + use Ecto.Migration + + import Bonfire.Social.Graph.Migrations + + def change, do: migrate_social_graph() +end diff --git a/flavours/haha/repo/migrations/20210402105128_ap_test_table.exs b/flavours/open-science/repo/migrations/20210402105128_ap_test_table.exs similarity index 100% rename from flavours/haha/repo/migrations/20210402105128_ap_test_table.exs rename to flavours/open-science/repo/migrations/20210402105128_ap_test_table.exs diff --git a/flavours/haha/repo/migrations/20210410094945_profile_images.exs b/flavours/open-science/repo/migrations/20210410094945_profile_images.exs similarity index 90% rename from flavours/haha/repo/migrations/20210410094945_profile_images.exs rename to flavours/open-science/repo/migrations/20210410094945_profile_images.exs index a1ebc337f32..c6983de27e1 100644 --- a/flavours/haha/repo/migrations/20210410094945_profile_images.exs +++ b/flavours/open-science/repo/migrations/20210410094945_profile_images.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Social.Repo.Migrations.ProfileImages do +defmodule Bonfire.UI.Me.Repo.Migrations.ProfileImages do @moduledoc false use Ecto.Migration diff --git a/flavours/reflow/repo/migrations/20210412094946_fp.exs b/flavours/open-science/repo/migrations/20210412094946_fp.exs similarity index 95% rename from flavours/reflow/repo/migrations/20210412094946_fp.exs rename to flavours/open-science/repo/migrations/20210412094946_fp.exs index 43d75e0c93a..fba94a6e44c 100644 --- a/flavours/reflow/repo/migrations/20210412094946_fp.exs +++ b/flavours/open-science/repo/migrations/20210412094946_fp.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Repo.Migrations.FP do +defmodule Bonfire.Social.Repo.Migrations.FeedPublish do @moduledoc false use Ecto.Migration diff --git a/flavours/haha/repo/migrations/20210618094945_peered_uri.exs b/flavours/open-science/repo/migrations/20210618094945_peered_uri.exs similarity index 78% rename from flavours/haha/repo/migrations/20210618094945_peered_uri.exs rename to flavours/open-science/repo/migrations/20210618094945_peered_uri.exs index a965ea0075f..7b784c1d532 100644 --- a/flavours/haha/repo/migrations/20210618094945_peered_uri.exs +++ b/flavours/open-science/repo/migrations/20210618094945_peered_uri.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Social.Repo.Migrations.PeeredURI do +defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.PeeredURI do @moduledoc false use Ecto.Migration diff --git a/flavours/haha/repo/migrations/20210923093415_import_ap_activity.exs b/flavours/open-science/repo/migrations/20210923093415_import_ap_activity.exs similarity index 100% rename from flavours/haha/repo/migrations/20210923093415_import_ap_activity.exs rename to flavours/open-science/repo/migrations/20210923093415_import_ap_activity.exs diff --git a/flavours/haha/repo/migrations/20220208094942_import_invite_link.exs b/flavours/open-science/repo/migrations/20220208094942_import_invite_link.exs similarity index 100% rename from flavours/haha/repo/migrations/20220208094942_import_invite_link.exs rename to flavours/open-science/repo/migrations/20220208094942_import_invite_link.exs diff --git a/flavours/haha/repo/migrations/20220304081300_care_closure.exs b/flavours/open-science/repo/migrations/20220304081300_care_closure.exs similarity index 100% rename from flavours/haha/repo/migrations/20220304081300_care_closure.exs rename to flavours/open-science/repo/migrations/20220304081300_care_closure.exs diff --git a/flavours/haha/repo/migrations/20220408094940_settings.exs b/flavours/open-science/repo/migrations/20220408094940_settings.exs similarity index 100% rename from flavours/haha/repo/migrations/20220408094940_settings.exs rename to flavours/open-science/repo/migrations/20220408094940_settings.exs diff --git a/flavours/haha/repo/migrations/20220428094200_add_files_mixin.exs b/flavours/open-science/repo/migrations/20220428094200_add_files_mixin.exs similarity index 100% rename from flavours/haha/repo/migrations/20220428094200_add_files_mixin.exs rename to flavours/open-science/repo/migrations/20220428094200_add_files_mixin.exs diff --git a/flavours/open-science/repo/migrations/20230202105128_add_object_boolean.exs b/flavours/open-science/repo/migrations/20230202105128_add_object_boolean.exs new file mode 100644 index 00000000000..3387b5b4d14 --- /dev/null +++ b/flavours/open-science/repo/migrations/20230202105128_add_object_boolean.exs @@ -0,0 +1,12 @@ +defmodule ActivityPub.Repo.Migrations.AddObjectBoolean do + @moduledoc false + use Ecto.Migration + + def up do + ActivityPub.Migrations.add_object_boolean() + end + + def down do + ActivityPub.Migrations.drop_object_boolean() + end +end diff --git a/flavours/open-science/repo/migrations/20230304094943_add_type.exs b/flavours/open-science/repo/migrations/20230304094943_add_type.exs new file mode 100644 index 00000000000..3484754d94a --- /dev/null +++ b/flavours/open-science/repo/migrations/20230304094943_add_type.exs @@ -0,0 +1,12 @@ +defmodule Bonfire.Repo.Migrations.ClassifyAddType do + @moduledoc false + use Ecto.Migration + + def up do + Bonfire.Classify.Migrations.add_type() + end + + def down do + # TODO + end +end diff --git a/flavours/open-science/repo/migrations/20230304100100_add_tree.exs b/flavours/open-science/repo/migrations/20230304100100_add_tree.exs new file mode 100644 index 00000000000..a6f950324f4 --- /dev/null +++ b/flavours/open-science/repo/migrations/20230304100100_add_tree.exs @@ -0,0 +1,15 @@ +defmodule Bonfire.Repo.Migrations.ClassifyAddTree do + @moduledoc false + use Ecto.Migration + require Bonfire.Classify.Tree.Migration + + def up do + Bonfire.Classify.Tree.Migration.migrate_tree() + Bonfire.Classify.Tree.Migration.migrate_functions() + end + + def down do + Bonfire.Classify.Tree.Migration.migrate_functions() + Bonfire.Classify.Tree.Migration.migrate_tree() + end +end diff --git a/flavours/open-science/repo/migrations/20230625152257_papertrail_versions.exs b/flavours/open-science/repo/migrations/20230625152257_papertrail_versions.exs new file mode 100644 index 00000000000..df4801d6f87 --- /dev/null +++ b/flavours/open-science/repo/migrations/20230625152257_papertrail_versions.exs @@ -0,0 +1,7 @@ +defmodule Bonfire.Social.Repo.Migrations.AddVersions do + use Ecto.Migration + + def change do + Bonfire.Social.Migrations.add_paper_trail() + end +end diff --git a/flavours/open-science/repo/migrations/20230703084501_alias.exs b/flavours/open-science/repo/migrations/20230703084501_alias.exs new file mode 100644 index 00000000000..da5d1712ca3 --- /dev/null +++ b/flavours/open-science/repo/migrations/20230703084501_alias.exs @@ -0,0 +1,13 @@ +defmodule Bonfire.Repo.Migrations.Alias do + @moduledoc false + use Ecto.Migration + require Bonfire.Data.Identity.Alias.Migration + + def up do + Bonfire.Data.Identity.Alias.Migration.migrate_alias() + end + + def down do + Bonfire.Data.Identity.Alias.Migration.migrate_alias() + end +end diff --git a/flavours/open-science/repo/migrations/20230731004945_add_array_reverse_fn.exs b/flavours/open-science/repo/migrations/20230731004945_add_array_reverse_fn.exs new file mode 100644 index 00000000000..3848288fee0 --- /dev/null +++ b/flavours/open-science/repo/migrations/20230731004945_add_array_reverse_fn.exs @@ -0,0 +1,7 @@ +defmodule Bonfire.Social.Repo.Migrations.ArrayFn do + @moduledoc false + use Ecto.Migration + + def up, do: Bonfire.Social.Migrations.add_array_reverse_fn() + def down, do: nil +end diff --git a/flavours/open-science/repo/migrations/20230822004944_replied_generated_total.exs b/flavours/open-science/repo/migrations/20230822004944_replied_generated_total.exs new file mode 100644 index 00000000000..2a6689e7ae9 --- /dev/null +++ b/flavours/open-science/repo/migrations/20230822004944_replied_generated_total.exs @@ -0,0 +1,7 @@ +defmodule Bonfire.Social.Repo.Migrations.RepliedTotal do + @moduledoc false + use Ecto.Migration + + def up, do: Bonfire.Data.Social.Replied.Migration.add_generated_total_column() + def down, do: nil +end diff --git a/flavours/open-science/repo/migrations/20230828094945_instance_admin_user.exs b/flavours/open-science/repo/migrations/20230828094945_instance_admin_user.exs new file mode 100644 index 00000000000..35b69c25155 --- /dev/null +++ b/flavours/open-science/repo/migrations/20230828094945_instance_admin_user.exs @@ -0,0 +1,14 @@ +defmodule Bonfire.Social.Repo.Migrations.InstanceAdminUser do + @moduledoc false + use Ecto.Migration + + import Needle.Migration + + def up do + alter table("bonfire_data_access_control_instance_admin") do + Ecto.Migration.add_if_not_exists(:user_id, weak_pointer(Needle.Pointer)) + end + end + + def down, do: nil +end diff --git a/flavours/open-science/repo/migrations/20230829084501_sensitive.exs b/flavours/open-science/repo/migrations/20230829084501_sensitive.exs new file mode 100644 index 00000000000..17f30c44539 --- /dev/null +++ b/flavours/open-science/repo/migrations/20230829084501_sensitive.exs @@ -0,0 +1,13 @@ +defmodule Bonfire.Repo.Migrations.Sensitive do + @moduledoc false + use Ecto.Migration + require Bonfire.Data.Social.Sensitive.Migration + + def up do + Bonfire.Data.Social.Sensitive.Migration.migrate_sensitive() + end + + def down do + Bonfire.Data.Social.Sensitive.Migration.migrate_sensitive() + end +end diff --git a/flavours/community/repo/migrations/20231207004944_boundaries_fixtures.exs b/flavours/open-science/repo/migrations/20231019004944_boundaries_fixtures.exs similarity index 100% rename from flavours/community/repo/migrations/20231207004944_boundaries_fixtures.exs rename to flavours/open-science/repo/migrations/20231019004944_boundaries_fixtures.exs diff --git a/flavours/community/repo/migrations/20231207004947_boundaries_users_fixtures.exs b/flavours/open-science/repo/migrations/20231119004947_boundaries_users_fixtures.exs similarity index 100% rename from flavours/community/repo/migrations/20231207004947_boundaries_users_fixtures.exs rename to flavours/open-science/repo/migrations/20231119004947_boundaries_users_fixtures.exs diff --git a/flavours/open-science/repo/migrations/20231201094945_files_refactor.exs b/flavours/open-science/repo/migrations/20231201094945_files_refactor.exs new file mode 100644 index 00000000000..05cb4f416a9 --- /dev/null +++ b/flavours/open-science/repo/migrations/20231201094945_files_refactor.exs @@ -0,0 +1,14 @@ +defmodule Bonfire.Files.Repo.Migrations.FilesRefactor do + @moduledoc false + use Ecto.Migration + + import Needle.Migration + + def up do + alter table("bonfire_files_media") do + Ecto.Migration.add_if_not_exists(:file, :jsonb) + end + end + + def down, do: nil +end diff --git a/flavours/haha/repo/migrations/20231208134330_oban12.exs b/flavours/open-science/repo/migrations/20231208134330_oban12.exs similarity index 100% rename from flavours/haha/repo/migrations/20231208134330_oban12.exs rename to flavours/open-science/repo/migrations/20231208134330_oban12.exs diff --git a/flavours/open-science/repo/migrations/20231212094945_settings_json.exs b/flavours/open-science/repo/migrations/20231212094945_settings_json.exs new file mode 100644 index 00000000000..90b6972c2d4 --- /dev/null +++ b/flavours/open-science/repo/migrations/20231212094945_settings_json.exs @@ -0,0 +1,14 @@ +defmodule Bonfire.Data.Identity.Repo.Migrations.SettingsJson do + @moduledoc false + use Ecto.Migration + + import Needle.Migration + + def up do + alter table("bonfire_data_identity_settings") do + Ecto.Migration.add_if_not_exists(:json, :jsonb) + end + end + + def down, do: nil +end diff --git a/flavours/haha/repo/migrations/20220509084501_hashtag.exs b/flavours/open-science/repo/migrations/20240109084501_hashtag.exs similarity index 100% rename from flavours/haha/repo/migrations/20220509084501_hashtag.exs rename to flavours/open-science/repo/migrations/20240109084501_hashtag.exs diff --git a/flavours/open-science/repo/migrations/20240110094945_gin_indexes.exs b/flavours/open-science/repo/migrations/20240110094945_gin_indexes.exs new file mode 100644 index 00000000000..c94f6a3ca58 --- /dev/null +++ b/flavours/open-science/repo/migrations/20240110094945_gin_indexes.exs @@ -0,0 +1,48 @@ +defmodule Bonfire.Search.Repo.Migrations.GinIndexes do + use Ecto.Migration + + @disable_ddl_transaction true + @disable_migration_lock true + # ^ Needed to migrate indexes concurrently. + # Disabling DDL transactions removes the guarantee that all of the changes in the migration will happen at once. + # Disabling the migration lock removes the guarantee only a single node will run a given migration if multiple nodes are attempting to migrate at the same time. + + def up do + execute "CREATE EXTENSION IF NOT EXISTS pg_trgm;" + + create_index("bonfire_data_social_named", "name") + create_index("bonfire_data_identity_character", "username") + + # create_index("bonfire_data_social_profile", "name") + create_index_fields( + "bonfire_data_social_profile", + "name gin_trgm_ops, summary gin_trgm_ops" + ) + + create_index_fields( + "bonfire_data_social_post_content", + # "name gin_trgm_ops, summary gin_trgm_ops, html_body gin_trgm_ops" + "name gin_trgm_ops, summary gin_trgm_ops" + ) + end + + def down do + # TODO + end + + def create_index(table, field) do + create_index_fields(table, "#{field} gin_trgm_ops") + end + + def create_index_fields(table, fields) do + execute """ + DROP INDEX IF EXISTS #{table}_gin_index; + """ + + execute """ + CREATE INDEX CONCURRENTLY #{table}_gin_index + ON #{table} + USING gin (#{fields}); + """ + end +end diff --git a/flavours/open-science/repo/migrations/20240121084501_label.exs b/flavours/open-science/repo/migrations/20240121084501_label.exs new file mode 100644 index 00000000000..78d9cf189f5 --- /dev/null +++ b/flavours/open-science/repo/migrations/20240121084501_label.exs @@ -0,0 +1,13 @@ +defmodule Bonfire.Repo.Migrations.Label do + @moduledoc false + use Ecto.Migration + require Bonfire.Label.Migration + + def up do + Bonfire.Label.Migration.migrate_label() + end + + def down do + Bonfire.Label.Migration.migrate_label() + end +end diff --git a/flavours/haha/repo/seeds.disabled/20210925131234_taxonomy_seeder_create_categories.exs b/flavours/open-science/repo/seeds.disabled/20210925131234_taxonomy_seeder_create_categories.exs similarity index 100% rename from flavours/haha/repo/seeds.disabled/20210925131234_taxonomy_seeder_create_categories.exs rename to flavours/open-science/repo/seeds.disabled/20210925131234_taxonomy_seeder_create_categories.exs diff --git a/flavours/haha/repo/seeds.exs b/flavours/open-science/repo/seeds.exs similarity index 100% rename from flavours/haha/repo/seeds.exs rename to flavours/open-science/repo/seeds.exs diff --git a/flavours/reflow/config/deps.flavour.git b/flavours/reflow/config/deps.flavour.git index b4bad8c71d0..65b5080f577 100644 --- a/flavours/reflow/config/deps.flavour.git +++ b/flavours/reflow/config/deps.flavour.git @@ -1,2 +1,5 @@ -bonfire_ui_reflow = "https://github.com/bonfire-networks/bonfire_ui_reflow#main" \ No newline at end of file +bonfire_ui_reflow = "https://github.com/bonfire-networks/bonfire_ui_reflow#main" +bonfire_valueflows = "https://github.com/bonfire-networks/bonfire_valueflows#main" +bonfire_geolocate = "https://github.com/bonfire-networks/bonfire_geolocate#main" +bonfire_quantify = "https://github.com/bonfire-networks/bonfire_quantify#main" diff --git a/flavours/reflow/repo/migrations/20200523081012_init_pointers.exs b/flavours/reflow/repo/migrations/20200523081012_init_pointers.exs deleted file mode 100644 index 93da00504c5..00000000000 --- a/flavours/reflow/repo/migrations/20200523081012_init_pointers.exs +++ /dev/null @@ -1,15 +0,0 @@ -defmodule Bonfire.Repo.Migrations.InitPointers do - @moduledoc false - use Ecto.Migration - import Needle.Migration - - def up do - init_pointers_ulid_extra() - init_pointers() - end - - def down do - init_pointers_ulid_extra() - init_pointers() - end -end diff --git a/flavours/reflow/repo/migrations/20200523081014_init_edges.exs b/flavours/reflow/repo/migrations/20200523081014_init_edges.exs deleted file mode 100644 index b88dea2c603..00000000000 --- a/flavours/reflow/repo/migrations/20200523081014_init_edges.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Repo.Migrations.InitEdges do - @moduledoc false - use Ecto.Migration - alias Bonfire.Data.Edges.Migration - - def up do - Migration.up() - end - - def down do - Migration.down() - end -end diff --git a/flavours/reflow/repo/migrations/20200805090401_create_ap_tables.exs b/flavours/reflow/repo/migrations/20200805090401_create_ap_tables.exs deleted file mode 100644 index c7c36767e0b..00000000000 --- a/flavours/reflow/repo/migrations/20200805090401_create_ap_tables.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Bonfire.Repo.Migrations.CreateApTables do - @moduledoc false - use Ecto.Migration - - def up do - ActivityPub.Migrations.up() - end - - def down do - ActivityPub.Migrations.down() - end -end diff --git a/flavours/reflow/repo/migrations/20200817072952_create_oban_tables.exs b/flavours/reflow/repo/migrations/20200817072952_create_oban_tables.exs deleted file mode 100644 index d588bfff680..00000000000 --- a/flavours/reflow/repo/migrations/20200817072952_create_oban_tables.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Bonfire.Repo.Migrations.CreateObanTables do - @moduledoc false - use Ecto.Migration - - def up do - Oban.Migrations.up() - end - - def down do - Oban.Migrations.down(version: 1) - end -end diff --git a/flavours/reflow/repo/migrations/20200820094941_import_boundaries.exs b/flavours/reflow/repo/migrations/20200820094941_import_boundaries.exs deleted file mode 100644 index 16f975b3512..00000000000 --- a/flavours/reflow/repo/migrations/20200820094941_import_boundaries.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule Bonfire.Boundaries.Repo.Migrations.ImportBoundaries do - @moduledoc false - use Ecto.Migration - - import Bonfire.Boundaries.Migrations - - def up, do: migrate_boundaries - def down, do: migrate_boundaries -end diff --git a/flavours/reflow/repo/migrations/20200828094943_add_files.exs b/flavours/reflow/repo/migrations/20200828094943_add_files.exs deleted file mode 100644 index 9b278f20c57..00000000000 --- a/flavours/reflow/repo/migrations/20200828094943_add_files.exs +++ /dev/null @@ -1,15 +0,0 @@ -defmodule Bonfire.Repo.Migrations.AddFiles do - @moduledoc false - use Ecto.Migration - - import Bonfire.Files.Media.Migrations - import Needle.Migration - - def up do - Bonfire.Files.Media.Migrations.migrate_media() - end - - def down do - Bonfire.Files.Media.Migrations.migrate_media() - end -end diff --git a/flavours/reflow/repo/migrations/20200828094944_import_me.exs b/flavours/reflow/repo/migrations/20200828094944_import_me.exs deleted file mode 100644 index b47d7554776..00000000000 --- a/flavours/reflow/repo/migrations/20200828094944_import_me.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportMe do - @moduledoc false - use Ecto.Migration - - import Bonfire.Me.Migrations - - def up do - # accounts & users - migrate_me() - end - - def down, do: migrate_me() -end diff --git a/flavours/reflow/repo/migrations/20200828094945_import_social.exs b/flavours/reflow/repo/migrations/20200828094945_import_social.exs deleted file mode 100644 index 761cff51b78..00000000000 --- a/flavours/reflow/repo/migrations/20200828094945_import_social.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Social.Repo.Migrations.ImportSocial do - @moduledoc false - use Ecto.Migration - - import Bonfire.Social.Migrations - import Needle.Migration - - def up do - migrate_social() - end - - def down, do: migrate_social() -end diff --git a/flavours/reflow/repo/migrations/20200829004946_boundaries_fixtures.exs b/flavours/reflow/repo/migrations/20200829004946_boundaries_fixtures.exs deleted file mode 100644 index 91c2dd40429..00000000000 --- a/flavours/reflow/repo/migrations/20200829004946_boundaries_fixtures.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule Bonfire.Boundaries.Repo.Migrations.BoundariesFixtures do - @moduledoc false - use Ecto.Migration - - import Bonfire.Boundaries.Fixtures - - def up, do: Bonfire.Boundaries.Fixtures.insert() - def down, do: nil -end diff --git a/flavours/reflow/repo/migrations/20201205094943_import_quantify.exs b/flavours/reflow/repo/migrations/20201205094943_import_quantify.exs deleted file mode 100644 index 5abeed042e4..00000000000 --- a/flavours/reflow/repo/migrations/20201205094943_import_quantify.exs +++ /dev/null @@ -1,14 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportQuantify do - @moduledoc false - use Ecto.Migration - - def up do - Bonfire.Quantify.Migrations.change() - Bonfire.Quantify.Migrations.change_measure() - end - - def down do - Bonfire.Quantify.Migrations.change() - Bonfire.Quantify.Migrations.change_measure() - end -end diff --git a/flavours/reflow/repo/migrations/20201208094940_import_geolocation.exs b/flavours/reflow/repo/migrations/20201208094940_import_geolocation.exs deleted file mode 100644 index a0ce5ca5c96..00000000000 --- a/flavours/reflow/repo/migrations/20201208094940_import_geolocation.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportGeolocation do - @moduledoc false - use Ecto.Migration - - def up do - Bonfire.Geolocate.Migrations.change() - end - - def down do - Bonfire.Geolocate.Migrations.change() - end -end diff --git a/flavours/reflow/repo/migrations/20201212094942_import_valueflows.exs b/flavours/reflow/repo/migrations/20201212094942_import_valueflows.exs deleted file mode 100644 index b86cd2d3c75..00000000000 --- a/flavours/reflow/repo/migrations/20201212094942_import_valueflows.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportValueFlows do - @moduledoc false - use Ecto.Migration - - def up do - ValueFlows.AllMigrations.up() - end - - def down do - ValueFlows.AllMigrations.down() - end -end diff --git a/flavours/reflow/repo/migrations/20210113094942_import_valueflows_observe.exs b/flavours/reflow/repo/migrations/20210113094942_import_valueflows_observe.exs deleted file mode 100644 index f9bea31011f..00000000000 --- a/flavours/reflow/repo/migrations/20210113094942_import_valueflows_observe.exs +++ /dev/null @@ -1,14 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportValueFlowsObserve do - @moduledoc false - use Ecto.Migration - - alias ValueFlows.Observe.Migrations - - def up do - Migrations.up() - end - - def down do - Migrations.down() - end -end diff --git a/flavours/reflow/repo/migrations/20210402105128_ap_test_table.exs b/flavours/reflow/repo/migrations/20210402105128_ap_test_table.exs deleted file mode 100644 index 02be27e0868..00000000000 --- a/flavours/reflow/repo/migrations/20210402105128_ap_test_table.exs +++ /dev/null @@ -1,16 +0,0 @@ -defmodule ActivityPub.Repo.Migrations.APTestTable do - @moduledoc false - use Ecto.Migration - - def change do - # This table only exists for test purposes - create table("local_actor", primary_key: false) do - add(:id, :uuid, primary_key: true) - add(:username, :citext) - add(:data, :map) - add(:local, :boolean) - add(:keys, :text) - add(:followers, {:array, :string}) - end - end -end diff --git a/flavours/reflow/repo/migrations/20210407094946_message.exs b/flavours/reflow/repo/migrations/20210407094946_message.exs deleted file mode 100644 index 45d7cb482df..00000000000 --- a/flavours/reflow/repo/migrations/20210407094946_message.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule Bonfire.Repo.Migrations.Message do - @moduledoc false - use Ecto.Migration - - import Bonfire.Data.Social.Message.Migration - - def up, do: migrate_message() - def down, do: migrate_message() -end diff --git a/flavours/reflow/repo/migrations/20210410094945_profile_images.exs b/flavours/reflow/repo/migrations/20210410094945_profile_images.exs deleted file mode 100644 index a1ebc337f32..00000000000 --- a/flavours/reflow/repo/migrations/20210410094945_profile_images.exs +++ /dev/null @@ -1,23 +0,0 @@ -defmodule Bonfire.Social.Repo.Migrations.ProfileImages do - @moduledoc false - use Ecto.Migration - - import Needle.Migration - - def up do - drop_if_exists( - constraint("bonfire_data_social_profile", "bonfire_data_social_profile_icon_id_fkey") - ) - - drop_if_exists( - constraint("bonfire_data_social_profile", "bonfire_data_social_profile_image_id_fkey") - ) - - alter table("bonfire_data_social_profile") do - Ecto.Migration.add_if_not_exists(:icon_id, strong_pointer(Bonfire.Files.Media)) - Ecto.Migration.add_if_not_exists(:image_id, strong_pointer(Bonfire.Files.Media)) - end - end - - def down, do: nil -end diff --git a/flavours/reflow/repo/migrations/20210618094945_peered_uri.exs b/flavours/reflow/repo/migrations/20210618094945_peered_uri.exs deleted file mode 100644 index a965ea0075f..00000000000 --- a/flavours/reflow/repo/migrations/20210618094945_peered_uri.exs +++ /dev/null @@ -1,14 +0,0 @@ -defmodule Bonfire.Social.Repo.Migrations.PeeredURI do - @moduledoc false - use Ecto.Migration - - import Needle.Migration - - def up do - alter table("bonfire_data_activity_pub_peered") do - Ecto.Migration.add_if_not_exists(:canonical_uri, :text, null: true) - end - end - - def down, do: nil -end diff --git a/flavours/reflow/repo/migrations/20210831134330_update_oban_jobs_table.exs b/flavours/reflow/repo/migrations/20210831134330_update_oban_jobs_table.exs deleted file mode 100644 index fb87aa161b5..00000000000 --- a/flavours/reflow/repo/migrations/20210831134330_update_oban_jobs_table.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Repo.Migrations.UpdateObanJobsTable do - @moduledoc false - use Ecto.Migration - - def up, do: Oban.Migrations.up() - - def down, do: nil -end diff --git a/flavours/reflow/repo/migrations/20210923093415_import_ap_activity.exs b/flavours/reflow/repo/migrations/20210923093415_import_ap_activity.exs deleted file mode 100644 index cbeceb45971..00000000000 --- a/flavours/reflow/repo/migrations/20210923093415_import_ap_activity.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportApActivity do - @moduledoc false - use Ecto.Migration - import Bonfire.Data.Social.APActivity.Migration - - def up(), do: migrate_apactivity() - def down(), do: migrate_apactivity() -end diff --git a/flavours/reflow/repo/migrations/20210925094942_import_classify.exs b/flavours/reflow/repo/migrations/20210925094942_import_classify.exs deleted file mode 100644 index a7c808aa978..00000000000 --- a/flavours/reflow/repo/migrations/20210925094942_import_classify.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportClassify do - @moduledoc false - use Ecto.Migration - - def up do - Bonfire.Classify.Migrations.up() - end - - def down do - Bonfire.Classify.Migrations.down() - end -end diff --git a/flavours/reflow/repo/migrations/20211001094942_import_assort_ranked.exs b/flavours/reflow/repo/migrations/20211001094942_import_assort_ranked.exs deleted file mode 100644 index c6ad9090ab0..00000000000 --- a/flavours/reflow/repo/migrations/20211001094942_import_assort_ranked.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportRanked do - @moduledoc false - use Ecto.Migration - require Bonfire.Data.Assort.Ranked.Migration - - def up, do: Bonfire.Data.Assort.Ranked.Migration.migrate_ranked() - def down, do: Bonfire.Data.Assort.Ranked.Migration.migrate_ranked() -end diff --git a/flavours/reflow/repo/migrations/20211112094942_import_commitment_satisfaction.exs b/flavours/reflow/repo/migrations/20211112094942_import_commitment_satisfaction.exs deleted file mode 100644 index fa031247ae9..00000000000 --- a/flavours/reflow/repo/migrations/20211112094942_import_commitment_satisfaction.exs +++ /dev/null @@ -1,16 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportCommitmentSatisfaction do - @moduledoc false - use Ecto.Migration - - def up do - ValueFlows.Planning.Commitment.Migrations.up() - ValueFlows.Planning.Satisfaction.Migrations.up() - end - - def down do - if Code.ensure_loaded?(ValueFlows.Planning.Commitment.Migrations) do - ValueFlows.Planning.Satisfaction.Migrations.down() - ValueFlows.Planning.Commitment.Migrations.down() - end - end -end diff --git a/flavours/reflow/repo/migrations/20220304081300_care_closure.exs b/flavours/reflow/repo/migrations/20220304081300_care_closure.exs deleted file mode 100644 index 52c22158e63..00000000000 --- a/flavours/reflow/repo/migrations/20220304081300_care_closure.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Data.Identity.Repo.Migrations.CareClosure do - @moduledoc false - use Ecto.Migration - - alias Bonfire.Data.Identity.CareClosure.Migration - - def change, do: Migration.migrate_care_closure_view() -end diff --git a/flavours/reflow/repo/migrations/20220408094940_settings.exs b/flavours/reflow/repo/migrations/20220408094940_settings.exs deleted file mode 100644 index f8331a4d152..00000000000 --- a/flavours/reflow/repo/migrations/20220408094940_settings.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportSettings do - @moduledoc false - use Ecto.Migration - require Bonfire.Data.Identity.Settings.Migration - - def up do - Bonfire.Data.Identity.Settings.Migration.migrate_settings(:up) - end - - def down do - Bonfire.Data.Identity.Settings.Migration.migrate_settings(:down) - end -end diff --git a/flavours/reflow/repo/migrations/20220428094200_add_files_mixin.exs b/flavours/reflow/repo/migrations/20220428094200_add_files_mixin.exs deleted file mode 100644 index 6ca87767574..00000000000 --- a/flavours/reflow/repo/migrations/20220428094200_add_files_mixin.exs +++ /dev/null @@ -1,21 +0,0 @@ -defmodule Bonfire.Repo.Migrations.AddFilesMixin do - @moduledoc false - use Ecto.Migration - - import Bonfire.Files.Migrations - import Needle.Migration - - def up do - # cleanup old stuff - alter table("bonfire_files_media") do - remove_if_exists(:created_at, :utc_datetime_usec) - remove_if_exists(:updated_at, :utc_datetime_usec) - end - - Bonfire.Files.Migrations.migrate_files() - end - - def down do - Bonfire.Files.Migrations.migrate_files() - end -end diff --git a/flavours/reflow/repo/migrations/20220915052335_create_oban_peers.exs b/flavours/reflow/repo/migrations/20220915052335_create_oban_peers.exs deleted file mode 100644 index 0ce81c41aa0..00000000000 --- a/flavours/reflow/repo/migrations/20220915052335_create_oban_peers.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Common.Repo.Migrations.CreateObanPeers do - @moduledoc false - use Ecto.Migration - - def up, do: Oban.Migrations.up(version: 11) - - def down, do: Oban.Migrations.down(version: 11) -end diff --git a/flavours/reflow/repo/migrations/20231208134330_oban12.exs b/flavours/reflow/repo/migrations/20231208134330_oban12.exs deleted file mode 100644 index 87f75f184d3..00000000000 --- a/flavours/reflow/repo/migrations/20231208134330_oban12.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Repo.Migrations.UpdateOban12 do - @moduledoc false - use Ecto.Migration - - def up, do: Oban.Migrations.up(version: 12) - - def down, do: Oban.Migrations.down(version: 11) -end diff --git a/flavours/upcycle/config/deps.flavour.git b/flavours/upcycle/config/deps.flavour.git index 6897f1fbd34..37cf7da2f51 100644 --- a/flavours/upcycle/config/deps.flavour.git +++ b/flavours/upcycle/config/deps.flavour.git @@ -1,2 +1,4 @@ ## Flavour:UPCYCLE bonfire_upcycle = "https://gitlab.com/bonfire-networks/bonfire_upcycle#main" +bonfire_valueflows = "https://github.com/bonfire-networks/bonfire_valueflows#main" +bonfire_valueflows_observe = "https://github.com/bonfire-networks/bonfire_valueflows_observe#main" diff --git a/flavours/reflow/repo/migrations/20200523081010_citext.exs b/flavours/upcycle/repo/migrations/20200523081010_citext.exs similarity index 100% rename from flavours/reflow/repo/migrations/20200523081010_citext.exs rename to flavours/upcycle/repo/migrations/20200523081010_citext.exs diff --git a/flavours/upcycle/repo/migrations/20200523081010_hello_world.exs b/flavours/upcycle/repo/migrations/20200523081010_hello_world.exs deleted file mode 100644 index 6a24be17210..00000000000 --- a/flavours/upcycle/repo/migrations/20200523081010_hello_world.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Bonfire.Repo.Migrations.HelloWorld do - @moduledoc false - use Ecto.Migration - - def up do - execute("CREATE EXTENSION IF NOT EXISTS \"citext\"") - end - - def down do - execute("DROP EXTENSION IF EXISTS \"citext\"") - end -end diff --git a/flavours/upcycle/repo/migrations/20200523081012_init_pointers.exs b/flavours/upcycle/repo/migrations/20200523081012_init_pointers.exs index 3bfdedf078e..f8a3b3ba1e2 100644 --- a/flavours/upcycle/repo/migrations/20200523081012_init_pointers.exs +++ b/flavours/upcycle/repo/migrations/20200523081012_init_pointers.exs @@ -2,13 +2,15 @@ defmodule Bonfire.Repo.Migrations.InitPointers do @moduledoc false use Ecto.Migration import Needle.Migration - # import Needle.ULID.Migration + import Needle.ULID.Migration - def up do - init_pointers() - end + def up(), do: init(:up) + def down(), do: init(:down) - def down do - init_pointers() + defp init(dir) do + # this one is optional but recommended + init_pointers_ulid_extra(dir) + # this one is not optional + init_pointers(dir) end end diff --git a/flavours/upcycle/repo/migrations/20200523081013_init_pointers_ulid.exs b/flavours/upcycle/repo/migrations/20200523081013_init_pointers_ulid.exs deleted file mode 100644 index 3c03b1757f4..00000000000 --- a/flavours/upcycle/repo/migrations/20200523081013_init_pointers_ulid.exs +++ /dev/null @@ -1,11 +0,0 @@ -defmodule Bonfire.Repo.Migrations.InitPointersULID do - @moduledoc false - use Ecto.Migration - # import Needle.Migration - import Needle.ULID.Migration - - def change do - init_pointers_ulid_extra() - # init_pointers() - end -end diff --git a/flavours/upcycle/repo/migrations/20200818094943_import_ap.exs b/flavours/upcycle/repo/migrations/20200818094943_import_ap.exs index c4284dbd6a7..2103a31c947 100644 --- a/flavours/upcycle/repo/migrations/20200818094943_import_ap.exs +++ b/flavours/upcycle/repo/migrations/20200818094943_import_ap.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportMe do +defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.ImportAP do @moduledoc false use Ecto.Migration diff --git a/flavours/upcycle/repo/migrations/20200820094941_import_boundaries.exs b/flavours/upcycle/repo/migrations/20200820094941_import_boundaries.exs index 16f975b3512..e7ee837868c 100644 --- a/flavours/upcycle/repo/migrations/20200820094941_import_boundaries.exs +++ b/flavours/upcycle/repo/migrations/20200820094941_import_boundaries.exs @@ -4,6 +4,6 @@ defmodule Bonfire.Boundaries.Repo.Migrations.ImportBoundaries do import Bonfire.Boundaries.Migrations - def up, do: migrate_boundaries - def down, do: migrate_boundaries + def up, do: migrate_boundaries() + def down, do: migrate_boundaries() end diff --git a/flavours/upcycle/repo/migrations/20200829004946_boundaries_fixtures.exs b/flavours/upcycle/repo/migrations/20200829004946_boundaries_fixtures.exs deleted file mode 100644 index 91c2dd40429..00000000000 --- a/flavours/upcycle/repo/migrations/20200829004946_boundaries_fixtures.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule Bonfire.Boundaries.Repo.Migrations.BoundariesFixtures do - @moduledoc false - use Ecto.Migration - - import Bonfire.Boundaries.Fixtures - - def up, do: Bonfire.Boundaries.Fixtures.insert() - def down, do: nil -end diff --git a/flavours/reflow/repo/migrations/20200924084501_tag.exs b/flavours/upcycle/repo/migrations/20200924084501_tag.exs similarity index 100% rename from flavours/reflow/repo/migrations/20200924084501_tag.exs rename to flavours/upcycle/repo/migrations/20200924084501_tag.exs diff --git a/flavours/upcycle/repo/migrations/20200924084501_tagged.exs b/flavours/upcycle/repo/migrations/20200924084501_tagged.exs deleted file mode 100644 index c415674b745..00000000000 --- a/flavours/upcycle/repo/migrations/20200924084501_tagged.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Bonfire.Repo.Migrations.Tagged do - @moduledoc false - use Ecto.Migration - - def up do - Bonfire.Tag.Migrations.up() - end - - def down do - Bonfire.Tag.Migrations.down() - end -end diff --git a/flavours/haha/repo/migrations/20210925094942_import_classify.exs b/flavours/upcycle/repo/migrations/20201205094943_import_classify.exs similarity index 100% rename from flavours/haha/repo/migrations/20210925094942_import_classify.exs rename to flavours/upcycle/repo/migrations/20201205094943_import_classify.exs diff --git a/flavours/upcycle/repo/migrations/20201205094943_import_quantify.exs b/flavours/upcycle/repo/migrations/20201205094943_import_quantify.exs deleted file mode 100644 index 5abeed042e4..00000000000 --- a/flavours/upcycle/repo/migrations/20201205094943_import_quantify.exs +++ /dev/null @@ -1,14 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportQuantify do - @moduledoc false - use Ecto.Migration - - def up do - Bonfire.Quantify.Migrations.change() - Bonfire.Quantify.Migrations.change_measure() - end - - def down do - Bonfire.Quantify.Migrations.change() - Bonfire.Quantify.Migrations.change_measure() - end -end diff --git a/flavours/upcycle/repo/migrations/20201208094940_import_geolocation.exs b/flavours/upcycle/repo/migrations/20201208094940_import_geolocation.exs deleted file mode 100644 index a0ce5ca5c96..00000000000 --- a/flavours/upcycle/repo/migrations/20201208094940_import_geolocation.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportGeolocation do - @moduledoc false - use Ecto.Migration - - def up do - Bonfire.Geolocate.Migrations.change() - end - - def down do - Bonfire.Geolocate.Migrations.change() - end -end diff --git a/flavours/upcycle/repo/migrations/20201212094942_import_valueflows.exs b/flavours/upcycle/repo/migrations/20201212094942_import_valueflows.exs deleted file mode 100644 index b86cd2d3c75..00000000000 --- a/flavours/upcycle/repo/migrations/20201212094942_import_valueflows.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportValueFlows do - @moduledoc false - use Ecto.Migration - - def up do - ValueFlows.AllMigrations.up() - end - - def down do - ValueFlows.AllMigrations.down() - end -end diff --git a/flavours/upcycle/repo/migrations/20210102094944_import_shared_user.exs b/flavours/upcycle/repo/migrations/20210102094944_import_shared_user.exs index 83b478f8754..de8c80b323e 100644 --- a/flavours/upcycle/repo/migrations/20210102094944_import_shared_user.exs +++ b/flavours/upcycle/repo/migrations/20210102094944_import_shared_user.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Repo.Migrations.ImportSharedUser do +defmodule Bonfire.Data.SharedUser.ImportSharedUser do @moduledoc false use Ecto.Migration diff --git a/flavours/upcycle/repo/migrations/20210113094942_import_valueflows_observe.exs b/flavours/upcycle/repo/migrations/20210113094942_import_valueflows_observe.exs deleted file mode 100644 index f9bea31011f..00000000000 --- a/flavours/upcycle/repo/migrations/20210113094942_import_valueflows_observe.exs +++ /dev/null @@ -1,14 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportValueFlowsObserve do - @moduledoc false - use Ecto.Migration - - alias ValueFlows.Observe.Migrations - - def up do - Migrations.up() - end - - def down do - Migrations.down() - end -end diff --git a/flavours/upcycle/repo/migrations/20210128094942_posts.exs b/flavours/upcycle/repo/migrations/20210128094942_posts.exs new file mode 100644 index 00000000000..78de493cbb6 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20210128094942_posts.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Posts.Repo.Migrations.Import do + @moduledoc false + use Ecto.Migration + + import Bonfire.Posts.Migrations + + def change, do: migrate_posts() +end diff --git a/flavours/upcycle/repo/migrations/20210128094943_messages.exs b/flavours/upcycle/repo/migrations/20210128094943_messages.exs new file mode 100644 index 00000000000..6a02b7de798 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20210128094943_messages.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Messages.Repo.MessagesMigrations do + @moduledoc false + use Ecto.Migration + + import Bonfire.Messages.Migrations + + def change, do: migrate_messages() +end diff --git a/flavours/upcycle/repo/migrations/20210128094944_social_graph.exs b/flavours/upcycle/repo/migrations/20210128094944_social_graph.exs new file mode 100644 index 00000000000..1a77ca5605d --- /dev/null +++ b/flavours/upcycle/repo/migrations/20210128094944_social_graph.exs @@ -0,0 +1,8 @@ +defmodule Bonfire.Social.Graph.Repo.Migrations.Import do + @moduledoc false + use Ecto.Migration + + import Bonfire.Social.Graph.Migrations + + def change, do: migrate_social_graph() +end diff --git a/flavours/upcycle/repo/migrations/20210302094944_import_boost.exs b/flavours/upcycle/repo/migrations/20210302094944_import_boost.exs deleted file mode 100644 index a7f1e29b5f6..00000000000 --- a/flavours/upcycle/repo/migrations/20210302094944_import_boost.exs +++ /dev/null @@ -1,14 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportBoost do - @moduledoc false - use Ecto.Migration - - import Bonfire.Data.Social.Boost.Migration - - def up do - migrate_boost() - end - - def down do - migrate_boost() - end -end diff --git a/flavours/upcycle/repo/migrations/20210302094945_import_flag.exs b/flavours/upcycle/repo/migrations/20210302094945_import_flag.exs deleted file mode 100644 index b2dc3c4e80f..00000000000 --- a/flavours/upcycle/repo/migrations/20210302094945_import_flag.exs +++ /dev/null @@ -1,14 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportFlag do - @moduledoc false - use Ecto.Migration - - import Bonfire.Data.Social.Flag.Migration - - def up do - migrate_flag() - end - - def down do - migrate_flag() - end -end diff --git a/flavours/upcycle/repo/migrations/20210302094946_import_inbox.exs b/flavours/upcycle/repo/migrations/20210302094946_import_inbox.exs deleted file mode 100644 index 55de8ef43e3..00000000000 --- a/flavours/upcycle/repo/migrations/20210302094946_import_inbox.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportInbox do - @moduledoc false - use Ecto.Migration - - import Bonfire.Data.Social.Inbox.Migration - - def up, do: migrate_inbox() - def down, do: migrate_inbox() -end diff --git a/flavours/upcycle/repo/migrations/20210407094946_message.exs b/flavours/upcycle/repo/migrations/20210407094946_message.exs deleted file mode 100644 index 45d7cb482df..00000000000 --- a/flavours/upcycle/repo/migrations/20210407094946_message.exs +++ /dev/null @@ -1,9 +0,0 @@ -defmodule Bonfire.Repo.Migrations.Message do - @moduledoc false - use Ecto.Migration - - import Bonfire.Data.Social.Message.Migration - - def up, do: migrate_message() - def down, do: migrate_message() -end diff --git a/flavours/upcycle/repo/migrations/20210410094945_profile_images.exs b/flavours/upcycle/repo/migrations/20210410094945_profile_images.exs index a1ebc337f32..c6983de27e1 100644 --- a/flavours/upcycle/repo/migrations/20210410094945_profile_images.exs +++ b/flavours/upcycle/repo/migrations/20210410094945_profile_images.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Social.Repo.Migrations.ProfileImages do +defmodule Bonfire.UI.Me.Repo.Migrations.ProfileImages do @moduledoc false use Ecto.Migration diff --git a/flavours/upcycle/repo/migrations/20210412094946_fp.exs b/flavours/upcycle/repo/migrations/20210412094946_fp.exs index 43d75e0c93a..fba94a6e44c 100644 --- a/flavours/upcycle/repo/migrations/20210412094946_fp.exs +++ b/flavours/upcycle/repo/migrations/20210412094946_fp.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Repo.Migrations.FP do +defmodule Bonfire.Social.Repo.Migrations.FeedPublish do @moduledoc false use Ecto.Migration diff --git a/flavours/upcycle/repo/migrations/20210618094945_peered_uri.exs b/flavours/upcycle/repo/migrations/20210618094945_peered_uri.exs index a965ea0075f..7b784c1d532 100644 --- a/flavours/upcycle/repo/migrations/20210618094945_peered_uri.exs +++ b/flavours/upcycle/repo/migrations/20210618094945_peered_uri.exs @@ -1,4 +1,4 @@ -defmodule Bonfire.Social.Repo.Migrations.PeeredURI do +defmodule Bonfire.Federate.ActivityPub.Repo.Migrations.PeeredURI do @moduledoc false use Ecto.Migration diff --git a/flavours/upcycle/repo/migrations/20210831134330_update_oban_jobs_table.exs b/flavours/upcycle/repo/migrations/20210831134330_update_oban_jobs_table.exs deleted file mode 100644 index fb87aa161b5..00000000000 --- a/flavours/upcycle/repo/migrations/20210831134330_update_oban_jobs_table.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Repo.Migrations.UpdateObanJobsTable do - @moduledoc false - use Ecto.Migration - - def up, do: Oban.Migrations.up() - - def down, do: nil -end diff --git a/flavours/upcycle/repo/migrations/20210925094942_import_classify.exs b/flavours/upcycle/repo/migrations/20210925094942_import_classify.exs deleted file mode 100644 index a7c808aa978..00000000000 --- a/flavours/upcycle/repo/migrations/20210925094942_import_classify.exs +++ /dev/null @@ -1,12 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportClassify do - @moduledoc false - use Ecto.Migration - - def up do - Bonfire.Classify.Migrations.up() - end - - def down do - Bonfire.Classify.Migrations.down() - end -end diff --git a/flavours/upcycle/repo/migrations/20211001094942_import_assort_ranked.exs b/flavours/upcycle/repo/migrations/20211001094942_import_assort_ranked.exs deleted file mode 100644 index c6ad9090ab0..00000000000 --- a/flavours/upcycle/repo/migrations/20211001094942_import_assort_ranked.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportRanked do - @moduledoc false - use Ecto.Migration - require Bonfire.Data.Assort.Ranked.Migration - - def up, do: Bonfire.Data.Assort.Ranked.Migration.migrate_ranked() - def down, do: Bonfire.Data.Assort.Ranked.Migration.migrate_ranked() -end diff --git a/flavours/upcycle/repo/migrations/20211112094942_import_commitment_satisfaction.exs b/flavours/upcycle/repo/migrations/20211112094942_import_commitment_satisfaction.exs deleted file mode 100644 index fa031247ae9..00000000000 --- a/flavours/upcycle/repo/migrations/20211112094942_import_commitment_satisfaction.exs +++ /dev/null @@ -1,16 +0,0 @@ -defmodule Bonfire.Repo.Migrations.ImportCommitmentSatisfaction do - @moduledoc false - use Ecto.Migration - - def up do - ValueFlows.Planning.Commitment.Migrations.up() - ValueFlows.Planning.Satisfaction.Migrations.up() - end - - def down do - if Code.ensure_loaded?(ValueFlows.Planning.Commitment.Migrations) do - ValueFlows.Planning.Satisfaction.Migrations.down() - ValueFlows.Planning.Commitment.Migrations.down() - end - end -end diff --git a/flavours/reflow/repo/migrations/20220208094942_import_invite_link.exs b/flavours/upcycle/repo/migrations/20220208094942_import_invite_link.exs similarity index 100% rename from flavours/reflow/repo/migrations/20220208094942_import_invite_link.exs rename to flavours/upcycle/repo/migrations/20220208094942_import_invite_link.exs diff --git a/flavours/upcycle/repo/migrations/20220509084501_hashtag.exs b/flavours/upcycle/repo/migrations/20220509084501_hashtag.exs deleted file mode 100644 index 500b3988d73..00000000000 --- a/flavours/upcycle/repo/migrations/20220509084501_hashtag.exs +++ /dev/null @@ -1,13 +0,0 @@ -defmodule Bonfire.Repo.Migrations.Hashtag do - @moduledoc false - use Ecto.Migration - require Bonfire.Tag.Hashtag.Migration - - def up do - Bonfire.Tag.Hashtag.Migration.migrate_hashtag() - end - - def down do - Bonfire.Tag.Hashtag.Migration.migrate_hashtag() - end -end diff --git a/flavours/upcycle/repo/migrations/20220915052335_create_oban_peers.exs b/flavours/upcycle/repo/migrations/20220915052335_create_oban_peers.exs deleted file mode 100644 index 0ce81c41aa0..00000000000 --- a/flavours/upcycle/repo/migrations/20220915052335_create_oban_peers.exs +++ /dev/null @@ -1,8 +0,0 @@ -defmodule Bonfire.Common.Repo.Migrations.CreateObanPeers do - @moduledoc false - use Ecto.Migration - - def up, do: Oban.Migrations.up(version: 11) - - def down, do: Oban.Migrations.down(version: 11) -end diff --git a/flavours/upcycle/repo/migrations/20230202105128_add_object_boolean.exs b/flavours/upcycle/repo/migrations/20230202105128_add_object_boolean.exs new file mode 100644 index 00000000000..3387b5b4d14 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20230202105128_add_object_boolean.exs @@ -0,0 +1,12 @@ +defmodule ActivityPub.Repo.Migrations.AddObjectBoolean do + @moduledoc false + use Ecto.Migration + + def up do + ActivityPub.Migrations.add_object_boolean() + end + + def down do + ActivityPub.Migrations.drop_object_boolean() + end +end diff --git a/flavours/upcycle/repo/migrations/20230304094943_add_type.exs b/flavours/upcycle/repo/migrations/20230304094943_add_type.exs new file mode 100644 index 00000000000..3484754d94a --- /dev/null +++ b/flavours/upcycle/repo/migrations/20230304094943_add_type.exs @@ -0,0 +1,12 @@ +defmodule Bonfire.Repo.Migrations.ClassifyAddType do + @moduledoc false + use Ecto.Migration + + def up do + Bonfire.Classify.Migrations.add_type() + end + + def down do + # TODO + end +end diff --git a/flavours/upcycle/repo/migrations/20230304100100_add_tree.exs b/flavours/upcycle/repo/migrations/20230304100100_add_tree.exs new file mode 100644 index 00000000000..a6f950324f4 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20230304100100_add_tree.exs @@ -0,0 +1,15 @@ +defmodule Bonfire.Repo.Migrations.ClassifyAddTree do + @moduledoc false + use Ecto.Migration + require Bonfire.Classify.Tree.Migration + + def up do + Bonfire.Classify.Tree.Migration.migrate_tree() + Bonfire.Classify.Tree.Migration.migrate_functions() + end + + def down do + Bonfire.Classify.Tree.Migration.migrate_functions() + Bonfire.Classify.Tree.Migration.migrate_tree() + end +end diff --git a/flavours/upcycle/repo/migrations/20230625152257_papertrail_versions.exs b/flavours/upcycle/repo/migrations/20230625152257_papertrail_versions.exs new file mode 100644 index 00000000000..df4801d6f87 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20230625152257_papertrail_versions.exs @@ -0,0 +1,7 @@ +defmodule Bonfire.Social.Repo.Migrations.AddVersions do + use Ecto.Migration + + def change do + Bonfire.Social.Migrations.add_paper_trail() + end +end diff --git a/flavours/upcycle/repo/migrations/20230703084501_alias.exs b/flavours/upcycle/repo/migrations/20230703084501_alias.exs new file mode 100644 index 00000000000..da5d1712ca3 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20230703084501_alias.exs @@ -0,0 +1,13 @@ +defmodule Bonfire.Repo.Migrations.Alias do + @moduledoc false + use Ecto.Migration + require Bonfire.Data.Identity.Alias.Migration + + def up do + Bonfire.Data.Identity.Alias.Migration.migrate_alias() + end + + def down do + Bonfire.Data.Identity.Alias.Migration.migrate_alias() + end +end diff --git a/flavours/upcycle/repo/migrations/20230731004945_add_array_reverse_fn.exs b/flavours/upcycle/repo/migrations/20230731004945_add_array_reverse_fn.exs new file mode 100644 index 00000000000..3848288fee0 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20230731004945_add_array_reverse_fn.exs @@ -0,0 +1,7 @@ +defmodule Bonfire.Social.Repo.Migrations.ArrayFn do + @moduledoc false + use Ecto.Migration + + def up, do: Bonfire.Social.Migrations.add_array_reverse_fn() + def down, do: nil +end diff --git a/flavours/upcycle/repo/migrations/20230822004944_replied_generated_total.exs b/flavours/upcycle/repo/migrations/20230822004944_replied_generated_total.exs new file mode 100644 index 00000000000..2a6689e7ae9 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20230822004944_replied_generated_total.exs @@ -0,0 +1,7 @@ +defmodule Bonfire.Social.Repo.Migrations.RepliedTotal do + @moduledoc false + use Ecto.Migration + + def up, do: Bonfire.Data.Social.Replied.Migration.add_generated_total_column() + def down, do: nil +end diff --git a/flavours/upcycle/repo/migrations/20230828094945_instance_admin_user.exs b/flavours/upcycle/repo/migrations/20230828094945_instance_admin_user.exs new file mode 100644 index 00000000000..35b69c25155 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20230828094945_instance_admin_user.exs @@ -0,0 +1,14 @@ +defmodule Bonfire.Social.Repo.Migrations.InstanceAdminUser do + @moduledoc false + use Ecto.Migration + + import Needle.Migration + + def up do + alter table("bonfire_data_access_control_instance_admin") do + Ecto.Migration.add_if_not_exists(:user_id, weak_pointer(Needle.Pointer)) + end + end + + def down, do: nil +end diff --git a/flavours/upcycle/repo/migrations/20230829084501_sensitive.exs b/flavours/upcycle/repo/migrations/20230829084501_sensitive.exs new file mode 100644 index 00000000000..17f30c44539 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20230829084501_sensitive.exs @@ -0,0 +1,13 @@ +defmodule Bonfire.Repo.Migrations.Sensitive do + @moduledoc false + use Ecto.Migration + require Bonfire.Data.Social.Sensitive.Migration + + def up do + Bonfire.Data.Social.Sensitive.Migration.migrate_sensitive() + end + + def down do + Bonfire.Data.Social.Sensitive.Migration.migrate_sensitive() + end +end diff --git a/flavours/cooperation/repo/migrations/20231207004944_boundaries_fixtures.exs b/flavours/upcycle/repo/migrations/20231019004944_boundaries_fixtures.exs similarity index 100% rename from flavours/cooperation/repo/migrations/20231207004944_boundaries_fixtures.exs rename to flavours/upcycle/repo/migrations/20231019004944_boundaries_fixtures.exs diff --git a/flavours/cooperation/repo/migrations/20231207004947_boundaries_users_fixtures.exs b/flavours/upcycle/repo/migrations/20231119004947_boundaries_users_fixtures.exs similarity index 100% rename from flavours/cooperation/repo/migrations/20231207004947_boundaries_users_fixtures.exs rename to flavours/upcycle/repo/migrations/20231119004947_boundaries_users_fixtures.exs diff --git a/flavours/upcycle/repo/migrations/20231201094945_files_refactor.exs b/flavours/upcycle/repo/migrations/20231201094945_files_refactor.exs new file mode 100644 index 00000000000..05cb4f416a9 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20231201094945_files_refactor.exs @@ -0,0 +1,14 @@ +defmodule Bonfire.Files.Repo.Migrations.FilesRefactor do + @moduledoc false + use Ecto.Migration + + import Needle.Migration + + def up do + alter table("bonfire_files_media") do + Ecto.Migration.add_if_not_exists(:file, :jsonb) + end + end + + def down, do: nil +end diff --git a/flavours/upcycle/repo/migrations/20231212094945_settings_json.exs b/flavours/upcycle/repo/migrations/20231212094945_settings_json.exs new file mode 100644 index 00000000000..90b6972c2d4 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20231212094945_settings_json.exs @@ -0,0 +1,14 @@ +defmodule Bonfire.Data.Identity.Repo.Migrations.SettingsJson do + @moduledoc false + use Ecto.Migration + + import Needle.Migration + + def up do + alter table("bonfire_data_identity_settings") do + Ecto.Migration.add_if_not_exists(:json, :jsonb) + end + end + + def down, do: nil +end diff --git a/flavours/reflow/repo/migrations/20220509084501_hashtag.exs b/flavours/upcycle/repo/migrations/20240109084501_hashtag.exs similarity index 100% rename from flavours/reflow/repo/migrations/20220509084501_hashtag.exs rename to flavours/upcycle/repo/migrations/20240109084501_hashtag.exs diff --git a/flavours/upcycle/repo/migrations/20240110094945_gin_indexes.exs b/flavours/upcycle/repo/migrations/20240110094945_gin_indexes.exs new file mode 100644 index 00000000000..c94f6a3ca58 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20240110094945_gin_indexes.exs @@ -0,0 +1,48 @@ +defmodule Bonfire.Search.Repo.Migrations.GinIndexes do + use Ecto.Migration + + @disable_ddl_transaction true + @disable_migration_lock true + # ^ Needed to migrate indexes concurrently. + # Disabling DDL transactions removes the guarantee that all of the changes in the migration will happen at once. + # Disabling the migration lock removes the guarantee only a single node will run a given migration if multiple nodes are attempting to migrate at the same time. + + def up do + execute "CREATE EXTENSION IF NOT EXISTS pg_trgm;" + + create_index("bonfire_data_social_named", "name") + create_index("bonfire_data_identity_character", "username") + + # create_index("bonfire_data_social_profile", "name") + create_index_fields( + "bonfire_data_social_profile", + "name gin_trgm_ops, summary gin_trgm_ops" + ) + + create_index_fields( + "bonfire_data_social_post_content", + # "name gin_trgm_ops, summary gin_trgm_ops, html_body gin_trgm_ops" + "name gin_trgm_ops, summary gin_trgm_ops" + ) + end + + def down do + # TODO + end + + def create_index(table, field) do + create_index_fields(table, "#{field} gin_trgm_ops") + end + + def create_index_fields(table, fields) do + execute """ + DROP INDEX IF EXISTS #{table}_gin_index; + """ + + execute """ + CREATE INDEX CONCURRENTLY #{table}_gin_index + ON #{table} + USING gin (#{fields}); + """ + end +end diff --git a/flavours/upcycle/repo/migrations/20240121084501_label.exs b/flavours/upcycle/repo/migrations/20240121084501_label.exs new file mode 100644 index 00000000000..78d9cf189f5 --- /dev/null +++ b/flavours/upcycle/repo/migrations/20240121084501_label.exs @@ -0,0 +1,13 @@ +defmodule Bonfire.Repo.Migrations.Label do + @moduledoc false + use Ecto.Migration + require Bonfire.Label.Migration + + def up do + Bonfire.Label.Migration.migrate_label() + end + + def down do + Bonfire.Label.Migration.migrate_label() + end +end diff --git a/justfile b/justfile index e7081f78c87..c7a8beb2be8 100644 --- a/justfile +++ b/justfile @@ -66,25 +66,6 @@ help: @echo "Just commands for Bonfire:" @just --list -@pre-setup-env flavour='classic': - echo "Using flavour '$flavour' at flavours/$flavour with env '$MIX_ENV' with vars from ./flavours/$flavour/config/$ENV_ENV/.env " - mkdir -p ./flavours/$flavour/config/prod/ - mkdir -p ./flavours/$flavour/config/dev/ - test -f ./flavours/$flavour/config/$ENV_ENV/.env || (cd flavours/$flavour/config && cat ./templates/public.env ./templates/not_secret.env > ./$ENV_ENV/.env && echo "MIX_ENV=$MIX_ENV" >> ./$ENV_ENV/.env && echo "FLAVOUR=$flavour" >> ./$ENV_ENV/.env) - -rm .env - ln -sf ./config/$ENV_ENV/.env ./.env - -@pre-setup flavour='classic': - mkdir -p config - cd config && ln -sfn ../flavours/classic/config/* ./ && ln -sfn ../flavours/$flavour/config/* ./ - touch ./config/deps.path - mkdir -p data - mkdir -p data/uploads/ - mkdir -p data/search/dev - mkdir -p priv/static/data - mkdir -p extensions/ - mkdir -p forks/ - chmod 700 .erlang.cookie # Initialise env files, and create some required folders, files and softlinks config: @@ -93,34 +74,61 @@ config: # Initialise a specific flavour, with its env files, and create some required folders, files and softlinks @flavour select_flavour: echo "Switching to flavour '$select_flavour' in $MIX_ENV env..." - -rm ./config/deps.flavour.* 2> /dev/null - -rm ./config/flavour_* 2> /dev/null - just pre-setup $select_flavour + just pre-config $select_flavour just pre-setup-env $select_flavour + printf "\nNow make sure to finish the flavour setup with 'just setup'. You can also edit your config for flavour '$select_flavour' in /.env and ./config/ more generally." + +setup: {{ if MIX_ENV == "prod" { "just setup-prod" } else { "just setup-dev" } }} - echo "You can now edit your config for flavour '$select_flavour' in /.env and ./config/ more generally." + +init services="db": pre-init + @just services $services + @echo "Light that fire! $APP_NAME with $FLAVOUR flavour in $MIX_ENV - docker:$WITH_DOCKER - $APP_VSN - $APP_BUILD - $FLAVOUR_PATH - {{os_family()}}/{{os()}} on {{arch()}}" @config-basic select_flavour=FLAVOUR: echo "Setting up flavour '$select_flavour' in $MIX_ENV env..." + just pre-config $select_flavour + just setup + echo "Setup done." + +@pre-config select_flavour=FLAVOUR: + rm -rf ./priv/repo/* -rm ./config/deps.flavour.* 2> /dev/null -rm ./config/flavour_* 2> /dev/null just pre-setup $select_flavour - {{ if MIX_ENV == "prod" { "just setup-prod" } else { "just setup-dev" } }} - echo "Setup done." + +@pre-setup flavour='classic': + mkdir -p config + mkdir -p ./flavours/$flavour/config/prod/ + mkdir -p ./flavours/$flavour/config/dev/ + cd config && ln -sfn ../flavours/classic/config/* ./ && ln -sfn ../flavours/$flavour/config/* ./ + touch ./config/deps.path + mkdir -p data + mkdir -p data/uploads/ + mkdir -p data/search/dev + mkdir -p priv/static/data + mkdir -p extensions/ + mkdir -p forks/ + chmod 700 .erlang.cookie + +@pre-setup-env flavour='classic': + echo "Using flavour '$flavour' at flavours/$flavour with env '$MIX_ENV' with vars from ./flavours/$flavour/config/$ENV_ENV/.env " + test -f ./flavours/$flavour/config/$ENV_ENV/.env || just pre-setup-env-init flavours/$flavour/config flavours/$flavour/config || just pre-setup-env-init flavours/classic/config flavours/$flavour/config + -rm .env + ln -sf ./config/$ENV_ENV/.env ./.env + +@pre-setup-env-init from to: + cat {{from}}/templates/public.env {{from}}/templates/not_secret.env > {{to}}/$ENV_ENV/.env && echo "MIX_ENV=$MIX_ENV" >> {{to}}/$ENV_ENV/.env && echo "FLAVOUR=$flavour" >> {{to}}/$ENV_ENV/.env @pre-init: assets-ln - rm -rf ./priv/repo mkdir -p data - cp -rn $FLAVOUR_PATH/repo ./priv/repo + cp -rf $FLAVOUR_PATH/repo/* ./priv/repo/ rm -rf ./data/current_flavour ln -sf ../$FLAVOUR_PATH ./data/current_flavour mkdir -p priv/static/public # ulimit -n 524288 echo "Using $MIX_ENV env, with flavour: $FLAVOUR at path: $FLAVOUR_PATH" -init services="db": pre-init - @just services $services - @echo "Light that fire! $APP_NAME with $FLAVOUR flavour in $MIX_ENV - docker:$WITH_DOCKER - $APP_VSN - $APP_BUILD - $FLAVOUR_PATH - {{os_family()}}/{{os()}} on {{arch()}}" #### COMMON COMMANDS #### @@ -130,6 +138,10 @@ setup-dev: just deps-clean-api just deps-clean-unused just deps-get + just db-migrations-copy + +db-migrations-copy: + just mix bonfire.extension.copy_migrations --force setup-prod: just build @@ -202,7 +214,7 @@ arch: # Compile the app + extensions compile *args='': - just mix bonfire.deps.compile $args + just mix bonfire.extension.compile $args just mix compile $args # Force the app + extensions to recompile @@ -722,7 +734,7 @@ dc *args='': # Build the docker image @build: init mkdir -p deps - {{ if WITH_DOCKER != "no" { "docker compose pull || echo Oops, could not download the Docker images!" } else { "just mix setup" } }} + {{ if WITH_DOCKER != "no" { "docker compose pull || echo Oops, could not download the Docker images!" } else { "just mix hex_setup" } }} {{ if WITH_DOCKER == "total" { "export $(./tool-versions-to-env.sh 3 | xargs) && export $(grep -v '^#' .tool-versions.env | xargs) && export ELIXIR_DOCKER_IMAGE=${ELIXIR_VERSION}-erlang-${ERLANG_VERSION}-alpine-${ALPINE_VERSION} && docker compose build" } else { "echo ." } }} # Build the docker image diff --git a/lib/mix/mixer.ex b/lib/mix/mixer.ex index 3089cf67097..99c4cb051a1 100644 --- a/lib/mix/mixer.ex +++ b/lib/mix/mixer.ex @@ -1,5 +1,9 @@ if not Code.ensure_loaded?(Bonfire.Mixer) do defmodule Bonfire.Mixer do + def deps_for(type, config \\ mix_config()) do + deps(config, type) + end + def deps(config, deps_subtype, extensions \\ []) def deps(config, :bonfire, extensions) do @@ -88,7 +92,7 @@ if not Code.ensure_loaded?(Bonfire.Mixer) do do: Mix.Task.run("bonfire.dep.compile", ["--force"] ++ List.wrap(deps)) # def flavour_path(path) when is_binary(path), do: path - def flavour_path(config), + def flavour_path(config \\ mix_config()), do: System.get_env("FLAVOUR_PATH", "flavours/" <> flavour(config)) def flavour(config \\ mix_config()) @@ -295,16 +299,20 @@ if not Code.ensure_loaded?(Bonfire.Mixer) do def dep_name(dep) when is_atom(dep), do: Atom.to_string(dep) def dep_name(dep) when is_binary(dep), do: dep - def dep_path(dep) when is_binary(dep) do + def dep_path(dep, force? \\ false) + + def dep_path(dep, force?) when is_binary(dep) do path_if_exists(forks_path() <> dep) || - path_if_exists( - (Mix.Project.deps_path() <> "/" <> dep) - |> Path.expand(File.cwd!()) - ) || - "." + ( + path = + (Mix.Project.deps_path() <> "/" <> dep) + |> Path.expand(File.cwd!()) + + if force?, do: path, else: path_if_exists(path) || "." + ) end - def dep_path(dep) do + def dep_path(dep, force?) do spec = elem(dep, 1) path = @@ -314,16 +322,19 @@ if not Code.ensure_loaded?(Bonfire.Mixer) do (Mix.Project.deps_path() <> "/" <> dep_name(dep)) |> Path.relative_to_cwd() - path_if_exists(path) + if force?, do: path, else: path_if_exists(path) end defp path_if_exists(path), do: if(File.exists?(path), do: path) + def dep_paths(deps, extra) when is_list(deps), + do: Enum.flat_map(deps, &dep_paths(&1, extra)) + def dep_paths(dep, extra) when is_list(extra), do: Enum.flat_map(extra, &dep_paths(dep, &1)) def dep_paths(dep, extra) when is_binary(extra) do - dep_path = dep_path(dep) + dep_path = dep_path(dep, true) if dep_path do path = Path.join(dep_path, extra) |> path_if_exists() diff --git a/mix.exs b/mix.exs index f3e1cdf8f26..6a9d5d0d748 100755 --- a/mix.exs +++ b/mix.exs @@ -322,7 +322,7 @@ defmodule Bonfire.Umbrella.MixProject do [ "hex.setup": ["local.hex --force"], "rebar.setup": ["local.rebar --force"], - setup: [ + hex_setup: [ "hex.setup", "rebar.setup" ], diff --git a/mix.lock b/mix.lock index c40692dd00b..656eaddd725 100644 --- a/mix.lock +++ b/mix.lock @@ -1,6 +1,6 @@ %{ "absinthe": {:hex, :absinthe, "1.7.6", "0b897365f98d068cfcb4533c0200a8e58825a4aeeae6ec33633ebed6de11773b", [:mix], [{:dataloader, "~> 1.0.0 or ~> 2.0", [hex: :dataloader, repo: "hexpm", optional: true]}, {:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}, {:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}, {:opentelemetry_process_propagator, "~> 0.2.1", [hex: :opentelemetry_process_propagator, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "e7626951ca5eec627da960615b51009f3a774765406ff02722b1d818f17e5778"}, - "absinthe_client": {:git, "https://github.com/bonfire-networks/absinthe_client", "6fba146bba117db18b783610e5e7c1271924cc35", [branch: "master"]}, + "absinthe_client": {:git, "https://github.com/bonfire-networks/absinthe_client", "6fba146bba117db18b783610e5e7c1271924cc35", []}, "absinthe_error_payload": {:hex, :absinthe_error_payload, "1.1.4", "502ff239148c8deaac028ddb600d6502d5be68d24fece0c93f4c3cf7e74c1a4d", [:make, :mix], [{:absinthe, "~> 1.3", [hex: :absinthe, repo: "hexpm", optional: false]}, {:ecto, "~> 3.1", [hex: :ecto, repo: "hexpm", optional: false]}], "hexpm", "9e262ef2fd4a2c644075e0cdde2573b1f713c0676ab905c8640eaa8a882b2aca"}, "absinthe_phoenix": {:hex, :absinthe_phoenix, "2.0.2", "e607b438db900049b9b3760f8ecd0591017a46122fffed7057bf6989020992b5", [:mix], [{:absinthe, "~> 1.5", [hex: :absinthe, repo: "hexpm", optional: false]}, {:absinthe_plug, "~> 1.5", [hex: :absinthe_plug, repo: "hexpm", optional: false]}, {:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.5", [hex: :phoenix, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.13 or ~> 3.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.0", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}], "hexpm", "d36918925c380dc7d2ed7d039c9a3b4182ec36723f7417a68745ade5aab22f8d"}, "absinthe_plug": {:hex, :absinthe_plug, "1.5.8", "38d230641ba9dca8f72f1fed2dfc8abd53b3907d1996363da32434ab6ee5d6ab", [:mix], [{:absinthe, "~> 1.5", [hex: :absinthe, repo: "hexpm", optional: false]}, {:plug, "~> 1.4", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "bbb04176647b735828861e7b2705465e53e2cf54ccf5a73ddd1ebd855f996e5a"}, @@ -58,6 +58,7 @@ "bonfire_social": {:git, "https://github.com/bonfire-networks/bonfire_social", "38006ce59d7950004b895c6dc1a9cda57570166d", [branch: "main"]}, "bonfire_social_graph": {:git, "https://github.com/bonfire-networks/bonfire_social_graph", "7dd736d63952fb333a9e6b563c5004c2c56124e4", []}, "bonfire_tag": {:git, "https://github.com/bonfire-networks/bonfire_tag", "ea685bc543c8c08f96a9948d16726f20d6f6400c", [branch: "main"]}, + "bonfire_taxonomy_seeder": {:git, "https://github.com/bonfire-networks/bonfire_taxonomy_seeder", "47b0881425095a5c4d7a923bed76c92a3273eb2d", [branch: "main"]}, "bonfire_ui_common": {:git, "https://github.com/bonfire-networks/bonfire_ui_common", "aad9fde7359c9c389c2ae4fe50ed7d2b1a15ba1a", [branch: "main"]}, "bonfire_ui_coordination": {:git, "https://github.com/bonfire-networks/bonfire_ui_coordination", "466e3cbd06fde2d611ea484a6fec071e7dcabbcd", [branch: "main"]}, "bonfire_ui_groups": {:git, "https://github.com/bonfire-networks/bonfire_ui_groups", "8f56e7e1a06afced0d1b2ad41e9987b215df0fba", [branch: "main"]}, @@ -67,6 +68,7 @@ "bonfire_ui_moderation": {:git, "https://github.com/bonfire-networks/bonfire_ui_moderation", "165ffb6cd69bfe7c0adfafb538d28cc2d63e0477", []}, "bonfire_ui_posts": {:git, "https://github.com/bonfire-networks/bonfire_ui_posts", "458a9c80d56f618235ac7354176f5ff45588f70c", []}, "bonfire_ui_reactions": {:git, "https://github.com/bonfire-networks/bonfire_ui_reactions", "6120d599b9f753dac25361a96d4f71eecc9e5150", []}, + "bonfire_ui_reflow": {:git, "https://github.com/bonfire-networks/bonfire_ui_reflow", "d54c26fea17899ca9b0057f93e6fa6c0618da3f1", [branch: "main"]}, "bonfire_ui_social": {:git, "https://github.com/bonfire-networks/bonfire_ui_social", "954858cd5712d701b55d05b55c67a37052eba750", [branch: "main"]}, "bonfire_ui_social_graph": {:git, "https://github.com/bonfire-networks/bonfire_ui_social_graph", "2ffced6c40e0a3dd222691bfd9ae12558111f735", []}, "bonfire_ui_topics": {:git, "https://github.com/bonfire-networks/bonfire_ui_topics", "2ffab160fb754b1739a9c9195649489b2ae5679b", [branch: "main"]}, @@ -153,6 +155,7 @@ "floki": {:hex, :floki, "0.35.2", "87f8c75ed8654b9635b311774308b2760b47e9a579dabf2e4d5f1e1d42c39e0b", [:mix], [], "hexpm", "6b05289a8e9eac475f644f09c2e4ba7e19201fd002b89c28c1293e7bd16773d9"}, "flow": {:hex, :flow, "0.15.0", "503717c0e367b5713336181d5305106840f64abbad32c75d7af5ef1bb0908e38", [:mix], [{:gen_stage, "~> 0.14.0", [hex: :gen_stage, repo: "hexpm", optional: false]}], "hexpm", "d7ecbd4dd38a188494bc996d5014ef8335f436a0b262140a1f6441ae94714581"}, "forecastr": {:git, "https://github.com/bonfire-networks/forecastr", "84235e51e4cd36ca4df03a24718b4367e296c053", []}, + "formula2": {:hex, :formula2, "0.1.0", "034c82015bffbf178b697f5c4c4b1020e58854bada138f839d8184ce0ffd5ef8", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:stream_data, "~> 0.5", [hex: :stream_data, repo: "hexpm", optional: false]}], "hexpm", "c0ef724f3b5db0eed4ede3f927868648bbaf889475a66769f424dc733ac6505b"}, "furlex": {:git, "https://github.com/bonfire-networks/furlex", "0b50524b53eb0273acd232b25145b6f891461cba", [branch: "main"]}, "gen_smtp": {:hex, :gen_smtp, "1.2.0", "9cfc75c72a8821588b9b9fe947ae5ab2aed95a052b81237e0928633a13276fd3", [:rebar3], [{:ranch, ">= 1.8.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "5ee0375680bca8f20c4d85f58c2894441443a743355430ff33a783fe03296779"}, "gen_stage": {:hex, :gen_stage, "0.14.3", "d0c66f1c87faa301c1a85a809a3ee9097a4264b2edf7644bf5c123237ef732bf", [:mix], [], "hexpm", "8453e2289d94c3199396eb517d65d6715ef26bcae0ee83eb5ff7a84445458d76"}, @@ -163,6 +166,7 @@ "gettext": {:hex, :gettext, "0.24.0", "6f4d90ac5f3111673cbefc4ebee96fe5f37a114861ab8c7b7d5b30a1108ce6d8", [:mix], [{:expo, "~> 0.5.1", [hex: :expo, repo: "hexpm", optional: false]}], "hexpm", "bdf75cdfcbe9e4622dd18e034b227d77dd17f0f133853a1c73b97b3d6c770e8b"}, "git_cli": {:hex, :git_cli, "0.3.0", "a5422f9b95c99483385b976f5d43f7e8233283a47cda13533d7c16131cb14df5", [:mix], [], "hexpm", "78cb952f4c86a41f4d3511f1d3ecb28edb268e3a7df278de2faa1bd4672eaf9b"}, "git_diff": {:hex, :git_diff, "0.6.4", "ec53ebf8bf83b4527d938d6433e3686b47a3e2a23135a21038f76736c16bb6e0", [:mix], [], "hexpm", "9e05563c136c91e960a306fd296156b2e8d74e294ae60961e69a36e118023a5f"}, + "glific_phil_columns": {:hex, :glific_phil_columns, "3.2.0", "da384734b87e4c7b7f0a4f1d3e922d446473ea8400d1fefbaf82026dfbd849cf", [:mix], [{:ecto_sql, "~> 3.0", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:inflex, "~> 2.0", [hex: :inflex, repo: "hexpm", optional: false]}], "hexpm", "0fa23182b861b1bd4ac03f002f5d1fe64ecb8209ab18677beaaa40537224b3e3"}, "glob_ex": {:hex, :glob_ex, "0.1.6", "3a311ade50f6b71d638af660edcc844c3ab4eb2a2c816cfebb73a1d521bb2f9d", [:mix], [], "hexpm", "fda1e90e10f6029bd72967fef0c9891d0d14da89ca7163076e6028bfcb2c42fa"}, "gproc": {:hex, :gproc, "0.9.1", "f1df0364423539cf0b80e8201c8b1839e229e5f9b3ccb944c5834626998f5b8c", [:rebar3], [], "hexpm", "905088e32e72127ed9466f0bac0d8e65704ca5e73ee5a62cb073c3117916d507"}, "grpcbox": {:hex, :grpcbox, "0.17.1", "6e040ab3ef16fe699ffb513b0ef8e2e896da7b18931a1ef817143037c454bcce", [:rebar3], [{:acceptor_pool, "~> 1.0.0", [hex: :acceptor_pool, repo: "hexpm", optional: false]}, {:chatterbox, "~> 0.15.1", [hex: :ts_chatterbox, repo: "hexpm", optional: false]}, {:ctx, "~> 0.6.0", [hex: :ctx, repo: "hexpm", optional: false]}, {:gproc, "~> 0.9.1", [hex: :gproc, repo: "hexpm", optional: false]}], "hexpm", "4a3b5d7111daabc569dc9cbd9b202a3237d81c80bf97212fbc676832cb0ceb17"}, @@ -250,7 +254,6 @@ "parse_trans": {:hex, :parse_trans, "3.4.1", "6e6aa8167cb44cc8f39441d05193be6e6f4e7c2946cb2759f015f8c56b76e5ff", [:rebar3], [], "hexpm", "620a406ce75dada827b82e453c19cf06776be266f5a67cff34e1ef2cbb60e49a"}, "pbkdf2_elixir": {:hex, :pbkdf2_elixir, "2.2.0", "2ec4f7daae2bf74cb9e52df3554bbdcec8a38104a7f0ccaa4d45d5919e4c3f19", [:mix], [{:comeonin, "~> 5.3", [hex: :comeonin, repo: "hexpm", optional: false]}], "hexpm", "6c4af97f5cae925c56caded648520510ea583eebf1587e185b9f445762197aff"}, "periscope": {:hex, :periscope, "0.6.0", "d4cf6994ade2074114902519bb3e9e4963e34a35304a18b10531edf22b150659", [:mix], [], "hexpm", "2106337e8fe564edbbef284de559b412f678c2b391a66348de54ddeb889b6258"}, - "phil_columns": {:hex, :phil_columns, "3.1.0", "6f517729418019d58f57b405906f9afd9d2d790922d74cb990a81eb50d986a07", [:mix], [{:ecto_sql, "~> 3.0", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:inflex, "~> 2.0", [hex: :inflex, repo: "hexpm", optional: false]}], "hexpm", "0aa35fa366c4815474f9dd5d2d8edbf71beef0d19f0392bd40184f9edf040768"}, "phoenix": {:hex, :phoenix, "1.7.10", "02189140a61b2ce85bb633a9b6fd02dff705a5f1596869547aeb2b2b95edd729", [:mix], [{:castore, ">= 0.0.0", [hex: :castore, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:phoenix_pubsub, "~> 2.1", [hex: :phoenix_pubsub, repo: "hexpm", optional: false]}, {:phoenix_template, "~> 1.0", [hex: :phoenix_template, repo: "hexpm", optional: false]}, {:phoenix_view, "~> 2.0", [hex: :phoenix_view, repo: "hexpm", optional: true]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}, {:plug_cowboy, "~> 2.6", [hex: :plug_cowboy, repo: "hexpm", optional: true]}, {:plug_crypto, "~> 1.2 or ~> 2.0", [hex: :plug_crypto, repo: "hexpm", optional: false]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}, {:websock_adapter, "~> 0.5.3", [hex: :websock_adapter, repo: "hexpm", optional: false]}], "hexpm", "cf784932e010fd736d656d7fead6a584a4498efefe5b8227e9f383bf15bb79d0"}, "phoenix_ecto": {:hex, :phoenix_ecto, "4.4.3", "86e9878f833829c3f66da03d75254c155d91d72a201eb56ae83482328dc7ca93", [:mix], [{:ecto, "~> 3.5", [hex: :ecto, repo: "hexpm", optional: false]}, {:phoenix_html, "~> 2.14.2 or ~> 3.0 or ~> 4.0", [hex: :phoenix_html, repo: "hexpm", optional: true]}, {:plug, "~> 1.9", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "d36c401206f3011fefd63d04e8ef626ec8791975d9d107f9a0817d426f61ac07"}, "phoenix_html": {:hex, :phoenix_html, "3.3.3", "380b8fb45912b5638d2f1d925a3771b4516b9a78587249cabe394e0a5d579dc9", [:mix], [{:plug, "~> 1.5", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "923ebe6fec6e2e3b3e569dfbdc6560de932cd54b000ada0208b5f45024bdd76c"}, @@ -305,7 +308,7 @@ "thousand_island": {:hex, :thousand_island, "1.3.2", "bc27f9afba6e1a676dd36507d42e429935a142cf5ee69b8e3f90bff1383943cd", [:mix], [{:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "0e085b93012cd1057b378fce40cbfbf381ff6d957a382bfdd5eca1a98eec2535"}, "timex": {:hex, :timex, "3.7.11", "bb95cb4eb1d06e27346325de506bcc6c30f9c6dea40d1ebe390b262fad1862d1", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:gettext, "~> 0.20", [hex: :gettext, repo: "hexpm", optional: false]}, {:tzdata, "~> 1.1", [hex: :tzdata, repo: "hexpm", optional: false]}], "hexpm", "8b9024f7efbabaf9bd7aa04f65cf8dcd7c9818ca5737677c7b76acbc6a94d1aa"}, "tls_certificate_check": {:hex, :tls_certificate_check, "1.21.0", "042ab2c0c860652bc5cf69c94e3a31f96676d14682e22ec7813bd173ceff1788", [:rebar3], [{:ssl_verify_fun, "~> 1.1", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}], "hexpm", "6cee6cffc35a390840d48d463541d50746a7b0e421acaadb833cfc7961e490e7"}, - "towel": {:git, "https://github.com/CyrusOfEden/towel", "7a9632f6450593176db387c8202580b626b57760", []}, + "towel": {:hex, :towel, "0.2.2", "327ac13601e363017dba42442e6783f7095c147fa68eb3c24c0fb50a10e7a6fc", [:mix], [], "hexpm", "a7b3d16a63f4ccdb66388f2cf61e6701bfc190e0f0afaefbf246c909263725c2"}, "twinkle_star": {:git, "https://github.com/bonfire-networks/twinkle_star", "bd793b68502276fd38fd8c9dd88b901506a58589", []}, "typed_struct": {:hex, :typed_struct, "0.3.0", "939789e3c1dca39d7170c87f729127469d1315dcf99fee8e152bb774b17e7ff7", [:mix], [], "hexpm", "c50bd5c3a61fe4e198a8504f939be3d3c85903b382bde4865579bc23111d1b6d"}, "tz": {:hex, :tz, "0.26.5", "bfe8efa345670f90351c5c31d22455d0307c5d9895fbdede7deeb215a7b60dbe", [:mix], [{:castore, "~> 0.1 or ~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:mint, "~> 1.5", [hex: :mint, repo: "hexpm", optional: true]}], "hexpm", "c4f9392d710582c7108b6b8c635f4981120ec4b2072adbd242290fc842338183"},