Compare commits
5 Commits
develop
...
export-eth
Author | SHA1 | Date |
---|---|---|
John McLear | fb1373b891 | |
John McLear | a0d5718675 | |
John McLear | 73b375577b | |
John McLear | f2abbdb5d8 | |
John McLear | 55900b4c23 |
|
@ -751,6 +751,21 @@ exports.exportHtmlAdditionalTagsWithData = function(hook, pad, cb){
|
|||
};
|
||||
```
|
||||
|
||||
## exportEtherpadAdditionalContent
|
||||
Called from src/node/utils/ExportEtherpad.js and src/node/utils/ImportEtherpad.js
|
||||
|
||||
Things in context:
|
||||
|
||||
Useful for exporting and importing non-pad centric data stored about a pad. For example in ep_comments_page the comments are stored as comments:padId:uniqueIdOfComment and as such when you export .etherpad this data is not included.
|
||||
|
||||
Example:
|
||||
```
|
||||
// Add support for exporting comments metadata
|
||||
exports.exportEtherpadAdditionalContent = function(hook_name, context, callback){
|
||||
return callback(["comments"]);
|
||||
};
|
||||
```
|
||||
|
||||
## userLeave
|
||||
Called from src/node/handler/PadMessageHandler.js
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
|
||||
let db = require("../db/DB");
|
||||
let hooks = require('ep_etherpad-lite/static/js/pluginfw/hooks');
|
||||
|
||||
exports.getPadRaw = async function(padId) {
|
||||
|
||||
|
@ -58,5 +59,17 @@ exports.getPadRaw = async function(padId) {
|
|||
}
|
||||
}
|
||||
|
||||
await Promise.all([
|
||||
// get content that has a different prefix IE comments:padId:foo
|
||||
// a plugin would return something likle ["comments", "cakes"]
|
||||
hooks.aCallAll('exportEtherpadAdditionalContent').then((prefixes) => {
|
||||
prefixes.forEach(async function(prefix) {
|
||||
let pluginContent = await db.get(prefix + ":" + padId);
|
||||
data[prefix + ":" + padId] = pluginContent;
|
||||
});
|
||||
})
|
||||
]);
|
||||
|
||||
|
||||
return data;
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
var log4js = require('log4js');
|
||||
const db = require("../db/DB");
|
||||
const hooks = require('ep_etherpad-lite/static/js/pluginfw/hooks');
|
||||
|
||||
exports.setPadRaw = function(padId, records)
|
||||
{
|
||||
|
@ -62,6 +63,19 @@ exports.setPadRaw = function(padId, records)
|
|||
// and create the value
|
||||
newKey = oldPadId.join(":"); // create the new key
|
||||
}
|
||||
|
||||
// is this a key that is supported through a plugin?
|
||||
await Promise.all([
|
||||
// get content that has a different prefix IE comments:padId:foo
|
||||
// a plugin would return something likle ["comments", "cakes"]
|
||||
hooks.aCallAll('exportEtherpadAdditionalContent').then((prefixes) => {
|
||||
prefixes.forEach(async function(prefix) {
|
||||
if(key.split(":")[0] === prefix){
|
||||
newKey = prefix + ":" + padId;
|
||||
}
|
||||
});
|
||||
})
|
||||
]);
|
||||
}
|
||||
|
||||
// Write the value to the server
|
||||
|
|
Loading…
Reference in New Issue