Permalink
Comparing changes
Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also
.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Choose a Base Repository
hypothesis/h
40a/h
AFDudley/h
BigBlueHat/h
BinaryStars/h
CCH543/h
Cinemacloud/h
Ericgood/h
FTG-003/h
Forethinker/h
GratefulTony/h
HGldJ1966/h
JJediny/h
John-Williams/h
Laurian/h
LittleFancy/h
MattyQ/h
Mishkin2015/h
RichardLitt/h
Staffan1/h
SteelWagstaff/h
TowerBR/h
VanyTang/h
abigailricarte/h
ackermann/h
alecchap/h
alesarrett/h
alexsegura/h
almereyda/h
alon/h
andzi/h
angelicxsoul/h
ansmoh/h
apurvajalit/h
arjunvasan/h
asdevor/h
bZichett/h
badgettrg/Webmarks
balmas/h
balupton/h
bbarker/h
bennlich/h
benthor/h
blakewest/h
bogste/h
bradparks/h
brittanystoroz/h
buiquangchien/h
cdchapman/h
charblanc/h
chowsamihq/h
chr7stos/Webmarks
chrber/h
chrismPssina/h
christinaphamAD/h
cmbirk/h
codeaudit/h
coolcool21/h
cove/h
csillag/h
danjimilk/h
dannyhope/h
daredream/h
davidmcclure/h
dennisplucinik/h
dezynetechnologies/h
diegodlh/h
djcun95/h
donsequitur/h
edsu/h
eiro10/h
emckean/h
ercchy/h
eshellman/h
fangang123/h
fchasen/h
fcrimins/h
fhirsch/h
ficolo/h
fragkopoulos/h
gauravkeerthi/h
geass/h
gergely-ujvari/h
gitter-badger/h
gnott/h
gobengo/h
gorinovic/h
gus3000/h
hashin/h
helemaalbigt/h
hmstepanek/h
hwasiti/h
hylhero/h
hyperstudio/h
iHDeveloper/h
imeysam/h
jackspaceBerkeley/h
jarey/h
jasdeep/h
jason790/h
jasonzou/j
jazahn/h
jccr/h
jean/h
jeka57/h
jeremydean/h
jermnelson/h
jibe-b/h
jnishiyama/h
jojksd/h
jpadilla/h
jtremback/h
judell/h
juli-so/h
kabacs/h
karissa/h
kaushikvijay/h
kaydoh/h
kill4uk/h
klopiinas/h
klrkdekira/h
koulihong311/h
krassif/h
krstnkngs/h
leoqmp/h
linhua55/h
lucadealfaro/h
lyspooner/h
lyzadanger/h
m1yag1/h
magee/h
mambocab/h
manunymous/h
maraino/h
mari-ja/h
markbarratt/h
martinq/h
mbbaig/h
mcarv63/h
meawoppl/h
meflyup/h
metasj/h
mgasner/h
mgax/h
mollycr/h
mrchrisadams/h
mrienstra/h
mshavlovsky/h
muddasani/h
nagyist/hyphothesis-h
nagyistoce/hypothesis-h
nanxio/h
neozhangthe1/h
ningyifan/h
nkingsley/h
nlholdem/h
nlisgo/h
noscripter/h
nshkuro/h
odnodn/h
oliversauter/h
openbizgit/h
opengovfoundation/h
openstax/hypothesis-server
ouroboros8/h
pablomarti/h
pamo/h
philipn/h
philschatz/h
pinballwonder/h
plainspace/h
raowl/h
rickyhan/h
rmoorman/h
rmtsukuru/h
robertknight/h
rowhit/h
rsarxiv/h
saakaifoundry/h
samrose/h
scharf/h
shepazu/h
sherah/h
shofheinz/h
soapdog/h
ssin122/test-h
st-fresh/h
stuk88/h
sylvanmist/h
tetratorus/h
tilgovi/h
tomnar/h
trivenews/h
truthadjustr/h
utngz/h
voidfiles/h
wenchen/h
yargevad/h
yumatch/h
zshen777/h
Nothing to show
Choose a base branch
accessible-activity-cards
add-elife-annotation-times-migration
add-make-sql
add-python-version-note
add-todo-to-remove-workaround
allow-py37-in-tox
allow-wildcards-in-domain
annotation-importer
annotation-shared
ap-replies
ap-separate-replies
api-importer
colander-api-query-param-validation
default-null-org-in-tests
do-make-lint-in-tox
enable-group-creator-deletion
filters
fix-ann-body-styling
h-load-testing
ignore-unknown-search-params
improve-form-field-list-design
index-and-search-elasticsearch6
jmcarp-docker-multi-stage
jmcarp-pytest-cleanup
mark-secret-key-required
master
nipsa-index
oauth-login-prototype
optimize-redirect-lookup
py3-encode-key-material
refactor-read-permission-logic
refactor-tox.ini
remove-auth-client-logic
remove-badge-nr-metrics
rename-py-builtins
replace-es-doc-types
revert-4951-add-member-to-group
run-make-dev-in-tox
search-as-jsonld
site-query
support-sqs
test-presentation-batch-indexer
update-es-version-in-install-docs
update-gevent
use-py3-in-docker
use-zope-sqlalchemy-with-weakrefs
user-group-doesnt-exist
validate-rss-stream-query-params
welcome
Nothing to show
Choose a Head Repository
hypothesis/h
40a/h
AFDudley/h
BigBlueHat/h
BinaryStars/h
CCH543/h
Cinemacloud/h
Ericgood/h
FTG-003/h
Forethinker/h
GratefulTony/h
HGldJ1966/h
JJediny/h
John-Williams/h
Laurian/h
LittleFancy/h
MattyQ/h
Mishkin2015/h
RichardLitt/h
Staffan1/h
SteelWagstaff/h
TowerBR/h
VanyTang/h
abigailricarte/h
ackermann/h
alecchap/h
alesarrett/h
alexsegura/h
almereyda/h
alon/h
andzi/h
angelicxsoul/h
ansmoh/h
apurvajalit/h
arjunvasan/h
asdevor/h
bZichett/h
badgettrg/Webmarks
balmas/h
balupton/h
bbarker/h
bennlich/h
benthor/h
blakewest/h
bogste/h
bradparks/h
brittanystoroz/h
buiquangchien/h
cdchapman/h
charblanc/h
chowsamihq/h
chr7stos/Webmarks
chrber/h
chrismPssina/h
christinaphamAD/h
cmbirk/h
codeaudit/h
coolcool21/h
cove/h
csillag/h
danjimilk/h
dannyhope/h
daredream/h
davidmcclure/h
dennisplucinik/h
dezynetechnologies/h
diegodlh/h
djcun95/h
donsequitur/h
edsu/h
eiro10/h
emckean/h
ercchy/h
eshellman/h
fangang123/h
fchasen/h
fcrimins/h
fhirsch/h
ficolo/h
fragkopoulos/h
gauravkeerthi/h
geass/h
gergely-ujvari/h
gitter-badger/h
gnott/h
gobengo/h
gorinovic/h
gus3000/h
hashin/h
helemaalbigt/h
hmstepanek/h
hwasiti/h
hylhero/h
hyperstudio/h
iHDeveloper/h
imeysam/h
jackspaceBerkeley/h
jarey/h
jasdeep/h
jason790/h
jasonzou/j
jazahn/h
jccr/h
jean/h
jeka57/h
jeremydean/h
jermnelson/h
jibe-b/h
jnishiyama/h
jojksd/h
jpadilla/h
jtremback/h
judell/h
juli-so/h
kabacs/h
karissa/h
kaushikvijay/h
kaydoh/h
kill4uk/h
klopiinas/h
klrkdekira/h
koulihong311/h
krassif/h
krstnkngs/h
leoqmp/h
linhua55/h
lucadealfaro/h
lyspooner/h
lyzadanger/h
m1yag1/h
magee/h
mambocab/h
manunymous/h
maraino/h
mari-ja/h
markbarratt/h
martinq/h
mbbaig/h
mcarv63/h
meawoppl/h
meflyup/h
metasj/h
mgasner/h
mgax/h
mollycr/h
mrchrisadams/h
mrienstra/h
mshavlovsky/h
muddasani/h
nagyist/hyphothesis-h
nagyistoce/hypothesis-h
nanxio/h
neozhangthe1/h
ningyifan/h
nkingsley/h
nlholdem/h
nlisgo/h
noscripter/h
nshkuro/h
odnodn/h
oliversauter/h
openbizgit/h
opengovfoundation/h
openstax/hypothesis-server
ouroboros8/h
pablomarti/h
pamo/h
philipn/h
philschatz/h
pinballwonder/h
plainspace/h
raowl/h
rickyhan/h
rmoorman/h
rmtsukuru/h
robertknight/h
rowhit/h
rsarxiv/h
saakaifoundry/h
samrose/h
scharf/h
shepazu/h
sherah/h
shofheinz/h
soapdog/h
ssin122/test-h
st-fresh/h
stuk88/h
sylvanmist/h
tetratorus/h
tilgovi/h
tomnar/h
trivenews/h
truthadjustr/h
utngz/h
voidfiles/h
wenchen/h
yargevad/h
yumatch/h
zshen777/h
Nothing to show
Choose a head branch
accessible-activity-cards
add-elife-annotation-times-migration
add-make-sql
add-python-version-note
add-todo-to-remove-workaround
allow-py37-in-tox
allow-wildcards-in-domain
annotation-importer
annotation-shared
ap-replies
ap-separate-replies
api-importer
colander-api-query-param-validation
default-null-org-in-tests
do-make-lint-in-tox
enable-group-creator-deletion
filters
fix-ann-body-styling
h-load-testing
ignore-unknown-search-params
improve-form-field-list-design
index-and-search-elasticsearch6
jmcarp-docker-multi-stage
jmcarp-pytest-cleanup
mark-secret-key-required
master
nipsa-index
oauth-login-prototype
optimize-redirect-lookup
py3-encode-key-material
refactor-read-permission-logic
refactor-tox.ini
remove-auth-client-logic
remove-badge-nr-metrics
rename-py-builtins
replace-es-doc-types
revert-4951-add-member-to-group
run-make-dev-in-tox
search-as-jsonld
site-query
support-sqs
test-presentation-batch-indexer
update-es-version-in-install-docs
update-gevent
use-py3-in-docker
use-zope-sqlalchemy-with-weakrefs
user-group-doesnt-exist
validate-rss-stream-query-params
welcome
Nothing to show
- 1 commit
- 2 files changed
- 0 commit comments
- 1 contributor
Commits on Sep 28, 2015
Focus on a group when group changed in dropdown
When the currently focused group is changed in the groups dropdown, change the display (annotations in the sidebar, numbers in the bucket bar, highlights in the document) to show only the annotations from the newly-focused group.
Loading status checks…
Unified
Split
Showing
with
33 additions
and 7 deletions.
- +31 −6 h/static/scripts/annotation-mapper.js
- +2 −1 h/static/scripts/groups.js
View
37
h/static/scripts/annotation-mapper.js
| @@ -19,11 +19,25 @@ function getContainer(threading, annotation) { | ||
| // Wraps the annotation store to trigger events for the CRUD actions | ||
| // @ngInject | ||
| function annotationMapper($rootScope, threading, store, groups) { | ||
| // All of the annotations that annotationMapper has received from calls to | ||
| // its loadAnnotations() method. | ||
| var received = []; | ||
| // The annotations that are currently loaded into the page context. | ||
| var loaded = []; | ||
| function loadAnnotations(annotations) { | ||
| var loaded = []; | ||
| received = received.concat(annotations); | ||
| loadAnnotationsFromGroup(annotations, groups.focused().id); | ||
| } | ||
| annotations.forEach(function (annotation) { | ||
| if (annotation.group !== groups.focused().id) { | ||
| function loadAnnotationsFromGroup(annotations, groupId) { | ||
| // The annotations that we've added to the page. | ||
| var newlyLoaded = []; | ||
| annotations.forEach(function(annotation) { | ||
| if (annotation.group !== groupId) { | ||
| return; | ||
| } | ||
| @@ -34,21 +48,32 @@ function annotationMapper($rootScope, threading, store, groups) { | ||
| return; | ||
| } | ||
| loaded.push(new store.AnnotationResource(annotation)); | ||
| newlyLoaded.push(new store.AnnotationResource(annotation)); | ||
| }); | ||
| $rootScope.$emit('annotationsLoaded', loaded); | ||
| $rootScope.$emit('annotationsLoaded', newlyLoaded); | ||
| loaded = loaded.concat(newlyLoaded); | ||
| } | ||
| // When the focused group changes, change what annotations are shown. | ||
| $rootScope.$on('groupFocused', function() { | ||
| unloadAnnotations(loaded); | ||
| loadAnnotationsFromGroup(received, groups.focused().id); | ||
| }); | ||
| function unloadAnnotations(annotations) { | ||
| annotations.forEach(function (annotation) { | ||
| annotations.forEach(function(annotation) { | ||
| var container = getContainer(threading, annotation); | ||
| if (container !== null && annotation !== container.message) { | ||
| annotation = angular.copy(annotation, container.message); | ||
| } | ||
| $rootScope.$emit('annotationDeleted', annotation); | ||
| }); | ||
| annotations.slice().forEach(function(annotation) { | ||
| loaded.splice(loaded.indexOf(annotation, 1)); | ||
| }); | ||
| } | ||
| function createAnnotation(annotation) { | ||
View
3
h/static/scripts/groups.js
| @@ -10,7 +10,7 @@ | ||
| var STORAGE_KEY = 'hypothesis.groups.focus'; | ||
| // @ngInject | ||
| function groups(localStorage, session) { | ||
| function groups(localStorage, session, $rootScope) { | ||
| // The currently focused group. This is the group that's shown as selected in | ||
| // the groups dropdown, the annotations displayed are filtered to only ones | ||
| // that belong to this group, and any new annotations that the user creates | ||
| @@ -56,6 +56,7 @@ function groups(localStorage, session) { | ||
| if (typeof g !== 'undefined') { | ||
| focused = g; | ||
| localStorage.setItem(STORAGE_KEY, g.id); | ||
| $rootScope.$emit('groupFocused', g.id); | ||
| } | ||
| } | ||
| }; | ||