Merge pull request #1034 from d-a-n/develop

Added hooks for pad events create/edit/load/remove
This commit is contained in:
John McLear 2012-10-05 17:28:40 -07:00
commit db1a1a0e3e
2 changed files with 45 additions and 0 deletions

View File

@ -65,6 +65,42 @@ This hook gets called upon the rendering of an ejs template block. For any speci
Have a look at `src/templates/pad.html` and `src/templates/timeslider.html` to see which blocks are available.
## padCreate
Called from: src/node/db/Pad.js
Things in context:
1. pad - the pad instance
This hook gets called when a new pad was created.
## padLoad
Called from: src/node/db/Pad.js
Things in context:
1. pad - the pad instance
This hook gets called when an pad was loaded. If a new pad was created and loaded this event will be emitted too.
## padUpdate
Called from: src/node/db/Pad.js
Things in context:
1. pad - the pad instance
This hook gets called when an existing pad was updated.
## padRemove
Called from: src/node/db/Pad.js
Things in context:
1. padID
This hook gets called when an existing pad was removed/deleted.
## socketio
Called from: src/node/hooks/express/socketio.js

View File

@ -16,6 +16,7 @@ var padMessageHandler = require("../handler/PadMessageHandler");
var readOnlyManager = require("./ReadOnlyManager");
var crypto = require("crypto");
var randomString = require("../utils/randomstring");
var hooks = require('ep_etherpad-lite/static/js/pluginfw/hooks');
//serialization/deserialization attributes
var attributeBlackList = ["id"];
@ -86,6 +87,12 @@ Pad.prototype.appendRevision = function appendRevision(aChangeset, author) {
// set the author to pad
if(author)
authorManager.addPad(author, this.id);
if (this.head == 0) {
hooks.callAll("padCreate", {'pad':this});
} else {
hooks.callAll("padUpdate", {'pad':this});
}
};
//save all attributes to the database
@ -368,6 +375,7 @@ Pad.prototype.init = function init(text, callback) {
_this.appendRevision(firstChangeset, '');
}
hooks.callAll("padLoad", {'pad':_this});
callback(null);
});
};
@ -467,6 +475,7 @@ Pad.prototype.remove = function remove(callback) {
{
db.remove("pad:"+padID);
padManager.unloadPad(padID);
hooks.callAll("padRemove", {'padID':padID});
callback();
}
], function(err)