load codemirror in the correct context. fix selection events
This commit is contained in:
@@ -1,5 +1,8 @@
|
|||||||
define([
|
define([
|
||||||
'jquery',
|
'jquery',
|
||||||
|
|
||||||
|
'cm/lib/codemirror',
|
||||||
|
|
||||||
'css!/bower_components/components-font-awesome/css/font-awesome.min.css',
|
'css!/bower_components/components-font-awesome/css/font-awesome.min.css',
|
||||||
'less!/code/code.less',
|
'less!/code/code.less',
|
||||||
'less!/customize/src/less/toolbar.less',
|
'less!/customize/src/less/toolbar.less',
|
||||||
@@ -7,6 +10,28 @@ define([
|
|||||||
'css!cm/addon/dialog/dialog.css',
|
'css!cm/addon/dialog/dialog.css',
|
||||||
'css!cm/addon/fold/foldgutter.css',
|
'css!cm/addon/fold/foldgutter.css',
|
||||||
|
|
||||||
], function ($) {
|
'cm/mode/markdown/markdown',
|
||||||
|
'cm/addon/mode/loadmode',
|
||||||
|
'cm/mode/meta',
|
||||||
|
'cm/addon/mode/overlay',
|
||||||
|
'cm/addon/mode/multiplex',
|
||||||
|
'cm/addon/mode/simple',
|
||||||
|
'cm/addon/edit/closebrackets',
|
||||||
|
'cm/addon/edit/matchbrackets',
|
||||||
|
'cm/addon/edit/trailingspace',
|
||||||
|
'cm/addon/selection/active-line',
|
||||||
|
'cm/addon/search/search',
|
||||||
|
'cm/addon/search/match-highlighter',
|
||||||
|
'cm/addon/search/searchcursor',
|
||||||
|
'cm/addon/dialog/dialog',
|
||||||
|
'cm/addon/fold/foldcode',
|
||||||
|
'cm/addon/fold/foldgutter',
|
||||||
|
'cm/addon/fold/brace-fold',
|
||||||
|
'cm/addon/fold/xml-fold',
|
||||||
|
'cm/addon/fold/markdown-fold',
|
||||||
|
'cm/addon/fold/comment-fold',
|
||||||
|
'cm/addon/display/placeholder',
|
||||||
|
], function ($, CMeditor) {
|
||||||
|
window.CodeMirror = CMeditor;
|
||||||
$('.loading-hidden').removeClass('loading-hidden');
|
$('.loading-hidden').removeClass('loading-hidden');
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ define([
|
|||||||
Cryptpad.errorLoadingScreen(Messages.websocketError);
|
Cryptpad.errorLoadingScreen(Messages.websocketError);
|
||||||
};
|
};
|
||||||
|
|
||||||
var andThen = function () {
|
var andThen = function (CMeditor) {
|
||||||
var $iframe = $('#pad-iframe').contents();
|
var $iframe = $('#pad-iframe').contents();
|
||||||
var $contentContainer = $iframe.find('#editorContainer');
|
var $contentContainer = $iframe.find('#editorContainer');
|
||||||
var $previewContainer = $iframe.find('#previewContainer');
|
var $previewContainer = $iframe.find('#previewContainer');
|
||||||
@@ -58,7 +58,7 @@ define([
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var CodeMirror = Cryptpad.createCodemirror(ifrw, Cryptpad);
|
var CodeMirror = Cryptpad.createCodemirror(ifrw, Cryptpad, null, CMeditor);
|
||||||
$iframe.find('.CodeMirror').addClass('fullPage');
|
$iframe.find('.CodeMirror').addClass('fullPage');
|
||||||
editor = CodeMirror.editor;
|
editor = CodeMirror.editor;
|
||||||
|
|
||||||
@@ -428,9 +428,10 @@ define([
|
|||||||
Cryptpad.onLogout(function () { setEditable(false); });
|
Cryptpad.onLogout(function () { setEditable(false); });
|
||||||
};
|
};
|
||||||
|
|
||||||
var first = function () {
|
var interval = 100;
|
||||||
|
var second = function (CM) {
|
||||||
Cryptpad.ready(function () {
|
Cryptpad.ready(function () {
|
||||||
andThen();
|
andThen(CM);
|
||||||
Cryptpad.reportAppUsage();
|
Cryptpad.reportAppUsage();
|
||||||
});
|
});
|
||||||
Cryptpad.onError(function (info) {
|
Cryptpad.onError(function (info) {
|
||||||
@@ -440,6 +441,15 @@ define([
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var first = function () {
|
||||||
|
if (ifrw.CodeMirror) {
|
||||||
|
second(ifrw.CodeMirror);
|
||||||
|
} else {
|
||||||
|
console.log("CodeMirror was not defined. Trying again in %sms", interval);
|
||||||
|
setTimeout(first, interval);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
first();
|
first();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -3,36 +3,12 @@ define([
|
|||||||
'/common/modes.js',
|
'/common/modes.js',
|
||||||
'/common/themes.js',
|
'/common/themes.js',
|
||||||
|
|
||||||
'cm/lib/codemirror',
|
|
||||||
'cm/mode/javascript/javascript',
|
|
||||||
'cm/mode/markdown/markdown',
|
|
||||||
'cm/addon/mode/loadmode',
|
|
||||||
'cm/mode/meta',
|
|
||||||
'cm/addon/mode/overlay',
|
|
||||||
'cm/addon/mode/multiplex',
|
|
||||||
'cm/addon/mode/simple',
|
|
||||||
'cm/addon/edit/closebrackets',
|
|
||||||
'cm/addon/edit/matchbrackets',
|
|
||||||
'cm/addon/edit/trailingspace',
|
|
||||||
'cm/addon/selection/active-line',
|
|
||||||
'cm/addon/search/search',
|
|
||||||
'cm/addon/search/match-highlighter',
|
|
||||||
'cm/addon/search/searchcursor',
|
|
||||||
'cm/addon/dialog/dialog',
|
|
||||||
'cm/addon/fold/foldcode',
|
|
||||||
'cm/addon/fold/foldgutter',
|
|
||||||
'cm/addon/fold/brace-fold',
|
|
||||||
'cm/addon/fold/xml-fold',
|
|
||||||
'cm/addon/fold/markdown-fold',
|
|
||||||
'cm/addon/fold/comment-fold',
|
|
||||||
'cm/addon/display/placeholder',
|
|
||||||
|
|
||||||
'/bower_components/file-saver/FileSaver.min.js'
|
'/bower_components/file-saver/FileSaver.min.js'
|
||||||
], function ($, Modes, Themes, CMeditor) {
|
], function ($, Modes, Themes) {
|
||||||
var saveAs = window.saveAs;
|
var saveAs = window.saveAs;
|
||||||
var module = {};
|
var module = {};
|
||||||
|
|
||||||
module.create = function (ifrw, Cryptpad, defaultMode) {
|
module.create = function (ifrw, Cryptpad, defaultMode, CMeditor) {
|
||||||
var exp = {};
|
var exp = {};
|
||||||
var Messages = Cryptpad.Messages;
|
var Messages = Cryptpad.Messages;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
define([
|
define([
|
||||||
'jquery',
|
'jquery',
|
||||||
|
|
||||||
|
'cm/lib/codemirror',
|
||||||
|
|
||||||
|
|
||||||
'css!/bower_components/bootstrap/dist/css/bootstrap.min.css',
|
'css!/bower_components/bootstrap/dist/css/bootstrap.min.css',
|
||||||
'less!/customize/src/less/toolbar.less',
|
'less!/customize/src/less/toolbar.less',
|
||||||
'less!/customize/src/less/cryptpad.less',
|
'less!/customize/src/less/cryptpad.less',
|
||||||
@@ -9,6 +13,29 @@ define([
|
|||||||
'css!cm/addon/dialog/dialog.css',
|
'css!cm/addon/dialog/dialog.css',
|
||||||
'css!cm/addon/fold/foldgutter.css',
|
'css!cm/addon/fold/foldgutter.css',
|
||||||
|
|
||||||
], function ($) {
|
'cm/mode/markdown/markdown',
|
||||||
|
'cm/addon/mode/loadmode',
|
||||||
|
'cm/mode/meta',
|
||||||
|
'cm/addon/mode/overlay',
|
||||||
|
'cm/addon/mode/multiplex',
|
||||||
|
'cm/addon/mode/simple',
|
||||||
|
'cm/addon/edit/closebrackets',
|
||||||
|
'cm/addon/edit/matchbrackets',
|
||||||
|
'cm/addon/edit/trailingspace',
|
||||||
|
'cm/addon/selection/active-line',
|
||||||
|
'cm/addon/search/search',
|
||||||
|
'cm/addon/search/match-highlighter',
|
||||||
|
'cm/addon/search/searchcursor',
|
||||||
|
'cm/addon/dialog/dialog',
|
||||||
|
'cm/addon/fold/foldcode',
|
||||||
|
'cm/addon/fold/foldgutter',
|
||||||
|
'cm/addon/fold/brace-fold',
|
||||||
|
'cm/addon/fold/xml-fold',
|
||||||
|
'cm/addon/fold/markdown-fold',
|
||||||
|
'cm/addon/fold/comment-fold',
|
||||||
|
'cm/addon/display/placeholder',
|
||||||
|
|
||||||
|
], function ($, CMeditor) {
|
||||||
|
window.CodeMirror = CMeditor;
|
||||||
$('.loading-hidden').removeClass('loading-hidden');
|
$('.loading-hidden').removeClass('loading-hidden');
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -50,10 +50,10 @@ define([
|
|||||||
Cryptpad.errorLoadingScreen(Messages.websocketError);
|
Cryptpad.errorLoadingScreen(Messages.websocketError);
|
||||||
};
|
};
|
||||||
|
|
||||||
var andThen = function () {
|
var andThen = function (CMeditor) {
|
||||||
var $iframe = $('#pad-iframe').contents();
|
var $iframe = $('#pad-iframe').contents();
|
||||||
var $contentContainer = $iframe.find('#editorContainer');
|
var $contentContainer = $iframe.find('#editorContainer');
|
||||||
var CodeMirror = Cryptpad.createCodemirror(ifrw, Cryptpad, 'markdown');
|
var CodeMirror = Cryptpad.createCodemirror(ifrw, Cryptpad, null, CMeditor);
|
||||||
editor = CodeMirror.editor;
|
editor = CodeMirror.editor;
|
||||||
|
|
||||||
var $bar = $('#pad-iframe')[0].contentWindow.$('#cme_toolbox');
|
var $bar = $('#pad-iframe')[0].contentWindow.$('#cme_toolbox');
|
||||||
@@ -697,9 +697,11 @@ define([
|
|||||||
Cryptpad.onLogout(function () { setEditable(false); });
|
Cryptpad.onLogout(function () { setEditable(false); });
|
||||||
};
|
};
|
||||||
|
|
||||||
var first = function () {
|
var interval = 100;
|
||||||
|
|
||||||
|
var second = function (CM) {
|
||||||
Cryptpad.ready(function () {
|
Cryptpad.ready(function () {
|
||||||
andThen();
|
andThen(CM);
|
||||||
Cryptpad.reportAppUsage();
|
Cryptpad.reportAppUsage();
|
||||||
});
|
});
|
||||||
Cryptpad.onError(function (info) {
|
Cryptpad.onError(function (info) {
|
||||||
@@ -709,6 +711,17 @@ define([
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var first = function () {
|
||||||
|
if (ifrw.CodeMirror) {
|
||||||
|
// it exists, call your continuation
|
||||||
|
second(ifrw.CodeMirror);
|
||||||
|
} else {
|
||||||
|
console.log("CodeMirror was not defined. Trying again in %sms", interval);
|
||||||
|
// try again in 'interval' ms
|
||||||
|
setTimeout(first, interval);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
first();
|
first();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user