From 194b6ad46e2d711ad5ab5e5df6d97ccea38acea8 Mon Sep 17 00:00:00 2001 From: "Sam X. Chen" Date: Tue, 17 Sep 2019 09:27:23 -0400 Subject: BugFix: in richer editor @ autocomplete doesn't really insert the user name into comment properly --- client/components/main/editor.js | 34 ++++++++++++++++++++++++++++------ client/lib/textComplete.js | 1 + 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/client/components/main/editor.js b/client/components/main/editor.js index 91403086..2035f62f 100755 --- a/client/components/main/editor.js +++ b/client/components/main/editor.js @@ -156,25 +156,47 @@ Template.editor.onRendered(() => { } return undefined; }; + let popupShown = false; inputs.each(function(idx, input) { mSummernotes[idx] = $(input).summernote({ placeholder, callbacks: { + onKeydown(e) { + if (popupShown) { + e.preventDefault(); + } + }, + onKeyup(e) { + if (popupShown) { + e.preventDefault(); + } + }, onInit(object) { const originalInput = this; + const setAutocomplete = function(jEditor) { + if (jEditor !== undefined) { + jEditor.escapeableTextComplete(mentions).on({ + 'textComplete:show'() { + popupShown = true; + }, + 'textComplete:hide'() { + popupShown = false; + }, + }); + } + }; $(originalInput).on('submitted', function() { // resetCommentInput has been called if (!this.value) { const sn = getSummernote(this); - sn && sn.summernote('reset'); - object && object.editingArea.find('.note-placeholder').show(); + sn && sn.summernote('code', ''); + setAutocomplete(jEditor); + //object && object.editingArea.find('.note-placeholder').show(); } }); const jEditor = object && object.editable; const toolbar = object && object.toolbar; - if (jEditor !== undefined) { - jEditor.escapeableTextComplete(mentions); - } + setAutocomplete(jEditor); if (toolbar !== undefined) { const fBtn = toolbar.find('.btn-fullscreen'); fBtn.on('click', function() { @@ -264,7 +286,7 @@ Template.editor.onRendered(() => { const someNote = getSummernote(object); const original = someNote.summernote('code'); const cleaned = cleanPastedHTML(original); //this is where to call whatever clean function you want. I have mine in a different file, called CleanPastedHTML. - someNote.summernote('reset'); //clear original + someNote.summernote('code', ''); //clear original someNote.summernote('pasteHTML', cleaned); //this sets the displayed content editor to the cleaned pasted code. }; setTimeout(function() { diff --git a/client/lib/textComplete.js b/client/lib/textComplete.js index 0261d7f6..8b6dc1f7 100644 --- a/client/lib/textComplete.js +++ b/client/lib/textComplete.js @@ -45,6 +45,7 @@ $.fn.escapeableTextComplete = function(strategies, options, ...otherArgs) { }); }, }); + return this; }; EscapeActions.register('textcomplete', () => {}, () => dropdownMenuIsOpened, { -- cgit v1.2.3-1-g7c22 From f29d7daa1d687df535a7c6ac5c53cc6f067c44cb Mon Sep 17 00:00:00 2001 From: "Sam X. Chen" Date: Tue, 17 Sep 2019 09:30:26 -0400 Subject: BugFix: in richer editor @ autocomplete doesn't really insert the user name into comment properly --- client/components/main/editor.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/client/components/main/editor.js b/client/components/main/editor.js index 2035f62f..b1725227 100755 --- a/client/components/main/editor.js +++ b/client/components/main/editor.js @@ -190,8 +190,6 @@ Template.editor.onRendered(() => { if (!this.value) { const sn = getSummernote(this); sn && sn.summernote('code', ''); - setAutocomplete(jEditor); - //object && object.editingArea.find('.note-placeholder').show(); } }); const jEditor = object && object.editable; -- cgit v1.2.3-1-g7c22