this.$textarea.val(this.wbbcode.convertToHtml(this.$textarea.val()));
this.code.offset = this.$textarea.val().length;
this.code.showVisual();
+ this.wbbcode.fixCodeBBCode();
this.wbbcode.fixBlockLevelElements();
this.wutil.selectionEndOfEditor();
this.wbbcode.observeQuotes();
// set caret after code listing
var $codeBox = this.$editor.find('.codeBox:not(.jsRedactorCodeBox)');
+ this.wbbcode.fixCodeBBCode($codeBox[0]);
this.wbbcode.observeCodeListings();
this.wbbcode.fixBlockLevelElements();
}
},
+ /**
+ * Fixes the code bbcode.
+ *
+ * @param Element codeBox
+ * @returns
+ */
+ fixCodeBBCode: function(codeBox) {
+ if (!codeBox) {
+ var $codeBoxes = this.$editor[0].querySelectorAll('div.codeBox');
+ for (var $i = 0, $length = $codeBoxes.length; $i < $length; $i++) {
+ this.wbbcode.fixCodeBBCode($codeBoxes[$i]);
+ }
+
+ return;
+ }
+
+ codeBox = codeBox[0] || codeBox;
+
+ // sometimes the inner div is missing
+ if (codeBox.children.length > 1) {
+ var $container = document.createElement('div');
+ codeBox.insertBefore($container, codeBox.firstChild);
+
+ while ($container.nextElementSibling) {
+ $container.appendChild($container.nextElementSibling);
+ }
+ }
+ },
+
/**
* Ensures that there is a paragraph in front of each block-level element because you cannot click in between two of them.
*/