diff options
author | Egil Moeller <egil.moller@freecode.no> | 2010-03-25 19:14:53 +0100 |
---|---|---|
committer | Egil Moeller <egil.moller@freecode.no> | 2010-03-25 19:14:53 +0100 |
commit | 20014050bf91266757b2c1ba82ab333638fe570d (patch) | |
tree | b4de4f05376f30cab0ca4a729a99f841a4ef123f /infrastructure/ace | |
parent | f7dd3aa34cad8a59ad00172339c565731ad80fbb (diff) | |
download | etherpad-20014050bf91266757b2c1ba82ab333638fe570d.tar.gz etherpad-20014050bf91266757b2c1ba82ab333638fe570d.tar.xz etherpad-20014050bf91266757b2c1ba82ab333638fe570d.zip |
Added aceCreateDomline hook plus some code cleanup in the ace
Diffstat (limited to 'infrastructure/ace')
-rw-r--r-- | infrastructure/ace/www/domline.js | 19 | ||||
-rw-r--r-- | infrastructure/ace/www/linestylefilter.js | 13 |
2 files changed, 22 insertions, 10 deletions
diff --git a/infrastructure/ace/www/domline.js b/infrastructure/ace/www/domline.js index 70f86cc..38cddf5 100644 --- a/infrastructure/ace/www/domline.js +++ b/infrastructure/ace/www/domline.js @@ -1,4 +1,5 @@ // THIS FILE IS ALSO AN APPJET MODULE: etherpad.collab.ace.domline +// %APPJET%: import("etherpad.admin.plugins"); /** * Copyright 2009 Google Inc. @@ -16,6 +17,10 @@ * limitations under the License. */ +// requires: top +// requires: plugins +// requires: undefined + var domline = {}; domline.noop = function() {}; domline.identity = function(x) { return x; }; @@ -92,12 +97,22 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument) { return space+tag; }); } + + var extraOpenTags = ""; + var extraCloseTags = ""; + + ((top == undefined) ? plugins : top.plugins).callHook( + "aceCreateDomLine", {domline:domline, cls:cls} + ).map(function (modifier) { + cls = modifier.cls; + extraOpenTags = extraOpenTags+modifier.extraOpenTags; + extraCloseTags = modifier.extraCloseTags+extraCloseTags; + }); + if ((! txt) && cls) { lineClass = domline.addToLineClass(lineClass, cls); } else if (txt) { - var extraOpenTags = ""; - var extraCloseTags = ""; if (href) { extraOpenTags = extraOpenTags+'<a href="'+ href.replace(/\"/g, '"')+'">'; diff --git a/infrastructure/ace/www/linestylefilter.js b/infrastructure/ace/www/linestylefilter.js index 71bc30d..d69376a 100644 --- a/infrastructure/ace/www/linestylefilter.js +++ b/infrastructure/ace/www/linestylefilter.js @@ -21,7 +21,6 @@ // requires: easysync2.Changeset // requires: top // requires: plugins -// requires: plugins // requires: undefined var linestylefilter = {}; @@ -239,13 +238,11 @@ linestylefilter.textAndClassFuncSplitter = function(func, splitPointsOpt) { linestylefilter.getFilterStack = function(lineText, textAndClassFunc, browser) { var func = linestylefilter.getURLFilter(lineText, textAndClassFunc); - /* Handle both client and server side situation */ - - var pluginModule = (top == undefined) ? plugins : top.plugins; - - var hookFilters = pluginModule.callHook("aceGetFilterStack", {linestylefilter:linestylefilter, browser:browser}); - for (var i = 0; i < hookFilters.length; i++) - func = hookFilters[i](lineText, func); + var hookFilters = ((top == undefined) ? plugins : top.plugins).callHook( + "aceGetFilterStack", {linestylefilter:linestylefilter, browser:browser}); + hookFilters.map(function (hookFilter) { + func = hookFilter(lineText, func); + }); if (browser !== undefined && browser.msie) { // IE7+ will take an e-mail address like <foo@bar.com> and linkify it to foo@bar.com. |