summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEgil Moeller <egil.moller@freecode.no>2012-02-25 16:06:08 +0100
committerEgil Moeller <egil.moller@freecode.no>2012-02-25 16:06:08 +0100
commit24dda0c54db1fb347c4369ccd1802598db2f9448 (patch)
tree92eed16c1f9cd0aaa03605f72989e258b40e8092
parent1c0734e97b6bc8f7125dbb29d374edba8047d247 (diff)
downloadetherpad-lite-24dda0c54db1fb347c4369ccd1802598db2f9448.zip
Moved importexport
-rw-r--r--node/importexport.js41
-rw-r--r--node/server.js43
-rw-r--r--pluginomatic.json3
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" } }
]
}