mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-10-29 17:42:12 +08:00
first version of data libraries pagination, including some bugfixes and docs
This commit is contained in:
@@ -16,19 +16,19 @@ define([
|
||||
"mvc/library/library-library-view",
|
||||
"mvc/library/library-folder-view"
|
||||
],
|
||||
function(mod_masthead,
|
||||
mod_utils,
|
||||
mod_toastr,
|
||||
mod_baseMVC,
|
||||
mod_library_model,
|
||||
mod_folderlist_view,
|
||||
mod_librarylist_view,
|
||||
mod_librarytoolbar_view,
|
||||
mod_foldertoolbar_view,
|
||||
mod_library_dataset_view,
|
||||
mod_library_library_view,
|
||||
mod_library_folder_view
|
||||
) {
|
||||
function(mod_masthead,
|
||||
mod_utils,
|
||||
mod_toastr,
|
||||
mod_baseMVC,
|
||||
mod_library_model,
|
||||
mod_folderlist_view,
|
||||
mod_librarylist_view,
|
||||
mod_librarytoolbar_view,
|
||||
mod_foldertoolbar_view,
|
||||
mod_library_dataset_view,
|
||||
mod_library_library_view,
|
||||
mod_library_folder_view
|
||||
) {
|
||||
|
||||
// ============================================================================
|
||||
// ROUTER
|
||||
@@ -37,10 +37,11 @@ var LibraryRouter = Backbone.Router.extend({
|
||||
this.routesHit = 0;
|
||||
//keep count of number of routes handled by the application
|
||||
Backbone.history.on('route', function() { this.routesHit++; }, this);
|
||||
},
|
||||
},
|
||||
|
||||
routes: {
|
||||
routes: {
|
||||
"" : "libraries",
|
||||
"page/:show_page" : "libraries_page",
|
||||
"library/:library_id/permissions" : "library_permissions",
|
||||
"folders/:folder_id/permissions" : "folder_permissions",
|
||||
"folders/:id" : "folder_content",
|
||||
@@ -49,27 +50,28 @@ var LibraryRouter = Backbone.Router.extend({
|
||||
"folders/:folder_id/datasets/:dataset_id/versions/:ldda_id" : "dataset_version",
|
||||
"folders/:folder_id/download/:format" : "download",
|
||||
"folders/:folder_id/import/:source" : "import_datasets"
|
||||
},
|
||||
},
|
||||
|
||||
back: function() {
|
||||
back: function() {
|
||||
if(this.routesHit > 1) {
|
||||
//more than one route hit -> user did not land to current page directly
|
||||
window.history.back();
|
||||
} else {
|
||||
} else {
|
||||
//otherwise go to the home page. Use replaceState if available so
|
||||
//the navigation doesn't create an extra history entry
|
||||
this.navigate('#', {trigger:true, replace:true});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// ============================================================================
|
||||
/** session storage for library preferences */
|
||||
var LibraryPrefs = mod_baseMVC.SessionStorageModel.extend({
|
||||
defaults : {
|
||||
with_deleted : false,
|
||||
sort_order : 'asc',
|
||||
sort_by : 'name'
|
||||
with_deleted : false,
|
||||
sort_order : 'asc',
|
||||
sort_by : 'name',
|
||||
library_page_size : 20
|
||||
}
|
||||
});
|
||||
|
||||
@@ -88,77 +90,86 @@ var GalaxyLibrary = Backbone.View.extend({
|
||||
initialize : function(){
|
||||
Galaxy.libraries = this;
|
||||
|
||||
this.preferences = new LibraryPrefs( {id: 'global-lib-prefs'} );
|
||||
this.preferences = new LibraryPrefs( { id: 'global-lib-prefs' } );
|
||||
|
||||
this.library_router = new LibraryRouter();
|
||||
|
||||
this.library_router.on('route:libraries', function() {
|
||||
Galaxy.libraries.libraryToolbarView = new mod_librarytoolbar_view.LibraryToolbarView();
|
||||
Galaxy.libraries.libraryListView = new mod_librarylist_view.LibraryListView();
|
||||
});
|
||||
|
||||
this.library_router.on('route:libraries_page', function( show_page ) {
|
||||
if ( Galaxy.libraries.libraryToolbarView === null ){
|
||||
Galaxy.libraries.libraryToolbarView = new mod_librarytoolbar_view.LibraryToolbarView();
|
||||
Galaxy.libraries.libraryListView = new mod_librarylist_view.LibraryListView( { show_page: show_page } );
|
||||
} else {
|
||||
Galaxy.libraries.libraryListView.render( { show_page: show_page } )
|
||||
}
|
||||
});
|
||||
|
||||
this.library_router.on('route:folder_content', function(id) {
|
||||
if (Galaxy.libraries.folderToolbarView){
|
||||
Galaxy.libraries.folderToolbarView.$el.unbind('click');
|
||||
}
|
||||
Galaxy.libraries.folderToolbarView = new mod_foldertoolbar_view.FolderToolbarView({id: id});
|
||||
Galaxy.libraries.folderListView = new mod_folderlist_view.FolderListView({id: id});
|
||||
});
|
||||
}
|
||||
Galaxy.libraries.folderToolbarView = new mod_foldertoolbar_view.FolderToolbarView({id: id});
|
||||
Galaxy.libraries.folderListView = new mod_folderlist_view.FolderListView({id: id});
|
||||
});
|
||||
|
||||
this.library_router.on('route:download', function(folder_id, format) {
|
||||
this.library_router.on('route:download', function(folder_id, format) {
|
||||
if ($('#folder_list_body').find(':checked').length === 0) {
|
||||
mod_toastr.info( 'You must select at least one dataset to download' );
|
||||
Galaxy.libraries.library_router.navigate('folders/' + folder_id, {trigger: true, replace: true});
|
||||
} else {
|
||||
} else {
|
||||
Galaxy.libraries.folderToolbarView.download(folder_id, format);
|
||||
Galaxy.libraries.library_router.navigate('folders/' + folder_id, {trigger: false, replace: true});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
this.library_router.on('route:dataset_detail', function(folder_id, dataset_id){
|
||||
this.library_router.on('route:dataset_detail', function(folder_id, dataset_id){
|
||||
if (Galaxy.libraries.datasetView){
|
||||
Galaxy.libraries.datasetView.$el.unbind('click');
|
||||
}
|
||||
Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView({id: dataset_id});
|
||||
});
|
||||
this.library_router.on('route:dataset_version', function(folder_id, dataset_id, ldda_id){
|
||||
}
|
||||
Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView({id: dataset_id});
|
||||
});
|
||||
this.library_router.on('route:dataset_version', function(folder_id, dataset_id, ldda_id){
|
||||
if (Galaxy.libraries.datasetView){
|
||||
Galaxy.libraries.datasetView.$el.unbind('click');
|
||||
}
|
||||
Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView({id: dataset_id, ldda_id: ldda_id, show_version: true});
|
||||
});
|
||||
}
|
||||
Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView({id: dataset_id, ldda_id: ldda_id, show_version: true});
|
||||
});
|
||||
|
||||
this.library_router.on('route:dataset_permissions', function(folder_id, dataset_id){
|
||||
this.library_router.on('route:dataset_permissions', function(folder_id, dataset_id){
|
||||
if (Galaxy.libraries.datasetView){
|
||||
Galaxy.libraries.datasetView.$el.unbind('click');
|
||||
}
|
||||
Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView({id: dataset_id, show_permissions: true});
|
||||
});
|
||||
}
|
||||
Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView({id: dataset_id, show_permissions: true});
|
||||
});
|
||||
|
||||
this.library_router.on('route:library_permissions', function(library_id){
|
||||
this.library_router.on('route:library_permissions', function(library_id){
|
||||
if (Galaxy.libraries.libraryView){
|
||||
Galaxy.libraries.libraryView.$el.unbind('click');
|
||||
}
|
||||
Galaxy.libraries.libraryView = new mod_library_library_view.LibraryView({id: library_id, show_permissions: true});
|
||||
});
|
||||
}
|
||||
Galaxy.libraries.libraryView = new mod_library_library_view.LibraryView({id: library_id, show_permissions: true});
|
||||
});
|
||||
|
||||
this.library_router.on('route:folder_permissions', function(folder_id){
|
||||
this.library_router.on('route:folder_permissions', function(folder_id){
|
||||
if (Galaxy.libraries.folderView){
|
||||
Galaxy.libraries.folderView.$el.unbind('click');
|
||||
}
|
||||
Galaxy.libraries.folderView = new mod_library_folder_view.FolderView({id: folder_id, show_permissions: true});
|
||||
});
|
||||
this.library_router.on('route:import_datasets', function(folder_id, source){
|
||||
}
|
||||
Galaxy.libraries.folderView = new mod_library_folder_view.FolderView({id: folder_id, show_permissions: true});
|
||||
});
|
||||
this.library_router.on('route:import_datasets', function(folder_id, source){
|
||||
if (Galaxy.libraries.folderToolbarView && Galaxy.libraries.folderListView){
|
||||
Galaxy.libraries.folderToolbarView.showImportModal({source:source});
|
||||
} else {
|
||||
} else {
|
||||
Galaxy.libraries.folderToolbarView = new mod_foldertoolbar_view.FolderToolbarView({id: folder_id});
|
||||
Galaxy.libraries.folderListView = new mod_folderlist_view.FolderListView({id: folder_id});
|
||||
Galaxy.libraries.folderToolbarView.showImportModal({source: source});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
Backbone.history.start({pushState: false});
|
||||
Backbone.history.start({pushState: false});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ var FolderToolbarView = Backbone.View.extend({
|
||||
},
|
||||
|
||||
render: function(options){
|
||||
this.options = _.extend(this.options, options);
|
||||
this.options = _.extend( this.options, options );
|
||||
var toolbar_template = this.templateToolBar();
|
||||
var template_defaults = {
|
||||
id: this.options.id,
|
||||
@@ -346,18 +346,18 @@ var FolderToolbarView = Backbone.View.extend({
|
||||
this.modal = Galaxy.modal;
|
||||
var template_modal = this.templateImportPathModal();
|
||||
this.modal.show({
|
||||
closing_events : true,
|
||||
title : 'Please enter paths to import',
|
||||
body : template_modal({}),
|
||||
buttons : {
|
||||
'Import' : function() {that.importFromPathsClicked(that);},
|
||||
'Close' : function() {Galaxy.modal.hide();}
|
||||
},
|
||||
closing_callback: function(){
|
||||
// TODO: should not trigger routes outside of the router
|
||||
Galaxy.libraries.library_router.navigate('folders/' + that.id, {trigger: true});
|
||||
}
|
||||
});
|
||||
closing_events : true,
|
||||
title : 'Please enter paths to import',
|
||||
body : template_modal({}),
|
||||
buttons : {
|
||||
'Import' : function() { that.importFromPathsClicked(that); },
|
||||
'Close' : function() { Galaxy.modal.hide(); }
|
||||
},
|
||||
closing_callback: function(){
|
||||
// TODO: should not trigger routes outside of the router
|
||||
Galaxy.libraries.library_router.navigate( 'folders/' + that.id, { trigger: true } );
|
||||
}
|
||||
});
|
||||
this.renderSelectBoxes();
|
||||
},
|
||||
|
||||
@@ -367,34 +367,37 @@ var FolderToolbarView = Backbone.View.extend({
|
||||
*/
|
||||
fetchExtAndGenomes: function(){
|
||||
var that = this;
|
||||
mod_utils.get(galaxy_config.root + "api/datatypes?extension_only=False",
|
||||
function(datatypes) {
|
||||
for (key in datatypes) {
|
||||
that.list_extensions.push({
|
||||
id : datatypes[key].extension,
|
||||
text : datatypes[key].extension,
|
||||
description : datatypes[key].description,
|
||||
description_url : datatypes[key].description_url
|
||||
});
|
||||
}
|
||||
that.list_extensions.sort(function(a, b) {
|
||||
return a.id > b.id ? 1 : a.id < b.id ? -1 : 0;
|
||||
});
|
||||
that.list_extensions.unshift(that.auto);
|
||||
|
||||
});
|
||||
mod_utils.get(galaxy_config.root + "api/genomes",
|
||||
function(genomes) {
|
||||
for (key in genomes) {
|
||||
that.list_genomes.push({
|
||||
id : genomes[key][1],
|
||||
text : genomes[key][0]
|
||||
});
|
||||
}
|
||||
that.list_genomes.sort(function(a, b) {
|
||||
return a.id > b.id ? 1 : a.id < b.id ? -1 : 0;
|
||||
});
|
||||
});
|
||||
mod_utils.get({
|
||||
url : galaxy_config.root + "api/datatypes?extension_only=False",
|
||||
success : function( datatypes ) {
|
||||
for (key in datatypes) {
|
||||
that.list_extensions.push({
|
||||
id : datatypes[key].extension,
|
||||
text : datatypes[key].extension,
|
||||
description : datatypes[key].description,
|
||||
description_url : datatypes[key].description_url
|
||||
});
|
||||
}
|
||||
that.list_extensions.sort(function(a, b) {
|
||||
return a.id > b.id ? 1 : a.id < b.id ? -1 : 0;
|
||||
});
|
||||
that.list_extensions.unshift(that.auto);
|
||||
}
|
||||
});
|
||||
mod_utils.get({
|
||||
url: galaxy_config.root + "api/genomes",
|
||||
success: function( genomes ) {
|
||||
for ( key in genomes ) {
|
||||
that.list_genomes.push({
|
||||
id : genomes[key][1],
|
||||
text : genomes[key][0]
|
||||
});
|
||||
}
|
||||
that.list_genomes.sort(function(a, b) {
|
||||
return a.id > b.id ? 1 : a.id < b.id ? -1 : 0;
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
renderSelectBoxes: function(){
|
||||
@@ -1027,7 +1030,7 @@ var FolderToolbarView = Backbone.View.extend({
|
||||
tmpl_array.push(' </div>');
|
||||
tmpl_array.push(' <button data-toggle="tooltip" data-placement="top" title="Mark selected datasets deleted" id="toolbtn_bulk_delete" class="primary-button logged-dataset-manipulation" style="margin-left: 0.5em; display:none; " type="button"><span class="fa fa-times"></span> Delete</button>');
|
||||
tmpl_array.push(' <button data-id="<%- id %>" data-toggle="tooltip" data-placement="top" title="Show library information" id="toolbtn_show_libinfo" class="primary-button" style="margin-left: 0.5em;" type="button"><span class="fa fa-info-circle"></span> Library Info</button>');
|
||||
tmpl_array.push(' <span class="help-button" data-toggle="tooltip" data-placement="top" title="Visit Libraries Wiki"><a href="https://wiki.galaxyproject.org/DataLibraries/screen/FolderContents" target="_blank"><button class="primary-button btn-xs" type="button"><span class="fa fa-question-circle"></span> Help</button></a></span>');
|
||||
tmpl_array.push(' <span class="help-button" data-toggle="tooltip" data-placement="top" title="Visit Libraries Wiki"><a href="https://wiki.galaxyproject.org/DataLibraries/screen/FolderContents" target="_blank"><button class="primary-button" type="button"><span class="fa fa-question-circle"></span> Help</button></a></span>');
|
||||
|
||||
tmpl_array.push(' </div>');
|
||||
// TOOLBAR END
|
||||
|
||||
@@ -4,13 +4,15 @@ define([
|
||||
"utils/utils",
|
||||
"libs/toastr",
|
||||
"mvc/library/library-model",
|
||||
"mvc/library/library-libraryrow-view"],
|
||||
function(mod_masthead,
|
||||
mod_baseMVC,
|
||||
mod_utils,
|
||||
mod_toastr,
|
||||
mod_library_model,
|
||||
mod_library_libraryrow_view) {
|
||||
"mvc/library/library-libraryrow-view"
|
||||
], function(
|
||||
mod_masthead,
|
||||
mod_baseMVC,
|
||||
mod_utils,
|
||||
mod_toastr,
|
||||
mod_library_model,
|
||||
mod_library_libraryrow_view
|
||||
){
|
||||
|
||||
var LibraryListView = Backbone.View.extend({
|
||||
el: '#libraries_element',
|
||||
@@ -19,104 +21,135 @@ var LibraryListView = Backbone.View.extend({
|
||||
'click .sort-libraries-link' : 'sort_clicked'
|
||||
},
|
||||
|
||||
modal: null,
|
||||
/**
|
||||
* Initialize and fetch the libraries from server.
|
||||
* Async render afterwards.
|
||||
* @param {object} options an options object
|
||||
*/
|
||||
defaults: {
|
||||
page_count: null,
|
||||
show_page: null
|
||||
},
|
||||
|
||||
// collection of {Item}s
|
||||
collection: null,
|
||||
initialize : function( options ){
|
||||
this.options = _.defaults( this.options || {}, this.defaults, options );
|
||||
|
||||
// map of library model ids to library views = cache
|
||||
rowViews: {},
|
||||
|
||||
initialize : function(options){
|
||||
this.options = _.defaults(this.options || {}, options);
|
||||
var that = this;
|
||||
var that = this;
|
||||
this.modal = null;
|
||||
// map of library model ids to library views = cache
|
||||
this.rowViews = {};
|
||||
// collection of {Item}s
|
||||
this.collection = new mod_library_model.Libraries();
|
||||
this.collection.fetch({
|
||||
success: function(){
|
||||
that.render();
|
||||
},
|
||||
error: function(model, response){
|
||||
if (typeof response.responseJSON !== "undefined"){
|
||||
mod_toastr.error(response.responseJSON.err_msg);
|
||||
error: function( model, response ){
|
||||
if ( typeof response.responseJSON !== "undefined" ){
|
||||
mod_toastr.error( response.responseJSON.err_msg );
|
||||
} else {
|
||||
mod_toastr.error('An error ocurred.');
|
||||
mod_toastr.error( 'An error ocurred.' );
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/** Renders the libraries table either from the object's own collection,
|
||||
* or from a given array of library models,
|
||||
* or renders an empty list in case no data is given. */
|
||||
render: function (options) {
|
||||
$(".tooltip").hide();
|
||||
var template = this.templateLibraryList();
|
||||
var libraries_to_render = null;
|
||||
var include_deleted = Galaxy.libraries.preferences.get('with_deleted');
|
||||
var models = null;
|
||||
if (typeof options !== 'undefined'){
|
||||
include_deleted = typeof options.with_deleted !== 'undefined' ? options.with_deleted : false;
|
||||
models = typeof options.models !== 'undefined' ? options.models : null;
|
||||
/**
|
||||
* Render the libraries table either from the object's own collection,
|
||||
* or from a given array of library models,
|
||||
* or render an empty list in case no data is given.
|
||||
*/
|
||||
render: function ( options ) {
|
||||
this.options = _.extend( this.options, options );
|
||||
|
||||
if ( ( this.options.page_size != null ) && ( this.options.page_size == parseInt( this.options.page_size ) ) ) {
|
||||
Galaxy.libraries.preferences.set( { 'library_page_size': parseInt( this.options.page_size ) } );
|
||||
}
|
||||
|
||||
if (this.collection !== null && models === null){
|
||||
$( ".tooltip" ).hide();
|
||||
// this.options.show_page = this.options.show_page || 1;
|
||||
var template = this.templateLibraryList();
|
||||
var libraries_to_render = null;
|
||||
var models = null;
|
||||
if ( this.options.show_page === null || this.options.show_page < 1 ){
|
||||
this.options.show_page = 1;
|
||||
}
|
||||
if ( typeof options !== 'undefined' ){
|
||||
models = typeof options.models !== 'undefined' ? options.models : null;
|
||||
}
|
||||
if ( this.collection !== null && models === null ){
|
||||
this.sortLibraries();
|
||||
if (include_deleted){ // show all the libraries
|
||||
if ( Galaxy.libraries.preferences.get( 'with_deleted' ) ){
|
||||
libraries_to_render = this.collection.models;
|
||||
} else{ // show only undeleted libraries
|
||||
libraries_to_render = this.collection.where({deleted: false});
|
||||
} else {
|
||||
libraries_to_render = this.collection.where( { deleted: false } );
|
||||
}
|
||||
} else if (models !== null){
|
||||
} else if ( models !== null ){
|
||||
libraries_to_render = models;
|
||||
} else {
|
||||
libraries_to_render = [];
|
||||
}
|
||||
|
||||
this.$el.html(template({length: libraries_to_render.length, order: Galaxy.libraries.preferences.get('sort_order') }));
|
||||
|
||||
if (libraries_to_render.length > 0){
|
||||
this.renderRows(libraries_to_render);
|
||||
}
|
||||
// initialize the library tooltips
|
||||
$("#center [data-toggle]").tooltip();
|
||||
// modification of upper DOM element to show scrollbars due
|
||||
// to the #center element inheritance
|
||||
$("#center").css('overflow','auto');
|
||||
this.options.total_libraries_count = libraries_to_render.length
|
||||
var page_start = ( Galaxy.libraries.preferences.get( 'library_page_size' ) * ( this.options.show_page - 1 ) );
|
||||
this.options.page_count = Math.ceil( this.options.total_libraries_count / Galaxy.libraries.preferences.get( 'library_page_size' ) );
|
||||
if ( this.options.total_libraries_count > 0 && ( page_start < this.options.total_libraries_count ) ){
|
||||
libraries_to_render = libraries_to_render.slice( page_start, page_start + Galaxy.libraries.preferences.get( 'library_page_size' ) );
|
||||
this.options.libraries_shown = libraries_to_render.length;
|
||||
// User requests page with no libraries
|
||||
if ( Galaxy.libraries.preferences.get( 'library_page_size' ) * this.options.show_page > ( this.options.total_libraries_count + Galaxy.libraries.preferences.get( 'library_page_size' ) ) ){
|
||||
libraries_to_render = [];
|
||||
}
|
||||
this.$el.html( template({
|
||||
length: 1,
|
||||
order: Galaxy.libraries.preferences.get( 'sort_order' )
|
||||
}));
|
||||
Galaxy.libraries.libraryToolbarView.renderPaginator( this.options );
|
||||
this.renderRows( libraries_to_render );
|
||||
} else {
|
||||
this.$el.html( template({
|
||||
length: 0,
|
||||
order: Galaxy.libraries.preferences.get( 'sort_order' )
|
||||
}));
|
||||
Galaxy.libraries.libraryToolbarView.renderPaginator( this.options );
|
||||
}
|
||||
$( "#center [data-toggle]" ).tooltip();
|
||||
$( "#center" ).css( 'overflow','auto' );
|
||||
},
|
||||
|
||||
/** Renders all given models as rows in the library list */
|
||||
renderRows: function(libraries_to_render){
|
||||
for (var i = 0; i < libraries_to_render.length; i++) {
|
||||
/**
|
||||
* Render all given models as rows in the library list
|
||||
* @param {array} libraries_to_render array of library models to render
|
||||
*/
|
||||
renderRows: function( libraries_to_render ){
|
||||
for ( var i = 0; i < libraries_to_render.length; i++ ) {
|
||||
var library = libraries_to_render[i];
|
||||
var cachedView = _.findWhere(this.rowViews, {id: library.get('id')});
|
||||
if (cachedView !== undefined && this instanceof Backbone.View){
|
||||
// search whether we have the item cached
|
||||
var cachedView = _.findWhere( this.rowViews, { id: library.get( 'id' ) } );
|
||||
if ( cachedView !== undefined && this instanceof Backbone.View ){
|
||||
cachedView.delegateEvents();
|
||||
this.$el.find('#library_list_body').append(cachedView.el);
|
||||
this.$el.find( '#library_list_body' ).append( cachedView.el );
|
||||
} else {
|
||||
this.renderOne({library:library})
|
||||
this.renderOne( { library: library } )
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Creates a view for the given model and adds it to the libraries view.
|
||||
* Create a view for the given model and add it to the libraries view.
|
||||
* @param {Library} model of the view that will be rendered
|
||||
*/
|
||||
renderOne: function(options){
|
||||
renderOne: function( options ){
|
||||
var library = options.library;
|
||||
var rowView = new mod_library_libraryrow_view.LibraryRowView(library);
|
||||
// we want to prepend new item
|
||||
if (options.prepend){
|
||||
this.$el.find('#library_list_body').prepend(rowView.el);
|
||||
} else {
|
||||
this.$el.find('#library_list_body').append(rowView.el);
|
||||
}
|
||||
var rowView = new mod_library_libraryrow_view.LibraryRowView( library );
|
||||
this.$el.find( '#library_list_body' ).append( rowView.el );
|
||||
// save new rowView to cache
|
||||
this.rowViews[library.get('id')] = rowView;
|
||||
this.rowViews[ library.get( 'id' ) ] = rowView;
|
||||
},
|
||||
|
||||
/** Table heading was clicked, update sorting preferences and re-render */
|
||||
/**
|
||||
* Table heading was clicked, update sorting preferences and re-render.
|
||||
* @return {[type]} [description]
|
||||
*/
|
||||
sort_clicked : function(){
|
||||
if (Galaxy.libraries.preferences.get('sort_order') === 'asc'){
|
||||
Galaxy.libraries.preferences.set({'sort_order': 'desc'});
|
||||
@@ -126,8 +159,10 @@ var LibraryListView = Backbone.View.extend({
|
||||
this.render();
|
||||
},
|
||||
|
||||
/** Sorts the underlying collection according to the parameters received.
|
||||
Currently supports only sorting by name. */
|
||||
/**
|
||||
* Sort the underlying collection according to the parameters received.
|
||||
* Currently supports only sorting by name.
|
||||
*/
|
||||
sortLibraries: function(){
|
||||
if (Galaxy.libraries.preferences.get('sort_by') === 'name'){
|
||||
if (Galaxy.libraries.preferences.get('sort_order') === 'asc'){
|
||||
@@ -138,6 +173,13 @@ var LibraryListView = Backbone.View.extend({
|
||||
}
|
||||
},
|
||||
|
||||
redirectToHome: function(){
|
||||
window.location = '../';
|
||||
},
|
||||
redirectToLogin: function(){
|
||||
window.location = '/user/login';
|
||||
},
|
||||
|
||||
// MMMMMMMMMMMMMMMMMM
|
||||
// === TEMPLATES ====
|
||||
// MMMMMMMMMMMMMMMMMM
|
||||
@@ -147,14 +189,14 @@ var LibraryListView = Backbone.View.extend({
|
||||
|
||||
tmpl_array.push('<div class="library_container table-responsive">');
|
||||
tmpl_array.push('<% if(length === 0) { %>');
|
||||
tmpl_array.push('<div>There are no libraries visible to you. If you expected some to show up please consult the <a href="https://wiki.galaxyproject.org/Admin/DataLibraries/LibrarySecurity">library security wikipage</a> or visit the <a href="https://biostar.usegalaxy.org/">Galaxy support site</a>.</div>');
|
||||
tmpl_array.push('<div>There are no libraries visible to you here. If you expected some to show up please consult the <a href="https://wiki.galaxyproject.org/Admin/DataLibraries/LibrarySecurity" target="_blank">library security wikipage</a> or visit the <a href="https://biostar.usegalaxy.org/" target="_blank">Galaxy support site</a>.</div>');
|
||||
tmpl_array.push('<% } else{ %>');
|
||||
tmpl_array.push('<table class="grid table table-condensed">');
|
||||
tmpl_array.push(' <thead>');
|
||||
tmpl_array.push(' <th style="width:30%;"><a class="sort-libraries-link" title="Click to reverse order" href="#">name</a> <span title="Sorted alphabetically" class="fa fa-sort-alpha-<%- order %>"></span></th>');
|
||||
tmpl_array.push(' <th style="width:22%;">description</th>');
|
||||
tmpl_array.push(' <th style="width:22%;">synopsis</th> ');
|
||||
tmpl_array.push(' <th style="width:26%;"></th> ');
|
||||
tmpl_array.push(' <th style="width:26%;"></th>');
|
||||
tmpl_array.push(' </thead>');
|
||||
tmpl_array.push(' <tbody id="library_list_body">');
|
||||
// library item views will attach here
|
||||
@@ -166,14 +208,6 @@ var LibraryListView = Backbone.View.extend({
|
||||
return _.template(tmpl_array.join(''));
|
||||
},
|
||||
|
||||
|
||||
redirectToHome: function(){
|
||||
window.location = '../';
|
||||
},
|
||||
redirectToLogin: function(){
|
||||
window.location = '/user/login';
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
return {
|
||||
|
||||
@@ -11,11 +11,13 @@ var LibraryToolbarView = Backbone.View.extend({
|
||||
el: '#center',
|
||||
|
||||
events: {
|
||||
'click #create_new_library_btn' : 'show_library_modal',
|
||||
'click #include_deleted_chk' : 'check_include_deleted'
|
||||
'click #create_new_library_btn' : 'showLibraryModal',
|
||||
'click #include_deleted_chk' : 'includeDeletedChecked',
|
||||
'click #page_size_prompt' : 'showPageSizePrompt'
|
||||
},
|
||||
|
||||
initialize: function(){
|
||||
initialize: function( options ){
|
||||
this.options = _.defaults( this.options || {}, options );
|
||||
this.render();
|
||||
},
|
||||
|
||||
@@ -23,21 +25,34 @@ var LibraryToolbarView = Backbone.View.extend({
|
||||
var toolbar_template = this.templateToolBar();
|
||||
var is_admin = false;
|
||||
var is_anonym = true;
|
||||
if (Galaxy.currUser){
|
||||
if ( Galaxy.currUser ){
|
||||
is_admin = Galaxy.currUser.isAdmin();
|
||||
is_anonym = Galaxy.currUser.isAnonymous();
|
||||
}
|
||||
this.$el.html(toolbar_template({admin_user: is_admin, anon_user: is_anonym}));
|
||||
if (is_admin){
|
||||
this.$el.find('#include_deleted_chk')[0].checked = Galaxy.libraries.preferences.get('with_deleted');
|
||||
this.$el.html(toolbar_template( { admin_user: is_admin, anon_user: is_anonym } ) );
|
||||
if ( is_admin ){
|
||||
this.$el.find( '#include_deleted_chk' )[0].checked = Galaxy.libraries.preferences.get( 'with_deleted' );
|
||||
}
|
||||
},
|
||||
|
||||
show_library_modal : function (event){
|
||||
/**
|
||||
* Called from LibraryListView when needed.
|
||||
* @param {object} options common options
|
||||
*/
|
||||
renderPaginator: function( options ){
|
||||
this.options = _.extend( this.options, options );
|
||||
var paginator_template = this.templatePaginator();
|
||||
this.$el.find( '#library_paginator' ).html( paginator_template({
|
||||
show_page: parseInt( this.options.show_page ),
|
||||
page_count: parseInt( this.options.page_count ),
|
||||
total_libraries_count: this.options.total_libraries_count,
|
||||
libraries_shown: this.options.libraries_shown
|
||||
}));
|
||||
},
|
||||
|
||||
showLibraryModal : function (event){
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
// create modal
|
||||
var self = this;
|
||||
this.modal = Galaxy.modal;
|
||||
this.modal.show({
|
||||
@@ -45,22 +60,22 @@ var LibraryToolbarView = Backbone.View.extend({
|
||||
title : 'Create New Library',
|
||||
body : this.templateNewLibraryInModal(),
|
||||
buttons : {
|
||||
'Create' : function() {self.create_new_library_event();},
|
||||
'Close' : function() {self.modal.hide();}
|
||||
'Create' : function() { self.createNewLibrary(); },
|
||||
'Close' : function() { self.modal.hide(); }
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
create_new_library_event: function(){
|
||||
var libraryDetails = this.serialize_new_library();
|
||||
if (this.validate_new_library(libraryDetails)){
|
||||
createNewLibrary: function(){
|
||||
var libraryDetails = this.serializeNewLibrary();
|
||||
if (this.valdiateNewLibrary(libraryDetails)){
|
||||
var library = new mod_library_model.Library();
|
||||
var self = this;
|
||||
library.save(libraryDetails, {
|
||||
success: function (library) {
|
||||
Galaxy.libraries.libraryListView.collection.add(library);
|
||||
self.modal.hide();
|
||||
self.clear_library_modal();
|
||||
self.clearLibraryModal();
|
||||
Galaxy.libraries.libraryListView.render();
|
||||
mod_toastr.success('Library created.');
|
||||
},
|
||||
@@ -78,15 +93,22 @@ var LibraryToolbarView = Backbone.View.extend({
|
||||
return false;
|
||||
},
|
||||
|
||||
showPageSizePrompt: function(){
|
||||
var library_page_size = prompt( 'How many libraries per page do you want to see?', Galaxy.libraries.preferences.get( 'library_page_size' ) );
|
||||
if ( ( library_page_size != null ) && ( library_page_size == parseInt( library_page_size ) ) ) {
|
||||
Galaxy.libraries.preferences.set( { 'library_page_size': parseInt( library_page_size ) } );
|
||||
Galaxy.libraries.libraryListView.render();
|
||||
}
|
||||
},
|
||||
|
||||
// clear the library modal once saved
|
||||
clear_library_modal : function(){
|
||||
clearLibraryModal : function(){
|
||||
$("input[name='Name']").val('');
|
||||
$("input[name='Description']").val('');
|
||||
$("input[name='Synopsis']").val('');
|
||||
},
|
||||
|
||||
// serialize data from the new library form
|
||||
serialize_new_library : function(){
|
||||
serializeNewLibrary : function(){
|
||||
return {
|
||||
name: $("input[name='Name']").val(),
|
||||
description: $("input[name='Description']").val(),
|
||||
@@ -94,18 +116,20 @@ var LibraryToolbarView = Backbone.View.extend({
|
||||
};
|
||||
},
|
||||
|
||||
// validate new library info
|
||||
validate_new_library: function(libraryDetails){
|
||||
valdiateNewLibrary: function( libraryDetails ){
|
||||
return libraryDetails.name !== '';
|
||||
},
|
||||
|
||||
// include or exclude deleted libraries from the view
|
||||
check_include_deleted: function(event){
|
||||
/**
|
||||
* Include or exclude deleted libraries in the view.
|
||||
* @param {object} event common event
|
||||
*/
|
||||
includeDeletedChecked: function( event ){
|
||||
if (event.target.checked){
|
||||
Galaxy.libraries.preferences.set({'with_deleted': true});
|
||||
Galaxy.libraries.preferences.set( { 'with_deleted': true } );
|
||||
Galaxy.libraries.libraryListView.render();
|
||||
} else{
|
||||
Galaxy.libraries.preferences.set({'with_deleted': false});
|
||||
Galaxy.libraries.preferences.set( { 'with_deleted': false } );
|
||||
Galaxy.libraries.libraryListView.render();
|
||||
}
|
||||
},
|
||||
@@ -113,22 +137,26 @@ var LibraryToolbarView = Backbone.View.extend({
|
||||
templateToolBar: function(){
|
||||
tmpl_array = [];
|
||||
|
||||
|
||||
tmpl_array.push('<div class="library_style_container">');
|
||||
// TOOLBAR
|
||||
tmpl_array.push(' <div id="toolbar_form">');
|
||||
tmpl_array.push(' <div id="library_toolbar">');
|
||||
tmpl_array.push(' <span><strong>DATA LIBRARIES</strong></span>');
|
||||
tmpl_array.push(' <% if(admin_user === true) { %>');
|
||||
tmpl_array.push(' <span data-toggle="tooltip" data-placement="top" title="Include deleted libraries"> | <input id="include_deleted_chk" style="margin: 0;" type="checkbox"> include deleted |</input></span>');
|
||||
tmpl_array.push(' <span data-toggle="tooltip" data-placement="top" title="Create New Library"><button id="create_new_library_btn" class="primary-button btn-xs" type="button"><span class="fa fa-plus"></span> New Library</button></span>');
|
||||
tmpl_array.push(' <% } %>');
|
||||
tmpl_array.push(' <span class="help-button" data-toggle="tooltip" data-placement="top" title="Visit Libraries Wiki"><a href="https://wiki.galaxyproject.org/DataLibraries/screen/ListOfLibraries" target="_blank"><button class="primary-button btn-xs" type="button"><span class="fa fa-question-circle"></span> Help</button></a></span>');
|
||||
tmpl_array.push(' </div>');
|
||||
|
||||
tmpl_array.push(' <div>');
|
||||
tmpl_array.push(' ');
|
||||
tmpl_array.push(' </div>');
|
||||
|
||||
tmpl_array.push(' <form class="form-inline" role="form">');
|
||||
tmpl_array.push(' <span><strong><a href="#" title="Go to first page">DATA LIBRARIES</a></strong></span>');
|
||||
tmpl_array.push(' <% if(admin_user === true) { %>');
|
||||
tmpl_array.push(' <div class="checkbox" style="height: 20px;">');
|
||||
tmpl_array.push(' <label>');
|
||||
tmpl_array.push(' <input id="include_deleted_chk" type="checkbox"> include deleted </input>');
|
||||
tmpl_array.push(' </label>');
|
||||
tmpl_array.push(' </div>');
|
||||
tmpl_array.push(' <span data-toggle="tooltip" data-placement="top" title="Create New Library"><button id="create_new_library_btn" class="primary-button btn-xs" type="button"><span class="fa fa-plus"></span> New Library</button></span>');
|
||||
tmpl_array.push(' <% } %>');
|
||||
tmpl_array.push(' <span class="help-button" data-toggle="tooltip" data-placement="top" title="Visit Libraries Wiki"><a href="https://wiki.galaxyproject.org/DataLibraries/screen/ListOfLibraries" target="_blank"><button class="primary-button" type="button"><span class="fa fa-question-circle"></span> Help</button></a></span>');
|
||||
tmpl_array.push(' <span id="library_paginator" class="library-paginator">');
|
||||
// paginator will append here
|
||||
tmpl_array.push(' </span>');
|
||||
tmpl_array.push(' </form>');
|
||||
tmpl_array.push(' </div>');
|
||||
tmpl_array.push(' </div>');
|
||||
tmpl_array.push(' <div id="libraries_element">');
|
||||
// table with libraries will append here
|
||||
@@ -138,6 +166,39 @@ var LibraryToolbarView = Backbone.View.extend({
|
||||
return _.template(tmpl_array.join(''));
|
||||
},
|
||||
|
||||
templatePaginator: function(){
|
||||
tmpl_array = [];
|
||||
|
||||
tmpl_array.push(' <ul class="pagination pagination-sm">');
|
||||
tmpl_array.push(' <% if ( ( show_page - 1 ) > 0 ) { %>');
|
||||
tmpl_array.push(' <% if ( ( show_page - 1 ) > page_count ) { %>'); // we are on higher page than total page count
|
||||
tmpl_array.push(' <li><a href="#page/1"><span class="fa fa-angle-double-left"></span></a></li>');
|
||||
tmpl_array.push(' <li class="disabled"><a href="#page/<% print( show_page ) %>"><% print( show_page - 1 ) %></a></li>');
|
||||
tmpl_array.push(' <% } else { %>');
|
||||
tmpl_array.push(' <li><a href="#page/1"><span class="fa fa-angle-double-left"></span></a></li>');
|
||||
tmpl_array.push(' <li><a href="#page/<% print( show_page - 1 ) %>"><% print( show_page - 1 ) %></a></li>');
|
||||
tmpl_array.push(' <% } %>');
|
||||
tmpl_array.push(' <% } else { %>'); // we are on the first page
|
||||
tmpl_array.push(' <li class="disabled"><a href="#page/1"><span class="fa fa-angle-double-left"></span></a></li>');
|
||||
tmpl_array.push(' <li class="disabled"><a href="#page/<% print( show_page ) %>"><% print( show_page - 1 ) %></a></li>');
|
||||
tmpl_array.push(' <% } %>');
|
||||
tmpl_array.push(' <li class="active">');
|
||||
tmpl_array.push(' <a href="#page/<% print( show_page ) %>"><% print( show_page ) %></a>');
|
||||
tmpl_array.push(' </li>');
|
||||
tmpl_array.push(' <% if ( ( show_page ) < page_count ) { %>');
|
||||
tmpl_array.push(' <li><a href="#page/<% print( show_page + 1 ) %>"><% print( show_page + 1 ) %></a></li>');
|
||||
tmpl_array.push(' <li><a href="#page/<% print( page_count ) %>"><span class="fa fa-angle-double-right"></span></a></li>');
|
||||
tmpl_array.push(' <% } else { %>');
|
||||
tmpl_array.push(' <li class="disabled"><a href="#page/<% print( show_page ) %>"><% print( show_page + 1 ) %></a></li>');
|
||||
tmpl_array.push(' <li class="disabled"><a href="#page/<% print( page_count ) %>"><span class="fa fa-angle-double-right"></span></a></li>');
|
||||
tmpl_array.push(' <% } %>');
|
||||
tmpl_array.push(' </ul>');
|
||||
tmpl_array.push(' <span>');
|
||||
tmpl_array.push(' showing <a id="page_size_prompt"><%- libraries_shown %></a> of <%- total_libraries_count %> libraries');
|
||||
tmpl_array.push(' </span>');
|
||||
|
||||
return _.template(tmpl_array.join(''));
|
||||
},
|
||||
|
||||
templateNewLibraryInModal: function(){
|
||||
tmpl_array = [];
|
||||
|
||||
@@ -1 +1 @@
|
||||
define(["galaxy.masthead","utils/utils","libs/toastr","mvc/base-mvc","mvc/library/library-model","mvc/library/library-folderlist-view","mvc/library/library-librarylist-view","mvc/library/library-librarytoolbar-view","mvc/library/library-foldertoolbar-view","mvc/library/library-dataset-view","mvc/library/library-library-view","mvc/library/library-folder-view"],function(h,e,j,n,k,c,i,g,l,f,b,a){var o=Backbone.Router.extend({initialize:function(){this.routesHit=0;Backbone.history.on("route",function(){this.routesHit++},this)},routes:{"":"libraries","library/:library_id/permissions":"library_permissions","folders/:folder_id/permissions":"folder_permissions","folders/:id":"folder_content","folders/:folder_id/datasets/:dataset_id":"dataset_detail","folders/:folder_id/datasets/:dataset_id/permissions":"dataset_permissions","folders/:folder_id/datasets/:dataset_id/versions/:ldda_id":"dataset_version","folders/:folder_id/download/:format":"download","folders/:folder_id/import/:source":"import_datasets"},back:function(){if(this.routesHit>1){window.history.back()}else{this.navigate("#",{trigger:true,replace:true})}}});var m=n.SessionStorageModel.extend({defaults:{with_deleted:false,sort_order:"asc",sort_by:"name"}});var d=Backbone.View.extend({libraryToolbarView:null,libraryListView:null,library_router:null,libraryView:null,folderToolbarView:null,folderListView:null,datasetView:null,initialize:function(){Galaxy.libraries=this;this.preferences=new m({id:"global-lib-prefs"});this.library_router=new o();this.library_router.on("route:libraries",function(){Galaxy.libraries.libraryToolbarView=new g.LibraryToolbarView();Galaxy.libraries.libraryListView=new i.LibraryListView()});this.library_router.on("route:folder_content",function(p){if(Galaxy.libraries.folderToolbarView){Galaxy.libraries.folderToolbarView.$el.unbind("click")}Galaxy.libraries.folderToolbarView=new l.FolderToolbarView({id:p});Galaxy.libraries.folderListView=new c.FolderListView({id:p})});this.library_router.on("route:download",function(p,q){if($("#folder_list_body").find(":checked").length===0){j.info("You must select at least one dataset to download");Galaxy.libraries.library_router.navigate("folders/"+p,{trigger:true,replace:true})}else{Galaxy.libraries.folderToolbarView.download(p,q);Galaxy.libraries.library_router.navigate("folders/"+p,{trigger:false,replace:true})}});this.library_router.on("route:dataset_detail",function(q,p){if(Galaxy.libraries.datasetView){Galaxy.libraries.datasetView.$el.unbind("click")}Galaxy.libraries.datasetView=new f.LibraryDatasetView({id:p})});this.library_router.on("route:dataset_version",function(q,p,r){if(Galaxy.libraries.datasetView){Galaxy.libraries.datasetView.$el.unbind("click")}Galaxy.libraries.datasetView=new f.LibraryDatasetView({id:p,ldda_id:r,show_version:true})});this.library_router.on("route:dataset_permissions",function(q,p){if(Galaxy.libraries.datasetView){Galaxy.libraries.datasetView.$el.unbind("click")}Galaxy.libraries.datasetView=new f.LibraryDatasetView({id:p,show_permissions:true})});this.library_router.on("route:library_permissions",function(p){if(Galaxy.libraries.libraryView){Galaxy.libraries.libraryView.$el.unbind("click")}Galaxy.libraries.libraryView=new b.LibraryView({id:p,show_permissions:true})});this.library_router.on("route:folder_permissions",function(p){if(Galaxy.libraries.folderView){Galaxy.libraries.folderView.$el.unbind("click")}Galaxy.libraries.folderView=new a.FolderView({id:p,show_permissions:true})});this.library_router.on("route:import_datasets",function(p,q){if(Galaxy.libraries.folderToolbarView&&Galaxy.libraries.folderListView){Galaxy.libraries.folderToolbarView.showImportModal({source:q})}else{Galaxy.libraries.folderToolbarView=new l.FolderToolbarView({id:p});Galaxy.libraries.folderListView=new c.FolderListView({id:p});Galaxy.libraries.folderToolbarView.showImportModal({source:q})}});Backbone.history.start({pushState:false})}});return{GalaxyApp:d}});
|
||||
define(["galaxy.masthead","utils/utils","libs/toastr","mvc/base-mvc","mvc/library/library-model","mvc/library/library-folderlist-view","mvc/library/library-librarylist-view","mvc/library/library-librarytoolbar-view","mvc/library/library-foldertoolbar-view","mvc/library/library-dataset-view","mvc/library/library-library-view","mvc/library/library-folder-view"],function(h,e,j,n,k,c,i,g,l,f,b,a){var o=Backbone.Router.extend({initialize:function(){this.routesHit=0;Backbone.history.on("route",function(){this.routesHit++},this)},routes:{"":"libraries","page/:show_page":"libraries_page","library/:library_id/permissions":"library_permissions","folders/:folder_id/permissions":"folder_permissions","folders/:id":"folder_content","folders/:folder_id/datasets/:dataset_id":"dataset_detail","folders/:folder_id/datasets/:dataset_id/permissions":"dataset_permissions","folders/:folder_id/datasets/:dataset_id/versions/:ldda_id":"dataset_version","folders/:folder_id/download/:format":"download","folders/:folder_id/import/:source":"import_datasets"},back:function(){if(this.routesHit>1){window.history.back()}else{this.navigate("#",{trigger:true,replace:true})}}});var m=n.SessionStorageModel.extend({defaults:{with_deleted:false,sort_order:"asc",sort_by:"name",library_page_size:20}});var d=Backbone.View.extend({libraryToolbarView:null,libraryListView:null,library_router:null,libraryView:null,folderToolbarView:null,folderListView:null,datasetView:null,initialize:function(){Galaxy.libraries=this;this.preferences=new m({id:"global-lib-prefs"});this.library_router=new o();this.library_router.on("route:libraries",function(){Galaxy.libraries.libraryToolbarView=new g.LibraryToolbarView();Galaxy.libraries.libraryListView=new i.LibraryListView()});this.library_router.on("route:libraries_page",function(p){if(Galaxy.libraries.libraryToolbarView===null){Galaxy.libraries.libraryToolbarView=new g.LibraryToolbarView();Galaxy.libraries.libraryListView=new i.LibraryListView({show_page:p})}else{Galaxy.libraries.libraryListView.render({show_page:p})}});this.library_router.on("route:folder_content",function(p){if(Galaxy.libraries.folderToolbarView){Galaxy.libraries.folderToolbarView.$el.unbind("click")}Galaxy.libraries.folderToolbarView=new l.FolderToolbarView({id:p});Galaxy.libraries.folderListView=new c.FolderListView({id:p})});this.library_router.on("route:download",function(p,q){if($("#folder_list_body").find(":checked").length===0){j.info("You must select at least one dataset to download");Galaxy.libraries.library_router.navigate("folders/"+p,{trigger:true,replace:true})}else{Galaxy.libraries.folderToolbarView.download(p,q);Galaxy.libraries.library_router.navigate("folders/"+p,{trigger:false,replace:true})}});this.library_router.on("route:dataset_detail",function(q,p){if(Galaxy.libraries.datasetView){Galaxy.libraries.datasetView.$el.unbind("click")}Galaxy.libraries.datasetView=new f.LibraryDatasetView({id:p})});this.library_router.on("route:dataset_version",function(q,p,r){if(Galaxy.libraries.datasetView){Galaxy.libraries.datasetView.$el.unbind("click")}Galaxy.libraries.datasetView=new f.LibraryDatasetView({id:p,ldda_id:r,show_version:true})});this.library_router.on("route:dataset_permissions",function(q,p){if(Galaxy.libraries.datasetView){Galaxy.libraries.datasetView.$el.unbind("click")}Galaxy.libraries.datasetView=new f.LibraryDatasetView({id:p,show_permissions:true})});this.library_router.on("route:library_permissions",function(p){if(Galaxy.libraries.libraryView){Galaxy.libraries.libraryView.$el.unbind("click")}Galaxy.libraries.libraryView=new b.LibraryView({id:p,show_permissions:true})});this.library_router.on("route:folder_permissions",function(p){if(Galaxy.libraries.folderView){Galaxy.libraries.folderView.$el.unbind("click")}Galaxy.libraries.folderView=new a.FolderView({id:p,show_permissions:true})});this.library_router.on("route:import_datasets",function(p,q){if(Galaxy.libraries.folderToolbarView&&Galaxy.libraries.folderListView){Galaxy.libraries.folderToolbarView.showImportModal({source:q})}else{Galaxy.libraries.folderToolbarView=new l.FolderToolbarView({id:p});Galaxy.libraries.folderListView=new c.FolderListView({id:p});Galaxy.libraries.folderToolbarView.showImportModal({source:q})}});Backbone.history.start({pushState:false})}});return{GalaxyApp:d}});
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
define(["galaxy.masthead","mvc/base-mvc","utils/utils","libs/toastr","mvc/library/library-model","mvc/library/library-libraryrow-view"],function(b,g,d,e,c,a){var f=Backbone.View.extend({el:"#libraries_element",events:{"click .sort-libraries-link":"sort_clicked"},modal:null,collection:null,rowViews:{},initialize:function(h){this.options=_.defaults(this.options||{},h);var i=this;this.rowViews={};this.collection=new c.Libraries();this.collection.fetch({success:function(){i.render()},error:function(k,j){if(typeof j.responseJSON!=="undefined"){e.error(j.responseJSON.err_msg)}else{e.error("An error ocurred.")}}})},render:function(i){$(".tooltip").hide();var j=this.templateLibraryList();var k=null;var h=Galaxy.libraries.preferences.get("with_deleted");var l=null;if(typeof i!=="undefined"){h=typeof i.with_deleted!=="undefined"?i.with_deleted:false;l=typeof i.models!=="undefined"?i.models:null}if(this.collection!==null&&l===null){this.sortLibraries();if(h){k=this.collection.models}else{k=this.collection.where({deleted:false})}}else{if(l!==null){k=l}else{k=[]}}this.$el.html(j({length:k.length,order:Galaxy.libraries.preferences.get("sort_order")}));if(k.length>0){this.renderRows(k)}$("#center [data-toggle]").tooltip();$("#center").css("overflow","auto")},renderRows:function(l){for(var k=0;k<l.length;k++){var j=l[k];var h=_.findWhere(this.rowViews,{id:j.get("id")});if(h!==undefined&&this instanceof Backbone.View){h.delegateEvents();this.$el.find("#library_list_body").append(h.el)}else{this.renderOne({library:j})}}},renderOne:function(j){var i=j.library;var h=new a.LibraryRowView(i);if(j.prepend){this.$el.find("#library_list_body").prepend(h.el)}else{this.$el.find("#library_list_body").append(h.el)}this.rowViews[i.get("id")]=h},sort_clicked:function(){if(Galaxy.libraries.preferences.get("sort_order")==="asc"){Galaxy.libraries.preferences.set({sort_order:"desc"})}else{Galaxy.libraries.preferences.set({sort_order:"asc"})}this.render()},sortLibraries:function(){if(Galaxy.libraries.preferences.get("sort_by")==="name"){if(Galaxy.libraries.preferences.get("sort_order")==="asc"){this.collection.sortByNameAsc()}else{if(Galaxy.libraries.preferences.get("sort_order")==="desc"){this.collection.sortByNameDesc()}}}},templateLibraryList:function(){tmpl_array=[];tmpl_array.push('<div class="library_container table-responsive">');tmpl_array.push("<% if(length === 0) { %>");tmpl_array.push('<div>There are no libraries visible to you. If you expected some to show up please consult the <a href="https://wiki.galaxyproject.org/Admin/DataLibraries/LibrarySecurity">library security wikipage</a> or visit the <a href="https://biostar.usegalaxy.org/">Galaxy support site</a>.</div>');tmpl_array.push("<% } else{ %>");tmpl_array.push('<table class="grid table table-condensed">');tmpl_array.push(" <thead>");tmpl_array.push(' <th style="width:30%;"><a class="sort-libraries-link" title="Click to reverse order" href="#">name</a> <span title="Sorted alphabetically" class="fa fa-sort-alpha-<%- order %>"></span></th>');tmpl_array.push(' <th style="width:22%;">description</th>');tmpl_array.push(' <th style="width:22%;">synopsis</th> ');tmpl_array.push(' <th style="width:26%;"></th> ');tmpl_array.push(" </thead>");tmpl_array.push(' <tbody id="library_list_body">');tmpl_array.push(" </tbody>");tmpl_array.push("</table>");tmpl_array.push("<% }%>");tmpl_array.push("</div>");return _.template(tmpl_array.join(""))},redirectToHome:function(){window.location="../"},redirectToLogin:function(){window.location="/user/login"},});return{LibraryListView:f}});
|
||||
define(["galaxy.masthead","mvc/base-mvc","utils/utils","libs/toastr","mvc/library/library-model","mvc/library/library-libraryrow-view"],function(b,g,d,e,c,a){var f=Backbone.View.extend({el:"#libraries_element",events:{"click .sort-libraries-link":"sort_clicked"},defaults:{page_count:null,show_page:null},initialize:function(h){this.options=_.defaults(this.options||{},this.defaults,h);var i=this;this.modal=null;this.rowViews={};this.collection=new c.Libraries();this.collection.fetch({success:function(){i.render()},error:function(k,j){if(typeof j.responseJSON!=="undefined"){e.error(j.responseJSON.err_msg)}else{e.error("An error ocurred.")}}})},render:function(i){this.options=_.extend(this.options,i);if((this.options.page_size!=null)&&(this.options.page_size==parseInt(this.options.page_size))){Galaxy.libraries.preferences.set({library_page_size:parseInt(this.options.page_size)})}$(".tooltip").hide();var j=this.templateLibraryList();var k=null;var l=null;if(this.options.show_page===null||this.options.show_page<1){this.options.show_page=1}if(typeof i!=="undefined"){l=typeof i.models!=="undefined"?i.models:null}if(this.collection!==null&&l===null){this.sortLibraries();if(Galaxy.libraries.preferences.get("with_deleted")){k=this.collection.models}else{k=this.collection.where({deleted:false})}}else{if(l!==null){k=l}else{k=[]}}this.options.total_libraries_count=k.length;var h=(Galaxy.libraries.preferences.get("library_page_size")*(this.options.show_page-1));this.options.page_count=Math.ceil(this.options.total_libraries_count/Galaxy.libraries.preferences.get("library_page_size"));if(this.options.total_libraries_count>0&&(h<this.options.total_libraries_count)){k=k.slice(h,h+Galaxy.libraries.preferences.get("library_page_size"));this.options.libraries_shown=k.length;if(Galaxy.libraries.preferences.get("library_page_size")*this.options.show_page>(this.options.total_libraries_count+Galaxy.libraries.preferences.get("library_page_size"))){k=[]}this.$el.html(j({length:1,order:Galaxy.libraries.preferences.get("sort_order")}));Galaxy.libraries.libraryToolbarView.renderPaginator(this.options);this.renderRows(k)}else{this.$el.html(j({length:0,order:Galaxy.libraries.preferences.get("sort_order")}));Galaxy.libraries.libraryToolbarView.renderPaginator(this.options)}$("#center [data-toggle]").tooltip();$("#center").css("overflow","auto")},renderRows:function(l){for(var k=0;k<l.length;k++){var j=l[k];var h=_.findWhere(this.rowViews,{id:j.get("id")});if(h!==undefined&&this instanceof Backbone.View){h.delegateEvents();this.$el.find("#library_list_body").append(h.el)}else{this.renderOne({library:j})}}},renderOne:function(j){var i=j.library;var h=new a.LibraryRowView(i);this.$el.find("#library_list_body").append(h.el);this.rowViews[i.get("id")]=h},sort_clicked:function(){if(Galaxy.libraries.preferences.get("sort_order")==="asc"){Galaxy.libraries.preferences.set({sort_order:"desc"})}else{Galaxy.libraries.preferences.set({sort_order:"asc"})}this.render()},sortLibraries:function(){if(Galaxy.libraries.preferences.get("sort_by")==="name"){if(Galaxy.libraries.preferences.get("sort_order")==="asc"){this.collection.sortByNameAsc()}else{if(Galaxy.libraries.preferences.get("sort_order")==="desc"){this.collection.sortByNameDesc()}}}},redirectToHome:function(){window.location="../"},redirectToLogin:function(){window.location="/user/login"},templateLibraryList:function(){tmpl_array=[];tmpl_array.push('<div class="library_container table-responsive">');tmpl_array.push("<% if(length === 0) { %>");tmpl_array.push('<div>There are no libraries visible to you here. If you expected some to show up please consult the <a href="https://wiki.galaxyproject.org/Admin/DataLibraries/LibrarySecurity" target="_blank">library security wikipage</a> or visit the <a href="https://biostar.usegalaxy.org/" target="_blank">Galaxy support site</a>.</div>');tmpl_array.push("<% } else{ %>");tmpl_array.push('<table class="grid table table-condensed">');tmpl_array.push(" <thead>");tmpl_array.push(' <th style="width:30%;"><a class="sort-libraries-link" title="Click to reverse order" href="#">name</a> <span title="Sorted alphabetically" class="fa fa-sort-alpha-<%- order %>"></span></th>');tmpl_array.push(' <th style="width:22%;">description</th>');tmpl_array.push(' <th style="width:22%;">synopsis</th> ');tmpl_array.push(' <th style="width:26%;"></th>');tmpl_array.push(" </thead>");tmpl_array.push(' <tbody id="library_list_body">');tmpl_array.push(" </tbody>");tmpl_array.push("</table>");tmpl_array.push("<% }%>");tmpl_array.push("</div>");return _.template(tmpl_array.join(""))},});return{LibraryListView:f}});
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user