diff options
author | Egil Moeller <egil.moller@freecode.no> | 2012-02-25 16:06:08 +0100 |
---|---|---|
committer | Egil Moeller <egil.moller@freecode.no> | 2012-02-25 16:06:08 +0100 |
commit | 24dda0c54db1fb347c4369ccd1802598db2f9448 (patch) | |
tree | 92eed16c1f9cd0aaa03605f72989e258b40e8092 | |
parent | 1c0734e97b6bc8f7125dbb29d374edba8047d247 (diff) | |
download | etherpad-lite-24dda0c54db1fb347c4369ccd1802598db2f9448.zip |
Moved importexport
-rw-r--r-- | node/importexport.js | 41 | ||||
-rw-r--r-- | node/server.js | 43 | ||||
-rw-r--r-- | pluginomatic.json | 3 |
3 files changed, 43 insertions, 44 deletions
diff --git a/node/importexport.js b/node/importexport.js new file mode 100644 index 00000000..b53447da --- /dev/null +++ b/node/importexport.js @@ -0,0 +1,41 @@ +var hasPadAccess = require("./padaccess"); +var settings = require('./utils/Settings'); +var exportHandler = require('./handler/ExportHandler'); +var importHandler = require('./handler/ImportHandler'); + +exports.expressCreateServer = function (hook_name, args, cb) { + args.app.get('/p/:pad/:rev?/export/:type', function(req, res, next) { + var types = ["pdf", "doc", "txt", "html", "odt", "dokuwiki"]; + //send a 404 if we don't support this filetype + if (types.indexOf(req.params.type) == -1) { + next(); + return; + } + + //if abiword is disabled, and this is a format we only support with abiword, output a message + if (settings.abiword == null && + ["odt", "pdf", "doc"].indexOf(req.params.type) !== -1) { + res.send("Abiword is not enabled at this Etherpad Lite instance. Set the path to Abiword in settings.json to enable this feature"); + return; + } + + res.header("Access-Control-Allow-Origin", "*"); + + hasPadAccess(req, res, function() { + exportHandler.doExport(req, res, req.params.pad, req.params.type); + }); + }); + + //handle import requests + args.app.post('/p/:pad/import', function(req, res, next) { + //if abiword is disabled, skip handling this request + if(settings.abiword == null) { + next(); + return; + } + + hasPadAccess(req, res, function() { + importHandler.doImport(req, res, req.params.pad); + }); + }); +} diff --git a/node/server.js b/node/server.js index b3a36c2c..f97afd0f 100644 --- a/node/server.js +++ b/node/server.js @@ -118,49 +118,6 @@ async.waterfall([ gracefulShutdown(); }); - //serve timeslider.html under /p/$padname/timeslider - app.get('/p/:pad/:rev?/export/:type', function(req, res, next) - { - var types = ["pdf", "doc", "txt", "html", "odt", "dokuwiki"]; - //send a 404 if we don't support this filetype - if(types.indexOf(req.params.type) == -1) - { - next(); - return; - } - - //if abiword is disabled, and this is a format we only support with abiword, output a message - if(settings.abiword == null && - ["odt", "pdf", "doc"].indexOf(req.params.type) !== -1) - { - res.send("Abiword is not enabled at this Etherpad Lite instance. Set the path to Abiword in settings.json to enable this feature"); - return; - } - - res.header("Access-Control-Allow-Origin", "*"); - - hasPadAccess(req, res, function() - { - exportHandler.doExport(req, res, req.params.pad, req.params.type); - }); - }); - - //handle import requests - app.post('/p/:pad/import', function(req, res, next) - { - //if abiword is disabled, skip handling this request - if(settings.abiword == null) - { - next(); - return; - } - - hasPadAccess(req, res, function() - { - importHandler.doImport(req, res, req.params.pad); - }); - }); - //let the server listen app.listen(settings.port, settings.ip); diff --git a/pluginomatic.json b/pluginomatic.json index 498384e2..996aacdc 100644 --- a/pluginomatic.json +++ b/pluginomatic.json @@ -6,7 +6,8 @@ { "name": "minified", "hooks": { "expressCreateServer": "../minified:expressServer" } }, { "name": "padreadonly", "hooks": { "expressCreateServer": "../padreadonly:expressServer" } }, { "name": "webaccess", "hooks": { "expressConfigure": "../webaccess:expressConfigure" } }, - { "name": "apicalls", "hooks": { "expressCreateServer": "../apicalls:expressCreateServer" } } + { "name": "apicalls", "hooks": { "expressCreateServer": "../apicalls:expressCreateServer" } }, + { "name": "importexport", "hooks": { "expressCreateServer": "../importexport:expressCreateServer" } } ] } |