From: Dan Brown Date: Sun, 18 Mar 2018 11:32:40 +0000 (+0000) Subject: Markdown editor image paste sets cursor correctly X-Git-Tag: v0.20.1~1^2~21 X-Git-Url: http://source.bookstackapp.com/bookstack/commitdiff_plain/d2eec4fbcef7f604e7afc01cd87286670c3f75c8 Markdown editor image paste sets cursor correctly Now sets cursor to alt text rather than end of placeholder image. Fixed #751 --- diff --git a/app/Http/Controllers/ImageController.php b/app/Http/Controllers/ImageController.php index a61f447eb..d71e38346 100644 --- a/app/Http/Controllers/ImageController.php +++ b/app/Http/Controllers/ImageController.php @@ -120,7 +120,7 @@ class ImageController extends Controller { $this->checkPermission('image-create-all'); $this->validate($request, [ - 'file' => 'is_image' + 'file' => 'required|is_image' ]); if (!$this->imageRepo->isValidType($type)) { diff --git a/resources/assets/js/components/markdown-editor.js b/resources/assets/js/components/markdown-editor.js index 3393829cc..c98bac3cb 100644 --- a/resources/assets/js/components/markdown-editor.js +++ b/resources/assets/js/components/markdown-editor.js @@ -255,7 +255,9 @@ class MarkdownEditor { let placeholderImage = window.baseUrl(`/loading.gif#upload${id}`); let selectedText = cm.getSelection(); let placeHolderText = `![${selectedText}](${placeholderImage})`; + let cursor = cm.getCursor(); cm.replaceSelection(placeHolderText); + cm.setCursor({line: cursor.line, ch: cursor.ch + selectedText.length + 2}); let remoteFilename = "image-" + Date.now() + "." + ext; let formData = new FormData(); @@ -264,7 +266,7 @@ class MarkdownEditor { window.$http.post('/images/gallery/upload', formData).then(resp => { replaceContent(placeholderImage, resp.data.thumbs.display); }).catch(err => { - events.emit('error', trans('errors.image_upload_error')); + window.$events.emit('error', trans('errors.image_upload_error')); replaceContent(placeHolderText, selectedText); console.log(err); });