Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
coopwire-hypothesis
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
孙灵跃 Leon Sun
coopwire-hypothesis
Commits
13dfeac7
Commit
13dfeac7
authored
Apr 12, 2013
by
Randall Leeds
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove webassets cache from gitignore
parent
fad2cd29
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
411 additions
and
491 deletions
+411
-491
annotator.auth.js
h/lib/annotator.auth.js
+44
-16
annotator.js
h/lib/annotator.js
+294
-448
annotator.permissions.js
h/lib/annotator.permissions.js
+41
-15
annotator.store.js
h/lib/annotator.store.js
+32
-12
No files found.
h/lib/annotator.auth.js
View file @
13dfeac7
/*
** Annotator 1.2.6-dev-
939cdee
** Annotator 1.2.6-dev-
d45a366
** https://github.com/okfn/annotator/
**
** Copyright 2012 Aron Carroll, Rufus Pollock, and Nick Stenning.
** Dual licensed under the MIT and GPLv3 licenses.
** https://github.com/okfn/annotator/blob/master/LICENSE
**
** Built at: 2013-04-1
0 07:38:34
Z
** Built at: 2013-04-1
2 00:11:35
Z
*/
(
function
()
{
var
base64Decode
,
base64UrlDecode
,
createDateFromISO8601
,
parseToken
,
__hasProp
=
Object
.
prototype
.
hasOwnProperty
,
__extends
=
function
(
child
,
parent
)
{
for
(
var
key
in
parent
)
{
if
(
__hasProp
.
call
(
parent
,
key
))
child
[
key
]
=
parent
[
key
];
}
function
ctor
()
{
this
.
constructor
=
child
;
}
ctor
.
prototype
=
parent
.
prototype
;
child
.
prototype
=
new
ctor
;
child
.
__super__
=
parent
.
prototype
;
return
child
;
};
__hasProp
=
{}
.
hasOwnProperty
,
__extends
=
function
(
child
,
parent
)
{
for
(
var
key
in
parent
)
{
if
(
__hasProp
.
call
(
parent
,
key
))
child
[
key
]
=
parent
[
key
];
}
function
ctor
()
{
this
.
constructor
=
child
;
}
ctor
.
prototype
=
parent
.
prototype
;
child
.
prototype
=
new
ctor
()
;
child
.
__super__
=
parent
.
prototype
;
return
child
;
};
createDateFromISO8601
=
function
(
string
)
{
var
d
,
date
,
offset
,
regexp
,
time
,
_ref
;
regexp
=
"([0-9]{4})(-([0-9]{2})(-([0-9]{2})"
+
"(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(
\
.([0-9]+))?)?"
+
"(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?"
;
d
=
string
.
match
(
new
RegExp
(
regexp
));
offset
=
0
;
date
=
new
Date
(
d
[
1
],
0
,
1
);
if
(
d
[
3
])
date
.
setMonth
(
d
[
3
]
-
1
);
if
(
d
[
5
])
date
.
setDate
(
d
[
5
]);
if
(
d
[
7
])
date
.
setHours
(
d
[
7
]);
if
(
d
[
8
])
date
.
setMinutes
(
d
[
8
]);
if
(
d
[
10
])
date
.
setSeconds
(
d
[
10
]);
if
(
d
[
12
])
date
.
setMilliseconds
(
Number
(
"0."
+
d
[
12
])
*
1000
);
if
(
d
[
3
])
{
date
.
setMonth
(
d
[
3
]
-
1
);
}
if
(
d
[
5
])
{
date
.
setDate
(
d
[
5
]);
}
if
(
d
[
7
])
{
date
.
setHours
(
d
[
7
]);
}
if
(
d
[
8
])
{
date
.
setMinutes
(
d
[
8
]);
}
if
(
d
[
10
])
{
date
.
setSeconds
(
d
[
10
]);
}
if
(
d
[
12
])
{
date
.
setMilliseconds
(
Number
(
"0."
+
d
[
12
])
*
1000
);
}
if
(
d
[
14
])
{
offset
=
(
Number
(
d
[
16
])
*
60
)
+
Number
(
d
[
17
]);
offset
*=
(
_ref
=
d
[
15
]
===
'-'
)
!=
null
?
_ref
:
{
...
...
@@ -40,6 +54,7 @@
base64Decode
=
function
(
data
)
{
var
ac
,
b64
,
bits
,
dec
,
h1
,
h2
,
h3
,
h4
,
i
,
o1
,
o2
,
o3
,
tmp_arr
;
if
(
typeof
atob
!==
"undefined"
&&
atob
!==
null
)
{
return
atob
(
data
);
}
else
{
...
...
@@ -48,7 +63,9 @@
ac
=
0
;
dec
=
""
;
tmp_arr
=
[];
if
(
!
data
)
return
data
;
if
(
!
data
)
{
return
data
;
}
data
+=
''
;
while
(
i
<
data
.
length
)
{
h1
=
b64
.
indexOf
(
data
.
charAt
(
i
++
));
...
...
@@ -72,10 +89,11 @@
};
base64UrlDecode
=
function
(
data
)
{
var
i
,
m
,
_ref
;
var
i
,
m
,
_i
,
_ref
;
m
=
data
.
length
%
4
;
if
(
m
!==
0
)
{
for
(
i
=
0
,
_ref
=
4
-
m
;
0
<=
_ref
?
i
<
_ref
:
i
>
_ref
;
0
<=
_ref
?
i
++
:
i
--
)
{
for
(
i
=
_i
=
0
,
_ref
=
4
-
m
;
0
<=
_ref
?
_i
<
_ref
:
_i
>
_ref
;
i
=
0
<=
_ref
?
++
_i
:
--
_i
)
{
data
+=
'='
;
}
}
...
...
@@ -86,12 +104,12 @@
parseToken
=
function
(
token
)
{
var
head
,
payload
,
sig
,
_ref
;
_ref
=
token
.
split
(
'.'
),
head
=
_ref
[
0
],
payload
=
_ref
[
1
],
sig
=
_ref
[
2
];
return
JSON
.
parse
(
base64UrlDecode
(
payload
));
};
Annotator
.
Plugin
.
Auth
=
(
function
(
_super
)
{
__extends
(
Auth
,
_super
);
Auth
.
prototype
.
options
=
{
...
...
@@ -112,6 +130,7 @@
Auth
.
prototype
.
requestToken
=
function
()
{
var
_this
=
this
;
this
.
requestInProgress
=
true
;
return
$
.
ajax
({
url
:
this
.
options
.
tokenUrl
,
...
...
@@ -123,6 +142,7 @@
return
_this
.
setToken
(
data
);
}).
fail
(
function
(
xhr
,
status
,
err
)
{
var
msg
;
msg
=
Annotator
.
_t
(
"Couldn't get auth token:"
);
console
.
error
(
""
+
msg
+
" "
+
err
,
xhr
);
return
Annotator
.
showNotification
(
""
+
msg
+
" "
+
xhr
.
responseText
,
Annotator
.
Notification
.
ERROR
);
...
...
@@ -134,6 +154,7 @@
Auth
.
prototype
.
setToken
=
function
(
token
)
{
var
_results
,
_this
=
this
;
this
.
token
=
token
;
this
.
_unsafeToken
=
parseToken
(
token
);
if
(
this
.
haveValidToken
())
{
...
...
@@ -161,12 +182,14 @@
Auth
.
prototype
.
haveValidToken
=
function
()
{
var
allFields
;
allFields
=
this
.
_unsafeToken
&&
this
.
_unsafeToken
.
issuedAt
&&
this
.
_unsafeToken
.
ttl
&&
this
.
_unsafeToken
.
consumerKey
;
return
allFields
&&
this
.
timeToExpiry
()
>
0
;
};
Auth
.
prototype
.
timeToExpiry
=
function
()
{
var
expiry
,
issue
,
now
,
timeToExpiry
;
now
=
new
Date
().
getTime
()
/
1000
;
issue
=
createDateFromISO8601
(
this
.
_unsafeToken
.
issuedAt
).
getTime
()
/
1000
;
expiry
=
issue
+
this
.
_unsafeToken
.
ttl
;
...
...
@@ -180,6 +203,7 @@
Auth
.
prototype
.
updateHeaders
=
function
()
{
var
current
;
current
=
this
.
element
.
data
(
'annotator:headers'
);
return
this
.
element
.
data
(
'annotator:headers'
,
$
.
extend
(
current
,
{
'x-annotator-auth-token'
:
this
.
token
...
...
@@ -187,12 +211,16 @@
};
Auth
.
prototype
.
withToken
=
function
(
callback
)
{
if
(
!
(
callback
!=
null
))
return
;
if
(
callback
==
null
)
{
return
;
}
if
(
this
.
haveValidToken
())
{
return
callback
(
this
.
_unsafeToken
);
}
else
{
this
.
waitingForToken
.
push
(
callback
);
if
(
!
this
.
requestInProgress
)
return
this
.
requestToken
();
if
(
!
this
.
requestInProgress
)
{
return
this
.
requestToken
();
}
}
};
...
...
h/lib/annotator.js
View file @
13dfeac7
This diff is collapsed.
Click to expand it.
h/lib/annotator.permissions.js
View file @
13dfeac7
/*
** Annotator 1.2.6-dev-
939cdee
** Annotator 1.2.6-dev-
d45a366
** https://github.com/okfn/annotator/
**
** Copyright 2012 Aron Carroll, Rufus Pollock, and Nick Stenning.
** Dual licensed under the MIT and GPLv3 licenses.
** https://github.com/okfn/annotator/blob/master/LICENSE
**
** Built at: 2013-04-1
0 07:38:36
Z
** Built at: 2013-04-1
2 00:11:37
Z
*/
(
function
()
{
var
__bind
=
function
(
fn
,
me
){
return
function
(){
return
fn
.
apply
(
me
,
arguments
);
};
},
__hasProp
=
Object
.
prototype
.
hasOwnProperty
,
__extends
=
function
(
child
,
parent
)
{
for
(
var
key
in
parent
)
{
if
(
__hasProp
.
call
(
parent
,
key
))
child
[
key
]
=
parent
[
key
];
}
function
ctor
()
{
this
.
constructor
=
child
;
}
ctor
.
prototype
=
parent
.
prototype
;
child
.
prototype
=
new
ctor
;
child
.
__super__
=
parent
.
prototype
;
return
child
;
};
__hasProp
=
{}
.
hasOwnProperty
,
__extends
=
function
(
child
,
parent
)
{
for
(
var
key
in
parent
)
{
if
(
__hasProp
.
call
(
parent
,
key
))
child
[
key
]
=
parent
[
key
];
}
function
ctor
()
{
this
.
constructor
=
child
;
}
ctor
.
prototype
=
parent
.
prototype
;
child
.
prototype
=
new
ctor
()
;
child
.
__super__
=
parent
.
prototype
;
return
child
;
};
Annotator
.
Plugin
.
Permissions
=
(
function
(
_super
)
{
__extends
(
Permissions
,
_super
);
Permissions
.
prototype
.
events
=
{
...
...
@@ -33,12 +33,17 @@
},
userAuthorize
:
function
(
action
,
annotation
,
user
)
{
var
token
,
tokens
,
_i
,
_len
;
if
(
annotation
.
permissions
)
{
tokens
=
annotation
.
permissions
[
action
]
||
[];
if
(
tokens
.
length
===
0
)
return
true
;
if
(
tokens
.
length
===
0
)
{
return
true
;
}
for
(
_i
=
0
,
_len
=
tokens
.
length
;
_i
<
_len
;
_i
++
)
{
token
=
tokens
[
_i
];
if
(
this
.
userId
(
user
)
===
token
)
return
true
;
if
(
this
.
userId
(
user
)
===
token
)
{
return
true
;
}
}
return
false
;
}
else
if
(
annotation
.
user
)
{
...
...
@@ -70,7 +75,10 @@
Permissions
.
prototype
.
pluginInit
=
function
()
{
var
createCallback
,
self
,
_this
=
this
;
if
(
!
Annotator
.
supported
())
return
;
if
(
!
Annotator
.
supported
())
{
return
;
}
self
=
this
;
createCallback
=
function
(
method
,
type
)
{
return
function
(
field
,
annotation
)
{
...
...
@@ -105,12 +113,17 @@
property
:
'user'
,
isFiltered
:
function
(
input
,
user
)
{
var
keyword
,
_i
,
_len
,
_ref
;
user
=
_this
.
options
.
userString
(
user
);
if
(
!
(
input
&&
user
))
return
false
;
if
(
!
(
input
&&
user
))
{
return
false
;
}
_ref
=
input
.
split
(
/
\s
*/
);
for
(
_i
=
0
,
_len
=
_ref
.
length
;
_i
<
_len
;
_i
++
)
{
keyword
=
_ref
[
_i
];
if
(
user
.
indexOf
(
keyword
)
===
-
1
)
return
false
;
if
(
user
.
indexOf
(
keyword
)
===
-
1
)
{
return
false
;
}
}
return
true
;
}
...
...
@@ -125,12 +138,16 @@
Permissions
.
prototype
.
addFieldsToAnnotation
=
function
(
annotation
)
{
if
(
annotation
)
{
annotation
.
permissions
=
this
.
options
.
permissions
;
if
(
this
.
user
)
return
annotation
.
user
=
this
.
user
;
if
(
this
.
user
)
{
return
annotation
.
user
=
this
.
user
;
}
}
};
Permissions
.
prototype
.
authorize
=
function
(
action
,
annotation
,
user
)
{
if
(
user
===
void
0
)
user
=
this
.
user
;
if
(
user
===
void
0
)
{
user
=
this
.
user
;
}
if
(
this
.
options
.
userAuthorize
)
{
return
this
.
options
.
userAuthorize
.
call
(
this
.
options
,
action
,
annotation
,
user
);
}
else
{
...
...
@@ -140,9 +157,12 @@
Permissions
.
prototype
.
updatePermissionsField
=
function
(
action
,
field
,
annotation
)
{
var
input
;
field
=
$
(
field
).
show
();
input
=
field
.
find
(
'input'
).
removeAttr
(
'disabled'
);
if
(
!
this
.
authorize
(
'admin'
,
annotation
))
field
.
hide
();
if
(
!
this
.
authorize
(
'admin'
,
annotation
))
{
field
.
hide
();
}
if
(
this
.
authorize
(
action
,
annotation
||
{},
null
))
{
return
input
.
attr
(
'checked'
,
'checked'
);
}
else
{
...
...
@@ -152,6 +172,7 @@
Permissions
.
prototype
.
updateAnnotationPermissions
=
function
(
type
,
field
,
annotation
)
{
var
dataKey
;
if
(
!
annotation
.
permissions
)
{
annotation
.
permissions
=
this
.
options
.
permissions
;
}
...
...
@@ -165,6 +186,7 @@
Permissions
.
prototype
.
updateViewer
=
function
(
field
,
annotation
,
controls
)
{
var
user
,
username
;
field
=
$
(
field
);
username
=
this
.
options
.
userString
(
annotation
.
user
);
if
(
annotation
.
user
&&
username
&&
typeof
username
===
'string'
)
{
...
...
@@ -174,8 +196,12 @@
field
.
remove
();
}
if
(
controls
)
{
if
(
!
this
.
authorize
(
'update'
,
annotation
))
controls
.
hideEdit
();
if
(
!
this
.
authorize
(
'delete'
,
annotation
))
return
controls
.
hideDelete
();
if
(
!
this
.
authorize
(
'update'
,
annotation
))
{
controls
.
hideEdit
();
}
if
(
!
this
.
authorize
(
'delete'
,
annotation
))
{
return
controls
.
hideDelete
();
}
}
};
...
...
h/lib/annotator.store.js
View file @
13dfeac7
/*
** Annotator 1.2.6-dev-
939cdee
** Annotator 1.2.6-dev-
d45a366
** https://github.com/okfn/annotator/
**
** Copyright 2012 Aron Carroll, Rufus Pollock, and Nick Stenning.
** Dual licensed under the MIT and GPLv3 licenses.
** https://github.com/okfn/annotator/blob/master/LICENSE
**
** Built at: 2013-04-1
0 07:38:36
Z
** Built at: 2013-04-1
2 00:11:38
Z
*/
(
function
()
{
var
__bind
=
function
(
fn
,
me
){
return
function
(){
return
fn
.
apply
(
me
,
arguments
);
};
},
__hasProp
=
Object
.
prototype
.
hasOwnProperty
,
__extends
=
function
(
child
,
parent
)
{
for
(
var
key
in
parent
)
{
if
(
__hasProp
.
call
(
parent
,
key
))
child
[
key
]
=
parent
[
key
];
}
function
ctor
()
{
this
.
constructor
=
child
;
}
ctor
.
prototype
=
parent
.
prototype
;
child
.
prototype
=
new
ctor
;
child
.
__super__
=
parent
.
prototype
;
return
child
;
},
__indexOf
=
Array
.
prototype
.
indexOf
||
function
(
item
)
{
for
(
var
i
=
0
,
l
=
this
.
length
;
i
<
l
;
i
++
)
{
if
(
i
in
this
&&
this
[
i
]
===
item
)
return
i
;
}
return
-
1
;
};
__hasProp
=
{}
.
hasOwnProperty
,
__extends
=
function
(
child
,
parent
)
{
for
(
var
key
in
parent
)
{
if
(
__hasProp
.
call
(
parent
,
key
))
child
[
key
]
=
parent
[
key
];
}
function
ctor
()
{
this
.
constructor
=
child
;
}
ctor
.
prototype
=
parent
.
prototype
;
child
.
prototype
=
new
ctor
()
;
child
.
__super__
=
parent
.
prototype
;
return
child
;
},
__indexOf
=
[]
.
indexOf
||
function
(
item
)
{
for
(
var
i
=
0
,
l
=
this
.
length
;
i
<
l
;
i
++
)
{
if
(
i
in
this
&&
this
[
i
]
===
item
)
return
i
;
}
return
-
1
;
};
Annotator
.
Plugin
.
Store
=
(
function
(
_super
)
{
__extends
(
Store
,
_super
);
Store
.
prototype
.
events
=
{
...
...
@@ -48,7 +48,9 @@
}
Store
.
prototype
.
pluginInit
=
function
()
{
if
(
!
Annotator
.
supported
())
return
;
if
(
!
Annotator
.
supported
())
{
return
;
}
if
(
this
.
annotator
.
plugins
.
Auth
)
{
return
this
.
annotator
.
plugins
.
Auth
.
withToken
(
this
.
_getAnnotations
);
}
else
{
...
...
@@ -66,10 +68,11 @@
Store
.
prototype
.
annotationCreated
=
function
(
annotation
)
{
var
_this
=
this
;
if
(
__indexOf
.
call
(
this
.
annotations
,
annotation
)
<
0
)
{
this
.
registerAnnotation
(
annotation
);
return
this
.
_apiRequest
(
'create'
,
annotation
,
function
(
data
)
{
if
(
!
(
data
.
id
!=
null
)
)
{
if
(
data
.
id
==
null
)
{
console
.
warn
(
Annotator
.
_t
(
"Warning: No ID returned from server for annotation "
),
annotation
);
}
return
_this
.
updateAnnotation
(
annotation
,
data
);
...
...
@@ -81,6 +84,7 @@
Store
.
prototype
.
annotationUpdated
=
function
(
annotation
)
{
var
_this
=
this
;
if
(
__indexOf
.
call
(
this
.
annotations
,
annotation
)
>=
0
)
{
return
this
.
_apiRequest
(
'update'
,
annotation
,
(
function
(
data
)
{
return
_this
.
updateAnnotation
(
annotation
,
data
);
...
...
@@ -90,6 +94,7 @@
Store
.
prototype
.
annotationDeleted
=
function
(
annotation
)
{
var
_this
=
this
;
if
(
__indexOf
.
call
(
this
.
annotations
,
annotation
)
>=
0
)
{
return
this
.
_apiRequest
(
'destroy'
,
annotation
,
(
function
()
{
return
_this
.
unregisterAnnotation
(
annotation
);
...
...
@@ -119,7 +124,9 @@
};
Store
.
prototype
.
_onLoadAnnotations
=
function
(
data
)
{
if
(
data
==
null
)
data
=
[];
if
(
data
==
null
)
{
data
=
[];
}
this
.
annotations
=
this
.
annotations
.
concat
(
data
);
return
this
.
annotator
.
loadAnnotations
(
data
.
slice
());
};
...
...
@@ -129,12 +136,15 @@
};
Store
.
prototype
.
_onLoadAnnotationsFromSearch
=
function
(
data
)
{
if
(
data
==
null
)
data
=
{};
if
(
data
==
null
)
{
data
=
{};
}
return
this
.
_onLoadAnnotations
(
data
.
rows
||
[]);
};
Store
.
prototype
.
dumpAnnotations
=
function
()
{
var
ann
,
_i
,
_len
,
_ref
,
_results
;
_ref
=
this
.
annotations
;
_results
=
[];
for
(
_i
=
0
,
_len
=
_ref
.
length
;
_i
<
_len
;
_i
++
)
{
...
...
@@ -146,6 +156,7 @@
Store
.
prototype
.
_apiRequest
=
function
(
action
,
obj
,
onSuccess
)
{
var
id
,
options
,
request
,
url
;
id
=
obj
&&
obj
.
id
;
url
=
this
.
_urlFor
(
action
,
id
);
options
=
this
.
_apiRequestOptions
(
action
,
obj
,
onSuccess
);
...
...
@@ -157,6 +168,7 @@
Store
.
prototype
.
_apiRequestOptions
=
function
(
action
,
obj
,
onSuccess
)
{
var
data
,
method
,
opts
;
method
=
this
.
_methodFor
(
action
);
opts
=
{
type
:
method
,
...
...
@@ -182,7 +194,9 @@
opts
.
data
=
{
json
:
data
};
if
(
this
.
options
.
emulateHTTP
)
opts
.
data
.
_method
=
method
;
if
(
this
.
options
.
emulateHTTP
)
{
opts
.
data
.
_method
=
method
;
}
return
opts
;
}
opts
=
$
.
extend
(
opts
,
{
...
...
@@ -194,6 +208,7 @@
Store
.
prototype
.
_urlFor
=
function
(
action
,
id
)
{
var
url
;
url
=
this
.
options
.
prefix
!=
null
?
this
.
options
.
prefix
:
''
;
url
+=
this
.
options
.
urls
[
action
];
url
=
url
.
replace
(
/
\/
:id/
,
id
!=
null
?
'/'
+
id
:
''
);
...
...
@@ -203,6 +218,7 @@
Store
.
prototype
.
_methodFor
=
function
(
action
)
{
var
table
;
table
=
{
'create'
:
'POST'
,
'read'
:
'GET'
,
...
...
@@ -215,16 +231,20 @@
Store
.
prototype
.
_dataFor
=
function
(
annotation
)
{
var
data
,
highlights
;
highlights
=
annotation
.
highlights
;
delete
annotation
.
highlights
;
$
.
extend
(
annotation
,
this
.
options
.
annotationData
);
data
=
JSON
.
stringify
(
annotation
);
if
(
highlights
)
annotation
.
highlights
=
highlights
;
if
(
highlights
)
{
annotation
.
highlights
=
highlights
;
}
return
data
;
};
Store
.
prototype
.
_onError
=
function
(
xhr
)
{
var
action
,
message
;
action
=
xhr
.
_action
;
message
=
Annotator
.
_t
(
"Sorry we could not "
)
+
action
+
Annotator
.
_t
(
" this annotation"
);
if
(
xhr
.
_action
===
'search'
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment