Add child action visbile/enabled checking - previously children were always enabled

This commit is contained in:
Nathan Gray 2013-09-04 19:09:48 +00:00
parent 1f8e0e9e41
commit 72e5c43a96

View File

@ -1894,17 +1894,9 @@ egwActionObject.prototype._getLinks = function(_objs, _actionType)
{
var actionLinks = {};
var testedSelected = [];
for (var i = 0; i < _objs.length; i++)
{
var obj = _objs[i];
if (!egwBitIsSet(obj.flags, EGW_AO_FLAG_IS_CONTAINER) && obj.triggerCallback())
{
testedSelected.push(obj);
for (var j = 0; j < obj.actionLinks.length; j++)
var test = function(olink)
{
var olink = obj.actionLinks[j]; //object link
// Test whether the action type is of the given implementation type
if (olink.actionObj.type == _actionType)
{
@ -1924,9 +1916,36 @@ egwActionObject.prototype._getLinks = function(_objs, _actionType)
olink.enabled && olink.visible;
llink.visible = (llink.visible || olink.visible);
llink.cnt++;
// Add in children, so they can get checked for visible / enabled
if(olink.actionObj && olink.actionObj.children.length > 0)
{
for(var j = 0; j < olink.actionObj.children.length; j++)
{
var child = olink.actionObj.children[j];
test({
actionObj: child,
actionId: child.id,
enabled: olink.enabled,
visible: olink.visible
});
}
}
}
};
for (var i = 0; i < _objs.length; i++)
{
var obj = _objs[i];
if (!egwBitIsSet(obj.flags, EGW_AO_FLAG_IS_CONTAINER) && obj.triggerCallback())
{
testedSelected.push(obj);
for (var j = 0; j < obj.actionLinks.length; j++)
{
test(obj.actionLinks[j]); //object link
}
}
}
// Check whether all objects supported the action