Merge branch 'add-visio-metadata' into 'master'

Add some visio services to preconfigured metadata

See merge request framasoft/mobilizon!1037
This commit is contained in:
Thomas Citharel 2021-08-17 09:21:50 +00:00
commit 7403bbbd60
8 changed files with 193 additions and 2 deletions

View File

@ -140,6 +140,9 @@ export default class EventMetadataList extends Vue {
[EventMetadataCategories.SOCIAL]: this.$t("Social") as string, [EventMetadataCategories.SOCIAL]: this.$t("Social") as string,
[EventMetadataCategories.DETAILS]: this.$t("Details") as string, [EventMetadataCategories.DETAILS]: this.$t("Details") as string,
[EventMetadataCategories.BOOKING]: this.$t("Booking") as string, [EventMetadataCategories.BOOKING]: this.$t("Booking") as string,
[EventMetadataCategories.VIDEO_CONFERENCE]: this.$t(
"Video Conference"
) as string,
}; };
get filteredDataArray(): GroupedIEventMetadata { get filteredDataArray(): GroupedIEventMetadata {

View File

@ -0,0 +1,38 @@
<template>
<div class="etherpad">
<div class="etherpad-container" v-if="metadata">
<iframe
:src="`${metadata.value}?showChat=false&showLineNumbers=false`"
width="600"
height="400"
></iframe>
</div>
</div>
</template>
<script lang="ts">
import { IEventMetadataDescription } from "@/types/event-metadata";
import { PropType } from "vue";
import { Component, Prop, Vue } from "vue-property-decorator";
@Component
export default class EtherpadIntegration extends Vue {
@Prop({ type: Object as PropType<IEventMetadataDescription>, required: true })
metadata!: IEventMetadataDescription;
}
</script>
<style lang="scss" scoped>
.etherpad {
.etherpad-container {
padding-top: 56.25%;
position: relative;
height: 0;
iframe {
position: absolute;
width: 100%;
height: 100%;
top: 0;
}
}
}
</style>

View File

@ -0,0 +1,38 @@
<template>
<div class="jitsi-meet">
<div class="jitsi-meet-video" v-if="metadata">
<iframe
allow="camera; microphone; fullscreen; display-capture; autoplay"
:src="metadata.value"
style="height: 100%; width: 100%; border: 0px"
></iframe>
</div>
</div>
</template>
<script lang="ts">
import { IEventMetadataDescription } from "@/types/event-metadata";
import { PropType } from "vue";
import { Component, Prop, Vue } from "vue-property-decorator";
@Component
export default class JitsiMeetIntegration extends Vue {
@Prop({ type: Object as PropType<IEventMetadataDescription>, required: true })
metadata!: IEventMetadataDescription;
}
</script>
<style lang="scss" scoped>
.jitsi-meet {
.jitsi-meet-video {
padding-top: 56.25%;
position: relative;
height: 0;
iframe {
position: absolute;
width: 100%;
height: 100%;
top: 0;
}
}
}
</style>

View File

@ -1128,5 +1128,19 @@
"Redirecting in progress…": "Redirecting in progress…", "Redirecting in progress…": "Redirecting in progress…",
"Zoom in": "Zoom in", "Zoom in": "Zoom in",
"Zoom out": "Zoom out", "Zoom out": "Zoom out",
"Show me where I am": "Show me where I am" "Show me where I am": "Show me where I am",
"Video Conference": "Video Conference",
"Jisti Meet": "Jisti Meet",
"The Jitsi Meet video teleconference URL": "The Jitsi Meet video teleconference URL",
"Zoom": "Zoom",
"The Zoom video teleconference URL": "The Zoom video teleconference URL",
"Microsoft Teams": "Microsoft Teams",
"The Microsoft Teams video teleconference URL": "The Microsoft Teams video teleconference URL",
"Google Meet": "Google Meet",
"The Google Meet video teleconference URL": "The Google Meet video teleconference URL",
"Big Blue Button": "Big Blue Button",
"The Big Blue Button video teleconference URL": "The Big Blue Button video teleconference URL",
"Etherpad notes": "Etherpad notes",
"The URL of a pad where notes are being taken collaboratively": "The URL of a pad where notes are being taken collaboratively",
"https://mensuel.framapad.org/p/some-secret-token": "https://mensuel.framapad.org/p/some-secret-token"
} }

View File

@ -1219,5 +1219,19 @@
"Redirecting in progress…": "Redirection en cours…", "Redirecting in progress…": "Redirection en cours…",
"Zoom in": "Zoomer", "Zoom in": "Zoomer",
"Zoom out": "Dézoomer", "Zoom out": "Dézoomer",
"Show me where I am": "Afficher ma position" "Show me where I am": "Afficher ma position",
"Video Conference": "Visio-conférence",
"Jisti Meet": "Jitsi Meet",
"The Jitsi Meet video teleconference URL": "L'URL de visio-conférence Jitsi Meet",
"Zoom": "Zoom",
"The Zoom video teleconference URL": "L'URL de visio-conférence Zoom",
"Microsoft Teams": "Microsoft Teams",
"The Microsoft Teams video teleconference URL": "L'URL de visio-conférence Microsoft Teams",
"Google Meet": "Google Meet",
"The Google Meet video teleconference URL": "L'URL de visio-conférence Google Meet",
"Big Blue Button": "Big Blue Button",
"The Big Blue Button video teleconference URL": "L'URL de visio-conférence Big Blue Button",
"Etherpad notes": "Notes sur Etherpad",
"The URL of a pad where notes are being taken collaboratively": "L'URL d'un pad où les notes sont prises collaborativement",
"https://mensuel.framapad.org/p/some-secret-token": "https://mensuel.framapad.org/p/un-jeton-secret"
} }

View File

@ -149,6 +149,21 @@ export const eventMetaDataList: IEventMetadataDescription[] = [
keyType: EventMetadataKeyType.URL, keyType: EventMetadataKeyType.URL,
category: EventMetadataCategories.TOOLS, category: EventMetadataCategories.TOOLS,
}, },
{
icon: "file-document-edit",
key: "mz:notes:etherpad:url",
label: i18n.t("Etherpad notes") as string,
description: i18n.t(
"The URL of a pad where notes are being taken collaboratively"
) as string,
value: "",
placeholder: i18n.t(
"https://mensuel.framapad.org/p/some-secret-token"
) as string,
type: EventMetadataType.STRING,
keyType: EventMetadataKeyType.URL,
category: EventMetadataCategories.TOOLS,
},
{ {
icon: "twitter", icon: "twitter",
key: "mz:social:twitter:account", key: "mz:social:twitter:account",
@ -209,4 +224,62 @@ export const eventMetaDataList: IEventMetadataDescription[] = [
keyType: EventMetadataKeyType.URL, keyType: EventMetadataKeyType.URL,
category: EventMetadataCategories.DETAILS, category: EventMetadataCategories.DETAILS,
}, },
{
icon: "webcam",
key: "mz:visio:jitsi_meet",
label: i18n.t("Jisti Meet") as string,
description: i18n.t("The Jitsi Meet video teleconference URL") as string,
value: "",
type: EventMetadataType.STRING,
keyType: EventMetadataKeyType.URL,
category: EventMetadataCategories.VIDEO_CONFERENCE,
placeholder: "https://meet.jit.si/AFewWords",
},
{
icon: "webcam",
key: "mz:visio:zoom",
label: i18n.t("Zoom") as string,
description: i18n.t("The Zoom video teleconference URL") as string,
value: "",
type: EventMetadataType.STRING,
keyType: EventMetadataKeyType.URL,
category: EventMetadataCategories.VIDEO_CONFERENCE,
pattern: /https:\/\/.*\.?zoom.us\/.*/,
},
{
icon: "microsoft-teams",
key: "mz:visio:microsoft_teams",
label: i18n.t("Microsoft Teams") as string,
description: i18n.t(
"The Microsoft Teams video teleconference URL"
) as string,
value: "",
type: EventMetadataType.STRING,
keyType: EventMetadataKeyType.URL,
category: EventMetadataCategories.VIDEO_CONFERENCE,
pattern: /https:\/\/teams\.live\.com\/meet\/.+/,
},
{
icon: "google-hangouts",
key: "mz:visio:google_meet",
label: i18n.t("Google Meet") as string,
description: i18n.t("The Google Meet video teleconference URL") as string,
value: "",
type: EventMetadataType.STRING,
keyType: EventMetadataKeyType.URL,
category: EventMetadataCategories.VIDEO_CONFERENCE,
pattern: /https:\/\/meet\.google\.com\/.+/,
},
{
icon: "webcam",
key: "mz:visio:big_blue_button",
label: i18n.t("Big Blue Button") as string,
description: i18n.t(
"The Big Blue Button video teleconference URL"
) as string,
value: "",
type: EventMetadataType.STRING,
keyType: EventMetadataKeyType.URL,
category: EventMetadataCategories.VIDEO_CONFERENCE,
},
]; ];

View File

@ -274,4 +274,5 @@ export enum EventMetadataCategories {
TOOLS = "TOOLS", TOOLS = "TOOLS",
DETAILS = "DETAILS", DETAILS = "DETAILS",
BOOKING = "BOOKING", BOOKING = "BOOKING",
VIDEO_CONFERENCE = "VIDEO_CONFERENCE",
} }

View File

@ -533,6 +533,14 @@ import { eventMetaDataList } from "../../services/EventMetadata";
import( import(
/* webpackChunkName: "YouTubeIntegration" */ "../../components/Event/Integrations/YouTube.vue" /* webpackChunkName: "YouTubeIntegration" */ "../../components/Event/Integrations/YouTube.vue"
), ),
"integration-jitsi-meet": () =>
import(
/* webpackChunkName: "JitsiMeetIntegration" */ "../../components/Event/Integrations/JitsiMeet.vue"
),
"integration-etherpad": () =>
import(
/* webpackChunkName: "EtherpadIntegration" */ "../../components/Event/Integrations/Etherpad.vue"
),
}, },
apollo: { apollo: {
event: { event: {
@ -1087,6 +1095,8 @@ export default class Event extends EventMixin {
"mz:live:twitch:url": "integration-twitch", "mz:live:twitch:url": "integration-twitch",
"mz:live:peertube:url": "integration-peertube", "mz:live:peertube:url": "integration-peertube",
"mz:live:youtube:url": "integration-youtube", "mz:live:youtube:url": "integration-youtube",
"mz:visio:jitsi_meet": "integration-jitsi-meet",
"mz:notes:etherpad:url": "integration-etherpad",
}; };
get integrations(): Record<string, IEventMetadataDescription> { get integrations(): Record<string, IEventMetadataDescription> {