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
February 2015
- 2 participants
- 305 discussions
12 Feb '15
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/d540227165d5/
Changeset: d540227165d5
User: natefoo
Date: 2015-02-12 20:10:19+00:00
Summary: There's no reliable way to use the Galaxy config file to control egg use/fetching since so many things use galaxy.eggs from outside of Galaxy, so drop the support for the config file options and rely on the environment variables only. Reverse the defaults so that eggs and fetching are enabled by default. I'll make sure that they properly get passed to the tool execution environments in the next commit.
Affected #: 4 files
diff -r fd753316154e8ad2a92bebffda9441c8614a06f5 -r d540227165d54950208d3948e2bdecd4babc70ca config/galaxy.ini.sample
--- a/config/galaxy.ini.sample
+++ b/config/galaxy.ini.sample
@@ -125,34 +125,6 @@
# but prefixed with install_ are also available).
#install_database_connection = sqlite:///./database/universe.sqlite?isolation_level=IMMEDIATE
-# -- Galaxy framework dependencies (eggs)
-
-# Options in this section can also be provided as environment variables in the
-# form `GALAXY_CONFIG_<OPTION_NAME>`, e.g. `GALAXY_CONFIG_ENABLE_EGGS=False`,
-# etc. Environment variables override the settings in this config.
-
-# For more details, see the `requirements.txt` file at the root of the Galaxy
-# source distribution.
-
-# Galaxy manages all of its dependent Python modules by downloading Python eggs
-# from the Galaxy eggs distribution server at https://eggs.galaxyproject.org.
-# You may choose to disable this and attempt to install dependencies by hand
-# (e.g. with pip), but beware that this may cause problems due to version
-# incompatibilities between Galaxy and its dependencies. Do not do this unless
-# you know what you're doing.
-#enable_eggs = True
-
-# You may choose to keep eggs enabled but disable fetching them automatically.
-# (hint: To do a one-time fetch, you can disable here and then use
-# `GALAXY_CONFIG_ENABLE_EGG_FETCH=True python ./scripts/fetch_eggs.py` from the
-# root of the Galaxy source.
-#enable_egg_fetch = True
-
-# If you'd like to prefer any dependencies found in your local environment
-# before (fetching and) using Galaxy's egg of that dependency, you can enable
-# the following option:
-#try_dependencies_from_env = False
-
# -- Files and directories
# Dataset files are stored in this directory.
diff -r fd753316154e8ad2a92bebffda9441c8614a06f5 -r d540227165d54950208d3948e2bdecd4babc70ca lib/galaxy/eggs/__init__.py
--- a/lib/galaxy/eggs/__init__.py
+++ b/lib/galaxy/eggs/__init__.py
@@ -403,8 +403,8 @@
always_conditional = ( 'pysam', 'ctypes', 'python_daemon' )
def __init__( self, config_file ):
- self.enable_egg_fetch = False
- self.enable_eggs = False
+ self.enable_egg_fetch = True
+ self.enable_eggs = True
self.try_dependencies_from_env = False
if config_file is None:
self.config = None
@@ -412,13 +412,6 @@
self.config = ConfigParser.ConfigParser()
if self.config.read( config_file ) == []:
raise Exception( "error: unable to read Galaxy config from %s" % config_file )
- self.enable_egg_fetch = True
- self.enable_eggs = True
- for opt in ('enable_egg_fetch', 'enable_eggs', 'try_dependencies_from_env'):
- try:
- setattr(self, opt, string_as_bool(self.config.get('app:main', opt)))
- except:
- pass # use default
for opt in ('enable_egg_fetch', 'enable_eggs', 'try_dependencies_from_env'):
var = 'GALAXY_CONFIG_' + opt.upper()
if var in os.environ:
diff -r fd753316154e8ad2a92bebffda9441c8614a06f5 -r d540227165d54950208d3948e2bdecd4babc70ca requirements.txt
--- a/requirements.txt
+++ b/requirements.txt
@@ -12,8 +12,7 @@
# However, you may want to manage these dependencies on your own. If so, this
# file can be used with pip to install all of the bare minimum dependencies for
# starting a Galaxy server. Use this in conjunction with the
-# `enable_eggs = False` galaxy.ini option or `GALAXY_CONFIG_ENABLE_EGGS=False`
-# environment variable
+# `GALAXY_CONFIG_ENABLE_EGGS=False` environment variable.
#
# Note that except in the case of SQLAlchemy, all dependencies will be
# installed at their newest versions. Galaxy has not been tested with these and
@@ -62,4 +61,3 @@
Parsley
WebError
http://svgfig.googlecode.com/files/svgfig-1.1.6.tgz
-
diff -r fd753316154e8ad2a92bebffda9441c8614a06f5 -r d540227165d54950208d3948e2bdecd4babc70ca scripts/paster.py
--- a/scripts/paster.py
+++ b/scripts/paster.py
@@ -30,36 +30,6 @@
_log_tempfile = TempFile()
import tempfile
-try:
- serve = sys.argv.index('serve')
-except:
- print >>sys.stderr, "Galaxy does not use the real Paste Script, the only supported command is 'serve'"
- sys.exit(1)
-
-# eggs.require() can be called inside the app without access to the Galaxy
-# config, so we need to push the egg options into the environment so they are
-# available to Crate instantiated in require()
-
-# locate the arg containing the path to the config file
-config = None
-p = configparser.ConfigParser()
-for arg in sys.argv:
- try:
- p.read(arg)
- assert 'app:main' in p.sections()
- config = arg
- break
- except (configparser.Error, AssertionError):
- pass
-
-# find any egg options set in the config
-crate = eggs.Crate(config)
-for opt in ('enable_eggs', 'enable_egg_fetch', 'try_dependencies_from_env'):
- env = 'GALAXY_CONFIG_' + opt.upper()
- # don't overwrite existing env vars configured by the user
- if env not in os.environ:
- os.environ[env] = str(getattr(crate.galaxy_config, opt))
-
eggs.require( "Paste" )
eggs.require( "PasteDeploy" )
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: dannon: Update original parse_xml function with Carl's fix. It's safe, and I know I saw that same doctype deprecation somewhere else, might as well share it.
by commits-noreply@bitbucket.org 12 Feb '15
by commits-noreply@bitbucket.org 12 Feb '15
12 Feb '15
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/fd753316154e/
Changeset: fd753316154e
User: dannon
Date: 2015-02-12 19:56:33+00:00
Summary: Update original parse_xml function with Carl's fix. It's safe, and I know I saw that same doctype deprecation somewhere else, might as well share it.
Affected #: 2 files
diff -r 2e13b048a9b707224b1f499dbdaf12a45ffd413c -r fd753316154e8ad2a92bebffda9441c8614a06f5 lib/galaxy/util/__init__.py
--- a/lib/galaxy/util/__init__.py
+++ b/lib/galaxy/util/__init__.py
@@ -169,11 +169,15 @@
return md5(str( random.getrandbits( KEY_SIZE ) )).hexdigest()
-def parse_xml(fname):
+def parse_xml( fname ):
"""Returns a parsed xml tree"""
- tree = ElementTree.parse(fname)
- root = tree.getroot()
- ElementInclude.include(root)
+ # handle deprecation warning for XMLParsing a file with DOCTYPE
+ class DoctypeSafeCallbackTarget( ElementTree.TreeBuilder ):
+ def doctype( *args ):
+ pass
+ tree = ElementTree.ElementTree()
+ root = tree.parse( fname, parser=ElementTree.XMLParser( target=DoctypeSafeCallbackTarget() ) )
+ ElementInclude.include( root )
return tree
diff -r 2e13b048a9b707224b1f499dbdaf12a45ffd413c -r fd753316154e8ad2a92bebffda9441c8614a06f5 lib/galaxy/visualization/registry.py
--- a/lib/galaxy/visualization/registry.py
+++ b/lib/galaxy/visualization/registry.py
@@ -7,8 +7,6 @@
import os
import shutil
import glob
-from xml.etree import ElementTree
-from xml.etree import ElementInclude
from galaxy import util
import galaxy.model
@@ -85,16 +83,6 @@
return True
-def parse_xml( fname ):
- # handle deprecation warning for XMLParsing a file with DOCTYPE
- class DoctypeSafeCallbackTarget( ElementTree.TreeBuilder ):
- def doctype( *args ):
- pass
- tree = ElementTree.ElementTree()
- root = tree.parse( fname, parser=ElementTree.XMLParser( target=DoctypeSafeCallbackTarget() ) )
- ElementInclude.include( root )
- return tree
-
# ------------------------------------------------------------------- the registry
class VisualizationsRegistry( pluginframework.PageServingPluginManager ):
@@ -406,7 +394,7 @@
Parse the given XML file for visualizations data.
:returns: visualization config dictionary
"""
- xml_tree = parse_xml( xml_filepath )
+ xml_tree = util.parse_xml( xml_filepath )
visualization = self.parse_visualization( xml_tree.getroot() )
return visualization
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: Visualizations registry: remove ElementTree doctype deprecation warning
by commits-noreply@bitbucket.org 12 Feb '15
by commits-noreply@bitbucket.org 12 Feb '15
12 Feb '15
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/2e13b048a9b7/
Changeset: 2e13b048a9b7
User: carlfeberhard
Date: 2015-02-12 19:47:45+00:00
Summary: Visualizations registry: remove ElementTree doctype deprecation warning
Affected #: 1 file
diff -r 45072dc79c5c8a5d6f1bbc9883e25bb3cb8b6319 -r 2e13b048a9b707224b1f499dbdaf12a45ffd413c lib/galaxy/visualization/registry.py
--- a/lib/galaxy/visualization/registry.py
+++ b/lib/galaxy/visualization/registry.py
@@ -7,6 +7,8 @@
import os
import shutil
import glob
+from xml.etree import ElementTree
+from xml.etree import ElementInclude
from galaxy import util
import galaxy.model
@@ -83,6 +85,16 @@
return True
+def parse_xml( fname ):
+ # handle deprecation warning for XMLParsing a file with DOCTYPE
+ class DoctypeSafeCallbackTarget( ElementTree.TreeBuilder ):
+ def doctype( *args ):
+ pass
+ tree = ElementTree.ElementTree()
+ root = tree.parse( fname, parser=ElementTree.XMLParser( target=DoctypeSafeCallbackTarget() ) )
+ ElementInclude.include( root )
+ return tree
+
# ------------------------------------------------------------------- the registry
class VisualizationsRegistry( pluginframework.PageServingPluginManager ):
@@ -394,7 +406,7 @@
Parse the given XML file for visualizations data.
:returns: visualization config dictionary
"""
- xml_tree = galaxy.util.parse_xml( xml_filepath )
+ xml_tree = parse_xml( xml_filepath )
visualization = self.parse_visualization( xml_tree.getroot() )
return visualization
@@ -416,7 +428,7 @@
# allow manually turning off a vis by checking for a disabled property
if 'disabled' in xml_tree.attrib:
- log.info( '%s, plugin disabled: %s. Skipping...', self, returned[ 'name' ] )
+ log.info( 'Visualizations plugin disabled: %s. Skipping...', returned[ 'name' ] )
return None
# record the embeddable flag - defaults to false
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: Place the new egg config options into the environment at Galaxy startup since
by commits-noreply@bitbucket.org 12 Feb '15
by commits-noreply@bitbucket.org 12 Feb '15
12 Feb '15
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/45072dc79c5c/
Changeset: 45072dc79c5c
User: natefoo
Date: 2015-02-12 19:27:37+00:00
Summary: Place the new egg config options into the environment at Galaxy startup since
eggs.require() has no access to the config file.
Affected #: 1 file
diff -r c981094a4d50f40e4dae3f0fd49089b46a0e2897 -r 45072dc79c5c8a5d6f1bbc9883e25bb3cb8b6319 scripts/paster.py
--- a/scripts/paster.py
+++ b/scripts/paster.py
@@ -7,6 +7,11 @@
import os, sys
+try:
+ import configparser
+except:
+ import ConfigParser as configparser
+
# ensure supported version
from check_python import check_python
try:
@@ -19,15 +24,44 @@
sys.path = new_path
from galaxy import eggs
-import pkg_resources
if 'LOG_TEMPFILES' in os.environ:
from log_tempfile import TempFile
_log_tempfile = TempFile()
import tempfile
-pkg_resources.require( "Paste" )
-pkg_resources.require( "PasteDeploy" )
+try:
+ serve = sys.argv.index('serve')
+except:
+ print >>sys.stderr, "Galaxy does not use the real Paste Script, the only supported command is 'serve'"
+ sys.exit(1)
+
+# eggs.require() can be called inside the app without access to the Galaxy
+# config, so we need to push the egg options into the environment so they are
+# available to Crate instantiated in require()
+
+# locate the arg containing the path to the config file
+config = None
+p = configparser.ConfigParser()
+for arg in sys.argv:
+ try:
+ p.read(arg)
+ assert 'app:main' in p.sections()
+ config = arg
+ break
+ except (configparser.Error, AssertionError):
+ pass
+
+# find any egg options set in the config
+crate = eggs.Crate(config)
+for opt in ('enable_eggs', 'enable_egg_fetch', 'try_dependencies_from_env'):
+ env = 'GALAXY_CONFIG_' + opt.upper()
+ # don't overwrite existing env vars configured by the user
+ if env not in os.environ:
+ os.environ[env] = str(getattr(crate.galaxy_config, opt))
+
+eggs.require( "Paste" )
+eggs.require( "PasteDeploy" )
from galaxy.util.pastescript import serve
serve.run()
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
12 Feb '15
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/c981094a4d50/
Changeset: c981094a4d50
User: dannon
Date: 2015-02-12 18:40:22+00:00
Summary: Merge from stable.
Affected #: 13 files
diff -r 82644ba2a73d5e2b2f07975b39b6e70aefedff9b -r c981094a4d50f40e4dae3f0fd49089b46a0e2897 .hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -8,18 +8,18 @@
5e605ed6069fe4c5ca9875e95e91b2713499e8ca release_2014.02.10
9e53251b0b7e93b9563008a2b112f2e815a04bbc release_2014.04.14
7e257c7b10badb65772b1528cb61d58175a42e47 release_2014.06.02
-9bce3f426863f8ba88062f67c7efc1836e82ee7c latest_2014.06.02
-8f9dcac033694e4cabcf5daae5cca1cfefbe967f latest_2014.04.14
+c52dc4c72b77e4b0849a596b6d05e4341236642a latest_2014.06.02
+b2c0570f52e18d8661ca1d80c42867e4b036f22b latest_2014.04.14
9c323aad4ffdd65a3deb06a4a36f6b2c5115a60f latest_2013.01.13
b986c184be88947b5d1d90be7f36cfd2627dd938 latest_2013.02.08
dec9431d66b837a208e2f060d90afd913c721227 latest_2013.04.01
-19e56e66b0b344c6e2afa4541f6988e4fdb9af29 latest_2013.06.03
-cee903b8b3eee9145627ee89742555dac581791e latest_2013.08.12
-7d5aa19a166cba9039e15f338a1e3fc924c43d3a latest_2013.11.04
-0c000cc2f9c05bf4c1c2bc3a10215014fd64e696 latest_2014.02.10
+aae74ee09e4667e270750711327c8167e1dfae05 latest_2013.06.03
+db967a25c5db969ee4b3e138fe2be4d979665bdf latest_2013.08.12
+52a18b44474f017fce92850fb3892a4f76a7374a latest_2013.11.04
+746db2bf4da081a7491b5a4602aeadd2611b3b1d latest_2014.02.10
ca45b78adb4152fc6e7395514d46eba6b7d0b838 release_2014.08.11
-f3fc4602e22b39468d780b955a1a05caf867a7e9 latest_2014.08.11
+6d6d7f8b321725a21a96ce21e7d18a3a66f7b72e latest_2014.08.11
2092948937ac30ef82f71463a235c66d34987088 release_2014.10.06
-9bd6f8b5b8153db752f4e61ed62f2b6c01ae4a11 latest_2014.10.06
+782fa60fc65488aea0c618d723e9a63d42caf865 latest_2014.10.06
2e8dd2949dd3eee0f56f9a3a5ebf1b2baca24aee release_2015.01.13
-4039bfd5584aac053f686197a76ac176253e6f3d latest_2015.01.13
+577b270034b48d90e58ffbea296e700d229545c9 latest_2015.01.13
diff -r 82644ba2a73d5e2b2f07975b39b6e70aefedff9b -r c981094a4d50f40e4dae3f0fd49089b46a0e2897 lib/galaxy/tools/__init__.py
--- a/lib/galaxy/tools/__init__.py
+++ b/lib/galaxy/tools/__init__.py
@@ -2863,7 +2863,7 @@
return True
if user:
user = user.id
- log.debug( "User (%s) attempted to access a data manager tool (%s), but is not an admin.", user, self.id )
+ log.debug( "User (%s) attempted to access a data manager tool (%s), but is not an admin.", user, self.id )
return False
# Populate tool_type to ToolClass mappings
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: Merged in dannon/galaxy-central/stable (pull request #668)
by commits-noreply@bitbucket.org 12 Feb '15
by commits-noreply@bitbucket.org 12 Feb '15
12 Feb '15
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/a6e9a1d72674/
Changeset: a6e9a1d72674
Branch: stable
User: natefoo
Date: 2015-02-12 18:20:29+00:00
Summary: Merged in dannon/galaxy-central/stable (pull request #668)
[STABLE] Egg-fetching related bugfixes grafted from default.
Affected #: 26 files
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 lib/galaxy/eggs/__init__.py
--- a/lib/galaxy/eggs/__init__.py
+++ b/lib/galaxy/eggs/__init__.py
@@ -421,7 +421,7 @@
try:
for info in z.infolist():
name = info.filename
- perm = (info.external_attr >> 16L) & 0777
+ mode = (info.external_attr >> 16L) & 0777
# don't extract absolute paths or ones with .. in them
if name.startswith('/') or '..' in name:
continue
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/check_eggs.py
--- a/scripts/check_eggs.py
+++ b/scripts/check_eggs.py
@@ -37,7 +37,7 @@
config_arg = '-c %s' % config
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
from galaxy.eggs import Crate
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/check_galaxy.py
--- a/scripts/check_galaxy.py
+++ b/scripts/check_galaxy.py
@@ -90,7 +90,7 @@
# find/import twill
lib_dir = os.path.join( scripts_dir, "..", "lib" )
-sys.path.append( lib_dir )
+sys.path.insert( 1, lib_dir )
from galaxy import eggs
import pkg_resources
pkg_resources.require( "twill" )
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/dist-scramble.py
--- a/scripts/dist-scramble.py
+++ b/scripts/dist-scramble.py
@@ -44,7 +44,7 @@
root.addHandler( logging.StreamHandler( sys.stdout ) )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
from galaxy.eggs.dist import DistScrambleCrate, ScrambleFailure
from galaxy.eggs import EggNotFetchable
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/fetch_eggs.py
--- a/scripts/fetch_eggs.py
+++ b/scripts/fetch_eggs.py
@@ -32,7 +32,7 @@
root.addHandler( logging.StreamHandler( sys.stdout ) )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert(1, lib)
from galaxy.eggs import Crate, EggNotFetchable
import pkg_resources
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/get_platforms.py
--- a/scripts/get_platforms.py
+++ b/scripts/get_platforms.py
@@ -5,7 +5,7 @@
assert sys.version_info[:2] >= ( 2, 4 )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
import galaxy
import pkg_resources
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/helper.py
--- a/scripts/helper.py
+++ b/scripts/helper.py
@@ -26,7 +26,7 @@
sys.exit( 1 )
options.config = os.path.abspath( options.config )
-sys.path.append( os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
from galaxy import eggs
import pkg_resources
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/make_egg_packager.py
--- a/scripts/make_egg_packager.py
+++ b/scripts/make_egg_packager.py
@@ -17,7 +17,7 @@
root.addHandler( logging.StreamHandler( sys.stdout ) )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
from galaxy.eggs import Crate, EggNotFetchable, py
import pkg_resources
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble.py
--- a/scripts/scramble.py
+++ b/scripts/scramble.py
@@ -15,7 +15,7 @@
root.addHandler( logging.StreamHandler( sys.stdout ) )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
from galaxy.eggs.scramble import ScrambleCrate, ScrambleFailure, EggNotFetchable
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/DRMAA_python-macosx.py
--- a/scripts/scramble/scripts/DRMAA_python-macosx.py
+++ b/scripts/scramble/scripts/DRMAA_python-macosx.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/DRMAA_python-solaris.py
--- a/scripts/scramble/scripts/DRMAA_python-solaris.py
+++ b/scripts/scramble/scripts/DRMAA_python-solaris.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/DRMAA_python.py
--- a/scripts/scramble/scripts/DRMAA_python.py
+++ b/scripts/scramble/scripts/DRMAA_python.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/MySQL_python-solaris.py
--- a/scripts/scramble/scripts/MySQL_python-solaris.py
+++ b/scripts/scramble/scripts/MySQL_python-solaris.py
@@ -50,7 +50,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/MySQL_python.py
--- a/scripts/scramble/scripts/MySQL_python.py
+++ b/scripts/scramble/scripts/MySQL_python.py
@@ -47,7 +47,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/PyRods.py
--- a/scripts/scramble/scripts/PyRods.py
+++ b/scripts/scramble/scripts/PyRods.py
@@ -6,7 +6,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/bx_python-solaris.py
--- a/scripts/scramble/scripts/bx_python-solaris.py
+++ b/scripts/scramble/scripts/bx_python-solaris.py
@@ -5,7 +5,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/generic.py
--- a/scripts/scramble/scripts/generic.py
+++ b/scripts/scramble/scripts/generic.py
@@ -5,7 +5,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/pbs_python.py
--- a/scripts/scramble/scripts/pbs_python.py
+++ b/scripts/scramble/scripts/pbs_python.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/psycopg2-linux.py
--- a/scripts/scramble/scripts/psycopg2-linux.py
+++ b/scripts/scramble/scripts/psycopg2-linux.py
@@ -44,7 +44,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/psycopg2-macosx.py
--- a/scripts/scramble/scripts/psycopg2-macosx.py
+++ b/scripts/scramble/scripts/psycopg2-macosx.py
@@ -50,7 +50,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/psycopg2-solaris.py
--- a/scripts/scramble/scripts/psycopg2-solaris.py
+++ b/scripts/scramble/scripts/psycopg2-solaris.py
@@ -47,7 +47,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/psycopg2.py
--- a/scripts/scramble/scripts/psycopg2.py
+++ b/scripts/scramble/scripts/psycopg2.py
@@ -44,7 +44,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/pysam-solaris.py
--- a/scripts/scramble/scripts/pysam-solaris.py
+++ b/scripts/scramble/scripts/pysam-solaris.py
@@ -5,7 +5,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/pysqlite.py
--- a/scripts/scramble/scripts/pysqlite.py
+++ b/scripts/scramble/scripts/pysqlite.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/set_dataset_sizes.py
--- a/scripts/set_dataset_sizes.py
+++ b/scripts/set_dataset_sizes.py
@@ -13,7 +13,7 @@
def init():
options.config = os.path.abspath( options.config )
- sys.path.append( os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
+ sys.path.insert( 1, os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
from galaxy import eggs
import pkg_resources
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/set_user_disk_usage.py
--- a/scripts/set_user_disk_usage.py
+++ b/scripts/set_user_disk_usage.py
@@ -21,7 +21,7 @@
if options.email == 'all':
options.email = None
- sys.path.append( os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
+ sys.path.insert( 1, os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
from galaxy import eggs
import pkg_resources
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
4 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/6b07e029e315/
Changeset: 6b07e029e315
Branch: stable
User: dannon
Date: 2015-02-12 12:57:51+00:00
Summary: Fix at least one error with zipfile downloads and file permissions not being set correctly.
Affected #: 1 file
diff -r 1b96d3a4ff28da2bd547b65ad86c5ad5a9bbfb90 -r 6b07e029e315021aee7bcf032e51caf2e34faee2 lib/galaxy/eggs/__init__.py
--- a/lib/galaxy/eggs/__init__.py
+++ b/lib/galaxy/eggs/__init__.py
@@ -421,7 +421,7 @@
try:
for info in z.infolist():
name = info.filename
- perm = (info.external_attr >> 16L) & 0777
+ mode = (info.external_attr >> 16L) & 0777
# don't extract absolute paths or ones with .. in them
if name.startswith('/') or '..' in name:
continue
https://bitbucket.org/galaxy/galaxy-central/commits/1864b26da065/
Changeset: 1864b26da065
Branch: stable
User: dannon
Date: 2015-02-12 13:28:37+00:00
Summary: Fix path manipulation during fetch_eggs. This getting an external version of pkg_resources (and not ours in lib/) is what is causing the weird egg fetching errors. Newer versions of pkg_resources create a mangled distribution string for some eggs with nonstandard version identifiers.
Affected #: 1 file
diff -r 6b07e029e315021aee7bcf032e51caf2e34faee2 -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 scripts/fetch_eggs.py
--- a/scripts/fetch_eggs.py
+++ b/scripts/fetch_eggs.py
@@ -32,7 +32,7 @@
root.addHandler( logging.StreamHandler( sys.stdout ) )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert(1, lib)
from galaxy.eggs import Crate, EggNotFetchable
import pkg_resources
https://bitbucket.org/galaxy/galaxy-central/commits/dd8c3520ccbe/
Changeset: dd8c3520ccbe
Branch: stable
User: dannon
Date: 2015-02-12 15:34:51+00:00
Summary: Fix path insertion vs appending of <galaxy>/lib for all scripts.
Affected #: 24 files
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/check_eggs.py
--- a/scripts/check_eggs.py
+++ b/scripts/check_eggs.py
@@ -37,7 +37,7 @@
config_arg = '-c %s' % config
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
from galaxy.eggs import Crate
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/check_galaxy.py
--- a/scripts/check_galaxy.py
+++ b/scripts/check_galaxy.py
@@ -90,7 +90,7 @@
# find/import twill
lib_dir = os.path.join( scripts_dir, "..", "lib" )
-sys.path.append( lib_dir )
+sys.path.insert( 1, lib_dir )
from galaxy import eggs
import pkg_resources
pkg_resources.require( "twill" )
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/dist-scramble.py
--- a/scripts/dist-scramble.py
+++ b/scripts/dist-scramble.py
@@ -44,7 +44,7 @@
root.addHandler( logging.StreamHandler( sys.stdout ) )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
from galaxy.eggs.dist import DistScrambleCrate, ScrambleFailure
from galaxy.eggs import EggNotFetchable
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/get_platforms.py
--- a/scripts/get_platforms.py
+++ b/scripts/get_platforms.py
@@ -5,7 +5,7 @@
assert sys.version_info[:2] >= ( 2, 4 )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
import galaxy
import pkg_resources
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/helper.py
--- a/scripts/helper.py
+++ b/scripts/helper.py
@@ -26,7 +26,7 @@
sys.exit( 1 )
options.config = os.path.abspath( options.config )
-sys.path.append( os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
from galaxy import eggs
import pkg_resources
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/make_egg_packager.py
--- a/scripts/make_egg_packager.py
+++ b/scripts/make_egg_packager.py
@@ -17,7 +17,7 @@
root.addHandler( logging.StreamHandler( sys.stdout ) )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
from galaxy.eggs import Crate, EggNotFetchable, py
import pkg_resources
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble.py
--- a/scripts/scramble.py
+++ b/scripts/scramble.py
@@ -15,7 +15,7 @@
root.addHandler( logging.StreamHandler( sys.stdout ) )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
from galaxy.eggs.scramble import ScrambleCrate, ScrambleFailure, EggNotFetchable
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/DRMAA_python-macosx.py
--- a/scripts/scramble/scripts/DRMAA_python-macosx.py
+++ b/scripts/scramble/scripts/DRMAA_python-macosx.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/DRMAA_python-solaris.py
--- a/scripts/scramble/scripts/DRMAA_python-solaris.py
+++ b/scripts/scramble/scripts/DRMAA_python-solaris.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/DRMAA_python.py
--- a/scripts/scramble/scripts/DRMAA_python.py
+++ b/scripts/scramble/scripts/DRMAA_python.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/MySQL_python-solaris.py
--- a/scripts/scramble/scripts/MySQL_python-solaris.py
+++ b/scripts/scramble/scripts/MySQL_python-solaris.py
@@ -50,7 +50,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/MySQL_python.py
--- a/scripts/scramble/scripts/MySQL_python.py
+++ b/scripts/scramble/scripts/MySQL_python.py
@@ -47,7 +47,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/PyRods.py
--- a/scripts/scramble/scripts/PyRods.py
+++ b/scripts/scramble/scripts/PyRods.py
@@ -6,7 +6,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/bx_python-solaris.py
--- a/scripts/scramble/scripts/bx_python-solaris.py
+++ b/scripts/scramble/scripts/bx_python-solaris.py
@@ -5,7 +5,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/generic.py
--- a/scripts/scramble/scripts/generic.py
+++ b/scripts/scramble/scripts/generic.py
@@ -5,7 +5,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/pbs_python.py
--- a/scripts/scramble/scripts/pbs_python.py
+++ b/scripts/scramble/scripts/pbs_python.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/psycopg2-linux.py
--- a/scripts/scramble/scripts/psycopg2-linux.py
+++ b/scripts/scramble/scripts/psycopg2-linux.py
@@ -44,7 +44,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/psycopg2-macosx.py
--- a/scripts/scramble/scripts/psycopg2-macosx.py
+++ b/scripts/scramble/scripts/psycopg2-macosx.py
@@ -50,7 +50,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/psycopg2-solaris.py
--- a/scripts/scramble/scripts/psycopg2-solaris.py
+++ b/scripts/scramble/scripts/psycopg2-solaris.py
@@ -47,7 +47,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/psycopg2.py
--- a/scripts/scramble/scripts/psycopg2.py
+++ b/scripts/scramble/scripts/psycopg2.py
@@ -44,7 +44,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/pysam-solaris.py
--- a/scripts/scramble/scripts/pysam-solaris.py
+++ b/scripts/scramble/scripts/pysam-solaris.py
@@ -5,7 +5,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/scramble/scripts/pysqlite.py
--- a/scripts/scramble/scripts/pysqlite.py
+++ b/scripts/scramble/scripts/pysqlite.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/set_dataset_sizes.py
--- a/scripts/set_dataset_sizes.py
+++ b/scripts/set_dataset_sizes.py
@@ -13,7 +13,7 @@
def init():
options.config = os.path.abspath( options.config )
- sys.path.append( os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
+ sys.path.insert( 1, os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
from galaxy import eggs
import pkg_resources
diff -r 1864b26da0656d7ccacaf24e578d3500d2e8fcf0 -r dd8c3520ccbe079cd25de04bcaf93241491b4e84 scripts/set_user_disk_usage.py
--- a/scripts/set_user_disk_usage.py
+++ b/scripts/set_user_disk_usage.py
@@ -21,7 +21,7 @@
if options.email == 'all':
options.email = None
- sys.path.append( os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
+ sys.path.insert( 1, os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
from galaxy import eggs
import pkg_resources
https://bitbucket.org/galaxy/galaxy-central/commits/a6e9a1d72674/
Changeset: a6e9a1d72674
Branch: stable
User: natefoo
Date: 2015-02-12 18:20:29+00:00
Summary: Merged in dannon/galaxy-central/stable (pull request #668)
[STABLE] Egg-fetching related bugfixes grafted from default.
Affected #: 26 files
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 lib/galaxy/eggs/__init__.py
--- a/lib/galaxy/eggs/__init__.py
+++ b/lib/galaxy/eggs/__init__.py
@@ -421,7 +421,7 @@
try:
for info in z.infolist():
name = info.filename
- perm = (info.external_attr >> 16L) & 0777
+ mode = (info.external_attr >> 16L) & 0777
# don't extract absolute paths or ones with .. in them
if name.startswith('/') or '..' in name:
continue
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/check_eggs.py
--- a/scripts/check_eggs.py
+++ b/scripts/check_eggs.py
@@ -37,7 +37,7 @@
config_arg = '-c %s' % config
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
from galaxy.eggs import Crate
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/check_galaxy.py
--- a/scripts/check_galaxy.py
+++ b/scripts/check_galaxy.py
@@ -90,7 +90,7 @@
# find/import twill
lib_dir = os.path.join( scripts_dir, "..", "lib" )
-sys.path.append( lib_dir )
+sys.path.insert( 1, lib_dir )
from galaxy import eggs
import pkg_resources
pkg_resources.require( "twill" )
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/dist-scramble.py
--- a/scripts/dist-scramble.py
+++ b/scripts/dist-scramble.py
@@ -44,7 +44,7 @@
root.addHandler( logging.StreamHandler( sys.stdout ) )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
from galaxy.eggs.dist import DistScrambleCrate, ScrambleFailure
from galaxy.eggs import EggNotFetchable
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/fetch_eggs.py
--- a/scripts/fetch_eggs.py
+++ b/scripts/fetch_eggs.py
@@ -32,7 +32,7 @@
root.addHandler( logging.StreamHandler( sys.stdout ) )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert(1, lib)
from galaxy.eggs import Crate, EggNotFetchable
import pkg_resources
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/get_platforms.py
--- a/scripts/get_platforms.py
+++ b/scripts/get_platforms.py
@@ -5,7 +5,7 @@
assert sys.version_info[:2] >= ( 2, 4 )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
import galaxy
import pkg_resources
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/helper.py
--- a/scripts/helper.py
+++ b/scripts/helper.py
@@ -26,7 +26,7 @@
sys.exit( 1 )
options.config = os.path.abspath( options.config )
-sys.path.append( os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
from galaxy import eggs
import pkg_resources
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/make_egg_packager.py
--- a/scripts/make_egg_packager.py
+++ b/scripts/make_egg_packager.py
@@ -17,7 +17,7 @@
root.addHandler( logging.StreamHandler( sys.stdout ) )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
from galaxy.eggs import Crate, EggNotFetchable, py
import pkg_resources
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble.py
--- a/scripts/scramble.py
+++ b/scripts/scramble.py
@@ -15,7 +15,7 @@
root.addHandler( logging.StreamHandler( sys.stdout ) )
lib = os.path.abspath( os.path.join( os.path.dirname( __file__ ), "..", "lib" ) )
-sys.path.append( lib )
+sys.path.insert( 1, lib )
from galaxy.eggs.scramble import ScrambleCrate, ScrambleFailure, EggNotFetchable
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/DRMAA_python-macosx.py
--- a/scripts/scramble/scripts/DRMAA_python-macosx.py
+++ b/scripts/scramble/scripts/DRMAA_python-macosx.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/DRMAA_python-solaris.py
--- a/scripts/scramble/scripts/DRMAA_python-solaris.py
+++ b/scripts/scramble/scripts/DRMAA_python-solaris.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/DRMAA_python.py
--- a/scripts/scramble/scripts/DRMAA_python.py
+++ b/scripts/scramble/scripts/DRMAA_python.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/MySQL_python-solaris.py
--- a/scripts/scramble/scripts/MySQL_python-solaris.py
+++ b/scripts/scramble/scripts/MySQL_python-solaris.py
@@ -50,7 +50,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/MySQL_python.py
--- a/scripts/scramble/scripts/MySQL_python.py
+++ b/scripts/scramble/scripts/MySQL_python.py
@@ -47,7 +47,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/PyRods.py
--- a/scripts/scramble/scripts/PyRods.py
+++ b/scripts/scramble/scripts/PyRods.py
@@ -6,7 +6,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/bx_python-solaris.py
--- a/scripts/scramble/scripts/bx_python-solaris.py
+++ b/scripts/scramble/scripts/bx_python-solaris.py
@@ -5,7 +5,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/generic.py
--- a/scripts/scramble/scripts/generic.py
+++ b/scripts/scramble/scripts/generic.py
@@ -5,7 +5,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/pbs_python.py
--- a/scripts/scramble/scripts/pbs_python.py
+++ b/scripts/scramble/scripts/pbs_python.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/psycopg2-linux.py
--- a/scripts/scramble/scripts/psycopg2-linux.py
+++ b/scripts/scramble/scripts/psycopg2-linux.py
@@ -44,7 +44,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/psycopg2-macosx.py
--- a/scripts/scramble/scripts/psycopg2-macosx.py
+++ b/scripts/scramble/scripts/psycopg2-macosx.py
@@ -50,7 +50,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/psycopg2-solaris.py
--- a/scripts/scramble/scripts/psycopg2-solaris.py
+++ b/scripts/scramble/scripts/psycopg2-solaris.py
@@ -47,7 +47,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/psycopg2.py
--- a/scripts/scramble/scripts/psycopg2.py
+++ b/scripts/scramble/scripts/psycopg2.py
@@ -44,7 +44,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
- sys.path.append( os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
+ sys.path.insert( 1, os.path.abspath( os.path.join( '..', '..', '..', 'lib' ) ) )
from scramble_lib import *
tag = get_tag()
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/pysam-solaris.py
--- a/scripts/scramble/scripts/pysam-solaris.py
+++ b/scripts/scramble/scripts/pysam-solaris.py
@@ -5,7 +5,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/scramble/scripts/pysqlite.py
--- a/scripts/scramble/scripts/pysqlite.py
+++ b/scripts/scramble/scripts/pysqlite.py
@@ -10,7 +10,7 @@
os.chdir( os.path.dirname( sys.argv[0] ) )
# find setuptools
-sys.path.append( os.path.join( '..', '..', '..', 'lib' ) )
+sys.path.insert( 1, os.path.join( '..', '..', '..', 'lib' ) )
from scramble_lib import *
tag = get_tag() # get the tag
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/set_dataset_sizes.py
--- a/scripts/set_dataset_sizes.py
+++ b/scripts/set_dataset_sizes.py
@@ -13,7 +13,7 @@
def init():
options.config = os.path.abspath( options.config )
- sys.path.append( os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
+ sys.path.insert( 1, os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
from galaxy import eggs
import pkg_resources
diff -r 71054665755b0b6c6348aedb56222b954fea3e7b -r a6e9a1d7267410f697f30102ed78317b08274026 scripts/set_user_disk_usage.py
--- a/scripts/set_user_disk_usage.py
+++ b/scripts/set_user_disk_usage.py
@@ -21,7 +21,7 @@
if options.email == 'all':
options.email = None
- sys.path.append( os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
+ sys.path.insert( 1, os.path.join( os.path.dirname( __file__ ), '..', 'lib' ) )
from galaxy import eggs
import pkg_resources
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: So, you can put module source URLs right into a requirements.txt. Thanks John (and thanks for nothing, pip documentation).
by commits-noreply@bitbucket.org 12 Feb '15
by commits-noreply@bitbucket.org 12 Feb '15
12 Feb '15
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/82644ba2a73d/
Changeset: 82644ba2a73d
User: natefoo
Date: 2015-02-12 18:18:15+00:00
Summary: So, you can put module source URLs right into a requirements.txt. Thanks John (and thanks for nothing, pip documentation).
Affected #: 1 file
diff -r d86c3cbc6d9016e8511f36a2a1dd48efe4e0fe2c -r 82644ba2a73d5e2b2f07975b39b6e70aefedff9b requirements.txt
--- a/requirements.txt
+++ b/requirements.txt
@@ -24,9 +24,6 @@
# are trying to move away from our strict version dependency policy and this
# would greatly help in our efforts.
-# not available in PyPI, must be installed by hand:
-#SVGFig
-
Paste
PasteDeploy
docutils
@@ -64,3 +61,5 @@
bioblend
Parsley
WebError
+http://svgfig.googlecode.com/files/svgfig-1.1.6.tgz
+
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: UI, history multi-view: move copy and delete into submenu
by commits-noreply@bitbucket.org 12 Feb '15
by commits-noreply@bitbucket.org 12 Feb '15
12 Feb '15
1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/d86c3cbc6d90/
Changeset: d86c3cbc6d90
User: carlfeberhard
Date: 2015-02-12 18:07:31+00:00
Summary: UI, history multi-view: move copy and delete into submenu
Affected #: 7 files
diff -r b0452677a40f85d4b92cbcb1ebe4e137dbbfbec1 -r d86c3cbc6d9016e8511f36a2a1dd48efe4e0fe2c client/galaxy/scripts/mvc/history/history-panel-edit.js
--- a/client/galaxy/scripts/mvc/history/history-panel-edit.js
+++ b/client/galaxy/scripts/mvc/history/history-panel-edit.js
@@ -473,14 +473,13 @@
if( !this.dropTarget ){ return this; }
//this.log( 'dropTargetOff' );
this.dropTarget = false;
- //
- //var dropTarget = this.$( '.history-drop-target' ).get(0);
- //for( var evName in this._dropHandlers ){
- // if( this._dropHandlers.hasOwnProperty( evName ) ){
- // console.debug( evName, this._dropHandlers[ evName ] );
- // dropTarget.off( evName, this._dropHandlers[ evName ] );
- // }
- //}
+ var dropTarget = this.$( '.history-drop-target' ).get(0);
+ for( var evName in this._dropHandlers ){
+ if( this._dropHandlers.hasOwnProperty( evName ) ){
+ console.debug( evName, this._dropHandlers[ evName ] );
+ dropTarget.off( evName, this._dropHandlers[ evName ] );
+ }
+ }
this.$( '.history-drop-target' ).remove();
this.$( '.history-drop-target-help' ).remove();
return this;
diff -r b0452677a40f85d4b92cbcb1ebe4e137dbbfbec1 -r d86c3cbc6d9016e8511f36a2a1dd48efe4e0fe2c client/galaxy/scripts/mvc/history/multi-panel.js
--- a/client/galaxy/scripts/mvc/history/multi-panel.js
+++ b/client/galaxy/scripts/mvc/history/multi-panel.js
@@ -243,14 +243,9 @@
data = data || {};
var html = [
'<div class="panel-controls clear flex-row">',
- this.controlsLeftTemplate(),
+ this.controlsLeftTemplate( data ),
//'<button class="btn btn-default">Herp</button>',
- '<div class="pull-right">',
- '<button class="delete-history btn btn-default">',
- data.deleted? _l( 'Undelete' ): _l( 'Delete' ),
- '</button>',
- '<button class="copy-history btn btn-default">', _l( 'Copy' ), '</button>',
- '</div>',
+ this.controlsRightTemplate( data ),
'</div>',
'<div class="inner flex-row flex-column-container">',
'<div id="history-', data.id, '" class="history-column history-panel flex-column"></div>',
@@ -260,7 +255,7 @@
},
/** controls template displaying controls above the panel based on this.currentHistory */
- controlsLeftTemplate : function(){
+ controlsLeftTemplate : function( data ){
return ( this.currentHistory )?
[
'<div class="pull-left">',
@@ -274,6 +269,39 @@
].join( '' );
},
+ /** controls template displaying controls above the panel based on this.currentHistory */
+ controlsRightTemplate : _.template([
+ '<div class="pull-right">',
+ '<% if( !history.purged ){ %>',
+ '<div class="panel-menu order btn-group">',
+ '<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">',
+ '<span class="caret"></span>',
+ '</button>',
+ '<ul class="dropdown-menu pull-right" role="menu">',
+ '<% if( !history.deleted ){ %>',
+ '<li><a href="javascript:void(0);" class="copy-history">',
+ _l( 'Copy' ),
+ '</a></li>',
+ //'<li><a href="javascript:void(0);" class="publish-history">',
+ // _l( 'Publish' ),
+ //'</a></li>',
+ '<li><a href="javascript:void(0);" class="delete-history">',
+ _l( 'Delete' ),
+ '</a></li>',
+ '<% } else /* if is deleted */ { %>',
+ '<li><a href="javascript:void(0);" class="undelete-history">',
+ _l( 'Undelete' ),
+ '</a></li>',
+ '<% } %>',
+ //'<li><a href="javascript:void(0);" class="purge-history">',
+ // _l( 'Purge' ),
+ //'</a></li>',
+ '</ul>',
+ '<% } %>',
+ '</div>',
+ '</div>'
+ ].join( '' ), { variable: 'history' }),
+
/** render the panel contained in the column using speed for fx speed */
renderPanel : function renderPanel( speed ){
speed = ( speed !== undefined )?( speed ):( 'fast' );
@@ -289,25 +317,41 @@
events : {
// will make this the current history
'click .switch-to.btn' : function(){ this.model.setAsCurrent(); },
- // toggles deleted here and on the server and re-renders
- 'click .delete-history.btn' : function(){
- var column = this,
- xhr;
- if( this.model.get( 'deleted' ) ){
- xhr = this.model.undelete();
- } else {
- xhr = this.model._delete();
- }
-//TODO: better error handler
- xhr.fail( function( xhr, status, error ){
+ //TODO: remove boiler plate from next 3
+ 'click .delete-history' : function(){
+ var column = this;
+ this.model._delete()
+ .fail( function( xhr, status, error ){
alert( _l( 'Could not delete the history' ) + ':\n' + error );
})
.done( function( data ){
column.render();
});
- },
+ },
+ 'click .undelete-history' : function(){
+ var column = this;
+ this.model.undelete()
+ .fail( function( xhr, status, error ){
+ alert( _l( 'Could not undelete the history' ) + ':\n' + error );
+ })
+ .done( function( data ){
+ column.render();
+ });
+ },
+ 'click .purge-history' : function(){
+ if( confirm( _l( 'This will permanently remove the data. Are you sure?' ) ) ){
+ var column = this;
+ this.model.purge()
+ .fail( function( xhr, status, error ){
+ alert( _l( 'Could not purge the history' ) + ':\n' + error );
+ })
+ .done( function( data ){
+ column.render();
+ });
+ }
+ },
// will copy this history and make the copy the current history
- 'click .copy-history.btn' : 'copy'
+ 'click .copy-history' : 'copy'
},
// ------------------------------------------------------------------------ non-current controls
@@ -1030,7 +1074,7 @@
_l( 'Include hidden datasets' ),
'</label></div>',
'</div>'
- ].join(''), { variable: 'view' }),
+ ].join(''), { variable: 'view' })
});
diff -r b0452677a40f85d4b92cbcb1ebe4e137dbbfbec1 -r d86c3cbc6d9016e8511f36a2a1dd48efe4e0fe2c static/scripts/mvc/history/history-panel-edit.js
--- a/static/scripts/mvc/history/history-panel-edit.js
+++ b/static/scripts/mvc/history/history-panel-edit.js
@@ -473,14 +473,13 @@
if( !this.dropTarget ){ return this; }
//this.log( 'dropTargetOff' );
this.dropTarget = false;
- //
- //var dropTarget = this.$( '.history-drop-target' ).get(0);
- //for( var evName in this._dropHandlers ){
- // if( this._dropHandlers.hasOwnProperty( evName ) ){
- // console.debug( evName, this._dropHandlers[ evName ] );
- // dropTarget.off( evName, this._dropHandlers[ evName ] );
- // }
- //}
+ var dropTarget = this.$( '.history-drop-target' ).get(0);
+ for( var evName in this._dropHandlers ){
+ if( this._dropHandlers.hasOwnProperty( evName ) ){
+ console.debug( evName, this._dropHandlers[ evName ] );
+ dropTarget.off( evName, this._dropHandlers[ evName ] );
+ }
+ }
this.$( '.history-drop-target' ).remove();
this.$( '.history-drop-target-help' ).remove();
return this;
diff -r b0452677a40f85d4b92cbcb1ebe4e137dbbfbec1 -r d86c3cbc6d9016e8511f36a2a1dd48efe4e0fe2c static/scripts/mvc/history/multi-panel.js
--- a/static/scripts/mvc/history/multi-panel.js
+++ b/static/scripts/mvc/history/multi-panel.js
@@ -243,14 +243,9 @@
data = data || {};
var html = [
'<div class="panel-controls clear flex-row">',
- this.controlsLeftTemplate(),
+ this.controlsLeftTemplate( data ),
//'<button class="btn btn-default">Herp</button>',
- '<div class="pull-right">',
- '<button class="delete-history btn btn-default">',
- data.deleted? _l( 'Undelete' ): _l( 'Delete' ),
- '</button>',
- '<button class="copy-history btn btn-default">', _l( 'Copy' ), '</button>',
- '</div>',
+ this.controlsRightTemplate( data ),
'</div>',
'<div class="inner flex-row flex-column-container">',
'<div id="history-', data.id, '" class="history-column history-panel flex-column"></div>',
@@ -260,7 +255,7 @@
},
/** controls template displaying controls above the panel based on this.currentHistory */
- controlsLeftTemplate : function(){
+ controlsLeftTemplate : function( data ){
return ( this.currentHistory )?
[
'<div class="pull-left">',
@@ -274,6 +269,39 @@
].join( '' );
},
+ /** controls template displaying controls above the panel based on this.currentHistory */
+ controlsRightTemplate : _.template([
+ '<div class="pull-right">',
+ '<% if( !history.purged ){ %>',
+ '<div class="panel-menu order btn-group">',
+ '<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">',
+ '<span class="caret"></span>',
+ '</button>',
+ '<ul class="dropdown-menu pull-right" role="menu">',
+ '<% if( !history.deleted ){ %>',
+ '<li><a href="javascript:void(0);" class="copy-history">',
+ _l( 'Copy' ),
+ '</a></li>',
+ //'<li><a href="javascript:void(0);" class="publish-history">',
+ // _l( 'Publish' ),
+ //'</a></li>',
+ '<li><a href="javascript:void(0);" class="delete-history">',
+ _l( 'Delete' ),
+ '</a></li>',
+ '<% } else /* if is deleted */ { %>',
+ '<li><a href="javascript:void(0);" class="undelete-history">',
+ _l( 'Undelete' ),
+ '</a></li>',
+ '<% } %>',
+ //'<li><a href="javascript:void(0);" class="purge-history">',
+ // _l( 'Purge' ),
+ //'</a></li>',
+ '</ul>',
+ '<% } %>',
+ '</div>',
+ '</div>'
+ ].join( '' ), { variable: 'history' }),
+
/** render the panel contained in the column using speed for fx speed */
renderPanel : function renderPanel( speed ){
speed = ( speed !== undefined )?( speed ):( 'fast' );
@@ -289,25 +317,41 @@
events : {
// will make this the current history
'click .switch-to.btn' : function(){ this.model.setAsCurrent(); },
- // toggles deleted here and on the server and re-renders
- 'click .delete-history.btn' : function(){
- var column = this,
- xhr;
- if( this.model.get( 'deleted' ) ){
- xhr = this.model.undelete();
- } else {
- xhr = this.model._delete();
- }
-//TODO: better error handler
- xhr.fail( function( xhr, status, error ){
+ //TODO: remove boiler plate from next 3
+ 'click .delete-history' : function(){
+ var column = this;
+ this.model._delete()
+ .fail( function( xhr, status, error ){
alert( _l( 'Could not delete the history' ) + ':\n' + error );
})
.done( function( data ){
column.render();
});
- },
+ },
+ 'click .undelete-history' : function(){
+ var column = this;
+ this.model.undelete()
+ .fail( function( xhr, status, error ){
+ alert( _l( 'Could not undelete the history' ) + ':\n' + error );
+ })
+ .done( function( data ){
+ column.render();
+ });
+ },
+ 'click .purge-history' : function(){
+ if( confirm( _l( 'This will permanently remove the data. Are you sure?' ) ) ){
+ var column = this;
+ this.model.purge()
+ .fail( function( xhr, status, error ){
+ alert( _l( 'Could not purge the history' ) + ':\n' + error );
+ })
+ .done( function( data ){
+ column.render();
+ });
+ }
+ },
// will copy this history and make the copy the current history
- 'click .copy-history.btn' : 'copy'
+ 'click .copy-history' : 'copy'
},
// ------------------------------------------------------------------------ non-current controls
@@ -1030,7 +1074,7 @@
_l( 'Include hidden datasets' ),
'</label></div>',
'</div>'
- ].join(''), { variable: 'view' }),
+ ].join(''), { variable: 'view' })
});
diff -r b0452677a40f85d4b92cbcb1ebe4e137dbbfbec1 -r d86c3cbc6d9016e8511f36a2a1dd48efe4e0fe2c static/scripts/packed/mvc/history/history-panel-edit.js
--- a/static/scripts/packed/mvc/history/history-panel-edit.js
+++ b/static/scripts/packed/mvc/history/history-panel-edit.js
@@ -1,1 +1,1 @@
-define(["mvc/history/history-panel","mvc/history/history-contents","mvc/dataset/states","mvc/history/hda-model","mvc/history/hda-li-edit","mvc/history/hdca-li-edit","mvc/tags","mvc/annotations","ui/fa-icon-button","mvc/ui/popup-menu","utils/localization"],function(h,j,m,f,e,i,l,c,b,a,d){var k=h.HistoryPanel;var g=k.extend({HDAViewClass:e.HDAListItemEdit,HDCAViewClass:i.HDCAListItemEdit,initialize:function(n){n=n||{};k.prototype.initialize.call(this,n);this.tagsEditor=null;this.annotationEditor=null;this.purgeAllowed=n.purgeAllowed||false;this.annotationEditorShown=n.annotationEditorShown||false;this.tagsEditorShown=n.tagsEditorShown||false;this.multiselectActions=n.multiselectActions||this._getActions()},_setUpListeners:function(){var n=this;k.prototype._setUpListeners.call(n);n.on("drop",function(o,p){n.dataDropped(p);n.dropTargetOff()});n.on("view:attached view:removed",function(){n._renderCounts()},n)},_setUpCollectionListeners:function(){k.prototype._setUpCollectionListeners.call(this);this.collection.on("change:deleted",this._handleHdaDeletionChange,this);this.collection.on("change:visible",this._handleHdaVisibleChange,this);this.collection.on("change:purged",function(n){this.model.fetch()},this);return this},_setUpModelListeners:function(){k.prototype._setUpModelListeners.call(this);this.model.on("change:nice_size",this.updateHistoryDiskSize,this);return this},_buildNewRender:function(){var n=k.prototype._buildNewRender.call(this);if(!this.model){return n}if(Galaxy&&Galaxy.currUser&&Galaxy.currUser.id&&Galaxy.currUser.id===this.model.get("user_id")){this._renderTags(n);this._renderAnnotation(n)}return n},renderItems:function(o){var n=k.prototype.renderItems.call(this,o);this._renderCounts(o);return n},_renderCounts:function(p){function o(s,t){return['<a class="',s,'" href="javascript:void(0);">',t,"</a>"].join("")}p=p||this.$el;var n=this.collection.where({deleted:true}),r=this.collection.where({visible:false}),q=[];if(this.views.length){q.push([this.views.length,d("shown")].join(" "))}if(n.length){q.push((!this.showDeleted)?([n.length,o("toggle-deleted-link",d("deleted"))].join(" ")):(o("toggle-deleted-link",d("hide deleted"))))}if(r.length){q.push((!this.showHidden)?([r.length,o("toggle-hidden-link",d("hidden"))].join(" ")):(o("toggle-hidden-link",d("hide hidden"))))}return p.find("> .controls .subtitle").html(q.join(", "))},_renderTags:function(n){var o=this;this.tagsEditor=new l.TagsEditor({model:this.model,el:n.find(".controls .tags-display"),onshowFirstTime:function(){this.render()},onshow:function(){o.toggleHDATagEditors(true,o.fxSpeed)},onhide:function(){o.toggleHDATagEditors(false,o.fxSpeed)},$activator:b({title:d("Edit history tags"),classes:"history-tag-btn",faIcon:"fa-tags"}).appendTo(n.find(".controls .actions"))})},_renderAnnotation:function(n){var o=this;this.annotationEditor=new c.AnnotationEditor({model:this.model,el:n.find(".controls .annotation-display"),onshowFirstTime:function(){this.render()},onshow:function(){o.toggleHDAAnnotationEditors(true,o.fxSpeed)},onhide:function(){o.toggleHDAAnnotationEditors(false,o.fxSpeed)},$activator:b({title:d("Edit history annotation"),classes:"history-annotate-btn",faIcon:"fa-comment"}).appendTo(n.find(".controls .actions"))})},_setUpBehaviors:function(n){n=n||this.$el;k.prototype._setUpBehaviors.call(this,n);if(!this.model){return}if(this.multiselectActions.length){this.actionsPopup=new a(n.find(".list-action-popup-btn"),this.multiselectActions)}if((!Galaxy.currUser||Galaxy.currUser.isAnonymous())||(Galaxy.currUser.id!==this.model.get("user_id"))){return}var o=this,p=".controls .name";n.find(p).attr("title",d("Click to rename history")).tooltip({placement:"bottom"}).make_text_editable({on_finish:function(q){var r=o.model.get("name");if(q&&q!==r){o.$el.find(p).text(q);o.model.save({name:q}).fail(function(){o.$el.find(p).text(o.model.previous("name"))})}else{o.$el.find(p).text(r)}}})},_getActions:function(){var n=this,o=[{html:d("Hide datasets"),func:function(){var p=f.HistoryDatasetAssociation.prototype.hide;n.getSelectedModels().ajaxQueue(p)}},{html:d("Unhide datasets"),func:function(){var p=f.HistoryDatasetAssociation.prototype.unhide;n.getSelectedModels().ajaxQueue(p)}},{html:d("Delete datasets"),func:function(){var p=f.HistoryDatasetAssociation.prototype["delete"];n.getSelectedModels().ajaxQueue(p)}},{html:d("Undelete datasets"),func:function(){var p=f.HistoryDatasetAssociation.prototype.undelete;n.getSelectedModels().ajaxQueue(p)}}];if(n.purgeAllowed){o.push({html:d("Permanently delete datasets"),func:function(){if(confirm(d("This will permanently remove the data in your datasets. Are you sure?"))){var p=f.HistoryDatasetAssociation.prototype.purge;n.getSelectedModels().ajaxQueue(p)}}})}o.push({html:d("Build Dataset List"),func:function(){n.getSelectedModels().promoteToHistoryDatasetCollection(n.model,"list")}});o.push({html:d("Build Dataset Pair"),func:function(){n.getSelectedModels().promoteToHistoryDatasetCollection(n.model,"paired")}});o.push({html:d("Build List of Dataset Pairs"),func:_.bind(n._showPairedCollectionModal,n)});return o},_showPairedCollectionModal:function(){var n=this,o=n.getSelectedModels().toJSON().filter(function(p){return p.history_content_type==="dataset"&&p.state===m.OK});if(o.length){require(["mvc/collection/paired-collection-creator"],function(p){window.creator=p.pairedCollectionCreatorModal(o,{historyId:n.model.id})})}else{Galaxy.modal.show({title:d("No valid datasets were selected"),body:d(["Use the checkboxes at the left of the dataset names to select them.","Selected datasets should be error-free and should have completed running."].join(" ")),buttons:{Ok:function(){Galaxy.modal.hide()}},closing_events:true})}},_attachItems:function(n){this.$list(n).append(this.views.reverse().map(function(o){return o.$el}));return this},_attachView:function(o){var n=this;n.views.unshift(o);n.$list().prepend(o.render(0).$el.hide());n.trigger("view:attached",o);o.$el.slideDown(n.fxSpeed,function(){n.trigger("view:attached:rendered")})},_getItemViewOptions:function(o){var n=k.prototype._getItemViewOptions.call(this,o);_.extend(n,{purgeAllowed:this.purgeAllowed,tagsEditorShown:(this.tagsEditor&&!this.tagsEditor.hidden),annotationEditorShown:(this.annotationEditor&&!this.annotationEditor.hidden)});return n},_handleHdaDeletionChange:function(n){if(n.get("deleted")&&!this.showDeleted){this.removeItemView(n)}this._renderCounts()},_handleHdaVisibleChange:function(n){if(n.hidden()&&!this.storage.showHidden){this.removeItemView(n)}this._renderCounts()},toggleHDATagEditors:function(n){var o=Array.prototype.slice.call(arguments,1);_.each(this.views,function(p){if(p.tagsEditor){p.tagsEditor.toggle.apply(p.tagsEditor,o)}})},toggleHDAAnnotationEditors:function(n){var o=Array.prototype.slice.call(arguments,1);_.each(this.views,function(p){if(p.annotationEditor){p.annotationEditor.toggle.apply(p.annotationEditor,o)}})},events:_.extend(_.clone(k.prototype.events),{"click .show-selectors-btn":"toggleSelectors","click .toggle-deleted-link":function(n){this.toggleShowDeleted()},"click .toggle-hidden-link":function(n){this.toggleShowHidden()}}),updateHistoryDiskSize:function(){this.$el.find(".history-size").text(this.model.get("nice_size"))},dropTargetOn:function(){if(this.dropTarget){return this}this.dropTarget=true;var o={dragenter:_.bind(this.dragenter,this),dragover:_.bind(this.dragover,this),dragleave:_.bind(this.dragleave,this),drop:_.bind(this.drop,this)};var p=this._renderDropTarget();this.$list().before([this._renderDropTargetHelp(),p]);for(var n in o){if(o.hasOwnProperty(n)){p.on(n,o[n])}}return this},_renderDropTarget:function(){this.$(".history-drop-target").remove();return $("<div/>").addClass("history-drop-target").css({height:"64px",margin:"0px 10px 10px 10px",border:"1px dashed black","border-radius":"3px"})},_renderDropTargetHelp:function(){this.$(".history-drop-target-help").remove();return $("<div/>").addClass("history-drop-target-help").css({margin:"10px 10px 4px 10px",color:"grey","font-size":"80%","font-style":"italic"}).text(d("Drag datasets here to copy them to the current history"))},dropTargetOff:function(){if(!this.dropTarget){return this}this.dropTarget=false;this.$(".history-drop-target").remove();this.$(".history-drop-target-help").remove();return this},dropTargetToggle:function(){if(this.dropTarget){this.dropTargetOff()}else{this.dropTargetOn()}return this},dragenter:function(n){n.preventDefault();n.stopPropagation();this.$(".history-drop-target").css("border","2px solid black")},dragover:function(n){n.preventDefault();n.stopPropagation()},dragleave:function(n){n.preventDefault();n.stopPropagation();this.$(".history-drop-target").css("border","1px dashed black")},drop:function(p){p.preventDefault();p.dataTransfer.dropEffect="move";var n=this,q=p.dataTransfer.getData("text");try{q=JSON.parse(q)}catch(o){this.warn("error parsing JSON from drop:",q)}this.trigger("droptarget:drop",p,q,n);return false},dataDropped:function(o){var n=this;if(_.isObject(o)&&o.model_class==="HistoryDatasetAssociation"&&o.id){return n.model.contents.copy(o.id)}return jQuery.when()},toString:function(){return"HistoryPanelEdit("+((this.model)?(this.model.get("name")):(""))+")"}});return{HistoryPanelEdit:g}});
\ No newline at end of file
+define(["mvc/history/history-panel","mvc/history/history-contents","mvc/dataset/states","mvc/history/hda-model","mvc/history/hda-li-edit","mvc/history/hdca-li-edit","mvc/tags","mvc/annotations","ui/fa-icon-button","mvc/ui/popup-menu","utils/localization"],function(h,j,m,f,e,i,l,c,b,a,d){var k=h.HistoryPanel;var g=k.extend({HDAViewClass:e.HDAListItemEdit,HDCAViewClass:i.HDCAListItemEdit,initialize:function(n){n=n||{};k.prototype.initialize.call(this,n);this.tagsEditor=null;this.annotationEditor=null;this.purgeAllowed=n.purgeAllowed||false;this.annotationEditorShown=n.annotationEditorShown||false;this.tagsEditorShown=n.tagsEditorShown||false;this.multiselectActions=n.multiselectActions||this._getActions()},_setUpListeners:function(){var n=this;k.prototype._setUpListeners.call(n);n.on("drop",function(o,p){n.dataDropped(p);n.dropTargetOff()});n.on("view:attached view:removed",function(){n._renderCounts()},n)},_setUpCollectionListeners:function(){k.prototype._setUpCollectionListeners.call(this);this.collection.on("change:deleted",this._handleHdaDeletionChange,this);this.collection.on("change:visible",this._handleHdaVisibleChange,this);this.collection.on("change:purged",function(n){this.model.fetch()},this);return this},_setUpModelListeners:function(){k.prototype._setUpModelListeners.call(this);this.model.on("change:nice_size",this.updateHistoryDiskSize,this);return this},_buildNewRender:function(){var n=k.prototype._buildNewRender.call(this);if(!this.model){return n}if(Galaxy&&Galaxy.currUser&&Galaxy.currUser.id&&Galaxy.currUser.id===this.model.get("user_id")){this._renderTags(n);this._renderAnnotation(n)}return n},renderItems:function(o){var n=k.prototype.renderItems.call(this,o);this._renderCounts(o);return n},_renderCounts:function(p){function o(s,t){return['<a class="',s,'" href="javascript:void(0);">',t,"</a>"].join("")}p=p||this.$el;var n=this.collection.where({deleted:true}),r=this.collection.where({visible:false}),q=[];if(this.views.length){q.push([this.views.length,d("shown")].join(" "))}if(n.length){q.push((!this.showDeleted)?([n.length,o("toggle-deleted-link",d("deleted"))].join(" ")):(o("toggle-deleted-link",d("hide deleted"))))}if(r.length){q.push((!this.showHidden)?([r.length,o("toggle-hidden-link",d("hidden"))].join(" ")):(o("toggle-hidden-link",d("hide hidden"))))}return p.find("> .controls .subtitle").html(q.join(", "))},_renderTags:function(n){var o=this;this.tagsEditor=new l.TagsEditor({model:this.model,el:n.find(".controls .tags-display"),onshowFirstTime:function(){this.render()},onshow:function(){o.toggleHDATagEditors(true,o.fxSpeed)},onhide:function(){o.toggleHDATagEditors(false,o.fxSpeed)},$activator:b({title:d("Edit history tags"),classes:"history-tag-btn",faIcon:"fa-tags"}).appendTo(n.find(".controls .actions"))})},_renderAnnotation:function(n){var o=this;this.annotationEditor=new c.AnnotationEditor({model:this.model,el:n.find(".controls .annotation-display"),onshowFirstTime:function(){this.render()},onshow:function(){o.toggleHDAAnnotationEditors(true,o.fxSpeed)},onhide:function(){o.toggleHDAAnnotationEditors(false,o.fxSpeed)},$activator:b({title:d("Edit history annotation"),classes:"history-annotate-btn",faIcon:"fa-comment"}).appendTo(n.find(".controls .actions"))})},_setUpBehaviors:function(n){n=n||this.$el;k.prototype._setUpBehaviors.call(this,n);if(!this.model){return}if(this.multiselectActions.length){this.actionsPopup=new a(n.find(".list-action-popup-btn"),this.multiselectActions)}if((!Galaxy.currUser||Galaxy.currUser.isAnonymous())||(Galaxy.currUser.id!==this.model.get("user_id"))){return}var o=this,p=".controls .name";n.find(p).attr("title",d("Click to rename history")).tooltip({placement:"bottom"}).make_text_editable({on_finish:function(q){var r=o.model.get("name");if(q&&q!==r){o.$el.find(p).text(q);o.model.save({name:q}).fail(function(){o.$el.find(p).text(o.model.previous("name"))})}else{o.$el.find(p).text(r)}}})},_getActions:function(){var n=this,o=[{html:d("Hide datasets"),func:function(){var p=f.HistoryDatasetAssociation.prototype.hide;n.getSelectedModels().ajaxQueue(p)}},{html:d("Unhide datasets"),func:function(){var p=f.HistoryDatasetAssociation.prototype.unhide;n.getSelectedModels().ajaxQueue(p)}},{html:d("Delete datasets"),func:function(){var p=f.HistoryDatasetAssociation.prototype["delete"];n.getSelectedModels().ajaxQueue(p)}},{html:d("Undelete datasets"),func:function(){var p=f.HistoryDatasetAssociation.prototype.undelete;n.getSelectedModels().ajaxQueue(p)}}];if(n.purgeAllowed){o.push({html:d("Permanently delete datasets"),func:function(){if(confirm(d("This will permanently remove the data in your datasets. Are you sure?"))){var p=f.HistoryDatasetAssociation.prototype.purge;n.getSelectedModels().ajaxQueue(p)}}})}o.push({html:d("Build Dataset List"),func:function(){n.getSelectedModels().promoteToHistoryDatasetCollection(n.model,"list")}});o.push({html:d("Build Dataset Pair"),func:function(){n.getSelectedModels().promoteToHistoryDatasetCollection(n.model,"paired")}});o.push({html:d("Build List of Dataset Pairs"),func:_.bind(n._showPairedCollectionModal,n)});return o},_showPairedCollectionModal:function(){var n=this,o=n.getSelectedModels().toJSON().filter(function(p){return p.history_content_type==="dataset"&&p.state===m.OK});if(o.length){require(["mvc/collection/paired-collection-creator"],function(p){window.creator=p.pairedCollectionCreatorModal(o,{historyId:n.model.id})})}else{Galaxy.modal.show({title:d("No valid datasets were selected"),body:d(["Use the checkboxes at the left of the dataset names to select them.","Selected datasets should be error-free and should have completed running."].join(" ")),buttons:{Ok:function(){Galaxy.modal.hide()}},closing_events:true})}},_attachItems:function(n){this.$list(n).append(this.views.reverse().map(function(o){return o.$el}));return this},_attachView:function(o){var n=this;n.views.unshift(o);n.$list().prepend(o.render(0).$el.hide());n.trigger("view:attached",o);o.$el.slideDown(n.fxSpeed,function(){n.trigger("view:attached:rendered")})},_getItemViewOptions:function(o){var n=k.prototype._getItemViewOptions.call(this,o);_.extend(n,{purgeAllowed:this.purgeAllowed,tagsEditorShown:(this.tagsEditor&&!this.tagsEditor.hidden),annotationEditorShown:(this.annotationEditor&&!this.annotationEditor.hidden)});return n},_handleHdaDeletionChange:function(n){if(n.get("deleted")&&!this.showDeleted){this.removeItemView(n)}this._renderCounts()},_handleHdaVisibleChange:function(n){if(n.hidden()&&!this.storage.showHidden){this.removeItemView(n)}this._renderCounts()},toggleHDATagEditors:function(n){var o=Array.prototype.slice.call(arguments,1);_.each(this.views,function(p){if(p.tagsEditor){p.tagsEditor.toggle.apply(p.tagsEditor,o)}})},toggleHDAAnnotationEditors:function(n){var o=Array.prototype.slice.call(arguments,1);_.each(this.views,function(p){if(p.annotationEditor){p.annotationEditor.toggle.apply(p.annotationEditor,o)}})},events:_.extend(_.clone(k.prototype.events),{"click .show-selectors-btn":"toggleSelectors","click .toggle-deleted-link":function(n){this.toggleShowDeleted()},"click .toggle-hidden-link":function(n){this.toggleShowHidden()}}),updateHistoryDiskSize:function(){this.$el.find(".history-size").text(this.model.get("nice_size"))},dropTargetOn:function(){if(this.dropTarget){return this}this.dropTarget=true;var o={dragenter:_.bind(this.dragenter,this),dragover:_.bind(this.dragover,this),dragleave:_.bind(this.dragleave,this),drop:_.bind(this.drop,this)};var p=this._renderDropTarget();this.$list().before([this._renderDropTargetHelp(),p]);for(var n in o){if(o.hasOwnProperty(n)){p.on(n,o[n])}}return this},_renderDropTarget:function(){this.$(".history-drop-target").remove();return $("<div/>").addClass("history-drop-target").css({height:"64px",margin:"0px 10px 10px 10px",border:"1px dashed black","border-radius":"3px"})},_renderDropTargetHelp:function(){this.$(".history-drop-target-help").remove();return $("<div/>").addClass("history-drop-target-help").css({margin:"10px 10px 4px 10px",color:"grey","font-size":"80%","font-style":"italic"}).text(d("Drag datasets here to copy them to the current history"))},dropTargetOff:function(){if(!this.dropTarget){return this}this.dropTarget=false;var o=this.$(".history-drop-target").get(0);for(var n in this._dropHandlers){if(this._dropHandlers.hasOwnProperty(n)){console.debug(n,this._dropHandlers[n]);o.off(n,this._dropHandlers[n])}}this.$(".history-drop-target").remove();this.$(".history-drop-target-help").remove();return this},dropTargetToggle:function(){if(this.dropTarget){this.dropTargetOff()}else{this.dropTargetOn()}return this},dragenter:function(n){n.preventDefault();n.stopPropagation();this.$(".history-drop-target").css("border","2px solid black")},dragover:function(n){n.preventDefault();n.stopPropagation()},dragleave:function(n){n.preventDefault();n.stopPropagation();this.$(".history-drop-target").css("border","1px dashed black")},drop:function(p){p.preventDefault();p.dataTransfer.dropEffect="move";var n=this,q=p.dataTransfer.getData("text");try{q=JSON.parse(q)}catch(o){this.warn("error parsing JSON from drop:",q)}this.trigger("droptarget:drop",p,q,n);return false},dataDropped:function(o){var n=this;if(_.isObject(o)&&o.model_class==="HistoryDatasetAssociation"&&o.id){return n.model.contents.copy(o.id)}return jQuery.when()},toString:function(){return"HistoryPanelEdit("+((this.model)?(this.model.get("name")):(""))+")"}});return{HistoryPanelEdit:g}});
\ No newline at end of file
diff -r b0452677a40f85d4b92cbcb1ebe4e137dbbfbec1 -r d86c3cbc6d9016e8511f36a2a1dd48efe4e0fe2c static/scripts/packed/mvc/history/multi-panel.js
--- a/static/scripts/packed/mvc/history/multi-panel.js
+++ b/static/scripts/packed/mvc/history/multi-panel.js
@@ -1,1 +1,1 @@
-define(["mvc/history/history-model","mvc/history/history-panel-edit","mvc/base-mvc","utils/ajax-queue","ui/mode-button","ui/search-input"],function(d,l,z,a){function g(I,E){E=E||{};if(!(Galaxy&&Galaxy.modal)){return I.copy()}var F=I.get("name"),C="Copy of '"+F+"'";function D(K){if(!K){if(!Galaxy.modal.$("#invalid-title").size()){var J=$("<p/>").attr("id","invalid-title").css({color:"red","margin-top":"8px"}).addClass("bg-danger").text(_l("Please enter a valid history title"));Galaxy.modal.$(".modal-body").append(J)}return false}return K}function G(J){var K=$('<p><span class="fa fa-spinner fa-spin"></span> Copying history...</p>').css("margin-top","8px");Galaxy.modal.$(".modal-body").append(K);I.copy(true,J).fail(function(){alert(_l("History could not be copied. Please contact a Galaxy administrator"))}).always(function(){Galaxy.modal.hide()})}function H(){var J=Galaxy.modal.$("#copy-modal-title").val();if(!D(J)){return}G(J)}Galaxy.modal.show(_.extend({title:_l("Copying history")+' "'+F+'"',body:$(['<label for="copy-modal-title">',_l("Enter a title for the copied history"),":","</label><br />",'<input id="copy-modal-title" class="form-control" style="width: 100%" value="',C,'" />'].join("")),buttons:{Cancel:function(){Galaxy.modal.hide()},Copy:H}},E));$("#copy-modal-title").focus().select();$("#copy-modal-title").on("keydown",function(J){if(J.keyCode===13){H()}})}var B=Backbone.View.extend(z.LoggableMixin).extend({tagName:"div",className:"history-column flex-column flex-row-container",id:function q(){if(!this.model){return""}return"history-column-"+this.model.get("id")},initialize:function c(C){C=C||{};this.panel=C.panel||this.createPanel(C);this.setUpListeners()},createPanel:function u(D){D=_.extend({model:this.model,dragItems:true},D);var C=new l.HistoryPanelEdit(D);C._renderEmptyMessage=this.__patch_renderEmptyMessage;return C},__patch_renderEmptyMessage:function(E){var D=this,F=_.chain(this.model.get("state_ids")).values().flatten().value().length,C=D.$emptyMessage(E);if(!_.isEmpty(D.hdaViews)){C.hide()}else{if(F&&!this.model.contents.length){C.empty().append($('<span class="fa fa-spinner fa-spin"></span><i>loading datasets...</i>')).show()}else{if(D.searchFor){C.text(D.noneFoundMsg).show()}else{C.text(D.emptyMsg).show()}}}return C},setUpListeners:function f(){var C=this;this.once("rendered",function(){C.trigger("rendered:initial",C)});this.setUpPanelListeners()},setUpPanelListeners:function k(){var C=this;this.listenTo(this.panel,{rendered:function(){C.trigger("rendered",C)}},this)},inView:function(C,D){var F=this.$el.offset().left,E=F+this.$el.width();if(E<C){return false}if(F>D){return false}return true},$panel:function e(){return this.$(".history-panel")},render:function A(D){D=(D!==undefined)?(D):("fast");var C=this.model?this.model.toJSON():{};this.$el.html(this.template(C));this.renderPanel(D);this.setUpBehaviors();return this},setUpBehaviors:function v(){},template:function w(D){D=D||{};var C=['<div class="panel-controls clear flex-row">',this.controlsLeftTemplate(),'<div class="pull-right">','<button class="delete-history btn btn-default">',D.deleted?_l("Undelete"):_l("Delete"),"</button>",'<button class="copy-history btn btn-default">',_l("Copy"),"</button>","</div>","</div>",'<div class="inner flex-row flex-column-container">','<div id="history-',D.id,'" class="history-column history-panel flex-column"></div>',"</div>"].join("");return $(C)},controlsLeftTemplate:function(){return(this.currentHistory)?['<div class="pull-left">','<strong class="current-label">',_l("Current History"),"</strong>","</div>"].join(""):['<div class="pull-left">','<button class="switch-to btn btn-default">',_l("Switch to"),"</button>","</div>"].join("")},renderPanel:function h(C){C=(C!==undefined)?(C):("fast");this.panel.setElement(this.$panel()).render(C);if(this.currentHistory){this.panel.$list().before(this.panel._renderDropTargetHelp())}return this},events:{"click .switch-to.btn":function(){this.model.setAsCurrent()},"click .delete-history.btn":function(){var C=this,D;if(this.model.get("deleted")){D=this.model.undelete()}else{D=this.model._delete()}D.fail(function(G,E,F){alert(_l("Could not delete the history")+":\n"+F)}).done(function(E){C.render()})},"click .copy-history.btn":"copy"},copy:function s(){g(this.model)},toString:function(){return"HistoryPanelColumn("+(this.panel?this.panel:"")+")"}});var m=Backbone.View.extend(z.LoggableMixin).extend({className:"multi-history-columns",initialize:function c(C){C=C||{};this.log(this+".init",C);if(!C.currentHistoryId){throw new Error(this+" requires a currentHistoryId in the options")}this.currentHistoryId=C.currentHistoryId;this.options={columnWidth:312,borderWidth:1,columnGap:8,headerHeight:29,footerHeight:0,controlsHeight:20};this.order=C.order||"update";this.hdaQueue=new a.NamedAjaxQueue([],false);this.collection=null;this.setCollection(C.histories||[]);this.columnMap={};this.createColumns(C.columnOptions);this.setUpListeners()},setUpListeners:function f(){},setCollection:function y(D){var C=this;C.stopListening(C.collection);C.collection=D;C.sortCollection(C.order,{silent:true});C.setUpCollectionListeners();C.trigger("new-collection",C);return C},setUpCollectionListeners:function(){var C=this,D=C.collection;C.listenTo(D,{add:C.addAsCurrentColumn,"set-as-current":C.setCurrentHistory,"change:deleted":C.handleDeletedHistory,sort:function(){C.renderColumns(0)}})},setCurrentHistory:function p(D){var C=this.columnMap[this.currentHistoryId];if(C){C.currentHistory=false;C.$el.height("")}this.currentHistoryId=D.id;var E=this.columnMap[this.currentHistoryId];E.currentHistory=true;this.sortCollection();multipanel._recalcFirstColumnHeight();return E},handleDeletedHistory:function b(D){if(D.get("deleted")){this.log("handleDeletedHistory",this.collection.includeDeleted,D);var C=this;column=C.columnMap[D.id];if(!column){return}if(column.model.id===this.currentHistoryId){}else{if(!C.collection.includeDeleted){C.removeColumn(column)}}}},sortCollection:function(C,D){C=C||this.order;var E=this.currentHistoryId;switch(C){case"name":this.collection.comparator=function(F){return[F.id!==E,F.get("name").toLowerCase()]};break;case"size":this.collection.comparator=function(F){return[F.id!==E,F.get("size")]};break;default:this.collection.comparator=function(F){return[F.id!==E,Date(F.get("update_time"))]}}this.collection.sort(D);return this.collection},setOrder:function(C){if(["update","name","size"].indexOf(C)===-1){C="update"}this.order=C;this.trigger("order:change",C,this);this.$(".current-order").text(C);this.sortCollection();return this},create:function(C){return this.collection.create({current:true})},createColumns:function r(D){D=D||{};var C=this;this.columnMap={};C.collection.each(function(E,F){var G=C.createColumn(E,D);C.columnMap[E.id]=G})},createColumn:function t(E,C){C=_.extend({},C,{model:E});var D=new B(C);if(E.id===this.currentHistoryId){D.currentHistory=true}this.setUpColumnListeners(D);return D},sortedFilteredColumns:function(C){C=C||this.filters;if(!C||!C.length){return this.sortedColumns()}var D=this;return D.sortedColumns().filter(function(G,F){var E=G.currentHistory||_.every(C.map(function(H){return H.call(G)}));return E})},sortedColumns:function(){var D=this;var C=this.collection.map(function(F,E){return D.columnMap[F.id]});return C},addColumn:function o(E,C){C=C!==undefined?C:true;var D=this.createColumn(E);this.columnMap[E.id]=D;if(C){this.renderColumns()}return D},addAsCurrentColumn:function o(E){var D=this,C=this.addColumn(E,false);this.setCurrentHistory(E);C.once("rendered",function(){D.queueHdaFetch(C)});return C},removeColumn:function x(E,D){D=D!==undefined?D:true;this.log("removeColumn",E);if(!E){return}var F=this,C=this.options.columnWidth+this.options.columnGap;E.$el.fadeOut("fast",function(){if(D){$(this).remove();F.$(".middle").width(F.$(".middle").width()-C);F.checkColumnsInView();F._recalcFirstColumnHeight()}F.stopListening(E.panel);F.stopListening(E);delete F.columnMap[E.model.id];E.remove()})},setUpColumnListeners:function n(C){var D=this;D.listenTo(C,{"in-view":D.queueHdaFetch});D.listenTo(C.panel,{"view:draggable:dragstart":function(H,F,E,G){D._dropData=JSON.parse(H.dataTransfer.getData("text"));D.currentColumnDropTargetOn()},"view:draggable:dragend":function(H,F,E,G){D._dropData=null;D.currentColumnDropTargetOff()},"droptarget:drop":function(G,H,F){var I=D._dropData.filter(function(J){return(_.isObject(J)&&J.id&&J.model_class==="HistoryDatasetAssociation")});D._dropData=null;var E=new a.NamedAjaxQueue();I.forEach(function(J){E.add({name:"copy-"+J.id,fn:function(){return F.model.contents.copy(J.id)}})});E.start();E.done(function(J){F.model.fetch()})}})},columnMapLength:function(){return Object.keys(this.columnMap).length},render:function A(D){D=D!==undefined?D:this.fxSpeed;var C=this;C.log(C+".render");C.$el.html(C.mainTemplate(C));C.renderColumns(D);C.setUpBehaviors();C.trigger("rendered",C);return C},renderColumns:function j(F){F=F!==undefined?F:this.fxSpeed;var E=this,C=E.sortedFilteredColumns();E.$(".middle").width(C.length*(this.options.columnWidth+this.options.columnGap)+this.options.columnGap+16);var D=E.$(".middle");D.empty();C.forEach(function(H,G){H.$el.appendTo(D);H.delegateEvents();E.renderColumn(H,F)});if(this.searchFor&&C.length<=1){}else{E.checkColumnsInView();this._recalcFirstColumnHeight()}return C},renderColumn:function(C,D){D=D!==undefined?D:this.fxSpeed;return C.render(D)},queueHdaFetch:function i(E){if(E.model.contents.length===0&&!E.model.get("empty")){var C={},D=_.values(E.panel.storage.get("expandedIds")).join();if(D){C.dataset_details=D}this.hdaQueue.add({name:E.model.id,fn:function(){var F=E.model.contents.fetch({data:C,silent:true});return F.done(function(G){E.panel.renderItems()})}});if(!this.hdaQueue.running){this.hdaQueue.start()}}},queueHdaFetchDetails:function(C){if((C.model.contents.length===0&&!C.model.get("empty"))||(!C.model.contents.haveDetails())){this.hdaQueue.add({name:C.model.id,fn:function(){var D=C.model.contents.fetch({data:{details:"all"},silent:true});return D.done(function(E){C.panel.renderItems()})}});if(!this.hdaQueue.running){this.hdaQueue.start()}}},renderInfo:function(C){this.$(".header .header-info").text(C)},events:{"click .done.btn":"close","click .create-new.btn":"create","click #include-deleted":"_clickToggleDeletedHistories","click .order .order-update":function(C){this.setOrder("update")},"click .order .order-name":function(C){this.setOrder("name")},"click .order .order-size":function(C){this.setOrder("size")},"click #toggle-deleted":"_clickToggleDeletedDatasets","click #toggle-hidden":"_clickToggleHiddenDatasets"},close:function(D){var C="/";if(Galaxy&&Galaxy.options&&Galaxy.options.root){C=Galaxy.options.root}else{if(galaxy_config&&galaxy_config.root){C=galaxy_config.root}}window.location=C},_clickToggleDeletedHistories:function(C){return this.toggleDeletedHistories($(C.currentTarget).is(":checked"))},toggleDeletedHistories:function(C){if(C){window.location=Galaxy.options.root+"history/view_multiple?include_deleted_histories=True"}else{window.location=Galaxy.options.root+"history/view_multiple"}},_clickToggleDeletedDatasets:function(C){return this.toggleDeletedDatasets($(C.currentTarget).is(":checked"))},toggleDeletedDatasets:function(C){C=C!==undefined?C:false;var D=this;D.sortedFilteredColumns().forEach(function(F,E){_.delay(function(){F.panel.toggleShowDeleted(C,false)},E*200)})},_clickToggleHiddenDatasets:function(C){return this.toggleHiddenDatasets($(C.currentTarget).is(":checked"))},toggleHiddenDatasets:function(C){C=C!==undefined?C:false;var D=this;D.sortedFilteredColumns().forEach(function(F,E){_.delay(function(){F.panel.toggleShowHidden(C,false)},E*200)})},setUpBehaviors:function(){var D=this;D._moreOptionsPopover();D.$("#search-histories").searchInput({name:"search-histories",placeholder:_l("search histories"),onsearch:function(E){D.searchFor=E;D.filters=[function(){return this.model.matchesAll(D.searchFor)}];D.renderColumns(0)},onclear:function(E){D.searchFor=null;D.filters=[];D.renderColumns(0)}});D.$("#search-datasets").searchInput({name:"search-datasets",placeholder:_l("search all datasets"),onfirstsearch:function(E){D.hdaQueue.clear();D.$("#search-datasets").searchInput("toggle-loading");D.searchFor=E;D.sortedFilteredColumns().forEach(function(F){F.panel.searchItems(E);D.queueHdaFetchDetails(F)});D.hdaQueue.progress(function(F){D.renderInfo([_l("searching"),(F.curr+1),_l("of"),F.total].join(" "))});D.hdaQueue.deferred.done(function(){D.renderInfo("");D.$("#search-datasets").searchInput("toggle-loading")})},onsearch:function(E){D.searchFor=E;D.sortedFilteredColumns().forEach(function(F){F.panel.searchItems(E)})},onclear:function(E){D.searchFor=null;D.sortedFilteredColumns().forEach(function(F){F.panel.clearSearch()})}});$(window).resize(function(){D._recalcFirstColumnHeight()});var C=_.debounce(_.bind(this.checkColumnsInView,this),100);this.$(".middle").parent().scroll(C)},_moreOptionsPopover:function(){return this.$(".open-more-options.btn").popover({container:".header",placement:"bottom",html:true,content:$(this.optionsPopoverTemplate(this))})},_recalcFirstColumnHeight:function(){var C=this.$(".history-column").first(),E=this.$(".middle").height(),D=C.find(".panel-controls").height();C.height(E).find(".inner").height(E-D)},_viewport:function(){var C=this.$(".middle").parent().offset().left;return{left:C,right:C+this.$(".middle").parent().width()}},columnsInView:function(){var C=this._viewport();return this.sortedFilteredColumns().filter(function(D){return D.currentHistory||D.inView(C.left,C.right)})},checkColumnsInView:function(){this.columnsInView().forEach(function(C){C.trigger("in-view",C)})},currentColumnDropTargetOn:function(){var C=this.columnMap[this.currentHistoryId];if(!C){return}C.panel.dataDropped=function(D){};C.panel.dropTargetOn()},currentColumnDropTargetOff:function(){var C=this.columnMap[this.currentHistoryId];if(!C){return}C.panel.dataDropped=l.HistoryPanelEdit.prototype.dataDrop;C.panel.dropTarget=false;C.panel.$(".history-drop-target").remove()},toString:function(){return"MultiPanelColumns("+(this.columns?this.columns.length:0)+")"},mainTemplate:_.template(['<div class="header flex-column-container">','<div class="control-column control-column-left flex-column">','<button class="create-new btn btn-default">',_l("Create new"),"</button> ",'<div id="search-histories" class="search-control"></div>','<div id="search-datasets" class="search-control"></div>','<button class="open-more-options btn btn-default">','<span class="fa fa-ellipsis-h" title="More options"></span>',"</button>","</div>",'<div class="control-column control-column-center flex-column">','<div class="header-info">',"</div>","</div>",'<div class="control-column control-column-right flex-column">','<button class="done btn btn-default">',_l("Done"),"</button>","</div>","</div>",'<div class="outer-middle flex-row flex-row-container">','<div class="middle flex-column-container flex-row"></div>',"</div>",'<div class="footer flex-column-container">',"</div>"].join(""),{variable:"view"}),optionsPopoverTemplate:_.template(['<div class="more-options">','<div class="checkbox"><label><input id="include-deleted" type="checkbox"','<%= view.collection.includeDeleted? " checked" : "" %>>',_l("Include deleted histories"),"</label></div>",'<div class="order btn-group">','<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">',_l("Order histories by")+" ",'<span class="current-order"><%= view.order %></span> ','<span class="caret"></span>',"</button>",'<ul class="dropdown-menu" role="menu">','<li><a href="javascript:void(0);" class="order-update">',_l("Time of last update"),"</a></li>",'<li><a href="javascript:void(0);" class="order-name">',_l("Name"),"</a></li>",'<li><a href="javascript:void(0);" class="order-size">',_l("Size"),"</a></li>","</ul>","</div>",'<div class="checkbox"><label><input id="toggle-deleted" type="checkbox">',_l("Include deleted datasets"),"</label></div>",'<div class="checkbox"><label><input id="toggle-hidden" type="checkbox">',_l("Include hidden datasets"),"</label></div>","</div>"].join(""),{variable:"view"}),});return{MultiPanelColumns:m}});
\ No newline at end of file
+define(["mvc/history/history-model","mvc/history/history-panel-edit","mvc/base-mvc","utils/ajax-queue","ui/mode-button","ui/search-input"],function(d,l,z,a){function g(I,E){E=E||{};if(!(Galaxy&&Galaxy.modal)){return I.copy()}var F=I.get("name"),C="Copy of '"+F+"'";function D(K){if(!K){if(!Galaxy.modal.$("#invalid-title").size()){var J=$("<p/>").attr("id","invalid-title").css({color:"red","margin-top":"8px"}).addClass("bg-danger").text(_l("Please enter a valid history title"));Galaxy.modal.$(".modal-body").append(J)}return false}return K}function G(J){var K=$('<p><span class="fa fa-spinner fa-spin"></span> Copying history...</p>').css("margin-top","8px");Galaxy.modal.$(".modal-body").append(K);I.copy(true,J).fail(function(){alert(_l("History could not be copied. Please contact a Galaxy administrator"))}).always(function(){Galaxy.modal.hide()})}function H(){var J=Galaxy.modal.$("#copy-modal-title").val();if(!D(J)){return}G(J)}Galaxy.modal.show(_.extend({title:_l("Copying history")+' "'+F+'"',body:$(['<label for="copy-modal-title">',_l("Enter a title for the copied history"),":","</label><br />",'<input id="copy-modal-title" class="form-control" style="width: 100%" value="',C,'" />'].join("")),buttons:{Cancel:function(){Galaxy.modal.hide()},Copy:H}},E));$("#copy-modal-title").focus().select();$("#copy-modal-title").on("keydown",function(J){if(J.keyCode===13){H()}})}var B=Backbone.View.extend(z.LoggableMixin).extend({tagName:"div",className:"history-column flex-column flex-row-container",id:function q(){if(!this.model){return""}return"history-column-"+this.model.get("id")},initialize:function c(C){C=C||{};this.panel=C.panel||this.createPanel(C);this.setUpListeners()},createPanel:function u(D){D=_.extend({model:this.model,dragItems:true},D);var C=new l.HistoryPanelEdit(D);C._renderEmptyMessage=this.__patch_renderEmptyMessage;return C},__patch_renderEmptyMessage:function(E){var D=this,F=_.chain(this.model.get("state_ids")).values().flatten().value().length,C=D.$emptyMessage(E);if(!_.isEmpty(D.hdaViews)){C.hide()}else{if(F&&!this.model.contents.length){C.empty().append($('<span class="fa fa-spinner fa-spin"></span><i>loading datasets...</i>')).show()}else{if(D.searchFor){C.text(D.noneFoundMsg).show()}else{C.text(D.emptyMsg).show()}}}return C},setUpListeners:function f(){var C=this;this.once("rendered",function(){C.trigger("rendered:initial",C)});this.setUpPanelListeners()},setUpPanelListeners:function k(){var C=this;this.listenTo(this.panel,{rendered:function(){C.trigger("rendered",C)}},this)},inView:function(C,D){var F=this.$el.offset().left,E=F+this.$el.width();if(E<C){return false}if(F>D){return false}return true},$panel:function e(){return this.$(".history-panel")},render:function A(D){D=(D!==undefined)?(D):("fast");var C=this.model?this.model.toJSON():{};this.$el.html(this.template(C));this.renderPanel(D);this.setUpBehaviors();return this},setUpBehaviors:function v(){},template:function w(D){D=D||{};var C=['<div class="panel-controls clear flex-row">',this.controlsLeftTemplate(D),this.controlsRightTemplate(D),"</div>",'<div class="inner flex-row flex-column-container">','<div id="history-',D.id,'" class="history-column history-panel flex-column"></div>',"</div>"].join("");return $(C)},controlsLeftTemplate:function(C){return(this.currentHistory)?['<div class="pull-left">','<strong class="current-label">',_l("Current History"),"</strong>","</div>"].join(""):['<div class="pull-left">','<button class="switch-to btn btn-default">',_l("Switch to"),"</button>","</div>"].join("")},controlsRightTemplate:_.template(['<div class="pull-right">',"<% if( !history.purged ){ %>",'<div class="panel-menu order btn-group">','<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">','<span class="caret"></span>',"</button>",'<ul class="dropdown-menu pull-right" role="menu">',"<% if( !history.deleted ){ %>",'<li><a href="javascript:void(0);" class="copy-history">',_l("Copy"),"</a></li>",'<li><a href="javascript:void(0);" class="delete-history">',_l("Delete"),"</a></li>","<% } else /* if is deleted */ { %>",'<li><a href="javascript:void(0);" class="undelete-history">',_l("Undelete"),"</a></li>","<% } %>","</ul>","<% } %>","</div>","</div>"].join(""),{variable:"history"}),renderPanel:function h(C){C=(C!==undefined)?(C):("fast");this.panel.setElement(this.$panel()).render(C);if(this.currentHistory){this.panel.$list().before(this.panel._renderDropTargetHelp())}return this},events:{"click .switch-to.btn":function(){this.model.setAsCurrent()},"click .delete-history":function(){var C=this;this.model._delete().fail(function(F,D,E){alert(_l("Could not delete the history")+":\n"+E)}).done(function(D){C.render()})},"click .undelete-history":function(){var C=this;this.model.undelete().fail(function(F,D,E){alert(_l("Could not undelete the history")+":\n"+E)}).done(function(D){C.render()})},"click .purge-history":function(){if(confirm(_l("This will permanently remove the data. Are you sure?"))){var C=this;this.model.purge().fail(function(F,D,E){alert(_l("Could not purge the history")+":\n"+E)}).done(function(D){C.render()})}},"click .copy-history":"copy"},copy:function s(){g(this.model)},toString:function(){return"HistoryPanelColumn("+(this.panel?this.panel:"")+")"}});var m=Backbone.View.extend(z.LoggableMixin).extend({className:"multi-history-columns",initialize:function c(C){C=C||{};this.log(this+".init",C);if(!C.currentHistoryId){throw new Error(this+" requires a currentHistoryId in the options")}this.currentHistoryId=C.currentHistoryId;this.options={columnWidth:312,borderWidth:1,columnGap:8,headerHeight:29,footerHeight:0,controlsHeight:20};this.order=C.order||"update";this.hdaQueue=new a.NamedAjaxQueue([],false);this.collection=null;this.setCollection(C.histories||[]);this.columnMap={};this.createColumns(C.columnOptions);this.setUpListeners()},setUpListeners:function f(){},setCollection:function y(D){var C=this;C.stopListening(C.collection);C.collection=D;C.sortCollection(C.order,{silent:true});C.setUpCollectionListeners();C.trigger("new-collection",C);return C},setUpCollectionListeners:function(){var C=this,D=C.collection;C.listenTo(D,{add:C.addAsCurrentColumn,"set-as-current":C.setCurrentHistory,"change:deleted":C.handleDeletedHistory,sort:function(){C.renderColumns(0)}})},setCurrentHistory:function p(D){var C=this.columnMap[this.currentHistoryId];if(C){C.currentHistory=false;C.$el.height("")}this.currentHistoryId=D.id;var E=this.columnMap[this.currentHistoryId];E.currentHistory=true;this.sortCollection();multipanel._recalcFirstColumnHeight();return E},handleDeletedHistory:function b(D){if(D.get("deleted")){this.log("handleDeletedHistory",this.collection.includeDeleted,D);var C=this;column=C.columnMap[D.id];if(!column){return}if(column.model.id===this.currentHistoryId){}else{if(!C.collection.includeDeleted){C.removeColumn(column)}}}},sortCollection:function(C,D){C=C||this.order;var E=this.currentHistoryId;switch(C){case"name":this.collection.comparator=function(F){return[F.id!==E,F.get("name").toLowerCase()]};break;case"size":this.collection.comparator=function(F){return[F.id!==E,F.get("size")]};break;default:this.collection.comparator=function(F){return[F.id!==E,Date(F.get("update_time"))]}}this.collection.sort(D);return this.collection},setOrder:function(C){if(["update","name","size"].indexOf(C)===-1){C="update"}this.order=C;this.trigger("order:change",C,this);this.$(".current-order").text(C);this.sortCollection();return this},create:function(C){return this.collection.create({current:true})},createColumns:function r(D){D=D||{};var C=this;this.columnMap={};C.collection.each(function(E,F){var G=C.createColumn(E,D);C.columnMap[E.id]=G})},createColumn:function t(E,C){C=_.extend({},C,{model:E});var D=new B(C);if(E.id===this.currentHistoryId){D.currentHistory=true}this.setUpColumnListeners(D);return D},sortedFilteredColumns:function(C){C=C||this.filters;if(!C||!C.length){return this.sortedColumns()}var D=this;return D.sortedColumns().filter(function(G,F){var E=G.currentHistory||_.every(C.map(function(H){return H.call(G)}));return E})},sortedColumns:function(){var D=this;var C=this.collection.map(function(F,E){return D.columnMap[F.id]});return C},addColumn:function o(E,C){C=C!==undefined?C:true;var D=this.createColumn(E);this.columnMap[E.id]=D;if(C){this.renderColumns()}return D},addAsCurrentColumn:function o(E){var D=this,C=this.addColumn(E,false);this.setCurrentHistory(E);C.once("rendered",function(){D.queueHdaFetch(C)});return C},removeColumn:function x(E,D){D=D!==undefined?D:true;this.log("removeColumn",E);if(!E){return}var F=this,C=this.options.columnWidth+this.options.columnGap;E.$el.fadeOut("fast",function(){if(D){$(this).remove();F.$(".middle").width(F.$(".middle").width()-C);F.checkColumnsInView();F._recalcFirstColumnHeight()}F.stopListening(E.panel);F.stopListening(E);delete F.columnMap[E.model.id];E.remove()})},setUpColumnListeners:function n(C){var D=this;D.listenTo(C,{"in-view":D.queueHdaFetch});D.listenTo(C.panel,{"view:draggable:dragstart":function(H,F,E,G){D._dropData=JSON.parse(H.dataTransfer.getData("text"));D.currentColumnDropTargetOn()},"view:draggable:dragend":function(H,F,E,G){D._dropData=null;D.currentColumnDropTargetOff()},"droptarget:drop":function(G,H,F){var I=D._dropData.filter(function(J){return(_.isObject(J)&&J.id&&J.model_class==="HistoryDatasetAssociation")});D._dropData=null;var E=new a.NamedAjaxQueue();I.forEach(function(J){E.add({name:"copy-"+J.id,fn:function(){return F.model.contents.copy(J.id)}})});E.start();E.done(function(J){F.model.fetch()})}})},columnMapLength:function(){return Object.keys(this.columnMap).length},render:function A(D){D=D!==undefined?D:this.fxSpeed;var C=this;C.log(C+".render");C.$el.html(C.mainTemplate(C));C.renderColumns(D);C.setUpBehaviors();C.trigger("rendered",C);return C},renderColumns:function j(F){F=F!==undefined?F:this.fxSpeed;var E=this,C=E.sortedFilteredColumns();E.$(".middle").width(C.length*(this.options.columnWidth+this.options.columnGap)+this.options.columnGap+16);var D=E.$(".middle");D.empty();C.forEach(function(H,G){H.$el.appendTo(D);H.delegateEvents();E.renderColumn(H,F)});if(this.searchFor&&C.length<=1){}else{E.checkColumnsInView();this._recalcFirstColumnHeight()}return C},renderColumn:function(C,D){D=D!==undefined?D:this.fxSpeed;return C.render(D)},queueHdaFetch:function i(E){if(E.model.contents.length===0&&!E.model.get("empty")){var C={},D=_.values(E.panel.storage.get("expandedIds")).join();if(D){C.dataset_details=D}this.hdaQueue.add({name:E.model.id,fn:function(){var F=E.model.contents.fetch({data:C,silent:true});return F.done(function(G){E.panel.renderItems()})}});if(!this.hdaQueue.running){this.hdaQueue.start()}}},queueHdaFetchDetails:function(C){if((C.model.contents.length===0&&!C.model.get("empty"))||(!C.model.contents.haveDetails())){this.hdaQueue.add({name:C.model.id,fn:function(){var D=C.model.contents.fetch({data:{details:"all"},silent:true});return D.done(function(E){C.panel.renderItems()})}});if(!this.hdaQueue.running){this.hdaQueue.start()}}},renderInfo:function(C){this.$(".header .header-info").text(C)},events:{"click .done.btn":"close","click .create-new.btn":"create","click #include-deleted":"_clickToggleDeletedHistories","click .order .order-update":function(C){this.setOrder("update")},"click .order .order-name":function(C){this.setOrder("name")},"click .order .order-size":function(C){this.setOrder("size")},"click #toggle-deleted":"_clickToggleDeletedDatasets","click #toggle-hidden":"_clickToggleHiddenDatasets"},close:function(D){var C="/";if(Galaxy&&Galaxy.options&&Galaxy.options.root){C=Galaxy.options.root}else{if(galaxy_config&&galaxy_config.root){C=galaxy_config.root}}window.location=C},_clickToggleDeletedHistories:function(C){return this.toggleDeletedHistories($(C.currentTarget).is(":checked"))},toggleDeletedHistories:function(C){if(C){window.location=Galaxy.options.root+"history/view_multiple?include_deleted_histories=True"}else{window.location=Galaxy.options.root+"history/view_multiple"}},_clickToggleDeletedDatasets:function(C){return this.toggleDeletedDatasets($(C.currentTarget).is(":checked"))},toggleDeletedDatasets:function(C){C=C!==undefined?C:false;var D=this;D.sortedFilteredColumns().forEach(function(F,E){_.delay(function(){F.panel.toggleShowDeleted(C,false)},E*200)})},_clickToggleHiddenDatasets:function(C){return this.toggleHiddenDatasets($(C.currentTarget).is(":checked"))},toggleHiddenDatasets:function(C){C=C!==undefined?C:false;var D=this;D.sortedFilteredColumns().forEach(function(F,E){_.delay(function(){F.panel.toggleShowHidden(C,false)},E*200)})},setUpBehaviors:function(){var D=this;D._moreOptionsPopover();D.$("#search-histories").searchInput({name:"search-histories",placeholder:_l("search histories"),onsearch:function(E){D.searchFor=E;D.filters=[function(){return this.model.matchesAll(D.searchFor)}];D.renderColumns(0)},onclear:function(E){D.searchFor=null;D.filters=[];D.renderColumns(0)}});D.$("#search-datasets").searchInput({name:"search-datasets",placeholder:_l("search all datasets"),onfirstsearch:function(E){D.hdaQueue.clear();D.$("#search-datasets").searchInput("toggle-loading");D.searchFor=E;D.sortedFilteredColumns().forEach(function(F){F.panel.searchItems(E);D.queueHdaFetchDetails(F)});D.hdaQueue.progress(function(F){D.renderInfo([_l("searching"),(F.curr+1),_l("of"),F.total].join(" "))});D.hdaQueue.deferred.done(function(){D.renderInfo("");D.$("#search-datasets").searchInput("toggle-loading")})},onsearch:function(E){D.searchFor=E;D.sortedFilteredColumns().forEach(function(F){F.panel.searchItems(E)})},onclear:function(E){D.searchFor=null;D.sortedFilteredColumns().forEach(function(F){F.panel.clearSearch()})}});$(window).resize(function(){D._recalcFirstColumnHeight()});var C=_.debounce(_.bind(this.checkColumnsInView,this),100);this.$(".middle").parent().scroll(C)},_moreOptionsPopover:function(){return this.$(".open-more-options.btn").popover({container:".header",placement:"bottom",html:true,content:$(this.optionsPopoverTemplate(this))})},_recalcFirstColumnHeight:function(){var C=this.$(".history-column").first(),E=this.$(".middle").height(),D=C.find(".panel-controls").height();C.height(E).find(".inner").height(E-D)},_viewport:function(){var C=this.$(".middle").parent().offset().left;return{left:C,right:C+this.$(".middle").parent().width()}},columnsInView:function(){var C=this._viewport();return this.sortedFilteredColumns().filter(function(D){return D.currentHistory||D.inView(C.left,C.right)})},checkColumnsInView:function(){this.columnsInView().forEach(function(C){C.trigger("in-view",C)})},currentColumnDropTargetOn:function(){var C=this.columnMap[this.currentHistoryId];if(!C){return}C.panel.dataDropped=function(D){};C.panel.dropTargetOn()},currentColumnDropTargetOff:function(){var C=this.columnMap[this.currentHistoryId];if(!C){return}C.panel.dataDropped=l.HistoryPanelEdit.prototype.dataDrop;C.panel.dropTarget=false;C.panel.$(".history-drop-target").remove()},toString:function(){return"MultiPanelColumns("+(this.columns?this.columns.length:0)+")"},mainTemplate:_.template(['<div class="header flex-column-container">','<div class="control-column control-column-left flex-column">','<button class="create-new btn btn-default">',_l("Create new"),"</button> ",'<div id="search-histories" class="search-control"></div>','<div id="search-datasets" class="search-control"></div>','<button class="open-more-options btn btn-default">','<span class="fa fa-ellipsis-h" title="More options"></span>',"</button>","</div>",'<div class="control-column control-column-center flex-column">','<div class="header-info">',"</div>","</div>",'<div class="control-column control-column-right flex-column">','<button class="done btn btn-default">',_l("Done"),"</button>","</div>","</div>",'<div class="outer-middle flex-row flex-row-container">','<div class="middle flex-column-container flex-row"></div>',"</div>",'<div class="footer flex-column-container">',"</div>"].join(""),{variable:"view"}),optionsPopoverTemplate:_.template(['<div class="more-options">','<div class="checkbox"><label><input id="include-deleted" type="checkbox"','<%= view.collection.includeDeleted? " checked" : "" %>>',_l("Include deleted histories"),"</label></div>",'<div class="order btn-group">','<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">',_l("Order histories by")+" ",'<span class="current-order"><%= view.order %></span> ','<span class="caret"></span>',"</button>",'<ul class="dropdown-menu" role="menu">','<li><a href="javascript:void(0);" class="order-update">',_l("Time of last update"),"</a></li>",'<li><a href="javascript:void(0);" class="order-name">',_l("Name"),"</a></li>",'<li><a href="javascript:void(0);" class="order-size">',_l("Size"),"</a></li>","</ul>","</div>",'<div class="checkbox"><label><input id="toggle-deleted" type="checkbox">',_l("Include deleted datasets"),"</label></div>",'<div class="checkbox"><label><input id="toggle-hidden" type="checkbox">',_l("Include hidden datasets"),"</label></div>","</div>"].join(""),{variable:"view"})});return{MultiPanelColumns:m}});
\ No newline at end of file
diff -r b0452677a40f85d4b92cbcb1ebe4e137dbbfbec1 -r d86c3cbc6d9016e8511f36a2a1dd48efe4e0fe2c templates/webapps/galaxy/history/view_multiple.mako
--- a/templates/webapps/galaxy/history/view_multiple.mako
+++ b/templates/webapps/galaxy/history/view_multiple.mako
@@ -148,7 +148,7 @@
}
.open-more-options {
- padding: 0 4px 0 4px;
+ padding: 2px 6px 2px 6px;
font-size: 150%;
}
@@ -173,7 +173,7 @@
.panel-controls {
width: 100%;
- height: ${controls_height}px;
+ height: ${controls_height + 4}px;
border-radius: 3px;
background-color: white;
text-align: center;
@@ -203,6 +203,13 @@
.panel-controls .pull-right .btn {
margin-left: 4px;
}
+ .panel-controls .panel-menu {
+ z-index: 1;
+ }
+ .panel-controls .panel-menu .dropdown-menu a {
+ text-align: left;
+ }
+
/* ---------------------- footer */
.footer {
@@ -214,7 +221,6 @@
/* ---------------------- columns */
.history-panel {
width: 100%;
- margin-top: 4px;
border: ${border_width}px solid grey;
border-radius: 3px;
@@ -225,7 +231,7 @@
.history-column:first-child {
position: fixed;
- z-index : 1;
+ z-index : 2;
}
.history-column:first-child .history-panel {
border: 1px solid black;
@@ -236,22 +242,6 @@
margin-left: ${( column_width + column_gap )}px;
}
- .loading-overlay {
- display: none;
- position: absolute;
- height: 100%;
- width: 100%;
- background-color: red;
- opacity: 0.75;
- z-index: 2;
- text-align: center;
- }
- .loading-overlay-message {
- margin-top: 6px;
- font-style: italic;
- vertical-align: middle;
- }
-
.current-label {
display: inline-block;
color: grey;
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
3 new commits in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/e89af5d76371/
Changeset: e89af5d76371
User: natefoo
Date: 2015-02-12 17:13:24+00:00
Summary: Make it possible to disable egg fetching or the use of eggs entirely and provide a requirements.txt.
Affected #: 3 files
diff -r 93d2916499f4ddc3093adc65cb5718a25841aa15 -r e89af5d7637192c58d4ebde8986e627a9e07fb24 config/galaxy.ini.sample
--- a/config/galaxy.ini.sample
+++ b/config/galaxy.ini.sample
@@ -125,6 +125,34 @@
# but prefixed with install_ are also available).
#install_database_connection = sqlite:///./database/universe.sqlite?isolation_level=IMMEDIATE
+# -- Galaxy framework dependencies (eggs)
+
+# Options in this section can also be provided as environment variables in the
+# form `GALAXY_<OPTION_NAME>`, e.g. `GALAXY_ENABLE_EGGS=False`, etc.
+# Environment variables override the settings in this config.
+
+# For more details, see the `requirements.txt` file at the root of the Galaxy
+# source distribution.
+
+# Galaxy manages all of its dependent Python modules by downloading Python eggs
+# from the Galaxy eggs distribution server at https://eggs.galaxyproject.org.
+# You may choose to disable this and attempt to install dependencies by hand
+# (e.g. with pip), but beware that this may cause problems due to version
+# incompatibilities between Galaxy and its dependencies. Do not do this unless
+# you know what you're doing.
+#enable_eggs = True
+
+# You may choose to keep eggs enabled but disable fetching them automatically.
+# (hint: To do a one-time fetch, you can disable here and then use
+# `GALAXY_ENABLE_EGG_FETCH=True python ./scripts/fetch_eggs.py` from the root
+# of the Galaxy source.
+#enable_egg_fetch = True
+
+# If you'd like to prefer any dependencies found in your local environment
+# before (fetching and) using Galaxy's egg of that dependency, you can enable
+# the following option:
+#try_dependencies_from_env = False
+
# -- Files and directories
# Dataset files are stored in this directory.
diff -r 93d2916499f4ddc3093adc65cb5718a25841aa15 -r e89af5d7637192c58d4ebde8986e627a9e07fb24 lib/galaxy/eggs/__init__.py
--- a/lib/galaxy/eggs/__init__.py
+++ b/lib/galaxy/eggs/__init__.py
@@ -61,6 +61,7 @@
self.distribution = None
self.dir = None
self.removed_location = None
+ self.enable_fetch = crate.galaxy_config.enable_egg_fetch
if self.name is not None and self.version is not None:
self.set_distribution()
@@ -191,7 +192,10 @@
try:
rval = []
# resolve this egg and its dependencies
- dists = pkg_resources.working_set.resolve( ( self.distribution.as_requirement(), ), env, self.fetch )
+ if self.enable_fetch:
+ dists = pkg_resources.working_set.resolve( ( self.distribution.as_requirement(), ), env, self.fetch )
+ else:
+ dists = pkg_resources.working_set.resolve( ( self.distribution.as_requirement(), ), env, lambda x: None )
for dist in dists:
# if any of the resolved dependencies should be managed eggs but are being pulled from the wrong path, fix them
if dist.project_name in self.crate.all_names and not os.path.realpath( dist.location ).startswith( os.path.realpath( self.dir ) ):
@@ -250,7 +254,10 @@
if egg:
# Store the removed path so the fetch method can use it
egg.removed_location = location
- r = pkg_resources.working_set.resolve( ( dist.as_requirement(), ), env, egg.fetch )
+ if self.enable_fetch:
+ r = pkg_resources.working_set.resolve( ( dist.as_requirement(), ), env, egg.fetch )
+ else:
+ r = pkg_resources.working_set.resolve( ( dist.as_requirement(), ), env, lambda x: None )
egg.removed_location = None
else:
r = pkg_resources.working_set.resolve( ( dist.as_requirement(), ), env )
@@ -374,31 +381,48 @@
"""
Try to resolve (e.g. fetch) all eggs in the crate.
"""
- if all:
- eggs = self.all_eggs
+ if self.galaxy_config.enable_eggs and not self.galaxy_config.try_dependencies_from_env:
+ if all:
+ eggs = self.all_eggs
+ else:
+ eggs = self.config_eggs
+ eggs = filter( lambda x: x.name not in self.no_auto, eggs )
+ missing = []
+ for egg in eggs:
+ try:
+ egg.resolve()
+ except EggNotFetchable:
+ missing.append( egg )
+ if missing:
+ raise EggNotFetchable( missing )
else:
- eggs = self.config_eggs
- eggs = filter( lambda x: x.name not in self.no_auto, eggs )
- missing = []
- for egg in eggs:
- try:
- egg.resolve()
- except EggNotFetchable:
- missing.append( egg )
- if missing:
- raise EggNotFetchable( missing )
+ log.info('Dependencies will attempt to be loaded from the environment')
class GalaxyConfig( object ):
always_conditional = ( 'pysam', 'ctypes', 'python_daemon' )
def __init__( self, config_file ):
+ self.enable_egg_fetch = False
+ self.enable_eggs = False
+ self.try_dependencies_from_env = False
if config_file is None:
self.config = None
else:
self.config = ConfigParser.ConfigParser()
if self.config.read( config_file ) == []:
raise Exception( "error: unable to read Galaxy config from %s" % config_file )
+ self.enable_egg_fetch = True
+ self.enable_eggs = True
+ for opt in ('enable_egg_fetch', 'enable_eggs', 'try_dependencies_from_env'):
+ try:
+ setattr(self, opt, string_as_bool(self.config.get('app:main', opt)))
+ except:
+ pass # use default
+ for opt in ('enable_egg_fetch', 'enable_eggs', 'try_dependencies_from_env'):
+ var = 'GALAXY_' + opt.upper()
+ if var in os.environ:
+ setattr(self, opt, string_as_bool(os.environ[var]))
def check_conditional( self, egg_name ):
def check_pysam():
@@ -435,6 +459,13 @@
return False
+
+def string_as_bool( string ):
+ if str( string ).lower() in ( 'true', 'yes', 'on' ):
+ return True
+ else:
+ return False
+
def get_env():
env = pkg_resources.Environment( search_path='', platform=pkg_resources.get_platform() )
for dist in pkg_resources.find_distributions( eggs_dir, False ):
@@ -446,6 +477,13 @@
def require( req_str ):
c = Crate( None )
req = pkg_resources.Requirement.parse( req_str )
+ if c.galaxy_config.try_dependencies_from_env or not c.galaxy_config.enable_eggs:
+ try:
+ return pkg_resources.working_set.require( req_str )
+ except Exception as exc:
+ if not c.galaxy_config.enable_eggs:
+ raise
+ log.info("%s not found in local environment, will try Galaxy egg: %s", (req_str, exc))
# TODO: This breaks egg version requirements. Not currently a problem, but
# it could become one.
try:
diff -r 93d2916499f4ddc3093adc65cb5718a25841aa15 -r e89af5d7637192c58d4ebde8986e627a9e07fb24 requirements.txt
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,66 @@
+#
+# Galaxy has traditionally managed all of its own dependencies (in the form of
+# precompiled Python eggs) for a few reasons:
+#
+# 1. We can ensure that Galaxy works with the versions of the dependencies that
+# we require.
+# 2. We can precompile them for numerous platforms, meaning that developers or
+# system administrators attempting to use Galaxy do not need to wait while
+# dependencies compile/install, nor do they need to have compilers or
+# various development libraries installed on their system.
+#
+# However, you may want to manage these dependencies on your own. If so, this
+# file can be used with pip to install all of the bare minimum dependencies for
+# starting a Galaxy server. Use this in conjunction with the
+# `enable_eggs = False` galaxy.ini option or `GALAXY_ENABLE_EGGS=False`
+# environment variable
+#
+# Note that except in the case of SQLAlchemy, all dependencies will be
+# installed at their newest versions. Galaxy has not been tested with these and
+# you may (likely?) run into problems! The Galaxy Team does not support using
+# Galaxy with dependency versions other than those in eggs.ini, however, if you
+# do find an incompatibility between Galaxy and the latest version, we would
+# appreciate if you would investigate and provide a code fix for the issue. We
+# are trying to move away from our strict version dependency policy and this
+# would greatly help in our efforts.
+
+# not available in PyPI, must be installed by hand:
+#SVGFig
+
+Paste
+PasteDeploy
+docutils
+wchartype
+pexpect
+amqp
+repoze.lru
+Routes
+WebOb
+SQLAlchemy<0.8
+Cheetah
+pycrypto
+MarkupSafe
+WebHelpers
+anyjson
+kombu
+numpy
+bx-python # bx must be installed after numpy!
+pysam
+Mako
+PyYAML
+mercurial
+pytz
+Babel
+decorator
+Tempita
+sqlalchemy-migrate
+Beaker
+Whoosh
+paramiko
+ssh
+Fabric
+boto
+simplejson
+bioblend
+Parsley
+WebError
https://bitbucket.org/galaxy/galaxy-central/commits/6b03101f9eb4/
Changeset: 6b03101f9eb4
User: natefoo
Date: 2015-02-12 17:31:58+00:00
Summary: Use GALAXY_CONFIG_ environment variables instead of GALAXY_ to fall in line with convention.
Affected #: 3 files
diff -r e89af5d7637192c58d4ebde8986e627a9e07fb24 -r 6b03101f9eb482477276e0c1b719964f02f51469 config/galaxy.ini.sample
--- a/config/galaxy.ini.sample
+++ b/config/galaxy.ini.sample
@@ -128,8 +128,8 @@
# -- Galaxy framework dependencies (eggs)
# Options in this section can also be provided as environment variables in the
-# form `GALAXY_<OPTION_NAME>`, e.g. `GALAXY_ENABLE_EGGS=False`, etc.
-# Environment variables override the settings in this config.
+# form `GALAXY_CONFIG_<OPTION_NAME>`, e.g. `GALAXY_CONFIG_ENABLE_EGGS=False`,
+# etc. Environment variables override the settings in this config.
# For more details, see the `requirements.txt` file at the root of the Galaxy
# source distribution.
@@ -144,8 +144,8 @@
# You may choose to keep eggs enabled but disable fetching them automatically.
# (hint: To do a one-time fetch, you can disable here and then use
-# `GALAXY_ENABLE_EGG_FETCH=True python ./scripts/fetch_eggs.py` from the root
-# of the Galaxy source.
+# `GALAXY_CONFIG_ENABLE_EGG_FETCH=True python ./scripts/fetch_eggs.py` from the
+# root of the Galaxy source.
#enable_egg_fetch = True
# If you'd like to prefer any dependencies found in your local environment
diff -r e89af5d7637192c58d4ebde8986e627a9e07fb24 -r 6b03101f9eb482477276e0c1b719964f02f51469 lib/galaxy/eggs/__init__.py
--- a/lib/galaxy/eggs/__init__.py
+++ b/lib/galaxy/eggs/__init__.py
@@ -420,7 +420,7 @@
except:
pass # use default
for opt in ('enable_egg_fetch', 'enable_eggs', 'try_dependencies_from_env'):
- var = 'GALAXY_' + opt.upper()
+ var = 'GALAXY_CONFIG_' + opt.upper()
if var in os.environ:
setattr(self, opt, string_as_bool(os.environ[var]))
diff -r e89af5d7637192c58d4ebde8986e627a9e07fb24 -r 6b03101f9eb482477276e0c1b719964f02f51469 requirements.txt
--- a/requirements.txt
+++ b/requirements.txt
@@ -12,7 +12,7 @@
# However, you may want to manage these dependencies on your own. If so, this
# file can be used with pip to install all of the bare minimum dependencies for
# starting a Galaxy server. Use this in conjunction with the
-# `enable_eggs = False` galaxy.ini option or `GALAXY_ENABLE_EGGS=False`
+# `enable_eggs = False` galaxy.ini option or `GALAXY_CONFIG_ENABLE_EGGS=False`
# environment variable
#
# Note that except in the case of SQLAlchemy, all dependencies will be
https://bitbucket.org/galaxy/galaxy-central/commits/b0452677a40f/
Changeset: b0452677a40f
User: natefoo
Date: 2015-02-12 17:39:27+00:00
Summary: Require Whoosh<2.5 as per Martin.
Affected #: 1 file
diff -r 6b03101f9eb482477276e0c1b719964f02f51469 -r b0452677a40f85d4b92cbcb1ebe4e137dbbfbec1 requirements.txt
--- a/requirements.txt
+++ b/requirements.txt
@@ -55,7 +55,7 @@
Tempita
sqlalchemy-migrate
Beaker
-Whoosh
+Whoosh<2.5
paramiko
ssh
Fabric
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