RapidApp
view release on metacpan or search on metacpan
share/assets/js/080-DataStore.js view on Meta::CPAN
handler: function(btn) {
var store = cmp.store;
if(store.proxy.getConnection().isLoading()) { return; }
//store.remove(cmp.getSelectionModel().getSelections());
store.removeRecord(cmp.getSelectedRecords());
//store.saveIfPersist();
//if(cmp.persist_immediately) { store.save(); }
}
},cnf || {}),showtext);
cmp.on('afterrender',function() {
var toggleBtn = function() {
if (this.getSelectedRecords.call(this).length > 0) {
btn.setDisabled(false);
}
else {
btn.setDisabled(true);
}
};
this.on('selectionchange',toggleBtn,this);
},cmp);
return btn;
},
// Note: this is *not* the refresh button in the grid toolbar/pager because
// it already provides its own
reload: function(cnf,cmp,showtext) {
return cmp.store.buttonConstructor(Ext.apply({
tooltip: 'Reload',
iconCls: 'x-tbar-loading',
handler: function(btn) {
var store = cmp.store;
store.reloadAll();
}
},cnf || {}),showtext);
},
save: function(cnf,cmp,showtext) {
if(cmp.persist_all_immediately) { return false; }
var btn = cmp.store.buttonConstructor(Ext.apply({
tooltip: 'Save',
iconCls: 'ra-icon-save-ok',
disabled: true,
handler: function(btn) {
var store = cmp.store;
//store.save();
store.saveAll();
}
},cnf || {}),showtext);
var title_parent = cmp.findParentBy(function(c){
return (c.title && c.setTitle) ? true : false;
},this);
cmp.cascade(function(){
if(!this.store || !this.store.addTrackedToggleFunc){ return; }
this.store.addTrackedToggleFunc(function(store) {
var has_changes = cmp.store.hasAnyPendingChanges();
btn.setDisabled(!has_changes);
// ---- Add/remove '*' suffix from the title based on the saved/unsaved status:
if(title_parent && Ext.isFunction(title_parent.setNewTitle)) {
title_parent.setNewTitle(undefined, has_changes);
}
else { return; }
// ----
});
});
return btn;
},
undo: function(cnf,cmp,showtext) {
if(cmp.persist_all_immediately) { return false; }
var btn = cmp.store.buttonConstructor(Ext.apply({
tooltip: 'Undo',
iconCls: 'ra-icon-arrow-undo',
disabled: true,
handler: function(btn) {
var store = cmp.store;
//store.undoChanges.call(store);
store.undoChangesAll.call(store);
}
},cnf || {}),showtext);
cmp.cascade(function(){
if(!this.store || !this.store.addTrackedToggleFunc){ return; }
this.store.addTrackedToggleFunc(function(store) {
if (cmp.store.hasAnyPendingChanges()) {
btn.setDisabled(false);
}
else {
btn.setDisabled(true);
}
});
});
/*
cmp.store.addTrackedToggleFunc(function(store) {
if (store.hasPendingChanges()) {
btn.setDisabled(false);
}
else {
btn.setDisabled(true);
}
});
*/
return btn;
}
};
},
// Alternative, pure initialization if we're not calling
// insertStoreButtonsBbar/insertStoreButtonsTbar
initializeStoreButtons: function() {
var showtext = this.show_store_button_text ? true : false;
Ext.each(this.store_buttons,function(btn_name) {
this.getStoreButton(btn_name,showtext);
},this);
},
insertStoreButtonsBbar: function() {
var index = 0;
var skip_reload = false;
var bbar;
if(Ext.isFunction(this.cmp.getBottomToolbar)) {
bbar = this.cmp.getBottomToolbar();
}
else if (Ext.isFunction(this.cmp.ownerCt.getBottomToolbar)) {
bbar = this.cmp.ownerCt.getBottomToolbar();
}
if(!bbar) { return; }
bbar.items.each(function(cmp,indx) {
if(cmp.tooltip == 'Refresh') {
index = indx + 1;
skip_reload = true;
};
});
//console.dir(bbar);
( run in 0.581 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )