From d2eec4fbcef7f604e7afc01cd87286670c3f75c8 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Sun, 18 Mar 2018 11:32:40 +0000 Subject: [PATCH] Markdown editor image paste sets cursor correctly Now sets cursor to alt text rather than end of placeholder image. Fixed #751 --- app/Http/Controllers/ImageController.php | 2 +- resources/assets/js/components/markdown-editor.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) 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); });