(On Chrome, at least,) window.onload() is called once by hand, and once
by the browser. This ends up calling setInterval() twice. When
stopAnimation() is called later, only the second interval is cleared; so
the first one keeps firing forever. Mostly harmless but unnecessary.
Only the first hunk of this patch is really needed, but making
startAnimation() / stopAnimation() idempotent can't hurt.
I have a smart list which has no conditions (ie matches all items). This
breaks "View as Clips" when the list is selected because:
pandora.api.getList({id: "wjt:Everything"}) -> {
// ...
data: {
// ...
query: {}
}
}
so result.data.query.conditions is undefined.
The idea here is to have several layers which share a set of tags. This
mirrors what we already have if several layers reference the same type
of entity. You might have config like this:
{
"id": "keywords",
"title": "Keywords",
"canAddAnnotations": {"member": true, "staff": true, "admin": true},
"item": "Keyword",
"overlap": true,
"type": "string",
"autocomplete": true,
"autocompleteKeys": ["keywords", "minorkeywords"]
},
{
"id": "minorkeywords",
"title": "Minor Keywords",
"canAddAnnotations": {"member": true, "staff": true, "admin": true},
"item": "Keyword",
"overlap": true,
"type": "string",
"autocomplete": true,
"autocompleteKeys": ["keywords", "minorkeywords"]
},
Now, adding new keywords in either bin will offer autocompletions from
the union of the two layers. The other option would be to do this on the
server side, but I thought this was a less invasive way to achieve this.
If (for example) you have a type of entities, "participants", and a
second annotation layer for them, like this:
{
"id": "participantsdiscussed",
"title": "Participants discussed",
"type": "entity",
"entity": "participants"
}
then we should be passing key="participants" to autocompleteEntities
(since that is the type of entity), not key="participantsdiscussed"
(which is not a type of entities and raises an error).