From 26cf89275853169250f5767629d7d51cf1b80c34 Mon Sep 17 00:00:00 2001 From: Thomas Citharel <thomas.citharel@framasoft.org> Date: Wed, 4 May 2022 07:02:16 +0000 Subject: [PATCH] Revert "Merge branch 'external-events' into 'main'" This reverts merge request !1223 --- .../Event/ExternalParticipationButton.vue | 27 ------------ js/src/graphql/event.ts | 6 --- js/src/types/enums.ts | 1 - js/src/types/event.model.ts | 6 --- js/src/views/Event/Edit.vue | 44 ++----------------- js/src/views/Event/Event.vue | 10 +---- .../activity_stream/converter/event.ex | 2 - lib/graphql/schema/event.ex | 6 --- lib/mobilizon/events/event.ex | 3 -- lib/mobilizon/events/events.ex | 3 +- ...1018230000_add_external_url_for_events.exs | 21 --------- schema.graphql | 12 ----- 12 files changed, 6 insertions(+), 135 deletions(-) delete mode 100644 js/src/components/Event/ExternalParticipationButton.vue mode change 100644 => 100755 js/src/views/Event/Event.vue delete mode 100644 priv/repo/migrations/20211018230000_add_external_url_for_events.exs diff --git a/js/src/components/Event/ExternalParticipationButton.vue b/js/src/components/Event/ExternalParticipationButton.vue deleted file mode 100644 index 535194949..000000000 --- a/js/src/components/Event/ExternalParticipationButton.vue +++ /dev/null @@ -1,27 +0,0 @@ -<template> - <div class="participation-button"> - <a - class="button is-large is-primary" - type="button" - target="_blank" - :href=" - event.externalParticipationUrl - ? encodeURI(`${event.externalParticipationUrl}?uuid=${event.uuid}`) - : '#' - " - :disabled="!event.externalParticipationUrl" - >{{ $t("Go to booking") }} - <b-icon style="margin-left: 0" icon="open-in-new" - /></a> - </div> -</template> - -<script lang="ts"> -import { Component, Prop, Vue } from "vue-property-decorator"; -import { IEvent } from "../../types/event.model"; - -@Component -export default class ExternalParticipationButton extends Vue { - @Prop({ required: true }) event!: IEvent; -} -</script> diff --git a/js/src/graphql/event.ts b/js/src/graphql/event.ts index e9f7682a7..605d9ddc3 100644 --- a/js/src/graphql/event.ts +++ b/js/src/graphql/event.ts @@ -21,7 +21,6 @@ const FULL_EVENT_FRAGMENT = gql` status visibility joinOptions - externalParticipationUrl draft language category @@ -122,7 +121,6 @@ export const FETCH_EVENT_BASIC = gql` id uuid joinOptions - externalParticipationUrl participantStats { going notApproved @@ -201,7 +199,6 @@ export const CREATE_EVENT = gql` $status: EventStatus $visibility: EventVisibility $joinOptions: EventJoinOptions - $externalParticipationUrl: String $draft: Boolean $tags: [String] $picture: MediaInput @@ -223,7 +220,6 @@ export const CREATE_EVENT = gql` status: $status visibility: $visibility joinOptions: $joinOptions - externalParticipationUrl: $externalParticipationUrl draft: $draft tags: $tags picture: $picture @@ -251,7 +247,6 @@ export const EDIT_EVENT = gql` $status: EventStatus $visibility: EventVisibility $joinOptions: EventJoinOptions - $externalParticipationUrl: String $draft: Boolean $tags: [String] $picture: MediaInput @@ -274,7 +269,6 @@ export const EDIT_EVENT = gql` status: $status visibility: $visibility joinOptions: $joinOptions - externalParticipationUrl: $externalParticipationUrl draft: $draft tags: $tags picture: $picture diff --git a/js/src/types/enums.ts b/js/src/types/enums.ts index 55732bd4e..1061d196b 100644 --- a/js/src/types/enums.ts +++ b/js/src/types/enums.ts @@ -64,7 +64,6 @@ export enum EventJoinOptions { FREE = "FREE", RESTRICTED = "RESTRICTED", INVITE = "INVITE", - EXTERNAL = "EXTERNAL", } export enum EventVisibilityJoinOptions { diff --git a/js/src/types/event.model.ts b/js/src/types/event.model.ts index 314d50c81..e06703665 100644 --- a/js/src/types/event.model.ts +++ b/js/src/types/event.model.ts @@ -42,7 +42,6 @@ interface IEventEditJSON { status: EventStatus; visibility: EventVisibility; joinOptions: EventJoinOptions; - externalParticipationUrl: string | null; draft: boolean; picture?: IMedia | { mediaId: string } | null; attributedToId: string | null; @@ -72,7 +71,6 @@ export interface IEvent { status: EventStatus; visibility: EventVisibility; joinOptions: EventJoinOptions; - externalParticipationUrl: string | null; draft: boolean; picture: IMedia | null; @@ -133,8 +131,6 @@ export class EventModel implements IEvent { joinOptions = EventJoinOptions.FREE; - externalParticipationUrl: string | null = null; - status = EventStatus.CONFIRMED; draft = true; @@ -200,7 +196,6 @@ export class EventModel implements IEvent { this.status = hash.status; this.visibility = hash.visibility; this.joinOptions = hash.joinOptions; - this.externalParticipationUrl = hash.externalParticipationUrl; this.draft = hash.draft; this.picture = hash.picture; @@ -253,7 +248,6 @@ export function toEditJSON(event: IEditableEvent): IEventEditJSON { category: event.category, visibility: event.visibility, joinOptions: event.joinOptions, - externalParticipationUrl: event.externalParticipationUrl, draft: event.draft, tags: event.tags.map((t) => t.title), onlineAddress: event.onlineAddress, diff --git a/js/src/views/Event/Edit.vue b/js/src/views/Event/Edit.vue index f26b73737..2240edf27 100644 --- a/js/src/views/Event/Edit.vue +++ b/js/src/views/Event/Edit.vue @@ -221,33 +221,9 @@ </b-radio> </div>--> - <div class="field"> - <label class="label">{{ $t("External registration") }}</label> - <b-switch v-model="externalParticipation"> - {{ - $t("I want to manage the registration with an external provider.") - }} - </b-switch> - </div> - - <div class="field" v-if="externalParticipation"> - <b-field :label="$t('URL')"> - <b-input - icon="link" - type="url" - v-model="event.externalParticipationUrl" - placeholder="URL" - /> - </b-field> - </div> - <div class="field" - v-if=" - config && - config.anonymous.participation.allowed && - !externalParticipation - " + v-if="config && config.anonymous.participation.allowed" > <label class="label">{{ $t("Anonymous participations") }}</label> <b-switch v-model="eventOptions.anonymousParticipation"> @@ -270,21 +246,21 @@ </b-switch> </div> - <div class="field" v-if="!externalParticipation"> + <div class="field"> <label class="label">{{ $t("Participation approval") }}</label> <b-switch v-model="needsApproval">{{ $t("I want to approve every participation request") }}</b-switch> </div> - <div class="field" v-if="!externalParticipation"> + <div class="field"> <label class="label">{{ $t("Number of places") }}</label> <b-switch v-model="limitedPlaces">{{ $t("Limited number of places") }}</b-switch> </div> - <div class="box" v-if="limitedPlaces && !externalParticipation"> + <div class="box" v-if="limitedPlaces"> <b-field :label="$t('Number of places')" label-for="number-of-places"> <b-numberinput controls-position="compact" @@ -1194,18 +1170,6 @@ export default class EditEvent extends Vue { } } - get externalParticipation(): boolean { - return this.event?.joinOptions == EventJoinOptions.EXTERNAL; - } - - set externalParticipation(value: boolean) { - if (value === true) { - this.event.joinOptions = EventJoinOptions.EXTERNAL; - } else { - this.event.joinOptions = EventJoinOptions.FREE; - } - } - get checkTitleLength(): Array<string | undefined> { return this.event.title.length > 80 ? ["is-info", this.$t("The event title will be ellipsed.") as string] diff --git a/js/src/views/Event/Event.vue b/js/src/views/Event/Event.vue old mode 100644 new mode 100755 index e97cb2b6b..ad5cfc7da --- a/js/src/views/Event/Event.vue +++ b/js/src/views/Event/Event.vue @@ -94,13 +94,7 @@ </span> </div> <div class="column is-3-tablet"> - <external-participation-button - v-if="event.joinOptions === EventJoinOptions.EXTERNAL" - :event="event" - :current-actor="currentActor" - /> <participation-section - v-else :participation="participations[0]" :event="event" :anonymousParticipation="anonymousParticipation" @@ -126,7 +120,7 @@ <tag>{{ organizer.domain }}</tag> </a> </template> - <p v-if="event.joinOptions !== EventJoinOptions.EXTERNAL"> + <p> <router-link class="participations-link" v-if="canManageEvent && event.draft === false" @@ -514,7 +508,6 @@ import { CREATE_REPORT } from "../../graphql/report"; import EventMixin from "../../mixins/event"; import IdentityPicker from "../Account/IdentityPicker.vue"; import ParticipationSection from "../../components/Participation/ParticipationSection.vue"; -import ExternalParticipationButton from "../../components/Event/ExternalParticipationButton.vue"; import RouteName from "../../router/name"; import CommentTree from "../../components/Comment/CommentTree.vue"; import "intersection-observer"; @@ -549,7 +542,6 @@ import { IUser } from "@/types/current-user.model"; ReportModal, IdentityPicker, ParticipationSection, - ExternalParticipationButton, CommentTree, Tag, PopoverActorCard, diff --git a/lib/federation/activity_stream/converter/event.ex b/lib/federation/activity_stream/converter/event.ex index bd87e99a6..6328b56f6 100644 --- a/lib/federation/activity_stream/converter/event.ex +++ b/lib/federation/activity_stream/converter/event.ex @@ -78,7 +78,6 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do visibility: visibility, join_options: Map.get(object, "joinMode", "free"), local: is_local?(object["id"]), - external_participation_url: object["externalParticipationUrl"], options: options, metadata: metadata, status: object |> Map.get("ical:status", "CONFIRMED") |> String.downcase(), @@ -130,7 +129,6 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do "mediaType" => "text/html", "startTime" => event.begins_on |> shift_tz(event.options.timezone) |> date_to_string(), "joinMode" => to_string(event.join_options), - "externalParticipationUrl" => event.external_participation_url, "endTime" => event.ends_on |> shift_tz(event.options.timezone) |> date_to_string(), "tag" => event.tags |> build_tags(), "maximumAttendeeCapacity" => event.options.maximum_attendee_capacity, diff --git a/lib/graphql/schema/event.ex b/lib/graphql/schema/event.ex index 2ed720cd7..9a4dd9ea3 100644 --- a/lib/graphql/schema/event.ex +++ b/lib/graphql/schema/event.ex @@ -30,7 +30,6 @@ defmodule Mobilizon.GraphQL.Schema.EventType do field(:status, :event_status, description: "Status of the event") field(:visibility, :event_visibility, description: "The event's visibility") field(:join_options, :event_join_options, description: "The event's visibility") - field(:external_participation_url, :string, description: "External URL for participation") field(:picture, :media, description: "The event's picture", @@ -124,7 +123,6 @@ defmodule Mobilizon.GraphQL.Schema.EventType do value(:free, description: "Anyone can join and is automatically accepted") value(:restricted, description: "Manual acceptation") value(:invite, description: "Participants must be invited") - value(:external, description: "External registration") end @desc "The list of possible options for the event's status" @@ -381,8 +379,6 @@ defmodule Mobilizon.GraphQL.Schema.EventType do description: "The event's options to join" ) - arg(:external_participation_url, :string, description: "External URL for participation") - arg(:tags, list_of(:string), default_value: [], description: "The list of tags associated to the event" @@ -443,8 +439,6 @@ defmodule Mobilizon.GraphQL.Schema.EventType do description: "The event's options to join" ) - arg(:external_participation_url, :string, description: "External URL for participation") - arg(:tags, list_of(:string), description: "The list of tags associated to the event") arg(:picture, :media_input, diff --git a/lib/mobilizon/events/event.ex b/lib/mobilizon/events/event.ex index 4ef3247df..f618e1ab2 100644 --- a/lib/mobilizon/events/event.ex +++ b/lib/mobilizon/events/event.ex @@ -47,7 +47,6 @@ defmodule Mobilizon.Events.Event do draft: boolean, visibility: atom(), join_options: atom(), - external_participation_url: String.t(), publish_at: DateTime.t() | nil, uuid: Ecto.UUID.t(), online_address: String.t() | nil, @@ -82,7 +81,6 @@ defmodule Mobilizon.Events.Event do :local, :visibility, :join_options, - :external_participation_url, :publish_at, :online_address, :phone_address, @@ -107,7 +105,6 @@ defmodule Mobilizon.Events.Event do field(:draft, :boolean, default: false) field(:visibility, EventVisibility, default: :public) field(:join_options, JoinOptions, default: :free) - field(:external_participation_url, :string) field(:publish_at, :utc_datetime) field(:uuid, Ecto.UUID, default: Ecto.UUID.generate()) field(:online_address, :string) diff --git a/lib/mobilizon/events/events.ex b/lib/mobilizon/events/events.ex index 264a469f0..8287b4e9d 100644 --- a/lib/mobilizon/events/events.ex +++ b/lib/mobilizon/events/events.ex @@ -46,8 +46,7 @@ defmodule Mobilizon.Events do defenum(JoinOptions, :join_options, [ :free, :restricted, - :invite, - :external + :invite ]) defenum(EventStatus, :event_status, [ diff --git a/priv/repo/migrations/20211018230000_add_external_url_for_events.exs b/priv/repo/migrations/20211018230000_add_external_url_for_events.exs deleted file mode 100644 index 988f79c15..000000000 --- a/priv/repo/migrations/20211018230000_add_external_url_for_events.exs +++ /dev/null @@ -1,21 +0,0 @@ -defmodule Mobilizon.Storage.Repo.Migrations.AddExternalUrlForEvents do - use Ecto.Migration - alias Mobilizon.Events.JoinOptions - - def change do - alter table(:events) do - add(:external_participation_url, :string) - end - - execute("ALTER TABLE events ALTER COLUMN join_options TYPE VARCHAR USING join_options::text") - execute("ALTER TABLE events ALTER COLUMN join_options DROP DEFAULT") - JoinOptions.drop_type() - JoinOptions.create_type() - - execute( - "ALTER TABLE events ALTER COLUMN join_options TYPE join_options USING join_options::join_options" - ) - - execute("ALTER TABLE events ALTER COLUMN join_options SET DEFAULT 'free'::join_options") - end -end diff --git a/schema.graphql b/schema.graphql index 4e920170e..65907e253 100644 --- a/schema.graphql +++ b/schema.graphql @@ -1551,9 +1551,6 @@ type RootMutationType { "The event's options to join" joinOptions: EventJoinOptions - "External URL for participation" - externalParticipationUrl: String - "The list of tags associated to the event" tags: [String] @@ -1623,9 +1620,6 @@ type RootMutationType { "The event's options to join" joinOptions: EventJoinOptions - "External URL for participation" - externalParticipationUrl: String - "The list of tags associated to the event" tags: [String] @@ -2968,9 +2962,6 @@ type Event implements ActivityObject & Interactable & ActionLogObject { "The event's visibility" joinOptions: EventJoinOptions - "External URL for participation" - externalParticipationUrl: String - "The event's picture" picture: Media @@ -3159,9 +3150,6 @@ enum EventJoinOptions { "Participants must be invited" INVITE - - "External registration" - EXTERNAL } type InstanceFeeds {