From 5a0980e55e40d37b9d2f631da888e2bcc12218cd Mon Sep 17 00:00:00 2001 From: Kailash Nadh Date: Sun, 20 Apr 2025 20:47:48 +0530 Subject: [PATCH] Add on-hover one-click `Copy` button to subscribers and campaigns tables UI. --- frontend/src/components/CopyText.vue | 8 ++++++-- frontend/src/views/Campaigns.vue | 5 ++++- frontend/src/views/Subscribers.vue | 4 ++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/frontend/src/components/CopyText.vue b/frontend/src/components/CopyText.vue index 9f14eee5..82b21469 100644 --- a/frontend/src/components/CopyText.vue +++ b/frontend/src/components/CopyText.vue @@ -1,6 +1,6 @@ @@ -11,10 +11,14 @@ export default { props: { text: { type: String, default: '' }, + hideText: { type: Boolean, default: false }, }, methods: { - onClick() { + onClick(e) { + e.preventDefault(); + e.stopPropagation(); + const input = document.createElement('input'); input.setAttribute('type', 'text'); input.style.opacity = '0'; diff --git a/frontend/src/views/Campaigns.vue b/frontend/src/views/Campaigns.vue index efdd4c45..c7021e78 100644 --- a/frontend/src/views/Campaigns.vue +++ b/frontend/src/views/Campaigns.vue @@ -72,10 +72,11 @@ {{ props.row.name }} +

- {{ props.row.subject }} +

@@ -265,11 +266,13 @@ import Vue from 'vue'; import { mapState } from 'vuex'; import CampaignPreview from '../components/CampaignPreview.vue'; import EmptyPlaceholder from '../components/EmptyPlaceholder.vue'; +import CopyText from '../components/CopyText.vue'; export default Vue.extend({ components: { CampaignPreview, EmptyPlaceholder, + CopyText, }, data() { diff --git a/frontend/src/views/Subscribers.vue b/frontend/src/views/Subscribers.vue index 5cfe2c1b..449708c4 100644 --- a/frontend/src/views/Subscribers.vue +++ b/frontend/src/views/Subscribers.vue @@ -108,6 +108,7 @@ {{ props.row.email }} + {{ $t(`subscribers.status.${props.row.status}`) }} @@ -130,6 +131,7 @@ {{ props.row.name }} + @@ -194,11 +196,13 @@ import EmptyPlaceholder from '../components/EmptyPlaceholder.vue'; import { uris } from '../constants'; import SubscriberBulkList from './SubscriberBulkList.vue'; import SubscriberForm from './SubscriberForm.vue'; +import CopyText from '../components/CopyText.vue'; export default Vue.extend({ components: { SubscriberForm, SubscriberBulkList, + CopyText, EmptyPlaceholder, },