aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/styles
diff options
context:
space:
mode:
authorVjacheslav Trushkin <cyberalien@gmail.com>2013-05-20 20:29:37 +0300
committerVjacheslav Trushkin <cyberalien@gmail.com>2013-05-20 20:29:37 +0300
commitb2e5cc89344d641394e5c15575379de3c86c0806 (patch)
treeced15a9c949bf8b3c6fa5836482b633e4790890a /phpBB/styles
parent3dae0cfcaefc69d5524e03d1b8b282deae9f181d (diff)
downloadforums-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.js91
-rw-r--r--phpBB/styles/subsilver2/template/editor.js1
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();