fix(tasks): make sure tasks are fully clickable
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
Resolves #3838
This commit is contained in:
parent
f7c06e53b7
commit
1cbb93ea9b
|
@ -3,7 +3,10 @@
|
||||||
<div
|
<div
|
||||||
:class="{'is-loading': taskService.loading}"
|
:class="{'is-loading': taskService.loading}"
|
||||||
class="task loader-container"
|
class="task loader-container"
|
||||||
@click.stop.self="openTaskDetail"
|
@mouseup.stop.self="openTaskDetail"
|
||||||
|
@mousedown.stop.self="focusTaskLink"
|
||||||
|
ref="taskContainerRef"
|
||||||
|
tabindex="-1"
|
||||||
>
|
>
|
||||||
<fancycheckbox
|
<fancycheckbox
|
||||||
:disabled="(isArchived || disabled) && !canMarkAsDone"
|
:disabled="(isArchived || disabled) && !canMarkAsDone"
|
||||||
|
@ -20,6 +23,8 @@
|
||||||
<div
|
<div
|
||||||
:class="{ 'done': task.done, 'show-project': showProject && project}"
|
:class="{ 'done': task.done, 'show-project': showProject && project}"
|
||||||
class="tasktext"
|
class="tasktext"
|
||||||
|
@mouseup.stop.self="openTaskDetail"
|
||||||
|
@mousedown.stop.self="focusTaskLink"
|
||||||
>
|
>
|
||||||
<span>
|
<span>
|
||||||
<router-link
|
<router-link
|
||||||
|
@ -313,13 +318,24 @@ function hideDeferDueDatePopup(e) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const taskLink = ref<HTMLElement | null>(null)
|
const taskLink = ref<HTMLElement | null>(null)
|
||||||
|
const taskContainerRef = ref<HTMLElement | null>(null)
|
||||||
|
|
||||||
|
function hasTextSelected() {
|
||||||
|
const isTextSelected = window.getSelection().toString()
|
||||||
|
return !(typeof isTextSelected === 'undefined' || isTextSelected === '' || isTextSelected === '\n')
|
||||||
|
}
|
||||||
|
|
||||||
function openTaskDetail() {
|
function openTaskDetail() {
|
||||||
const isTextSelected = window.getSelection().toString()
|
if (!hasTextSelected()) {
|
||||||
if (!isTextSelected) {
|
|
||||||
taskLink.value.$el.click()
|
taskLink.value.$el.click()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function focusTaskLink() {
|
||||||
|
if (!hasTextSelected()) {
|
||||||
|
taskContainerRef.value.focus()
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
Reference in New Issue