Lines Matching refs:ann

208         list.forEach(function (ann) {  argument
209 _annotations.set(ann.id, ann);
233 _annotations.forEach(function (ann) { argument
234 ann._range = null;
235 ann._highlightEl = null;
236 var hit = ann.anchor ? locate(nm.norm, ann.anchor) : null;
238 hits.push({ann: ann, pos: hit.pos, len: hit.len}); property
239 ann._orphaned = false;
241 ann._orphaned = true;
251 h.ann._range = range; // cache for panel positioning
252 wrapHighlight(range, h.ann);
254 h.ann._orphaned = true;
524 function wrapHighlight(range, ann) { argument
525 var preview = ann.body || '';
527 span.className = ann.status === 'resolved'
530 span.dataset.annId = ann.id;
534 openPanel(ann.id);
539 ann._highlightEl = span;
546 ann._highlightEl = span;
548 ann._highlightEl = null;
595 _annotations.forEach(function (ann) { argument
596 if (!ann._highlightEl) return; // orphan
598 var rect = ann._highlightEl.getBoundingClientRect();
602 marker.dataset.annId = ann.id;
603 marker.dataset.status = ann.status || 'open'; // drives CSS amber/green colour
612 openPanel(ann.id);
615 ann._markerEl = marker;
658 _annotations.forEach(function (ann) { argument
659 if (!ann._markerEl || !ann._highlightEl) return;
660 var rect = ann._highlightEl.getBoundingClientRect();
661 ann._markerEl.style.top = (rect.top + scrollTop + 3) + 'px';
662 ann._markerEl.style.left = markerLeft + 'px';
752 _annotations.forEach(function (ann) { argument
753 if (ann._orphaned) {
755 } else if (ann.status === 'resolved') {
784 var ann = _annotations.get(annId);
785 if (!ann) return;
787 var panel = buildPanel(ann);
792 var anchor = ann._highlightEl || null;
848 function buildPanel(ann) { argument
851 panel.dataset.annId = ann.id;
852 panel.dataset.status = ann.status || 'open'; // drives the resolved accent in style.css
855 var rootEntry = buildThreadEntry(ann, true);
870 appendReplyTree(panel, ann, buildReplyTree(ann.replies || []), 0);
874 panel.appendChild(buildReplyForm(ann));
887 function buildThreadEntry(ann, isRoot) { argument
890 entry.dataset.annId = ann.id;
893 entry.appendChild(buildMeta(ann.author, ann.created, ann.status));
898 bodyEl.textContent = ann.body;
902 if (ann.anchor && ann.anchor.exact) {
905 quote.textContent = ann.anchor.exact;
917 var isOrphan = !!ann._orphaned;
924 resolveBtn.textContent = ann.status === 'resolved'
928 doResolve(ann.id, ann.status === 'resolved' ? 'open' : 'resolved', resolveBtn);
934 var canEdit = _isAdmin || ann.author === currentUser();
942 showEditForm(entry, ann, 'annotation');
953 doDeleteAnnotation(ann.id, delBtn);
974 function buildReplyEntry(ann, reply, depth, readOnly) { argument
1013 var form = buildInlineReplyForm(ann, reply.id, depth + 1);
1028 showEditForm(entry, {annId: ann.id, replyId: reply.id, body: reply.body}, 'reply');
1038 doDeleteReply(ann.id, reply.id, delBtn);
1082 function appendReplyTree(panel, ann, nodes, depth, readOnly) { argument
1084 panel.appendChild(buildReplyEntry(ann, node.reply, depth, readOnly));
1086 appendReplyTree(panel, ann, node.children, depth + 1, readOnly);
1099 function buildInlineReplyForm(ann, parentReplyId, depth) { argument
1123 doAddReply(ann.id, body, function () {
1189 function buildReplyForm(ann) { argument
1209 doAddReply(ann.id, body, function () {
1301 _annotations.forEach(function (ann) { argument
1302 if (ann._orphaned) hasOrphans = true;
1334 _annotations.forEach(function (ann) { argument
1335 if (!ann._orphaned) return;
1342 thread.dataset.status = ann.status || 'open';
1343 thread.appendChild(buildThreadEntry(ann, true));
1344 appendReplyTree(thread, ann, buildReplyTree(ann.replies || []), 0, true);
1667 var ann = data.annotation;
1668 _annotations.set(ann.id, ann);
1669 if (typeof onSuccess === 'function') onSuccess(ann);
1857 _annotations.forEach(function (ann, id) { argument
1858 if (ann.status === 'resolved') _annotations.delete(id);
1887 _annotations.forEach(function (ann, id) { argument
1888 if (ann._orphaned) _annotations.delete(id);