зеркало из https://github.com/nextcloud/text.git
Merge pull request #2668 from nextcloud/fix/link_handling
Link handling fixes
This commit is contained in:
Коммит
99ed401d8b
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "@nextcloud/text",
|
||||
"description": "Collaborative document editing",
|
||||
"version": "25.0.0-alpha.7",
|
||||
"version": "25.0.0-alpha.8",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Julius Härtl",
|
||||
|
|
|
@ -43,6 +43,7 @@ export default {
|
|||
link: {
|
||||
onClick: (event, attrs) => {
|
||||
this.$emit('click-link', event, attrs)
|
||||
return true
|
||||
},
|
||||
},
|
||||
}),
|
||||
|
@ -57,6 +58,22 @@ export default {
|
|||
},
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.$el.addEventListener('click', this.preventOpeningLinks, true)
|
||||
},
|
||||
|
||||
unmounted() {
|
||||
this.$el.removeEventListener('click', this.preventOpeningLinks, true)
|
||||
},
|
||||
|
||||
methods: {
|
||||
preventOpeningLinks(event) {
|
||||
// We use custom onClick handler only for left clicks
|
||||
if (event.target.closest('a') && event.button === 0 && !event.ctrlKey) {
|
||||
event.preventDefault()
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
|
@ -80,9 +80,7 @@ const parseHref = function(dom) {
|
|||
|
||||
const openLink = function(event, _attrs) {
|
||||
const linkElement = event.target.closest('a')
|
||||
event.stopPropagation()
|
||||
const htmlHref = linkElement.href
|
||||
if (event.button === 0 && !event.ctrlKey && htmlHref.startsWith(window.location.origin)) {
|
||||
const query = OC.parseQueryString(htmlHref)
|
||||
const fragment = OC.parseQueryString(htmlHref.split('#').pop())
|
||||
if (query.dir && fragment.relPath) {
|
||||
|
@ -102,7 +100,6 @@ const openLink = function(event, _attrs) {
|
|||
window.open(generateUrl(`/f/${query.fileId}`))
|
||||
return
|
||||
}
|
||||
}
|
||||
if (!markdownit.validateLink(htmlHref)) {
|
||||
console.error('Invalid link', htmlHref)
|
||||
return false
|
||||
|
|
|
@ -15,7 +15,12 @@ const clickHandler = ({ editor, type, onClick }) => {
|
|||
console.debug(link)
|
||||
return false
|
||||
}
|
||||
|
||||
// We use custom onClick handler only for left clicks
|
||||
if (event.button === 0 && !event.ctrlKey) {
|
||||
event.stopPropagation()
|
||||
return onClick?.(event, link.attrs)
|
||||
}
|
||||
},
|
||||
},
|
||||
})
|
||||
|
|
Загрузка…
Ссылка в новой задаче