This commit is contained in:
romankko2 committed 2024-07-02 15:45:10 +02:00
1 parent ef7ab9dd17
commit 1b7315617f
4 files changed
+105 -29

No files matched your search

@@ -4,9 +4,13 @@
<section v-html="description" class="description-detail px-2 py-2 w-100 rounded mt-2" />
</div>
<div v-if="hasSubtaskDescLinks" class="px-5">
<div v-if="subtaskDescLinks?.length > 0" class="px-5 d-flex flex-column">
<p class="py-3">Odkazy na server</p>
<p class="server-links" v-html="subtaskDescLinks" />
<div v-for="index in subtaskDescLinks" :key="'subtask-' + index" class="server-links my-1 rounded-pill text-truncate position-relative">
<a :href="index">{{ index }}</a>
<p v-if="!copiedIndices.includes('subtask-' + index)" class="copy-btn" @click.stop="copyToClipboard('subtask-', index)">Copy</p>
<p v-else class="copying-btn">Copied!</p>
</div>
</div>
<div class="px-5 py-5 border-bottom" v-if="mastertaskDescription">
@@ -14,14 +18,18 @@
<section v-html="mastertaskDescription" class="description-detail px-2 py-2 w-100 rounded mt-2" />
</div>
<div v-if="hasSubtaskMTDescLinks" class="px-5">
<div v-if="subtaskMTDecsLinks?.length > 0" class="px-5 d-flex flex-column">
<p class="py-3">Odkazy na server</p>
<p class="server-links" v-html="subtaskMTDecsLinks" />
<div v-for="index in subtaskMTDecsLinks" :key="'mastertask-' + index" class="server-links my-1 rounded-pill text-truncate position-relative">
<a :href="index">{{ index }}</a>
<p v-if="!copiedIndices.includes('mastertask-' + index)" class="copy-btn" @click.stop="copyToClipboard('mastertask-', index)">Copy</p>
<p v-else class="copying-btn">Copied!</p>
</div>
</div>
</template>
<script>
import { getServerLinks } from '@/plugins/tm@_utils/server-links.utils'
import { getServerLinks, detectOS } from '@/plugins/tm@_utils/server-links.utils'
export default {
props: {
@@ -36,6 +44,12 @@ export default {
}
},
data() {
return {
copiedIndices: []
}
},
computed: {
subtaskDescLinks() {
return getServerLinks(this.description)
@@ -43,14 +57,21 @@ export default {
subtaskMTDecsLinks() {
return getServerLinks(this.mastertaskDescription)
},
}
},
hasSubtaskDescLinks() {
return this.subtaskDescLinks.trim().length > 0
},
hasSubtaskMTDescLinks() {
return this.subtaskMTDecsLinks.trim().length > 0
methods: {
copyToClipboard(prefix, index) {
const fullIndex = prefix + index
const os = detectOS()
navigator.clipboard.writeText(os + ': ' + index).then(() => {
this.copiedIndices.push(fullIndex)
setTimeout(() => {
const idx = this.copiedIndices.indexOf(fullIndex)
if (idx > -1)
this.copiedIndices.splice(idx, 1)
}, 1000)
})
}
}
}