diff --git a/src/components/LinkItems/Item.vue b/src/components/LinkItems/Item.vue
index 414706ef..024de6f2 100644
--- a/src/components/LinkItems/Item.vue
+++ b/src/components/LinkItems/Item.vue
@@ -141,7 +141,7 @@ export default {
hyperLinkHref() {
const nothing = '#';
if (this.isEditMode) return nothing;
- const noAnchorNeeded = ['modal', 'workspace'];
+ const noAnchorNeeded = ['modal', 'workspace', 'clipboard'];
return noAnchorNeeded.includes(this.accumulatedTarget) ? nothing : this.url;
},
},
@@ -174,6 +174,9 @@ export default {
this.$emit('triggerModal', this.url);
} else if (this.accumulatedTarget === 'workspace') {
router.push({ name: 'workspace', query: { url: this.url } });
+ } else if (this.accumulatedTarget === 'clipboard') {
+ navigator.clipboard.writeText(this.url);
+ this.$toasted.show(this.$t('context-menus.item.copied-toast'));
} else {
this.$emit('itemClicked');
}
@@ -226,6 +229,7 @@ export default {
case 'top': return '"\\f102"';
case 'modal': return '"\\f2d0"';
case 'workspace': return '"\\f0b1"';
+ case 'clipboard': return '"\\f0ea"';
default: return '"\\f054"';
}
},
@@ -279,6 +283,10 @@ export default {
case 'workspace':
router.push({ name: 'workspace', query: { url } });
break;
+ case 'clipboard':
+ navigator.clipboard.writeText(url);
+ this.$toasted.show(this.$t('context-menus.item.copied-toast'));
+ break;
default: window.open(url, '_blank');
}
},
@@ -546,4 +554,7 @@ a.item.is-edit-mode {
.disabled-link {
pointer-events: none;
}
+.tooltip.item-description-tooltip {
+ z-index: 7;
+}
diff --git a/src/components/LinkItems/ItemContextMenu.vue b/src/components/LinkItems/ItemContextMenu.vue
index 1d29a756..6fc9131f 100644
--- a/src/components/LinkItems/ItemContextMenu.vue
+++ b/src/components/LinkItems/ItemContextMenu.vue
@@ -23,6 +23,10 @@