[annotator-dev] Creating A JS Plugin For Voting/Likes/Recommend

steph steph at endpoint.com
Wed Mar 4 18:11:48 UTC 2015


Hi,


On 03/04/2015 12:25 PM, King'ori J. Maina wrote:
>
> I’ve been able to get some sample plugin code setup and being used by 
> annotator but I’m struggling to figure out how to add the actual 
> functionality of up-voting and down-voting. Getting exhausted while 
> trying to learn/figure out coffee script. The idea was that I have 
> some sample code to refer to as a base implementation of the 
> fundamentals.
>
> Any ideas as to a plugin that’s written in vanilla JS that I can poke 
> into and learn?

Edge Annotator is in vanilla JS, so everything in 
https://github.com/openannotation/annotator/tree/master/src should now 
be JS only, although some of those don't necessarily demonstrate plugin 
capabilities.

Here's one I'm working on: 
https://github.com/stephskardal/Annotation-Studio/blob/master/app/assets/javascripts/annotator-category.js. 
It is compatible with Annotator 1.2.*. I've also worked on Annotator 2.0 
and the plugin API is not much different. Here are some important bits:
* pluginInit 
(https://github.com/stephskardal/Annotation-Studio/blob/master/app/assets/javascripts/annotator-category.js#L26): 
called when a plugin is initialized, but before data loaded. Here's 
where you would call addField on the viewer or editor.
* hook for annotationsLoaded, called after Annotator finishes loading 
annotations. Here's where you may manipulate annotations / UI after 
annotations loaded.
* hooks for annotationUpdated, annotationCreated, called after 
annotation updated / created. Here's where you may manipulate the UI 
based on annotation data.
* hook for annotationEditorSubmit, called right after user clicks 
"save", but before data is sent to the backend. Here's where you would 
modify the annotation data getting sent to the backend.
* __bind calls on various plugin methods to set scope 
(https://github.com/stephskardal/Annotation-Studio/blob/master/app/assets/javascripts/annotator-category.js#L17-L22)

There are quite a few more hooks, but I think these are likely to be the 
most popular.

Another option is to use something like http://js2.coffee/ to convert 
another plugin in CoffeeScript to JS.

Steph
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.okfn.org/pipermail/annotator-dev/attachments/20150304/333e2f74/attachment-0004.html>


More information about the annotator-dev mailing list