Compare commits

...

16 Commits
main ... main

Author SHA1 Message Date
Devadatta Sahoo
ba672a117e Making changes as per suggestion at #2442 (comment)
All checks were successful
continuous-integration/drone/pr Build is passing
2024-07-19 13:37:41 +05:30
Devadatta Sahoo
79dfa36cf7 Merge branch 'main' of ssh://kolaente.dev:9022/vikunja/vikunja 2024-07-19 13:31:22 +05:30
Devadatta Sahoo
b742f2334e Merge branch 'main' of ssh://kolaente.dev:9022/vikunja/vikunja
All checks were successful
continuous-integration/drone/pr Build is passing
2024-07-17 20:43:57 +05:30
Devadatta Sahoo
9c0ce234f9 Merge branch 'main' of ssh://kolaente.dev:9022/vikunja/vikunja 2024-07-10 11:58:36 +05:30
Devadatta Sahoo
6b9830aea7 Modifying as per suggestions at #2442 (comment)
All checks were successful
continuous-integration/drone/pr Build is passing
2024-06-27 20:27:59 +05:30
Devadatta Sahoo
d7de198749 Merge branch 'main' of ssh://kolaente.dev:9022/vikunja/vikunja 2024-06-27 17:39:10 +05:30
Devadatta Sahoo
0d529c515c Merge branch 'main' of ssh://kolaente.dev:9022/vikunja/vikunja
All checks were successful
continuous-integration/drone/pr Build is passing
2024-06-22 09:22:16 +05:30
Devadatta Sahoo
ea10c2940c Modifying as per suggestions at #2442 (comment)
All checks were successful
continuous-integration/drone/pr Build is passing
2024-06-21 14:05:39 +05:30
Devadatta Sahoo
7299371283 Merge branch 'main' of ssh://kolaente.dev:9022/vikunja/vikunja 2024-06-21 13:20:59 +05:30
Devadatta Sahoo
160e07e2dd Modifying as per suggestions at #2442 (comment) and #2442 (comment)
All checks were successful
continuous-integration/drone/pr Build is passing
2024-06-20 15:39:52 +05:30
Devadatta Sahoo
42c842f3d8 Merge branch 'main' of ssh://kolaente.dev:9022/vikunja/vikunja 2024-06-20 15:38:27 +05:30
Devadatta Sahoo
b012b785b2 Fixing case for Icon
All checks were successful
continuous-integration/drone/pr Build is passing
2024-06-19 22:06:22 +05:30
Devadatta Sahoo
e9c67ebbdc Merge branch 'main' of ssh://kolaente.dev:9022/vikunja/vikunja
Some checks failed
continuous-integration/drone/pr Build is failing
2024-06-19 21:08:31 +05:30
Devadatta Sahoo
24fff2d83d Updating as per suggestions at #2442 (comment)
Some checks failed
continuous-integration/drone/pr Build is failing
2024-06-19 21:07:02 +05:30
Devadatta Sahoo
2a318c296b Updating as per suggestions at #2442 (comment) and #2442 (comment)
All checks were successful
continuous-integration/drone/pr Build is passing
2024-06-19 17:46:08 +05:30
Devadatta Sahoo
3497127792 Resolves #2441
All checks were successful
continuous-integration/drone/pr Build is passing
2024-06-18 22:44:55 +05:30
2 changed files with 33 additions and 2 deletions

@ -22,6 +22,7 @@
</span>
<div
v-for="c in comments"
:id="`comment-${c.id}`"
:key="c.id"
class="media comment"
>
@ -56,6 +57,13 @@
>
· {{ $t('task.comment.edited', {date: formatDateSince(c.updated)}) }}
</span>
<a
v-tooltip="$t('task.comment.permalink')"
:href="`#comment-${c.id}`"
class="comment-permalink"
:title="$t('task.comment.permalink')"
@click.prevent.stop="copy(getCommentUrl(`${c.id}`))"
><Icon icon="link" /></a>
<CustomTransition name="fade">
<span
v-if="
@ -199,6 +207,7 @@ import {getAvatarUrl, getDisplayName} from '@/models/user'
import {useConfigStore} from '@/stores/config'
import {useAuthStore} from '@/stores/auth'
import Reactions from '@/components/input/Reactions.vue'
import { useCopyToClipboard } from '@/composables/useCopyToClipboard'
const props = withDefaults(defineProps<{
taskId: number,
@ -207,6 +216,8 @@ const props = withDefaults(defineProps<{
canWrite: true,
})
const copy = useCopyToClipboard()
const {t} = useI18n({useScope: 'global'})
const configStore = useConfigStore()
const authStore = useAuthStore()
@ -242,6 +253,8 @@ const actions = computed(() => {
])))
})
const frontendUrl = computed(() => configStore.frontendUrl)
async function attachmentUpload(files: File[] | FileList): (Promise<string[]>) {
const uploadPromises: Promise<string>[] = []
@ -364,6 +377,10 @@ async function deleteComment(commentToDelete: ITaskComment) {
showDeleteModal.value = false
}
}
function getCommentUrl(commentId: string) {
return `${frontendUrl.value}${location.pathname}${location.search}#comment-${commentId}`
}
</script>
<style lang="scss" scoped>
@ -391,10 +408,23 @@ async function deleteComment(commentToDelete: ITaskComment) {
}
span {
span,
.comment-permalink {
font-size: .75rem;
line-height: 1;
}
.comment-permalink {
font-size: 1rem;
border: 1px solid transparent;
padding: 0.25rem;
border-radius: 1rem;
color: var(--grey, hsl(0, 0%, 48%));
}
.comment-permalink:hover {
color: var(--grey-dark, hsl(0, 0%, 29%));
border-color: var(--grey-dark, hsl(0, 0%, 29%));
}
}
.image.is-avatar {

@ -848,7 +848,8 @@
"delete": "Delete this comment",
"deleteText1": "Are you sure you want to delete this comment?",
"deleteSuccess": "The comment was deleted successfully.",
"addedSuccess": "The comment was added successfully."
"addedSuccess": "The comment was added successfully.",
"permalink": "Copy permalink to this comment"
},
"deferDueDate": {
"title": "Defer due date",