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
September 2013
- 1 participants
- 149 discussions
3 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/079ce0488cdc/
Changeset: 079ce0488cdc
User: Dave Bouvier
Date: 2013-09-24 15:10:13
Summary: Fix for backwards compatibility with a Galaxy instance running the latest revision installing repositories from a tool shed running the stable branch.
Affected #: 5 files
diff -r fd7f14161d3537abf1f676f14ec763d150ee611f -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 lib/tool_shed/galaxy_install/repository_util.py
--- a/lib/tool_shed/galaxy_install/repository_util.py
+++ b/lib/tool_shed/galaxy_install/repository_util.py
@@ -100,19 +100,14 @@
continue
# rd_key is something like: 'http://localhost:9009__ESEP__package_rdkit_2012_12__ESEP__test__ESEP__d635f…'
# rd_val is something like: [['http://localhost:9009', 'package_numpy_1_7', 'test', 'cddd64ecd985', 'True']]
- try:
- tool_shed, name, owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td = \
- container_util.get_components_from_key( rd_key )
- except:
- tool_shed, name, owner, changeset_revision = container_util.get_components_from_key( rd_val )
+ repository_components_tuple = container_util.get_components_from_key( rd_key )
+ components_list = suc.extract_components_from_tuple( repository_components_tuple )
+ tool_shed, name, owner, changeset_revision = components_list[ 0:4 ]
installed_repository = suc.get_tool_shed_repository_by_shed_name_owner_changeset_revision( trans.app, tool_shed, name, owner, changeset_revision )
if installed_repository not in installed_repositories:
installed_repositories.append( installed_repository )
for rd_val in rd_vals:
- try:
- tool_shed, name, owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td = rd_val
- except:
- tool_shed, name, owner, changeset_revision = rd_val
+ tool_shed, name, owner, changeset_revision = rd_val[ 0:4 ]
installed_repository = suc.get_tool_shed_repository_by_shed_name_owner_changeset_revision( trans.app, tool_shed, name, owner, changeset_revision )
if installed_repository not in installed_repositories:
installed_repositories.append( installed_repository )
@@ -631,13 +626,10 @@
# Change the folder id so it won't confict with others being merged.
old_container_repository_dependencies_folder.id = folder_id
folder_id += 1
+ repository_components_tuple = container_util.get_components_from_key( old_container_repository_dependencies_folder.key )
+ components_list = suc.extract_components_from_tuple( repository_components_tuple )
+ name = components_list[ 1 ]
# Generate the label by retrieving the repository name.
- try:
- toolshed, name, owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td = \
- container_util.get_components_from_key( old_container_repository_dependencies_folder.key )
- except ValueError:
- # For backward compatibility to the 12/20/12 Galaxy release.
- toolshed, name, owner, changeset_revision = container_util.get_components_from_key( old_container_repository_dependencies_folder.key )
old_container_repository_dependencies_folder.label = str( name )
repository_dependencies_folder.folders.append( old_container_repository_dependencies_folder )
# Merge tool_dependencies.
diff -r fd7f14161d3537abf1f676f14ec763d150ee611f -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 lib/tool_shed/util/common_install_util.py
--- a/lib/tool_shed/util/common_install_util.py
+++ b/lib/tool_shed/util/common_install_util.py
@@ -352,19 +352,20 @@
for key, val in repository_dependencies.items():
if key in [ 'root_key', 'description' ]:
continue
- try:
- toolshed, name, owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td = \
- container_util.get_components_from_key( key )
- components_list = [ toolshed, name, owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td ]
- except ValueError:
- # For backward compatibility to the 12/20/12 Galaxy release, default prior_installation_required and only_if_compiling_contained_td
- # to False in the caller.
- toolshed, name, owner, changeset_revision = container_util.get_components_from_key( key )
- components_list = [ toolshed, name, owner, changeset_revision ]
- only_if_compiling_contained_td = 'False'
+ repository_components_tuple = container_util.get_components_from_key( key )
+ components_list = suc.extract_components_from_tuple( repository_components_tuple )
# Skip listing a repository dependency if it is required only to compile a tool dependency defined for the dependent repository since
# in this case, the repository dependency is really a dependency of the dependent repository's contained tool dependency, and only if
# that tool dependency requires compilation.
+ # For backward compatibility to the 12/20/12 Galaxy release.
+ prior_installation_required = 'False'
+ only_if_compiling_contained_td = 'False'
+ if len( components_list ) == 4:
+ prior_installation_required = 'False'
+ only_if_compiling_contained_td = 'False'
+ elif len( components_list ) == 5:
+ prior_installation_required = components_list[ 4 ]
+ only_if_compiling_contained_td = 'False'
if not util.asbool( only_if_compiling_contained_td ):
if components_list not in required_repository_tups:
required_repository_tups.append( components_list )
diff -r fd7f14161d3537abf1f676f14ec763d150ee611f -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 lib/tool_shed/util/container_util.py
--- a/lib/tool_shed/util/container_util.py
+++ b/lib/tool_shed/util/container_util.py
@@ -855,7 +855,7 @@
folder_id, data_managers_root_folder = build_invalid_data_managers_folder( trans, folder_id, data_managers, error_messages, label="Invalid Data Managers" )
containers_dict[ 'invalid_data_managers' ] = data_managers_root_folder
except Exception, e:
- log.debug( "Exception in build_repository_containers_for_tool_shed: %s" % str( e ) )
+ log.exception( "Exception in build_repository_containers_for_tool_shed: %s" % str( e ) )
finally:
lock.release()
return containers_dict
@@ -1325,29 +1325,31 @@
repository_name = items[ 1 ]
repository_owner = items[ 2 ]
changeset_revision = items[ 3 ]
- if len( items ) >= 5:
- try:
- prior_installation_required = items[ 4 ]
- except:
- prior_installation_required = 'False'
- try:
- only_if_compiling_contained_td = items[ 5 ]
- except:
- only_if_compiling_contained_td = 'False'
+ if len( items ) == 5:
+ prior_installation_required = items[ 4 ]
+ return toolshed_base_url, repository_name, repository_owner, changeset_revision, prior_installation_required
+ elif len( items ) == 6:
+ prior_installation_required = items[ 4 ]
+ only_if_compiling_contained_td = items[ 5 ]
return toolshed_base_url, repository_name, repository_owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td
else:
# For backward compatibility to the 12/20/12 Galaxy release we have to return the following, and callers must handle exceptions.
return toolshed_base_url, repository_name, repository_owner, changeset_revision
def handle_repository_dependencies_container_entry( trans, repository_dependencies_folder, rd_key, rd_value, folder_id, repository_dependency_id, folder_keys ):
- try:
- toolshed, repository_name, repository_owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td = \
- get_components_from_key( rd_key )
- except ValueError:
- # For backward compatibility to the 12/20/12 Galaxy release, default prior_installation_required and only_if_compiling_contained_td to 'False'.
- toolshed, repository_name, repository_owner, changeset_revision = get_components_from_key( rd_key )
+ repository_components_tuple = get_components_from_key( rd_key )
+ components_list = suc.extract_components_from_tuple( repository_components_tuple )
+ toolshed, repository_name, repository_owner, changeset_revision = components_list[ 0:4 ]
+ # For backward compatibility to the 12/20/12 Galaxy release.
+ if len( components_list ) == 4:
prior_installation_required = 'False'
only_if_compiling_contained_td = 'False'
+ elif len( components_list ) == 5:
+ prior_installation_required = components_list[ 4 ]
+ only_if_compiling_contained_td = 'False'
+ elif len( components_list ) == 6:
+ prior_installation_required = components_list[ 4 ]
+ only_if_compiling_contained_td = components_list[ 5 ]
folder = get_folder( repository_dependencies_folder, rd_key )
label = generate_repository_dependencies_folder_label_from_key( repository_name,
repository_owner,
@@ -1416,14 +1418,19 @@
return False
def key_is_current_repositorys_key( repository_name, repository_owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td, key ):
- try:
- toolshed_base_url, key_name, key_owner, key_changeset_revision, key_prior_installation_required, key_only_if_compiling_contained_td = \
- get_components_from_key( key )
- except ValueError:
- # For backward compatibility to the 12/20/12 Galaxy release, default key_prior_installation_required to False.
- toolshed_base_url, key_name, key_owner, key_changeset_revision = get_components_from_key( key )
+ repository_components_tuple = get_components_from_key( key )
+ components_list = suc.extract_components_from_tuple( repository_components_tuple )
+ toolshed, key_name, key_owner, key_changeset_revision = components_list[ 0:4 ]
+ # For backward compatibility to the 12/20/12 Galaxy release.
+ if len( components_list ) == 4:
key_prior_installation_required = 'False'
key_only_if_compiling_contained_td = 'False'
+ elif len( components_list ) == 5:
+ key_prior_installation_required = components_list[ 4 ]
+ key_only_if_compiling_contained_td = 'False'
+ elif len( components_list ) == 6:
+ key_prior_installation_required = components_list[ 4 ]
+ key_only_if_compiling_contained_td = components_list[ 5 ]
if repository_name == key_name and \
repository_owner == key_owner and \
changeset_revision == key_changeset_revision and \
diff -r fd7f14161d3537abf1f676f14ec763d150ee611f -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 lib/tool_shed/util/repository_dependency_util.py
--- a/lib/tool_shed/util/repository_dependency_util.py
+++ b/lib/tool_shed/util/repository_dependency_util.py
@@ -36,12 +36,9 @@
if key in [ 'root_key', 'description' ]:
continue
d_repository = None
- try:
- d_toolshed, d_name, d_owner, d_changeset_revision, d_prior_installation_required, d_only_if_compiling_contained_td = \
- container_util.get_components_from_key( key )
- except ValueError:
- # For backward compatibility to the 12/20/12 Galaxy release.
- d_toolshed, d_name, d_owner, d_changeset_revision = container_util.get_components_from_key( key )
+ repository_components_tuple = container_util.get_components_from_key( key )
+ components_list = suc.extract_components_from_tuple( repository_components_tuple )
+ d_toolshed, d_name, d_owner, d_changeset_revision = components_list[ 0:4 ]
for tsr in tool_shed_repositories:
# Get the the tool_shed_repository defined by name, owner and changeset_revision. This is the repository that will be
# dependent upon each of the tool shed repositories contained in val. We'll need to check tool_shed_repository.tool_shed
@@ -437,22 +434,22 @@
# We have the updated changset revision.
updated_key_rd_dicts.append( new_key_rd_dict )
else:
- try:
- toolshed, repository_name, repository_owner, repository_changeset_revision, prior_installation_required, rd_only_if_compiling_contained_td = \
- container_util.get_components_from_key( key )
- except ValueError:
- # For backward compatibility to the 12/20/12 Galaxy release.
- toolshed, repository_name, repository_owner, repository_changeset_revision = container_util.get_components_from_key( key )
+ repository_components_tuple = container_util.get_components_from_key( key )
+ components_list = suc.extract_components_from_tuple( repository_components_tuple )
+ toolshed, repository_name, repository_owner, repository_changeset_revision = components_list[ 0:4 ]
+ # For backward compatibility to the 12/20/12 Galaxy release.
+ if len( components_list ) == 4:
+ prior_installation_required = 'False'
+ rd_only_if_compiling_contained_td = 'False'
+ elif len( components_list ) == 5:
+ rd_only_if_compiling_contained_td = 'False'
message = "The revision %s defined for repository %s owned by %s is invalid, so repository dependencies defined for repository %s will be ignored." % \
( str( rd_changeset_revision ), str( rd_name ), str( rd_owner ), str( repository_name ) )
log.debug( message )
else:
- try:
- toolshed, repository_name, repository_owner, repository_changeset_revision, prior_installation_required, only_if_compiling_contained_td = \
- container_util.get_components_from_key( key )
- except ValueError:
- # For backward compatibility to the 12/20/12 Galaxy release.
- toolshed, repository_name, repository_owner, repository_changeset_revision = container_util.get_components_from_key( key )
+ repository_components_tuple = container_util.get_components_from_key( key )
+ components_list = suc.extract_components_from_tuple( repository_components_tuple )
+ toolshed, repository_name, repository_owner, repository_changeset_revision = components_list[ 0:4 ]
message = "The revision %s defined for repository %s owned by %s is invalid, so repository dependencies defined for repository %s will be ignored." % \
( str( rd_changeset_revision ), str( rd_name ), str( rd_owner ), str( repository_name ) )
log.debug( message )
diff -r fd7f14161d3537abf1f676f14ec763d150ee611f -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 lib/tool_shed/util/shed_util_common.py
--- a/lib/tool_shed/util/shed_util_common.py
+++ b/lib/tool_shed/util/shed_util_common.py
@@ -307,6 +307,21 @@
sa_session.flush()
return tool_shed_repository
+def extract_components_from_tuple( repository_components_tuple ):
+ '''Extract the repository components from the provided tuple in a backward-compatible manner.'''
+ toolshed = repository_components_tuple[ 0 ]
+ name = repository_components_tuple[ 1 ]
+ owner = repository_components_tuple[ 2 ]
+ changeset_revision = repository_components_tuple[ 3 ]
+ components_list = [ toolshed, name, owner, changeset_revision ]
+ if len( repository_components_tuple ) == 5:
+ toolshed, name, owner, changeset_revision, prior_installation_required = repository_components_tuple
+ components_list = [ toolshed, name, owner, changeset_revision, prior_installation_required ]
+ elif len( repository_components_tuple ) == 6:
+ toolshed, name, owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td = repository_components_tuple
+ components_list = [ toolshed, name, owner, changeset_revision, prior_installation_required, only_if_compiling_contained_td ]
+ return components_list
+
def generate_clone_url_for_installed_repository( app, repository ):
"""Generate the URL for cloning a repository that has been installed into a Galaxy instance."""
tool_shed_url = get_url_from_tool_shed( app, repository.tool_shed )
https://bitbucket.org/galaxy/galaxy-central/commits/78836810e69e/
Changeset: 78836810e69e
User: Dave Bouvier
Date: 2013-09-24 15:21:41
Summary: Update functional tests to reflect changes in HTML output. Add the ability to browse a running test instance of Galaxy or the tool shed with styles and javascript enabled.
Affected #: 9 files
diff -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 -r 78836810e69e016a56597f8e273c9baeb13e94dc test/tool_shed/functional/test_0000_basic_repository_features.py
--- a/test/tool_shed/functional/test_0000_basic_repository_features.py
+++ b/test/tool_shed/functional/test_0000_basic_repository_features.py
@@ -38,7 +38,7 @@
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
category = test_db_util.get_category_by_name( 'Test 0000 Basic Repository Features 1' )
strings_displayed = [ 'Repository %s' % "'%s'" % repository_name,
- 'Repository %s has been created' % "'%s'" % repository_name ]
+ 'Repository %s has been created' % "<b>%s</b>" % repository_name ]
self.get_or_create_repository( name=repository_name,
description=repository_description,
long_description=repository_long_description,
diff -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 -r 78836810e69e016a56597f8e273c9baeb13e94dc test/tool_shed/functional/test_0120_simple_repository_dependency_multiple_owners.py
--- a/test/tool_shed/functional/test_0120_simple_repository_dependency_multiple_owners.py
+++ b/test/tool_shed/functional/test_0120_simple_repository_dependency_multiple_owners.py
@@ -58,7 +58,7 @@
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
strings_displayed = [ 'Repository %s' % "'%s'" % datatypes_repository_name,
- 'Repository %s has been created' % "'%s'" % datatypes_repository_name ]
+ 'Repository %s has been created' % "<b>%s</b>" % datatypes_repository_name ]
repository = self.get_or_create_repository( name=datatypes_repository_name,
description=datatypes_repository_description,
long_description=datatypes_repository_long_description,
@@ -98,7 +98,7 @@
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
strings_displayed = [ 'Repository %s' % "'%s'" % tool_repository_name,
- 'Repository %s has been created' % "'%s'" % tool_repository_name ]
+ 'Repository %s has been created' % "<b>%s</b>" % tool_repository_name ]
repository = self.get_or_create_repository( name=tool_repository_name,
description=tool_repository_description,
long_description=tool_repository_long_description,
diff -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 -r 78836810e69e016a56597f8e273c9baeb13e94dc test/tool_shed/functional/test_0400_repository_component_reviews.py
--- a/test/tool_shed/functional/test_0400_repository_component_reviews.py
+++ b/test/tool_shed/functional/test_0400_repository_component_reviews.py
@@ -93,7 +93,7 @@
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
strings_displayed = [ 'Repository %s' % "'%s'" % repository_name,
- 'Repository %s has been created' % "'%s'" % repository_name ]
+ 'Repository %s has been created' % "<b>%s</b>" % repository_name ]
repository = self.get_or_create_repository( name=repository_name,
description=repository_description,
long_description=repository_long_description,
diff -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 -r 78836810e69e016a56597f8e273c9baeb13e94dc test/tool_shed/functional/test_0410_repository_component_review_access_control.py
--- a/test/tool_shed/functional/test_0410_repository_component_review_access_control.py
+++ b/test/tool_shed/functional/test_0410_repository_component_review_access_control.py
@@ -72,7 +72,7 @@
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
strings_displayed = [ 'Repository %s' % "'%s'" % repository_name,
- 'Repository %s has been created' % "'%s'" % repository_name ]
+ 'Repository %s has been created' % "<b>%s</b>" % repository_name ]
repository = self.get_or_create_repository( name=repository_name,
description=repository_description,
long_description=repository_long_description,
diff -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 -r 78836810e69e016a56597f8e273c9baeb13e94dc test/tool_shed/functional/test_0420_citable_urls_for_repositories.py
--- a/test/tool_shed/functional/test_0420_citable_urls_for_repositories.py
+++ b/test/tool_shed/functional/test_0420_citable_urls_for_repositories.py
@@ -52,7 +52,7 @@
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
strings_displayed = [ 'Repository %s' % "'%s'" % repository_name,
- 'Repository %s has been created' % "'%s'" % repository_name ]
+ 'Repository %s has been created' % "<b>%s</b>" % repository_name ]
repository = self.get_or_create_repository( name=repository_name,
description=repository_description,
long_description=repository_long_description,
diff -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 -r 78836810e69e016a56597f8e273c9baeb13e94dc test/tool_shed/functional/test_0430_browse_utilities.py
--- a/test/tool_shed/functional/test_0430_browse_utilities.py
+++ b/test/tool_shed/functional/test_0430_browse_utilities.py
@@ -57,7 +57,7 @@
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
strings_displayed = [ 'Repository %s' % "'%s'" % datatypes_repository_name,
- 'Repository %s has been created' % "'%s'" % datatypes_repository_name ]
+ 'Repository %s has been created' % "<b>%s</b>" % datatypes_repository_name ]
repository = self.get_or_create_repository( name=datatypes_repository_name,
description=datatypes_repository_description,
long_description=datatypes_repository_long_description,
@@ -85,7 +85,7 @@
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
strings_displayed = [ 'Repository %s' % "'%s'" % emboss_repository_name,
- 'Repository %s has been created' % "'%s'" % emboss_repository_name ]
+ 'Repository %s has been created' % "<b>%s</b>" % emboss_repository_name ]
emboss_repository = self.get_or_create_repository( name=emboss_repository_name,
description=emboss_repository_description,
long_description=emboss_repository_long_description,
@@ -122,7 +122,7 @@
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
strings_displayed = [ 'Repository %s' % "'%s'" % freebayes_repository_name,
- 'Repository %s has been created' % "'%s'" % freebayes_repository_name ]
+ 'Repository %s has been created' % "<b>%s</b>" % freebayes_repository_name ]
repository = self.get_or_create_repository( name=freebayes_repository_name,
description=freebayes_repository_description,
long_description=freebayes_repository_long_description,
diff -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 -r 78836810e69e016a56597f8e273c9baeb13e94dc test/tool_shed/functional/test_0450_skip_tool_tests.py
--- a/test/tool_shed/functional/test_0450_skip_tool_tests.py
+++ b/test/tool_shed/functional/test_0450_skip_tool_tests.py
@@ -76,7 +76,7 @@
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
category = test_db_util.get_category_by_name( category_name )
strings_displayed = [ 'Repository %s' % "'%s'" % repository_name,
- 'Repository %s has been created' % "'%s'" % repository_name ]
+ 'Repository %s has been created' % "<b>%s</b>" % repository_name ]
repository = self.get_or_create_repository( name=repository_name,
description=repository_description,
long_description=repository_long_description,
diff -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 -r 78836810e69e016a56597f8e273c9baeb13e94dc test/tool_shed/functional/test_1120_simple_repository_dependency_multiple_owners.py
--- a/test/tool_shed/functional/test_1120_simple_repository_dependency_multiple_owners.py
+++ b/test/tool_shed/functional/test_1120_simple_repository_dependency_multiple_owners.py
@@ -63,7 +63,7 @@
self.logout()
self.login( email=common.test_user_2_email, username=common.test_user_2_name )
strings_displayed = [ 'Repository %s' % "'%s'" % datatypes_repository_name,
- 'Repository %s has been created' % "'%s'" % datatypes_repository_name ]
+ 'Repository %s has been created' % "<b>%s</b>" % datatypes_repository_name ]
repository = self.get_or_create_repository( name=datatypes_repository_name,
description=datatypes_repository_description,
long_description=datatypes_repository_long_description,
@@ -105,7 +105,7 @@
self.logout()
self.login( email=common.test_user_1_email, username=common.test_user_1_name )
strings_displayed = [ 'Repository %s' % "'%s'" % tool_repository_name,
- 'Repository %s has been created' % "'%s'" % tool_repository_name ]
+ 'Repository %s has been created' % "<b>%s</b>" % tool_repository_name ]
repository = self.get_or_create_repository( name=tool_repository_name,
description=tool_repository_description,
long_description=tool_repository_long_description,
diff -r 079ce0488cdcf4ee882ba3cd4e5413dcab3f9412 -r 78836810e69e016a56597f8e273c9baeb13e94dc test/tool_shed/functional_tests.py
--- a/test/tool_shed/functional_tests.py
+++ b/test/tool_shed/functional_tests.py
@@ -56,6 +56,40 @@
default_galaxy_test_port_max = 9999
default_galaxy_test_host = 'localhost'
+# should this serve static resources (scripts, images, styles, etc.)
+STATIC_ENABLED = True
+
+def get_static_settings():
+ """Returns dictionary of the settings necessary for a galaxy App
+ to be wrapped in the static middleware.
+
+ This mainly consists of the filesystem locations of url-mapped
+ static resources.
+ """
+ cwd = os.getcwd()
+ static_dir = os.path.join( cwd, 'static' )
+ #TODO: these should be copied from universe_wsgi.ini
+ return dict(
+ #TODO: static_enabled needed here?
+ static_enabled = True,
+ static_cache_time = 360,
+ static_dir = static_dir,
+ static_images_dir = os.path.join( static_dir, 'images', '' ),
+ static_favicon_dir = os.path.join( static_dir, 'favicon.ico' ),
+ static_scripts_dir = os.path.join( static_dir, 'scripts', '' ),
+ static_style_dir = os.path.join( static_dir, 'june_2007_style', 'blue' ),
+ static_robots_txt = os.path.join( static_dir, 'robots.txt' ),
+ )
+
+def get_webapp_global_conf():
+ """Get the global_conf dictionary sent as the first argument to app_factory.
+ """
+ # (was originally sent 'dict()') - nothing here for now except static settings
+ global_conf = dict()
+ if STATIC_ENABLED:
+ global_conf.update( get_static_settings() )
+ return global_conf
+
tool_sheds_conf_xml_template = '''<?xml version="1.0"?><tool_sheds><tool_shed name="Embedded tool shed for functional tests" url="http://${shed_url}:${shed_port}/"/>
@@ -144,6 +178,9 @@
galaxy_migrated_tool_path = tempfile.mkdtemp( dir=tool_shed_test_tmp_dir )
galaxy_tool_dependency_dir = tempfile.mkdtemp( dir=tool_shed_test_tmp_dir )
os.environ[ 'GALAXY_TEST_TOOL_DEPENDENCY_DIR' ] = galaxy_tool_dependency_dir
+ hgweb_config_dir = hgweb_config_file_path
+ os.environ[ 'TEST_HG_WEB_CONFIG_DIR' ] = hgweb_config_dir
+ print "Directory location for hgweb.config:", hgweb_config_dir
if 'TOOL_SHED_TEST_DBURI' in os.environ:
toolshed_database_connection = os.environ[ 'TOOL_SHED_TEST_DBURI' ]
else:
@@ -152,7 +189,29 @@
galaxy_database_connection = os.environ[ 'GALAXY_TEST_DBURI' ]
else:
galaxy_database_connection = 'sqlite:///' + os.path.join( galaxy_db_path, 'universe_test.sqlite' )
- kwargs = {}
+ tool_shed_global_conf = get_webapp_global_conf()
+ tool_shed_global_conf[ '__file__' ] = 'tool_shed_wsgi.ini.sample'
+ kwargs = dict( admin_users = 'test(a)bx.psu.edu',
+ allow_user_creation = True,
+ allow_user_deletion = True,
+ database_connection = toolshed_database_connection,
+ datatype_converters_config_file = 'datatype_converters_conf.xml.sample',
+ file_path = shed_file_path,
+ global_conf = tool_shed_global_conf,
+ hgweb_config_dir = hgweb_config_dir,
+ job_queue_workers = 5,
+ id_secret = 'changethisinproductiontoo',
+ log_destination = "stdout",
+ new_file_path = new_repos_path,
+ running_functional_tests = True,
+ shed_tool_data_table_config = shed_tool_data_table_conf_file,
+ smtp_server = 'smtp.dummy.string.tld',
+ email_from = 'functional@localhost',
+ template_path = 'templates',
+ tool_path=tool_path,
+ tool_parse_help = False,
+ tool_data_table_config_path = galaxy_tool_data_table_conf_file,
+ use_heartbeat = False )
for dir in [ tool_shed_test_tmp_dir ]:
try:
os.makedirs( dir )
@@ -162,11 +221,6 @@
print "Tool shed database connection:", toolshed_database_connection
print "Galaxy database connection:", galaxy_database_connection
- hgweb_config_dir = hgweb_config_file_path
- os.environ[ 'TEST_HG_WEB_CONFIG_DIR' ] = hgweb_config_dir
-
- print "Directory location for hgweb.config:", hgweb_config_dir
-
# Generate the tool_data_table_conf.xml file.
file( galaxy_tool_data_table_conf_file, 'w' ).write( tool_data_table_conf_xml_template )
# Generate the shed_tool_data_table_conf.xml file.
@@ -174,7 +228,6 @@
os.environ[ 'TOOL_SHED_TEST_TOOL_DATA_TABLE_CONF' ] = shed_tool_data_table_conf_file
# ---- Build Tool Shed Application --------------------------------------------------
toolshedapp = None
- global_conf = { '__file__' : 'tool_shed_wsgi.ini.sample' }
# if not toolshed_database_connection.startswith( 'sqlite://' ):
# kwargs[ 'database_engine_option_max_overflow' ] = '20'
if tool_dependency_dir is not None:
@@ -183,41 +236,22 @@
kwargs[ 'object_store' ] = 'distributed'
kwargs[ 'distributed_object_store_config_file' ] = 'distributed_object_store_conf.xml.sample'
+ kwargs[ 'global_conf' ] = tool_shed_global_conf
if not toolshed_database_connection.startswith( 'sqlite://' ):
kwargs[ 'database_engine_option_pool_size' ] = '10'
- toolshedapp = ToolshedUniverseApplication( admin_users = 'test(a)bx.psu.edu',
- allow_user_creation = True,
- allow_user_deletion = True,
- database_connection = toolshed_database_connection,
- datatype_converters_config_file = 'datatype_converters_conf.xml.sample',
- file_path = shed_file_path,
- global_conf = global_conf,
- hgweb_config_dir = hgweb_config_dir,
- job_queue_workers = 5,
- id_secret = 'changethisinproductiontoo',
- log_destination = "stdout",
- new_file_path = new_repos_path,
- running_functional_tests = True,
- shed_tool_data_table_config = shed_tool_data_table_conf_file,
- smtp_server = 'smtp.dummy.string.tld',
- email_from = 'functional@localhost',
- template_path = 'templates',
- tool_path=tool_path,
- tool_parse_help = False,
- tool_data_table_config_path = galaxy_tool_data_table_conf_file,
- use_heartbeat = False,
- **kwargs )
+ toolshedapp = ToolshedUniverseApplication( **kwargs )
log.info( "Embedded Toolshed application started" )
# ---- Run tool shed webserver ------------------------------------------------------
tool_shed_server = None
- toolshedwebapp = toolshedbuildapp.app_factory( dict( database_connection=toolshed_database_connection ),
- use_translogger=False,
- static_enabled=False,
- app=toolshedapp )
+ tool_shed_global_conf[ 'database_connection' ] = toolshed_database_connection
+ toolshedwebapp = toolshedbuildapp.app_factory( tool_shed_global_conf,
+ use_translogger=False,
+ static_enabled=True,
+ app=toolshedapp )
if tool_shed_test_port is not None:
tool_shed_server = httpserver.serve( toolshedwebapp, host=tool_shed_test_host, port=tool_shed_test_port, start_loop=False )
else:
@@ -268,50 +302,53 @@
migrated_tool_conf_xml = shed_tool_conf_template_parser.safe_substitute( shed_tool_path=galaxy_migrated_tool_path )
file( galaxy_migrated_tool_conf_file, 'w' ).write( migrated_tool_conf_xml )
os.environ[ 'GALAXY_TEST_SHED_TOOL_CONF' ] = galaxy_shed_tool_conf_file
+ galaxy_global_conf = get_webapp_global_conf()
+ galaxy_global_conf[ '__file__' ] = 'universe_wsgi.ini.sample'
+
+ kwargs = dict( allow_user_creation = True,
+ allow_user_deletion = True,
+ admin_users = 'test(a)bx.psu.edu',
+ allow_library_path_paste = True,
+ database_connection = galaxy_database_connection,
+ datatype_converters_config_file = "datatype_converters_conf.xml.sample",
+ enable_tool_shed_check = True,
+ file_path = galaxy_file_path,
+ global_conf = galaxy_global_conf,
+ hours_between_check = 0.001,
+ id_secret = 'changethisinproductiontoo',
+ job_queue_workers = 5,
+ log_destination = "stdout",
+ migrated_tools_config = galaxy_migrated_tool_conf_file,
+ new_file_path = galaxy_tempfiles,
+ running_functional_tests=True,
+ shed_tool_data_table_config = shed_tool_data_table_conf_file,
+ shed_tool_path = galaxy_shed_tool_path,
+ template_path = "templates",
+ tool_data_path = tool_data_path,
+ tool_dependency_dir = galaxy_tool_dependency_dir,
+ tool_path = tool_path,
+ tool_config_file = [ galaxy_tool_conf_file, galaxy_shed_tool_conf_file ],
+ tool_sheds_config_file = galaxy_tool_sheds_conf_file,
+ tool_parse_help = False,
+ tool_data_table_config_path = galaxy_tool_data_table_conf_file,
+ update_integrated_tool_panel = False,
+ use_heartbeat = False )
# ---- Build Galaxy Application --------------------------------------------------
- galaxy_global_conf = { '__file__' : 'universe_wsgi.ini.sample' }
if not galaxy_database_connection.startswith( 'sqlite://' ):
kwargs[ 'database_engine_option_pool_size' ] = '10'
kwargs[ 'database_engine_option_max_overflow' ] = '20'
- galaxyapp = GalaxyUniverseApplication( allow_user_creation = True,
- allow_user_deletion = True,
- admin_users = 'test(a)bx.psu.edu',
- allow_library_path_paste = True,
- database_connection = galaxy_database_connection,
- datatype_converters_config_file = "datatype_converters_conf.xml.sample",
- enable_tool_shed_check = True,
- file_path = galaxy_file_path,
- global_conf = global_conf,
- hours_between_check = 0.001,
- id_secret = 'changethisinproductiontoo',
- job_queue_workers = 5,
- log_destination = "stdout",
- migrated_tools_config = galaxy_migrated_tool_conf_file,
- new_file_path = galaxy_tempfiles,
- running_functional_tests=True,
- shed_tool_data_table_config = shed_tool_data_table_conf_file,
- shed_tool_path = galaxy_shed_tool_path,
- template_path = "templates",
- tool_data_path = tool_data_path,
- tool_dependency_dir = galaxy_tool_dependency_dir,
- tool_path = tool_path,
- tool_config_file = [ galaxy_tool_conf_file, galaxy_shed_tool_conf_file ],
- tool_sheds_config_file = galaxy_tool_sheds_conf_file,
- tool_parse_help = False,
- tool_data_table_config_path = galaxy_tool_data_table_conf_file,
- update_integrated_tool_panel = False,
- use_heartbeat = False,
- **kwargs )
+ galaxyapp = GalaxyUniverseApplication( **kwargs )
log.info( "Embedded Galaxy application started" )
# ---- Run galaxy webserver ------------------------------------------------------
galaxy_server = None
- galaxywebapp = galaxybuildapp.app_factory( dict( database_file=galaxy_database_connection ),
- use_translogger=False,
- static_enabled=False,
- app=galaxyapp )
+ galaxy_global_conf[ 'database_file' ] = galaxy_database_connection
+ galaxywebapp = galaxybuildapp.app_factory( galaxy_global_conf,
+ use_translogger=False,
+ static_enabled=True,
+ app=galaxyapp )
if galaxy_test_port is not None:
galaxy_server = httpserver.serve( galaxywebapp, host=galaxy_test_host, port=galaxy_test_port, start_loop=False )
@@ -412,4 +449,8 @@
return 1
if __name__ == "__main__":
- sys.exit( main() )
+ try:
+ sys.exit( main() )
+ except Exception, e:
+ log.exception( str( e ) )
+ exit(1)
https://bitbucket.org/galaxy/galaxy-central/commits/7df8d81544c3/
Changeset: 7df8d81544c3
User: Dave Bouvier
Date: 2013-09-24 15:23:44
Summary: Update for automated repository installation and testing framework to record cases where a repository installation fails before a record is created in the embedded Galaxy instance's database.
Affected #: 1 file
diff -r 78836810e69e016a56597f8e273c9baeb13e94dc -r 7df8d81544c39cde769a5ead49be182294ba58b1 test/install_and_test_tool_shed_repositories/functional_tests.py
--- a/test/install_and_test_tool_shed_repositories/functional_tests.py
+++ b/test/install_and_test_tool_shed_repositories/functional_tests.py
@@ -254,6 +254,49 @@
success = result.wasSuccessful()
return success
+def extract_log_data( test_result, from_tool_test=True ):
+ '''Extract any useful data from the test_result.failures and test_result.errors attributes.'''
+ for failure in test_result.failures + test_result.errors:
+ # Record the twill test identifier and information about the tool, so the repository owner can discover which test is failing.
+ test_id = str( failure[0] )
+ if not from_tool_test:
+ tool_id = None
+ tool_version = None
+ else:
+ tool_id, tool_version = get_tool_info_from_test_id( test_id )
+ test_status = dict( test_id=test_id, tool_id=tool_id, tool_version=tool_version )
+ log_output = failure[1].replace( '\\n', '\n' )
+ # Remove debug output that the reviewer or owner doesn't need.
+ log_output = re.sub( r'control \d+:.+', r'', log_output )
+ log_output = re.sub( r'\n+', r'\n', log_output )
+ appending_to = 'output'
+ tmp_output = {}
+ output = {}
+ # Iterate through the functional test output and extract only the important data. Captured logging and stdout are not recorded.
+ for line in log_output.split( '\n' ):
+ if line.startswith( 'Traceback' ):
+ appending_to = 'traceback'
+ elif '>> end captured' in line or '>> end tool' in line:
+ continue
+ elif 'request returned None from get_history' in line:
+ continue
+ elif '>> begin captured logging <<' in line:
+ appending_to = 'logging'
+ continue
+ elif '>> begin captured stdout <<' in line:
+ appending_to = 'stdout'
+ continue
+ elif '>> begin captured stderr <<' in line or '>> begin tool stderr <<' in line:
+ appending_to = 'stderr'
+ continue
+ if appending_to not in tmp_output:
+ tmp_output[ appending_to ] = []
+ tmp_output[ appending_to ].append( line )
+ for output_type in [ 'stderr', 'traceback' ]:
+ if output_type in tmp_output:
+ test_status[ output_type ] = '\n'.join( tmp_output[ output_type ] )
+ return test_status
+
def get_api_url( base, parts=[], params=None, key=None ):
if 'api' in parts and parts.index( 'api' ) != 0:
parts.pop( parts.index( 'api' ) )
@@ -1054,43 +1097,7 @@
params )
log.debug( 'Revision %s of repository %s installed and passed functional tests.', changeset_revision, name )
else:
- # If the functional tests fail, log the output and update the failed changeset revision's metadata record in the tool shed via the API.
- for failure in result.failures + result.errors:
- # Record the twill test identifier and information about the tool, so the repository owner can discover which test is failing.
- test_id = str( failure[0] )
- tool_id, tool_version = get_tool_info_from_test_id( test_id )
- test_status = dict( test_id=test_id, tool_id=tool_id, tool_version=tool_version )
- log_output = failure[1].replace( '\\n', '\n' )
- # Remove debug output that the reviewer or owner doesn't need.
- log_output = re.sub( r'control \d+:.+', r'', log_output )
- log_output = re.sub( r'\n+', r'\n', log_output )
- appending_to = 'output'
- tmp_output = {}
- output = {}
- # Iterate through the functional test output and extract only the important data. Captured logging and stdout are not recorded.
- for line in log_output.split( '\n' ):
- if line.startswith( 'Traceback' ):
- appending_to = 'traceback'
- elif '>> end captured' in line or '>> end tool' in line:
- continue
- elif 'request returned None from get_history' in line:
- continue
- elif '>> begin captured logging <<' in line:
- appending_to = 'logging'
- continue
- elif '>> begin captured stdout <<' in line:
- appending_to = 'stdout'
- continue
- elif '>> begin captured stderr <<' in line or '>> begin tool stderr <<' in line:
- appending_to = 'stderr'
- continue
- if appending_to not in tmp_output:
- tmp_output[ appending_to ] = []
- tmp_output[ appending_to ].append( line )
- for output_type in [ 'stderr', 'traceback' ]:
- if output_type in tmp_output:
- test_status[ output_type ] = '\n'.join( tmp_output[ output_type ] )
- repository_status[ 'failed_tests' ].append( test_status )
+ repository_status[ 'failed_tests' ] = extract_log_data( result, from_tool_test=True )
# Call the register_test_result method, which executes a PUT request to the repository_revisions API controller with the outcome
# of the tests, and updates tool_test_results with the relevant log data.
# This also sets the do_not_test and tools_functionally correct flags to the appropriate values, and updates the time_last_tested
@@ -1129,7 +1136,7 @@
name=repository.name,
owner=repository.owner,
changeset_revision=repository.changeset_revision,
- error_message=repository.error_message )
+ error_message=extract_log_data( result, from_tool_test=False ) )
repository_status[ 'installation_errors' ][ 'repository_dependencies' ].append( test_result )
params[ 'tools_functionally_correct' ] = False
params[ 'test_install_error' ] = True
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: guerler: Improve scratchbook style sheet
by commits-noreply@bitbucket.org 24 Sep '13
by commits-noreply@bitbucket.org 24 Sep '13
24 Sep '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/fd7f14161d35/
Changeset: fd7f14161d35
User: guerler
Date: 2013-09-24 07:43:30
Summary: Improve scratchbook style sheet
Affected #: 2 files
diff -r 2a2457d3bad09740d48cd2ba4de98936aafe2105 -r fd7f14161d3537abf1f676f14ec763d150ee611f static/style/blue/base.css
--- a/static/style/blue/base.css
+++ b/static/style/blue/base.css
@@ -1116,9 +1116,9 @@
.galaxy-frame .frame{z-index:1002;overflow:hidden;position:absolute;background:#fff;border:1px solid #888;-webkit-box-shadow:0 0 5px rgba(0,0,0,0.3);}.galaxy-frame .frame .f-content{position:absolute;overflow:hidden;background:#fff;border:none;top:24px;bottom:3px;left:3px;right:3px}
.galaxy-frame .frame .f-cover{position:absolute;display:none;top:0px;left:0px;height:100%;width:100%;opacity:0.0;background:#fff}
.galaxy-frame .frame .f-iframe{border:none;width:100%;height:100%}
-.galaxy-frame .frame .f-header{height:17px;margin:2px;cursor:pointer;border:1px solid #000;background:#2c3143;color:#fff;font-weight:bold}
+.galaxy-frame .frame .f-header{height:17px;margin:2px;cursor:pointer;border:1px solid #000;background:#2c3143;color:#fff}
.galaxy-frame .frame .f-title{position:absolute;top:2px;left:16px;right:16px;font-size:12px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;text-align:center}
-.galaxy-frame .frame .f-icon{position:absolute;cursor:pointer;font-style:normal}
+.galaxy-frame .frame .f-icon{position:absolute;cursor:pointer}
.galaxy-frame .frame .f-not-allowed{cursor:not-allowed}
.galaxy-frame .frame .f-close{right:5px;top:1px}
.galaxy-frame .frame .f-pin{left:6px;top:1px}
diff -r 2a2457d3bad09740d48cd2ba4de98936aafe2105 -r fd7f14161d3537abf1f676f14ec763d150ee611f static/style/src/less/frame.less
--- a/static/style/src/less/frame.less
+++ b/static/style/src/less/frame.less
@@ -111,7 +111,6 @@
border : 1px solid @black;
background : @base-color-1;
color : @white;
- font-weight : bold;
}
.f-title
@@ -133,7 +132,6 @@
{
position : absolute;
cursor : pointer;
- font-style : normal;
}
.f-not-allowed
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: guerler: Show dataset title in scratchbook frame header
by commits-noreply@bitbucket.org 24 Sep '13
by commits-noreply@bitbucket.org 24 Sep '13
24 Sep '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/2a2457d3bad0/
Changeset: 2a2457d3bad0
User: guerler
Date: 2013-09-24 07:11:41
Summary: Show dataset title in scratchbook frame header
Affected #: 2 files
diff -r 6acc907464869c92c4bb366f6574c52714f60ae7 -r 2a2457d3bad09740d48cd2ba4de98936aafe2105 static/scripts/galaxy.upload.js
--- a/static/scripts/galaxy.upload.js
+++ b/static/scripts/galaxy.upload.js
@@ -163,22 +163,7 @@
// success
event_success : function(index, file, message)
- {
- // get element
- var it = this.get_upload_item(index);
-
- // update progress frame
- it.addClass('panel-success');
- it.removeClass('panel-default');
-
- // update icon
- var sy = it.find('.symbol');
- sy.addClass(this.state.done);
-
- // remove spin
- sy.removeClass('fa-icon-spin');
- sy.removeClass('fa-icon-spinner');
-
+ {
// update galaxy history
Galaxy.currHistoryPanel.refresh();
@@ -194,32 +179,26 @@
// update on screen info
this.update_screen();
+
+ // get element
+ var it = this.get_upload_item(index);
+
+ // update progress frame
+ it.addClass('panel-success');
+ it.removeClass('panel-default');
+
+ // update icon
+ var sy = it.find('.symbol');
+ sy.removeClass('fa-icon-spin');
+ sy.removeClass('fa-icon-spinner');
+
+ // set status
+ sy.addClass(this.state.done);
},
// error
event_error : function(index, file, message)
{
- // get element
- var it = this.get_upload_item(index);
-
- // update progress frame
- it.addClass('panel-danger');
- it.removeClass('panel-default');
-
- // update icon
- var sy = it.find('.symbol');
- sy.addClass(this.state.done);
-
- // remove spin
- sy.removeClass('fa-icon-spin');
- sy.removeClass('fa-icon-spinner');
-
- // remove progress bar
- it.find('.progress').remove();
-
- // write error message
- it.find('.error').html('<strong>Failed:</strong> ' + message);
-
// make sure progress is shown correctly
this.event_progress(index, file, 0);
@@ -232,6 +211,27 @@
// update on screen info
this.update_screen();
+
+ // get element
+ var it = this.get_upload_item(index);
+
+ // update progress frame
+ it.addClass('panel-danger');
+ it.removeClass('panel-default');
+
+ // remove progress bar
+ it.find('.progress').remove();
+
+ // write error message
+ it.find('.error').html('<strong>Failed:</strong> ' + message);
+
+ // update icon
+ var sy = it.find('.symbol');
+ sy.removeClass('fa-icon-spin');
+ sy.removeClass('fa-icon-spinner');
+
+ // set status
+ sy.addClass(this.state.done);
},
// start upload process
@@ -241,13 +241,6 @@
if (this.counter.announce == 0 || this.counter.running > 0)
return;
- // update running
- this.counter.running = this.counter.announce;
- this.update_screen();
-
- // hide configuration
- $(this.el).find('.panel-body').hide();
-
// switch icons for new uploads
var self = this;
$(this.el).find('.symbol').each(function()
@@ -259,6 +252,13 @@
$(this).addClass('fa-icon-spin');
}
});
+
+ // hide configuration
+ $(this.el).find('.panel-body').hide();
+
+ // update running
+ this.counter.running = this.counter.announce;
+ this.update_screen();
// configure url
var current_history = Galaxy.currHistoryPanel.model.get('id');
diff -r 6acc907464869c92c4bb366f6574c52714f60ae7 -r 2a2457d3bad09740d48cd2ba4de98936aafe2105 static/scripts/mvc/dataset/hda-base.js
--- a/static/scripts/mvc/dataset/hda-base.js
+++ b/static/scripts/mvc/dataset/hda-base.js
@@ -251,7 +251,7 @@
var self = this;
displayBtnData.on_click = function(){
Galaxy.frame_manager.frame_new({
- title : "Data Viewer",
+ title : "Data Viewer: " + self.model.get('name'),
type : "url",
location: "center",
content : self.urls.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: guerler: Drag&drop multiple file upload: add status icon
by commits-noreply@bitbucket.org 23 Sep '13
by commits-noreply@bitbucket.org 23 Sep '13
23 Sep '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/6acc90746486/
Changeset: 6acc90746486
User: guerler
Date: 2013-09-24 05:38:26
Summary: Drag&drop multiple file upload: add status icon
Affected #: 4 files
diff -r 8c464ada320ff611112d5b71febe394112a02daf -r 6acc907464869c92c4bb366f6574c52714f60ae7 static/scripts/galaxy.upload.js
--- a/static/scripts/galaxy.upload.js
+++ b/static/scripts/galaxy.upload.js
@@ -24,6 +24,12 @@
'ab1' : 'ab1'
},
+ // states
+ state : {
+ init : 'fa-icon-trash',
+ done : 'fa-icon-caret-down'
+ },
+
// counter
counter : {
// stats
@@ -80,7 +86,7 @@
event_mouseleave : function (e)
{
},
-
+
// start
event_announce : function(index, file, message)
{
@@ -107,7 +113,7 @@
// add functionality to remove button
var self = this;
- it.find('.remove').on('click', function() { self.event_remove (index) });
+ it.find('.symbol').on('click', function() { self.event_remove (index) });
// initialize progress
this.event_progress(index, file, 0);
@@ -155,7 +161,7 @@
it.find('.info').html(percentage + '% of ' + this.size_to_string (file.size));
},
- // end
+ // success
event_success : function(index, file, message)
{
// get element
@@ -165,6 +171,14 @@
it.addClass('panel-success');
it.removeClass('panel-default');
+ // update icon
+ var sy = it.find('.symbol');
+ sy.addClass(this.state.done);
+
+ // remove spin
+ sy.removeClass('fa-icon-spin');
+ sy.removeClass('fa-icon-spinner');
+
// update galaxy history
Galaxy.currHistoryPanel.refresh();
@@ -182,7 +196,7 @@
this.update_screen();
},
- // end
+ // error
event_error : function(index, file, message)
{
// get element
@@ -192,6 +206,14 @@
it.addClass('panel-danger');
it.removeClass('panel-default');
+ // update icon
+ var sy = it.find('.symbol');
+ sy.addClass(this.state.done);
+
+ // remove spin
+ sy.removeClass('fa-icon-spin');
+ sy.removeClass('fa-icon-spinner');
+
// remove progress bar
it.find('.progress').remove();
@@ -226,11 +248,16 @@
// hide configuration
$(this.el).find('.panel-body').hide();
- // switch icon
- $(this.el).find('.remove').each(function()
+ // switch icons for new uploads
+ var self = this;
+ $(this.el).find('.symbol').each(function()
{
- $(this).removeClass('fa-icon-trash');
- $(this).addClass('fa-icon-caret-down');
+ if($(this).hasClass(self.state.init))
+ {
+ $(this).removeClass(self.state.init);
+ $(this).addClass('fa-icon-spinner');
+ $(this).addClass('fa-icon-spin');
+ }
});
// configure url
@@ -273,12 +300,13 @@
// remove item from upload list
event_remove : function(index)
{
- // only remove from queue if paused
- if (this.counter.running == 0)
+ // get item
+ var it = this.get_upload_item(index);
+ var sy = it.find('.symbol');
+
+ // only remove from queue if not in processing line
+ if (sy.hasClass(this.state.init) || sy.hasClass(this.state.done))
{
- // get item
- var it = this.get_upload_item(index);
-
// reduce counter
if (it.hasClass('panel-default'))
this.counter.announce--;
@@ -428,7 +456,7 @@
'<div class="panel-heading">' +
'<h5 class="title"></h5>' +
'<h5 class="info"></h5>' +
- '<div class="remove fa-icon-trash"></div>' +
+ '<div class="symbol ' + this.state.init + '"></div>' +
'</div>' +
'<div class="panel-body">' +
'<div class="menu">' +
diff -r 8c464ada320ff611112d5b71febe394112a02daf -r 6acc907464869c92c4bb366f6574c52714f60ae7 static/scripts/utils/galaxy.uploadbox.js
--- a/static/scripts/utils/galaxy.uploadbox.js
+++ b/static/scripts/utils/galaxy.uploadbox.js
@@ -65,6 +65,9 @@
{
// add files to queue
add(e.target.files);
+
+ // reset
+ $(this).val('');
});
// drop event
@@ -323,7 +326,7 @@
// verify browser compatibility
function compatible()
{
- return window.File && window.FileReader && window.FormData && window.XMLHttpRequest;
+ return window.File && window.FileReader && window.FormData && window.XMLHttpRequest && window.FileList;
}
// export functions
diff -r 8c464ada320ff611112d5b71febe394112a02daf -r 6acc907464869c92c4bb366f6574c52714f60ae7 static/style/blue/base.css
--- a/static/style/blue/base.css
+++ b/static/style/blue/base.css
@@ -1126,7 +1126,7 @@
.upload-info{font-weight:normal;text-align:center}
.upload-box{width:100%;height:250px;max-height:250px;text-align:center;overflow:scroll;font-size:12px;line-height:1.33;-moz-border-radius:5px;border-radius:5px;border:1px dashed #bfbfbf;padding:20px}.upload-box .panel{display:none}.upload-box .panel .panel-heading{position:relative;height:19px;padding:5px}.upload-box .panel .panel-heading .title{position:absolute;top:2px;font-weight:normal;text-align:left;margin:0px;max-width:300px;overflow:hidden}
.upload-box .panel .panel-heading .info{position:absolute;top:3px;font-weight:normal;right:20px;text-align:right;margin:0px}
-.upload-box .panel .panel-heading .remove{position:absolute;cursor:pointer;top:0px;right:3px}
+.upload-box .panel .panel-heading .symbol{position:absolute;cursor:pointer;top:0px;right:3px}
.upload-box .panel .panel-body{position:relative;padding:5px}
.upload-box .panel .panel-footer{position:relative;height:20px;padding:0px}.upload-box .panel .panel-footer .progress{height:10px;margin:5px}
.upload-box .panel .panel-footer .error{font-weight:normal;margin:2px}
diff -r 8c464ada320ff611112d5b71febe394112a02daf -r 6acc907464869c92c4bb366f6574c52714f60ae7 static/style/src/less/upload.less
--- a/static/style/src/less/upload.less
+++ b/static/style/src/less/upload.less
@@ -49,7 +49,7 @@
margin: 0px;
}
- .remove
+ .symbol
{
position: absolute;
cursor: pointer;
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: natefoo: Merge stable branch, pack scripts.
by commits-noreply@bitbucket.org 23 Sep '13
by commits-noreply@bitbucket.org 23 Sep '13
23 Sep '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/8c464ada320f/
Changeset: 8c464ada320f
User: natefoo
Date: 2013-09-24 02:10:18
Summary: Merge stable branch, pack scripts.
Affected #: 6 files
diff -r e1bc855165bc857d6afd19d37a0542798601d85a -r 8c464ada320ff611112d5b71febe394112a02daf static/scripts/packed/galaxy.upload.js
--- a/static/scripts/packed/galaxy.upload.js
+++ b/static/scripts/packed/galaxy.upload.js
@@ -1,1 +1,1 @@
-define(["galaxy.modal","galaxy.master","utils/galaxy.uploadbox","libs/backbone/backbone-relational"],function(b,c){var a=Backbone.View.extend({modal:null,button_show:null,uploadbox:null,initialize:function(){if(!Galaxy.currHistoryPanel){var d=this;window.setTimeout(function(){d.initialize()},500);return}var d=this;this.button_show=new c.GalaxyMasterIcon({icon:"fa-icon-upload",tooltip:"Upload Files",on_click:function(f){d.event_show(f)},with_number:true});Galaxy.master.prepend(this.button_show)},events:{mouseover:"event_mouseover",mouseleave:"event_mouseleave"},event_mouseover:function(d){},event_mouseleave:function(d){},event_announce:function(e,f,h){this.uploadbox.info().hide();var i="#upload-"+e;$(this.el).append(this.template_file(i));$(this.el).scrollTop($(this.el).prop("scrollHeight"));var g=this.get_upload_item(e);g.fadeIn();g.find(".title").html(f.name);g.find("#extension").select2({placeholder:"Auto-detect",width:"copy",ajax:{url:"http://www.weighttraining.com/sm/search",dataType:"jsonp",quietMillis:100,data:function(j,k){return{types:["exercise"],limit:-1,term:j}},results:function(k,j){return{results:k.results.exercise}}},formatResult:function(j){return"<div class='select2-user-result'>"+j.term+"</div>"},formatSelection:function(j){return j.term},initSelection:function(j,l){var k=$(j).attr("data-init-text");l({term:k})}});var d=this;g.find(".remove").on("click",function(){d.event_remove(e)});this.event_progress(e,f,0);this.modal.enable("Upload");this.modal.enable("Reset")},event_initialize:function(d,e,g){this.button_show.number(g);var f=this.get_upload_item(d);var h={source:"upload",space_to_tabs:f.find("#space_to_tabs").is(":checked"),extension:f.find("#extension").val()};return h},event_progress:function(e,f,h){var g=this.get_upload_item(e);var d=parseInt(h);g.find(".progress-bar").css({width:d+"%"});g.find(".info").html(d+"% of "+this.size_to_string(f.size))},event_success:function(d,e,g){var f=this.get_upload_item(d);f.addClass("panel-success");f.removeClass("panel-default");Galaxy.currHistoryPanel.refresh();this.event_progress(d,e,100);this.button_show.number("")},event_error:function(d,e,g){var f=this.get_upload_item(d);f.addClass("panel-danger");f.removeClass("panel-default");f.find(".progress").remove();f.find(".error").html("<strong>Failed:</strong> "+g);this.event_progress(d,e,0);this.button_show.number("")},event_upload:function(){$(this.el).find(".panel-body").hide();$(this.el).find(".remove").each(function(){$(this).removeClass("fa-icon-trash");$(this).addClass("fa-icon-caret-down")});this.modal.disable("Upload");var d=Galaxy.currHistoryPanel.model.get("id");this.uploadbox.configure({url:galaxy_config.root+"api/histories/"+d+"/contents"});this.uploadbox.upload()},event_reset:function(){var e=$(this.el).find(".panel");var d=this;e.fadeOut({complete:function(){e.remove();d.uploadbox.info().fadeIn()}});this.modal.disable("Upload");this.modal.disable("Reset");this.uploadbox.reset()},event_remove:function(e){var d=this;var f=this.get_upload_item(e);f.fadeOut({complete:function(){f.remove();d.uploadbox.remove(e);if($(d.el).find(".panel").length>0){d.modal.enable("Reset")}else{d.modal.disable("Reset");d.uploadbox.info().fadeIn()}if(d.uploadbox.length()>0){d.modal.enable("Upload")}else{d.modal.disable("Upload")}}})},event_show:function(f){f.preventDefault();if(!this.modal){var d=this;this.modal=new b.GalaxyModal({title:"Upload files from your local drive",body:this.template("upload-box"),buttons:{Select:function(){d.uploadbox.select()},Upload:function(){d.event_upload()},Reset:function(){d.event_reset()},Close:function(){d.modal.hide()}}});this.setElement("#upload-box");var d=this;this.uploadbox=this.$el.uploadbox({dragover:d.event_mouseover,dragleave:d.event_mouseleave,announce:function(e,g,h){d.event_announce(e,g,h)},initialize:function(e,g,h){return d.event_initialize(e,g,h)},success:function(e,g,h){d.event_success(e,g,h)},progress:function(e,g,h){d.event_progress(e,g,h)},error:function(e,g,h){d.event_error(e,g,h)},});this.modal.disable("Upload");this.modal.disable("Reset")}this.modal.show()},get_upload_item:function(d){return $(this.el).find("#upload-"+d)},size_to_string:function(d){var e="";if(d>=100000000000){d=d/100000000000;e="TB"}else{if(d>=100000000){d=d/100000000;e="GB"}else{if(d>=100000){d=d/100000;e="MB"}else{if(d>=100){d=d/100;e="KB"}else{d=d*10;e="b"}}}}return"<strong>"+(Math.round(d)/10)+"</strong> "+e},template:function(d){return'<div id="'+d+'" class="upload-box"></div>'},template_file:function(d){return'<div id="'+d.substr(1)+'" class="panel panel-default"><div class="panel-heading"><h5 class="title"></h5><h5 class="info"></h5><div class="remove fa-icon-trash"></div></div><div class="panel-body"><div class="menu"><span><input id="space_to_tabs" type="checkbox">Convert spaces to tabs</input></span></div></div><div class="panel-footer"><div class="progress"><div class="progress-bar progress-bar-success"></div></div><h6 class="error"></h6></div></div>'}});return{GalaxyUpload:a}});
\ No newline at end of file
+define(["galaxy.modal","galaxy.master","utils/galaxy.uploadbox","libs/backbone/backbone-relational"],function(b,c){var a=Backbone.View.extend({modal:null,button_show:null,uploadbox:null,select_extension:{"":"Auto-detect",bed:"bed",ab1:"ab1"},counter:{announce:0,success:0,error:0,running:0,reset:function(){this.announce=this.success=this.error=this.running=0}},initialize:function(){if(!Galaxy.currHistoryPanel){var d=this;window.setTimeout(function(){d.initialize()},500);return}var d=this;this.button_show=new c.GalaxyMasterIcon({icon:"fa-icon-upload",tooltip:"Upload Files",on_click:function(f){d.event_show(f)},with_number:true});Galaxy.master.prepend(this.button_show)},events:{mouseover:"event_mouseover",mouseleave:"event_mouseleave"},event_mouseover:function(d){},event_mouseleave:function(d){},event_announce:function(e,f,h){var i="#upload-"+e;$(this.el).append(this.template_file(i,this.select_extension));var g=this.get_upload_item(e);g.fadeIn();g.find(".title").html(f.name);var d=this;g.find(".remove").on("click",function(){d.event_remove(e)});this.event_progress(e,f,0);this.counter.announce++;this.update_screen()},event_initialize:function(d,e,g){this.button_show.number(this.counter.announce);var f=this.get_upload_item(d);var h={source:"upload",space_to_tabs:f.find("#space_to_tabs").is(":checked"),extension:f.find("#extension").val()};return h},event_progress:function(e,f,h){var g=this.get_upload_item(e);var d=parseInt(h);g.find(".progress-bar").css({width:d+"%"});g.find(".info").html(d+"% of "+this.size_to_string(f.size))},event_success:function(d,e,g){var f=this.get_upload_item(d);f.addClass("panel-success");f.removeClass("panel-default");Galaxy.currHistoryPanel.refresh();this.event_progress(d,e,100);this.button_show.number("");this.counter.announce--;this.counter.success++;this.update_screen()},event_error:function(d,e,g){var f=this.get_upload_item(d);f.addClass("panel-danger");f.removeClass("panel-default");f.find(".progress").remove();f.find(".error").html("<strong>Failed:</strong> "+g);this.event_progress(d,e,0);this.button_show.number("");this.counter.announce--;this.counter.error++;this.update_screen()},event_upload:function(){if(this.counter.announce==0||this.counter.running>0){return}this.counter.running=this.counter.announce;this.update_screen();$(this.el).find(".panel-body").hide();$(this.el).find(".remove").each(function(){$(this).removeClass("fa-icon-trash");$(this).addClass("fa-icon-caret-down")});var d=Galaxy.currHistoryPanel.model.get("id");this.uploadbox.configure({url:galaxy_config.root+"api/histories/"+d+"/contents"});this.uploadbox.upload()},event_complete:function(){this.counter.running=0;this.update_screen()},event_reset:function(){if(this.counter.running==0){var d=$(this.el).find(".panel");d.fadeOut({complete:function(){d.remove()}});this.counter.reset();this.update_screen();this.uploadbox.reset()}},event_remove:function(d){if(this.counter.running==0){var e=this.get_upload_item(d);if(e.hasClass("panel-default")){this.counter.announce--}else{if(e.hasClass("panel-success")){this.counter.success--}else{if(e.hasClass("panel-danger")){this.counter.error--}}}this.update_screen();this.uploadbox.remove(d);e.remove()}},event_show:function(f){f.preventDefault();if(!this.modal){var d=this;this.modal=new b.GalaxyModal({title:"Upload files from your local drive",body:this.template("upload-box"),buttons:{Select:function(){d.uploadbox.select()},Upload:function(){d.event_upload()},Reset:function(){d.event_reset()},Close:function(){d.modal.hide()}}});this.setElement("#upload-box");var d=this;this.uploadbox=this.$el.uploadbox({dragover:d.event_mouseover,dragleave:d.event_mouseleave,announce:function(e,g,h){d.event_announce(e,g,h)},initialize:function(e,g,h){return d.event_initialize(e,g,h)},success:function(e,g,h){d.event_success(e,g,h)},progress:function(e,g,h){d.event_progress(e,g,h)},error:function(e,g,h){d.event_error(e,g,h)},complete:function(){d.event_complete()},});this.update_screen()}this.modal.show()},get_upload_item:function(d){return $(this.el).find("#upload-"+d)},size_to_string:function(d){var e="";if(d>=100000000000){d=d/100000000000;e="TB"}else{if(d>=100000000){d=d/100000000;e="GB"}else{if(d>=100000){d=d/100000;e="MB"}else{if(d>=100){d=d/100;e="KB"}else{d=d*10;e="b"}}}}return"<strong>"+(Math.round(d)/10)+"</strong> "+e},update_screen:function(){if(this.counter.announce==0){if(this.uploadbox.compatible){message="Drag&drop files into this box or click 'Select' to select files!"}else{message="Unfortunately, your browser does not support multiple file uploads or drag&drop.<br>Please upgrade to i.e. Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+."}}else{if(this.counter.running==0){message="You added "+this.counter.announce+' file(s) to the queue. Add more files or click "Upload" to proceed.'}else{message="Please wait..."+this.counter.announce+" out of "+this.counter.running+" remaining."}}$("#upload-info").html(message);if(this.counter.running==0&&this.counter.announce+this.counter.success+this.counter.error>0){this.modal.enable("Reset")}else{this.modal.disable("Reset")}if(this.counter.running==0&&this.counter.announce>0){this.modal.enable("Upload")}else{this.modal.disable("Upload")}if(this.counter.running==0){this.modal.enable("Select")}else{this.modal.disable("Select")}},template:function(d){return'<div id="'+d+'" class="upload-box"></div><h6 id="upload-info" class="upload-info"></h6>'},template_file:function(f,e){var d='<div id="'+f.substr(1)+'" class="panel panel-default"><div class="panel-heading"><h5 class="title"></h5><h5 class="info"></h5><div class="remove fa-icon-trash"></div></div><div class="panel-body"><div class="menu">Select file type: <select id="extension">';for(key in e){d+='<option value="'+key+'">'+e[key]+"</option>"}d+='</select>, <span>Convert space to tabs: <input id="space_to_tabs" type="checkbox"></input></span></div></div><div class="panel-footer"><div class="progress"><div class="progress-bar progress-bar-success"></div></div><h6 class="error"></h6></div></div>';return d}});return{GalaxyUpload:a}});
\ No newline at end of file
diff -r e1bc855165bc857d6afd19d37a0542798601d85a -r 8c464ada320ff611112d5b71febe394112a02daf static/scripts/packed/libs/jquery/select2.js
--- a/static/scripts/packed/libs/jquery/select2.js
+++ b/static/scripts/packed/libs/jquery/select2.js
@@ -1,1 +1,1 @@
-(function(a){if(typeof a.fn.each2=="undefined"){a.extend(a.fn,{each2:function(f){var d=a([0]),e=-1,b=this.length;while(++e<b&&(d.context=d[0]=this[e])&&f.call(d[0],e,d)!==false){}return this}})}})(jQuery);(function(D,m){if(window.Select2!==m){return}var K,N,x,c,a,p,o={x:0,y:0},v,w,K={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,isArrow:function(O){O=O.which?O.which:O;switch(O){case K.LEFT:case K.RIGHT:case K.UP:case K.DOWN:return true}return false},isControl:function(P){var O=P.which;switch(O){case K.SHIFT:case K.CTRL:case K.ALT:return true}if(P.metaKey){return true}return false},isFunctionKey:function(O){O=O.which?O.which:O;return O>=112&&O<=123}},B="<div class='select2-measure-scrollbar'></div>",d={"\u24B6":"A","\uFF21":"A","\u00C0":"A","\u00C1":"A","\u00C2":"A","\u1EA6":"A","\u1EA4":"A","\u1EAA":"A","\u1EA8":"A","\u00C3":"A","\u0100":"A","\u0102":"A","\u1EB0":"A","\u1EAE":"A","\u1EB4":"A","\u1EB2":"A","\u0226":"A","\u01E0":"A","\u00C4":"A","\u01DE":"A","\u1EA2":"A","\u00C5":"A","\u01FA":"A","\u01CD":"A","\u0200":"A","\u0202":"A","\u1EA0":"A","\u1EAC":"A","\u1EB6":"A","\u1E00":"A","\u0104":"A","\u023A":"A","\u2C6F":"A","\uA732":"AA","\u00C6":"AE","\u01FC":"AE","\u01E2":"AE","\uA734":"AO","\uA736":"AU","\uA738":"AV","\uA73A":"AV","\uA73C":"AY","\u24B7":"B","\uFF22":"B","\u1E02":"B","\u1E04":"B","\u1E06":"B","\u0243":"B","\u0182":"B","\u0181":"B","\u24B8":"C","\uFF23":"C","\u0106":"C","\u0108":"C","\u010A":"C","\u010C":"C","\u00C7":"C","\u1E08":"C","\u0187":"C","\u023B":"C","\uA73E":"C","\u24B9":"D","\uFF24":"D","\u1E0A":"D","\u010E":"D","\u1E0C":"D","\u1E10":"D","\u1E12":"D","\u1E0E":"D","\u0110":"D","\u018B":"D","\u018A":"D","\u0189":"D","\uA779":"D","\u01F1":"DZ","\u01C4":"DZ","\u01F2":"Dz","\u01C5":"Dz","\u24BA":"E","\uFF25":"E","\u00C8":"E","\u00C9":"E","\u00CA":"E","\u1EC0":"E","\u1EBE":"E","\u1EC4":"E","\u1EC2":"E","\u1EBC":"E","\u0112":"E","\u1E14":"E","\u1E16":"E","\u0114":"E","\u0116":"E","\u00CB":"E","\u1EBA":"E","\u011A":"E","\u0204":"E","\u0206":"E","\u1EB8":"E","\u1EC6":"E","\u0228":"E","\u1E1C":"E","\u0118":"E","\u1E18":"E","\u1E1A":"E","\u0190":"E","\u018E":"E","\u24BB":"F","\uFF26":"F","\u1E1E":"F","\u0191":"F","\uA77B":"F","\u24BC":"G","\uFF27":"G","\u01F4":"G","\u011C":"G","\u1E20":"G","\u011E":"G","\u0120":"G","\u01E6":"G","\u0122":"G","\u01E4":"G","\u0193":"G","\uA7A0":"G","\uA77D":"G","\uA77E":"G","\u24BD":"H","\uFF28":"H","\u0124":"H","\u1E22":"H","\u1E26":"H","\u021E":"H","\u1E24":"H","\u1E28":"H","\u1E2A":"H","\u0126":"H","\u2C67":"H","\u2C75":"H","\uA78D":"H","\u24BE":"I","\uFF29":"I","\u00CC":"I","\u00CD":"I","\u00CE":"I","\u0128":"I","\u012A":"I","\u012C":"I","\u0130":"I","\u00CF":"I","\u1E2E":"I","\u1EC8":"I","\u01CF":"I","\u0208":"I","\u020A":"I","\u1ECA":"I","\u012E":"I","\u1E2C":"I","\u0197":"I","\u24BF":"J","\uFF2A":"J","\u0134":"J","\u0248":"J","\u24C0":"K","\uFF2B":"K","\u1E30":"K","\u01E8":"K","\u1E32":"K","\u0136":"K","\u1E34":"K","\u0198":"K","\u2C69":"K","\uA740":"K","\uA742":"K","\uA744":"K","\uA7A2":"K","\u24C1":"L","\uFF2C":"L","\u013F":"L","\u0139":"L","\u013D":"L","\u1E36":"L","\u1E38":"L","\u013B":"L","\u1E3C":"L","\u1E3A":"L","\u0141":"L","\u023D":"L","\u2C62":"L","\u2C60":"L","\uA748":"L","\uA746":"L","\uA780":"L","\u01C7":"LJ","\u01C8":"Lj","\u24C2":"M","\uFF2D":"M","\u1E3E":"M","\u1E40":"M","\u1E42":"M","\u2C6E":"M","\u019C":"M","\u24C3":"N","\uFF2E":"N","\u01F8":"N","\u0143":"N","\u00D1":"N","\u1E44":"N","\u0147":"N","\u1E46":"N","\u0145":"N","\u1E4A":"N","\u1E48":"N","\u0220":"N","\u019D":"N","\uA790":"N","\uA7A4":"N","\u01CA":"NJ","\u01CB":"Nj","\u24C4":"O","\uFF2F":"O","\u00D2":"O","\u00D3":"O","\u00D4":"O","\u1ED2":"O","\u1ED0":"O","\u1ED6":"O","\u1ED4":"O","\u00D5":"O","\u1E4C":"O","\u022C":"O","\u1E4E":"O","\u014C":"O","\u1E50":"O","\u1E52":"O","\u014E":"O","\u022E":"O","\u0230":"O","\u00D6":"O","\u022A":"O","\u1ECE":"O","\u0150":"O","\u01D1":"O","\u020C":"O","\u020E":"O","\u01A0":"O","\u1EDC":"O","\u1EDA":"O","\u1EE0":"O","\u1EDE":"O","\u1EE2":"O","\u1ECC":"O","\u1ED8":"O","\u01EA":"O","\u01EC":"O","\u00D8":"O","\u01FE":"O","\u0186":"O","\u019F":"O","\uA74A":"O","\uA74C":"O","\u01A2":"OI","\uA74E":"OO","\u0222":"OU","\u24C5":"P","\uFF30":"P","\u1E54":"P","\u1E56":"P","\u01A4":"P","\u2C63":"P","\uA750":"P","\uA752":"P","\uA754":"P","\u24C6":"Q","\uFF31":"Q","\uA756":"Q","\uA758":"Q","\u024A":"Q","\u24C7":"R","\uFF32":"R","\u0154":"R","\u1E58":"R","\u0158":"R","\u0210":"R","\u0212":"R","\u1E5A":"R","\u1E5C":"R","\u0156":"R","\u1E5E":"R","\u024C":"R","\u2C64":"R","\uA75A":"R","\uA7A6":"R","\uA782":"R","\u24C8":"S","\uFF33":"S","\u1E9E":"S","\u015A":"S","\u1E64":"S","\u015C":"S","\u1E60":"S","\u0160":"S","\u1E66":"S","\u1E62":"S","\u1E68":"S","\u0218":"S","\u015E":"S","\u2C7E":"S","\uA7A8":"S","\uA784":"S","\u24C9":"T","\uFF34":"T","\u1E6A":"T","\u0164":"T","\u1E6C":"T","\u021A":"T","\u0162":"T","\u1E70":"T","\u1E6E":"T","\u0166":"T","\u01AC":"T","\u01AE":"T","\u023E":"T","\uA786":"T","\uA728":"TZ","\u24CA":"U","\uFF35":"U","\u00D9":"U","\u00DA":"U","\u00DB":"U","\u0168":"U","\u1E78":"U","\u016A":"U","\u1E7A":"U","\u016C":"U","\u00DC":"U","\u01DB":"U","\u01D7":"U","\u01D5":"U","\u01D9":"U","\u1EE6":"U","\u016E":"U","\u0170":"U","\u01D3":"U","\u0214":"U","\u0216":"U","\u01AF":"U","\u1EEA":"U","\u1EE8":"U","\u1EEE":"U","\u1EEC":"U","\u1EF0":"U","\u1EE4":"U","\u1E72":"U","\u0172":"U","\u1E76":"U","\u1E74":"U","\u0244":"U","\u24CB":"V","\uFF36":"V","\u1E7C":"V","\u1E7E":"V","\u01B2":"V","\uA75E":"V","\u0245":"V","\uA760":"VY","\u24CC":"W","\uFF37":"W","\u1E80":"W","\u1E82":"W","\u0174":"W","\u1E86":"W","\u1E84":"W","\u1E88":"W","\u2C72":"W","\u24CD":"X","\uFF38":"X","\u1E8A":"X","\u1E8C":"X","\u24CE":"Y","\uFF39":"Y","\u1EF2":"Y","\u00DD":"Y","\u0176":"Y","\u1EF8":"Y","\u0232":"Y","\u1E8E":"Y","\u0178":"Y","\u1EF6":"Y","\u1EF4":"Y","\u01B3":"Y","\u024E":"Y","\u1EFE":"Y","\u24CF":"Z","\uFF3A":"Z","\u0179":"Z","\u1E90":"Z","\u017B":"Z","\u017D":"Z","\u1E92":"Z","\u1E94":"Z","\u01B5":"Z","\u0224":"Z","\u2C7F":"Z","\u2C6B":"Z","\uA762":"Z","\u24D0":"a","\uFF41":"a","\u1E9A":"a","\u00E0":"a","\u00E1":"a","\u00E2":"a","\u1EA7":"a","\u1EA5":"a","\u1EAB":"a","\u1EA9":"a","\u00E3":"a","\u0101":"a","\u0103":"a","\u1EB1":"a","\u1EAF":"a","\u1EB5":"a","\u1EB3":"a","\u0227":"a","\u01E1":"a","\u00E4":"a","\u01DF":"a","\u1EA3":"a","\u00E5":"a","\u01FB":"a","\u01CE":"a","\u0201":"a","\u0203":"a","\u1EA1":"a","\u1EAD":"a","\u1EB7":"a","\u1E01":"a","\u0105":"a","\u2C65":"a","\u0250":"a","\uA733":"aa","\u00E6":"ae","\u01FD":"ae","\u01E3":"ae","\uA735":"ao","\uA737":"au","\uA739":"av","\uA73B":"av","\uA73D":"ay","\u24D1":"b","\uFF42":"b","\u1E03":"b","\u1E05":"b","\u1E07":"b","\u0180":"b","\u0183":"b","\u0253":"b","\u24D2":"c","\uFF43":"c","\u0107":"c","\u0109":"c","\u010B":"c","\u010D":"c","\u00E7":"c","\u1E09":"c","\u0188":"c","\u023C":"c","\uA73F":"c","\u2184":"c","\u24D3":"d","\uFF44":"d","\u1E0B":"d","\u010F":"d","\u1E0D":"d","\u1E11":"d","\u1E13":"d","\u1E0F":"d","\u0111":"d","\u018C":"d","\u0256":"d","\u0257":"d","\uA77A":"d","\u01F3":"dz","\u01C6":"dz","\u24D4":"e","\uFF45":"e","\u00E8":"e","\u00E9":"e","\u00EA":"e","\u1EC1":"e","\u1EBF":"e","\u1EC5":"e","\u1EC3":"e","\u1EBD":"e","\u0113":"e","\u1E15":"e","\u1E17":"e","\u0115":"e","\u0117":"e","\u00EB":"e","\u1EBB":"e","\u011B":"e","\u0205":"e","\u0207":"e","\u1EB9":"e","\u1EC7":"e","\u0229":"e","\u1E1D":"e","\u0119":"e","\u1E19":"e","\u1E1B":"e","\u0247":"e","\u025B":"e","\u01DD":"e","\u24D5":"f","\uFF46":"f","\u1E1F":"f","\u0192":"f","\uA77C":"f","\u24D6":"g","\uFF47":"g","\u01F5":"g","\u011D":"g","\u1E21":"g","\u011F":"g","\u0121":"g","\u01E7":"g","\u0123":"g","\u01E5":"g","\u0260":"g","\uA7A1":"g","\u1D79":"g","\uA77F":"g","\u24D7":"h","\uFF48":"h","\u0125":"h","\u1E23":"h","\u1E27":"h","\u021F":"h","\u1E25":"h","\u1E29":"h","\u1E2B":"h","\u1E96":"h","\u0127":"h","\u2C68":"h","\u2C76":"h","\u0265":"h","\u0195":"hv","\u24D8":"i","\uFF49":"i","\u00EC":"i","\u00ED":"i","\u00EE":"i","\u0129":"i","\u012B":"i","\u012D":"i","\u00EF":"i","\u1E2F":"i","\u1EC9":"i","\u01D0":"i","\u0209":"i","\u020B":"i","\u1ECB":"i","\u012F":"i","\u1E2D":"i","\u0268":"i","\u0131":"i","\u24D9":"j","\uFF4A":"j","\u0135":"j","\u01F0":"j","\u0249":"j","\u24DA":"k","\uFF4B":"k","\u1E31":"k","\u01E9":"k","\u1E33":"k","\u0137":"k","\u1E35":"k","\u0199":"k","\u2C6A":"k","\uA741":"k","\uA743":"k","\uA745":"k","\uA7A3":"k","\u24DB":"l","\uFF4C":"l","\u0140":"l","\u013A":"l","\u013E":"l","\u1E37":"l","\u1E39":"l","\u013C":"l","\u1E3D":"l","\u1E3B":"l","\u017F":"l","\u0142":"l","\u019A":"l","\u026B":"l","\u2C61":"l","\uA749":"l","\uA781":"l","\uA747":"l","\u01C9":"lj","\u24DC":"m","\uFF4D":"m","\u1E3F":"m","\u1E41":"m","\u1E43":"m","\u0271":"m","\u026F":"m","\u24DD":"n","\uFF4E":"n","\u01F9":"n","\u0144":"n","\u00F1":"n","\u1E45":"n","\u0148":"n","\u1E47":"n","\u0146":"n","\u1E4B":"n","\u1E49":"n","\u019E":"n","\u0272":"n","\u0149":"n","\uA791":"n","\uA7A5":"n","\u01CC":"nj","\u24DE":"o","\uFF4F":"o","\u00F2":"o","\u00F3":"o","\u00F4":"o","\u1ED3":"o","\u1ED1":"o","\u1ED7":"o","\u1ED5":"o","\u00F5":"o","\u1E4D":"o","\u022D":"o","\u1E4F":"o","\u014D":"o","\u1E51":"o","\u1E53":"o","\u014F":"o","\u022F":"o","\u0231":"o","\u00F6":"o","\u022B":"o","\u1ECF":"o","\u0151":"o","\u01D2":"o","\u020D":"o","\u020F":"o","\u01A1":"o","\u1EDD":"o","\u1EDB":"o","\u1EE1":"o","\u1EDF":"o","\u1EE3":"o","\u1ECD":"o","\u1ED9":"o","\u01EB":"o","\u01ED":"o","\u00F8":"o","\u01FF":"o","\u0254":"o","\uA74B":"o","\uA74D":"o","\u0275":"o","\u01A3":"oi","\u0223":"ou","\uA74F":"oo","\u24DF":"p","\uFF50":"p","\u1E55":"p","\u1E57":"p","\u01A5":"p","\u1D7D":"p","\uA751":"p","\uA753":"p","\uA755":"p","\u24E0":"q","\uFF51":"q","\u024B":"q","\uA757":"q","\uA759":"q","\u24E1":"r","\uFF52":"r","\u0155":"r","\u1E59":"r","\u0159":"r","\u0211":"r","\u0213":"r","\u1E5B":"r","\u1E5D":"r","\u0157":"r","\u1E5F":"r","\u024D":"r","\u027D":"r","\uA75B":"r","\uA7A7":"r","\uA783":"r","\u24E2":"s","\uFF53":"s","\u00DF":"s","\u015B":"s","\u1E65":"s","\u015D":"s","\u1E61":"s","\u0161":"s","\u1E67":"s","\u1E63":"s","\u1E69":"s","\u0219":"s","\u015F":"s","\u023F":"s","\uA7A9":"s","\uA785":"s","\u1E9B":"s","\u24E3":"t","\uFF54":"t","\u1E6B":"t","\u1E97":"t","\u0165":"t","\u1E6D":"t","\u021B":"t","\u0163":"t","\u1E71":"t","\u1E6F":"t","\u0167":"t","\u01AD":"t","\u0288":"t","\u2C66":"t","\uA787":"t","\uA729":"tz","\u24E4":"u","\uFF55":"u","\u00F9":"u","\u00FA":"u","\u00FB":"u","\u0169":"u","\u1E79":"u","\u016B":"u","\u1E7B":"u","\u016D":"u","\u00FC":"u","\u01DC":"u","\u01D8":"u","\u01D6":"u","\u01DA":"u","\u1EE7":"u","\u016F":"u","\u0171":"u","\u01D4":"u","\u0215":"u","\u0217":"u","\u01B0":"u","\u1EEB":"u","\u1EE9":"u","\u1EEF":"u","\u1EED":"u","\u1EF1":"u","\u1EE5":"u","\u1E73":"u","\u0173":"u","\u1E77":"u","\u1E75":"u","\u0289":"u","\u24E5":"v","\uFF56":"v","\u1E7D":"v","\u1E7F":"v","\u028B":"v","\uA75F":"v","\u028C":"v","\uA761":"vy","\u24E6":"w","\uFF57":"w","\u1E81":"w","\u1E83":"w","\u0175":"w","\u1E87":"w","\u1E85":"w","\u1E98":"w","\u1E89":"w","\u2C73":"w","\u24E7":"x","\uFF58":"x","\u1E8B":"x","\u1E8D":"x","\u24E8":"y","\uFF59":"y","\u1EF3":"y","\u00FD":"y","\u0177":"y","\u1EF9":"y","\u0233":"y","\u1E8F":"y","\u00FF":"y","\u1EF7":"y","\u1E99":"y","\u1EF5":"y","\u01B4":"y","\u024F":"y","\u1EFF":"y","\u24E9":"z","\uFF5A":"z","\u017A":"z","\u1E91":"z","\u017C":"z","\u017E":"z","\u1E93":"z","\u1E95":"z","\u01B6":"z","\u0225":"z","\u0240":"z","\u2C6C":"z","\uA763":"z"};v=D(document);a=(function(){var O=1;return function(){return O++}}());function e(R){var P,Q,O,S;if(!R||R.length<1){return R}P="";for(Q=0,O=R.length;Q<O;Q++){S=R.charAt(Q);P+=d[S]||S}return P}function q(Q,R){var P=0,O=R.length;for(;P<O;P=P+1){if(t(Q,R[P])){return P}}return -1}function M(){var O=D(B);O.appendTo("body");var P={width:O.width()-O[0].clientWidth,height:O.height()-O[0].clientHeight};O.remove();return P}function t(P,O){if(P===O){return true}if(P===m||O===m){return false}if(P===null||O===null){return false}if(P.constructor===String){return P+""===O+""}if(O.constructor===String){return O+""===P+""}return false}function i(P,R){var S,Q,O;if(P===null||P.length<1){return[]}S=P.split(R);for(Q=0,O=S.length;Q<O;Q=Q+1){S[Q]=D.trim(S[Q])}return S}function h(O){return O.outerWidth(false)-O.width()}function F(P){var O="keyup-change-value";P.on("keydown",function(){if(D.data(P,O)===m){D.data(P,O,P.val())}});P.on("keyup",function(){var Q=D.data(P,O);if(Q!==m&&P.val()!==Q){D.removeData(P,O);P.trigger("keyup-change")}})}v.on("mousemove",function(O){o.x=O.pageX;o.y=O.pageY});function J(O){O.on("mousemove",function(Q){var P=o;if(P===m||P.x!==Q.pageX||P.y!==Q.pageY){D(Q.target).trigger("mousemove-filtered",Q)}})}function k(R,P,O){O=O||m;var Q;return function(){var S=arguments;window.clearTimeout(Q);Q=window.setTimeout(function(){P.apply(O,S)},R)}}function s(Q){var O=false,P;return function(){if(O===false){P=Q();O=true}return P}}function l(O,Q){var P=k(O,function(R){Q.trigger("scroll-debounced",R)});Q.on("scroll",function(R){if(q(R.target,Q.get())>=0){P(R)}})}function I(O){if(O[0]===document.activeElement){return}window.setTimeout(function(){var Q=O[0],R=O.val().length,P;O.focus();if(O.is(":visible")&&Q===document.activeElement){if(Q.setSelectionRange){Q.setSelectionRange(R,R)}else{if(Q.createTextRange){P=Q.createTextRange();P.collapse(false);P.select()}}}},0)}function f(O){O=D(O)[0];var R=0;var P=0;if("selectionStart" in O){R=O.selectionStart;P=O.selectionEnd-R}else{if("selection" in document){O.focus();var Q=document.selection.createRange();P=document.selection.createRange().text.length;Q.moveStart("character",-O.value.length);R=Q.text.length-P}}return{offset:R,length:P}}function A(O){O.preventDefault();O.stopPropagation()}function b(O){O.preventDefault();O.stopImmediatePropagation()}function n(P){if(!p){var O=P[0].currentStyle||window.getComputedStyle(P[0],null);p=D(document.createElement("div")).css({position:"absolute",left:"-10000px",top:"-10000px",display:"none",fontSize:O.fontSize,fontFamily:O.fontFamily,fontStyle:O.fontStyle,fontWeight:O.fontWeight,letterSpacing:O.letterSpacing,textTransform:O.textTransform,whiteSpace:"nowrap"});p.attr("class","select2-sizer");D("body").append(p)}p.text(P.val());return p.width()}function j(P,T,O){var R,S=[],Q;R=P.attr("class");if(R){R=""+R;D(R.split(" ")).each2(function(){if(this.indexOf("select2-")===0){S.push(this)}})}R=T.attr("class");if(R){R=""+R;D(R.split(" ")).each2(function(){if(this.indexOf("select2-")!==0){Q=O(this);if(Q){S.push(this)}}})}P.attr("class",S.join(" "))}function u(T,S,Q,O){var R=e(T.toUpperCase()).indexOf(e(S.toUpperCase())),P=S.length;if(R<0){Q.push(O(T));return}Q.push(O(T.substring(0,R)));Q.push("<span class='select2-match'>");Q.push(O(T.substring(R,R+P)));Q.push("</span>");Q.push(O(T.substring(R+P,T.length)))}function G(O){var P={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return String(O).replace(/[&<>"'\/\\]/g,function(Q){return P[Q]})}function E(P){var S,Q=null,T=P.quietMillis||100,R=P.url,O=this;return function(U){window.clearTimeout(S);S=window.setTimeout(function(){var X=P.data,W=R,Z=P.transport||D.fn.select2.ajaxDefaults.transport,V={type:P.type||"GET",cache:P.cache||false,jsonpCallback:P.jsonpCallback||m,dataType:P.dataType||"json"},Y=D.extend({},D.fn.select2.ajaxDefaults.params,V);X=X?X.call(O,U.term,U.page,U.context):null;W=(typeof W==="function")?W.call(O,U.term,U.page,U.context):W;if(Q){Q.abort()}if(P.params){if(D.isFunction(P.params)){D.extend(Y,P.params.call(O))}else{D.extend(Y,P.params)}}D.extend(Y,{url:W,dataType:P.dataType,data:X,success:function(ab){var aa=P.results(ab,U.page);U.callback(aa)}});Q=Z.call(O,Y)},T)}}function H(P){var S=P,R,Q,T=function(U){return""+U.text};if(D.isArray(S)){Q=S;S={results:Q}}if(D.isFunction(S)===false){Q=S;S=function(){return Q}}var O=S();if(O.text){T=O.text;if(!D.isFunction(T)){R=O.text;T=function(U){return U[R]}}}return function(W){var V=W.term,U={results:[]},X;if(V===""){W.callback(S());return}X=function(Z,ab){var aa,Y;Z=Z[0];if(Z.children){aa={};for(Y in Z){if(Z.hasOwnProperty(Y)){aa[Y]=Z[Y]}}aa.children=[];D(Z.children).each2(function(ac,ad){X(ad,aa.children)});if(aa.children.length||W.matcher(V,T(aa),Z)){ab.push(aa)}}else{if(W.matcher(V,T(Z),Z)){ab.push(Z)}}};D(S().results).each2(function(Z,Y){X(Y,U.results)});W.callback(U)}}function z(P){var O=D.isFunction(P);return function(S){var R=S.term,Q={results:[]};D(O?P():P).each(function(){var T=this.text!==m,U=T?this.text:this;if(R===""||S.matcher(R,U)){Q.results.push(T?this:{id:this,text:this})}});S.callback(Q)}}function y(O,P){if(D.isFunction(O)){return true}if(!O){return false}throw new Error(P+" must be a function or a falsy value")}function C(O){return D.isFunction(O)?O():O}function r(O){var P=0;D.each(O,function(Q,R){if(R.children){P+=r(R.children)}else{P++}});return P}function g(W,X,U,O){var P=W,Y=false,R,V,S,Q,T;if(!O.createSearchChoice||!O.tokenSeparators||O.tokenSeparators.length<1){return m}while(true){V=-1;for(S=0,Q=O.tokenSeparators.length;S<Q;S++){T=O.tokenSeparators[S];V=W.indexOf(T);if(V>=0){break}}if(V<0){break}R=W.substring(0,V);W=W.substring(V+T.length);if(R.length>0){R=O.createSearchChoice.call(this,R,X);if(R!==m&&R!==null&&O.id(R)!==m&&O.id(R)!==null){Y=false;for(S=0,Q=X.length;S<Q;S++){if(t(O.id(R),O.id(X[S]))){Y=true;break}}if(!Y){U(R)}}}}if(P!==W){return W}}function L(O,P){var Q=function(){};Q.prototype=new O;Q.prototype.constructor=Q;Q.prototype.parent=O.prototype;Q.prototype=D.extend(Q.prototype,P);return Q}N=L(Object,{bind:function(P){var O=this;return function(){P.apply(O,arguments)}},init:function(S){var Q,P,T=".select2-results",R,O;this.opts=S=this.prepareOpts(S);this.id=S.id;if(S.element.data("select2")!==m&&S.element.data("select2")!==null){S.element.data("select2").destroy()}this.container=this.createContainer();this.containerId="s2id_"+(S.element.attr("id")||"autogen"+a());this.containerSelector="#"+this.containerId.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,"\\$1");this.container.attr("id",this.containerId);this.body=s(function(){return S.element.closest("body")});j(this.container,this.opts.element,this.opts.adaptContainerCssClass);this.container.attr("style",S.element.attr("style"));this.container.css(C(S.containerCss));this.container.addClass(C(S.containerCssClass));this.elementTabIndex=this.opts.element.attr("tabindex");this.opts.element.data("select2",this).attr("tabindex","-1").before(this.container);this.container.data("select2",this);this.dropdown=this.container.find(".select2-drop");this.dropdown.addClass(C(S.dropdownCssClass));this.dropdown.data("select2",this);j(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass);this.results=Q=this.container.find(T);this.search=P=this.container.find("input.select2-input");this.queryCount=0;this.resultsPage=0;this.context=null;this.initContainer();J(this.results);this.dropdown.on("mousemove-filtered touchstart touchmove touchend",T,this.bind(this.highlightUnderEvent));l(80,this.results);this.dropdown.on("scroll-debounced",T,this.bind(this.loadMoreIfNeeded));D(this.container).on("change",".select2-input",function(U){U.stopPropagation()});D(this.dropdown).on("change",".select2-input",function(U){U.stopPropagation()});if(D.fn.mousewheel){Q.mousewheel(function(Y,Z,W,V){var X=Q.scrollTop(),U;if(V>0&&X-V<=0){Q.scrollTop(0);A(Y)}else{if(V<0&&Q.get(0).scrollHeight-Q.scrollTop()+V<=Q.height()){Q.scrollTop(Q.get(0).scrollHeight-Q.height());A(Y)}}})}F(P);P.on("keyup-change input paste",this.bind(this.updateResults));P.on("focus",function(){P.addClass("select2-focused")});P.on("blur",function(){P.removeClass("select2-focused")});this.dropdown.on("mouseup",T,this.bind(function(U){if(D(U.target).closest(".select2-result-selectable").length>0){this.highlightUnderEvent(U);this.selectHighlighted(U)}}));this.dropdown.on("click mouseup mousedown",function(U){U.stopPropagation()});if(D.isFunction(this.opts.initSelection)){this.initSelection();this.monitorSource()}if(S.maximumInputLength!==null){this.search.attr("maxlength",S.maximumInputLength)}var R=S.element.prop("disabled");if(R===m){R=false}this.enable(!R);var O=S.element.prop("readonly");if(O===m){O=false}this.readonly(O);w=w||M();this.autofocus=S.element.prop("autofocus");S.element.prop("autofocus",false);if(this.autofocus){this.focus()}this.nextSearchTerm=m},destroy:function(){var P=this.opts.element,O=P.data("select2");this.close();if(this.propertyObserver){delete this.propertyObserver;this.propertyObserver=null}if(O!==m){O.container.remove();O.dropdown.remove();P.removeClass("select2-offscreen").removeData("select2").off(".select2").prop("autofocus",this.autofocus||false);if(this.elementTabIndex){P.attr({tabindex:this.elementTabIndex})}else{P.removeAttr("tabindex")}P.show()}},optionToData:function(O){if(O.is("option")){return{id:O.prop("value"),text:O.text(),element:O.get(),css:O.attr("class"),disabled:O.prop("disabled"),locked:t(O.attr("locked"),"locked")||t(O.data("locked"),true)}}else{if(O.is("optgroup")){return{text:O.attr("label"),children:[],element:O.get(),css:O.attr("class")}}}},prepareOpts:function(T){var R,P,O,S,Q=this;R=T.element;if(R.get(0).tagName.toLowerCase()==="select"){this.select=P=T.element}if(P){D.each(["id","multiple","ajax","query","createSearchChoice","initSelection","data","tags"],function(){if(this in T){throw new Error("Option '"+this+"' is not allowed for Select2 when attached to a <select> element.")}})}T=D.extend({},{populateResults:function(V,X,aa){var Z,Y,U,W,ab=this.opts.id;Z=function(ai,ac,ah){var aj,ae,ao,al,af,an,ad,am,ak,ag;ai=T.sortResults(ai,ac,aa);for(aj=0,ae=ai.length;aj<ae;aj=aj+1){ao=ai[aj];af=(ao.disabled===true);al=(!af)&&(ab(ao)!==m);an=ao.children&&ao.children.length>0;ad=D("<li></li>");ad.addClass("select2-results-dept-"+ah);ad.addClass("select2-result");ad.addClass(al?"select2-result-selectable":"select2-result-unselectable");if(af){ad.addClass("select2-disabled")}if(an){ad.addClass("select2-result-with-children")}ad.addClass(Q.opts.formatResultCssClass(ao));am=D(document.createElement("div"));am.addClass("select2-result-label");ag=T.formatResult(ao,am,aa,Q.opts.escapeMarkup);if(ag!==m){am.html(ag)}ad.append(am);if(an){ak=D("<ul></ul>");ak.addClass("select2-result-sub");Z(ao.children,ak,ah+1);ad.append(ak)}ad.data("select2-data",ao);ac.append(ad)}};Z(X,V,0)}},D.fn.select2.defaults,T);if(typeof(T.id)!=="function"){O=T.id;T.id=function(U){return U[O]}}if(D.isArray(T.element.data("select2Tags"))){if("tags" in T){throw"tags specified as both an attribute 'data-select2-tags' and in options of Select2 "+T.element.attr("id")}T.tags=T.element.data("select2Tags")}if(P){T.query=this.bind(function(Y){var X={results:[],more:false},W=Y.term,V,U,Z;Z=function(aa,ac){var ab;if(aa.is("option")){if(Y.matcher(W,aa.text(),aa)){ac.push(Q.optionToData(aa))}}else{if(aa.is("optgroup")){ab=Q.optionToData(aa);aa.children().each2(function(ad,ae){Z(ae,ab.children)});if(ab.children.length>0){ac.push(ab)}}}};V=R.children();if(this.getPlaceholder()!==m&&V.length>0){U=this.getPlaceholderOption();if(U){V=V.not(U)}}V.each2(function(aa,ab){Z(ab,X.results)});Y.callback(X)});T.id=function(U){return U.id};T.formatResultCssClass=function(U){return U.css}}else{if(!("query" in T)){if("ajax" in T){S=T.element.data("ajax-url");if(S&&S.length>0){T.ajax.url=S}T.query=E.call(T.element,T.ajax)}else{if("data" in T){T.query=H(T.data)}else{if("tags" in T){T.query=z(T.tags);if(T.createSearchChoice===m){T.createSearchChoice=function(U){return{id:D.trim(U),text:D.trim(U)}}}if(T.initSelection===m){T.initSelection=function(U,W){var V=[];D(i(U.val(),T.separator)).each(function(){var Z=this,Y=this,X=T.tags;if(D.isFunction(X)){X=X()}D(X).each(function(){if(t(this.id,Z)){Y=this.text;return false}});V.push({id:Z,text:Y})});W(V)}}}}}}}if(typeof(T.query)!=="function"){throw"query function not defined for Select2 "+T.element.attr("id")}return T},monitorSource:function(){var O=this.opts.element,P;O.on("change.select2",this.bind(function(Q){if(this.opts.element.data("select2-change-triggered")!==true){this.initSelection()}}));P=this.bind(function(){var S,R,Q=this;var T=O.prop("disabled");if(T===m){T=false}this.enable(!T);var R=O.prop("readonly");if(R===m){R=false}this.readonly(R);j(this.container,this.opts.element,this.opts.adaptContainerCssClass);this.container.addClass(C(this.opts.containerCssClass));j(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass);this.dropdown.addClass(C(this.opts.dropdownCssClass))});O.on("propertychange.select2 DOMAttrModified.select2",P);if(this.mutationCallback===m){this.mutationCallback=function(Q){Q.forEach(P)}}if(typeof WebKitMutationObserver!=="undefined"){if(this.propertyObserver){delete this.propertyObserver;this.propertyObserver=null}this.propertyObserver=new WebKitMutationObserver(this.mutationCallback);this.propertyObserver.observe(O.get(0),{attributes:true,subtree:false})}},triggerSelect:function(P){var O=D.Event("select2-selecting",{val:this.id(P),object:P});this.opts.element.trigger(O);return !O.isDefaultPrevented()},triggerChange:function(O){O=O||{};O=D.extend({},O,{type:"change",val:this.val()});this.opts.element.data("select2-change-triggered",true);this.opts.element.trigger(O);this.opts.element.data("select2-change-triggered",false);this.opts.element.click();if(this.opts.blurOnChange){this.opts.element.blur()}},isInterfaceEnabled:function(){return this.enabledInterface===true},enableInterface:function(){var O=this._enabled&&!this._readonly,P=!O;if(O===this.enabledInterface){return false}this.container.toggleClass("select2-container-disabled",P);this.close();this.enabledInterface=O;return true},enable:function(O){if(O===m){O=true}if(this._enabled===O){return}this._enabled=O;this.opts.element.prop("disabled",!O);this.enableInterface()},disable:function(){this.enable(false)},readonly:function(O){if(O===m){O=false}if(this._readonly===O){return false}this._readonly=O;this.opts.element.prop("readonly",O);this.enableInterface();return true},opened:function(){return this.container.hasClass("select2-dropdown-open")},positionDropdown:function(){var Q=this.dropdown,S=this.container.offset(),Z=this.container.outerHeight(false),aa=this.container.outerWidth(false),W=Q.outerHeight(false),P=D(window).scrollLeft()+D(window).width(),ad=D(window).scrollTop()+D(window).height(),R=S.top+Z,ab=S.left,O=R+W<=ad,U=(S.top-W)>=this.body().scrollTop(),X=Q.outerWidth(false),af=ab+X<=P,ae=Q.hasClass("select2-drop-above"),T,ac,V,Y;if(this.opts.dropdownAutoWidth){Y=D(".select2-results",Q)[0];Q.addClass("select2-drop-auto-width");Q.css("width","");X=Q.outerWidth(false)+(Y.scrollHeight===Y.clientHeight?0:w.width);X>aa?aa=X:X=aa;af=ab+X<=P}else{this.container.removeClass("select2-drop-auto-width")}if(this.body().css("position")!=="static"){T=this.body().offset();R-=T.top;ab-=T.left}if(ae){ac=true;if(!U&&O){ac=false}}else{ac=false;if(!O&&U){ac=true}}if(!af){ab=S.left+aa-X}if(ac){R=S.top-W;this.container.addClass("select2-drop-above");Q.addClass("select2-drop-above")}else{this.container.removeClass("select2-drop-above");Q.removeClass("select2-drop-above")}V=D.extend({top:R,left:ab,width:aa},C(this.opts.dropdownCss));Q.css(V)},shouldOpen:function(){var O;if(this.opened()){return false}if(this._enabled===false||this._readonly===true){return false}O=D.Event("select2-opening");this.opts.element.trigger(O);return !O.isDefaultPrevented()},clearDropdownAlignmentPreference:function(){this.container.removeClass("select2-drop-above");this.dropdown.removeClass("select2-drop-above")},open:function(){if(!this.shouldOpen()){return false}this.opening();return true},opening:function(){var U=this.containerId,O="scroll."+U,R="resize."+U,Q="orientationchange."+U,P,T;this.container.addClass("select2-dropdown-open").addClass("select2-container-active");this.clearDropdownAlignmentPreference();if(this.dropdown[0]!==this.body().children().last()[0]){this.dropdown.detach().appendTo(this.body())}P=D("#select2-drop-mask");if(P.length==0){P=D(document.createElement("div"));P.attr("id","select2-drop-mask").attr("class","select2-drop-mask");P.hide();P.appendTo(this.body());P.on("mousedown touchstart click",function(W){var X=D("#select2-drop"),V;if(X.length>0){V=X.data("select2");if(V.opts.selectOnBlur){V.selectHighlighted({noFocus:true})}V.close({focus:false});W.preventDefault();W.stopPropagation()}})}if(this.dropdown.prev()[0]!==P[0]){this.dropdown.before(P)}D("#select2-drop").removeAttr("id");this.dropdown.attr("id","select2-drop");P.show();this.positionDropdown();this.dropdown.show();this.positionDropdown();this.dropdown.addClass("select2-drop-active");var S=this;this.container.parents().add(window).each(function(){D(this).on(R+" "+O+" "+Q,function(V){S.positionDropdown()})})},close:function(){if(!this.opened()){return}var R=this.containerId,O="scroll."+R,Q="resize."+R,P="orientationchange."+R;this.container.parents().add(window).each(function(){D(this).off(O).off(Q).off(P)});this.clearDropdownAlignmentPreference();D("#select2-drop-mask").hide();this.dropdown.removeAttr("id");this.dropdown.hide();this.container.removeClass("select2-dropdown-open");this.results.empty();this.clearSearch();this.search.removeClass("select2-active");this.opts.element.trigger(D.Event("select2-close"))},externalSearch:function(O){this.open();this.search.val(O);this.updateResults(false)},clearSearch:function(){},getMaximumSelectionSize:function(){return C(this.opts.maximumSelectionSize)},ensureHighlightVisible:function(){var R=this.results,Q,O,V,U,S,T,P;O=this.highlight();if(O<0){return}if(O==0){R.scrollTop(0);return}Q=this.findHighlightableChoices().find(".select2-result-label");V=D(Q[O]);U=V.offset().top+V.outerHeight(true);if(O===Q.length-1){P=R.find("li.select2-more-results");if(P.length>0){U=P.offset().top+P.outerHeight(true)}}S=R.offset().top+R.outerHeight(true);if(U>S){R.scrollTop(R.scrollTop()+(U-S))}T=V.offset().top-R.offset().top;if(T<0&&V.css("display")!="none"){R.scrollTop(R.scrollTop()+T)}},findHighlightableChoices:function(){return this.results.find(".select2-result-selectable:not(.select2-selected):not(.select2-disabled)")},moveHighlight:function(R){var Q=this.findHighlightableChoices(),P=this.highlight();while(P>-1&&P<Q.length){P+=R;var O=D(Q[P]);if(O.hasClass("select2-result-selectable")&&!O.hasClass("select2-disabled")&&!O.hasClass("select2-selected")){this.highlight(P);break}}},highlight:function(P){var R=this.findHighlightableChoices(),O,Q;if(arguments.length===0){return q(R.filter(".select2-highlighted")[0],R.get())}if(P>=R.length){P=R.length-1}if(P<0){P=0}this.removeHighlight();O=D(R[P]);O.addClass("select2-highlighted");this.ensureHighlightVisible();Q=O.data("select2-data");if(Q){this.opts.element.trigger({type:"select2-highlight",val:this.id(Q),choice:Q})}},removeHighlight:function(){this.results.find(".select2-highlighted").removeClass("select2-highlighted")},countSelectableResults:function(){return this.findHighlightableChoices().length},highlightUnderEvent:function(P){var O=D(P.target).closest(".select2-result-selectable");if(O.length>0&&!O.is(".select2-highlighted")){var Q=this.findHighlightableChoices();this.highlight(Q.index(O))}else{if(O.length==0){this.removeHighlight()}}},loadMoreIfNeeded:function(){var S=this.results,R=S.find("li.select2-more-results"),V,U=-1,T=this.resultsPage+1,O=this,Q=this.search.val(),P=this.context;if(R.length===0){return}V=R.offset().top-S.offset().top-S.height();if(V<=this.opts.loadMorePadding){R.addClass("select2-active");this.opts.query({element:this.opts.element,term:Q,page:T,context:P,matcher:this.opts.matcher,callback:this.bind(function(W){if(!O.opened()){return}O.opts.populateResults.call(this,S,W.results,{term:Q,page:T,context:P});O.postprocessResults(W,false,false);if(W.more===true){R.detach().appendTo(S).text(O.opts.formatLoadMore(T+1));window.setTimeout(function(){O.loadMoreIfNeeded()},10)}else{R.remove()}O.positionDropdown();O.resultsPage=T;O.context=W.context;this.opts.element.trigger({type:"select2-loaded",items:W})})})}},tokenize:function(){},updateResults:function(W){var aa=this.search,U=this.results,O=this.opts,T,Z=this,X,S=aa.val(),Q=D.data(this.container,"select2-last-term"),Y;if(W!==true&&Q&&t(S,Q)){return}D.data(this.container,"select2-last-term",S);if(W!==true&&(this.showSearchInput===false||!this.opened())){return}function V(){aa.removeClass("select2-active");Z.positionDropdown()}function P(ab){U.html(ab);V()}Y=++this.queryCount;var R=this.getMaximumSelectionSize();if(R>=1){T=this.data();if(D.isArray(T)&&T.length>=R&&y(O.formatSelectionTooBig,"formatSelectionTooBig")){P("<li class='select2-selection-limit'>"+O.formatSelectionTooBig(R)+"</li>");return}}if(aa.val().length<O.minimumInputLength){if(y(O.formatInputTooShort,"formatInputTooShort")){P("<li class='select2-no-results'>"+O.formatInputTooShort(aa.val(),O.minimumInputLength)+"</li>")}else{P("")}if(W&&this.showSearch){this.showSearch(true)}return}if(O.maximumInputLength&&aa.val().length>O.maximumInputLength){if(y(O.formatInputTooLong,"formatInputTooLong")){P("<li class='select2-no-results'>"+O.formatInputTooLong(aa.val(),O.maximumInputLength)+"</li>")}else{P("")}return}if(O.formatSearching&&this.findHighlightableChoices().length===0){P("<li class='select2-searching'>"+O.formatSearching()+"</li>")}aa.addClass("select2-active");this.removeHighlight();X=this.tokenize();if(X!=m&&X!=null){aa.val(X)}this.resultsPage=1;O.query({element:O.element,term:aa.val(),page:this.resultsPage,context:null,matcher:O.matcher,callback:this.bind(function(ac){var ab;if(Y!=this.queryCount){return}if(!this.opened()){this.search.removeClass("select2-active");return}this.context=(ac.context===m)?null:ac.context;if(this.opts.createSearchChoice&&aa.val()!==""){ab=this.opts.createSearchChoice.call(Z,aa.val(),ac.results);if(ab!==m&&ab!==null&&Z.id(ab)!==m&&Z.id(ab)!==null){if(D(ac.results).filter(function(){return t(Z.id(this),Z.id(ab))}).length===0){ac.results.unshift(ab)}}}if(ac.results.length===0&&y(O.formatNoMatches,"formatNoMatches")){P("<li class='select2-no-results'>"+O.formatNoMatches(aa.val())+"</li>");return}U.empty();Z.opts.populateResults.call(this,U,ac.results,{term:aa.val(),page:this.resultsPage,context:null});if(ac.more===true&&y(O.formatLoadMore,"formatLoadMore")){U.append("<li class='select2-more-results'>"+Z.opts.escapeMarkup(O.formatLoadMore(this.resultsPage))+"</li>");window.setTimeout(function(){Z.loadMoreIfNeeded()},10)}this.postprocessResults(ac,W);V();this.opts.element.trigger({type:"select2-loaded",items:ac})})})},cancel:function(){this.close()},blur:function(){if(this.opts.selectOnBlur){this.selectHighlighted({noFocus:true})}this.close();this.container.removeClass("select2-container-active");if(this.search[0]===document.activeElement){this.search.blur()}this.clearSearch();this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus")},focusSearch:function(){I(this.search)},selectHighlighted:function(P){var O=this.highlight(),Q=this.results.find(".select2-highlighted"),R=Q.closest(".select2-result").data("select2-data");if(R){this.highlight(O);this.onSelect(R,P)}else{if(P&&P.noFocus){this.close()}}},getPlaceholder:function(){var O;return this.opts.element.attr("placeholder")||this.opts.element.attr("data-placeholder")||this.opts.element.data("placeholder")||this.opts.placeholder||((O=this.getPlaceholderOption())!==m?O.text():m)},getPlaceholderOption:function(){if(this.select){var O=this.select.children().first();if(this.opts.placeholderOption!==m){return(this.opts.placeholderOption==="first"&&O)||(typeof this.opts.placeholderOption==="function"&&this.opts.placeholderOption(this.select))}else{if(O.text()===""&&O.val()===""){return O}}}},initContainerWidth:function(){function P(){var T,R,U,S,Q;if(this.opts.width==="off"){return null}else{if(this.opts.width==="element"){return this.opts.element.outerWidth(false)===0?"auto":this.opts.element.outerWidth(false)+"px"}else{if(this.opts.width==="copy"||this.opts.width==="resolve"){T=this.opts.element.attr("style");if(T!==m){R=T.split(";");for(S=0,Q=R.length;S<Q;S=S+1){U=R[S].replace(/\s/g,"").match(/[^-]width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i);if(U!==null&&U.length>=1){return U[1]}}}if(this.opts.width==="resolve"){T=this.opts.element.css("width");if(T.indexOf("%")>0){return T}return(this.opts.element.outerWidth(false)===0?"auto":this.opts.element.outerWidth(false)+"px")}return null}else{if(D.isFunction(this.opts.width)){return this.opts.width()}else{return this.opts.width}}}}}var O=P.call(this);if(O!==null){this.container.css("width",O)}}});x=L(N,{createContainer:function(){var O=D(document.createElement("div")).attr({"class":"select2-container"}).html(["<a href='javascript:void(0)' onclick='return false;' class='select2-choice' tabindex='-1'>"," <span class='select2-chosen'> </span><abbr class='select2-search-choice-close'></abbr>"," <span class='select2-arrow'><b></b></span>","</a>","<input class='select2-focusser select2-offscreen' type='text'/>","<div class='select2-drop select2-display-none'>"," <div class='select2-search'>"," <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input'/>"," </div>"," <ul class='select2-results'>"," </ul>","</div>"].join(""));return O},enableInterface:function(){if(this.parent.enableInterface.apply(this,arguments)){this.focusser.prop("disabled",!this.isInterfaceEnabled())}},opening:function(){var Q,P,O;if(this.opts.minimumResultsForSearch>=0){this.showSearch(true)}this.parent.opening.apply(this,arguments);if(this.showSearchInput!==false){this.search.val(this.focusser.val())}this.search.focus();Q=this.search.get(0);if(Q.createTextRange){P=Q.createTextRange();P.collapse(false);P.select()}else{if(Q.setSelectionRange){O=this.search.val().length;Q.setSelectionRange(O,O)}}if(this.search.val()===""){if(this.nextSearchTerm!=m){this.search.val(this.nextSearchTerm);this.search.select()}}this.focusser.prop("disabled",true).val("");this.updateResults(true);this.opts.element.trigger(D.Event("select2-open"))},close:function(O){if(!this.opened()){return}this.parent.close.apply(this,arguments);O=O||{focus:true};this.focusser.removeAttr("disabled");if(O.focus){this.focusser.focus()}},focus:function(){if(this.opened()){this.close()}else{this.focusser.removeAttr("disabled");this.focusser.focus()}},isFocused:function(){return this.container.hasClass("select2-container-active")},cancel:function(){this.parent.cancel.apply(this,arguments);this.focusser.removeAttr("disabled");this.focusser.focus()},destroy:function(){D("label[for='"+this.focusser.attr("id")+"']").attr("for",this.opts.element.attr("id"));this.parent.destroy.apply(this,arguments)},initContainer:function(){var P,O=this.container,Q=this.dropdown;if(this.opts.minimumResultsForSearch<0){this.showSearch(false)}else{this.showSearch(true)}this.selection=P=O.find(".select2-choice");this.focusser=O.find(".select2-focusser");this.focusser.attr("id","s2id_autogen"+a());D("label[for='"+this.opts.element.attr("id")+"']").attr("for",this.focusser.attr("id"));this.focusser.attr("tabindex",this.elementTabIndex);this.search.on("keydown",this.bind(function(R){if(!this.isInterfaceEnabled()){return}if(R.which===K.PAGE_UP||R.which===K.PAGE_DOWN){A(R);return}switch(R.which){case K.UP:case K.DOWN:this.moveHighlight((R.which===K.UP)?-1:1);A(R);return;case K.ENTER:this.selectHighlighted();A(R);return;case K.TAB:if(this.opts.selectOnBlur){this.selectHighlighted({noFocus:true})}return;case K.ESC:this.cancel(R);A(R);return}}));this.search.on("blur",this.bind(function(R){if(document.activeElement===this.body().get(0)){window.setTimeout(this.bind(function(){this.search.focus()}),0)}}));this.focusser.on("keydown",this.bind(function(R){if(!this.isInterfaceEnabled()){return}if(R.which===K.TAB||K.isControl(R)||K.isFunctionKey(R)||R.which===K.ESC){return}if(this.opts.openOnEnter===false&&R.which===K.ENTER){A(R);return}if(R.which==K.DOWN||R.which==K.UP||(R.which==K.ENTER&&this.opts.openOnEnter)){if(R.altKey||R.ctrlKey||R.shiftKey||R.metaKey){return}this.open();A(R);return}if(R.which==K.DELETE||R.which==K.BACKSPACE){if(this.opts.allowClear){this.clear()}A(R);return}}));F(this.focusser);this.focusser.on("keyup-change input",this.bind(function(R){if(this.opts.minimumResultsForSearch>=0){R.stopPropagation();if(this.opened()){return}this.open()}}));P.on("mousedown","abbr",this.bind(function(R){if(!this.isInterfaceEnabled()){return}this.clear();b(R);this.close();this.selection.focus()}));P.on("mousedown",this.bind(function(R){if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger(D.Event("select2-focus"))}if(this.opened()){this.close()}else{if(this.isInterfaceEnabled()){this.open()}}A(R)}));Q.on("mousedown",this.bind(function(){this.search.focus()}));P.on("focus",this.bind(function(R){A(R)}));this.focusser.on("focus",this.bind(function(){if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger(D.Event("select2-focus"))}this.container.addClass("select2-container-active")})).on("blur",this.bind(function(){if(!this.opened()){this.container.removeClass("select2-container-active");this.opts.element.trigger(D.Event("select2-blur"))}}));this.search.on("focus",this.bind(function(){if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger(D.Event("select2-focus"))}this.container.addClass("select2-container-active")}));this.initContainerWidth();this.opts.element.addClass("select2-offscreen");this.setPlaceholder()},clear:function(P){var Q=this.selection.data("select2-data");if(Q){var O=this.getPlaceholderOption();this.opts.element.val(O?O.val():"");this.selection.find(".select2-chosen").empty();this.selection.removeData("select2-data");this.setPlaceholder();if(P!==false){this.opts.element.trigger({type:"select2-removed",val:this.id(Q),choice:Q});this.triggerChange({removed:Q})}}},initSelection:function(){var P;if(this.isPlaceholderOptionSelected()){this.updateSelection(null);this.close();this.setPlaceholder()}else{var O=this;this.opts.initSelection.call(null,this.opts.element,function(Q){if(Q!==m&&Q!==null){O.updateSelection(Q);O.close();O.setPlaceholder()}})}},isPlaceholderOptionSelected:function(){var O;if(!this.opts.placeholder){return false}return((O=this.getPlaceholderOption())!==m&&O.is(":selected"))||(this.opts.element.val()==="")||(this.opts.element.val()===m)||(this.opts.element.val()===null)},prepareOpts:function(){var P=this.parent.prepareOpts.apply(this,arguments),O=this;if(P.element.get(0).tagName.toLowerCase()==="select"){P.initSelection=function(Q,S){var R=Q.find(":selected");S(O.optionToData(R))}}else{if("data" in P){P.initSelection=P.initSelection||function(R,T){var S=R.val();var Q=null;P.query({matcher:function(U,X,V){var W=t(S,P.id(V));if(W){Q=V}return W},callback:!D.isFunction(T)?D.noop:function(){T(Q)}})}}}return P},getPlaceholder:function(){if(this.select){if(this.getPlaceholderOption()===m){return m}}return this.parent.getPlaceholder.apply(this,arguments)},setPlaceholder:function(){var O=this.getPlaceholder();if(this.isPlaceholderOptionSelected()&&O!==m){if(this.select&&this.getPlaceholderOption()===m){return}this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(O));this.selection.addClass("select2-default");this.container.removeClass("select2-allowclear")}},postprocessResults:function(T,P,S){var R=0,O=this,U=true;this.findHighlightableChoices().each2(function(V,W){if(t(O.id(W.data("select2-data")),O.opts.element.val())){R=V;return false}});if(S!==false){if(P===true&&R>=0){this.highlight(R)}else{this.highlight(0)}}if(P===true){var Q=this.opts.minimumResultsForSearch;if(Q>=0){this.showSearch(r(T.results)>=Q)}}},showSearch:function(O){if(this.showSearchInput===O){return}this.showSearchInput=O;this.dropdown.find(".select2-search").toggleClass("select2-search-hidden",!O);this.dropdown.find(".select2-search").toggleClass("select2-offscreen",!O);D(this.dropdown,this.container).toggleClass("select2-with-searchbox",O)},onSelect:function(Q,P){if(!this.triggerSelect(Q)){return}var O=this.opts.element.val(),R=this.data();this.opts.element.val(this.id(Q));this.updateSelection(Q);this.opts.element.trigger({type:"select2-selected",val:this.id(Q),choice:Q});this.nextSearchTerm=this.opts.nextSearchTerm(Q,this.search.val());this.close();if(!P||!P.noFocus){this.selection.focus()}if(!t(O,this.id(Q))){this.triggerChange({added:Q,removed:R})}},updateSelection:function(R){var P=this.selection.find(".select2-chosen"),Q,O;this.selection.data("select2-data",R);P.empty();if(R!==null){Q=this.opts.formatSelection(R,P,this.opts.escapeMarkup)}if(Q!==m){P.append(Q)}O=this.opts.formatSelectionCssClass(R,P);if(O!==m){P.addClass(O)}this.selection.removeClass("select2-default");if(this.opts.allowClear&&this.getPlaceholder()!==m){this.container.addClass("select2-allowclear")}},val:function(){var S,P=false,Q=null,O=this,R=this.data();if(arguments.length===0){return this.opts.element.val()}S=arguments[0];if(arguments.length>1){P=arguments[1]}if(this.select){this.select.val(S).find(":selected").each2(function(T,U){Q=O.optionToData(U);return false});this.updateSelection(Q);this.setPlaceholder();if(P){this.triggerChange({added:Q,removed:R})}}else{if(!S&&S!==0){this.clear(P);return}if(this.opts.initSelection===m){throw new Error("cannot call val() if initSelection() is not defined")}this.opts.element.val(S);this.opts.initSelection(this.opts.element,function(T){O.opts.element.val(!T?"":O.id(T));O.updateSelection(T);O.setPlaceholder();if(P){O.triggerChange({added:T,removed:R})}})}},clearSearch:function(){this.search.val("");this.focusser.val("")},data:function(Q){var P,O=false;if(arguments.length===0){P=this.selection.data("select2-data");if(P==m){P=null}return P}else{if(arguments.length>1){O=arguments[1]}if(!Q){this.clear(O)}else{P=this.data();this.opts.element.val(!Q?"":this.id(Q));this.updateSelection(Q);if(O){this.triggerChange({added:Q,removed:P})}}}}});c=L(N,{createContainer:function(){var O=D(document.createElement("div")).attr({"class":"select2-container select2-container-multi"}).html(["<ul class='select2-choices'>"," <li class='select2-search-field'>"," <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input'>"," </li>","</ul>","<div class='select2-drop select2-drop-multi select2-display-none'>"," <ul class='select2-results'>"," </ul>","</div>"].join(""));return O},prepareOpts:function(){var P=this.parent.prepareOpts.apply(this,arguments),O=this;if(P.element.get(0).tagName.toLowerCase()==="select"){P.initSelection=function(Q,S){var R=[];Q.find(":selected").each2(function(T,U){R.push(O.optionToData(U))});S(R)}}else{if("data" in P){P.initSelection=P.initSelection||function(Q,T){var R=i(Q.val(),P.separator);var S=[];P.query({matcher:function(U,X,V){var W=D.grep(R,function(Y){return t(Y,P.id(V))}).length;if(W){S.push(V)}return W},callback:!D.isFunction(T)?D.noop:function(){var U=[];for(var X=0;X<R.length;X++){var Y=R[X];for(var W=0;W<S.length;W++){var V=S[W];if(t(Y,P.id(V))){U.push(V);S.splice(W,1);break}}}T(U)}})}}}return P},selectChoice:function(O){var P=this.container.find(".select2-search-choice-focus");if(P.length&&O&&O[0]==P[0]){}else{if(P.length){this.opts.element.trigger("choice-deselected",P)}P.removeClass("select2-search-choice-focus");if(O&&O.length){this.close();O.addClass("select2-search-choice-focus");this.opts.element.trigger("choice-selected",O)}}},destroy:function(){D("label[for='"+this.search.attr("id")+"']").attr("for",this.opts.element.attr("id"));this.parent.destroy.apply(this,arguments)},initContainer:function(){var O=".select2-choices",P;this.searchContainer=this.container.find(".select2-search-field");this.selection=P=this.container.find(O);var Q=this;this.selection.on("click",".select2-search-choice",function(R){Q.search[0].focus();Q.selectChoice(D(this))});this.search.attr("id","s2id_autogen"+a());D("label[for='"+this.opts.element.attr("id")+"']").attr("for",this.search.attr("id"));this.search.on("input paste",this.bind(function(){if(!this.isInterfaceEnabled()){return}if(!this.opened()){this.open()}}));this.search.attr("tabindex",this.elementTabIndex);this.keydowns=0;this.search.on("keydown",this.bind(function(V){if(!this.isInterfaceEnabled()){return}++this.keydowns;var T=P.find(".select2-search-choice-focus");var U=T.prev(".select2-search-choice:not(.select2-locked)");var S=T.next(".select2-search-choice:not(.select2-locked)");var W=f(this.search);if(T.length&&(V.which==K.LEFT||V.which==K.RIGHT||V.which==K.BACKSPACE||V.which==K.DELETE||V.which==K.ENTER)){var R=T;if(V.which==K.LEFT&&U.length){R=U}else{if(V.which==K.RIGHT){R=S.length?S:null}else{if(V.which===K.BACKSPACE){this.unselect(T.first());this.search.width(10);R=U.length?U:S}else{if(V.which==K.DELETE){this.unselect(T.first());this.search.width(10);R=S.length?S:null}else{if(V.which==K.ENTER){R=null}}}}}this.selectChoice(R);A(V);if(!R||!R.length){this.open()}return}else{if(((V.which===K.BACKSPACE&&this.keydowns==1)||V.which==K.LEFT)&&(W.offset==0&&!W.length)){this.selectChoice(P.find(".select2-search-choice:not(.select2-locked)").last());A(V);return}else{this.selectChoice(null)}}if(this.opened()){switch(V.which){case K.UP:case K.DOWN:this.moveHighlight((V.which===K.UP)?-1:1);A(V);return;case K.ENTER:this.selectHighlighted();A(V);return;case K.TAB:if(this.opts.selectOnBlur){this.selectHighlighted({noFocus:true})}this.close();return;case K.ESC:this.cancel(V);A(V);return}}if(V.which===K.TAB||K.isControl(V)||K.isFunctionKey(V)||V.which===K.BACKSPACE||V.which===K.ESC){return}if(V.which===K.ENTER){if(this.opts.openOnEnter===false){return}else{if(V.altKey||V.ctrlKey||V.shiftKey||V.metaKey){return}}}this.open();if(V.which===K.PAGE_UP||V.which===K.PAGE_DOWN){A(V)}if(V.which===K.ENTER){A(V)}}));this.search.on("keyup",this.bind(function(R){this.keydowns=0;this.resizeSearch()}));this.search.on("blur",this.bind(function(R){this.container.removeClass("select2-container-active");this.search.removeClass("select2-focused");this.selectChoice(null);if(!this.opened()){this.clearSearch()}R.stopImmediatePropagation();this.opts.element.trigger(D.Event("select2-blur"))}));this.container.on("click",O,this.bind(function(R){if(!this.isInterfaceEnabled()){return}if(D(R.target).closest(".select2-search-choice").length>0){return}this.selectChoice(null);this.clearPlaceholder();if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger(D.Event("select2-focus"))}this.open();this.focusSearch();R.preventDefault()}));this.container.on("focus",O,this.bind(function(){if(!this.isInterfaceEnabled()){return}if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger(D.Event("select2-focus"))}this.container.addClass("select2-container-active");this.dropdown.addClass("select2-drop-active");this.clearPlaceholder()}));this.initContainerWidth();this.opts.element.addClass("select2-offscreen");this.clearSearch()},enableInterface:function(){if(this.parent.enableInterface.apply(this,arguments)){this.search.prop("disabled",!this.isInterfaceEnabled())}},initSelection:function(){var P;if(this.opts.element.val()===""&&this.opts.element.text()===""){this.updateSelection([]);this.close();this.clearSearch()}if(this.select||this.opts.element.val()!==""){var O=this;this.opts.initSelection.call(null,this.opts.element,function(Q){if(Q!==m&&Q!==null){O.updateSelection(Q);O.close();O.clearSearch()}})}},clearSearch:function(){var P=this.getPlaceholder(),O=this.getMaxSearchWidth();if(P!==m&&this.getVal().length===0&&this.search.hasClass("select2-focused")===false){this.search.val(P).addClass("select2-default");this.search.width(O>0?O:this.container.css("width"))}else{this.search.val("").width(10)}},clearPlaceholder:function(){if(this.search.hasClass("select2-default")){this.search.val("").removeClass("select2-default")}},opening:function(){this.clearPlaceholder();this.resizeSearch();this.parent.opening.apply(this,arguments);this.focusSearch();this.updateResults(true);this.search.focus();this.opts.element.trigger(D.Event("select2-open"))},close:function(){if(!this.opened()){return}this.parent.close.apply(this,arguments)},focus:function(){this.close();this.search.focus()},isFocused:function(){return this.search.hasClass("select2-focused")},updateSelection:function(R){var Q=[],P=[],O=this;D(R).each(function(){if(q(O.id(this),Q)<0){Q.push(O.id(this));P.push(this)}});R=P;this.selection.find(".select2-search-choice").remove();D(R).each(function(){O.addSelectedChoice(this)});O.postprocessResults()},tokenize:function(){var O=this.search.val();O=this.opts.tokenizer.call(this,O,this.data(),this.bind(this.onSelect),this.opts);if(O!=null&&O!=m){this.search.val(O);if(O.length>0){this.open()}}},onSelect:function(P,O){if(!this.triggerSelect(P)){return}this.addSelectedChoice(P);this.opts.element.trigger({type:"selected",val:this.id(P),choice:P});if(this.select||!this.opts.closeOnSelect){this.postprocessResults(P,false,this.opts.closeOnSelect===true)}if(this.opts.closeOnSelect){this.close();this.search.width(10)}else{if(this.countSelectableResults()>0){this.search.width(10);this.resizeSearch();if(this.getMaximumSelectionSize()>0&&this.val().length>=this.getMaximumSelectionSize()){this.updateResults(true)}this.positionDropdown()}else{this.close();this.search.width(10)}}this.triggerChange({added:P});if(!O||!O.noFocus){this.focusSearch()}},cancel:function(){this.close();this.focusSearch()},addSelectedChoice:function(S){var U=!S.locked,Q=D("<li class='select2-search-choice'><div></div><a href='#' onclick='return false;' class='select2-search-choice-close' tabindex='-1'></a></li>"),V=D("<li class='select2-search-choice select2-locked'><div></div></li>");var R=U?Q:V,O=this.id(S),P=this.getVal(),T,W;T=this.opts.formatSelection(S,R.find("div"),this.opts.escapeMarkup);if(T!=m){R.find("div").replaceWith("<div>"+T+"</div>")}W=this.opts.formatSelectionCssClass(S,R.find("div"));if(W!=m){R.addClass(W)}if(U){R.find(".select2-search-choice-close").on("mousedown",A).on("click dblclick",this.bind(function(X){if(!this.isInterfaceEnabled()){return}D(X.target).closest(".select2-search-choice").fadeOut("fast",this.bind(function(){this.unselect(D(X.target));this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");this.close();this.focusSearch()})).dequeue();A(X)})).on("focus",this.bind(function(){if(!this.isInterfaceEnabled()){return}this.container.addClass("select2-container-active");this.dropdown.addClass("select2-drop-active")}))}R.data("select2-data",S);R.insertBefore(this.searchContainer);P.push(O);this.setVal(P)},unselect:function(P){var R=this.getVal(),Q,O;P=P.closest(".select2-search-choice");if(P.length===0){throw"Invalid argument: "+P+". Must be .select2-search-choice"}Q=P.data("select2-data");if(!Q){return}O=q(this.id(Q),R);if(O>=0){R.splice(O,1);this.setVal(R);if(this.select){this.postprocessResults()}}P.remove();this.opts.element.trigger({type:"removed",val:this.id(Q),choice:Q});this.triggerChange({removed:Q})},postprocessResults:function(S,P,R){var T=this.getVal(),U=this.results.find(".select2-result"),Q=this.results.find(".select2-result-with-children"),O=this;U.each2(function(W,V){var X=O.id(V.data("select2-data"));if(q(X,T)>=0){V.addClass("select2-selected");V.find(".select2-result-selectable").addClass("select2-selected")}});Q.each2(function(W,V){if(!V.is(".select2-result-selectable")&&V.find(".select2-result-selectable:not(.select2-selected)").length===0){V.addClass("select2-selected")}});if(this.highlight()==-1&&R!==false){O.highlight(0)}if(!this.opts.createSearchChoice&&!U.filter(".select2-result:not(.select2-selected)").length>0){if(!S||S&&!S.more&&this.results.find(".select2-no-results").length===0){if(y(O.opts.formatNoMatches,"formatNoMatches")){this.results.append("<li class='select2-no-results'>"+O.opts.formatNoMatches(O.search.val())+"</li>")}}}},getMaxSearchWidth:function(){return this.selection.width()-h(this.search)},resizeSearch:function(){var T,R,Q,O,P,S=h(this.search);T=n(this.search)+10;R=this.search.offset().left;Q=this.selection.width();O=this.selection.offset().left;P=Q-(R-O)-S;if(P<T){P=Q-S}if(P<40){P=Q-S}if(P<=0){P=T}this.search.width(P)},getVal:function(){var O;if(this.select){O=this.select.val();return O===null?[]:O}else{O=this.opts.element.val();return i(O,this.opts.separator)}},setVal:function(P){var O;if(this.select){this.select.val(P)}else{O=[];D(P).each(function(){if(q(this,O)<0){O.push(this)}});this.opts.element.val(O.length===0?"":O.join(this.opts.separator))}},buildChangeDetails:function(O,R){var R=R.slice(0),O=O.slice(0);for(var Q=0;Q<R.length;Q++){for(var P=0;P<O.length;P++){if(t(this.opts.id(R[Q]),this.opts.id(O[P]))){R.splice(Q,1);Q--;O.splice(P,1);P--}}}return{added:R,removed:O}},val:function(S,P){var R,O=this,Q;if(arguments.length===0){return this.getVal()}R=this.data();if(!R.length){R=[]}if(!S&&S!==0){this.opts.element.val("");this.updateSelection([]);this.clearSearch();if(P){this.triggerChange({added:this.data(),removed:R})}return}this.setVal(S);if(this.select){this.opts.initSelection(this.select,this.bind(this.updateSelection));if(P){this.triggerChange(this.buildChangeDetails(R,this.data()))}}else{if(this.opts.initSelection===m){throw new Error("val() cannot be called if initSelection() is not defined")}this.opts.initSelection(this.opts.element,function(U){var T=D.map(U,O.id);O.setVal(T);O.updateSelection(U);O.clearSearch();if(P){O.triggerChange(O.buildChangeDetails(R,this.data()))}})}this.clearSearch()},onSortStart:function(){if(this.select){throw new Error("Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead.")}this.search.width(0);this.searchContainer.hide()},onSortEnd:function(){var P=[],O=this;this.searchContainer.show();this.searchContainer.appendTo(this.searchContainer.parent());this.resizeSearch();this.selection.find(".select2-search-choice").each(function(){P.push(O.opts.id(D(this).data("select2-data")))});this.setVal(P);this.triggerChange()},data:function(Q,R){var P=this,S,O;if(arguments.length===0){return this.selection.find(".select2-search-choice").map(function(){return D(this).data("select2-data")}).get()}else{O=this.data();if(!Q){Q=[]}S=D.map(Q,function(T){return P.opts.id(T)});this.setVal(S);this.updateSelection(Q);this.clearSearch();if(R){this.triggerChange(this.buildChangeDetails(O,this.data()))}}}});D.fn.select2=function(){var T=Array.prototype.slice.call(arguments,0),P,S,O,V,X,W=["val","destroy","opened","open","close","focus","isFocused","container","dropdown","onSortStart","onSortEnd","enable","disable","readonly","positionDropdown","data","search"],U=["opened","isFocused","container","dropdown"],Q=["val","data"],R={search:"externalSearch"};this.each(function(){if(T.length===0||typeof(T[0])==="object"){P=T.length===0?{}:D.extend({},T[0]);P.element=D(this);if(P.element.get(0).tagName.toLowerCase()==="select"){X=P.element.prop("multiple")}else{X=P.multiple||false;if("tags" in P){P.multiple=X=true}}S=X?new c():new x();S.init(P)}else{if(typeof(T[0])==="string"){if(q(T[0],W)<0){throw"Unknown method: "+T[0]}V=m;S=D(this).data("select2");if(S===m){return}O=T[0];if(O==="container"){V=S.container}else{if(O==="dropdown"){V=S.dropdown}else{if(R[O]){O=R[O]}V=S[O].apply(S,T.slice(1))}}if(q(T[0],U)>=0||(q(T[0],Q)&&T.length==1)){return false}}else{throw"Invalid arguments to select2 plugin: "+T}}});return(V===m)?this:V};D.fn.select2.defaults={width:"copy",loadMorePadding:0,closeOnSelect:true,openOnEnter:true,containerCss:{},dropdownCss:{},containerCssClass:"",dropdownCssClass:"",formatResult:function(P,Q,S,O){var R=[];u(P.text,S.term,R,O);return R.join("")},formatSelection:function(Q,P,O){return Q?O(Q.text):m},sortResults:function(P,O,Q){return P},formatResultCssClass:function(O){return m},formatSelectionCssClass:function(P,O){return m},formatNoMatches:function(){return"No matches found"},formatInputTooShort:function(O,P){var Q=P-O.length;return"Please enter "+Q+" more character"+(Q==1?"":"s")},formatInputTooLong:function(P,O){var Q=P.length-O;return"Please delete "+Q+" character"+(Q==1?"":"s")},formatSelectionTooBig:function(O){return"You can only select "+O+" item"+(O==1?"":"s")},formatLoadMore:function(O){return"Loading more results..."},formatSearching:function(){return"Searching..."},minimumResultsForSearch:0,minimumInputLength:0,maximumInputLength:null,maximumSelectionSize:0,id:function(O){return O.id},matcher:function(O,P){return e(""+P).toUpperCase().indexOf(e(""+O).toUpperCase())>=0},separator:",",tokenSeparators:[],tokenizer:g,escapeMarkup:G,blurOnChange:false,selectOnBlur:false,adaptContainerCssClass:function(O){return O},adaptDropdownCssClass:function(O){return null},nextSearchTerm:function(O,P){return m}};D.fn.select2.ajaxDefaults={transport:D.ajax,params:{type:"GET",cache:false,dataType:"json"}};window.Select2={query:{ajax:E,local:H,tags:z},util:{debounce:k,markMatch:u,escapeMarkup:G,stripDiacritics:e},"class":{"abstract":N,single:x,multi:c}}}(jQuery));
\ No newline at end of file
+(function(a){if(typeof a.fn.each2=="undefined"){a.extend(a.fn,{each2:function(f){var d=a([0]),e=-1,b=this.length;while(++e<b&&(d.context=d[0]=this[e])&&f.call(d[0],e,d)!==false){}return this}})}})(jQuery);(function(D,m){if(window.Select2!==m){return}var K,N,x,c,a,p,o={x:0,y:0},v,w,K={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,isArrow:function(O){O=O.which?O.which:O;switch(O){case K.LEFT:case K.RIGHT:case K.UP:case K.DOWN:return true}return false},isControl:function(P){var O=P.which;switch(O){case K.SHIFT:case K.CTRL:case K.ALT:return true}if(P.metaKey){return true}return false},isFunctionKey:function(O){O=O.which?O.which:O;return O>=112&&O<=123}},B="<div class='select2-measure-scrollbar'></div>",d={"\u24B6":"A","\uFF21":"A","\u00C0":"A","\u00C1":"A","\u00C2":"A","\u1EA6":"A","\u1EA4":"A","\u1EAA":"A","\u1EA8":"A","\u00C3":"A","\u0100":"A","\u0102":"A","\u1EB0":"A","\u1EAE":"A","\u1EB4":"A","\u1EB2":"A","\u0226":"A","\u01E0":"A","\u00C4":"A","\u01DE":"A","\u1EA2":"A","\u00C5":"A","\u01FA":"A","\u01CD":"A","\u0200":"A","\u0202":"A","\u1EA0":"A","\u1EAC":"A","\u1EB6":"A","\u1E00":"A","\u0104":"A","\u023A":"A","\u2C6F":"A","\uA732":"AA","\u00C6":"AE","\u01FC":"AE","\u01E2":"AE","\uA734":"AO","\uA736":"AU","\uA738":"AV","\uA73A":"AV","\uA73C":"AY","\u24B7":"B","\uFF22":"B","\u1E02":"B","\u1E04":"B","\u1E06":"B","\u0243":"B","\u0182":"B","\u0181":"B","\u24B8":"C","\uFF23":"C","\u0106":"C","\u0108":"C","\u010A":"C","\u010C":"C","\u00C7":"C","\u1E08":"C","\u0187":"C","\u023B":"C","\uA73E":"C","\u24B9":"D","\uFF24":"D","\u1E0A":"D","\u010E":"D","\u1E0C":"D","\u1E10":"D","\u1E12":"D","\u1E0E":"D","\u0110":"D","\u018B":"D","\u018A":"D","\u0189":"D","\uA779":"D","\u01F1":"DZ","\u01C4":"DZ","\u01F2":"Dz","\u01C5":"Dz","\u24BA":"E","\uFF25":"E","\u00C8":"E","\u00C9":"E","\u00CA":"E","\u1EC0":"E","\u1EBE":"E","\u1EC4":"E","\u1EC2":"E","\u1EBC":"E","\u0112":"E","\u1E14":"E","\u1E16":"E","\u0114":"E","\u0116":"E","\u00CB":"E","\u1EBA":"E","\u011A":"E","\u0204":"E","\u0206":"E","\u1EB8":"E","\u1EC6":"E","\u0228":"E","\u1E1C":"E","\u0118":"E","\u1E18":"E","\u1E1A":"E","\u0190":"E","\u018E":"E","\u24BB":"F","\uFF26":"F","\u1E1E":"F","\u0191":"F","\uA77B":"F","\u24BC":"G","\uFF27":"G","\u01F4":"G","\u011C":"G","\u1E20":"G","\u011E":"G","\u0120":"G","\u01E6":"G","\u0122":"G","\u01E4":"G","\u0193":"G","\uA7A0":"G","\uA77D":"G","\uA77E":"G","\u24BD":"H","\uFF28":"H","\u0124":"H","\u1E22":"H","\u1E26":"H","\u021E":"H","\u1E24":"H","\u1E28":"H","\u1E2A":"H","\u0126":"H","\u2C67":"H","\u2C75":"H","\uA78D":"H","\u24BE":"I","\uFF29":"I","\u00CC":"I","\u00CD":"I","\u00CE":"I","\u0128":"I","\u012A":"I","\u012C":"I","\u0130":"I","\u00CF":"I","\u1E2E":"I","\u1EC8":"I","\u01CF":"I","\u0208":"I","\u020A":"I","\u1ECA":"I","\u012E":"I","\u1E2C":"I","\u0197":"I","\u24BF":"J","\uFF2A":"J","\u0134":"J","\u0248":"J","\u24C0":"K","\uFF2B":"K","\u1E30":"K","\u01E8":"K","\u1E32":"K","\u0136":"K","\u1E34":"K","\u0198":"K","\u2C69":"K","\uA740":"K","\uA742":"K","\uA744":"K","\uA7A2":"K","\u24C1":"L","\uFF2C":"L","\u013F":"L","\u0139":"L","\u013D":"L","\u1E36":"L","\u1E38":"L","\u013B":"L","\u1E3C":"L","\u1E3A":"L","\u0141":"L","\u023D":"L","\u2C62":"L","\u2C60":"L","\uA748":"L","\uA746":"L","\uA780":"L","\u01C7":"LJ","\u01C8":"Lj","\u24C2":"M","\uFF2D":"M","\u1E3E":"M","\u1E40":"M","\u1E42":"M","\u2C6E":"M","\u019C":"M","\u24C3":"N","\uFF2E":"N","\u01F8":"N","\u0143":"N","\u00D1":"N","\u1E44":"N","\u0147":"N","\u1E46":"N","\u0145":"N","\u1E4A":"N","\u1E48":"N","\u0220":"N","\u019D":"N","\uA790":"N","\uA7A4":"N","\u01CA":"NJ","\u01CB":"Nj","\u24C4":"O","\uFF2F":"O","\u00D2":"O","\u00D3":"O","\u00D4":"O","\u1ED2":"O","\u1ED0":"O","\u1ED6":"O","\u1ED4":"O","\u00D5":"O","\u1E4C":"O","\u022C":"O","\u1E4E":"O","\u014C":"O","\u1E50":"O","\u1E52":"O","\u014E":"O","\u022E":"O","\u0230":"O","\u00D6":"O","\u022A":"O","\u1ECE":"O","\u0150":"O","\u01D1":"O","\u020C":"O","\u020E":"O","\u01A0":"O","\u1EDC":"O","\u1EDA":"O","\u1EE0":"O","\u1EDE":"O","\u1EE2":"O","\u1ECC":"O","\u1ED8":"O","\u01EA":"O","\u01EC":"O","\u00D8":"O","\u01FE":"O","\u0186":"O","\u019F":"O","\uA74A":"O","\uA74C":"O","\u01A2":"OI","\uA74E":"OO","\u0222":"OU","\u24C5":"P","\uFF30":"P","\u1E54":"P","\u1E56":"P","\u01A4":"P","\u2C63":"P","\uA750":"P","\uA752":"P","\uA754":"P","\u24C6":"Q","\uFF31":"Q","\uA756":"Q","\uA758":"Q","\u024A":"Q","\u24C7":"R","\uFF32":"R","\u0154":"R","\u1E58":"R","\u0158":"R","\u0210":"R","\u0212":"R","\u1E5A":"R","\u1E5C":"R","\u0156":"R","\u1E5E":"R","\u024C":"R","\u2C64":"R","\uA75A":"R","\uA7A6":"R","\uA782":"R","\u24C8":"S","\uFF33":"S","\u1E9E":"S","\u015A":"S","\u1E64":"S","\u015C":"S","\u1E60":"S","\u0160":"S","\u1E66":"S","\u1E62":"S","\u1E68":"S","\u0218":"S","\u015E":"S","\u2C7E":"S","\uA7A8":"S","\uA784":"S","\u24C9":"T","\uFF34":"T","\u1E6A":"T","\u0164":"T","\u1E6C":"T","\u021A":"T","\u0162":"T","\u1E70":"T","\u1E6E":"T","\u0166":"T","\u01AC":"T","\u01AE":"T","\u023E":"T","\uA786":"T","\uA728":"TZ","\u24CA":"U","\uFF35":"U","\u00D9":"U","\u00DA":"U","\u00DB":"U","\u0168":"U","\u1E78":"U","\u016A":"U","\u1E7A":"U","\u016C":"U","\u00DC":"U","\u01DB":"U","\u01D7":"U","\u01D5":"U","\u01D9":"U","\u1EE6":"U","\u016E":"U","\u0170":"U","\u01D3":"U","\u0214":"U","\u0216":"U","\u01AF":"U","\u1EEA":"U","\u1EE8":"U","\u1EEE":"U","\u1EEC":"U","\u1EF0":"U","\u1EE4":"U","\u1E72":"U","\u0172":"U","\u1E76":"U","\u1E74":"U","\u0244":"U","\u24CB":"V","\uFF36":"V","\u1E7C":"V","\u1E7E":"V","\u01B2":"V","\uA75E":"V","\u0245":"V","\uA760":"VY","\u24CC":"W","\uFF37":"W","\u1E80":"W","\u1E82":"W","\u0174":"W","\u1E86":"W","\u1E84":"W","\u1E88":"W","\u2C72":"W","\u24CD":"X","\uFF38":"X","\u1E8A":"X","\u1E8C":"X","\u24CE":"Y","\uFF39":"Y","\u1EF2":"Y","\u00DD":"Y","\u0176":"Y","\u1EF8":"Y","\u0232":"Y","\u1E8E":"Y","\u0178":"Y","\u1EF6":"Y","\u1EF4":"Y","\u01B3":"Y","\u024E":"Y","\u1EFE":"Y","\u24CF":"Z","\uFF3A":"Z","\u0179":"Z","\u1E90":"Z","\u017B":"Z","\u017D":"Z","\u1E92":"Z","\u1E94":"Z","\u01B5":"Z","\u0224":"Z","\u2C7F":"Z","\u2C6B":"Z","\uA762":"Z","\u24D0":"a","\uFF41":"a","\u1E9A":"a","\u00E0":"a","\u00E1":"a","\u00E2":"a","\u1EA7":"a","\u1EA5":"a","\u1EAB":"a","\u1EA9":"a","\u00E3":"a","\u0101":"a","\u0103":"a","\u1EB1":"a","\u1EAF":"a","\u1EB5":"a","\u1EB3":"a","\u0227":"a","\u01E1":"a","\u00E4":"a","\u01DF":"a","\u1EA3":"a","\u00E5":"a","\u01FB":"a","\u01CE":"a","\u0201":"a","\u0203":"a","\u1EA1":"a","\u1EAD":"a","\u1EB7":"a","\u1E01":"a","\u0105":"a","\u2C65":"a","\u0250":"a","\uA733":"aa","\u00E6":"ae","\u01FD":"ae","\u01E3":"ae","\uA735":"ao","\uA737":"au","\uA739":"av","\uA73B":"av","\uA73D":"ay","\u24D1":"b","\uFF42":"b","\u1E03":"b","\u1E05":"b","\u1E07":"b","\u0180":"b","\u0183":"b","\u0253":"b","\u24D2":"c","\uFF43":"c","\u0107":"c","\u0109":"c","\u010B":"c","\u010D":"c","\u00E7":"c","\u1E09":"c","\u0188":"c","\u023C":"c","\uA73F":"c","\u2184":"c","\u24D3":"d","\uFF44":"d","\u1E0B":"d","\u010F":"d","\u1E0D":"d","\u1E11":"d","\u1E13":"d","\u1E0F":"d","\u0111":"d","\u018C":"d","\u0256":"d","\u0257":"d","\uA77A":"d","\u01F3":"dz","\u01C6":"dz","\u24D4":"e","\uFF45":"e","\u00E8":"e","\u00E9":"e","\u00EA":"e","\u1EC1":"e","\u1EBF":"e","\u1EC5":"e","\u1EC3":"e","\u1EBD":"e","\u0113":"e","\u1E15":"e","\u1E17":"e","\u0115":"e","\u0117":"e","\u00EB":"e","\u1EBB":"e","\u011B":"e","\u0205":"e","\u0207":"e","\u1EB9":"e","\u1EC7":"e","\u0229":"e","\u1E1D":"e","\u0119":"e","\u1E19":"e","\u1E1B":"e","\u0247":"e","\u025B":"e","\u01DD":"e","\u24D5":"f","\uFF46":"f","\u1E1F":"f","\u0192":"f","\uA77C":"f","\u24D6":"g","\uFF47":"g","\u01F5":"g","\u011D":"g","\u1E21":"g","\u011F":"g","\u0121":"g","\u01E7":"g","\u0123":"g","\u01E5":"g","\u0260":"g","\uA7A1":"g","\u1D79":"g","\uA77F":"g","\u24D7":"h","\uFF48":"h","\u0125":"h","\u1E23":"h","\u1E27":"h","\u021F":"h","\u1E25":"h","\u1E29":"h","\u1E2B":"h","\u1E96":"h","\u0127":"h","\u2C68":"h","\u2C76":"h","\u0265":"h","\u0195":"hv","\u24D8":"i","\uFF49":"i","\u00EC":"i","\u00ED":"i","\u00EE":"i","\u0129":"i","\u012B":"i","\u012D":"i","\u00EF":"i","\u1E2F":"i","\u1EC9":"i","\u01D0":"i","\u0209":"i","\u020B":"i","\u1ECB":"i","\u012F":"i","\u1E2D":"i","\u0268":"i","\u0131":"i","\u24D9":"j","\uFF4A":"j","\u0135":"j","\u01F0":"j","\u0249":"j","\u24DA":"k","\uFF4B":"k","\u1E31":"k","\u01E9":"k","\u1E33":"k","\u0137":"k","\u1E35":"k","\u0199":"k","\u2C6A":"k","\uA741":"k","\uA743":"k","\uA745":"k","\uA7A3":"k","\u24DB":"l","\uFF4C":"l","\u0140":"l","\u013A":"l","\u013E":"l","\u1E37":"l","\u1E39":"l","\u013C":"l","\u1E3D":"l","\u1E3B":"l","\u017F":"l","\u0142":"l","\u019A":"l","\u026B":"l","\u2C61":"l","\uA749":"l","\uA781":"l","\uA747":"l","\u01C9":"lj","\u24DC":"m","\uFF4D":"m","\u1E3F":"m","\u1E41":"m","\u1E43":"m","\u0271":"m","\u026F":"m","\u24DD":"n","\uFF4E":"n","\u01F9":"n","\u0144":"n","\u00F1":"n","\u1E45":"n","\u0148":"n","\u1E47":"n","\u0146":"n","\u1E4B":"n","\u1E49":"n","\u019E":"n","\u0272":"n","\u0149":"n","\uA791":"n","\uA7A5":"n","\u01CC":"nj","\u24DE":"o","\uFF4F":"o","\u00F2":"o","\u00F3":"o","\u00F4":"o","\u1ED3":"o","\u1ED1":"o","\u1ED7":"o","\u1ED5":"o","\u00F5":"o","\u1E4D":"o","\u022D":"o","\u1E4F":"o","\u014D":"o","\u1E51":"o","\u1E53":"o","\u014F":"o","\u022F":"o","\u0231":"o","\u00F6":"o","\u022B":"o","\u1ECF":"o","\u0151":"o","\u01D2":"o","\u020D":"o","\u020F":"o","\u01A1":"o","\u1EDD":"o","\u1EDB":"o","\u1EE1":"o","\u1EDF":"o","\u1EE3":"o","\u1ECD":"o","\u1ED9":"o","\u01EB":"o","\u01ED":"o","\u00F8":"o","\u01FF":"o","\u0254":"o","\uA74B":"o","\uA74D":"o","\u0275":"o","\u01A3":"oi","\u0223":"ou","\uA74F":"oo","\u24DF":"p","\uFF50":"p","\u1E55":"p","\u1E57":"p","\u01A5":"p","\u1D7D":"p","\uA751":"p","\uA753":"p","\uA755":"p","\u24E0":"q","\uFF51":"q","\u024B":"q","\uA757":"q","\uA759":"q","\u24E1":"r","\uFF52":"r","\u0155":"r","\u1E59":"r","\u0159":"r","\u0211":"r","\u0213":"r","\u1E5B":"r","\u1E5D":"r","\u0157":"r","\u1E5F":"r","\u024D":"r","\u027D":"r","\uA75B":"r","\uA7A7":"r","\uA783":"r","\u24E2":"s","\uFF53":"s","\u00DF":"s","\u015B":"s","\u1E65":"s","\u015D":"s","\u1E61":"s","\u0161":"s","\u1E67":"s","\u1E63":"s","\u1E69":"s","\u0219":"s","\u015F":"s","\u023F":"s","\uA7A9":"s","\uA785":"s","\u1E9B":"s","\u24E3":"t","\uFF54":"t","\u1E6B":"t","\u1E97":"t","\u0165":"t","\u1E6D":"t","\u021B":"t","\u0163":"t","\u1E71":"t","\u1E6F":"t","\u0167":"t","\u01AD":"t","\u0288":"t","\u2C66":"t","\uA787":"t","\uA729":"tz","\u24E4":"u","\uFF55":"u","\u00F9":"u","\u00FA":"u","\u00FB":"u","\u0169":"u","\u1E79":"u","\u016B":"u","\u1E7B":"u","\u016D":"u","\u00FC":"u","\u01DC":"u","\u01D8":"u","\u01D6":"u","\u01DA":"u","\u1EE7":"u","\u016F":"u","\u0171":"u","\u01D4":"u","\u0215":"u","\u0217":"u","\u01B0":"u","\u1EEB":"u","\u1EE9":"u","\u1EEF":"u","\u1EED":"u","\u1EF1":"u","\u1EE5":"u","\u1E73":"u","\u0173":"u","\u1E77":"u","\u1E75":"u","\u0289":"u","\u24E5":"v","\uFF56":"v","\u1E7D":"v","\u1E7F":"v","\u028B":"v","\uA75F":"v","\u028C":"v","\uA761":"vy","\u24E6":"w","\uFF57":"w","\u1E81":"w","\u1E83":"w","\u0175":"w","\u1E87":"w","\u1E85":"w","\u1E98":"w","\u1E89":"w","\u2C73":"w","\u24E7":"x","\uFF58":"x","\u1E8B":"x","\u1E8D":"x","\u24E8":"y","\uFF59":"y","\u1EF3":"y","\u00FD":"y","\u0177":"y","\u1EF9":"y","\u0233":"y","\u1E8F":"y","\u00FF":"y","\u1EF7":"y","\u1E99":"y","\u1EF5":"y","\u01B4":"y","\u024F":"y","\u1EFF":"y","\u24E9":"z","\uFF5A":"z","\u017A":"z","\u1E91":"z","\u017C":"z","\u017E":"z","\u1E93":"z","\u1E95":"z","\u01B6":"z","\u0225":"z","\u0240":"z","\u2C6C":"z","\uA763":"z"};v=D(document);a=(function(){var O=1;return function(){return O++}}());function e(R){var P,Q,O,S;if(!R||R.length<1){return R}P="";for(Q=0,O=R.length;Q<O;Q++){S=R.charAt(Q);P+=d[S]||S}return P}function q(Q,R){var P=0,O=R.length;for(;P<O;P=P+1){if(t(Q,R[P])){return P}}return -1}function M(){var O=D(B);O.appendTo("body");var P={width:O.width()-O[0].clientWidth,height:O.height()-O[0].clientHeight};O.remove();return P}function t(P,O){if(P===O){return true}if(P===m||O===m){return false}if(P===null||O===null){return false}if(P.constructor===String){return P+""===O+""}if(O.constructor===String){return O+""===P+""}return false}function i(P,R){var S,Q,O;if(P===null||P.length<1){return[]}S=P.split(R);for(Q=0,O=S.length;Q<O;Q=Q+1){S[Q]=D.trim(S[Q])}return S}function h(O){return O.outerWidth(false)-O.width()}function F(P){var O="keyup-change-value";P.on("keydown",function(){if(D.data(P,O)===m){D.data(P,O,P.val())}});P.on("keyup",function(){var Q=D.data(P,O);if(Q!==m&&P.val()!==Q){D.removeData(P,O);P.trigger("keyup-change")}})}v.on("mousemove",function(O){o.x=O.pageX;o.y=O.pageY});function J(O){O.on("mousemove",function(Q){var P=o;if(P===m||P.x!==Q.pageX||P.y!==Q.pageY){D(Q.target).trigger("mousemove-filtered",Q)}})}function k(R,P,O){O=O||m;var Q;return function(){var S=arguments;window.clearTimeout(Q);Q=window.setTimeout(function(){P.apply(O,S)},R)}}function s(Q){var O=false,P;return function(){if(O===false){P=Q();O=true}return P}}function l(O,Q){var P=k(O,function(R){Q.trigger("scroll-debounced",R)});Q.on("scroll",function(R){if(q(R.target,Q.get())>=0){P(R)}})}function I(O){if(O[0]===document.activeElement){return}window.setTimeout(function(){var Q=O[0],R=O.val().length,P;O.focus();if(O.is(":visible")&&Q===document.activeElement){if(Q.setSelectionRange){Q.setSelectionRange(R,R)}else{if(Q.createTextRange){P=Q.createTextRange();P.collapse(false);P.select()}}}},0)}function f(O){O=D(O)[0];var R=0;var P=0;if("selectionStart" in O){R=O.selectionStart;P=O.selectionEnd-R}else{if("selection" in document){O.focus();var Q=document.selection.createRange();P=document.selection.createRange().text.length;Q.moveStart("character",-O.value.length);R=Q.text.length-P}}return{offset:R,length:P}}function A(O){O.preventDefault();O.stopPropagation()}function b(O){O.preventDefault();O.stopImmediatePropagation()}function n(P){if(!p){var O=P[0].currentStyle||window.getComputedStyle(P[0],null);p=D(document.createElement("div")).css({position:"absolute",left:"-10000px",top:"-10000px",display:"none",fontSize:O.fontSize,fontFamily:O.fontFamily,fontStyle:O.fontStyle,fontWeight:O.fontWeight,letterSpacing:O.letterSpacing,textTransform:O.textTransform,whiteSpace:"nowrap"});p.attr("class","select2-sizer");D("body").append(p)}p.text(P.val());return p.width()}function j(P,T,O){var R,S=[],Q;R=P.attr("class");if(R){R=""+R;D(R.split(" ")).each2(function(){if(this.indexOf("select2-")===0){S.push(this)}})}R=T.attr("class");if(R){R=""+R;D(R.split(" ")).each2(function(){if(this.indexOf("select2-")!==0){Q=O(this);if(Q){S.push(this)}}})}P.attr("class",S.join(" "))}function u(T,S,Q,O){var R=e(T.toUpperCase()).indexOf(e(S.toUpperCase())),P=S.length;if(R<0){Q.push(O(T));return}Q.push(O(T.substring(0,R)));Q.push("<span class='select2-match'>");Q.push(O(T.substring(R,R+P)));Q.push("</span>");Q.push(O(T.substring(R+P,T.length)))}function G(O){var P={"\\":"\","&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};return String(O).replace(/[&<>"'\/\\]/g,function(Q){return P[Q]})}function E(P){var S,Q=null,T=P.quietMillis||100,R=P.url,O=this;return function(U){window.clearTimeout(S);S=window.setTimeout(function(){var X=P.data,W=R,Z=P.transport||D.fn.select2.ajaxDefaults.transport,V={type:P.type||"GET",cache:P.cache||false,jsonpCallback:P.jsonpCallback||m,dataType:P.dataType||"json"},Y=D.extend({},D.fn.select2.ajaxDefaults.params,V);X=X?X.call(O,U.term,U.page,U.context):null;W=(typeof W==="function")?W.call(O,U.term,U.page,U.context):W;if(Q){Q.abort()}if(P.params){if(D.isFunction(P.params)){D.extend(Y,P.params.call(O))}else{D.extend(Y,P.params)}}D.extend(Y,{url:W,dataType:P.dataType,data:X,success:function(ab){var aa=P.results(ab,U.page);U.callback(aa)}});Q=Z.call(O,Y)},T)}}function H(P){var S=P,R,Q,T=function(U){return""+U.text};if(D.isArray(S)){Q=S;S={results:Q}}if(D.isFunction(S)===false){Q=S;S=function(){return Q}}var O=S();if(O.text){T=O.text;if(!D.isFunction(T)){R=O.text;T=function(U){return U[R]}}}return function(W){var V=W.term,U={results:[]},X;if(V===""){W.callback(S());return}X=function(Z,ab){var aa,Y;Z=Z[0];if(Z.children){aa={};for(Y in Z){if(Z.hasOwnProperty(Y)){aa[Y]=Z[Y]}}aa.children=[];D(Z.children).each2(function(ac,ad){X(ad,aa.children)});if(aa.children.length||W.matcher(V,T(aa),Z)){ab.push(aa)}}else{if(W.matcher(V,T(Z),Z)){ab.push(Z)}}};D(S().results).each2(function(Z,Y){X(Y,U.results)});W.callback(U)}}function z(P){var O=D.isFunction(P);return function(S){var R=S.term,Q={results:[]};D(O?P():P).each(function(){var T=this.text!==m,U=T?this.text:this;if(R===""||S.matcher(R,U)){Q.results.push(T?this:{id:this,text:this})}});S.callback(Q)}}function y(O,P){if(D.isFunction(O)){return true}if(!O){return false}throw new Error(P+" must be a function or a falsy value")}function C(O){return D.isFunction(O)?O():O}function r(O){var P=0;D.each(O,function(Q,R){if(R.children){P+=r(R.children)}else{P++}});return P}function g(W,X,U,O){var P=W,Y=false,R,V,S,Q,T;if(!O.createSearchChoice||!O.tokenSeparators||O.tokenSeparators.length<1){return m}while(true){V=-1;for(S=0,Q=O.tokenSeparators.length;S<Q;S++){T=O.tokenSeparators[S];V=W.indexOf(T);if(V>=0){break}}if(V<0){break}R=W.substring(0,V);W=W.substring(V+T.length);if(R.length>0){R=O.createSearchChoice.call(this,R,X);if(R!==m&&R!==null&&O.id(R)!==m&&O.id(R)!==null){Y=false;for(S=0,Q=X.length;S<Q;S++){if(t(O.id(R),O.id(X[S]))){Y=true;break}}if(!Y){U(R)}}}}if(P!==W){return W}}function L(O,P){var Q=function(){};Q.prototype=new O;Q.prototype.constructor=Q;Q.prototype.parent=O.prototype;Q.prototype=D.extend(Q.prototype,P);return Q}N=L(Object,{bind:function(P){var O=this;return function(){P.apply(O,arguments)}},init:function(S){var Q,P,T=".select2-results",R,O;this.opts=S=this.prepareOpts(S);this.id=S.id;if(S.element.data("select2")!==m&&S.element.data("select2")!==null){S.element.data("select2").destroy()}this.container=this.createContainer();this.containerId="s2id_"+(S.element.attr("id")||"autogen"+a());this.containerSelector="#"+this.containerId.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,"\\$1");this.container.attr("id",this.containerId);this.body=s(function(){return S.element.closest("body")});j(this.container,this.opts.element,this.opts.adaptContainerCssClass);this.container.attr("style",S.element.attr("style"));this.container.css(C(S.containerCss));this.container.addClass(C(S.containerCssClass));this.elementTabIndex=this.opts.element.attr("tabindex");this.opts.element.data("select2",this).attr("tabindex","-1").before(this.container).on("click.select2",A);this.container.data("select2",this);this.dropdown=this.container.find(".select2-drop");j(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass);this.dropdown.addClass(C(S.dropdownCssClass));this.dropdown.data("select2",this);this.dropdown.on("click",A);this.results=Q=this.container.find(T);this.search=P=this.container.find("input.select2-input");this.queryCount=0;this.resultsPage=0;this.context=null;this.initContainer();this.container.on("click",A);J(this.results);this.dropdown.on("mousemove-filtered touchstart touchmove touchend",T,this.bind(this.highlightUnderEvent));l(80,this.results);this.dropdown.on("scroll-debounced",T,this.bind(this.loadMoreIfNeeded));D(this.container).on("change",".select2-input",function(U){U.stopPropagation()});D(this.dropdown).on("change",".select2-input",function(U){U.stopPropagation()});if(D.fn.mousewheel){Q.mousewheel(function(Y,Z,W,V){var X=Q.scrollTop(),U;if(V>0&&X-V<=0){Q.scrollTop(0);A(Y)}else{if(V<0&&Q.get(0).scrollHeight-Q.scrollTop()+V<=Q.height()){Q.scrollTop(Q.get(0).scrollHeight-Q.height());A(Y)}}})}F(P);P.on("keyup-change input paste",this.bind(this.updateResults));P.on("focus",function(){P.addClass("select2-focused")});P.on("blur",function(){P.removeClass("select2-focused")});this.dropdown.on("mouseup",T,this.bind(function(U){if(D(U.target).closest(".select2-result-selectable").length>0){this.highlightUnderEvent(U);this.selectHighlighted(U)}}));this.dropdown.on("click mouseup mousedown",function(U){U.stopPropagation()});if(D.isFunction(this.opts.initSelection)){this.initSelection();this.monitorSource()}if(S.maximumInputLength!==null){this.search.attr("maxlength",S.maximumInputLength)}var R=S.element.prop("disabled");if(R===m){R=false}this.enable(!R);var O=S.element.prop("readonly");if(O===m){O=false}this.readonly(O);w=w||M();this.autofocus=S.element.prop("autofocus");S.element.prop("autofocus",false);if(this.autofocus){this.focus()}this.nextSearchTerm=m},destroy:function(){var P=this.opts.element,O=P.data("select2");this.close();if(this.propertyObserver){delete this.propertyObserver;this.propertyObserver=null}if(O!==m){O.container.remove();O.dropdown.remove();P.removeClass("select2-offscreen").removeData("select2").off(".select2").prop("autofocus",this.autofocus||false);if(this.elementTabIndex){P.attr({tabindex:this.elementTabIndex})}else{P.removeAttr("tabindex")}P.show()}},optionToData:function(O){if(O.is("option")){return{id:O.prop("value"),text:O.text(),element:O.get(),css:O.attr("class"),disabled:O.prop("disabled"),locked:t(O.attr("locked"),"locked")||t(O.data("locked"),true)}}else{if(O.is("optgroup")){return{text:O.attr("label"),children:[],element:O.get(),css:O.attr("class")}}}},prepareOpts:function(T){var R,P,O,S,Q=this;R=T.element;if(R.get(0).tagName.toLowerCase()==="select"){this.select=P=T.element}if(P){D.each(["id","multiple","ajax","query","createSearchChoice","initSelection","data","tags"],function(){if(this in T){throw new Error("Option '"+this+"' is not allowed for Select2 when attached to a <select> element.")}})}T=D.extend({},{populateResults:function(V,X,aa){var Z,Y,U,W,ab=this.opts.id;Z=function(ai,ac,ah){var aj,ae,ao,al,af,an,ad,am,ak,ag;ai=T.sortResults(ai,ac,aa);for(aj=0,ae=ai.length;aj<ae;aj=aj+1){ao=ai[aj];af=(ao.disabled===true);al=(!af)&&(ab(ao)!==m);an=ao.children&&ao.children.length>0;ad=D("<li></li>");ad.addClass("select2-results-dept-"+ah);ad.addClass("select2-result");ad.addClass(al?"select2-result-selectable":"select2-result-unselectable");if(af){ad.addClass("select2-disabled")}if(an){ad.addClass("select2-result-with-children")}ad.addClass(Q.opts.formatResultCssClass(ao));am=D(document.createElement("div"));am.addClass("select2-result-label");ag=T.formatResult(ao,am,aa,Q.opts.escapeMarkup);if(ag!==m){am.html(ag)}ad.append(am);if(an){ak=D("<ul></ul>");ak.addClass("select2-result-sub");Z(ao.children,ak,ah+1);ad.append(ak)}ad.data("select2-data",ao);ac.append(ad)}};Z(X,V,0)}},D.fn.select2.defaults,T);if(typeof(T.id)!=="function"){O=T.id;T.id=function(U){return U[O]}}if(D.isArray(T.element.data("select2Tags"))){if("tags" in T){throw"tags specified as both an attribute 'data-select2-tags' and in options of Select2 "+T.element.attr("id")}T.tags=T.element.data("select2Tags")}if(P){T.query=this.bind(function(Y){var X={results:[],more:false},W=Y.term,V,U,Z;Z=function(aa,ac){var ab;if(aa.is("option")){if(Y.matcher(W,aa.text(),aa)){ac.push(Q.optionToData(aa))}}else{if(aa.is("optgroup")){ab=Q.optionToData(aa);aa.children().each2(function(ad,ae){Z(ae,ab.children)});if(ab.children.length>0){ac.push(ab)}}}};V=R.children();if(this.getPlaceholder()!==m&&V.length>0){U=this.getPlaceholderOption();if(U){V=V.not(U)}}V.each2(function(aa,ab){Z(ab,X.results)});Y.callback(X)});T.id=function(U){return U.id};T.formatResultCssClass=function(U){return U.css}}else{if(!("query" in T)){if("ajax" in T){S=T.element.data("ajax-url");if(S&&S.length>0){T.ajax.url=S}T.query=E.call(T.element,T.ajax)}else{if("data" in T){T.query=H(T.data)}else{if("tags" in T){T.query=z(T.tags);if(T.createSearchChoice===m){T.createSearchChoice=function(U){return{id:D.trim(U),text:D.trim(U)}}}if(T.initSelection===m){T.initSelection=function(U,W){var V=[];D(i(U.val(),T.separator)).each(function(){var Y={id:this,text:this},X=T.tags;if(D.isFunction(X)){X=X()}D(X).each(function(){if(t(this.id,Y.id)){Y=this;return false}});V.push(Y)});W(V)}}}}}}}if(typeof(T.query)!=="function"){throw"query function not defined for Select2 "+T.element.attr("id")}return T},monitorSource:function(){var O=this.opts.element,P;O.on("change.select2",this.bind(function(Q){if(this.opts.element.data("select2-change-triggered")!==true){this.initSelection()}}));P=this.bind(function(){var S,R,Q=this;var T=O.prop("disabled");if(T===m){T=false}this.enable(!T);var R=O.prop("readonly");if(R===m){R=false}this.readonly(R);j(this.container,this.opts.element,this.opts.adaptContainerCssClass);this.container.addClass(C(this.opts.containerCssClass));j(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass);this.dropdown.addClass(C(this.opts.dropdownCssClass))});O.on("propertychange.select2 DOMAttrModified.select2",P);if(this.mutationCallback===m){this.mutationCallback=function(Q){Q.forEach(P)}}if(typeof WebKitMutationObserver!=="undefined"){if(this.propertyObserver){delete this.propertyObserver;this.propertyObserver=null}this.propertyObserver=new WebKitMutationObserver(this.mutationCallback);this.propertyObserver.observe(O.get(0),{attributes:true,subtree:false})}},triggerSelect:function(P){var O=D.Event("select2-selecting",{val:this.id(P),object:P});this.opts.element.trigger(O);return !O.isDefaultPrevented()},triggerChange:function(O){O=O||{};O=D.extend({},O,{type:"change",val:this.val()});this.opts.element.data("select2-change-triggered",true);this.opts.element.trigger(O);this.opts.element.data("select2-change-triggered",false);this.opts.element.click();if(this.opts.blurOnChange){this.opts.element.blur()}},isInterfaceEnabled:function(){return this.enabledInterface===true},enableInterface:function(){var O=this._enabled&&!this._readonly,P=!O;if(O===this.enabledInterface){return false}this.container.toggleClass("select2-container-disabled",P);this.close();this.enabledInterface=O;return true},enable:function(O){if(O===m){O=true}if(this._enabled===O){return}this._enabled=O;this.opts.element.prop("disabled",!O);this.enableInterface()},disable:function(){this.enable(false)},readonly:function(O){if(O===m){O=false}if(this._readonly===O){return false}this._readonly=O;this.opts.element.prop("readonly",O);this.enableInterface();return true},opened:function(){return this.container.hasClass("select2-dropdown-open")},positionDropdown:function(){var Q=this.dropdown,S=this.container.offset(),Z=this.container.outerHeight(false),aa=this.container.outerWidth(false),W=Q.outerHeight(false),P=D(window).scrollLeft()+D(window).width(),ad=D(window).scrollTop()+D(window).height(),R=S.top+Z,ab=S.left,O=R+W<=ad,U=(S.top-W)>=this.body().scrollTop(),X=Q.outerWidth(false),af=ab+X<=P,ae=Q.hasClass("select2-drop-above"),T,ac,V,Y;if(this.opts.dropdownAutoWidth){Y=D(".select2-results",Q)[0];Q.addClass("select2-drop-auto-width");Q.css("width","");X=Q.outerWidth(false)+(Y.scrollHeight===Y.clientHeight?0:w.width);X>aa?aa=X:X=aa;af=ab+X<=P}else{this.container.removeClass("select2-drop-auto-width")}if(this.body().css("position")!=="static"){T=this.body().offset();R-=T.top;ab-=T.left}if(ae){ac=true;if(!U&&O){ac=false}}else{ac=false;if(!O&&U){ac=true}}if(!af){ab=S.left+aa-X}if(ac){R=S.top-W;this.container.addClass("select2-drop-above");Q.addClass("select2-drop-above")}else{this.container.removeClass("select2-drop-above");Q.removeClass("select2-drop-above")}V=D.extend({top:R,left:ab,width:aa},C(this.opts.dropdownCss));Q.css(V)},shouldOpen:function(){var O;if(this.opened()){return false}if(this._enabled===false||this._readonly===true){return false}O=D.Event("select2-opening");this.opts.element.trigger(O);return !O.isDefaultPrevented()},clearDropdownAlignmentPreference:function(){this.container.removeClass("select2-drop-above");this.dropdown.removeClass("select2-drop-above")},open:function(){if(!this.shouldOpen()){return false}this.opening();return true},opening:function(){var U=this.containerId,O="scroll."+U,R="resize."+U,Q="orientationchange."+U,P,T;this.container.addClass("select2-dropdown-open").addClass("select2-container-active");this.clearDropdownAlignmentPreference();if(this.dropdown[0]!==this.body().children().last()[0]){this.dropdown.detach().appendTo(this.body())}P=D("#select2-drop-mask");if(P.length==0){P=D(document.createElement("div"));P.attr("id","select2-drop-mask").attr("class","select2-drop-mask");P.hide();P.appendTo(this.body());P.on("mousedown touchstart click",function(W){var X=D("#select2-drop"),V;if(X.length>0){V=X.data("select2");if(V.opts.selectOnBlur){V.selectHighlighted({noFocus:true})}V.close({focus:false});W.preventDefault();W.stopPropagation()}})}if(this.dropdown.prev()[0]!==P[0]){this.dropdown.before(P)}D("#select2-drop").removeAttr("id");this.dropdown.attr("id","select2-drop");P.show();this.positionDropdown();this.dropdown.show();this.positionDropdown();this.dropdown.addClass("select2-drop-active");var S=this;this.container.parents().add(window).each(function(){D(this).on(R+" "+O+" "+Q,function(V){S.positionDropdown()})})},close:function(){if(!this.opened()){return}var R=this.containerId,O="scroll."+R,Q="resize."+R,P="orientationchange."+R;this.container.parents().add(window).each(function(){D(this).off(O).off(Q).off(P)});this.clearDropdownAlignmentPreference();D("#select2-drop-mask").hide();this.dropdown.removeAttr("id");this.dropdown.hide();this.container.removeClass("select2-dropdown-open").removeClass("select2-container-active");this.results.empty();this.clearSearch();this.search.removeClass("select2-active");this.opts.element.trigger(D.Event("select2-close"))},externalSearch:function(O){this.open();this.search.val(O);this.updateResults(false)},clearSearch:function(){},getMaximumSelectionSize:function(){return C(this.opts.maximumSelectionSize)},ensureHighlightVisible:function(){var R=this.results,Q,O,V,U,S,T,P;O=this.highlight();if(O<0){return}if(O==0){R.scrollTop(0);return}Q=this.findHighlightableChoices().find(".select2-result-label");V=D(Q[O]);U=V.offset().top+V.outerHeight(true);if(O===Q.length-1){P=R.find("li.select2-more-results");if(P.length>0){U=P.offset().top+P.outerHeight(true)}}S=R.offset().top+R.outerHeight(true);if(U>S){R.scrollTop(R.scrollTop()+(U-S))}T=V.offset().top-R.offset().top;if(T<0&&V.css("display")!="none"){R.scrollTop(R.scrollTop()+T)}},findHighlightableChoices:function(){return this.results.find(".select2-result-selectable:not(.select2-disabled)")},moveHighlight:function(R){var Q=this.findHighlightableChoices(),P=this.highlight();while(P>-1&&P<Q.length){P+=R;var O=D(Q[P]);if(O.hasClass("select2-result-selectable")&&!O.hasClass("select2-disabled")&&!O.hasClass("select2-selected")){this.highlight(P);break}}},highlight:function(P){var R=this.findHighlightableChoices(),O,Q;if(arguments.length===0){return q(R.filter(".select2-highlighted")[0],R.get())}if(P>=R.length){P=R.length-1}if(P<0){P=0}this.removeHighlight();O=D(R[P]);O.addClass("select2-highlighted");this.ensureHighlightVisible();Q=O.data("select2-data");if(Q){this.opts.element.trigger({type:"select2-highlight",val:this.id(Q),choice:Q})}},removeHighlight:function(){this.results.find(".select2-highlighted").removeClass("select2-highlighted")},countSelectableResults:function(){return this.findHighlightableChoices().length},highlightUnderEvent:function(P){var O=D(P.target).closest(".select2-result-selectable");if(O.length>0&&!O.is(".select2-highlighted")){var Q=this.findHighlightableChoices();this.highlight(Q.index(O))}else{if(O.length==0){this.removeHighlight()}}},loadMoreIfNeeded:function(){var S=this.results,R=S.find("li.select2-more-results"),V,U=-1,T=this.resultsPage+1,O=this,Q=this.search.val(),P=this.context;if(R.length===0){return}V=R.offset().top-S.offset().top-S.height();if(V<=this.opts.loadMorePadding){R.addClass("select2-active");this.opts.query({element:this.opts.element,term:Q,page:T,context:P,matcher:this.opts.matcher,callback:this.bind(function(W){if(!O.opened()){return}O.opts.populateResults.call(this,S,W.results,{term:Q,page:T,context:P});O.postprocessResults(W,false,false);if(W.more===true){R.detach().appendTo(S).text(O.opts.formatLoadMore(T+1));window.setTimeout(function(){O.loadMoreIfNeeded()},10)}else{R.remove()}O.positionDropdown();O.resultsPage=T;O.context=W.context;this.opts.element.trigger({type:"select2-loaded",items:W})})})}},tokenize:function(){},updateResults:function(W){var aa=this.search,U=this.results,O=this.opts,T,Z=this,X,S=aa.val(),Q=D.data(this.container,"select2-last-term"),Y;if(W!==true&&Q&&t(S,Q)){return}D.data(this.container,"select2-last-term",S);if(W!==true&&(this.showSearchInput===false||!this.opened())){return}function V(){aa.removeClass("select2-active");Z.positionDropdown()}function P(ab){U.html(ab);V()}Y=++this.queryCount;var R=this.getMaximumSelectionSize();if(R>=1){T=this.data();if(D.isArray(T)&&T.length>=R&&y(O.formatSelectionTooBig,"formatSelectionTooBig")){P("<li class='select2-selection-limit'>"+O.formatSelectionTooBig(R)+"</li>");return}}if(aa.val().length<O.minimumInputLength){if(y(O.formatInputTooShort,"formatInputTooShort")){P("<li class='select2-no-results'>"+O.formatInputTooShort(aa.val(),O.minimumInputLength)+"</li>")}else{P("")}if(W&&this.showSearch){this.showSearch(true)}return}if(O.maximumInputLength&&aa.val().length>O.maximumInputLength){if(y(O.formatInputTooLong,"formatInputTooLong")){P("<li class='select2-no-results'>"+O.formatInputTooLong(aa.val(),O.maximumInputLength)+"</li>")}else{P("")}return}if(O.formatSearching&&this.findHighlightableChoices().length===0){P("<li class='select2-searching'>"+O.formatSearching()+"</li>")}aa.addClass("select2-active");this.removeHighlight();X=this.tokenize();if(X!=m&&X!=null){aa.val(X)}this.resultsPage=1;O.query({element:O.element,term:aa.val(),page:this.resultsPage,context:null,matcher:O.matcher,callback:this.bind(function(ac){var ab;if(Y!=this.queryCount){return}if(!this.opened()){this.search.removeClass("select2-active");return}this.context=(ac.context===m)?null:ac.context;if(this.opts.createSearchChoice&&aa.val()!==""){ab=this.opts.createSearchChoice.call(Z,aa.val(),ac.results);if(ab!==m&&ab!==null&&Z.id(ab)!==m&&Z.id(ab)!==null){if(D(ac.results).filter(function(){return t(Z.id(this),Z.id(ab))}).length===0){ac.results.unshift(ab)}}}if(ac.results.length===0&&y(O.formatNoMatches,"formatNoMatches")){P("<li class='select2-no-results'>"+O.formatNoMatches(aa.val())+"</li>");return}U.empty();Z.opts.populateResults.call(this,U,ac.results,{term:aa.val(),page:this.resultsPage,context:null});if(ac.more===true&&y(O.formatLoadMore,"formatLoadMore")){U.append("<li class='select2-more-results'>"+Z.opts.escapeMarkup(O.formatLoadMore(this.resultsPage))+"</li>");window.setTimeout(function(){Z.loadMoreIfNeeded()},10)}this.postprocessResults(ac,W);V();this.opts.element.trigger({type:"select2-loaded",items:ac})})})},cancel:function(){this.close()},blur:function(){if(this.opts.selectOnBlur){this.selectHighlighted({noFocus:true})}this.close();this.container.removeClass("select2-container-active");if(this.search[0]===document.activeElement){this.search.blur()}this.clearSearch();this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus")},focusSearch:function(){I(this.search)},selectHighlighted:function(P){var O=this.highlight(),Q=this.results.find(".select2-highlighted"),R=Q.closest(".select2-result").data("select2-data");if(R){this.highlight(O);this.onSelect(R,P)}else{if(P&&P.noFocus){this.close()}}},getPlaceholder:function(){var O;return this.opts.element.attr("placeholder")||this.opts.element.attr("data-placeholder")||this.opts.element.data("placeholder")||this.opts.placeholder||((O=this.getPlaceholderOption())!==m?O.text():m)},getPlaceholderOption:function(){if(this.select){var O=this.select.children().first();if(this.opts.placeholderOption!==m){return(this.opts.placeholderOption==="first"&&O)||(typeof this.opts.placeholderOption==="function"&&this.opts.placeholderOption(this.select))}else{if(O.text()===""&&O.val()===""){return O}}}},initContainerWidth:function(){function P(){var T,R,U,S,Q;if(this.opts.width==="off"){return null}else{if(this.opts.width==="element"){return this.opts.element.outerWidth(false)===0?"auto":this.opts.element.outerWidth(false)+"px"}else{if(this.opts.width==="copy"||this.opts.width==="resolve"){T=this.opts.element.attr("style");if(T!==m){R=T.split(";");for(S=0,Q=R.length;S<Q;S=S+1){U=R[S].replace(/\s/g,"").match(/[^-]width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i);if(U!==null&&U.length>=1){return U[1]}}}if(this.opts.width==="resolve"){T=this.opts.element.css("width");if(T.indexOf("%")>0){return T}return(this.opts.element.outerWidth(false)===0?"auto":this.opts.element.outerWidth(false)+"px")}return null}else{if(D.isFunction(this.opts.width)){return this.opts.width()}else{return this.opts.width}}}}}var O=P.call(this);if(O!==null){this.container.css("width",O)}}});x=L(N,{createContainer:function(){var O=D(document.createElement("div")).attr({"class":"select2-container"}).html(["<a href='javascript:void(0)' onclick='return false;' class='select2-choice' tabindex='-1'>"," <span class='select2-chosen'> </span><abbr class='select2-search-choice-close'></abbr>"," <span class='select2-arrow'><b></b></span>","</a>","<input class='select2-focusser select2-offscreen' type='text'/>","<div class='select2-drop select2-display-none'>"," <div class='select2-search'>"," <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input'/>"," </div>"," <ul class='select2-results'>"," </ul>","</div>"].join(""));return O},enableInterface:function(){if(this.parent.enableInterface.apply(this,arguments)){this.focusser.prop("disabled",!this.isInterfaceEnabled())}},opening:function(){var Q,P,O;if(this.opts.minimumResultsForSearch>=0){this.showSearch(true)}this.parent.opening.apply(this,arguments);if(this.showSearchInput!==false){this.search.val(this.focusser.val())}this.search.focus();Q=this.search.get(0);if(Q.createTextRange){P=Q.createTextRange();P.collapse(false);P.select()}else{if(Q.setSelectionRange){O=this.search.val().length;Q.setSelectionRange(O,O)}}if(this.search.val()===""){if(this.nextSearchTerm!=m){this.search.val(this.nextSearchTerm);this.search.select()}}this.focusser.prop("disabled",true).val("");this.updateResults(true);this.opts.element.trigger(D.Event("select2-open"))},close:function(O){if(!this.opened()){return}this.parent.close.apply(this,arguments);O=O||{focus:true};this.focusser.removeAttr("disabled");if(O.focus){this.focusser.focus()}},focus:function(){if(this.opened()){this.close()}else{this.focusser.removeAttr("disabled");this.focusser.focus()}},isFocused:function(){return this.container.hasClass("select2-container-active")},cancel:function(){this.parent.cancel.apply(this,arguments);this.focusser.removeAttr("disabled");this.focusser.focus()},destroy:function(){D("label[for='"+this.focusser.attr("id")+"']").attr("for",this.opts.element.attr("id"));this.parent.destroy.apply(this,arguments)},initContainer:function(){var P,O=this.container,Q=this.dropdown;if(this.opts.minimumResultsForSearch<0){this.showSearch(false)}else{this.showSearch(true)}this.selection=P=O.find(".select2-choice");this.focusser=O.find(".select2-focusser");this.focusser.attr("id","s2id_autogen"+a());D("label[for='"+this.opts.element.attr("id")+"']").attr("for",this.focusser.attr("id"));this.focusser.attr("tabindex",this.elementTabIndex);this.search.on("keydown",this.bind(function(R){if(!this.isInterfaceEnabled()){return}if(R.which===K.PAGE_UP||R.which===K.PAGE_DOWN){A(R);return}switch(R.which){case K.UP:case K.DOWN:this.moveHighlight((R.which===K.UP)?-1:1);A(R);return;case K.ENTER:this.selectHighlighted();A(R);return;case K.TAB:this.selectHighlighted({noFocus:true});return;case K.ESC:this.cancel(R);A(R);return}}));this.search.on("blur",this.bind(function(R){if(document.activeElement===this.body().get(0)){window.setTimeout(this.bind(function(){this.search.focus()}),0)}}));this.focusser.on("keydown",this.bind(function(R){if(!this.isInterfaceEnabled()){return}if(R.which===K.TAB||K.isControl(R)||K.isFunctionKey(R)||R.which===K.ESC){return}if(this.opts.openOnEnter===false&&R.which===K.ENTER){A(R);return}if(R.which==K.DOWN||R.which==K.UP||(R.which==K.ENTER&&this.opts.openOnEnter)){if(R.altKey||R.ctrlKey||R.shiftKey||R.metaKey){return}this.open();A(R);return}if(R.which==K.DELETE||R.which==K.BACKSPACE){if(this.opts.allowClear){this.clear()}A(R);return}}));F(this.focusser);this.focusser.on("keyup-change input",this.bind(function(R){if(this.opts.minimumResultsForSearch>=0){R.stopPropagation();if(this.opened()){return}this.open()}}));P.on("mousedown","abbr",this.bind(function(R){if(!this.isInterfaceEnabled()){return}this.clear();b(R);this.close();this.selection.focus()}));P.on("mousedown",this.bind(function(R){if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger(D.Event("select2-focus"))}if(this.opened()){this.close()}else{if(this.isInterfaceEnabled()){this.open()}}A(R)}));Q.on("mousedown",this.bind(function(){this.search.focus()}));P.on("focus",this.bind(function(R){A(R)}));this.focusser.on("focus",this.bind(function(){if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger(D.Event("select2-focus"))}this.container.addClass("select2-container-active")})).on("blur",this.bind(function(){if(!this.opened()){this.container.removeClass("select2-container-active");this.opts.element.trigger(D.Event("select2-blur"))}}));this.search.on("focus",this.bind(function(){if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger(D.Event("select2-focus"))}this.container.addClass("select2-container-active")}));this.initContainerWidth();this.opts.element.addClass("select2-offscreen");this.setPlaceholder()},clear:function(Q){var R=this.selection.data("select2-data");if(R){var P=D.Event("select2-clearing");this.opts.element.trigger(P);if(P.isDefaultPrevented()){return}var O=this.getPlaceholderOption();this.opts.element.val(O?O.val():"");this.selection.find(".select2-chosen").empty();this.selection.removeData("select2-data");this.setPlaceholder();if(Q!==false){this.opts.element.trigger({type:"select2-removed",val:this.id(R),choice:R});this.triggerChange({removed:R})}}},initSelection:function(){var P;if(this.isPlaceholderOptionSelected()){this.updateSelection(null);this.close();this.setPlaceholder()}else{var O=this;this.opts.initSelection.call(null,this.opts.element,function(Q){if(Q!==m&&Q!==null){O.updateSelection(Q);O.close();O.setPlaceholder()}})}},isPlaceholderOptionSelected:function(){var O;if(!this.getPlaceholder()){return false}return((O=this.getPlaceholderOption())!==m&&O.is(":selected"))||(this.opts.element.val()==="")||(this.opts.element.val()===m)||(this.opts.element.val()===null)},prepareOpts:function(){var P=this.parent.prepareOpts.apply(this,arguments),O=this;if(P.element.get(0).tagName.toLowerCase()==="select"){P.initSelection=function(Q,S){var R=Q.find(":selected");S(O.optionToData(R))}}else{if("data" in P){P.initSelection=P.initSelection||function(R,T){var S=R.val();var Q=null;P.query({matcher:function(U,X,V){var W=t(S,P.id(V));if(W){Q=V}return W},callback:!D.isFunction(T)?D.noop:function(){T(Q)}})}}}return P},getPlaceholder:function(){if(this.select){if(this.getPlaceholderOption()===m){return m}}return this.parent.getPlaceholder.apply(this,arguments)},setPlaceholder:function(){var O=this.getPlaceholder();if(this.isPlaceholderOptionSelected()&&O!==m){if(this.select&&this.getPlaceholderOption()===m){return}this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(O));this.selection.addClass("select2-default");this.container.removeClass("select2-allowclear")}},postprocessResults:function(T,P,S){var R=0,O=this,U=true;this.findHighlightableChoices().each2(function(V,W){if(t(O.id(W.data("select2-data")),O.opts.element.val())){R=V;return false}});if(S!==false){if(P===true&&R>=0){this.highlight(R)}else{this.highlight(0)}}if(P===true){var Q=this.opts.minimumResultsForSearch;if(Q>=0){this.showSearch(r(T.results)>=Q)}}},showSearch:function(O){if(this.showSearchInput===O){return}this.showSearchInput=O;this.dropdown.find(".select2-search").toggleClass("select2-search-hidden",!O);this.dropdown.find(".select2-search").toggleClass("select2-offscreen",!O);D(this.dropdown,this.container).toggleClass("select2-with-searchbox",O)},onSelect:function(Q,P){if(!this.triggerSelect(Q)){return}var O=this.opts.element.val(),R=this.data();this.opts.element.val(this.id(Q));this.updateSelection(Q);this.opts.element.trigger({type:"select2-selected",val:this.id(Q),choice:Q});this.nextSearchTerm=this.opts.nextSearchTerm(Q,this.search.val());this.close();if(!P||!P.noFocus){this.focusser.focus()}if(!t(O,this.id(Q))){this.triggerChange({added:Q,removed:R})}},updateSelection:function(R){var P=this.selection.find(".select2-chosen"),Q,O;this.selection.data("select2-data",R);P.empty();if(R!==null){Q=this.opts.formatSelection(R,P,this.opts.escapeMarkup)}if(Q!==m){P.append(Q)}O=this.opts.formatSelectionCssClass(R,P);if(O!==m){P.addClass(O)}this.selection.removeClass("select2-default");if(this.opts.allowClear&&this.getPlaceholder()!==m){this.container.addClass("select2-allowclear")}},val:function(){var S,P=false,Q=null,O=this,R=this.data();if(arguments.length===0){return this.opts.element.val()}S=arguments[0];if(arguments.length>1){P=arguments[1]}if(this.select){this.select.val(S).find(":selected").each2(function(T,U){Q=O.optionToData(U);return false});this.updateSelection(Q);this.setPlaceholder();if(P){this.triggerChange({added:Q,removed:R})}}else{if(!S&&S!==0){this.clear(P);return}if(this.opts.initSelection===m){throw new Error("cannot call val() if initSelection() is not defined")}this.opts.element.val(S);this.opts.initSelection(this.opts.element,function(T){O.opts.element.val(!T?"":O.id(T));O.updateSelection(T);O.setPlaceholder();if(P){O.triggerChange({added:T,removed:R})}})}},clearSearch:function(){this.search.val("");this.focusser.val("")},data:function(Q){var P,O=false;if(arguments.length===0){P=this.selection.data("select2-data");if(P==m){P=null}return P}else{if(arguments.length>1){O=arguments[1]}if(!Q){this.clear(O)}else{P=this.data();this.opts.element.val(!Q?"":this.id(Q));this.updateSelection(Q);if(O){this.triggerChange({added:Q,removed:P})}}}}});c=L(N,{createContainer:function(){var O=D(document.createElement("div")).attr({"class":"select2-container select2-container-multi"}).html(["<ul class='select2-choices'>"," <li class='select2-search-field'>"," <input type='text' autocomplete='off' autocorrect='off' autocapitalize='off' spellcheck='false' class='select2-input'>"," </li>","</ul>","<div class='select2-drop select2-drop-multi select2-display-none'>"," <ul class='select2-results'>"," </ul>","</div>"].join(""));return O},prepareOpts:function(){var P=this.parent.prepareOpts.apply(this,arguments),O=this;if(P.element.get(0).tagName.toLowerCase()==="select"){P.initSelection=function(Q,S){var R=[];Q.find(":selected").each2(function(T,U){R.push(O.optionToData(U))});S(R)}}else{if("data" in P){P.initSelection=P.initSelection||function(Q,T){var R=i(Q.val(),P.separator);var S=[];P.query({matcher:function(U,X,V){var W=D.grep(R,function(Y){return t(Y,P.id(V))}).length;if(W){S.push(V)}return W},callback:!D.isFunction(T)?D.noop:function(){var U=[];for(var X=0;X<R.length;X++){var Y=R[X];for(var W=0;W<S.length;W++){var V=S[W];if(t(Y,P.id(V))){U.push(V);S.splice(W,1);break}}}T(U)}})}}}return P},selectChoice:function(O){var P=this.container.find(".select2-search-choice-focus");if(P.length&&O&&O[0]==P[0]){}else{if(P.length){this.opts.element.trigger("choice-deselected",P)}P.removeClass("select2-search-choice-focus");if(O&&O.length){this.close();O.addClass("select2-search-choice-focus");this.opts.element.trigger("choice-selected",O)}}},destroy:function(){D("label[for='"+this.search.attr("id")+"']").attr("for",this.opts.element.attr("id"));this.parent.destroy.apply(this,arguments)},initContainer:function(){var O=".select2-choices",P;this.searchContainer=this.container.find(".select2-search-field");this.selection=P=this.container.find(O);var Q=this;this.selection.on("click",".select2-search-choice:not(.select2-locked)",function(R){Q.search[0].focus();Q.selectChoice(D(this))});this.search.attr("id","s2id_autogen"+a());D("label[for='"+this.opts.element.attr("id")+"']").attr("for",this.search.attr("id"));this.search.on("input paste",this.bind(function(){if(!this.isInterfaceEnabled()){return}if(!this.opened()){this.open()}}));this.search.attr("tabindex",this.elementTabIndex);this.keydowns=0;this.search.on("keydown",this.bind(function(V){if(!this.isInterfaceEnabled()){return}++this.keydowns;var T=P.find(".select2-search-choice-focus");var U=T.prev(".select2-search-choice:not(.select2-locked)");var S=T.next(".select2-search-choice:not(.select2-locked)");var W=f(this.search);if(T.length&&(V.which==K.LEFT||V.which==K.RIGHT||V.which==K.BACKSPACE||V.which==K.DELETE||V.which==K.ENTER)){var R=T;if(V.which==K.LEFT&&U.length){R=U}else{if(V.which==K.RIGHT){R=S.length?S:null}else{if(V.which===K.BACKSPACE){this.unselect(T.first());this.search.width(10);R=U.length?U:S}else{if(V.which==K.DELETE){this.unselect(T.first());this.search.width(10);R=S.length?S:null}else{if(V.which==K.ENTER){R=null}}}}}this.selectChoice(R);A(V);if(!R||!R.length){this.open()}return}else{if(((V.which===K.BACKSPACE&&this.keydowns==1)||V.which==K.LEFT)&&(W.offset==0&&!W.length)){this.selectChoice(P.find(".select2-search-choice:not(.select2-locked)").last());A(V);return}else{this.selectChoice(null)}}if(this.opened()){switch(V.which){case K.UP:case K.DOWN:this.moveHighlight((V.which===K.UP)?-1:1);A(V);return;case K.ENTER:this.selectHighlighted();A(V);return;case K.TAB:this.selectHighlighted({noFocus:true});this.close();return;case K.ESC:this.cancel(V);A(V);return}}if(V.which===K.TAB||K.isControl(V)||K.isFunctionKey(V)||V.which===K.BACKSPACE||V.which===K.ESC){return}if(V.which===K.ENTER){if(this.opts.openOnEnter===false){return}else{if(V.altKey||V.ctrlKey||V.shiftKey||V.metaKey){return}}}this.open();if(V.which===K.PAGE_UP||V.which===K.PAGE_DOWN){A(V)}if(V.which===K.ENTER){A(V)}}));this.search.on("keyup",this.bind(function(R){this.keydowns=0;this.resizeSearch()}));this.search.on("blur",this.bind(function(R){this.container.removeClass("select2-container-active");this.search.removeClass("select2-focused");this.selectChoice(null);if(!this.opened()){this.clearSearch()}R.stopImmediatePropagation();this.opts.element.trigger(D.Event("select2-blur"))}));this.container.on("click",O,this.bind(function(R){if(!this.isInterfaceEnabled()){return}if(D(R.target).closest(".select2-search-choice").length>0){return}this.selectChoice(null);this.clearPlaceholder();if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger(D.Event("select2-focus"))}this.open();this.focusSearch();R.preventDefault()}));this.container.on("focus",O,this.bind(function(){if(!this.isInterfaceEnabled()){return}if(!this.container.hasClass("select2-container-active")){this.opts.element.trigger(D.Event("select2-focus"))}this.container.addClass("select2-container-active");this.dropdown.addClass("select2-drop-active");this.clearPlaceholder()}));this.initContainerWidth();this.opts.element.addClass("select2-offscreen");this.clearSearch()},enableInterface:function(){if(this.parent.enableInterface.apply(this,arguments)){this.search.prop("disabled",!this.isInterfaceEnabled())}},initSelection:function(){var P;if(this.opts.element.val()===""&&this.opts.element.text()===""){this.updateSelection([]);this.close();this.clearSearch()}if(this.select||this.opts.element.val()!==""){var O=this;this.opts.initSelection.call(null,this.opts.element,function(Q){if(Q!==m&&Q!==null){O.updateSelection(Q);O.close();O.clearSearch()}})}},clearSearch:function(){var P=this.getPlaceholder(),O=this.getMaxSearchWidth();if(P!==m&&this.getVal().length===0&&this.search.hasClass("select2-focused")===false){this.search.val(P).addClass("select2-default");this.search.width(O>0?O:this.container.css("width"))}else{this.search.val("").width(10)}},clearPlaceholder:function(){if(this.search.hasClass("select2-default")){this.search.val("").removeClass("select2-default")}},opening:function(){this.clearPlaceholder();this.resizeSearch();this.parent.opening.apply(this,arguments);this.focusSearch();this.updateResults(true);this.search.focus();this.opts.element.trigger(D.Event("select2-open"))},close:function(){if(!this.opened()){return}this.parent.close.apply(this,arguments)},focus:function(){this.close();this.search.focus()},isFocused:function(){return this.search.hasClass("select2-focused")},updateSelection:function(R){var Q=[],P=[],O=this;D(R).each(function(){if(q(O.id(this),Q)<0){Q.push(O.id(this));P.push(this)}});R=P;this.selection.find(".select2-search-choice").remove();D(R).each(function(){O.addSelectedChoice(this)});O.postprocessResults()},tokenize:function(){var O=this.search.val();O=this.opts.tokenizer.call(this,O,this.data(),this.bind(this.onSelect),this.opts);if(O!=null&&O!=m){this.search.val(O);if(O.length>0){this.open()}}},onSelect:function(P,O){if(!this.triggerSelect(P)){return}this.addSelectedChoice(P);this.opts.element.trigger({type:"selected",val:this.id(P),choice:P});if(this.select||!this.opts.closeOnSelect){this.postprocessResults(P,false,this.opts.closeOnSelect===true)}if(this.opts.closeOnSelect){this.close();this.search.width(10)}else{if(this.countSelectableResults()>0){this.search.width(10);this.resizeSearch();if(this.getMaximumSelectionSize()>0&&this.val().length>=this.getMaximumSelectionSize()){this.updateResults(true)}this.positionDropdown()}else{this.close();this.search.width(10)}}this.triggerChange({added:P});if(!O||!O.noFocus){this.focusSearch()}},cancel:function(){this.close();this.focusSearch()},addSelectedChoice:function(S){var U=!S.locked,Q=D("<li class='select2-search-choice'><div></div><a href='#' onclick='return false;' class='select2-search-choice-close' tabindex='-1'></a></li>"),V=D("<li class='select2-search-choice select2-locked'><div></div></li>");var R=U?Q:V,O=this.id(S),P=this.getVal(),T,W;T=this.opts.formatSelection(S,R.find("div"),this.opts.escapeMarkup);if(T!=m){R.find("div").replaceWith("<div>"+T+"</div>")}W=this.opts.formatSelectionCssClass(S,R.find("div"));if(W!=m){R.addClass(W)}if(U){R.find(".select2-search-choice-close").on("mousedown",A).on("click dblclick",this.bind(function(X){if(!this.isInterfaceEnabled()){return}D(X.target).closest(".select2-search-choice").fadeOut("fast",this.bind(function(){this.unselect(D(X.target));this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus");this.close();this.focusSearch()})).dequeue();A(X)})).on("focus",this.bind(function(){if(!this.isInterfaceEnabled()){return}this.container.addClass("select2-container-active");this.dropdown.addClass("select2-drop-active")}))}R.data("select2-data",S);R.insertBefore(this.searchContainer);P.push(O);this.setVal(P)},unselect:function(P){var R=this.getVal(),Q,O;P=P.closest(".select2-search-choice");if(P.length===0){throw"Invalid argument: "+P+". Must be .select2-search-choice"}Q=P.data("select2-data");if(!Q){return}while((O=q(this.id(Q),R))>=0){R.splice(O,1);this.setVal(R);if(this.select){this.postprocessResults()}}P.remove();this.opts.element.trigger({type:"removed",val:this.id(Q),choice:Q});this.triggerChange({removed:Q})},postprocessResults:function(S,P,R){var T=this.getVal(),U=this.results.find(".select2-result"),Q=this.results.find(".select2-result-with-children"),O=this;U.each2(function(W,V){var X=O.id(V.data("select2-data"));if(q(X,T)>=0){V.addClass("select2-selected");V.find(".select2-result-selectable").addClass("select2-selected")}});Q.each2(function(W,V){if(!V.is(".select2-result-selectable")&&V.find(".select2-result-selectable:not(.select2-selected)").length===0){V.addClass("select2-selected")}});if(this.highlight()==-1&&R!==false){O.highlight(0)}if(!this.opts.createSearchChoice&&!U.filter(".select2-result:not(.select2-selected)").length>0){if(!S||S&&!S.more&&this.results.find(".select2-no-results").length===0){if(y(O.opts.formatNoMatches,"formatNoMatches")){this.results.append("<li class='select2-no-results'>"+O.opts.formatNoMatches(O.search.val())+"</li>")}}}},getMaxSearchWidth:function(){return this.selection.width()-h(this.search)},resizeSearch:function(){var T,R,Q,O,P,S=h(this.search);T=n(this.search)+10;R=this.search.offset().left;Q=this.selection.width();O=this.selection.offset().left;P=Q-(R-O)-S;if(P<T){P=Q-S}if(P<40){P=Q-S}if(P<=0){P=T}this.search.width(Math.floor(P))},getVal:function(){var O;if(this.select){O=this.select.val();return O===null?[]:O}else{O=this.opts.element.val();return i(O,this.opts.separator)}},setVal:function(P){var O;if(this.select){this.select.val(P)}else{O=[];D(P).each(function(){if(q(this,O)<0){O.push(this)}});this.opts.element.val(O.length===0?"":O.join(this.opts.separator))}},buildChangeDetails:function(O,R){var R=R.slice(0),O=O.slice(0);for(var Q=0;Q<R.length;Q++){for(var P=0;P<O.length;P++){if(t(this.opts.id(R[Q]),this.opts.id(O[P]))){R.splice(Q,1);Q--;O.splice(P,1);P--}}}return{added:R,removed:O}},val:function(S,P){var R,O=this,Q;if(arguments.length===0){return this.getVal()}R=this.data();if(!R.length){R=[]}if(!S&&S!==0){this.opts.element.val("");this.updateSelection([]);this.clearSearch();if(P){this.triggerChange({added:this.data(),removed:R})}return}this.setVal(S);if(this.select){this.opts.initSelection(this.select,this.bind(this.updateSelection));if(P){this.triggerChange(this.buildChangeDetails(R,this.data()))}}else{if(this.opts.initSelection===m){throw new Error("val() cannot be called if initSelection() is not defined")}this.opts.initSelection(this.opts.element,function(U){var T=D.map(U,O.id);O.setVal(T);O.updateSelection(U);O.clearSearch();if(P){O.triggerChange(O.buildChangeDetails(R,this.data()))}})}this.clearSearch()},onSortStart:function(){if(this.select){throw new Error("Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead.")}this.search.width(0);this.searchContainer.hide()},onSortEnd:function(){var P=[],O=this;this.searchContainer.show();this.searchContainer.appendTo(this.searchContainer.parent());this.resizeSearch();this.selection.find(".select2-search-choice").each(function(){P.push(O.opts.id(D(this).data("select2-data")))});this.setVal(P);this.triggerChange()},data:function(Q,R){var P=this,S,O;if(arguments.length===0){return this.selection.find(".select2-search-choice").map(function(){return D(this).data("select2-data")}).get()}else{O=this.data();if(!Q){Q=[]}S=D.map(Q,function(T){return P.opts.id(T)});this.setVal(S);this.updateSelection(Q);this.clearSearch();if(R){this.triggerChange(this.buildChangeDetails(O,this.data()))}}}});D.fn.select2=function(){var T=Array.prototype.slice.call(arguments,0),P,S,O,V,X,W=["val","destroy","opened","open","close","focus","isFocused","container","dropdown","onSortStart","onSortEnd","enable","disable","readonly","positionDropdown","data","search"],U=["opened","isFocused","container","dropdown"],Q=["val","data"],R={search:"externalSearch"};this.each(function(){if(T.length===0||typeof(T[0])==="object"){P=T.length===0?{}:D.extend({},T[0]);P.element=D(this);if(P.element.get(0).tagName.toLowerCase()==="select"){X=P.element.prop("multiple")}else{X=P.multiple||false;if("tags" in P){P.multiple=X=true}}S=X?new c():new x();S.init(P)}else{if(typeof(T[0])==="string"){if(q(T[0],W)<0){throw"Unknown method: "+T[0]}V=m;S=D(this).data("select2");if(S===m){return}O=T[0];if(O==="container"){V=S.container}else{if(O==="dropdown"){V=S.dropdown}else{if(R[O]){O=R[O]}V=S[O].apply(S,T.slice(1))}}if(q(T[0],U)>=0||(q(T[0],Q)&&T.length==1)){return false}}else{throw"Invalid arguments to select2 plugin: "+T}}});return(V===m)?this:V};D.fn.select2.defaults={width:"copy",loadMorePadding:0,closeOnSelect:true,openOnEnter:true,containerCss:{},dropdownCss:{},containerCssClass:"",dropdownCssClass:"",formatResult:function(P,Q,S,O){var R=[];u(P.text,S.term,R,O);return R.join("")},formatSelection:function(Q,P,O){return Q?O(Q.text):m},sortResults:function(P,O,Q){return P},formatResultCssClass:function(O){return m},formatSelectionCssClass:function(P,O){return m},formatNoMatches:function(){return"No matches found"},formatInputTooShort:function(O,P){var Q=P-O.length;return"Please enter "+Q+" more character"+(Q==1?"":"s")},formatInputTooLong:function(P,O){var Q=P.length-O;return"Please delete "+Q+" character"+(Q==1?"":"s")},formatSelectionTooBig:function(O){return"You can only select "+O+" item"+(O==1?"":"s")},formatLoadMore:function(O){return"Loading more results..."},formatSearching:function(){return"Searching..."},minimumResultsForSearch:0,minimumInputLength:0,maximumInputLength:null,maximumSelectionSize:0,id:function(O){return O.id},matcher:function(O,P){return e(""+P).toUpperCase().indexOf(e(""+O).toUpperCase())>=0},separator:",",tokenSeparators:[],tokenizer:g,escapeMarkup:G,blurOnChange:false,selectOnBlur:false,adaptContainerCssClass:function(O){return O},adaptDropdownCssClass:function(O){return null},nextSearchTerm:function(O,P){return m}};D.fn.select2.ajaxDefaults={transport:D.ajax,params:{type:"GET",cache:false,dataType:"json"}};window.Select2={query:{ajax:E,local:H,tags:z},util:{debounce:k,markMatch:u,escapeMarkup:G,stripDiacritics:e},"class":{"abstract":N,single:x,multi:c}}}(jQuery));
\ No newline at end of file
diff -r e1bc855165bc857d6afd19d37a0542798601d85a -r 8c464ada320ff611112d5b71febe394112a02daf static/scripts/packed/utils/galaxy.uploadbox.js
--- a/static/scripts/packed/utils/galaxy.uploadbox.js
+++ b/static/scripts/packed/utils/galaxy.uploadbox.js
@@ -1,1 +1,1 @@
-(function(g){jQuery.event.props.push("dataTransfer");var c={url:"",paramname:"content",maxfilesize:250,dragover:function(){},dragleave:function(){},announce:function(){},initialize:function(){},progress:function(){},success:function(){},error:function(i,j,k){alert(k)},error_browser:"Your browser does not support drag-and-drop file uploads.",error_filesize:"This file is too large (>250MB). Please use an FTP client to upload it.",error_default:"Please make sure the file is available.",text_default:"Drag&drop files into this box or click 'Select' to select files!",text_degrade:"Unfortunately, your browser does not support multiple file uploads or drag&drop.<br>Please upgrade to i.e. Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+."};var f={};var a={};var b=0;var d=0;var h=false;var e=null;g.fn.uploadbox=function(i){f=g.extend({},c,i);var o=window.File&&window.FileReader&&window.FormData&&window.XMLHttpRequest;e=this;e.append('<input id="uploadbox_input" type="file" style="display: none" multiple>');e.append('<div id="uploadbox_info"></div>');if(o){e.find("#uploadbox_info").html(f.text_default)}else{e.find("#uploadbox_info").html(f.text_degrade)}e.on("drop",n);e.on("dragover",u);e.on("dragleave",t);g("#uploadbox_input").change(function(A){p(A.target.files)});function n(A){if(!A.dataTransfer){return}p(A.dataTransfer.files);A.preventDefault();return false}function u(A){A.preventDefault();f.dragover.call(A)}function t(A){A.stopPropagation();f.dragleave.call(A)}function k(A){if(A.lengthComputable){f.progress(this.index,this.file,Math.round((A.loaded*100)/A.total))}}function p(C){for(var B=0;B<C.length;B++){var A=String(++b);a[A]=C[B];d++;f.announce(A,a[A],"")}}function z(A){if(a[A]){delete a[A];d--}}function q(){var D=-1;for(var F in a){D=F;break}if(d==0){return}var E=a[D];z(D);var H=f.initialize(D,E,j);try{var B=new FileReader();var C=E.size;var A=1048576*f.maxfilesize;B.index=D;if(C<A){B.onload=function(I){l(D,E,H)};B.onerror=function(I){s(D,E,f.error_default)};B.readAsDataURL(E)}else{s(D,E,f.error_filesize)}}catch(G){s(D,E,G)}}function l(A,C,D){var E=new FormData();for(var B in D){E.append(B,D[B])}E.append(f.paramname,C,C.name);var F=new XMLHttpRequest();F.upload.index=A;F.upload.file=C;F.upload.addEventListener("progress",k,false);F.open("POST",f.url,true);F.setRequestHeader("Accept","application/json");F.setRequestHeader("Cache-Control","no-cache");F.setRequestHeader("X-Requested-With","XMLHttpRequest");F.send(E);F.onloadend=function(){var G=null;if(F.responseText){try{G=jQuery.parseJSON(F.responseText)}catch(H){G=F.responseText}}if(F.status<200||F.status>299){var I=F.statusText;if(!F.statusText){I=f.error_default}s(A,C,I+" (Server Code "+F.status+")")}else{m(A,C,G)}}}function m(A,B,C){f.success(A,B,C);q()}function s(A,B,C){f.error(A,B,C);q()}function r(){g("#uploadbox_input").trigger("click")}function x(A){for(A in a){z(A)}}function w(){if(!h){q()}}function j(){return d}function y(A){f=g.extend({},f,A);return f}function v(){return e.find("#uploadbox_info")}return{select:r,remove:z,upload:w,reset:x,length:j,configure:y,info:v}}})(jQuery);
\ No newline at end of file
+(function(g){jQuery.event.props.push("dataTransfer");var c={url:"",paramname:"content",maxfilesize:250,dragover:function(){},dragleave:function(){},announce:function(){},initialize:function(){},progress:function(){},success:function(){},error:function(i,j,k){alert(k)},complete:function(){},error_browser:"Your browser does not support drag-and-drop file uploads.",error_filesize:"This file is too large (>250MB). Please use an FTP client to upload it.",error_default:"Please make sure the file is available."};var f={};var a={};var b=0;var d=0;var h=false;var e=null;g.fn.uploadbox=function(x){f=g.extend({},c,x);e=this;e.append('<input id="uploadbox_input" type="file" style="display: none" multiple>');e.on("drop",l);e.on("dragover",m);e.on("dragleave",t);g("#uploadbox_input").change(function(y){v(y.target.files)});function l(y){if(!y.dataTransfer){return}v(y.dataTransfer.files);y.preventDefault();return false}function m(y){y.preventDefault();f.dragover.call(y)}function t(y){y.stopPropagation();f.dragleave.call(y)}function i(y){if(y.lengthComputable){f.progress(this.index,this.file,Math.round((y.loaded*100)/y.total))}}function v(A){if(h){return}for(var z=0;z<A.length;z++){var y=String(b++);a[y]=A[z];d++;f.announce(y,a[y],"")}}function o(y){if(a[y]){delete a[y];d--}}function j(){if(d==0){h=false;f.complete();return}else{h=true}var B=-1;for(var D in a){B=D;break}var C=a[B];o(B);var F=f.initialize(B,C);try{var z=new FileReader();var A=C.size;var y=1048576*f.maxfilesize;z.index=B;if(A<y){z.onload=function(G){n(B,C,F)};z.onerror=function(G){r(B,C,f.error_default)};z.readAsDataURL(C)}else{r(B,C,f.error_filesize)}}catch(E){r(B,C,E)}}function n(y,A,B){var C=new FormData();for(var z in B){C.append(z,B[z])}C.append(f.paramname,A,A.name);var D=new XMLHttpRequest();D.upload.index=y;D.upload.file=A;D.upload.addEventListener("progress",i,false);D.open("POST",f.url,true);D.setRequestHeader("Accept","application/json");D.setRequestHeader("Cache-Control","no-cache");D.setRequestHeader("X-Requested-With","XMLHttpRequest");D.send(C);D.onloadend=function(){var E=null;if(D.responseText){try{E=jQuery.parseJSON(D.responseText)}catch(F){E=D.responseText}}if(D.status<200||D.status>299){var G=D.statusText;if(!D.statusText){G=f.error_default}r(y,A,G+" (Server Code "+D.status+")")}else{u(y,A,E)}}}function u(y,z,A){f.success(y,z,A);j()}function r(y,z,A){f.error(y,z,A);j()}function s(){g("#uploadbox_input").trigger("click")}function q(y){for(y in a){o(y)}}function w(){if(!h){j()}}function k(y){f=g.extend({},f,y);return f}function p(){return window.File&&window.FileReader&&window.FormData&&window.XMLHttpRequest}return{select:s,remove:o,upload:w,reset:q,configure:k,compatible:p}}})(jQuery);
\ No newline at end of file
diff -r e1bc855165bc857d6afd19d37a0542798601d85a -r 8c464ada320ff611112d5b71febe394112a02daf tool_conf.xml.main
--- a/tool_conf.xml.main
+++ b/tool_conf.xml.main
@@ -336,33 +336,4 @@
<label text="Filtering" id="filtering" /><tool file="ngs_rna/filter_transcripts_via_tracking.xml" /></section>
- <label text="RGENETICS" id="rgenetics" />
- <section name="SNP/WGA: Data; Filters" id="rgdat">
- <label text="Data: Import and upload" id="rgimport" />
- <tool file="data_source/upload.xml"/>
- <tool file="data_source/access_libraries.xml" />
- <tool file="data_source/hapmapmart.xml" />
- <label text="Data: Filter and Clean" id="rgfilter" />
- <tool file="rgenetics/rgClean.xml"/>
- <tool file="rgenetics/rgPedSub.xml"/>
- <tool file="rgenetics/rgLDIndep.xml"/>
- <label text="Simulate" id="rgsim" />
- <tool file="rgenetics/rgfakePhe.xml"/>
- <tool file="rgenetics/rgfakePed.xml"/>
- </section>
- <section name="SNP/WGA: QC; LD; Plots" id="rgqcplot">
- <label text="QC; Eigenstrat" id="rgvisual" />
- <tool file="rgenetics/rgQC.xml"/>
- <tool file="rgenetics/rgEigPCA.xml"/>
- <label text="LD; Manhattan/QQ; GRR" id="rgld" />
- <tool file="rgenetics/rgHaploView.xml"/>
- <tool file="rgenetics/rgManQQ.xml"/>
- <tool file="rgenetics/rgGRR.xml"/>
- </section>
- <section name="SNP/WGA: Statistical Models" id="rgmodel">
- <tool file="rgenetics/rgCaCo.xml"/>
- <tool file="rgenetics/rgTDT.xml"/>
- <tool file="rgenetics/rgGLM.xml"/>
- <tool file="rgenetics/rgManQQ.xml"/>
- </section></toolbox>
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: natefoo: Remove unmaintained RGENETICS tools from Galaxy Main
by commits-noreply@bitbucket.org 23 Sep '13
by commits-noreply@bitbucket.org 23 Sep '13
23 Sep '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/4b1c7ad464ea/
Changeset: 4b1c7ad464ea
Branch: stable
User: natefoo
Date: 2013-09-24 01:38:30
Summary: Remove unmaintained RGENETICS tools from Galaxy Main
Affected #: 1 file
diff -r 1f34ec186fcf79e5d82ea2a7e73ba5f537fb80f9 -r 4b1c7ad464ea5b181d9d5d95e8751518b170fca8 tool_conf.xml.main
--- a/tool_conf.xml.main
+++ b/tool_conf.xml.main
@@ -336,33 +336,4 @@
<label text="Filtering" id="filtering" /><tool file="ngs_rna/filter_transcripts_via_tracking.xml" /></section>
- <label text="RGENETICS" id="rgenetics" />
- <section name="SNP/WGA: Data; Filters" id="rgdat">
- <label text="Data: Import and upload" id="rgimport" />
- <tool file="data_source/upload.xml"/>
- <tool file="data_source/access_libraries.xml" />
- <tool file="data_source/hapmapmart.xml" />
- <label text="Data: Filter and Clean" id="rgfilter" />
- <tool file="rgenetics/rgClean.xml"/>
- <tool file="rgenetics/rgPedSub.xml"/>
- <tool file="rgenetics/rgLDIndep.xml"/>
- <label text="Simulate" id="rgsim" />
- <tool file="rgenetics/rgfakePhe.xml"/>
- <tool file="rgenetics/rgfakePed.xml"/>
- </section>
- <section name="SNP/WGA: QC; LD; Plots" id="rgqcplot">
- <label text="QC; Eigenstrat" id="rgvisual" />
- <tool file="rgenetics/rgQC.xml"/>
- <tool file="rgenetics/rgEigPCA.xml"/>
- <label text="LD; Manhattan/QQ; GRR" id="rgld" />
- <tool file="rgenetics/rgHaploView.xml"/>
- <tool file="rgenetics/rgManQQ.xml"/>
- <tool file="rgenetics/rgGRR.xml"/>
- </section>
- <section name="SNP/WGA: Statistical Models" id="rgmodel">
- <tool file="rgenetics/rgCaCo.xml"/>
- <tool file="rgenetics/rgTDT.xml"/>
- <tool file="rgenetics/rgGLM.xml"/>
- <tool file="rgenetics/rgManQQ.xml"/>
- </section></toolbox>
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/commits/5a35cebc5735/
Changeset: 5a35cebc5735
User: natefoo
Date: 2013-09-24 00:44:47
Summary: Drop old platforms from dist-eggs.ini.
Affected #: 1 file
diff -r 72308af0df6416a4cc888ee2cb5af90b3fd8f9fe -r 5a35cebc573591fb9dc15e9712d8d8a4ebc12c65 dist-eggs.ini
--- a/dist-eggs.ini
+++ b/dist-eggs.ini
@@ -1,88 +1,54 @@
;
; Config for building eggs for distribution (via a site such as
-; eggs.g2.bx.psu.edu) Probably only useful to Galaxy developers at
-; Penn State. This file is used by scripts/dist-scramble.py
+; eggs.galaxyproject.org) Probably only useful to members of the Galaxy Team
+; building eggs for distribution. This file is used by
+; scripts/dist-scramble.py
;
-; More information: http://wiki.g2.bx.psu.edu/Admin/Config/Eggs
+; More information: http://wiki.galaxyproject.org/Admin/Config/Eggs
;
[hosts]
-py2.5-linux-i686-ucs2 = stegmaier.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-i686-ucs2/bin/python2.5
-py2.5-linux-i686-ucs4 = stegmaier.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-i686-ucs4/bin/python2.5
py2.6-linux-i686-ucs2 = stegmaier.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-i686-ucs2/bin/python2.6
py2.6-linux-i686-ucs4 = stegmaier.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-i686-ucs4/bin/python2.6
py2.7-linux-i686-ucs2 = stegmaier.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-i686-ucs2/bin/python2.7
py2.7-linux-i686-ucs4 = stegmaier.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-i686-ucs4/bin/python2.7
-py2.5-linux-x86_64-ucs2 = straub.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-x86_64-ucs2/bin/python2.5
-py2.5-linux-x86_64-ucs4 = straub.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-x86_64-ucs4/bin/python2.5
py2.6-linux-x86_64-ucs2 = straub.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-x86_64-ucs2/bin/python2.6
py2.6-linux-x86_64-ucs4 = straub.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-x86_64-ucs4/bin/python2.6
py2.7-linux-x86_64-ucs2 = straub.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-x86_64-ucs2/bin/python2.7
py2.7-linux-x86_64-ucs4 = straub.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-x86_64-ucs4/bin/python2.7
-py2.5-macosx-10.3-fat-ucs2 = weyerbacher.bx.psu.edu /Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5
py2.6-macosx-10.3-fat-ucs2 = weyerbacher.bx.psu.edu /Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6
py2.7-macosx-10.3-fat-ucs2 = weyerbacher.bx.psu.edu /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
py2.6-macosx-10.6-universal-ucs2 = lion.bx.psu.edu /usr/bin/python2.6
py2.7-macosx-10.6-intel-ucs2 = lion.bx.psu.edu /usr/local/bin/python2.7
-py2.5-solaris-2.10-i86pc_32-ucs2 = thumper.bx.psu.edu /afs/bx.psu.edu/project/pythons/solaris-2.10-i86pc_32-ucs2/bin/python2.5
-py2.6-solaris-2.10-i86pc_32-ucs2 = thumper.bx.psu.edu /afs/bx.psu.edu/project/pythons/solaris-2.10-i86pc_32-ucs2/bin/python2.6
-py2.7-solaris-2.10-i86pc_32-ucs2 = thumper.bx.psu.edu /afs/bx.psu.edu/project/pythons/solaris-2.10-i86pc_32-ucs2/bin/python2.7
-py2.5-solaris-2.10-i86pc_64-ucs2 = thumper.bx.psu.edu /afs/bx.psu.edu/project/pythons/solaris-2.10-i86pc_64-ucs2/bin/python2.5
-py2.6-solaris-2.10-i86pc_64-ucs2 = thumper.bx.psu.edu /afs/bx.psu.edu/project/pythons/solaris-2.10-i86pc_64-ucs2/bin/python2.6
-py2.7-solaris-2.10-i86pc_64-ucs2 = thumper.bx.psu.edu /afs/bx.psu.edu/project/pythons/solaris-2.10-i86pc_64-ucs2/bin/python2.7
-py2.5-solaris-2.10-sun4u_32-ucs2 = early.bx.psu.edu /afs/bx.psu.edu/project/pythons/solaris-2.8-sun4u_32-ucs2/bin/python2.5
-py2.6-solaris-2.10-sun4u_32-ucs2 = early.bx.psu.edu /afs/bx.psu.edu/project/pythons/solaris-2.8-sun4u_32-ucs2/bin/python2.6
-py2.7-solaris-2.10-sun4u_32-ucs2 = early.bx.psu.edu /afs/bx.psu.edu/project/pythons/solaris-2.8-sun4u_32-ucs2/bin/python2.7
-py2.5-solaris-2.10-sun4u_64-ucs2 = early.bx.psu.edu /afs/bx.psu.edu/project/pythons/solaris-2.10-sun4u_64-ucs2/bin/python2.5
-py2.6-solaris-2.10-sun4u_64-ucs2 = early.bx.psu.edu /afs/bx.psu.edu/project/pythons/solaris-2.10-sun4u_64-ucs2/bin/python2.6
-py2.7-solaris-2.10-sun4u_64-ucs2 = early.bx.psu.edu /afs/bx.psu.edu/project/pythons/solaris-2.10-sun4u_64-ucs2/bin/python2.7
-
+;
; these hosts are used to build eggs with no C extensions
-py2.5 = straub.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-x86_64-ucs4/bin/python2.5
py2.6 = straub.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-x86_64-ucs4/bin/python2.6
py2.7 = straub.bx.psu.edu /afs/bx.psu.edu/project/pythons/linux-x86_64-ucs4/bin/python2.7
[groups]
-py2.5-linux-i686 = py2.5-linux-i686-ucs2 py2.5-linux-i686-ucs4
-py2.5-linux-x86_64 = py2.5-linux-x86_64-ucs2 py2.5-linux-x86_64-ucs4
py2.6-linux-i686 = py2.6-linux-i686-ucs2 py2.6-linux-i686-ucs4
py2.6-linux-x86_64 = py2.6-linux-x86_64-ucs2 py2.6-linux-x86_64-ucs4
py2.7-linux-i686 = py2.7-linux-i686-ucs2 py2.7-linux-i686-ucs4
py2.7-linux-x86_64 = py2.7-linux-x86_64-ucs2 py2.7-linux-x86_64-ucs4
-py2.5-linux = py2.5-linux-i686 py2.5-linux-x86_64
py2.6-linux = py2.6-linux-i686 py2.6-linux-x86_64
py2.7-linux = py2.7-linux-i686 py2.7-linux-x86_64
-linux-i686 = py2.5-linux-i686 py2.6-linux-i686 py2.7-linux-i686
-linux-x86_64 = py2.5-linux-x86_64 py2.6-linux-x86_64 py2.7-linux-x86_64
+linux-i686 = py2.6-linux-i686 py2.7-linux-i686
+linux-x86_64 = py2.6-linux-x86_64 py2.7-linux-x86_64
linux = linux-i686 linux-x86_64
-py2.5-macosx = py2.5-macosx-10.3-fat-ucs2
py2.6-macosx = py2.6-macosx-10.3-fat-ucs2 py2.6-macosx-10.6-universal-ucs2
py2.7-macosx = py2.7-macosx-10.3-fat-ucs2 py2.7-macosx-10.6-intel-ucs2
-macosx = py2.5-macosx py2.6-macosx py2.7-macosx
-py2.5-solaris-i86pc = py2.5-solaris-2.10-i86pc_32-ucs2 py2.5-solaris-2.10-i86pc_64-ucs2
-py2.6-solaris-i86pc = py2.6-solaris-2.10-i86pc_32-ucs2 py2.6-solaris-2.10-i86pc_64-ucs2
-py2.7-solaris-i86pc = py2.7-solaris-2.10-i86pc_32-ucs2 py2.7-solaris-2.10-i86pc_64-ucs2
-py2.5-solaris-sun4u = py2.5-solaris-2.10-sun4u_32-ucs2 py2.5-solaris-2.10-sun4u_64-ucs2
-py2.6-solaris-sun4u = py2.6-solaris-2.10-sun4u_32-ucs2 py2.6-solaris-2.10-sun4u_64-ucs2
-py2.7-solaris-sun4u = py2.7-solaris-2.10-sun4u_32-ucs2 py2.7-solaris-2.10-sun4u_64-ucs2
-py2.5-solaris = py2.5-solaris-i86pc py2.5-solaris-sun4u
-py2.6-solaris = py2.6-solaris-i86pc py2.6-solaris-sun4u
-py2.7-solaris = py2.7-solaris-i86pc py2.7-solaris-sun4u
-solaris-i86pc = py2.5-solaris-i86pc py2.6-solaris-i86pc py2.7-solaris-i86pc
-solaris-sun4u = py2.5-solaris-sun4u py2.6-solaris-sun4u py2.7-solaris-sun4u
-solaris = solaris-i86pc solaris-sun4u
-py2.5-all = py2.5-linux py2.5-macosx py2.5-solaris
-py2.6-all = py2.6-linux py2.6-macosx py2.6-solaris
-py2.7-all = py2.7-linux py2.7-macosx py2.7-solaris
+macosx = py2.6-macosx py2.7-macosx
+py2.6-all = py2.6-linux py2.6-macosx
+py2.7-all = py2.7-linux py2.7-macosx
; the 'all' key is used internally by the build system to specify which hosts
; to build on when no hosts are specified on the dist-eggs.py command line.
-all = linux macosx solaris
+all = linux macosx
; the 'noplatform' key, likewise, is for which build hosts should be used when
; building pure python (noplatform) eggs.
-noplatform = py2.5 py2.6 py2.7
+noplatform = py2.6 py2.7
; don't build these eggs on these platforms:
[ignore]
-ctypes = py2.5-linux-i686-ucs2 py2.5-linux-i686-ucs4 py2.6-linux-i686-ucs2 py2.6-linux-i686-ucs4 py2.7-linux-i686-ucs2 py2.7-linux-i686-ucs4 py2.5-linux-x86_64-ucs2 py2.5-linux-x86_64-ucs4 py2.6-linux-x86_64-ucs2 py2.6-linux-x86_64-ucs4 py2.7-linux-x86_64-ucs2 py2.7-linux-x86_64-ucs4 py2.5-macosx-10.3-fat-ucs2 py2.6-macosx-10.3-fat-ucs2 py2.6-macosx-10.6-universal-ucs2 py2.7-macosx-10.3-fat-ucs2 py2.5-solaris-2.10-i86pc_32-ucs2 py2.6-solaris-2.10-i86pc_32-ucs2 py2.7-solaris-2.10-i86pc_32-ucs2 py2.5-solaris-2.10-i86pc_64-ucs2 py2.6-solaris-2.10-i86pc_64-ucs2 py2.7-solaris-2.10-i86pc_64-ucs2 py2.5-solaris-2.10-sun4u_32-ucs2 py2.6-solaris-2.10-sun4u_32-ucs2 py2.7-solaris-2.10-sun4u_32-ucs2 py2.5-solaris-2.10-sun4u_64-ucs2 py2.6-solaris-2.10-sun4u_64-ucs2 py2.7-solaris-2.10-sun4u_64-ucs2
+;ctypes =
https://bitbucket.org/galaxy/galaxy-central/commits/e1bc855165bc/
Changeset: e1bc855165bc
User: natefoo
Date: 2013-09-24 00:45:58
Summary: Upgrade psycopg2 to 2.5.1 (statically linked to PostgreSQL 9.2.4).
Affected #: 1 file
diff -r 5a35cebc573591fb9dc15e9712d8d8a4ebc12c65 -r e1bc855165bc857d6afd19d37a0542798601d85a eggs.ini
--- a/eggs.ini
+++ b/eggs.ini
@@ -21,7 +21,7 @@
PyRods = 3.2.4
numpy = 1.6.0
pbs_python = 4.3.5
-psycopg2 = 2.0.13
+psycopg2 = 2.5.1
pycrypto = 2.5
pysam = 0.4.2
pysqlite = 2.5.6
@@ -72,7 +72,7 @@
; extra version information
[tags]
-psycopg2 = _8.4.2_static
+psycopg2 = _9.2.4_static
pysqlite = _3.6.17_static
MySQL_python = _5.1.41_static
bx_python = _7b95ff194725
@@ -83,7 +83,7 @@
; the wiki page above
[source]
MySQL_python = mysql-5.1.41
-psycopg2 = postgresql-8.4.2
+psycopg2 = postgresql-9.2.4
pysqlite = sqlite-amalgamation-3_6_17
[dependencies]
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: guerler: Drag&drop multiple file upload: add status line, improve queueing, update select2
by commits-noreply@bitbucket.org 23 Sep '13
by commits-noreply@bitbucket.org 23 Sep '13
23 Sep '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/72308af0df64/
Changeset: 72308af0df64
User: guerler
Date: 2013-09-23 22:16:06
Summary: Drag&drop multiple file upload: add status line, improve queueing, update select2
Affected #: 6 files
diff -r 4ef6df129520040017cfd4a287cb01558c6af35f -r 72308af0df6416a4cc888ee2cb5af90b3fd8f9fe static/scripts/galaxy.upload.js
--- a/static/scripts/galaxy.upload.js
+++ b/static/scripts/galaxy.upload.js
@@ -17,6 +17,28 @@
// upload mod
uploadbox: null,
+ // extension types
+ select_extension : {
+ '' : 'Auto-detect',
+ 'bed' : 'bed',
+ 'ab1' : 'ab1'
+ },
+
+ // counter
+ counter : {
+ // stats
+ announce : 0,
+ success : 0,
+ error : 0,
+ running : 0,
+
+ // reset stats
+ reset : function()
+ {
+ this.announce = this.success = this.error = this.running = 0;
+ }
+ },
+
// initialize
initialize : function()
{
@@ -62,17 +84,14 @@
// start
event_announce : function(index, file, message)
{
- // hide info
- this.uploadbox.info().hide();
-
// make id
var id = '#upload-' + index;
-
+
// add upload item
- $(this.el).append(this.template_file(id));
+ $(this.el).append(this.template_file(id, this.select_extension));
// scroll to bottom
- $(this.el).scrollTop($(this.el).prop('scrollHeight'));
+ //$(this.el).scrollTop($(this.el).prop('scrollHeight'));
// access upload item
var it = this.get_upload_item(index);
@@ -84,41 +103,7 @@
it.find('.title').html(file.name);
// configure select field
- it.find('#extension').select2(
- {
- placeholder: 'Auto-detect',
- width: 'copy',
- ajax: {
- url: "http://www.weighttraining.com/sm/search",
- dataType: 'jsonp',
- quietMillis: 100,
- data: function(term, page)
- {
- return {
- types: ["exercise"],
- limit: -1,
- term: term
- };
- },
- results: function(data, page)
- {
- return { results: data.results.exercise }
- }
- },
- formatResult: function(exercise)
- {
- return "<div class='select2-user-result'>" + exercise.term + "</div>";
- },
- formatSelection: function(exercise)
- {
- return exercise.term;
- },
- initSelection : function (element, callback)
- {
- var elementText = $(element).attr('data-init-text');
- callback({"term":elementText});
- }
- });
+ //it.find('#extension').select2();
// add functionality to remove button
var self = this;
@@ -127,16 +112,18 @@
// initialize progress
this.event_progress(index, file, 0);
- // update button status
- this.modal.enable('Upload');
- this.modal.enable('Reset');
+ // update counter
+ this.counter.announce++;
+
+ // update screen
+ this.update_screen();
},
// start
event_initialize : function(index, file, message)
{
// update on screen counter
- this.button_show.number(message);
+ this.button_show.number(this.counter.announce);
// get element
var it = this.get_upload_item(index);
@@ -186,6 +173,13 @@
// update on screen counter
this.button_show.number('');
+
+ // update counter
+ this.counter.announce--;
+ this.counter.success++;
+
+ // update on screen info
+ this.update_screen();
},
// end
@@ -209,11 +203,26 @@
// update on screen counter
this.button_show.number('');
+
+ // update counter
+ this.counter.announce--;
+ this.counter.error++;
+
+ // update on screen info
+ this.update_screen();
},
// start upload process
event_upload : function()
{
+ // check
+ if (this.counter.announce == 0 || this.counter.running > 0)
+ return;
+
+ // update running
+ this.counter.running = this.counter.announce;
+ this.update_screen();
+
// hide configuration
$(this.el).find('.panel-body').hide();
@@ -223,10 +232,7 @@
$(this).removeClass('fa-icon-trash');
$(this).addClass('fa-icon-caret-down');
});
-
- // update button status
- this.modal.disable('Upload');
-
+
// configure url
var current_history = Galaxy.currHistoryPanel.model.get('id');
this.uploadbox.configure({url : galaxy_config.root + "api/histories/" + current_history + "/contents"});
@@ -235,62 +241,61 @@
this.uploadbox.upload();
},
+ // queue is done
+ event_complete: function()
+ {
+ // update running
+ this.counter.running = 0;
+ this.update_screen();
+ },
+
// remove all
event_reset : function()
{
- // remove from screen
- var panels = $(this.el).find('.panel');
- var self = this;
- panels.fadeOut({complete: function()
+ // make sure queue is not running
+ if (this.counter.running == 0)
{
- // remove panels
- panels.remove();
-
+ // remove from screen
+ var panels = $(this.el).find('.panel');
+ panels.fadeOut({complete: function() { panels.remove(); }});
+
+ // reset counter
+ this.counter.reset();
+
// show on screen info
- self.uploadbox.info().fadeIn();
- }});
-
- // update button status
- this.modal.disable('Upload');
- this.modal.disable('Reset');
-
- // remove from queue
- this.uploadbox.reset();
+ this.update_screen();
+
+ // remove from queue
+ this.uploadbox.reset();
+ }
},
// remove item from upload list
event_remove : function(index)
{
- // remove
- var self = this;
- var it = this.get_upload_item(index);
+ // only remove from queue if paused
+ if (this.counter.running == 0)
+ {
+ // get item
+ var it = this.get_upload_item(index);
- // fade out and update button status
- it.fadeOut({complete: function()
- {
- // remove from screen
+ // reduce counter
+ if (it.hasClass('panel-default'))
+ this.counter.announce--;
+ else if (it.hasClass('panel-success'))
+ this.counter.success--;
+ else if (it.hasClass('panel-danger'))
+ this.counter.error--;
+
+ // show on screen info
+ this.update_screen();
+
+ // remove from queue
+ this.uploadbox.remove(index);
+
+ // remove element
it.remove();
-
- // remove from queue
- self.uploadbox.remove(index);
-
- // update reset button
- if ($(self.el).find('.panel').length > 0)
- self.modal.enable('Reset');
- else {
- // disable reset button
- self.modal.disable('Reset');
-
- // show on screen info
- self.uploadbox.info().fadeIn();
- }
-
- // update upload button
- if (self.uploadbox.length() > 0)
- self.modal.enable('Upload');
- else
- self.modal.disable('Upload');
- }});
+ }
},
// show/hide upload frame
@@ -330,11 +335,11 @@
success : function(index, file, message) { self.event_success(index, file, message) },
progress : function(index, file, message) { self.event_progress(index, file, message) },
error : function(index, file, message) { self.event_error(index, file, message) },
+ complete : function() { self.event_complete() },
});
- // update button status
- this.modal.disable('Upload');
- this.modal.disable('Reset');
+ // setup info
+ this.update_screen();
}
// show modal
@@ -362,34 +367,93 @@
return "<strong>" + (Math.round(size) / 10) + "</strong> " + unit;
},
+ // set screen
+ update_screen: function ()
+ {
+ /*
+ update on screen info
+ */
+
+ // check default message
+ if(this.counter.announce == 0)
+ {
+ if (this.uploadbox.compatible)
+ message = 'Drag&drop files into this box or click \'Select\' to select files!';
+ else
+ message = 'Unfortunately, your browser does not support multiple file uploads or drag&drop.<br>Please upgrade to i.e. Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+.'
+ } else {
+ if (this.counter.running == 0)
+ message = 'You added ' + this.counter.announce + ' file(s) to the queue. Add more files or click "Upload" to proceed.';
+ else
+ message = 'Please wait...' + this.counter.announce + ' out of ' + this.counter.running + ' remaining.';
+ }
+
+ // set html content
+ $('#upload-info').html(message);
+
+ /*
+ update button status
+ */
+
+ // update reset button
+ if (this.counter.running == 0 && this.counter.announce + this.counter.success + this.counter.error > 0)
+ this.modal.enable('Reset');
+ else
+ this.modal.disable('Reset');
+
+ // update upload button
+ if (this.counter.running == 0 && this.counter.announce > 0)
+ this.modal.enable('Upload');
+ else
+ this.modal.disable('Upload');
+
+ // select upload button
+ if (this.counter.running == 0)
+ this.modal.enable('Select');
+ else
+ this.modal.disable('Select');
+ },
+
// load html template
template: function(id)
{
- return '<div id="' + id + '" class="upload-box"></div>';
+ return '<div id="' + id + '" class="upload-box"></div><h6 id="upload-info" class="upload-info"></h6>';
},
// load html template
- template_file: function(id)
+ template_file: function(id, select_extension)
{
- return '<div id="' + id.substr(1) + '" class="panel panel-default">' +
- '<div class="panel-heading">' +
- '<h5 class="title"></h5>' +
- '<h5 class="info"></h5>' +
- '<div class="remove fa-icon-trash"></div>' +
- '</div>' +
- '<div class="panel-body">' +
- '<div class="menu">' +
- //'<input id="extension" type="hidden" width="10px"/> ' +
- '<span><input id="space_to_tabs" type="checkbox">Convert spaces to tabs</input></span>' +
+ // start template
+ var tmpl = '<div id="' + id.substr(1) + '" class="panel panel-default">' +
+ '<div class="panel-heading">' +
+ '<h5 class="title"></h5>' +
+ '<h5 class="info"></h5>' +
+ '<div class="remove fa-icon-trash"></div>' +
'</div>' +
- '</div>' +
- '<div class="panel-footer">' +
- '<div class="progress">' +
- '<div class="progress-bar progress-bar-success"></div>' +
+ '<div class="panel-body">' +
+ '<div class="menu">' +
+ 'Select file type: ' +
+ '<select id="extension">';
+
+ // add file types to selection
+ for (key in select_extension)
+ tmpl += '<option value="' + key + '">' + select_extension[key] + '</option>';
+
+ // continue template
+ tmpl += '</select>, ' +
+ '<span>Convert space to tabs: <input id="space_to_tabs" type="checkbox"></input></span>' +
+ '</div>' +
'</div>' +
- '<h6 class="error"></h6>' +
- '</div>' +
- '</div>';
+ '<div class="panel-footer">' +
+ '<div class="progress">' +
+ '<div class="progress-bar progress-bar-success"></div>' +
+ '</div>' +
+ '<h6 class="error"></h6>' +
+ '</div>' +
+ '</div>';
+
+ // return html string
+ return tmpl;
}
});
diff -r 4ef6df129520040017cfd4a287cb01558c6af35f -r 72308af0df6416a4cc888ee2cb5af90b3fd8f9fe static/scripts/libs/jquery/select2.js
--- a/static/scripts/libs/jquery/select2.js
+++ b/static/scripts/libs/jquery/select2.js
@@ -1,7 +1,7 @@
/*
Copyright 2012 Igor Vaynberg
-Version: 3.4.2 Timestamp: Mon Aug 12 15:04:12 PDT 2013
+Version: 3.4.3 Timestamp: Tue Sep 17 06:47:14 PDT 2013
This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU
General Public License version 2 (the "GPL License"). You may choose either license to govern your
@@ -688,14 +688,18 @@
this.opts.element
.data("select2", this)
.attr("tabindex", "-1")
- .before(this.container);
+ .before(this.container)
+ .on("click.select2", killEvent); // do not leak click events
+
this.container.data("select2", this);
this.dropdown = this.container.find(".select2-drop");
+
+ syncCssClasses(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass);
+
this.dropdown.addClass(evaluate(opts.dropdownCssClass));
this.dropdown.data("select2", this);
-
- syncCssClasses(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass);
+ this.dropdown.on("click", killEvent);
this.results = results = this.container.find(resultsSelector);
this.search = search = this.container.find("input.select2-input");
@@ -707,6 +711,8 @@
// initialize the container
this.initContainer();
+ this.container.on("click", killEvent);
+
installFilteredMouseMove(this.results);
this.dropdown.on("mousemove-filtered touchstart touchmove touchend", resultsSelector, this.bind(this.highlightUnderEvent));
@@ -968,10 +974,11 @@
opts.initSelection = function (element, callback) {
var data = [];
$(splitVal(element.val(), opts.separator)).each(function () {
- var id = this, text = this, tags=opts.tags;
+ var obj = { id: this, text: this },
+ tags = opts.tags;
if ($.isFunction(tags)) tags=tags();
- $(tags).each(function() { if (equal(this.id, id)) { text = this.text; return false; } });
- data.push({id: id, text: text});
+ $(tags).each(function() { if (equal(this.id, obj.id)) { obj = this; return false; } });
+ data.push(obj);
});
callback(data);
@@ -1320,7 +1327,7 @@
$("#select2-drop-mask").hide();
this.dropdown.removeAttr("id"); // only the active dropdown has the select2-drop id
this.dropdown.hide();
- this.container.removeClass("select2-dropdown-open");
+ this.container.removeClass("select2-dropdown-open").removeClass("select2-container-active");
this.results.empty();
@@ -1395,7 +1402,7 @@
// abstract
findHighlightableChoices: function() {
- return this.results.find(".select2-result-selectable:not(.select2-selected):not(.select2-disabled)");
+ return this.results.find(".select2-result-selectable:not(.select2-disabled)");
},
// abstract
@@ -1926,10 +1933,7 @@
killEvent(e);
return;
case KEY.TAB:
- // if selectOnBlur == true, select the currently highlighted option
- if (this.opts.selectOnBlur) {
- this.selectHighlighted({noFocus: true});
- }
+ this.selectHighlighted({noFocus: true});
return;
case KEY.ESC:
this.cancel(e);
@@ -2046,6 +2050,11 @@
clear: function(triggerChange) {
var data=this.selection.data("select2-data");
if (data) { // guard against queued quick consecutive clicks
+ var evt = $.Event("select2-clearing");
+ this.opts.element.trigger(evt);
+ if (evt.isDefaultPrevented()) {
+ return;
+ }
var placeholderOption = this.getPlaceholderOption();
this.opts.element.val(placeholderOption ? placeholderOption.val() : "");
this.selection.find(".select2-chosen").empty();
@@ -2083,7 +2092,7 @@
isPlaceholderOptionSelected: function() {
var placeholderOption;
- if (!this.opts.placeholder) return false; // no placeholder specified so no option should be considered
+ if (!this.getPlaceholder()) return false; // no placeholder specified so no option should be considered
return ((placeholderOption = this.getPlaceholderOption()) !== undefined && placeholderOption.is(':selected'))
|| (this.opts.element.val() === "")
|| (this.opts.element.val() === undefined)
@@ -2216,7 +2225,7 @@
this.close();
if (!options || !options.noFocus)
- this.selection.focus();
+ this.focusser.focus();
if (!equal(old, this.id(data))) { this.triggerChange({added:data,removed:oldData}); }
},
@@ -2442,7 +2451,7 @@
this.selection = selection = this.container.find(selector);
var _this = this;
- this.selection.on("click", ".select2-search-choice", function (e) {
+ this.selection.on("click", ".select2-search-choice:not(.select2-locked)", function (e) {
//killEvent(e);
_this.search[0].focus();
_this.selectChoice($(this));
@@ -2521,10 +2530,7 @@
killEvent(e);
return;
case KEY.TAB:
- // if selectOnBlur == true, select the currently highlighted option
- if (this.opts.selectOnBlur) {
- this.selectHighlighted({noFocus:true});
- }
+ this.selectHighlighted({noFocus:true});
this.close();
return;
case KEY.ESC:
@@ -2842,9 +2848,7 @@
return;
}
- index = indexOf(this.id(data), val);
-
- if (index >= 0) {
+ while((index = indexOf(this.id(data), val)) >= 0) {
val.splice(index, 1);
this.setVal(val);
if (this.select) this.postprocessResults();
@@ -2925,7 +2929,7 @@
searchWidth = minimumWidth;
}
- this.search.width(searchWidth);
+ this.search.width(Math.floor(searchWidth));
},
// multi
diff -r 4ef6df129520040017cfd4a287cb01558c6af35f -r 72308af0df6416a4cc888ee2cb5af90b3fd8f9fe static/scripts/utils/galaxy.uploadbox.js
--- a/static/scripts/utils/galaxy.uploadbox.js
+++ b/static/scripts/utils/galaxy.uploadbox.js
@@ -19,11 +19,10 @@
progress : function() {},
success : function() {},
error : function(index, file, message) { alert(message); },
+ complete : function() {},
error_browser : "Your browser does not support drag-and-drop file uploads.",
error_filesize : "This file is too large (>250MB). Please use an FTP client to upload it.",
- error_default : "Please make sure the file is available.",
- text_default : "Drag&drop files into this box or click 'Select' to select files!",
- text_degrade : "Unfortunately, your browser does not support multiple file uploads or drag&drop.<br>Please upgrade to i.e. Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+."
+ error_default : "Please make sure the file is available."
}
// options
@@ -32,7 +31,7 @@
// file queue
var queue = {};
- // counter for file being currently processed
+ // queue index counter
var queue_index = 0;
// queue length
@@ -50,21 +49,11 @@
// parse options
opts = $.extend({}, default_opts, options);
- // compatibility
- var mode = window.File && window.FileReader && window.FormData && window.XMLHttpRequest;
-
// element
el = this;
// append upload button
el.append('<input id="uploadbox_input" type="file" style="display: none" multiple>');
- el.append('<div id="uploadbox_info"></div>');
-
- // set info text
- if (mode)
- el.find('#uploadbox_info').html(opts.text_default);
- else
- el.find('#uploadbox_info').html(opts.text_degrade);
// attach events
el.on('drop', drop);
@@ -120,11 +109,15 @@
// respond to an upload request
function add(files)
{
+ // only allow adding file if current batch is complete
+ if (queue_status)
+ return;
+
// add new files to queue
for (var i = 0; i < files.length; i++)
{
// new identifier
- var index = String(++queue_index);
+ var index = String(queue_index++);
// add to queue
queue[index] = files[i];
@@ -153,6 +146,15 @@
// process an upload, recursive
function process()
{
+ // validate
+ if (queue_length == 0)
+ {
+ queue_status = false;
+ opts.complete();
+ return;
+ } else
+ queue_status = true;
+
// get an identifier from the queue
var index = -1;
for (var key in queue)
@@ -161,10 +163,6 @@
break;
}
- // validate
- if (queue_length == 0)
- return;
-
// get current file from queue
var file = queue[index];
@@ -172,7 +170,7 @@
remove(index)
// start
- var data = opts.initialize(index, file, length);
+ var data = opts.initialize(index, file);
// add file to queue
try
@@ -312,12 +310,6 @@
process();
}
- // current queue length
- function length()
- {
- return queue_length;
- }
-
// set options
function configure(options)
{
@@ -328,21 +320,20 @@
return opts;
}
- // visibility of on screen information
- function info()
+ // verify browser compatibility
+ function compatible()
{
- return el.find('#uploadbox_info');
+ return window.File && window.FileReader && window.FormData && window.XMLHttpRequest;
}
// export functions
return {
- 'select' : select,
- 'remove' : remove,
- 'upload' : upload,
- 'reset' : reset,
- 'length' : length,
- 'configure' : configure,
- 'info' : info
+ 'select' : select,
+ 'remove' : remove,
+ 'upload' : upload,
+ 'reset' : reset,
+ 'configure' : configure,
+ 'compatible' : compatible
};
}
})(jQuery);
\ No newline at end of file
diff -r 4ef6df129520040017cfd4a287cb01558c6af35f -r 72308af0df6416a4cc888ee2cb5af90b3fd8f9fe static/style/blue/base.css
--- a/static/style/blue/base.css
+++ b/static/style/blue/base.css
@@ -1123,6 +1123,7 @@
.galaxy-frame .frame .f-close{right:5px;top:1px}
.galaxy-frame .frame .f-pin{left:6px;top:1px}
.galaxy-frame .frame .f-resize{background:#fff;width:16px;height:16px;color:#2c3143;right:0px;bottom:0px;text-align:center;line-height:16px;border:0px}
+.upload-info{font-weight:normal;text-align:center}
.upload-box{width:100%;height:250px;max-height:250px;text-align:center;overflow:scroll;font-size:12px;line-height:1.33;-moz-border-radius:5px;border-radius:5px;border:1px dashed #bfbfbf;padding:20px}.upload-box .panel{display:none}.upload-box .panel .panel-heading{position:relative;height:19px;padding:5px}.upload-box .panel .panel-heading .title{position:absolute;top:2px;font-weight:normal;text-align:left;margin:0px;max-width:300px;overflow:hidden}
.upload-box .panel .panel-heading .info{position:absolute;top:3px;font-weight:normal;right:20px;text-align:right;margin:0px}
.upload-box .panel .panel-heading .remove{position:absolute;cursor:pointer;top:0px;right:3px}
@@ -1167,12 +1168,12 @@
.panel-warning-message{background-image:url(warn_small.png);background-color:#fce1ba}
.panel-done-message{background-image:url(ok_small.png);background-color:#aff1af}
.panel-info-message{background-image:url(info_small.png);background-color:#a6e4f7}
-#masthead{position:absolute;top:0;left:0;width:100%;min-width:980px;padding:0}#masthead .nav{z-index:15001}
+#masthead{position:absolute;top:0;left:0;width:100%;min-width:990px;padding:0}#masthead .nav{z-index:15001}
#masthead .nav>li>a{cursor:pointer;text-decoration:none}#masthead .nav>li>a:hover{color:gold}
#masthead li.dropdown>a:hover .caret{border-top-color:gold;border-bottom-color:gold}
#masthead .navbar-brand{position:absolute;left:0;top:0;font-family:verdana;font-weight:bold;font-size:20px;line-height:1;color:white;padding:5px 20px 12px;margin-left:-15px;z-index:2000}#masthead .navbar-brand img{display:inline;width:26px;vertical-align:top}
#masthead .navbar-brand a{color:white;text-decoration:none}
-#masthead .iconbar{position:absolute;top:2px;right:110px;cursor:pointer;color:#999;overflow:hidden}#masthead .iconbar .symbol{float:left;margin:0px 8px}
+#masthead .iconbar{position:absolute;top:2px;right:110px;cursor:pointer;color:#999;overflow:hidden}#masthead .iconbar .symbol{float:left;margin:0px 10px}
#masthead .iconbar .symbol .number{font-weight:bold;font-size:12px;font-family:"Lucida Grande",verdana,arial,helvetica,sans-serif;position:relative;left:23px;top:-18px}
#masthead .iconbar .toggle{color:#BCC800}
.quota-meter-container{position:absolute;top:0;right:0;height:32px}
diff -r 4ef6df129520040017cfd4a287cb01558c6af35f -r 72308af0df6416a4cc888ee2cb5af90b3fd8f9fe static/style/src/less/base.less
--- a/static/style/src/less/base.less
+++ b/static/style/src/less/base.less
@@ -324,7 +324,7 @@
top:0;
left:0;
width:100%;
- min-width:980px;
+ min-width:990px;
padding: 0;
.nav {
@@ -387,7 +387,7 @@
.symbol
{
float : left;
- margin : 0px 8px;
+ margin : 0px 10px;
}
.symbol .number
diff -r 4ef6df129520040017cfd4a287cb01558c6af35f -r 72308af0df6416a4cc888ee2cb5af90b3fd8f9fe static/style/src/less/upload.less
--- a/static/style/src/less/upload.less
+++ b/static/style/src/less/upload.less
@@ -1,3 +1,9 @@
+.upload-info
+{
+ font-weight: normal;
+ text-align: center;
+}
+
.upload-box
{
width : 100%;
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: carlfeberhard: Style: add proper alert macro for warning, add errormessagesmall; pack scripts
by commits-noreply@bitbucket.org 23 Sep '13
by commits-noreply@bitbucket.org 23 Sep '13
23 Sep '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/4ef6df129520/
Changeset: 4ef6df129520
User: carlfeberhard
Date: 2013-09-23 21:23:38
Summary: Style: add proper alert macro for warning, add errormessagesmall; pack scripts
Affected #: 10 files
diff -r e70289bdc4144bd4f20ac5d76042570e1dff41cb -r 4ef6df129520040017cfd4a287cb01558c6af35f static/scripts/mvc/dataset/hda-base.js
--- a/static/scripts/mvc/dataset/hda-base.js
+++ b/static/scripts/mvc/dataset/hda-base.js
@@ -82,6 +82,10 @@
this.$el.attr( 'id', 'historyItemContainer-' + id );
+ //HACK: hover exit doesn't seem to be called on prev. tooltips when RE-rendering - so: no tooltip hide
+ // handle that here by removing previous view's tooltips
+ this.$el.find("[title]").tooltip( "destroy" );
+
/** web controller urls for functions relating to this hda.
* These are rendered from urlTemplates using the model data. */
this.urls = this._renderUrls( this.urlTemplates, this.model.toJSON() );
diff -r e70289bdc4144bd4f20ac5d76042570e1dff41cb -r 4ef6df129520040017cfd4a287cb01558c6af35f static/scripts/mvc/dataset/hda-edit.js
--- a/static/scripts/mvc/dataset/hda-edit.js
+++ b/static/scripts/mvc/dataset/hda-edit.js
@@ -166,6 +166,7 @@
success: function() {
// FIXME: setting model attribute causes re-rendering, which is unnecessary.
//self.$el.remove();
+
self.model.set({ deleted: true });
}
});
diff -r e70289bdc4144bd4f20ac5d76042570e1dff41cb -r 4ef6df129520040017cfd4a287cb01558c6af35f static/scripts/packed/galaxy.base.js
--- a/static/scripts/packed/galaxy.base.js
+++ b/static/scripts/packed/galaxy.base.js
@@ -1,1 +1,1 @@
-(function(){var b=0;var c=["ms","moz","webkit","o"];for(var a=0;a<c.length&&!window.requestAnimationFrame;++a){window.requestAnimationFrame=window[c[a]+"RequestAnimationFrame"];window.cancelRequestAnimationFrame=window[c[a]+"CancelRequestAnimationFrame"]}if(!window.requestAnimationFrame){window.requestAnimationFrame=function(h,e){var d=new Date().getTime();var f=Math.max(0,16-(d-b));var g=window.setTimeout(function(){h(d+f)},f);b=d+f;return g}}if(!window.cancelAnimationFrame){window.cancelAnimationFrame=function(d){clearTimeout(d)}}}());if(!Array.indexOf){Array.prototype.indexOf=function(c){for(var b=0,a=this.length;b<a;b++){if(this[b]==c){return b}}return -1}}function obj_length(c){if(c.length!==undefined){return c.length}var b=0;for(var a in c){b++}return b}$.fn.makeAbsolute=function(a){return this.each(function(){var b=$(this);var c=b.position();b.css({position:"absolute",marginLeft:0,marginTop:0,top:c.top,left:c.left,right:$(window).width()-(c.left+b.width())});if(a){b.remove().appendTo("body")}})};function make_popupmenu(b,c){var a=(b.data("menu_options"));b.data("menu_options",c);if(a){return}b.bind("click.show_popup",function(d){$(".popmenu-wrapper").remove();setTimeout(function(){var g=$("<ul class='dropdown-menu' id='"+b.attr("id")+"-menu'></ul>");var f=b.data("menu_options");if(obj_length(f)<=0){$("<li>No Options.</li>").appendTo(g)}$.each(f,function(j,i){if(i){g.append($("<li></li>").append($("<a href='#'></a>").html(j).click(i)))}else{g.append($("<li></li>").addClass("head").append($("<a href='#'></a>").html(j)))}});var h=$("<div class='popmenu-wrapper' style='position: absolute;left: 0; top: -1000;'></div>").append(g).appendTo("body");var e=d.pageX-h.width()/2;e=Math.min(e,$(document).scrollLeft()+$(window).width()-$(h).width()-5);e=Math.max(e,$(document).scrollLeft()+5);h.css({top:d.pageY,left:e})},10);setTimeout(function(){var f=function(h){$(h).bind("click.close_popup",function(){$(".popmenu-wrapper").remove();h.unbind("click.close_popup")})};f($(window.document));f($(window.top.document));for(var e=window.top.frames.length;e--;){var g=$(window.top.frames[e].document);f(g)}},50);return false})}function make_popup_menus(a){a=a||document;$(a).find("div[popupmenu]").each(function(){var b={};var d=$(this);d.find("a").each(function(){var g=$(this),i=g.get(0),e=i.getAttribute("confirm"),f=i.getAttribute("href"),h=i.getAttribute("target");if(!f){b[g.text()]=null}else{b[g.text()]=function(){if(!e||confirm(e)){var k;if(h==="_parent"){window.parent.location=f}else{if(h==="_top"){window.top.location=f}else{if(h==="demo"){if(k===undefined||k.closed){k=window.open(f,h);k.creator=self}}else{var j=["galaxy_main"];if((h&&(h in window)&&(j.indexOf(h)!==-1))){window[h].location=f}else{window.location=f}}}}}}}});var c=$(a).find("#"+d.attr("popupmenu"));c.find("a").bind("click",function(f){f.stopPropagation();return true});make_popupmenu(c,b);c.addClass("popup");d.remove()})}function naturalSort(j,h){var p=/(-?[0-9\.]+)/g,k=j.toString().toLowerCase()||"",g=h.toString().toLowerCase()||"",l=String.fromCharCode(0),n=k.replace(p,l+"$1"+l).split(l),e=g.replace(p,l+"$1"+l).split(l),d=(new Date(k)).getTime(),o=d?(new Date(g)).getTime():null;if(o){if(d<o){return -1}else{if(d>o){return 1}}}var m,f;for(var i=0,c=Math.max(n.length,e.length);i<c;i++){m=parseFloat(n[i])||n[i];f=parseFloat(e[i])||e[i];if(m<f){return -1}else{if(m>f){return 1}}}return 0}$.fn.refresh_select2=function(){var b=$(this);var a={width:"resolve",closeOnSelect:!b.is("[MULTIPLE]")};return b.select2(a)};function replace_big_select_inputs(a,c,b){if(!jQuery.fn.select2){return}if(a===undefined){a=20}if(c===undefined){c=3000}b=b||$("select");b.each(function(){var e=$(this);var d=e.find("option").length;if((d<a)||(d>c)){return}if(e.hasClass("no-autocomplete")){return}e.refresh_select2()})}$.fn.make_text_editable=function(g){var d=("num_cols" in g?g.num_cols:30),c=("num_rows" in g?g.num_rows:4),e=("use_textarea" in g?g.use_textarea:false),b=("on_finish" in g?g.on_finish:null),f=("help_text" in g?g.help_text:null);var a=$(this);a.addClass("editable-text").click(function(l){if($(this).children(":input").length>0){return}a.removeClass("editable-text");var i=function(m){a.find(":input").remove();if(m!==""){a.text(m)}else{a.html("<br>")}a.addClass("editable-text");if(b){b(m)}};var h=a.text(),k,j;if(e){k=$("<textarea/>").attr({rows:c,cols:d}).text($.trim(h)).keyup(function(m){if(m.keyCode===27){i(h)}});j=$("<button/>").text("Done").click(function(){i(k.val());return false})}else{k=$("<input type='text'/>").attr({value:$.trim(h),size:d}).blur(function(){i(h)}).keyup(function(m){if(m.keyCode===27){$(this).trigger("blur")}else{if(m.keyCode===13){i($(this).val())}}})}a.text("");a.append(k);if(j){a.append(j)}k.focus();k.select();l.stopPropagation()});if(f){a.attr("title",f).tooltip()}return a};function async_save_text(d,f,e,a,c,h,i,g,b){if(c===undefined){c=30}if(i===undefined){i=4}$("#"+d).click(function(){if($("#renaming-active").length>0){return}var l=$("#"+f),k=l.text(),j;if(h){j=$("<textarea></textarea>").attr({rows:i,cols:c}).text($.trim(k))}else{j=$("<input type='text'></input>").attr({value:$.trim(k),size:c})}j.attr("id","renaming-active");j.blur(function(){$(this).remove();l.show();if(b){b(j)}});j.keyup(function(n){if(n.keyCode===27){$(this).trigger("blur")}else{if(n.keyCode===13){var m={};m[a]=$(this).val();$(this).trigger("blur");$.ajax({url:e,data:m,error:function(){alert("Text editing for elt "+f+" failed")},success:function(o){if(o!==""){l.text(o)}else{l.html("<em>None</em>")}if(b){b(j)}}})}}});if(g){g(j)}l.hide();j.insertAfter(l);j.focus();j.select();return})}function init_history_items(d,a,c){var b=function(){try{var e=$.jStorage.get("history_expand_state");if(e){for(var g in e){$("#"+g+" div.historyItemBody").show()}}}catch(f){$.jStorage.deleteKey("history_expand_state")}if($.browser.mozilla){$("div.historyItemBody").each(function(){if(!$(this).is(":visible")){$(this).find("pre.peek").css("overflow","hidden")}})}d.each(function(){var j=this.id,h=$(this).children("div.historyItemBody"),i=h.find("pre.peek");$(this).find(".historyItemTitleBar > .historyItemTitle").wrap("<a href='javascript:void(0);'></a>").click(function(){var k;if(h.is(":visible")){if($.browser.mozilla){i.css("overflow","hidden")}h.slideUp("fast");if(!c){k=$.jStorage.get("history_expand_state");if(k){delete k[j];$.jStorage.set("history_expand_state",k)}}}else{h.slideDown("fast",function(){if($.browser.mozilla){i.css("overflow","auto")}});if(!c){k=$.jStorage.get("history_expand_state");if(!k){k={}}k[j]=true;$.jStorage.set("history_expand_state",k)}}return false})});$("#top-links > a.toggle").click(function(){var h=$.jStorage.get("history_expand_state");if(!h){h={}}$("div.historyItemBody:visible").each(function(){if($.browser.mozilla){$(this).find("pre.peek").css("overflow","hidden")}$(this).slideUp("fast");if(h){delete h[$(this).parent().attr("id")]}});$.jStorage.set("history_expand_state",h)}).show()};b()}function commatize(b){b+="";var a=/(\d+)(\d{3})/;while(a.test(b)){b=b.replace(a,"$1,$2")}return b}function reset_tool_search(a){var c=$("#galaxy_tools").contents();if(c.length===0){c=$(document)}$(this).removeClass("search_active");c.find(".toolTitle").removeClass("search_match");c.find(".toolSectionBody").hide();c.find(".toolTitle").show();c.find(".toolPanelLabel").show();c.find(".toolSectionWrapper").each(function(){if($(this).attr("id")!=="recently_used_wrapper"){$(this).show()}else{if($(this).hasClass("user_pref_visible")){$(this).show()}}});c.find("#search-no-results").hide();c.find("#search-spinner").hide();if(a){var b=c.find("#tool-search-query");b.val("search tools")}}var GalaxyAsync=function(a){this.url_dict={};this.log_action=(a===undefined?false:a)};GalaxyAsync.prototype.set_func_url=function(a,b){this.url_dict[a]=b};GalaxyAsync.prototype.set_user_pref=function(a,b){var c=this.url_dict[arguments.callee];if(c===undefined){return false}$.ajax({url:c,data:{pref_name:a,pref_value:b},error:function(){return false},success:function(){return true}})};GalaxyAsync.prototype.log_user_action=function(c,b,d){if(!this.log_action){return}var a=this.url_dict[arguments.callee];if(a===undefined){return false}$.ajax({url:a,data:{action:c,context:b,params:d},error:function(){return false},success:function(){return true}})};$(document).ready(function(){$("select[refresh_on_change='true']").change(function(){var a=$(this),e=a.val(),d=false,c=a.attr("refresh_on_change_values");if(c){c=c.split(",");var b=a.attr("last_selected_value");if($.inArray(e,c)===-1&&$.inArray(b,c)===-1){return}}$(window).trigger("refresh_on_change");$(document).trigger("convert_to_values");a.get(0).form.submit()});$(":checkbox[refresh_on_change='true']").click(function(){var a=$(this),e=a.val(),d=false,c=a.attr("refresh_on_change_values");if(c){c=c.split(",");var b=a.attr("last_selected_value");if($.inArray(e,c)===-1&&$.inArray(b,c)===-1){return}}$(window).trigger("refresh_on_change");a.get(0).form.submit()});$("a[confirm]").click(function(){return confirm($(this).attr("confirm"))});if($.fn.tooltip){$(".unified-panel-header [title]").tooltip({placement:"bottom"});$("[title]").tooltip({placement:"top"})}make_popup_menus();replace_big_select_inputs(20,1500);$("a").click(function(){var b=$(this);var c=(parent.frames&&parent.frames.galaxy_main);if((b.attr("target")=="galaxy_main")&&(!c)){var a=b.attr("href");if(a.indexOf("?")==-1){a+="?"}else{a+="&"}a+="use_panels=True";b.attr("href",a);b.attr("target","_self")}return b})});
\ No newline at end of file
+(function(){var b=0;var c=["ms","moz","webkit","o"];for(var a=0;a<c.length&&!window.requestAnimationFrame;++a){window.requestAnimationFrame=window[c[a]+"RequestAnimationFrame"];window.cancelRequestAnimationFrame=window[c[a]+"CancelRequestAnimationFrame"]}if(!window.requestAnimationFrame){window.requestAnimationFrame=function(h,e){var d=new Date().getTime();var f=Math.max(0,16-(d-b));var g=window.setTimeout(function(){h(d+f)},f);b=d+f;return g}}if(!window.cancelAnimationFrame){window.cancelAnimationFrame=function(d){clearTimeout(d)}}}());if(!Array.indexOf){Array.prototype.indexOf=function(c){for(var b=0,a=this.length;b<a;b++){if(this[b]==c){return b}}return -1}}function obj_length(c){if(c.length!==undefined){return c.length}var b=0;for(var a in c){b++}return b}$.fn.makeAbsolute=function(a){return this.each(function(){var b=$(this);var c=b.position();b.css({position:"absolute",marginLeft:0,marginTop:0,top:c.top,left:c.left,right:$(window).width()-(c.left+b.width())});if(a){b.remove().appendTo("body")}})};function make_popupmenu(b,c){var a=(b.data("menu_options"));b.data("menu_options",c);if(a){return}b.bind("click.show_popup",function(d){$(".popmenu-wrapper").remove();setTimeout(function(){var g=$("<ul class='dropdown-menu' id='"+b.attr("id")+"-menu'></ul>");var f=b.data("menu_options");if(obj_length(f)<=0){$("<li>No Options.</li>").appendTo(g)}$.each(f,function(j,i){if(i){var l=i.action||i;g.append($("<li></li>").append($("<a>").attr("href",i.url).html(j).click(l)))}else{g.append($("<li></li>").addClass("head").append($("<a href='#'></a>").html(j)))}});var h=$("<div class='popmenu-wrapper' style='position: absolute;left: 0; top: -1000;'></div>").append(g).appendTo("body");var e=d.pageX-h.width()/2;e=Math.min(e,$(document).scrollLeft()+$(window).width()-$(h).width()-5);e=Math.max(e,$(document).scrollLeft()+5);h.css({top:d.pageY,left:e})},10);setTimeout(function(){var f=function(h){$(h).bind("click.close_popup",function(){$(".popmenu-wrapper").remove();h.unbind("click.close_popup")})};f($(window.document));f($(window.top.document));for(var e=window.top.frames.length;e--;){var g=$(window.top.frames[e].document);f(g)}},50);return false})}function make_popup_menus(a){a=a||document;$(a).find("div[popupmenu]").each(function(){var b={};var d=$(this);d.find("a").each(function(){var g=$(this),i=g.get(0),e=i.getAttribute("confirm"),f=i.getAttribute("href"),h=i.getAttribute("target");if(!f){b[g.text()]=null}else{b[g.text()]={url:f,action:function(){if(!e||confirm(e)){var j;if(h==="demo"){if(j===undefined||j.closed){j=window.open(f,h);j.creator=self}}else{g.trigger("click")}}}}}});var c=$(a).find("#"+d.attr("popupmenu"));c.find("a").bind("click",function(f){f.stopPropagation();return true});make_popupmenu(c,b);c.addClass("popup");d.remove()})}function naturalSort(j,h){var p=/(-?[0-9\.]+)/g,k=j.toString().toLowerCase()||"",g=h.toString().toLowerCase()||"",l=String.fromCharCode(0),n=k.replace(p,l+"$1"+l).split(l),e=g.replace(p,l+"$1"+l).split(l),d=(new Date(k)).getTime(),o=d?(new Date(g)).getTime():null;if(o){if(d<o){return -1}else{if(d>o){return 1}}}var m,f;for(var i=0,c=Math.max(n.length,e.length);i<c;i++){m=parseFloat(n[i])||n[i];f=parseFloat(e[i])||e[i];if(m<f){return -1}else{if(m>f){return 1}}}return 0}$.fn.refresh_select2=function(){var b=$(this);var a={width:"resolve",closeOnSelect:!b.is("[MULTIPLE]")};return b.select2(a)};function replace_big_select_inputs(a,c,b){if(!jQuery.fn.select2){return}if(a===undefined){a=20}if(c===undefined){c=3000}b=b||$("select");b.each(function(){var e=$(this);var d=e.find("option").length;if((d<a)||(d>c)){return}if(e.hasClass("no-autocomplete")){return}e.refresh_select2()})}$.fn.make_text_editable=function(g){var d=("num_cols" in g?g.num_cols:30),c=("num_rows" in g?g.num_rows:4),e=("use_textarea" in g?g.use_textarea:false),b=("on_finish" in g?g.on_finish:null),f=("help_text" in g?g.help_text:null);var a=$(this);a.addClass("editable-text").click(function(l){if($(this).children(":input").length>0){return}a.removeClass("editable-text");var i=function(m){a.find(":input").remove();if(m!==""){a.text(m)}else{a.html("<br>")}a.addClass("editable-text");if(b){b(m)}};var h=a.text(),k,j;if(e){k=$("<textarea/>").attr({rows:c,cols:d}).text($.trim(h)).keyup(function(m){if(m.keyCode===27){i(h)}});j=$("<button/>").text("Done").click(function(){i(k.val());return false})}else{k=$("<input type='text'/>").attr({value:$.trim(h),size:d}).blur(function(){i(h)}).keyup(function(m){if(m.keyCode===27){$(this).trigger("blur")}else{if(m.keyCode===13){i($(this).val())}}})}a.text("");a.append(k);if(j){a.append(j)}k.focus();k.select();l.stopPropagation()});if(f){a.attr("title",f).tooltip()}return a};function async_save_text(d,f,e,a,c,h,i,g,b){if(c===undefined){c=30}if(i===undefined){i=4}$("#"+d).click(function(){if($("#renaming-active").length>0){return}var l=$("#"+f),k=l.text(),j;if(h){j=$("<textarea></textarea>").attr({rows:i,cols:c}).text($.trim(k))}else{j=$("<input type='text'></input>").attr({value:$.trim(k),size:c})}j.attr("id","renaming-active");j.blur(function(){$(this).remove();l.show();if(b){b(j)}});j.keyup(function(n){if(n.keyCode===27){$(this).trigger("blur")}else{if(n.keyCode===13){var m={};m[a]=$(this).val();$(this).trigger("blur");$.ajax({url:e,data:m,error:function(){alert("Text editing for elt "+f+" failed")},success:function(o){if(o!==""){l.text(o)}else{l.html("<em>None</em>")}if(b){b(j)}}})}}});if(g){g(j)}l.hide();j.insertAfter(l);j.focus();j.select();return})}function init_history_items(d,a,c){var b=function(){try{var e=$.jStorage.get("history_expand_state");if(e){for(var g in e){$("#"+g+" div.historyItemBody").show()}}}catch(f){$.jStorage.deleteKey("history_expand_state")}if($.browser.mozilla){$("div.historyItemBody").each(function(){if(!$(this).is(":visible")){$(this).find("pre.peek").css("overflow","hidden")}})}d.each(function(){var j=this.id,h=$(this).children("div.historyItemBody"),i=h.find("pre.peek");$(this).find(".historyItemTitleBar > .historyItemTitle").wrap("<a href='javascript:void(0);'></a>").click(function(){var k;if(h.is(":visible")){if($.browser.mozilla){i.css("overflow","hidden")}h.slideUp("fast");if(!c){k=$.jStorage.get("history_expand_state");if(k){delete k[j];$.jStorage.set("history_expand_state",k)}}}else{h.slideDown("fast",function(){if($.browser.mozilla){i.css("overflow","auto")}});if(!c){k=$.jStorage.get("history_expand_state");if(!k){k={}}k[j]=true;$.jStorage.set("history_expand_state",k)}}return false})});$("#top-links > a.toggle").click(function(){var h=$.jStorage.get("history_expand_state");if(!h){h={}}$("div.historyItemBody:visible").each(function(){if($.browser.mozilla){$(this).find("pre.peek").css("overflow","hidden")}$(this).slideUp("fast");if(h){delete h[$(this).parent().attr("id")]}});$.jStorage.set("history_expand_state",h)}).show()};b()}function commatize(b){b+="";var a=/(\d+)(\d{3})/;while(a.test(b)){b=b.replace(a,"$1,$2")}return b}function reset_tool_search(a){var c=$("#galaxy_tools").contents();if(c.length===0){c=$(document)}$(this).removeClass("search_active");c.find(".toolTitle").removeClass("search_match");c.find(".toolSectionBody").hide();c.find(".toolTitle").show();c.find(".toolPanelLabel").show();c.find(".toolSectionWrapper").each(function(){if($(this).attr("id")!=="recently_used_wrapper"){$(this).show()}else{if($(this).hasClass("user_pref_visible")){$(this).show()}}});c.find("#search-no-results").hide();c.find("#search-spinner").hide();if(a){var b=c.find("#tool-search-query");b.val("search tools")}}var GalaxyAsync=function(a){this.url_dict={};this.log_action=(a===undefined?false:a)};GalaxyAsync.prototype.set_func_url=function(a,b){this.url_dict[a]=b};GalaxyAsync.prototype.set_user_pref=function(a,b){var c=this.url_dict[arguments.callee];if(c===undefined){return false}$.ajax({url:c,data:{pref_name:a,pref_value:b},error:function(){return false},success:function(){return true}})};GalaxyAsync.prototype.log_user_action=function(c,b,d){if(!this.log_action){return}var a=this.url_dict[arguments.callee];if(a===undefined){return false}$.ajax({url:a,data:{action:c,context:b,params:d},error:function(){return false},success:function(){return true}})};$(document).ready(function(){$("select[refresh_on_change='true']").change(function(){var a=$(this),e=a.val(),d=false,c=a.attr("refresh_on_change_values");if(c){c=c.split(",");var b=a.attr("last_selected_value");if($.inArray(e,c)===-1&&$.inArray(b,c)===-1){return}}$(window).trigger("refresh_on_change");$(document).trigger("convert_to_values");a.get(0).form.submit()});$(":checkbox[refresh_on_change='true']").click(function(){var a=$(this),e=a.val(),d=false,c=a.attr("refresh_on_change_values");if(c){c=c.split(",");var b=a.attr("last_selected_value");if($.inArray(e,c)===-1&&$.inArray(b,c)===-1){return}}$(window).trigger("refresh_on_change");a.get(0).form.submit()});$("a[confirm]").click(function(){return confirm($(this).attr("confirm"))});if($.fn.tooltip){$(".unified-panel-header [title]").tooltip({placement:"bottom"});$("[title]").tooltip({placement:"top"})}make_popup_menus();replace_big_select_inputs(20,1500);$("a").click(function(){var b=$(this);var c=(parent.frames&&parent.frames.galaxy_main);if((b.attr("target")=="galaxy_main")&&(!c)){var a=b.attr("href");if(a.indexOf("?")==-1){a+="?"}else{a+="&"}a+="use_panels=True";b.attr("href",a);b.attr("target","_self")}return b})});
\ No newline at end of file
diff -r e70289bdc4144bd4f20ac5d76042570e1dff41cb -r 4ef6df129520040017cfd4a287cb01558c6af35f static/scripts/packed/galaxy.modal.js
--- a/static/scripts/packed/galaxy.modal.js
+++ b/static/scripts/packed/galaxy.modal.js
@@ -1,1 +1,1 @@
-define(["libs/backbone/backbone-relational"],function(){var a=Backbone.View.extend({el_main:"#everything",options:{title:"galaxy-modal",body:"No content available."},initialize:function(b){if(b){this.create(b);$(this.el).hide()}},show:function(b){if(b){this.create(b)}this.$el.fadeIn("fast")},hide:function(){this.$el.fadeOut("fast")},create:function(c){this.$el.remove();if(!c){c=this.options}else{c=_.defaults(c,this.options)}this.setElement(this.template(c.title,c.body));$(this.el_main).append($(this.el));var d=(this.$el).find(".buttons");var b=this;if(c.buttons){$.each(c.buttons,function(e,f){d.append($("<button></button>").text(e).click(f)).append(" ")})}else{d.append($("<button></button>").text("Close").click(function(){b.hide()})).append(" ")}},template:function(c,b){return'<div class="modal in"><div class="modal-backdrop in" style="z-index: -1;"></div><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><span><h3 class="title">'+c+'</h3></span></div><div class="modal-body style="min-width: 540px; max-height: 445px;">'+b+'</div><div class="modal-footer"><div class="buttons" style="float: right;"></div></div></div</div></div>'}});return{GalaxyModal:a}});
\ No newline at end of file
+define(["libs/backbone/backbone-relational"],function(){var a=Backbone.View.extend({el_main:"#everything",options:{title:"galaxy-modal",body:"No content available."},initialize:function(b){if(b){this.create(b);$(this.el).hide()}},show:function(b){if(b){this.create(b)}this.$el.fadeIn("fast")},hide:function(){this.$el.fadeOut("fast")},create:function(c){this.$el.remove();if(!c){c=this.options}else{c=_.defaults(c,this.options)}this.setElement(this.template(c.title,c.body));$(this.el_main).append($(this.el));var d=(this.$el).find(".buttons");var b=this;if(c.buttons){$.each(c.buttons,function(e,f){d.append($('<button id="'+String(e).toLowerCase()+'"></button>').text(e).click(f)).append(" ")})}else{d.append($("<button></button>").text("Close").click(function(){b.hide()})).append(" ")}},enable:function(b){$(this.el).find("#"+String(b).toLowerCase()).prop("disabled",false)},disable:function(b){$(this.el).find("#"+String(b).toLowerCase()).prop("disabled",true)},template:function(c,b){return'<div class="modal in"><div class="modal-backdrop in" style="z-index: -1;"></div><div class="modal-dialog"><div class="modal-content"><div class="modal-header"><span><h3 class="title">'+c+'</h3></span></div><div class="modal-body style="min-width: 540px; max-height: 445px;">'+b+'</div><div class="modal-footer"><div class="buttons" style="float: right;"></div></div></div</div></div>'}});return{GalaxyModal:a}});
\ No newline at end of file
diff -r e70289bdc4144bd4f20ac5d76042570e1dff41cb -r 4ef6df129520040017cfd4a287cb01558c6af35f static/scripts/packed/galaxy.panels.js
--- a/static/scripts/packed/galaxy.panels.js
+++ b/static/scripts/packed/galaxy.panels.js
@@ -1,1 +1,1 @@
-!function(c,d){var e=function(){if(d("#DD-helper").length==0){d("<div id='DD-helper'/>").appendTo("body").hide()}};var b=150,h=800;var k=function(n){this.$panel=n.panel;this.$center=n.center;this.$drag=n.drag;this.$toggle=n.toggle;this.left=!n.right;this.hidden=false;this.hidden_by_tool=false;this.saved_size=null;this.init()};d.extend(k.prototype,{resize:function(n){this.$panel.css("width",n);if(this.left){this.$center.css("left",n)}else{this.$center.css("right",n)}if(document.recalc){document.recalc()}},do_toggle:function(){var n=this;if(this.hidden){this.$toggle.removeClass("hidden");if(this.left){this.$panel.css("left",-this.saved_size).show().animate({left:0},"fast",function(){n.resize(n.saved_size)})}else{this.$panel.css("right",-this.saved_size).show().animate({right:0},"fast",function(){n.resize(n.saved_size)})}n.hidden=false}else{n.saved_size=this.$panel.width();if(document.recalc){document.recalc()}if(this.left){this.$panel.animate({left:-this.saved_size},"fast")}else{this.$panel.animate({right:-this.saved_size},"fast")}if(this.left){this.$center.css("left",0)}else{this.$center.css("right",0)}n.hidden=true;n.$toggle.addClass("hidden")}this.hidden_by_tool=false},handle_minwidth_hint:function(n){var o=this.$center.width()-(this.hidden?this.saved_size:0);if(o<n){if(!this.hidden){this.do_toggle();this.hidden_by_tool=true}}else{if(this.hidden_by_tool){this.do_toggle();this.hidden_by_tool=false}}},force_panel:function(n){if((this.hidden&&n=="show")||(!this.hidden&&n=="hide")){this.do_toggle()}},init:function(){var n=this;this.$toggle.remove().appendTo("body");this.$drag.on("dragstart",function(o,p){d("#DD-helper").show();p.width=n.$panel.width()}).on("dragend",function(){d("#DD-helper").hide()}).on("drag",function(p,q){var o;if(n.left){o=q.width+q.deltaX}else{o=q.width-q.deltaX}o=Math.min(h,Math.max(b,o));n.resize(o)});n.$toggle.on("click",function(){n.do_toggle()})}});var f=function(n){this.$overlay=n.overlay;this.$dialog=n.dialog;this.$header=this.$dialog.find(".modal-header");this.$body=this.$dialog.find(".modal-body");this.$footer=this.$dialog.find(".modal-footer");this.$backdrop=n.backdrop};d.extend(f.prototype,{setContent:function(p){if(p.title){this.$header.find(".title").html(p.title);this.$header.show()}else{this.$header.hide()}this.$footer.hide();var o=this.$footer.find(".buttons").html("");if(p.buttons){d.each(p.buttons,function(r,s){o.append(d("<button></button> ").text(r).click(s)).append(" ")});this.$footer.show()}var q=this.$footer.find(".extra_buttons").html("");if(p.extra_buttons){d.each(p.extra_buttons,function(r,s){q.append(d("<button></button>").text(r).click(s)).append(" ")});this.$footer.show()}var n=p.body;if(n=="progress"){n=d("<div class='progress progress-striped active'><div class='bar' style='width: 100%'></div></div>")}this.$body.html(n)},show:function(n,o){if(!this.$dialog.is(":visible")){if(n.backdrop){this.$backdrop.addClass("in")}else{this.$backdrop.removeClass("in")}this.$overlay.show();this.$dialog.show();this.$overlay.addClass("in");this.$body.css("min-width",this.$body.width());this.$body.css("max-height",d(window).height()-2*this.$dialog.offset().top-this.$footer.outerHeight()-this.$header.outerHeight())}if(o){o()}},hide:function(){var n=this;n.$dialog.fadeOut(function(){n.$overlay.hide();n.$backdrop.removeClass("in");n.$body.children().remove();n.$body.css("min-width",undefined)})}});var m;d(function(){m=new f({overlay:d("#top-modal"),dialog:d("#top-modal-dialog"),backdrop:d("#top-modal-backdrop")})});function a(){m.hide()}function l(r,n,p,o,q){m.setContent({title:r,body:n,buttons:p,extra_buttons:o});m.show({backdrop:true},q)}function g(r,n,p,o,q){m.setContent({title:r,body:n,buttons:p,extra_buttons:o});m.show({backdrop:false},q)}function j(p){var q=p.width||"600";var o=p.height||"400";var n=p.scroll||"auto";d("#overlay-background").bind("click.overlay",function(){a();d("#overlay-background").unbind("click.overlay")});l(null,d("<div style='margin: -5px;'><img id='close_button' style='position:absolute;right:-17px;top:-15px;src='"+galaxy_config.root+"static/images/closebox.png'><iframe style='margin: 0; padding: 0;' src='"+p.url+"' width='"+q+"' height='"+o+"' scrolling='"+n+"' frameborder='0'></iframe></div>"));d("#close_button").bind("click",function(){a()})}function i(n,o){if(n){d(".loggedin-only").show();d(".loggedout-only").hide();d("#user-email").text(n);if(o){d(".admin-only").show()}}else{d(".loggedin-only").hide();d(".loggedout-only").show();d(".admin-only").hide()}}d(function(){var n=d("#masthead ul.nav > li.dropdown > .dropdown-menu");d("body").on("click.nav_popups",function(p){n.hide();d("#DD-helper").hide();if(d(p.target).closest("#masthead ul.nav > li.dropdown > .dropdown-menu").length){return}var o=d(p.target).closest("#masthead ul.nav > li.dropdown");if(o.length){d("#DD-helper").show();o.children(".dropdown-menu").show();p.preventDefault()}})});c.ensure_dd_helper=e;c.Panel=k;c.Modal=f;c.hide_modal=a;c.show_modal=l;c.show_message=g;c.show_in_overlay=j;c.user_changed=i}(window,window.jQuery);
\ No newline at end of file
+!function(c,d){var e=function(){if(d("#DD-helper").length==0){d("<div id='DD-helper'/>").appendTo("body").hide()}};var b=150,h=800;var k=function(n){this.$panel=n.panel;this.$center=n.center;this.$drag=n.drag;this.$toggle=n.toggle;this.left=!n.right;this.hidden=false;this.hidden_by_tool=false;this.saved_size=null;this.init()};d.extend(k.prototype,{resize:function(n){this.$panel.css("width",n);if(this.left){this.$center.css("left",n)}else{this.$center.css("right",n)}if(document.recalc){document.recalc()}},do_toggle:function(){var n=this;if(this.hidden){this.$toggle.removeClass("hidden");if(this.left){this.$panel.css("left",-this.saved_size).show().animate({left:0},"fast",function(){n.resize(n.saved_size)})}else{this.$panel.css("right",-this.saved_size).show().animate({right:0},"fast",function(){n.resize(n.saved_size)})}n.hidden=false}else{n.saved_size=this.$panel.width();if(document.recalc){document.recalc()}if(this.left){this.$panel.animate({left:-this.saved_size},"fast")}else{this.$panel.animate({right:-this.saved_size},"fast")}if(this.left){this.$center.css("left",0)}else{this.$center.css("right",0)}n.hidden=true;n.$toggle.addClass("hidden")}this.hidden_by_tool=false},handle_minwidth_hint:function(n){var o=this.$center.width()-(this.hidden?this.saved_size:0);if(o<n){if(!this.hidden){this.do_toggle();this.hidden_by_tool=true}}else{if(this.hidden_by_tool){this.do_toggle();this.hidden_by_tool=false}}},force_panel:function(n){if((this.hidden&&n=="show")||(!this.hidden&&n=="hide")){this.do_toggle()}},init:function(){var n=this;this.$toggle.remove().appendTo("body");this.$drag.on("dragstart",function(o,p){d("#DD-helper").show();p.width=n.$panel.width()}).on("dragend",function(){d("#DD-helper").hide()}).on("drag",function(p,q){var o;if(n.left){o=q.width+q.deltaX}else{o=q.width-q.deltaX}o=Math.min(h,Math.max(b,o));n.resize(o)});n.$toggle.on("click",function(){n.do_toggle()})}});var f=function(n){this.$overlay=n.overlay;this.$dialog=n.dialog;this.$header=this.$dialog.find(".modal-header");this.$body=this.$dialog.find(".modal-body");this.$footer=this.$dialog.find(".modal-footer");this.$backdrop=n.backdrop};d.extend(f.prototype,{setContent:function(p){if(p.title){this.$header.find(".title").html(p.title);this.$header.show()}else{this.$header.hide()}this.$footer.hide();var o=this.$footer.find(".buttons").html("");if(p.buttons){d.each(p.buttons,function(r,s){o.append(d("<button></button> ").text(r).click(s)).append(" ")});this.$footer.show()}var q=this.$footer.find(".extra_buttons").html("");if(p.extra_buttons){d.each(p.extra_buttons,function(r,s){q.append(d("<button></button>").text(r).click(s)).append(" ")});this.$footer.show()}var n=p.body;if(n=="progress"){n=d("<div class='progress progress-striped active'><div class='bar' style='width: 100%'></div></div>")}this.$body.html(n)},show:function(n,o){if(!this.$dialog.is(":visible")){if(n.backdrop){this.$backdrop.addClass("in")}else{this.$backdrop.removeClass("in")}this.$overlay.show();this.$dialog.show();this.$overlay.addClass("in");this.$body.css("min-width",this.$body.width());this.$body.css("max-height",d(window).height()-this.$footer.outerHeight()-this.$header.outerHeight()-parseInt(this.$dialog.css("padding-top"),10)-parseInt(this.$dialog.css("padding-bottom"),10))}if(o){o()}},hide:function(){var n=this;n.$dialog.fadeOut(function(){n.$overlay.hide();n.$backdrop.removeClass("in");n.$body.children().remove();n.$body.css("min-width",undefined)})}});var m;d(function(){m=new f({overlay:d("#top-modal"),dialog:d("#top-modal-dialog"),backdrop:d("#top-modal-backdrop")})});function a(){m.hide()}function l(r,n,p,o,q){m.setContent({title:r,body:n,buttons:p,extra_buttons:o});m.show({backdrop:true},q)}function g(r,n,p,o,q){m.setContent({title:r,body:n,buttons:p,extra_buttons:o});m.show({backdrop:false},q)}function j(p){var q=p.width||"600";var o=p.height||"400";var n=p.scroll||"auto";d("#overlay-background").bind("click.overlay",function(){a();d("#overlay-background").unbind("click.overlay")});l(null,d("<div style='margin: -5px;'><img id='close_button' style='position:absolute;right:-17px;top:-15px;src='"+galaxy_config.root+"static/images/closebox.png'><iframe style='margin: 0; padding: 0;' src='"+p.url+"' width='"+q+"' height='"+o+"' scrolling='"+n+"' frameborder='0'></iframe></div>"));d("#close_button").bind("click",function(){a()})}function i(n,o){if(n){d(".loggedin-only").show();d(".loggedout-only").hide();d("#user-email").text(n);if(o){d(".admin-only").show()}}else{d(".loggedin-only").hide();d(".loggedout-only").show();d(".admin-only").hide()}}d(function(){var n=d("#masthead ul.nav > li.dropdown > .dropdown-menu");d("body").on("click.nav_popups",function(p){n.hide();d("#DD-helper").hide();if(d(p.target).closest("#masthead ul.nav > li.dropdown > .dropdown-menu").length){return}var o=d(p.target).closest("#masthead ul.nav > li.dropdown");if(o.length){d("#DD-helper").show();o.children(".dropdown-menu").show();p.preventDefault()}})});c.ensure_dd_helper=e;c.Panel=k;c.Modal=f;c.hide_modal=a;c.show_modal=l;c.show_message=g;c.show_in_overlay=j;c.user_changed=i}(window,window.jQuery);
\ No newline at end of file
diff -r e70289bdc4144bd4f20ac5d76042570e1dff41cb -r 4ef6df129520040017cfd4a287cb01558c6af35f static/scripts/packed/galaxy.upload.js
--- a/static/scripts/packed/galaxy.upload.js
+++ b/static/scripts/packed/galaxy.upload.js
@@ -1,1 +1,1 @@
-define(["galaxy.modal","galaxy.master","utils/galaxy.uploadbox","libs/backbone/backbone-relational"],function(b,c){var a=Backbone.View.extend({modal:null,button_show:null,file_counter:0,initialize:function(){var d=this;this.button_show=new c.GalaxyMasterIcon({icon:"fa-icon-upload",tooltip:"Upload Files",on_click:function(f){d.event_show(f)},with_number:true});Galaxy.master.prepend(this.button_show)},events:{mouseover:"event_mouseover",mouseleave:"event_mouseleave"},event_mouseover:function(d){$("#galaxy-upload-box").addClass("highlight")},event_mouseleave:function(d){$("#galaxy-upload-box").removeClass("highlight")},event_start:function(d,e,f){var g="#galaxy-upload-file-"+d;$("#galaxy-upload-box").append(this.template_file(g));$("#galaxy-upload-file-"+d).find(".title").html(e.name);this.event_progress(d,e,0);this.file_counter++;this.refresh()},event_progress:function(e,f,h){var g=$("#galaxy-upload-file-"+e);var d=parseInt(h);g.find(".progress").css({width:d+"%"});g.find(".info").html(d+"% of "+this.size_to_string(f.size))},event_success:function(d,e,f){Galaxy.currHistoryPanel.refresh();this.file_counter--;this.refresh()},event_error:function(d,e,g){var f=$("#galaxy-upload-file-"+d);f.find(".progress-frame").addClass("failed");f.find(".error").html("<strong>Failed:</strong> "+g);this.event_progress(d,e,0);this.file_counter--;this.refresh()},event_show:function(g){g.preventDefault();if(!Galaxy.currHistoryPanel){var f=this;window.setTimeout(function(){f.event_show(g)},200);return}if(!this.modal){var f=this;this.modal=new b.GalaxyModal({title:"Upload files from your local drive",body:this.template(),buttons:{Close:function(){f.modal.hide()}}});var d=Galaxy.currHistoryPanel.model.get("id");var f=this;$("#galaxy-upload-box").uploadbox({url:galaxy_config.root+"api/histories/"+d+"/contents",dragover:f.event_mouseover,dragleave:f.event_mouseleave,start:function(e,h,i){f.event_start(e,h,i)},success:function(e,h,i){f.event_success(e,h,i)},progress:function(e,h,i){f.event_progress(e,h,i)},error:function(e,h,i){f.event_error(e,h,i)},data:{source:"upload"}});this.setElement("#galaxy-upload-box")}this.modal.show()},refresh:function(){if(this.file_counter>0){this.button_show.number(this.file_counter)}else{this.button_show.number("")}},size_to_string:function(d){var e="";if(d>=100000000000){d=d/100000000000;e="TB"}else{if(d>=100000000){d=d/100000000;e="GB"}else{if(d>=100000){d=d/100000;e="MB"}else{if(d>=100){d=d/100;e="KB"}else{d=d*10;e="b"}}}}return"<strong>"+(Math.round(d)/10)+"</strong> "+e},template:function(){return'<form id="galaxy-upload-box" class="galaxy-upload-box"></form>'},template_file:function(d){return'<div id="'+d.substr(1)+'" class="file corner-soft shadow"><div class="title"></div><div class="error"></div><div class="progress-frame corner-soft"><div class="progress"></div></div><div class="info"></div></div>'}});return{GalaxyUpload:a}});
\ No newline at end of file
+define(["galaxy.modal","galaxy.master","utils/galaxy.uploadbox","libs/backbone/backbone-relational"],function(b,c){var a=Backbone.View.extend({modal:null,button_show:null,uploadbox:null,initialize:function(){if(!Galaxy.currHistoryPanel){var d=this;window.setTimeout(function(){d.initialize()},500);return}var d=this;this.button_show=new c.GalaxyMasterIcon({icon:"fa-icon-upload",tooltip:"Upload Files",on_click:function(f){d.event_show(f)},with_number:true});Galaxy.master.prepend(this.button_show)},events:{mouseover:"event_mouseover",mouseleave:"event_mouseleave"},event_mouseover:function(d){},event_mouseleave:function(d){},event_announce:function(e,f,h){this.uploadbox.info().hide();var i="#upload-"+e;$(this.el).append(this.template_file(i));$(this.el).scrollTop($(this.el).prop("scrollHeight"));var g=this.get_upload_item(e);g.fadeIn();g.find(".title").html(f.name);g.find("#extension").select2({placeholder:"Auto-detect",width:"copy",ajax:{url:"http://www.weighttraining.com/sm/search",dataType:"jsonp",quietMillis:100,data:function(j,k){return{types:["exercise"],limit:-1,term:j}},results:function(k,j){return{results:k.results.exercise}}},formatResult:function(j){return"<div class='select2-user-result'>"+j.term+"</div>"},formatSelection:function(j){return j.term},initSelection:function(j,l){var k=$(j).attr("data-init-text");l({term:k})}});var d=this;g.find(".remove").on("click",function(){d.event_remove(e)});this.event_progress(e,f,0);this.modal.enable("Upload");this.modal.enable("Reset")},event_initialize:function(d,e,g){this.button_show.number(g);var f=this.get_upload_item(d);var h={source:"upload",space_to_tabs:f.find("#space_to_tabs").is(":checked"),extension:f.find("#extension").val()};return h},event_progress:function(e,f,h){var g=this.get_upload_item(e);var d=parseInt(h);g.find(".progress-bar").css({width:d+"%"});g.find(".info").html(d+"% of "+this.size_to_string(f.size))},event_success:function(d,e,g){var f=this.get_upload_item(d);f.addClass("panel-success");f.removeClass("panel-default");Galaxy.currHistoryPanel.refresh();this.event_progress(d,e,100);this.button_show.number("")},event_error:function(d,e,g){var f=this.get_upload_item(d);f.addClass("panel-danger");f.removeClass("panel-default");f.find(".progress").remove();f.find(".error").html("<strong>Failed:</strong> "+g);this.event_progress(d,e,0);this.button_show.number("")},event_upload:function(){$(this.el).find(".panel-body").hide();$(this.el).find(".remove").each(function(){$(this).removeClass("fa-icon-trash");$(this).addClass("fa-icon-caret-down")});this.modal.disable("Upload");var d=Galaxy.currHistoryPanel.model.get("id");this.uploadbox.configure({url:galaxy_config.root+"api/histories/"+d+"/contents"});this.uploadbox.upload()},event_reset:function(){var e=$(this.el).find(".panel");var d=this;e.fadeOut({complete:function(){e.remove();d.uploadbox.info().fadeIn()}});this.modal.disable("Upload");this.modal.disable("Reset");this.uploadbox.reset()},event_remove:function(e){var d=this;var f=this.get_upload_item(e);f.fadeOut({complete:function(){f.remove();d.uploadbox.remove(e);if($(d.el).find(".panel").length>0){d.modal.enable("Reset")}else{d.modal.disable("Reset");d.uploadbox.info().fadeIn()}if(d.uploadbox.length()>0){d.modal.enable("Upload")}else{d.modal.disable("Upload")}}})},event_show:function(f){f.preventDefault();if(!this.modal){var d=this;this.modal=new b.GalaxyModal({title:"Upload files from your local drive",body:this.template("upload-box"),buttons:{Select:function(){d.uploadbox.select()},Upload:function(){d.event_upload()},Reset:function(){d.event_reset()},Close:function(){d.modal.hide()}}});this.setElement("#upload-box");var d=this;this.uploadbox=this.$el.uploadbox({dragover:d.event_mouseover,dragleave:d.event_mouseleave,announce:function(e,g,h){d.event_announce(e,g,h)},initialize:function(e,g,h){return d.event_initialize(e,g,h)},success:function(e,g,h){d.event_success(e,g,h)},progress:function(e,g,h){d.event_progress(e,g,h)},error:function(e,g,h){d.event_error(e,g,h)},});this.modal.disable("Upload");this.modal.disable("Reset")}this.modal.show()},get_upload_item:function(d){return $(this.el).find("#upload-"+d)},size_to_string:function(d){var e="";if(d>=100000000000){d=d/100000000000;e="TB"}else{if(d>=100000000){d=d/100000000;e="GB"}else{if(d>=100000){d=d/100000;e="MB"}else{if(d>=100){d=d/100;e="KB"}else{d=d*10;e="b"}}}}return"<strong>"+(Math.round(d)/10)+"</strong> "+e},template:function(d){return'<div id="'+d+'" class="upload-box"></div>'},template_file:function(d){return'<div id="'+d.substr(1)+'" class="panel panel-default"><div class="panel-heading"><h5 class="title"></h5><h5 class="info"></h5><div class="remove fa-icon-trash"></div></div><div class="panel-body"><div class="menu"><span><input id="space_to_tabs" type="checkbox">Convert spaces to tabs</input></span></div></div><div class="panel-footer"><div class="progress"><div class="progress-bar progress-bar-success"></div></div><h6 class="error"></h6></div></div>'}});return{GalaxyUpload:a}});
\ No newline at end of file
diff -r e70289bdc4144bd4f20ac5d76042570e1dff41cb -r 4ef6df129520040017cfd4a287cb01558c6af35f static/scripts/packed/mvc/dataset/hda-base.js
--- a/static/scripts/packed/mvc/dataset/hda-base.js
+++ b/static/scripts/packed/mvc/dataset/hda-base.js
@@ -1,1 +1,1 @@
-var HDABaseView=Backbone.View.extend(LoggableMixin).extend({tagName:"div",className:"historyItemContainer",initialize:function(a){if(a.logger){this.logger=this.model.logger=a.logger}this.log(this+".initialize:",a);this.defaultPrimaryActionButtonRenderers=[this._render_showParamsButton];if(!a.urlTemplates){throw ("HDAView needs urlTemplates on initialize")}this.urlTemplates=a.urlTemplates;this.expanded=a.expanded||false;this.model.bind("change",function(d,c){var b=_.omit(this.model.changedAttributes(),"display_apps","display_types");if(_.keys(b).length){this.render()}else{if(this.expanded){this._render_displayApps()}}},this)},render:function(){var b=this,e=this.model.get("id"),c=this.model.get("state"),a=$("<div/>").attr("id","historyItem-"+e),d=(this.$el.children().size()===0);this.$el.attr("id","historyItemContainer-"+e);this.urls=this._renderUrls(this.urlTemplates,this.model.toJSON());a.addClass("historyItemWrapper").addClass("historyItem").addClass("historyItem-"+c);a.append(this._render_warnings());a.append(this._render_titleBar());this._setUpBehaviors(a);this.body=$(this._render_body());a.append(this.body);this.$el.fadeOut("fast",function(){b.$el.children().remove();b.$el.append(a).fadeIn("fast",function(){b.log(b+" rendered:",b.$el);var f="rendered";if(d){f+=":initial"}else{if(b.model.inReadyState()){f+=":ready"}}b.trigger(f)})});return this},_renderUrls:function(d,a){var b=this,c={};_.each(d,function(e,f){if(_.isObject(e)){c[f]=b._renderUrls(e,a)}else{if(f==="meta_download"){c[f]=b._renderMetaDownloadUrls(e,a)}else{try{c[f]=_.template(e,a)}catch(g){throw (b+"._renderUrls error: "+g+"\n rendering:"+e+"\n with "+JSON.stringify(a))}}}});return c},_renderMetaDownloadUrls:function(b,a){return _.map(a.meta_files,function(c){return{url:_.template(b,{id:a.id,file_type:c.file_type}),file_type:c.file_type}})},_setUpBehaviors:function(a){a=a||this.$el;make_popup_menus(a);a.find("[title]").tooltip({placement:"bottom"})},_render_warnings:function(){return $(jQuery.trim(HDABaseView.templates.messages(this.model.toJSON())))},_render_titleBar:function(){var a=$('<div class="historyItemTitleBar" style="overflow: hidden"></div>');a.append(this._render_titleButtons());a.append('<span class="state-icon"></span>');a.append(this._render_titleLink());return a},_render_titleButtons:function(){var a=$('<div class="historyItemButtons"></div>');a.append(this._render_displayButton());return a},_render_displayButton:function(){if((this.model.get("state")===HistoryDatasetAssociation.STATES.NOT_VIEWABLE)||(this.model.get("state")===HistoryDatasetAssociation.STATES.NEW)||(!this.model.get("accessible"))){this.displayButton=null;return null}var b={icon_class:"display",target:"galaxy_main"};if(this.model.get("purged")){b.enabled=false;b.title=_l("Cannot display datasets removed from disk")}else{if(this.model.get("state")===HistoryDatasetAssociation.STATES.UPLOAD){b.enabled=false;b.title=_l("This dataset must finish uploading before it can be viewed")}else{b.title=_l("View data");b.href=this.urls.display;var a=this;b.on_click=function(){Galaxy.frame_manager.frame_new({title:"Data Viewer",type:"url",location:"center",content:a.urls.display})}}}this.displayButton=new IconButtonView({model:new IconButton(b)});return this.displayButton.render().$el},_render_titleLink:function(){return $(jQuery.trim(HDABaseView.templates.titleLink(_.extend(this.model.toJSON(),{urls:this.urls}))))},_render_hdaSummary:function(){var a=_.extend(this.model.toJSON(),{urls:this.urls});return HDABaseView.templates.hdaSummary(a)},_render_primaryActionButtons:function(c){var a=this,b=$("<div/>").attr("id","primary-actions-"+this.model.get("id"));_.each(c,function(d){b.append(d.call(a))});return b},_render_downloadButton:function(){if(this.model.get("purged")||!this.model.hasData()){return null}var a=HDABaseView.templates.downloadLinks(_.extend(this.model.toJSON(),{urls:this.urls}));return $(a.trim())},_render_showParamsButton:function(){this.showParamsButton=new IconButtonView({model:new IconButton({title:_l("View details"),href:this.urls.show_params,target:"galaxy_main",icon_class:"information"})});return this.showParamsButton.render().$el},_render_displayAppArea:function(){return $("<div/>").addClass("display-apps")},_render_displayApps:function(c){c=c||this.$el;var d=c.find("div.display-apps"),a=this.model.get("display_types"),b=this.model.get("display_apps");if((!this.model.hasData())||(!c||!c.length)||(!d.length)){return}d.html(null);if(!_.isEmpty(a)){d.append(HDABaseView.templates.displayApps({displayApps:a}))}if(!_.isEmpty(b)){d.append(HDABaseView.templates.displayApps({displayApps:b}))}},_render_peek:function(){var a=this.model.get("peek");if(!a){return null}return $("<div/>").append($("<pre/>").attr("id","peek"+this.model.get("id")).addClass("peek").append(a))},_render_body:function(){var a=$("<div/>").attr("id","info-"+this.model.get("id")).addClass("historyItemBody").attr("style","display: none");if(this.expanded){this._render_body_html(a);a.css("display","block")}return a},_render_body_html:function(a){a.html("");switch(this.model.get("state")){case HistoryDatasetAssociation.STATES.NEW:this._render_body_new(a);break;case HistoryDatasetAssociation.STATES.NOT_VIEWABLE:this._render_body_not_viewable(a);break;case HistoryDatasetAssociation.STATES.UPLOAD:this._render_body_uploading(a);break;case HistoryDatasetAssociation.STATES.PAUSED:this._render_body_paused(a);break;case HistoryDatasetAssociation.STATES.QUEUED:this._render_body_queued(a);break;case HistoryDatasetAssociation.STATES.RUNNING:this._render_body_running(a);break;case HistoryDatasetAssociation.STATES.ERROR:this._render_body_error(a);break;case HistoryDatasetAssociation.STATES.DISCARDED:this._render_body_discarded(a);break;case HistoryDatasetAssociation.STATES.SETTING_METADATA:this._render_body_setting_metadata(a);break;case HistoryDatasetAssociation.STATES.EMPTY:this._render_body_empty(a);break;case HistoryDatasetAssociation.STATES.FAILED_METADATA:this._render_body_failed_metadata(a);break;case HistoryDatasetAssociation.STATES.OK:this._render_body_ok(a);break;default:a.append($('<div>Error: unknown dataset state "'+this.model.get("state")+'".</div>'))}a.append('<div style="clear: both"></div>');this._setUpBehaviors(a)},_render_body_new:function(b){var a=_l("This is a new dataset and not all of its data are available yet");b.append($("<div>"+_l(a)+"</div>"))},_render_body_not_viewable:function(a){a.append($("<div>"+_l("You do not have permission to view dataset")+"</div>"))},_render_body_uploading:function(a){a.append($("<div>"+_l("Dataset is uploading")+"</div>"))},_render_body_queued:function(a){a.append($("<div>"+_l("Job is waiting to run")+"</div>"));a.append(this._render_primaryActionButtons(this.defaultPrimaryActionButtonRenderers))},_render_body_paused:function(a){a.append($("<div>"+_l("Job is paused. Use the history menu to resume")+"</div>"));a.append(this._render_primaryActionButtons(this.defaultPrimaryActionButtonRenderers))},_render_body_running:function(a){a.append("<div>"+_l("Job is currently running")+"</div>");a.append(this._render_primaryActionButtons(this.defaultPrimaryActionButtonRenderers))},_render_body_error:function(a){if(!this.model.get("purged")){a.append($("<div>"+this.model.get("misc_blurb")+"</div>"))}a.append((_l("An error occurred with this dataset")+": <i>"+$.trim(this.model.get("misc_info"))+"</i>"));a.append(this._render_primaryActionButtons(this.defaultPrimaryActionButtonRenderers.concat([this._render_downloadButton])))},_render_body_discarded:function(a){a.append("<div>"+_l("The job creating this dataset was cancelled before completion")+".</div>");a.append(this._render_primaryActionButtons(this.defaultPrimaryActionButtonRenderers))},_render_body_setting_metadata:function(a){a.append($("<div>"+_l("Metadata is being auto-detected")+".</div>"))},_render_body_empty:function(a){a.append($("<div>"+_l("No data")+": <i>"+this.model.get("misc_blurb")+"</i></div>"));a.append(this._render_primaryActionButtons(this.defaultPrimaryActionButtonRenderers))},_render_body_failed_metadata:function(a){a.append($(HDABaseView.templates.failedMetadata(_.extend(this.model.toJSON(),{urls:this.urls}))));this._render_body_ok(a)},_render_body_ok:function(a){a.append(this._render_hdaSummary());if(this.model.isDeletedOrPurged()){a.append(this._render_primaryActionButtons([this._render_downloadButton,this._render_showParamsButton]));return}a.append(this._render_primaryActionButtons([this._render_downloadButton,this._render_showParamsButton]));a.append('<div class="clear"/>');a.append(this._render_displayAppArea());this._render_displayApps(a);a.append(this._render_peek())},events:{"click .historyItemTitle":"toggleBodyVisibility"},toggleBodyVisibility:function(c,a){var b=this;this.expanded=(a===undefined)?(!this.body.is(":visible")):(a);if(this.expanded){b._render_body_html(b.body);this.body.slideDown("fast",function(){b.trigger("body-expanded",b.model.get("id"))})}else{this.body.slideUp("fast",function(){b.trigger("body-collapsed",b.model.get("id"))})}},remove:function(b){var a=this;this.$el.fadeOut("fast",function(){a.$el.remove();a.off();if(b){b()}})},toString:function(){var a=(this.model)?(this.model+""):("(no model)");return"HDABaseView("+a+")"}});HDABaseView.templates={warningMsg:Handlebars.templates["template-warningmessagesmall"],messages:Handlebars.templates["template-hda-warning-messages"],titleLink:Handlebars.templates["template-hda-titleLink"],hdaSummary:Handlebars.templates["template-hda-hdaSummary"],downloadLinks:Handlebars.templates["template-hda-downloadLinks"],failedMetadata:Handlebars.templates["template-hda-failedMetadata"],displayApps:Handlebars.templates["template-hda-displayApps"]};
\ No newline at end of file
+var HDABaseView=Backbone.View.extend(LoggableMixin).extend({tagName:"div",className:"historyItemContainer",initialize:function(a){if(a.logger){this.logger=this.model.logger=a.logger}this.log(this+".initialize:",a);this.defaultPrimaryActionButtonRenderers=[this._render_showParamsButton];if(!a.urlTemplates){throw ("HDAView needs urlTemplates on initialize")}this.urlTemplates=a.urlTemplates;this.expanded=a.expanded||false;this.model.bind("change",function(d,c){var b=_.omit(this.model.changedAttributes(),"display_apps","display_types");if(_.keys(b).length){this.render()}else{if(this.expanded){this._render_displayApps()}}},this)},render:function(){var b=this,e=this.model.get("id"),c=this.model.get("state"),a=$("<div/>").attr("id","historyItem-"+e),d=(this.$el.children().size()===0);this.$el.attr("id","historyItemContainer-"+e);this.$el.find("[title]").tooltip("destroy");this.urls=this._renderUrls(this.urlTemplates,this.model.toJSON());a.addClass("historyItemWrapper").addClass("historyItem").addClass("historyItem-"+c);a.append(this._render_warnings());a.append(this._render_titleBar());this._setUpBehaviors(a);this.body=$(this._render_body());a.append(this.body);this.$el.fadeOut("fast",function(){b.$el.children().remove();b.$el.append(a).fadeIn("fast",function(){b.log(b+" rendered:",b.$el);var f="rendered";if(d){f+=":initial"}else{if(b.model.inReadyState()){f+=":ready"}}b.trigger(f)})});return this},_renderUrls:function(d,a){var b=this,c={};_.each(d,function(e,f){if(_.isObject(e)){c[f]=b._renderUrls(e,a)}else{if(f==="meta_download"){c[f]=b._renderMetaDownloadUrls(e,a)}else{try{c[f]=_.template(e,a)}catch(g){throw (b+"._renderUrls error: "+g+"\n rendering:"+e+"\n with "+JSON.stringify(a))}}}});return c},_renderMetaDownloadUrls:function(b,a){return _.map(a.meta_files,function(c){return{url:_.template(b,{id:a.id,file_type:c.file_type}),file_type:c.file_type}})},_setUpBehaviors:function(a){a=a||this.$el;make_popup_menus(a);a.find("[title]").tooltip({placement:"bottom"})},_render_warnings:function(){return $(jQuery.trim(HDABaseView.templates.messages(this.model.toJSON())))},_render_titleBar:function(){var a=$('<div class="historyItemTitleBar" style="overflow: hidden"></div>');a.append(this._render_titleButtons());a.append('<span class="state-icon"></span>');a.append(this._render_titleLink());return a},_render_titleButtons:function(){var a=$('<div class="historyItemButtons"></div>');a.append(this._render_displayButton());return a},_render_displayButton:function(){if((this.model.get("state")===HistoryDatasetAssociation.STATES.NOT_VIEWABLE)||(this.model.get("state")===HistoryDatasetAssociation.STATES.NEW)||(!this.model.get("accessible"))){this.displayButton=null;return null}var b={icon_class:"display",target:"galaxy_main"};if(this.model.get("purged")){b.enabled=false;b.title=_l("Cannot display datasets removed from disk")}else{if(this.model.get("state")===HistoryDatasetAssociation.STATES.UPLOAD){b.enabled=false;b.title=_l("This dataset must finish uploading before it can be viewed")}else{b.title=_l("View data");b.href=this.urls.display;var a=this;b.on_click=function(){Galaxy.frame_manager.frame_new({title:"Data Viewer",type:"url",location:"center",content:a.urls.display})}}}this.displayButton=new IconButtonView({model:new IconButton(b)});return this.displayButton.render().$el},_render_titleLink:function(){return $(jQuery.trim(HDABaseView.templates.titleLink(_.extend(this.model.toJSON(),{urls:this.urls}))))},_render_hdaSummary:function(){var a=_.extend(this.model.toJSON(),{urls:this.urls});return HDABaseView.templates.hdaSummary(a)},_render_primaryActionButtons:function(c){var a=this,b=$("<div/>").attr("id","primary-actions-"+this.model.get("id"));_.each(c,function(d){b.append(d.call(a))});return b},_render_downloadButton:function(){if(this.model.get("purged")||!this.model.hasData()){return null}var a=HDABaseView.templates.downloadLinks(_.extend(this.model.toJSON(),{urls:this.urls}));return $(a.trim())},_render_showParamsButton:function(){this.showParamsButton=new IconButtonView({model:new IconButton({title:_l("View details"),href:this.urls.show_params,target:"galaxy_main",icon_class:"information"})});return this.showParamsButton.render().$el},_render_displayAppArea:function(){return $("<div/>").addClass("display-apps")},_render_displayApps:function(c){c=c||this.$el;var d=c.find("div.display-apps"),a=this.model.get("display_types"),b=this.model.get("display_apps");if((!this.model.hasData())||(!c||!c.length)||(!d.length)){return}d.html(null);if(!_.isEmpty(a)){d.append(HDABaseView.templates.displayApps({displayApps:a}))}if(!_.isEmpty(b)){d.append(HDABaseView.templates.displayApps({displayApps:b}))}},_render_peek:function(){var a=this.model.get("peek");if(!a){return null}return $("<div/>").append($("<pre/>").attr("id","peek"+this.model.get("id")).addClass("peek").append(a))},_render_body:function(){var a=$("<div/>").attr("id","info-"+this.model.get("id")).addClass("historyItemBody").attr("style","display: none");if(this.expanded){this._render_body_html(a);a.css("display","block")}return a},_render_body_html:function(a){a.html("");switch(this.model.get("state")){case HistoryDatasetAssociation.STATES.NEW:this._render_body_new(a);break;case HistoryDatasetAssociation.STATES.NOT_VIEWABLE:this._render_body_not_viewable(a);break;case HistoryDatasetAssociation.STATES.UPLOAD:this._render_body_uploading(a);break;case HistoryDatasetAssociation.STATES.PAUSED:this._render_body_paused(a);break;case HistoryDatasetAssociation.STATES.QUEUED:this._render_body_queued(a);break;case HistoryDatasetAssociation.STATES.RUNNING:this._render_body_running(a);break;case HistoryDatasetAssociation.STATES.ERROR:this._render_body_error(a);break;case HistoryDatasetAssociation.STATES.DISCARDED:this._render_body_discarded(a);break;case HistoryDatasetAssociation.STATES.SETTING_METADATA:this._render_body_setting_metadata(a);break;case HistoryDatasetAssociation.STATES.EMPTY:this._render_body_empty(a);break;case HistoryDatasetAssociation.STATES.FAILED_METADATA:this._render_body_failed_metadata(a);break;case HistoryDatasetAssociation.STATES.OK:this._render_body_ok(a);break;default:a.append($('<div>Error: unknown dataset state "'+this.model.get("state")+'".</div>'))}a.append('<div style="clear: both"></div>');this._setUpBehaviors(a)},_render_body_new:function(b){var a=_l("This is a new dataset and not all of its data are available yet");b.append($("<div>"+_l(a)+"</div>"))},_render_body_not_viewable:function(a){a.append($("<div>"+_l("You do not have permission to view dataset")+"</div>"))},_render_body_uploading:function(a){a.append($("<div>"+_l("Dataset is uploading")+"</div>"))},_render_body_queued:function(a){a.append($("<div>"+_l("Job is waiting to run")+"</div>"));a.append(this._render_primaryActionButtons(this.defaultPrimaryActionButtonRenderers))},_render_body_paused:function(a){a.append($("<div>"+_l("Job is paused. Use the history menu to resume")+"</div>"));a.append(this._render_primaryActionButtons(this.defaultPrimaryActionButtonRenderers))},_render_body_running:function(a){a.append("<div>"+_l("Job is currently running")+"</div>");a.append(this._render_primaryActionButtons(this.defaultPrimaryActionButtonRenderers))},_render_body_error:function(a){if(!this.model.get("purged")){a.append($("<div>"+this.model.get("misc_blurb")+"</div>"))}a.append((_l("An error occurred with this dataset")+": <i>"+$.trim(this.model.get("misc_info"))+"</i>"));a.append(this._render_primaryActionButtons(this.defaultPrimaryActionButtonRenderers.concat([this._render_downloadButton])))},_render_body_discarded:function(a){a.append("<div>"+_l("The job creating this dataset was cancelled before completion")+".</div>");a.append(this._render_primaryActionButtons(this.defaultPrimaryActionButtonRenderers))},_render_body_setting_metadata:function(a){a.append($("<div>"+_l("Metadata is being auto-detected")+".</div>"))},_render_body_empty:function(a){a.append($("<div>"+_l("No data")+": <i>"+this.model.get("misc_blurb")+"</i></div>"));a.append(this._render_primaryActionButtons(this.defaultPrimaryActionButtonRenderers))},_render_body_failed_metadata:function(a){a.append($(HDABaseView.templates.failedMetadata(_.extend(this.model.toJSON(),{urls:this.urls}))));this._render_body_ok(a)},_render_body_ok:function(a){a.append(this._render_hdaSummary());if(this.model.isDeletedOrPurged()){a.append(this._render_primaryActionButtons([this._render_downloadButton,this._render_showParamsButton]));return}a.append(this._render_primaryActionButtons([this._render_downloadButton,this._render_showParamsButton]));a.append('<div class="clear"/>');a.append(this._render_displayAppArea());this._render_displayApps(a);a.append(this._render_peek())},events:{"click .historyItemTitle":"toggleBodyVisibility"},toggleBodyVisibility:function(c,a){var b=this;this.expanded=(a===undefined)?(!this.body.is(":visible")):(a);if(this.expanded){b._render_body_html(b.body);this.body.slideDown("fast",function(){b.trigger("body-expanded",b.model.get("id"))})}else{this.body.slideUp("fast",function(){b.trigger("body-collapsed",b.model.get("id"))})}},remove:function(b){var a=this;this.$el.fadeOut("fast",function(){a.$el.remove();a.off();if(b){b()}})},toString:function(){var a=(this.model)?(this.model+""):("(no model)");return"HDABaseView("+a+")"}});HDABaseView.templates={warningMsg:Handlebars.templates["template-warningmessagesmall"],messages:Handlebars.templates["template-hda-warning-messages"],titleLink:Handlebars.templates["template-hda-titleLink"],hdaSummary:Handlebars.templates["template-hda-hdaSummary"],downloadLinks:Handlebars.templates["template-hda-downloadLinks"],failedMetadata:Handlebars.templates["template-hda-failedMetadata"],displayApps:Handlebars.templates["template-hda-displayApps"]};
\ No newline at end of file
diff -r e70289bdc4144bd4f20ac5d76042570e1dff41cb -r 4ef6df129520040017cfd4a287cb01558c6af35f static/scripts/packed/utils/galaxy.uploadbox.js
--- a/static/scripts/packed/utils/galaxy.uploadbox.js
+++ b/static/scripts/packed/utils/galaxy.uploadbox.js
@@ -1,1 +1,1 @@
-(function(d){jQuery.event.props.push("dataTransfer");var c={url:"",paramname:"content",maxfilesize:2048,data:{},dragover:function(){},dragleave:function(){},initialize:function(){},start:function(){},progress:function(){},success:function(){},error:function(f,g,h){alert(h)},error_browser:"Your browser does not support drag-and-drop file uploads.",error_filesize:"This file is too large. Please use an FTP client to upload it.",error_default:"The upload failed. Please make sure the file is available and accessible.",text_default:"Drag&drop files here or click to browse your local drive.",text_degrade:"Click here to browse your local drive. <br><br>Unfortunately, your browser does not support multiple file uploads or drag&drop.<br>Please upgrade to i.e. Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+."};var a=[];var b=-1;var e=false;d.fn.uploadbox=function(n){var f=d.extend({},c,n);var l=window.File&&window.FileReader&&window.FormData&&window.XMLHttpRequest;this.append('<input id="uploadbox_input" type="file" style="display: none" multiple>');this.append('<div id="uploadbox_info"></div>');if(l){this.find("#uploadbox_info").html(f.text_default)}else{this.find("#uploadbox_info").html(f.text_degrade)}this.on("drop",i);this.on("dragover",j);this.on("dragleave",m);this.on("click",function(p){p.stopPropagation();d("#uploadbox_input").trigger(p)});d("#uploadbox_input").change(function(q){var p=q.target.files;o(p)});function i(q){if(!q.dataTransfer){return}var p=q.dataTransfer.files;o(p);q.preventDefault();return false}function j(p){p.preventDefault();f.dragover.call(this,p)}function m(p){p.stopPropagation();f.dragleave.call(this,p)}function g(p){if(p.lengthComputable){f.progress(this.index,this.file,Math.round((p.loaded*100)/p.total))}}function o(r){var q=a.length;for(var p=0;p<r.length;p++){a.push(r[p])}for(var p=q;p<a.length;p++){f.start(p,a[p],"")}if(!e){h()}}function h(){if(b+1==a.length){e=false;return}e=true;var s=++b;try{var q=new FileReader();var t=a[s];var r=t.size;var p=1048576*f.maxfilesize;q.index=s;if(r<p){q.onloadend=function(v){k(s,t)};q.onerror=function(v){f.error(s,t,f.error_default);e=false};q.readAsDataURL(t)}else{f.error(s,t,f.error_filesize);h()}}catch(u){f.error(s,t,u)}}function k(p,r){var s=new FormData();for(var q in f.data){s.append(q,f.data[q])}s.append(f.paramname,r,r.name);var t=new XMLHttpRequest();t.upload.index=p;t.upload.file=r;t.upload.addEventListener("progress",g,false);t.open("POST",f.url,true);t.setRequestHeader("Accept","application/json");t.setRequestHeader("Cache-Control","no-cache");t.setRequestHeader("X-Requested-With","XMLHttpRequest");t.send(s);t.onloadend=function(){var u=null;if(t.responseText){try{u=jQuery.parseJSON(t.responseText)}catch(v){u=t.responseText}}if(t.status<200||t.status>299){f.error(p,r,t.statusText+" (Server Code "+t.status+")");e=false}else{f.success(p,r,u);h()}}}return this}})(jQuery);
\ No newline at end of file
+(function(g){jQuery.event.props.push("dataTransfer");var c={url:"",paramname:"content",maxfilesize:250,dragover:function(){},dragleave:function(){},announce:function(){},initialize:function(){},progress:function(){},success:function(){},error:function(i,j,k){alert(k)},error_browser:"Your browser does not support drag-and-drop file uploads.",error_filesize:"This file is too large (>250MB). Please use an FTP client to upload it.",error_default:"Please make sure the file is available.",text_default:"Drag&drop files into this box or click 'Select' to select files!",text_degrade:"Unfortunately, your browser does not support multiple file uploads or drag&drop.<br>Please upgrade to i.e. Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+."};var f={};var a={};var b=0;var d=0;var h=false;var e=null;g.fn.uploadbox=function(i){f=g.extend({},c,i);var o=window.File&&window.FileReader&&window.FormData&&window.XMLHttpRequest;e=this;e.append('<input id="uploadbox_input" type="file" style="display: none" multiple>');e.append('<div id="uploadbox_info"></div>');if(o){e.find("#uploadbox_info").html(f.text_default)}else{e.find("#uploadbox_info").html(f.text_degrade)}e.on("drop",n);e.on("dragover",u);e.on("dragleave",t);g("#uploadbox_input").change(function(A){p(A.target.files)});function n(A){if(!A.dataTransfer){return}p(A.dataTransfer.files);A.preventDefault();return false}function u(A){A.preventDefault();f.dragover.call(A)}function t(A){A.stopPropagation();f.dragleave.call(A)}function k(A){if(A.lengthComputable){f.progress(this.index,this.file,Math.round((A.loaded*100)/A.total))}}function p(C){for(var B=0;B<C.length;B++){var A=String(++b);a[A]=C[B];d++;f.announce(A,a[A],"")}}function z(A){if(a[A]){delete a[A];d--}}function q(){var D=-1;for(var F in a){D=F;break}if(d==0){return}var E=a[D];z(D);var H=f.initialize(D,E,j);try{var B=new FileReader();var C=E.size;var A=1048576*f.maxfilesize;B.index=D;if(C<A){B.onload=function(I){l(D,E,H)};B.onerror=function(I){s(D,E,f.error_default)};B.readAsDataURL(E)}else{s(D,E,f.error_filesize)}}catch(G){s(D,E,G)}}function l(A,C,D){var E=new FormData();for(var B in D){E.append(B,D[B])}E.append(f.paramname,C,C.name);var F=new XMLHttpRequest();F.upload.index=A;F.upload.file=C;F.upload.addEventListener("progress",k,false);F.open("POST",f.url,true);F.setRequestHeader("Accept","application/json");F.setRequestHeader("Cache-Control","no-cache");F.setRequestHeader("X-Requested-With","XMLHttpRequest");F.send(E);F.onloadend=function(){var G=null;if(F.responseText){try{G=jQuery.parseJSON(F.responseText)}catch(H){G=F.responseText}}if(F.status<200||F.status>299){var I=F.statusText;if(!F.statusText){I=f.error_default}s(A,C,I+" (Server Code "+F.status+")")}else{m(A,C,G)}}}function m(A,B,C){f.success(A,B,C);q()}function s(A,B,C){f.error(A,B,C);q()}function r(){g("#uploadbox_input").trigger("click")}function x(A){for(A in a){z(A)}}function w(){if(!h){q()}}function j(){return d}function y(A){f=g.extend({},f,A);return f}function v(){return e.find("#uploadbox_info")}return{select:r,remove:z,upload:w,reset:x,length:j,configure:y,info:v}}})(jQuery);
\ No newline at end of file
diff -r e70289bdc4144bd4f20ac5d76042570e1dff41cb -r 4ef6df129520040017cfd4a287cb01558c6af35f static/style/blue/base.css
--- a/static/style/blue/base.css
+++ b/static/style/blue/base.css
@@ -1245,9 +1245,10 @@
.errormessage .alert-link,.warningmessage .alert-link,.donemessage .alert-link,.infomessage .alert-link,.errormessagesmall .alert-link,.warningmessagesmall .alert-link,.donemessagesmall .alert-link,.infomessagesmall .alert-link{font-weight:bold}
.errormessage>p,.warningmessage>p,.donemessage>p,.infomessage>p,.errormessagesmall>p,.warningmessagesmall>p,.donemessagesmall>p,.infomessagesmall>p,.errormessage>ul,.warningmessage>ul,.donemessage>ul,.infomessage>ul,.errormessagesmall>ul,.warningmessagesmall>ul,.donemessagesmall>ul,.infomessagesmall>ul{margin-bottom:0}
.errormessage>p+p,.warningmessage>p+p,.donemessage>p+p,.infomessage>p+p,.errormessagesmall>p+p,.warningmessagesmall>p+p,.donemessagesmall>p+p,.infomessagesmall>p+p{margin-top:5px}
-.errormessage{background-color:#f9c7c5;border-color:#dd1c15;color:#7e2a27}.errormessage hr{border-top-color:#c61913}
-.errormessage .alert-link{color:#571d1b}
-.warningmessage,.warningmessagesmall{background-image:url(warn_small.png)}
+.errormessage,.errormessagesmall{background-color:#f9c7c5;border-color:#dd1c15;color:#7e2a27}.errormessage hr,.errormessagesmall hr{border-top-color:#c61913}
+.errormessage .alert-link,.errormessagesmall .alert-link{color:#571d1b}
+.warningmessage,.warningmessagesmall{background-color:#fce1ba;border-color:#e28709;color:#80571e;background-image:url(warn_small.png)}.warningmessage hr,.warningmessagesmall hr{border-top-color:#c97908}
+.warningmessage .alert-link,.warningmessagesmall .alert-link{color:#573b14}
.donemessage,.donemessagesmall{background-color:#aff1af;border-color:#20b420;color:#295f29;background-image:url(ok_small.png)}.donemessage hr,.donemessagesmall hr{border-top-color:#1c9e1c}
.donemessage .alert-link,.donemessagesmall .alert-link{color:#193b19}
.infomessage,.infomessagesmall{background-color:#a6e4f7;border-color:#1197c0;color:#1f5566;background-image:url(info_small.png)}.infomessage hr,.infomessagesmall hr{border-top-color:#0f85a8}
diff -r e70289bdc4144bd4f20ac5d76042570e1dff41cb -r 4ef6df129520040017cfd4a287cb01558c6af35f static/style/src/less/base.less
--- a/static/style/src/less/base.less
+++ b/static/style/src/less/base.less
@@ -759,28 +759,23 @@
background-position: 5px 5px;
}
-.errormessage {
+.errormessage, .errormessagesmall {
.alert-danger();
}
.warningmessage, .warningmessagesmall {
+ .alert-warning();
background-image: url(warn_small.png);
- //border-color: @warn_message_border;
- //background-color: @warn_message_bg;
}
.donemessage, .donemessagesmall {
.alert-success();
background-image: url(ok_small.png);
- // border-color: @done_message_border;
- // background-color: @done_message_bg;
}
.infomessage, .infomessagesmall {
.alert-info();
background-image: url(info_small.png);
- //border-color: @info_message_border;
- //background-color: @info_message_bg;
}
.errormark, .warningmark, .donemark, .infomark, .ok_bgr, .err_bgr {
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
23 Sep '13
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/e70289bdc414/
Changeset: e70289bdc414
User: natefoo
Date: 2013-09-23 21:08:34
Summary: Update drmaa to 0.6
Affected #: 1 file
diff -r 0c1ecb1f4190800abdb29b3a17fc2b9d8bd21eba -r e70289bdc4144bd4f20ac5d76042570e1dff41cb eggs.ini
--- a/eggs.ini
+++ b/eggs.ini
@@ -38,7 +38,7 @@
boto = 2.5.2
decorator = 3.1.2
docutils = 0.7
-drmaa = 0.4b3
+drmaa = 0.6
elementtree = 1.2.6_20050316
Fabric = 1.7.0
GeneTrack = 2.0.0_beta_1
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