diff options
author | Vjacheslav Trushkin <cyberalien@gmail.com> | 2013-05-20 20:29:37 +0300 |
---|---|---|
committer | Vjacheslav Trushkin <cyberalien@gmail.com> | 2013-05-20 20:29:37 +0300 |
commit | b2e5cc89344d641394e5c15575379de3c86c0806 (patch) | |
tree | ced15a9c949bf8b3c6fa5836482b633e4790890a /phpBB/styles | |
parent | 3dae0cfcaefc69d5524e03d1b8b282deae9f181d (diff) | |
download | forums-b2e5cc89344d641394e5c15575379de3c86c0806.tar forums-b2e5cc89344d641394e5c15575379de3c86c0806.tar.gz forums-b2e5cc89344d641394e5c15575379de3c86c0806.tar.bz2 forums-b2e5cc89344d641394e5c15575379de3c86c0806.tar.xz forums-b2e5cc89344d641394e5c15575379de3c86c0806.zip |
[feature/editor-code-tabs] Apply code editor to everything
Move code editor from prosilver to assets
Apply code editor to subsilver2
Apply code editor to ACP elements where bbcode is allowed
PHPBB3-11557
Diffstat (limited to 'phpBB/styles')
-rw-r--r-- | phpBB/styles/prosilver/template/editor.js | 91 | ||||
-rw-r--r-- | phpBB/styles/subsilver2/template/editor.js | 1 |
2 files changed, 3 insertions, 89 deletions
diff --git a/phpBB/styles/prosilver/template/editor.js b/phpBB/styles/prosilver/template/editor.js index 311c1957ba..6eb8c1e0c4 100644 --- a/phpBB/styles/prosilver/template/editor.js +++ b/phpBB/styles/prosilver/template/editor.js @@ -401,7 +401,7 @@ function getCaretPosition(txtarea) { */ (function($) { $(document).ready(function() { - var doc, textarea, startTags, startTagsEnd, endTags; + var doc, textarea; // find textarea, make sure browser supports necessary functions if (document.forms[form_name]) { @@ -419,94 +419,7 @@ function getCaretPosition(txtarea) { return; } - // list of allowed start and end bbcode code tags, in lower case - startTags = ['[code]', '[code=']; - startTagsEnd = ']'; - endTags = ['[/code]']; - - function inTag() { - var start = textarea.selectionStart, - lastEnd = -1, - lastStart = -1, - i, index, value; - - value = textarea.value.toLowerCase(); - - for (i = 0; i < startTags.length; i++) { - var tagLength = startTags[i].length; - if (start >= tagLength) { - index = value.lastIndexOf(startTags[i], start - tagLength); - lastStart = Math.max(lastStart, index); - } - } - if (lastStart == -1) return false; - - if (start > 0) { - for (i = 0; i < endTags.length; i++) { - index = value.lastIndexOf(endTags[i], start - 1); - lastEnd = Math.max(lastEnd, index); - } - } - - return (lastEnd < lastStart); - } - - function getLastLine(stripCodeTags) { - var start = textarea.selectionStart, - value = textarea.value, - index = value.lastIndexOf("\n", start - 1); - value = value.substring(index + 1, start); - if (stripCodeTags) { - for (var i = 0; i < startTags.length; i++) { - index = value.lastIndexOf(startTags[i]); - if (index >= 0) { - var tagLength = startTags[i].length; - value = value.substring(index + tagLength); - if (startTags[i].lastIndexOf(startTagsEnd) != tagLength) { - index = value.indexOf(startTagsEnd); - if (index >= 0) { - value = value.substr(index + 1); - } - } - } - } - } - return value; - } - - function appendCode(code) { - var start = textarea.selectionStart, - end = textarea.selectionEnd, - value = textarea.value; - textarea.value = value.substr(0, start) + code + value.substr(end); - textarea.selectionStart = textarea.selectionEnd = start + code.length; - } - - $(textarea).on('keydown', function(event) { - var key = event.keyCode || event.which; - - // intercept tabs - if (key == 9) { - if (inTag()) { - appendCode("\t"); - event.preventDefault(); - return; - } - } - - // intercept new line characters - if (key == 13) { - if (inTag()) { - var lastLine = getLastLine(true), - code = '' + /^\s*/g.exec(lastLine); - if (code.length > 0) { - appendCode("\n" + code); - event.preventDefault(); - return; - } - } - } - }); + phpbb.applyCodeEditor(textarea); }); })(jQuery); diff --git a/phpBB/styles/subsilver2/template/editor.js b/phpBB/styles/subsilver2/template/editor.js index 93506b8d4a..6cf616e180 100644 --- a/phpBB/styles/subsilver2/template/editor.js +++ b/phpBB/styles/subsilver2/template/editor.js @@ -38,6 +38,7 @@ function initInsertions() { } var textarea = doc.forms[form_name].elements[text_name]; + phpbb.applyCodeEditor(textarea); if (is_ie && typeof(baseHeight) !== 'number') { textarea.focus(); |