diff options
author | Roland Synnestvedt <git@rsynnest.com> | 2017-12-19 15:10:18 -0800 |
---|---|---|
committer | Roland Synnestvedt <git@rsynnest.com> | 2017-12-19 15:10:18 -0800 |
commit | d52bcd48e9ddff7f99117034fa6180e89d7bc8c5 (patch) | |
tree | a86f4c431b4e4c7f931e245729c51a76da348ea0 | |
parent | 664058fa66b678ea92f62cbcc25a3f8d42ff51a4 (diff) | |
download | dokuwiki-d52bcd48e9ddff7f99117034fa6180e89d7bc8c5.tar.gz dokuwiki-d52bcd48e9ddff7f99117034fa6180e89d7bc8c5.zip |
If mediamanger is kept open, put cursor in image tag unless it's already inside an image tag
If it's already inside an image tag, move the cursor to the end of the current tag.
-rw-r--r-- | lib/scripts/media.js | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/lib/scripts/media.js b/lib/scripts/media.js index 70807bda2..1e9d0328f 100644 --- a/lib/scripts/media.js +++ b/lib/scripts/media.js @@ -941,15 +941,26 @@ var dw_mediamanager = { function dw_mediamanager_item_select(edid, mediaid, opts, align, keepopen) { var alignleft = ''; var alignright = ''; + + // Get the 2 characters after the cursor to check if we're currently inside an image tag + var cursorInImageTag = false; + var textArea = jQuery('#' + edid)[0]; + var selection = DWgetSelection(textArea); + selection.end = selection.end + 2; + var charsAfterCursor = selection.getText(); + if (charsAfterCursor === '}}') { + cursorInImageTag = true; + } + if (align !== '1') { alignleft = align === '2' ? '' : ' '; alignright = align === '4' ? '' : ' '; } - if (keepopen) { - insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|}}', '', ''); - } else { - insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|', '}}', ''); + if (keepopen && cursorInImageTag) { + selection.start = selection.start + 2; + DWsetSelection(selection); } + insertTags(edid, '{{' + alignleft + mediaid + opts + alignright + '|', '}}', ''); } jQuery(dw_mediamanager.init); |