1 new commit in galaxy-central:
https://bitbucket.org/galaxy/galaxy-central/commits/b426ab73b1da/
Changeset: b426ab73b1da
User: carlfeberhard
Date: 2014-08-29 16:43:51
Summary: History contents: allow copying accessible datasets into this history
Affected #: 3 files
diff -r 11e6f06278126edb16c6333e2eddf6dd1a9772b2 -r
b426ab73b1da78f4515f9538636a028b7aa6f3f8 static/scripts/mvc/dataset/list-panel.js
--- a/static/scripts/mvc/dataset/list-panel.js
+++ b/static/scripts/mvc/dataset/list-panel.js
@@ -408,7 +408,7 @@
return view;
},
- /** get views based on model properties
+ /** get views based on model
*/
viewFromModel : function( model ){
for( var i=0; i<this.views.length; i++ ){
diff -r 11e6f06278126edb16c6333e2eddf6dd1a9772b2 -r
b426ab73b1da78f4515f9538636a028b7aa6f3f8 static/scripts/mvc/history/history-contents.js
--- a/static/scripts/mvc/history/history-contents.js
+++ b/static/scripts/mvc/history/history-contents.js
@@ -21,11 +21,11 @@
//TODO: can we decorate the mixed models using the model fn below (instead of having them
build their own type_id)?
/** logger used to record this.log messages, commonly set to console */
- // comment this out to suppress log output
//logger : console,
/** since history content is a mix, override model fn into a factory, creating based
on history_content_type */
model : function( attrs, options ) {
+ //console.debug( 'HistoryContents.model:', attrs, options );
//TODO: can we move the type_id stuff here?
//attrs.type_id = typeIdStr( attrs );
@@ -184,6 +184,23 @@
return deferred;
},
+ /** copy an existing, accessible hda into this collection */
+ copy : function( id ){
+ var collection = this,
+ xhr = jQuery.post( this.url(), {
+ source : 'hda',
+ content : id
+ });
+ xhr.done( function( json ){
+ collection.add([ json ]);
+ });
+ xhr.fail( function( error, status, message ){
+//TODO: better distinction btwn not-allowed and actual ajax error
+ collection.trigger( 'error', collection, xhr, {}, 'Error copying
dataset' );
+ });
+ return xhr;
+ },
+
// ........................................................................
sorting/filtering
/** return a new collection of contents whose attributes contain the substring
matchesWhat */
matches : function( matchesWhat ){
@@ -195,6 +212,7 @@
// ........................................................................ misc
/** override to get a correct/smarter merge when incoming data is partial */
set : function( models, options ){
+ this.debug( 'set:', models );
// arrrrrrrrrrrrrrrrrg...
// (e.g. stupid backbone)
// w/o this partial models from the server will fill in missing data with model
defaults
diff -r 11e6f06278126edb16c6333e2eddf6dd1a9772b2 -r
b426ab73b1da78f4515f9538636a028b7aa6f3f8
static/scripts/packed/mvc/history/history-contents.js
--- a/static/scripts/packed/mvc/history/history-contents.js
+++ b/static/scripts/packed/mvc/history/history-contents.js
@@ -1,1 +1,1 @@
-define(["mvc/history/history-content-model","mvc/history/hda-model","mvc/history/hdca-model","mvc/base-mvc","utils/localization"],function(g,e,b,a,c){var
f=Backbone.Collection.extend(a.LoggableMixin).extend({model:function(i,h){if(i.history_content_type==="dataset"){return
new
e.HistoryDatasetAssociation(i,h)}else{if(i.history_content_type==="dataset_collection"){switch(i.collection_type){case"list":return
new b.HistoryListDatasetCollection(i,h);case"paired":return new
b.HistoryPairDatasetCollection(i,h);case"list:paired":return new
b.HistoryListPairedDatasetCollection(i,h)}throw new TypeError("Unknown
collection_type: "+i.collection_type)}}throw new TypeError("Unknown
history_content_type:
"+i.history_content_type)},initialize:function(i,h){h=h||{};this.historyId=h.historyId;this.on("all",function(){this.debug(this+".event:",arguments)})},urlRoot:galaxy_config.root+"api/histories",url:function(){return
this.urlRoot+"/"+this.historyId+"/contents"},ids:function(){return
this.map(function(h){return h.get("id")})},notReady:function(){return
this.filter(function(h){return !h.inReadyState()})},running:function(){var
h=[];this.each(function(j){var
i=!j.inReadyState();if(i){h.push(j.get("id"))}});return
h},getByHid:function(h){return _.first(this.filter(function(i){return
i.get("hid")===h}))},getVisible:function(h,k,j){j=j||[];this.debug("checking
isVisible");var i=new f(this.filter(function(l){return
l.isVisible(h,k)}));_.each(j,function(l){if(!_.isFunction(l)){return}i=new
f(i.filter(l))});return i},haveDetails:function(){return this.all(function(h){return
h.hasDetails()})},fetchAllDetails:function(i){i=i||{};var
h={details:"all"};i.data=(i.data)?(_.extend(i.data,h)):(h);return
this.fetch(i)},ajaxQueue:function(m,j){var
i=jQuery.Deferred(),h=this.length,l=[];if(!h){i.resolve([]);return i}var
k=this.chain().reverse().map(function(o,n){return function(){var
p=m.call(o,j);p.done(function(q){i.notify({curr:n,total:h,response:q,model:o})});p.always(function(q){l.push(q);if(k.length){k.shift()()}else{i.resolve(l)}})}}).value();k.shift()();return
i},matches:function(h){return this.filter(function(i){return
i.matches(h)})},set:function(j,h){var i=this;j=_.map(j,function(m){var
l=m.attributes||m,n=g.typeIdStr(l.history_content_type,l.id),o=i.get(n);if(!o){return
m}var k=o.toJSON();_.extend(k,m);return
k});Backbone.Collection.prototype.set.call(this,j,h)},promoteToHistoryDatasetCollection:function
d(m,k,i){i=i||{};i.url=this.url();i.type="POST";var o=k;var
l=[],h=null;if(k==="list"){this.chain().each(function(r){var
p=r.attributes.name;var s=r.get("id");var
q=r.attributes.history_content_type;if(q==="dataset"){if(o!=="list"){this.log("Invalid
collection
type")}l.push({name:p,src:"hda",id:s})}else{if(o==="list"){o="list:"+r.attributes.collection_type}else{if(o!=="list:"+r.attributes.collection_type){this.log("Invalid
collection type")}}l.push({name:p,src:"hdca",id:s})}});h="New Dataset
List"}else{if(k==="paired"){var
j=this.ids();if(j.length!==2){}l.push({name:"forward",src:"hda",id:j[0]});l.push({name:"reverse",src:"hda",id:j[1]});h="New
Dataset
Pair"}}i.data={type:"dataset_collection",name:h,collection_type:o,element_identifiers:JSON.stringify(l)};var
n=jQuery.ajax(i);n.done(function(r,p,q){m.refresh()});n.fail(function(r,p,q){if(r.responseJSON&&r.responseJSON.error){error=r.responseJSON.error}else{error=r.responseJSON}r.responseText=error});return
n},print:function(){var
h=this;h.each(function(i){h.debug(i);if(i.elements){h.debug("\t
elements:",i.elements)}})},toString:function(){return(["HistoryContents(",[this.historyId,this.length].join(),")"].join(""))}});return{HistoryContents:f}});
\ No newline at end of file
+define(["mvc/history/history-content-model","mvc/history/hda-model","mvc/history/hdca-model","mvc/base-mvc","utils/localization"],function(g,e,b,a,c){var
f=Backbone.Collection.extend(a.LoggableMixin).extend({model:function(i,h){if(i.history_content_type==="dataset"){return
new
e.HistoryDatasetAssociation(i,h)}else{if(i.history_content_type==="dataset_collection"){switch(i.collection_type){case"list":return
new b.HistoryListDatasetCollection(i,h);case"paired":return new
b.HistoryPairDatasetCollection(i,h);case"list:paired":return new
b.HistoryListPairedDatasetCollection(i,h)}throw new TypeError("Unknown
collection_type: "+i.collection_type)}}throw new TypeError("Unknown
history_content_type:
"+i.history_content_type)},initialize:function(i,h){h=h||{};this.historyId=h.historyId;this.on("all",function(){this.debug(this+".event:",arguments)})},urlRoot:galaxy_config.root+"api/histories",url:function(){return
this.urlRoot+"/"+this.historyId+"/contents"},ids:function(){return
this.map(function(h){return h.get("id")})},notReady:function(){return
this.filter(function(h){return !h.inReadyState()})},running:function(){var
h=[];this.each(function(j){var
i=!j.inReadyState();if(i){h.push(j.get("id"))}});return
h},getByHid:function(h){return _.first(this.filter(function(i){return
i.get("hid")===h}))},getVisible:function(h,k,j){j=j||[];this.debug("checking
isVisible");var i=new f(this.filter(function(l){return
l.isVisible(h,k)}));_.each(j,function(l){if(!_.isFunction(l)){return}i=new
f(i.filter(l))});return i},haveDetails:function(){return this.all(function(h){return
h.hasDetails()})},fetchAllDetails:function(i){i=i||{};var
h={details:"all"};i.data=(i.data)?(_.extend(i.data,h)):(h);return
this.fetch(i)},ajaxQueue:function(m,j){var
i=jQuery.Deferred(),h=this.length,l=[];if(!h){i.resolve([]);return i}var
k=this.chain().reverse().map(function(o,n){return function(){var
p=m.call(o,j);p.done(function(q){i.notify({curr:n,total:h,response:q,model:o})});p.always(function(q){l.push(q);if(k.length){k.shift()()}else{i.resolve(l)}})}}).value();k.shift()();return
i},copy:function(j){var
i=this,h=jQuery.post(this.url(),{source:"hda",content:j});h.done(function(k){i.add([k])});h.fail(function(l,k,m){i.trigger("error",i,h,{},"Error
copying dataset")});return h},matches:function(h){return
this.filter(function(i){return
i.matches(h)})},set:function(j,h){this.debug("set:",j);var
i=this;j=_.map(j,function(m){var
l=m.attributes||m,n=g.typeIdStr(l.history_content_type,l.id),o=i.get(n);if(!o){return
m}var k=o.toJSON();_.extend(k,m);return
k});Backbone.Collection.prototype.set.call(this,j,h)},promoteToHistoryDatasetCollection:function
d(m,k,i){i=i||{};i.url=this.url();i.type="POST";var o=k;var
l=[],h=null;if(k==="list"){this.chain().each(function(r){var
p=r.attributes.name;var s=r.get("id");var
q=r.attributes.history_content_type;if(q==="dataset"){if(o!=="list"){this.log("Invalid
collection
type")}l.push({name:p,src:"hda",id:s})}else{if(o==="list"){o="list:"+r.attributes.collection_type}else{if(o!=="list:"+r.attributes.collection_type){this.log("Invalid
collection type")}}l.push({name:p,src:"hdca",id:s})}});h="New Dataset
List"}else{if(k==="paired"){var
j=this.ids();if(j.length!==2){}l.push({name:"forward",src:"hda",id:j[0]});l.push({name:"reverse",src:"hda",id:j[1]});h="New
Dataset
Pair"}}i.data={type:"dataset_collection",name:h,collection_type:o,element_identifiers:JSON.stringify(l)};var
n=jQuery.ajax(i);n.done(function(r,p,q){m.refresh()});n.fail(function(r,p,q){if(r.responseJSON&&r.responseJSON.error){error=r.responseJSON.error}else{error=r.responseJSON}r.responseText=error});return
n},print:function(){var
h=this;h.each(function(i){h.debug(i);if(i.elements){h.debug("\t
elements:",i.elements)}})},toString:function(){return(["HistoryContents(",[this.historyId,this.length].join(),")"].join(""))}});return{HistoryContents:f}});
\ No newline at end of file
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.