diff --git a/packages/nc-gui/components/global/NcSlider.vue b/packages/nc-gui/components/global/NcSlider.vue
new file mode 100644
index 0000000000..7ed346e952
--- /dev/null
+++ b/packages/nc-gui/components/global/NcSlider.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
diff --git a/packages/nc-gui/components/project/auditTab/Audit.vue b/packages/nc-gui/components/project/auditTab/Audit.vue
index 0ddfb15f48..339e099dc3 100644
--- a/packages/nc-gui/components/project/auditTab/Audit.vue
+++ b/packages/nc-gui/components/project/auditTab/Audit.vue
@@ -81,12 +81,7 @@
diff --git a/packages/nc-gui/components/project/spreadsheet/components/MoreActions.vue b/packages/nc-gui/components/project/spreadsheet/components/MoreActions.vue
index 4841aa71fa..4a087c0bc5 100644
--- a/packages/nc-gui/components/project/spreadsheet/components/MoreActions.vue
+++ b/packages/nc-gui/components/project/spreadsheet/components/MoreActions.vue
@@ -104,7 +104,8 @@
:parsed-csv="parsedCsv"
@import="importData"
/>
-
+
+
@@ -117,10 +118,12 @@ import ColumnMappingModal from '~/components/project/spreadsheet/components/impo
import CSVTemplateAdapter from '~/components/import/templateParsers/CSVTemplateAdapter'
import { UITypes } from '~/components/project/spreadsheet/helpers/uiTypes'
import WebhookModal from '~/components/project/tableTabs/webhook/WebhookModal'
+import WebhookSlider from '~/components/project/tableTabs/webhook/WebhookSlider'
export default {
name: 'ExportImport',
components: {
+ WebhookSlider,
WebhookModal,
ColumnMappingModal,
DropOrSelectFileModal
diff --git a/packages/nc-gui/components/project/spreadsheet/components/SpreadsheetNavDrawer.vue b/packages/nc-gui/components/project/spreadsheet/components/SpreadsheetNavDrawer.vue
index 69e4d8cb1d..ece4f7f95c 100644
--- a/packages/nc-gui/components/project/spreadsheet/components/SpreadsheetNavDrawer.vue
+++ b/packages/nc-gui/components/project/spreadsheet/components/SpreadsheetNavDrawer.vue
@@ -286,6 +286,20 @@
+
+
+
+ mdi-hook
+ Webhooks
+
+
+
({
+ webhookSliderModal: false,
codeSnippetModal: false,
drag: false,
dragOptions: {
diff --git a/packages/nc-gui/components/project/tableTabs/webhook/WebhookEditor.vue b/packages/nc-gui/components/project/tableTabs/webhook/WebhookEditor.vue
index 0e419aaf12..e850c7de67 100644
--- a/packages/nc-gui/components/project/tableTabs/webhook/WebhookEditor.vue
+++ b/packages/nc-gui/components/project/tableTabs/webhook/WebhookEditor.vue
@@ -1,42 +1,41 @@
-
-
- mdi-arrow-left-bold
+
+
{{ meta.title }} : {{ hook.title || 'Webhook' }}
-
-
-
-
-
-
- Test webhook
-
-
-
- save
-
-
- {{ $t("general.save") }}
-
-
+
+
+
+ Test webhook
+
+
+
+ save
+
+
+ {{ $t("general.save") }}
+
+
+
+
-
-
-
-
-
-
+
+
-
-
+
-
-
-
-
-
-
-
- {{ notificationIcon[item] }}
-
-
-
- {{ item }}
-
-
-
-
+ :label="$t('general.notification')"
+ required
+ :items="notificationList"
+ :rules="[(v) => !!v || `${$t('general.required')}`]"
+ class="caption"
+ :prepend-inner-icon="notificationIcon[hook.notification.type]"
+ @change="onNotTypeChange"
+ >
+
+
+
+ {{ notificationIcon[item] }}
+
+
+
+ {{ item }}
+
+
+
+
+
@@ -195,6 +171,32 @@
+
+
+
+
+
+
+
+
+
Available context variables are
diff --git a/packages/nc-gui/components/project/tableTabs/webhook/WebhookList.vue b/packages/nc-gui/components/project/tableTabs/webhook/WebhookList.vue
index afb6abd09a..14223cbd10 100644
--- a/packages/nc-gui/components/project/tableTabs/webhook/WebhookList.vue
+++ b/packages/nc-gui/components/project/tableTabs/webhook/WebhookList.vue
@@ -1,7 +1,7 @@
- Webhooks
+ {{ meta.title }} : Webhooks
-
+
+
+
-
-
-
- {{ hook.title }}
-
-
-
-
{{ $t("general.event") }} : {{ hook.event }} {{
- hook.operation
- }}
-
-
-
{{
- $t("labels.notifyVia")
- }} : {{ hook.notification && hook.notification.type }}
-
+
+
+
+ mdi-hook
+
+
+
+
+ {{ hook.title }}
+
+
+
+
+ {{
+ $t("labels.notifyVia")
+ }} : {{ hook.notification && hook.notification.type }}
+
+
+
+
+ {{ hook.event }} {{
+ hook.operation
+ }}
+
+
+ mdi-delete-outline
+
-
-
- mdi-delete-outline
-
Webhooks list is empty, create new webhook by clicking 'Create webhook' button.
-
-
+
+
diff --git a/packages/nc-gui/helpers/index.js b/packages/nc-gui/helpers/index.js
index a711136d50..9907847208 100644
--- a/packages/nc-gui/helpers/index.js
+++ b/packages/nc-gui/helpers/index.js
@@ -1,3 +1,14 @@
+import dayjs from 'dayjs'
+
+const relativeTime = require('dayjs/plugin/relativeTime')
+const utc = require('dayjs/plugin/utc')
+dayjs.extend(utc)
+dayjs.extend(relativeTime)
+
+export function calculateDiff(date) {
+ return dayjs.utc(date).fromNow()
+}
+
export const isEmail = v => /^(([^<>()[\].,;:\s@"]+(\.[^<>()[\].,;:\s@"]+)*)|(".+"))@(([^<>()[\].,;:\s@"]+\.)+[^<>()[\].,;:\s@"]{2,})$/i.test(v)
// ref : https://stackoverflow.com/a/5717133