diff --git a/client/components/open/integrations/components/SlackIntegrationActions.vue b/client/components/open/integrations/components/SlackIntegrationActions.vue
new file mode 100644
index 000000000..7a119521e
--- /dev/null
+++ b/client/components/open/integrations/components/SlackIntegrationActions.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
diff --git a/client/components/open/integrations/components/WebhookIntegrationActions.vue b/client/components/open/integrations/components/WebhookIntegrationActions.vue
new file mode 100644
index 000000000..05d619ea2
--- /dev/null
+++ b/client/components/open/integrations/components/WebhookIntegrationActions.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
diff --git a/client/components/pages/auth/components/RegisterForm.vue b/client/components/pages/auth/components/RegisterForm.vue
index d927b762d..01dd3538c 100644
--- a/client/components/pages/auth/components/RegisterForm.vue
+++ b/client/components/pages/auth/components/RegisterForm.vue
@@ -52,6 +52,21 @@
label="Confirm Password"
/>
+
+
+
+
+
+
import {opnFetch} from "~/composables/useOpnApi.js"
-import {fetchAllWorkspaces} from "~/stores/workspaces.js"
+import { fetchAllWorkspaces } from "~/stores/workspaces.js"
+import VueHcaptcha from '@hcaptcha/vue3-hcaptcha'
export default {
name: "RegisterForm",
- components: {},
+ components: {VueHcaptcha},
props: {
isQuick: {
type: Boolean,
@@ -146,6 +162,7 @@ export default {
formsStore: useFormsStore(),
workspaceStore: useWorkspacesStore(),
providersStore: useOAuthProvidersStore(),
+ runtimeConfig: useRuntimeConfig(),
logEvent: useAmplitude().logEvent,
$utm
}
@@ -159,12 +176,17 @@ export default {
password_confirmation: "",
agree_terms: false,
appsumo_license: null,
- utm_data: null
+ utm_data: null,
+ 'h-captcha-response': null
}),
- disableEmail:false
+ disableEmail: false,
+ hcaptcha: null
}),
computed: {
+ hCaptchaSiteKey() {
+ return this.runtimeConfig.public.hCaptchaSiteKey
+ },
hearAboutUsOptions() {
const options = [
{name: "Facebook", value: "facebook"},
@@ -187,6 +209,10 @@ export default {
},
mounted() {
+ if (this.hCaptchaSiteKey) {
+ this.hcaptcha = this.$refs.hcaptcha
+ }
+
// Set appsumo license
if (
this.$route.query.appsumo_license !== undefined &&
@@ -208,6 +234,10 @@ export default {
async register() {
let data
this.form.utm_data = this.$utm.value
+ if (this.hCaptchaSiteKey) {
+ this.form['h-captcha-response'] = document.getElementsByName('h-captcha-response')[0].value
+ this.hcaptcha.reset()
+ }
try {
// Register the user.
data = await this.form.post("/register")
diff --git a/client/data/forms/integrations.json b/client/data/forms/integrations.json
index a61ff56db..07bcf4329 100644
--- a/client/data/forms/integrations.json
+++ b/client/data/forms/integrations.json
@@ -4,6 +4,7 @@
"icon": "heroicons:envelope-20-solid",
"section_name": "Notifications",
"file_name": "EmailIntegration",
+ "actions_file_name": "EmailIntegrationActions",
"is_pro": false,
"crisp_help_page_slug": "can-i-receive-notifications-on-form-submissions-134svqv"
},
@@ -12,6 +13,7 @@
"icon": "mdi:slack",
"section_name": "Notifications",
"file_name": "SlackIntegration",
+ "actions_file_name": "SlackIntegrationActions",
"is_pro": true
},
"discord": {
@@ -19,6 +21,7 @@
"icon": "ic:baseline-discord",
"section_name": "Notifications",
"file_name": "DiscordIntegration",
+ "actions_file_name": "DiscordIntegrationActions",
"is_pro": true
},
"webhook": {
@@ -26,6 +29,7 @@
"icon": "material-symbols:webhook",
"section_name": "Automation",
"file_name": "WebhookIntegration",
+ "actions_file_name": "WebhookIntegrationActions",
"is_pro": false
},
"zapier": {
diff --git a/client/lib/utils.js b/client/lib/utils.js
index d1339a50e..8838818ca 100644
--- a/client/lib/utils.js
+++ b/client/lib/utils.js
@@ -109,3 +109,15 @@ export const customDomainUsed = function () {
return host !== appDomain && getDomain(host) !== appDomain
}
+
+export const mentionAsText = (content) => {
+ if (!content) return ''
+
+ // Parse the content and style mentions
+ return content.replace(
+ /]*>([^<]+)<\/span>/g,
+ (match, fieldId, fieldName, text) => {
+ return `${text}`
+ }
+ )
+}
\ No newline at end of file