diff --git a/js/src/components/Editor.vue b/js/src/components/Editor.vue index 85ad16f55..f44469bd8 100644 --- a/js/src/components/Editor.vue +++ b/js/src/components/Editor.vue @@ -387,6 +387,7 @@ export default class EditorComponent extends Vue { placement: 'top-start', inertia: true, duration: [400, 200], + // @ts-ignore for some reason showOnInit: true, arrow: true, arrowType: 'round', diff --git a/js/src/graphql/actor.ts b/js/src/graphql/actor.ts index 68e8c29b4..e26f197b6 100644 --- a/js/src/graphql/actor.ts +++ b/js/src/graphql/actor.ts @@ -70,7 +70,7 @@ query { }`; export const CURRENT_ACTOR_CLIENT = gql` - query { + query currentActor { currentActor @client { id, avatar { diff --git a/js/src/graphql/event.ts b/js/src/graphql/event.ts index b970e7300..72009bd33 100644 --- a/js/src/graphql/event.ts +++ b/js/src/graphql/event.ts @@ -289,6 +289,7 @@ export const EDIT_EVENT = gql` $picture: PictureInput, $onlineAddress: String, $phoneAddress: String, + $organizerActorId: ID, $category: String, $physicalAddress: AddressInput, $options: EventOptionsInput, @@ -307,6 +308,7 @@ export const EDIT_EVENT = gql` picture: $picture, onlineAddress: $onlineAddress, phoneAddress: $phoneAddress, + organizerActorId: $organizerActorId, category: $category, physicalAddress: $physicalAddress options: $options, diff --git a/js/src/views/Account/IdentityPickerWrapper.vue b/js/src/views/Account/IdentityPickerWrapper.vue index 87ad24574..ef98648b7 100644 --- a/js/src/views/Account/IdentityPickerWrapper.vue +++ b/js/src/views/Account/IdentityPickerWrapper.vue @@ -10,7 +10,7 @@ </div> </template> <script lang="ts"> -import { Component, Prop, Vue } from 'vue-property-decorator'; +import { Component, Prop, Vue, Watch } from 'vue-property-decorator'; import { IActor } from '@/types/actor'; import IdentityPicker from './IdentityPicker.vue'; @@ -22,6 +22,11 @@ export default class IdentityPickerWrapper extends Vue { isComponentModalActive: boolean = false; currentIdentity: IActor = this.value; + @Watch('value') + updateCurrentActor(value) { + this.currentIdentity = value; + } + relay(identity: IActor) { this.currentIdentity = identity; this.$emit('input', identity); @@ -36,4 +41,4 @@ export default class IdentityPickerWrapper extends Vue { height: 1.5em; vertical-align: text-bottom; } -</style> \ No newline at end of file +</style> diff --git a/lib/mobilizon_web/resolvers/event.ex b/lib/mobilizon_web/resolvers/event.ex index fd08e139a..630326abd 100644 --- a/lib/mobilizon_web/resolvers/event.ex +++ b/lib/mobilizon_web/resolvers/event.ex @@ -292,11 +292,15 @@ defmodule MobilizonWeb.Resolvers.Event do %{event_id: event_id} = args, %{context: %{current_user: user}} = _resolution ) do + require Logger + Logger.error(inspect(args)) # See https://github.com/absinthe-graphql/absinthe/issues/490 with args <- Map.put(args, :options, args[:options] || %{}), {:ok, %Event{} = event} <- Events.get_event_with_preload(event_id), + organizer_actor_id <- args |> Map.get(:organizer_actor_id, event.organizer_actor_id), {:is_owned, %Actor{} = organizer_actor} <- - User.owns_actor(user, event.organizer_actor_id), + User.owns_actor(user, organizer_actor_id), + :ok <- Logger.error(inspect(organizer_actor)), args <- Map.put(args, :organizer_actor, organizer_actor), {:ok, %Activity{data: %{"object" => %{"type" => "Event"}}}, %Event{} = event} <- MobilizonWeb.API.Events.update_event(args, event) do diff --git a/lib/mobilizon_web/schema/event.ex b/lib/mobilizon_web/schema/event.ex index 9f398f871..61b703ffb 100644 --- a/lib/mobilizon_web/schema/event.ex +++ b/lib/mobilizon_web/schema/event.ex @@ -299,6 +299,7 @@ defmodule MobilizonWeb.Schema.EventType do arg(:online_address, :string) arg(:phone_address, :string) + arg(:organizer_actor_id, :id) arg(:category, :string) arg(:physical_address, :address_input) arg(:options, :event_options_input) diff --git a/schema.graphql b/schema.graphql index 1dea5d5cd..6dd718245 100644 --- a/schema.graphql +++ b/schema.graphql @@ -1,5 +1,5 @@ # source: http://localhost:4000/api -# timestamp: Fri Nov 08 2019 17:20:47 GMT+0100 (Central European Standard Time) +# timestamp: Mon Nov 18 2019 16:00:35 GMT+0100 (Central European Standard Time) schema { query: RootQueryType @@ -1081,6 +1081,7 @@ type RootMutationType { joinOptions: EventJoinOptions = FREE onlineAddress: String options: EventOptionsInput + organizerActorId: ID phoneAddress: String physicalAddress: AddressInput @@ -1178,7 +1179,7 @@ type RootQueryType { reports(limit: Int = 10, page: Int = 1, status: ReportStatus = OPEN): [Report] """Reverse geocode coordinates""" - reverseGeocode(latitude: Float!, longitude: Float!): [Address] + reverseGeocode(latitude: Float!, locale: String = "en", longitude: Float!, zoom: Int = 15): [Address] """Search for an address""" searchAddress(limit: Int = 10, locale: String = "en", page: Int = 1, query: String!): [Address]