From 631235e269a0e913207cf17f38855eb156e21f75 Mon Sep 17 00:00:00 2001 From: Egil Moeller Date: Sat, 10 Apr 2010 23:15:43 +0200 Subject: Generalized the page.ejs a bit more so that it can be used by all pages for real --- etherpad/src/etherpad/control/pad/pad_control.js | 34 +++----------------- etherpad/src/etherpad/helpers.js | 4 +++ etherpad/src/etherpad/pad/padutils.js | 37 ++++++++++++++++++++++ .../src/themes/default/templates/pad/pad_body2.ejs | 10 ++++-- etherpad/src/themes/default/templates/page.ejs | 8 ++--- 5 files changed, 55 insertions(+), 38 deletions(-) (limited to 'etherpad') diff --git a/etherpad/src/etherpad/control/pad/pad_control.js b/etherpad/src/etherpad/control/pad/pad_control.js index 3d32355..2a6a1be 100644 --- a/etherpad/src/etherpad/control/pad/pad_control.js +++ b/etherpad/src/etherpad/control/pad/pad_control.js @@ -331,15 +331,6 @@ function render_pad(localPadId) { var specialKey = request.params.specialKey || (sessions.isAnEtherpadAdmin() ? collab_server.getSpecialKey('invisible') : null); - if (request.params.fullScreen) { // tokbox, embedding - opts.fullScreen = true; - } - if (request.params.tokbox) { - opts.tokbox = true; - } - if (request.params.sidebar) { - opts.sidebar = Boolean(Number(request.params.sidebar)); - } helpers.addClientVars({ padId: localPadId, @@ -365,34 +356,17 @@ function render_pad(localPadId) { userColor: assignColorId(pad, userId), specialKey: specialKey, specialKeyTranslation: collab_server.translateSpecialKey(specialKey), - opts: opts }); }); var isProUser = (isPro && ! padusers.isGuest(userId)); - var isFullWidth = false; - var hideSidebar = false; - var cookiePrefs = padutils.getPrefsCookieData(); - if (cookiePrefs) { - isFullWidth = !! cookiePrefs.fullWidth; - hideSidebar = !! cookiePrefs.hideSidebar; - } - if (opts.fullScreen) { - isFullWidth = true; - if (opts.tokbox) { - hideSidebar = true; - } - } - if ('sidebar' in opts) { - hideSidebar = ! opts.sidebar; - } - var bodyClass = (isFullWidth ? "fullwidth" : "limwidth")+ + padutils.setOptsAndCookiePrefs(request); + var prefs = helpers.getClientVar('cookiePrefsToSet'); + var bodyClass = (prefs.isFullWidth ? "fullwidth" : "limwidth") + " "+(isPro ? "propad" : "nonpropad")+" "+ (isProUser ? "prouser" : "nonprouser"); - var cookiePrefsToSet = {fullWidth:isFullWidth, hideSidebar:hideSidebar}; - helpers.addClientVars({cookiePrefsToSet: cookiePrefsToSet}); renderHtml("pad/pad_body2.ejs", {localPadId:localPadId, @@ -404,7 +378,7 @@ function render_pad(localPadId) { isProAccountHolder: isProUser, account: getSessionProAccount(), // may be falsy toHTML: toHTML, - prefs: {isFullWidth:isFullWidth, hideSidebar:hideSidebar}, + prefs: prefs, signinUrl: '/ep/account/sign-in?cont='+ encodeURIComponent(request.url), fullSuperdomain: pro_utils.getFullSuperdomainHost() diff --git a/etherpad/src/etherpad/helpers.js b/etherpad/src/etherpad/helpers.js index e16c2f7..aec3bc3 100644 --- a/etherpad/src/etherpad/helpers.js +++ b/etherpad/src/etherpad/helpers.js @@ -77,6 +77,10 @@ function addClientVars(vars) { }); } +function getClientVar(name) { + return _hd().clientVars[name]; +} + function addToHead(stuff) { _hd().headExtra += stuff; } diff --git a/etherpad/src/etherpad/pad/padutils.js b/etherpad/src/etherpad/pad/padutils.js index 2fdf579..dc4c9ab 100644 --- a/etherpad/src/etherpad/pad/padutils.js +++ b/etherpad/src/etherpad/pad/padutils.js @@ -25,6 +25,7 @@ import("etherpad.pro.pro_accounts"); import("etherpad.pro.pro_padmeta"); import("etherpad.pad.model"); import("etherpad.sessions.getSession"); +import("etherpad.helpers"); jimport("java.lang.System.out.println"); @@ -152,3 +153,39 @@ function getProDisplayTitle(localPadId, title) { } } + +function setOptsAndCookiePrefs(request) { + opts = {}; + if (request.params.fullScreen) { // tokbox, embedding + opts.fullScreen = true; + } + if (request.params.tokbox) { + opts.tokbox = true; + } + if (request.params.sidebar) { + opts.sidebar = Boolean(Number(request.params.sidebar)); + } + helpers.addClientVars({opts: opts}); + + + var prefs = getPrefsCookieData(); + + var prefsToSet = { + fullWidth:false, + hideSidebar:false + }; + if (prefs) { + prefsToSet.isFullWidth = !! prefs.fullWidth; + prefsToSet.hideSidebar = !! prefs.hideSidebar; + } + if (opts.fullScreen) { + prefsToSet.isFullWidth = true; + if (opts.tokbox) { + prefsToSet.hideSidebar = true; + } + } + if ('sidebar' in opts) { + prefsToSet.hideSidebar = ! opts.sidebar; + } + helpers.addClientVars({cookiePrefsToSet: prefsToSet}); +} diff --git a/etherpad/src/themes/default/templates/pad/pad_body2.ejs b/etherpad/src/themes/default/templates/pad/pad_body2.ejs index a19e685..5c886fb 100644 --- a/etherpad/src/themes/default/templates/pad/pad_body2.ejs +++ b/etherpad/src/themes/default/templates/pad/pad_body2.ejs @@ -14,9 +14,9 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ %> -<% template.inherit('page.ejs') %> - <% + template.inherit('page.ejs'); + helpers.setHtmlTitle("EtherPad: "+pageTitle); helpers.includeJs("ace.js"); helpers.includeJs("collab_client.js"); @@ -54,6 +54,11 @@ limitations under the License. */ %> %> +<% template.define('docBarTitle', function() { var ejs_data=''; %> + <%= initialTitle %> +<% return ejs_data; }); %> + + <% template.define('docBarTitleEditor', function() { var ejs_data=''; %> <% if (isProAccountHolder) { %>
- <%: template.use('docBarTitle'); %> - + <%: template.use('docBarTitle'); %> - <% - plugins.callHookStr('docbarItemsAll', {}, '', ''); - plugins.callHookStr('docbarItemsPad', {}, '', ''); - %> + <%: plugins.callHookStr('docbarItemsAll', {}, '', ''); %> <%: template.use('docBarItems'); %> -- cgit v1.2.3-1-g7c22 From 57b352fec217de33e5b00e32e566a0eb44edfe3d Mon Sep 17 00:00:00 2001 From: Egil Moeller Date: Sat, 10 Apr 2010 23:16:12 +0200 Subject: Made the plugin manager use page.ejs --- .../src/etherpad/control/admin/pluginmanager.js | 7 + .../default/templates/admin/pluginmanager.ejs | 163 ++++++--------------- 2 files changed, 52 insertions(+), 118 deletions(-) (limited to 'etherpad') diff --git a/etherpad/src/etherpad/control/admin/pluginmanager.js b/etherpad/src/etherpad/control/admin/pluginmanager.js index 39edc4a..c4bee5b 100644 --- a/etherpad/src/etherpad/control/admin/pluginmanager.js +++ b/etherpad/src/etherpad/control/admin/pluginmanager.js @@ -26,6 +26,7 @@ import("etherpad.pro.pro_utils"); import("etherpad.helpers"); import("etherpad.pro.pro_accounts.getSessionProAccount"); import("etherpad.admin.plugins"); +import("etherpad.pad.padutils"); function onRequest() { @@ -52,8 +53,14 @@ function onRequest() { userId: padusers.getUserId(), }); + + padutils.setOptsAndCookiePrefs(request); + var prefs = helpers.getClientVar('cookiePrefsToSet'); + var bodyClass = (prefs.isFullWidth ? "fullwidth" : "limwidth") + renderHtml("admin/pluginmanager.ejs", { + prefs: prefs, config: appjet.config, bodyClass: 'nonpropad', isPro: pro_utils.isProDomainRequest(), diff --git a/etherpad/src/themes/default/templates/admin/pluginmanager.ejs b/etherpad/src/themes/default/templates/admin/pluginmanager.ejs index 077d10a..cc47928 100644 --- a/etherpad/src/themes/default/templates/admin/pluginmanager.ejs +++ b/etherpad/src/themes/default/templates/admin/pluginmanager.ejs @@ -12,36 +12,9 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ %> <% + template.inherit('page.ejs'); helpers.setHtmlTitle("EtherPad: Manage plugins"); -/* - helpers.includeCss("plugins/twitterStyleTags/tagBrowser.css"); - helpers.includeCss("plugins/twitterStyleTags/pad.css"); */ - helpers.setBodyId("padbody"); - helpers.addBodyClass("limwidth nonpropad nonprouser"); - helpers.includeCss("pad2_ejs.css"); helpers.includeCss("admin/pluginmanager.css"); - helpers.includeJs("undo-xpopup.js"); - helpers.includeCometJs(); - helpers.includeJQuery(); - helpers.includeJs("json2.js"); - helpers.includeJs("colorutils.js"); - helpers.includeJs("ace.js"); - helpers.includeJs("collab_client.js"); - helpers.includeJs("draggable.js"); - helpers.includeJs("pad_utils.js"); - helpers.includeJs("pad_cookie.js"); - helpers.includeJs("pad_editor.js"); - helpers.includeJs("pad_userlist.js"); - helpers.includeJs("pad_editbar.js"); - helpers.includeJs("pad_chat.js"); - helpers.includeJs("pad_docbar.js"); - helpers.includeJs("pad_impexp.js"); - helpers.includeJs("pad_savedrevs.js"); - helpers.includeJs("pad_connectionstatus.js"); - helpers.includeJs("pad_modals.js"); - helpers.includeJs("pad2.js"); - helpers.suppressGA(); - helpers.setRobotsPolicy({index: false, follow: false}); function inArray(item, arr) { for (var i = 0; i < arr.length; i++) @@ -51,97 +24,51 @@ limitations under the License. */ %> } %> -
-
-
-
-
- - <% if (isProAccountHolder) { %> -
<%= toHTML(account.email) %>(sign out)
- <% } else if (isPro) { %> - - <% } %> -
-
-
-
<%= initialTitle %> ', '', '', '
- - - - - <% - plugins.callHookStr('docbarItemsAll', {}, '', ''); - plugins.callHookStr('docbarItemsPluginManager', {}, '', ''); - %> - - -
Plugin manager ', '', '
- -
- -
- -
-
-
+<% template.define('docBarTitle', function() { var ejs_data=''; %> + Plugin manager +<% return ejs_data; }); %> -
-
-
- -
-
-
-
- -
-
-
-
- - - - - - - <% for (var plugin in plugins.pluginModules) { %> - - - - - - <% } %> -
Module nameStatus
- <%= plugin %> -
- <%= plugins.pluginModules[plugin].description %> -
-
- <% if (plugins.plugins[plugin] !== undefined) { %> - Installed - <% } else { %> - Not installed - <% } %> - - <% if (plugins.plugins[plugin] !== undefined) { %> - Uninstall - Reinstall - <% if (plugins.plugins[plugin].configLink !== undefined) { %> - Configure - <% } %> - <% } else { %> - Install - <% } %> -
-
-
-
+<% template.define('docBarItems', function() { var ejs_data=''; %> + <%: plugins.callHookStr('docbarItemsPluginManager', {}, '', '', ''); %> +<% return ejs_data; }); %> -
-
-
+<% template.define('contentArea', function() { var ejs_data=''; %> +
+ + + + + + + <% for (var plugin in plugins.pluginModules) { %> + + + + + + <% } %> +
Module nameStatus
+ <%= plugin %> +
+ <%= plugins.pluginModules[plugin].description %> +
+
+ <% if (plugins.plugins[plugin] !== undefined) { %> + Installed + <% } else { %> + Not installed + <% } %> + + <% if (plugins.plugins[plugin] !== undefined) { %> + Uninstall + Reinstall + <% if (plugins.plugins[plugin].configLink !== undefined) { %> + Configure + <% } %> + <% } else { %> + Install + <% } %> +
-
-
+<% return ejs_data; }); %> -- cgit v1.2.3-1-g7c22 From 02b51560f50ed3905c8301b46b782b30e55b0dd8 Mon Sep 17 00:00:00 2001 From: Egil Moeller Date: Sun, 11 Apr 2010 00:10:29 +0200 Subject: Made twitterStyleTags use page.ejs --- .../twitterStyleTags/controllers/tagBrowser.js | 7 + .../twitterStyleTags/templates/tagBrowser.ejs | 186 ++++++++------------- 2 files changed, 73 insertions(+), 120 deletions(-) (limited to 'etherpad') diff --git a/etherpad/src/plugins/twitterStyleTags/controllers/tagBrowser.js b/etherpad/src/plugins/twitterStyleTags/controllers/tagBrowser.js index 793067d..7071306 100644 --- a/etherpad/src/plugins/twitterStyleTags/controllers/tagBrowser.js +++ b/etherpad/src/plugins/twitterStyleTags/controllers/tagBrowser.js @@ -29,6 +29,7 @@ import("etherpad.pro.pro_accounts.getSessionProAccount"); import("sqlbase.sqlbase"); import("sqlbase.sqlcommon"); import("sqlbase.sqlobj"); +import("etherpad.pad.padutils"); function tagsToQuery(tags, antiTags) { var prefixed = []; @@ -251,7 +252,13 @@ function onRequest() { var isProUser = (isPro && ! padusers.isGuest(userId)); + + padutils.setOptsAndCookiePrefs(request); + var prefs = helpers.getClientVar('cookiePrefsToSet'); + var bodyClass = (prefs.isFullWidth ? "fullwidth" : "limwidth") + var info = { + prefs: prefs, config: appjet.config, tagsToQuery: tagsToQuery, padIdToReadonly: server_utils.padIdToReadonly, diff --git a/etherpad/src/plugins/twitterStyleTags/templates/tagBrowser.ejs b/etherpad/src/plugins/twitterStyleTags/templates/tagBrowser.ejs index 1f33eb8..955d2e6 100644 --- a/etherpad/src/plugins/twitterStyleTags/templates/tagBrowser.ejs +++ b/etherpad/src/plugins/twitterStyleTags/templates/tagBrowser.ejs @@ -14,34 +14,10 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ %> <% + template.inherit('page.ejs'); helpers.setHtmlTitle("EtherPad: Browse tags"); helpers.includeCss("plugins/twitterStyleTags/tagBrowser.css"); helpers.includeCss("plugins/twitterStyleTags/pad.css"); - helpers.setBodyId("padbody"); - helpers.addBodyClass("limwidth nonpropad nonprouser"); - helpers.includeCss("pad2_ejs.css"); - helpers.includeJs("undo-xpopup.js"); - helpers.includeCometJs(); - helpers.includeJQuery(); - helpers.includeJs("json2.js"); - helpers.includeJs("colorutils.js"); - helpers.includeJs("ace.js"); - helpers.includeJs("collab_client.js"); - helpers.includeJs("draggable.js"); - helpers.includeJs("pad_utils.js"); - helpers.includeJs("pad_cookie.js"); - helpers.includeJs("pad_editor.js"); - helpers.includeJs("pad_userlist.js"); - helpers.includeJs("pad_editbar.js"); - helpers.includeJs("pad_chat.js"); - helpers.includeJs("pad_docbar.js"); - helpers.includeJs("pad_impexp.js"); - helpers.includeJs("pad_savedrevs.js"); - helpers.includeJs("pad_connectionstatus.js"); - helpers.includeJs("pad_modals.js"); - helpers.includeJs("pad2.js"); - helpers.suppressGA(); - helpers.setRobotsPolicy({index: false, follow: false}); helpers.addToHead('\n\n'); function inArray(item, arr) { @@ -51,108 +27,78 @@ limitations under the License. */ %> return false; } %> +<% template.define('docBarTitle', function() { var ejs_data=''; %> + Browse Tags +<% return ejs_data; }); %> -
-
-
-
-
- - <% if (isProAccountHolder) { %> -
<%= toHTML(account.email) %>(sign out)
- <% } else if (isPro) { %> - +<% template.define('sideBar', function() { var ejs_data=''; %> +
+ <% if (isProAccountEnabled()) { %> + + Create new pad + + + Create new team + + <% } else { %> + + Create new pad + <% } %>
-
- - - - - -
Browse Tags 
-
-
-
-
- <% if (isProAccountEnabled()) { %> - - Create new pad - - - Create new team - - <% } else { %> - - Create new pad - - <% } %> -
+
-
+
+<% return ejs_data; }); %> -
-
- -
-
-
-
- -
- Query: - <% if (tags.length == 0 && antiTags.length == 0) { %> - Latest changed pads - <% } else { %> - <% for (i = 0; i < tags.length; i++) { %> - #<%= tags[i] %> - <% } %> - <% for (i = 0; i < antiTags.length; i++) { %> - !#<%= antiTags[i] %> - <% } %> - <% } %> -
-
-
-
-
-

Search for pads that have the tag

- <% for (i = 0; i < newTags.length; i++) { %> - #<%= newTags[i].tagname %> - <% } %> +<% template.define('editBarItemsLeft', function() { var ejs_data=''; %> + + Query: + <% if (tags.length == 0 && antiTags.length == 0) { %> + Latest changed pads + <% } else { %> + <% for (i = 0; i < tags.length; i++) { %> + #<%= tags[i] %> + <% } %> + <% for (i = 0; i < antiTags.length; i++) { %> + !#<%= antiTags[i] %> + <% } %> + <% } %> + +<% return ejs_data; }); %> -

Search for pads that don't have the tag

- <% for (i = 0; i < newTags.length; i++) { %> - !#<%= newTags[i].tagname %> - <% } %> -
+<% template.define('contentArea', function() { var ejs_data=''; %> +
+
+

Search for pads that have the tag

+ <% for (i = 0; i < newTags.length; i++) { %> + #<%= newTags[i].tagname %> + <% } %> -
- <% for (i = 0; i < matchingPads.length; i++) { %> - <% - var matchingPadId = matchingPads[i].ID; - var matchingPadUrl = matchingPadId; - if (!inArray('writable', matchingPads[i].TAGS)) { - matchingPadId = padIdToReadonly(matchingPads[i].ID); - matchingPadUrl = 'ep/pad/view/' + matchingPadId + '/latest'; - } - %> -
<%= matchingPadId %>
-
- <% for (j = 0; j < matchingPads[i].TAGS.length; j++) { %> - #<%= matchingPads[i].TAGS[j] %> - <% } %> -
- <% } %> -
-
-
-
+

Search for pads that don't have the tag

+ <% for (i = 0; i < newTags.length; i++) { %> + !#<%= newTags[i].tagname %> + <% } %> +
-
-
-
+
+ <% for (i = 0; i < matchingPads.length; i++) { %> + <% + var matchingPadId = matchingPads[i].ID; + var matchingPadUrl = matchingPadId; + if (!inArray('writable', matchingPads[i].TAGS)) { + matchingPadId = padIdToReadonly(matchingPads[i].ID); + matchingPadUrl = 'ep/pad/view/' + matchingPadId + '/latest'; + } + %> +
<%= matchingPadId %>
+
+ <% for (j = 0; j < matchingPads[i].TAGS.length; j++) { %> + #<%= matchingPads[i].TAGS[j] %> + <% } %> +
+ <% } %> +
-
-
+<% return ejs_data; }); %> -- cgit v1.2.3-1-g7c22 From 903fc968581ca7309a860d9336762d2147342754 Mon Sep 17 00:00:00 2001 From: Egil Moeller Date: Sun, 11 Apr 2010 00:16:29 +0200 Subject: CSS bugfix --- etherpad/src/plugins/twitterStyleTags/static/css/tagBrowser.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'etherpad') diff --git a/etherpad/src/plugins/twitterStyleTags/static/css/tagBrowser.css b/etherpad/src/plugins/twitterStyleTags/static/css/tagBrowser.css index f3321a4..55fcda2 100644 --- a/etherpad/src/plugins/twitterStyleTags/static/css/tagBrowser.css +++ b/etherpad/src/plugins/twitterStyleTags/static/css/tagBrowser.css @@ -76,7 +76,7 @@ h1 { } #editbarinner { - line-height: 36px; + line-height: 29px; font-size: 16px; padding-left: 6pt; } -- cgit v1.2.3-1-g7c22 From 7cb7e6de9040e6f0d21390fede044200a0f1d198 Mon Sep 17 00:00:00 2001 From: Egil Moeller Date: Sun, 11 Apr 2010 02:25:39 +0200 Subject: Added an URL indexer, it currently only greps out URLs from pads and stores them in a separate, searchable table, but it doesn't actually provide a way to use this info. --- etherpad/src/plugins/urlIndexer/hooks.js | 39 ++++++++++++++++++++++++++++++++ etherpad/src/plugins/urlIndexer/main.js | 32 ++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 etherpad/src/plugins/urlIndexer/hooks.js create mode 100644 etherpad/src/plugins/urlIndexer/main.js (limited to 'etherpad') diff --git a/etherpad/src/plugins/urlIndexer/hooks.js b/etherpad/src/plugins/urlIndexer/hooks.js new file mode 100644 index 0000000..922150e --- /dev/null +++ b/etherpad/src/plugins/urlIndexer/hooks.js @@ -0,0 +1,39 @@ +import("etherpad.log"); +import("dispatch.{Dispatcher,PrefixMatcher,forward}"); +import("sqlbase.sqlobj"); + +REGEX_WORDCHAR = /[\u0030-\u0039\u0041-\u005A\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u1FFF\u3040-\u9FFF\uF900-\uFDFF\uFE70-\uFEFE\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFDC]/; +REGEX_URLCHAR = new RegExp('('+/[-:@a-zA-Z0-9_.,~%+\/\\?=&#;()$]/.source+'|'+REGEX_WORDCHAR.source+')'); +REGEX_URL = new RegExp(/(?:(?:https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt):\/\/|mailto:)/.source+REGEX_URLCHAR.source+'*(?![:.,;])'+REGEX_URLCHAR.source, 'g'); + +function padModelWriteToDB(args) { + /* Update tags for the pad */ + + var new_urls = args.pad.text().match(REGEX_URL); + if (new_urls == null) new_urls = new Array(); + var new_urls_str = new_urls.join(' ') + + var old_urls_row = sqlobj.selectSingle("PAD_URL_CACHE", { PAD_ID: args.padId }); + var old_urls_str; + if (old_urls_row !== null) + old_urls_str = old_urls_row['URLS']; + else + old_urls_str = ''; + + var old_urls = old_urls_str != '' ? old_urls_str.split(' ') : new Array(); + + if (new_urls_str != old_urls_str) { + log.info({message: 'Updating urls', new_urls:new_urls, old_urls:old_urls}); + + if (old_urls_row) + sqlobj.update("PAD_URL_CACHE", {PAD_ID: args.padId }, {URLS: new_urls.join(' ')}); + else + sqlobj.insert("PAD_URL_CACHE", {PAD_ID: args.padId, URLS: new_urls.join(' ')}); + + sqlobj.deleteRows("PAD_URL", {PAD_ID: args.padId}); + + for (i = 0; i < new_urls.length; i++) { + sqlobj.insert("PAD_URL", {PAD_ID: args.padId, URL: new_urls[i]}); + } + } +} \ No newline at end of file diff --git a/etherpad/src/plugins/urlIndexer/main.js b/etherpad/src/plugins/urlIndexer/main.js new file mode 100644 index 0000000..79bb019 --- /dev/null +++ b/etherpad/src/plugins/urlIndexer/main.js @@ -0,0 +1,32 @@ +import("etherpad.log"); +import("plugins.urlIndexer.hooks"); +import("sqlbase.sqlobj"); +import("sqlbase.sqlcommon"); + +function init() { + this.hooks = ['padModelWriteToDB']; + this.description = 'Indexes URLs linked to in pads so that they can be displayed outside pads, searched for etc.'; + this.padModelWriteToDB = hooks.padModelWriteToDB; + + this.install = install; + this.uninstall = uninstall; +} + +function install() { + log.info("Installing urlIndexer"); + + sqlobj.createTable('PAD_URL', { + PAD_ID: 'varchar(128) character set utf8 collate utf8_bin not null references PAD_META(ID)', + URL: 'varchar(1024) character set utf8 collate utf8_bin not null', + }); + + sqlobj.createTable('PAD_URL_CACHE', { + PAD_ID: 'varchar(128) character set utf8 collate utf8_bin unique not null references PAD_META(ID)', + URLS: 'text collate utf8_bin not null', + }); +} + +function uninstall() { + log.info("Uninstalling urlIndexer"); +} + -- cgit v1.2.3-1-g7c22 From 2e258bc3806724bb505a30872681a20326f4d4a6 Mon Sep 17 00:00:00 2001 From: Egil Moeller Date: Sun, 11 Apr 2010 02:27:50 +0200 Subject: Removed some slow debug printing --- etherpad/src/plugins/twitterStyleTags/hooks.js | 4 ++-- etherpad/src/plugins/urlIndexer/hooks.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'etherpad') diff --git a/etherpad/src/plugins/twitterStyleTags/hooks.js b/etherpad/src/plugins/twitterStyleTags/hooks.js index 003bc32..9465ccc 100644 --- a/etherpad/src/plugins/twitterStyleTags/hooks.js +++ b/etherpad/src/plugins/twitterStyleTags/hooks.js @@ -23,10 +23,10 @@ function padModelWriteToDB(args) { else old_tags_str = ''; - var old_tags = old_tags_str != '' ? old_tags_str.split('#') : new Array(); + // var old_tags = old_tags_str != '' ? old_tags_str.split('#') : new Array(); if (new_tags_str != old_tags_str) { - log.info({message: 'Updating tags', new_tags:new_tags, old_tags:old_tags}); + // log.info({message: 'Updating tags', new_tags:new_tags, old_tags:old_tags}); if (old_tags_row) sqlobj.update("PAD_TAG_CACHE", {PAD_ID: args.padId }, {TAGS: new_tags.join('#')}); diff --git a/etherpad/src/plugins/urlIndexer/hooks.js b/etherpad/src/plugins/urlIndexer/hooks.js index 922150e..1429895 100644 --- a/etherpad/src/plugins/urlIndexer/hooks.js +++ b/etherpad/src/plugins/urlIndexer/hooks.js @@ -20,10 +20,10 @@ function padModelWriteToDB(args) { else old_urls_str = ''; - var old_urls = old_urls_str != '' ? old_urls_str.split(' ') : new Array(); + // var old_urls = old_urls_str != '' ? old_urls_str.split(' ') : new Array(); if (new_urls_str != old_urls_str) { - log.info({message: 'Updating urls', new_urls:new_urls, old_urls:old_urls}); + // log.info({message: 'Updating urls', new_urls:new_urls, old_urls:old_urls}); if (old_urls_row) sqlobj.update("PAD_URL_CACHE", {PAD_ID: args.padId }, {URLS: new_urls.join(' ')}); -- cgit v1.2.3-1-g7c22