<div dir="ltr">Thanks for the help Bird, your suggestion works great. I see that I didn't understand the documentation.<div><br></div><div>I do have another question if you don't mind.</div><div><br></div><div>For the PUT and DELETE endpoints, the annotator does not use the /api/annotator/:id pattern but sends the annotation in the request body and calls /api/annotator. I can get the 'id' from the body so can make it work but this behavior does not correspond to the docs. Any idea what's going on?</div><div><br></div><div>Thanks again,</div><div><br></div><div>Rick</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 25, 2014 at 12:46 AM, Sarah Bird - Bonvaya <span dir="ltr"><<a href="mailto:sarah@bonvaya.com" target="_blank">sarah@bonvaya.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Hi Rick,<br><br>This is how I do something similar:<br><br><span style="font-family:monospace">a.annotator('addPlugin', 'Store', {<br>  prefix: '<a href="http://annotateit.org/api" target="_blank">http://annotateit.org/api</a>',<br>  annotationData: {<br>    'project': PROJECTNAME,<br>    'version': VERSION,<br>    'uri': URI,<br>    'siteuid': SITE_UNIQUE_ID,<br>    'pageuid': PAGE_UNIQUE_ID<br>  },<br>  loadFromSearch: {<br>    'pageuid': PAGE_UNIQUE_ID.toLowerCase(),<br>    'limit': 1000<br>  }<br>});</span><br><br>(<a href="https://github.com/open-contracting/standard-collaborator/blob/master/django/website/main/templates/main/standard.html#L91" target="_blank">https://github.com/open-contracting/standard-collaborator/blob/master/django/website/main/templates/main/standard.html#L91</a>)<br><br></div>I am adding custom data, and searching based on that.<br><br>In your case, I imagine this should work:<br><br><div><span style="font-family:monospace">a.annotator('addPlugin', 'Store', {<br>  prefix: '<a href="http://annotateit.org/api" target="_blank">http://annotateit.org/api</a>',<br>  annotationData: {<br></span><span style="font-family:monospace">    "docId":that.data._id, <br>    "userId":Meteor.userId()<br>  },<br>  loadFromSearch: {<br>    '</span><span style="font-family:monospace"><span style="font-family:monospace">userId</span>': </span><span style="font-family:monospace"><span style="font-family:monospace">Meteor.userId(),</span>    <br>    'limit': 1000<br>  }<br>});</span><br><br></div><div>Assuming your store endpoint has a search api working.<br><br></div><div>Best,<br><br></div><div>Bird<br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Thu, Nov 20, 2014 at 5:47 PM, Rick <span dir="ltr"><<a href="mailto:rmercer33@gmail.com" target="_blank">rmercer33@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="h5"><div dir="ltr">Hi All,<div><br></div><div>I'm using annotator.js v 1.2.9 and using the Store plugin with Meteor and MongoDB.</div><div><br></div><div>I want only annotations created by the current user to be displayed.</div><div><br></div><div>When annotator is first initialized it makes a GET request to receive all annotations. Rather than return all annotations I want to return only those created by the current user (on the current page).</div><div><br></div><div>But the GET request does not include any user information that can be used to query the database. I tried using the annotationData option of the Store plugin but that info is not part of the GET request - but is part of the annotation json object in the body of a POST.</div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><div><div>that.$('#document').annotator()</div></div><div><div>        .annotator("addPlugin", 'Store', {</div></div><div><div>          prefix: '/api',</div></div><div><div>          annotationData: {"docId":that.data._id, "userId":Meteor.userId()}</div></div><div><div>        })</div></div></blockquote><div><br></div><div>I tried the Permissions plugin and can see how that prevents others from editing or deleting an annotation they did not create but It doesn't seem to work when I try to restrict readers to just the creator. Here's my code for that:</div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><div><div>  var userInfo = {id:Meteor.userId(), email:Meteor.user().emails[0].address};</div></div></blockquote><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px"><div><div>.annotator("addPlugin", 'Permissions', {</div></div><div><div>          user: userInfo,</div></div><div><div>          userId: function(user) {</div></div><div><div>            if (user && <a href="http://user.id" target="_blank">user.id</a>) {</div></div><div><div>              return <a href="http://user.id" target="_blank">user.id</a>;</div></div><div><div>            }</div></div><div><div>            else</div></div><div><div>              return user</div></div><div><div>          },</div></div><div><div>          userString: function(user) {</div></div><div><div>            if (user && <a href="http://user.id" target="_blank">user.id</a>) {</div></div><div><div>              return user.email;</div></div><div><div>            }</div></div><div><div>            else</div></div><div><div>              return user</div></div><div><div>          },</div></div><div><div>          permissions: {</div></div><div><div>            'read': [userInfo.id],</div></div><div><div>            'update': [userInfo.id],</div></div><div><div>            'delete': [userInfo.id],</div></div><div><div>            'admin': [userInfo.id]</div></div><div><div>          },</div></div><div><div>          showViewPermissionsCheckbox: false,</div></div><div><div>          showEditPermissionsCheckbox: false</div></div><div><div>        })</div></div></blockquote><div><br></div><div>I also tried the Auth plugin which adds an 'x-annotator-auth-token' key to the request header and I can use that token to obtain user info but, the token is not added to the GET request.</div><div><br></div><div>So, I don't know how to proceed. All help is gratefully appreciated.</div><div><br></div><div>Thanks in advance.</div><span><font color="#888888"><div><br></div><div>Rick ;-)</div></font></span></div>
<br></div></div>_______________________________________________<br>
annotator-dev mailing list<br>
<a href="mailto:annotator-dev@lists.okfn.org" target="_blank">annotator-dev@lists.okfn.org</a><br>
<a href="https://lists.okfn.org/mailman/listinfo/annotator-dev" target="_blank">https://lists.okfn.org/mailman/listinfo/annotator-dev</a><br>
Unsubscribe: <a href="https://lists.okfn.org/mailman/options/annotator-dev" target="_blank">https://lists.okfn.org/mailman/options/annotator-dev</a><br>
<br></blockquote></div><br></div></div>
<br>_______________________________________________<br>
annotator-dev mailing list<br>
<a href="mailto:annotator-dev@lists.okfn.org">annotator-dev@lists.okfn.org</a><br>
<a href="https://lists.okfn.org/mailman/listinfo/annotator-dev" target="_blank">https://lists.okfn.org/mailman/listinfo/annotator-dev</a><br>
Unsubscribe: <a href="https://lists.okfn.org/mailman/options/annotator-dev" target="_blank">https://lists.okfn.org/mailman/options/annotator-dev</a><br>
<br></blockquote></div><br></div>