Skip to content

Commit

Permalink
Merge branch 'dev' into remove_samples_000
Browse files Browse the repository at this point in the history
  • Loading branch information
guerler committed Sep 14, 2017
2 parents ce3e2eb + cdb95d6 commit 9045e3f
Show file tree
Hide file tree
Showing 24 changed files with 85 additions and 141 deletions.
16 changes: 7 additions & 9 deletions client/galaxy/scripts/mvc/library/library-dataset-view.js
Original file line number Diff line number Diff line change
Expand Up @@ -248,10 +248,6 @@ var LibraryDatasetView = Backbone.View.extend({
});
},

goBack: function(){
Galaxy.libraries.library_router.back();
},

showPermissions: function(options){
this.options = _.extend(this.options, options);
$(".tooltip").remove();
Expand All @@ -270,11 +266,13 @@ var LibraryDatasetView = Backbone.View.extend({
var template = this.templateDatasetPermissions();
this.$el.html(template({item: this.model, is_admin: is_admin}));
var self = this;
$.get( Galaxy.root + "api/libraries/datasets/" + self.id + "/permissions?scope=current").done(function(fetched_permissions) {
self.prepareSelectBoxes({fetched_permissions: fetched_permissions, is_admin: is_admin});
}).fail(function(){
mod_toastr.error('An error occurred while attempting to fetch dataset permissions.');
});
$.get(Galaxy.root + "api/libraries/datasets/" + self.id + "/permissions?scope=current")
.done(function(fetched_permissions) {
self.prepareSelectBoxes({fetched_permissions: fetched_permissions, is_admin: is_admin});
})
.fail(function(){
mod_toastr.error('An error occurred while attempting to fetch dataset permissions.');
});
$("#center [data-toggle]").tooltip();
$("#center").css('overflow','auto');
},
Expand Down
4 changes: 0 additions & 4 deletions client/galaxy/scripts/mvc/library/library-folder-view.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,6 @@ var FolderView = Backbone.View.extend({
});
},

goBack: function(){
Galaxy.libraries.library_router.back();
},

showPermissions: function(options){
this.options = _.extend(this.options, options);
$(".tooltip").remove();
Expand Down
34 changes: 16 additions & 18 deletions client/galaxy/scripts/mvc/library/library-foldertoolbar-view.js
Original file line number Diff line number Diff line change
Expand Up @@ -942,8 +942,8 @@ var FolderToolbarView = Backbone.View.extend({
chainCallDeletingItems: function( items_to_delete ){
var self = this;
this.deleted_items = new mod_library_model.Folder();
var popped_item = items_to_delete.pop();
if ( typeof popped_item === "undefined" ) {
var item_to_delete = items_to_delete.pop();
if ( typeof item_to_delete === "undefined" ) {
if ( this.options.chain_call_control.failed_number === 0 ){
mod_toastr.success( 'Selected items were deleted.' );
} else if ( this.options.chain_call_control.failed_number === this.options.chain_call_control.total_number ){
Expand All @@ -954,10 +954,9 @@ var FolderToolbarView = Backbone.View.extend({
Galaxy.modal.hide();
return this.deleted_items;
}
var promise = $.when( popped_item.destroy() );

promise.done( function( item ){
Galaxy.libraries.folderListView.collection.remove( popped_item.id );
item_to_delete.destroy()
.done( function( item ){
Galaxy.libraries.folderListView.collection.remove( item_to_delete.id );
self.updateProgress();
// add the deleted item to collection, triggers rendering
if ( Galaxy.libraries.folderListView.options.include_deleted ){
Expand All @@ -974,11 +973,11 @@ var FolderToolbarView = Backbone.View.extend({
}
self.chainCallDeletingItems( items_to_delete );
})
.fail( function(){
self.options.chain_call_control.failed_number += 1;
self.updateProgress();
self.chainCallDeletingItems( items_to_delete );
});
.fail( function(){
self.options.chain_call_control.failed_number += 1;
self.updateProgress();
self.chainCallDeletingItems( items_to_delete );
});
},

/**
Expand All @@ -996,8 +995,10 @@ var FolderToolbarView = Backbone.View.extend({
* Delete the selected items. Atomic. One by one.
*/
deleteSelectedItems: function(){
var checkedValues = $('#folder_table').find(':checked');
if(checkedValues.length === 0){
var dataset_ids = [];
var folder_ids = [];
var $checkedValues = $('#folder_table').find(':checked');
if($checkedValues.length === 0){
mod_toastr.info('You must select at least one item for deletion.');
} else {
var template = this.templateDeletingItemsProgressBar();
Expand All @@ -1013,10 +1014,7 @@ var FolderToolbarView = Backbone.View.extend({
// init the control counters
this.options.chain_call_control.total_number = 0;
this.options.chain_call_control.failed_number = 0;

var dataset_ids = [];
var folder_ids = [];
checkedValues.each(function(){
$checkedValues.each(function(){
var row_id = $(this).closest('tr').data('id');
if (row_id !== undefined) {
if (row_id.substring(0,1) == 'F'){
Expand All @@ -1042,7 +1040,7 @@ var FolderToolbarView = Backbone.View.extend({
items_to_delete.push(folder);
}

this.options.chain_call_control.total_number = items_total.length;
this.options.chain_call_control.total_number = items_total;
// call the recursive function to call ajax one after each other (request FIFO queue)
this.chainCallDeletingItems(items_to_delete);
}
Expand Down
4 changes: 0 additions & 4 deletions client/galaxy/scripts/mvc/library/library-library-view.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,6 @@ var LibraryView = Backbone.View.extend({
});
},

goBack: function(){
Galaxy.libraries.library_router.back();
},

showPermissions: function(options){
this.options = _.extend(this.options, options);
$(".tooltip").remove();
Expand Down
15 changes: 1 addition & 14 deletions client/galaxy/scripts/mvc/library/library-librarylist-view.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,9 @@
define([
"layout/masthead",
"mvc/base-mvc",
"utils/utils",
"libs/toastr",
"mvc/library/library-model",
"mvc/library/library-libraryrow-view",
"libs/underscore"
], function(
mod_masthead,
mod_baseMVC,
mod_utils,
mod_toastr,
mod_library_model,
mod_library_libraryrow_view,
Expand Down Expand Up @@ -199,13 +193,6 @@ var LibraryListView = Backbone.View.extend({
}
},

redirectToHome: function(){
window.location = '../';
},
redirectToLogin: function(){
window.location = '/user/login';
},

/**
* In case the search_term is not empty perform the search and render
* the result. Render all visible libraries otherwise.
Expand All @@ -217,7 +204,7 @@ var LibraryListView = Backbone.View.extend({
var results = null
results = this.collection.search( search_term );
this.options.searching = true;
this.render({'models': results});
this.render({models: results, show_page: 1});
} else {
this.options.searching = false;
this.render();
Expand Down
19 changes: 6 additions & 13 deletions client/toolshed/scripts/mvc/groups/group-list-view.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var GroupListView = Backbone.View.extend({
defaults: {},

/**
* Initialize and fetch the groups from server.
* Initialize and fetch the groups from server.
* Async render afterwards.
* @param {object} options an object with options
*/
Expand All @@ -36,14 +36,14 @@ var GroupListView = Backbone.View.extend({
}
}
});

},

fetch: function(){
},

/**
* Render the groups table from the object's own collection.
/**
* Render the groups table from the object's own collection.
*/
render: function ( options ) {
this.options = _.extend( this.options, options );
Expand All @@ -55,7 +55,7 @@ var GroupListView = Backbone.View.extend({
$( "#center" ).css( 'overflow','auto' );
},

/**
/**
* Render all given models as rows in the groups list
* @param {array} groups_to_render array of group models to render
*/
Expand Down Expand Up @@ -90,7 +90,7 @@ var GroupListView = Backbone.View.extend({

/**
* Sort the underlying collection according to the parameters received.
* Currently supports only sorting by name.
* Currently supports only sorting by name.
*/
// sortLibraries: function(){
// if (Galaxy.libraries.preferences.get('sort_by') === 'name'){
Expand All @@ -102,13 +102,6 @@ var GroupListView = Backbone.View.extend({
// }
// },

// redirectToHome: function(){
// window.location = '../';
// },
// redirectToLogin: function(){
// window.location = '/user/login';
// },

// MMMMMMMMMMMMMMMMMM
// === TEMPLATES ====
// MMMMMMMMMMMMMMMMMM
Expand Down
8 changes: 0 additions & 8 deletions lib/galaxy/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import signal
import sys
import time
import os

from galaxy import config, jobs
import galaxy.model
Expand Down Expand Up @@ -224,13 +223,6 @@ def shutdown(self):
except AttributeError:
# There is no control_worker
pass
try:
# If the datatypes registry was persisted, attempt to
# remove the temporary file in which it was written.
if self.datatypes_registry.integrated_datatypes_configs is not None:
os.unlink(self.datatypes_registry.integrated_datatypes_configs)
except:
pass

def configure_fluent_log(self):
if self.config.fluent_log:
Expand Down
65 changes: 25 additions & 40 deletions lib/galaxy/datatypes/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import imp
import logging
import os
import tempfile
from collections import OrderedDict as odict
from string import Template
from xml.etree.ElementTree import Element

import yaml
Expand Down Expand Up @@ -72,7 +72,7 @@ def __init__(self, config=None):
self.imported_modules = []
self.datatype_elems = []
self.sniffer_elems = []
self.xml_filename = None
self._registry_xml_string = None
self._edam_formats_mapping = None
self._edam_data_mapping = None
self._converters_by_datatype = {}
Expand Down Expand Up @@ -672,7 +672,6 @@ def load_external_metadata_tool(self, toolbox):
# We need to be able to add a job to the queue to set metadata. The queue will currently only accept jobs with an associated
# tool. We'll load a special tool to be used for Auto-Detecting metadata; this is less than ideal, but effective
# Properly building a tool without relying on parsing an XML file is near difficult...so we bundle with Galaxy.
self.to_xml_file()
set_meta_tool = toolbox.load_hidden_lib_tool("galaxy/datatypes/set_metadata_tool.xml")
self.set_external_metadata_tool = set_meta_tool
self.log.debug("Loaded external metadata tool: %s", self.set_external_metadata_tool.id)
Expand Down Expand Up @@ -870,43 +869,29 @@ def edam_data(self):
self._edam_data_mapping = dict((k, v.edam_data) for k, v in self.datatypes_by_extension.items())
return self._edam_data_mapping

@property
def integrated_datatypes_configs(self):
if self.xml_filename and os.path.isfile(self.xml_filename):
return self.xml_filename
return self.xml_filename

def to_xml_file(self):
if self.xml_filename is not None:
# If persisted previously, attempt to remove the temporary file in which we were written.
try:
os.unlink(self.xml_filename)
except:
pass
self.xml_filename = None
fd, filename = tempfile.mkstemp()
self.xml_filename = os.path.abspath(filename)
if self.converters_path_attr:
converters_path_str = ' converters_path="%s"' % self.converters_path_attr
else:
converters_path_str = ''
if self.display_path_attr:
display_path_str = ' display_path="%s"' % self.display_path_attr
else:
display_path_str = ''
os.write(fd, '<?xml version="1.0"?>\n')
os.write(fd, '<datatypes>\n')
os.write(fd, '<registration%s%s>\n' % (converters_path_str, display_path_str))
for elem in self.datatype_elems:
os.write(fd, '%s' % galaxy.util.xml_to_string(elem))
os.write(fd, '</registration>\n')
os.write(fd, '<sniffers>\n')
for elem in self.sniffer_elems:
os.write(fd, '%s' % galaxy.util.xml_to_string(elem))
os.write(fd, '</sniffers>\n')
os.write(fd, '</datatypes>\n')
os.close(fd)
os.chmod(self.xml_filename, 0o644)
def to_xml_file(self, path):
if not self._registry_xml_string:
registry_string_template = Template("""<?xml version="1.0"?>
<datatypes>
<registration converters_path="$converters_path" display_path="$display_path">
$datatype_elems
</registration>
<sniffers>
$sniffer_elems
</sniffers>
</datatypes>
""")
converters_path = self.converters_path_attr or ''
display_path = self.display_path_attr or ''
datatype_elems = "".join((galaxy.util.xml_to_string(elem) for elem in self.datatype_elems))
sniffer_elems = "".join((galaxy.util.xml_to_string(elem) for elem in self.sniffer_elems))
self._registry_xml_string = registry_string_template.substitute(converters_path=converters_path,
display_path=display_path,
datatype_elems=datatype_elems,
sniffer_elems=sniffer_elems)
with open(os.path.abspath(path), 'w') as registry_xml:
os.chmod(path, 0o644)
registry_xml.write(self._registry_xml_string)

def get_extension(self, elem):
"""
Expand Down
11 changes: 5 additions & 6 deletions lib/galaxy/jobs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -1645,8 +1645,7 @@ def invalidate_external_metadata(self):

def setup_external_metadata(self, exec_dir=None, tmp_dir=None,
dataset_files_path=None, config_root=None,
config_file=None, datatypes_config=None,
resolve_metadata_dependencies=False,
config_file=None, resolve_metadata_dependencies=False,
set_extension=True, **kwds):
# extension could still be 'auto' if this is the upload tool.
job = self.get_job()
Expand All @@ -1665,8 +1664,8 @@ def setup_external_metadata(self, exec_dir=None, tmp_dir=None,
config_root = self.app.config.root
if config_file is None:
config_file = self.app.config.config_file
if datatypes_config is None:
datatypes_config = self.app.datatypes_registry.integrated_datatypes_configs
datatypes_config = os.path.join(self.working_directory, 'registry.xml')
self.app.datatypes_registry.to_xml_file(path=datatypes_config)
command = self.external_output_metadata.setup_external_metadata([output_dataset_assoc.dataset for
output_dataset_assoc in
job.output_datasets + job.output_library_datasets],
Expand All @@ -1677,7 +1676,7 @@ def setup_external_metadata(self, exec_dir=None, tmp_dir=None,
config_root=config_root,
config_file=config_file,
datatypes_config=datatypes_config,
job_metadata=os.path.join(self.tool_working_directory, self.tool.provided_metadata_file),
job_metadata=os.path.join(self.tool_working_directory, TOOL_PROVIDED_JOB_METADATA_FILE),
max_metadata_value_size=self.app.config.max_metadata_value_size,
**kwds)
if resolve_metadata_dependencies:
Expand Down Expand Up @@ -1975,7 +1974,7 @@ def get_dataset_finish_context(self, job_context, dataset):
pass

def setup_external_metadata(self, exec_dir=None, tmp_dir=None, dataset_files_path=None,
config_root=None, config_file=None, datatypes_config=None,
config_root=None, config_file=None,
set_extension=True, **kwds):
# There is no metadata setting for tasks. This is handled after the merge, at the job level.
return ""
Expand Down
2 changes: 0 additions & 2 deletions lib/galaxy/jobs/command_factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,6 @@ def __handle_metadata(commands_builder, job_wrapper, runner, remote_command_para
output_fnames = metadata_kwds.get('output_fnames', job_wrapper.get_output_fnames())
config_root = metadata_kwds.get('config_root', None)
config_file = metadata_kwds.get('config_file', None)
datatypes_config = metadata_kwds.get('datatypes_config', None)
compute_tmp_dir = metadata_kwds.get('compute_tmp_dir', None)
resolve_metadata_dependencies = job_wrapper.commands_in_new_shell
metadata_command = job_wrapper.setup_external_metadata(
Expand All @@ -209,7 +208,6 @@ def __handle_metadata(commands_builder, job_wrapper, runner, remote_command_para
set_extension=False,
config_root=config_root,
config_file=config_file,
datatypes_config=datatypes_config,
compute_tmp_dir=compute_tmp_dir,
resolve_metadata_dependencies=resolve_metadata_dependencies,
kwds={'overwrite': False}
Expand Down

0 comments on commit 9045e3f

Please sign in to comment.