Commit 3859cf72 authored by Randall Leeds's avatar Randall Leeds

Merge pull request #1413 from hypothesis/drop-tagit

Drop tagit
parents 886dda63 22cbf97f
......@@ -8,6 +8,14 @@ annotation = ['$filter', 'annotator', ($filter, annotator) ->
if e.keyCode == 13 && e.shiftKey
scope.save(e)
scope.addTag = (tag) ->
scope.model.tags ?= []
scope.model.tags.push(tag.text)
scope.removeTag = (tag) ->
scope.model.tags = scope.model.tags.filter((t) -> t isnt tag.text)
delete scope.model.tags if scope.model.tags.length is 0
# Watch for changes
scope.$watch 'model', (model) ->
scope.thread = annotator.threading.idTable[model.id]
......@@ -24,6 +32,8 @@ annotation = ['$filter', 'annotator', ($filter, annotator) ->
else
true
scope.tags = ({text: tag} for tag in scope.model.tags or [])
controller: 'AnnotationController'
require: '?ngModel'
restrict: 'C'
......
......@@ -275,55 +275,6 @@ repeatAnim = ->
.animate({ 'margin-left': '0px' }, 1500)
return
# Directive to edit/display a tag list.
tags = ['$window', ($window) ->
link: (scope, elem, attr, ctrl) ->
return unless ctrl?
elem.tagit
caseSensitive: false
placeholderText: attr.placeholder
keepPlaceholder: true
allowSpaces: true
preprocessTag: (val) ->
val.replace /[^a-zA-Z0-9\-\_\s]/g, ''
afterTagAdded: (evt, ui) ->
ctrl.$setViewValue elem.tagit 'assignedTags'
afterTagRemoved: (evt, ui) ->
ctrl.$setViewValue elem.tagit 'assignedTags'
autocomplete:
source: []
onTagClicked: (evt, ui) ->
evt.stopPropagation()
tag = ui.tagLabel
$window.open "/t/" + tag
elem.find('input').addClass('form-input')
ctrl.$formatters.push (tags=[]) ->
assigned = elem.tagit 'assignedTags'
for t in assigned when t not in tags
elem.tagit 'removeTagByLabel', t
for t in tags when t not in assigned
elem.tagit 'createTag', t
if assigned.length or not attr.readOnly then elem.show() else elem.hide()
attr.$observe 'readonly', (readonly) ->
tagInput = elem.find('input').last()
assigned = elem.tagit 'assignedTags'
if readonly
tagInput.attr('disabled', true)
tagInput.removeAttr('placeholder')
if assigned.length then elem.show() else elem.hide()
else
tagInput.removeAttr('disabled')
tagInput.attr('placeholder', attr['placeholder'])
elem.show()
require: '?ngModel'
restrict: 'C'
]
username = ['$filter', '$window', ($filter, $window) ->
link: (scope, elem, attr) ->
......@@ -349,11 +300,6 @@ fuzzytime = ['$filter', '$window', ($filter, $window) ->
.find('a')
.bind 'click', (event) ->
event.stopPropagation()
.tooltip
tooltipClass: 'small'
position:
collision: 'fit'
at: "left center"
ctrl.$render = ->
scope.ftime = ($filter 'fuzzyTime') ctrl.$viewValue
......@@ -374,15 +320,6 @@ fuzzytime = ['$filter', '$window', ($filter, $window) ->
# For invalid timezone, use the default
scope.hint = momentDate.format('LLLL')
toolparams =
tooltipClass: 'small'
position:
collision: 'none'
at: "left center"
elem.tooltip(toolparams)
timefunct = ->
$window.setInterval =>
scope.ftime = ($filter 'fuzzyTime') ctrl.$viewValue
......@@ -408,14 +345,13 @@ whenscrolled = ->
scope.$apply attr.whenscrolled
angular.module('h.directives', ['ngSanitize'])
angular.module('h.directives', ['ngSanitize', 'ngTagsInput'])
.directive('formValidate', formValidate)
.directive('fuzzytime', fuzzytime)
.directive('markdown', markdown)
.directive('privacy', privacy)
.directive('recursive', recursive)
.directive('tabReveal', tabReveal)
.directive('tags', tags)
.directive('thread', thread)
.directive('username', username)
.directive('repeatAnim', repeatAnim)
......
This diff is collapsed.
/*!
* jQuery UI Core 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/category/ui-core/
*/
(function( $, undefined ) {
var uuid = 0,
runiqueId = /^ui-id-\d+$/;
// $.ui might exist from components with no dependencies, e.g., $.ui.position
$.ui = $.ui || {};
$.extend( $.ui, {
version: "1.10.3",
keyCode: {
BACKSPACE: 8,
COMMA: 188,
DELETE: 46,
DOWN: 40,
END: 35,
ENTER: 13,
ESCAPE: 27,
HOME: 36,
LEFT: 37,
NUMPAD_ADD: 107,
NUMPAD_DECIMAL: 110,
NUMPAD_DIVIDE: 111,
NUMPAD_ENTER: 108,
NUMPAD_MULTIPLY: 106,
NUMPAD_SUBTRACT: 109,
PAGE_DOWN: 34,
PAGE_UP: 33,
PERIOD: 190,
RIGHT: 39,
SPACE: 32,
TAB: 9,
UP: 38
}
});
// plugins
$.fn.extend({
focus: (function( orig ) {
return function( delay, fn ) {
return typeof delay === "number" ?
this.each(function() {
var elem = this;
setTimeout(function() {
$( elem ).focus();
if ( fn ) {
fn.call( elem );
}
}, delay );
}) :
orig.apply( this, arguments );
};
})( $.fn.focus ),
scrollParent: function() {
var scrollParent;
if (($.ui.ie && (/(static|relative)/).test(this.css("position"))) || (/absolute/).test(this.css("position"))) {
scrollParent = this.parents().filter(function() {
return (/(relative|absolute|fixed)/).test($.css(this,"position")) && (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
}).eq(0);
} else {
scrollParent = this.parents().filter(function() {
return (/(auto|scroll)/).test($.css(this,"overflow")+$.css(this,"overflow-y")+$.css(this,"overflow-x"));
}).eq(0);
}
return (/fixed/).test(this.css("position")) || !scrollParent.length ? $(document) : scrollParent;
},
zIndex: function( zIndex ) {
if ( zIndex !== undefined ) {
return this.css( "zIndex", zIndex );
}
if ( this.length ) {
var elem = $( this[ 0 ] ), position, value;
while ( elem.length && elem[ 0 ] !== document ) {
// Ignore z-index if position is set to a value where z-index is ignored by the browser
// This makes behavior of this function consistent across browsers
// WebKit always returns auto if the element is positioned
position = elem.css( "position" );
if ( position === "absolute" || position === "relative" || position === "fixed" ) {
// IE returns 0 when zIndex is not specified
// other browsers return a string
// we ignore the case of nested elements with an explicit value of 0
// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
value = parseInt( elem.css( "zIndex" ), 10 );
if ( !isNaN( value ) && value !== 0 ) {
return value;
}
}
elem = elem.parent();
}
}
return 0;
},
uniqueId: function() {
return this.each(function() {
if ( !this.id ) {
this.id = "ui-id-" + (++uuid);
}
});
},
removeUniqueId: function() {
return this.each(function() {
if ( runiqueId.test( this.id ) ) {
$( this ).removeAttr( "id" );
}
});
}
});
// selectors
function focusable( element, isTabIndexNotNaN ) {
var map, mapName, img,
nodeName = element.nodeName.toLowerCase();
if ( "area" === nodeName ) {
map = element.parentNode;
mapName = map.name;
if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
return false;
}
img = $( "img[usemap=#" + mapName + "]" )[0];
return !!img && visible( img );
}
return ( /input|select|textarea|button|object/.test( nodeName ) ?
!element.disabled :
"a" === nodeName ?
element.href || isTabIndexNotNaN :
isTabIndexNotNaN) &&
// the element and all of its ancestors must be visible
visible( element );
}
function visible( element ) {
return $.expr.filters.visible( element ) &&
!$( element ).parents().addBack().filter(function() {
return $.css( this, "visibility" ) === "hidden";
}).length;
}
$.extend( $.expr[ ":" ], {
data: $.expr.createPseudo ?
$.expr.createPseudo(function( dataName ) {
return function( elem ) {
return !!$.data( elem, dataName );
};
}) :
// support: jQuery <1.8
function( elem, i, match ) {
return !!$.data( elem, match[ 3 ] );
},
focusable: function( element ) {
return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) );
},
tabbable: function( element ) {
var tabIndex = $.attr( element, "tabindex" ),
isTabIndexNaN = isNaN( tabIndex );
return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN );
}
});
// support: jQuery <1.8
if ( !$( "<a>" ).outerWidth( 1 ).jquery ) {
$.each( [ "Width", "Height" ], function( i, name ) {
var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
type = name.toLowerCase(),
orig = {
innerWidth: $.fn.innerWidth,
innerHeight: $.fn.innerHeight,
outerWidth: $.fn.outerWidth,
outerHeight: $.fn.outerHeight
};
function reduce( elem, size, border, margin ) {
$.each( side, function() {
size -= parseFloat( $.css( elem, "padding" + this ) ) || 0;
if ( border ) {
size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0;
}
if ( margin ) {
size -= parseFloat( $.css( elem, "margin" + this ) ) || 0;
}
});
return size;
}
$.fn[ "inner" + name ] = function( size ) {
if ( size === undefined ) {
return orig[ "inner" + name ].call( this );
}
return this.each(function() {
$( this ).css( type, reduce( this, size ) + "px" );
});
};
$.fn[ "outer" + name] = function( size, margin ) {
if ( typeof size !== "number" ) {
return orig[ "outer" + name ].call( this, size );
}
return this.each(function() {
$( this).css( type, reduce( this, size, true, margin ) + "px" );
});
};
});
}
// support: jQuery <1.8
if ( !$.fn.addBack ) {
$.fn.addBack = function( selector ) {
return this.add( selector == null ?
this.prevObject : this.prevObject.filter( selector )
);
};
}
// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413)
if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) {
$.fn.removeData = (function( removeData ) {
return function( key ) {
if ( arguments.length ) {
return removeData.call( this, $.camelCase( key ) );
} else {
return removeData.call( this );
}
};
})( $.fn.removeData );
}
// deprecated
$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() );
$.support.selectstart = "onselectstart" in document.createElement( "div" );
$.fn.extend({
disableSelection: function() {
return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
".ui-disableSelection", function( event ) {
event.preventDefault();
});
},
enableSelection: function() {
return this.unbind( ".ui-disableSelection" );
}
});
$.extend( $.ui, {
// $.ui.plugin is deprecated. Use $.widget() extensions instead.
plugin: {
add: function( module, option, set ) {
var i,
proto = $.ui[ module ].prototype;
for ( i in set ) {
proto.plugins[ i ] = proto.plugins[ i ] || [];
proto.plugins[ i ].push( [ option, set[ i ] ] );
}
},
call: function( instance, name, args ) {
var i,
set = instance.plugins[ name ];
if ( !set || !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) {
return;
}
for ( i = 0; i < set.length; i++ ) {
if ( instance.options[ set[ i ][ 0 ] ] ) {
set[ i ][ 1 ].apply( instance.element, args );
}
}
}
},
// only used by resizable
hasScroll: function( el, a ) {
//If overflow is hidden, the element might have extra content, but the user wants to hide it
if ( $( el ).css( "overflow" ) === "hidden") {
return false;
}
var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
has = false;
if ( el[ scroll ] > 0 ) {
return true;
}
// TODO: determine which cases actually cause this to happen
// if the element doesn't have the scroll set, see if it's possible to
// set the scroll
el[ scroll ] = 1;
has = ( el[ scroll ] > 0 );
el[ scroll ] = 0;
return has;
}
});
})( jQuery );
/*!
* jQuery UI Effects Blind 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/blind-effect/
*
* Depends:
* jquery.ui.effect.js
*/
(function( $, undefined ) {
var rvertical = /up|down|vertical/,
rpositivemotion = /up|left|vertical|horizontal/;
$.effects.effect.blind = function( o, done ) {
// Create element
var el = $( this ),
props = [ "position", "top", "bottom", "left", "right", "height", "width" ],
mode = $.effects.setMode( el, o.mode || "hide" ),
direction = o.direction || "up",
vertical = rvertical.test( direction ),
ref = vertical ? "height" : "width",
ref2 = vertical ? "top" : "left",
motion = rpositivemotion.test( direction ),
animation = {},
show = mode === "show",
wrapper, distance, margin;
// if already wrapped, the wrapper's properties are my property. #6245
if ( el.parent().is( ".ui-effects-wrapper" ) ) {
$.effects.save( el.parent(), props );
} else {
$.effects.save( el, props );
}
el.show();
wrapper = $.effects.createWrapper( el ).css({
overflow: "hidden"
});
distance = wrapper[ ref ]();
margin = parseFloat( wrapper.css( ref2 ) ) || 0;
animation[ ref ] = show ? distance : 0;
if ( !motion ) {
el
.css( vertical ? "bottom" : "right", 0 )
.css( vertical ? "top" : "left", "auto" )
.css({ position: "absolute" });
animation[ ref2 ] = show ? margin : distance + margin;
}
// start at 0 if we are showing
if ( show ) {
wrapper.css( ref, 0 );
if ( ! motion ) {
wrapper.css( ref2, margin + distance );
}
}
// Animate
wrapper.animate( animation, {
duration: o.duration,
easing: o.easing,
queue: false,
complete: function() {
if ( mode === "hide" ) {
el.hide();
}
$.effects.restore( el, props );
$.effects.removeWrapper( el );
done();
}
});
};
})(jQuery);
/*!
* jQuery UI Effects Highlight 1.10.3
* http://jqueryui.com
*
* Copyright 2013 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*
* http://api.jqueryui.com/highlight-effect/
*
* Depends:
* jquery.ui.effect.js
*/
(function( $, undefined ) {
$.effects.effect.highlight = function( o, done ) {
var elem = $( this ),
props = [ "backgroundImage", "backgroundColor", "opacity" ],
mode = $.effects.setMode( elem, o.mode || "show" ),
animation = {
backgroundColor: elem.css( "backgroundColor" )
};
if (mode === "hide") {
animation.opacity = 0;
}
$.effects.save( elem, props );
elem
.show()
.css({
backgroundImage: "none",
backgroundColor: o.color || "#ffff99"
})
.animate( animation, {
queue: false,
duration: o.duration,
easing: o.easing,
complete: function() {
if ( mode === "hide" ) {
elem.hide();
}
$.effects.restore( elem, props );
done();
}
});
};
})(jQuery);
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -18,10 +18,6 @@ $error-red: $hypothered-desat !default;
$error-red-light: #e0b0b0 !default;
$error-red-lightest: #fff1f3 !default;
$focus-yellow: #fffbeb !default;
$focus-yellow-dark: #ece3c5 !default;
$focus-yellow-darker: #cbbb95 !default;
$button-text-color: $gray-dark !default;
$button-background-start: $white !default;
$button-background-end: #f0f0f0 !default;
......
......@@ -7,6 +7,7 @@
@import 'threads';
@import 'yui_grid';
@import 'simple-search';
@import 'tags-input';
$base-font-size: 16px;
......@@ -187,9 +188,11 @@ h6 {
.excerpt {
margin-bottom: 1em;
position: relative;
blockquote {
.annotation-quote {
margin-bottom: 0;
}
.more, .less {
font-size: .9em;
font-family: $sans-font-family;
......@@ -198,36 +201,16 @@ h6 {
}
}
blockquote {
.annotation-quote {
color: $gray;
font-family: $serif-font-family;
font-size: 1em;
margin-bottom: 1em;
padding: 0 .8em;
&:before, &:after {
color: $gray-lighter;
font-family: "h";
position: absolute;
}
&:before {
content: "\23";
font-size: 6em;
top: -.36em;
left: -.31em;
}
&:after {
content: "\24";
font-size: 5em;
right: -.31em;
bottom: -.27em;
}
padding: 0 .615em;
border-left: 3px solid $gray-lighter;
}
//DROPDOWNS////////////////////////////////
.dropdown {
position: relative;
......@@ -430,8 +413,13 @@ blockquote {
color: $link-color;
}
.magicontrol.dropdown {
top: 4px;
}
fuzzytime {
margin: 0 .4em;
line-height: 2;
a {
color: $text-color;
&:hover { color: $link-color-hover; }
......@@ -575,58 +563,6 @@ blockquote {
pre {outline: 1px solid #ccc; padding: 5px; margin: 5px; }
// Tags for the annotations
.tags {
@include pie-clearfix;
@include reset-box-model;
@include reset-font;
background: none;
clear: both;
margin-top: .2em;
margin-bottom: .2em;
.tagit-choice {
border-radius: 2px;
padding: 0.307em 1.7em 0.307em 0.76em;
}
.tagit-close {
cursor: pointer;
position: absolute;
right: .1em;
top: 50%;
margin-top: -8px;
}
.tagit-new input[type=text] {
padding-top: 5px;
padding-bottom: 5px;
}
.text-icon { display: none; }
li {
cursor: pointer;
display: block;
float: left;
padding: .01em 1.3em .01em .3em;
position: relative;
margin-right: 0.4em;
&:hover { opacity: 1; }
&.tagit-new { padding: 0; }
}
&[readonly] {
.tagit-new, .tagit-close { display: none; }
li {
padding: .1em .3em;
font-size: 12px;
}
li.tagit-choice { margin-top: .1em; }
}
}
// View and Sort tabs ////////////////////
.viewsort {
@include single-transition(top, .25s);
......
// Common form styles.
@import "mixins/forms";
@import "compass/css3/images";
@import "compass/utilities/general/clearfix";
......@@ -68,36 +69,17 @@
}
.form-input {
border: 1px solid $gray-lighter;
border-radius: 2px;
padding: 7px 10px;
font-weight: normal;
font-size: 15px;
color: $gray;
background-color: #FAFAFA;
@include form-input;
&:focus, &.js-focus {
outline: none;
background-color: #FFF;
border-color: #51A7E8;
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.075) inset, 0px 0px 5px rgba(81, 167, 232, 0.5);
@include placeholder {
color: $gray;
}
@include form-input-focus;
}
}
.form-field-error {
.form-input {
&, &:focus, &.js-focus {
color: $error-red;
border-color: $error-red-light;
background-color: $error-red-lightest;
}
@include placeholder {
color: $error-red-light;
@include form-input-error;
}
}
......@@ -207,44 +189,23 @@
}
.btn {
@include background(linear-gradient($button-background-gradient...));
@include box-shadow(0 1px 0 rgba(0, 0, 0, 0.15));
display: inline-block;
font-size: 13px;
font-weight: bold;
color: $button-text-color;
text-shadow: 0 1px 0 #FFF;
border-radius: 2px;
border: 1px solid #ACACAC;
padding: 7px 12px 6px;
@include btn;
&:hover, &:active, &.js-hover, &.js-active {
@include box-shadow(0 1px 0 rgba(0, 0, 0, 0.05));
outline: none;
color: $button-text-color;
background: $button-background-start;
border-color: #bababa;
&:hover, &:focus, &:active,
&.js-hover, &.js-focus, &.js-active {
@include btn-hover;
}
&:focus, &.js-focus {
border-color: #51A7E8;
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.075) inset, 0px 0px 5px rgba(81, 167, 232, 0.5);
@include focus-outline;
}
&:active, &.js-active {
@include box-shadow(inset 0 1px 0 rgba(0, 0, 0, 0.1));
background: $button-background-end;
color: #424242;
border-color: #bababa;
@include btn-active;
}
&[disabled], &.js-disabled {
@include box-shadow(none);
cursor: default;
background: #F0F0F0;
border-color: #CECECE;
color: $gray-light;
@include btn-disabled;
}
}
......
This diff is collapsed.
@import "../base";
@mixin focus-outline {
border-color: #51A7E8;
box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.075) inset, 0px 0px 5px rgba(81, 167, 232, 0.5);
}
@mixin form-input {
border: 1px solid $gray-lighter;
border-radius: 2px;
padding: 7px 10px;
font-weight: normal;
font-size: 15px;
color: $gray;
background-color: #FAFAFA;
}
@mixin form-input-focus {
outline: none;
background-color: #FFF;
@include focus-outline;
@include placeholder {
color: $gray;
}
}
@mixin form-input-error {
color: $error-red;
border-color: $error-red-light;
background-color: $error-red-lightest;
@include placeholder {
color: $error-red-light;
}
}
@mixin btn {
@include background(linear-gradient($button-background-gradient...));
@include box-shadow(0 1px 0 rgba(0, 0, 0, 0.15));
display: inline-block;
font-size: 13px;
font-weight: bold;
color: $button-text-color;
text-shadow: 0 1px 0 #FFF;
border-radius: 2px;
border: 1px solid #ACACAC;
padding: 7px 12px 6px;
}
@mixin btn-hover {
@include box-shadow(0 1px 0 rgba(0, 0, 0, 0.05));
outline: none;
color: $button-text-color;
background: $button-background-start;
border-color: #bababa;
}
@mixin btn-active {
@include box-shadow(inset 0 1px 0 rgba(0, 0, 0, 0.1));
background: $button-background-end;
color: #424242;
border-color: #bababa;
}
@mixin btn-disabled {
@include box-shadow(none);
cursor: default;
background: #F0F0F0;
border-color: #CECECE;
color: $gray-light;
}
// Styles for the ngTagsInput plugin.
// http://mbenford.github.io/ngTagsInput/gettingstarted
@import "mixins/forms";
tags-input {
.host {
outline: none;
}
.tags {
@include form-input;
@include clearfix;
&.focused {
@include form-input-focus;
}
// Input
.input {
float: left;
margin-top: .33em;
padding: .2em 0;
outline: none;
border: none !important;
background: none;
color: $gray;
}
}
.tag-list {
margin-top: -.33em; // Absorb the first row of margin-top on the tags.
}
.tag-item {
@include btn;
float: left;
position: relative;
padding: .307em 1.538em .307em .615em;
margin-top: .384em;
margin-right: .384em;
&.selected {
@include btn-hover;
@include focus-outline;
}
.remove-button {
position: absolute;
top: 50%;
right: 5px;
color: #585858;
font-size: 20px;
cursor: pointer;
line-height: 1;
margin-top: -10px;
}
}
}
.tags-read-only {
font-size: 0.92em;
margin: 0.16em 0;
.tag-list, .tag-item {
display: inline;
}
.tag-item a:after {
content: ", ";
color: $text-color;
}
.tag-item:last-child a:after {
content: none;
}
}
......@@ -30,16 +30,9 @@ $threadexp-width: .6em;
padding-left: $thread-padding;
&.collapsed {
& > .annotation {
fuzzytime {
float: none;
font-style: italic;
}
header {
display: inline-block;
}
border-color: transparent;
& > .annotation {
.body {
display: none;
}
......
......@@ -23,6 +23,7 @@ module.exports = function(config) {
'h/static/scripts/vendor/angular-resource.js',
'h/static/scripts/vendor/angular-route.js',
'h/static/scripts/vendor/angular-sanitize.js',
'h/static/scripts/vendor/ng-tags-input.js',
'h/static/scripts/vendor/gettext.js',
'h/static/scripts/vendor/annotator.js',
'h/static/scripts/vendor/annotator.auth.js',
......@@ -41,16 +42,6 @@ module.exports = function(config) {
'h/static/scripts/vendor/Markdown.Converter.js',
'h/static/scripts/vendor/polyfills/raf.js',
'h/static/scripts/vendor/sockjs-0.3.4.js',
'h/static/scripts/vendor/jquery.ui.core.js',
'h/static/scripts/vendor/jquery.ui.position.js',
'h/static/scripts/vendor/jquery.ui.widget.js',
'h/static/scripts/vendor/jquery.ui.tooltip.js',
'h/static/scripts/vendor/jquery.ui.autocomplete.js',
'h/static/scripts/vendor/jquery.ui.menu.js',
'h/static/scripts/vendor/jquery.ui.effect.js',
'h/static/scripts/vendor/jquery.ui.effect-blind.js',
'h/static/scripts/vendor/jquery.ui.effect-highlight.js',
'h/static/scripts/vendor/tag-it.js',
'h/static/scripts/vendor/uuid.js',
'h/static/scripts/hypothesis-auth.js',
'h/static/scripts/hypothesis.js',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment