mirror of
https://github.com/Karaka-Management/oms-Editor.git
synced 2026-02-14 01:08:43 +00:00
fixes #144
This commit is contained in:
parent
7a81b67312
commit
d02166ad3a
|
|
@ -31,6 +31,9 @@
|
||||||
{
|
{
|
||||||
let textarea = this.editor.getElementsByTagName('textarea')[0];
|
let textarea = this.editor.getElementsByTagName('textarea')[0];
|
||||||
|
|
||||||
|
const startPosition = textarea.selectionStart,
|
||||||
|
endPosition = textarea.selectionEnd;
|
||||||
|
|
||||||
switch (e.dataset['editorButton']) {
|
switch (e.dataset['editorButton']) {
|
||||||
case 'undo':
|
case 'undo':
|
||||||
|
|
||||||
|
|
@ -39,68 +42,71 @@
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 'bold':
|
case 'bold':
|
||||||
textarea.value = textarea.value.slice(0, textarea.selectionStart)
|
textarea.value = textarea.value.slice(0, startPosition)
|
||||||
+ '**' + textarea.value.slice(textarea.selectionStart, textarea.selectionEnd) + '**'
|
+ '**' + textarea.value.slice(startPosition, endPosition) + '**'
|
||||||
+ textarea.value.slice(textarea.selectionEnd, textarea.value.length);
|
+ textarea.value.slice(endPosition, textarea.value.length);
|
||||||
break;
|
break;
|
||||||
case 'italic':
|
case 'italic':
|
||||||
textarea.value = textarea.value.slice(0, textarea.selectionStart)
|
textarea.value = textarea.value.slice(0, startPosition)
|
||||||
+ '*' + textarea.value.slice(textarea.selectionStart, textarea.selectionEnd) + '*'
|
+ '*' + textarea.value.slice(startPosition, endPosition) + '*'
|
||||||
+ textarea.value.slice(textarea.selectionEnd, textarea.value.length);
|
+ textarea.value.slice(endPosition, textarea.value.length);
|
||||||
break;
|
break;
|
||||||
case 'underline':
|
case 'underline':
|
||||||
textarea.value = textarea.value.slice(0, textarea.selectionStart)
|
textarea.value = textarea.value.slice(0, startPosition)
|
||||||
+ '__' + textarea.value.slice(textarea.selectionStart, textarea.selectionEnd) + '__'
|
+ '__' + textarea.value.slice(startPosition, endPosition) + '__'
|
||||||
+ textarea.value.slice(textarea.selectionEnd, textarea.value.length);
|
+ textarea.value.slice(endPosition, textarea.value.length);
|
||||||
break;
|
break;
|
||||||
case 'strikethrough':
|
case 'strikethrough':
|
||||||
textarea.value = textarea.value.slice(0, textarea.selectionStart)
|
textarea.value = textarea.value.slice(0, startPosition)
|
||||||
+ '~~' + textarea.value.slice(textarea.selectionStart, textarea.selectionEnd) + '~~'
|
+ '~~' + textarea.value.slice(startPosition, endPosition) + '~~'
|
||||||
+ textarea.value.slice(textarea.selectionEnd, textarea.value.length);
|
+ textarea.value.slice(endPosition, textarea.value.length);
|
||||||
break;
|
break;
|
||||||
case 'ulist':
|
case 'ulist':
|
||||||
textarea.value = textarea.value.slice(0, textarea.selectionStart) + "\n"
|
textarea.value = textarea.value.slice(0, startPosition) + "\n"
|
||||||
+ ' * ' + textarea.value.slice(textarea.selectionStart, textarea.selectionEnd)
|
+ ' * ' + textarea.value.slice(startPosition, endPosition)
|
||||||
+ textarea.value.slice(textarea.selectionEnd, textarea.value.length);
|
+ textarea.value.slice(endPosition, textarea.value.length);
|
||||||
break;
|
break;
|
||||||
case 'olist':
|
case 'olist':
|
||||||
textarea.value = textarea.value.slice(0, textarea.selectionStart) + "\n"
|
textarea.value = textarea.value.slice(0, startPosition) + "\n"
|
||||||
+ ' 1. ' + textarea.value.slice(textarea.selectionStart, textarea.selectionEnd)
|
+ ' 1. ' + textarea.value.slice(startPosition, endPosition)
|
||||||
+ textarea.value.slice(textarea.selectionEnd, textarea.value.length);
|
+ textarea.value.slice(endPosition, textarea.value.length);
|
||||||
break;
|
break;
|
||||||
case 'indent':
|
case 'indent':
|
||||||
textarea.value = textarea.value.slice(0, textarea.selectionStart)
|
textarea.value = textarea.value.slice(0, startPosition)
|
||||||
+ ' ' + textarea.value.slice(textarea.selectionStart, textarea.selectionEnd)
|
+ ' ' + textarea.value.slice(startPosition, endPosition)
|
||||||
+ textarea.value.slice(textarea.selectionEnd, textarea.value.length);
|
+ textarea.value.slice(endPosition, textarea.value.length);
|
||||||
break;
|
break;
|
||||||
case 'table':
|
case 'table':
|
||||||
textarea.value = textarea.value.slice(0, textarea.selectionStart) + "\n"
|
textarea.value = textarea.value.slice(0, startPosition) + "\n"
|
||||||
+ '| Tables | Are | Cool |' + "\n"
|
+ '| Tables | Are | Cool |' + "\n"
|
||||||
+ '| ------------- |:-----------------:| -----:|' + "\n"
|
+ '| ------------- |:-----------------:| -----:|' + "\n"
|
||||||
+ '| col 3 is | right - aligned | $1600 |' + "\n"
|
+ '| col 3 is | right - aligned | $1600 |' + "\n"
|
||||||
+ '| col 2 is | centered | $12 |' + "\n"
|
+ '| col 2 is | centered | $12 |' + "\n"
|
||||||
+ '| zebra stripes | are neat | $1 |' + "\n"
|
+ '| zebra stripes | are neat | $1 |' + "\n"
|
||||||
+ textarea.value.slice(textarea.selectionStart, textarea.value.length);
|
+ textarea.value.slice(startPosition, textarea.value.length);
|
||||||
break;
|
break;
|
||||||
case 'link':
|
case 'link':
|
||||||
let link = textarea.value.slice(textarea.selectionStart, textarea.selectionEnd);
|
let link = textarea.value.slice(startPosition, endPosition);
|
||||||
|
|
||||||
textarea.value = textarea.value.slice(0, textarea.selectionStart)
|
textarea.value = textarea.value.slice(0, startPosition)
|
||||||
+ ((link.startsWith('http') || link.startsWith('www')) ? '[' + link + ']' : '[' + link + '](https://www.website.com "' + link + '")')
|
+ ((link.startsWith('http') || link.startsWith('www')) ? '[' + link + ']' : '[' + link + '](https://www.website.com "' + link + '")')
|
||||||
+ textarea.value.slice(textarea.selectionEnd, textarea.value.length);
|
+ textarea.value.slice(endPosition, textarea.value.length);
|
||||||
break;
|
break;
|
||||||
case 'code':
|
case 'code':
|
||||||
textarea.value = textarea.value.slice(0, textarea.selectionStart)
|
textarea.value = textarea.value.slice(0, startPosition)
|
||||||
+ '`' + textarea.value.slice(textarea.selectionStart, textarea.selectionEnd) + '`'
|
+ '`' + textarea.value.slice(startPosition, endPosition) + '`'
|
||||||
+ textarea.value.slice(textarea.selectionEnd, textarea.value.length);
|
+ textarea.value.slice(endPosition, textarea.value.length);
|
||||||
break;
|
break;
|
||||||
case 'quote':
|
case 'quote':
|
||||||
textarea.value = textarea.value.slice(0, textarea.selectionStart) + "\n"
|
textarea.value = textarea.value.slice(0, startPosition) + "\n"
|
||||||
+ '> ' + textarea.value.slice(textarea.selectionStart, textarea.value.length);
|
+ '> ' + textarea.value.slice(startPosition, textarea.value.length);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
textarea.focus();
|
||||||
|
textarea.setSelectionRange(endPosition, endPosition);
|
||||||
};
|
};
|
||||||
|
|
||||||
jsOMS.Modules.Models.Editor.Editor.prototype.getSelectedText = function()
|
jsOMS.Modules.Models.Editor.Editor.prototype.getSelectedText = function()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user