mirror of
https://github.com/wekan/wekan.git
synced 2025-12-16 23:40:13 +01:00
Merge pull request #2717 from whowillcare/master
BugFix: in richer editor @ autocomplete doesn't really insert the username properly
This commit is contained in:
commit
0c34566aef
2 changed files with 27 additions and 6 deletions
|
|
@ -156,25 +156,45 @@ Template.editor.onRendered(() => {
|
||||||
}
|
}
|
||||||
return undefined;
|
return undefined;
|
||||||
};
|
};
|
||||||
|
let popupShown = false;
|
||||||
inputs.each(function(idx, input) {
|
inputs.each(function(idx, input) {
|
||||||
mSummernotes[idx] = $(input).summernote({
|
mSummernotes[idx] = $(input).summernote({
|
||||||
placeholder,
|
placeholder,
|
||||||
callbacks: {
|
callbacks: {
|
||||||
|
onKeydown(e) {
|
||||||
|
if (popupShown) {
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onKeyup(e) {
|
||||||
|
if (popupShown) {
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
},
|
||||||
onInit(object) {
|
onInit(object) {
|
||||||
const originalInput = this;
|
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() {
|
$(originalInput).on('submitted', function() {
|
||||||
// resetCommentInput has been called
|
// resetCommentInput has been called
|
||||||
if (!this.value) {
|
if (!this.value) {
|
||||||
const sn = getSummernote(this);
|
const sn = getSummernote(this);
|
||||||
sn && sn.summernote('reset');
|
sn && sn.summernote('code', '');
|
||||||
object && object.editingArea.find('.note-placeholder').show();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const jEditor = object && object.editable;
|
const jEditor = object && object.editable;
|
||||||
const toolbar = object && object.toolbar;
|
const toolbar = object && object.toolbar;
|
||||||
if (jEditor !== undefined) {
|
setAutocomplete(jEditor);
|
||||||
jEditor.escapeableTextComplete(mentions);
|
|
||||||
}
|
|
||||||
if (toolbar !== undefined) {
|
if (toolbar !== undefined) {
|
||||||
const fBtn = toolbar.find('.btn-fullscreen');
|
const fBtn = toolbar.find('.btn-fullscreen');
|
||||||
fBtn.on('click', function() {
|
fBtn.on('click', function() {
|
||||||
|
|
@ -264,7 +284,7 @@ Template.editor.onRendered(() => {
|
||||||
const someNote = getSummernote(object);
|
const someNote = getSummernote(object);
|
||||||
const original = someNote.summernote('code');
|
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.
|
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.
|
someNote.summernote('pasteHTML', cleaned); //this sets the displayed content editor to the cleaned pasted code.
|
||||||
};
|
};
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ $.fn.escapeableTextComplete = function(strategies, options, ...otherArgs) {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
return this;
|
||||||
};
|
};
|
||||||
|
|
||||||
EscapeActions.register('textcomplete', () => {}, () => dropdownMenuIsOpened, {
|
EscapeActions.register('textcomplete', () => {}, () => dropdownMenuIsOpened, {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue