[annotator-dev] How to bypass AnnotateIt and use local storage
Benjamin Young
bigbluehat at hypothes.is
Fri Aug 22 15:14:31 UTC 2014
Hey David,
First, thanks for digging into AnnotatorJS! I'd love to stay in touch about
your plans for using localStorage. I'm personally hoping to explore a
PouchDB-based local-first annotation storage plugin in the near future.
Perhaps we can share research. ^_^
On Fri, Aug 22, 2014 at 9:41 AM, David Fox <dvdfox at gmail.com> wrote:
> Hi Randall,
>
> Thanks very much for your response. It is now writing to my Elasticsearch
> instance, though I think this just raised about a dozen more questions for
> me regarding the Auth plugin. I've turned it off for now. Here's where I
> ended up:
>
> jQuery(function ($)
> {
> $('#content').annotator().annotator('setupPlugins',
> {},
> {
> Auth: false,
> Store:
> {
> prefix: 'http://localhost:5000',
> annotationData:
> {
> 'uri': 'http://localhost/test'
> },
> loadFromSearch:
> {
> 'limit': 20,
> 'uri': 'http://localhost/test'
> },
> urls:
> {
> create: '/annotations',
> update: '/annotations/:id',
> destroy: '/annotations/:id',
> search: '/search'
> }
> }
> }).data('annotator');
> });
>
>
I think you can probably get by with a simpler object like:
```
{
Auth: false,
Store: { prefix: 'http://localhost:5000' }
}
```
The others seem to map to defaults (especially `urls`).
If you try that, I'd love to hear how it goes!
Later,
Benjamin
> If I want to add another plugin - do I follow the same method by just
> adding it after Store and overriding the default settings?
>
> Again, thank you - I was very happy to see my annotations in the database.
> Very cool.
>
> David
>
> --David
>
>
> On Thu, Aug 21, 2014 at 8:07 PM, Randall Leeds <tilgovi at hypothes.is>
> wrote:
>
>> I think the issue is that `setupPlugins`, which comes from the
>> kitchensink plugin, is setting up a group of default plugins and options.
>> The Store plugin is already loaded by the time you try to load it
>> explicitly, with the default settings for annotateit.
>>
>> These are the defaults:
>>
>> ```
>> pluginConfig
>> =
>>
>> Tags:
>> {}
>>
>>
>> Filter:
>>
>> filters:
>> [
>>
>> {label: Annotator._t('User'), property:
>> 'user'}
>>
>> {label: Annotator._t('Tags'), property:
>> 'tags'}
>>
>>
>> ]
>>
>> Auth:
>> tokenUrl: config.tokenUrl or 'http://annotateit.org/api/token'
>> Store:
>> prefix: config.storeUrl or 'http://annotateit.org/api'
>> annotationData:
>> uri: uri
>> loadFromSearch:
>> uri: uri
>> ```
>>
>> You can pass an additional argument to that `setupPlugins` call with a
>> `storeUrl` property, or you could override the entire set of Store options
>> by specifying a third argument, an options object that will get merged with
>> this config, where you could set prefix directly in a `Store` property.
>>
>>
>> On Thu, Aug 21, 2014 at 1:41 PM, David Fox <dvdfox at gmail.com> wrote:
>>
>>> Hello all,
>>>
>>> I'm having trouble getting the Store plugin up and running. Here's what
>>> I've managed to do so far:
>>>
>>> - Downloaded annotator-full.1.2.7
>>> - Installed annotator-store and pointed it at my local Elasticsearch
>>> - Verified that all of the Storage API endpoints are working, e.g.
>>> http://localhost:5000/search
>>> - Added the plugin to the page with the following javascript
>>>
>>> jQuery(function ($) {
>>> var content =
>>> $('#content').annotator().annotator('setupPlugins').data('annotator');
>>> content.annotator('addPlugin', 'Store', {
>>> prefix: 'http://localhost:5000',
>>> annotationData: {
>>> 'uri': 'http://localhost/test'
>>> },
>>> loadFromSearch: {
>>> 'limit': 20,
>>> 'uri': 'http://localhost/test'
>>> },
>>> urls: {
>>> create: '/annotations',
>>> update: '/annotations/:id',
>>> destroy: '/annotations/:id',
>>> search: '/search'
>>> }
>>> });
>>> });
>>>
>>> And here's what works:
>>>
>>> - I can make annotations to my content
>>> - The navigate and filter menus appear on my page
>>> - If I'm logged into my AnnotateIt account my annotations are saved
>>> with my AnnotateIt account and can be retrieved
>>>
>>> It's this last point that I'm struggling with - I'm not sure why it is
>>> defaulting to AnnotateIt storage. If I log out of my AnnotateIt account it
>>> will no longer allow me to create annotations. I thought all I needed to do
>>> was to point the Plugin at my Search API via the prefix property, but
>>> evidently I missed a step. Any ideas what I'm missing?
>>>
>>> Please forgive me if the Javascript is way off; it's not something I'm
>>> totally comfortable with yet.
>>>
>>> Thanks for the help!
>>> David Fox
>>>
>>> _______________________________________________
>>> annotator-dev mailing list
>>> annotator-dev at lists.okfn.org
>>> https://lists.okfn.org/mailman/listinfo/annotator-dev
>>> Unsubscribe: https://lists.okfn.org/mailman/options/annotator-dev
>>>
>>>
>>
>
> _______________________________________________
> annotator-dev mailing list
> annotator-dev at lists.okfn.org
> https://lists.okfn.org/mailman/listinfo/annotator-dev
> Unsubscribe: https://lists.okfn.org/mailman/options/annotator-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.okfn.org/pipermail/annotator-dev/attachments/20140822/00314c7a/attachment-0004.html>
More information about the annotator-dev
mailing list