aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorRoland Synnestvedt <git@rsynnest.com>2017-12-19 15:10:18 -0800
committerRoland Synnestvedt <git@rsynnest.com>2017-12-19 15:10:18 -0800
commitd52bcd48e9ddff7f99117034fa6180e89d7bc8c5 (patch)
treea86f4c431b4e4c7f931e245729c51a76da348ea0
parent664058fa66b678ea92f62cbcc25a3f8d42ff51a4 (diff)
downloaddokuwiki-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.js19
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);