Make intialization of Ace2Inner analogous to other page controllers.

This commit is contained in:
Chad Weider 2012-09-12 00:04:15 -07:00
parent 9f5946c942
commit 622819ba93
2 changed files with 53 additions and 47 deletions

View File

@ -246,7 +246,11 @@ hooks.plugins = plugins;\n\
plugins.adoptPluginsFromAncestorsOf(window);\n\ plugins.adoptPluginsFromAncestorsOf(window);\n\
\n\ \n\
$ = jQuery = require("ep_etherpad-lite/static/js/rjquery").jQuery; // Expose jQuery #HACK\n\ $ = jQuery = require("ep_etherpad-lite/static/js/rjquery").jQuery; // Expose jQuery #HACK\n\
require("ep_etherpad-lite/static/js/ace2_inner");\n\ var Ace2Inner = require("ep_etherpad-lite/static/js/ace2_inner");\n\
\n\
plugins.ensure(function () {\n\
Ace2Inner.init();\n\
});\n\
')); '));
iframeHTML.push('<style type="text/css" title="dynamicsyntax"></style>'); iframeHTML.push('<style type="text/css" title="dynamicsyntax"></style>');

View File

@ -19,7 +19,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
var editor, _, $, jQuery, plugins, Ace2Common; var _, $, jQuery, plugins, Ace2Common;
Ace2Common = require('./ace2_common'); Ace2Common = require('./ace2_common');
@ -5430,62 +5430,64 @@ function Ace2Inner(){
return documentAttributeManager.setAttributesOnRange.apply(documentAttributeManager, arguments); return documentAttributeManager.setAttributesOnRange.apply(documentAttributeManager, arguments);
}; };
$(document).ready(function(){ this.init = function () {
doc = document; // defined as a var in scope outside $(document).ready(function(){
inCallStack("setup", function() doc = document; // defined as a var in scope outside
{ inCallStack("setup", function()
var body = doc.getElementById("innerdocbody");
root = body; // defined as a var in scope outside
if (browser.mozilla) $(root).addClass("mozilla");
if (browser.safari) $(root).addClass("safari");
if (browser.msie) $(root).addClass("msie");
if (browser.msie)
{ {
// cache CSS background images var body = doc.getElementById("innerdocbody");
try root = body; // defined as a var in scope outside
if (browser.mozilla) $(root).addClass("mozilla");
if (browser.safari) $(root).addClass("safari");
if (browser.msie) $(root).addClass("msie");
if (browser.msie)
{ {
doc.execCommand("BackgroundImageCache", false, true); // cache CSS background images
try
{
doc.execCommand("BackgroundImageCache", false, true);
}
catch (e)
{ /* throws an error in some IE 6 but not others! */
}
} }
catch (e) setClassPresence(root, "authorColors", true);
{ /* throws an error in some IE 6 but not others! */ setClassPresence(root, "doesWrap", doesWrap);
}
}
setClassPresence(root, "authorColors", true);
setClassPresence(root, "doesWrap", doesWrap);
initDynamicCSS(); initDynamicCSS();
enforceEditability(); enforceEditability();
// set up dom and rep // set up dom and rep
while (root.firstChild) root.removeChild(root.firstChild); while (root.firstChild) root.removeChild(root.firstChild);
var oneEntry = createDomLineEntry(""); var oneEntry = createDomLineEntry("");
doRepLineSplice(0, rep.lines.length(), [oneEntry]); doRepLineSplice(0, rep.lines.length(), [oneEntry]);
insertDomLines(null, [oneEntry.domInfo], null); insertDomLines(null, [oneEntry.domInfo], null);
rep.alines = Changeset.splitAttributionLines( rep.alines = Changeset.splitAttributionLines(
Changeset.makeAttribution("\n"), "\n"); Changeset.makeAttribution("\n"), "\n");
bindTheEventHandlers(); bindTheEventHandlers();
}); });
hooks.callAll('aceInitialized', { hooks.callAll('aceInitialized', {
editorInfo: editorInfo, editorInfo: editorInfo,
rep: rep, rep: rep,
documentAttributeManager: documentAttributeManager documentAttributeManager: documentAttributeManager
}); });
scheduler.setTimeout(function() scheduler.setTimeout(function()
{ {
parent.readyFunc(); // defined in code that sets up the inner iframe parent.readyFunc(); // defined in code that sets up the inner iframe
}, 0); }, 0);
isSetUp = true; isSetUp = true;
}); });
}
} }
// Ensure that plugins are loaded before initializing the editor exports.init = function () {
plugins.ensure(function () { var editor = new Ace2Inner()
var editor = new Ace2Inner(); editor.init();
}); };