App-Mimosa
view release on metacpan or search on metacpan
root/js/mimosa-grid.js view on Meta::CPAN
// Without this, ExtJS will be dumb and do a POST
restful : true,
autoLoad : true,
writer : writer,
listeners : {
}
});
// sort sequence sets by title
store.setDefaultSort('title', 'ASC');
// create the Grid
var xg = Ext.grid;
var sm = new xg.CheckboxSelectionModel({
listeners: {
selectionchange: function(sm) {
var ids = '';
sm.getSelections().forEach(function(e){
ids = ids + e.data['mimosa_sequence_set_id'] + ",";
});
jQuery("#mimosa_sequence_set_ids").val( ids );
},
}
});
var grid = new xg.GridPanel({
listeners: {
},
columns: [
sm,
{
id :'mimosa_sequence_set_id',
header : 'Id',
sortable : true,
dataIndex: 'mimosa_sequence_set_id'
},
{
id :'name',
header : 'Name',
sortable : true,
dataIndex: 'name'
},
{
id :'description',
header : 'Description',
sortable : true,
dataIndex: 'description',
},
{
id :'alphabet',
header : 'Alphabet',
sortable : true,
dataIndex: 'alphabet'
}
],
animCollapse: true,
autoExpandColumn: 'description',
collapsible: true,
columnLines: true,
frame: true,
iconCls:'icon-grid',
sm: sm,
store: store,
stripeRows: true,
title: 'Available Sequence Sets to BLAST against',
autoWidth: true,
autoHeight: true,
stripeRows : true,
// config options for stateful behavior
stateful: true,
stateId: 'grid'
});
store.on('load', function() {
var default_id = jQuery("#default_id").val();
var default_index = store.find('mimosa_sequence_set_id', default_id );
//console.log( 'default index ' + default_index );
grid.getSelectionModel().selectRow(default_index);
});
// render the grid to the specified div in the page, if it exists
if( jQuery('#mimosa-grid') ) {
grid.render('mimosa-grid');
}
// Make the program selector filter the grid
var filter = function(){
var program = jQuery("#program_selector").val();
var alphabet = '';
// Which databases should we filter?
if( program == "blastn" || program == "tblastn") {
alphabet = 'nucleotide';
} else if (program == "tblastx") {
alphabet = 'protein';
} else {
}
store.filter([
{
property : 'name',
value : new RegExp(jQuery("#search_name").val()),
},
{
property : 'description',
value : new RegExp(jQuery("#search_description").val()),
},
{
property : 'alphabet',
value : new RegExp(alphabet),
}
]);
};
jQuery("#program_selector").change(filter);
jQuery("#search_name").keyup(filter);
( run in 0.783 second using v1.01-cache-2.11-cpan-e1769b4cff6 )