Make sure actions get set when a leaf is refreshed

This commit is contained in:
Nathan Gray 2013-05-27 15:51:18 +00:00
parent 30b3f407d2
commit 89fe4531e2

View File

@ -199,6 +199,7 @@ var et2_tree = et2_inputWidget.extend(
url = '/json.php?menuaction='+url; url = '/json.php?menuaction='+url;
} }
if (url.charAt(0) == '/') url = egw.webserverUrl+url; if (url.charAt(0) == '/') url = egw.webserverUrl+url;
this.autoloading_url = url;
widget.input.setXMLAutoLoading(url); widget.input.setXMLAutoLoading(url);
widget.input.setDataMode('JSON'); widget.input.setDataMode('JSON');
} }
@ -232,6 +233,7 @@ var et2_tree = et2_inputWidget.extend(
} }
// Item color - not working // Item color - not working
if(options[key].data && typeof options[key].data.color !== 'undefined' && options[key].data.color) if(options[key].data && typeof options[key].data.color !== 'undefined' && options[key].data.color)
this.autoloading_url = url;
{ {
options[key].style += "background-color ='"+options[key].data.color+"';"; options[key].style += "background-color ='"+options[key].data.color+"';";
} }
@ -444,23 +446,26 @@ var et2_tree = et2_inputWidget.extend(
}, },
/** /**
* refreshItem, refreshes an item by id * Updates a leaf of the tree by requesting new information from the server using the
* autoloading attribute.
*
* @param _id ID of the node * @param _id ID of the node
* @return void * @return void
*/ */
refreshItem: function(_id, _selectParent) { refreshItem: function(_id) {
if(this.input == null) return null; if(this.input == null) return null;
this.input.deleteChildItems(_id);
this.input.setDataMode('JSON'); this.input.setDataMode('JSON');
/* Can't use this, it doesn't allow a callback
this.input.refreshItem(_id); this.input.refreshItem(_id);
// Update action */
// since the action ID has to = this.id, getObjectById() won't work var self = this;
var treeObj = egw_getAppObjectManager().getObjectById(this.id); var actions = this.options.actions;
for(var i=0; i < treeObj.children.length; i++) this.input.loadJSON(this.egw().link(this.autoloading_url, {id: _id}), function()
{ {
if(treeObj.children[i].iface && treeObj.children[i].iface.id == _id) // Update actions by just re-setting them
{ self.set_actions(actions);
} });
}
}, },
/** /**