galaxy-commits
Threads by month
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
August 2012
- 1 participants
- 118 discussions
commit/galaxy-central: jgoecks: Add data placeholders so that BED files without all optional fields can be dynamically filtered.
by Bitbucket 22 Aug '12
by Bitbucket 22 Aug '12
22 Aug '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/863e1150c85b/
changeset: 863e1150c85b
user: jgoecks
date: 2012-08-22 20:42:05
summary: Add data placeholders so that BED files without all optional fields can be dynamically filtered.
affected #: 1 file
diff -r 931382e567f501ff8529cdd3c7b45c2d08d0ab23 -r 863e1150c85b7383a1b136c9b3c9376da81bc16b lib/galaxy/visualization/tracks/data_providers.py
--- a/lib/galaxy/visualization/tracks/data_providers.py
+++ b/lib/galaxy/visualization/tracks/data_providers.py
@@ -484,6 +484,11 @@
# Score (filter data)
if length >= 5 and filter_cols and filter_cols[0] == "Score":
+ # If dataset doesn't have name/strand/thick start/thick end/blocks,
+ # add placeholders. There should be 8 entries if all attributes
+ # are present.
+ payload.extend( [ None for i in range( 8 - len( payload ) ) ] )
+
try:
payload.append( float( feature[4] ) )
except:
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: dan: Refactor GBrowse external display application. Update WormBase with latest builds and to be able to use reference sites.
by Bitbucket 22 Aug '12
by Bitbucket 22 Aug '12
22 Aug '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/931382e567f5/
changeset: 931382e567f5
user: dan
date: 2012-08-22 18:35:23
summary: Refactor GBrowse external display application. Update WormBase with latest builds and to be able to use reference sites.
affected #: 6 files
diff -r 7eeee803345e111b9485cc9b9c2b397a6623fa5f -r 931382e567f501ff8529cdd3c7b45c2d08d0ab23 display_applications/gbrowse/gbrowse_gff.xml
--- a/display_applications/gbrowse/gbrowse_gff.xml
+++ b/display_applications/gbrowse/gbrowse_gff.xml
@@ -1,16 +1,24 @@
<display id="gbrowse_gff" version="1.0.0" name="display at GBrowse"><!-- Load links from file: one line to one link -->
- <dynamic_links from_file="tool-data/shared/gbrowse/gbrowse_build_sites.txt" skip_startswith="#" id="0" name="0">
+ <dynamic_links from_file="tool-data/shared/gbrowse/gbrowse_build_sites.txt" skip_startswith="#" id="0" name="1">
+
<!-- Define parameters by column from file, allow splitting on builds --><dynamic_param name="site_id" value="0"/>
- <dynamic_param name="gbrowse_link" value="1"/>
- <dynamic_param name="builds" value="2" split="True" separator="," />
+ <dynamic_param name="site_name" value="1"/>
+ <dynamic_param name="site_link" value="2"/>
+ <dynamic_param name="site_dbkeys" value="3" split="True" separator="," />
+ <dynamic_param name="site_organisms" value="4" split="True" separator="," />
+
<!-- Filter out some of the links based upon matching site_id to a Galaxy application configuration parameter and by dataset dbkey --><filter>${site_id in $APP.config.gbrowse_display_sites}</filter>
- <filter>${dataset.dbkey in $builds}</filter>
+ <filter>${dataset.dbkey in $site_dbkeys}</filter>
+
<!-- We define url and params as normal, but values defined in dynamic_param are available by specified name -->
- <url>${gbrowse_link}/?${position}eurl=${gff_file.qp}</url>
+ <url>${site_link}${site_organism}/?${position}eurl=${gff_file.qp}</url><param type="data" name="gff_file" url="galaxy_${DATASET_HASH}.gff" />
+ <param type="template" name="site_organism" strip="True" >
+ $site_organisms[ $site_dbkeys.index( $gff_file.dbkey ) ]
+ </param><param type="template" name="position" strip="True" >
#set chrom, start, end = $gff_file.datatype.get_estimated_display_viewport( $gff_file )
#if $chrom is not None:
diff -r 7eeee803345e111b9485cc9b9c2b397a6623fa5f -r 931382e567f501ff8529cdd3c7b45c2d08d0ab23 display_applications/gbrowse/gbrowse_interval_as_bed.xml
--- a/display_applications/gbrowse/gbrowse_interval_as_bed.xml
+++ b/display_applications/gbrowse/gbrowse_interval_as_bed.xml
@@ -1,16 +1,24 @@
<display id="gbrowse_interval_as_bed" version="1.0.0" name="display at GBrowse"><!-- Load links from file: one line to one link -->
- <dynamic_links from_file="tool-data/shared/gbrowse/gbrowse_build_sites.txt" skip_startswith="#" id="0" name="0">
+ <dynamic_links from_file="tool-data/shared/gbrowse/gbrowse_build_sites.txt" skip_startswith="#" id="0" name="1">
+
<!-- Define parameters by column from file, allow splitting on builds --><dynamic_param name="site_id" value="0"/>
- <dynamic_param name="gbrowse_link" value="1"/>
- <dynamic_param name="builds" value="2" split="True" separator="," />
+ <dynamic_param name="site_name" value="1"/>
+ <dynamic_param name="site_link" value="2"/>
+ <dynamic_param name="site_dbkeys" value="3" split="True" separator="," />
+ <dynamic_param name="site_organisms" value="4" split="True" separator="," />
+
<!-- Filter out some of the links based upon matching site_id to a Galaxy application configuration parameter and by dataset dbkey --><filter>${site_id in $APP.config.gbrowse_display_sites}</filter>
- <filter>${dataset.dbkey in $builds}</filter>
+ <filter>${dataset.dbkey in $site_dbkeys}</filter>
+
<!-- We define url and params as normal, but values defined in dynamic_param are available by specified name -->
- <url>${gbrowse_link}/?${position}eurl=${bed_file.qp}</url>
+ <url>${site_link}${site_organism}/?${position}eurl=${bed_file.qp}</url><param type="data" name="bed_file" url="galaxy_${DATASET_HASH}.bed" format="bedstrict"/><!-- Galaxy allows BED files to contain non-standard fields beyond the first 3 columns, gbrowse does not(?): force use of converter which will make strict BED6+ file -->
+ <param type="template" name="site_organism" strip="True" >
+ $site_organisms[ $site_dbkeys.index( $bed_file.dbkey ) ]
+ </param><param type="template" name="position" strip="True" >
#set chrom, start, end = $bed_file.datatype.get_estimated_display_viewport( $bed_file )
#if $chrom is not None:
diff -r 7eeee803345e111b9485cc9b9c2b397a6623fa5f -r 931382e567f501ff8529cdd3c7b45c2d08d0ab23 display_applications/gbrowse/gbrowse_wig.xml
--- a/display_applications/gbrowse/gbrowse_wig.xml
+++ b/display_applications/gbrowse/gbrowse_wig.xml
@@ -1,16 +1,24 @@
<display id="gbrowse_wig" version="1.0.0" name="display at GBrowse"><!-- Load links from file: one line to one link -->
- <dynamic_links from_file="tool-data/shared/gbrowse/gbrowse_build_sites.txt" skip_startswith="#" id="0" name="0">
+ <dynamic_links from_file="tool-data/shared/gbrowse/gbrowse_build_sites.txt" skip_startswith="#" id="0" name="1">
+
<!-- Define parameters by column from file, allow splitting on builds --><dynamic_param name="site_id" value="0"/>
- <dynamic_param name="gbrowse_link" value="1"/>
- <dynamic_param name="builds" value="2" split="True" separator="," />
+ <dynamic_param name="site_name" value="1"/>
+ <dynamic_param name="site_link" value="2"/>
+ <dynamic_param name="site_dbkeys" value="3" split="True" separator="," />
+ <dynamic_param name="site_organisms" value="4" split="True" separator="," />
+
<!-- Filter out some of the links based upon matching site_id to a Galaxy application configuration parameter and by dataset dbkey --><filter>${site_id in $APP.config.gbrowse_display_sites}</filter>
- <filter>${dataset.dbkey in $builds}</filter>
+ <filter>${dataset.dbkey in $site_dbkeys}</filter>
+
<!-- We define url and params as normal, but values defined in dynamic_param are available by specified name -->
- <url>${gbrowse_link}/?${position}eurl=${wig_file.qp}</url>
+ <url>${site_link}${site_organism}/?${position}eurl=${wig_file.qp}</url><param type="data" name="wig_file" url="galaxy_${DATASET_HASH}.wig" format="wig"/>
+ <param type="template" name="site_organism" strip="True" >
+ $site_organisms[ $site_dbkeys.index( $wig_file.dbkey ) ]
+ </param><param type="template" name="position" strip="True" >
#set chrom, start, end = $wig_file.datatype.get_estimated_display_viewport( $wig_file )
#if $chrom is not None:
diff -r 7eeee803345e111b9485cc9b9c2b397a6623fa5f -r 931382e567f501ff8529cdd3c7b45c2d08d0ab23 lib/galaxy/config.py
--- a/lib/galaxy/config.py
+++ b/lib/galaxy/config.py
@@ -132,7 +132,7 @@
self.log_events = string_as_bool( kwargs.get( 'log_events', 'False' ) )
self.sanitize_all_html = string_as_bool( kwargs.get( 'sanitize_all_html', True ) )
self.ucsc_display_sites = kwargs.get( 'ucsc_display_sites', "main,test,archaea,ucla" ).lower().split(",")
- self.gbrowse_display_sites = kwargs.get( 'gbrowse_display_sites', "wormbase,tair,modencode_worm,modencode_fly,sgd_yeast" ).lower().split(",")
+ self.gbrowse_display_sites = kwargs.get( 'gbrowse_display_sites', "modencode,sgd_yeast,tair,wormbase,wormbase_ws120,wormbase_ws140,wormbase_ws170,wormbase_ws180,wormbase_ws190,wormbase_ws200,wormbase_ws204,wormbase_ws210,wormbase_ws220,wormbase_ws225" ).lower().split(",")
self.genetrack_display_sites = kwargs.get( 'genetrack_display_sites', "main,test" ).lower().split(",")
self.brand = kwargs.get( 'brand', None )
self.support_url = kwargs.get( 'support_url', 'http://wiki.g2.bx.psu.edu/Support' )
diff -r 7eeee803345e111b9485cc9b9c2b397a6623fa5f -r 931382e567f501ff8529cdd3c7b45c2d08d0ab23 tool-data/shared/gbrowse/gbrowse_build_sites.txt
--- a/tool-data/shared/gbrowse/gbrowse_build_sites.txt
+++ b/tool-data/shared/gbrowse/gbrowse_build_sites.txt
@@ -1,14 +1,24 @@
-# wormbase sites / supported genomes
-wormbase http://www.wormbase.org/db/gb2/gbrowse/c_elegans ce8,ce7,ce6,ce5,ce4,ce3,ce2,cb3,cb2,cb1,caeRem3,caeRem2,caeRem1,caePb2,caePb1,caeJap2,caeJap1
-#test http://dev.wormbase.org/db/seq/gbrowse/c_elegans/ ce8,ce7,ce6,ce5,ce4,ce3,ce2,cb3,cb2,cb1,caeRem3,caeRem2,caeRem1,caePb2,caePb1,caeJap2,caeJap1
+#GBrowse Sites
+#site_id site_name site_link site_dbkeys site_organisms
-# UCSC mirror that includes arabidopsis
-tair http://arabidopsis.org/cgi-bin/gbrowse/ arabidopsis_tair8,arabidopsis
+#WormBase
+wormbase WormBase current http://www.wormbase.org/db/gb2/gbrowse/ ce10,ce9,ce8,ce7,ce6,ce5,ce4,ce3,ce2,cb4,cb3,cb2,cb1,caeRem4,caeRem3,caeRem2,caeRem1,caePb2,caePb1,caeJap4,caeJap3,caeJap2,caeJap1,caeAng1 c_elegans,c_elegans,c_elegans,c_elegans,c_elegans,c_elegans,c_elegans,c_elegans,c_elegans,c_briggsae,c_briggsae,c_briggsae,c_briggsae,c_remanei,c_remanei,c_remanei,c_remanei,c_brenneri,c_brenneri,c_japonica,c_japonica,c_japonica,c_japonica,c_angaria
+wormbase_ws120 WormBase WS120 http://ws120.wormbase.org/db/seq/gbrowse/ ce2 wormbase
+wormbase_ws140 WormBase WS140 http://ws140.wormbase.org/db/seq/gbrowse/ ce3 wormbase
+wormbase_ws170 WormBase WS170 http://ws170.wormbase.org/db/seq/gbrowse/ ce4 wormbase
+wormbase_ws180 WormBase WS180 http://ws180.wormbase.org/db/seq/gbrowse/ ce5 elegans
+wormbase_ws190 WormBase WS190 http://ws190.wormbase.org/db/seq/gbrowse/ ce6 elegans
+wormbase_ws200 WormBase WS200 http://ws200.wormbase.org/db/seq/gbrowse/ ce7 c_elegans
+wormbase_ws204 WormBase WS204 http://ws204.wormbase.org/db/seq/gbrowse/ ce8 c_elegans
+wormbase_ws210 WormBase WS210 http://ws210.wormbase.org/db/seq/gbrowse/ ce9 c_elegans
+wormbase_ws220 WormBase WS220 http://ws220.wormbase.org/db/gb2/gbrowse/ ce10,caeRem4 c_elegans,c_remanei
+wormbase_ws225 WormBase WS225 http://ws225.wormbase.org/db/gb2/gbrowse/ caeAng1,cb4 c_angaria,c_briggsae
-# modENCODE worm and fly
-modencode_worm http://modencode.oicr.on.ca/fgb2/gbrowse/worm ce6
-modencode_fly http://modencode.oicr.on.ca/fgb2/gbrowse/fly dm2
+#The Arabidopsis Information Resource (tair)
+tair tair http://arabidopsis.org/cgi-bin/gbrowse/ arabidopsis_tair8,arabidopsis,Arabidopsis_thaliana_TAIR10 arabidopsis_tair8,arabidopsis_tair9,arabidopsis
-#SGD
-sgd_yeast http://browse.yeastgenome.org/fgb2/gbrowse/scgenome Saccharomyces_cerevisiae_S288C_SGD2010
+#modENCODE
+modencode modENCODE http://modencode.oicr.on.ca/fgb2/gbrowse/ ce6,dm2 worm,fly
+#Saccharomyces Genome Database (SGD)
+sgd_yeast Saccharomyces Genome Database http://browse.yeastgenome.org/fgb2/gbrowse/ Saccharomyces_cerevisiae_S288C_SGD2010 scgenome
diff -r 7eeee803345e111b9485cc9b9c2b397a6623fa5f -r 931382e567f501ff8529cdd3c7b45c2d08d0ab23 universe_wsgi.ini.sample
--- a/universe_wsgi.ini.sample
+++ b/universe_wsgi.ini.sample
@@ -218,7 +218,7 @@
#ucsc_display_sites = main,test,archaea,ucla
# GBrowse servers: tool-data/shared/gbrowse/gbrowse_build_sites.txt
-#gbrowse_display_sites = wormbase,tair,modencode_worm,modencode_fly,yeast_sgd
+#gbrowse_display_sites = modencode,sgd_yeast,tair,wormbase,wormbase_ws120,wormbase_ws140,wormbase_ws170,wormbase_ws180,wormbase_ws190,wormbase_ws200,wormbase_ws204,wormbase_ws210,wormbase_ws220,wormbase_ws225
# GeneTrack servers: tool-data/shared/genetrack/genetrack_sites.txt
#genetrack_display_sites = main,test
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: dan: Better handling of invalid dynamic external display application links.
by Bitbucket 22 Aug '12
by Bitbucket 22 Aug '12
22 Aug '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/7eeee803345e/
changeset: 7eeee803345e
user: dan
date: 2012-08-22 17:40:55
summary: Better handling of invalid dynamic external display application links.
affected #: 1 file
diff -r 9df126526d89979a7830bc48c7bff122555eaea9 -r 7eeee803345e111b9485cc9b9c2b397a6623fa5f lib/galaxy/datatypes/display_applications/application.py
--- a/lib/galaxy/datatypes/display_applications/application.py
+++ b/lib/galaxy/datatypes/display_applications/application.py
@@ -98,8 +98,10 @@
for line in open( filename ):
if not skip_startswith or not line.startswith( skip_startswith ):
line = line.rstrip( '\n\r' )
+ if not line:
+ continue
fields = line.split( separator )
- if len( fields ) >= max_col:
+ if len( fields ) > max_col:
new_elem = deepcopy( elem )
new_elem.set( 'id', fields[id_col] )
new_elem.set( 'name', fields[name_col] )
@@ -111,6 +113,8 @@
dynamic_values[key] = value
#now populate
rval.append( DisplayApplicationLink.from_elem( new_elem, display_application, other_values = dynamic_values ) )
+ else:
+ log.warning( 'Invalid dynamic display application link specified in %s: "%s"' % ( filename, line ) )
self.links = rval
def __iter__( self ):
return iter( self.links )
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: afgane: Rename an ObjectStore method not to be AWS-specific
by Bitbucket 22 Aug '12
by Bitbucket 22 Aug '12
22 Aug '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/9df126526d89/
changeset: 9df126526d89
user: afgane
date: 2012-08-22 08:24:52
summary: Rename an ObjectStore method not to be AWS-specific
affected #: 1 file
diff -r 8c07fc133839d1c175aa85d37d43f2f9ce5c6182 -r 9df126526d89979a7830bc48c7bff122555eaea9 lib/galaxy/objectstore/__init__.py
--- a/lib/galaxy/objectstore/__init__.py
+++ b/lib/galaxy/objectstore/__init__.py
@@ -608,13 +608,13 @@
log.error("Problem downloading key '%s' from S3 bucket '%s': %s" % (rel_path, self.bucket.name, ex))
return False
- def _push_to_s3(self, rel_path, source_file=None, from_string=None):
+ def _push_to_os(self, rel_path, source_file=None, from_string=None):
"""
- Push the file pointed to by `rel_path` to S3 naming the key `rel_path`.
- If `source_file` is provided, push that file instead while still using
- `rel_path` as the key name.
- If `from_string` is provided, set contents of the file to the value of
- the string
+ Push the file pointed to by ``rel_path`` to the object store naming the key
+ ``rel_path``. If ``source_file`` is provided, push that file instead while
+ still using ``rel_path`` as the key name.
+ If ``from_string`` is provided, set contents of the file to the value of
+ the string.
"""
try:
source_file = source_file if source_file else self._get_cache_path(rel_path)
@@ -680,7 +680,7 @@
return False
# TODO: Sync should probably not be done here. Add this to an async upload stack?
if in_cache and not in_s3:
- self._push_to_s3(rel_path, source_file=self._get_cache_path(rel_path))
+ self._push_to_os(rel_path, source_file=self._get_cache_path(rel_path))
return True
elif in_s3:
return True
@@ -713,12 +713,12 @@
# flat namespace), do so for consistency with the regular file system
# S3 folders are marked by having trailing '/' so add it now
# s3_dir = '%s/' % rel_path
- # self._push_to_s3(s3_dir, from_string='')
+ # self._push_to_os(s3_dir, from_string='')
# If instructed, create the dataset in cache & in S3
if not dir_only:
rel_path = os.path.join(rel_path, alt_name if alt_name else "dataset_%s.dat" % obj.id)
open(os.path.join(self.staging_path, rel_path), 'w').close()
- self._push_to_s3(rel_path, from_string='')
+ self._push_to_os(rel_path, from_string='')
def empty(self, obj, **kwargs):
if self.exists(obj, **kwargs):
@@ -832,7 +832,7 @@
else:
source_file = self._get_cache_path(rel_path)
# Update the file on S3
- self._push_to_s3(rel_path, source_file)
+ self._push_to_os(rel_path, source_file)
else:
raise ObjectNotFound()
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
2 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/f906603c475e/
changeset: f906603c475e
user: afgane
date: 2012-08-22 08:12:46
summary: Multipart upload to OpenStack Swift does not work with boto so don't use it
affected #: 2 files
diff -r 9e9e104ad5c93a2268bb00cfae09b57a31ece13c -r f906603c475e80f9d3171c18a4051c4b325b6e5b lib/galaxy/objectstore/__init__.py
--- a/lib/galaxy/objectstore/__init__.py
+++ b/lib/galaxy/objectstore/__init__.py
@@ -631,7 +631,7 @@
# print "Pushing cache file '%s' of size %s bytes to key '%s'" % (source_file, os.path.getsize(source_file), rel_path)
# print "+ Push started at '%s'" % start_time
mb_size = os.path.getsize(source_file) / 1e6
- if mb_size < 60:
+ if mb_size < 60 or self.config.object_store == 'swift':
self.transfer_progress = 0 # Reset transfer progress counter
key.set_contents_from_filename(source_file, reduced_redundancy=self.use_rr,
cb=self._transfer_cb, num_cb=10)
@@ -649,12 +649,17 @@
return False
def file_ready(self, obj, **kwargs):
- """ A helper method that checks if a file corresponding to a dataset
- is ready and available to be used. Return True if so, False otherwise."""
+ """
+ A helper method that checks if a file corresponding to a dataset is
+ ready and available to be used. Return ``True`` if so, ``False`` otherwise.
+ """
rel_path = self._construct_path(obj, **kwargs)
# Make sure the size in cache is available in its entirety
- if self._in_cache(rel_path) and os.path.getsize(self._get_cache_path(rel_path)) == self._get_size_in_s3(rel_path):
- return True
+ if self._in_cache(rel_path):
+ if os.path.getsize(self._get_cache_path(rel_path)) == self._get_size_in_s3(rel_path):
+ return True
+ log.debug("Waiting for dataset {0} to transfer from OS: {1}/{2}".format(rel_path,
+ os.path.getsize(self._get_cache_path(rel_path)), self._get_size_in_s3(rel_path)))
return False
def exists(self, obj, **kwargs):
diff -r 9e9e104ad5c93a2268bb00cfae09b57a31ece13c -r f906603c475e80f9d3171c18a4051c4b325b6e5b templates/root/history.mako
--- a/templates/root/history.mako
+++ b/templates/root/history.mako
@@ -166,7 +166,7 @@
// $("<div/>").text("Data is loading from S3... please be patient").appendTo(link.parent());
$( '#historyItem-' + history_id).removeClass( "historyItem-ok" );
$( '#historyItem-' + history_id).addClass( "historyItem-running" );
- setTimeout(function(){check_transfer_status(link, history_id)}, 1000);
+ setTimeout(function(){check_transfer_status(link, history_id)}, 4000);
} else {
$( '#historyItem-' + history_id).removeClass( "historyItem-running" );
$( '#historyItem-' + history_id).addClass( "historyItem-ok" );
https://bitbucket.org/galaxy/galaxy-central/changeset/8c07fc133839/
changeset: 8c07fc133839
user: afgane
date: 2012-08-22 08:13:51
summary: Merge
affected #: 194 files
Diff too large to display.
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: jgoecks: Final JS reorg to rename and move files so that all files follow standard conventions.
by Bitbucket 21 Aug '12
by Bitbucket 21 Aug '12
21 Aug '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/e27c236c05e5/
changeset: e27c236c05e5
user: jgoecks
date: 2012-08-21 23:08:35
summary: Final JS reorg to rename and move files so that all files follow standard conventions.
affected #: 29 files
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 static/scripts/autocomplete_tagging.js
--- a/static/scripts/autocomplete_tagging.js
+++ /dev/null
@@ -1,374 +0,0 @@
-/**
-* JQuery extension for tagging with autocomplete.
-* @author: Jeremy Goecks
-* @require: jquery.autocomplete plugin
-*/
-//
-// Initialize "tag click functions" for tags.
-//
-function init_tag_click_function(tag_elt, click_func) {
- $(tag_elt).find('.tag-name').each( function() {
- $(this).click( function() {
- var tag_str = $(this).text();
- var tag_name_and_value = tag_str.split(":");
- click_func(tag_name_and_value[0], tag_name_and_value[1]);
- return true;
- });
- });
-}
-
-jQuery.fn.autocomplete_tagging = function(options) {
-
- var defaults = {
- get_toggle_link_text_fn: function(tags) {
- var text = "";
- var num_tags = obj_length(tags);
- if (num_tags > 0) {
- text = num_tags + (num_tags > 1 ? " Tags" : " Tag");
- } else {
- text = "Add tags";
- }
- return text;
- },
- tag_click_fn : function (name, value) {},
- editable: true,
- input_size: 20,
- in_form: false,
- tags : {},
- use_toggle_link: true,
- item_id: "",
- add_tag_img: "",
- add_tag_img_rollover: "",
- delete_tag_img: "",
- ajax_autocomplete_tag_url: "",
- ajax_retag_url: "",
- ajax_delete_tag_url: "",
- ajax_add_tag_url: ""
- };
-
- var settings = jQuery.extend(defaults, options);
-
- //
- // Initalize object's elements.
- //
-
- // Get elements for this object. For this_obj, assume the last element with the id is the "this"; this is somewhat of a hack to address the problem
- // that there may be two tagging elements for a single item if there are both community and individual tags for an element.
- var this_obj = $(this);
- var tag_area = this_obj.find('.tag-area');
- var toggle_link = this_obj.find('.toggle-link');
- var tag_input_field = this_obj.find('.tag-input');
- var add_tag_button = this_obj.find('.add-tag-button');
-
- // Initialize toggle link.
- toggle_link.click( function() {
- // Take special actions depending on whether toggle is showing or hiding link.
- var after_toggle_fn;
- if (tag_area.is(":hidden")) {
- after_toggle_fn = function() {
- // If there are no tags, go right to editing mode by generating a click on the area.
- var num_tags = $(this).find('.tag-button').length;
- if (num_tags === 0) {
- tag_area.click();
- }
- };
- } else {
- after_toggle_fn = function() {
- tag_area.blur();
- };
- }
- tag_area.slideToggle("fast", after_toggle_fn);
- return $(this);
- });
-
- // Initialize tag input field.
- if (settings.editable) {
- tag_input_field.hide();
- }
- tag_input_field.keyup( function(e) {
- if ( e.keyCode === 27 ) {
- // Escape key
- $(this).trigger( "blur" );
- } else if (
- ( e.keyCode === 13 ) || // Return Key
- ( e.keyCode === 188 ) || // Comma
- ( e.keyCode === 32 ) // Space
- ) {
- //
- // Check input.
- //
-
- var new_value = this.value;
-
- // Do nothing if return key was used to autocomplete.
- if (return_key_pressed_for_autocomplete === true) {
- return_key_pressed_for_autocomplete = false;
- return false;
- }
-
- // Suppress space after a ":"
- if ( new_value.indexOf(": ", new_value.length - 2) !== -1) {
- this.value = new_value.substring(0, new_value.length-1);
- return false;
- }
-
- // Remove trigger keys from input.
- if ( (e.keyCode === 188) || (e.keyCode === 32) ) {
- new_value = new_value.substring( 0 , new_value.length - 1 );
- }
-
- // Trim whitespace.
- new_value = $.trim(new_value);
-
- // Too short?
- if (new_value.length < 2) {
- return false;
- }
-
- //
- // New tag OK - apply it.
- //
-
- this.value = ""; // Reset text field now that tag is being added
-
- // Add button for tag after all other tag buttons.
- var new_tag_button = build_tag_button(new_value);
- var tag_buttons = tag_area.children(".tag-button");
- if (tag_buttons.length !== 0) {
- var last_tag_button = tag_buttons.slice(tag_buttons.length-1);
- last_tag_button.after(new_tag_button);
- } else {
- tag_area.prepend(new_tag_button);
- }
-
- // Add tag to internal list.
- var tag_name_and_value = new_value.split(":");
- settings.tags[tag_name_and_value[0]] = tag_name_and_value[1];
-
- // Update toggle link text.
- var new_text = settings.get_toggle_link_text_fn(settings.tags);
- toggle_link.text(new_text);
-
- // Commit tag to server.
- var zz = $(this);
- $.ajax({
- url: settings.ajax_add_tag_url,
- data: { new_tag: new_value },
- error: function() {
- // Failed. Roll back changes and show alert.
- new_tag_button.remove();
- delete settings.tags[tag_name_and_value[0]];
- var new_text = settings.get_toggle_link_text_fn(settings.tags);
- toggle_link.text(new_text);
- alert( "Add tag failed" );
- },
- success: function() {
- // Flush autocomplete cache because it's not out of date.
- // TODO: in the future, we could remove the particular item
- // that was chosen from the cache rather than flush it.
- zz.flushCache();
- }
- });
-
- return false;
- }
- });
-
- // Add autocomplete to input.
- var format_item_func = function(key, row_position, num_rows, value, search_term) {
- var tag_name_and_value = value.split(":");
- return (tag_name_and_value.length === 1 ? tag_name_and_value[0] : tag_name_and_value[1]);
- };
- var autocomplete_options = { selectFirst: false, formatItem: format_item_func,
- autoFill: false, highlight: false };
- tag_input_field.autocomplete(settings.ajax_autocomplete_tag_url, autocomplete_options);
-
-
- // Initialize delete tag images for current tags.
- this_obj.find('.delete-tag-img').each(function() {
- init_delete_tag_image( $(this) );
- });
-
-
- // Initialize tag click function.
- init_tag_click_function($(this), settings.tag_click_fn);
-
- // Initialize "add tag" button.
- add_tag_button.click( function() {
- $(this).hide();
-
- // Clicking on button is the same as clicking on the tag area.
- tag_area.click();
- return false;
- });
-
- //
- // Set up tag area interactions; these are needed only if tags are editable.
- //
- if (settings.editable) {
- // When the tag area blurs, go to "view tag" mode.
- tag_area.bind("blur", function(e) {
- if (obj_length(settings.tags) > 0) {
- add_tag_button.show();
- tag_input_field.hide();
- tag_area.removeClass("active-tag-area");
- tag_area.addClass("tooltip");
- } else {
- // No tags, so do nothing to ensure that input is still visible.
- }
- });
-
- // On click, enable user to add tags.
- tag_area.click( function(e) {
- var is_active = $(this).hasClass("active-tag-area");
-
- // If a "delete image" object was pressed and area is inactive, do nothing.
- if ($(e.target).hasClass("delete-tag-img") && !is_active) {
- return false;
- }
-
- // If a "tag name" object was pressed and area is inactive, do nothing.
- if ($(e.target).hasClass("tag-name") && !is_active) {
- return false;
- }
-
- // Remove tooltip.
- $(this).removeClass("tooltip");
-
- // Hide add tag button, show tag_input field. Change background to show
- // area is active.
- $(this).addClass("active-tag-area");
- add_tag_button.hide();
- tag_input_field.show();
- tag_input_field.focus();
-
- // Add handler to document that will call blur when the tag area is blurred;
- // a tag area is blurred when a user clicks on an element outside the area.
- var handle_document_click = function(e) {
- var check_click = function(tag_area, target) {
- var tag_area_id = tag_area.attr("id");
- // Blur the tag area if the element clicked on is not in the tag area.
- if (target !== tag_area) {
- tag_area.blur();
- $(window).unbind("click.tagging_blur");
- $(this).addClass("tooltip");
- }
- };
- check_click(tag_area, $(e.target));
- };
- // TODO: we should attach the click handler to all frames in order to capture
- // clicks outside the frame that this element is in.
- //window.parent.document.onclick = handle_document_click;
- //var temp = $(window.parent.document.body).contents().find("iframe").html();
- //alert(temp);
- //$(document).parent().click(handle_document_click);
- $(window).bind("click.tagging_blur", handle_document_click);
-
- return false;
- });
- }
-
- // If using toggle link, hide the tag area. Otherwise, show the tag area.
- if (settings.use_toggle_link) {
- tag_area.hide();
- }
-
- //
- // Helper functions.
- //
-
- //
- // Collapse tag name + value into a single string.
- //
- function build_tag_str(tag_name, tag_value) {
- return tag_name + ( tag_value ? ":" + tag_value : "");
- }
-
-
- // Initialize a "delete tag image": when click, delete tag from UI and send delete request to server.
- function init_delete_tag_image(delete_img) {
- $(delete_img).mouseenter( function () {
- $(this).attr("src", settings.delete_tag_img_rollover);
- });
- $(delete_img).mouseleave( function () {
- $(this).attr("src", settings.delete_tag_img);
- });
- $(delete_img).click( function () {
- // Tag button is image's parent.
- var tag_button = $(this).parent();
-
- // Get tag name, value.
- var tag_name_elt = tag_button.find(".tag-name").eq(0);
- var tag_str = tag_name_elt.text();
- var tag_name_and_value = tag_str.split(":");
- var tag_name = tag_name_and_value[0];
- var tag_value = tag_name_and_value[1];
-
- var prev_button = tag_button.prev();
- tag_button.remove();
-
- // Remove tag from local list for consistency.
- delete settings.tags[tag_name];
-
- // Update toggle link text.
- var new_text = settings.get_toggle_link_text_fn(settings.tags);
- toggle_link.text(new_text);
-
- // Delete tag.
- $.ajax({
- url: settings.ajax_delete_tag_url,
- data: { tag_name: tag_name },
- error: function() {
- // Failed. Roll back changes and show alert.
- settings.tags[tag_name] = tag_value;
- if (prev_button.hasClass("tag-button")) {
- prev_button.after(tag_button);
- } else {
- tag_area.prepend(tag_button);
- }
- alert( "Remove tag failed" );
-
- toggle_link.text(settings.get_toggle_link_text_fn(settings.tags));
-
- // TODO: no idea why it's necessary to set this up again.
- delete_img.mouseenter( function () {
- $(this).attr("src", settings.delete_tag_img_rollover);
- });
- delete_img.mouseleave( function () {
- $(this).attr("src", settings.delete_tag_img);
- });
- },
- success: function() {}
- });
-
- return true;
- });
- }
-
- //
- // Function that builds a tag button.
- //
- function build_tag_button(tag_str) {
- // Build "delete tag" image.
- var delete_img = $("<img/>").attr("src", settings.delete_tag_img).addClass("delete-tag-img");
- init_delete_tag_image(delete_img);
-
- // Build tag button.
- var tag_name_elt = $("<span>").text(tag_str).addClass("tag-name");
- tag_name_elt.click( function() {
- var tag_name_and_value = tag_str.split(":");
- settings.tag_click_fn(tag_name_and_value[0], tag_name_and_value[1]);
- return true;
- });
-
- var tag_button = $("<span></span>").addClass("tag-button");
- tag_button.append(tag_name_elt);
- // Allow delete only if element is editable.
- if (settings.editable) {
- tag_button.append(delete_img);
- }
-
- return tag_button;
- }
-
-};
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 static/scripts/galaxy.autocom_tagging.js
--- /dev/null
+++ b/static/scripts/galaxy.autocom_tagging.js
@@ -0,0 +1,374 @@
+/**
+* JQuery extension for tagging with autocomplete.
+* @author: Jeremy Goecks
+* @require: jquery.autocomplete plugin
+*/
+//
+// Initialize "tag click functions" for tags.
+//
+function init_tag_click_function(tag_elt, click_func) {
+ $(tag_elt).find('.tag-name').each( function() {
+ $(this).click( function() {
+ var tag_str = $(this).text();
+ var tag_name_and_value = tag_str.split(":");
+ click_func(tag_name_and_value[0], tag_name_and_value[1]);
+ return true;
+ });
+ });
+}
+
+jQuery.fn.autocomplete_tagging = function(options) {
+
+ var defaults = {
+ get_toggle_link_text_fn: function(tags) {
+ var text = "";
+ var num_tags = obj_length(tags);
+ if (num_tags > 0) {
+ text = num_tags + (num_tags > 1 ? " Tags" : " Tag");
+ } else {
+ text = "Add tags";
+ }
+ return text;
+ },
+ tag_click_fn : function (name, value) {},
+ editable: true,
+ input_size: 20,
+ in_form: false,
+ tags : {},
+ use_toggle_link: true,
+ item_id: "",
+ add_tag_img: "",
+ add_tag_img_rollover: "",
+ delete_tag_img: "",
+ ajax_autocomplete_tag_url: "",
+ ajax_retag_url: "",
+ ajax_delete_tag_url: "",
+ ajax_add_tag_url: ""
+ };
+
+ var settings = jQuery.extend(defaults, options);
+
+ //
+ // Initalize object's elements.
+ //
+
+ // Get elements for this object. For this_obj, assume the last element with the id is the "this"; this is somewhat of a hack to address the problem
+ // that there may be two tagging elements for a single item if there are both community and individual tags for an element.
+ var this_obj = $(this);
+ var tag_area = this_obj.find('.tag-area');
+ var toggle_link = this_obj.find('.toggle-link');
+ var tag_input_field = this_obj.find('.tag-input');
+ var add_tag_button = this_obj.find('.add-tag-button');
+
+ // Initialize toggle link.
+ toggle_link.click( function() {
+ // Take special actions depending on whether toggle is showing or hiding link.
+ var after_toggle_fn;
+ if (tag_area.is(":hidden")) {
+ after_toggle_fn = function() {
+ // If there are no tags, go right to editing mode by generating a click on the area.
+ var num_tags = $(this).find('.tag-button').length;
+ if (num_tags === 0) {
+ tag_area.click();
+ }
+ };
+ } else {
+ after_toggle_fn = function() {
+ tag_area.blur();
+ };
+ }
+ tag_area.slideToggle("fast", after_toggle_fn);
+ return $(this);
+ });
+
+ // Initialize tag input field.
+ if (settings.editable) {
+ tag_input_field.hide();
+ }
+ tag_input_field.keyup( function(e) {
+ if ( e.keyCode === 27 ) {
+ // Escape key
+ $(this).trigger( "blur" );
+ } else if (
+ ( e.keyCode === 13 ) || // Return Key
+ ( e.keyCode === 188 ) || // Comma
+ ( e.keyCode === 32 ) // Space
+ ) {
+ //
+ // Check input.
+ //
+
+ var new_value = this.value;
+
+ // Do nothing if return key was used to autocomplete.
+ if (return_key_pressed_for_autocomplete === true) {
+ return_key_pressed_for_autocomplete = false;
+ return false;
+ }
+
+ // Suppress space after a ":"
+ if ( new_value.indexOf(": ", new_value.length - 2) !== -1) {
+ this.value = new_value.substring(0, new_value.length-1);
+ return false;
+ }
+
+ // Remove trigger keys from input.
+ if ( (e.keyCode === 188) || (e.keyCode === 32) ) {
+ new_value = new_value.substring( 0 , new_value.length - 1 );
+ }
+
+ // Trim whitespace.
+ new_value = $.trim(new_value);
+
+ // Too short?
+ if (new_value.length < 2) {
+ return false;
+ }
+
+ //
+ // New tag OK - apply it.
+ //
+
+ this.value = ""; // Reset text field now that tag is being added
+
+ // Add button for tag after all other tag buttons.
+ var new_tag_button = build_tag_button(new_value);
+ var tag_buttons = tag_area.children(".tag-button");
+ if (tag_buttons.length !== 0) {
+ var last_tag_button = tag_buttons.slice(tag_buttons.length-1);
+ last_tag_button.after(new_tag_button);
+ } else {
+ tag_area.prepend(new_tag_button);
+ }
+
+ // Add tag to internal list.
+ var tag_name_and_value = new_value.split(":");
+ settings.tags[tag_name_and_value[0]] = tag_name_and_value[1];
+
+ // Update toggle link text.
+ var new_text = settings.get_toggle_link_text_fn(settings.tags);
+ toggle_link.text(new_text);
+
+ // Commit tag to server.
+ var zz = $(this);
+ $.ajax({
+ url: settings.ajax_add_tag_url,
+ data: { new_tag: new_value },
+ error: function() {
+ // Failed. Roll back changes and show alert.
+ new_tag_button.remove();
+ delete settings.tags[tag_name_and_value[0]];
+ var new_text = settings.get_toggle_link_text_fn(settings.tags);
+ toggle_link.text(new_text);
+ alert( "Add tag failed" );
+ },
+ success: function() {
+ // Flush autocomplete cache because it's not out of date.
+ // TODO: in the future, we could remove the particular item
+ // that was chosen from the cache rather than flush it.
+ zz.flushCache();
+ }
+ });
+
+ return false;
+ }
+ });
+
+ // Add autocomplete to input.
+ var format_item_func = function(key, row_position, num_rows, value, search_term) {
+ var tag_name_and_value = value.split(":");
+ return (tag_name_and_value.length === 1 ? tag_name_and_value[0] : tag_name_and_value[1]);
+ };
+ var autocomplete_options = { selectFirst: false, formatItem: format_item_func,
+ autoFill: false, highlight: false };
+ tag_input_field.autocomplete(settings.ajax_autocomplete_tag_url, autocomplete_options);
+
+
+ // Initialize delete tag images for current tags.
+ this_obj.find('.delete-tag-img').each(function() {
+ init_delete_tag_image( $(this) );
+ });
+
+
+ // Initialize tag click function.
+ init_tag_click_function($(this), settings.tag_click_fn);
+
+ // Initialize "add tag" button.
+ add_tag_button.click( function() {
+ $(this).hide();
+
+ // Clicking on button is the same as clicking on the tag area.
+ tag_area.click();
+ return false;
+ });
+
+ //
+ // Set up tag area interactions; these are needed only if tags are editable.
+ //
+ if (settings.editable) {
+ // When the tag area blurs, go to "view tag" mode.
+ tag_area.bind("blur", function(e) {
+ if (obj_length(settings.tags) > 0) {
+ add_tag_button.show();
+ tag_input_field.hide();
+ tag_area.removeClass("active-tag-area");
+ tag_area.addClass("tooltip");
+ } else {
+ // No tags, so do nothing to ensure that input is still visible.
+ }
+ });
+
+ // On click, enable user to add tags.
+ tag_area.click( function(e) {
+ var is_active = $(this).hasClass("active-tag-area");
+
+ // If a "delete image" object was pressed and area is inactive, do nothing.
+ if ($(e.target).hasClass("delete-tag-img") && !is_active) {
+ return false;
+ }
+
+ // If a "tag name" object was pressed and area is inactive, do nothing.
+ if ($(e.target).hasClass("tag-name") && !is_active) {
+ return false;
+ }
+
+ // Remove tooltip.
+ $(this).removeClass("tooltip");
+
+ // Hide add tag button, show tag_input field. Change background to show
+ // area is active.
+ $(this).addClass("active-tag-area");
+ add_tag_button.hide();
+ tag_input_field.show();
+ tag_input_field.focus();
+
+ // Add handler to document that will call blur when the tag area is blurred;
+ // a tag area is blurred when a user clicks on an element outside the area.
+ var handle_document_click = function(e) {
+ var check_click = function(tag_area, target) {
+ var tag_area_id = tag_area.attr("id");
+ // Blur the tag area if the element clicked on is not in the tag area.
+ if (target !== tag_area) {
+ tag_area.blur();
+ $(window).unbind("click.tagging_blur");
+ $(this).addClass("tooltip");
+ }
+ };
+ check_click(tag_area, $(e.target));
+ };
+ // TODO: we should attach the click handler to all frames in order to capture
+ // clicks outside the frame that this element is in.
+ //window.parent.document.onclick = handle_document_click;
+ //var temp = $(window.parent.document.body).contents().find("iframe").html();
+ //alert(temp);
+ //$(document).parent().click(handle_document_click);
+ $(window).bind("click.tagging_blur", handle_document_click);
+
+ return false;
+ });
+ }
+
+ // If using toggle link, hide the tag area. Otherwise, show the tag area.
+ if (settings.use_toggle_link) {
+ tag_area.hide();
+ }
+
+ //
+ // Helper functions.
+ //
+
+ //
+ // Collapse tag name + value into a single string.
+ //
+ function build_tag_str(tag_name, tag_value) {
+ return tag_name + ( tag_value ? ":" + tag_value : "");
+ }
+
+
+ // Initialize a "delete tag image": when click, delete tag from UI and send delete request to server.
+ function init_delete_tag_image(delete_img) {
+ $(delete_img).mouseenter( function () {
+ $(this).attr("src", settings.delete_tag_img_rollover);
+ });
+ $(delete_img).mouseleave( function () {
+ $(this).attr("src", settings.delete_tag_img);
+ });
+ $(delete_img).click( function () {
+ // Tag button is image's parent.
+ var tag_button = $(this).parent();
+
+ // Get tag name, value.
+ var tag_name_elt = tag_button.find(".tag-name").eq(0);
+ var tag_str = tag_name_elt.text();
+ var tag_name_and_value = tag_str.split(":");
+ var tag_name = tag_name_and_value[0];
+ var tag_value = tag_name_and_value[1];
+
+ var prev_button = tag_button.prev();
+ tag_button.remove();
+
+ // Remove tag from local list for consistency.
+ delete settings.tags[tag_name];
+
+ // Update toggle link text.
+ var new_text = settings.get_toggle_link_text_fn(settings.tags);
+ toggle_link.text(new_text);
+
+ // Delete tag.
+ $.ajax({
+ url: settings.ajax_delete_tag_url,
+ data: { tag_name: tag_name },
+ error: function() {
+ // Failed. Roll back changes and show alert.
+ settings.tags[tag_name] = tag_value;
+ if (prev_button.hasClass("tag-button")) {
+ prev_button.after(tag_button);
+ } else {
+ tag_area.prepend(tag_button);
+ }
+ alert( "Remove tag failed" );
+
+ toggle_link.text(settings.get_toggle_link_text_fn(settings.tags));
+
+ // TODO: no idea why it's necessary to set this up again.
+ delete_img.mouseenter( function () {
+ $(this).attr("src", settings.delete_tag_img_rollover);
+ });
+ delete_img.mouseleave( function () {
+ $(this).attr("src", settings.delete_tag_img);
+ });
+ },
+ success: function() {}
+ });
+
+ return true;
+ });
+ }
+
+ //
+ // Function that builds a tag button.
+ //
+ function build_tag_button(tag_str) {
+ // Build "delete tag" image.
+ var delete_img = $("<img/>").attr("src", settings.delete_tag_img).addClass("delete-tag-img");
+ init_delete_tag_image(delete_img);
+
+ // Build tag button.
+ var tag_name_elt = $("<span>").text(tag_str).addClass("tag-name");
+ tag_name_elt.click( function() {
+ var tag_name_and_value = tag_str.split(":");
+ settings.tag_click_fn(tag_name_and_value[0], tag_name_and_value[1]);
+ return true;
+ });
+
+ var tag_button = $("<span></span>").addClass("tag-button");
+ tag_button.append(tag_name_elt);
+ // Allow delete only if element is editable.
+ if (settings.editable) {
+ tag_button.append(delete_img);
+ }
+
+ return tag_button;
+ }
+
+};
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 static/scripts/libs/jquery/jquery.ui.core.js
--- /dev/null
+++ b/static/scripts/libs/jquery/jquery.ui.core.js
@@ -0,0 +1,519 @@
+/*
+ * jQuery UI 1.7.1
+ *
+ * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://docs.jquery.com/UI
+ */
+;jQuery.ui || (function($) {
+
+var _remove = $.fn.remove,
+ isFF2 = $.browser.mozilla && (parseFloat($.browser.version) < 1.9);
+
+//Helper functions and ui object
+$.ui = {
+ version: "1.7.1",
+
+ // $.ui.plugin is deprecated. Use the proxy pattern instead.
+ plugin: {
+ add: function(module, option, set) {
+ var proto = $.ui[module].prototype;
+ for(var i in set) {
+ proto.plugins[i] = proto.plugins[i] || [];
+ proto.plugins[i].push([option, set[i]]);
+ }
+ },
+ call: function(instance, name, args) {
+ var set = instance.plugins[name];
+ if(!set || !instance.element[0].parentNode) { return; }
+
+ for (var i = 0; i < set.length; i++) {
+ if (instance.options[set[i][0]]) {
+ set[i][1].apply(instance.element, args);
+ }
+ }
+ }
+ },
+
+ contains: function(a, b) {
+ return document.compareDocumentPosition
+ ? a.compareDocumentPosition(b) & 16
+ : a !== b && a.contains(b);
+ },
+
+ 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;
+ },
+
+ isOverAxis: function(x, reference, size) {
+ //Determines when x coordinate is over "b" element axis
+ return (x > reference) && (x < (reference + size));
+ },
+
+ isOver: function(y, x, top, left, height, width) {
+ //Determines when x, y coordinates is over "b" element
+ return $.ui.isOverAxis(y, top, height) && $.ui.isOverAxis(x, left, width);
+ },
+
+ keyCode: {
+ BACKSPACE: 8,
+ CAPS_LOCK: 20,
+ COMMA: 188,
+ CONTROL: 17,
+ DELETE: 46,
+ DOWN: 40,
+ END: 35,
+ ENTER: 13,
+ ESCAPE: 27,
+ HOME: 36,
+ INSERT: 45,
+ 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,
+ SHIFT: 16,
+ SPACE: 32,
+ TAB: 9,
+ UP: 38
+ }
+};
+
+// WAI-ARIA normalization
+if (isFF2) {
+ var attr = $.attr,
+ removeAttr = $.fn.removeAttr,
+ ariaNS = "http://www.w3.org/2005/07/aaa",
+ ariaState = /^aria-/,
+ ariaRole = /^wairole:/;
+
+ $.attr = function(elem, name, value) {
+ var set = value !== undefined;
+
+ return (name == 'role'
+ ? (set
+ ? attr.call(this, elem, name, "wairole:" + value)
+ : (attr.apply(this, arguments) || "").replace(ariaRole, ""))
+ : (ariaState.test(name)
+ ? (set
+ ? elem.setAttributeNS(ariaNS,
+ name.replace(ariaState, "aaa:"), value)
+ : attr.call(this, elem, name.replace(ariaState, "aaa:")))
+ : attr.apply(this, arguments)));
+ };
+
+ $.fn.removeAttr = function(name) {
+ return (ariaState.test(name)
+ ? this.each(function() {
+ this.removeAttributeNS(ariaNS, name.replace(ariaState, ""));
+ }) : removeAttr.call(this, name));
+ };
+}
+
+//jQuery plugins
+$.fn.extend({
+ remove: function() {
+ // Safari has a native remove event which actually removes DOM elements,
+ // so we have to use triggerHandler instead of trigger (#3037).
+ $("*", this).add(this).each(function() {
+ $(this).triggerHandler("remove");
+ });
+ return _remove.apply(this, arguments );
+ },
+
+ enableSelection: function() {
+ return this
+ .attr('unselectable', 'off')
+ .css('MozUserSelect', '')
+ .unbind('selectstart.ui');
+ },
+
+ disableSelection: function() {
+ return this
+ .attr('unselectable', 'on')
+ .css('MozUserSelect', 'none')
+ .bind('selectstart.ui', function() { return false; });
+ },
+
+ scrollParent: function() {
+ var scrollParent;
+ if(($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
+ scrollParent = this.parents().filter(function() {
+ return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
+ }).eq(0);
+ } else {
+ scrollParent = this.parents().filter(function() {
+ return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
+ }).eq(0);
+ }
+
+ return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
+ }
+});
+
+
+//Additional selectors
+$.extend($.expr[':'], {
+ data: function(elem, i, match) {
+ return !!$.data(elem, match[3]);
+ },
+
+ focusable: function(element) {
+ var nodeName = element.nodeName.toLowerCase(),
+ tabIndex = $.attr(element, 'tabindex');
+ return (/input|select|textarea|button|object/.test(nodeName)
+ ? !element.disabled
+ : 'a' == nodeName || 'area' == nodeName
+ ? element.href || !isNaN(tabIndex)
+ : !isNaN(tabIndex))
+ // the element and all of its ancestors must be visible
+ // the browser may report that the area is hidden
+ && !$(element)['area' == nodeName ? 'parents' : 'closest'](':hidden').length;
+ },
+
+ tabbable: function(element) {
+ var tabIndex = $.attr(element, 'tabindex');
+ return (isNaN(tabIndex) || tabIndex >= 0) && $(element).is(':focusable');
+ }
+});
+
+
+// $.widget is a factory to create jQuery plugins
+// taking some boilerplate code out of the plugin code
+function getter(namespace, plugin, method, args) {
+ function getMethods(type) {
+ var methods = $[namespace][plugin][type] || [];
+ return (typeof methods == 'string' ? methods.split(/,?\s+/) : methods);
+ }
+
+ var methods = getMethods('getter');
+ if (args.length == 1 && typeof args[0] == 'string') {
+ methods = methods.concat(getMethods('getterSetter'));
+ }
+ return ($.inArray(method, methods) != -1);
+}
+
+$.widget = function(name, prototype) {
+ var namespace = name.split(".")[0];
+ name = name.split(".")[1];
+
+ // create plugin method
+ $.fn[name] = function(options) {
+ var isMethodCall = (typeof options == 'string'),
+ args = Array.prototype.slice.call(arguments, 1);
+
+ // prevent calls to internal methods
+ if (isMethodCall && options.substring(0, 1) == '_') {
+ return this;
+ }
+
+ // handle getter methods
+ if (isMethodCall && getter(namespace, name, options, args)) {
+ var instance = $.data(this[0], name);
+ return (instance ? instance[options].apply(instance, args)
+ : undefined);
+ }
+
+ // handle initialization and non-getter methods
+ return this.each(function() {
+ var instance = $.data(this, name);
+
+ // constructor
+ (!instance && !isMethodCall &&
+ $.data(this, name, new $[namespace][name](this, options))._init());
+
+ // method call
+ (instance && isMethodCall && $.isFunction(instance[options]) &&
+ instance[options].apply(instance, args));
+ });
+ };
+
+ // create widget constructor
+ $[namespace] = $[namespace] || {};
+ $[namespace][name] = function(element, options) {
+ var self = this;
+
+ this.namespace = namespace;
+ this.widgetName = name;
+ this.widgetEventPrefix = $[namespace][name].eventPrefix || name;
+ this.widgetBaseClass = namespace + '-' + name;
+
+ this.options = $.extend({},
+ $.widget.defaults,
+ $[namespace][name].defaults,
+ $.metadata && $.metadata.get(element)[name],
+ options);
+
+ this.element = $(element)
+ .bind('setData.' + name, function(event, key, value) {
+ if (event.target == element) {
+ return self._setData(key, value);
+ }
+ })
+ .bind('getData.' + name, function(event, key) {
+ if (event.target == element) {
+ return self._getData(key);
+ }
+ })
+ .bind('remove', function() {
+ return self.destroy();
+ });
+ };
+
+ // add widget prototype
+ $[namespace][name].prototype = $.extend({}, $.widget.prototype, prototype);
+
+ // TODO: merge getter and getterSetter properties from widget prototype
+ // and plugin prototype
+ $[namespace][name].getterSetter = 'option';
+};
+
+$.widget.prototype = {
+ _init: function() {},
+ destroy: function() {
+ this.element.removeData(this.widgetName)
+ .removeClass(this.widgetBaseClass + '-disabled' + ' ' + this.namespace + '-state-disabled')
+ .removeAttr('aria-disabled');
+ },
+
+ option: function(key, value) {
+ var options = key,
+ self = this;
+
+ if (typeof key == "string") {
+ if (value === undefined) {
+ return this._getData(key);
+ }
+ options = {};
+ options[key] = value;
+ }
+
+ $.each(options, function(key, value) {
+ self._setData(key, value);
+ });
+ },
+ _getData: function(key) {
+ return this.options[key];
+ },
+ _setData: function(key, value) {
+ this.options[key] = value;
+
+ if (key == 'disabled') {
+ this.element
+ [value ? 'addClass' : 'removeClass'](
+ this.widgetBaseClass + '-disabled' + ' ' +
+ this.namespace + '-state-disabled')
+ .attr("aria-disabled", value);
+ }
+ },
+
+ enable: function() {
+ this._setData('disabled', false);
+ },
+ disable: function() {
+ this._setData('disabled', true);
+ },
+
+ _trigger: function(type, event, data) {
+ var callback = this.options[type],
+ eventName = (type == this.widgetEventPrefix
+ ? type : this.widgetEventPrefix + type);
+
+ event = $.Event(event);
+ event.type = eventName;
+
+ // copy original event properties over to the new event
+ // this would happen if we could call $.event.fix instead of $.Event
+ // but we don't have a way to force an event to be fixed multiple times
+ if (event.originalEvent) {
+ for (var i = $.event.props.length, prop; i;) {
+ prop = $.event.props[--i];
+ event[prop] = event.originalEvent[prop];
+ }
+ }
+
+ this.element.trigger(event, data);
+
+ return !($.isFunction(callback) && callback.call(this.element[0], event, data) === false
+ || event.isDefaultPrevented());
+ }
+};
+
+$.widget.defaults = {
+ disabled: false
+};
+
+
+/** Mouse Interaction Plugin **/
+
+$.ui.mouse = {
+ _mouseInit: function() {
+ var self = this;
+
+ this.element
+ .bind('mousedown.'+this.widgetName, function(event) {
+ return self._mouseDown(event);
+ })
+ .bind('click.'+this.widgetName, function(event) {
+ if(self._preventClickEvent) {
+ self._preventClickEvent = false;
+ event.stopImmediatePropagation();
+ return false;
+ }
+ });
+
+ // Prevent text selection in IE
+ if ($.browser.msie) {
+ this._mouseUnselectable = this.element.attr('unselectable');
+ this.element.attr('unselectable', 'on');
+ }
+
+ this.started = false;
+ },
+
+ // TODO: make sure destroying one instance of mouse doesn't mess with
+ // other instances of mouse
+ _mouseDestroy: function() {
+ this.element.unbind('.'+this.widgetName);
+
+ // Restore text selection in IE
+ ($.browser.msie
+ && this.element.attr('unselectable', this._mouseUnselectable));
+ },
+
+ _mouseDown: function(event) {
+ // don't let more than one widget handle mouseStart
+ // TODO: figure out why we have to use originalEvent
+ event.originalEvent = event.originalEvent || {};
+ if (event.originalEvent.mouseHandled) { return; }
+
+ // we may have missed mouseup (out of window)
+ (this._mouseStarted && this._mouseUp(event));
+
+ this._mouseDownEvent = event;
+
+ var self = this,
+ btnIsLeft = (event.which == 1),
+ elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
+ if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
+ return true;
+ }
+
+ this.mouseDelayMet = !this.options.delay;
+ if (!this.mouseDelayMet) {
+ this._mouseDelayTimer = setTimeout(function() {
+ self.mouseDelayMet = true;
+ }, this.options.delay);
+ }
+
+ if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
+ this._mouseStarted = (this._mouseStart(event) !== false);
+ if (!this._mouseStarted) {
+ event.preventDefault();
+ return true;
+ }
+ }
+
+ // these delegates are required to keep context
+ this._mouseMoveDelegate = function(event) {
+ return self._mouseMove(event);
+ };
+ this._mouseUpDelegate = function(event) {
+ return self._mouseUp(event);
+ };
+ $(document)
+ .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
+ .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
+
+ // preventDefault() is used to prevent the selection of text here -
+ // however, in Safari, this causes select boxes not to be selectable
+ // anymore, so this fix is needed
+ ($.browser.safari || event.preventDefault());
+
+ event.originalEvent.mouseHandled = true;
+ return true;
+ },
+
+ _mouseMove: function(event) {
+ // IE mouseup check - mouseup happened when mouse was out of window
+ if ($.browser.msie && !event.button) {
+ return this._mouseUp(event);
+ }
+
+ if (this._mouseStarted) {
+ this._mouseDrag(event);
+ return event.preventDefault();
+ }
+
+ if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
+ this._mouseStarted =
+ (this._mouseStart(this._mouseDownEvent, event) !== false);
+ (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
+ }
+
+ return !this._mouseStarted;
+ },
+
+ _mouseUp: function(event) {
+ $(document)
+ .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
+ .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
+
+ if (this._mouseStarted) {
+ this._mouseStarted = false;
+ this._preventClickEvent = (event.target == this._mouseDownEvent.target);
+ this._mouseStop(event);
+ }
+
+ return false;
+ },
+
+ _mouseDistanceMet: function(event) {
+ return (Math.max(
+ Math.abs(this._mouseDownEvent.pageX - event.pageX),
+ Math.abs(this._mouseDownEvent.pageY - event.pageY)
+ ) >= this.options.distance
+ );
+ },
+
+ _mouseDelayMet: function(event) {
+ return this.mouseDelayMet;
+ },
+
+ // These are placeholder methods, to be overriden by extending plugin
+ _mouseStart: function(event) {},
+ _mouseDrag: function(event) {},
+ _mouseStop: function(event) {},
+ _mouseCapture: function(event) { return true; }
+};
+
+$.ui.mouse.defaults = {
+ cancel: null,
+ distance: 1,
+ delay: 0
+};
+
+})(jQuery);
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 static/scripts/packed/autocomplete_tagging.js
--- a/static/scripts/packed/autocomplete_tagging.js
+++ /dev/null
@@ -1,1 +0,0 @@
-function init_tag_click_function(b,a){$(b).find(".tag-name").each(function(){$(this).click(function(){var d=$(this).text();var c=d.split(":");a(c[0],c[1]);return true})})}jQuery.fn.autocomplete_tagging=function(m){var f={get_toggle_link_text_fn:function(n){var p="";var o=obj_length(n);if(o>0){p=o+(o>1?" Tags":" Tag")}else{p="Add tags"}return p},tag_click_fn:function(n,o){},editable:true,input_size:20,in_form:false,tags:{},use_toggle_link:true,item_id:"",add_tag_img:"",add_tag_img_rollover:"",delete_tag_img:"",ajax_autocomplete_tag_url:"",ajax_retag_url:"",ajax_delete_tag_url:"",ajax_add_tag_url:""};var d=jQuery.extend(f,m);var g=$(this);var b=g.find(".tag-area");var e=g.find(".toggle-link");var a=g.find(".tag-input");var l=g.find(".add-tag-button");e.click(function(){var n;if(b.is(":hidden")){n=function(){var o=$(this).find(".tag-button").length;if(o===0){b.click()}}}else{n=function(){b.blur()}}b.slideToggle("fast",n);return $(this)});if(d.editable){a.hide()}a.keyup(function(t){if(t.keyCode===27){$(this).trigger("blur")}else{if((t.keyCode===13)||(t.keyCode===188)||(t.keyCode===32)){var s=this.value;if(return_key_pressed_for_autocomplete===true){return_key_pressed_for_autocomplete=false;return false}if(s.indexOf(": ",s.length-2)!==-1){this.value=s.substring(0,s.length-1);return false}if((t.keyCode===188)||(t.keyCode===32)){s=s.substring(0,s.length-1)}s=$.trim(s);if(s.length<2){return false}this.value="";var q=j(s);var p=b.children(".tag-button");if(p.length!==0){var u=p.slice(p.length-1);u.after(q)}else{b.prepend(q)}var o=s.split(":");d.tags[o[0]]=o[1];var r=d.get_toggle_link_text_fn(d.tags);e.text(r);var n=$(this);$.ajax({url:d.ajax_add_tag_url,data:{new_tag:s},error:function(){q.remove();delete d.tags[o[0]];var v=d.get_toggle_link_text_fn(d.tags);e.text(v);alert("Add tag failed")},success:function(){n.flushCache()}});return false}}});var i=function(q,p,o,s,r){var n=s.split(":");return(n.length===1?n[0]:n[1])};var h={selectFirst:false,formatItem:i,autoFill:false,highlight:false};a.autocomplete(d.ajax_autocomplete_tag_url,h);g.find(".delete-tag-img").each(function(){c($(this))});init_tag_click_function($(this),d.tag_click_fn);l.click(function(){$(this).hide();b.click();return false});if(d.editable){b.bind("blur",function(n){if(obj_length(d.tags)>0){l.show();a.hide();b.removeClass("active-tag-area");b.addClass("tooltip")}else{}});b.click(function(p){var o=$(this).hasClass("active-tag-area");if($(p.target).hasClass("delete-tag-img")&&!o){return false}if($(p.target).hasClass("tag-name")&&!o){return false}$(this).removeClass("tooltip");$(this).addClass("active-tag-area");l.hide();a.show();a.focus();var n=function(r){var q=function(s,u){var t=s.attr("id");if(u!==s){s.blur();$(window).unbind("click.tagging_blur");$(this).addClass("tooltip")}};q(b,$(r.target))};$(window).bind("click.tagging_blur",n);return false})}if(d.use_toggle_link){b.hide()}function k(o,n){return o+(n?":"+n:"")}function c(n){$(n).mouseenter(function(){$(this).attr("src",d.delete_tag_img_rollover)});$(n).mouseleave(function(){$(this).attr("src",d.delete_tag_img)});$(n).click(function(){var t=$(this).parent();var s=t.find(".tag-name").eq(0);var r=s.text();var p=r.split(":");var v=p[0];var o=p[1];var u=t.prev();t.remove();delete d.tags[v];var q=d.get_toggle_link_text_fn(d.tags);e.text(q);$.ajax({url:d.ajax_delete_tag_url,data:{tag_name:v},error:function(){d.tags[v]=o;if(u.hasClass("tag-button")){u.after(t)}else{b.prepend(t)}alert("Remove tag failed");e.text(d.get_toggle_link_text_fn(d.tags));n.mouseenter(function(){$(this).attr("src",d.delete_tag_img_rollover)});n.mouseleave(function(){$(this).attr("src",d.delete_tag_img)})},success:function(){}});return true})}function j(n){var o=$("<img/>").attr("src",d.delete_tag_img).addClass("delete-tag-img");c(o);var p=$("<span>").text(n).addClass("tag-name");p.click(function(){var r=n.split(":");d.tag_click_fn(r[0],r[1]);return true});var q=$("<span></span>").addClass("tag-button");q.append(p);if(d.editable){q.append(o)}return q}};
\ No newline at end of file
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 static/scripts/packed/galaxy.autocom_tagging.js
--- /dev/null
+++ b/static/scripts/packed/galaxy.autocom_tagging.js
@@ -0,0 +1,1 @@
+function init_tag_click_function(b,a){$(b).find(".tag-name").each(function(){$(this).click(function(){var d=$(this).text();var c=d.split(":");a(c[0],c[1]);return true})})}jQuery.fn.autocomplete_tagging=function(m){var f={get_toggle_link_text_fn:function(n){var p="";var o=obj_length(n);if(o>0){p=o+(o>1?" Tags":" Tag")}else{p="Add tags"}return p},tag_click_fn:function(n,o){},editable:true,input_size:20,in_form:false,tags:{},use_toggle_link:true,item_id:"",add_tag_img:"",add_tag_img_rollover:"",delete_tag_img:"",ajax_autocomplete_tag_url:"",ajax_retag_url:"",ajax_delete_tag_url:"",ajax_add_tag_url:""};var d=jQuery.extend(f,m);var g=$(this);var b=g.find(".tag-area");var e=g.find(".toggle-link");var a=g.find(".tag-input");var l=g.find(".add-tag-button");e.click(function(){var n;if(b.is(":hidden")){n=function(){var o=$(this).find(".tag-button").length;if(o===0){b.click()}}}else{n=function(){b.blur()}}b.slideToggle("fast",n);return $(this)});if(d.editable){a.hide()}a.keyup(function(t){if(t.keyCode===27){$(this).trigger("blur")}else{if((t.keyCode===13)||(t.keyCode===188)||(t.keyCode===32)){var s=this.value;if(return_key_pressed_for_autocomplete===true){return_key_pressed_for_autocomplete=false;return false}if(s.indexOf(": ",s.length-2)!==-1){this.value=s.substring(0,s.length-1);return false}if((t.keyCode===188)||(t.keyCode===32)){s=s.substring(0,s.length-1)}s=$.trim(s);if(s.length<2){return false}this.value="";var q=j(s);var p=b.children(".tag-button");if(p.length!==0){var u=p.slice(p.length-1);u.after(q)}else{b.prepend(q)}var o=s.split(":");d.tags[o[0]]=o[1];var r=d.get_toggle_link_text_fn(d.tags);e.text(r);var n=$(this);$.ajax({url:d.ajax_add_tag_url,data:{new_tag:s},error:function(){q.remove();delete d.tags[o[0]];var v=d.get_toggle_link_text_fn(d.tags);e.text(v);alert("Add tag failed")},success:function(){n.flushCache()}});return false}}});var i=function(q,p,o,s,r){var n=s.split(":");return(n.length===1?n[0]:n[1])};var h={selectFirst:false,formatItem:i,autoFill:false,highlight:false};a.autocomplete(d.ajax_autocomplete_tag_url,h);g.find(".delete-tag-img").each(function(){c($(this))});init_tag_click_function($(this),d.tag_click_fn);l.click(function(){$(this).hide();b.click();return false});if(d.editable){b.bind("blur",function(n){if(obj_length(d.tags)>0){l.show();a.hide();b.removeClass("active-tag-area");b.addClass("tooltip")}else{}});b.click(function(p){var o=$(this).hasClass("active-tag-area");if($(p.target).hasClass("delete-tag-img")&&!o){return false}if($(p.target).hasClass("tag-name")&&!o){return false}$(this).removeClass("tooltip");$(this).addClass("active-tag-area");l.hide();a.show();a.focus();var n=function(r){var q=function(s,u){var t=s.attr("id");if(u!==s){s.blur();$(window).unbind("click.tagging_blur");$(this).addClass("tooltip")}};q(b,$(r.target))};$(window).bind("click.tagging_blur",n);return false})}if(d.use_toggle_link){b.hide()}function k(o,n){return o+(n?":"+n:"")}function c(n){$(n).mouseenter(function(){$(this).attr("src",d.delete_tag_img_rollover)});$(n).mouseleave(function(){$(this).attr("src",d.delete_tag_img)});$(n).click(function(){var t=$(this).parent();var s=t.find(".tag-name").eq(0);var r=s.text();var p=r.split(":");var v=p[0];var o=p[1];var u=t.prev();t.remove();delete d.tags[v];var q=d.get_toggle_link_text_fn(d.tags);e.text(q);$.ajax({url:d.ajax_delete_tag_url,data:{tag_name:v},error:function(){d.tags[v]=o;if(u.hasClass("tag-button")){u.after(t)}else{b.prepend(t)}alert("Remove tag failed");e.text(d.get_toggle_link_text_fn(d.tags));n.mouseenter(function(){$(this).attr("src",d.delete_tag_img_rollover)});n.mouseleave(function(){$(this).attr("src",d.delete_tag_img)})},success:function(){}});return true})}function j(n){var o=$("<img/>").attr("src",d.delete_tag_img).addClass("delete-tag-img");c(o);var p=$("<span>").text(n).addClass("tag-name");p.click(function(){var r=n.split(":");d.tag_click_fn(r[0],r[1]);return true});var q=$("<span></span>").addClass("tag-button");q.append(p);if(d.editable){q.append(o)}return q}};
\ No newline at end of file
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 static/scripts/packed/libs/jquery/jquery.ui.core.js
--- /dev/null
+++ b/static/scripts/packed/libs/jquery/jquery.ui.core.js
@@ -0,0 +1,1 @@
+jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.1",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,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,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);
\ No newline at end of file
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 static/scripts/packed/ui.core.js
--- a/static/scripts/packed/ui.core.js
+++ /dev/null
@@ -1,1 +0,0 @@
-jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.1",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,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,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);
\ No newline at end of file
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 static/scripts/ui.core.js
--- a/static/scripts/ui.core.js
+++ /dev/null
@@ -1,519 +0,0 @@
-/*
- * jQuery UI 1.7.1
- *
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://docs.jquery.com/UI
- */
-;jQuery.ui || (function($) {
-
-var _remove = $.fn.remove,
- isFF2 = $.browser.mozilla && (parseFloat($.browser.version) < 1.9);
-
-//Helper functions and ui object
-$.ui = {
- version: "1.7.1",
-
- // $.ui.plugin is deprecated. Use the proxy pattern instead.
- plugin: {
- add: function(module, option, set) {
- var proto = $.ui[module].prototype;
- for(var i in set) {
- proto.plugins[i] = proto.plugins[i] || [];
- proto.plugins[i].push([option, set[i]]);
- }
- },
- call: function(instance, name, args) {
- var set = instance.plugins[name];
- if(!set || !instance.element[0].parentNode) { return; }
-
- for (var i = 0; i < set.length; i++) {
- if (instance.options[set[i][0]]) {
- set[i][1].apply(instance.element, args);
- }
- }
- }
- },
-
- contains: function(a, b) {
- return document.compareDocumentPosition
- ? a.compareDocumentPosition(b) & 16
- : a !== b && a.contains(b);
- },
-
- 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;
- },
-
- isOverAxis: function(x, reference, size) {
- //Determines when x coordinate is over "b" element axis
- return (x > reference) && (x < (reference + size));
- },
-
- isOver: function(y, x, top, left, height, width) {
- //Determines when x, y coordinates is over "b" element
- return $.ui.isOverAxis(y, top, height) && $.ui.isOverAxis(x, left, width);
- },
-
- keyCode: {
- BACKSPACE: 8,
- CAPS_LOCK: 20,
- COMMA: 188,
- CONTROL: 17,
- DELETE: 46,
- DOWN: 40,
- END: 35,
- ENTER: 13,
- ESCAPE: 27,
- HOME: 36,
- INSERT: 45,
- 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,
- SHIFT: 16,
- SPACE: 32,
- TAB: 9,
- UP: 38
- }
-};
-
-// WAI-ARIA normalization
-if (isFF2) {
- var attr = $.attr,
- removeAttr = $.fn.removeAttr,
- ariaNS = "http://www.w3.org/2005/07/aaa",
- ariaState = /^aria-/,
- ariaRole = /^wairole:/;
-
- $.attr = function(elem, name, value) {
- var set = value !== undefined;
-
- return (name == 'role'
- ? (set
- ? attr.call(this, elem, name, "wairole:" + value)
- : (attr.apply(this, arguments) || "").replace(ariaRole, ""))
- : (ariaState.test(name)
- ? (set
- ? elem.setAttributeNS(ariaNS,
- name.replace(ariaState, "aaa:"), value)
- : attr.call(this, elem, name.replace(ariaState, "aaa:")))
- : attr.apply(this, arguments)));
- };
-
- $.fn.removeAttr = function(name) {
- return (ariaState.test(name)
- ? this.each(function() {
- this.removeAttributeNS(ariaNS, name.replace(ariaState, ""));
- }) : removeAttr.call(this, name));
- };
-}
-
-//jQuery plugins
-$.fn.extend({
- remove: function() {
- // Safari has a native remove event which actually removes DOM elements,
- // so we have to use triggerHandler instead of trigger (#3037).
- $("*", this).add(this).each(function() {
- $(this).triggerHandler("remove");
- });
- return _remove.apply(this, arguments );
- },
-
- enableSelection: function() {
- return this
- .attr('unselectable', 'off')
- .css('MozUserSelect', '')
- .unbind('selectstart.ui');
- },
-
- disableSelection: function() {
- return this
- .attr('unselectable', 'on')
- .css('MozUserSelect', 'none')
- .bind('selectstart.ui', function() { return false; });
- },
-
- scrollParent: function() {
- var scrollParent;
- if(($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
- scrollParent = this.parents().filter(function() {
- return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
- }).eq(0);
- } else {
- scrollParent = this.parents().filter(function() {
- return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
- }).eq(0);
- }
-
- return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
- }
-});
-
-
-//Additional selectors
-$.extend($.expr[':'], {
- data: function(elem, i, match) {
- return !!$.data(elem, match[3]);
- },
-
- focusable: function(element) {
- var nodeName = element.nodeName.toLowerCase(),
- tabIndex = $.attr(element, 'tabindex');
- return (/input|select|textarea|button|object/.test(nodeName)
- ? !element.disabled
- : 'a' == nodeName || 'area' == nodeName
- ? element.href || !isNaN(tabIndex)
- : !isNaN(tabIndex))
- // the element and all of its ancestors must be visible
- // the browser may report that the area is hidden
- && !$(element)['area' == nodeName ? 'parents' : 'closest'](':hidden').length;
- },
-
- tabbable: function(element) {
- var tabIndex = $.attr(element, 'tabindex');
- return (isNaN(tabIndex) || tabIndex >= 0) && $(element).is(':focusable');
- }
-});
-
-
-// $.widget is a factory to create jQuery plugins
-// taking some boilerplate code out of the plugin code
-function getter(namespace, plugin, method, args) {
- function getMethods(type) {
- var methods = $[namespace][plugin][type] || [];
- return (typeof methods == 'string' ? methods.split(/,?\s+/) : methods);
- }
-
- var methods = getMethods('getter');
- if (args.length == 1 && typeof args[0] == 'string') {
- methods = methods.concat(getMethods('getterSetter'));
- }
- return ($.inArray(method, methods) != -1);
-}
-
-$.widget = function(name, prototype) {
- var namespace = name.split(".")[0];
- name = name.split(".")[1];
-
- // create plugin method
- $.fn[name] = function(options) {
- var isMethodCall = (typeof options == 'string'),
- args = Array.prototype.slice.call(arguments, 1);
-
- // prevent calls to internal methods
- if (isMethodCall && options.substring(0, 1) == '_') {
- return this;
- }
-
- // handle getter methods
- if (isMethodCall && getter(namespace, name, options, args)) {
- var instance = $.data(this[0], name);
- return (instance ? instance[options].apply(instance, args)
- : undefined);
- }
-
- // handle initialization and non-getter methods
- return this.each(function() {
- var instance = $.data(this, name);
-
- // constructor
- (!instance && !isMethodCall &&
- $.data(this, name, new $[namespace][name](this, options))._init());
-
- // method call
- (instance && isMethodCall && $.isFunction(instance[options]) &&
- instance[options].apply(instance, args));
- });
- };
-
- // create widget constructor
- $[namespace] = $[namespace] || {};
- $[namespace][name] = function(element, options) {
- var self = this;
-
- this.namespace = namespace;
- this.widgetName = name;
- this.widgetEventPrefix = $[namespace][name].eventPrefix || name;
- this.widgetBaseClass = namespace + '-' + name;
-
- this.options = $.extend({},
- $.widget.defaults,
- $[namespace][name].defaults,
- $.metadata && $.metadata.get(element)[name],
- options);
-
- this.element = $(element)
- .bind('setData.' + name, function(event, key, value) {
- if (event.target == element) {
- return self._setData(key, value);
- }
- })
- .bind('getData.' + name, function(event, key) {
- if (event.target == element) {
- return self._getData(key);
- }
- })
- .bind('remove', function() {
- return self.destroy();
- });
- };
-
- // add widget prototype
- $[namespace][name].prototype = $.extend({}, $.widget.prototype, prototype);
-
- // TODO: merge getter and getterSetter properties from widget prototype
- // and plugin prototype
- $[namespace][name].getterSetter = 'option';
-};
-
-$.widget.prototype = {
- _init: function() {},
- destroy: function() {
- this.element.removeData(this.widgetName)
- .removeClass(this.widgetBaseClass + '-disabled' + ' ' + this.namespace + '-state-disabled')
- .removeAttr('aria-disabled');
- },
-
- option: function(key, value) {
- var options = key,
- self = this;
-
- if (typeof key == "string") {
- if (value === undefined) {
- return this._getData(key);
- }
- options = {};
- options[key] = value;
- }
-
- $.each(options, function(key, value) {
- self._setData(key, value);
- });
- },
- _getData: function(key) {
- return this.options[key];
- },
- _setData: function(key, value) {
- this.options[key] = value;
-
- if (key == 'disabled') {
- this.element
- [value ? 'addClass' : 'removeClass'](
- this.widgetBaseClass + '-disabled' + ' ' +
- this.namespace + '-state-disabled')
- .attr("aria-disabled", value);
- }
- },
-
- enable: function() {
- this._setData('disabled', false);
- },
- disable: function() {
- this._setData('disabled', true);
- },
-
- _trigger: function(type, event, data) {
- var callback = this.options[type],
- eventName = (type == this.widgetEventPrefix
- ? type : this.widgetEventPrefix + type);
-
- event = $.Event(event);
- event.type = eventName;
-
- // copy original event properties over to the new event
- // this would happen if we could call $.event.fix instead of $.Event
- // but we don't have a way to force an event to be fixed multiple times
- if (event.originalEvent) {
- for (var i = $.event.props.length, prop; i;) {
- prop = $.event.props[--i];
- event[prop] = event.originalEvent[prop];
- }
- }
-
- this.element.trigger(event, data);
-
- return !($.isFunction(callback) && callback.call(this.element[0], event, data) === false
- || event.isDefaultPrevented());
- }
-};
-
-$.widget.defaults = {
- disabled: false
-};
-
-
-/** Mouse Interaction Plugin **/
-
-$.ui.mouse = {
- _mouseInit: function() {
- var self = this;
-
- this.element
- .bind('mousedown.'+this.widgetName, function(event) {
- return self._mouseDown(event);
- })
- .bind('click.'+this.widgetName, function(event) {
- if(self._preventClickEvent) {
- self._preventClickEvent = false;
- event.stopImmediatePropagation();
- return false;
- }
- });
-
- // Prevent text selection in IE
- if ($.browser.msie) {
- this._mouseUnselectable = this.element.attr('unselectable');
- this.element.attr('unselectable', 'on');
- }
-
- this.started = false;
- },
-
- // TODO: make sure destroying one instance of mouse doesn't mess with
- // other instances of mouse
- _mouseDestroy: function() {
- this.element.unbind('.'+this.widgetName);
-
- // Restore text selection in IE
- ($.browser.msie
- && this.element.attr('unselectable', this._mouseUnselectable));
- },
-
- _mouseDown: function(event) {
- // don't let more than one widget handle mouseStart
- // TODO: figure out why we have to use originalEvent
- event.originalEvent = event.originalEvent || {};
- if (event.originalEvent.mouseHandled) { return; }
-
- // we may have missed mouseup (out of window)
- (this._mouseStarted && this._mouseUp(event));
-
- this._mouseDownEvent = event;
-
- var self = this,
- btnIsLeft = (event.which == 1),
- elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
- if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
- return true;
- }
-
- this.mouseDelayMet = !this.options.delay;
- if (!this.mouseDelayMet) {
- this._mouseDelayTimer = setTimeout(function() {
- self.mouseDelayMet = true;
- }, this.options.delay);
- }
-
- if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
- this._mouseStarted = (this._mouseStart(event) !== false);
- if (!this._mouseStarted) {
- event.preventDefault();
- return true;
- }
- }
-
- // these delegates are required to keep context
- this._mouseMoveDelegate = function(event) {
- return self._mouseMove(event);
- };
- this._mouseUpDelegate = function(event) {
- return self._mouseUp(event);
- };
- $(document)
- .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
- .bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
- // preventDefault() is used to prevent the selection of text here -
- // however, in Safari, this causes select boxes not to be selectable
- // anymore, so this fix is needed
- ($.browser.safari || event.preventDefault());
-
- event.originalEvent.mouseHandled = true;
- return true;
- },
-
- _mouseMove: function(event) {
- // IE mouseup check - mouseup happened when mouse was out of window
- if ($.browser.msie && !event.button) {
- return this._mouseUp(event);
- }
-
- if (this._mouseStarted) {
- this._mouseDrag(event);
- return event.preventDefault();
- }
-
- if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
- this._mouseStarted =
- (this._mouseStart(this._mouseDownEvent, event) !== false);
- (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
- }
-
- return !this._mouseStarted;
- },
-
- _mouseUp: function(event) {
- $(document)
- .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
- .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
- if (this._mouseStarted) {
- this._mouseStarted = false;
- this._preventClickEvent = (event.target == this._mouseDownEvent.target);
- this._mouseStop(event);
- }
-
- return false;
- },
-
- _mouseDistanceMet: function(event) {
- return (Math.max(
- Math.abs(this._mouseDownEvent.pageX - event.pageX),
- Math.abs(this._mouseDownEvent.pageY - event.pageY)
- ) >= this.options.distance
- );
- },
-
- _mouseDelayMet: function(event) {
- return this.mouseDelayMet;
- },
-
- // These are placeholder methods, to be overriden by extending plugin
- _mouseStart: function(event) {},
- _mouseDrag: function(event) {},
- _mouseStop: function(event) {},
- _mouseCapture: function(event) { return true; }
-};
-
-$.ui.mouse.defaults = {
- cancel: null,
- distance: 1,
- delay: 0
-};
-
-})(jQuery);
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/admin/data_admin/data_form.mako
--- a/templates/admin/data_admin/data_form.mako
+++ b/templates/admin/data_admin/data_form.mako
@@ -27,7 +27,7 @@
</%def><%def name="javascripts()">
${parent.javascripts()}
- ${h.js("libs/jquery/jquery.autocomplete", "autocomplete_tagging" )}
+ ${h.js("libs/jquery/jquery.autocomplete", "galaxy.autocom_tagging" )}
</%def>
##
## Override methods from base.mako and base_panels.mako
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/admin/data_admin/generic_error.mako
--- a/templates/admin/data_admin/generic_error.mako
+++ b/templates/admin/data_admin/generic_error.mako
@@ -27,7 +27,7 @@
</%def><%def name="javascripts()">
${parent.javascripts()}
- ${h.js("libs/jquery/jquery.autocomplete", "autocomplete_tagging" )}
+ ${h.js("libs/jquery/jquery.autocomplete", "galaxy.autocom_tagging" )}
</%def>
##
## Override methods from base.mako and base_panels.mako
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/admin/data_admin/local_data.mako
--- a/templates/admin/data_admin/local_data.mako
+++ b/templates/admin/data_admin/local_data.mako
@@ -27,7 +27,7 @@
</%def><%def name="javascripts()">
${parent.javascripts()}
- ${h.js("libs/jquery/jquery.autocomplete", "autocomplete_tagging" )}
+ ${h.js("libs/jquery/jquery.autocomplete", "galaxy.autocom_tagging" )}
</%def>
##
## Override methods from base.mako and base_panels.mako
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/admin/requests/select_datasets_to_transfer.mako
--- a/templates/admin/requests/select_datasets_to_transfer.mako
+++ b/templates/admin/requests/select_datasets_to_transfer.mako
@@ -8,7 +8,7 @@
${common_javascripts()}
</%def>
-${h.js( "ui.core", "libs/jquery/jquery.cookie", "libs/jquery/jquery.dynatree" )}
+${h.js( "libs/jquery/jquery.ui.core", "libs/jquery/jquery.cookie", "libs/jquery/jquery.dynatree" )}
${h.css( "dynatree_skin/ui.dynatree" )}
<script type="text/javascript">
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/admin/tool_shed_repository/browse_repository.mako
--- a/templates/admin/tool_shed_repository/browse_repository.mako
+++ b/templates/admin/tool_shed_repository/browse_repository.mako
@@ -9,7 +9,7 @@
<%def name="javascripts()">
${parent.javascripts()}
- ${h.js( "ui.core", "libs/jquery/jquery.dynatree" )}
+ ${h.js( "libs/jquery/jquery.ui.core", "libs/jquery/jquery.dynatree" )}
${browse_files(repository.name, repository.repo_files_directory(trans.app))}
</%def>
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/admin/tool_shed_repository/browse_tool_dependency.mako
--- a/templates/admin/tool_shed_repository/browse_tool_dependency.mako
+++ b/templates/admin/tool_shed_repository/browse_tool_dependency.mako
@@ -9,7 +9,7 @@
<%def name="javascripts()">
${parent.javascripts()}
- ${h.js( "ui.core", "libs/jquery/jquery.dynatree" )}
+ ${h.js( "libs/jquery/jquery.ui.core", "libs/jquery/jquery.dynatree" )}
${browse_files(tool_dependency.name, tool_dependency.installation_directory( trans.app ))}
</%def>
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/dataset/edit_attributes.mako
--- a/templates/dataset/edit_attributes.mako
+++ b/templates/dataset/edit_attributes.mako
@@ -11,7 +11,7 @@
<%def name="javascripts()">
${parent.javascripts()}
${message_ns.javascripts()}
- ${h.js( "galaxy.base", "libs/jquery/jquery.autocomplete", "autocomplete_tagging" )}
+ ${h.js( "galaxy.base", "libs/jquery/jquery.autocomplete", "galaxy.autocom_tagging" )}
</%def><%def name="datatype( dataset, datatypes )">
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/display_base.mako
--- a/templates/display_base.mako
+++ b/templates/display_base.mako
@@ -33,7 +33,7 @@
<%def name="javascripts()">
${parent.javascripts()}
${h.js( "libs/jquery/jquery", "libs/bootstrap", "galaxy.base", "libs/json2", "libs/jquery/jstorage", "libs/jquery/jquery.autocomplete", "libs/jquery/jquery.rating",
- "autocomplete_tagging", "viz/trackster", "viz/trackster_ui", "libs/jquery/jquery.event.drag", "libs/jquery/jquery.mousewheel",
+ "galaxy.autocom_tagging", "viz/trackster", "viz/trackster_ui", "libs/jquery/jquery.event.drag", "libs/jquery/jquery.mousewheel",
"libs/jquery/jquery.autocomplete", "libs/jquery/jquery.ui.sortable.slider", "libs/farbtastic", "mvc/data", "viz/visualization" )}
<script type="text/javascript">
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/grid_base.mako
--- a/templates/grid_base.mako
+++ b/templates/grid_base.mako
@@ -52,7 +52,7 @@
</%def><%def name="grid_javascripts()">
- ${h.js("libs/jquery/jquery.autocomplete", "autocomplete_tagging", "libs/jquery/jquery.rating" )}
+ ${h.js("libs/jquery/jquery.autocomplete", "galaxy.autocom_tagging", "libs/jquery/jquery.rating" )}
<script type="text/javascript">
// This is necessary so that, when nested arrays are used in ajax/post/get methods, square brackets ('[]') are
// not appended to the identifier of a nested array.
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/library/common/ldda_edit_info.mako
--- a/templates/library/common/ldda_edit_info.mako
+++ b/templates/library/common/ldda_edit_info.mako
@@ -5,7 +5,7 @@
<%def name="javascripts()">
${parent.javascripts()}
- ${h.js("libs/jquery/jquery.autocomplete", "autocomplete_tagging" )}
+ ${h.js("libs/jquery/jquery.autocomplete", "galaxy.autocom_tagging" )}
</%def><%def name="stylesheets()">
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/library/common/move_library_item.mako
--- a/templates/library/common/move_library_item.mako
+++ b/templates/library/common/move_library_item.mako
@@ -3,7 +3,7 @@
<%def name="javascripts()">
${parent.javascripts()}
- ${h.js("libs/jquery/jquery.autocomplete", "autocomplete_tagging" )}
+ ${h.js("libs/jquery/jquery.autocomplete", "galaxy.autocom_tagging" )}
</%def><%def name="stylesheets()">
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/library/common/upload.mako
--- a/templates/library/common/upload.mako
+++ b/templates/library/common/upload.mako
@@ -13,7 +13,7 @@
<%def name="javascripts()">
${parent.javascripts()}
- ${h.js("libs/jquery/jquery.autocomplete", "autocomplete_tagging" )}
+ ${h.js("libs/jquery/jquery.autocomplete", "galaxy.autocom_tagging" )}
</%def><%def name="stylesheets()">
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/page/editor.mako
--- a/templates/page/editor.mako
+++ b/templates/page/editor.mako
@@ -22,7 +22,7 @@
<%def name="javascripts()">
${parent.javascripts()}
${h.js( "libs/jquery/jquery.event.drag", "libs/jquery/jquery.event.drop", "libs/jquery/jquery.event.hover", "libs/jquery/jquery.form", "libs/json2", "libs/jquery/jstorage",
- "galaxy.base", "libs/jquery/jquery.wymeditor", "libs/jquery/jquery.autocomplete", "autocomplete_tagging")}
+ "galaxy.base", "libs/jquery/jquery.wymeditor", "libs/jquery/jquery.autocomplete", "galaxy.autocom_tagging")}
<script type="text/javascript">
// Useful Galaxy stuff.
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/requests/common/create_request.mako
--- a/templates/requests/common/create_request.mako
+++ b/templates/requests/common/create_request.mako
@@ -3,7 +3,7 @@
<%def name="javascripts()">
${parent.javascripts()}
- ${h.js("libs/jquery/jquery.autocomplete", "autocomplete_tagging" )}
+ ${h.js("libs/jquery/jquery.autocomplete", "galaxy.autocom_tagging" )}
</%def><%def name="stylesheets()">
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/requests/common/find_samples.mako
--- a/templates/requests/common/find_samples.mako
+++ b/templates/requests/common/find_samples.mako
@@ -3,7 +3,7 @@
<%def name="javascripts()">
${parent.javascripts()}
- ${h.js("libs/jquery/jquery.autocomplete", "autocomplete_tagging" )}
+ ${h.js("libs/jquery/jquery.autocomplete", "galaxy.autocom_tagging" )}
</%def><%def name="stylesheets()">
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/root/history.mako
--- a/templates/root/history.mako
+++ b/templates/root/history.mako
@@ -17,7 +17,7 @@
<meta http-equiv="Pragma" content="no-cache">
${h.css( "base", "history", "autocomplete_tagging" )}
-${h.js( "libs/jquery/jquery", "libs/bootstrap", "galaxy.base", "libs/json2", "libs/jquery/jstorage", "libs/jquery/jquery.autocomplete", "autocomplete_tagging" )}
+${h.js( "libs/jquery/jquery", "libs/bootstrap", "galaxy.base", "libs/json2", "libs/jquery/jstorage", "libs/jquery/jquery.autocomplete", "galaxy.autocom_tagging" )}
<script type="text/javascript">
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/root/tool_menu.mako
--- a/templates/root/tool_menu.mako
+++ b/templates/root/tool_menu.mako
@@ -17,7 +17,7 @@
<%def name="javascripts()">
${parent.javascripts()}
${h.templates( "tool_link", "panel_section", "tool_search" )}
- ${h.js( "galaxy.base", "libs/json2", "autocomplete_tagging", "mvc/tools", "libs/bootstrap" )}
+ ${h.js( "galaxy.base", "libs/json2", "galaxy.autocom_tagging", "mvc/tools", "libs/bootstrap" )}
<%
# Set up for creating tool panel.
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/webapps/community/repository/browse_repository.mako
--- a/templates/webapps/community/repository/browse_repository.mako
+++ b/templates/webapps/community/repository/browse_repository.mako
@@ -57,7 +57,7 @@
<%def name="javascripts()">
${parent.javascripts()}
- ${h.js( "libs/jquery/jquery.rating", "ui.core", "libs/jquery/jquery.cookie", "libs/jquery/jquery.dynatree" )}
+ ${h.js( "libs/jquery/jquery.rating", "libs/jquery/jquery.ui.core", "libs/jquery/jquery.cookie", "libs/jquery/jquery.dynatree" )}
${common_javascripts(repository)}
</%def>
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/webapps/community/repository/upload.mako
--- a/templates/webapps/community/repository/upload.mako
+++ b/templates/webapps/community/repository/upload.mako
@@ -28,7 +28,7 @@
<%def name="javascripts()">
${parent.javascripts()}
- ${h.js( "ui.core", "libs/jquery/jquery.cookie", "libs/jquery/jquery.dynatree" )}
+ ${h.js( "libs/jquery/jquery.ui.core", "libs/jquery/jquery.cookie", "libs/jquery/jquery.dynatree" )}
${common_javascripts(repository)}
<script type="text/javascript">
$( function() {
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/workflow/edit_attributes.mako
--- a/templates/workflow/edit_attributes.mako
+++ b/templates/workflow/edit_attributes.mako
@@ -9,7 +9,7 @@
<%def name="javascripts()">
${parent.javascripts()}
- ${h.js( "galaxy.base", "libs/jquery/jquery.autocomplete", "autocomplete_tagging" )}
+ ${h.js( "galaxy.base", "libs/jquery/jquery.autocomplete", "galaxy.autocom_tagging" )}
</%def>
%if msg:
diff -r f076e439d46e1bd66a9a5dd0c75c69c0a11550ed -r e27c236c05e5d65f3ce92f271a712419e7fd73a5 templates/workflow/editor.mako
--- a/templates/workflow/editor.mako
+++ b/templates/workflow/editor.mako
@@ -36,7 +36,7 @@
"galaxy.base",
"galaxy.workflow_editor.canvas",
"libs/jquery/jquery.autocomplete",
- "autocomplete_tagging")}
+ "galaxy.autocom_tagging")}
<!--[if lt IE 7]><script type='text/javascript'>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: jgoecks: More JS file reorganization: (a) move IE and rgenetics into their own directories; (b) move additional external libraries to libs.
by Bitbucket 21 Aug '12
by Bitbucket 21 Aug '12
21 Aug '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/f076e439d46e/
changeset: f076e439d46e
user: jgoecks
date: 2012-08-21 22:54:19
summary: More JS file reorganization: (a) move IE and rgenetics into their own directories; (b) move additional external libraries to libs.
affected #: 57 files
Diff too large to display.
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
21 Aug '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/11a52ade55cd/
changeset: 11a52ade55cd
user: dan
date: 2012-08-21 22:05:55
summary: Remove blastxml from datatypes_conf.xml.sample.
affected #: 1 file
diff -r 0548e6380f5ae342f8745c4ee49aba624c618c5d -r 11a52ade55cdcdb1bb6b97741c2f123a3410a2f0 datatypes_conf.xml.sample
--- a/datatypes_conf.xml.sample
+++ b/datatypes_conf.xml.sample
@@ -169,7 +169,6 @@
<datatype extension="linecount" type="galaxy.datatypes.data:LineCount" display_in_upload="false"/><datatype extension="memexml" type="galaxy.datatypes.xml:MEMEXml" mimetype="application/xml" display_in_upload="true"/><datatype extension="cisml" type="galaxy.datatypes.xml:CisML" mimetype="application/xml" display_in_upload="true"/>
- <datatype extension="blastxml" type="galaxy.datatypes.xml:BlastXml" mimetype="application/xml" display_in_upload="true"/><datatype extension="xml" type="galaxy.datatypes.xml:GenericXml" mimetype="application/xml" display_in_upload="true"/><datatype extension="vcf" type="galaxy.datatypes.tabular:Vcf" display_in_upload="true"><converter file="vcf_to_bgzip_converter.xml" target_datatype="bgzip"/>
@@ -246,7 +245,6 @@
<sniffer type="galaxy.datatypes.binary:TwoBit"/><sniffer type="galaxy.datatypes.binary:Bam"/><sniffer type="galaxy.datatypes.binary:Sff"/>
- <sniffer type="galaxy.datatypes.xml:BlastXml"/><sniffer type="galaxy.datatypes.xml:GenericXml"/><sniffer type="galaxy.datatypes.sequence:Maf"/><sniffer type="galaxy.datatypes.sequence:Lav"/>
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: jgoecks: Move most jQuery files into own libs directory.
by Bitbucket 21 Aug '12
by Bitbucket 21 Aug '12
21 Aug '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/0548e6380f5a/
changeset: 0548e6380f5a
user: jgoecks
date: 2012-08-21 21:52:50
summary: Move most jQuery files into own libs directory.
affected #: 104 files
Diff too large to display.
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0
commit/galaxy-central: jgoecks: JavaScript cleanup: (a) create backbone lib in scripts/lib and use for backbone libraries; (b) clean up history.js; (c) pack scripts.
by Bitbucket 21 Aug '12
by Bitbucket 21 Aug '12
21 Aug '12
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/changeset/6ac6c3d4b907/
changeset: 6ac6c3d4b907
user: jgoecks
date: 2012-08-21 20:27:18
summary: JavaScript cleanup: (a) create backbone lib in scripts/lib and use for backbone libraries; (b) clean up history.js; (c) pack scripts.
affected #: 19 files
Diff too large to display.
Repository URL: https://bitbucket.org/galaxy/galaxy-central/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
1
0