ExportEtherpad: Fix `exportEtherpadAdditionalContent` hook docs

When exporting, only records like `comments:padId` are supported, not
records like `comments:padId:foo`.
pull/5513/head
Richard Hansen 2022-04-13 22:38:57 -04:00
parent 936185e3b6
commit 78b44daaa8
2 changed files with 11 additions and 11 deletions

View File

@ -945,17 +945,19 @@ exports.exportHtmlAdditionalTagsWithData = function(hook, pad, cb){
};
```
## exportEtherpadAdditionalContent
Called from src/node/utils/ExportEtherpad.js and
src/node/utils/ImportEtherpad.js
## `exportEtherpadAdditionalContent`
Things in context: Nothing
Called from `src/node/utils/ExportEtherpad.js` and
`src/node/utils/ImportEtherpad.js`.
Useful for exporting and importing pad metadata that is stored in the database
but not in the pad's content or attributes. For example, in ep_comments_page the
comments are stored as `comments:padId:uniqueIdOfComment` so a complete export
of all pad data to an `.etherpad` file must include the `comments:padId:*`
records.
Called when exporting to an `.etherpad` file or when importing from an
`.etherpad` file. The hook function should return prefixes for pad-specific
records that should be included in the export/import. On export, each
`${prefix}:${padId}` record (but not `${prefix}:${padId}:*` records) are
included in the generated `.etherpad` file. On import, all `${prefix}:${padId}`
and `${prefix}:${padId}:*` records are loaded into the database.
Context properties: None.
Example:

View File

@ -32,8 +32,6 @@ exports.getPadRaw = async (padId, readOnlyId) => {
}
for (let i = 0; i <= pad.head; ++i) data[`${pfx}:revs:${i}`] = await pad.getRevision(i);
for (let i = 0; i <= pad.chatHead; ++i) data[`${pfx}:chat:${i}`] = await pad.getChatMessage(i);
// get content that has a different prefix IE comments:padId:foo
// a plugin would return something likle ['comments', 'cakes']
const prefixes = await hooks.aCallAll('exportEtherpadAdditionalContent');
await Promise.all(prefixes.map(async (prefix) => {
data[`${prefix}:${readOnlyId || padId}`] = await pad.db.get(`${prefix}:${padId}`);